Modelação de Dados

61
Modela¸c˜ ao de base de Dados Alberto Sim˜ oes [email protected] Planeamento de Sistemas de Informa¸ ao Mestrado em Informa¸c˜ ao Empresarial 2012/2013 AlbertoSim˜oes Modela¸c˜ ao de base de Dados 1/46

description

Modelação de Dados com DER e Modelo Relacional, das aulas de Planeamento de Sistemas de Informação do Mestrado em Informação Empresarial da Escola Superior de Estudos Industriais e de Gestão do Instituto Politécnico do Porto.

Transcript of Modelação de Dados

Page 1: Modelação de Dados

Modelacao de base de Dados

Alberto [email protected]

Planeamento de Sistemas de InformacaoMestrado em Informacao Empresarial

2012/2013

Alberto Simoes Modelacao de base de Dados 1/46

Page 2: Modelação de Dados

Modelacao de Dados

A modelacao dados e um metodo que permite modelar aestrutura de uma base de dados;

Tipicamente e apresentado sob a forma de um diagrama;

O Diagrama Entidade-Relacao (Diagrama E-R ou DER) euma ferramenta grafica para facilitar a modelacao de dados;

Os DER tem como objetivo modelar a semantica subjacente aestrutura de dados;

No processo de Modelacao de Dados:

O primeiro passo corresponde a abstracao!Quanto mais tempo se mantiver longe de detalhes e deimplementacoes especıficas, mais facil sera alterar o modelo, edecidir como serao armazenados os dados.

Alberto Simoes Modelacao de base de Dados 2/46

Page 3: Modelação de Dados

Diagrama Entidade-Relacao

O DER e uma ferramenta de modelacao de dados, semantica,que e usada para descrever de forma abstrata a estrutura dedados;

A estrutura descritos de forma abstrata e denominada deModelo Conceptual.

O Modelo Conceptual ira permitir obter um modelo concreto.

Quando o modelo captura a visao da realidade a armazenar,poderemos passar a definicao do modelo concreto.

Um DER tambem pode ser usado para documentar uma basede dados ja existente, ajudando no processo de reengenharia.

Um DER modela dados como entidades e relacionamentos;

Alberto Simoes Modelacao de base de Dados 3/46

Page 4: Modelação de Dados

Diagrama Entidade-RelacaoEntidades

Uma entidade e uma coisa sobre a qual queremos guardardados, seja uma pessoa, uma conta bancaria, um edifıcio;

Nas primeiras referencias aos DER, Chen (1976) descreveuuma entidade como “uma coisa que pode ser distintamenteidentificada”

O nome para uma entidade deve representar um tipo ou umaclasse de coisas, nao uma instancia (tipicamente no singular);

O nome de uma entidade deve ser suficientemente genericomas, ao mesmo tempo nao pode ser demasiado generico: onome deve permitir acomodar alteracoes ao longo do tempo.

As entidades tem atributos;

Um atributo e uma propriedade ou caraterıstica de umaentidade.

Alberto Simoes Modelacao de base de Dados 4/46

Page 5: Modelação de Dados

Diagrama Entidade-RelacaoEntidades

Exemplos de Entidades:

Pessoas: empregado, veterinario, estudante;

Lugares: estado, paıs;

Objeto: edifıcio, automovel, produto;

Evento: venda, devolucao;

Conceptual: conta, departamento;

Alberto Simoes Modelacao de base de Dados 5/46

Page 6: Modelação de Dados

Diagramas Entidade-RelacaoEntidades

Os dados particulares sobre determinada entidade saoreferidos como instancias;

Uma instancia e uma unica ocorrencia de uma entidade.

Cada instancia de uma entidade deve ser identificadaunicamente, de modo a que essa instancia seja distintivamenteidentificavel de todas as outras instancias da mesma entidade.

Por exemplo, numa entidade cliente, poderemos imaginar quea empresa atribui um numero de cliente, unico, a cada cliente.

A este identificador unico chamamos chave.

Alberto Simoes Modelacao de base de Dados 6/46

Page 7: Modelação de Dados

Diagramas Entidade-RelacaoEntidades e Atributos

Na modelacao com a notacao Chen, as entidades saorepresentadas em retangulos.��� �� �������� �� ���

�����

Os atributos sao colocados a sua volta.

Uma das notacoes usadas para atributos representa-os comocırculos ou ovais ligados a entidade em causa.��� �� �������� �� ���

