Solucao - Banco de Dadsos

download Solucao - Banco de Dadsos

of 20

  • date post

    26-Jun-2015
  • Category

    Documents

  • view

    92
  • download

    1

Embed Size (px)

Transcript of Solucao - Banco de Dadsos

Resoluo dos Exerccios MC536Tiago Falco Engenharia de Computao (05) Unicamp, 2007 MC536: Bancos de Dados: Teoria e PrticaResoluo dos Exerccios Informaes : Em caso de encontrar algum erro nas resolues aqui propostas envie um e-mail detalhando o erro com a correta soluo para o professor (rtorres@ic.unicamp.br) com copia para Tiago Falco (ra046802@students.ic.unicamp.br). Os enunciados podem ser encontrados na pagina do curso.

1 Exercicio 11. O ndice uma estrutura de dados auxiliar associado a uma Tabela. Sua funo acelerar o tempo de acesso aos registros de uma Tabela. Um SGBD usa ndices de maneira semelhante ao ndice remissivo de um livro: verica um determinado assunto no ndice e depois localiza a sua posio em uma determinada pgina, assim agilizando e facilitando o acesso aos Dados. [2, ndice (Banco de Dados)] 2. BD Bancos de dados, so conjuntos de dados com uma estrutura regular. Um banco de dados normalmente agrupa dados utilizados para um determinada nalidade.[2, Banco de dados] SGBD Um Sistema Gerenciador de Banco de Dados (como no Brasil) ou Sistema Gestor de Base de Dados (SGBD) o conjunto de programas de computador (softwares) responsveis pelo gerenciamento de uma base de dados. O principal objetivo retirar da aplicao cliente a responsabilidade de gerenciar o acesso, manipulao e organizao dos dados. O SGBD disponibiliza uma interface para que os seus clientes possam incluir, alterar ou consultar dados. Em bancos de dados relacionais a interface constituda pelas APIs ou drivers do SGBD, que executam comandos na linguagem SQL.[2, SGBD] SI Sistema de Informao (em ingls, Information System) a expresso utilizada para descrever um sistema automatizado (que pode 1

ser denominado como Sistema de Informao Computadorizado), ou mesmo manual, que abrange pessoas, mquinas, e/ou mtodos organizados para coletar, processar, transmitir e disseminar dados que representam informao para o usurio.[2, Sistema de informao] 3. [1] Quando usar o SGBD: Controle de Redundncia; Restrio de Acesso no autorizado; Persistncia dos dados; Garantia de um processamento eciente baseado nos ndices e armazenamentos temporrios; Backup e Restaurao; Restrio de Integridade; Flexibilidade na alterao da estrutura do Banco de dados. Quando usar diretamente arquivos: Aplicaes simples, bem denidas e sem previso de mudanas; Acesso multiusurio no necessrio; Requisitos de tempo real - no so atendidos devido ao overhead do BD; Altos custos com investimentos iniciais em hw, sw e treinamento.

2 Exercicio 21. [6]

2

3 Exercicio 31. (a)

(b)

3

2. Soluo Simples[3] :

Soluo do Livro[5] :

4

4 Exercicio 41. (a) No Possui: "cada lme h pelo menos uma ta, e cada ta contm somente um lme" "poucos lmes necessitam duas tas" "Nem todos lmes possuem estrelas" (b) Foram Incorporados: Entidade Locadora - Na especicao apenas citada "uma pequena locadora" Multivalorao do Telefone

5 Exerccio 61. (a) Pessoa(id ,nome,chassi,num) Lugares(chassi,num,disponibilidade) Onibus(chassi,modelo,lugares) Motorista(registro,data_ emprego,nome) Conduz(chassi,registro,hora_ data,itinerario,cod) Multa(cod,valor) 2.

5

6 Exerccio 71. (a) Projetista 1 Categoria(nome) Filme(id,titulo,nome) Ator(nome_ fantasia,nome,data_ nascimento) Estrela(id,nome_ fantasia) Cliente(id,prenome,sobrenome,CEP,num,tel,id_ ta,id_ lme,dataA,dataDev,dataDevR) Fita(id,id_ lme,id1,id1_ lme) Projetista 2 Locadora(CGC,nome) Categoria(cod,nome) Ator(cod,nome_ popular,nome_ artistico,data_ nascimento) Filme(id,titulo,cod_ categoria) Estrela(id_ lme,cod_ ator) Fita(numero,rolo,id_ lme,numero_ cliente) Cliente(numero,prenome,sobrenome,endereco,telefone) (b) Quais tas agregam outras? Data de Alocao? Data "Prevista"da Devoluo? Data Real da Devoluo? CEP do cliente? Numero da Rua do cliente?

