Você está na página 1de 17

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

Programa

REVISÃO PARA PROVA 1

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

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

DCC011 - 2009/1 - profa. Mirella

3

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 (mini-mundo ou universo de discurso) Logicamente coerente, com algum significado Projetado, construído e gerado (“povoado”) para uma aplicação específica

DCC011 - 2009/1 - profa. Mirella

5

Avaliação

Provas

60 pontos

E
E

Trabalhos Práticos

30 pontos

P

10 pontos

í

i

ti i

ar

xerc c os e

c paç o

ã

www.dcc.ufmg.br/~mirella/DCC011

DCC011 - 2009/1 - profa. Mirella

Conceitos Básicos

2

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

criar e manter (manipular) um banco de dados BD + SGBD = sistema de banco de

6

Projeto de Banco de Dados Visão Visão Externa1 Externa2 requisitos requisitos Modelo Conceitual Esquema
Projeto de Banco de Dados
Visão
Visão
Externa1
Externa2
requisitos
requisitos
Modelo Conceitual
Esquema
INDEPENDENTE
Conceitual
de SGBD
Modelo Lógico
Esquema
Lógico
Esquema
Físico
Modelo Físico
DEPENDENTE
de SGBD

DCC011 - 2009/1 - profa. Mirella

7

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

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)

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

DCC011 - 2009/1 - profa. Mirella

11

Projeto de Bancos de Dados

Mini-Mundo Análise de Requisitos Requisitos Funcionais Requisitos do BD Análise Funcional Projeto Conceitual
Mini-Mundo
Análise de
Requisitos
Requisitos Funcionais
Requisitos do BD
Análise Funcional
Projeto Conceitual
Especificação das Transações
(em alto nível)
Projeto Lógico
Esquema Lógico
(em um modelo de dados lógico)
Projeto das Aplicações
Projeto Físico
Implementação
Esquema Físico
(para um SGBD específico)
Programas

Esquema Conceitual (em um modelo de dados de alto nível)

Independente de SGBD

Específico para um SGBD

DCC011 - 2009/1 - profa. Mirella

8

1. Modelo de Dados, Esquema e Instância

Modelo de Dados Esquema Instância Regras para Regras para estruturação verificação dos dados das instâncias
Modelo
de Dados
Esquema
Instância
Regras para
Regras para
estruturação
verificação
dos dados
das instâncias

DCC011 - 2009/1 - profa. Mirella

10

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 Conceitos: entidades, atributos, relacionamentos Exemplos:

Modelo entidade-relacionamento (ER) Modelo funcional Modelo orientado a objetos (OO)

DCC011 - 2009/1 - profa. Mirella

12

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 Exemplos:

Modelo relacional Modelo de rede (CODASYL) Modelo hierárquico

DCC011 - 2009/1 - profa. Mirella

13

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 (esquema) do BD

Arquitetura de três níveis

Mantém independência de dados e programas Suporta múltiplas visões

DCC011 - 2009/1 - profa. Mirella

15

Arquitetura de um Sistema de BD

- 2009/1 - profa. Mirella 15 Arquitetura de um Sistema de BD DCC011 - 2009/1 -

DCC011 - 2009/1 - profa. Mirella

17

Categorias de Modelo de Dados

MODELOS FÍSICOS Descrevem como os dados são fisicamente armazenados Conceitos: formatos dos registros, ordenamento dos registros, caminhos de acesso (eficiência)

DCC011 - 2009/1 - profa. Mirella

 

14

Arquitetura de um Sistema de BD

Componentes

 

1.

Esquema interno

 

Descreve armazenamento físico

 

2

E

it

l

.

squema conce ua

 

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

DCC011 - 2009/1 - profa. Mirella

 

16

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)

 

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)

 

DCC011 - 2009/1 - profa. Mirella

 

18

Arquitetura de um Sistema de BD exemplo 2

EXTERNO (Ling. Pascal)

EXTERNO (Ling. Cl)

Funcionario = Record nome: string(30); salario: real; End;

Participante = struct { char[30] Nome; int Departamento;

}

 

CONCEITUAL

 

Empregado

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)

