aula 06

34
1 Banco de Dados Aula 06 – Modelo Relacional Alexandre Plastino - [email protected] 13/09/14 1 Banco de Dados - Aula 03 – Modelo ER

Upload: anonymous-cg3k1d

Post on 14-Dec-2015

217 views

Category:

Documents


2 download

DESCRIPTION

aula banco de dados

TRANSCRIPT

Page 1: Aula 06

1

Banco de Dados Aula 06 – Modelo Relacional

Alexandre Plastino - [email protected]

13/09/141Banco de Dados - Aula 03 – Modelo ER

Page 2: Aula 06

Modelo Relacional22

Proposto por Codd em 1970.

Trata-se de um modelo de dados de implementação, um modelo lógico.

No modelo relacional, os dados são organizados em tabelas (relações).

Page 3: Aula 06

Modelo Relacional3

S S# Nome Status CidadeS1 Smith 20 LondresS2 Jones 10 ParisS3 Blake 30 ParisS4 Clark 20 LondresS5 Adams 30 Atenas

SP S# P# QtdS1 P1 300S1 P2 200S1 P3 400S1 P4 200S1 P5 100S1 P6 100S2 P1 300S2 P2 400S3 P2 200S4 P2 ---S4 P4 300S4 P5 400

P P# Nome Cor Peso CidadeP1 Porca Verm 12 LondresP2 Trinco Verde 17 ParisP3 Parafuso Azul 17 RomaP4 Parafuso Verm 14 LondresP5 Prego Azul 12 ParisP6 Rosca Verm 19 London

Exemplo do livro “Introdução a Sistemas de Bancos de Dados”C. J. Date

Page 4: Aula 06

4

13/09/144Banco de Dados - Aula 03 – Modelo ER

Domínio

Conjunto de valores (atômicos) que um determinado atributo pode assumir.

EmpCódigoEmp Nome CodigoDepto CategFuncional

E5 Souza D1 C5E3 Santos D2 C5E2 Silva D1 C2E1 Soares D1 —

• E5

• E4

• E3

• E2

• E1

• E8

• E7• E6

•Soares•Santos

•Souza

•Ana

•Alex•Silva

• D5• D3• D2

• D6

• D4

• D1

• D7• D8

•C1

•C4•C3

•C5 •C6

•C2

D1D2 D3 D4

(varchar(30))

valor nulo

Page 5: Aula 06

Relação (Tabela)5

Uma relação (tabela), definida sobre os domínios D1, D2, ... Dn, é um conjunto de tuplas.

Cada tupla é uma lista de valores <v1,v2,...,vn>, tal que cada valor vi é um elemento do domínio Di, ou é o valor nulo.

Matematicamente, uma relação R definida sobre os domínios D1, D2, ...Dn, é um subconjunto do produto cartesiano D1 x D2 x ... x Dn. Emp

CódigoEmp Nome CodigoDepto CategFuncionalE5 Souza D1 C5E3 Santos D2 C5E2 Silva D1 C2E1 Soares D1 — linha (tupla)

tabela (relação)

R D1 x D2 x ... x Dn

coluna (atributo)

Page 6: Aula 06

Grau e Cardinalidade6

O grau de uma relação R é o número de atributos de R.

A cardinalidade de uma relação R é o número de tuplas de R.

EmpCódigoEmp Nome CodigoDepto CategFuncional

E3 Santos D2 C5E2 Silva D1 C2E1 Soares D1 —

Cardinalidade 3Grau 4

Page 7: Aula 06

Valor Nulo (Vazio)7

Valor especial para representar a ausência de valores ou para indicar que o atributo não se aplica.

Atributo que não admite o valor nulo é chamado atributo obrigatório.

Atributo que admite o valor nulo é chamado opcional.

Page 8: Aula 06

8

Chave

Uma chave é um atributo (ou conjunto de atributos) que identifica univocamente uma relação. Ou seja, um atributo chave não apresenta valores duplicados. As chaves são representadas sublinhadas.

EmpCodigoEmp Nome CodigoDepto CategFuncional CICE1 Souza D1 - 132.121.331-20E2 Santos D2 C5 891.221.111-11E3 Silva D2 C5 341.511.775-45E5 Soares D1 C2 631.692.754-88

chave chave

Page 9: Aula 06

9

Chave

Uma chave é um atributo (ou conjunto de atributos) que identifica univocamente uma relação. Ou seja, um atributo chave não apresenta valores duplicados. As chaves são representadas sublinhadas.

Dependente

CódigoEmp Nome Tipo DataNascE1 João Filho 12/12/91E1 Maria Esposa 01/01/50E2 Maria Esposa 05/11/55E6 Paula Esposa 04/07/60E6 João Filho 03/02/85

chave

Page 10: Aula 06

10

Chave Primária e Chaves Alternativas

