Você está na página 1de 61

Banco de Dados

Modelo Relacional
(Material cedido pela Profa. Daniela Leal Musa)

Banco de Dados

Modelo Relacional
Introduzido por Codd em 1970 (IBM/ Califrnia)
Modelo com uma slida base formal
teoria dos conjuntos

Conceitos Simples
relaes, atributos, tuplas e domnios

No considera aspectos fsicos de armazenamento,


acesso e desempenho
Base para a maioria dos SGBDs que dominam
o mercado
Banco de Dados

Modelo Relacional - Caractersticas


Organizao dos dados
conceitos do modelo: atributo, relao, chave, ...

Integridade
restries bsicas para dados e relacionamentos

Manipulao
linguagens formais (lgebra e clculo relacional)
SQL (comercial)

Banco de Dados

Conceitos Gerais: Domnio


Conjunto de valores permitidos para um dado
Possui uma descrio fsica e outra semntica.
A descrio fsica identifica o tipo e o formato dos
valores que compem o domnio
exemplo: char(13), (99)9999-9999

a descrio semntica ajuda na interpretao de


seus valores
exemplo: Nmeros de telefone vlidos no Brasil
Banco de Dados

Exemplo de Domnio
NOME

Banco de Dados

Exemplo de Domnio
NOME

Varchar(20)
Nomes prprios de pessoas

DOMNIO

Banco de Dados

Exemplo de Domnio
Tipo

NOME

Varchar(20)
Nomes prprios de pessoas

DOMNIO

Semntica

Banco de Dados

Exemplo de Domnio
Tipo

Telefone

Formato

Varchar(10)
(99) 9999-9999
Telefones vlidos no Brasil

DOMNIO

Semntica

Banco de Dados

Conceitos Gerais: Atributo


Um item de dado do Banco de Dados (BD)
Possui um nome e um domnio
Exemplos
nome: varchar(20)
matrcula: integer
dataNasc: date

Nome Matrcula DataNasc

Banco de Dados

Conceitos Gerais: Tupla


Um conjunto de pares (atributo, valor)
Valor de um atributo
Definido no momento da criao de uma tupla deve ser:
compatvel com o domnio ou NULL
Atmico (indivisvel)

Banco de Dados

Exemplo: Tupla

Tupla 1

Nome

Matrcula

DataNasc

Renata

01035

12/11/1980

Vnia
Maria

02467
01427

03/07/1976
20/02/1985

Atributo: Nome
Valor: Renata

Banco de Dados

Exemplo: Tupla

Tuplas

Nome

CPF

DataNasc

Renata

01035

12/11/1980

Vnia
Maria

02467
01427

03/07/1976
20/02/1985

Banco de Dados

Conceitos Gerais: Relao


Composto por um cabealho e um corpo
Cabealho
nmero fixo de atributos (grau da relao)
atributos no-ambguos

Corpo
nmero varivel de tuplas (cardinalidade da relao)
ordem no relevante

Banco de Dados

Exemplo Relao
Cabealho

Aluno
Nome
Renata
Vnia
Maria

CPF
01035
02467
01427

Endereo
Rua das Flores, 210
Capote Valente, 35
So Diego 310/34

DataNasc
12/11/1980
03/07/1976
20/02/1985

Banco de Dados

Exemplo Relao
Aluno
Nome
Renata
Vnia
Maria

CPF
01035
02467
01427

Endereo
Rua das Flores, 210
Capote Valente, 35
So Diego 310/34

DataNasc
12/11/1980
03/07/1976
20/02/1985

Corpo

Banco de Dados

Revisando...

Banco de Dados

Conceitos Gerais: Relao


Definio: Dados os conjuntos
S1, S2 , ...., Sn, no
necessariamente distintos, dizse que:
R uma relao sobre esses n
conjuntos se R um conjunto
de M tuplas, nas quais o
primeiro elemento assume
valores em S1, o segundo em
S2, e assim por diante.

S2

S3

Nome

Endereo

DataNasc

Renata

