Você está na página 1de 13

Banco de Dados Lista de Exerc cios 01

Prof. Anderson Rocha & Prof. Andr e Santanch e Campinas, 24 de Setembro de 2012

Nome:

RA:

Observa c oes

Este lista contem 20 exerc cios e contempla os seguintes assuntos do curso: 1. Introdu c ao: arquitetura de banco de dados. 2. Modelos de dados: modelagem e abstra c oes. 3. Modelos conceituais: modelo entidade-relacionamento (ER) b asico e estendido. 4. Modelo relacional: deni c oes e formaliza c ao. 5. Mapeamento do modelo ER para o modelo relacional. 6. Depend encias funcionais e normaliza c ao. 7. Linguagens de deni c ao e de manipula c ao de dados. Bons estudos.

2
2.1

Quest oes
Q Evidencie as diferen cas entre os conceitos de BD, SGBD e Sistemas de BD.

Proposta de resposta : Bancos de Dados s ao conjuntos de dados relacionados e acess veis. Dados s ao fatos conhecidos, que podem ser registrados e possuem signicado. Sistemas Gerenciadores de Bancos de Dados (SGBD) s ao sistemas que gerenciam BD, ou s ao linguagens utilizadas para manter os BD. Sistemas de BD s ao sistemas desenvolvidos com fun c oes espec cas, que usam BD, desenvolvidos em SGBD.

2.2

Q Por qu e e importante em um sistema de banco de dados armazenar os dados em um arquivo separado de sua deni c ao?

Proposta de resposta :

A separa c ao da base de dados em dois arquivos distintos e importante pois a estrutura dos dados muda pouco enquanto que os dados em si mudam muito devido inser c ao, altera c ao ou remo c ao de dados. Assim, o SGBD cria um arquivo para a estrutura dos dados e outro para os dados em si.

2.3

Q Banco de dados de uma livraria MER.

Considere o banco de dados de uma livraria. De acordo com os requisitos a seguir, utilize o MER para representar o banco de dados desta livraria. 1. A livraria deseja manter um cadastro de clientes. 2. Sobre cada cliente, e importante manter seu endere co, telefone, CPF e lista dos livros que este cliente j a comprou. Para cada compra, e importante guardar a data em que esta foi realizada. 3. Um cliente pode comprar muitos livros. Um livro pode ser vendido para mais de um cliente pois geralmente h a v arios livros em estoque. 4. Um cliente pode ser pessoa f sica ou jur dica. Se for pessoa jur dica, o seu identicador deve ser o CNPJ. 5. A livraria compra livros livros de editoras. 6. Sobre as editoras, a livraria precisa de seu c odigo, endere co, telefone de contato, e o nome de seu gerente. 7. Cada cliente tem um c odigo u nico. 8. Deve-se manter um cadastro sobre cada livro na livraria. Para cada livro, e importante armazenar o nome do autor, assunto, editora, ISBN e a quantidade dos livros em estoque. 9. Editoras diferentes n ao fornecem o mesmo tipo de livro.

Proposta de resposta :

A Figura 1 apresenta uma poss vel solu c ao.

Figura 1: Banco de dados de uma livraria.


(a) Cliente. (b) Livro.

C odigo C odigo

Telefone Endere co

Endere co Telefone

CPF

CNPJ

Tipo

ISBN

Qtde ISBN

Assunto

Autor

C odigoEditora

(c) Editora.

(d) Cliente Compra Livro.

Gerente

C odigoCliente

Tabela 1: Modelo relacional para o banco de dados de uma livraria.

2.4

Q Banco de dados de uma livraria RELACIONAL.

Considere o banco de dados do exerc cio anterior. Fa ca o mapeamento desse banco para o modelo relacional.

Proposta de resposta :

A Tabela 1 apresenta uma poss vel solu c ao. No caso, cliente pessoa f sica e pessoa jur dica s ao disjuntos e apenas possuem o atributo CPF ou CNPJ. Desta forma, o mapeamento mais simples e colocar um atributo que diz o tipo de cliente. Como nada e perfeito, quando o cliente e pessoa f sica, o CNPJ deste e vazio. Um valor padr ao pode ser criado para evitar nulos mas isso j a e detalhe de implementa c ao.

2.5

