Bancos de Dados Mestrado em Engenharia de Computação área de concentração Geomática UERJ © Oscar Luiz Monteiro de Farias 1 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 2 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 3 UERJ © Oscar Luiz Monteiro de Farias 4 O Modelo ER... • Tipos-Entidades (Classes) • Relacionamentos • Atributos (características dos objetos) UERJ © Oscar Luiz Monteiro de Farias 5 O Modelo ER... • Tipos-Entidades (Classes): Conjunto de objetos do mesmo “tipo”. – – – – – UERJ as coisas tangíveis as funções exercidas por elementos eventos ou ocorrências interações especificações © Oscar Luiz Monteiro de Farias 6 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: – – – – UERJ regras que as definem (e as exceções) exemplos ilustrativos correlação entre conceitos outras informações que facilitem o entendimento © Oscar Luiz Monteiro de Farias 7 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 8 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 9 O Modelo ER... • Tipos de atributos – simples x compostos (Endereço = rua + n0 + 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 10 O Modelo ER... Nome do tipo-entidade /classe Atributo 1 Atributo 2 Atributo n-1 Atributo n Atributo composto Atributo multi-valorado Atributo 2.1 UERJ Atributo 2.2 Atributo 2.m © Oscar Luiz Monteiro de Farias 11 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 12 Banco de Dados da empresa X... A Cia é organizada em departamentos. Cada depto tem um nome único, n0 ú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 depto. Um depto pode ter várias localizações. Um depto controla um dado n0 de projetos, cada um dos quais com um nome único, n0 único e apenas uma localização UERJ © Oscar Luiz Monteiro de Farias 13 Banco de Dados da empresa X... São armazenados para cada empregado: o seu nome, n0 de seguridade social, endereço, salário, sexo e data de nascimento. Um empregado é vinculado a um só depto, mas pode trabalhar em vários projetos, os quais não são necessariamente controlados pelo mesmo depto. 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 14 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 15 UERJ © Oscar Luiz Monteiro de Farias 16 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 tipo-entidade (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 17 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 18 O Modelo ER... • • • • • UERJ 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(V1), P(V2), ... P(Vn), onde V1, V2, ..., Vn são os domínios dos componentes simples de atributos que formam A, i. e., V = P(V1) x P(V2) x ... X P(Vn) Os atributos compostos e multi-valorados podem ser aninhados em modos arbitrários. © Oscar Luiz Monteiro de Farias 19 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 20 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, n0_do_telefone)}, Endereço (Endereço_da_rua (Rua, N0, Apartamento), Cidade, Estado, CEP))} UERJ © Oscar Luiz Monteiro de Farias 21 O Modelo ER... • Um Relacionamento R entre entre n tiposentidades (classes) E1, E2, ..., En define um conjunto de associações entre entidades (objetos) destes tipos (classes). • R é um conjunto de instâncias de relacionamento ri, onde cada ri associa n entidades (e1, e2, ..., en) e cada entidade (objeto) ej em ri é um membro do tipo-entidade (classe) Ej, 1 j n. UERJ © Oscar Luiz Monteiro de Farias 22 O Modelo ER... • Um relacionamento R pode ser visto como uma relação matemática em E1, E2, ..., En. • Pode também ser pensado como um subconjunto do produto cartesiano E1 x E2 x ... x En. • Cada um dos tipos-entidades (classes) E1, E2, ..., En participam no relacionamento R e cada uma das entidades (objetos) e1, e2, ..., en participam na instância do relacionamento ri= (e1, e2, ..., en) UERJ © Oscar Luiz Monteiro de Farias 23 Exemplo de Relacionamento WORKS_FOR EMPLOYEE UERJ DEPARTMENT r2 e1 e2 e3 e4 e5 e6 e7 r1 j1 r3 j2 r4 r5 . . . r6 j3 . . . r7 ... © Oscar Luiz Monteiro de Farias 24 Relacionamento Ternário SUPPLY SUPPLIER r1 s1 PROJECT r2 s2 . . . j1 r3 j2 r4 r5 PART r6 j3 . . . p1 p2 p3 UERJ . . . r7 ... Cada instância do relacionamento ri 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. © Oscar Luiz Monteiro de Farias 25 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 26 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 27 Relacionamento recursivo EMPLOYEE Papéis: supervisiona - vermelho é supervisionado - verde e1 r3 e3 r4 e4 r5 e5 r6 e6 UERJ r1 r2 e2 e7 SUPERVISION r7 ... ... © Oscar Luiz Monteiro de Farias 28 Restrições em Relacionamentos... • Razão de Cardinalidade (cardinality radio): especifica o n0 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 29 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 30 Atributos de Relacionamentos... • Relacionamentos podem, à semelhança dos tiposentidades, possuir atributos. • Exs.: i) Nos de horas por semana que um empregado trabalha em um projeto; ii) data na qual um gerente começou a gerenciar um depto. • 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 31 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 32 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 tipoentidade (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 33 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 34 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 35 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 36 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 37 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 38 UERJ © Oscar Luiz Monteiro de Farias 39 UERJ © Oscar Luiz Monteiro de Farias 40 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 41 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