�����

���� ���� ����

Alberto Simoes Modelacao de base de Dados 7/46

Page 8: Modelação de Dados

Diagramas Entidade-RelacaoEntidades e Atributos

Na modelacao com a notacao Chen, as entidades saorepresentadas em retangulos.��� �� �������� �� ���

�����

Os atributos sao colocados a sua volta.

Uma das notacoes usadas para atributos representa-os comocırculos ou ovais ligados a entidade em causa.��� �� �������� �� ���

�����

���� ���� ����

Alberto Simoes Modelacao de base de Dados 7/46

Page 9: Modelação de Dados

Diagramas Entidade-RelacaoAtributos

Existem varios tipos de atributos:

AtomicosAtributos que nao podem ser divididos, daı a nocao deatomico;

CompostosAtributos que sao formados pela combinacao ou agregacao deatributos relacionados;

MultiplosAtributos que podem conter um ou mais valores paradeterminada instancia;

DerivadosAtributos uteis, mas que nao irao ser armazenados, porquepodem ser calculados a partir de outros dados presentes nabase de dados.

Alberto Simoes Modelacao de base de Dados 8/46

Page 10: Modelação de Dados

Diagramas Entidade-RelacaoAtributos Atomicos

Exemplos de atributos atomicos:

numero de identificacao fiscal;

numero de cartao de cidadao;

nome;

telefone;

Note que os mesmos atributos podem ser atomicos, compostos, oumultiplos, dependendo do contexto do problema a ser resolvido.

��� �� �������� �� ���

�����

���� ���� ����

Alberto Simoes Modelacao de base de Dados 9/46

Page 11: Modelação de Dados

Diagramas Entidade-RelacaoAtributos Compostos

Exemplos de atributos compostos:

nome (se for separado em nome e apelido);

codigo postal (se o separarem nas suas duas componentes);

data (se for separada em dia, mes e ano);��� �� �������� �� ���

�����

���� ���� ����

��������

������������

Alberto Simoes Modelacao de base de Dados 10/46

Page 12: Modelação de Dados

Diagramas Entidade-RelacaoAtributos Multiplos

Exemplos de atributos multiplos:

telefone (se considerar que um aluno pode ter varios);

e-mail (se considerar que pode ter varios);

escola (se quiser guardar apenas nomes por onde o alunopassou);

��� �� �������� �� ���

�����

���� ���� ����

��������

������������

����������������

Alberto Simoes Modelacao de base de Dados 11/46

Page 13: Modelação de Dados

Diagramas Entidade-RelacaoAtributos Derivados

Exemplos de atributos derivados:

idade (calculada com base na data de nascimento);

salario mensal (calculada com base no nr. de dias);��� �� �������� �� ���

�����

���� ���� ����

��������

������������

����������������

�����������

����

Alberto Simoes Modelacao de base de Dados 12/46

Page 14: Modelação de Dados

Diagramas Entidade-RelacaoAtributos Chave

Atributos especiais, que identificam inequivocamente asinstancias de uma entidade;Uma entidade podem ter mais que um atributo deste tipo;Este tipo de atributos sao designados de Chaves Candidatas;Quando deste conjunto de chaves se escolhe uma para servirde identificador unico passa a ser a Chave Primaria;Ha casos em que nao existem atributos deste tipo, o que podeobrigar a que se crie, artificialmente, um atributo indexador;

��� �� �������� �� ���

�����

���� ���� ����

����� ���

�� ��������

����������������

����� �����

���

����������

Alberto Simoes Modelacao de base de Dados 13/46

Page 15: Modelação de Dados

Diagramas Entidade-RelacaoDocumentacao de Entidades

Os DER nao sao propriamente ambıguos, mas em muitoscasos e relevante explicitar decisoes tomadas, que podem naoser claras para outras pessoas;

Para cada Entidade documenta-se:

A Entidade: que objetos representa.Os Atributos: que propriedades devem ser armazenadas sobre aentidade, e o tipo de cada uma dessas propriedades.As Chaves: quais sao as chaves candidatas, e qual, e porquerazao foi escolhida, a chave primaria.Dados Exemplo: uma pequena tabela de dados fictıcios queajude a compreensao do ambito da entidade.

Alberto Simoes Modelacao de base de Dados 14/46

Page 16: Modelação de Dados