Rua das
12/11/1980
Flores, 210
Capote
03/07/1976
Valente, 35
So Diego 20/02/1985
310/34

S1

Vnia
Maria

TUPLAS

Banco de Dados

Conceitos Gerais: Atributos


Definio: dada uma relao R,
define-se como seus atributos os
nomes das funes que mapeiam
os valores de cada um dos
elementos de cada tupla nos
respectivos conjuntos
S1, S2 , ...., S n ..

S2

S3

Nome

Endereo

DataNasc

ATRIBUTOS

Renata

Rua das
Flores, 210

12/11/1980

Relao R

Vnia

Capote
Valente, 35

03/07/1976

Maria

So Diego
310/34

20/02/1985

S1

Banco de Dados

Conceitos Gerais: Domnios


Definio: Dada uma relao R, o
domnio do atributo Aj, o
conjunto Sj no qual o atributo
assume valores
ATRIBUTOS

Relao R

Domnio
S2

S3

Nome

Endereo

DataNasc

Renata

Rua das
Flores, 210

12/11/1980

Vnia

Capote
Valente, 35

03/07/1976

Maria

So Diego
310/34

20/02/1985

S1

Banco de Dados

Relembrando...

Relao uma Tabela


Atributo um Campo (coluna da tabela)
Tupla uma linha da tabela
Domnio: tipo de dado, formato de um atributo

Banco de Dados

Banco de Dados Relacional


O universo de um banco de dados relacional um conjunto finito,
no vazio, de relaes.
o esquema o conjunto dos esquemas das relaes que o formam,
isto :
R1 (A11, A12, ........., A1n)
R2 (A21, A22, ........., A2n)
....
Rm (Am1, Am2, ......., Amn)
uma instncia de um banco de dados relacional o conjunto das
instncias de suas relaes.
o mesmo esquema pode se aplicar a diferentes instncias de um
banco de dados.

Banco de Dados

Esquema e Instncia
Esquema
Aluno (nome,matrcula, endereo, DataNasc, Curso)
Curso (codigo, descrio)

Instncia
(Daniela, 12345, So Diego, 310, 28/06, 1)

Banco de Dados

Chave
Conjunto de um os mais atributos de uma relao
Chave Primria (primary key) PK
Chave Candidata
Chave Alternativa
Chave Estrangeira (foreign key) - FK

Banco de Dados

Chave Primria
Primary key (PK)
atributo(s) cujo (conjunto de) valor(es) identifica(m)
unicamente uma tupla em uma relao
Unicidade de valores na coluna que compe a chave

Banco de Dados

Chave Primria (PK)


Aluno
Nome
Renata
Vnia
Maria

CPF
01035
02467
01427

Endereo
Rua das Flores, 210
Capote Valente, 35
So Diego 310/34

DataNasc
12/11/1980
03/07/1976
20/02/1985

Qual(is) atributo(s) representam unicamente uma tupla?

Banco de Dados

Chave Primria (PK)


Aluno
Nome
Renata
Vnia
Maria

CPF
01035
02467
01427

Endereo
Rua das Flores, 210
Capote Valente, 35
So Diego 310/34

DataNasc
12/11/1980
03/07/1976
20/02/1985

Qual(is) atributo(s) representam unicamente uma tupla?

CPF
Banco de Dados

Chave Primria (PK)


Aluno
Nome
Renata
Vnia
Maria

CPF
701034263890
693529876987
347685784432

Endereo
Rua das Flores, 210
Capote Valente, 35
So Diego 310/34

DataNasc
12/11/1980
03/07/1976
20/02/1985

Aluno(CPF, Nome, Endereo, DataNasc)

Banco de Dados

Chave Primria (PK) Composta


Alocao (Cod_Projeto, Cod_Func, DataIni, Tempo)
Um funcionrio pode estar em mais de um projeto

Banco de Dados

Chave Primria (PK)


Alocao (Cod_Projeto, Cod_Func, DataIni, Tempo)
Chave primria composta

Banco de Dados

Chave Candidata
Possui as mesmas propriedades que a chave
primria
Aluno
Nome
Renata
Vnia
Maria

