Sunteți pe pagina 1din 11

O Modelo Relacional

Edgar Frank Codd prope o modelo de


dados relacional (1970-1972), que se
tornou um marco de como pensar em
banco de dados. Ele desconectou a
estrutura lgica do BD do mtodo de
armazenamento fsico. Este sistema se
tornou padro desde ento.
 Tem por finalidade representar os dados
como uma coleo de relaes, onde
cada relao representada por uma
tabela.


Modelo Relacional
Disciplina:
Disciplina: Banco de Dados I
Prof.:
Prof.: Carlos Eder

Detalhes do Modelo Relacional




Quando uma relao pensada como uma


tabela de valores, cada linha nesta tabela
representa uma coleo de dados
relacionados.
Estes valores podem ser interpretados como
fatos descrevendo uma instncia de uma
entidade ou de um relacionamento.
O nome da tabela e das colunas desta tabela
so utilizados para facilitar a interpretao dos
valores armazenados em cada linha da tabela.
Todos os valores em uma coluna so
necessariamente do mesmo tipo.

Detalhes do Modelo Relacional




Cada linha de nossa relao ser chamada de


TUPLA e cada coluna de nossa relao ser
chamada de ATRIBUTO. O conjunto de valores
possveis de serem assumidos por um atributo,
ser intitulado de DOMNIO.

O modelo relacional tem trs


aspectos importantes:

Os SGBDs relacionais
oferecem benefcios como:

ESTRUTURAS

As estruturas so objetos bem definidos (tabelas,


vises, ndices e assim por diante) que armazenam ou
acessam os dados de um Banco de Dados. As
estruturas e os dados contidos dentro delas podem ser
manipulados pelas operaes.

OPERAES

As operaes so aes definidas claramente que


permitem aos usurios manipular os dados e as
estruturas de um banco de dados. Elas devem obedecer
a um conjunto predefinido de regras de integridade.

REGRAS DE
INTEGRIDADE

As regras de integridade so as leis que governam as


operaes permitidas nos dados e nas estruturas de um
Banco de Dados. Elas protegem os dados e as
estruturas de um banco de dados, garantindo
integridade e segurana para a estrutura.

Independncia do armazenamento fsico


de dados e da estrutura lgica do banco
de dados.
 Acesso diversificado e fcil a todos os
dados.
 Flexibilidade completa no projeto de
banco de dados.
 Armazenamento reduzido de dados e
redundncia.

Alguns comentrios...


O MODELO RELACIONAL NO
NORMALIZADO

Livros

Alguns comentrios...


ISBN

A modelagem facilitada em vrios casos, com


a utilizao do MRNN. Um exemplo tpico de
melhora em relao ao MR normalizado o de
uma biblioteca:
Um livro pode ter vrios autores e vrios
assuntos. Para isso ser modelado com o MR,
pode ser necessria a utilizao de trs
relaes:
 Uma

para os livros
 Outra para os assuntos
 E a terceira para os nomes dos autores

Se for utilizado o MRNN, os dados


anteriores podem ser representados em
apenas uma relao:
Livros
ISBN

Ttulo

Assuntos*

Uma das caractersticas do MR normalizado, o


fato das clulas das relaes poderem
armazenar somente valores que no podem ser
decompostos (1FN). No MRNN essa restrio
retirada, permitindo a representao de
atributos multivalorados ou compostos ou, de
uma maneira geral, valores que so relaes.
O MRNN teve vrias denominaes na
literatura, entre elas de nested relations
(relaes aninhadas), relational model with
relation-valued attributes, non-first normal
form, NF2 entre outras.

NomesAutores*

1234

A Internet

Computadores
Redes

Jos
Joo
Maria
Pedro

4321

Casa e Fogo

Cozinha
Decorao
Arquitetura

Ney

1111

A arte no sculo XIX

Artes

Marcelo
Geraldo

2222

Futebol

Esporte

Joaquim

Ttulo

1234

