Sei sulla pagina 1di 17

DCC011

Introduo a Banco de Dados -08 Introduo a Banco de Dados -08


Mirella M. Moro
Departamento de Cincia da Computao
Universidade Federal de Minas Gerais
mirella@dcc.ufmg.br
2009/1
Avaliao
Provas
60 pontos
Trabalhos Prticos
30 pontos
Exerccios e Participao
DCC011 - 2009/1 - profa. Mirella 2
Exerccios e Participao
10 pontos
www.dcc.ufmg.br/~mirella/DCC011
Programa
Introduo
Conceitos bsicos, caractersticas da abordagem de banco de
dados, modelos de dados, esquemas e instncias, arquitetura
de um sistema de banco de dados, componentes de um sistema
de gerncia de banco de dados.
Modelos de dados e linguagens
REVISO PARA PROVA 1
DCC011 - 2009/1 - profa. Mirella 3
Modelos de dados e linguagens
Modelo entidade-relacionamento (ER), modelo relacional,
lgebra relacional, SQL.
Projeto de bancos de dados
Fases do projeto de bancos de dados, projeto lgico de bancos
de dados relacionais, normalizao.
Novas Tecnologias e Aplicaes de Banco de Dados
Conceitos Bsicos
Definio de Banco de Dados
[Elmasri & Navathe, 2000]
Um banco de dados uma coleo de
dados relacionados
Representando algum aspecto do mundo real
DCC011 - 2009/1 - profa. Mirella 5
Representando algum aspecto do mundo real
(mini-mundo ou universo de discurso)
Logicamente coerente, com algum significado
Projetado, construdo e gerado (povoado)
para uma aplicao especfica
Sist. de Gerncia de Banco de Dados
Um sistema de gerncia 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
BD + SGBD = sistema de banco de dados
Projeto de Banco de Dados
Viso
Externa1
Viso
Externa2
Modelo Conceitual
requisitos requisitos
DCC011 - 2009/1 - profa. Mirella 7
Modelo Lgico
Modelo Fsico
Esquema
Conceitual
Esquema
Lgico
Esquema
Fsico
INDEPENDENTE
de SGBD
DEPENDENTE
de SGBD
Mini-Mundo
Anlise de
Requisitos
Requisitos do BD
Projeto Conceitual
Esquema Conceitual
Requisitos Funcionais
Anlise Funcional
Especificao das Transaes
Projeto de Bancos de Dados
DCC011 - 2009/1 - profa. Mirella 8
Esquema Conceitual
(em um modelo de dados de alto nvel)
Projeto Lgico
Esquema Lgico
(em um modelo de dados lgico)
Projeto Fsico
Esquema Fsico
(para um SGBD especfico)
Especificao das Transaes
(em alto nvel)
Projeto das Aplicaes
Implementao
Programas
Independente de SGBD
Especfico para um SGBD
Conceitos e Arquitetura do SBD
1.Modelos de Dados, Esquemas e Instncias
2.Categorias de Modelos de Dados
3.Arquitetura de Trs Esquemas e Independncia de
Dados
1. Modelo de Dados, Esquema e
Instncia
Modelo
DCC011 - 2009/1 - profa. Mirella 10
Modelo
de Dados Esquema
Instncia
Regras para
estruturao
dos dados
Regras para
verificao
das instncias
Modelo de Dados, Esquema e
Instncia
Modelo de dados: Conjunto de conceitos
descrevem a estrutura de um BD
Abstrao de dados
Estrutura = tipos de dados + relacionamentos +
restries (+operaes recuperao e atualizao)
DCC011 - 2009/1 - profa. Mirella 11
restries (+operaes recuperao e atualizao)
Esquema: Descrio (textual ou grfica) da
estrutura de um BD de acordo com um
determinado modelo de dados
Instncia: 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 prxima da percepo dos usurios
Independente de aspectos de implementao
DCC011 - 2009/1 - profa. Mirella 12
Independente de aspectos de implementao
Conceitos: entidades, atributos,
relacionamentos
Exemplos:
Modelo entidade-relacionamento (ER)
Modelo funcional
Modelo orientado a objetos (OO)
Categorias de Modelo de Dados
MODELOS REPRESENTACIONAIS (lgicos)
Descrevem a estrutura de um BD da forma
como ser manipulado atravs de SGBD
Mais dependente das estruturas fsicas de
armazenamento de dados
DCC011 - 2009/1 - profa. Mirella 13
armazenamento de dados
Exemplos:
Modelo relacional
Modelo de rede (CODASYL)
Modelo hierrquico
Categorias de Modelo de Dados
MODELOS FSICOS
Descrevem como os dados so fisicamente
armazenados
Conceitos: formatos dos registros,
DCC011 - 2009/1 - profa. Mirella 14
Conceitos: formatos dos registros,
ordenamento dos registros, caminhos de
acesso (eficincia)
3. Arquitetura de um Sistema de BD
Caractersticas do enfoque de BD
Isolamento de programas e dados
Suporte de vises mltiplas de usurios
Catlogo para armazenar a descrio
DCC011 - 2009/1 - profa. Mirella 15
Catlogo para armazenar a descrio
(esquema) do BD
Arquitetura de trs nveis
Mantm independncia de dados e programas
Suporta mltiplas vises
Arquitetura de um Sistema de BD
Componentes
1. Esquema interno
Descreve armazenamento fsico
2. Esquema conceitual
DCC011 - 2009/1 - profa. Mirella 16
2. Esquema conceitual
Descreve entidades, tipos de dados,
relacionamentos, operaes e restries
Esconde detalhes de armazenamento
3. Esquemas externos (vises)
Descreve pores 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
Matricula (eid:string, cid:string, nota:string)
Esquema Fsico
Relaes guardadas como arquivos desordenados
ndices na primeira colunas de estudantes
Esquema externo (Viso):
Info_Curso(cid:string, horrio: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
NOME CHARACTER (30)
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 nvel
Altera
Viso Externa
Esquema Conceitual
DCC011 - 2009/1 - profa. Mirella 20
Altera
nvel vizinho
Dependncia de Dados
Independncia de Dados
Esquema Fsico
Independncia de Dados
Capacidade de se alterar o esquema em
um determinado nvel sem alterar o
esquema (ou esquemas) do nvel
imediatamente mais alto
DCC011 - 2009/1 - profa. Mirella 21
imediatamente mais alto
VANTAGEM:
Imunidade dos programas em relao a
mudanas na estrutura do banco de dados
Um dos maiores benefcios de usar SGBD
Independncia de Dados
Independncia de dados lgica
Capacidade de alterar o esquema conceitual sem
alterar esquema externo ou aplicaes
Ex. Expanso ou reduo
DCC011 - 2009/1 - profa. Mirella 22
Ex. Expanso ou reduo
Independncia de dados fsica
Capacidade de mudar o esquema interno sem
mudar o esquema conceitual (ou externo)
Ex. Reorganizao de arquivos para melhorar
desempenho
Modelo Entidade-Relacionamento
1. Entidades, atributos
2. Relacionamentos
3. Restries sobre relacionamentos
4. Papis e relacionamentos recursivos
5. Entidade fraca
6. Generalizao e especializao
7. Restries sobre Hierarquias de
Especializao/Generalizao
Processo de Projeto de
Bancos de Dados
Requisitos de Dados
Independente
Esquema Conceitual
Modelo de dados de alto nvel
DCC011 - 2009/1 - profa. Mirella 24
Independente
de SGBD
1. Entidades, atributos
Entidades
Objetos do mundo real que so de interesse
para alguma aplicao
Atributos
Propriedades para descrever uma entidade
DCC011 - 2009/1 - profa. Mirella 25
Propriedades para descrever uma entidade
Tipos de Atributos
Simples ou compostos
Ex. Endereo
Monovalorados ou multivalorados
Ex. Profisso
Armazenados ou derivados
Endereo
End_Rua Cidade Estado CEP
Rua Nro Apto
DCC011 - 2009/1 - profa. Mirella 26
Armazenados ou derivados
Data de Nascimento Idade,
Empregados trabalhando no departamento
NumeroDeEmpregados
Valores Null
No aplicvel: Nmero do apartamento
Desconhecido: Telefone de casa
Tipos de Entidade
Tipo de entidade
Define um conjunto de entidades que tm
os mesmos atributos (propriedades)
Descreve o esquema para um conjunto de
DCC011 - 2009/1 - profa. Mirella 27
Descreve o esquema para um conjunto de
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
instncias dos dados
Chave e Domnio
Chave de um tipo de entidade
Atributo que possui valor nico para cada entidade
(instncia)
Ex. Nome da companhia, identidade do empregado
Chave pode ser formada por vrios atributos: chave
composta
DCC011 - 2009/1 - profa. Mirella 29
Chave pode ser formada por vrios atributos: chave
composta
Registro do Veiculo: Numero de Registro e Estado
Domnio de um atributo
Conjunto de valores que podem ser atribudos 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
Associaes entre duas ou mais entidades
distintas (instncias) com um significado
Exemplo:
Empregado John Smith trabalha para
DCC011 - 2009/1 - profa. Mirella 32
Empregado John Smith trabalha para
Departamento pesquisa
Empregado Fred Brown gerencia
Departamento pesquisa
Departamento pesquisa controla Projeto X
Tipo de Relacionamento
Define um conjunto de associaes entre
n tipos de entidade E
1
, E
2
, ..., E
n
Exemplo:
Trabalha_para entre Empregado e
DCC011 - 2009/1 - profa. Mirella 33
Trabalha_para entre Empregado e
Departamento
Empregado
trabalha
para
Departmento
DCC011 - 2009/1 - profa. Mirella 34
Figura 3.9 Algumas instncias 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 instncias de relacionamento do conjunto de
relacionamento ternrio FORNECE.
3. Restries sobre relacionamentos
Limitam as possveis combinaes de entidades que
podem participar no conjunto de relacionamentos
Cardinalidade: nmero de instncias de um tipo de
relacionamento do qual uma entidade pode participar
Participao: se a existncia de uma entidade depende
DCC011 - 2009/1 - profa. Mirella 36
Participao: se a existncia de uma entidade depende
de seu relacionamento com outra entidade atravs 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 + Participao Restries 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. Papis e Relacionamentos
Recursivos
Entidades atuam com um determinado papel
Significado do papel dado por um nome,
atribudo a cada tipo de entidade
Nomes s so necessrios em tipos de
DCC011 - 2009/1 - profa. Mirella 40
Nomes s so necessrios em tipos de
relacionamento que envolvam mais de uma vez
o mesmo tipo de entidade relacionamentos
recursivos
Exemplo: Superviso, onde Empregado tem os
papis 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 no tm chave
prpria
As instncias so identificadas atravs do
relacionamento com entidades de outro
DCC011 - 2009/1 - profa. Mirella 42
relacionamento com entidades de outro
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. Especializao e Generalizao
Especializao:
Processo de definio de um conjunto de sub-classes
(sub-tipos) de um tipo de entidade
Generalizao:
DCC011 - 2009/1 - profa. Mirella 44
Processo de definio de um tipo de entidade
genrico (super-classe ou super-tipo) a partir de um
conjunto de tipos de entidade
Exemplo: {secretria, engenheiro, tcnico}
uma especializao de Empregado; ou
Empregado uma generalizao de {secretria,
engenheiro, tcnico}
Especializao e Generalizao
Toda instncia de uma sub-classe (ou sub-tipo)
tambm instncia de sua super-classe (ou
super-tipo)
Ex.: John Smith um engenheiro e tambm um
empregado
DCC011 - 2009/1 - profa. Mirella 45
empregado
Herana 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 Notao de diagrama EER para representar as subclasses
e a especializao.
DCC011 - 2009/1 - profa. Mirella 47
Figura 4.2 Instncias de uma especializao.
Especializao
O processo de especializao permite:
Definir um conjunto de sub-classes (sub-
tipos) de um tipo de entidade
Estabelecer atributos especficos adicionais
DCC011 - 2009/1 - profa. Mirella 48
Estabelecer atributos especficos adicionais
para cada sub-classe (sub-tipo)
Estabelecer tipos de relacionamentos
especificos adicionais entre cada sub-
classe (sub-tipo) e outros tipos de
entidades ou outras sub-classes (sub-
tipos).
DCC011 - 2009/1 - profa. Mirella 49
Figura 4.3 Generalizao. (a) Dois tipos de entidade, CARRO e CAMINHAO.
(b) Generalizando CARRO e CAMINHAO na superclasse VEICULO.
7. Restries sobre Hierarquias de
Especializao/Generalizao
Definida por atributo ou usurio
Disjuo:
Sub-classes podem ser disjuntas ou sobrepostas
Completude:
A cobertura da super-classe em relao s sub-
DCC011 - 2009/1 - profa. Mirella 50
A cobertura da super-classe em relao s sub-
classes pode ser total ou parcial
Restries possveis:
Disjunta/Total
Disjunta/Parcial
Sobreposta/Total
Sobreposta/Parcial
d = disjuno
Um Empregado
-Secretria OU
-Tcnico OU
-Engenheiro
DCC011 - 2009/1 - profa. Mirella 51
Figura 4.4 Notao do diagrama EER para uma especializao definida
por atributo em TipoTrabalho.
o = sobreposio
Uma pea
-fabricada E/OU
-fornecida
DCC011 - 2009/1 - profa. Mirella 52
Figura 4.5 Notao de diagrama EER para uma especializao sobreposta
(no disjunta).
TOTAL
TODO Empregado
Assalariado OU
Horista
DCC011 - 2009/1 - profa. Mirella 53
Figura 4.1 Notao de diagrama EER para representar as subclasses
e a especializao.
Restries sobre Hierarquias de
Especializao/Generalizao
Hierarquia
Toda sub-classe participa como uma sub-
classe em apenas um relacionamento
classe/sub-classe
DCC011 - 2009/1 - profa. Mirella 54
classe/sub-classe
Reticulado
lattice, herana mltipla, grade de
especializao
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 especializao, com a subclasse
GERENTE_ENGENHARIA compartilhada.
Figura 4.7 Um reticulado de especializao,
com herana mltipla, para um banco de
dados UNIVERSIDADE.
DCC011 - 2009/1 - profa. Mirella 56
DCC011 - 2009/1 - profa. Mirella 57
Figura 4.7 Um reticulado de
especializao, com herana
mltipla, para um banco de
dados UNIVERSIDADE.
IMPORTANTE
Modelo Conceitual
CONCEITOS, ABSTRAES
ENTIDADE, ATRIBUTO, RELACIONAMENTO
Piloto, equipe, pas, circuito, corrida
Piloto representa Pas
DCC011 - 2009/1 - profa. Mirella 58
Piloto representa Pas
Equipe sede em Pas
SE pas uma entidade; Piloto e equipe possuem atributo Pas?
Mas a especificao diz!!!! ????
N modelos conceituais para um cenrio
Modelo tem APENAS o que est na especificao
Restries, excees, peculiaridades, viagem na maionese:
OUTRO MODELO
Pecar por excesso x Pecar por falta
Modelo Relacional
(3
rd
ed: 7.1-7.2; 5
th
ed: 5.1-5.2)
1. Introduo
2. Conceitos do Modelo Relacional
3. Restries de Integridade Bsicas
4. Esquema do BD Relacional
5. Restries de Integridade do Esquema
6. Operaes sobre Relaes
7. Violaes de Restries
Requisitos de Dados
Independente
Esquema Conceitual
Modelo de dados de alto nvel
Processo de Projeto de
Bancos de Dados
DCC011 - 2009/1 - profa. Mirella 60
Independente
de SGBD
SGBD
Especfico
Esquema Lgico (Conceitual)
em um modelo de dados
de um SGBD especfico
1. Introduo
O modelo relacional representa um banco de
dados como um conjunto de relaes
Informalmente
uma relao = uma tabela de valores
DCC011 - 2009/1 - profa. Mirella 61
uma relao = uma tabela de valores
cada linha representa uma coleo 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 relao (tabela) = tuplas
Cabealho de cada coluna = atributo
Conjunto de valores que pode aparecer em cada coluna
= domnio
DCC011 - 2009/1 - profa. Mirella 62
Figura 7.1 Os atributos e as tuplas de uma relao ALUNO.
As tuplas de uma relao no so ordenadas (entre elas)
Caractersticas de uma Relao
DCC011 - 2009/1 - profa. Mirella 63
Registros em um arquivo so ordenados de acordo com a
posio em que so armazenados no disco
Figura 7.2 A relao ALUNO da Figura 7.1 com uma ordenao diferente das tuplas.
Uma tupla uma lista ordenada de valores
O valor de cada atributo em uma tupla
atmico
Atributos compostos e multivalorados no so
permitidos
Caractersticas de uma Relao
DCC011 - 2009/1 - profa. Mirella 64
permitidos
O valor especial null utilizado para representar
valores no conhecidos ou no aplicveis a uma
determinada tupla
Um esquema de relao pode ser visto como
uma declarao ou assero
Esquema de relao = Predicado
Valores em cada tupla satisfazem o predicado
3. Restries de Integridade Bsicas
Restries de domnio
Especificam que o valor de cada atributo A
de uma relao deve ser um valor atmico
do domnio dom(A)
DCC011 - 2009/1 - profa. Mirella 65
do domnio dom(A)
Restries de Integridade
Restries de chave
Um esquema de relao pode ter mais de uma chave
chaves candidatas
Dentre as chaves candidatas de um esquema de relao,
uma delas indicada como chave primria e as demais
DCC011 - 2009/1 - profa. Mirella 66
uma delas indicada como chave primria e as demais
constituem as chaves alternativas
Figura 7.4 A relao CARRO com duas chaves candidatas: NumeroLicenca e NumeroChassi.
Restries de Integridade
Restries em valores null
Especifica se a um atributo permitido ter valores
null
Exemplo: todo Aluno deve ter um nome vlido,
DCC011 - 2009/1 - profa. Mirella 67
Exemplo: todo Aluno deve ter um nome vlido,
no-null
4. Esquema de um BD Relacional
Um esquema de BD relacional S define:
um conjunto de esquemas de relao
R = {R
1
, R
2
, ..., R
n
}, e
um conjunto de restries de integridade I
DCC011 - 2009/1 - profa. Mirella 68
um conjunto de restries de integridade I
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. Restries de Integridade do Esquema
Outras restries alm das restries de
domnio e de chave
Restrio de integridade de entidade
DCC011 - 2009/1 - profa. Mirella 70
Restrio de integridade de entidade
Nenhum componente de uma chave
primria pode ser nulo
Restries de Integridade
Restrio de integridade referencial
Usada para manter a consistncia entre
tuplas de duas relaes
Uma tupla em uma relao que se refere
DCC011 - 2009/1 - profa. Mirella 71
Uma tupla em uma relao que se refere
a outra relao deve referenciar uma
tupla existente nesta outra relao
Aparecem devido aos relacionamentos
entre entidades
Restries de Integridade
Restrio de integridade referencial
Seja FK um conjunto de atributos de um
esquema de relao R
1
definido sobre o
mesmo domnio dos atributos da chave
DCC011 - 2009/1 - profa. Mirella 72
mesmo domnio dos atributos da chave
primria PK de outro esquema R
2
. Ento,
para qualquer tupla t
1
de R
1
:
t
1
[FK] = t
2
[PK], onde t
2
uma tupla de R
2
ou
t
1
[FK] nulo
DCC011 - 2009/1 - profa. Mirella 73
Figura 7.7 Restries de integridade referencial exibidas no esquema de
um banco de dados relacional EMPRESA.
Notao
NomeTabelaPrincipal
Chave Atributo
1
Atributo
n
DCC011 - 2009/1 - profa. Mirella 74
NomeTabelaReferenciada
Chave Atributo
1
Atributo
n
A restrio de integridade referencial pode ser
expressa pela notao
R
1
[FK] R
2
[PK],
onde PK a chave primria de R
2
e FK a chave
Restries de Integridade
DCC011 - 2009/1 - profa. Mirella 75
onde PK a chave primria de R
2
e FK a chave
estrangeira de R
1
Exemplos:
EMPLOYEE[DNO] DEPARTMENT[DNUMBER]
WORKS_ON[ESSN] EMPLOYEE[SSN]
WORKS_ON[PNO] PROJECT[PNUMBER]
6. Operaes sobre Relaes
As operaes sobre um BD relacional podem ser
classificadas em:
Operaes de recuperao (consulta)
Operaes de atualizao
DCC011 - 2009/1 - profa. Mirella 76
Operaes de atualizao (sobre tuplas):
Insero (insert)
Remoo (delete)
Modificao (update)
Operaes sobre Relaes
Insero (insert)
Adiciona uma nova tupla (ou vrias) em uma
relao
Remoo (delete)
DCC011 - 2009/1 - profa. Mirella 77
Remoo (delete)
Remove uma tupla da relao
Modificao (update)
Altera os dados de uma tupla
Em qualquer operao, a integridade da
base de dados relacional deve ser mantida
7. Violao de Restries
Restries de integridade no podem ser
violadas!!!
Insero
Restrio de Domnio: valor fora do domnio
DCC011 - 2009/1 - profa. Mirella 78
Restrio de Domnio: valor fora do domnio
Restrio de Chave: valor j existe
Restrio de integridade de entidade: se chave
for null
Restrio de integridade referencial: se chave
estrangeira referencia tupla inexistente
Ao default: rejeitar insero (com explicao)
Exemplos
Empregado
Nome IM Sobrenome CPF DataNasc Endereo Salrio Supervisor Depto
Departamento
NomeD NumeroDep CPFGer DataInicioGer
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
6347 Whatever, 28000, nulo, 4> em Empregado
Violao de Restries
Remoo
Tupla excluda referenciada por chaves
estrangeiras
Ao default: bloqueia/rejeitar a remoo
(com explicao)
DCC011 - 2009/1 - profa. Mirella 80
(com explicao)
OUTRAS OPES????
Propagar remoo de tuplas que violem uma restrio
de integridade referencial Efeito cascata
Modificar o valor da chave estrangeira para nulo
Violao de Restries
Modificao
Modificar o valor de um atributo que no
chave primria ou estrangeira no causa
problemas (se o valor for do domnio, e, se for
null, que este valor seja permitido)
DCC011 - 2009/1 - profa. Mirella 81
null, que este valor seja permitido)
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
Opes de Remoo da RIR
A cada RIR R
1
[FK] R
2
[PK] possvel associar uma
opo de remoo que especifica como a remoo
de uma tupla de R
2
executada em relao a R
1
As opes de remoo possveis so:
DCC011 - 2009/1 - profa. Mirella 82
bloqueio
propagao
substituio por nulos
Notao:
R
1
[FK] R
2
[PK],
onde op {b, p, n}
op
DCC011 - 2009/1 - profa. Mirella 83
EXERCCIO: adicionar as opes de remoo s chaves estrang.
bloqueio
propagao
substituio
por nulos
n nn n
p pp p
p pp p
b bb b b bb b
b bb b
b bb b
DCC011 - 2009/1 - profa. Mirella 84
Restries de integridade referencial com opes de remoo
p pp p
b bb b
bloqueio
propagao
substituio
por nulos
1. Formula 1
Deseja-se projetar uma base de dados que mantenha resultados de
corridas de Frmula 1. A base de dados deve manter informaes
sobre as equipes (cdigo, nome e pas), bem como sobre os
pilotos que pertencem a cada equipe (equipe a que pertence,
cdigo, nome e pas). Os pases so identificados por uma sigla e
a base de dados deve conter o nome de cada pas. Tambm
necessrio armazenar dados sobre os circuitos (cdigo, nome e
pas). Para cada corrida realizada no circuito, necessrio saber a
data em que ocorreu, a durao em minutos e a posio que cada
piloto obteve na corrida.
DCC011 - 2009/1 - profa. Mirella 85
piloto obteve na corrida.
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
Pas Equipe
Piloto
Circuito Corrida
PosPilotoCorrida
2. Agncia Viagens
Uma agncia de viagens resolveu montar uma base de dados com informaes
sobre vos das companhias de aviao das quais vende bilhetes. A agncia atende
vrias companhias de aviao, cada qual identificada por uma sigla (por exemplo,
GLO) e tendo um nome (por exemplo, Gol). Cada companhia possui vrios vos.
Um vo identificado por uma sigla (por exemplo, GLO0982) que inclui a sigla da
companhia responsvel. Cada vo sai de um aeroporto e tem como destino outro
aeroporto. Os aeroportos so igualmente identificados por uma sigla (por exemplo
CNF) e tm um nome (por exemplo Belo Horizonte). Cada vo tem um horrio de
sada e um horrio de chegada. H alguns vos compartilhados. Um vo
compartilhado um vo de uma companhia, mas que usa, na realidade, um vo
de outra companhia. Por exemplo, o vo JJ4598 da TAM no existe fisicamente,
mas utiliza o vo RG2324 da Varig. Para vos compartilhados necessrio
conhecer o vo que eles usam.
DCC011 - 2009/1 - profa. Mirella 86
mas utiliza o vo RG2324 da Varig. Para vos compartilhados necessrio
conhecer o vo que eles usam.
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
Vo Aeroporto
VooCompart
3. Artigos Publicados
A SBC deseja manter uma base de dados com artigos publicados pelos
pesquisadores brasileiros. Para cada pesquisador, necessrio conhecer
seu nome e a instituio a qual ele est vinculado. O pesquisador
identificado pelo seu CIC. Cada instituio tem um cdigo que a identifica
e um nome. Adicionalmente, necessrio conhecer os artigos publicados
por cada autor. Para cada artigo, necessrio saber seu ttulo, o veculo
de publicao e a pgina inicial e final em que aparece o artigo dentro do
veculo. Veculos de publicao so, por exemplo, peridicos
especializados ou anais de congressos. Para cada veculo de publicao,
necessrio conhecer seu ttulo e local em que foi publicado. Tanto veculos
de publicao, quanto artigos tm um cdigo numrico que os identifica.
DCC011 - 2009/1 - profa. Mirella 87
de publicao, quanto artigos tm um cdigo numrico que os identifica.
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
Instituio
Pesquisador
ArtigoPesquis
Artigo Veculo
Exerccio 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 fsicas
e pessoas jurdicas. Pessoas fsicas possuem cdigo,
CIC, nome, sexo (opcional), data de nascimento
(opcional) e telefones (opcionais). Pessoas jurdicas
possuem cdigo, CGC, razo social e telefones
(opcionais). Apresente um diagrama ER que modele
DCC011 - 2009/1 - profa. Mirella 88
(opcionais). Apresente um diagrama ER que modele
mais precisamente esta realidade.
CLIENTE
nome
cdigo
dataNasc
telefone
CIC
CGC
razoSocial
sexo
Exerccio 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 fsicas e pessoas jurdicas. Pessoas fsicas
possuem cdigo, CIC, nome, sexo (opcional), data de nascimento
(opcional) e telefones (opcionais). Pessoas jurdicas possuem
cdigo, CGC, razo social e telefones (opcionais). Apresente um
diagrama ER que modele mais precisamente esta realidade.
cdigo
DCC011 - 2009/1 - profa. Mirella 89
CLIENTE
sexo
dataNasc
numero
CGC
CGC
razoSocial
TELEFONE
PJURDICA PFSICA
nome
Exerccio 2
Construa um diagrama ER (entidades,
relacionamentos e cardinalidades) para a
administradora de imveis:
A administradora trabalha tanto com administrao
de condomnios quanto com a administrao de
aluguis
DCC011 - 2009/1 - profa. Mirella 90
aluguis
A empresa administra condomnios 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 mximmo
uma pessoa. Uma pessoa pode alugar diversas
unidades
Exerccio 2
Condomnio
composto
1
n
DCC011 - 2009/1 - profa. Mirella 91
Unidade
Pessoa
propriedade aluguel
n n
n 1
Exerccio 3
O diagrama a seguir envolve clientes e contas. Clientes
podem ter vrias contas e contas podem ser conjuntas
de vrios clientes. Ns associamos cada cliente com um
conjunto de contas, e contas so membros de um ou
mais conjuntos. Critique o seguinte modelo. Que
modificaes podem ser realizadas?
Endereo nome
DCC011 - 2009/1 - profa. Mirella 92
CjtoContas
Pcpal
nome
numero balano
Cliente
Conta Endereo
endereo
1, 1 1, 1
1, 1
1, n 1, 1
1, n
Exerccio 3
CjtoContas
Endereo
Pcpal
nome
numero balano
Cliente
Conta Endereo
endereo
1, 1 1, 1
1, 1
1, n 1, 1
1, n
DCC011 - 2009/1 - profa. Mirella 93
Endereo apenas um simples endereo, poderia ser
um atributo de Cliente. Se o banco guardasse vrios
endereos para o cliente, da poderia ser entidade,
mas a cardinalidade no seria 1.
A entidade CjtoContas desnecessria. Cada cliente
tem um nico conjunto com as suas Contas. Conectar
direto Cliente-Conta faz mais sentido, apenas
necessrio mudar a cardinalidade para 1-N
Exerccio 4
Para o seguinte esquema relacional
parcial, identifique as chaves primrias e
estrangeiras
Aluno (codAluno, nome, curso)
DCC011 - 2009/1 - profa. Mirella 94
Aluno (codAluno, nome, curso)
Curso (codCurso, nome)
Disciplina (codDisc, nome, creditos, depto)
Curriculo (curso, disc, obrigatria-opcional)
Conceito (aluno, disc, ano-semestre,
conceito)
Departamento (codDepto, nome)
Exerccio 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
depto referencia Departamento
Curriculo (curso, disc, obrigatria-opcional)
curso referencia Curso
disc referencia Disciplina
Conceito (aluno, disc, ano-semestre, conceito)
aluno referencia Aluno
disc referencia Disciplina
Departamento (codDepto, nome)
Exerccio 5
Uma imobiliria deseja montar uma base de dados contendo os dados de
imveis que tem para vender ou que j vendeu. Na base de dados somente
estaro armazenados dados de apartamentos residenciais em edifcios.
Cada edifcio identificado por um cdigo de 5 dgitos e necessrio saber
seu nome, seu endereo, o bairro em que est localizado e o ano de
construo, bem como os apartamentos que esto a venda ou j foram
vendidos.
Para cada apartamento, alm de saber se ele j foi ou no vendido,
necessrio conhecer seu preo, sua rea total, sua rea real, bem como o
seu nmero identificador dentro do prdio.
Para cada apartamento necessrio conhecer os quartos que o compe.
DCC011 - 2009/1 - profa. Mirella 96
Para cada apartamento necessrio conhecer os quartos que o compe.
Cada quarto tem um nmero que o identifica dentro do apartamento, tem
uma descrio (como "sala"ou "cozinha") e necessrio conhecer sua rea.
Alguns apartamentos esto relacionados a uma ou mais vagas de
estacionamento. Uma vaga tem um nmero que a identifica dentro do
prdio (ateno, no um nmero que identifica a vaga dentro do
apartamento). Para cada vaga necessrio saber sua rea, quantos
veculos nela cabem e o seu tipo (se coberta ou no).
Projete uma base de dados relacional que armazena os dados acima sem
redundncia de dados. Enumere as tabelas, suas colunas, as chaves
primrias e a as chaves estrangeiras. No devem ser criadas colunas
artificiais, alm das apresentadas no enunciado. Apresente o esquema na
notao textual vista em aula.
Exerccio 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
Quarto (CodEd, NumeroAp, NumeroQuarto,
DescricaoQuarto, AreaQuarto)
(CodEd, NumeroAp) referencia Apartamento
VagaEst (CodEd, NoVaga, NoAp, AreaVaga,
NoCarrosVaga, CobertaVaga)
(CodEd, NumeroAp) referencia Apartamento

Potrebbero piacerti anche