Q Banco de dados de um hospital MER.

Considere o banco de dados de um hospital. De acordo com os requisitos a seguir, utilize o MER para representar o banco de dados desta livraria. 1. O hospital possui v arias alas.

2. Cada ala possui uma enfermeira respons avel. 3. Cada enfermeira se reporta a uma enfermeira-chefe. 4. Enfermeiras podem atender apenas uma ala. 5. O hospital atende (credencia) os planos de sa ude A, B e C. 6. Para cada plano de sa ude, e necess ario saber os m edicos credenciados no mesmo. 7. M edico tem CRM e enfermeira CRE que lhes s ao u nicos. 8. Todo atendimento de um m edico a um paciente deve ser registrado com a data e hora em que o mesmo ocorreu. 9. Um mesmo paciente pode ser atendido por mais de um m edico. 10. Hospital tem CNPJ. 11. Ala do hospital tem um identicador. 12. Plano de sa ude tem um nome e telefone da operadora. 13. M edicos t em nome e especialidade. 14. Enfermeiras t em nome. 15. O nome de um plano de sa ude eu nico.

Proposta de resposta :

A Figura 2 apresenta uma poss vel solu c ao.

2.6

Q Banco de dados de uma hospital RELACIONAL.

Considere o banco de dados do exerc cio anterior. Fa ca o mapeamento desse banco para o modelo relacional.

Proposta de resposta :

A Tabela 2 apresenta uma poss vel solu c ao.

Figura 2: Banco de dados de um hospital.

2.7

Q Qual e a diferen ca entre entidade forte e entidade fraca? Uma entidade identicadora e forte? D e exemplos.

Proposta de resposta :

Entidade fraca e a entidade que n ao existe no banco de dados sem estar associada a uma entidade identicadoras. Isto implica que esta n ao possui seus pr oprios atributos chaves. Neste tipo de entidade, suas inst ancias s ao identicadas unicamente pelo conjunto formado por algum(ns) de seus atributos e algum(ns) atributo(s) de outro tipo de entidade chamada entidade identicadora. Por outro lado, uma entidade forte existe no banco e possui atributos que a identicam sem precisar estar associadas a outra entidade identicadora. Ex. t pico: Empregado e dependentes. Uma entidade identicadora pode por si mesma ser identicada apenas por outra entidade identicadora numa esp ecie de cascata. Assim, ser identicadora n ao implica em ser entidade forte.

(a) Enfermeira.

(b) Ala Hospital.

(c) Hospital.

(d) Plano de Sa ude.

CRE

Nome

CRE Chefe NomePlano CRM Data CPF

ID

CRE
(f) Paciente.

ID NomePlano CRM

Nome Nome

Fone Especialidade

(e) H Credencia PS.

(g) M edico.

ID Hospital NomePaciente

NomePaciente

(h) M edico Atende Paciente.

Hora

Tabela 2: Modelo relacional para o banco de dados de um hospital.

2.8

Q Diferencie chave, chave prim aria, chave candidata e superchave.

Proposta de resposta :

Superchave e um conjunto de um ou mais atributos que, tomados coletivamente, nos permite identicar de maneira un voca uma entidade em um conjunto de entidades. Chaves s ao superchaves minimais. Isto implica que o subconjunto de atributos nesta chave n ao pode ser reduzido e ainda mantermos a propriedade da identica c ao un voca. Chaves candidatas s ao chaves que identicam univocamente uma entidade. T em a propriedade de serem superchaves minimais. Chave prim aria e a chave candidata escolhida pelo projetista.

2.9

Q O que e uma depend encia funcional?

Proposta de resposta :

Uma depend encia funcional (DF) e uma propriedade da sem antica ou do signicado dos atributos. Formalmente, uma depend encia funcional entre dois conjuntos de atributos, x e y , que s ao subconjuntos de um esquema de rela c ao R, denotada por x y e uma restri c ao que estabelece que para quaisquer tuplas t1 e t2 de uma inst ancia r de R, tal que, se temos t1 [x] = t2 [x], ent ao tamb em devemos ter que t1 [y ] = t2 [y ]. Em outras palavras, os valores do componente y em uma tupla de r dependem de (ou s ao determinados por) valores do componente x.

2.10

