Definições Modelo Entidade-Relacionamento # Entidades # Relacionamentos # Atributos # Relacionamentos # Cardinalidade # Chaves Diagrama Entidade-Relacionamento Projeto Conceitual, Lógico e Físico 1 Entidade é um objeto no mundo real que pode ser identificado de forma unívoca em relação a todos outros objetos. # Exemplos: Cada pessoa, em uma empresa, é uma entidade. Cada cliente, em um banco, é uma entidade. Uma entidade pode ser Concreta ou Abstrata. # Exemplos: Entidades Concretas: Pessoa, Livro, Máquina; Entidades Abstratas: Empréstimo. 2
Cada entidade possui um conjunto de propriedades. Cada propriedade é denominada atributo. # Exemplos: Endereço, Telefone, Sexo, etc.; # Alguns atributos devem assumir valores únicos. Por exemplo, não existem (ou não deveriam) existir duas pessoas com o mesmo número de CPF. Conjunto de entidades: é um conjunto que abrange entidades de mesmo tipo que possuem os mesmos atributos. # Exemplo: O conjunto de todas as pessoas que são clientes de um banco pode ser definido como o conjunto de entidades clientes. 3 Conjuntos de entidades distintos podem possuir entidades comuns. # Exemplo: Conjunto de entidades Pessoas; Conjunto de entidades Clientes; Conjunto de entidades Funcionários; Conjunto de entidades Empréstimos; Uma entidade pessoa pode participar do conjunto de entidades Clientes e Funcionários ao mesmo tempo. 4
Atributos são propriedades descritivas de cada membro de um conjunto de entidades. A designação de um atributo para um conjunto de entidades significa que o banco de dados mantém dados similares de cada uma das entidades do conjunto. Exemplo: Conjunto de entidades pessoas: Sara Armando Passos Oscar Vaz Cruz de Jesus Dias Aguiar A. Melo 4435-1234 3222-1666 3123-3457 2355-1123 4 entidades; Atributo 1: Prenome Atributo 2: Sobrenome Atributo 3: Telefone 5 Visto que os atributos são similares, não necessitam possuir o mesmo valor. # Exemplos: Pessoas distintas podem possuir endereços distintos; Pessoas distintas podem possuir nomes distintos. Os valores possíveis que um atributo pode assumir é denominado domínio. # Exemplos: O domínio de um atributo nome pode ser o conjunto de todas seqüências de, no máximo, 30 caracteres; O domínio de um atributo salário pode ser o conjunto de todos os números reais maiores que zero. 6
Tipos de atributos # Simples ou compostos: Atributos compostos são divididos em partes. São constituídos pela concatenação de atributos simples. Exemplo: O atributo nome pode ser composto pelos atributos prenome e sobrenome. 7 Tipos de atributos # Monovalorados ou Multivalorados: Monovalorados são os atributos que possuem valores simples para uma entidade em particular. Exemplo: Nome; Multivalorados são os atributos que podem possuir mais de um valor válido. É possível que existam várias instâncias de um mesmo atributo. Exemplo: Uma pessoa pode possuir vários números de telefone (residencial, comercial, celular, etc.). 8
Tipos de atributos # Nulos: Um atributo é nulo quando uma entidade não possuir valor para o atributo; Exemplo: Uma entidade pessoa pode não possuir o atributo dependentes. 9 Tipos de atributos # Derivados: O valor de um atributo pode ser derivado de outros atributos ou entidades a ele relacionados; Exemplo: Um atributo total_itens pode armazenar o número total de itens associados a uma entidade nota_fiscal; Problema decorrente: Redundância. 10
Relacionamentos # Um relacionamento é uma associação entre uma ou várias entidades. # Exemplos: Pode-se definir um relacionamento que associe uma entidade cliente a uma entidade empréstimo; Uma entidade cliente pode estar associado à várias entidades empréstimo. 11 Relacionamentos # O Conjunto de relacionamentos devedor denota a associação entre clientes e empréstimos contraídos pelos clientes. # Neste exemplo, o conjunto de relacionamentos é binário, pois envolve dois conjuntos de entidades. Conjunto de entidades Clientes Conjunto de entidades Empréstimos Sara Vaz 4435-1234 00001 R$ 5000,00 Armando Cruz de Jesus 3222-1666 00002 R$ 4000,00 Passos Dias Aguiar 3123-3457 00003 R$ 1400,00 Oscar A. Melo 2355-1123 00004 R$ 5780,00 12
Cardinalidade # Expressa o número de entidades às quais outra entidade pode estar associada via um conjunto de relacionamentos; # O mapeamento apropriado de cardinalidades depende das situações reais que estão sendo modeladas pelo conjunto de relacionamentos. 13 Cardinalidade - Tipos # Considerando-se dois conjuntos de entidades A e B: Um para um: Uma entidade em A está associada, no máximo, a uma entidade em B; Um para muitos: Uma entidade em A está associada a várias entidades em B, porém esta deve estar associada em somente uma entidade em A; Muitos para um: Uma entidade em A está associada, no máximo, a uma entidade em B, porém esta pode estar associada a um número qualquer de entidades em A; Muitos para muitos: Uma entidade em A está associada a um número qualquer de entidades em B e vice-versa. 14
Cardinalidade - Exemplos # Um para um (1:1): Um funcionário pode estar vinculado a somente um escritório de uma determinada empresa; # Um para muitos (1:N): Uma pessoa pode ter várias contas correntes; # Muitos para um (N:1): Um escritório pode estar associado à vários funcionários, porém cada funcionário pode estar associado a somente um escritório; # Muitos para muitos (M:N): Uma conta corrente pode estar associada a várias pessoas (conta conjunta, por exemplo) e pessoas podem estar associadas a várias contas correntes. 15 Cardinalidade - Considerações # Entidades com relações um-para-um normalmente são agrupadas em uma única entidade (criação de uma atributo em uma das entidades, por exemplo); # Relações muitos-para-muitos entre duas entidades podem ser modeladas por uma terceira, contendo dois relacionamentos um-para-muitos: um de cada tabela original. 16
Dependência de existência # Se uma entidade X depende da entidade Y para existir, então X é dependente da existência de Y; # Neste caso, Y é considerada entidade Dominante e X entidade Subordinada; # Um entidade ItemVendido somente pode existir se a entidade Venda existir. Se uma entidade Venda for excluída, todos os itens associados também devem ser excluídos. 17 Chaves # Especifica como podem ser identificadas entidades dentro de um conjunto de entidades e relacionamentos dentro de um conjunto de relacionamentos; # Uma chave é uma propriedade dentro de um conjunto de entidades e não de uma entidade individualmente. 18
Superchave # Conjunto de um ou mais atributos que, tomados coletivamente, permitem identificar, de maneira unívoca, uma entidade em um conjunto de entidades; # Superchaves podem possuir atributos externos; # Exemplos: O atributo CPF de uma entidade pessoa é Superchave; O atributo nome de uma entidade pessoa não é Superchave. 19 Superchave # Superchaves podem ter subconjuntos que também são Superchaves; Exemplo: os atributos CPF e nome podem constituir uma Superchave, porém somente o CPF também é Superchave; # Superchaves mínimas (para as quais nenhum subconjunto é Superchave) são denominadas chaves candidatas; # Cuidado na escolha de uma chave candidata: Unicidade. 20
Chave Primária # Chave Primária corresponde a uma chave candidata escolhida pelo projetista do banco de dados. Seu significado permite identificar univocamente entidades dentro de um conjunto de entidades; # Entidade Forte: Entidades que possuem chave primária. Caracterizam entidades Dominantes. # Entidade Fraca: Não possui atributos suficientes para formar uma chave primária. Caracterizam entidades Subordinadas. 21 Diagrama Entidade-Relacionamento Representa, graficamente, a estrutura lógica de um banco de dados. Componentes: # Retângulos: Conjuntos de entidades; # Elipses: Atributos. Atributos que fazem parte de uma chave primária devem ser sublinhados; # Elipses Duplas: Atributos multivalorados; # Losangos: Conjuntos de relacionamentos; # Linhas: Conectam atributos aos conjunto de entidades e conjunto de entidades aos conjuntos de relacionamentos. 22
Exemplo: Diagrama Entidade-Relacionamento nome rua identificador valor cidade CPF cliente Devedor empréstimo 23 Diagrama Entidade-Relacionamento Auto-relacionamento: # Podem existir relacionamentos entre entidades existente em um mesmo conjunto de entidades; # Exemplo: Em um conjunto de entidades Funcionários, o atributo gerente (qual o gerente de um determinado funcionário) também está localizado no mesmo conjunto de entidades, visto que o gerente também é funcionário da mesma empresa. nome rua cidade CPF empregado Trabalha_para 24
Diagrama Entidade-Relacionamento A notação original para representação do diagrama ER ocupa muito espaço, dificultando a visualização de esquemas maiores; Existem outras notações utilizadas para representação do diagrama Entidade-Relacionamento; Exemplos: # IDEF1X http://www.idef.com/idef1x.html; # IE Information Engineering. 25 Diagrama Entidade-Relacionamento 26
Diagrama Entidade-Relacionamento Ferramentas utilizadas para edição de diagramas ER: # Erwin (CA ), Visio (Microsoft ) e SmartER (KBSI ); Exemplo de diagrama gerado no Microsoft Visio (IE): Clientes CPF Nome Rua Cidade u:r d:r ClientesEmprestimos Id (FK) CPF (FK) u:r d:r Emprestimos Exemplo de diagrama gerado no Erwin (IDEF1X): Clientes CPF Nome Rua Cidade ClientesEmprestimos CPF (FK) R/3 Id (FK) R/4 Emprestimos Id Valor Id Valor 27 Diagrama Entidade-Relacionamento Cardinalidade: Importante: 28
Diagrama Entidade-Relacionamento Exemplos: PessoaPoucaNota ContaCorrente Pessoa_Id INTEGER Pessoa_Id (FK) INTEGER Pessoa_Nome CHAR(10) ContaCorrente_Id CHAR(10) No modelo acima, uma conta corrente pode ser vinculada a clientes diferentes? PessoaPoucaNota1 Pessoa_Id INTEGER Pessoa_Nome CHAR(10) ContaCorrente_Id (FK) CHAR(10) ContaCorrente1 ContaCorrente_Id CHAR(10) No modelo acima, uma conta corrente pode ser vinculada a clientes diferentes? 29 Diagrama Entidade-Relacionamento Exemplos: PessoaMuitaNota ContaCorrenteEspecial Pessoa_Id INTEGER ContaCorrente_Id CHAR(10) Pessoa_Nome CHAR(10) Pessoa_Id (FK) INTEGER No modelo acima, um cliente pode possuir várias contas correntes diferentes? No modelo acima, uma conta corrente pode ser vinculada a clientes diferentes? PessoaMuitaNota1 Pessoa_Id INTEGER Pessoa_Nome CHAR(10) ContaCorrenteEspecial1 Pessoa_Id (FK) INTEGER ContaCorrente_Id CHAR(10) No modelo acima, uma conta corrente pode ser vinculada a clientes diferentes? 30
Projeto Conceitual, Lógico e Físico Arquitetura ANSI / SPARC Nível Externo (Visões) Esquema Externo 01 (Visão 01) Esquema Externo 02 (Visão 01)... Esquema Externo n (Visão 01) Nível Conceitual (Lógico) Esquema Conceitual Mapeamento Externo / Conceitual Nível Interno (Físico) Esquema Interno Mapeamento Conceitual / Interno Dados Metadados ANSI - American National Standards Institute SPARC - Standards Planning and Requirements Committee 31 Projeto Conceitual, Lógico e Físico Projeto Conceitual: # Utiliza-se, geralmente o modelo de Entidade-Relacionamento (ER), para representação gráfica do esquema do Banco de Dados; # Determinar quais entidades, relacionamentos, atributos devem ser armazenados no banco de dados; # Quais são as restrições de integridade e regras de negócio (nem todas podem ser expressas em um diagrama E-R; Projeto Lógico: # Transformação do Modelo Conceitual no Modelo Relacional; # Normalização: Refinamento do Esquema; Projeto Físico: # Implantação do modelo: Criação do Banco, espaço físico, desempenho, etc. 32
Referências Bibliográficas # SILBERCHATZ A., KORTH H. F., SUDARSHAN S.; Sistema de Banco de Dados, São Paulo, Pearson Makron Books, 2006. # Integration Definition for Information Modeling (IDEF1X); Federal Information Standards Publication (FIPS) 184, 1993. 33