You are on page 1of 32

DCC011:

Introduo a Banco de Dados

Rodrygo Santos
rodrygo@dcc.ufmg.br

Departamento de Cincia da Computao


Universidade Federal de Minas Gerais
Modelo Entidade-Relacionamento
Processo de Projeto de
Bancos de Dados
Requisitos de Dados

Esquema Conceitual
Modelo de dados de alto nvel
Independente
de SGBD

3
Modelo Entidade-Relacionamento
Entidades, atributos, relacionamentos
Atributos: simples / composto, mono /
multivalorado, armazenado / derivado
Atributos-chave
Relacionamentos
Papis
Cardinalidades (1:1, 1:N, N:M)
Participao (total, parcial)
Generalizao/Especializao
Total/parcial; sobreposta/disjunta; mltipla
4
Figura 3.15
UFMG Diagrama
DCC011 ER para
- profa. Mirella Moro o esquema EMPRESA. 5
Figura 4.7 Um reticulado de
especializao, com herana
mltipla, para um banco de
dados UNIVERSIDADE.
6
IMPORTANTE
Modelo Conceitual
CONCEITOS, ABSTRAES
ENTIDADE, ATRIBUTO, RELACIONAMENTO
Piloto, equipe, pas, circuito, corrida
Piloto representa Pas
Equipe sede em Pas
Pas uma entidade? Pas um atributo de Piloto e Equipe?
Mas a especificao diz!!!! ????
N esquemas conceituais para um cenrio
Esquema tem APENAS o que est na especificao
Restries, excees, peculiaridades, viagem na maionese:
OUTRO ESQUEMA
Pecar por excesso x Pecar por falta

7
Modelo Relacional
(3rd ed: 7.1-7.2; 5th ed: 5.1-5.2)

1. Introduo
2. Conceitos do Modelo Relacional
3. Restries de Integridade Bsicas
4. Esquema do BD Relacional
5. Restries de Integridade do Esquema
6. Exerccio
Processo de Projeto de
Bancos de Dados
Requisitos de Dados

Esquema Conceitual
Modelo de dados de alto nvel
Independente
de SGBD

SGBD
Especfico
Esquema Lgico (Conceitual)
em um modelo de dados
de um SGBD especfico

9
1. Introduo
O modelo relacional representa um banco de
dados como um conjunto de relaes
Informalmente
uma relao = uma tabela de valores

cada linha representa uma coleo de dados


relacionados
cada linha de uma tabela representa um
fato que tipicamente corresponde a uma
entidade ou relacionamento do mundo real

10
2. Conceitos do Modelo Relacional
Tabela = relao
Linhas de uma tabela = tuplas
Cabealho de cada coluna = atributo
Conjunto de valores que pode aparecer em cada coluna
= domnio

Figura 7.1 Os atributos e as tuplas de uma relao ALUNO.

11
Conceitos: Esquema de Relao
Descreve a relao
R(A1,A2, ...,An), onde:
R Nome da relao
Ai Nome de um atributo
n Grau da relao
Exemplo:
Estudante (Nome, CPF, Telefone, Endereo, RSG)

12
Conceitos: Relao
Relao r(R)
Conjunto de tuplas: r = {t1,t2, ..., tm}
Cada tupla uma lista ordenada de valores:
t = <v1,v2, ..., vn>
Attributo Ai na tupla t: t[Ai]
r(R) dom(A1) x dom(A2) x ... x dom(An)

13
Caractersticas de uma Relao
As tuplas de uma relao no so ordenadas (entre elas)

Figura 7.2 A relao ALUNO da Figura 7.1 com uma ordenao diferente das tuplas.

Registros em um arquivo so ordenados de acordo com a


posio em que so armazenados no disco
14
Caractersticas de uma Relao
Uma tupla uma lista ordenada de valores
O valor de cada atributo em uma tupla
atmico
Atributos compostos e multivalorados no so
permitidos
O valor especial null utilizado para representar
valores no conhecidos ou no aplicveis a uma
determinada tupla
Um esquema de relao pode ser visto como
predicados a serem satisfeitos
Valores em cada tupla satisfazem os predicados

15
3. Restries de Integridade Bsicas

Restries de domnio
Especificam que o valor de cada atributo A
de uma relao deve ser um valor atmico
do domnio dom(A)

16
Restries de Integridade
Restries de chave
Uma super-chave qualquer conjunto de
atributos que identificam unicamente uma tupla
Seja um conjunto de atributos SK de um esquema R
Para duas tuplas distintas quaisquer t1 e t2 de r(R)
Se t1[SK] t2[SK], SK uma super-chave de R
Super-chave default: todos os atributos
Uma chave de R uma super-chave mnima
Nenhum subconjunto da chave super-chave
{SSN, Name, Age} = super-chave; {SSN} = chave

17
Restries de Integridade
Restries de chave
Um esquema de relao pode ter mais de uma chave
chaves candidatas
Dentre as chaves candidatas de um esquema de relao,
uma delas indicada como chave primria e as demais
constituem as chaves alternativas

Figura 7.4 A relao CARRO com duas chaves candidatas: NumeroLicenca e NumeroChassi.
18
Restries de Integridade
Restries em valores null
Especifica se um atributo pode ter valores null
Exemplo: todo Aluno deve ter um nome vlido,
no-null

