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

36
SISTEMAS DE BANCO DE DADOS Prof. Adriano Pereira Maranhão 1

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

Page 1: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

SISTEMAS DE BANCO DE DADOS

Prof. Adriano Pereira Maranhão

1

Page 2: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

Á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

Page 3: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

Á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

Page 4: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

Á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

Page 5: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

Á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

Page 6: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

Á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

Page 7: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

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

Page 8: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

Á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

Page 9: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

Á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

Page 10: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

Á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

Page 11: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

Á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

Page 12: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

Á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

Page 13: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

Á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

Page 14: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

Á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

Page 15: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

Á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

Page 16: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

Á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

Page 17: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

Á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

Page 18: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

Á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

Page 19: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

Á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

Page 20: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

Á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

Page 21: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

ÁLGEBRA RELACIONAL

Funções Agregadas

Funções aplicadas sobre uma coleção de valores

do banco de dados

Sum

Max

Min

Count

Distinct

21

Page 22: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

Á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

Page 23: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

Á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

Page 24: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

Á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

Page 25: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

PROJETO DE BANCO DE DADOS - FASES

25

Page 26: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

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

Page 27: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

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

Page 28: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

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

Page 29: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

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

Page 30: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

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

Page 31: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

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

Page 32: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

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

Page 33: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

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

Page 34: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

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

Page 35: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

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

Page 36: SISTEMAS DE BANCO DE DADOS - Adriano Maranhão · s.Bm) definida por R condição s = ... Atributos de relacionamentos devem ser incluídos na tabela tab-aux ...

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