Matrcula
CPF
01035
701034263890
02467
693529876987
01427
347685784432

DataNasc
12/11/1980
03/07/1976
20/02/1985

Banco de Dados

Chave Candidata
Possui as mesmas propriedades que a chave
primria
Aluno
Nome
Renata
Vnia
Maria

Matrcula
CPF
01035
701034263890
02467
693529876987
01427
347685784432

DataNasc
12/11/1980
03/07/1976
20/02/1985

Chaves candidatas
Banco de Dados

Chave Candidata
Qual escolher para Chave Primria?
Escolhe-se para chave primria aquela com o
atributo nico ou menor nmero de caracteres
Nome
Renata
Vnia
Maria

Matrcula
CPF
01035
701034263890
02467
693529876987
01427
347685784432

DataNasc
12/11/1980
03/07/1976
20/02/1985

Banco de Dados

Chave Candidata
Chave Primria

Nome
Renata
Vnia
Maria

Matrcula
CPF
01035
701034263890
02467
693529876987
01427
347685784432

DataNasc
12/11/1980
03/07/1976
20/02/1985

Banco de Dados

Chave Alternativa
Chave Primria

Nome
Renata
Vnia
Maria

Matrcula
CPF
01035
701034263890
02467
693529876987
01427
347685784432

DataNasc
12/11/1980
03/07/1976
20/02/1985

Chave alternativa

Chave alternativa: chave candidata que no primria


Banco de Dados

Chave Estrangeira
Foreign Key (FK)
Atributo(s) de uma relao, cujos valores devem
obrigatoriamente aparecer na chave primria de
uma relao (da mesma ou de outra)
Implementa o relacionamento em um BD relacional

Banco de Dados

Chave Estrangeira (FK)


Nome

Matrcula

CPF

Curso

Renata

01035

701034263890

Vnia
Maria

02467
01427

693529876987
347685784432

2
1

Banco de Dados

Chave Estrangeira (FK)


Nome

Matrcula

Renata
Vnia
Maria

01035
02467
01427

CPF

701034263890
693529876987
347685784432

Codigo

Descrio

Cincia da Computao

Administrao de Empresas

Cincias Jurdicas e Sociais

Curso

1
2
1

Banco de Dados

Chave Estrangeira (FK)

