UERJ Oscar Luiz Monteiro de Farias 1 Bancos de Dados Mestrado em Engenharia de Computação área de concentração Geomática
UERJ Oscar Luiz Monteiro de Farias 2 Modelagem de Dados O Modelo Entidade-Relacionamento (ER) Peter P. Chen, The Entity-Relationship Model: Toward the unified view of data, março de XXX?
UERJ Oscar Luiz Monteiro de Farias 3 Uso de MCDs no Projeto de BDs PASSO 1: Análise e coleta de requisitos PASSO 2: Projeto conceitual da Base de Dados PASSO 3: Mapeamento Lógico da Base de Dados (Mapeamento do Modelo de Dados) PASSO 4: Projeto Físico do Banco de Dados (MFD)
UERJ Oscar Luiz Monteiro de Farias 4
UERJ Oscar Luiz Monteiro de Farias 5 O Modelo ER... Tipos-Entidades (Classes) Relacionamentos Atributos (características dos objetos)
UERJ Oscar Luiz Monteiro de Farias 6 O Modelo ER... Tipos-Entidades (Classes): Conjunto de objetos do mesmo tipo. as coisas tangíveis as funções exercidas por elementos eventos ou ocorrências interações especificações
UERJ Oscar Luiz Monteiro de Farias 7 O Modelo ER... Os tipos-entidades (classes de objetos) modelados devem ter o seu significado esclarecido em um Dicionário de Dados (DD). Modelo algum é suficientemente claro se não for acompanhado de uma definição formal de seus elementos (dicionário de dados ou similar). Conceituar as entidades mostrando: regras que as definem (e as exceções) exemplos ilustrativos correlação entre conceitos outras informações que facilitem o entendimento
UERJ Oscar Luiz Monteiro de Farias 8 O Modelo ER... As informações sobre as entidades relacionadas em um DD devem ajudar a responder as perguntas: O que é a entidade? O que faz? Para que serve? O que engloba esta entidade/classe? O que está excluído desta classe? Quando alguém (algo) passa a ser, ou deixa de ser, um elemento deste tipo? Sua permanência nesta categoria é imutável?
UERJ Oscar Luiz Monteiro de Farias 9 O Modelo ER... Tipo-entidade/classe - define um conjunto de objetos que possuem os mesmos atributos Cada tipo-entidade no banco de dados é descrita por um nome e por uma lista de atributos Um tipo-entidade (classe) descreve o schema ou intensão para um conjunto de objetos que partilham a mesma estrutura. Os objetos individuais de um determinado tipo-entidade (classe) são agrupados em uma coleção ou conjuntoentidade (extensão)
UERJ Oscar Luiz Monteiro de Farias 10 O Modelo ER... Tipos de atributos simples x compostos (Endereço = rua + n 0 + ap. + bairro + cidade + Estado + CEP) monovalorados x multi-valorados (cores de um veículo) armazenados x derivados Valores nulos não aplicáveis desconhecidos (is missing x not known)
UERJ Oscar Luiz Monteiro de Farias 11 O Modelo ER... Nome do tipo-entidade /classe Atributo 1 Atributo 2 Atributo n-1 Atributo n Atributo composto Atributo 2.1 Atributo 2.2 Atributo 2.m Atributo multi-valorado
UERJ Oscar Luiz Monteiro de Farias 12 Banco de Dados da empresa X... O Banco de Dados (bd) da empresa armazena informações sobre os seus empregados, departamentos e projetos.
UERJ Oscar Luiz Monteiro de Farias 13 Banco de Dados da empresa X... A Cia é organizada em departamentos. Cada dept o tem um nome único, n 0 único e um empregado especial que o gerencia. Registra-se a data de início em que este empregado especial começou a gerenciar o dept o. Um dept o pode ter várias localizações. Um dept o controla um dado n 0 de projetos, cada um dos quais com um nome único, n 0 único e apenas uma localização
UERJ Oscar Luiz Monteiro de Farias 14 Banco de Dados da empresa X... São armazenados para cada empregado: o seu nome, n 0 de seguridade social, endereço, salário, sexo e data de nascimento. Um empregado é vinculado a um só dept o, mas pode trabalhar em vários projetos, os quais não são necessariamente controlados pelo mesmo dept o. São registradas as horas por semana que um empregado trabalha em cada projeto. Assinala-se ainda, para cada empregado, o seu supervisor direto. Para fins de seguro, são registrados os dependentes de cada empregado. São armazenados: nome, sexo, data de nascimento e a relação com o empregado
UERJ Oscar Luiz Monteiro de Farias 15 Banco de Dados da empresa X... Projeto Conceitual Inicial 4 tipos-entidades (classes) foram identificados: DEPARTMENT - atributos: Name, Number, Location (multivalorado), Manager e ManagerStartDate. PROJECT - atributos: Name, Number, Location e Controlling Department. EMPLOYEE - atributos: Name, SSN, Sex, Address, Salary, BirthDate, Department e Supervisor. Name e Address podem ser atributos compostos (deve-se entrevistar os usuários para ver se eles irão se referir aos componentes individuais). DEPENDENT - atributos: Employee, DependentName, Sex, BirthDate e Relationship
UERJ Oscar Luiz Monteiro de Farias 16
UERJ Oscar Luiz Monteiro de Farias 17 O Modelo ER... Atributos chaves de um tipo-entidade (chaves): cada tipoentidade (classe) usualmente possui um atributo cujo valor é distinto para cada entidade (objeto) individual daquele tipoentidade (classe). O valor de uma chave é usado para identificar unívocamente um objeto. Um conjunto de atributos (concatenados) que identificam unívocamente um objeto é também uma chave. No diagrama do modelo ER cada atributo chave possui o seu nome sublinhado. Alguns tipo-entidades (classes) possuem mais de uma chave.
UERJ Oscar Luiz Monteiro de Farias 18 O Modelo ER... Cada atributo simples de um tipo-entidade está associado com um domínio, o qual especifica o conjunto de valores que podem ser assumidos pelo correspondente atributo das entidades individuais (objetos). Os domínios não aparecem nos diagramas ER Um atributo A de um tipo-entidade (classe) E cujo domínio é V pode ser definido como uma função de E no conjunto potência de V: A: E P(V) P(V) é o conjunto de todos os subconjuntos de V. A(e) = valor de um atributo de uma entidade (objeto) e.
UERJ Oscar Luiz Monteiro de Farias 19 O Modelo ER... A definição acima cobre os atributos mono-valorados e multivalorados bem como os NULLs. NULL - conjunto vazio atributos mono-valorados - A(e) é restrito a um conjunto com um único elemento. Atributos multi-valorados - A(e) pode ter vários elementos Atributos compostos - o domínio V é o produto cartesiano de P(V 1 ), P(V 2 ),... P(V n ), onde V 1, V 2,..., V n são os domínios dos componentes simples de atributos que formam A, i. e., V = P(V 1 ) x P(V 2 ) x... X P(V n ) Os atributos compostos e multi-valorados podem ser aninhados em modos arbitrários.
UERJ Oscar Luiz Monteiro de Farias 20 O Modelo ER... Notação: aninhamentos arbitrários podem ser representados grupando-se os componentes de um atributo composto entre parênteses ( ) e separando-se os componentes por vírgula, ; mostrando-se os atributos multi-valorados entre chaves {}.
UERJ Oscar Luiz Monteiro de Farias 21 O Modelo ER... Exemplo: uma pessoa pode ter mais que uma residência e cada uma dessas residências pode ter múltiplos telefones. O atributo Telefone_Residencial para uma entidadetipo (classe) Pessoa pode ser especificado como: {Telefone_Residencial ({Telefone (Código_de_Área, n 0 _do_telefone)}, Endereço (Endereço_da_rua (Rua, N 0, Apartamento), Cidade, Estado, CEP))}
UERJ Oscar Luiz Monteiro de Farias 22 O Modelo ER... Um Relacionamento R entre entre n tiposentidades (classes) E 1, E 2,..., E n define um conjunto de associações entre entidades (objetos) destes tipos (classes). R é um conjunto de instâncias de relacionamento r i, onde cada r i associa n entidades (e 1, e 2,..., e n ) e cada entidade (objeto) e j em r i é um membro do tipoentidade (classe) E j, 1 j n.
UERJ Oscar Luiz Monteiro de Farias 23 O Modelo ER... Um relacionamento R pode ser visto como uma relação matemática em E 1, E 2,..., E n. Pode também ser pensado como um subconjunto do produto cartesiano E 1 x E 2 x... x E n. Cada um dos tipos-entidades (classes) E 1, E 2,..., E n participam no relacionamento R e cada uma das entidades (objetos) e 1, e 2,..., e n participam na instância do relacionamento r i = (e 1, e 2,..., e n )
UERJ Oscar Luiz Monteiro de Farias 24 Exemplo de Relacionamento WORKS_FOR EMPLOYEE r 1 DEPARTMENT e 1 e 2 e 3 e 4 e 5 e 6 e 7.. r 2 r 3 r 4 r 5 r 6... j 1 j 2 j 3 r 7.
UERJ Oscar Luiz Monteiro de Farias 25 Relacionamento Ternário SUPPLIER SUPPLY r 1 PROJECT s 1 r 2 s 2. PART r 3 r 4 r 5 r 6... j 1 j 2 j 3 p 1 p 2 r 7 p 3. Cada instância do relacionamento. r i associa 3 entidades (objetos): um fornecedor s, uma peça p e um projeto j, sempre que s fornece a peça p para o projeto j.
UERJ Oscar Luiz Monteiro de Farias 26 Relacionamentos... Grau de um Relacionamento: é o número de tiposentidades (classes) que participam do relacionamento. Relacionamentos como atributos (R=WORK_FOR) i) considerar um atributo department para o tipoentidade EMPLOYEE ii) considerar um atributo multi-valorado employees no tipo-entidade DEPARTMENT
UERJ Oscar Luiz Monteiro de Farias 27 Relacionamentos... Papel (role name): o papel que cada entidade participante (objeto) de um tipo-entidade (classe) desempenha em uma relação de instância. Relacionamentos recursivos: ocorre quando o mesmo tipo-entidade (classe) participa mais de uma vez em um mesmo relacionamento. Neste caso o nome dos papéis é essencial para distinguir o significado de cada participação.
UERJ Oscar Luiz Monteiro de Farias 28 Relacionamento recursivo EMPLOYEE e 1 e 2 Papéis: supervisiona - vermelho é supervisionado - verde SUPERVISION r 1 r 2 e 3 r 3 e 4 r 4 e 5 r 5 e 6 r 6 e 7. r 7.
UERJ Oscar Luiz Monteiro de Farias 29 Restrições em Relacionamentos... Razão de Cardinalidade (cardinality radio): especifica o n 0 de instâncias em um relacionamento de que uma dada entidade pode participar. Ex.: O relacionamento binário WORKS_FOR (DEPARTMENT:EMPLOYEE) possui a razão de cardinalidade 1:N, significando que cada departamento pode estar relacionado com vários empregados, mas que um empregado pode estar relacionado com apenas um departamento. Razões de cardinalidade comuns: 1:1; 1:N e M:N
UERJ Oscar Luiz Monteiro de Farias 30 Restrições em Relacionamentos... Participação parcial - quando não necessariamente todos os elementos de um conjunto participam de uma relação. Participação total (dependência existencial) - quando todos os elementos de um conjunto participam de uma relação. Participação total é indicada por uma linha dupla e participação parcial por uma linha simples
UERJ Oscar Luiz Monteiro de Farias 31 Atributos de Relacionamentos... Relacionamentos podem, à semelhança dos tiposentidades, possuir atributos. Exs.: i) N os de horas por semana que um empregado trabalha em um projeto; ii) data na qual um gerente começou a gerenciar um dept o. Atributos de relacionamentos 1:1 e 1:N podem migrar para uma das entidades participantes. Nos relacionamentos 1:1 para qualquer dos tipos-entidades Nos relacionamentos 1:N apenas para o tipo-entidade do lado N da relação
UERJ Oscar Luiz Monteiro de Farias 32 Atributos de Relacionamentos... Para relacionamentos de grau M:N alguns atributos só podem ser determinados pela combinação das entidades participantes em uma determinada instância do relacionamento e não apenas para uma delas isoladamente. São, obrigatoriamente, atributos do relacionamento. Ex.: O atributo Hours do relacionamento M:N WORKS_ON
UERJ Oscar Luiz Monteiro de Farias 33 Tipos-entidades fracos (weak entity types)... Tratam-se de tipos-entidades (classes) que não possuem atributos chaves Entidades que pertençam a tipos-entidades fracos são identificadas por estarem relacionadas (identifying relationship) a entidades específicas de um outro tipo-entidade (identifying owner) em combinação com alguns de seus próprios valores de atributos. Um tipo-entidade fraco sempre possui uma restrição de participação total com respeito ao relacionamento de identificação (identifying relationship). Nem toda dependência existencial resulta em uma tipoentidade fraco (ex.: carteira de motorista)
UERJ Oscar Luiz Monteiro de Farias 34 Tipos-entidades fracos (weak entity types) Um tipo-entidade fraco normalmente tem uma chave parcial, que é um conjunto de atributos que podem univocamente identificar entidades fracas relacionadas à mesma entidade possuidora (owner). Nos diagramas ER uma entidade fraca é representada por um retângulo em linhas duplas. Tipos-entidadades fracos às vezes podem ser representados por atributos multi-valorados compostos.
UERJ Oscar Luiz Monteiro de Farias 35 Refinando o Modelo ER p/ a empresa X... MANAGES - um relacionamento 1:1 entre EMPLOYEE e DEPARTMENT. A participação de EMPLOYEE é parcial; a de DEPARTMENT é total. O atributo StartDate é incluído no relacionamento. WORKS_FOR é um relacionamento 1:N entre DEPARTMENT e EMPLOYEE. Ambas as participações são totais. CONTROLS é um relacionamento 1:N entre DEPARTMENT e PROJECT. A participação de PROJECT é total, a de DEPARTMENT, parcial.
UERJ Oscar Luiz Monteiro de Farias 36 Refinando o Modelo ER p/ a empresa X... SUPERVISION é um relacionamento 1:N entre EMPLOYEE (supervisor) e EMPLOYEE (supervisionado). Ambas as participações são parciais, o que indica que nem todo empregado é um supervisor e nem todo empregado possui um supervisor. WORKS_ON é um relacionamento M:N entre EMPLOYEE e PROJECT. Ambas as participações são totais. O atributo Hours indica o número de horas em que um dado empregado trabalha em determinado projeto. DEPENDENTS_OF é um relacionamento 1:N entre EMPLOYEE e DEPENDENT. DEPENDENTS_OF é um relacionamento de identificação. A participação de EMPLOYEE é parcial, a de DEPENDENT é total.
UERJ Oscar Luiz Monteiro de Farias 37 Relacionamentos: Notações no Modelo ER A cardinalidade do relacionamento de cada relacionamento binário é representado anexando-se 1, M ou N na linha que conecta o símbolo da entidade respectiva ao relacionamento. Linha simples: participação parcial, Linha dupla: participação total. Associa um par de números inteiros (min, max) com cada participação do tipo-entidade E em um relacionamento R, onde 0 min max e max 1. Para cada entidade e em E, e deve participar com no mínimo min e no máximo max instâncias de relacionamento em R. min=0 implica participação parcial e min > 0 participação total.
UERJ Oscar Luiz Monteiro de Farias 38 Nomeando as construções do esquema Usar nomes com alto conteúdo semântico Usar nomes no singular para os tipos-entidades Entidades e Relacionamentos em maiúsculas Atributos iniciam-se com letra maiúscula Nomes de papéis em minúsculas Usar nomes que correspondam à descrição do mini-mundo O diagrama ER deve ser lido da esquerda para a direita e de cima para baixo
UERJ Oscar Luiz Monteiro de Farias 39
UERJ Oscar Luiz Monteiro de Farias 40
UERJ Oscar Luiz Monteiro de Farias 41 Relacionamentos de grau maior que 2 Um relacionamento R, de grau N, terá N linhas em um diagrama ER, cada uma conectando o Relacionamento a um tipo-entidade. Em geral um relacionamento ternário representa mais informação do que três relacionamentos binários.
UERJ Oscar Luiz Monteiro de Farias 42
Relacionamento Binário x Ternário UERJ Oscar Luiz Monteiro de Farias 43
Relacionamento de identidade ternário UERJ Oscar Luiz Monteiro de Farias 44