TP Aula 02 - ipp.ptncastro/TeoricoPraticas/T...Muitos para muitos N:M Um relacionamento 1:1 implica...

24
António Rocha Nuno Melo e Castro

Transcript of TP Aula 02 - ipp.ptncastro/TeoricoPraticas/T...Muitos para muitos N:M Um relacionamento 1:1 implica...

Page 1: TP Aula 02 - ipp.ptncastro/TeoricoPraticas/T...Muitos para muitos N:M Um relacionamento 1:1 implica que uma das tabelas tenha de conter o identificador da outra Um relacionamento 1:M

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

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

António RochaNuno Melo e Castro

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

Page 2: TP Aula 02 - ipp.ptncastro/TeoricoPraticas/T...Muitos para muitos N:M Um relacionamento 1:1 implica que uma das tabelas tenha de conter o identificador da outra Um relacionamento 1:M

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

����������

� O modelo E-R (entidade-relacionamento) baseia-se na percepção de um universo constituído por um grupo básico de objectos chamados Entidades e por Relacionamentos entre esses objectos

� Entidade� É um objecto que existe e é distinguível de outros objectos, tem

algum significado, e sobre o qual é necessário guardar informação

� Relacionamento� É uma associação entre várias entidades e representa a maneira

como essas entidades podem estar logicamente relacionadas.

Page 3: TP Aula 02 - ipp.ptncastro/TeoricoPraticas/T...Muitos para muitos N:M Um relacionamento 1:1 implica que uma das tabelas tenha de conter o identificador da outra Um relacionamento 1:M

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

����������

� Um conjunto de entidades é um grupo de entidades do mesmo tipo ou classe

� As entidades são caracterizadas por um conjunto de atributos

� Atributo� É uma função que mapeia um conjunto de entidades num

domínio, e, identifica, qualifica e descreve esse conjunto de entidades.� Caracteriza os conjuntos de entidades� Associa a cada entidade um só valor do respectivo domínio, ou

então o valor NULL

Page 4: TP Aula 02 - ipp.ptncastro/TeoricoPraticas/T...Muitos para muitos N:M Um relacionamento 1:1 implica que uma das tabelas tenha de conter o identificador da outra Um relacionamento 1:M

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

����������

� Relacionamento� Um relacionamento especifica de que forma as entidades se

relacionam� Sendo E1, E2,.., En conjuntos de entidades, então um conjunto de

relacionamentos R é um subconjunto de {(e1, e2, … en) | e1 ∈ E1, e2∈ E2, …, en ∈ En}, onde (e1, e2, …, en) é uma relação

� Formalmente, é uma relação matemática em n ≥ 2 (possivelmente indistintos) conjuntos de entidades

� Um conjunto de relacionamentos é um grupo de relacionamentos do mesmo tipo

� Exemplo� Entidade “Cliente” = {nome, morada, bi}� Entidade “Conta” = {nºconta, saldo}� Relação “Conta do Cliente” entre “Cliente” e “Conta”

� (“jorge”, “53342”) ∈ ”Conta do cliente”

Page 5: TP Aula 02 - ipp.ptncastro/TeoricoPraticas/T...Muitos para muitos N:M Um relacionamento 1:1 implica que uma das tabelas tenha de conter o identificador da outra Um relacionamento 1:M

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

����������� Restrições de mapeamento

� Um diagrama E-R pode definir certas restrições às quais o conteúdo da base de dados tem que obedecer. Uma restrição importante é a cardinalidade do mapeamento, que expressa o número de entidades ao qual a outra entidade pode estar associada via um relacionamento.

� Cardinalidades de mapeamentos são especialmente úteis na descrição de conjuntos de relacionamentos binários, apesar de contribuírem ocasionalmente na descrição dos conjuntos de relacionamentos que envolvem relacionamentos n-ários (n>2).

� Para um conjunto de relacionamentos binário R entre os conjuntos de entidades A e B, a cardinalidade do mapeamento tem de ser uma das seguintes:� Um para um, um para muitos ou muitos para muitos

Page 6: TP Aula 02 - ipp.ptncastro/TeoricoPraticas/T...Muitos para muitos N:M Um relacionamento 1:1 implica que uma das tabelas tenha de conter o identificador da outra Um relacionamento 1:M

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

����������

� Descreve graficamente a estrutura lógica global de uma base de dados� É construída com os seguintes componentes:

