Você está na página 1de 19

Modelo Relacional

Prof. Luciano F. de Medeiros


BD Relacionais
• Introduzido por Ted Codd (IBM Research) em
1970
• O modelo usa um conceito de relação
matemática, algo como uma tabela de
valores, como bloco de construção básica
• As primeiras implementações comerciais se
tornaram disponíveis no início da década de
80 (Oracle e IBM SQL/DS)
Conceitos
• O modelo relacional representa o BD como
uma coleção de relações
• Uma relação é pensada então como uma
tabela de valores
• No modelo relacional, cada linha na tabela
representa um fato que corresponde a uma
entidade ou relacionamento do mundo real
(modelo E-R)
Nomenclatura
Definição Descrição
Domínio Conjunto de valores atômicos. Por
atômico, entendemos que cada valor no
domínio é indivisível no que diz respeito
ao modelo relacional.
Relação É uma tabela com colunas e linhas
Atributo Cabeçalho da coluna, coluna nomeada de
uma relação
Tupla Uma linha da relação
Esquema de Relação Composto de um nome de relação e uma
lista de atributos na forma R(A1, A2, ..., An)
Grau Número de atributos que fazem parte do
esquema da relação (n)

Cardinalidade Número de tuplas em uma relação


Tipo de dado Também chamado de formato, designa a
propriedade do conteúdo do atributo
Exemplo
• ALUNO(Nome, CPF, Endereço, Telefone,
Celular, DataNascimento, Curso)
• ALUNO(Nome: string, CPF: string, Endereço:
string, Telefone: string, Celular: string,
DataNascimento: data, Curso: integer)
Exemplo
Valores nulos
• Ausência de valores
nas tuplas referentes
a um atributo
específico
• “Valor desconhecido”
• “Valor existe, mas
não está disponível”
• “Atributo não se
aplica a esta tupla”
Tipos de Chave
Conceito Descrição
Superchave Subconjuntos de atributos de um esquema de relação
de forma que duas tuplas não tenham as mesmas
combinações de valores para estes atributos.
Chave candidata Atributo ou conjunto de atributos que identificam
unicamente uma tupla que podem ser escolhidos para
ser chave primária
Chave primária Chave candidata que foi escolhida para identificar as
tuplas na relação. As chaves primárias em uma relação
são forçadas a terem a propriedade NOT NULL, ou seja,
não devem ter valor nulo em qualquer tupla presente
na relação.
Chave estrangeira Um atributo ou conjunto de atributos em uma relação
que combinam com alguma chave candidata de alguma
(ou possivelmente da mesma) relação.
Restrições de Integridade
Tipo Descrição
Integridade de Entidade Nenhum atributo que seja chave
primária pode assumir valor nulo
(NULL).
Integridade de Chave Toda tupla tem um conjunto de
atributos que a identifica
univocamente (de maneira única) na
relação.
Integridade Referencial Uma relação pode ter um conjunto de
atributos que contém valores com
mesmo domínio de um conjunto de
atributos que forma a chave primária
de outra relação (Chave estrangeira)
Exemplo: Instância do BD DreamHome
Esquema Conceitual
Relação de base
• Uma relação
nomeada
correspondendo a
uma entidade no
esquema conceitual
cujas tuplas estão
fisicamente
armazenadas no
banco de dados.
Visão (View)
• O resultado dinâmico
de uma ou mais
operações sobre
relações de base para
produzir outra relação.
• É uma relação virtual
que não existe
necessariamente no BD,
mas que pode ser
produzida por um
usuário em particular
para um uso específico.
Uso de Visões
• Mecanismo poderoso e flexível para prover
segurança, escondendo partes do BD para
certos usuários
• Permite aos usuários acessarem dados de
forma customizada
• Pode simplificar operações complexas sobre
as relações de base.
Criação Física da Relação
CREATE TABLE Branch (
branchNo INTEGER NOT NULL,
street VARCHAR(50),
city VARCHAR(50),
postcode VARCHAR(9),
PRIMARY KEY(branchNo)
)
CREATE TABLE Staff (
staffNo INTEGER NOT NULL,
fName VARCHAR(50),
lName VARCHAR(50),
position VARCHAR(20),
sex VARCHAR(1),
DOB DATE,
salary DECIMAL(10,2),
branchNo INTEGER,
PRIMARY KEY (staffNo),
FOREIGN KEY (branchNo) REFERENCES
Branch(branchNo)
)
Utilizando ALTER TABLE
CREATE TABLE Staff (
staffNo INTEGER NOT NULL,
fName VARCHAR(50),
lName VARCHAR(50),
position VARCHAR(20),
sex VARCHAR(1),
DOB DATE,
salary DECIMAL(10,2),
branchNo INTEGER,
PRIMARY KEY (staffNo)
)
Usando ALTER TABLE
• ALTER TABLE Staff
ADD FOREIGN KEY (branchNo)
REFERENCES Branch(branchNo)

Você também pode gostar