19
4. Esquema de um BD Relacional
Um esquema de BD relacional S define:
um conjunto de esquemas de relao
R = {R1,R2, ...,Rn}, e
um conjunto de restries de integridade I

S = (R,I)

20
Esquema de um BD Relacional

Figura 7.5 Diagrama para o esquema do banco de dados relacional EMPRESA.

21
5. Restries de Integridade do Esquema

Outras restries alm das restries de


domnio e de chave

Restrio de integridade de entidade


Nenhum componente de uma chave
primria pode ser nulo
Valores nulos no permitem a identificao
unvoca de uma tupla

22
Restries de Integridade
Restrio de integridade referencial
Usada para manter a consistncia entre
tuplas de duas relaes
Uma tupla em uma relao que se refere
a outra relao deve referenciar uma
tupla existente nessa outra relao
Aparecem devido aos relacionamentos
entre entidades

23
Restries de Integridade
Restrio de integridade referencial
Seja FK um conjunto de atributos de um
esquema de relao R1 definido sobre o
mesmo domnio dos atributos da chave
primria PK de outro esquema R2. Ento,
para qualquer tupla t1 de R1:
t1[FK] = t2[PK], onde t2 uma tupla de R2 ou
t1[FK] nulo

24
Restries de Integridade
A restrio de integridade referencial pode ser
expressa pela notao
R1[FK] R2[PK],
onde FK a chave estrangeira de R1 e
PK a chave primria de R2
Exemplos:
EMPLOYEE[DNO] DEPARTMENT[DNUMBER]
WORKS_ON[ESSN] EMPLOYEE[SSN]
WORKS_ON[PNO] PROJECT[PNUMBER]

25
Notao
NomeTabelaPrincipal
Chave Atributo1 Atributon

NomeTabelaReferenciada
Atributo1 Atributon Chave

26
Figura 7.7 Restries de integridade referencial exibidas no esquema de
um banco de dados relacional EMPRESA.
27
Reviso
Uma relao = uma tabela de valores
Tuplas, atributos, domnios
Restries de domnio
Restries de chave
Chave e super-chave; chave candidata, chave
primria, chave alternativa
Restries de valores null
Esquema = relaes + restries integridade
Restrio de integridade de entidade
Atributos da chave no nulos
Restries de integridade referencial
Chave estrangeira
28
Exerccio 1 (correo)

29
1. Formula 1
Deseja-se projetar uma base de dados que mantenha resultados de
corridas de Frmula 1. A base de dados deve manter informaes sobre
as equipes (cdigo, nome e pas), bem como sobre os pilotos que
pertencem a cada equipe (equipe a que pertence, cdigo, nome e pas). Os
pases so identificados por uma sigla e a base de dados deve conter o
nome de cada pas. Tambm necessrio armazenar dados sobre os
circuitos (cdigo, nome e pas). Para cada corrida realizada no circuito,
necessrio saber a data em que ocorreu, a durao em minutos e a
posio que cada piloto obteve na corrida.

30
2. Artigos Publicados
A SBC deseja manter uma base de dados com artigos publicados pelos
pesquisadores brasileiros. Para cada pesquisador, necessrio conhecer
seu nome e a instituio a qual ele est vinculado. O pesquisador
identificado pelo seu CPF. Cada instituio tem um cdigo que a identifica
e um nome. Adicionalmente, necessrio conhecer os artigos publicados
por cada autor. Para cada artigo, necessrio saber seu ttulo, o veculo de
publicao e a pgina inicial e final em que aparece o artigo dentro do
veculo. Veculos de publicao so, por exemplo, peridicos especializados
ou anais de congressos. Para cada veculo de publicao, necessrio
conhecer seu ttulo e local em que foi publicado. Tanto veculos de
publicao, quanto artigos tm um cdigo numrico que os identifica.

Instituicao (CodInst,NomeInst) Instituio


1 N
Pesquisador
Pesquisador (CPF,NomePesq)
Artigo(CodArt,TituloArt,PagInic,PagFim) N

Veiculo(CodVeic,TituloVeic,LocalVeic) M

Veculo 1 N
Artigo

31
3. Agncia Viagens
Uma agncia de viagens resolveu montar uma base de dados com informaes
sobre voos das companhias de aviao das quais vende bilhetes. A agncia atende
vrias companhias de aviao, cada qual identificada por uma sigla (por exemplo,
GLO) e tendo um nome (por exemplo, Gol). Cada companhia possui vrios voos.
Um voo identificado por uma sigla (por exemplo, GLO0982) que inclui a sigla da
companhia responsvel. Cada voo sai de um aeroporto e tem como destino outro
aeroporto. Os aeroportos so igualmente identificados por uma sigla (por exemplo
CNF) e tm um nome (por exemplo Belo Horizonte). Cada voo tem um horrio de
sada e um horrio de chegada. H alguns voos compartilhados. Um voo
compartilhado um voo de uma companhia, mas que usa, na realidade, um voo de
outra companhia. Por exemplo, o voo JJ4598 da TAM no existe fisicamente, mas
utiliza o voo RG2324 da Varig. Para voos compartilhados necessrio conhecer o
voo que eles usam.
origem 1 original
1
Companhia (SiglaC,NomeCia) Aeroporto
N
Voo
Voo(Sigla, horaSaida, horaCheg) 1 destino
N N comp

Aeroporto(SiglaA,NomeAero) 1
N
Cia

32