Q Utilizando as regras de infer encia de Armstrong, mostre que se X Y e X Z ent ao X Y Z .

Proposta de resposta :

X XY pela regra A2. Temos que X Z , logo XY ZY por A2. Finalmente, X ZY por A3.

2.11

Q Calcule o fecho das seguintes depend encias funcionais: A B, C {D, E }, {A, B } F e F G.

Proposta de resposta :

{A}+ = {A, B }, {C }+ = {C, D, E }, {A, C }+ = {A, B, C, D, E, F, G} {F }+ = {F, G}.

2.12

Q Normaliza c ao 1.

Considere a seguinte rela c ao:


(a) Pessoa.

RG

Nome

{Endere co}

Telefone

{Habilidade}

Esta pessoa pode possuir mais de um endere co e mais de uma habilidade. Este rela c ao est a em que forma normal. Normalize esta rela c ao para a forma normal mais prop cia.

Proposta de resposta :

Como vimos, {Endere co} e {Habilidade} s ao atributos multivalorados. Portanto, a rela c ao Pessoa n ao est a na primeira forma normal. Vamos resolver este problema quebrando a rela c ao em tr es.
(b) Pessoa. (c) Habilidades Pessoa. (d) Endereco Pessoa.

RG

Nome

Telefone

RG

Habilidade

RG

Endere co

Segundo esta normaliza c ao, n ao h a atributos multivalorados, n ao h a depend encia parcial de chave e n ao h a transitividade. Al em disso, toda depend encia n ao trivial X Y tem X como superchave ent ao as rela c oes est ao em FNBC.

2.13

Q Normaliza c ao 2.

Considere a seguinte rela c ao:


(e) Rela ca o R .

H {A, B } {C, D, E, F} {B } {G, H}.

Considere tamb em o conjunto de depend encias funcionais: Normalize esta rela c ao para a forma normal mais prop cia.

Proposta de resposta :

Temos um caso de depend encia parcial da chave. Desta forma, vamos quebrar a rela c ao em duas.
(f) Rela ca o R1 . (g) Rela ca o R2 .

Como n ao h a mais depend encia parcial de chave, transitividade e toda depend encia n ao trivial X Y tem X como superchave, as rela c oes est ao em FNBC. Obviamente, apenas o CPG Funcionario poderia determinar todos os atributos.

2.14

Q Normaliza c ao 3.

Considere a seguinte rela c ao:


(h) Rela ca o S .

A, B

{A} {C, D, E, F } {B } {F } Considere tamb em o conjunto de depend encias funcionais: {E } {G} {D} {B }

Proposta de resposta :

Temos casos de depend encia parcial de chave e de transitividade. Al em disso, nem toda depend encia n ao trivial X Y tem X como superchave (e.g. D B ). Vamos quebrar em v arias rela c oes.
(i) S1 . (j) S2 . (k) S3 . (l) S4 . (m) S5 .

Esta e uma solu c ao que cria redund ancia. Optei por esta resposta para garantir todas as depend encias funcionais. Aceitaria respostas que, por ventura, ocasionasse perda em depend encias funcionais pois n ao foi pedido normaliza c ao sem perda. As rela c oes S1 , . . . S5 est ao em BCNF agora.

2.15

Q Opera c oes com conjuntos.

Dados os conjuntos R = {a, b, c, d, e}, S = {b, c, d, a, f, g } e T = {a, h}, fa ca: R S T; R T; S (R T ); (R T ) (S T );

Proposta de resposta :

R S T = {a,b,c,d,e,f,g,h}; R T = {a}; S (R T ) = {g}; ( R T ) ( T S ) = { }; 9

2.16

Q Algebra relacional 1.

Considere as rela c oes Aluno e Tese a seguir.


(a) Aluno A. (b) Tese T .

RA

Nome

Situa c ao

Curso

Endere co

C odigo

RA Aluno

Tipo

T tulo

Ano Defesa

Liste todos os nomes de alunos de mestrado, que moram na rua Jabaquara ou Jo ao V tor e que estejam regulares no curso. Liste os nomes dos alunos que defenderam tese em 2005. Liste tamb em o t tulo da tese junto com o nome do aluno. Liste o nome dos alunos de doutorado que j a defenderam tese de mestrado.

Proposta de resposta :

