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 Sumário Modelagem conceitual Conceitos do modelo Entidade Relacionamento (ER) Entidade Relacionamento Auto-relacionamento Cardinalidade de relacionamento Classificação de relacionamento Relacionamento ternário 1
Modelagem Conceitual Projeto de Banco de Dados Etapas de um projeto de Banco de Dados 1. análise de requisitos 2. projeto conceitual 3. projeto lógico 4. projeto físico 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 Modelagem Conceitual Análise de requisitos Análise de requisitos inclui três tipos de atividades: Elicitação dos requisitos: é a tarefa de comunicar-se com os usuários e clientes para determinar quais são os requisitos. Análise de 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 2
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: análise da especificação de requisitos Resultado: esquema conceitual + restrições de integridade fonte: http://www.inf.ufsc.br/~ronaldo/ine5623 Modelagem Conceitual Exemplo de projeto conceitual Esquema ER (Entidade-Relacionamento) + restrições de integridade Código > 100 Função = {professor, funcionário} fonte: http://www.inf.ufsc.br/~ronaldo/ine5623 Modelagem Conceitual 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 3
Modelagem Conceitual Exemplo de projeto lógico 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 Projeto Físico Definição do esquema lógico em um SGBD adequado ao modelo Forma de realização: SQL Resultado: esquema físico 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); create table Departamentos (...); fonte: http://www.inf.ufsc.br/~ronaldo/ine5623 4
Modelagem Conceitual Projeto Top-Down - Objetivos Projeto Conceitual Preocupação: correta abstração do mundo real (captura correta da semântica da aplicação) 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) fonte:http://www.inf.ufsc.br/~ronaldo/ine5623 Modelagem Conceitual Vantagens de uma documentação conceitual de dados 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 Modelagem Conceitual Vantagens de uma documentação conceitual de dados facilita a manutenção dos dados modificação de requisitos de dados engenharia reversa (desempenho,...) facilita a migração de SGBD usado como modelo intermediário 5
Modelagem Conceitual Modelo Entidade-Relacionamento Modelo definido por Peter Chen em 1976 sofreu diversas extensões e notações ao longo do tempo Padrão para modelagem conceitual de BD modelo simples poucos conceitos representação gráfica fácil compreensão Um esquema conceitual de BD é também chamado de diagrama ER 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 Diagrama de ocorrências Entidade Empregado Departamento p1 p2 p3 p4 p5 d1 d2 d3 d4 d5 6
Conceitos do Modelo ER Relacionamento Relacionamento Conjunto de associações entre entidades. É representado por um losango ligado por linha aos retângulos. Relacionamento binário: ocorrências envolvem duas entidades ou associações entre ocorrências de uma mesma entidade. Diagrama de ocorrências relacionamentos Empregado Trabalha-para Departamento p1 p1.d2 d1 p2 p3 p4 p5 p2.d2 p5.d4 d2 d3 d4 d5 Conceitos do Modelo ER Auto-relacionamento Auto-relacionamento É um relacionamento entre ocorrências de uma mesma entidade. Tem-se um conceito adicional o de papel da entidade no relacionamento. Uma ocorrência da entidade exerce o papel1 e a outra ocorrência da entidade exerce o papel2. 7
Diagrama de ocorrências auto-relacionamento Pessoa Casamento p1 Marido p1.p2 p2 Esposa p3 p4 p5 Marido Esposa p4.p5 Conceitos do Modelo ER Cardinalidade de relacionamento Cardinalidade (mínima, máxima) de entidade em relacionamento 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). 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. 8
Conceitos do Modelo ER Cardinalidade de relacionamento Cardinalidade máxima 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. Conceitos do Modelo ER Cardinalidade de relacionamento Cardinalidade máxima Expressa que uma ocorrência de DEPARTAMENTO (entidade do lado oposto da notação) pode estar associada ao máximo (n) ocorrências de EMPREGADO. Conceito: Classificação de relacionamentos binários A cardinalidade máxima pode ser usada para classificar relacionamentos Classificação de relacionamentos n:n (muitos-para-muitos), 1:n (um-para-muitos) 1:1 (um-para-um) 9
Conceito: Classificação de relacionamentos binários Classificação de relacionamentos 1:1 (um-para-um) Conceito: Classificação de relacionamentos binários 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) 10
Conceitos do Modelo ER Relacionamento ternário Grau de relacionamento: É o número de entidades que participam desse relacionamento Relacionamentos ternários São relacionamentos de grau três. Conceitos do Modelo ER Relacionamento ternário Cardinalidade em relacionamentos ternários: 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 1 expressa que: Cada par de ocorrências (Candidato, Empresa) esta associado a no máximo uma Entrevista 11
Conceitos do Modelo ER Relacionamento ternário O n expressa que: Cada par de ocorrências (Candidato, Entrevista) esta associado a muitas empresas Conceitos do Modelo ER Relacionamento ternário O n expressa que: Cada par de ocorrências (Empresa, Entrevista) esta associado a muitos Candidatos Diagrama de ocorrências relacionamentos Candidato c1 c2 Empresa e1 p2 e2 CCI c1.v1.e1 c1.v2.e2 c2.v1.e1 c2.v3.e3 c1.e3.v3 Entrevista v1 v2 v3 e3 12
Conceitos do Modelo ER Cardinalidade de relacionamento Cardinalidade mínima de entidade em relacionamento 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 Empregado tem cardinalidade mínima igual a 1 no relacionamento Possui. Dependente tem cardinalidade mínima igual a 0 no relacionamento Possui. 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. 13
Conceitos do Modelo ER Cardinalidade de relacionamento 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 Entidade a7 a5 a6 E3 a2 a8 a9 E5 E1 r 2 E4 a1 p E6 a10 r 1 a3 entidade r 4 E9 E7 a4 (0,1) E2 papel 1 Indique uma entidade neste DER r 3 papel 2 E8 E11 a11 r 6 r 5 (0,1) E10 a12 E12 a13 Revisão modelo ER Notação Relacionamento relacionamento a4 (0,1) a1 a2 a5 a6 papel 1 E1 r 1 E2 r 3 a7 papel 2 a3 E3 r 2 E7 Aponte um relacionamento E4 a8 neste DER p r 4 a9 E5 E6 E9 a10 E8 E11 a11 r 6 r 5 (0,1) E12 E10 a12 a13 14
Revisão modelo ER Notação Auto-relacionamento a5 a6 auto-relacionamento a4 (0,1) a1 a2 papel 1 E1 r 1 E2 r 3 a7 papel 2 a3 E3 r 2 E7 E8 Apresente no DER E4 um autorelacionamento a8 (1,N) E11 a11 r 6 p r 4 r 5 (0,1) a9 E5 E6 E9 E12 E10 a12 a10 a13 Revisão modelo ER Notação Relacionamento ternário relacionamento ternário a2 a5 a6 E1 a7 E3 a8 a9 E5 a1 r 2 E4 p E6 a10 r 1 a3 a4 (0,1) E2 Indique o E7 relacionamento E8 ternário r 4 E9 papel 1 papel 2 r 3 E11 a11 r 6 r 5 (0,1) E10 a12 E12 a13 Revisão modelo ER Notação Cardinalidade Cardinalidade máxima n a7 a5 a6 E3 a2 E1 r 2 a1 Indique a cardinalidade E4 máxima de a8 dois relacionamentos a9 E5 p E6 a10 r 1 a3 r 4 E9 E7 a4 (0,1) E2 papel 1 papel 2 E8 r 3 E11 a11 r 6 r 5 (0,1) E10 Cardinalidade máxima 1 a12 E12 a13 15
Pontos importantes 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 Entidade Relacionamento Auto-relacionamento Cardinalidade de relacionamento Classificação de relacionamento Relacionamento ternário Tópicos subsequentes Atributo Cardinalidade de atributo Tipos de atributos Entidade Fraca Entidade Associativa Generalização/especialização 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. 16