Buscar

aula 6 - Modelo Relacional

Prévia do material em texto

IF64A-Banco de Dados 1 

pbugatti@utfpr.edu.br
Prof. Pedro Henrique Bugatti
Modelo Relacional
! Introduzido por E.F. Codd em 1970 (IBM/Califórnia)
!
! Modelo com uma sólida base formal
! teoria dos conjuntos
!
! Conceitos Simples
! relações, atributos, tuplas e domínios
!
! Não considera aspectos físicos de armazenamento, acesso e desempenho
!
! Base para a maioria dos SGBDs que dominam o 
mercado
Modelo Relacional - Características
! Organização dos dados
! conceitos do modelo: atributo, relação, chave, ...
!
! Integridade
! restrições básicas para dados e relacionamentos
!
! Manipulação
! linguagens formais (álgebra e cálculo relacional)
! SQL (comercial)
Definição do Modelo
4
▪Valores
▪ dados do mundo real
▪Tabelas
▪ representam coleções de objetos, 
entidades, relacionamentos, etc, do 
mundo real
▪ tabelas são uma noção intuitiva para as 
RELAÇÕES
Valores
!
! Modelo Relacional ⇒ valores são atômicos
!
! Valor Atômico 
◦ indivisível ⇒ não pode ser recuperado em partes
" ex: endereço definido como um único atributo
◦ monovalorado ⇒ pode ter apenas um valor
" ex:
" Idade de aluno é monovalorado
" Irmãos de aluno é multivalorado
5
6
▪ Domínio - conjunto de valores 
atômicos permitidos para um dado
!
▪ Exemplos de domínio
▪ Nomes de Alunos
▪ Códigos de Disciplinas
▪ Idade
Domínios
Domínios
7
▪ Especificação do Domínio: 
▪ Nome 
▪ Definição lógica
▪ Tipo de dado e formato de dado
 Especificação do Domínio
8
▪ Nome e Definição lógica. Ex:
▪ Nomes de Alunos: conjunto de todos 
os nomes possíveis para pessoas
▪ Códigos de Disciplinas: conjunto dos 
códigos das disciplinas oferecidas na 
UTFPR
▪ Idade: conjunto de idades possíveis 
para alunos Auxilia na 
Interpretação dos 
valores do domínio
 Especificação do Domínio
