O documento descreve os conceitos fundamentais de modelagem de dados, incluindo: 1) Entidades representadas por retângulos e seus atributos representados por círculos; 2) Relacionamentos entre entidades representados por losangos; 3) Cardinalidades indicadas por "pés de galinha" para mostrar quantas ocorrências de cada entidade estão envolvidas.
1. Modela¸c˜ao de base de Dados
Alberto Sim˜oes
alberto.simoes@eu.ipp.pt
Planeamento de Sistemas de Informa¸c˜ao
Mestrado em Informa¸c˜ao Empresarial
2012/2013
Alberto Sim˜oes Modela¸c˜ao de base de Dados 1/46
2. Modela¸c˜ao de Dados
A modela¸c˜ao dados ´e um m´etodo que permite modelar a
estrutura de uma base de dados;
Tipicamente ´e apresentado sob a forma de um diagrama;
O Diagrama Entidade-Rela¸c˜ao (Diagrama E-R ou DER) ´e
uma ferramenta gr´afica para facilitar a modela¸c˜ao de dados;
Os DER tˆem como objetivo modelar a semˆantica subjacente `a
estrutura de dados;
No processo de Modela¸c˜ao de Dados:
O primeiro passo corresponde `a abstra¸c˜ao!
Quanto mais tempo se mantiver longe de detalhes e de
implementa¸c˜oes espec´ıficas, mais f´acil ser´a alterar o modelo, e
decidir como ser˜ao armazenados os dados.
Alberto Sim˜oes Modela¸c˜ao de base de Dados 2/46
3. Diagrama Entidade-Rela¸c˜ao
O DER ´e uma ferramenta de modela¸c˜ao de dados, semˆantica,
que ´e usada para descrever de forma abstrata a estrutura de
dados;
A estrutura descritos de forma abstrata ´e denominada de
Modelo Conceptual.
O Modelo Conceptual ir´a permitir obter um modelo concreto.
Quando o modelo captura a vis˜ao da realidade a armazenar,
poderemos passar `a defini¸c˜ao do modelo concreto.
Um DER tamb´em pode ser usado para documentar uma base
de dados j´a existente, ajudando no processo de reengenharia.
Um DER modela dados como entidades e relacionamentos;
Alberto Sim˜oes Modela¸c˜ao de base de Dados 3/46
4. Diagrama Entidade-Rela¸c˜ao
Entidades
Uma entidade ´e uma coisa sobre a qual queremos guardar
dados, seja uma pessoa, uma conta banc´aria, um edif´ıcio;
Nas primeiras referˆencias aos DER, Chen (1976) descreveu
uma entidade como“uma coisa que pode ser distintamente
identificada”
O nome para uma entidade deve representar um tipo ou uma
classe de coisas, n˜ao uma instˆancia (tipicamente no singular);
O nome de uma entidade deve ser suficientemente gen´erico
mas, ao mesmo tempo n˜ao pode ser demasiado gen´erico: o
nome deve permitir acomodar altera¸c˜oes ao longo do tempo.
As entidades tˆem atributos;
Um atributo ´e uma propriedade ou carater´ıstica de uma
entidade.
Alberto Sim˜oes Modela¸c˜ao de base de Dados 4/46
5. Diagrama Entidade-Rela¸c˜ao
Entidades
Exemplos de Entidades:
Pessoas: empregado, veterin´ario, estudante;
Lugares: estado, pa´ıs;
Objeto: edif´ıcio, autom´ovel, produto;
Evento: venda, devolu¸c˜ao;
Conceptual: conta, departamento;
Alberto Sim˜oes Modela¸c˜ao de base de Dados 5/46
6. Diagramas Entidade-Rela¸c˜ao
Entidades
Os dados particulares sobre determinada entidade s˜ao
referidos como instˆancias;
Uma instˆancia ´e uma ´unica ocorrˆencia de uma entidade.
Cada instˆancia de uma entidade deve ser identificada
unicamente, de modo a que essa instˆancia seja distintivamente
identific´avel de todas as outras instˆancias da mesma entidade.
Por exemplo, numa entidade cliente, poderemos imaginar que
a empresa atribui um n´umero de cliente, ´unico, a cada cliente.
A este identificador ´unico chamamos chave.
Alberto Sim˜oes Modela¸c˜ao de base de Dados 6/46
7. Diagramas Entidade-Rela¸c˜ao
Entidades e Atributos
Na modela¸c˜ao com a nota¸c˜ao Chen, as entidades s˜ao
representadas em retˆangulos.
Alberto Sim˜oes Modela¸c˜ao de base de Dados 7/46
8. Diagramas Entidade-Rela¸c˜ao
Entidades e Atributos
Na modela¸c˜ao com a nota¸c˜ao Chen, as entidades s˜ao
representadas em retˆangulos.
Os atributos s˜ao colocados `a sua volta.
Uma das nota¸c˜oes usadas para atributos representa-os como
c´ırculos ou ovais ligados `a entidade em causa.
Alberto Sim˜oes Modela¸c˜ao de base de Dados 7/46
9. Diagramas Entidade-Rela¸c˜ao
Atributos
Existem v´arios tipos de atributos:
At´omicos
Atributos que n˜ao podem ser divididos, da´ı a no¸c˜ao de
at´omico;
Compostos
Atributos que s˜ao formados pela combina¸c˜ao ou agrega¸c˜ao de
atributos relacionados;
M´ultiplos
Atributos que podem conter um ou mais valores para
determinada instˆancia;
Derivados
Atributos ´uteis, mas que n˜ao ir˜ao ser armazenados, porque
podem ser calculados a partir de outros dados presentes na
base de dados.
Alberto Sim˜oes Modela¸c˜ao de base de Dados 8/46
10. Diagramas Entidade-Rela¸c˜ao
Atributos At´omicos
Exemplos de atributos at´omicos:
n´umero de identifica¸c˜ao fiscal;
n´umero de cart˜ao de cidad˜ao;
nome;
telefone;
Note que os mesmos atributos podem ser at´omicos, compostos, ou
m´ultiplos, dependendo do contexto do problema a ser resolvido.
Alberto Sim˜oes Modela¸c˜ao de base de Dados 9/46
11. Diagramas Entidade-Rela¸c˜ao
Atributos Compostos
Exemplos de atributos compostos:
nome (se for separado em nome e apelido);
c´odigo postal (se o separarem nas suas duas componentes);
data (se for separada em dia, mˆes e ano);
Alberto Sim˜oes Modela¸c˜ao de base de Dados 10/46
12. Diagramas Entidade-Rela¸c˜ao
Atributos M´ultiplos
Exemplos de atributos m´ultiplos:
telefone (se considerar que um aluno pode ter v´arios);
e-mail (se considerar que pode ter v´arios);
escola (se quiser guardar apenas nomes por onde o aluno
passou);
Alberto Sim˜oes Modela¸c˜ao de base de Dados 11/46
13. Diagramas Entidade-Rela¸c˜ao
Atributos Derivados
Exemplos de atributos derivados:
idade (calculada com base na data de nascimento);
sal´ario mensal (calculada com base no nr. de dias);
Alberto Sim˜oes Modela¸c˜ao de base de Dados 12/46
14. Diagramas Entidade-Rela¸c˜ao
Atributos Chave
Atributos especiais, que identificam inequivocamente as
instˆancias de uma entidade;
Uma entidade podem ter mais que um atributo deste tipo;
Este tipo de atributos s˜ao designados de Chaves Candidatas;
Quando deste conjunto de chaves se escolhe uma para servir
de identificador ´unico passa a ser a Chave Prim´aria;
H´a casos em que n˜ao existem atributos deste tipo, o que pode
obrigar a que se crie, artificialmente, um atributo indexador;
Alberto Sim˜oes Modela¸c˜ao de base de Dados 13/46
15. Diagramas Entidade-Rela¸c˜ao
Documenta¸c˜ao de Entidades
Os DER n˜ao s˜ao propriamente amb´ıguos, mas em muitos
casos ´e relevante explicitar decis˜oes tomadas, que podem n˜ao
ser claras para outras pessoas;
Para cada Entidade documenta-se:
A Entidade: que objetos representa.
Os Atributos: que propriedades devem ser armazenadas sobre a
entidade, e o tipo de cada uma dessas propriedades.
As Chaves: quais s˜ao as chaves candidatas, e qual, e porque
raz˜ao foi escolhida, a chave prim´aria.
Dados Exemplo: uma pequena tabela de dados fict´ıcios que
ajude `a compreens˜ao do ˆambito da entidade.
Alberto Sim˜oes Modela¸c˜ao de base de Dados 14/46
16. Diagramas Entidade-Rela¸c˜ao
Documenta¸c˜ao de Entidades (exemplo)
Entidade:
a base de dados regista informa¸c˜ao sobre os alunos da escola
de m´usica;
Atributos:
nome – nome completo do aluno;
escola – escola onde o aluno est´a a realizar o ensino
obrigat´orio;
morada – atributo composto pelos atributos rua, localidade e
c´odigo postal que contˆem a morada do aluno para
correspondˆencia;
telefone – atributo m´ultiplo com um ou mais telefones de
contacto dos encarregados de educa¸c˜ao;
data de nascimento – data de nascimento do aluno;
idade – atributo derivado, com idade do aluno, calculada com
base na data de nascimento;
n´umero aluno – n´umero ´unico atribu´ıdo pela escola a cada
aluno;
Alberto Sim˜oes Modela¸c˜ao de base de Dados 15/46
17. Diagramas Entidade-Rela¸c˜ao
Documenta¸c˜ao de Entidades (exemplo)
Chaves:
S´o existe uma chave candidata, que corresponde ao n´umero de
aluno. Note-se que dados como o nome n˜ao s˜ao
obrigatoriamente ´unicos. Deste modo, a chave prim´aria ser´a o
n´umero de aluno.
Dados Exemplo:
nome escola mor.rua mor.cp mor.local tel data nasc idade nr aluno
Jo˜ao Marques EB23 V˜ao S˜ao Crist´ov˜ao 1234-567 V˜ao 345342312 11.2.1999 14 242
Maria S´a EB23 V˜ao Estreita 1234-765 V˜ao 345123123 20.6.2000 13 245
Rui Roque EB23 Breu Direita 1234-575 V˜ao 933312345 29.2.2000 13 249
Alberto Sim˜oes Modela¸c˜ao de base de Dados 16/46
18. Diagramas Entidade-Rela¸c˜ao
Rela¸c˜oes
Uma base de dados ter´a, com certeza, mais que uma entidade;
Uma rela¸c˜ao ´e uma liga¸c˜ao ou associa¸c˜ao entre entidades;
Na nota¸c˜ao Chen:
S˜ao habitualmente denotadas por frases verbais;
S˜ao inscritas em losangos;
Devem ser lidas da esquerda para a direita (ou de cima para
baixo);
Alberto Sim˜oes Modela¸c˜ao de base de Dados 17/46
19. Diagramas Entidade-Rela¸c˜ao
Rela¸c˜oes - Cardinalidades
A rela¸c˜ao entre entidades pode ter diferentes cardinalidades:
Por exemplo:
A quantas turmas pode pertencer um aluno?
Quantos alunos podem pertencer a uma turma?
Esta cardinalidade ´e indicada na rela¸c˜ao usando p´es de
galinha:
Um aluno pertence a uma turma.
Uma turma tem v´arios alunos.
Alberto Sim˜oes Modela¸c˜ao de base de Dados 18/46
20. Diagramas Entidade-Rela¸c˜ao
Rela¸c˜oes - Cardinalidades
Existem trˆes tipos de cardinalidade:
muitos para muitos — m:n
Um cliente pode ter v´arias contas banc´arias. // Uma conta banc´aria pode ter v´arios titulares.
Alberto Sim˜oes Modela¸c˜ao de base de Dados 19/46
21. Diagramas Entidade-Rela¸c˜ao
Rela¸c˜oes - Cardinalidades
Existem trˆes tipos de cardinalidade:
muitos para muitos — m:n
Um cliente pode ter v´arias contas banc´arias. // Uma conta banc´aria pode ter v´arios titulares.
um para muitos — 1:n
Uma editora edita v´arios livros. // Um livro ´e editado por uma ´unica editora.
Alberto Sim˜oes Modela¸c˜ao de base de Dados 19/46
22. Diagramas Entidade-Rela¸c˜ao
Rela¸c˜oes - Cardinalidades
Existem trˆes tipos de cardinalidade:
muitos para muitos — m:n
Um cliente pode ter v´arias contas banc´arias. // Uma conta banc´aria pode ter v´arios titulares.
um para muitos — 1:n
Uma editora edita v´arios livros. // Um livro ´e editado por uma ´unica editora.
um para um — 1:1
Um funcion´ario ´e respons´avel por um departamento. // Um departamento tem um ´unico respons´avel.
Alberto Sim˜oes Modela¸c˜ao de base de Dados 19/46
23. Diagramas Entidade-Rela¸c˜ao
Atributos nas Rela¸c˜oes
Algumas rela¸c˜oes podem precisar de atributos;
Por exemplo, se um leitor de uma biblioteca requisita um
livro, ser´a necess´ario guardar a data da requisi¸c˜ao.
Existem duas solu¸c˜oes para este problema:
1 anotar a rela¸c˜ao com um atributo:
2 definir uma nova entidade:
Alberto Sim˜oes Modela¸c˜ao de base de Dados 20/46
24. Diagramas Entidade-Rela¸c˜ao
Relacionamentos M´ultiplos
As rela¸c˜oes n˜ao s˜ao, necessariamente, entre apenas duas
entidades;
´E poss´ıvel definir relacionamentos com mais que duas
entidades.
Alberto Sim˜oes Modela¸c˜ao de base de Dados 21/46
25. Diagramas Entidade-Rela¸c˜ao
Relacionamento Recursivo
As rela¸c˜oes n˜ao necessitam de ser entre duas entidades
distintas;
´E poss´ıvel definir relacionamentos em que dois ou mais dos
intervenientes s˜ao do mesmo tipo.
Alberto Sim˜oes Modela¸c˜ao de base de Dados 22/46
26. Exerc´ıcio 1
Um escola pretende criar uma BD que permita gerir toda a
informa¸c˜ao relativa os cursos que disponibiliza e aos alunos que os
frequentam.
Para cada curso deve ser registado o seu c´odigo, designa¸c˜ao,
dura¸c˜ao e pre¸co. Cada curso est´a estruturado em diversos
m´odulos, sendo que deve constar na BD a dura¸c˜ao de cada m´odulo
(em horas), o professor, e a data de in´ıcio de cada m´odulo. Um
m´odulo pode estar associado a diferentes cursos, com datas de
in´ıcio distintas.
Para cada aluno deve ser registado o seu n´umero, nome, morada,
c´odigo postal, localidade, cursos em que se encontra inscrito (pode
inscrever-se em mais que um curso), juntamente com a respetiva
data de inscri¸c˜ao e informa¸c˜ao sobre se o pagamento foi efetuado.
Alberto Sim˜oes Modela¸c˜ao de base de Dados 23/46
27. Diagramas Entidade-Rela¸c˜ao
Heran¸ca
Em certas circunstˆancias, determinada entidade pode ser uma
especializa¸c˜ao de outra;
Por exemplo, numa empresa de telecomunica¸c˜oes, um tarif´ario
pr´e-pago e um tarif´ario p´os-pago s˜ao especializa¸c˜oes de um
tarif´ario gen´erico.
Existem atributos que s˜ao partilhados por todos os tarif´arios,
sejam eles pr´e ou p´os pagos;
Existem outros atributos que s˜ao espec´ıficos do tipo de
atributo;
Noutro exemplo, numa biblioteca, existem diferentes tipos de
objetos que podem ser requisitados:
livros, DVD e CD tˆem diferentes propriedades;
no entanto, podem partilhar alguma informa¸c˜ao;
Alberto Sim˜oes Modela¸c˜ao de base de Dados 24/46
28. Diagramas Entidade-Rela¸c˜ao
Heran¸ca
O d indica que a heran¸ca ´e disjunta. Um objeto requisit´avel pode
ser um livro ou DVD mas n˜ao ambos.
Alberto Sim˜oes Modela¸c˜ao de base de Dados 25/46
29. Diagramas Entidade-Rela¸c˜ao
Heran¸ca
Neste caso o c´ırculo n˜ao tem o d, indicando que a heran¸ca n˜ao ´e
disjunta. Um funcion´ario pode ser ao mesmo tempo caixa e chefe
de caixa.
Alberto Sim˜oes Modela¸c˜ao de base de Dados 26/46
30. Exerc´ıcio 2
Um restaurante pretende fazer a gest˜ao dos seus clientes de forma
a garantir a sua fideliza¸c˜ao. Para isso, pretende criar um cart˜ao de
cliente que permita acumular pontos. Para adquirir um cart˜ao o
cliente deve fornecer o seu nome, morada, n´umero fiscal e telefone
de contacto. A cada cart˜ao est´a associado um identificador ´unico,
e o n´umero de pontos acumulado.
Associado a cada cart˜ao existe uma conta corrente, onde est˜ao
registados os almo¸cos ou jantares: data, hora, lista de pratos, e
valor total cobrado.
Para os clientes ass´ıduos decidiu-se criar um cart˜ao VIP. Este
cart˜ao tem um saldo associado, e o cliente pode ir realizando
refei¸c˜oes at´e esgotar esse valor.
Alberto Sim˜oes Modela¸c˜ao de base de Dados 27/46
31. Modelo Relacional
´E um modelo f´ısico, para a gest˜ao de uma base de dados;
´E baseado na l´ogica de predicados e teoria de conjuntos;
´E o modelo mais utilizado na atualidade;
Existem outros modelos (como o baseado em Objetos) mas
que ainda n˜ao atingiram os n´ıveis de utiliza¸c˜ao do modelo
relacional;
Surgiu por volta de 1970, como proposta de Edgar Frank
Codd;
Baseia todo o seu funcionamento em rela¸c˜oes, que s˜ao
representadas por tabelas de dados, e na sua inter-rela¸c˜ao.
Alberto Sim˜oes Modela¸c˜ao de base de Dados 28/46
32. Modelo Relacional
Esquema
O Esquema de uma base de dados ´e a defini¸c˜ao de um
conjunto de tabelas e de que forma elas se relacionam;
´E poss´ıvel inferir um esquema relacional a partir de um
Diagrama Entidade-Rela¸c˜ao, aplicando um conjunto de regras
simples;
Um esquema relacional pode ser refinado, de forma a diminuir
a ambiguidade e redundˆancia de dados;
Um conjunto de regras permitem transformar um esquema
relacional atrav´es de um conjunto de diferentes formas
normais, processo esse denominado de normaliza¸c˜ao;
Alberto Sim˜oes Modela¸c˜ao de base de Dados 29/46
33. Modelo Relacional
Modelo ER ⇒ Esquema Relacional
Entidade Simples
Aluno
nome
escola
morada
Alberto Sim˜oes Modela¸c˜ao de base de Dados 30/46
34. Modelo Relacional
Modelo ER ⇒ Esquema Relacional
Entidade Simples
Aluno
nome
escola
morada
Atributos Compostos
Aluno
nome
escola
morada.rua
morada.localidade
morada.c´odigoPostal
Alberto Sim˜oes Modela¸c˜ao de base de Dados 30/46
35. Modelo Relacional
Modelo ER ⇒ Esquema Relacional
Atributos M´ultiplos
Aluno
nome
escola
morada.rua
morada.localidade
morada.c´odigoPostal
telefone
Alberto Sim˜oes Modela¸c˜ao de base de Dados 31/46
36. Modelo Relacional
Modelo ER ⇒ Esquema Relacional
Atributos M´ultiplos
Aluno
nome
escola
morada.rua
morada.localidade
morada.c´odigoPostal
telefone
Atributos Derivados
S˜ao representados como um atributo at´omico normal.
Alberto Sim˜oes Modela¸c˜ao de base de Dados 31/46
37. Modelo Relacional
Modelo ER ⇒ Esquema Relacional
Atributos chave
Aluno
n´umeroAluno
nome
escola
morada.rua
morada.localidade
morada.c´odigoPostal
telefone
idade
dataNascimento
Alberto Sim˜oes Modela¸c˜ao de base de Dados 32/46
38. Modelo Relacional
Modelo ER ⇒ Esquema Relacional
Rela¸c˜ao 1-n
Aluno Turma
n´umeroAluno ano
nome letra
telefone diretorTurma
turma.letra
turma.ano
Alberto Sim˜oes Modela¸c˜ao de base de Dados 33/46
39. Modelo Relacional
Modelo ER ⇒ Esquema Relacional
Rela¸c˜ao 1-n
Aluno Turma
n´umeroAluno ano
nome letra
telefone diretorTurma
turma.letra
turma.ano
Aos atributos turma.letra e turma.ano s˜ao chamadas Chaves
Estrangeiras.
Alberto Sim˜oes Modela¸c˜ao de base de Dados 33/46
40. Modelo Relacional
Modelo ER ⇒ Esquema Relacional
Rela¸c˜ao n-m
Cliente ClienteConta ContaBanc´aria
n´umero cliente.n´umero n´umero
nome conta.n´umero saldo
. . . . . .
Alberto Sim˜oes Modela¸c˜ao de base de Dados 34/46
41. Modelo Relacional
Modelo ER ⇒ Esquema Relacional
Rela¸c˜ao n-m
Cliente ClienteConta ContaBanc´aria
n´umero cliente.n´umero n´umero
nome conta.n´umero saldo
. . . . . .
Os atributos cliente.n´umero e conta.n´umero s˜ao Chaves
Estrangeiras.
Alberto Sim˜oes Modela¸c˜ao de base de Dados 34/46
42. Modelo Relacional
Modelo ER ⇒ Esquema Relacional
Rela¸c˜ao 1-1
Funcion´ario Respons´aveis Departamento
n´umero funcion´ario.n´umero c´odigo
nome departamento.c´odigo nome
. . . . . .
Alberto Sim˜oes Modela¸c˜ao de base de Dados 35/46
43. Modelo Relacional
Modelo ER ⇒ Esquema Relacional
Rela¸c˜ao 1-1
Funcion´ario Respons´aveis Departamento
n´umero funcion´ario.n´umero c´odigo
nome departamento.c´odigo nome
. . . . . .
Os atributos funcion´ario.n´umero e departamento.c´odigo s˜ao Chaves
Estrangeiras.
Alberto Sim˜oes Modela¸c˜ao de base de Dados 35/46
44. Modelo Relacional
Modelo ER ⇒ Esquema Relacional
Rela¸c˜ao 1-1
Funcion´ario Respons´aveis Departamento
n´umero funcion´ario.n´umero c´odigo
nome departamento.c´odigo nome
. . . . . .
Os atributos funcion´ario.n´umero e departamento.c´odigo s˜ao Chaves
Estrangeiras.
Para garantir a unicidade da rela¸c˜ao os atributos funcion´ario.n´umero e
departamento.c´odigo devem ser definidos como colunas sem repeti¸c˜oes.
Alberto Sim˜oes Modela¸c˜ao de base de Dados 35/46
45. Modelo Relacional
Modelo ER ⇒ Esquema Relacional
Rela¸c˜oes com Atributos
Ent 1 Ent 2 Ent 3 Rela¸c˜ao
id id id Ent1.id
. . . . . . . . . Ent2.id
Ent3.id
Podem ser definidos ´ındices de unicidade nas attr1
chaves estrangeiras de modo a garantir a attr2
cardinalidade desejada para as rela¸c˜oes. attr3
Alberto Sim˜oes Modela¸c˜ao de base de Dados 36/46
46. Exerc´ıcio 3
Considerando que um leitor ´e identificado pelo seu n´umero de leitor, e
cada livro identificado pelo seu c´odigo, quais s˜ao as diferen¸cas entra o
modelo relacional obtido a partir das duas rela¸c˜oes apresentadas abaixo?
a)
b)
Alberto Sim˜oes Modela¸c˜ao de base de Dados 37/46
47. Modelo Relacional
Modelo ER ⇒ Esquema Relacional
Hierarquia Disjunta
Convers˜ao gen´erica para modelo relacional.
ObjetoReq Livro
chave chaveLivro
tipoObjeto ...
chaveEstng
... DVD
chaveDVD
CD ...
chaveCD
...
Alberto Sim˜oes Modela¸c˜ao de base de Dados 38/46
48. Modelo Relacional
Modelo ER ⇒ Esquema Relacional
Hierarquia
Convers˜ao gen´erica para modelo relacional.
Funcion´ario Caixa
chave chaveCaixa
... c´odigoFunc
...
chefeCaixa
chaveChefe
c´odigoFunc
...
Alberto Sim˜oes Modela¸c˜ao de base de Dados 39/46
49. Exerc´ıcio 4
Relembre o Exerc´ıcio 1:
Um escola pretende criar uma BD que permita gerir toda a informa¸c˜ao
relativa os cursos que disponibiliza e aos alunos que os frequentam.
Para cada curso deve ser registado o seu c´odigo, designa¸c˜ao, dura¸c˜ao e
pre¸co. Cada curso est´a estruturado em diversos m´odulos, sendo que deve
constar na BD a dura¸c˜ao de cada m´odulo (em horas), o professor, e a data
de in´ıcio de cada m´odulo. Um m´odulo pode estar associado a diferentes
cursos, com datas de in´ıcio distintas.
Para cada aluno deve ser registado o seu n´umero, nome, morada, c´odigo
postal, localidade, cursos em que se encontra inscrito (pode inscrever-se
em mais que um curso), juntamente com a respetiva data de inscri¸c˜ao e
informa¸c˜ao sobre se o pagamento foi efetuado.
Apresente a convers˜ao do modelo conceptual (diagrama E-R) para
o modelo relacional.
Alberto Sim˜oes Modela¸c˜ao de base de Dados 40/46
50. Normaliza¸c˜ao
O modelo relacional obtido pelas regras anteriores nem sempre
´e pass´ıvel de ser implementado numa base de dados relacional;
Por vezes o modelo relacional obtido ´e amb´ıguo e pode levar `a
falta de qualidade dos dados armazenados;
O processo de Normaliza¸c˜ao tem como objetivo eliminar
redundˆancia e garantir consistˆencia dos dados;
O processo de Normaliza¸c˜ao ´e uma sequˆencia de regras que
permitem iterar sobre diferentes formas normais;
Cada passo da normaliza¸c˜ao trata de diferentes tipos de
problemas;
Existem v´arias formas normais devidamente aceites pela
comunidade (cerca de 5 formas normais), sendo que as trˆes
primeiras s˜ao as mais importantes.
Alberto Sim˜oes Modela¸c˜ao de base de Dados 41/46
51. Normaliza¸c˜ao
Primeira Forma Normal
Remo¸c˜ao de atributos m´ultiplos.
Antes:
Aluno
n´umeroAluno
nome
escola
morada.rua
morada.localidade
morada.c´odigoPostal
telefone
idade
dataNascimento
Alberto Sim˜oes Modela¸c˜ao de base de Dados 42/46
52. Normaliza¸c˜ao
Primeira Forma Normal
Remo¸c˜ao de atributos m´ultiplos.
Antes:
Aluno
n´umeroAluno
nome
escola
morada.rua
morada.localidade
morada.c´odigoPostal
telefone
idade
dataNascimento
Depois:
Aluno Aluno Tels
n´umeroAluno n´umeroAluno
nome telefone
escola
morada.rua
morada.localidade
morada.c´odigoPostal
idade
dataNascimento
Alberto Sim˜oes Modela¸c˜ao de base de Dados 42/46
53. Normaliza¸c˜ao
Segunda Forma Normal
Remo¸c˜ao de dependˆencias parciais sobre chaves compostas.
Supondo que obtemos a tabela da esquerda:
Aluno Turma
n´umeroAluno
ano
letra
sala
Alberto Sim˜oes Modela¸c˜ao de base de Dados 43/46
54. Normaliza¸c˜ao
Segunda Forma Normal
Remo¸c˜ao de dependˆencias parciais sobre chaves compostas.
Supondo que obtemos a tabela da esquerda:
Aluno Turma
n´umeroAluno
ano
letra
sala
Note-se que a sala desta turma ´e espec´ıfica
`a turma (ano e letra) e n˜ao muda de
acordo com o aluno.
Alberto Sim˜oes Modela¸c˜ao de base de Dados 43/46
55. Normaliza¸c˜ao
Segunda Forma Normal
Remo¸c˜ao de dependˆencias parciais sobre chaves compostas.
Supondo que obtemos a tabela da esquerda:
Aluno Turma
n´umeroAluno
ano
letra
sala
Note-se que a sala desta turma ´e espec´ıfica
`a turma (ano e letra) e n˜ao muda de
acordo com o aluno.
Aluno Turma Turma
n´umeroAluno ano
ano letra
letra sala
Alberto Sim˜oes Modela¸c˜ao de base de Dados 43/46
56. Normaliza¸c˜ao
Terceira Forma Normal
Remo¸c˜ao de dependˆencias parciais.
Antes:
Aluno
n´umeroAluno
nome
escola
morada.rua
morada.localidade
morada.c´odigoPostal
idade
dataNascimento
Alberto Sim˜oes Modela¸c˜ao de base de Dados 44/46
57. Normaliza¸c˜ao
Terceira Forma Normal
Remo¸c˜ao de dependˆencias parciais.
Antes:
Aluno
n´umeroAluno
nome
escola
morada.rua
morada.localidade
morada.c´odigoPostal
idade
dataNascimento
Repare-se que a localidade e o c´odigo
postal s˜ao interdependentes. Se mudam
a localidade, tˆem de mudar o c´odigo
postal, e vice-versa.
Alberto Sim˜oes Modela¸c˜ao de base de Dados 44/46
58. Normaliza¸c˜ao
Terceira Forma Normal
Remo¸c˜ao de dependˆencias parciais.
Antes:
Aluno
n´umeroAluno
nome
escola
morada.rua
morada.localidade
morada.c´odigoPostal
idade
dataNascimento
Repare-se que a localidade e o c´odigo
postal s˜ao interdependentes. Se mudam
a localidade, tˆem de mudar o c´odigo
postal, e vice-versa.
Ou seja, podemos considerar que apenas
um deles depende do n´umero de aluno.
Alberto Sim˜oes Modela¸c˜ao de base de Dados 44/46
59. Normaliza¸c˜ao
Terceira Forma Normal
Remo¸c˜ao de dependˆencias parciais.
Antes:
Aluno
n´umeroAluno
nome
escola
morada.rua
morada.localidade
morada.c´odigoPostal
idade
dataNascimento
Repare-se que a localidade e o c´odigo
postal s˜ao interdependentes. Se mudam
a localidade, tˆem de mudar o c´odigo
postal, e vice-versa.
Ou seja, podemos considerar que apenas
um deles depende do n´umero de aluno.
Por exemplo, dizer que o c´odigo postal
depende do aluno, mas que a localidade
n˜ao ir´a depender do aluno, mas do
c´odigo postal que foi introduzido.
Alberto Sim˜oes Modela¸c˜ao de base de Dados 44/46
60. Normaliza¸c˜ao
Terceira Forma Normal
Remo¸c˜ao de dependˆencias parciais.
Antes:
Aluno
n´umeroAluno
nome
escola
morada.rua
morada.localidade
morada.c´odigoPostal
idade
dataNascimento
Depois:
Aluno C´odigoPostal
n´umeroAluno c´odigoPostal
nome localidade
escola
morada.rua
morada.c´odigoPostal
idade
dataNascimento
Alberto Sim˜oes Modela¸c˜ao de base de Dados 45/46
61. Exerc´ıcio 5
Relembre o Exerc´ıcio 1 e 4:
Um escola pretende criar uma BD que permita gerir toda a informa¸c˜ao
relativa os cursos que disponibiliza e aos alunos que os frequentam.
Para cada curso deve ser registado o seu c´odigo, designa¸c˜ao, dura¸c˜ao e
pre¸co. Cada curso est´a estruturado em diversos m´odulos, sendo que deve
constar na BD a dura¸c˜ao de cada m´odulo (em horas), o professor, e a data
de in´ıcio de cada m´odulo. Um m´odulo pode estar associado a diferentes
cursos, com datas de in´ıcio distintas.
Para cada aluno deve ser registado o seu n´umero, nome, morada, c´odigo
postal, localidade, cursos em que se encontra inscrito (pode inscrever-se
em mais que um curso), juntamente com a respetiva data de inscri¸c˜ao e
informa¸c˜ao sobre se o pagamento foi efetuado.
Apresente a normaliza¸c˜ao do diagrama conceptual obtido
anteriormente.
Alberto Sim˜oes Modela¸c˜ao de base de Dados 46/46