A Internet

4321

Casa e fogo

1111

A arte no sculo
XIX

2222

Futebol

AutoresLivros
Nome Autor

CodLivro

Assuntos
ISBN_Livro

Assunto

1234

Computadores

4321

Cozinha

1111

Artes

Jos

1234

2222

Esporte

Joo

1234

1234

Redes

Maria

1234

4321

Decorao

Ney

4321

4321

Arquitetura

Marcelo

1111

Geraldo

1111

Pedro

1234

Joaquim

2222

MRNN
No esquema as colunas multivaloradas so marcadas com
asterisco (*). Notamos que o esquema fica mais simples e claro, e
representa de uma maneira melhor a realidade: cada livro apenas
uma entidade, sendo representado por uma nica linha e no por
vrias em diferentes relaes.
 Outro exemplo de modelagem que se beneficia das caractersticas
do MRNN o do cadastro de funcionrios ou clientes com atributos
multivalorados: alm de nome, endereo, data de nascimento, etc.,
queremos modelar o fato de um funcionrio poder possuir vrios
telefones e dominar vrias lnguas. Para representar esses dados
no MR, ser necessrio o uso de trs relaes: uma para
armazenar os atributos monovalorados, outra para os telefones, e
ainda outra para as lnguas.
 Vamos utilizar o seguinte esquema:
Funcionrios (Chapa, Nome, Endereo, DataNascimento)
Lnguas (Chapa_Func, lngua, nvel)
Telefones (Chapa_Func, Telefone)


MRNN

Relaes

No MRNN utilizaremos apenas uma tabela para representar esses


dados.

Funcionrios
RG

Nome

Endereo

DataNascimento

1234

Jos

Rua 1

01/01/70

1111

Maria

Rua X

01/05/60

4321

Joo

Rua 2

31/12/69

Telefones

Lnguas

Chapa_Func

Telefone

Chapa_Func

Lngua

Nvel

1234

555-5555

1234

Ingls

1111

707070

1234

Francs

4321

888-5555

1111

Portugus

1234

666-9999

1111

Alemo

4321

Italiano

Atributo Chave de uma Relao




Uma relao pode ser definida como um


conjunto de tuplas distintas. Isto implica
que a combinao dos valores dos
atributos em uma tupla no pode se
repetir na mesma tabela. Existir sempre
um subconjunto de atributos em uma
tabela que garante que no haver
valores repetidos para as diversas tuplas
da mesma.

Atributo Chave de uma Relao




Em outras palavras, uma superchave uma chave composta, ou


seja, uma chave formada por mais que um atributo.

Funcionrios (Chapa, Nome, Endereo, DataNascimento,


Lnguas(Lngua, Nvel)*, Telefones*)
Chapa

Nome

Endereo

DataNascimento

Lnguas*
(Idioma, nvel)

Telefones*

1234

Jos

Rua 1

01/01/70

(Ingls, 1)
(Francs, 1)

555-5555
666-9999

1111

Maria

Rua X

01/05/60

(Portugus, 4)
(Alemo, 3)

707070

4321

Joo

Rua 2

31/12/69

(Italiano, 2)

888-5555

A soluo com o MRNN, alm de diminuir a redundncia das chaves


das relaes e o nmero destas (no exemplo, a existncia de uma
chave torna-se at suprflua), mais simples e eficiente.

Atributo Chave de uma Relao




Atributo Chave de uma Relao




Tabela DEPENDENTES
RG Responsvel
(FK)

Nome Dependente
(PK)

Dt. Nascimento

Relao

Sexo

10101010

Jorge

27/12/86

Filho

Masculino

10101010

Luiz

18/11/79

Filho

Masculino

20202020

Fernanda

14/02/69

Conjuge

Feminino

20202020

Osvaldo

10/02/95

Filho

Masculino

30303030

Fernanda

01/05/90

Filho

Feminino

SC chamada de superchave de um esquema de relao. Toda