9
▪ Tipo de dado e/ou formato. Ex:
▪ Nomes de Alunos – string de 60 
caracteres
▪ Códigos de Disciplinas – string com 
três letras seguidas de um traço e de 
quatro dígitos:IF2-0240
▪ Idade – inteiro entre 15 e 100 Identifica o tipo e o 
formato dos 
valores que 
compõem o 
domínio
Exemplo de Domínio
NomePessoa
Varchar(20)
Nomes próprios de pessoas
DOMÍNIO
Exemplo de Domínio
NomePessoa
NomePessoa Varchar(20)
Nomes próprios de pessoas
DOMÍNIO
Tipo
Lógica
Exemplo de Domínio
Nome do 
Domínio
Telefone Varchar(10)
Telefones válidos no Brasil
DOMÍNIO
Tipo
Lógica
(99) 9999-9999
Formato
Exemplo de Domínio
Nome do 
Domínio
Conceitos Gerais: Atributo
! Um item de dado do Banco de Dados (BD)
! Possui um nome e um domínio
! Exemplos
! nome: varchar(20) 
! matrícula: integer 
! dataNasc: date DataNascMatrículaNome
Conceitos Gerais: Tupla
! Um conjunto de pares (atributo, valor)
! Valor de um atributo
! Definido no momento da criação de uma tupla deve 
ser: 
! compatível com o domínio ou NULL 
! Atômico (indivisível)
Exemplo: Tupla
20/02/198501427Maria
03/07/197602467Vânia
12/11/198001035Renata
DataNascMatrículaNome
Tupla 1
Atributo: Nome 
Valor: Renata
Exemplo: Tupla
20/02/198501427Maria
03/07/197602467Vânia
12/11/198001035Renata
DataNascCPFNome
Tuplas
Conceitos Gerais: Relação
! Composto por um cabeçalho e um corpo
! Cabeçalho
! número fixo de atributos (grau da relação)
! atributos não-ambíguos
! Corpo
! número variável de tuplas (cardinalidade da relação)
! ordem não é relevante
Exemplo Relação
20/02/1985São Diego 310/3401427Maria
03/07/1976Capote Valente, 3502467Vânia
Rua das Flores, 210
Endereço
12/11/198001035Renata
DataNascCPFNome
Aluno
Cabeçalho
Exemplo Relação
20/02/1985São Diego 310/3401427Maria
03/07/1976Capote Valente, 3502467Vânia
Rua das Flores, 210
Endereço
12/11/198001035Renata
DataNascCPFNome
Aluno
Corpo
21
Nome RA Curso
Paulo
Izabella
João
9999
8888
1111
Info
Info
Comp
Rel
açã
o
AtributoTupla
Valor
Modelo Intuitivo
Esquema 
de Relação
22
Esquema
Instância
Nome RA Curso
Paulo
Izabella
João
9999
8888
1111
Info
Info
Comp
….
Modelo Intuitivo
Esquema de Relações
23
▪ Esquema de relação: descreve a 
relação
▪R (A1, A2, ..., An) 
▪ ou R = {A1, A2, ..., An} 
▪R - nome da relação 
▪ (A1, A2, ..., An) - conjunto de 
atributos que formam a relação 
Esquema de Relações
24
▪ N - grau da relação descrita por R
▪ número de atributos em R
▪ Dom(Ai) - Domínio do Atributo Ai
▪ Ex:
▪ uma relação de Alunos que tenha os 
atributos Nome, RG e Idade, tem o 
seguinte esquema: 
Aluno(Nome, RG, Idade) N = 3
Exemplo
! Especificação dos domínios: 
▪ Nomes de Alunos: conjunto de todos 
os nomes possíveis para pessoas – 
strings de 60 caracteres
▪ RG: conjunto dos RGs válidos no Brasil 
– números de 9 dígitos 
▪ Idade: conjunto de idades possíveis 
para alunos – inteiro entre 0 e 100 
25
Exemplo (cont.)
! Esquema da relação Aluno:
! Aluno={Nome, RG, Idade}
!
! Domínios dos atributos de Aluno:
! Dom(Nome) = Nomes de Alunos
! Dom(RG) = RG
! Dom(Idade) = Idade
26
Relações
! Relação R – instância do Esquema de Relação 
R (A1, A2, ..., An)
◦ R(R)
◦ R ⊆ Dom(A1) X Dom(A2) X ... Dom(An) 
◦ R é um conjunto de tuplas t
" cada tupla é um conjunto de valores v
 R={t1, t2, ... tk}
 t = {v1, v2, ... vn}, vi ∈ Dom(Ai)
27
Relações
28
▪ Exemplo:
!
▪ Esquema de Relação Aluno:
!
▪ Aluno = {Nome, RG, Idade}
!
▪ Relação válida:
!
▪ R(Aluno) = {<José, 12345, 21>, 
 <Pedro, 54321, 18>, 
 <Paulo, 321321, 22>}