Diagramas Entidade-RelacaoDocumentacao de Entidades (exemplo)

Entidade:a base de dados regista informacao sobre os alunos da escolade musica;

Atributos:nome – nome completo do aluno;escola – escola onde o aluno esta a realizar o ensinoobrigatorio;morada – atributo composto pelos atributos rua, localidade ecodigo postal que contem a morada do aluno paracorrespondencia;telefone – atributo multiplo com um ou mais telefones decontacto dos encarregados de educacao;data de nascimento – data de nascimento do aluno;idade – atributo derivado, com idade do aluno, calculada combase na data de nascimento;numero aluno – numero unico atribuıdo pela escola a cadaaluno;

Alberto Simoes Modelacao de base de Dados 15/46

Page 17: Modelação de Dados

Diagramas Entidade-RelacaoDocumentacao de Entidades (exemplo)

Chaves:

So existe uma chave candidata, que corresponde ao numero dealuno. Note-se que dados como o nome nao saoobrigatoriamente unicos. Deste modo, a chave primaria sera onumero de aluno.

Dados Exemplo:

nome escola mor.rua mor.cp mor.local tel data nasc idade nr alunoJoao Marques EB23 Vao Sao Cristovao 1234-567 Vao 345342312 11.2.1999 14 242Maria Sa EB23 Vao Estreita 1234-765 Vao 345123123 20.6.2000 13 245Rui Roque EB23 Breu Direita 1234-575 Vao 933312345 29.2.2000 13 249

Alberto Simoes Modelacao de base de Dados 16/46

Page 18: Modelação de Dados

Diagramas Entidade-RelacaoRelacoes

Uma base de dados tera, com certeza, mais que uma entidade;

Uma relacao e uma ligacao ou associacao entre entidades;

Na notacao Chen:

Sao habitualmente denotadas por frases verbais;Sao inscritas em losangos;Devem ser lidas da esquerda para a direita (ou de cima parabaixo);

��� �� �������� �� ���

�����

���� ������������������������

����

��� �����������������

���������

Alberto Simoes Modelacao de base de Dados 17/46

Page 19: Modelação de Dados

Diagramas Entidade-RelacaoRelacoes - Cardinalidades

A relacao 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 relacao usando pes degalinha:

��� �� �������� �� ���

�����

���� ������������������������

����

��� �����������������

���������

Um aluno pertence a uma turma.Uma turma tem varios alunos.

Alberto Simoes Modelacao de base de Dados 18/46

Page 20: Modelação de Dados

Diagramas Entidade-RelacaoRelacoes - Cardinalidades

Existem tres tipos de cardinalidade:

muitos para muitos — m:n��� �� �������� �� ���

������� ��������� ���������

Um cliente pode ter varias contas bancarias. // Uma conta bancaria pode ter varios titulares.

um para muitos — 1:n��� �� �������� �� ���

����� �������

� ������

Uma editora edita varios livros. // Um livro e editado por uma unica editora.

um para um — 1:1��� �� �������� �� ���

����������� ��� ��� �

������������

���

Um funcionario e responsavel por um departamento. // Um departamento tem um unico responsavel.

Alberto Simoes Modelacao de base de Dados 19/46

Page 21: Modelação de Dados

Diagramas Entidade-RelacaoRelacoes - Cardinalidades

Existem tres tipos de cardinalidade:

muitos para muitos — m:n��� �� �������� �� ���

������� ��������� ���������

Um cliente pode ter varias contas bancarias. // Uma conta bancaria pode ter varios titulares.

um para muitos — 1:n��� �� �������� �� ���

����� �������

� ������

Uma editora edita varios livros. // Um livro e editado por uma unica editora.

um para um — 1:1��� �� �������� �� ���

����������� ��� ��� �

������������

���

Um funcionario e responsavel por um departamento. // Um departamento tem um unico responsavel.

Alberto Simoes Modelacao de base de Dados 19/46

Page 22: Modelação de Dados

Diagramas Entidade-RelacaoRelacoes - Cardinalidades

Existem tres tipos de cardinalidade:

muitos para muitos — m:n��� �� �������� �� ���

������� ��������� ���������

Um cliente pode ter varias contas bancarias. // Uma conta bancaria pode ter varios titulares.

um para muitos — 1:n��� �� �������� �� ���

����� �������

� ������

Uma editora edita varios livros. // Um livro e editado por uma unica editora.

