Vous êtes sur la page 1sur 55

Banco de Dados

Abordagem Relacional
Professor Marcio Victorino mcvictorino@uol.com.br

Abordagem Relacional
Abordagem de modelagem de dados
utilizada nos sistemas de gerenciamento de
bancos de dados do tipo relacional.
Modelagem a nvel lgico.

Professor Marcio Victorino

Banco de Dados Relacional


Tabelas:
Compostas de:
Linhas;
Colunas; e
Chaves Primrias.

Relacionadas atravs de:


Chaves estrangeiras.

Professor Marcio Victorino

Terminologias

Professor Marcio Victorino

Tabelas

Professor Marcio Victorino

Caractersticas das Tabelas


Linhas de uma tabela no esto ordenadas.
Valor do campo:
Atmico;
Monovalorado.

Professor Marcio Victorino

Implementao de Relacionamento 1:1


Conceitual
CPF

Nome
(0,1)

Homem

CPF

Casa

(0,1)

Nome

Mulher

Lgico
Homem

Mulher

CPF

Nome

CPF

Nome

111

Caio

111

Caio

777

222

Beto

222

Beto

888

333

Abel

333

Abel

CPF

Nome

777

Ana

111

888

Lia

222

999

Bia

Professor Marcio Victorino

Homem

CPF_Homem

Mulher

CPF

Nome

777

Ana

888
999

CPF_Mulher

Lia
Bia

Implementao de Relacionamento 1:1


CPF

Nome

Conceitual

(0,1)

Homem

Casa

CPF
(1,1)

Nome

Mulher

Lgico
Homem

Mulher

CPF

Nome

111

Caio

222

Beto

333

Abel

CPF

Nome

777

Ana

111

888

Lia

222

999

Bia

Professor Marcio Victorino

Homem

CPF_Homem

Mulher

CPF

Nome

111

Caio

777

222

Beto

888

CPF

Nome

777

Ana

888
999

CPF_Mulher

Lia
Bia

Implementao de Relacionamento 1:1


CPF

Nome

Conceitual

(0,1)

Homem

Casa

CPF
(1,1)

Nome

Mulher

Lgico
Homem

Mulher

CPF

Nome

111

Caio

222

Beto

333

Abel

CPF

Nome

777

Ana

111

888

Lia

222

999

Bia

Professor Marcio Victorino

Homem

CPF_Homem

Mulher

CPF

Nome

111

Caio

777

222

Beto

888

CPF

Nome

777

Ana

888
999

CPF_Mulher

Lia
Bia

Implementao de Relacionamento 1:1


Conceitual
CPF

Nome

Homem

CPF

(0,1)

(1,1)

Casa

Mulher

Lgico
Casal
CPF_M Nome_M CPF_H Nome_H
777
888
999

Professor Marcio Victorino

Ana
Lia
Bia

10

111

Caio

222

Beto

Nome

Implementao de Relacionamento 1:1


CPF

Nome

Conceitual

(1,1)

Homem

Casa

CPF
(1,1)

Nome

Mulher

Lgico
Homem

Mulher

CPF

Nome

CPF

Nome

111

Caio

111

Caio

777

222

Beto

222

Beto

888

333

Abel

333

Abel

999

CPF

Nome

777

Ana

111

888

Lia

222

999

Bia

333

Professor Marcio Victorino

Homem

CPF_Homem

Mulher

CPF

Nome

777

Ana

888
999

11

CPF_Mulher

Lia
Bia

Implementao de Relacionamento 1:1


Conceitual
CPF

Nome

Homem

CPF

(1,1)

(1,1)

Casa

Mulher

Lgico
Casal
CPF_M Nome_M CPF_H Nome_H
777
888
999

Professor Marcio Victorino

Ana
Lia
Bia

12

111

Caio

222

Beto

333

Abel

Nome

Implementao de Relacionamento 1:1

Professor Marcio Victorino

13

Implementao de Relacionamento 1:n


Conceitual
CPF

Nome

Pessoa

CNPJ

Trabalha

Empresa

Lgico
Empresa

Pessoa
Professor Marcio Victorino

CNPJ

Nome

1A

IBM

2B

CA

3C

Sun

CPF

Nome

777

Ana

888

Lia

999

Bia
14