DCC011 - 2009/1 - profa. Mirella

19

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 VANTAGEM:

Imunidade dos programas em relação a mudanças na estrutura do banco de dados Um dos maiores benefícios de usar SGBD

DCC011 - 2009/1 - profa. Mirella

21

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

Visão Externa Esquema Conceitual Esquema Físico
Visão Externa
Esquema Conceitual
Esquema Físico
Altera um nível Altera nível vizinho
Altera
um nível
Altera
nível vizinho

Dependência de Dados Independência de Dados

DCC011 - 2009/1 - profa. Mirella

20

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

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

DCC011 - 2009/1 - profa. Mirella

Requisitos de Dados Esquema Conceitual Modelo de dados de alto nível Independente de SGBD
Requisitos de Dados
Esquema Conceitual
Modelo de dados de alto nível
Independente
de SGBD

Processo de Projeto de Bancos de Dados

DCC011 - 2009/1 - profa. Mirella

22

24

1. Entidades, atributos

Entidades Objetos do mundo real que são de interesse para alguma aplicação Atributos Propriedades para descrever uma entidade

Atributos Propriedades para descrever uma entidade DCC011 - 2009/1 - profa. Mirella 25 Tipos de Entidade

DCC011 - 2009/1 - profa. Mirella

25

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 entidades que compartilham a mesma estrutura Exemplos

Empregado, Empresa

DCC011 - 2009/1 - profa. Mirella

27

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

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

29

Tipos de Atributos

Simples ou compostos

Ex. Endereço

Endereço

de Atributos Simples ou compostos Ex. Endereço Endereço End_Rua Cidade Estado CEP Rua Nro Apto Monovalorados

End_Rua Cidade Estado CEP

Rua Nro Apto
Rua
Nro
Apto

Monovalorados ou multivalorados

Ex. Profissão

Armazenados ou derivados

Data de Nascimento Idade, Empregados trabalhando no departamento NumeroDeEmpregados

Valores Null

Não aplicável: Número do apartamento Desconhecido: Telefone de casa

DCC011 - 2009/1 - profa. Mirella

26

Telefone de casa DCC011 - 2009/1 - profa. Mirella 26 Fig. 3.5 – Duas entidades Empregado

Fig. 3.5 – Duas entidades Empregado e Empresa, e algumas instâncias dos dados

DCC011 - 2009/1 - profa. Mirella

28

instâncias dos dados DCC011 - 2009/1 - profa. Mirella 28 Fig. 3.7 - O tipo entidade

Fig. 3.7 - O tipo entidade CARRO com dois atributos-chave, Registro e IDVeiculo

DCC011 - 2009/1 - profa. Mirella

30

Fig. 3.8 - Projeto inicial dos tipos entidade para o banco de dados EMPRESA. DCC011

Fig. 3.8 - Projeto inicial dos tipos entidade para o banco de dados EMPRESA.

DCC011 - 2009/1 - profa. Mirella

31

Tipo de Relacionamento

Define um conjunto de associações entre

n tipos de entidade E 1 , E 2 , Exemplo: , E n Trabalha_para
n tipos de entidade E 1 , E 2 ,
Exemplo:
,
E n
Trabalha_para entre Empregado e
Departamento
trabalha
Empregado
Departmento
para
DCC011 - 2009/1 - profa. Mirella
33
Departmento para DCC011 - 2009/1 - profa. Mirella 33 Figura 3.10 Algumas instâncias de relacionamento do

Figura 3.10

Algumas instâncias de relacionamento do conjunto de relacionamento ternário FORNECE.

DCC011 - 2009/1 - profa. Mirella

35

2. Relacionamentos

Associações entre duas ou mais entidades distintas (instâncias) com um significado Exemplo:

Empregado John Smith trabalha para Departamento pesquisa Empregado Fred Brown gerencia Departamento pesquisa Departamento pesquisa controla Projeto X

DCC011 - 2009/1 - profa. Mirella

32

controla Projeto X DCC011 - 2009/1 - profa. Mirella 32 Figura 3.9 Algumas instâncias do conjunto

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

34

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 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

36