um para um — 1:1��� �� �������� �� ���

����������� ��� ��� �

������������

���

Um funcionario e responsavel por um departamento. // Um departamento tem um unico responsavel.

Alberto Simoes Modelacao de base de Dados 19/46

Page 23: Modelação de Dados

Diagramas Entidade-RelacaoAtributos nas Relacoes

Algumas relacoes podem precisar de atributos;

Por exemplo, se um leitor de uma biblioteca requisita umlivro, sera necessario guardar a data da requisicao.

Existem duas solucoes para este problema:1 anotar a relacao com um atributo:��� �� �������� �� ���

������ �����

������ ���

���

�������������

2 definir uma nova entidade:��� �� �������� �� ���

������ ���������

� � ����������

������������ ���

Alberto Simoes Modelacao de base de Dados 20/46

Page 24: Modelação de Dados

Diagramas Entidade-RelacaoRelacionamentos Multiplos

As relacoes nao sao, necessariamente, entre apenas duasentidades;

E possıvel definir relacionamentos com mais que duasentidades.

��� �� �������� �� ���

������ �����

��������

�������

�������������

Alberto Simoes Modelacao de base de Dados 21/46

Page 25: Modelação de Dados

Diagramas Entidade-RelacaoRelacionamento Recursivo

As relacoes nao necessitam de ser entre duas entidadesdistintas;

E possıvel definir relacionamentos em que dois ou mais dosintervenientes sao do mesmo tipo.

��� �� �������� �� ���

��������������

���� ���

Alberto Simoes Modelacao de base de Dados 22/46

Page 26: Modelação de Dados

Exercıcio 1

Um escola pretende criar uma BD que permita gerir toda ainformacao relativa os cursos que disponibiliza e aos alunos que osfrequentam.

Para cada curso deve ser registado o seu codigo, designacao,duracao e preco. Cada curso esta estruturado em diversosmodulos, sendo que deve constar na BD a duracao de cada modulo(em horas), o professor, e a data de inıcio de cada modulo. Ummodulo pode estar associado a diferentes cursos, com datas deinıcio distintas.

Para cada aluno deve ser registado o seu numero, nome, morada,codigo postal, localidade, cursos em que se encontra inscrito (podeinscrever-se em mais que um curso), juntamente com a respetivadata de inscricao e informacao sobre se o pagamento foi efetuado.

Alberto Simoes Modelacao de base de Dados 23/46

Page 27: Modelação de Dados

Diagramas Entidade-RelacaoHeranca

Em certas circunstancias, determinada entidade pode ser umaespecializacao de outra;

Por exemplo, numa empresa de telecomunicacoes, um tarifariopre-pago e um tarifario pos-pago sao especializacoes de umtarifario generico.

Existem atributos que sao partilhados por todos os tarifarios,sejam eles pre ou pos pagos;Existem outros atributos que sao especıficos do tipo deatributo;

Noutro exemplo, numa biblioteca, existem diferentes tipos deobjetos que podem ser requisitados:

livros, DVD e CD tem diferentes propriedades;no entanto, podem partilhar alguma informacao;

Alberto Simoes Modelacao de base de Dados 24/46

Page 28: Modelação de Dados

Diagramas Entidade-RelacaoHeranca

��� �� �������� �� ���

������������ ��

� �� ��� ��

� �

O d indica que a heranca e disjunta. Um objeto requisitavel podeser um livro ou DVD mas nao ambos.

Alberto Simoes Modelacao de base de Dados 25/46

Page 29: Modelação de Dados

Diagramas Entidade-RelacaoHeranca

��� �� �������� �� ���

�����������

��� � ��

��

� �

Neste caso o cırculo nao tem o d, indicando que a heranca nao edisjunta. Um funcionario pode ser ao mesmo tempo caixa e chefede caixa.

Alberto Simoes Modelacao de base de Dados 26/46

Page 30: Modelação de Dados

Exercıcio 2

Um restaurante pretende fazer a gestao dos seus clientes de formaa garantir a sua fidelizacao. Para isso, pretende criar um cartao decliente que permita acumular pontos. Para adquirir um cartao ocliente deve fornecer o seu nome, morada, numero fiscal e telefonede contacto. A cada cartao esta associado um identificador unico,e o numero de pontos acumulado.

Associado a cada cartao existe uma conta corrente, onde estaoregistados os almocos ou jantares: data, hora, lista de pratos, evalor total cobrado.

