MER Modelagem de Dados Usando o Modelo Entidade-Relacionamento (ME-R) Conceitos O ME-R (Modelo Entidade Relacionamento) foi concebido para representar numa estrutura sintática a semântica que os dados possuem no mundo real. Uma característica importante, então, é que ele seja intuitivo. Isso pode ser facilitado representando-se graficamente as informações modeladas. (DE-R) Diagrama Entidades Relacionamentos (Peter Chain) 1
ME-R Construtores sintáticos O Modelo Relacional possui apenas quatro construtores sintáticos, onde qualquer situação do mundo real pode ser representada escolhendo-se apenas entre: Conjunto de Entidades Conjunto de Relacionamentos Atributos de Entidades Atributos de Relacionamentos; Conjunto de Entidades Coisas (objetos, pessoas, entes, etc do mundo real) são representadas numa modelagem usando o ME-R através de Entidades. Coleções de entidades que têm a mesma estrutura e o mesmo significado na modelagem são representados através de Conjuntos de Entidades. 2
Conjunto de Entidades Utiliza-se um retângulo para representar um Conjunto de Entidades. O ME-R não trata de Entidades individuais, apenas Conjuntos de Entidades que tenham a mesma estrutura e significado. Conjuntos de Relacionamentos Entidades associam-se no mundo real. Numa modelagem segundo o ME-R as associações são modeladas através de Relacionamentos. Os relacionamentos de entidades dos mesmos conjuntos que sejam estrutural e semanticamente iguais são representados através de Conjuntos de Relacionamentos. 3
Conjuntos de Relacionamentos Utiliza-se um losango para representar cada conjunto de relacionamentos. Podem existir muitos conjuntos de relacionamentos envolvendo os mesmos conjuntos de entidades. Atributos de Entidades Conjuntos de entidades e de relacionamentos são representações dos objetos e associações do mundo real e devem ser descritos através de valores, os quais descrevem propriedades das entidades e dos relacionamentos. As propriedades que se quer representar são modeladas através de Atributos. 4
Atributos de Entidades Atributos de Entidades são representados através de elipses ligadas aos Conjuntos de Entidades. Atributos de Entidades Conjuntos de Entidades são descritos através dos atributos das Entidades. Um conjunto de Entidades sem atributos que os descrevam fica sem sentido para uma modelagem. 5
Atributos de Relacionamentos Atributos de Relacionamentos são igualmente representados como elipses, ligadas aos Conjuntos de Relacionamentos. rua cidade nota sigla pessoa matricula materia Atributos de Relacionamentos Porém, ao contrário dos Conjuntos de Entidades, os Conjuntos de Relacionamentos podem existir mesmo que não tenham atributos próprios, uma vez que a indicação da associação entre as entidades já é uma razão suficiente para sua existência. 6
Atributos de relacionamentos Pode-se querer representar que pessoas matriculam-se em disciplinas, mas pode ser que não se esteja interessado em indicar-se as notas obtidas em cada matrícula. Perceba que nota é um atributo tipicamente do relacionamento matrícula. Atributos de relacionamentos Se fosse um atributo de pessoa, cada pessoa teria uma nota, não importa em qual disciplina. rua nota cidade sigla pessoa matricula materia 7
Atributos de relacionamentos Se fosse um atributo de disciplina, todas as pessoas matriculadas numa disciplina teriam a mesma nota. rua cidade nota sigla pessoa matricula materia Conceitos do ME-R Sintaxe mínima para cada estrutura: Chave: Todo conjunto de entidades deve ter um conjunto de atributos cujos valores identifiquem univocamente cada entidade no conjunto. A chave é o meio de acesso principal a uma entidade. 8
Conceitos do ME-R Sintaxe mínima para cada estrutura: Não tenho uma chave: rua cidade pessoa Conceitos do ME-R Sintaxe mínima para cada estrutura: Tenho uma chave: nro_matric rua cidade pessoa 9
Conceitos do ME-R Chave: Quando mais de um atributo compõe a chave de um conjunto de entidades, todos esses atributos devem ser grifados. É a concatenação de todos eles que indica a chave do conjunto de entidades. Conceitos do ME-R Papéis no Relacionamento: Cada conjunto de entidades que participa de um conjunto de relacionamentos tem um papel no relacionamento. A indicação de cada papel é opcional, embora cada papel sempre exista. A indicação de cada papel deve ser feita sempre que possa existir ambigüidade na interpretação do conjunto de relacionamentos. 10
Conceitos do ME-R Cardinalidade dos Relacionamentos: Todo conjunto de relacionamentos associa uma ou mais entidades de cada conjunto de entidades com uma ou mais entidades de cada conjunto de entidades envolvidos nos demais conjuntos de relacionamentos. Se houver dois conjuntos de entidades envolvidos no conjunto de relacionamentos, as cardinalidades podem ser: N:M (muitos para muitos) 1:N (um para muitos) ou N:1 (muitos para um) 1:1 (um para um) Conceitos do ME-R Grau dos Relacionamentos: Um conjunto de relacionamentos pode envolver dois ou mais conjuntos de entidades. O grau do Conjunto Relacionamento é o número de Conjunto de Entidades envolvido. Quando envolve: Dois conjuntos de Entidades: Binário Três conjuntos de Entidades: Ternário 11
Analogia com tipos de dados Analogia com o conceito de tipos de dados em linguagens de programação: Ex: Type cliente = record -cliente : string; seguro-social : string; rua-cliente : string; cidade-cliente : string end; Este código define um novo registro chamado cliente com quatro campos. Cada campo tem um e um tipo a ele associado. Exemplo Após a fase de coleta e análise de requisitos, os projetistas do banco de dados declararam a seguinte descrição do minimundo a parte da empresa a ser representada no banco de dados. Com essa descrição será possível gerar o diagrama do esquema ER para o banco de dados da empresa, que será chamado Empresa 12
Exemplo 1 A empresa está organizada em departamentos. Cada departamento tem um único, um número único e um empregado que gerencia o departamento. Temos a data em que o empregado começou a gerenciar o departamento. E este pode ter diversas localizações. 2 Um departamento controla um número qualquer de projetos, cada qual com um único, um único número e uma única localização. 3 Armazenamos o de cada empregado, o número do CPF, sexo, endereço, salário e data de nascimento. Um empregado está alocado a um departamento, mas pode trabalhar em diversos projetos, que não são controlados necessariamente pelo mesmo departamento. Controlamos o nº de horas semanais que um empregado trabalha em cada projeto. Também controlamos o supervisor direto de cada empregado. 4 Queremos ter o controle dos dependentes de cada empregado para fins de seguro. Guardamos o primeiro, sexo, data de nascimento de cada dependente, e o parentesco dele com o empregado. 13