Professional Documents
Culture Documents
Introdução
Domínios
Relações e Predicados
Regras de Integridade de Dados
Álgebra Relacional
Linguagem SQL
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
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);
3
11/11/2009
Tabela Produtos
- Codigo_produto
- Produto
- Categoria
- Preço Data
- Quantidade
- Descrição
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
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
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
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 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 ] =
Exemplos:
◦ Nomes dos fornecedores que fornecem pelo menos uma peça vermelha:
(((P WHERE COLOR = “RED” [P#] JOIN SP) [S#] JOIN S) [SNAME]
10