CNPJ_Empresa
1A
3C

Nome

Implementao de Relacionamento 1:n


Conceitual
CPF

Nome

Pessoa

CNPJ

(0,N)

(1,1)

Trabalha

Empresa

Lgico
Empresa

Pessoa
Professor Marcio Victorino

CNPJ

Nome

1A

IBM

2B

CA

3C

Sun

CPF

Nome

777

Ana

1A

888

Lia

999

Bia

3C

15

Nome

CNPJ_Empresa

Implementao de Relacionamento 1:n


Conceitual
CPF

Funcao

Nome

Pessoa

(0,N)

Trabalha

CNPJ
(1,1)

Empresa

Lgico
Empresa

Pessoa
Professor Marcio Victorino

CNPJ

Nome

1A

IBM

2B

CA

3C

Sun

CPF

Nome

CNPJ_Empresa

777

Ana

1A

GP

888

Lia

2B

Desenvolvedor

999

Bia

3C
16

Nome

Funcao

Testador

Implementao de Relacionamento 1:n

Professor Marcio Victorino

17

Implementao de Relacionamento n:n


Conceitual
CPF

Nome

Pessoa

Cod

Departamento

Pessoa
Professor Marcio Victorino

Cod

Alocacao
Nome

D01

RH

D02

TI

D03

Adm

CPF

Nome

111

Caio

222

Beto

333

Abel

Nome

Departamento

Lgico
Alocacao

18

Cod

CPF

D01

111

D01

222

D03

222

Implementao de Relacionamento n:n


Conceitual
CPF

Data

Nome

Pessoa

Alocacao

Cod
N

Nome

Departamento

Lgico
Cod

Departamento

Pessoa
Professor Marcio Victorino

Nome

D01

RH

D02

TI

D03

Adm

CPF

Nome

111

Caio

222

Beto

333

Abel

Alocacao

19

Cod

CPF

Data

D01

111

10/10/1999

D01

222

10/11/2000

D03

222

10/12/2001

D03

333

10/10/2002

D01

111

10/10/2003

Implementao de Relacionamento n:n


Conceitual
CPF

Data

Nome

Pessoa

Cod

Alocacao

Nome

Departamento

Salario

Cod

Departamento

Pessoa
Professor Marcio Victorino

Nome

D01

RH

D02

TI

D03

Adm

CPF

Nome

111

Caio

222

Beto

333

Abel

Lgico
Alocacao

20

Cod

CPF

Data

Salario

D01

111

10/10/1999

100,00

D01

222

10/11/2000

200,00

D03

222

10/12/2001

300,00

D03

333

10/10/2002

400,00

D01

111

10/10/2003

500,00

Implementao de Relacionamento n:n

Professor Marcio Victorino

21

Chaves
Conceito bsico para estabelecer relaes
entre as linhas da tabela;
No modelo relacional so consideradas as
chaves:
primrias;
alternativas; e
estrangeiras.

Professor Marcio Victorino

22

Chave Primria
Coluna ou combinao de colunas cujos valores distinguem
uma linha das demais dentro de uma tabela.

A coluna CdigoEmp a chave primria desta tabela pois os


valores contidos em seus campos permitem distinguir uma
linha das demais linhas desta tabela.
Professor Marcio Victorino

23

Chave Estrangeira
Coluna ou combinao de colunas, cujos valores aparecem na chave
primria (candidata) de uma tabela do banco.
Mecanismo que permite a implementao de relacionamentos em um
banco de dados relacional.

Professor Marcio Victorino

24

Chave Estrangeira
CdigoEmp na tabala Dependente uma chave estrangeira
em relao tabela Empregado.

Professor Marcio Victorino

25

Relacionamento Identificador
Conceitual
CPF

Nome

Pessoa

NSeq
N

Possui

Lgico
CPF

Nome

777

Ana

888

Lia

999

Bia

NSeq

Nome

CPF

Luiz

777

Joao

777

Jose

999

Pessoa

Dependente
Professor Marcio Victorino

26

Nome

Dependente

Relacionamento Identificador
Conceitual
CPF

Nome

Pessoa

NSeq
N

Possui

Lgico
CPF

Nome

777

Ana

888

Lia

999

Bia

NSeq

Nome

CPF

Luiz

777

Joao

777