Para os clientes assıduos decidiu-se criar um cartao VIP. Estecartao tem um saldo associado, e o cliente pode ir realizandorefeicoes ate esgotar esse valor.

Alberto Simoes Modelacao de base de Dados 27/46

Page 31: Modelação de Dados

Modelo Relacional

E um modelo fısico, para a gestao de uma base de dados;

E baseado na logica de predicados e teoria de conjuntos;

E o modelo mais utilizado na atualidade;

Existem outros modelos (como o baseado em Objetos) masque ainda nao atingiram os nıveis de utilizacao do modelorelacional;

Surgiu por volta de 1970, como proposta de Edgar FrankCodd;

Baseia todo o seu funcionamento em relacoes, que saorepresentadas por tabelas de dados, e na sua inter-relacao.

Alberto Simoes Modelacao de base de Dados 28/46

Page 32: Modelação de Dados

Modelo RelacionalEsquema

O Esquema de uma base de dados e a definicao de umconjunto de tabelas e de que forma elas se relacionam;

E possıvel inferir um esquema relacional a partir de umDiagrama Entidade-Relacao, aplicando um conjunto de regrassimples;

Um esquema relacional pode ser refinado, de forma a diminuira ambiguidade e redundancia de dados;

Um conjunto de regras permitem transformar um esquemarelacional atraves de um conjunto de diferentes formasnormais, processo esse denominado de normalizacao;

Alberto Simoes Modelacao de base de Dados 29/46

Page 33: Modelação de Dados

Modelo RelacionalModelo ER ⇒ Esquema Relacional

Entidade Simples��� �� �������� �� ���

�����

���� ���� ����Alunonomeescolamorada

Atributos Compostos��� �� �������� �� ���

�����

���� ���� ����

��������

������������

Alunonomeescolamorada.ruamorada.localidademorada.codigoPostal

Alberto Simoes Modelacao de base de Dados 30/46

Page 34: Modelação de Dados

Modelo RelacionalModelo ER ⇒ Esquema Relacional

Entidade Simples��� �� �������� �� ���

�����

���� ���� ����Alunonomeescolamorada

Atributos Compostos��� �� �������� �� ���

�����

���� ���� ����

��������

������������

Alunonomeescolamorada.ruamorada.localidademorada.codigoPostal

Alberto Simoes Modelacao de base de Dados 30/46

Page 35: Modelação de Dados

Modelo RelacionalModelo ER ⇒ Esquema Relacional

Atributos Multiplos

��� �� �������� �� ���

�����

���� ���� ����

��������

������������

����������������

Alunonomeescolamorada.ruamorada.localidademorada.codigoPostaltelefone ?

Atributos DerivadosSao representados como um atributo atomico normal.

Alberto Simoes Modelacao de base de Dados 31/46

Page 36: Modelação de Dados

Modelo RelacionalModelo ER ⇒ Esquema Relacional

Atributos Multiplos

��� �� �������� �� ���

�����

���� ���� ����

��������

������������

����������������

Alunonomeescolamorada.ruamorada.localidademorada.codigoPostaltelefone ?

Atributos DerivadosSao representados como um atributo atomico normal.

Alberto Simoes Modelacao de base de Dados 31/46

Page 37: Modelação de Dados

Modelo RelacionalModelo ER ⇒ Esquema Relacional

Atributos chave

��� �� �������� �� ���

�����

���� ���� ����

����� ���

�� ��������

����������������

����� �����

���

����������

AlunonumeroAlunonomeescolamorada.ruamorada.localidademorada.codigoPostaltelefone ?idadedataNascimento

Alberto Simoes Modelacao de base de Dados 32/46

Page 38: Modelação de Dados

Modelo RelacionalModelo ER ⇒ Esquema Relacional

Relacao 1-n��� �� �������� �� ���

�����

���� ������������������������

����

��� �����������������

���������

Aluno TurmanumeroAluno anonome letratelefone ? diretorTurmaturma.letraturma.ano

Aos atributos turma.letra e turma.ano sao chamadas ChavesEstrangeiras.

Alberto Simoes Modelacao de base de Dados 33/46

Page 39: Modelação de Dados

Modelo RelacionalModelo ER ⇒ Esquema Relacional

Relacao 1-n��� �� �������� �� ���

�����

���� ������������������������

