Projeto Conceitual Usando o Modelo-Entidade Relacionamento



Documentos relacionados
Projeto Conceitual Usando o Modelo-Entidade Relacionamento

O Modelo Entidade-Relacionamento MER

Profa. Daniela Barreiro Claro

O Modelo de Entidades e Relacionamentos (MER) é um modelo conceitual usado para projeto de aplicações de banco de dados.

Projeto Conceitual (geralmente no modelo E-R):

Bases de Dados 2013/2014 Modelo Entidade-Associação (EA) Helena Galhardas 2013 IST. Bibliografia

Modelagem de Dados Usando o Modelo Entidade-Relacionamento

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Bibliografia. Bases de Dados 2012/2013 Modelo Relacional. Helena Galhardas. Raghu Ramakrishnan, Database Management Systems, Cap. 3 10/2/ IST

Modelo Entidade-Associação (EA)

UNIVERSIDADE FEDERAL DO MARANHÃO - UFMA. Banco de Dados II. Integridade. Carlos Eduardo Portela Serra de Castro

MC536 Bancos de Dados: Teoria e Prática

Modelo Relacional. Aécio Costa

MODELAGEM DE DADOS. Banco de Dados I. O uso da análise e do projeto Orientados a Objetos atenuou a separação! Unidade I

Modelo de Entidade e Relacionamento (MER) - Parte 07

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional

Comandos DDL. id_modulo = id_m odulo

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

Linguagem SQL (Parte II)

Banco de Dados. Arquitetura e Terminologia. Prof. Walteno Martins Parreira Jr waltenomartins@yahoo.

Modelo Entidade-Associação (EA)

SQL DDL. Frederico D. Bortoloti

Núcleo de Pós Graduação Pitágoras

Banco de Dados I. Projeto de Banco de Dados e o Modelo E-R Parte 2. Fabricio Breve

CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 1

Aula 02 Modelagem de Dados. Banco de Dados. Aula 02 Modelagem de Dados. Superior /2011 Redes Computadores - Disciplina: Banco de Dados -

BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011

Databases. Ferramentas gráficas na modelação lógica das BD. O Modelo Entidade-Relação (Associação) O Modelo de Classes no UML

Conceitos básicos. Aplicações de banco de dados. Conceitos básicos (cont.) Dado: Um fato, alguma coisa sobre a qual uma inferência é baseada.

Correção da 1a Prova de GBD1 2009/2. Profa. Sandra de Amo

Ciclo de vida de um banco de dados relacional

Correção da 1a Prova de GBD1 2010/1. Profa. Sandra de Amo

SQL - Criação de Tabelas

Banco de dados 1. Linguagem SQL DDL e DML. Professor: Victor Hugo L. Lopes

Linguagem SQL Sub-linguagem DDL

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

CICLO DE VIDA DE UM BD

Disciplina de Banco de Dados Parte V

Banco de Dados 1 2º Semestre

BANCO DE DADOS. Fixação dos conteúdos Integridade Referencial Normalização Exercícios

SQL. Definição do Esquema da Base de Dados. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

Chaves. Chaves. O modelo relacional implementa dois conhecidos conceitos de chaves, como veremos a seguir:

Solução do segundo exercício proposto REDE DE HOTÉIS

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

3.1 Definições Uma classe é a descrição de um tipo de objeto.

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Conceitos Básicos de Banco de Dados

Unidade II ADMINISTRAÇÃO DE. Prof. Luiz Fernando de Lima Santos

Modelo Entidade-Relacionamento DCC011. Modelo Entidade-Relacionamento. Processo de Projeto de Bancos de Dados

Banco de Dados Lista de Exercícios 01

Programação SQL. Introdução

MSc. Daniele Carvalho Oliveira

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Introdução ao SQL. Aécio Costa

Esquema da Relação. Modelo Relacional. Instância da Relação. Exemplo. Uma base de dados é uma colecção de uma ou mais relações com nomes distintos

1. Domínio dos Atributos

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES

Banco de Dados I Módulo II: Modelagem Entidade- Relacionamento versus Relacional. (Aula 3) Clodis Boscarioli

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo


ENGENHARIA DA COMPUTAÇÃO BANCO DE DADOS I CONTEÚDO 5 ABORDAGEM RELACIONAL

Curso Superior de Tecnologia em BD

Modelo Entidade-Relacionamento

Roteiro. Modelagem de Dados: Usando o Modelo Entidade-Relacionamento. BCC321 - Banco de Dados I. Processo de Projeto de Banco de Dados.

Modelo Relacional. Modelo Relacional. Conceitos Gerais: Relação

Prof. Alexandre Unterstell Banco de Dados I