Aluno(CPF, Nome, Endereo, DataNasc, #Curso)


Curso (Codigo, Descrio)

Banco de Dados

Chave Estrangeira (FK)


Funcionrio (CodFunc, Nome, Endereo, #Cod_Chefe)
CodFun Nome
Endereo
1
Maria Av. Joaquim 2
Oscar Freire, 10

Cod_Chefe
4

Joo

Pedro Anita Garibaldi, 12

Carla Carlos Gomes, 50

Banco de Dados

Revisando...

Chave Primria (PK)


Chave candidata
Chave alternativa
Chave Estrangeira (FK)

Banco de Dados

Restries de Integridade
uma regra que deve ser obedecida em todos os estados
vlidos da base de dados.

Garantem que os dados refletem corretamente a realidade


modelada.
Domnio, Chave Primria, Valores Vazios
Integridade de Entidade
Integridade Referencial

Semntica
Banco de Dados

Restries de Integridade
Domnio: conjunto de valores que um atributo pode
assumir
Exemplo: Nome: varchar (20)- Alessandra Vogel Oliveira
viola a regra
Vazio: define se os atributos podem ou no ser vazios

Banco de Dados

Integridade de Entidade
Garantia de acesso a todos os dados sem
ambigidade

CodFun Nome
1
Maria

uma relao no podem ter valor nulo

2
3

Joo
Pedro

A chave primria representa uma entidade

Carla

Atributos pertencentes a chave-primria de

na base de dados

Banco de Dados

Integridade Referencial
Chave estrangeira (FK)
Garantia de relacionamentos
vlidos
Os valores que aparecem na

Nome

Matrcula

Renata
Vnia
Maria

01035
02467
01427

CPF

Curso

701034263890
693529876987
347685784432

1
2
1

Curso

Descrio

FK devem aparecer na PK da

Cincia da Computao

relao referenciada

Administrao de Empresas

Cincias Jurdicas e Sociais

Banco de Dados

Integridade Semntica
Especificada atravs de regras sobre o esquema do banco
de dados
Exemplos:
O salrio de um empregado deve ser menor ou igual ao do seu
supervisor
O nmero de horas semanais de um empregado em um projeto
no pode ser maior do que 50

Banco de Dados

Restries de Atualizao
Insero: insere tuplas em uma relao
Pode violar 4 restries de integridade:

Banco de Dados

Restries de Atualizao
Insero: insere tuplas em uma relao
Pode violar 4 restries de integridade:
Integridade de Domnio: valor no do domnio

Banco de Dados

Restries de Atualizao
Insero: insere tuplas em uma relao
Pode violar 4 restries de integridade:
Integridade de Domnio
Integridade de Chave: valor j existe

Banco de Dados

Restries de Atualizao
Insero: insere tuplas em uma relao
Pode violar 4 restries de integridade:
Integridade de Domnio
Integridade de Chave
Integridade de Entidade: chave primria nula

Banco de Dados

Restries de Atualizao
Insero: insere tuplas em uma relao
Pode violar 4 restries de integridade:

Integridade de Domnio
Integridade de Chave (ex.: chave duplicada)
Integridade de Entidade
Integridade Referencial: valor da FK refere-se a uma
tupla que no existe na relao referenciada

Banco de Dados

Restries de Atualizao
Excluso: exclui tuplas de uma relao
Pode violar :

Banco de Dados

Restries de Atualizao
Excluso: exclui tuplas de uma relao
Pode violar :
Integridade referencial: se a tupla que est sendo
excluda est referenciada por uma FK de outra tupla

Banco de Dados

Restries de Atualizao
Excluso:

Nome

Matrcula

CPF

Curso

Renata 01035

701034263890

Vnia

02467

693529876987

Maria

01427

347685784432

Curso

Descrio

Cincia da Computao

Administrao de Empresas

Cincias Jurdicas e Sociais

Banco de Dados

Restries de Atualizao
Procedimento a ser adotado:
Rejeitar a operao
Excluir em cascata
Mudar os valores dos atributos referenciados

Banco de Dados

Restries de Atualizao
Atualizao : altera os valores de atributos nas
tuplas existentes
Pode violar:

Banco de Dados

Restries de Atualizao
Atualizao : altera os valores de atributos nas
tuplas existentes
Pode violar:
Restrio de Domnio para atributos que no so chave

Banco de Dados

Restries de Atualizao
Atualizao : altera os valores de atributos nas
tuplas existentes
Pode violar:
Restrio de Domnio para atributos que no so chave
Chave primria e entidade

Banco de Dados

Restries de Atualizao
Atualizao : altera os valores de atributos nas
tuplas existentes
Pode violar:
Restrio de Domnio para atributos que no so chave
Chave primria e entidade
Referencial

Banco de Dados

Exerccio:
Considere o seguinte esquema relacional:
Categoria(CodCategoria, Descrio)
Cliente (CodCli, Nome, Endereco, CPF, CodCategoria)
Funcionrio (CodFunc, Nome, CT, CPF, End, Fone)
Fornecedor (CodFornec, Nome, Cidade)
Produto (CodProd, CodFornec, Nome, Peso, Valor)

Banco de Dados

Exerccio:
1) Identificar as chaves primrias e chaves
estrangeiras
2) Explique o que deve ser feito pelo SGBD para
garantir a integridade referencial nas seguintes
situaes:
a) Uma tupla excluda na tabela Categoria
b) Uma tupla alterada na tabela Fornecedor

Banco de Dados

Leitura Complementar

Sistemas de Banco de Dados, Elmasri-Navathe


- 4a. Edio: Captulo 5
Projeto de Banco de Dados , Carlos Alberto Heuser
5 edio: Captulo 4

Banco de Dados

Você também pode gostar