Rafaela Fidalgo Osório
1 Modelagem de Dados Usando o Modelo Entidade-Relacionamento Sumário Fases do Projeto de BD Conceitos Básicos do Modelo ER Tipos de entidade, atributos e chaves Tipos de relacionamento Restrições estruturais Tipos de entidade fraca Notação Diagramática Generalização, Especialização e Agregação 1
2 Processo de Projeto de Bancos de Dados Mini-Mundo Análise de Requisitos Requisitos Funcionais Requisitos do BD Análise Funcional Projeto Conceitual Independente de SGBD Especificação das Transações Esquema Conceitual (em alto nível) (em um modelo de dados de alto nível) Projeto Lógico Específico para um SGBD Projeto das Aplicações Esquema Lógico (em um modelo de dados lógico) Projeto Físico Implementação Esquema Físico (para um SGBD específico) Programas Esquema conceitual 2
3 Modelo ER - Conceitos Entidades: Objetos do mundo real que são de interesse para alguma aplicação Atributos: Propriedades utilizadas para descrever uma entidade Modelo ER - Conceitos Tipos (classes) de atributo: Simples ou compostos Monovalorados ou multivalorados Armazenados ou derivados Tipo de entidade: Define um conjunto de entidades que têm os mesmos atributos (propriedades) Exemplos: EMPREGADO, EMPRESA 3
4 Tipos de entidade e suas instâncias Modelo ER - Conceitos Chave de um tipo de entidade: Atributo que possui valor único para cada entidade (instância) Chave pode ser formada por vários atributos: chave composta Domínio de um atributo: Conjunto de valores que podem ser atribuídos a um atributo para cada entidade individualmente A: E P(V) 4
5 Chaves Registro e IDVeiculo são chaves to tipo de entidade CARRO Modelo ER - Conceitos Relacionamentos: Associações entre duas ou mais entidades distintas (instâncias) com um significado Exemplo: O empregado John Smith preside a empresa Sunco Oil 5
6 Modelo ER - Conceitos Tipo de Relacionamento: Define um conjunto de associações entre n tipos de entidade E 1, E 2,...,E n Exemplo: Trabalha-para entre Empregado e Departamento Empregado Trabalhapara Departamento Modelo ER - Conceitos Tipo de Relacionamento: Matematicamente, um tipo de relacionamento R é um conjunto de (instâncias de) relacionamentos r i, onde cada r i associa n (instâncias de) entidades (e 1,...,e n ) e cada e j pertence a um tipo de entidade Ej R E 1 x E 2 x... x E n Grau de um Tipo de Relacionamento Número de tipos de entidade participantes de um tipo de relacionamento 6
7 Instâncias de um tipo de relacionamento binário Instâncias de um tipo de relacionamento ternário 7
8 Modelo ER - Conceitos Restrições sobre tipos de relacionamento: Cardinalidade: Especifica o número de instâncias de um tipo de relacionamento do qual uma entidade pode participar Participação: Especifica se a existência de uma entidade depende de seu relacionamento com outra entidade através de um tipo de relacionamento parcial ou total Cardinalidade + Participação Restrições Estruturais Cardinalidade 1:1 8
9 Cardinalidade M:N Modelo ER - Conceitos Papéis e relacionamentos recursivos Entidades atuam com um determinado papel Significado do papel é dado por um nome, atribuído a cada tipo de entidade Nomes só são necessários em tipos de relacionamento que envolvam mais de uma vez o mesmo tipo de entidade relacionamentos recursivos Exemplo: Supervisão, onde Empregado tem os papéis de Supervisor e Supervisionado 9
10 Relacionamento recursivo SUPERVISAO: 1 = supervisor, 2 = supervisionado Modelo ER - Conceitos Tipos de Entidade Fraca Tipos de entidade que não têm chave própria As instâncias são identificadas através do relacionamento com entidades de outro tipo, chamado de dono ou identificador, juntamente com os valores de alguns atributos (chave parcial) Exemplo: DEPENDENTE 10
11 Notação ER (Resumo) Exemplo de um diagrama ER com a notação (min,max) 11
12 Notação UML Especialização e Generalização Subclasses e Superclasses Especialização: Processo de definição de um conjunto de subclasses (sub-tipos) de um tipo de entidade Generalização: Processo de definição de um tipo de entidade genérico (super-classe ou super-tipo) a partir de um conjunto de tipos de entidade Exemplo: {SECRETARIA, ENGENHEIRO, TECNICO} é uma especialização de EMPREGADO ou EMPREGADO é uma generalização de {SECRETARIA, ENGENHEIRO, TECNICO} 12
13 Especialização e Generalização Toda instância de uma sub-classe (ou subtipo) é também uma instância de sua superclasse (ou super-tipo) Ex.: John Smith é um engenheiro e também um empregado Herança de atributos e relacionamentos: Uma entidade de uma sub-classe possui todos os atributos e relacionamentos de sua super-classe, ou seja, ela herda todos os atributos e relacionamentos da super-classe Além disso, uma entidade de uma sub-classe pode possuir seus próprios atributos e relacionamentos locais ou específicos Instâncias das subclasses de EMPREGADO 13
14 Especialização O processo de especialização permite: Definir um conjunto de sub-classes (subtipos) de um determinado tipo de entidade Estabelecer atributos específicos adicionais para cada sub-classe (sub-tipo) Estabelecer tipos de relacionamento específicos adicionais entre cada sub-classe (sub-tipo) e outros tipos de entidade ou sub-classes (sub-tipos) Exemplos de especializações 14
15 Especialização definida por atributo Generalização O processo de generalização permite: Definir um determinado tipo de entidade como uma generalização de um conjunto de sub-classes (sub-tipos) Simplificar a representação de cada subclasse (sub-tipo) fatorando-se seus atributos e tipos de relacionamento 15
16 Exemplo de generalização Restrições sobre Hierarquias de Especialização/Generalização Disjução: Sub-classes podem ser disjuntas ou sobrepostas Completude: A completude da super-classe em relação às subclasses pode ser total ou parcial Restrições possíveis: Disjunta/Total Disjunta/Parcial Sobreposta/Total Sobreposta/Parcial 16
17 Hierarquia disjunta e total Hierarquia sobreposta e total 17
18 Hierarquia de especialização com subclasse compartilhada (reticulado) Hierarquia de especialização com herança múltipla 18
19 Relacionamentos Ternários ou Binários M N NumPeca P PECA X NumPeca PECA Relacionamentos Ternários Representação usando Entidade Fraca 1 1 NumPeca 1 PECA 19
20 Relacionamentos Ternários Outro Exemplo de Não Equivalência Relacionamentos Ternários Tipo de Entidade Fraca 1 1 N N 1 20
21 Agregação Permite que entidades de determinados tipos relacionadas entre si por meio de um relacionamento possam ser tratadas como um objeto agregado de mais alto nível. M N N 1 Como Realizar uma Agregação? (1) (2)? (3) (4) X 21
22 Resumo Modelo ER: usado na fase de projeto conceitual Conceitos básicos: entidades, atributos, relacionamentos Entidades e relacionamentos organizados em tipos Relacionamentos binários e n-ários Notação diagramática Restrições de integridade: cardinalidade e participação Conceitos adicionais: generalização, especialização e agregação Questões e Exercícios Sugeridos Capítulo 3: 3.4, 3.6, 3.8, 3.13, 3.16, 3.23 Capítulo 4: 4.1, 4.3, 4.6, 4.8, 4.17,