Magna Concursos
2448518 Ano: 2012
Disciplina: TI - Banco de Dados
Banca: FUNDATEC
Orgão: PROCERGS

A questão 14 baseia-se nesse texto introdutório e nas Figuras 6(a) e 6(b). Uma Livraria passará a executar, mensalmente, um processo de migração dos dados de seus livros para seu novo sistema de informação. As editoras entregarão, juntamente com os livros, um arquivo de extensão ".DAT" contendo a relação dos livros entregues com o(s) respectivo(s) autor(es), de acordo com o layout definido pela Livraria. Essa Livraria trabalha apenas com livros escritos e publicados por autores e editoras brasileiras. O referido processo de migração será realizado, sequencialmente, em dois passos: (1) 1º passo - o Administrador de Banco de Dados (DBA), da Livraria, irá utilizar a ferramenta SQL*Loader para carregar as tabelas descritas na Figura 6(a); e (2) 2º passo - o DBA executará uma rotina, escrita em PL/SQL, omitida, intencionalmente, que validará os dados e inserirá os registros válidos nas tabelas negociais do novo sistema de informação da Livraria. Para melhorar o desempenho da execução da rotina descrita no 2º passo (item (2)), acima, criou-se um índice, para cada uma das tabelas "LIVRO_OUT12" e "LIVRO_AUTOR_OUT12". Existe a previsão de migração de mais de um milhão de registros na primeira vez em que o processo de migração for executado. A Figura 6(a) exibe declarações SQL, criadas pelo DBA, para serem utilizadas no processo de migração, onde estão representadas a estrutura de duas tabelas desnormalizadas. A Figura 6(b) exibe o conteúdo do arquivo de configuração "Livro.ctl" a ser utilizado pela ferramenta SQL*Loader para carregar as tabelas da Figura 6(a), a partir dos arquivos extensão ".DAT", entregues pelas editoras.

CREATE TABLE LIVRO_OUT12(
TIPO_REGISTRO VARCHAR2(1),
ISBN VARCHAR2(15),
EDITORA_CNPJ VARCHAR2(15),
TITULO VARCHAR2(70),
QTD_PAGINA VARCHAR2(3),
ANO_PUBLIC VARCHAR2(4));

CREATE INDEX
IN_LIVROOUT12_EDITORACNPJ
ON LIVRO_OUT12(EDITORA_CNPJ);

CREATE TABLE
LIVRO_AUTOR_OUT12(
TIPO_REGISTRO VARCHAR2(1),
ISBN VARCHAR2(15),
AUTOR_CPF VARCHAR2(11),
AUTOR_NOME VARCHAR2(60));

CREATE INDEX
IN_LIVROAUTOROUT12_AUTORCPF
ON LIVRO_AUTOR_OUT12(AUTOR_CPF);

Figura 6(a) - Declarações SQL executadas em um banco de dados Oracle 11g

LOAD DATA
CHARACTERSET WE8MSWIN1252
INFILE '/migracao/out2012/LIVROS.DAT'

APPEND

INTO TABLE LIVRO_OUT12
WHEN (1) = '1'
(
TIPO_REGISTRO POSITION (1) CHAR,
ISBN POSITION (2:16) CHAR,
EDITORA_CNPJ POSITION (17:31) CHAR,
TITULO POSITION (32:101) CHAR,
QTD_PAGINA POSITION (102:104) CHAR,
ANO_PUBLIC POSITION (105:108) CHAR
)

INTO TABLE LIVRO_AUTOR_OUT12
WHEN (1) = '2'
(
TIPO_REGISTRO POSITION (1) CHAR,
ISBN POSITION (2:16) CHAR,
AUTOR_CPF POSITION (17:27) CHAR,
AUTOR_NOME POSITION (28:107) CHAR
)

Figura 6(b) - Arquivo de configuração "Livro.ctl"

Uma livraria executará, mensalmente, um processo de migração dos dados de seus livros para seu novo sistema de informação em dois passos: (1º passo) o DBA utilizará a ferramenta SQL*Loader para carregar as tabelas criadas a partir da declaração constante na Figura 6(a); e (2º passo) o DBA executará uma rotina, escrita em PL/SQL, para validar os dados e inserir os registros válidos nas tabelas criadas do novo sistema de informação da livraria. Para agilizar tais cargas, criou-se um índice, para cada uma das tabelas implementadas. Nesse caso, assinale, dentre as alternativas a seguir, a opção que permite melhorar o desempenho da execução da atividade descrita no 1º passo, sem que seja prejudicado o 2º passo:

 

Provas

Questão presente nas seguintes provas

Analista de TI - Banco de Dados

60 Questões