Sei sulla pagina 1di 3

O modelo relacional um modelo de dados representativos (ou de implementao),

adequado a ser o modelo subjacente de um Sistema Gerenciador de Banco de Dados


(SGBD), que se baseia no princpio em que todos os dados esto guardados em tabelas
(ou, matematicamente falando, relaes). Toda sua definio terica e baseada na
lgica de predicados e na teoria dos conjuntos.
O conceito foi criado por Edgar Frank Codd em 1970, sendo descrito no artigo
"Relational Model of Data for Large Shared Data Banks". Na verdade, o modelo
relacional foi o primeiro modelo de dados descrito teoricamente, os bancos de dados
j existentes passaram ento a ser conhecidos como (modelo hierrquico, modelo em
rede ou Codasyl e modelo de listas invertidas).
O modelo relacional para gerncia de bases de dados (SGBD) um modelo de dados
baseado em lgica e na teoria de conjuntos.
Em definio simplificada, o modelo baseia-se em dois conceitos: conceito de
entidade e relao - Uma entidade um elemento caracterizado pelos dados que so
recolhidos na sua identificao vulgarmente designado por tabela. Na construo da
tabela identificam-se os dados da entidade. A atribuio de valores a uma entidade
constri um registro da tabela. A relao determina o modo como cada registro de
cada tabela se associa a registros de outras tabelas.
Historicamente ele o sucessor do modelo hierrquico e do modelo em rede. Estas
arquiteturas antigas so at hoje utilizadas em alguns data centers com alto volume
de dados, onde a migrao inviabilizada pelo custo que ela demandaria; existem
ainda os novos modelos baseados em orientao ao objeto, que na maior parte das
vezes so encontrados como kits em linguagem formal.
O modelo relacional foi inventado pelo Frank Codd e subsequentemente mantido e
aprimorado por Chris Date e Hugh Darwen como um modelo geral de dados. No Terceiro
Manifesto (1995) eles mostraram como o modelo relacional pode ser estendido com
caractersticas de orientao a objeto sem comprometer os seus princpios
fundamentais.
A linguagem padro para os bancos de dados relacionais, SQL, apenas vagamente
remanescente do modelo matemtico. Atualmente ela adotada, apesar de suas
restries, porque ela antiga e muito mais popular que qualquer outra linguagem
de banco de dados.
A principal proposio do modelo relacional que todos os dados so representados
como relaes matemticas, isto , um subconjunto do produto Cartesiano de n
conjuntos. No modelo matemtico (diferentemente do SQL), a anlise dos dados
feita em uma lgica de predicados de dois valores (ou seja, sem o valor nulo); isto
significa que existem dois possveis valores para uma proposio: verdadeira ou
falsa. Os dados so tratados pelo clculo relacional ou lgebra relacional.
O modelo relacional permite ao projetista criar um modelo lgico consistente da
informao a ser armazenada. Este modelo lgico pode ser refinado atravs de um
processo de normalizao. Um banco de dados construdo puramente baseado no modelo
relacional estar inteiramente normalizado. O plano de acesso, outras
implementaes e detalhes de operao so tratados pelo sistema DBMS, e no devem
ser refletidos no modelo lgico. Isto se contrape prtica comum para DBMSs SQL
nos quais o ajuste de desempenho frequentemente requer mudanas no modelo lgico.
Os blocos bsicos do modelo relacional so o domnio, ou tipo de dado. Uma tupla
um conjunto de atributos que so ordenados em pares de domnio e valor. Uma relvar
(varivel relacional) um conjunto de pares ordenados de domnio e nome que serve
como um cabealho para uma relao. Uma relao um conjunto desordenado de
tuplas. Apesar destes conceitos matemticos, eles correspondem basicamente aos
conceitos tradicionais dos bancos de dados. Uma relao similar ao conceito de
tabela e uma tupla similar ao conceito de linha.
O princpio bsico do modelo relacional o princpio da informao: toda
informao representada por valores em relaes (relvars). Assim, as relvars no
so relacionadas umas s outras no momento do projeto. Entretanto, os projetistas
utilizam o mesmo domnio em vrios relvars, e se um atributo dependente de outro,
esta dependncia garantida atravs da integridade referencial.
ndice [esconder]
1 Banco de dados exemplo
2 Exemplo: cliente
3 Ver tambm
4 Referncias
5 Ligaes externas
Banco de dados exemplo[editar | editar cdigo-fonte]
Um exemplo bem simples da descrio de algumas tabelas e seus atributos:
Cliente(ID Cliente, ID Taxa, Nome, Endereo, Cidade, Estado, CEP, Telefone)
Pedido de compra(Nmero do pedido, ID Cliente, Factura, Data do pedido, Data
prometida, Status)
Item do pedido(Nmero do pedido, Nmero do item, Cdigo do produto, Quantidade)
Nota fiscal(Nmero da nota, ID Cliente, Nmero do pedido, Data, Status)
Item da nota fiscal(Nmero da nota,Nmero do item,Cdigo do produto, Quantidade
vendida)
Neste projeto ns temos cinco relvars: Cliente, Pedido de compra, Item do pedido,
Nota fiscal e Item da nota fiscal. Os atributos em negrito e sublinhados so chaves
candidatas. Os itens sublinhados sem negrito so as chaves estrangeiras.
Normalmente uma chave candidata escolhida arbitrariamente para ser chamada de
chave primria e utilizada com preferncia sobre as outras chaves candidatas, que
so ento chamadas de chaves alternativas.
Uma chave primria um identificador nico que garante que nenhuma tupla ser
duplicada; isto faz com que o relacionamento em algo denominado um multiconjunto,
porque viola a definio bsica de um conjunto. Uma chave pode ser composta, isto
, pode ser formada por vrios atributos. Abaixo temos um exemplo tabular da nossa
varivel exemplo Cliente; um relacionamento pode ser abstrado como um valor que
pode ser atribudo a uma relvar.
Exemplo: cliente[editar | editar cdigo-fonte]
ID Cliente ID Taxa Nome Endereo [Mais campos....]
1234567890 555-5512222 Joo Carlos Rua Principal n 120 ...
2223344556 555-5523232 Dorotia Santos Avenida Principal n 12 ...
3334445563 555-5533322 Lisbela da Cruz Rua de trs n123 ...
4232342432 555-5325523 E. F. Codd Travessa principal n 51 ...
4265871131 555-5487333 franciwilliam projetada n 1252 ...
Se ns tentarmos inserir um novo cliente com o ID 1234567890, isto ir violar o
projeto da relvar pois ID Cliente uma chave primria e ns j temos um cliente
com o nmero 1234567890. O DBMS deve rejeitar uma transao como esta e deve acusar
um erro de violao da integridade.
As chaves estrangeiras so condies de integridade que garantem que o valor de um
atributo obtido de uma chave candidata de outra relvar, por exemplo na relvar
Pedido o atributo ID Cliente uma chave estrangeira. Uma unio uma operao que
retorna a informao de vrias relvars de uma vez. Atravs da unio de relvars do
exemplo acima podemos consultar no banco de dados quais so os clientes, pedidos e
notas. Se ns queremos apenas as tuplas de um cliente especfico, podemos
especificar isto utilizando uma condio de restrio.
Se queremos obter todos os pedidos do cliente 1234567890, podemos consultar o banco
de dados de forma que este retorne toda linha na tabela de Pedidos com ID Cliente
igual a 1234567890 e agrupar a tabela de pedidos com a tabela de itens de pedido
baseado no Nmero do pedido.
Existe uma imperfeio no projeto de banco de dados acima. A tabela de notas contm
um atributo nmero do pedido. Assim, cada tupla na tabela de notas ter um pedido,
o que implica precisamente um pedido para cada nota. Mas na realidade uma nota pode
ser criada a partir de muitos pedidos, ou mesmo para nenhum pedido em particular.
Adicionalmente um pedido contm um nmero de nota, implicando que cada pedido tem
uma nota correspondente. Mas novamente isto no verdadeiro no mundo real. Um
pedido s vezes pago atravs de vrias notas, e s vezes pago sem um nota. Em
outras palavras podemos ter muitas notas por pedido e muitos pedidos por nota. Isto
um relacionamento vrios-para-vrios entre pedidos e notas. Para representar este
relacionamento no banco de dados uma nova tabela deve ser criada com o propsito de
especificar a correspondncia entre pedidos e notas:
PedidoNota(Nmero do pedido,Nmero da nota)
Agora, um pedido tem um relacionamento um-para-vrios para a tabela PedidoNota,
assim como o Cliente tem para a tabela de pedidos. Se quisermos retornar todas as
notas de uma pedido especfico, podemos consultar no banco de dados todos os
pedidos cujo Nmero do pedido igual ao Nmero do pedido na tabela PedidoNota, e
onde o Nmero da nota na tabela PedidoNota igual Nmero da nota na tabela
Notas.
A normalizao de banco de dados normalmente realizada quando projeta-se um banco
de dados relacional, para melhorar a consistncia lgica do projeto do banco de
dados e o desempenho transacional.
Existem dois sistemas mais comuns de diagramao que ajudam na representao visual
do modelo relacional: O diagrama de entidade-relacionamento DER, e o diagrama
correlato IDEF utilizado no mtodo IDEF1X criado pela Fora Area dos Estados
Unidos baseado no DER.

Potrebbero piacerti anche