You are on page 1of 10

11/11/2009

Introdução
Domínios
Relações e Predicados
Regras de Integridade de Dados
Álgebra Relacional
Linguagem SQL

Name Status City


S#
Domínios
Primary
Key

S# SNAME STATUS CITY


S1 Smith 20 London
Cardinalidade

Relação S2 Jones 10 Paris Tuplas


S S3 Blake 30 Paris
S4 Clark 20 London
S5 Adams 30 Athens

Atributos

Grau da Relação

 Relação  Tabela
 Tupla  Linha ou Registro
 Cardinalidade  Número de Linhas
 Atributo  Coluna ou Campo
 Grau  Número de Colunas
 Chave Primária (PK)  Identificador único
 Domínio  Conjunto de valores
válidos

1
11/11/2009

 Uma relação é composta de um cabeçalho e um


corpo:
◦ Cabeçalho: Conjunto fixo de atributos;
◦ Corpo: Conjunto de tuplas variando no tempo.
 Propriedades de uma relação:
◦ Não há tuplas duplicadas;
◦ As tuplas não seguem um ordenamento (de cima para
baixo);
◦ Os atributos não seguem um ordenamento (da esquerda
para direita);
◦ Todos os valores de atributos são atômicos.

 Predicado
“Um fornecedor com um número de identificação
específico (S#) tem um nome (SNAME), um valor de
status (STATUS), é localizado numa cidade (CITY) e não
existem dois fornecedores com o mesmo número de
identificação.”
 Proposição
S# = “S1” SNAME = “Smith”
STATUS = 20 CITY = “London”
 Relação
S (S#, SNAME, STATUS, CITY)

 Chaves Candidatas
◦ Conjunto de atributos que identificam uma tupla de
maneira única numa relação;
◦ Uma chave candidata para uma relação R é um sub-
conjunto do conjunto de atributos de R, dito K, se e
somente se:
 Não existem duas tuplas distintas de R com o mesmo
valor de K; (Unicidade)
 Nenhum sub-conjunto próprio de K atende à
propriedade de Unicidade. (Irredutibilidade)

2
11/11/2009

 Chaves Candidatas
◦ Primeiro determina as chaves candidatas: o campo
ou os campos que atendem as restrições de
UNICIDADE e IRREDUTIBILIDADE
◦ UNICIDADE: Aquele campo ou conjunto de campos
não podem ter valores repetidos
◦ IRREDUTIBILIDADE: Se ABC garantem unicidade
então nem AB, nem BC nem AC podem garantir Isso
significa que tem q buscar o menor conjunto de
campos q satisfaça o critério da UNICIDADE.

 Chave Primária
◦ Caso especial de chave candidata;
◦ Dentre o conjunto de chaves candidatas:
 Uma é escolhida como Chave Primária (Primary Key);
 As demais são ditas Chaves Alternativas.
◦ Toda Relação possui pelo menos uma Chave
Candidata, pois relações não possuem tuplas
duplicadas. (propriedade de relações).

 Chave Estrangeira
◦ Uma chave estrangeira é um atributo ou conjunto de
atributos numa relação R2, cujos valores são
necessariamente equivalentes à chave primária de uma
relação R1 (R1 e R2 não necessariamente distintos);

DEPTO ( DEPTO#, DNAME )


PRIMARY KEY ( DEPTO# )

EMP ( EMP#, ENAME, DEPTO#, SALARY )


PRIMARY KEY ( EMP# )
FOREIGN KEY ( DEPTO# ) REFERENCES DEPTO

3
11/11/2009

 A chave estrangeira ocorre quando um atributo de uma relação for chave


primária em outra relação.
 Vamos ver um exemplo:

Tabela Produtos
- Codigo_produto
- Produto
- Categoria
- Preço Data
- Quantidade
- Descrição

 Tabela Itens do Pedido


- Numero_pedido
- Codigo_produto
- Quantidade

 Observe que o codigo_produto consta nas duas tabelas. Em Produtos ele é o


campo identificador, ou seja, cada produto deverá ser exclusivo, portanto,
uma chave primária. Já em Itens do Pedido o campo codigo_produto poderá
constar várias vezes e como ele já é chave primária em Produtos, aqui ele
será uma chave estrangeira.
 Portanto as tabelas ficarão assim:
 Tabela Produtos
- Codigo_produto (chave primária)
- Produto
- Categoria
- Preço Data
- Quantidade
- Descricao
 Tabela Itens do Pedido
- Numero_pedido
- Codigo_produto (chave estrangeira)
- Quantidade

 Integridade de Entidade
◦ Não se permite a nenhum atributo que participe da chave
primária de uma relação que aceite valores nulos.
 Integridade Referencial
◦ Se uma relação R2 inclui uma chave estrangeira FK
equivalendo a uma chave primária PK de uma relação R1,
então todo valor de FK em R2 deve:
 Ser igual a valor de PK em alguma tupla R1, ou
 Ser totalmente nulo (cada valor de atributo que participa deste
valor FK deve ser nulo).
Obs.: R1 e R2 não são necessariamente distintos.

4
11/11/2009

 Regras de Integridade Referencial


◦ Restricted (Restrita)
 Não é permitido a atualização (alteração/exclusão) de
tupla pai que possua filhos.
◦ Cascades (Cascata)
 As atualizações são propagadas das tuplas pai para as
tuplas filhas.
◦ Nullifies (Nula)
 Na atualização de tuplas pai, os valores de chave
estrangeira das tuplas filhas são atualizados para
NULL.

“Um modelo de (banco de)


dados é uma descrição dos tipos
de informações que estão
armazenados em um banco de
dados.”
Heuser, C. A. (2001)

 Modelo Conceitual
◦ Modelo de dados abstrato;
◦ Descreve a estrutura de um banco de dados
independente de um SGBD particular;
◦ Exemplo:

(1,n) (1,1)
Funcionário Lotação Departamento

5
11/11/2009

 Modelo Lógico
◦ Modelo de dados que descreve a estrutura de um
banco de dados conforme vista pelo usuário de um
SGBD particular;
◦ Exemplo:
 Departamento (cod_departamento,
nome_departamento, sigla_departamento)
 Funcionario (mat_funcionario, nome_funcionario,
cod_departamento)

 Diagrama Entidade/Relacionamento
◦ Criado por Peter Chen, em 1976;
◦ Técnica para modelagem de dados;
◦ Entidade
 Conjunto de objetos da realidade modelada sobre o
qual se deseja manter informações no banco de dados
(pessoas, empresas, departamentos, funcionários,
filmes, vendas, produtos, etc;
 Representada por um retângulo.
◦ Relacionamento
 Conjunto de associações entre as entidades;
 Representado por um losango.

 Diagrama Entidade/Relacionamento
◦ Cardinalidade
 Número mínimo ou máximo de ocorrências de
entidade associadas a uma ocorrência de outra
entidade, através de um relacionamento;
 Máxima: varia de 1 a n, ou seja, uma ocorrência de
uma entidade estará associada a pelo menos 1 e no
máxino n ocorrências da outra entidade;
 Mínima: varia de 0 a 1, indicando se associação entre
as entidade é opcional (0) ou obrigatória (1).

6
11/11/2009

 Exemplos:

(0,n) (0,n)
Aluno Matrícula Disciplina

(0,n) (1,1)
Filme Classificação Gênero

 Exemplos:

(0,1) (0,1)
Matrimônio
homem
mulher

Pessoa

 Conjunto de operadores que possuem relações


como operandos e retorna relações como
resultado;
 Consiste de oito operadores, dois grupos de
quatro:
◦ Operações de conjunto tradicionais: União, Interseção,
Diferença e Produto Cartesiano (Union, Intersect,
Difference, Product);
◦ Operações relacionais especiais: selecionar, projetar, junção
e divisão (Select, Project, Join, Divide).

7
11/11/2009

União Interseção

Diferença
Produto Cartesiano

a x
a a y
x b x
b X
y
=
c b y
c x
c y

Seleção Projeção

Divisão

a x
a y x
a
b
z
x
Divide y
z
= a
Ligação
c y

a1 b1 b1 c1 a1 b1 c1
a2 b1 Join b2 c2 = a2 b1 c1
a3 b2 b3 c3 a3 b2 c2

Seja A o conjunto de fornecedores de Londres e B


o conjunto de fornecedores da peça P1.
 União
◦ Constrói uma relação consistindo em todas as tuplas que
aparecem em uma ou em ambas as relações;
◦ A Union B = Conjunto com os fornecedores de Londres ou
fornecedores da peça P1.
 Interseção
◦ Constrói uma relação consistindo em todas as tuplas que
aparecem em ambas as relações;
◦ A Intersect B = Conjunto com os fornecedores de Londres e
que fornecem a peça P1.

8
11/11/2009

 Diferença
◦ Constrói uma relação contendo as tuplas que aparecem na
primeira relação, mas não aparecem na segunda;
◦ A MINUS B = Conjunto com os fornecedores de Londres e
que não fornecem a peça P1.
 Produto
◦ Constrói uma relação a partir de duas relações, consistindo
em todas as possibilidades de pares de tuplas, uma para
cada duas relações;
◦ A TIMES B = Conjunto com cada fornecedor de Londres
associado a cada fornecedor da peça P1.

 Seleção
◦ Extrai tuplas específicas de uma dada relação;
◦ R WHERE R.X theta R.Y
◦ Exemplos:
 S WHERE CITY = “London”
 P WHERE WIGHT < 14
 Projeção
◦ Extrai atributos específicos de uma dada relação;
◦ R [X,Y,...,Z]
◦ Exemplos:
 S [CITY]
 P [P#, PNAME]

 Junção
◦ Constrói uma relação consistindo em todas as
possibilidades de pares de tuplas concatenadas, de
forma que, em cada par, as duas tuplas satisfaçam
a uma condição específica.

(A TIMES B) WHERE A.X = B.X


X é um atributo
comum a A e B

(A JOIN B)

9
11/11/2009

 Divisão
◦ Toma duas relações, uma binária e uma unária, e
constrói uma relação consistindo em todos os
valores de um atributo da relação binária com
equivalência a todos os valores da relação unária.
◦ (A DIVIDE BY B)
◦ Exemplo:
 ( (SP [S#, P#] DIVIDE BY P [P#] ) JOIN S) [ SNAME ] =

Nome dos fornecedores que fornecem todas as peças.

 Exemplos:

◦ Nomes dos fornecedores que fornecem a peça P2:


((S JOIN SP) WHERE P# = “P2”) [SNAME]

◦ Nomes dos fornecedores que fornecem pelo menos uma peça vermelha:
(((P WHERE COLOR = “RED” [P#] JOIN SP) [S#] JOIN S) [SNAME]

◦ Pares de números de fornecedores de forma que cada par seja localizado


na mesma cidade:
DEFINE ALIAS S1 FOR S
DEFINE ALIAS S2 FOR S

((S1 TIMES S2) WHERE S1.CITY = S2.FIRST


AND S1.S# < S2.S# ) [ S1.S#, S2.S# ]

10

You might also like