� Rectângulos Conjuntos de entidades� Elipses Atributos� Losangos Relações entre conjuntos de entidades� Linhas Ligam os atributos aos conjuntos de entidades, e

conjuntos de entidades às relações

� Ou então por:� Rectângulos Conjuntos de entidades, relações, e respectivos

atributos� Linhas Ligam os conjuntos de entidades, e conjuntos de

relações� Símbolos Cardinalidade das relações

Page 7: TP Aula 02 - ipp.ptncastro/TeoricoPraticas/T...Muitos para muitos N:M Um relacionamento 1:1 implica que uma das tabelas tenha de conter o identificador da outra Um relacionamento 1:M

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

����������

� Exemplo de um Modelo E-R

Page 8: TP Aula 02 - ipp.ptncastro/TeoricoPraticas/T...Muitos para muitos N:M Um relacionamento 1:1 implica que uma das tabelas tenha de conter o identificador da outra Um relacionamento 1:M

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

����������

� Exemplo de uma instância do modelo

Page 9: TP Aula 02 - ipp.ptncastro/TeoricoPraticas/T...Muitos para muitos N:M Um relacionamento 1:1 implica que uma das tabelas tenha de conter o identificador da outra Um relacionamento 1:M

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

����������

� Relação ternária (se o empregado trabalhar em vários locais)

Page 10: TP Aula 02 - ipp.ptncastro/TeoricoPraticas/T...Muitos para muitos N:M Um relacionamento 1:1 implica que uma das tabelas tenha de conter o identificador da outra Um relacionamento 1:M

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

����������

Page 11: TP Aula 02 - ipp.ptncastro/TeoricoPraticas/T...Muitos para muitos N:M Um relacionamento 1:1 implica que uma das tabelas tenha de conter o identificador da outra Um relacionamento 1:M

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

����������

� Relações entre entidades da mesma classe

Page 12: TP Aula 02 - ipp.ptncastro/TeoricoPraticas/T...Muitos para muitos N:M Um relacionamento 1:1 implica que uma das tabelas tenha de conter o identificador da outra Um relacionamento 1:M

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

����������

� Hierarquias ISA

Page 13: TP Aula 02 - ipp.ptncastro/TeoricoPraticas/T...Muitos para muitos N:M Um relacionamento 1:1 implica que uma das tabelas tenha de conter o identificador da outra Um relacionamento 1:M

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

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

� O modelo relacional usa um conjunto de tabelas para representar tanto dados como relações entre esses dados

� Cada tabela tem múltiplas colunas, e cada coluna tem um nome único

� Cada tabela tem vários registos, e cada registo tem exactamente o mesmo número de valores que todos os outros registos da tabela

� Cada valor de uma coluna, de um determinado registo, está contido no domínio dessa coluna

Page 14: TP Aula 02 - ipp.ptncastro/TeoricoPraticas/T...Muitos para muitos N:M Um relacionamento 1:1 implica que uma das tabelas tenha de conter o identificador da outra Um relacionamento 1:M

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

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

Page 15: TP Aula 02 - ipp.ptncastro/TeoricoPraticas/T...Muitos para muitos N:M Um relacionamento 1:1 implica que uma das tabelas tenha de conter o identificador da outra Um relacionamento 1:M

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

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

� Chave� É um atributo (simples ou composto) que identifica univocamente uma

entidade num conjunto� No limite, a associação de todos os atributos de uma entidade constituem a

chave. Tem a propriedade de, em qualquer instante, não existiremdiferentes instâncias que contenham o mesmo valor para esse atributo

� Chave candidata� É um subconjunto do atributo Chave, que ainda sendo Chave não pode ser

reduzido sem o deixar de ser� Chave primária

� É uma das chaves candidatas� Chave estrangeira

� Atributo não chave (simples ou composto) que existe numa entidade, e que é chave primária noutra entidade

Page 16: TP Aula 02 - ipp.ptncastro/TeoricoPraticas/T...Muitos para muitos N:M Um relacionamento 1:1 implica que uma das tabelas tenha de conter o identificador da outra Um relacionamento 1:M

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

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

Page 17: TP Aula 02 - ipp.ptncastro/TeoricoPraticas/T...Muitos para muitos N:M Um relacionamento 1:1 implica que uma das tabelas tenha de conter o identificador da outra Um relacionamento 1:M

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

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

� Mapeamento Modelo E-R � � Relacional

Uma ou mais tabelasRelacionamento

Campo ou ColunaAtributo

Registo ou linhaEntidade

Uma ou mais tabelas e respectivos relacionamentos

