Upload
letram
View
227
Download
0
Embed Size (px)
Citation preview
SISTEMAS DE BANCO DE DADOS
Prof. Adriano Pereira Maranhão
1
ÁLGEBRA RELACIONAL
Coleção de operações usadas para manipular
relações
Grupos de operações
Operações relacionais
Seleção; projeção; junção
Operações de conjunto
União; interseção; diferença; produto cartesiano
Operações especiais
2
ÁLGEBRA RELACIONAL
Linguagem de consulta para bancos de dados relacionais
Coleção de operadores sobre relações
Desenvolvida por Codd
Linguagem procedimental
Operações básicas Seleção (σ)
Projeção ()
União (∪)
Diferença (-)
Produto cartesiano (x)
3
Operações Unárias
Operações Binárias
ÁLGEBRA RELACIONAL
Operação de seleção
Exemplo
Considere a relação Empregado
Empregado(matr, nome, ender, cpf, salário, lotação)
Listar todos os empregados que ganham salário maior que
5000
Resp : σsalário>5000 (Empregado)
Listar todos os empregados do departamento com código igual
a 002 e que ganham salários maior que 5000
4
ÁLGEBRA RELACIONAL
Operação de Projeção
Seleciona um subconjunto de atributos de uma
relação
Notação
Ai1, Ai2,…, Ain(r)
r é uma relação com esquema R(A1, A2, …, An)
{Ai1, Ai2, …, Ain} ⊆ {A1, A2, …, An}
Projeção de R sobre os atributos Ai1, Ai2, …, Ain
Exemplo
Listar o nome e salário de todos os funcionários 5
ÁLGEBRA RELACIONAL
Operação de União
Executa a união de duas relações compatíveis
Duas relações com esquemas R(A1, A2, …, An) e
S(B1, B2, …, Bn) são compatíveis
Apresentam o mesmo número de atributos dom(Ai )=
dom(Bi), 0<i≤n
Notação
r ∪ s
6
Operador de União
Exemplo
Considere as seguintes relações
Empregado(matr, nome, ender, dt-nasc, cpf, salário, lotação)
Dependente(nome-dep, data-nasc, matr-resp)
Liste o nome e data de nascimento de todos os
funcionários e dependentes existentes na empresa
nome, dt-nasc (Empregado) ∪ nome-dep, data-nasc (Dependente)
7
ÁLGEBRA RELACIONAL
Operação de Diferença
O resultado da operação r - s é uma relação que
contém todas as tuplas de r que não pertencem a s
r e s são relações compatíveis
Exemplo
Considerando que na empresa só existam as
relações
Empregado e Dependente que referem-se a pessoas,
execute a seguinte consulta. Listar nomes de
empregados, desde que não existam dependentes com
mesmo nome
Resp: nome (Empregado) - nome-dep (Dependente)8
ÁLGEBRA RELACIONAL
Operação de Produto Cartesiano
Sejam r e s relações com esquemas R(A1, A2,
…, An) e S(B1, B2, …, Bm), respectivamente
Resultado da operação r x s é uma relação
T(r.A1, r.A2, …, r.An, s.B1, s.B2, …, s.Bm)
com n+m atributos
cada tupla de T é uma combinação entre uma
tupla de r e uma tupla de s
t∈T ⇔∃v ∈ r e ∃u ∈ s, tal que t[Ai]=v[Ai],
0<i≤n, e t[Bj]=u[Bj], 0<j≤m
Se a cardinalidade de r é nr tuplas e a
cardinalidade s é ns tuplas9
ÁLGEBRA RELACIONAL
Operação de Produto Cartesiano (cont.)
Exemplo
Sejam r e s mostradas abaixo. Calcule r x s
10
A B
a1 b1
a1 b2
a2 b1
A B C
a1 b1 c1
a2 b3 c3
a2 b1 c4
r s
ÁLGEBRA RELACIONAL
Operação de Junção theta (theta-join)
Sejam r e s relações com esquemas R(A1, A2, …,
An) e S(B1, B2, …, Bm), respectivamente
O resultado da operação junção theta entre r e s é
uma relação T(r.A1, r.A2, …, r.An, s.B1, s.B2, …,
s.Bm) definida por
R condição s = σcondição (r x s)
cada tupla de T é uma combinação entre uma tupla
de r e uma tupla de s, sempre que a combinação
satisfaça condição de junção
11
ÁLGEBRA RELACIONAL
Operação de junção theta (cont.)
Exemplo
Sejam r e s mostradas abaixo.
Calcule T= r |x| r.B ≠ s.B s
12
A B
a1 b1
a1 b2
a2 b1
A B C
a1 b1 c1
a2 b3 c3
a2 b1 c4
r s
ÁLGEBRA RELACIONAL
Operação de Junção de Igualdade (Equijoin)
Operação de junção theta, cujo operador de
comparação é a igualdade (=)
Sejam r e s relações com esquemas R(A1, A2, …,
An) e S(B1, B2, …, Bm), respectivamente
O resultado da operação junção de igualdade entre
r e s é uma relação T(r.A1, r.A2, …, r.An, s.B1, s.B2,
…, s.Bm) definida por
R condição s = σcondição (r x s)
13
ÁLGEBRA RELACIONAL
Operação de Junção de Igualdade (cont.)
Exemplo
Considere as relações Departamento (d) e
Empregado (e) mostradas abaixo. Calcule a
seguinte junção de igualdade
Departamento d.cod_d =e.lotacao Empregado
14
cod-
dep
nome ender gerente
1 LOG X,10 4
2 RH Y,20 2
3 FIN Z,30 1
matr nome cpf salario lotacao
1 ze 34 2000 3
2 de 23 4000 2
3 di 56 1500 1
4 li 12 2500 1
5 gi 89 1200 2
ÁLGEBRA RELACIONAL
Operação Junção de Igualdade
Exemplo: Para cada empregado, listar seu
nome e o nome do departamento onde
está lotado.
Resp : e.nome, d.nome (Departamento d.cod_d
=e.lotacao Empregado)
15
ÁLGEBRA RELACIONAL
Operação de Junção Natural (Natural Join)
Operação de junção de igualdade
Todos os atributos com o mesmo nome nas
duas relações participam obrigatoriamente da
condição de junção
Envolvidos no operador de comparação (=)
Aparecem só uma vez na relação resultado
Sejam r e s relações com esquemas R(A1, A2, …,
An, B1, B2, …, Bi) e S(B1, B2, …, Bi, C1, C2, …,
Cm), respectivamente
O resultado da operação junção natural entre r e s
é uma relação T(r.A1, r.A2, …, r.An,B1, B2, …,
Bi,s.C1, s.C2, …,s.Cm) definida por16
ÁLGREBRA RELACIONAL
Operação de Junção Natural (cont.)
Exemplo
Considere as relações Departamento (d) e
Empregado (e) mostradas abaixo. Calcule a
seguinte junção de igualdade
Departamento Empregado
17
cod-
dep
nome ender gerente
1 LOG X,10 4
2 RH Y,20 2
3 FIN Z,30 1
matr nome cpf salario cod_dep
1 ze 34 2000 3
2 de 23 4000 2
3 di 56 1500 1
4 li 12 2500 1
5 gi 89 1200 2
ÁLGEBRA RELACIONAL
Operação de Interseção
O resultado da operação r ∩ s é uma relação que
contém todas as tuplas de r e que pertencem a s
r e s são relações compatíveis
O resultado de r ∩ s é definido por
r ∩ s= r - (r-s)
Operação de divisão
Sejam r e s relações com esquemas R(A1, A2, …,
An, B1, B2, …, Bm) e S(B1, B2, …, Bm),
respectivamente
Resultado da operação r ÷ s
É uma relação T(A1, A2, …, An), onde, para uma tupla v
18
ÁLGEBRA RELACIONAL
Operação de Divisão
Exemplo:
Resultado da operação da divisão de s por
r é definido por
R ÷ S = (r) - ( ( (r) x s) - (r) )
19
A B C
a1 b1 c1
a1 b3 c1
a1 b3 c2
a1 b3 c3
a2 b2 c3
R
C
c1
c2
c3
S
A B
a1 b3
R ÷ S
ÁLGEBRA RELACIONAL
Operação de Atribuição (assignment)
Às vezes, é importante escrever uma
expressão da álgebra relacional em diferentes
partes
Atribuir resultados das partes a relações
temporárias
Notação
:=
←
Exemplo
rel1← R-S(( R-S(r) x s) - R-S,S(r))
rel2← (r)
20
ÁLGEBRA RELACIONAL
Funções Agregadas
Funções aplicadas sobre uma coleção de valores
do banco de dados
Sum
Max
Min
Count
Distinct
21
ÁLGEBRA RELACIONAL
Funções Agregadas (cont.)
Exemplos
Considere a relação Empregado(matr, nome, ender,
salário, cpf, lotação)
matr é a chave primária de Empregado
Encontre o número de empregados lotados no
departamento 001
count( matr (σlotação=001 (Empregado)))
Encontre o maior salário da empresa
max( salário(Empregado))
22
ÁLGEBRA RELACIONAL
Operação de Junção Externa (outer-join)
Considere as seguintes relações
Vendedor(matr, nome, ender, salário, cpf, lotação)
Vendas(matr-vend,cod-item,quantidade, pr-venda)
Considere a seguinte consulta
Listar o histórico de vendas de cada vendedor
Esquema do resultado
Res(matr,nome,cod-item,quantidade,pr-venda)
Res(Vendedor Vendas)
Consulta com perda de informação
Não aparecerão no resultado
Vendedores que não efetuaram vendas
23
ÁLGEBRA RELACIONAL
Definir uma operação que evite esta perda de
informação
Outer join
Adcionar tuplas extras ao resultado de uma junção
natural
Operação de outer-join (cont.)
Tipos
Junção externa à esquerda (left outer join)
Junção externa à direita (right outer join)
Junção externa completa (full outer join)
left outer join 24
PROJETO DE BANCO DE DADOS - FASES
25
PROJETO DE BANCO DE DADOS - FASES
1. Análise (especificação) de requisitos
Projetista de banco de dados deve realizar
entrevista com usuários prospectivos do
banco de dados
Entender e documentar os requisitos de dados
2. Projeto conceitual
Com base nos requisitos de dados
Criar um esquema conceitual para o banco de
dados
Modelo de dados conceitual:MER,Construir um
DER
3.Projeto lógico26
PROJETO DE BANCO DE DADOS - FASES
4. Projeto Físico
Definir estruturas de armazenamento
Como e onde devem ser armazenadas as tabelas
Uma tabela em um arquivo
Várias tabelas em um único arquivo
Definir caminhos de acesso
Definir índices
Definir tipo de índice
Ordenado: Primário, Secundário
Hash
Utilizar critérios de performance27
PROJETO DE BANCO DE DADOS - FASES
5. Implementação
Com base no DR definido na fase 3 e as estruturas
de armazenamento e caminhos de acesso
definidos na fase anterior
Criar o banco de dados
Expressões DDL
Carregar o BD
28
PROJETO DE BANCO DE DADOS - MAPEAMENTO
Mapeamento do MER para um Banco de
Dados Relacional
Ferramentas CASE
Modelagem ER gráfica
Geração automática de esquema (DDL)
Algoritmo de mapeamento
Sete passos
29
PROJETO DE BANCO DE DADOS -
MAPEAMENTO
Diagrama relacional (DR)
Ferramenta gráfica utilizada para representar
um esquema de banco de dados relacional
A partir de um DER, pode-se construir um
DR como descrito a seguir
Passo 1
Para cada conjunto de entidades E, deve ser
criada uma tabela como todos os atributos de
E
Escolher uma chave candidata para ser a
chave primária da tabela
Apenas os componentes atômicos de
30
PROJETO DE BANCO DE DADOS -
MAPEAMENTO
Passo 2
Para cada relacionamento binário 1:1 entre os
conjuntos de entidades E1 e E2
Escolher uma das tabelas, por exemplo E2, e incluir
como chave estrangeira em E2 a chave primária da
outra tabela (E1)
Critério de escolha
Entidade com participação total no relacionamento
Atributos de relacionamentos devem ser incluídos
na tabela com chave estrangeira
Ex :?? 31
PROJETO DE BANCO DE DADOS -
MAPEAMENTO
Passo 3
Para cada relacionamento binário 1:N entre os
conjuntos de entidades E1 e E2
Identificar o conjunto de entidades que participa do lado
N (suponha que seja E2)
Incluir como chave estrangeira na tabela E2 a chave
primária da outra tabela (E1)
Atributos de relacionamentos devem ser incluídos na
tabela com chave estrangeira
Ex: ??
32
PROJETO DE BANCO DE DADOS -
MAPEAMENTO
Passo 4
Para cada relacionamento binário N:N entre os
conjuntos de entidades E1 e E2
Criar uma nova tabela auxiliar tab-aux para representar o
relacionamento
Incluir como chaves estrangeiras na tabela tab-aux as
chaves primárias de E1 e E2
Estes dois atributos comporão a chave primária de tab-
aux
Atributos de relacionamentos devem ser incluídos na
tabela tab-aux
Ex: ?? 33
PROJETO DE BANCO DE DADOS -
MAPEAMENTO
Passo 5
Para relacionamento de grau maior que 2
Criar uma nova tabela auxiliar tab-aux para representar o
relacionamento
Incluir como chaves estrangeiras na tabela tab-aux as
chaves primárias das tabelas que participam do
relacionamento
Estes atributos comporão a chave primária de tab-aux
Ex: ??
34
PROJETO DE BANCO DE DADOS -
MAPEAMENTO
Passo 6
Para cada conjunto de entidades fracas F
Cria uma tabela TFr com todos os atributos de F
Incluir como chave estrangeira de TF a chave primária da
tabela correspondentes ao conjunto de entidades fortes
R
A chave primária de TFr será a chave parcial de F mais a
chave primária de R
Ex: ??
35
PROJETO DE BANCO DE DADOS -
MAPEAMENTO
Passo 7
Para cada atributo multivalorado A de um
conjunto de entidades E1
Criar uma tabela T com o atributo A
Incluir como chave estrangeira em T a chave
primária de E1
A chave primária de T será composta do atributo A
mais a chave primária de E1
Ex: ??
Como Mapear
Especialização/Generalização e Agregação
?36