SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos...

Post on 25-Sep-2018

228 views 0 download

Transcript of SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos...

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