Figura 3.12 DCC011 - 2009/1 - profa. Mirella Relacionamento GERENCIA 1:1 37 M Esquema conceitual

Figura 3.12

DCC011 - 2009/1 - profa. Mirella

Relacionamento GERENCIA 1:1

37

M Esquema conceitual DCC011 - 2009/1 - profa. Mirella
M
Esquema conceitual
DCC011 - 2009/1 - profa. Mirella

39

M Esquema conceitual DCC011 - 2009/1 - profa. Mirella 39 Figura 3.11 Um relacionamento recursivo SUPERVISAO

Figura 3.11

Um relacionamento recursivo SUPERVISAO entre EMPREGADO, no papel de supervisor (1), e EMPREGADO, no papel de subordinado (2).

DCC011 - 2009/1 - profa. Mirella

41

de subordinado (2). DCC011 - 2009/1 - profa. Mirella 41 Figura 3.13 Relacionamento TRABALHA_EM , M:N

Figura 3.13

Relacionamento TRABALHA_EM, M:N

DCC011 - 2009/1 - profa. Mirella

38

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 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

40

5. Entidade Fraca

Tipos de entidade que não têm chave própria As instâncias são identificadas através do l tipo, chamado de dono ou identificador, juntamente com os valores de alguns atributos (chave parcial) Exemplo: Dependente

i

id d

re ac onamento com ent a es

d

e outro

DCC011 - 2009/1 - profa. Mirella

42

M
M

DCC011 - 2009/1 - profa. Mirella

43

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

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

locais ou especificos (*) DCC011 - 2009/1 - profa. Mirella Figura 4.2 Instâncias de uma especialização.

Figura 4.2

Instâncias de uma especialização.

DCC011 - 2009/1 - profa. Mirella

45

47

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:

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}

DCC011 - 2009/1 - profa. Mirella

44

engenheiro, técnico} DCC011 - 2009/1 - profa. Mirella 44 Figura 4.1 Notação de diagrama EER para

Figura 4.1

Notação de diagrama EER para representar as subclasses e a especialização.

DCC011 - 2009/1 - profa. Mirella

Especialização

O processo de especialização permite:

Definir um conjunto de sub-classes (sub- tipos) de um tipo de entidade Estabelecer atributos es ecíficos 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).

p

DCC011 - 2009/1 - profa. Mirella

46

48

Figura 4.3 Generalização. (a) Dois tipos de entidade, CARRO e CAMINHAO . (b) Generalizando CARRO

Figura 4.3

Generalização. (a) Dois tipos de entidade, CARRO e CAMINHAO. (b) Generalizando CARRO e CAMINHAO na superclasse VEICULO.

DCC011 - 2009/1 - profa. Mirella 49 d = disjunção Um Empregado é -Secretária OU
DCC011 - 2009/1 - profa. Mirella
49
d = disjunção
Um Empregado é
-Secretária OU
-Técnico OU
-Engenheiro
Figura 4.4
Notação do diagrama EER para uma especialização definida
por atributo em TipoTrabalho.
DCC011 - 2009/1 - profa. Mirella
51
TOTAL TODO Empregado é Assalariado OU Horista
TOTAL
TODO Empregado é
Assalariado OU
Horista

Figura 4.1

Notação de diagrama EER para representar as subclasses e a especialização.

DCC011 - 2009/1 - profa. Mirella

53

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- classes pode ser total ou parcial

Restrições possíveis:

Disjunta/Total

Disjunta/Parcial

Sobreposta/Total

Sobreposta/Parcial

DCC011 - 2009/1 - profa. Mirella

50

o = sobreposição Uma peça é -fabricada E/OU -fornecida
o = sobreposição
Uma peça é
-fabricada E/OU
-fornecida

Figura 4.5

Notação de diagrama EER para uma especialização sobreposta (não disjunta).

DCC011 - 2009/1 - profa. Mirella

52

Restrições sobre Hierarquias de Especialização/Generalização

Hierarquia

Toda sub-classe participa como uma sub- classe em apenas um relacionamento classe/sub-classe

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

54