����

��� �����������������

���������

Aluno TurmanumeroAluno anonome letratelefone ? diretorTurmaturma.letraturma.ano

Aos atributos turma.letra e turma.ano sao chamadas ChavesEstrangeiras.

Alberto Simoes Modelacao de base de Dados 33/46

Page 40: Modelação de Dados

Modelo RelacionalModelo ER ⇒ Esquema Relacional

Relacao n-m��� �� �������� �� ���

������� ��������� ���������

Cliente ClienteConta ContaBancarianumero cliente.numero numeronome conta.numero saldo. . . . . .

Os atributos cliente.numero e conta.numero sao ChavesEstrangeiras.

Alberto Simoes Modelacao de base de Dados 34/46

Page 41: Modelação de Dados

Modelo RelacionalModelo ER ⇒ Esquema Relacional

Relacao n-m��� �� �������� �� ���

������� ��������� ���������

Cliente ClienteConta ContaBancarianumero cliente.numero numeronome conta.numero saldo. . . . . .

Os atributos cliente.numero e conta.numero sao ChavesEstrangeiras.

Alberto Simoes Modelacao de base de Dados 34/46

Page 42: Modelação de Dados

Modelo RelacionalModelo ER ⇒ Esquema Relacional

Relacao 1-1��� �� �������� �� ���

����������� ��� ��� �

������������

���

Funcionario Responsaveis Departamentonumero funcionario.numero codigonome departamento.codigo nome. . . . . .

Os atributos funcionario.numero e departamento.codigo sao ChavesEstrangeiras.

Para garantir a unicidade da relacao os atributos funcionario.numero e

departamento.codigo devem ser definidos como colunas sem repeticoes.

Alberto Simoes Modelacao de base de Dados 35/46

Page 43: Modelação de Dados

Modelo RelacionalModelo ER ⇒ Esquema Relacional

Relacao 1-1��� �� �������� �� ���

����������� ��� ��� �

������������

���

Funcionario Responsaveis Departamentonumero funcionario.numero codigonome departamento.codigo nome. . . . . .

Os atributos funcionario.numero e departamento.codigo sao ChavesEstrangeiras.

Para garantir a unicidade da relacao os atributos funcionario.numero e

departamento.codigo devem ser definidos como colunas sem repeticoes.

Alberto Simoes Modelacao de base de Dados 35/46

Page 44: Modelação de Dados

Modelo RelacionalModelo ER ⇒ Esquema Relacional

Relacao 1-1��� �� �������� �� ���

����������� ��� ��� �

������������

���

Funcionario Responsaveis Departamentonumero funcionario.numero codigonome departamento.codigo nome. . . . . .

Os atributos funcionario.numero e departamento.codigo sao ChavesEstrangeiras.

Para garantir a unicidade da relacao os atributos funcionario.numero e

departamento.codigo devem ser definidos como colunas sem repeticoes.

Alberto Simoes Modelacao de base de Dados 35/46

Page 45: Modelação de Dados

Modelo RelacionalModelo ER ⇒ Esquema Relacional

Relacoes com Atributos��� �� �������� �� ���

���������

��������� ������������ ����

��

��

��

����� ����� ������

Ent 1 Ent 2 Ent 3 Relacaoid id id Ent1.id. . . . . . . . . Ent2.id

Ent3.idPodem ser definidos ındices de unicidade nas attr1chaves estrangeiras de modo a garantir a attr2cardinalidade desejada para as relacoes. attr3

Alberto Simoes Modelacao de base de Dados 36/46

Page 46: Modelação de Dados

Exercıcio 3

Considerando que um leitor e identificado pelo seu numero de leitor, e

cada livro identificado pelo seu codigo, quais sao as diferencas entra o

modelo relacional obtido a partir das duas relacoes apresentadas abaixo?

a)��� �� �������� �� ���

������ �����

������ ���

���

�������������

b)��� �� �������� �� ���

������ ���������

� � ����������

������������ ���

Alberto Simoes Modelacao de base de Dados 37/46

Page 47: Modelação de Dados

Modelo RelacionalModelo ER ⇒ Esquema Relacional

Hierarquia DisjuntaConversao generica para modelo relacional.

��� �� �������� �� ���

������������ ��

� �� ��� ��

� �

ObjetoReq Livrochave chaveLivrotipoObjeto ...chaveEstng... DVD