relao possui ao menos uma superchave o conjunto de todos os
seus atributos. Uma chave C de um esquema de relao R uma
superchave de R com a propriedade adicional que removendo
qualquer atributo de A de K, resta ainda um conjunto de atributos K
que no uma superchave de R. Uma chave uma superchave da
qual no se pode extrair atributos.
Por exemplo, o conjunto: (RG, Nome, Endereo) uma superchave
para estudante, porm, no uma chave pois se tirarmos o campo
Endereo continuaremos a ter uma superchave. J o conjunto
(Nome da Revista, Volume, No da Revista) uma superchave e
uma chave, pois qualquer um dos atributos que retirarmos,
deixaremos de ter uma superchave, ou seja, (Nome da Revista,
Volume) no identifica uma nica tupla.

Quando uma relao possui mais que uma chave (no confundir
com chave composta) como por exemplo RG e CPF para
empregados cada uma destas chaves so chamadas de chaves
candidatas. Uma destas chaves candidatas deve ser escolhida
como chave primria.
Uma chave estrangeira (FK) de uma tabela R1 em R2, ou viceversa, especifica um relacionamento entre as tabelas R1 e R2.

Atributo Chave de uma Relao


Tabela DEPARTAMENTO
Nome

Nmero

RG Gerente

Contabilidade

10101010

Engenharia Civil

30303030

Engenharia Mecnica

20202020

Informaes em um
Banco de Dados

Tabela EMPREGADO
Nome

RG

CPF

Depto.

RG Supervisor

Salrio

Joo Luiz

10101010

11111111

NULO

3.000,00

Fernando

20202020

22222222

10101010

2.500,00

Ricardo

30303030

33333333

10101010

2.300,00

Jorge

40404040

44444444

20202020

4.200,00

Renato

50505050

55555555

20202020

1.300,00

Manipulao de dados
Recuperao da informao armazenada;
 Insero de novas informaes;
 Excluso de informaes;
 Modificaes de dados armazenados;


Modelo Relacional


um modelo onde a informao dividida


em entidades com propriedades e em
relacionamentos;
Usurio

Usurio

Login = Hudson
Senha = senha

Login = Hudson
igual a

e-mail = x@x.x

Senha = senha
e-mail = x@x.x

Entidades

Modelo Relacional


Modelo Relacional

um modelo onde a informao dividida


em entidades com propriedades e em
relacionamentos;
Usurio

Usurio

Login = Hudson
Senha = senha

igual a

e-mail = x@x.x

Propriedades

um modelo onde a informao dividida


em entidades com propriedades e em
relacionamentos;
Usurio

Login = Hudson

Login = Hudson

Senha = senha

Senha = senha

e-mail = x@x.x

e-mail = x@x.x

Usurio
Login = Hudson
igual a

Senha = senha
e-mail = x@x.x

Relacionamento

Modelo Relacional

Modelo Relacional

Relacionamentos

Modelo Relacional

Modelo Relacional
Identificao de entidades

Modelo Relacional

Identificao de propriedades

Modelo Relacional
Tipo dos dados

Restrio

Modelo Relacional

Modelo Relacional
Relacionamentos

Modelo Relacional


Restrio

Modelo Relacional

Tipos de relacionamentos:
1

para 1

1

Um usurio tem apenas um login


1 para 1

para N

N


Um usurio pode ser de vrios tipos

para N
Um usurio pode ser de vrios tipos. E cada tipo
pode ter vrios usurios associados a ele

Modelo Relacional

Modelo Relacional

1 para N

N para N

Modelo Relacional
A maior parte dos sistemas de informtica
atuais utilizam o modelo relacional como
forma de armazenamento;
 um modelo com dcadas de
maturidade;


NORMALIZAO

NORMALIZAO
o processo de organizao eficiente dos
dados dentro de um banco de dados, com
a aplicao de uma srie de regras sobre
as tabelas para verificar se estas esto
corretamente projetadas.
 O processo de normalizao tem dois