Restrições das Relações
! Restrição de domínio
! o valor de cada atributo A deve ser um valor 
atômico pertencente a Dom(A)
!
! Restrição de null para atributo
! determina quando o valor especial null é ou não 
permitido para um atributo
!
! Restrição de unicidade (CHAVE)
! deve ser possível identificar univocamente cada 
tupla da relação 
29
Restrição de Unicidade
30
▪ Relação é um conjunto de tuplas
▪ pela teoria de conjuntos ⇒ todas as tuplas 
devem ser distintas
▪ para garantir esta propriedade de maneira 
eficiente
▪ especifica-se uma Restrição de Unicidade
chave
Restrição de Unicidade
31
▪ Superchave
▪ conjunto de atributos de uma relação R 
que identifique univocamente cada 
tupla
▪ SCHk(R) = {Aj, ..., Ai}|{Aj, ..., Ai} ⊆ R
▪ Combinação de valores não se repete
▪ Exemplo:
▪ Aluno = {RA, CPF, Nome, Endereço}
▪ SCH1(Aluno) = {CPF}
▪ SCH2(Aluno) = {RA}
▪ SCH3(Aluno) = {CPF, Nome}
▪ SCH4(Aluno) = {RA, Endereço}
Restrição de Unicidade
32
▪ Chave
▪ é uma superchave da qual não se 
pode retirar nenhum atributo sem 
perder a propriedade de identificação 
unívoca ⇒ superchave mínima
Chave
33
▪ Chave Candidata:
▪ pode existir mais de uma chave 
para uma mesma relação
▪ cada uma das chaves é chamada de 
Chave Candidata
▪ CH1(Aluno) = {RA}
▪ CH2(Aluno) = {CPF}
Chave
34
▪ Chave Primária - CH0
▪ escolhida entre as chaves candidatas 
▪ a chave primária é frequentemente a 
mais utilizada para acessos à relação 
▪ Exemplo:
▪ CH0(Aluno) = {RA}
Chave
35
▪ Notação no Esquema da Relação
!
▪ CH0(Aluno) = {RA}
▪ CH1(Aluno) = {CPF}
!
!
Aluno = {CPF, Nome, Curso, RA}
Chave primáriaChave secundária
Chave Primária (PK) - Exemplo
20/02/1985São Diego 310/3401427Maria
03/07/1976Capote Valente, 3502467Vânia
Rua das Flores, 210
Endereço
12/11/198001035Renata
DataNascCPFNome
Aluno
Qual(is) atributo(s) representam unicamente uma tupla? 
20/02/1985São Diego 310/3401427Maria
03/07/1976Capote Valente, 3502467Vânia
Rua das Flores, 210
Endereço12/11/198001035Renata
DataNascCPFNome
Aluno
Qual(is) atributo(s) representam unicamente uma tupla? 
CPF
Chave Primária (PK) - Exemplo
20/02/1985São Diego 310/34347685784432Maria
03/07/1976Capote Valente, 35693529876987Vânia
Rua das Flores, 210
Endereço
12/11/1980701034263890Renata
DataNascCPFNome
Aluno
Aluno(CPF, Nome, Endereço, DataNasc) 
Chave Primária (PK) - Exemplo
Restrições de Integridade
39
▪ Restrições de integridade
▪ regras a respeito dos valores que 
podem ser armazenados nas 
relações
▪ objetivo: garantir consistência 
▪ quando definidas no domínio do 
problema, devem ser sempre 
satisfeitas na base de dados
Restrições de Integridade
40
▪ Principais restrições de integridade 
para uma BD relacional:
!
▪ Restrições de Integridade da 
Entidade
▪ Restrições de Integridade 
Referencial 
Restrições de Integridade
41
!
▪ Restrição de Integridade da 
Entidade
▪ a chave primária nunca pode ser 
nula
▪ se a chave primária for composta 
por mais de um atributo, nenhum 
deles pode ser nulo
▪ Restrição de Integridade Referencial
▪ definida entre duas relações
▪ usada para manter consistência entre tuplas de duas 
relações
▪ ex: tuplas de Matrícula e tuplas de Aluno
42
Chave Estrangeira
▪ conceito fundamental: compatibilidade de 
domínio
Restrições de Integridade
43
▪ Compatibilidade de Domínio:
!
▪ dois conjuntos de atributos quaisquer C 
e D são compatíveis quando:
 
▪ o primeiro atributo de C tem o mesmo domínio 
do primeiro atributo de D
▪ o segundo atributo de C tem o mesmo domínio 
do segundo atributo de D, 
▪ e assim por diante....
Restrições de Integridade 
Referencial
44
▪ FK (foreign key) é uma Chave estrangeira 
em R1 que referencia R2 se: 
1) FK é compatível em domínio com toda a 
chave primária PK de R2
2) o valor dos atributos FK numa tupla ti 
qualquer da relação R1: 
! ou é igual ao valor dos atributos PK de 
alguma tupla tk da relação R2 
⇒ ti[FK] = tk[PK], ti ∈R1, tk∈R2
! ou é nulo ⇒ ti[FK] = null
Restrições de Integridade 
Referencial
45
!
▪ As duas condições para a ocorrência 
da chave estrangeira determinam a 
Restrição de Integridade 
Referencial entre duas relações R1 e 
R2
!
 R 1[FK] R 2[PK]
