Modelo Entidade-Relacionamento
Processo de Projeto de Bancos de Dados Mini-Mundo Análise de Requisitos Requisitos Funcionais Requisitos do BD Análise Funcional Projeto Conceitual Especificação das Transações Esquema Conceitual (em alto nível) (em um modelo de dados de alto nível) Independente de SGBD Projeto Lógico Específico para um SGBD Esquema Lógico (em um modelo de dados lógico) Projeto das Aplicações Projeto Físico Implementação Esquema Físico (para um SGBD específico) Programas
Aplicação exemplo Banco de Dados de uma companhia Organizada em departamentos que têm um nome e um número únicos e um empregado que gerencia o departamento. A data de quando o empregado começou a gerenciar o departamento deve ser registrada. Um departamento pode ter varias localizações Um departamento controla um número de projetos, cada qual com um nome e número únicos e uma única localização
Aplicação exemplo Banco de Dados de uma companhia Nós armazenamos para cada empregado seu nome, identidade, endereço, salário, sexo, e data de nascimento. Um empregado e assinalado a um departamento mas pode trabalhar em diversos projetos, os quais não são necessariamente controlados pelo mesmo departamento. Nos registramos o número de horas por semana que o empregado trabalha em cada projeto e o supervisor direto de cada empregado Nós mantemos registro para cada empregado, do numero de dependentes (para seguro) e para cada dependente o primeiro nome, sexo, data de nascimento e relacionamento com o empregado.
Esquema conceitual M
Modelo ER - Conceitos Entidades: Objetos do mundo real que são de interesse para alguma aplicação Atributos: Propriedades utilizadas para descrever uma entidade e 1 (Employee) Name = John Address = 2311 Kirby, Houston, TX Age = 55 Home Phone = 713-749-2630
Modelo ER - Conceitos Tipos (classes) de atributo: Simples ou compostos Ex. Endereço (Endereço da Rua (número, nome da rua, número do apto), Cidade, Estado, CEP) Monovalorados ou multivalorados Ex. Profissão Armazenados ou derivados Data de Nascimento Idade, Empregados trabalhando no departamento NumeroDeEmpregados Valores Null Não aplicável Ex. Número do apartamento Desconhecido Ex. Telefone de casa
Modelo ER - Conceitos Tipo de entidade: Define um conjunto de entidades que têm os mesmos atributos (propriedades) Descreve o esquema para um conjunto de entidades que compartilham a mesma estrutura Exemplos: Employee, Company
Modelo ER - Conceitos Chave de um tipo de entidade: Atributo que possui valor único para cada entidade (instância) Ex. Nome da companhia, identidade do empregado Chave pode ser formada por vários atributos: chave composta Registro do Veiculo: Numero de Registro e Estado Domínio de um atributo: Conjunto de valores que podem ser atribuídos a um atributo para cada entidade individualmente Ex. Idade do Empregado: (16,70); Nome do Empregado:String A: E P(V)
Figura 3.5 Tipos de entidade e suas instâncias
Esquema conceitual M
Modelo ER - Conceitos Relacionamentos: Associações entre duas ou mais entidades distintas (instâncias) com um significado Exemplo: Employee John Smith Works-for Department Research Employee Fred Brown Manages Department Research Departament Research Controls Project X
Modelo ER - Conceitos Tipo de Relacionamento: Define um conjunto de associações entre n tipos de entidade E 1, E 2,...,E n Exemplo: Works-for entre Employee e Department Employee Works-for Department
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 r i = (e 1,...,e n ) Grau de um Tipo de Relacionamento Número de tipos de entidade participantes de um tipo de relacionamento
Instâncias de um tipo de relacionamento binário
Instâncias de um tipo de relacionamento ternário
Esquema conceitual M
Modelo ER - Conceitos Restrições sobre tipos de relacionamento: Limitam as possiveis combinações de entidades que podem participar no conjunto de relacionamentos 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 Ex. Todo empregado deve trabalhar para um departamento (total) Ex. Nem todo empregado gerencia um departamento (parcial) Cardinalidade + Participação Restrições Estruturais
Cardinalidade 1:1
Cardinalidade M:N
Esquema conceitual M
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: Supervision, onde Employee tem os papéis de Supervisor e Supervisee
Figure 3.11 1 Supervisor 2 - Supervisee
Esquema conceitual M
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: Dependent
Esquema conceitual M
Notação ER (Resumo)
(1,1) (4,N) (0,1) (1,1) (0,N) (1,N) (0,N) (0,1) (0,N) (1,1) M (1,M) (1,1) Exemplo de um diagrama ER com a notação (min,max)
Especialização e Generalização 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: {Secretary, Engineer, Technician} é uma especialização de Employee ou Employee é uma generalização de {Secretary, Engineer, Technician}
Especialização e Generalização Toda instância de uma sub-classe (ou subtipo) e tambem instância de sua super-classe (ou super-tipo) Ex.: John Smith é um engenheiro e também é um empregado Herança de Tipo: Uma entidade de uma sub-classe tem todos os atributos e relacionamentos da super-classe Em outra palavras, elaherda todos os atributos e relacionamentos da super-classe E pode definir seus proprios atributos e relacionamentos locais ou especificos (*)
Notação para especialização/generalização
Instâncias das subclasses de EMPLOYEE
Especialização O processo de especialização permite: Definir um conjuntode sub-classes (subtipos) de um tipo de entidade Estabelecer attributos especificos adicionais para cada sub-classe (sub-tipo) Estabelecer tipos de relacionamentos especificos adicionais entre cada sub-classe (sub-tipo) e outros tipos de entidades ou outras sub-classes (sub-tipos).
Exemplo de generalização
Restrições sobre Hierarquias de Especialização/Generalização Definida por atributo ou usuario Disjução: Sub-classes podem ser disjuntas ou sobrepostas Completude: A cobertura da super-classe em relação às subclasses pode ser total ou parcial Restriçoes possíveis: Disjunta/Total Disjunta/Parcial Sobreposta/Total Sobreposta/Parcial
Especialização definida por atributo
Hierarquia disjunta total
Hierarquia sobreposta total
Restrições sobre Hierarquias de Especialização/Generalização Hierarquia Toda sub-classe participa como uma subclasse em apenas um relacionamento classe/sub-classe Lattice Uma sub-classe pode participar em mais de um relacionamento classe/sub-classe
Hierarquia de especialização com múltipla herança
Relacionamentos Ternários X
Relacionamentos Ternários Representação usando Tipo de Entidade Fraca 1 N N 1 N 1
Relacionamentos Ternários Outro exemplo de não equivalência
Modelagem usando UML Classes:
Modelagem usando UML Associações:
Modelagem usando UML Associações (especializacao/generalizacao):
Modelagem usando UML Associacoes (agregacao): Polygon 1 contains 3..* Point
Modelagem usando UML Associacoes (qualificador):
Modelagem usando UML Hierarquia de Especialização/Generalização
Modelagem usando UML