Roteiro. Modelo de Dados Relacional. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa. Posicionamento.

Aplicações - SQL. Banco de Dados: Teoria e Prática. André Santanchè e Luiz Celso Gomes Jr Instituto de Computação UNICAMP Agosto de 2013

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

O modelo Entidade-Relacionamento. Agenda: -Modelagem de dados utilizando O Modelo Entidade-Relacionamento

MEMOREX BANCO DE DADOS por Paulo Marcelo

4.6. SQL - Structured Query Language

Databases. Dependências Funcionais

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre

Processo de Projeto Bottom-Up. esquema conceitual do BD. engenharia reversa do esquema relacional. esquema relacional integrado do BD (esquema global)

Processo de Projeto Bottom-Up. esquema conceitual do BD. engenharia reversa do esquema relacional. esquema relacional integrado do BD (esquema global)

O Modelo Relacional. Embrapa Informática Agropecuária Av. André Tosello, Barão Geraldo Caixa Postal Campinas SP Brazil

Engenharia de Software. Diagramas de Entidade- Relacionamento (E-R) Estruturação de dados

Structured Query Language (SQL) Aula Prática

Banco de Dados - Senado

Técnicas e Linguagens para Banco de Dados I

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br 04/08/2012. Aula 7. Prof. Rafael Dias Ribeiro.

Modelagem de dados e uso do SGBD MySQL

OBJETIVOS. Orientações para Projetos de BD; Dependências Funcionais (DFs): Definição de DF; Regras de inferência para DFs.

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE

MANIPULANDO BANCO DE DADOS NO POSTGRESQL SEM FAZER USO DE COMANDOS SQL

Prof.: Clayton Maciel Costa

Modelo de Dados. Modelos Conceituais

Curso Superior de Tecnologia em BD Curso Superior de Tecnologia em DAI

Banco de Dados I. Projeto de Banco de Dados e o Modelo E-R. Fabricio Breve

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

Transcrição:

Projeto Conceitual Usando o Modelo-Entidade Relacionto 5-1 Visão Avançada do Projeto de Banco de Dados Projeto conceitual : (MER é usado neste estágio) O que são as entidades e relaciontos no cenário? Que informações sobre estas entidades e relaciontos deveríamos armazenar no banco de dados? O que são as restrições de integridade ou regras de negócio? Um projeto de um MER pode ser visualizado (diagrama ER) e mapedo em um esquema relacional. Refinto do Esquema: (Normalização) Verifica esquema relacional para redundâncias e anomalias. Desenho e Ajuste Físico: Considera carga típica e refina ainda mais o desenho do BD. 5-2 1

Fundamentos do MER Entidade: Objeto do mundo real distinto de outros objetos. Uma entidade é descrita (em DB) usando um conjunto de atributos. Conj. de entidades: Todas entidades num conjunto de entidades tem o mesmo conjunto de atributos. (Pelo menos até considerarmos hieraquias ISA) 123-22-3666 231-31-5368 131-24-3650 Attishoo Smiley Smethurst 48 22 35 Cada conjunto de entidades tem uma chave. Cada atributo tem um domínio. Pode-se facilmente mapear conjunto de entidades para uma relação. CREATE TABLE ( CHAR(11), CHAR(20), INTEGER, PRIMARY KEY ()) 5-3 Fundamentos do MER (cont.) since d budget Works_In supervisodinate subor- Reports_To Relacionto: Associação entre 2 ou mais entidades. Conjunto de Relaciontos: Coleção de relaciontos similares. Um conjunto de relaciontos R pode relacionar N conjuntos de entidades E1 EN distintas. Alguns conjuntos de entidades poderiam participar em diferentes conjuntos de relacionto, ou em diferentes papéis no mesmo conjunto. 5-4 2

Fundamentos do MER (cont.) Conjunto de relaciontos podem também ter atributos descritivos (p.ex., since ao lado) Traduzindo um conjunto de relaciontos para uma relação, os atributos da relação tem que incluir: Chave para cada conjunto de entidades participante (como chaves estrangeiras). Este conj. de atributos forma superchave para a relação. E os atributos descritivos. CREATE TABLE Works_In( CHAR(1), INTEGER, since DATE, PRIMARY KEY (, ), FOREIGN KEY () REFERENCES, FOREIGN KEY () REFERENCES ) since 123-22-3666 51 1/1/91 123-22-3666 56 3/3/93 231-31-5368 51 2/2/92 5-5 Restrição de Chaves Um empregado pode estar alocado a vários deptos e um depto pode ter vários empregados. since Manages d budget Por outro lado, cada depto tem no máximo um gerente conforme key constraint em manages. tradução p/ o modelo relacional? 1-to-1 1-to Many Many-to-1 Many-to-Many 5-6 3

