TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Modelo Logico

Trabalho Escolar: Modelo Logico. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  10/9/2014  •  3.982 Palavras (16 Páginas)  •  933 Visualizações

Página 1 de 16

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

...

Baixar como  txt (33.2 Kb)  
Continuar por mais 15 páginas »