Jose

999

Pessoa

Dependente
Professor Marcio Victorino

27

Nome

Dependente

Validao Chave Estrangeira


Quando da incluso de uma linha na tabela que a contm:
deve ser garantida a existncia do valor da chave estrangeira na
tabela
referenciada
que
contm
a
chave
primria
respectiva.

Quando da alterao do valor da chave estrangeira:


deve ser garantida a existncia do valor da chave estrangeira na
tabela referenciada que contm a chave primria respectiva.

Quando da excluso de uma linha da tabela que contm a


chave primria referenciada pela chave estrangeira:
deve ser garantida que na coluna chave estrangeira no aparea o
valor da chave primria excluda.

Professor Marcio Victorino

28

Validao Chave Estrangeira


Conceitual
CPF

Nome

Pessoa

CNPJ

(0,N)

(1,1)

Trabalha

Empresa

Lgico
Empresa

Pessoa
Professor Marcio Victorino

CNPJ

Nome

1A

IBM

2B

CA

3C

Sun

CPF

Nome

777

Ana

1A

888

Lia

4D

999

Bia

3C

29

Nome

CNPJ_Empresa

Chave Estrangeira (Observao)


O termo chave estrangeira pode levar a crer que est
sempre referenciada a uma chave primria de outra tabela,
mas em certos casos ela pode estar referenciada a uma
chave primria da mesma tabela.

Professor Marcio Victorino

30

Chave Alternativa
EM certas situaes mais de uma coluna ou combinao de colunas
servem para distinguir uma linha das demais dentro de uma tabela.Se
uma destas for escolhida como chave primria, as demais sero
chamadas de chaves alternativas.
No h qualquer diferena entre usar as CdigoEmp ou CIC como chave
primria.

Professor Marcio Victorino

31

Domnios e Valores Vazios


Quando uma tabela criada pode ser definido, para cada
coluna, um conjunto de valores que os campos da
respectiva coluna podem assumir.
Este conjunto de valores conhecido como domnio da
coluna ou domnio do campo.
Deve ainda, ser especificado se os campos da coluna
podem assumir vazios (null). Vazio significa que o campo
no assumiu nenhum valor do seu domnio.
As colunas para as quais no so admitidos vazios so
chamadas de colunas obrigatrias.
As colunas para as quais so admitidos vazios so
chamadas de colunas opcionais.
Os SGBDR exigem que todas as colunas que compem a
chave primria sejam obrigatrias.
chave estrangeira pode conter coluna ou colunas opcionais.
Professor Marcio Victorino

32

Restries de Integridade
uma regra de consistncia de dados que garantida pelo
prprio SGBD.
Restries de Integridade Bsicas;
Integridade de Domnio;
Integridade de Vazio;
Integridade de Chave;
Integridade Referencial;
Integridade de Unicidade;
Integridade de Entidade.
So garantidas automaticamente pelo SGBD Relacional.
O programador no precisa implement-las.

Professor Marcio Victorino

33

Restries de Integridade
Integridade de Domnio:
Define os valores que podem ser assumidos pelos
campos de uma coluna.

Integridade de Vazio:
Especifica se os campos de uma coluna podem ou no
serem vazios.

Integridade de Chave:
Define que os valores da chave primria e alternativa
devem ser nicos.

Professor Marcio Victorino

34

Restries de Integridade
Integridade Referencial:
Define que os valores dos campos que aparecem numa
chave estrangeira devem aparecer na chave primria
(candidata) da tabela referenciada.

Integridade de Unicidade:
Define que o valor do campo ou campos so nicos.

Integridade de Entidade:
Define que nenhum valor da chave primria pode ser
nulo.

Professor Marcio Victorino

35

Categorias de Restries (Date, p.231)


Restries de Banco de Dados (Tabelas):
Valores que determinado banco de dados tem permisso
para assumir.

Restries de RelVar (Atributos):


Valores que determinada RelVar tem permisso para
assumir.

Restries de Atributo (Tipagem):


Valores que determinada atributo tem permisso para
assumir.

Restries de Tipo (Domnio):


Valores que constituem determinado tipo.

Professor Marcio Victorino

36

Restries Semnticas (regras de negcio)