Tradução de Diagramas ER c/ Restrições de Chave Mapeia-se um relacionto para uma tabela: Note que é a chave agora! Separe tabelas para e Depts. Desde que cada dept tem um único gerente, podemos ter administração e departamentos. CREATE TABLE Manages( CHAR(11), INTEGER, since DATE, PRIMARY KEY (), FOREIGN KEY () REFERENCES, FOREIGN KEY () REFERENCES ) CREATE TABLE Dept_Mgr( INTEGER, d CHAR(20), budget REAL, CHAR(11), since DATE, PRIMARY KEY (), FOREIGN KEY () REFERENCES ) 5-7 Restrições de Participação Todo departamento tem um gerente? Se sim, isto é um restrição de participação: A participação do Depto em Administração é dito para ser total (vs. parcial). Todo valor na tabela de Departamentos tem aparecer na fileira da tabela de administração (com um valor não nulo!) since d budget Manages Works_In since 5-8 4

Restrições de Participação em SQL Podemos capturar restrições de participação envolvendo um conjunto de entidades em um relacionto binário, mas pouco além disso (sem recorrer a um restrições do tipo CHECK). CREATE TABLE Dept_Mgr( INTEGER, d CHAR(20), budget REAL, CHAR(11) NOT NULL, since DATE, PRIMARY KEY (), FOREIGN KEY () REFERENCES, ON DELETE NO ACTION) 5-9 Entidades Fracas Uma entidade fraca pode ser identificada considerando a chave primaria de outra entidade (proprietária). Conjuntos de entidades proprietárias e conjuntos de entidades fracas tem que participar em conjunto de relaciontos um-para-muitos. Conjuntos de entidades fracas tem que ter participação total neste conjunto de relacionto identificadores. cost p age Policy Dependents 5-10 5

