Sei sulla pagina 1di 6

Administrao e Projeto de Banco de Dados Exerccios - Prof.

Bulla

1) O que o projeto fsico de banco de dados ? 2) Por que, muitas vezes, necessria a desnormalizao de tabelas ? Cite um exemplo. 3) Qual o modelo de dados utilizado como entrada no projeto fsico ? 4) O que uma restrio de integridade referencial ? 5) Cite mais dois tipos de restrio de integridade suportados pelos SGBDs relacionais. 6) Mesmo que exista uma coluna na tabela, cujo valor para o negcio em questo, nunca seja duplicado ( p. ex., nmero do CPF ), sempre devemos criar uma chave primria artificial, ou seja, um valor numrico sequencial, sem significado para o negcio. Voc concorda com esta afirmao ? Por que ? 7) Identifique, se houver, os erros no comando abaixo: Create tb_alunos ( nu_aluno, int, null, primary key, no_aluno, decimal(30), null, cd_curso, char(6), not null, foreing key references tb_cursos ) 8) Em relao tabelas, qual a diferena entre os comandos Delete e Drop ? 9) Quais so os comandos SQL da categoria DML ? 10) Uma coluna pode, ao mesmo tempo, ser uma FK e parte de uma PK ? Caso afirmativo, d um exemplo 11) Uma coluna, numa determinada tabela, pode ter valores vazios ou nulos. Ela pode ser uma FK ? 12) Indique, abaixo, quais afirmaes so verdadeiras, quais so falsas e quais so incertas ( faltam elementos para se afirmar a veracidade ou a falsidade das mesmas): a) Numa tabela, obrigatoriamente, as linhas esto classificadas pelo valor de alguma coluna; b) Alm de select, podemos utilizar subconsultas com insert, update e delete; c) O update pode atualizar diversas colunas de uma tabela, quando utilizamos a clusula where; d) Num modelo lgico de dados, haviam oito tabelas normalizadas. Aps algumas anlises, decidiu-se criar fisicamente, apenas seis desnormalizadas. Podemos concluir que esta deciso trouxe maiores benefcios performance do sistema. e) Quando realizamos um inner join entre duas tabelas, podemos obter valores de todas as colunas de ambas as tabelas; f) Num join, caso uma das tabelas tenha 10 linhas e a outra 50, podemos obter como resultado uma tabela de 5000 linhas; g) Em relao s tabelas do item anterior, foi executado um full join em que foram recuperadas 9 linhas. 13) Quando, num insert, no necessrio especificar os nomes das colunas da tabela ? 14) Qual a semelhana e a principal diferena entre as clusulas where e having ? 15) Para que poderamos utilizar um full join ? D um exemplo.

Estudo de caso: Multas de trnsito.

Abaixo, quatro tabelas de um sistema de controle de multas.

Veiculos ( cd_placa A7, nu_renavam N9, nu_cpf_prop N11 ), Categorias ( cd_categ N3, ds_categ A20, vl_multa N11,2 , qt_pontos N2 ), Multas ( nu_multa N12, dt_multa, ds_local A40, cd_placa, nu_cnh, cd_categ ), Mororistas ( nu_cnh N11, no_motorista, nu_cpf_mot )

16) Utilizando SQL, criar as tabelas Multas e Motoristas, indicando PK, FKs ( no se esquea da integridade referencial ! ). Para as colunas numricas, utilizar o tipo que possibilite economia de armazenamento. Suponha que as duas outras tabelas j estejam criadas.

17) Utilizando SQL: a) Obter os dados das multas de categoria igual a 01; b) Obter a quantidade de multas p/ cdigo de categoria, em ordem ascendente de cdigo; c) Quantas multas tem a cnh de nmero 34526324 e qual o nome do motorista ?; d) Qual o valor total das multas, emitidas nos anos de 2002 a 2007, em que o motorista no era o proprietrio do veculo ?

18). Utilizando SQL: a) Escolha trs tabelas e inclua uma linha em cada uma delas ( Ateno ! A sequncia de incluso deve respeitar a integridade referencial entre as tabelas ! ) b) O veculo de placa BGV1433, que pertencia a outro proprietrio, foi comprado pelo cpf nmero 04522300224, que tirou a sua habilitao, de nmero 35555667. O nome dele Amadeu Kraulitz. Atualize as informaes no banco de dados.

19) Em SQL, comandos DML so constitudos por: a) apenas select b) create, select, insert, update e delete c) insert, update, remove e select d) select, insert, update e delete

20) Um ndice cluster ou clustered: a) sempre tem que ser nico b) nunca pode ser composto ( mais de uma coluna ) c) normalmente, utilizado para recuperar linhas de uma tabela ordenadas por seu valor d) definido somente para chaves primrias de tabelas

21) Num JOIN entre uma tabela A ( 1000 linhas ) e uma tabela B ( 4000 linhas ) foram recuperadas 4.000.000 de linhas. Qual o tipo de encadeamento utilizado ? a) INNER JOIN b) CROSS JOIN c) RIGHT JOIN d) FULL JOIN