Conjunto de Entidades

RelacionalE-R

Page 18: TP Aula 02 - ipp.ptncastro/TeoricoPraticas/T...Muitos para muitos N:M Um relacionamento 1:1 implica que uma das tabelas tenha de conter o identificador da outra Um relacionamento 1:M

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

� Exemplo de um modelo E-R

Page 19: TP Aula 02 - ipp.ptncastro/TeoricoPraticas/T...Muitos para muitos N:M Um relacionamento 1:1 implica que uma das tabelas tenha de conter o identificador da outra Um relacionamento 1:M

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

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

� Considerando o modelo E-R anterior, este é o equivalente modelo Relacional� As entidades Cliente e Produto originaram as tabelas Cliente e

Produto� A relação Factura originou a tabela Factura e respectivos

relacionamentos com as tabelas Cliente e Produto� Um cliente pode ter várias facturas, mas uma factura só tem associado um

cliente� Numa factura constam um ou vários produtos, e cada produto pode

constar em mais do que uma factura� Foram identificadas as chaves primárias (PK) e mais alguns atributos

considerados importantes

Page 20: TP Aula 02 - ipp.ptncastro/TeoricoPraticas/T...Muitos para muitos N:M Um relacionamento 1:1 implica que uma das tabelas tenha de conter o identificador da outra Um relacionamento 1:M

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

������������������ Regras dos relacionamentos

� Um relacionamento pode ser� Um para um 1:1� Um para muitos 1:M� Muitos para muitos N:M

� Um relacionamento 1:1 implica que uma das tabelas tenha de conter o identificador da outra

� Um relacionamento 1:M implica que a tabela do lado (M) tem de conter o identificador da tabela do lado (1)

� Um relacionamento N:M implica que seja criada uma nova tabela, sendo também criados relacionamentos 1:1 ou 1:M entre as tabelas iniciais e a nova tabela

� Um relacionamento entre duas tabelas obriga sempre a importar umatributo (simples ou não).

� A esse atributo chama-se Chave Estrangeira ou Chave Importada.

Page 21: TP Aula 02 - ipp.ptncastro/TeoricoPraticas/T...Muitos para muitos N:M Um relacionamento 1:1 implica que uma das tabelas tenha de conter o identificador da outra Um relacionamento 1:M

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

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

� Detalhe do modelo� É criada a nova tabela (resultante da relação N:M)� Surgem as chaves estrangeiras

Page 22: TP Aula 02 - ipp.ptncastro/TeoricoPraticas/T...Muitos para muitos N:M Um relacionamento 1:1 implica que uma das tabelas tenha de conter o identificador da outra Um relacionamento 1:M

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

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

� Detalhe do modelo (continuação)� É definida a chave primária da tabela Factura/Produto

Page 23: TP Aula 02 - ipp.ptncastro/TeoricoPraticas/T...Muitos para muitos N:M Um relacionamento 1:1 implica que uma das tabelas tenha de conter o identificador da outra Um relacionamento 1:M

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

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

� Propriedades das Entidades� Não pode haver instâncias repetidas � � garante a

existência de uma chave primária� As instâncias não são ordenadas� Os atributos não são ordenados e o seu nome tem de ser

único na entidade� Os valores dos atributos são atómicos (não

decomponíveis)� Uma entidade que satisfaça esta condição diz-se normalizada

na primeira forma normal. Isto implica que no modelo relacional todas as entidades estão normalizadas.

Page 24: TP Aula 02 - ipp.ptncastro/TeoricoPraticas/T...Muitos para muitos N:M Um relacionamento 1:1 implica que uma das tabelas tenha de conter o identificador da outra Um relacionamento 1:M

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

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

� Regras de Integridade� Integridade das Entidades

� Nenhum atributo participante na chave primária poderá ter um valor nulo.

� Impede-se a contradição entre a noção de chave primária (identificador unívoco) e a noção de valor nulo (desconhecido) que é o contrário de identificador

� Integridade referencial� Se uma entidade A tem um atributo x (simples ou composto) que é uma

chave primária numa outra entidade B, diz-se que x é chave estrangeira em A, e então, qualquer valor de x em A deverá ser (i) ou (ii)� i) Igual a um valor de x em alguma instância de B� ii) Nulo

� Integridade de Domínio� O valor de um atributo de uma entidade está contido no domínio desse

atributo, nessa entidade� Integridade Aplicacional

� Conjunto de regras de negócio (não são garantidas pelo modelo)