Traduzindo Conjunto de Entidades Fracas Conjunto de entidades fracas e conjuntos de relaciontos identificadores são traduzidos para uma tabela simples. Quando um proprietário de entidade é removido, todos entidades fracas possuídas tem que ser removidas também. CREATE TABLE Dep_Policy ( p CHAR(20), age INTEGER, cost REAL, CHAR(11) NOT NULL, PRIMARY KEY (p, ), FOREIGN KEY () REFERENCES, ON DELETE CASCADE) 5-11 Hierarquias ISA (`is a ) Como em OO atributos são herdados. Se declaramos A ISA B, toda entidade A é também considerada uma entidade B. hourly_wages hours_worked ISA contractid Restrições de sobreposições: Pode Joe ser um Hourly_Emps assim como uma entidade em Contract_Emps? Restrições de Cobertura : Todos os empregados tem também que ser um Hourly_Emps ou uma entidade Contract_Emps? Razões para se usar ISA: Para adicionar atributos descritivos para uma sub-classe. Para identificar entidades que participam de um relacionto. Hourly_Emps Contract_Emps 5-12 6

Traduzindo Hierarquias ISA para Relações Estratégia Geral: 3 relações,, Hourly_Emps and Contract_Emps. Hourly_Emps: Todo empregado é registrado em. Para horistas informação extra é registrada em Hourly_Emps (hourly_wages, hours_worked, ); deve-se remover tupla de Hourly_Emps se a tupla referenciada de for removida. Consultas envolvendo todos empregados são fáceis, aquelas envolvendo apenas Hourly_Emps requerem um join para obter alguns atributos. Alternativa: Apenas Hourly_Emps e Contract_Emps. Hourly_Emps:,,, hourly_wages, hours_worked. Cada empregado deve pertencer a uma dessas subclasses. 5-13 Agregação Usado quando temos que modelar relacionto envolvendo conj. de entidades e um conj. relaciontos Agregação nos permite considerar um conjunto de relacionto como um conjunto de entidades com objetivo de participação em (outros) relaciontos. Monitors é mapeado para tabela normalmente. pid started_on pbudget Projects Monitors Sponsors until d budget Agregação vs. relacionto ternário: Monitors é um relacionto com, atributo descritivo. Pode-se dizer que cada sponsorship é monitorada por apenas 1 empregado 5-14 7

Projeto conceitual usando o MER Escolhas de Projeto: Um conceito deve ser modelado como uma entidade ou um atributo? Ou um relacionto? E os relaciontos? Binários ou ternários? Agregação? Restrições no MER: Muita semântica de dados pode (e deve) ser capturada. Porém algumas restrições não podem ser descritas no diagrama Necessidade de refinto no esquema: Esquema relacional obtido do diagrama de ER é um bom passo inicial, mas por não expressar algumas restrições o mesmo pode necessitar refintos. 5-15 Entidade vs. Attributo Address deve ser um atributo de ou uma entidade (ligada a por relacionto)? Depende do uso que queremos fazer da informação, e da semântica do dado: Se temos vários endereços por empregado, address tem que ser uma entidade (porque?). Idem se a estrutura do address é importante. Data de nascimento, p.ex., é um exemplo clássico onde é mais adequado se usado como atributo e não uma entidade por si só. 5-16 8

Entidade vs. Attributo (Cont.) Works_In2 não permite a um empregado trabalhar em um depto por mais de um período. from to Works_In2 dbudget Works_In3 resolve este problema criando uma entidade e usando um relacionto ternário (note o uso da semântica do modelo). from Works_In3 Duration to d budget 5-17 Entidade vs. Relacionto (Cont.) 1o diagrama OK se o manager tem um budget distinto para para depto. E se o manager tem um budget para todos os deptos gerenciados? 1a opção é redundante. dbudget, é armazenado para cada depto. 2a opção soluciona o problema apptnum since dbudget Manages2 Manages3 Mgr_Appts d budget d budget since dbudget 5-18 9

Relacionto binários vs ternários Se cada policy é propriedade de apenas um empregado: Restrição de chaves em policies implicaria que policy pode cobrir apenas um dependente. Quais são as restrições adicionais no 2o diagrama? Bad design policyid Purchaser Better design policyid Covers Policies Policies cost Beneficiary cost p p age Dependents age Dependents 5-19 Relaciontos binários vs ternários (Cont.) As restrições de chave permitem combinar Purchaser com Policies e Beneficiary com Dependents. Restrição de participação leva a restrição do tipo NOT NULL. E se policies fosse uma entidade fraca? CREATE TABLE Policies ( policyid INTEGER, cost REAL, CHAR(11) NOT NULL, PRIMARY KEY (policyid). FOREIGN KEY () REFERENCES, ON DELETE CASCADE) CREATE TABLE Dependents ( p CHAR(20), age INTEGER, policyid INTEGER, PRIMARY KEY (p, policyid). FOREIGN KEY (policyid) REFERENCES Policies, ON DELETE CASCADE) 5-20 10

Relacionto binários vs ternários (Cont.) Exemplo anterior ilustra um caso onde 2 relaciontos binários são melhores que um relacionto ternário. Um exemplo contrário: uma relação ternário Contracts relaciona entidades Parts, e Suppliers, and tem atributos descritivo quantidade. Não há combinação de relaciontos binários adequados: S ``pode fornecer P, D ``precisa P, and D ``negocia com S não significa que D concorda em comprar P de S! Como registra-se quantidade? 5-21 Restrições além do MER Dependências funcionais (DFs): P.ex., um depto não pode comprar duas partes distintas de um mesmo fornecedor. Não pode ser expressa com o relacionto Contracts. Normalização refina o diagrama ER considerando DFs. Dependencia de Inclusão: Caso especial: Chave estrangeiras (MER é suficiente). P.ex., pelo menos 1 pessoa deve-se reportar a cada gerente. (Conj. de valores em Manages deve ser um subconj. de supervisor_ em Reports_To.) Chave estrangeira? Como expressar isso no MER? Retrições gerais: P.ex. e.g., Budget do Manager por depto é menos que 10% do que o budget total que ele gerencia. 5-22 11

Resumo do projeto conceitual Projeto Conceitual segue Análise de Requisitos, Fornece descrição de alto nível do dados armazenados. MER é popular para projeto conceitual Construções são expressivas, próximas da intuição sobre as aplicações. Construtores básicos: entidades, relaciontos e attributos. Alguns construtores adicionais: entidades fracas, hierarquias ISA e agregação. Nota: há muitas variações do MER. 5-23 Resumo do projeto conceitual (Cont.) Vários tipos de restrições de integridade podem ser expressas em um MER: restrições de chaves, de participações, etc. Algumas restrições de chave estrangeira estão implicitas na definição de um conjunto de relaciontos. Algumas dessas restrições podem ser expressas em SQL apenas se usarms CHECK ou similar (assert). Algumas restrições (especialmente DFs) não podem ser expressadas em um MER. Restrições tem um papel importante na determinação do melhor projeto para um dado cenário. 5-24 12

Resumo do projeto conceitual (Cont.) Projeto ER é subjetivo. A análise de alternativas pode ser delicada, especialmente para grandes cenários. Alternativas podem incluir: Entidade vs atributo, entidade vs. relacionto, relacionto binário ou ternário, quando usar hierarquias ISA, quando usar agregação, etc. Garantia de um projeto de banco de dados: o esquema relacional deve ser analisado em refinado. Informação sobre DFs e técnicas de normalização são especialmente úteis. 5-25 13