Modelo Entidade-Relacionamento Prof. Antonio Almeida de Barros Jr. Conteúdo • Contexto Histórico • A Importância da Modelagem de Dados • Projeto de Banco de Dados – Modelagem Conceitual – Projeto Lógico – Projeto Físico • Fases do Projeto de BD • Modelo Entidade-Relacionamento – Entidade – Relacionamento • Cardinalidade de Relacionamentos • Relacionamento Ternário – Atributo – Generalização/Especialização • Exemplo • Exercícios • Referências 2 Contexto Histórico Período Até 1960 Fato Marcante Exemplo de Recurso Sistema de Arquivo. Arquivos Indexados. ISAM VSAM Arquivos Integrados. Anos 60 Modelos Hierárquico Modelo de Redes IMS (IBM) DMS(UNISYS) Década de 70 Modelo Relacional (Codd) DB2 (IBM) Década de 80 Modelo Relacional Estendido INFORMIX (Objeto-Relacional) ORACLE Modelo Orientado a Objetos JASMINE BD 'Inteligentes' OBJECTSTORE Década de 90 até o presente KRISIS 3 A Importância da Modelagem de Dados • Planejar todas as etapas e dedicar atenção especial ao projeto de estruturação do banco de dados; • Facilidade na manutenção do sistema; • Tem como objetivo, obter uma descrição abstrata dos dados que serão armazenados no banco de dados. 4 A Importância da Modelagem de Dados Banco de Dados 5 A Importância da Modelagem de Dados • Sistemas isolados; • Dados não compartilhados; Produção Arquivos produção Produtos … Vendas Arquivos vendas Produtos … Compras Arquivos compras Produtos … 6 A Importância da Modelagem de Dados • Problema: redundância de dados • Tipos de redundância de dados: – redundância controlada de dados: • Software gerencia redundância – redundância não controlada de dados: • usuário gerencia redundância – Entrada repetida da mesma informação – Inconsistências de dados 7 A Importância da Modelagem de Dados • Como evitar a redundância de dados – Compartilhamento de dados; – Cada informação é armazenada uma única vez; – Usar o conceito de Banco de Dados; 8 A Importância da Modelagem de Dados • Como evitar a redundância de dados Banco de Dados = Conjunto de arquivos integrados que atendem a um conjunto de sistemas Produção Vendas Compras Banco de dados Produtos … 9 A Importância da Modelagem de Dados • A implementação de compartilhamento de dados tem reflexos na estrutura do software: – Estrutura interna dos arquivos passa a ser mais complexa; – Devem atender às necessidades dos diferentes sistemas; • Solução: – Usar sistema de gerência de banco de dados (SGBD). 10 Projeto de Banco de Dados 1. Modelagem Conceitual FASES 2. Projeto Lógico 3. Projeto Físico 11 Projeto de Banco de Dados • Modelo Conceitual – Independente de tipo de SGBD; – Registra: • Estrutura dos dados podem aparecer no banco de dados; – Não registra: • Como estes dados estão armazenados no nível de SGBD; 12 Projeto de Banco de Dados • Modelo Conceitual preço n 1 Tipo de produto Produto descrição código descrição código 13 Projeto de Banco de Dados • Modelo Lógico – Nível de abstração visto pelo usuário do SGBD; – Dependente do tipo particular de SGBD que está sendo usado. TipoDeProduto(CodTipoProd,DescrTipoProd) Produto(CodProd,DescrProd, PrecoProd,CodTipoProd) CodTipoProd referencia TipoDeProduto 14 Projeto de Banco de Dados • Modelo Físico – Contém detalhes de armazenamento interno de informações. – Detalhes que: • não têm influência sobre a programação de aplicações no SGBD, • mas, influenciam a performance da aplicações. – Usados por profissionais que fazem sintonia (ajuste de desempenho – “tuning”) de banco de dados. 15 Fases do Projeto de Banco de Dados 16 O Modelo Entidade-Relacionamento • Foi concebido em 1976, por Peter Chen, com base na teoria de banco de dados relacionais de Edgard F. Codd. • O conceito principal por trás do modelo E-R (EntidadeRelacionamento) está na definição de dois grupos de objetos que formam um negócio: – Entidades – Relacionamentos 17 O Modelo Entidade-Relacionamento 18 O Modelo Entidade-Relacionamento The Entity-Relationship Model-Toward a Unified View of Data http://bit.csc.lsu.edu/~chen/ 19 O Modelo Entidade-Relacionamento • Entidade Conjunto de objetos da realidade modelada sobre os quais deseja-se manter informações no banco de dados. Pessoa Departamento Representação gráfica de entidades 20 O Modelo Entidade-Relacionamento • Relacionamento Conjunto de associações entre entidades Departamento Lotação Pessoa Representação gráfica de relacionamento 21 O Modelo Entidade-Relacionamento • Relacionamento – Diagrama de Ocorrências p3 p1 p4 p2 p1,d1 d1 p7 p6 p2,d1 p4,d2 d2 p8 p5 p5,d3 d3 entidade EMPREGADO relacionamento LOTAÇÃO entidade DEPARTAMENTO 22 O Modelo Entidade-Relacionamento • Relacionamento – Auto-relacionamento Pessoa Marido Esposa Casamento 23 O Modelo Entidade-Relacionamento • Relacionamento – Auto-relacionamento p3 p7 p1 p8 p6 p2 p4 p5 marido marido esposa esposa p1,p3 p6,p8 24 O Modelo Entidade-Relacionamento • Cardinalidade de Relacionamentos Cardinalidade (mínima, máxima) de entidade em relacionamento representa o número (mínimo, máximo) de ocorrências de entidade associadas a uma ocorrência da entidade em questão através do relacionamento. Departamento Pessoa Lotação 1 Expressa que uma ocorrência de EMPREGADO pode estar associada ao máximo uma (“1”) ocorrência de DEPARTAMENTO. N Expressa que uma ocorrência de DEPARTAMENTO pode estar associada a várias (“N”) ocorrências de EMPREGADO. 25 O Modelo Entidade-Relacionamento • Cardinalidade de Relacionamentos – Relacionamentos 1:1 Pessoa 1 1 Marido Esposa Casamento 26 O Modelo Entidade-Relacionamento • Cardinalidade de Relacionamentos – Relacionamentos 1:N Empregado Contém 1 N Dependente Empregado 1 N Supervisor Supervisionado Supervisão 27 O Modelo Entidade-Relacionamento • Cardinalidade de Relacionamentos – Relacionamentos N:N Médico Engenheiro Consulta N N Alocação N N Paciente Projeto 28 O Modelo Entidade-Relacionamento • Cardinalidade de Relacionamentos – Mínima e1 Empregado e3 e4 e2 (0,1) e1,m1 ALOCAÇÃO e3,m6 e4,m4 e2,m2 (1,1) Mesa m4 m1 m2 m3 m6 m5 29 O Modelo Entidade-Relacionamento • Relacionamento Ternário – Cada ocorrência do relacionamento associa três ocorrências de entidade. Cidade Distribuidor Distribuição Produto 30 O Modelo Entidade-Relacionamento • Relacionamento Ternário Cidade Distribuidor N 1 a cardinalidade “1” refere-se a um par (cidade, fornecedor) Distribuição N Produto 31 O Modelo Entidade-Relacionamento • Atributo Dado que é associado a cada ocorrência de uma entidade ou de um relacionamento Cidade Codigo Nome UF Atributos de uma entidade 32 O Modelo Entidade-Relacionamento • Atributo – Identificador de Entidade Conjunto de atributos e relacionamentos cujos valores distinguem uma ocorrência da entidade das demais. 33 O Modelo Entidade-Relacionamento • Generalização/Especialização Filial (1, 1) (0, N) PessoaFisica CIC Sexo Cliente Nome Codigo PessoaJuridica CGC CNPJ 34 O Modelo Entidade-Relacionamento • Generalização/Especialização Total Cliente t PessoaFisica CIC Sexo Nome Codigo Indica que todo CLIENTE é ou PESSOA FÍSICA ou PESSOA JURÍDICA. PessoaJuridica CGC CNPJ 35 O Modelo Entidade-Relacionamento • Generalização/Especialização Parcial Funcionario p Motorista Tipo Indica que nem todo FUNCIONÁRIO é MOTORISTA ou SECRETÁRIA. Secretária 36 O Modelo Entidade-Relacionamento • Generalização/Especialização Compartilhada Pessoa c Professor Funcionário Tipo Uma instância de PESSOA pode aparecer em mais de uma de suas especializações Aluno 37 O Modelo Entidade-Relacionamento • Generalização/Especialização Exclusiva Funcionario x Motorista Tipo Uma ocorrência de entidade genérica é especializada no máximo uma vez. Secretária 38 O Modelo Entidade-Relacionamento • Tipos de Generalizações/Especializações Total (t) Parcial (p) Exclusiva (x) xt xp Compartilhada (c) ct cp 39 O Modelo Entidade-Relacionamento • Generalização/Especialização - Recursão Veículo Veículo Terrestre Automóvel Veículo Aquático Veículo Anfíbio Barco 40 O Modelo Entidade-Relacionamento • Generalização/Especialização - Recursão Veículo Identificador de Raiz Veículo Terrestre Automóvel Veículo Aquático Veículo Anfíbio Barco Herança Múltipla 41 O Modelo Entidade-Relacionamento • Generalização/Especialização – Caso Proibído Veículo Terrestre Automóvel Veículo Aquático Veículo Anfíbio Barco 42 O Modelo Entidade-Relacionamento • Generalização/Especialização – Caso Proibido Veículo Terrestre Automóvel Veículo Aquático Veículo Anfíbio Barco Qual seria o identificador desta entidade? 43 O Modelo Entidade-Relacionamento • Exemplo DER para controle acadêmica de uma universidade 44 Exercício 1 • Os dirigentes da Creche Municipal de São Francisco do Glória, cidade localizada na zona da mata mineira, desejam um sistema para controle e acompanhamento das crianças cadastradas no estabelecimento. Para o desenvolvimento do sistema, foram coletados os seguintes requisitos: – Elaborar um cadastro completo de crianças, onde devam constar informações como: nome, endereço completo, tipo sanguíneo, sexo e paternidade. – O cadastro de pais ou responsáveis deverá constar: nome, sexo, data de nascimento, telefone, endereço completo, profissão, renda mensal e horário de trabalho. – Outro cadastro relevante é o de necessidades especiais, este por sua vez deverá ser relacionado ao cadastro de crianças, onde uma criança poderá ter nenhuma, uma ou mais necessidades especiais. – Bem como o cadastro de necessidades especiais, o sistema deverá permitir o lançamento de alergias. Este último serve para que precauções sejam tomadas por parte dos funcionários. – Para acompanhamento diário, cada criança deverá ter seu horário de chegada e saída no turno da manhã e ou no turno da tarde. Assim, é necessário o lançamento deste horário considerando que a creche funciona de segunda a sexta, e que cada criança tem horários distintos para os dias da semana. – Com base nos dados descritos acima, elabore um modelo EntidadeRelacionamento para o sistema. Este modelo deve estar devidamente normalizado na 3ª Forma Normal. 45 Exercício 2 • O Departamento de Trânsito do Espírito Santo (DETRAN-ES) necessita de um sistema para cadastro e controle das infrações cometidas por condutores de veículos. Para este sistema, foram coletados os seguintes requisitos: – O sistema deverá conter um cadastro de agentes que possibilite o lançamento das seguintes informações: nome, data de contratação, CPF e telefone; – Atualmente o DETRAN-ES mantém um cadastro de localidades que podem ser rodovias, ruas e até mesmo praças onde as blitz são realizadas. Neste cadastro é fundamental que seja lançada a velocidade permitida; – Para facilitar a inclusão das infrações, é necessário que o sistema já contenha os tipos de infrações previamente cadastrados. O valor da multa é dado de acordo com o tipo de infração; – O DETRAN-ES mantém um cadastro de todos os veículos do ES, onde verá constar a placa do veículo, o proprietário, a UF de origem do veículo, além do modelo e categoria; – O cadastro de proprietários ou condutores deve conter informações como: endereço completo, sexo, data de nascimento, CPF, CNH e telefone de contato; – Ao realizar uma infração, o agente informa a localidade, o veículo, o tipo de infração, a velocidade (no caso de excesso de velocidade), o condutor, a data e a hora. 46 SQL (Structured Query Language) • ANSI (American Nacional Standards Institute) • ANSI-86 SQL / ANSI-89 SQL • SQL2 (ou SQL92) / SQL3 (Modelo OO). • DDL (Data Definition Language) • DROP, CREATE, ALTER DML (Data Manipulation Language) • INSERT, UPDATE, DELETE DQL (Data Query Language) • SELECT • • 47 Referências Heuser, C. A.; Projeto de Banco de Dados. 6ed, Ed. Artmed, 2009. ISBN: 9788577803828. Silberschatz, A.; Korth, H. F.; Sudarshan, S.; Sistema de Banco de Dados. 5ed, Ed. Campus, 2006. ISBN: 8535211071. Date, C. J.; Introdução a Sistemas de Banco de Dados. 8ed, Ed. Campus, 2004. ISBN: 8535212736. 48