chaveDVDCD ...chaveCD...

Alberto Simoes Modelacao de base de Dados 38/46

Page 48: Modelação de Dados

Modelo RelacionalModelo ER ⇒ Esquema Relacional

HierarquiaConversao generica para modelo relacional.

��� �� �������� �� ���

�����������

��� � ��

��

� �

Funcionario Caixachave chaveCaixa... codigoFunc

...chefeCaixachaveChefecodigoFunc...

Alberto Simoes Modelacao de base de Dados 39/46

Page 49: Modelação de Dados

Exercıcio 4

Relembre o Exercıcio 1:

Um escola pretende criar uma BD que permita gerir toda a informacaorelativa os cursos que disponibiliza e aos alunos que os frequentam.

Para cada curso deve ser registado o seu codigo, designacao, duracao epreco. Cada curso esta estruturado em diversos modulos, sendo que deveconstar na BD a duracao de cada modulo (em horas), o professor, e a datade inıcio de cada modulo. Um modulo pode estar associado a diferentescursos, com datas de inıcio distintas.

Para cada aluno deve ser registado o seu numero, nome, morada, codigopostal, localidade, cursos em que se encontra inscrito (pode inscrever-seem mais que um curso), juntamente com a respetiva data de inscricao einformacao sobre se o pagamento foi efetuado.

Apresente a conversao do modelo conceptual (diagrama E-R) parao modelo relacional.

Alberto Simoes Modelacao de base de Dados 40/46

Page 50: Modelação de Dados

Normalizacao

O modelo relacional obtido pelas regras anteriores nem sempree passıvel de ser implementado numa base de dados relacional;

Por vezes o modelo relacional obtido e ambıguo e pode levar afalta de qualidade dos dados armazenados;

O processo de Normalizacao tem como objetivo eliminarredundancia e garantir consistencia dos dados;

O processo de Normalizacao e uma sequencia de regras quepermitem iterar sobre diferentes formas normais;

Cada passo da normalizacao trata de diferentes tipos deproblemas;Existem varias formas normais devidamente aceites pelacomunidade (cerca de 5 formas normais), sendo que as tresprimeiras sao as mais importantes.

Alberto Simoes Modelacao de base de Dados 41/46

Page 51: Modelação de Dados

NormalizacaoPrimeira Forma Normal

Remocao de atributos multiplos.

Antes:

AlunonumeroAlunonomeescolamorada.ruamorada.localidademorada.codigoPostaltelefone ?idadedataNascimento

Depois:

Aluno Aluno TelsnumeroAluno numeroAlunonome telefoneescolamorada.ruamorada.localidademorada.codigoPostalidadedataNascimento

Alberto Simoes Modelacao de base de Dados 42/46

Page 52: Modelação de Dados

NormalizacaoPrimeira Forma Normal

Remocao de atributos multiplos.

Antes:

AlunonumeroAlunonomeescolamorada.ruamorada.localidademorada.codigoPostaltelefone ?idadedataNascimento

Depois:

Aluno Aluno TelsnumeroAluno numeroAlunonome telefoneescolamorada.ruamorada.localidademorada.codigoPostalidadedataNascimento

Alberto Simoes Modelacao de base de Dados 42/46

Page 53: Modelação de Dados

NormalizacaoSegunda Forma Normal

Remocao de dependencias parciais sobre chaves compostas.

Supondo que obtemos a tabela da esquerda:

Aluno TurmanumeroAlunoanoletrasala

Note-se que a sala desta turma e especıficaa turma (ano e letra) e nao muda deacordo com o aluno.

Aluno Turma TurmanumeroAluno anoano letraletra sala

Alberto Simoes Modelacao de base de Dados 43/46

Page 54: Modelação de Dados

NormalizacaoSegunda Forma Normal

Remocao de dependencias parciais sobre chaves compostas.

Supondo que obtemos a tabela da esquerda:

Aluno TurmanumeroAlunoanoletrasala

Note-se que a sala desta turma e especıficaa turma (ano e letra) e nao muda deacordo com o aluno.

Aluno Turma TurmanumeroAluno anoano letraletra sala

Alberto Simoes Modelacao de base de Dados 43/46

Page 55: Modelação de Dados

NormalizacaoSegunda Forma Normal

Remocao de dependencias parciais sobre chaves compostas.

Supondo que obtemos a tabela da esquerda:

Aluno TurmanumeroAlunoanoletrasala

Note-se que a sala desta turma e especıficaa turma (ano e letra) e nao muda deacordo com o aluno.

Aluno Turma TurmanumeroAluno anoano letraletra sala

Alberto Simoes Modelacao de base de Dados 43/46

Page 56: Modelação de Dados

NormalizacaoTerceira Forma Normal

Remocao de dependencias parciais.

Antes:

AlunonumeroAlunonomeescolamorada.ruamorada.localidademorada.codigoPostalidadedataNascimento

Repare-se que a localidade e o codigopostal sao interdependentes. Se mudama localidade, tem de mudar o codigopostal, e vice-versa.

Ou seja, podemos considerar que apenasum deles depende do numero de aluno.

Por exemplo, dizer que o codigo postaldepende do aluno, mas que a localidadenao ira depender do aluno, mas docodigo postal que foi introduzido.

Alberto Simoes Modelacao de base de Dados 44/46

Page 57: Modelação de Dados

NormalizacaoTerceira Forma Normal

Remocao de dependencias parciais.

Antes:

AlunonumeroAlunonomeescolamorada.ruamorada.localidademorada.codigoPostalidadedataNascimento

Repare-se que a localidade e o codigopostal sao interdependentes. Se mudama localidade, tem de mudar o codigopostal, e vice-versa.

Ou seja, podemos considerar que apenasum deles depende do numero de aluno.

Por exemplo, dizer que o codigo postaldepende do aluno, mas que a localidadenao ira depender do aluno, mas docodigo postal que foi introduzido.

Alberto Simoes Modelacao de base de Dados 44/46

Page 58: Modelação de Dados

NormalizacaoTerceira Forma Normal

Remocao de dependencias parciais.

Antes:

AlunonumeroAlunonomeescolamorada.ruamorada.localidademorada.codigoPostalidadedataNascimento

Repare-se que a localidade e o codigopostal sao interdependentes. Se mudama localidade, tem de mudar o codigopostal, e vice-versa.

Ou seja, podemos considerar que apenasum deles depende do numero de aluno.

Por exemplo, dizer que o codigo postaldepende do aluno, mas que a localidadenao ira depender do aluno, mas docodigo postal que foi introduzido.

Alberto Simoes Modelacao de base de Dados 44/46

Page 59: Modelação de Dados

NormalizacaoTerceira Forma Normal

Remocao de dependencias parciais.

Antes:

AlunonumeroAlunonomeescolamorada.ruamorada.localidademorada.codigoPostalidadedataNascimento

Repare-se que a localidade e o codigopostal sao interdependentes. Se mudama localidade, tem de mudar o codigopostal, e vice-versa.

Ou seja, podemos considerar que apenasum deles depende do numero de aluno.

Por exemplo, dizer que o codigo postaldepende do aluno, mas que a localidadenao ira depender do aluno, mas docodigo postal que foi introduzido.

Alberto Simoes Modelacao de base de Dados 44/46

Page 60: Modelação de Dados

NormalizacaoTerceira Forma Normal

Remocao de dependencias parciais.

Antes:

AlunonumeroAlunonomeescolamorada.ruamorada.localidademorada.codigoPostalidadedataNascimento

Depois:

Aluno CodigoPostalnumeroAluno codigoPostalnome localidadeescolamorada.ruamorada.codigoPostalidadedataNascimento

Alberto Simoes Modelacao de base de Dados 45/46

Page 61: Modelação de Dados

Exercıcio 5

Relembre o Exercıcio 1 e 4:

Um escola pretende criar uma BD que permita gerir toda a informacaorelativa os cursos que disponibiliza e aos alunos que os frequentam.

Para cada curso deve ser registado o seu codigo, designacao, duracao epreco. Cada curso esta estruturado em diversos modulos, sendo que deveconstar na BD a duracao de cada modulo (em horas), o professor, e a datade inıcio de cada modulo. Um modulo pode estar associado a diferentescursos, com datas de inıcio distintas.

Para cada aluno deve ser registado o seu numero, nome, morada, codigopostal, localidade, cursos em que se encontra inscrito (pode inscrever-seem mais que um curso), juntamente com a respetiva data de inscricao einformacao sobre se o pagamento foi efetuado.

Apresente a normalizacao do diagrama conceptual obtidoanteriormente.

Alberto Simoes Modelacao de base de Dados 46/46