Figura 4.6 Um reticulado de especialização, com a subclasse GERENTE_ENGENHARIA compartilhada. DCC011 - 2009/1 -

Figura 4.6

Um reticulado de especialização, com a subclasse GERENTE_ENGENHARIA compartilhada.

DCC011 - 2009/1 - profa. Mirella

55

Figura 4.7
Figura 4.7

Um reticulado de

especialização, com herança

57

múltipla, para um banco de dados UNIVERSIDADE.

DCC011 - 2009/1 - profa. Mirella

Modelo Relacional

(3 rd ed: 7.1-7.2; 5 th 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

56
56

Figura 4.7

com herança múltipla, para um banco de

Um reticulado de especialização,

dados UNIVERSIDADE.

DCC011 - 2009/1 - profa. Mirella

dados UNIVERSIDADE. DCC011 - 2009/1 - profa. Mirella IMPORTANTE Modelo Conceitual CONCEITOS, ABSTRAÇÕES
dados UNIVERSIDADE. DCC011 - 2009/1 - profa. Mirella IMPORTANTE Modelo Conceitual CONCEITOS, ABSTRAÇÕES

IMPORTANTE

Modelo Conceitual CONCEITOS, ABSTRAÇÕES ENTIDADE, ATRIBUTO, RELACIONAMENTO Piloto, equipe, país, circuito, corrida

Piloto representa País 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

DCC011 - 2009/1 - profa. Mirella

Requisitos de Dados Esquema Conceitual Modelo de dados de alto nível Independente de SGBD SGBD
Requisitos de Dados
Esquema Conceitual
Modelo de dados de alto nível
Independente
de SGBD
SGBD
Específico

Processo de Projeto de Bancos de Dados

Esquema Lógico (Conceitual) em um modelo de dados de um SGBD específico

DCC011 - 2009/1 - profa. Mirella

58

60

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

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

DCC011 - 2009/1 - profa. Mirella

61

Características de uma Relação

As tuplas de uma relação não são ordenadas (entre elas)
As tuplas de uma relação não são ordenadas (entre elas)

Figura 7.2

A relação ALUNO da Figura 7.1 com uma ordenação diferente das tuplas.

Registros em um arquivo são ordenados de acordo com a posição em que são armazenados no disco

DCC011 - 2009/1 - profa. Mirella

63

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

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

de valores que pode aparecer em cada coluna = domínio Figura 7.1 Os atributos e as

Figura 7.1

Os atributos e as tuplas de uma relação ALUNO.

DCC011 - 2009/1 - profa. Mirella

62

Características de uma Relação

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 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

DCC011 - 2009/1 - profa. Mirella

64

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 constituem as chaves alternativas

primária e as demais constituem as chaves alternativas Figura 7.4 A relação CARRO com duas chaves

Figura 7.4

A relação CARRO com duas chaves candidatas: NumeroLicenca e NumeroChassi.

DCC011 - 2009/1 - profa. Mirella

66

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 , não-null

DCC011 - 2009/1 - profa. Mirella

67

Esquema de um BD Relacional

- 2009/1 - profa. Mirella 67 Esquema de um BD Relacional Figura 7.5 Diagrama para o

Figura 7.5

Diagrama para o esquema do banco de dados relacional EMPRESA.

DCC011 - 2009/1 - profa. Mirella

69

Restrições de Integridade

Restrição de integridade referencial Usada para manter a consistência entre tuplas de duas relações l

U

a outra relação deve referenciar uma tupla existente nesta outra relação Aparecem devido aos relacionamentos entre entidades

t

ma

ã

up a em uma re aç o que se

l

f

re ere

DCC011 - 2009/1 - profa. Mirella

71

4. Esquema de um BD Relacional

Um esquema de BD relacional S define:

um conjunto de esquemas de relação

R = {R 1 , R 2 ,

, R n },

e

um conjunto de restrições de integridade I

S = (R, I)

DCC011 - 2009/1 - profa. Mirella

 

68

5. Restrições de Integridade do Esquema

Outras restrições além das restrições de domínio e de chave

R

Nenhum componente de uma chave primária pode ser nulo

t i

es r ç

ã

o

d

e

i

t

n egr

id

a

d

e

d

e en

tid

a

d

e

DCC011 - 2009/1 - profa. Mirella

 

70

Restrições de Integridade

 

Restrição de integridade referencial Seja FK um conjunto de atributos de um esquema de relação R 1 definido sobre o mesmo domínio dos atributos da chave primária PK de outro esquema R 2 . Então, 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

 

72

Figura 7.7 Restrições de integridade referencial exibidas no esquema de um banco de dados relacional

Figura 7.7

Restrições de integridade referencial exibidas no esquema de um banco de dados relacional EMPRESA.

DCC011 - 2009/1 - profa. Mirella

73

Restrições de Integridade

A restrição de integridade referencial pode ser expressa pela notação

R 1 [FK] R 2 [PK],

onde PK é a chave primária 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]