7 Exerccio 91. (a) Resultado data_nasc>16/07/1984 (Alunos) (b) Ministradas codigo,ano,semestre (prof essor=Joo C. Setubal Cursa) DiscMinistradas M inistradasDisciplinas Resultado ano,semestre,nome_disciplina (DiscM inistradas) (c) Denise (nome_aluno=Denise Souza Ferrari Alunos)Cursa DeniseA Denise Denise.codigo=Disciplinas.codigo AN D Denise.N otaDisciplinas.corte_A Disciplinas Resultado nome_Disciplina DeniseA (d) Bio nome_disciplina=BiologiaComputacional Disciplinas NotaA Bio Bio.codigo=Cursa.codigo AN D Cursa.notaBio.corte_A Cursa Resultado ra N otaA (e) Resultado (ra Alunos) (ra Cursa) (f) [4] C2 Cursa(codigo, ra2, prof essor2, ano2, semestre2, nota2) 6

Resultado (codigo Cursa)(codigo (Cursa C2.codigo=Cursa.codigo AN D C2.ra2=Cursa.ra C2)) (g) Vazias (codigo Disciplinas) (codigo Cursa) Resultado nome_disciplina (V aziasDisciplinas) (h) [4] C2 Cursa(codigo, ra2, prof essor2, ano2, semestre2, nota2) RA ra (Cursa C2.codigo=Cursa.codigo AN D C2.ra2=Cursa.ra C2) Resultado nome_aluno (RAAlunos)

8 Exerccio 101. (a) Distancia vid,distancia,aid V oo Alcance Distancia Distancia.aid=Aviao.aid AN D Aviao.autonomiaP 2.salario2 P 2 S1 nome1 P roduto S2 nome2 P roduto Resultado S1 S2

9 Exerccio 121. (a) Clculo {t.RG | t T rabalha t.salario > 10000 e Empregado(e.cidadeM ora = Campinas e.RG = t.RG)} lgebra Salario salario>10000 T rabalha Resultado RG (Salario Salario.RG=mprega.RG AN D Salario.salario>10000 Empregado) 7

(b) Clculo {e.nomeEmpregado | e Empregados t T rabalha ( f F irma(e.RG = t.RG t.codF irma = f.codF irma e.cidadeM ora = f.cidadeSede))} lgebra Sede codF irma, cidadeSedeF irma Trabalham RG,cidadeSede (SedeEmpregado) Resultado nome (T rabalham T rabalham.RG=Empregado.RG AN D T rabalham.cidadeSede=Empregado.cidadeMora Empregado) 2. (a) origem So Paulo Curitiba (b) NrOnibus 311 (c) NrOnibus1 123 (d) NrOnibus 101 222 NrOnibus2 101 dest1 So Paulo destino Rio de Janeiro So Paulo

10 Exerccio 131. (a) {a.RA, a.nome_aluno, a.ano_admiss | a Alunos a.data_nasc > 16/07/1984} (b) {c.ano, c.semestre, d.nome_disciplina | c Cursa c.prof essor = Joo C. Setubal d Disciplias( c.codigo = d.codigo)} (c) {d.nome_disciplina | d Disciplinas c Cursa ( c.codigo = d.codigo c.nota > d.corte_a a Alunos (a.nome_aluno = Denise Sousa Ferrari a.ra = c.ra ) )} (d) {c.ra | c Cursa d Disciplinas (d.nome_disciplina = Biologia Computacional c.codigo = d.codigo c.nota > d.corte_a )} (e) {a.RA, a.nome_aluno | a Alunos c Cursa ( a.ra = c.ra )} ou {a.RA, a.nome_aluno | a Alunos c Cursa ( a.ra = c.ra )} (f) {d.nome_disciplina | d Disciplinas c Cursa ( d.codigo = c.codigo )} ou {d.nome_disciplina | d Disciplinas c Cursa ( d.codigo = c.codigo )} 8

(g) {d.nome_disciplina | d Disciplinas c Cursa ( d.codigo = c.codigo ) k Cursa ( d.codigo = k.codigo k.ra = c.ra )} (h) {a.nome_aluno | a Alunos d Disciplinas( c Cursa ( a.ra = c.ra c.codigo = d.codigo ))}

