Modelagem Conceitual – parte I Vitor Valerio de Souza Campos Objetivos Apresentar a modelagem conceitual como parte integrante do projeto de um BD Mostrar as vantagens de uma documentação conceitual de dados Apresentar os elementos de um modelo Entidade Relacionamento Modelagem Conceitual Projeto de Banco de Dados Modelagem conceitual Sumário Modelagem conceitual Conceitos do modelo Entidade Relacionamento (ER) Etapas de um projeto de Banco de Dados 1. 2. 3. Entidade Relacionamento Auto-relacionamento Cardinalidade de relacionamento Classificação de relacionamento Relacionamento ternário 4. preocupação com a representação adequada de dados da organização definição de esquemas de dados em diferentes níveis de abstração Modelagem Conceitual Análise de requisitos Análise de requisitos engloba todas as tarefas que lidam com investigação, definição e escopo de novos sistemas ou alterações de sistemas existentes. A análise de requisitos é também conhecida por outros nomes: Engenharia de requisitos Levantamento de requisitos Captura de requisitos Análise de sistema Especificação de requisitos Análise de requerimentos análise de requisitos projeto conceitual projeto lógico projeto físico Modelagem Conceitual Análise de requisitos Análise de requisitos inclui três tipos de atividades: Elicitação dos requisitos: Análise de requisitos: é a tarefa de comunicar-se com os usuários e clientes para determinar quais são os requisitos. determina se o estado do requisitos é obscuro, incompleto, ambíguo , ou contraditório e resolve estes problemas. Registros dos requisitos: os requisitos podem ser documentados de várias formas, tais como documentos de linguagem natural, casos de uso , ou processo de especificação 1 Modelagem Conceitual Projeto conceitual Projeto conceitual Modelagem dos dados e seus relacionamentos independente da estrutura de representação do SGBD (modelagem conceitual) Forma de realização: esquema conceitual + restrições de integridade fonte: http://www.inf.ufsc.br/~ronaldo/ine5623 Modelagem Conceitual Projeto lógico Esquema ER (Entidade-Relacionamento) + restrições de integridade fonte: http://www.inf.ufsc.br/~ronaldo/ine5623 Modelagem Conceitual Exemplo de projeto lógico Projeto Lógico Conversão do esquema conceitual para o esquema de representação de um SGBD (esquema lógico) Forma de realização: aplicação de regras de conversão Resultado: esquema lógico (tabelas, RIs, transações, consultas relevantes, autorizações de acesso, ...) fonte: http://www.inf.ufsc.br/~ronaldo/ine5623 Modelagem Conceitual Código > 100 Função = {professor, funcionário} análise da especificação de requisitos Resultado: Modelagem Conceitual Exemplo de projeto conceitual Projeto Físico Definição do esquema lógico em um SGBD adequado ao modelo Forma de realização: SQL Resultado: esquema físico Código > 100 Função = {professor, funcionário} Conversão do ER para o relacional Servidores (Matrícula, Nome, Função, Depto) chave primária: Matrícula chave estrangeira: Depto (tabela Departamentos) Função IN {professor, funcionário} Consultas relevantes: a) dados do servidor, dada a matrícula; b) matrícula e nome dos servidores por função; ... Departamentos (Código, Nome) Código > 100 chave primária: Código . . . fonte: http://www.inf.ufsc.br/~ronaldo/ine5623 Modelagem Conceitual Exemplo de projeto lógico Conversão do ER para o relacional Servidores (Matrícula, Nome, Função, Depto) chave primária: Matrícula chave estrangeira: Depto (tabela Departamentos) Função IN {professor, funcionário} Consultas relevantes: a) dados do servidor, dada a matrícula; b) matrícula e nome dos servidores por função; ... Departamentos (Código, Nome) Código > 100 chave primária: Código . . . Especificação em SQL CREATE TABLE Servidores ( Matrícula int, Nome char(50), Função char(20) check(Função in (‘professor’, ‘funcionário’)), Depto int NOT NULL, primary key(Matrícula), foreign key(CódigoDepto) references Departamentos); create index FuncServidor on Servidores (Função); fonte: http://www.inf.ufsc.br/~ronaldo/ine5623 create table Departamentos ( . . .); fonte: http://www.inf.ufsc.br/~ronaldo/ine5623 2 Modelagem Conceitual Projeto Top-Down - Objetivos Projeto Conceitual Preocupação: correta abstração do mundo real (captura correta da semântica da aplicação) Modelagem Conceitual Vantagens de uma documentação conceitual de dados Projeto Lógico + Físico Preocupação: escolhas corretas na conversão para o esquema do SGBD (relacional) para maximizar o desempenho (distribuição adequada dos dados em tabelas) independente de detalhes de implementação em um SGBD facilita a definição da semântica dos dados de um domínio melhor compreendido por usuários leigos pode ser mapeado para qualquer modelo de BD fonte:http://www.inf.ufsc.br/~ronaldo/ine5623 Modelagem Conceitual Vantagens de uma documentação conceitual de dados facilita a manutenção dos dados Conceitos do Modelo ER Entidade Entidade Conjunto de objetos da realidade modelada sobre as quais deseja-se manter informações no banco de dados (Heuser, 1998). Uma entidade é representada por um retângulo que contém o nome da entidade sofreu diversas extensões e notações ao longo do tempo Padrão para modelagem conceitual de BD modificação de requisitos de dados engenharia reversa (desempenho, ...) usado como modelo intermediário Modelo definido por Peter Chen em 1976 modelo simples facilita a migração de SGBD Modelagem Conceitual Modelo Entidade-Relacionamento poucos conceitos representação gráfica fácil compreensão Um esquema conceitual de BD é também chamado de diagrama ER Diagrama de ocorrências Entidade Empregado p1 Departamento d1 p2 d2 p3 d3 p4 d4 p5 d5 3 Diagrama de ocorrências relacionamentos Conceitos do Modelo ER Relacionamento Relacionamento Empregado Conjunto de associações entre entidades. É representado por um losango ligado por linha aos retângulos. 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 (Heuser, 1998). d5 Pessoa p1 p2 Casamento Marido p1.p2 Esposa p3 p5 Cardinalidade (mínima, máxima) de entidade em relacionamento d4 Diagrama de ocorrências auto-relacionamento p4 p5.d4 p5 Uma ocorrência da entidade exerce o papel1 e a outra ocorrência da entidade exerce o papel2. Conceitos do Modelo ER Cardinalidade de relacionamento d3 p4 É um relacionamento entre ocorrências de uma mesma entidade. Tem-se um conceito adicional o de papel da entidade no relacionamento. p2.d2 p3 ocorrências envolvem duas entidades ou associações entre ocorrências de uma mesma entidade. Auto-relacionamento d1 d2 p2 Conceitos do Modelo ER Auto-relacionamento Departamento p1.d2 p1 Relacionamento binário: Trabalha-para Marido p4.p5 Esposa Conceitos do Modelo ER Cardinalidade de relacionamento Cardinalidade máxima Empregado tem cardinalidade máxima igual a 1 no relacionamento Trabalha-para. Departamento tem cardinalidade máxima igual a n no relacionamento Trabalha-para. 4 Conceitos do Modelo ER Cardinalidade de relacionamento Cardinalidade máxima A cardinalidade máxima pode ser usada para classificar relacionamentos Cardinalidade máxima Expressa que uma ocorrência de DEPARTAMENTO (entidade do lado oposto da notação) pode estar ocorrências de associada ao máximo (n) EMPREGADO. Conceito: Classificação de relacionamentos binários Classificação de relacionamentos 1:1 (um-para-um) Classificação de relacionamentos n:n (muitos-para-muitos), 1:n (um-para-muitos) 1:1 (um-para-um) Conceito: Classificação de relacionamentos binários Expressa que uma ocorrência de EMPREGADO (entidade do lado oposto da notação) pode estar associada ao máximo uma (1) ocorrência de DEPARTAMENTO. Conceito: Classificação de relacionamentos binários Conceitos do Modelo ER Cardinalidade de relacionamento Classificação de relacionamentos 1:n (um-para-muitos) Conceito: Classificação de relacionamentos binários Classificação de relacionamentos n:n (muitos-para-muitos) 5 Conceitos do Modelo ER – Relacionamento ternário Grau de relacionamento: É o número de entidades que participam desse relacionamento O “1” expressa que: Cada par de ocorrências (Candidato, Empresa) esta associado a no máximo uma Entrevista Conceitos do Modelo ER – Relacionamento ternário O “n” expressa que: Cardinalidade em relacionamentos ternários: São relacionamentos de grau três. Conceitos do Modelo ER – Relacionamento ternário Relacionamentos ternários Conceitos do Modelo ER – Relacionamento ternário Cada par de ocorrências (Empresa, Entrevista) esta associado a muitos Candidatos Refere-se a pares de entidades. No relacionamento R entre as entidades A, B e C, a cardinalidade máxima de A e B dentro de R indica quantas ocorrências de C podem estar associadas a um par de ocorrências de A e B. Conceitos do Modelo ER – Relacionamento ternário O “n” expressa que: Cada par de ocorrências (Candidato, Entrevista) esta associado a muitas empresas Diagrama de ocorrências relacionamentos Candidato CCI c1 c1.v1.e1 Entrevista v1 c2 c1.v2.e2 c2.v1.e1 Empresa e1 e2 v2 v3 c2.v3.e3 p2 c1.e3.v3 e3 6 Conceitos do Modelo ER Cardinalidade de relacionamento Cardinalidade mínima relacionamento de Conceitos do Modelo ER Cardinalidade de relacionamento entidade em Número mínimo de ocorrências de entidade associadas a uma ocorrência da entidade em questão através do relacionamento. (HEUSER, 1998). Cardinalidade mínima 1 recebe a denominação de associação obrigatória Cardinalidade mínima 0 recebe a denominação de associação opcional Conceitos do Modelo ER Cardinalidade de relacionamento Conceitos do Modelo ER Cardinalidade de relacionamento Expressa que uma ocorrência de EMPREGADO (entidade do lado oposto da notação) pode existir sem que a ela esteja associado um DEPENDENTE. a5 a6 a7 a4 (0,1) a1 (1,n) E1 (0,n) r1 (1,1) E7 r4 p (1,1) E8 r6 a11 E6 E9 (0,1) a9 E12 (0,n) E10 a10 r4 p r5 a12 a13 papel 1 (0,n) r3 E2 a3 r2 Aponte um relacionamento E4 (1,1) a8 (1,n) neste DER (1,1) E11 (0,n) relacionamento papel 2 (1,1) (1,n) (1,n) (0,n) E5 r1 (1,n) E3 (1,1) (1,n) E1 a7 a4 (0,1) a1 a2 (0,n) entidade (1,n) a9 a5 a6 a3 r2 E4 a8 (1,n) papel 1 (0,n) Indique uma entidade E2 neste DER r3 papel 2 (1,1) (1,n) E3 Expressa que uma ocorrência de DEPENDENTE (entidade do lado oposto da notação) deve estar associada a no mínimo 1 ocorrência de EMPREGADO. Revisão modelo ER – Notação Relacionamento Revisão modelo ER – Notação Entidade a2 (0,n) Empregado tem cardinalidade mínima igual a 1 no relacionamento Possui. Dependente tem cardinalidade mínima igual a 0 no relacionamento Possui. E7 E8 (1,n) (1,1) E11 r6 a11 r5 (0,1) (0,n) E5 E6 E9 E10 a10 E12 (0,n) a12 a13 7 Revisão modelo ER – Notação Relacionamento ternário Revisão modelo ER – Notação Auto-relacionamento a5 a6 a2 (0,n) (1,n) E1 a7 auto-relacionamento a4 (0,1) a1 (0,n) r1 papel 1 (0,n) r3 E2 (1,1) E8 E7 (1,1) E11 r4 E6 E9 a12 a10 a9 (1,n) E1 a7 (0,n) r1 E3 (1,1) r3 E2 a3 (1,n) E7 Indique a cardinalidade máxima E4 (1,n) dea8 dois relacionamentos (1,1) r4 p a9 Cardinalidade máxima 1 E8 (1,n) E6 E9 r5 Tópicos subsequentes Atributo Cardinalidade de atributo Tipos de atributos Entidade Fraca Entidade Associativa Generalização/especialização (0,1) E12 (0,n) a10 r6 a11 E10 r6 r5 (0,1) (0,n) E5 E6 E9 E12 (0,n) a12 a13 a12 Apresentou-se a modelagem conceitual como parte integrante do projeto de um BD Mostrou-se as vantagens de uma modelagem conceitual de dados Conceitos da abordagem ER (1,1) E11 (0,n) E5 papel 2 (1,1) r2 (1,1) a11 Pontos importantes papel 1 (0,n) (1,n) r4 (1,n) E11 a10 a4 (0,1) a1 a2 (0,n) (1,1) E10 a13 Revisão modelo ER – Notação Cardinalidade Cardinalidade máxima n a5 a6 Indique o E7 relacionamento E8 ternário E4 a8 (1,n) E12 E10 r3 a3 r2 (0,1) (0,n) papel 1 (0,n) E2 papel 2 (1,1) p r5 (0,n) r1 r6 a11 (0,n) E5 (1,n) E1 (1,n) (1,n) (1,1) p (1,1) E3 (1,n) a4 (0,1) a1 (1,n) a3 r2 Apresente no DER E4 um autoa8 (1,N) relacionamento a9 a7 papel 2 (1,1) (1,n) E3 relacionamento ternário a2 (0,n) a5 a6 Entidade Relacionamento Auto-relacionamento Cardinalidade de relacionamento Classificação de relacionamento Relacionamento ternário a13 Referências Bibliográficas HEUSER, Carlos Alberto. Modelos de Banco de Dados. In: ______. Projeto de Banco de Dados. Porto Alegre: Sagra Luzzatto, 1998. p. 5-8. HEUSER, Carlos Alberto. Abordagem entidade-relacionamento. In: ______. Projeto de Banco de Dados. Porto Alegre: Sagra Luzzatto, 1998. p. 11-40. 8