DCC011 - 2009/1 - profa. Mirella

75

Operações sobre Relações

Inserção (insert)

Adiciona uma nova tupla (ou várias) em uma relação

R

ã

d

emoç o (

l

e ete)

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

DCC011 - 2009/1 - profa. Mirella

77

Notação

NomeTabelaPrincipal

Chave Atributo 1 … Atributo n
Chave Atributo 1 … Atributo n
NomeTabelaPrincipal Chave Atributo 1 … Atributo n NomeTabelaReferenciada Atributo 1 … Atributo n Chave

NomeTabelaReferenciada

Atributo 1 … Atributo n Chave
Atributo 1 … Atributo n
Chave

DCC011 - 2009/1 - profa. Mirella

74

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

Operações de atualização (sobre tuplas):

 

Inserção (insert) Remoção (delete) Modificação (update)

DCC011 - 2009/1 - profa. Mirella

76

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 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)

DCC011 - 2009/1 - profa. Mirella

78

Exemplos

Empregado Nome IM Sobrenome CPF DataNasc Endereço Salário Supervisor Depto Departamento NomeD CPFGer DataInicioGer
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

‘6347 Whatever’, 28000, nulo, 4> em Empregado Inserir <‘Cecilia’, ‘F’, ‘Kolonsky’, nulo,

Inserir <‘Cecilia’, ‘F’, ‘Kolonsky’, nulo, ‘1960-04-05’, ‘6347 Whatever’, 28000, 12312312345, 4> em Empregad

‘6347 Whatever’, 28000, 12312312345, 4> em Empregad Inserir <‘Alicia’, ‘J’, ‘Zelaya’,

Inserir <‘Alicia’, ‘J’, ‘Zelaya’, 1234567890, ‘1960-04-05’, ‘9281 Whatever’, 28000, 1234567890, 6> em Empregado

DCC011 - 2009/1 - profa. Mirella

79

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) 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

DCC011 - 2009/1 - profa. Mirella

81

• bloqueio • • por nulos
bloqueio
por nulos

propagação

substituição

EXERCÍCIO: adicionar as opções de remoção às chaves estrang.

DCC011 - 2009/1 - profa. Mirella

83

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)

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

DCC011 - 2009/1 - profa. Mirella

80

Opções de Remoção da RIR

A cada RIR R 1 [FK] R 2 [PK] é possível associar uma opção de remoção que especifica como a remoção de uma tupla de R 2 é executada em relação a R 1 As opções de remoção possíveis são:

bloqueio propagação substituição por nulos

Notação:

onde op {b,

DCC011 - 2009/1 - profa. Mirella

op

R 1 [FK] R 2 [PK],

p,

n}

82

nnnn bbbb bbbb pppp bbbb bbbb pppp • bloqueio bbbb • • por nulos
nnnn
bbbb
bbbb
pppp
bbbb
bbbb
pppp
• bloqueio
bbbb
por nulos

propagação

substituição

Restrições de integridade referencial com opções de remoção

DCC011 - 2009/1 - profa. Mirella

84

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.

Pais(SiglaPais, NomePais) Equipe(CodEq, NomeEq, SiglaPais) SiglaPais referencia Pais

Piloto(CodPil, NomePil, CodEq, SiglaPais)

