Banco de Dados Aula 1.5 - Modelo ER Bruno Neiva Moreno Instituto Federal do Rio Grande do Norte Campus Nova Cruz bruno.moreno@ifrn.edu.br 1/40
Modelo Entidade Relacionamento Descreve objetos (entidades), suas características (atributos) e como eles se relacionam entre si (relacionamento); É um modelo conceitual utilizado na Engenharia de Software para descrever uma solução É comumente utilizado para se representar banco de dados A modelagem de dados é uma ferramenta de compreensão do minimundo 2/40
Diagrama Entidade Relacionamento O DER é a representação gráfica do MER Muitas vezes o DER é tratado como sinônimo do MER Assim, quando se está modelando um domínio, é comum já criar sua representação gráfica utilizando as regras do DER; O diagrama ainda auxilia na comunicação entre os integrantes da equipe de desenvolvimento Oferece uma linguagem comum A notação original do DER foi criada por Peter Chen O mesmo que idealizou modelo Existem outras notações do DER: inclusive utilizando noções de UML 3/40
Diagrama Entidade Relacionamento Principais conceitos do DER: Entidades são representadas por retângulos Atributos são representados por elipses conectadas por linhas às entidades ou a atributos Relacionamentos são representados por losangos Relacionamentos são conectados por linhas às entidades A notação permite a representação da cardinalidade dos relacionamentos (1..1, 1..n, n..m) 4/40
Conceitos Principais Entidades Relacionamentos Atributos Ferramentas CASE 5/40
Conceitos Principais Entidades Relacionamentos Atributos Ferramentas CASE 6/40
Entidades São objetos ou partes envolvidas de um domínio Podem ser classificadas como físicas ou lógicas Depende de sua existência no mundo real Entidades físicas São tangíveis, existentes e visíveis no mundo real; Exemplos: cliente, paciente, professor, produto, prateleira Entidades lógicas Existem geralmente em decorrência da interação entre entidades físicas; Não são objetos físicos do mundo real; Exemplos: venda, tipo de um objeto (modelo, espécie, etc.) 7/40
Entidades São nomeadas com substantivos concretos ou abstratos que representem de forma clara sua função dentro do domínio; Exemplo Cliente, produto, venda, turma, função, etc. Uma boa prática é definir nomes de entidades no singular! São representadas por retângulos no DER: 8/40
Tipos de Entidades Entidades fortes São aquelas cuja existência independe de outras entidades; Exemplo: produto independe de quaisquer outras para existir Entidades fracas Dependem de outras entidades para existir; Individualmente, elas não fazem sentido; Exemplos: a entidade venda depende da entidade produto; a entidade dependente depende da entidade funcionário; É representada por um retângulo inscrito em outro retângulo: 9/40
Conceitos Principais Entidades Relacionamentos Atributos Ferramentas CASE 10/40
Relacionamentos Os relacionamentos são nomeados com verbos ou expressões que representam como as entidades interagem entre si; Essa nomenclatura pode variar de acordo com a direção em que se lê o relacionamento; Por exemplo: um autor escreve vários livros enquanto um livro é escrito por vários autores; Relacionamentos são representados por losangos no DER: 11/40
Relacionamentos A quantidade de objetos envolvidos de cada lado define o tipo do relacionamento (cardinalidade): Relacionamento 1..1 (um para um); Relacionamento 1..n ou 1..* (um para muitos); Relacionamento n..m ou *..* (muitos para muitos); 12/40
Relacionamento 1..1 Envolve apenas uma unidade de cada entidade envolvida; Exemplos: Em um BD de currículos, cada usuário pode possuir apenas um currículo e cada currículo pertence a um usuário Em um BD de uma empresa, um funcionário pode gerenciar apenas um departamento e cada departamento é gerenciado por apenas um funcionário. 13/40
Relacionamento 1..n Uma unidade de uma entidade pode referenciar várias unidades da outra Porém, do outro lado, cada uma das várias unidades só pode estar ligada a uma unidade da outra entidade; Exemplos (BD de uma empresa): Um funcionário pode trabalhar em apenas um departamento, mas cada departamento possui vários funcionários trabalhando. 14/40
Relacionamento n..n As entidades podem referenciar múltiplas entidades entre si; Exemplos: Em BD de uma biblioteca, um livro pode ter sido escrito por vários autores e um autor pode ter escrito vários livros; Em BD de uma empresa, um funcionário pode trabalhar em vários projetos e um projeto pode ter vários funcionários. 15/40
Tipos de Representação de Cardinalidade 16/40
Tipos de Relacionamentos Um relacionamento pode ser classificado quanto ao número de entidades envolvidas (grau); Grau de TRABALHA PARA: 2 (binário); 17/40
Tipos de Relacionamentos Um relacionamento pode ser classificado quanto ao número de entidades envolvidas (grau); Grau de FORNECE: 3 (ternário); 18/40
Relacionamento Ternário Só deve ser utilizado se o referido relacionamento não puder ser transformado em binário. 19/40
Papel de um Relacionamento Representa o papel que uma entidade realiza em um relacionamento; Relacionamento TRABALHA PARA EMPREGADO é empregado Relacionamento SUPERVISÃO EMPREGADO é supervisor Este relacionamento é chamado recursivo (ou reflexivo): 20/40
Conceitos Principais Entidades Relacionamentos Atributos Ferramentas CASE 21/40
Atributos Descrevem cada entidade dentro de um domínio em específico Por exemplo, os atributos da entidade CLIENTE podem ser NOME, ENDEREÇO e TELEFONE Durante a análise de requisitos, são identificados os atributos relevantes para cada entidade O modelo deve ser simples: só deve ter informações úteis! Exemplo (banco de dados para um supermercado): É interessante representar os atributos cor dos olhos, altura e peso da entidade PESSOA? 22/40
Atributos têm funções diferentes: Atributos descritivos representam características intrínsecas de uma entidade Nome ou idade de PESSOA Atributos nominativos são descritivos também, só que com a função de definir e identificar um objeto Nome, CPF ou RG de PESSOA Atributos referenciais representam a ligação de uma entidade com outra em um relacionamento A entidade VENDA possui o CPF do cliente que a relaciona com a entidade CLIENTE 23/40
Atributos têm estruturas diferentes: Um Atributo Simples é um atributo único que define uma característica da entidade Nome, peso, altura, cpf, identidade,... No DER, atributos são representados por elipses: 24/40
Atributos têm estruturas diferentes: Um Atributo Composto é formado por vários atributos simples Endereço pode ser composto por rua, número, bairro, etc. Telefone pode ser composto por código do país (DDI), código do estado (DDD) e o número do telefone No DER, um atributo composto é representado por conexões aos conectadas aos atributos simples que o compõe: 25/40
Atributos chave Atributos chave primária (primary key) Representam valores únicos que identificam a entidade dentro do domínio e não podem se repetir No DER, os atributos chaves são representados por elipses com o nome sublinhado: 26/40
Atributos referenciais Atributos referenciais (chaves estrangeiras ou foreign keys) Estão ligados à chave primária de outra entidade em um relacionamento Exemplo (cadastro de clientes): O atributo CPF pode ser chave primária de CLIENTE O atributo CPF CLIENTE de VENDA é uma chave referencial do relacionamento entre CLIENTE e VENDA Os atributos referenciais não são representados no DER 27/40
Atributos Multivalorados Podem possuir valores diversos Exemplos: telefone, e-mail, titulação, etc. No DER um atributo multivalorado é representado por uma elipse inscrita em outra elipse: 28/40
Atributos Derivados São atributos que dependem de outros atributos e/ou relacionamentos Exemplos: Data de nascimento (armazenado) e idade (derivado) O atributo número de empregados de Departamento é derivado do relacionamento entre Empregado e Departamento. No DER, um atributo derivado é representado por meio de uma elipse com linha tracejada: 29/40
Atributos de Relacionamentos Relacionamentos também podem conter atributos Exemplos: horas semanais que um funcionário trabalha em um projeto Data em que um funcionário passou a gerenciar departamento No DER, atributos de relacionamentos também são representados por elipses conectadas aos losangos: 30/40
Conceitos Principais Entidades Relacionamentos Atributos Ferramentas CASE 31/40
Conceitos Principais Entidades Relacionamentos Atributos Ferramentas CASE 32/40
Ferramentas CASE CASE: Computer-Aided Software Engineering; São ferramentas de software utilizadas para auxílio nas atividades de análise e modelagem de dados; Na área de BD, as ferramentas CASE permitem a criação de diagramas de forma simples em um ambiente de fácil utilização; Exemplos: ERDPlus (online), Visual Paradigm, Draw.io (online), Star UML 33/40
Ferramentas CASE Algumas IDEs ou ferramentas de administração de BDs possuem funcionalidades para criar diagramas facilmente e gerar o BD automaticamente; Tabelas Chaves Relacionamentos Demais restrições 34/40
BD de uma Imobiliária 35/40
BD de uma Companhia Aérea 36/40
Exemplo de Minimundo I 1. A empresa está organizada em departamentos. Cada departamento tem um nome único, um número único e um empregado que o gerencia; 2. O BD armazena a data que o empregado começou a gerenciar o departamento; 3. O departamento pode ter diversas localizações; 4. Um departamento controla um número qualquer de projetos, cada qual com um único nome, um único número e uma única localização; 5. Para cada empregado, é armazenado o CPF, endereço, salário, sexo e data de nascimento; 37/40
Exemplo de Minimundo II 6. Um empregado está alocado a um departamento, mas pode trabalhar em diversos projetos que não são controlados, necessariamente, pelo mesmo departamento; 7. O número de horas semanais que cada funcionário trabalha também é controlado, além do supervisor direto de cada funcionário; 8. O banco também controla os dependentes de cada empregado para fins de seguro; 9. Para cada dependente, é armazenado o primeiro nome, sexo, data de nascimento e o parentesco dele com o empregado 38/40
Projeto Conceitual do Minimundo I A empresa está organizada em departamentos; Cada departamento possui: Nome único; Número único; É gerenciado por um empregado; A data que o empregado começou a gerenciar; Diversas localizações. Um departamento controla um número qualquer de departamentos Cada projeto contém: Nome único; Número único; Localização única 39/40
Projeto Conceitual do Minimundo II Para cada empregado: Nome, CPF, endereço, salário, sexo, data de nascimento, numero de horas semanais, supervisor direto; Um empregado está alocado a um departamento, mas pode trabalhar em diversos projetos que não são controlados, necessariamente, pelo mesmo departamento. Para cada dependente: Primeiro nome, sexo, data de nascimento e o parentesco dele com o empregado 40/40