Restrições de Integridade 
Referencial
46
Restrições de Integridade 
Referencial - FK
1
2
1
Curso
347685784432
693529876987
701034263890
CPF
01427Maria
02467Vânia
01035Renata
MatrículaNome
Ciências Jurídicas e Sociais
Administração de Empresas
Ciência da Computação
Descrição
3
2
1
Codigo
Funcionário (CodFunc, Nome, Endereço, Cod_Chefe)
2Carlos Gomes, 50Carla4
1
3
4
Cod_Chefe
Anita Garibaldi, 12
Oscar Freire, 10
Av. Joaquim 2
Endereço
Pedro3
João2
Maria1
NomeCodFun
Restrições de Integridade 
Referencial - FK
48
▪ Chave Estrangeira (notação):
X = {A, B, C} 
 
 
 
 
 
 Y = {F, G, H}
Dom(F, G) = Dom(A, B) 
{A, B} é chave primária em X
{F, G} é chave estrangeira em Y
Pergunta: a chave 
estrangeira {F,G} 
pode ser nula ou 
ter atributo nulo? 
Por que?
Restrições de Integridade 
Referencial
49
▪ Exemplo:
Departamento = {Cod, NomeD} 
!
!
Empregado = {NomeE, Departamento}
Pergunta: a chave 
estrangeira 
{Departamento} pode 
ser nula? Por que?
Restrições de Integridade 
Referencial
Alunos = {Nome, RA, Idade} 
!
R1(Alunos) = {<Mario, 1234, 20>, 
 <Paulo, 4321, null >, 
 <null , 1234, 22>, 
 <Thais, null, 24>, 
 <Mario, 1235, 22>}
!
Disciplina = {Sigla, Monitor} 
!
R2(Disciplina) = {<IF32G_104, 1234>, 
 <IF45K_123, 2222>,
 <IF64A_149, 1234>, 
 <IF56K_532, null >}
Exemplo
Quais restrições 
de relação e de 
integridade não 
são satisfeitas 
nas tuplas do 
exemplo? Por 
quê? 
Considere o seguinte esquema relacional:
!
Categoria(CodCategoria, Descrição)
Cliente (CodCli, Nome, Endereco, CPF, CodCategoria)
Funcionário (CodFunc, Nome, CargaTrab, CPF, Fone)
Fornecedor (CodFornec, Nome, Cidade)
Produto (CodProd, CodFornec, Nome, Peso, Valor)
!
a) Identificar as chaves primárias e chaves estrangeiras, 
bem como possíveis chaves candidatas
Exercícios
b) defina todos os domínios (nome, definição lógica, tipo de 
dado e formato) necessários para o esquema anterior. 
ex: Nomes de Pessoas: conjunto de todos os nomes 
possíveis para pessoas – string de 60 caracteres
!
c) para cada esquema de relação: 
• defina o domínio de cada atributo
ex: Dom(Nome) = Nomes de Pessoas
• indique quais atributos podem e quais não podem 
receber valor nulo (restrições de null)
!
d) crie uma instância da base de dados, e exemplifique 
tuplas válidas e inválidas de acordo com as restrições de 
integridade de uma BD relacional. Explique cada caso (qual 
é restrição e por que é ou não atendida em cada tupla).
Referências
!
! ELMASRI, Ramez; NAVATHE, Shamkant B. 
Sistemas de banco de dados. 4. ed. São Paulo: 
Pearson Addison Wesley, 2005. 
!
! Sousa, E. P. M. – Notas de aula – SCC240.
53
IF64A-Banco de Dados 1 

pbugatti@utfpr.edu.br
Prof. Pedro Henrique Bugatti

Continue navegando