objetivos principais:


NORMALIZAO


 Eliminar

dados redundantes.
misturar assuntos em uma mesma
tabela.

 No

NORMALIZAO


Durante a modelagem conceitual poderemos estar


trabalhando sobre estruturas no normalizadas. Essa uma
caracterstica que muitas vezes tem passado despercebida
por algumas pessoas: no h qualquer restrio sobre o fato
de que uma entidade conceitual no se apresente
normalizada.
Tambm o fato de muitas vezes termos necessidade de
representar um ambiente de escopo bastante grande (um
modelo corporativo, por exemplo) nos levar
obrigatoriamente a trabalhar com entidades no
normalizadas. Normalizar um modelo corporativo acabaria
por transform-lo em um modelo de propores incabveis
fazendo, ento, com que ele acabasse por perder sua
finalidade que a de espelhar de modo geral um grande
escopo atravs de um reduzido nmero de elementos.
Lembre-se de que no possvel representar o mapa do
Brasil com todas as ruas, quadras e lotes.

Encarar a normalizao como imposio de


regras que simplesmente restringem nossa
liberdade no projeto de banco de dados ter
uma viso muito simplificada do que representa
esse processo. Acima de tudo, a normalizao
prope uma srie de passos a serem seguidos
para que tenhamos um processo de verificao,
validao e ajuste das estruturas de dados que
porventura tenham sido observadas,
modeladas, mas que ainda apresentem
distores quanto realidade.

Primeira Forma Normal


Uma varivel est em 1FN se, e somente
se, em todo valor vlido dessa varivel de
relao, cada tupla contm exatamente
um valor para cada atributo.
 Uma tabela est em 1FN quando no
contm grupos de repetio.


Procedimento para normalizao:




Identificar os grupos repetitivos e removlos;

Exemplo - Primeira Forma


Normal
Tabela totalmente desnormalizada:
pedido (num_pedido, data_pedido,
cod_cliente, nome_cliente, end_cliente,
cod_produto, nome_produto,
quant_produto, preo_produto,
total_produto, total_pedido).

Exemplo - Primeira Forma


Normal

Observaes - Primeira
Forma Normal

Aps a 1FN:

pedido (num_pedido, data_pedido, cod_cliente,


nome_cliente, end_cliente, total_pedido)
itempedido (num_pedido, cod_produto,
nome_produto, quant_produto,
preo_produto, total_produto)

Segunda Forma Normal




Uma varivel de relao est em 2FN, se e


somente se, ela est em 1FN e todo atributo
no-chave irredutivelmente dependente da
chave primria.
Ocorre quando a chave primria composta por
mais de um campo. Neste caso, devemos
observar se todos os campos que no fazem
parte da chave dependem de todos os campos
que compem a chave. Se algum campo
depender somente de parte da chave composta,
ento esse campo deve pertencer outra
tabela.

Na tabela pedido inicial, verificamos que


produto poder se repetir por N vezes.
Ento, retiramos esse grupo repetitivo e
criamos uma outra tabela para ele que
chamamos de itempedido.

Procedimentos para normalizao:


Identificar os atributos que no so
dependentes de toda a chave primria;
 Remover da entidade todos esses
atributos identificados e criar uma nova
entidade com eles.


Exemplo Segunda Forma


Normal

Exemplo Segunda Forma


Normal

No nosso exemplo, a tabela itempedido


possui chave composta. Aplicaremos a
2FN nessa tabela.
Tabela apenas em 1FN:
itempedido (num_pedido, cod_produto,
nome_produto, quant_produto,
preo_produto, total_produto)

Aps a 2FN:
itempedido (num_pedido, cod_produto,
quant_produto, total_produto)

Observaes Segunda
Forma Normal


Os atributos dependentes da chave composta


