aula 06

Post on 14-Dec-2015

217 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

aula banco de dados

TRANSCRIPT

1

Banco de Dados Aula 06 – Modelo Relacional

Alexandre Plastino - plastino@ic.uff.br

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

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).

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

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

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)

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

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.

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

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

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).

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).

12

Chave Estrangeira

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.

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.

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).

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).

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.

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).

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.

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).

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

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

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

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.

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

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

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.

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.

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.

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.

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.

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

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

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)

top related