11 Exerccio 151. Clculo {e.N ome, e.Endereco | e Empregados d Dependente( d.N ome = Maria e.Ident = d.IdentEmp ) j P rojeto (j.N ome = Engenharia de Software) t T rabalhaN o ( t.IdentEmpregado = e.Ident t.P rojN um = j.N um )} lgebra Maria IdentEmp (N ome=Maria Dependente) Funcionarios IdentEmp,N ome,Endereco (M aria Maria.IdentEmp=Empregado.Ident Empregado) Trabalham F uncionariosT rabalhaN o Engenharia N um (N ome=Engenharia de Software P rojeto) Resultado N ome,Endereco (T rabalham T rabalham.P rojN um=Engenharia.N um Engenharia) 2. Clculo {p.N um, p.DepN um, g.N ome, g.endereco, g.DataN asc | p P rojeto p.local = Campinas g Empregado d Departamento ( d.N um = p.DepN um d.IdentGer = g.Ident )} lgebra P roj(N umP roj, N omeP roj, Local, DepN um)(Local=Campinas P rojeto) Dep N umP roj,DepN um,IdentGer (P roj P roj.DepN um=Departamento.N um Departamento) Ger Dep Dep.IdentGer=Empregado.Ident Empregado Resultado N umP roj,DepN um,N ome,Endereco,DataN asc Ger 3. Clculo {e.N ome | e Empregados d Dependente(e.Ident = d.IdentEmp c Departamento( c.N ome = Comercial) p P rojeto (p.DepN um = c.N um t T rabalhaN o (t.IdentEmp = e.Ident t.P rojN um = p.N um)))} lgebra R1 P rojeto d.N um=p.DepN um (d.nome=Comercial Departamento) T rabalha(Ident, N um)(IdentEmp,P rojN um T rabalhaN o) R2 ((Ident Empregado)(N um P rojeto)) T rabalha R3 (Ident Empregado) (Ident R2) ComDep(Ident)(IdentEmp Dependente) R4 R3 ComDep Resultado N ome (R4Empregado) 9

12 Exerccio 161. (a) A chave AB uma vez que com este se dene univocamente todas tupla de R. No esta em 2FN pois D,E e F, que no so atributos primos, dependem parcialmente da chave. (b) R1(A,B,C) R2(A,D,E) R3(B,F) R4(F,G,H) R5(D,I,J) 2. (a) Chave: B 2FN (b) Chave: BD 1FN (c) Chave: ABC,BCD 3FN (d) Chave: A 2FN (e) Chave: AB,CD,AD,BC 3FN

13 Exerccio 171. (a) Chaves: {A,B} , {B,C} , {B,D} 3FN (b) Chave: {A,B} 1FN (c) Chaves: {A,B} , {B,C} , {A,D} , {C,D} BCNF (d) Chaves: {A} , {B} , {C} , {D} BCNF (e) Chave: {A,B,D,E} 1FN (f) Chaves: {A,B}, {A,C}, {A,D} 1FN 2. Para: t1 (a, b1 , c1 ) t2 (a, b2 , c2 ) Gera: t3 (a, b1 , c2 ) t4 (a, b2 , c1 ) Para: t1 (a, b2 , c2 ) t2 (a, b3 , c3 ) Gera: t3 (a, b2 , c3 ) t4 (a, b3 , c2 ) Para: t1 (a, b1 , c1 ) t2 (a, b3 , c3 ) Gera: t3 (a, b1 , c3 ) t4 (a, b3 , c1 ) Logo, as outras tuplas que devem existir so:

10

(a, b1 , c2 ) (a, b2 , c1 ) (a, b2 , c3 ) (a, b3 , c2 ) (a, b1 , c3 ) (a, b3 , c1 )

14 Exerccio 191. (a) F={ACCD,BC} BC viola 2FN,dependncia funcional parcial (b) F={ABC,CD} CD viola 3FN,C no superchave nem D atributo primo (c) Sim, se B for chave. Ex. F={AB,BC,CA} 2. Por Contra-Exemplo: A B C a 1 b c1 a 1 b c2 F={AB,CB} Mas A C, pois: T1 [C] = T2 [C] => T1 [A] = T2 [A] falso. 3. Por Contra-Exemplo: A B C D a1 b1 c1 d1 a1 b2 c2 d1 a1 b1 c1 d2 a1 b2 c2 d2 ABC, pois: T1 [A] = T2 [A] = T3 [A] = T4 [A] T1 [BC] = T3 [BC] T2 [BC] = T4 [BC] T1 [D] = T2 [D] T3 [D] = T4 [D] Mas o exemplo no atende a denio de AB nem de AC. 4. (a) ABC F={AB C, AC B, BC A}

11