Liste todos os nomes de alunos de mestrado, que moram na rua Jabaquara ou Jo ao V tor e que estejam regulares no curso. N ome (curso=mestradosituacao=regular(endereco= Jabaquara endereco= JoaoV itor ) (A) Liste os nomes dos alunos que defenderam tese em 2005. Liste tamb em o t tulo da tese junto com o nome do aluno. nome,titulo (anoDef esa= 2005 (A RA=RA
Aluno

T )))

Liste o nome dos alunos de doutorado que j a defenderam tese de mestrado. nome (curso= Doutorado T ipo= M estrado (A RA=RA
Aluno

T )))

2.17

Q C alculo relacional 1.

Considere as rela c oes Aluno e Tese do exerc cio anterior. Refa ca as consultas solicitadas utilizando a nota c ao do c alculo relacional.

Proposta de resposta :

Liste todos os nomes de alunos de mestrado, que moram na rua Jabaquara ou Jo ao V tor e que estejam regulares no curso. {t.nome | t A t.curso = M estrado t.Situacao = Regular (t.Endereco = Jabaquara t.Endereco = JoaoV itor )} 10

Liste os nomes dos alunos que defenderam tese em 2005. Liste tamb em o t tulo da tese junto com o nome do aluno. {a.nome, t.titulo|a A t T t.AnoDef esa = 2005 a.RA = t.RA Aluno} Liste o nome dos alunos de doutorado que j a defenderam tese de mestrado. {a.nome|a A t T (a.RA = t.RA Aluno t.tipo = M estrado }

11

2.18

Q Algebra relacional 2.

Considere as rela c oes Aluno e Professor e Publica c ao e Pessoa Publica c ao.


(a) Aluno A. (b) Docente D.

RA

CPF

Nome

Situa c ao

Curso

Endere co Ano

Matr cula Codigo

CPF CPF

Nome

Endereco

Dedicacao

(c) Publicacao P .

(d) Pessoa Publicacao P P .

Codigo

Titulo

Qualis

NomePeriodico

Liste todas as publica c oes feitas pelo docente Anderson em 2005. Liste todas as publica c oes feitas por no m nimo um professor e um aluno.

Proposta de resposta :

Liste todas as publica c oes feitas pelo docente Anderson em 2005. R1 CP F (N ome = Anderson (D)) R2 Codigo (R1 CP F P P ) Ano = 2005 (R2 ) R1 R2 Liste todas as publica c oes feitas por no m nimo um professor e um aluno. R3 R4 A CP F P P D CP F P P R1 Codigo R2 (Codigo (R3 )) Codigo P

2.19

Q C alculo relacional 2.

Considere as rela c oes Aluno e Professor e Publica c ao e Pessoa Publica c ao do exerc cio anterior. Refa ca o exerc cio utilizando a nota c ao do c alculo relacional.

Proposta de resposta :

Liste todas as publica c oes feitas pelo docente Anderson em 2005. {p | p P d D pp P P (d.CP F = pp.CP F pp.Codigo = p.Codigo)} Liste todas as publica c oes feitas por no m nimo um professor e um aluno. {p | p P a A, d D, pp1 P P, pp2 P P (a.CP F = pp1 .CP F d.CP F = pp2 .CP F pp1 .Codigo = pp2 .Codigo pp1 .Codigo = p.Codigo)}

12

2.20

Q SQL.

Dada as consultas da quest ao 2.17, passe as mesmas para SQL.

Proposta de resposta :

1. N ome (curso=mestradosituacao=regular(endereco= Jabaquara endereco= JoaoV itor ) (A) 2. nome,titulo (anoDef esa= 2005 (A RA=RA
Aluno

T )))
Aluno

3. nome (curso= Doutorado T ipo= M estrado (A RA=RA SELECT FROM WHERE

T )))

A.Nome A Curso = Mestrado AND Situacao = Regular AND (Endere co = Jabaquara OR Endere co = Jo ao V tor);

SELECT FROM WHERE

A.Nome, T.T tulo A, T T.AnoDefesa = 2005 AND A.RA = T.RA Aluno;

SELECT FROM WHERE

Nome A, T A.Curso = Doutorado AND T.Tipo = Mestrado AND A.RA = T.RA Aluno;

13