Ciruito(CodCirc, NomeCirc, SiglaPais) SiglaPais referencia Pais Corrida (CodCirc, Data, Tempo)

CodCirc referencia Circuito

CodEq referencia Equipe SiglaPais referencia Pais

PosPilotoCorrida(CodCirc, Data, CodPil, Posicao CodCirc, Data referencia Corrida

CodPil referencia Piloto Equipe País Circuito Corrida Piloto PosPilotoCorrida
CodPil referencia Piloto
Equipe
País
Circuito
Corrida
Piloto
PosPilotoCorrida

DCC011 - 2009/1 - profa. Mirella

85

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.

,

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
Instituição
Pesquisador
ArtigoPesquis
Veículo
Artigo
DCC011 - 2009/1 - profa. Mirella 87 Exercício 1 A figura a seguir apresenta uma
DCC011 - 2009/1 - profa. Mirella
87
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
CLIENTE
TELEFONE
numero
PJURÍDICA
PFÍSICA
nome
sexo
CGC
razãoSocial
CGC
dataNasc
DCC011 - 2009/1 - profa. Mirella
89

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.

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

DCC011 - 2009/1 - profa. Mirella

Aeroporto Vôo Cia VooCompart
Aeroporto
Vôo
Cia
VooCompart

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.

.

sexo nome código dataNasc CLIENTE telefone CIC CGC razãoSocial DCC011 - 2009/1 - profa. Mirella
sexo
nome
código
dataNasc
CLIENTE
telefone
CIC
CGC
razãoSocial
DCC011 - 2009/1 - profa. Mirella

86

88

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 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

DCC011 - 2009/1 - profa. Mirella

90

Exercício 2 Condomínio 1 composto n Unidade n n propriedade aluguel n 1 Pessoa
Exercício 2
Condomínio
1
composto
n
Unidade
n
n
propriedade
aluguel
n
1
Pessoa
DCC011 - 2009/1 - profa. Mirella 91 Exercício 3 Endereço nome Pcpal 1, 1 1,
DCC011 - 2009/1 - profa. Mirella
91
Exercício 3
Endereço
nome
Pcpal
1, 1
1, 1
CjtoContas
Cliente
1, 1
1, n
1, 1
1, n
Conta
Endereço
endereço
numero
balanço

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

DCC011 - 2009/1 - profa. Mirella

93

Exercício 4

Aluno (codAluno, nome, curso) curso referencia Curso Curso (codCurso, nome) Disciplina (codDisc, nome, creditos, depto) t

d

f

ep o re erenc a

t

i

D

t

epar amen o

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)

 

DCC011 - 2009/1 - profa. Mirella

95

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 Pcpal 1, 1 1, 1 CjtoContas Cliente 1, 1 1, n 1, 1
Endereço
nome
Pcpal
1, 1
1, 1
CjtoContas
Cliente
1, 1
1, n
1, 1
1, n
Conta
Endereço
endereço
numero
balanço
DCC011 - 2009/1 - profa. Mirella

92

Exercício 4

Para o seguinte esquema relacional parcial, identifique as chaves primárias e estrangeiras

Aluno (codAluno, nome, curso) Curso (codCurso, nome) Disciplina (codDisc, nome, creditos, depto) Curriculo (curso, disc, obrigatória-opcional) Conceito (aluno, disc, ano-semestre, conceito) Departamento (codDepto, nome)

 

DCC011 - 2009/1 - profa. Mirella

94

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 .

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.

DCC011 - 2009/1 - profa. Mirella

96

Exercício 5

Edificio (CodEd, NomeEd, EnderecoEd, BairroEd, AnoConstrEd) Apartamento (CodEd, NumeroAp, VendidoAp, PrecoAp, AreaTotalAp, AreaRealAp) (CodEd) referencia Edificio Quarto (CodEd, NumeroAp, NumeroQuarto, DescricaoQuarto, AreaQuarto) (CodEd, NumeroAp) referencia Apartamento VagaEst (CodEd, NoVaga, NoAp, AreaVaga, NoCarrosVaga, CobertaVaga) (CodEd, NumeroAp) referencia Apartamento

DCC011 - 2009/1 - profa. Mirella

97