Banco de Dados Modelagem de Dados Prof. Joel da Silva
Modelagem É o processo de transformar aspectos do mundo real (fatos) em um modelo formal igualmente representativo. A modelagem conceitual do BD independe da sua implementação (Modelo Lógico ou Físico) Deve mostrar, de forma abstrata, como os fatos estão relacionados Por que modelar? Para facilitar a interação com o usuário (validação das metas) antes da implementação do sistema (minimizar a manutenção) 2
3 Modelagem Classificação dos modelos de dados Genéricos: maior transparência quanto a implementação física do SGBD (modelo conceitual). EX: ER, ER-X, OMT, UML Específicos: dependentes da implementação física do SGBD (modelo lógico). Hierárquico, Rede, Relacional, Orientado a Objetos
Modelagem Será que realmente precisamos planejar e modelar um novo BD/S.I.? Como o cliente explicou sua necessidade
Modelagem Será que realmente precisamos planejar e modelar um novo BD/S.I.? Como o líder do projeto entendeu
Modelagem Será que realmente precisamos planejar e modelar um novo BD/S.I.? Como o analista planejou
Modelagem Será que realmente precisamos planejar e modelar um novo BD/S.I.? Como o programador escreveu
Modelagem Será que realmente precisamos planejar e modelar um novo BD/S.I.? Como o gerente de negócios descreveu
Modelagem Será que realmente precisamos planejar e modelar um novo BD/S.I.? Como o projeto foi documentado
Modelagem Será que realmente precisamos planejar e modelar um novo BD/S.I.? Quais operações foram instaladas
Modelagem Será que realmente precisamos planejar e modelar um novo BD/S.I.? Pelo que o cliente pagou
Modelagem Será que realmente precisamos planejar e modelar um novo BD/S.I.? Como foi suportado na empresa
Modelagem Será que realmente precisamos planejar e modelar um novo BD/S.I.? Real necessidade do cliente
14 Modelagem Um modelo que descreve o comportamento da realidade em um Sistema de BD. Observação Realidade Nebulosa Descrever o estado Organiza Idéias Analista Descreve Minimundo MODELO Conceitual Especifica MODELO Lógico Implementa MODELO Físico Cria DB
15 Modelagem Ciclo de Desenvolvimento de Sistemas de BD Investigação dos Dados Modelagem dos Dados Projeto do Banco de Dados Implementação do Banco de Dados Monitoramento e Manutenção do BD
Modelos de Dados Um modelo de dados é uma descrição de tipos de informações que estão armazenadas em um banco de dados. Modelo de Dados = Descrição formal da estrutura de um banco de dados
Modelos de Dados Os modelos de dados podem ser classificados de acordo com os tipos de conceitos que eles utilizam para descrever a estrutura do banco de dados. Modelo conceitual: descreve os dados de maneira próxima ao modo como os usuários percebem os dados. Modelo lógico: modelo intermediário (mapeamento interno). Modelo físicos: descrevem os detalhes de como os dados são armazenados no computador.
Modelo Conceitual É uma descrição do banco de dados de forma independente de implementação ou SGBD. Registra quais dados podem aparecer no banco de dados, mas não registra como são armazenados. Modelo Conceitual = Modelo de dados abstrato, que descreve a estrutura de um banco de dados independente de um SGBD
Modelo Conceitual A técnica mais utilizada na modelagem conceitual é a abordagem Entidade-Relacionamento (ER). Representado através de um diagrama (DER).
Modelo Lógico É uma descrição de um banco de dados no nível de abstração visto pelo usuário do SGBD. Depende do SGBD que está sendo utilizado. Modelo Lógico = Modelo de dados que representa a estrutura de dados conforme vista pelo usuário do SGBD
Modelo Lógico Exemplo TipoDeProduto (CodTipoProd, DescrTipoProd) Produto (CodProd, DescrProd, PrecoProd, CodTipoProd) CodTipoProd referencia TipoDeProduto.
Modelo Físico Detalhes de armazenamento interno. Não influencia na programação de aplicações no SGBD. Influencia na performance das aplicações. Usados por profissionais que fazem sintonia (tunning) de banco de dados, para otimizar a performance. Linguagem padronizada de acordo com o produto.
Projeto de Banco de Dados
Modelo Entidade-Relacionamento Um pouco de História... O modelo E.R. é baseado na teoria relacional criada em 1970 por Codd. Este foi originalmente definido por Chen em 1976 e Posteriormente, na década de 80, na sofreu algumas extensões A visão de uma dada realidade baseia-se no relacionamento entre entidades. Representa o significado dos dados como: Entidades, Relacionamentos e Atributos 24
25 Entidades 1) É um conjunto de objetos concretos (cliente,livro,...) ou abstratos (conta,empréstimo,...) que são: unívocos, de um mesmo tipo e que compartilham as mesmas propriedades. EX: Todas as pessoas com conta = Entidades Cliente e Conta 2) Conjunto de objetos da realidade modelada sobre os quais deseja-se manter informações no BD Entidade X Instância de Entidade Para referir um objeto particular fala-se em instância ou ocorrência de entidade Alguns autores consideram um objeto específico como uma entidade e o conjunto desses objetos como conjunto de entidades
26 Entidades Rita/Conta1 Rita/C1 Ana/Conta2 Ana/C2 João/Conta3 João/C3 José/Conta4 José/C4
27 Relacionamentos 1) Conjunto de associações do mesmo tipo entre entidades EX: Todos os relacionamentos entre as entidades Cliente e Conta 2) Conjunto de associações entre entidades sobre as quais deseja-se manter informações no BD Relacionamento X Instância de Relacionamento Para referir um relacionamento particular fala-se em instância ou ocorrência de relacionamento Tem autores que consideram uma associação específica como um relacionamento e o conjunto de associações como conjunto de relacionamentos
28 Relacionamentos CLIENTES CONTAS
Relacionamentos Relacionamentos Totais (incondicionais) Todas as instâncias de uma entidade estão relacionadas às instâncias das outras EX: Relacionamento entre esposo e esposa Relacionamento entre livros e autores Relacionamentos Parciais (condicionais) Apenas algumas as instâncias de uma entidades estão relacionadas às outras EX: Relacionamento entre homens e esposas Relacionamento entre livros e vendas 29
Atributos São propriedades descritivas de cada membro de uma entidade ou relacionamento. Uma entidade sempre é representada por um conjunto de atributos Atributos de uma entidade Cliente nome, RG, rua, cidade, telefone... Atributos de uma entidade Conta numero, data_abertura, saldo... Em algumas situações relacionamentos também podem ter atributos: Atributos de um relacionamento Consulta (entre medico e paciente) data, hora, prescrição,... 30
31 Atributos Cada instância de uma entidade ou relacionamento tem seu próprio valor para cada atributo. Ex: nome Rita, Ana, João, José,... conta 123, 321, 456, 654,... consulta C1, C2,C3, C4,... O conjunto de valores permitido para cada atributo é chamado de domínio (é a definição do tipo do atributo) EX: nome = texto 60 posições conta = inteiro 8 posições consulta = texto 8 posições
32 Atributos Um atributo pode ser caracterizado como: Simples ou Composto Monovalorado ou Multivalorado Nulo Derivado
33 Atributos simples ou composto Atributo simples: não é dividido em partes. Atributo composto: pode ser dividido em partes (isto é, em outros atributos). Ex: nome do cliente pode ser estruturado em prenome, nomeintermediário e sobrenome. Atributos compostos são usados quando o usuário desejar se referir ao atributo como um todo em certas ocasiões e somente a parte dele em outras.
34 Atributos mono ou multivalorados O atributo RG de uma entidade Cliente refere-se apenas a um nº de identidade é mono-valorado. Instâncias onde um atributo possui um conjunto de valores para uma única entidade è multivalorado. Ex: o atributo telefone o conjunto de entidades Cliente: pode-se ter um, nenhum ou vários telefones
35 Atributos opcionais ou nulos Usado quando uma entidade não possui valor (é nulo) para determinado atributo. Nulo significar que o valor do atributo é vazio ou ainda não foi informado (desconhecido). Ex: Um cliente sem telefone OBS: Um atributo não opcional é um atributo de preenchimento obrigatório. OBS: Nulo Zero! Atenção
36 Atributos Derivados O valor deste tipo de atributo pode ser derivado de outros atributos ou entidades a ele relacionados. Ex: o conjunto de entidades cliente poderia ter o atributo QTD_Conta, mas pode-se derivar o valor deste atributo contando o número das entidades Contas associadas ao cliente em questão. O uso de atributos derivados é uma questão de projeto (Espaço X Integridade X Desempenho)
37 Metáfora No mundo real normalmente pode-se correlacionar: Entidades = Substantivos Empregado, Nota Fiscal, Livro, Consulta Atributos = Complementos Nome, Número, Valor, Cor Relacionamentos = Verbos Ter, Empregar, Prescrever, Gerenciar - Isto não é regra, pois existem relacionamentos que não são bem expressos por verbos. - Quando isto ocorrer, uni-se os nomes das entidades para dar nome ao relacionamento EX: cliente_conta
38 Notação E-R Básica Um diagrama E-R basicamente consiste dos seguintes componentes gráficos: RETÂNGULOS: conjunto-entidade ELIPSES: atributos LOSANGOS: conjunto-relacionamento LINHAS: ligam atributos a conjunto-entidade e conjunto-entidade a conjuntorelacionamento
Notação E-R Básica 39
40 Diagramas E-R: Exemplo Nome R.G. Número Cidade Endereço Data Saldo CLIENTE CLIENTE CONTA CONTA Na prática os atributos não são representados graficamente, pois sobrecarregam (graficamente) a apresentação do diagrama
41 Diagramas E-R: Exemplo R.G. Nome Nome Data Cidade Endereço Data CPF CLIENTE CASA-SE CÔNJUGE Assim como Entidades, Relacionamentos também podem possuir atributos
42 Diagramas E-R: Exemplo Função Código Nome Código Título ENGENHEIRO ATUA PROJETO O mesmo Engenheiro pode desempenhar funções diferentes em projetos diferentes
43 Diagramas E-R: Exemplo Qtd_Parcelas Tx_Juros FINANCEIRA FINANCIA VENDA Por que não em vendas?, porque nem todas as venda são feitas a prazo! (ficariam muito atributos nulos em vendas)
Diagramas E-R: Exemplo Um relacionamento não associa apenas entidades diferentes As vezes é necessário relacionar instâncias de uma mesma entidade, ou seja, fazer um auto-relacionamento Nestes casos é necessário o conceito de Papel Papel = Função que uma instância de uma entidade cumpre em uma instância de um relacionamento Relacionamento entre entidades diferentes não requer papéis CLIENTE Papeis Marido CASADO Esposa 44
45 Diagramas E-R: Exemplo As vezes pode existir mais de um relacionamento entre as mesmas entidades Leciona Professor Curso Coordena
46 Mapeamento de Cardinalidade Expressa o número de entidades as quais outra entidade pode ser associada por um relacionamento.
47 Tipos de Mapeamento - 1 Um-para-um: Uma entidade A está associada no máximo a uma entidade B e B está associada no máximo a uma entidade A. CLIENTE CÔNJUGE
Tipos de Mapeamento - 1 Um-para-um: Cliente casa-se Cônjuge Cliente Cônjuge 48
49 Tipos de Mapeamento - 2 Um-para-muitos: Uma entidade A está associada a qualquer número de entidades B. No entanto, B só pode estar associada e uma única entidade A. CLIENTE DEPENDENTE
50 Tipos de Mapeamento - 2 Um-para-muitos: Cliente possui n Dependente Cliente Dependente
51 Tipos de Mapeamento - 3 Muitos-para-um: Uma entidade A está associada no máximo a uma entidade B. B, entretanto, pode estar associada a qualquer número de entidades A. Conta Corrente 1 Conta Corrente 2 CLIENTE
Tipos de Mapeamento - 3 Muitos-para-um: Conta n conta_cliente $$ $$ $$ $$ Cliente $$ Conta Cliente 52
53 Tipos de Mapeamento - 4 Muitos-para-muitos: Uma entidade A está associada a qualquer número de entidades B e uma entidade B está associada a qualquer número de entidades A. CLIENTE VENDEDOR
54 Tipos de Mapeamento - 4 Muitos-para-muitos: Cliente m atende n Vendedor Cliente Vendedor
Exercícios Modelagem ER Agenda de Contatos; Endereços (ibge e correios); Venda de Produtos; Locadora de Vídeos; Gravadora de CDs; 55