As chaves de uma relação, quando há mais de uma, são chamadas chaves candidatas. Uma delas é eleita a chave primária e as outras, se houver, são chamadas chaves secundárias.

EmpCodigoEmp Nome CodigoDepto CategFuncional CICE1 Souza D1 - 132.121.331-20E2 Santos D2 C5 891.221.111-11E3 Silva D2 C5 341.511.775-45E5 Soares D1 C2 631.692.754-88

chave primária chave alternativa

Nenhum atributo que faça parte da chave primária pode admitir o valor nulo (Integridade da Entidade).

Page 11: Aula 06

11

Chave Estrangeira

Uma chave estrangeira de uma relação R é um atributo (ou conjunto de atributos) que referencia a chave primária de uma (outra) relação S.

Desta forma, para qualquer tupla de R, o valor da chave estrangeira deve ser igual ao valor da chave primária de alguma tupla da relação S referenciada, ou deve ser o valor nulo (Integridade Referencial).

Page 12: Aula 06

12

Chave Estrangeira

Page 13: Aula 06

13

Chave Estrangeira

EmpCódigoEmp Nome CodigoDepto CodigoEmpGerenteE5 Souza D1E3 Santos D2 E5E2 Silva D1 E5E1 Soares D1 E2

A chave estrangeira podereferenciar a própria tabela.

Page 14: Aula 06

14

Chave Estrangeira

EmpCódigoEmp Nome CodigoDepto CodigoEmpGerenteE5 Souza D1E3 Santos D2 E5E2 Silva D1 E5E1 Soares D1 E2

CodigoDepto NomeDeptoD1 ComprasD2 EngenhariaD3 Vendas

DeptoAlguma ação deve ser executada ao se tentar remover uma tupla que é referenciada.

Page 15: Aula 06

15

Chave Estrangeira

EmpCódigoEmp Nome CodigoDepto CodigoEmpGerenteE5 Souza D1E3 Santos D2 E5E2 Silva D1 E5E1 Soares D1 E2

CodigoDepto NomeDeptoD1 ComprasD2 EngenhariaD3 Vendas

DeptoOpção 1: bloquear a tentativa de remoção da tupla referenciada (on delete restrict).

Page 16: Aula 06

16

Chave Estrangeira

EmpCódigoEmp Nome CodigoDepto CodigoEmpGerenteE5 Souza D1E3 Santos D2 E5E2 Silva D1 E5E1 Soares D1 E2

CodigoDepto NomeDeptoD1 ComprasD2 EngenhariaD3 Vendas

DeptoOpção 2: propagar a remoção (on delete cascade).

Page 17: Aula 06

17

Chave Estrangeira

EmpCódigoEmp Nome CodigoDepto CodigoEmpGerenteE5 Souza D1E3 Santos D2 E5E2 Silva D1 E5E1 Soares D1 E2

CodigoDepto NomeDeptoD1 ComprasD2 EngenhariaD3 Vendas

DeptoOpção 3: propagar o valor nulo (on delete set null).

Nesse caso, CodigoDepto (em Emp) deve admitir o valor nulo.

Page 18: Aula 06

18

Chave Estrangeira

EmpCódigoEmp Nome CodigoDepto CodigoEmpGerenteE5 Souza D1E3 Santos D3 E5E2 Silva D1 E5E1 Soares D1 E2

CodigoDepto NomeDeptoD1 ComprasD2 EngenhariaD3 Vendas

DeptoOpção 4: propagar o valor default do atributo que forma a chave estrangeira (on delete set default).

Nesse caso, ‘D3’ é o valor default de CodigoDepto (em Emp).

Page 19: Aula 06

19

Chave Estrangeira

EmpCódigoEmp Nome CodigoDepto CodigoEmpGerenteE5 Souza D1E3 Santos D2 E5E2 Silva D1 E5E1 Soares D1 E2

CodigoDepto NomeDeptoD1 ComprasD2 EngenhariaD3 Vendas

DeptoAlguma ação deve ser executada ao se tentar atualizar um valor que é referenciado.

Page 20: Aula 06

20

Chave Estrangeira

EmpCódigoEmp Nome CodigoDepto CodigoEmpGerenteE5 Souza D1E3 Santos D2 E5E2 Silva D1 E5E1 Soares D1 E2

CodigoDepto NomeDeptoD1 ComprasD2 EngenhariaD3 Vendas

DeptoOpção 1: bloquear a tentativa de atualização do valor referenciado (on update restrict).

Page 21: Aula 06

21

Chave Estrangeira

EmpCódigoEmp Nome CodigoDepto CodigoEmpGerenteE5 Souza D1E3 Santos D2 E5E2 Silva D1 E5E1 Soares D1 E2

CodigoDepto NomeDeptoD1 ComprasD2 EngenhariaD3 Vendas

DeptoOpção 2: propagar a atualização (on update cascade).

