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 Classificação de relacionamento 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 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 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 1
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 Exemplo de projeto conceitual Esquema ER (Entidade-Relacionamento) + restrições de integridade Código > 100 Função = {professor, funcionário} 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,...) 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... Código > 100 Função = {professor, funcionário} Projeto Físico Definição do esquema lógico em um SGBD adequado ao modelo Forma de realização: SQL Resultado: esquema físico 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 (...); 2
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) 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 fonte:http://www.inf.ufsc.br/~ronaldo/ine5623 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 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 Entidade Diagrama de ocorrências 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 Empregado p1 p2 p3 p4 p5 Departamento d1 d2 d3 d4 d5 3
Relacionamento Diagrama de ocorrências relacionamentos 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. Empregado p1 p2 p3 p4 p5 Trabalha-para p1.d2 p2.d2 p5.d4 Departamento d1 d2 d3 d4 d5 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. Diagrama de ocorrências auto-relacionamento Pessoa p4 p1 p2 p3 Marido Esposa Marido Casamento p1.p2 p4.p5 p5 Esposa 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). 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
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. 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 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 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
Grau de relacionamento: É o número de entidades que participam desse relacionamento Relacionamentos ternários São relacionamentos de grau três. 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. O 1 expressa que: Cada par de ocorrências (Candidato, Empresa) esta associado a no máximo uma Entrevista O n expressa que: Cada par de ocorrências (Candidato, Entrevista) esta associado a muitas empresas O n expressa que: Cada par de ocorrências (Empresa, Entrevista) esta associado a muitos Candidatos Diagrama de ocorrências relacionamentos Candidato c1 c2 CCI c1.v1.e1 c1.v2.e2 Entrevista v1 v2 Empresa e1 p2 e2 c2.v1.e1 c2.v3.e3 c1.e3.v3 v3 e3 6
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 Empregado tem cardinalidade mínima igual a 1 no relacionamento Possui. Dependente tem cardinalidade mínima igual a 0 no relacionamento Possui. Expressa que uma ocorrência de EMPREGADO (entidade do lado oposto da notação) pode existir sem que a ela esteja associado um DEPENDENTE. 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 E3 a2 a8 E5 E1 r 2 E4 p E6 r 1 entidade r 4 E9 E2 papel 1 Indique uma entidade neste DER r 3 papel 2 E8 E11 1 r 6 2 Revisão modelo ER Notação Relacionamento relacionamento a2 papel 1 E1 r 1 E2 r 3 papel 2 E3 r 2 E8 Aponte um relacionamento E4 a8 neste DER E11 1 p r 4 r 6 E5 E6 E9 2 7
Revisão modelo ER Notação Auto-relacionamento auto-relacionamento a2 papel 1 E1 r 1 E2 r 3 papel 2 E3 r 2 E8 Apresente no DER E4 um autorelacionamento a8 (1,N) E11 1 r 6 p r 4 E5 E6 E9 2 Revisão modelo ER Notação relacionamento ternário a2 E1 E3 a8 E5 r 2 E4 p E6 r 1 E2 Indique o relacionamento E8 ternário r 4 E9 papel 1 papel 2 r 3 E11 1 r 6 2 Revisão modelo ER Notação Cardinalidade Cardinalidade máxima n E3 a2 E1 r 2 Indique a cardinalidade E4 máxima de a8 dois relacionamentos E5 p E6 r 1 r 4 E9 E2 papel 1 papel 2 E8 r 3 E11 1 r 6 Cardinalidade máxima 1 2 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 Classificação de relacionamento 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. 8