Existem outras restries que no se
encaixam nas acima citadas, mas so
necessrias para um BDR, so as restries
semnticas e precisam ser desenvolvidas
pelos programadores.
Exemplos:
um empregado do Setor de Finanas no pode
ser Mdico.
um empregado no pode ter salrio maior do
que seus chefes.
Professor Marcio Victorino

37

Especificao de Banco de Dados


A especificao do Banco de Dados
Relacional (BDR), ou esquema do BDR, deve
conter no mnimo:
Tabelas que formam o BDR;
Colunas que as tabelas possuem;
Restries de integridade.

Professor Marcio Victorino

38

Especificao de Banco de Dados


Cada tabela listada pelo seu nome.
Aps o nome da tabela e entre parntesis so
listados os nomes das colunas, separados por
vrgula.
A coluna ou colunas que contm a chave primria
so sublinhadas.
Aps a definio da tabela so listadas as
definies das chaves estrangeiras que aparecem
na tabela.
Se a chave estrangeira formada por vrias
colunas, elas so declaradas separadas por
vrgulas.
Professor Marcio Victorino

39

Especificao de Banco de Dados

Empregado ( CdigoEmp, Nome, CdigoDepto, CategFunc )


Dependente ( NDepen, CdigoEmp, Nome, Tipo, DataNasc )
CdigoEmp referencia Empregado
Professor Marcio Victorino

40

40

Transformao de Modelos
Mundo
Real

Requisitos
de Dados

Coleta/Especificao
de Requisitos

Requisitos
Funcionais

Projeto Conceitual

Anlise Funcional

Projeto Lgico

Projeto Funcional

Projeto Fsico

Programao

dados
e
regras

Professor Marcio Victorino

SGBD

41

Programa
de
Programa
de
Programa
de
aplicao
de
BD
aplicao
de BD
aplicao

Transformao de Modelos

Professor Marcio Victorino

42

Transformao de Modelos
OBJETIVOS DO PROJETO DE BANCOS DE DADOS
- boa performance;
- simplicidade de desenvolvimento;
- simplicidade de manuteno.

PRINCPIOS PARA UMA BOA TRADUO


- evitar junes - ter os dados necessrios a uma
consulta numa mesma linha;
- diminuir a repetio de chaves primrias; e
- evitar campos opcionais.
Professor Marcio Victorino

43

Transformao de Modelos

Professor Marcio Victorino

44

Transformao de Modelos

Professor Marcio Victorino

45

Transformao de Modelos

Professor Marcio Victorino

46

Transformao de Modelos

Professor Marcio Victorino

47

Transformao de Modelos

Professor Marcio Victorino

48

Transformao de Modelos

Professor Marcio Victorino

49

Implementao de Relacionamento com grau > 2

Professor Marcio Victorino

50

Implementao da Generalizao
Trs formas de implementao:
Uma TABELA para toda a hierarquia.
Uma TABELA para cada entidade da hierarquia.
Uma TABELA para cada entidade especializada.
CPF

Idioma

Professor Marcio Victorino

CNH

51

Nome

CRM

Uma TABELA para toda a hierarquia


Conceitual

CPF

Lgico

Nome

Empregado

Idioma

CNH

Professor Marcio Victorino

CRM

52

CPF

Nome

Idioma

CNH

CRM

Tipo

111

Ana

--

--

--

PES

222

Caio

--

--

--

PES

333

Lia

Ingls

--

--

SEC

444

Beto

--

M43

--

MOT

555

Joo

--

--

C32

MED

Uma TABELA para cada entidade da hierarquia


Conceitual
CPF

Idioma

CNH

Lgico
Empregado

Nome

Secretria

CRM

Motorista
Mdico
Professor Marcio Victorino

53

CPF

Nome

111

Ana

222

Caio

333

Lia

444

Beto

555

Joo

CPF

Idioma

333

Ingls

CPF

CNH

444

M43

CPF

CRM

555

C32

Uma TABELA para cada entidade especializada


Conceitual

Lgico
Secretria

CPF

Nome

CPF

Nome

Idioma

333

Lia

Ingls

Motorista

Idioma

CNH

CPF

Nome

444

Beto

CNH
M43

CRM

Mdico

Professor Marcio Victorino

54

CPF

Nome

CRM

555

Joo

C32

Fim
Professor Marcio Victorino

55