D4

D4

Page 22: Aula 06

22

Chave Estrangeira

EmpCódigoEmp Nome CodigoDepto CodigoEmpGerenteE5 Souza D1E3 Santos D2 E5E2 Silva D1 E5E1 Soares D1 E2

CodigoDepto NomeDeptoD1 ComprasD2 EngenhariaD3 Vendas

DeptoOpção 3: propagar o valor nulo (on update set null).

Nesse caso, CodigoDepto (em Emp) deve admitir o valor nulo.

D4

Page 23: Aula 06

23

Chave Estrangeira

EmpCódigoEmp Nome CodigoDepto CodigoEmpGerenteE5 Souza D1E3 Santos D3 E5E2 Silva D1 E5E1 Soares D1 E2

CodigoDepto NomeDeptoD1 ComprasD2 EngenhariaD3 Vendas

DeptoOpção 4: propagar o valor default do atributo que forma a chave estrangeira (on update set default).

Nesse caso, ‘D3’ é o valor default de CodigoDepto (em Emp).

D4

Page 24: Aula 06

24

Observações

A ordem das tuplas (linhas) em uma relação (tabela) não é importante (não muda a relação).

O valor de um atributo em uma tupla é monovalorado (atômico).

Consulta aos dados em SGBDs relacionais é feita de forma declarativa, sem considerar a existência de caminhos de acesso.

SQL é a linguagem padrão dos SGBDs relacionais.

Page 25: Aula 06

25

Um dos objetivos de um SGBD é garantir a integridade dos dados.

Para tanto o SGBD deve oferecer mecanismos de definição de restrições de integridade e garanti-las.

Restrições de Integridade

Page 26: Aula 06

26

Integridade de Domínio

Integridade de Nulo (ou Vazio)

Integridade de Chave

Integridade da Entidade

Integridade Referencial

Devem ser garantidas automaticamente por um SGBD relacional.

Restrições de Integridade no Modelo Relacional

Page 27: Aula 06

2727

Integridade de Domínio

Integridade de Nulo (ou Vazio)

Integridade de Chave

Integridade da Entidade

Integridade Referencial

Devem ser garantidas automaticamente por um SGBD relacional.

Restrições de Integridade no Modelo Relacional

O valor de um atributo deve ser um valor do seu domínio.

Page 28: Aula 06

2828

Integridade de Domínio

Integridade de Nulo (ou Vazio)

Integridade de Chave

Integridade da Entidade

Integridade Referencial

Devem ser garantidas automaticamente por um SGBD relacional.

Restrições de Integridade no Modelo Relacional

O valor de um atributo obrigatório não pode ser nulo.

Page 29: Aula 06

2929

Integridade de Domínio

Integridade de Nulo (ou Vazio)

Integridade de Chave

Integridade da Entidade

Integridade Referencial

Devem ser garantidas automaticamente por um SGBD relacional.

Restrições de Integridade no Modelo Relacional

O valor de uma chave não pode ser duplicado.

Page 30: Aula 06

3030

Integridade de Domínio

Integridade de Nulo (ou Vazio)

Integridade de Chave

Integridade da Entidade

Integridade Referencial

Devem ser garantidas automaticamente por um SGBD relacional.

Restrições de Integridade no Modelo Relacional

Atributos que fazem parte da chave primária não podem ter o valor nulo.

Page 31: Aula 06

3131

Integridade de Domínio

Integridade de Nulo (ou Vazio)

Integridade de Chave

Integridade da Entidade

Integridade Referencial

Devem ser garantidas automaticamente por um SGBD relacional.

Restrições de Integridade no Modelo Relacional

o valor de uma chave estrangeira deve ser igual ao valor da chave primária de alguma tupla da relação referenciada, ou deve ser o valor nulo.

Page 32: Aula 06

3232

São restrições de integridade que não são garantidas automaticamente pelo SGBD, a menos que sejam implementadas por mecanismos especiais (como triggers, por exemplo).

São também denominadas Regras de Negócio.

Exemplos:

“Um empregado não pode ter um salário maior do que o do seu gerente.”

“Uma turma deve ter entre 3 e 40 alunos”.

Restrições Semânticas

Page 33: Aula 06

3333

Esquema Relacional Textual

Emp (CodigoEmp,Nome,CodigoDepto,CategFuncional,CIC)

CodigoDepto referencia Dept

Dept (CodigoDepto,Nome)

definição dechave primária

definição dechave primária

definição dechave estrangeira

definição dechave alternativa

1

NNdefinição deatributo obrigatório(Not Null)

NN

NN NNNN

Page 34: Aula 06

3434

Esquema Relacional Textual

R ( A, B, C, D, E, F)NN NNNN NN NN

1 2 2

Chaves candidatas: (A,B), (C,E)

Chave primária: (A,B)

Chave alternativa: (C,E)