22) Assinale a afirmao incorreta: a) uma pk, ao migrar para outra tabela ser uma fk podendo ou no fazer parte da pk da tabela destino b) a clusula COUNT ( DISTINCT sg_uf ) ir recuperar a quantidade de estados que no se repetem c) a utilizao de ORDER BY obrigatria, num SELECT com GROUP BY d) uma restrio de integridade nem sempre definida no momento da criao de uma tabela

Estudo de caso Viagens areas.

Abaixo, quatro tabelas de um sistema que fornece dados sobre viagens areas. Voos ( nu_voo N5, cd_aerop_orig , dt_partida, hr_partida ), Aeroportos ( cd_aerop A4, no_aerop A30, no_cidade A30, sg_pais A3 ), Assentos ( nu_voo, nu_assento N3, in_ocupado A1, cd_classe ), in_ocupado = S ou N Classes ( cd_classe N2, vl_passag N11,2 )

23) Utilizando SQL, criar as tabelas Voos e Assentos, indicando PK, FKs ( no se esquea da integridade referencial ! ). Para as colunas numricas, utilizar o tipo que possibilite economia de armazenamento. Suponha que as duas outras tabelas j estejam criadas.

24) Utilizando SQL: a) Obter os dados dos vos que partem do aeroporto AERD; b) Quantos aeroportos existem em cada pas ? c) Qual a receita bruta total obtida com os vos, no ano de 2007 ? d) Obter p/ cada aeroporto, entre 13/09/2008 e 14/10/2008, os dados dos vos que partem do mesmo. Recuperar, tambm, o nome do aeroporto.

25) Utilizando SQL: a) Escolha trs tabelas e inclua uma linha em cada uma delas ( Ateno ! A sequncia de incluso deve respeitar a integridade referencial entre as tabelas ! ); b) A companhia area no ira mais operar no aeroporto SPOA. Exclua-o, bem como os vos programados a partir de 20/10/2008.

26) Numa determinada tabela, um ndice no nico composto por duas colunas. Com certeza: a) estas duas colunas foram definidas como null b) as duas colunas so fk

c) um ndice cluster ou clustered d) no h elementos para se concluir que a), b) ou c) esteja correta

27) Em SQL, a diferena entre ADD e INSERT : a) nenhuma, pois so equivalentes, dependendo apenas do SGBD utilizado b) um inclui dados de negcio ( como informaes de clientes ) numa tabela e outro, uma nova informao na estrutura de uma tabela c) a clusula ADD no existe d) um inclui dados de negcio e a outro, pode alterar estes dados

28) Excluir os pedidos cancelados dos estados do RJ e SP e, tambm, os pedidos pendentes do estado do RS. TODAS as condies citadas so vlidas apenas para o cliente 1256. O comando correto seria: a) delete from pedidos where ( estado = RJ or SP and status = C and cliente = 1256) or ( estado = RS and status = P and cliente = 1256 ) b) delete from pedidos where cliente = 1256 and (( estado in ( RJ, SP ) and status = C ) or ( estado = RS and status = P )) c) delete from pedidos where cliente = 1256 and (estado in ( RJ, SP ) and status = C ) or status = P d) delete from pedidos where (( estado = RJ or estado = SP and status = C ) or ( estado = RS and status = P )) and cliente = 1256

29) Trs das funes agregadoras so: a) AVG, SUM, ORDER BY b) SUM, COUNT, WHERE c) COUNT, SUM, MIN d) COUNT, MED, SUM

Estudo de caso Eleies.

Abaixo, quatro tabelas de um sistema eleitoral. Candidatos ( nu_candid N7, no_candid A20, sg_uf A2 ), Apuracoes ( nu_candid, an_eleicao N4, sg_uf, qt_votos N9 ), Candidaturas ( nu-candid, an_eleicao, sg_partido A3 , cd_cargo N2 ), Cargos ( cd_cargo N2, no_cargo A20 )

30) Utilizando SQL, criar as tabelas Candidatos e Candidaturas, indicando PK, FKs ( no se esquea da integridade referencial ! ). Para as colunas numricas, utilizar o tipo que possibilite economia de armazenamento. Suponha que as duas outras tabelas j estejam criadas.

31) Utilizando SQL: a) Obter os dados dos candidatos nascidos em SP; b) Qual a soma total de votos obtidos por cada candidato ( somente o nmero do mesmo ), nas eleies de 2002 ? c) Obter os nomes dos candidatos do PRR nas eleies de 1998; d) Qual a votao de cada candidato presidente, em seu estado natal, nas eleies de 1994 ?

32) Utilizando SQL: a) Escolha trs tabelas e inclua uma linha em cada uma delas ( Ateno ! A sequncia de incluso deve respeitar a integridade referencial entre as tabelas ! ); b) Foi solicitada a recontagem de votos no estado RS, nas eleies de 1994 e, com isso, o candidato nmero 4562 recebeu mais 4500 votos e o de nmero 3465, mais 1200. Atualize a(s) tabela(s) correspondente(s).

Potrebbero piacerti anche