Modelo Logico
Trabalho Escolar: Modelo Logico. Pesquise 862.000+ trabalhos acadêmicosPor: • 10/9/2014 • 3.982 Palavras (16 Páginas) • 969 Visualizações
DCC011
Introdução a Banco de Dados -08
Mirella M. Moro
Departamento de Ciência da Computação
Universidade Federal de Minas Gerais
mirella@dcc.ufmg.br
2009/1
Avaliação
Provas
60 pontos
Trabalhos Práticos
30 pontos
Exercícios e Participação
DCC011 - 2009/1 - profa. Mirella 2
10 pontos
www.dcc.ufmg.br/~mirella/DCC011
Programa
Introdução
Conceitos básicos, características da abordagem de banco de
dados, modelos de dados, esquemas e instâncias, arquitetura
de um sistema de banco de dados, componentes de um sistema
de gerência de banco de dados.
Modelos de dados e linguagens
REVISÃO PARA PROVA 1
DCC011 - 2009/1 - profa. Mirella 3
Modelo entidade-relacionamento (ER), modelo relacional,
álgebra relacional, SQL.
Projeto de bancos de dados
Fases do projeto de bancos de dados, projeto lógico de bancos
de dados relacionais, normalização.
Novas Tecnologias e Aplicações de Banco de Dados
Conceitos Básicos
Definição de Banco de Dados
[Elmasri & Navathe, 2000]
Um banco de dados é uma coleção de
dados relacionados
Representando algum aspecto do mundo real
DCC011 - 2009/1 - profa. Mirella 5
(mini-mundo ou universo de discurso)
Logicamente coerente, com algum significado
Projetado, construído e gerado (“povoado”)
para uma aplicação específica
Sist. de Gerência de Banco de Dados
Um sistema de gerência de banco de dados
(SGBD) é um conjunto de programas que
permite criar e manter (manipular) um banco de
dados
BD + SGBD = sistema de banco de dados
DCC011 - 2009/1 - profa. Mirella 6
Projeto de Banco de Dados
Visão
Externa1
Visão
Externa2
Modelo Conceitual
requisitos requisitos
DCC011 - 2009/1 - profa. Mirella 7
Modelo Lógico
Modelo Físico
Esquema
Conceitual
Esquema
Lógico Esquema
Físico
INDEPENDENTE
de SGBD
DEPENDENTE
de SGBD
Mini-Mundo
Análise de
Requisitos
Requisitos do BD
Projeto Conceitual
Esquema Conceitual
Requisitos Funcionais
Análise Funcional
Especificação das Transações
Projeto de Bancos de Dados
DCC011 - 2009/1 - profa. Mirella 8
(em um modelo de dados de alto nível)
Projeto Lógico
Esquema Lógico
(em um modelo de dados lógico)
Projeto Físico
Esquema Físico
(para um SGBD específico)
(em alto nível)
Projeto das Aplicações
Implementação
Programas
Independente de SGBD
Específico para um SGBD
Conceitos e Arquitetura do SBD
1.Modelos de Dados, Esquemas e Instâncias
2.Categorias de Modelos de Dados
3.Arquitetura de Três Esquemas e Independência de
Dados
1. Modelo de Dados, Esquema e
Instância
Modelo
DCC011 - 2009/1 - profa. Mirella 10
de Dados Esquema Instância
Regras para
estruturação
dos dados
Regras para
verificação
das instâncias
Modelo de Dados, Esquema e
Instância
Modelo de dados: Conjunto de conceitos
descrevem a estrutura de um BD
Abstração de dados
Estrutura = tipos de dados + relacionamentos +
restrições (+operações recuperação e atualização)
DCC011 - 2009/1 - profa. Mirella 11
Esquema: Descrição (textual ou gráfica) da
estrutura de um BD de acordo com um
determinado modelo de dados
Instância: Conjunto de dados armazenados em
um BD em um determinado instante de tempo
2. Categorias de Modelo de Dados
MODELOS CONCEITUAIS
Descrevem a estrutura de um BD de uma forma
mais próxima da percepção dos usuários
Independente de aspectos de implementação
DCC011 - 2009/1 - profa. Mirella 12
Conceitos: entidades, atributos,
relacionamentos
Exemplos:
Modelo entidade-relacionamento (ER)
Modelo funcional
Modelo orientado a objetos (OO)
Categorias de Modelo de Dados
MODELOS REPRESENTACIONAIS (lógicos)
Descrevem a estrutura de um BD da forma
como será manipulado através de SGBD
Mais dependente das estruturas físicas de
armazenamento de dados
DCC011 - 2009/1 - profa. Mirella 13
Exemplos:
Modelo relacional
Modelo de rede (CODASYL)
Modelo hierárquico
Categorias de Modelo de Dados
MODELOS FÍSICOS
Descrevem como os dados são fisicamente
armazenados
Conceitos: formatos dos registros,
DCC011 - 2009/1 - profa. Mirella 14
ordenamento dos registros, caminhos de
acesso (eficiência)
3. Arquitetura de um Sistema de BD
Características do enfoque de BD
Isolamento de programas e dados
Suporte de visões múltiplas de usuários
Catálogo para armazenar a descrição
DCC011 - 2009/1 - profa. Mirella 15
(esquema) do BD
Arquitetura de três níveis
Mantém independência de dados e programas
Suporta múltiplas visões
Arquitetura de um Sistema de BD
Componentes
1. Esquema interno
Descreve armazenamento físico
2. Esquema conceitual
DCC011 - 2009/1 - profa. Mirella 16
Descreve entidades, tipos de dados,
relacionamentos, operações e restrições
Esconde detalhes de armazenamento
3. Esquemas externos (visões)
Descreve porções do banco para diferentes
comunidades
Arquitetura de um Sistema de BD
DCC011 - 2009/1 - profa. Mirella 17
Arquitetura de um Sistema de BD
exemplo 1
Esquema conceitual
Estudantes (eid: string, nome: string, login: string,
idade: integer, gpa:real)
Cursos (cid: string, cnome:string, creditos:integer)
Matricula (eid:string, cid:string, nota:string)
DCC011 - 2009/1 - profa. Mirella 18
Esquema Físico
Relações guardadas como arquivos desordenados
Índices na primeira colunas de estudantes
Esquema externo (Visão):
Info_Curso(cid:string, horário:string)
Arquitetura de um Sistema de BD
exemplo 2
EXTERNO (Ling. Pascal)
Funcionario = Record
nome: string(30);
salario: real;
End;
EXTERNO (Ling. Cl)
Participante = struct {
char[30] Nome;
int Departamento;
}
CONCEITUAL
Empregado
NOME CHARACTER (30)
DCC011 - 2009/1 - profa. Mirella 19
SALARIO NUMERIC (5)
DEPARTAMENTO NUMERIC (2)
SEXO CHARACTER (1)
INTERNO
RegistroEmpregadoLENGTH=50
NOME TYPE= BYTE(30)
SAL TYPE=FULLWORD
DEP TYPE=WORD
SEXO TYPE=BYTE(1)
Altera
um nível
Altera
Visão Externa
Esquema Conceitual
DCC011 - 2009/1 - profa. Mirella 20
nível vizinho
Dependência de Dados
Independência de Dados
Esquema Físico
Independência de Dados
Capacidade de se alterar o esquema em
um determinado nível sem alterar o
esquema (ou esquemas) do nível
imediatamente mais alto
DCC011 - 2009/1 - profa. Mirella 21
VANTAGEM:
Imunidade dos programas em relação a
mudanças na estrutura do banco de dados
Um dos maiores benefícios de usar SGBD
Independência de Dados
Independência de dados lógica
Capacidade de alterar o esquema conceitual sem
alterar esquema externo ou aplicações
Ex. Expansão ou redução
DCC011 - 2009/1 - profa. Mirella 22
Independência de dados física
Capacidade de mudar o esquema interno sem
mudar o esquema conceitual (ou externo)
Ex. Reorganização de arquivos para melhorar
desempenho
Modelo Entidade-Relacionamento
1. Entidades, atributos
2. Relacionamentos
3. Restrições sobre relacionamentos
4. Papéis e relacionamentos recursivos
5. Entidade fraca
6. Generalização e especialização
7. Restrições sobre Hierarquias de
Especialização/Generalização
Processo de Projeto de
Bancos de Dados
Requisitos de Dados
Independente
Esquema Conceitual
Modelo de dados de alto nível
DCC011 - 2009/1 - profa. Mirella 24
de SGBD
1. Entidades, atributos
Entidades
Objetos do mundo real que são de interesse
para alguma aplicação
Atributos
Propriedades para descrever uma entidade
DCC011 - 2009/1 - profa. Mirella 25
Tipos de Atributos
Simples ou compostos
Ex. Endereço
Monovalorados ou multivalorados
Ex. Profissão
Armazenados ou derivados
Endereço
End_Rua Cidade Estado CEP
Rua Nro Apto
DCC011 - 2009/1 - profa. Mirella 26
Data de Nascimento ® Idade,
Empregados trabalhando no departamento ®
NumeroDeEmpregados
Valores Null
Não aplicável: Número do apartamento
Desconhecido: Telefone de casa
Tipos de Entidade
Tipo de entidade
Define um conjunto de entidades que têm
os mesmos atributos (propriedades)
Descreve o esquema para um conjunto de
DCC011 - 2009/1 - profa. Mirella 27
entidades que compartilham a mesma
estrutura
Exemplos
Empregado, Empresa
DCC011 - 2009/1 - profa. Mirella 28
Fig. 3.5 – Duas entidades Empregado e Empresa, e algumas
instâncias dos dados
Chave e Domínio
Chave de um tipo de entidade
Atributo que possui valor único para cada entidade
(instância)
Ex. Nome da companhia, identidade do empregado
Chave pode ser formada por vários atributos: chave
composta
DCC011 - 2009/1 - profa. Mirella 29
Registro do Veiculo: Numero de Registro e Estado
Domínio de um atributo
Conjunto de valores que podem ser atribuídos a um
atributo para cada entidade individualmente
Ex. Idade do Empregado: (16, 70); Nome do
Empregado:String
DCC011 - 2009/1 - profa. Mirella 30
Fig. 3.7 - O tipo entidade CARRO com dois atributos-chave,
Registro e IDVeiculo
DCC011 - 2009/1 - profa. Mirella 31
Fig. 3.8 - Projeto inicial dos tipos entidade para o banco de
dados EMPRESA.
2. Relacionamentos
Associações entre duas ou mais entidades
distintas (instâncias) com um significado
Exemplo:
Empregado John Smith trabalha para
DCC011 - 2009/1 - profa. Mirella 32
Departamento pesquisa
Empregado Fred Brown gerencia
Departamento pesquisa
Departamento pesquisa controla Projeto X
Tipo de Relacionamento
Define um conjunto de associações entre
n tipos de entidade E1, E2, ..., En
Exemplo:
Trabalha_para entre Empregado e
DCC011 - 2009/1 - profa. Mirella 33
Departamento
Empregado trabalha
para Departmento
DCC011 - 2009/1 - profa. Mirella 34
Figura 3.9 Algumas instâncias do conjunto de relacionamento
TRABALHA_PARA, que representa um tipo relacionamento
TRABALHA_PARA entre EMPREGADO e DEPARTAMENTO.
DCC011 - 2009/1 - profa. Mirella 35
Figura 3.10 Algumas instâncias de relacionamento do conjunto de
relacionamento ternário FORNECE.
3. Restrições sobre relacionamentos
Limitam as possíveis combinações de entidades que
podem participar no conjunto de relacionamentos
Cardinalidade: número de instâncias de um tipo de
relacionamento do qual uma entidade pode participar
Participação: se a existência de uma entidade depende
DCC011 - 2009/1 - profa. Mirella 36
de seu relacionamento com outra entidade através de
um tipo de relacionamento parcial ou total
Ex. Todo empregado deve trabalhar p/ um departamento (total)
Ex. Nem todo empregado gerencia um departamento (parcial)
Cardinalidade + Participação Restrições Estruturais
DCC011 - 2009/1 - profa. Mirella 37
Figura 3.12 Relacionamento GERENCIA 1:1
DCC011 - 2009/1 - profa. Mirella 38
Figura 3.13 Relacionamento TRABALHA_EM, M:N
M
DCC011 - 2009/1 - profa. Mirella 39
Esquema conceitual
4. Papéis e Relacionamentos
Recursivos
Entidades atuam com um determinado papel
Significado do papel é dado por um nome,
atribuído a cada tipo de entidade
Nomes só são necessários em tipos de
DCC011 - 2009/1 - profa. Mirella 40
relacionamento que envolvam mais de uma vez
o mesmo tipo de entidade relacionamentos
recursivos
Exemplo: Supervisão, onde Empregado tem os
papéis de Supervisor e Subordinado
DCC011 - 2009/1 - profa. Mirella 41
Figura 3.11 Um relacionamento recursivo SUPERVISAO
entre EMPREGADO, no papel de supervisor (1),
e EMPREGADO, no papel de subordinado (2).
5. Entidade Fraca
Tipos de entidade que não têm chave
própria
As instâncias são identificadas através do
relacionamento com entidades de outro
DCC011 - 2009/1 - profa. Mirella 42
tipo, chamado de dono ou identificador,
juntamente com os valores de alguns
atributos (chave parcial)
Exemplo: Dependente
M
DCC011 - 2009/1 - profa. Mirella 43
6. Especialização e Generalização
Especialização:
Processo de definição de um conjunto de sub-classes
(sub-tipos) de um tipo de entidade
Generalização:
DCC011 - 2009/1 - profa. Mirella 44
Processo de definição de um tipo de entidade
genérico (super-classe ou super-tipo) a partir de um
conjunto de tipos de entidade
Exemplo: {secretária, engenheiro, técnico} é
uma especialização de Empregado; ou
Empregado é uma generalização de {secretária,
engenheiro, técnico}
Especialização e Generalização
Toda instância de uma sub-classe (ou sub-tipo)
é também instância de sua super-classe (ou
super-tipo)
Ex.: “John Smith” é um engenheiro e também é um
empregado
DCC011 - 2009/1 - profa. Mirella 45
Herança de Tipo:
Uma entidade de uma sub-classe tem todos os
atributos e relacionamentos da super-classe
Em outra palavras, ela herda todos os atributos e
relacionamentos da super-classe
E pode definir seus proprios atributos e
relacionamentos locais ou especificos (*)
DCC011 - 2009/1 - profa. Mirella 46
Figura 4.1 Notação de diagrama EER para representar as subclasses
e a especialização.
DCC011 - 2009/1 - profa. Mirella 47
Figura 4.2 Instâncias de uma especialização.
Especialização
O processo de especialização permite:
Definir um conjunto de sub-classes (subtipos)
de um tipo de entidade
Estabelecer atributos específicos adicionais
DCC011 - 2009/1 - profa. Mirella 48
para cada sub-classe (sub-tipo)
Estabelecer tipos de relacionamentos
especificos adicionais entre cada subclasse
(sub-tipo) e outros tipos de
entidades ou outras sub-classes (subtipos).
DCC011 - 2009/1 - profa. Mirella 49
Figura 4.3 Generalização. (a) Dois tipos de entidade, CARRO e CAMINHAO.
(b) Generalizando CARRO e CAMINHAO na superclasse VEICULO.
7. Restrições sobre Hierarquias de
Especialização/Generalização
Definida por atributo ou usuário
Disjução:
Sub-classes podem ser disjuntas ou sobrepostas
Completude:
A cobertura da super-classe em relação às sub-
DCC011 - 2009/1 - profa. Mirella 50
subclasses
pode ser total ou parcial
Restrições possíveis:
Disjunta/Total
Disjunta/Parcial
Sobreposta/Total
Sobreposta/Parcial
d = disjunção
Um Empregado é
-Secretária OU
-Técnico OU
-Engenheiro
DCC011 - 2009/1 - profa. Mirella 51
Figura 4.4 Notação do diagrama EER para uma especialização definida
por atributo em TipoTrabalho.
o = sobreposição
Uma peça é
-fabricada E/OU
-fornecida
DCC011 - 2009/1 - profa. Mirella 52
Figura 4.5 Notação de diagrama EER para uma especialização sobreposta
(não disjunta).
TOTAL
TODO Empregado é
Assalariado OU
Horista
DCC011 - 2009/1 - profa. Mirella 53
Figura 4.1 Notação de diagrama EER para representar as subclasses
e a especialização.
Restrições sobre Hierarquias de
Especialização/Generalização
Hierarquia
Toda sub-classe participa como uma subclasse
em apenas um relacionamento
classe/sub-classe
DCC011 - 2009/1 - profa. Mirella 54
Reticulado
lattice, herança múltipla, grade de
especialização
Uma sub-classe pode participar em mais de
um relacionamento classe/sub-classe
DCC011 - 2009/1 - profa. Mirella 55
Figura 4.6 Um reticulado de especialização, com a subclasse
GERENTE_ENGENHARIA compartilhada.
Figura 4.7 Um reticulado de especialização,
com herança múltipla, para um banco de
dados UNIVERSIDADE.
DCC011 - 2009/1 - profa. Mirella 56
DCC011 - 2009/1 - profa. Mirella 57
Figura 4.7 Um reticulado de
especialização, com herança
múltipla, para um banco de
dados UNIVERSIDADE.
IMPORTANTE
Modelo Conceitual
CONCEITOS, ABSTRAÇÕES
ENTIDADE, ATRIBUTO, RELACIONAMENTO
Piloto, equipe, país, circuito, corrida
Piloto representa País
DCC011 - 2009/1 - profa. Mirella 58
Equipe sede em País
SE país é uma entidade; Piloto e equipe possuem atributo País?
Mas a especificação diz!!!! ????
N modelos conceituais para um cenário
Modelo tem APENAS o que está na especificação
Restrições, exceções, peculiaridades, viagem na maionese:
OUTRO MODELO
Pecar por excesso x Pecar por falta
Modelo Relacional
(3rd ed: 7.1-7.2; 5th ed: 5.1-5.2)
1. Introdução
2. Conceitos do Modelo Relacional
3. Restrições de Integridade Básicas
4. Esquema do BD Relacional
5. Restrições de Integridade do Esquema
6. Operações sobre Relações
7. Violações de Restrições
Requisitos de Dados
Independente
Esquema Conceitual
Modelo de dados de alto nível
Processo de Projeto de
Bancos de Dados
DCC011 - 2009/1 - profa. Mirella 60
de SGBD
SGBD
Específico
Esquema Lógico (Conceitual)
em um modelo de dados
de um SGBD específico
1. Introdução
O modelo relacional representa um banco de
dados como um conjunto de relações
Informalmente
uma relação = uma tabela de valores
DCC011 - 2009/1 - profa. Mirella 61
cada linha representa uma coleção de dados
relacionados
cada linha de uma tabela representa um
“fato” que tipicamente corresponde a uma
entidade ou relacionamento do mundo real
2. Conceitos do Modelo Relacional
Linhas de uma relação (tabela) = tuplas
Cabeçalho de cada coluna = atributo
Conjunto de valores que pode aparecer em cada coluna
= domínio
DCC011 - 2009/1 - profa. Mirella 62
Figura 7.1 Os atributos e as tuplas de uma relação ALUNO.
As tuplas de uma relação não são ordenadas (entre elas)
Características de uma Relação
DCC011 - 2009/1 - profa. Mirella 63
Registros em um arquivo são ordenados de acordo com a
posição em que são armazenados no disco
Figura 7.2 A relação ALUNO da Figura 7.1 com uma ordenação diferente das tuplas.
Uma tupla é uma lista ordenada de valores
O valor de cada atributo em uma tupla é
atômico
Atributos compostos e multivalorados não são
permitidos
Características de uma Relação
DCC011 - 2009/1 - profa. Mirella 64
O valor especial null é utilizado para representar
valores não conhecidos ou não aplicáveis a uma
determinada tupla
Um esquema de relação pode ser visto como
uma declaração ou asserção
Esquema de relação = Predicado
Valores em cada tupla satisfazem o predicado
3. Restrições de Integridade Básicas
Restrições de domínio
Especificam que o valor de cada atributo A
de uma relação deve ser um valor atômico
do domínio dom(A)
DCC011 - 2009/1 - profa. Mirella 65
Restrições de Integridade
Restrições de chave
Um esquema de relação pode ter mais de uma chave
chaves candidatas
Dentre as chaves candidatas de um esquema de relação,
uma delas é indicada como chave primária e as demais
DCC011 - 2009/1 - profa. Mirella 66
constituem as chaves alternativas
Figura 7.4 A relação CARRO com duas chaves candidatas: NumeroLicenca e NumeroChassi.
Restrições de Integridade
Restrições em valores null
Especifica se a um atributo é permitido ter valores
null
Exemplo: todo Aluno deve ter um nome válido,
DCC011 - 2009/1 - profa. Mirella 67
não-null
4. Esquema de um BD Relacional
Um esquema de BD relacional S define:
um conjunto de esquemas de relação
R = {R1, R2, ..., Rn}, e
um conjunto de restrições de integridade I
DCC011 - 2009/1 - profa. Mirella 68
S = (R, I)
Esquema de um BD Relacional
DCC011 - 2009/1 - profa. Mirella 69
Figura 7.5 Diagrama para o esquema do banco de dados relacional EMPRESA.
5. Restrições de Integridade do Esquema
Outras restrições além das restrições de
domínio e de chave
Restrição de integridade de entidade
DCC011 - 2009/1 - profa. Mirella 70
Nenhum componente de uma chave
primária pode ser nulo
Restrições de Integridade
Restrição de integridade referencial
Usada para manter a consistência entre
tuplas de duas relações
Uma tupla em uma relação que se refere
DCC011 - 2009/1 - profa. Mirella 71
a outra relação deve referenciar uma
tupla existente nesta outra relação
Aparecem devido aos relacionamentos
entre entidades
Restrições de Integridade
Restrição de integridade referencial
Seja FK um conjunto de atributos de um
esquema de relação R1 definido sobre o
mesmo domínio dos atributos da chave
DCC011 - 2009/1 - profa. Mirella 72
primária PK de outro esquema R2. Então,
para qualquer tupla t1 de R1:
t1[FK] = t2[PK], onde t2 é uma tupla de R2
ou
t1[FK] é nulo
DCC011 - 2009/1 - profa. Mirella 73
Figura 7.7 Restrições de integridade referencial exibidas no esquema de
um banco de dados relacional EMPRESA.
Notação
NomeTabelaPrincipal
Chave Atributo1 … Atributon
DCC011 - 2009/1 - profa. Mirella 74
NomeTabelaReferenciada
Atributo1 … Atributon Chave
A restrição de integridade referencial pode ser
expressa pela notação
R1[FK] R2[PK],
onde PK é a chave primária de R2 e FK é a chave
Restrições de Integridade
DCC011 - 2009/1 - profa. Mirella 75
estrangeira de R1
Exemplos:
EMPLOYEE[DNO] DEPARTMENT[DNUMBER]
WORKS_ON[ESSN] EMPLOYEE[SSN]
WORKS_ON[PNO] PROJECT[PNUMBER]
6. Operações sobre Relações
As operações sobre um BD relacional podem ser
classificadas em:
Operações de recuperação (consulta)
Operações de atualização
DCC011 - 2009/1 - profa. Mirella 76
Operações de atualização (sobre tuplas):
Inserção (insert)
Remoção (delete)
Modificação (update)
Operações sobre Relações
Inserção (insert)
Adiciona uma nova tupla (ou várias) em uma
relação
Remoção (delete)
DCC011 - 2009/1 - profa. Mirella 77
Remove uma tupla da relação
Modificação (update)
Altera os dados de uma tupla
Em qualquer operação, a integridade da
base de dados relacional deve ser mantida
7. Violação de Restrições
Restrições de integridade não podem ser
violadas!!!
Inserção
Restrição de Domínio: valor fora do domínio
DCC011 - 2009/1 - profa. Mirella 78
Restrição de Chave: valor já existe
Restrição de integridade de entidade: se chave
for null
Restrição de integridade referencial: se chave
estrangeira referencia tupla inexistente
Ação default: rejeitar inserção (com explicação)
Exemplos
Empregado
Nome IM Sobrenome CPF DataNasc Endereço Salário Supervisor Depto
Departamento
NomeD CPFGer DataInicioGer NumeroDep
Inserir <‘Mirella’, ‘M’, ‘Moro’, 1234567890, ‘1960-04-05’,
‘6347 Whatever’, 28000, nulo, 4> em Empregado
DCC011 - 2009/1 - profa. Mirella 79
Inserir <‘Cecilia’, ‘F’, ‘Kolonsky’, nulo, ‘1960-04-05’,
‘6347 Whatever’, 28000, 12312312345, 4> em Empregado
Inserir <‘Alicia’, ‘J’, ‘Zelaya’, 1234567890, ‘1960-04-05’,
‘9281 Whatever’, 28000, 1234567890, 6> em Empregado
Violação de Restrições
Remoção
Tupla excluída é referenciada por chaves
estrangeiras
Ação default: bloqueia/rejeitar a remoção
(com explicação)
DCC011 - 2009/1 - profa. Mirella 80
OUTRAS OPÇÕES????
Propagar remoção de tuplas que violem uma restrição
de integridade referencial – Efeito cascata
Modificar o valor da chave estrangeira para nulo
Violação de Restrições
Modificação
Modificar o valor de um atributo que não é
chave primária ou estrangeira não causa
problemas (se o valor for do domínio, e, se for
null, que este valor seja permitido)
DCC011 - 2009/1 - profa. Mirella 81
Modificar a chave primaria é igual a excluir uma
tupla e inserir outra
Modificar chave estrangeira: SGBD deve verificar
se novo valor do atributo referencia tupla
existente
Opções de Remoção da RIR
A cada RIR R1[FK] R2[PK] é possível associar uma
opção de remoção que especifica como a remoção
de uma tupla de R2 é executada em relação a R1
As opções de remoção possíveis são:
DCC011 - 2009/1 - profa. Mirella 82
bloqueio
propagação
substituição por nulos
Notação:
R1[FK] R2[PK],
onde op Î {b, p, n}
op
DCC011 - 2009/1 - profa. Mirella 83
EXERCÍCIO: adicionar as opções de remoção às chaves estrang.
• bloqueio
• propagação
• substituição
por nulos
n
p
p
b b
b
b
DCC011 - 2009/1 - profa. Mirella 84
Restrições de integridade referencial com opções de remoção
b
• bloqueio
• propagação
• substituição
por nulos
1. Formula 1
Deseja-se projetar uma base de dados que mantenha resultados de
corridas de Fórmula 1. A base de dados deve manter informações
sobre as equipes (código, nome e país), bem como sobre os
pilotos que pertencem a cada equipe (equipe a que pertence,
código, nome e país). Os países são identificados por uma sigla e
a base de dados deve conter o nome de cada país. Também é
necessário armazenar dados sobre os circuitos (código, nome e
país). Para cada corrida realizada no circuito, é necessário saber a
data em que ocorreu, a duração em minutos e a posição que cada
piloto obteve na corrida.
DCC011 - 2009/1 - profa. Mirella 85
Pais(SiglaPais, NomePais)
Equipe(CodEq, NomeEq, SiglaPais)
SiglaPais referencia Pais
Piloto(CodPil, NomePil, CodEq, SiglaPais)
CodEq referencia Equipe
SiglaPais referencia Pais
Ciruito(CodCirc, NomeCirc, SiglaPais)
SiglaPais referencia Pais
Corrida (CodCirc, Data, Tempo)
CodCirc referencia Circuito
PosPilotoCorrida(CodCirc, Data, CodPil, Posicao)
CodCirc, Data referencia Corrida
CodPil referencia Piloto
Equipe País
Piloto
Circuito Corrida
PosPilotoCorrida
2. Agência Viagens
Uma agência de viagens resolveu montar uma base de dados com informações
sobre vôos das companhias de aviação das quais vende bilhetes. A agência atende
várias companhias de aviação, cada qual identificada por uma sigla (por exemplo,
“GLO”) e tendo um nome (por exemplo, “Gol“). Cada companhia possui vários vôos.
Um vôo é identificado por uma sigla (por exemplo, “GLO0982“) que inclui a sigla da
companhia responsável. Cada vôo sai de um aeroporto e tem como destino outro
aeroporto. Os aeroportos são igualmente identificados por uma sigla (por exemplo
“CNF”) e têm um nome (por exemplo “Belo Horizonte”). Cada vôo tem um horário de
saída e um horário de chegada. Há alguns vôos compartilhados. Um vôo
compartilhado é um vôo de uma companhia, mas que usa, na realidade, um vôo
de outra companhia. Por exemplo, o vôo “JJ4598” da TAM não existe fisicamente,
mas utiliza o vôo “RG2324“ da Varig. Para vôos compartilhados é necessário
conhecer o vôo que eles usam.
DCC011 - 2009/1 - profa. Mirella 86
Companhia (SiglaCia, NomeCia)
Voo(SiglaCia, NoVoo,
SiglaAeroSaida, SiglaAeroDestino,
HoraSaida, HoraChegada)
SiglaAeroSaida referencia Aeroporto
SiglaAeroDestino referencia Aeroporto
SiglaCia referencia Companhia
Aeroporto(SiglaAero, NomeAero)
VooCompart(SiglaCiaCompart, NoVooCompart,
SiglaCia, NoVoo)
(SiglaCia, NoVoo) referencia Voo
Cia
Aeroporto Vôo
VooCompart
3. Artigos Publicados
A SBC deseja manter uma base de dados com artigos publicados pelos
pesquisadores brasileiros. Para cada pesquisador, é necessário conhecer
seu nome e a instituição a qual ele está vinculado. O pesquisador é
identificado pelo seu CIC. Cada instituição tem um código que a identifica
e um nome. Adicionalmente, é necessário conhecer os artigos publicados
por cada autor. Para cada artigo, é necessário saber seu título, o veículo
de publicação e a página inicial e final em que aparece o artigo dentro do
veículo. Veículos de publicação são, por exemplo, periódicos
especializados ou anais de congressos. Para cada veículo de publicação, é
necessário conhecer seu título e local em que foi publicado. Tanto veículos
de publicação, quanto artigos têm um código numérico que os identifica.
DCC011 - 2009/1 - profa. Mirella 87
Instituicao (CodInst, NomeInst)
Pesquisador (CIC, NomePesq, CodInst)
CodInst referencia Instituicao
Artigo(CodArt, TituloArt, PagInic, PagFim, CodVeic)
CodVeiculo referencia Veiculo
Veiculo(CodVeic, TituloVeic, LocalVeic)
ArtigoPesquisador (CodPesqu, CodArt)
CIC referencia Pesquisador
CodArt referencia Artigo
Instituição
Pesquisador
ArtigoPesquis
Veículo Artigo
Exercício 1
A figura a seguir apresenta uma entidade e respectivos
atributos, muitos deles opcionais e um multivalorado.
Considere que há dois tipos de clientes, pessoas físicas
e pessoas jurídicas. Pessoas físicas possuem código,
CIC, nome, sexo (opcional), data de nascimento
(opcional) e telefones (opcionais). Pessoas jurídicas
possuem código, CGC, razão social e telefones
(opcionais). Apresente um diagrama ER que modele
DCC011 - 2009/1 - profa. Mirella 88
mais precisamente esta realidade.
CLIENTE
nome
código
dataNasc
telefone
CIC
CGC
razãoSocial
sexo
Exercício 1
A figura a seguir apresenta uma entidade e respectivos atributos,
muitos deles opcionais e um multivalorado. Considere que há dois
tipos de clientes, pessoas físicas e pessoas jurídicas. Pessoas físicas
possuem código, CIC, nome, sexo (opcional), data de nascimento
(opcional) e telefones (opcionais). Pessoas jurídicas possuem
código, CGC, razão social e telefones (opcionais). Apresente um
diagrama ER que modele mais precisamente esta realidade.
código
DCC011 - 2009/1 - profa. Mirella 89
CLIENTE
sexo
dataNasc
numero
CGC
CGC
razãoSocial
TELEFONE
PJURÍDICA PFÍSICA
nome
Exercício 2
Construa um diagrama ER (entidades,
relacionamentos e cardinalidades) para a
administradora de imóveis:
A administradora trabalha tanto com administração
de condomínios quanto com a administração de
aluguéis
DCC011 - 2009/1 - profa. Mirella 90
A empresa administra condomínios formados por
unidades condominiais
Cada unidade condominial é de propriedade de uma
ou mais pessoas. Uma pessoa pode possuir diversas
unidades.
Cada unidade pode estar alugada para no máximmo
uma pessoa. Uma pessoa pode alugar diversas
unidades
Exercício 2
Condomínio
composto
1
n
DCC011 - 2009/1 - profa. Mirella 91
Unidade
Pessoa
propriedade aluguel
n n
n 1
Exercício 3
O diagrama a seguir envolve clientes e contas. Clientes
podem ter várias contas e contas podem ser conjuntas
de vários clientes. Nós associamos cada cliente com um
conjunto de contas, e contas são membros de um ou
mais conjuntos. Critique o seguinte modelo. Que
modificações podem ser realizadas?
Endereço nome
DCC011 - 2009/1 - profa. Mirella 92
CjtoContas
Pcpal
numero balanço
Cliente
Conta Endereço
endereço
1, 1 1, 1
1, 1
1, 1 1, n
1, n
Exercício 3
CjtoContas
Endereço
Pcpal
nome
numero balanço
Cliente
Conta Endereço
endereço
1, 1 1, 1
1, 1
1, 1 1, n
1, n
DCC011 - 2009/1 - profa. Mirella 93
Endereço é apenas um simples endereço, poderia ser
um atributo de Cliente. Se o banco guardasse vários
endereços para o cliente, daí poderia ser entidade,
mas a cardinalidade não seria 1.
A entidade CjtoContas é desnecessária. Cada cliente
tem um único conjunto com as suas Contas. Conectar
direto Cliente-Conta faz mais sentido, apenas é
necessário mudar a cardinalidade para 1-N
Exercício 4
Para o seguinte esquema relacional
parcial, identifique as chaves primárias e
estrangeiras
Aluno (codAluno, nome, curso)
DCC011 - 2009/1 - profa. Mirella 94
Curso (codCurso, nome)
Disciplina (codDisc, nome, creditos, depto)
Curriculo (curso, disc, obrigatória-opcional)
Conceito (aluno, disc, ano-semestre,
conceito)
Departamento (codDepto, nome)
Exercício 4
Aluno (codAluno, nome, curso)
curso referencia Curso
Curso (codCurso, nome)
Disciplina (codDisc, nome, creditos, depto)
depto referencia Departamento
DCC011 - 2009/1 - profa. Mirella 95
Curriculo (curso, disc, obrigatória-opcional)
curso referencia Curso
disc referencia Disciplina
Conceito (aluno, disc, ano-semestre, conceito)
aluno referencia Aluno
disc referencia Disciplina
Departamento (codDepto, nome)
Exercício 5
Uma imobiliária deseja montar uma base de dados contendo os dados de
imóveis que tem para vender ou que já vendeu. Na base de dados somente
estarão armazenados dados de apartamentos residenciais em edifícios.
Cada edifício é identificado por um código de 5 dígitos e é necessário saber
seu nome, seu endereço, o bairro em que está localizado e o ano de
construção, bem como os apartamentos que estão a venda ou já foram
vendidos.
Para cada apartamento, além de saber se ele já foi ou não vendido, é
necessário conhecer seu preço, sua área total, sua área real, bem como o
seu número identificador dentro do prédio.
Para cada apartamento é necessário conhecer os quartos que o compõe.
DCC011 - 2009/1 - profa. Mirella 96
Cada quarto tem um número que o identifica dentro do apartamento, tem
uma descrição (como "sala"ou "cozinha") e é necessário conhecer sua área.
Alguns apartamentos estão relacionados a uma ou mais vagas de
estacionamento. Uma vaga tem um número que a identifica dentro do
prédio (atenção, não é um número que identifica a vaga dentro do
apartamento). Para cada vaga é necessário saber sua área, quantos
veículos nela cabem e o seu tipo (se é coberta ou não).
Projete uma base de dados relacional que armazena os dados acima sem
redundância de dados. Enumere as tabelas, suas colunas, as chaves
primárias e a as chaves estrangeiras. Não devem ser criadas colunas
artificiais, além das apresentadas no enunciado. Apresente o esquema na
notação textual vista em aula.
Exercício 5
Edificio (CodEd, NomeEd, EnderecoEd, BairroEd,
AnoConstrEd)
Apartamento (CodEd, NumeroAp, VendidoAp,
PrecoAp, AreaTotalAp, AreaRealAp)
(CodEd) referencia Edificio
Quarto (CodEd, NumeroAp, NumeroQuarto,
DCC011 - 2009/1 - profa. Mirella 97
DescricaoQuarto, AreaQuarto)
(CodEd, NumeroAp) referencia Apartamento
VagaEst (CodEd, NoVaga, NoAp, AreaVaga,
NoCarrosVaga, CobertaVaga)
(CodEd, NumeroAp) referencia Apartamento
...