por num_pedido e cod_produto so
quant_produto e total_produto. Por isso
deixamos esses atributos na tabela itempedido.
Os atributos nome_produto e preco_produto
so dependentes exclusivamente de
cod_produto. Por isso criamos uma nova
tabela com esses atributos. A chave da nova
tabela cod_produto pelo fato dos atributos
dependerem de cod_produto.

Procedimentos para normalizao


Identificar todos os atributos que so
dependentes transitivos da chave
primria;
 Remov-los e criar nova entidade com os
mesmos.


produto (cod_produto, nome_produto,


preo_produto)

Terceira Forma Normal







Uma varivel de relao est em 3FN, se e


somente se, ela est em 2FN e todo atributo
no-chave dependente de forma no transitiva
da chave primria.
E o que seria dependncia transitiva?
Sejam A, B e C trs atributos de uma entidade
X. Se C depender de B, e B depender de A,
ento dizemos que C transitivamente
dependente de A.
Para uma tabela estar em 3FN no pode haver
dependncias transitivas.

Exemplo Terceira Forma


Normal


Peguemos como exemplo a tabela pedido.


Tabela em 2FN:

pedido (num_pedido, data_pedido,


cod_cliente, nome_cliente, end_cliente,
total_pedido)

Exemplo Terceira Forma


Normal

Observaes Terceira
Forma Normal

Aps 3FN:

pedido (num_pedido, data_pedido,


cod_cliente, total_pedido)

cliente (cod_cliente, nome_cliente,


end_cliente)

Os atributos que so dependentes de forma


no-transitiva da chave num_pedido so
data_pedido, total_pedido e cod_cliente. Por
isso deixamos esses atributos na tabela pedido.
Os atributos nome_cliente, end_cliente so
dependentes transitivos de num_pedido, por
isso, os removemos e criamos uma nova tabela
com os mesmos. A chave da nova tabela
cod_cliente, pois os atributos nome_cliente e
end_cliente so dependentes no-transitivos
de cod_cliente.

Algumas Linguagens
Relacionais
LISP
 OPAL
 QBE
 Quel
 Datalog


OUTRAS LINGUAGENS
RELACIONAIS

LISP
Possui extenses semelhantes a SQL
Exemplos:
select Al nome, nota from Matricula
where: Disc Nome = MAC-110 and:
SemAno = 1/95


OPAL


Surgiu da idia de transformar a


linguagem Smalltalk em uma linguagem
para banco de dados. uma linguagem
de declarao e manipulao de dados.

QBE (Query-by-Example)



Tem por base o clculo relacional de domnio.


o nome tanto da linguagem de manipulao de dados
quanto do sistema de banco de dados que a contm. Foi
desenvolvido pela IBM. Ao contrrio da maioria das
linguagens de programao por consulta, a QBE tem uma
sintaxe bidimensional: as consultas parecem tabelas. Uma
consulta em uma linguagem unidimensional (por exemplo,
SQL) pode ser escrita em uma (possivelmente longa) linha.
Uma linguagem bidimensional exige duas dimenses para
sua expresso.
Consultas em QBE so expressas por exemplo. Em vez
de determinar um procedimento para obteno da resposta
desejada, o usurio d um exemplo do que desejado. O
sistema generaliza o exemplo para o processamento da
resposta da consulta.

Datalog


uma linguagem de consulta no-procedural


baseada na lgica de programao da
linguagem Prolog. Como ela faz no clculo
relacional, o usurio descreve a informao
desejada sem fornecer um procedimento
especfico para obteno dessa informao.
Embora no seja usada comercialmente hoje
em dia, ela tem sido empregada em diversos
sistemas de banco de dados em pesquisa.

Quel
Tem por base o clculo relacional de
tuplas.
 Como a SQL, a QBE e a Quel contm
muitos outros recursos alm da consulta
ao banco de dados. Esses recursos
incluem meios para a definio da
estrutura dos dados, para a modificao
dos dados no banco de dados e para a
especificao de regras de segurana.


Mapeamento proposto para o


modelo de classes

S-ar putea să vă placă și