Escolar Documentos
Profissional Documentos
Cultura Documentos
Modelagem de Banco de Dados
Modelagem de Banco de Dados
nome_cliente
(
cidade_clliente=Olinda)
(Cliente))
Ao invs de dar o nome da relao como argumento da projeo,
criamos uma expresso que evolui para uma relao.
4. Operao Union
Considere a consulta para encontrar os nomes de todos os clientes
do banco que tenham uma conta, um emprstimo, ou ambos. Note
que a relao cliente no possui esta informao.
Para responder esta pergunta, o banco precisa de informaes da
relao depositante, e da relaodevedor.
Para encontrar todos os clientes com um emprstimo no banco:
nome_cliente
(devedor)
Para encontrar todos os clientes que possuem conta no banco:
nome_cliente
(depositante)
Para responder a consulta precisamos da unio desses dois
conjuntos. Encontramos esses dados na relao binria unio,
denotada por . Logo, a expresso lgica completa da consulta :
nome_cliente
(devedor)
nome-cliente
(depositante)
Em geral precisamos que unies sejam feitas entre relaes
compatveis entre si. Por exemplo, no faria sentido tomar a unio
da relao emprstimo e da relao devedor. Para uma operao
de unio r s vlida, so necessrias duas condies:
1. As relaes r e s devem possuir o mesmo numero de
atributos.
2. Os domnios do I-simo atributo de r e o I-simo
atributo de s devem ser os mesmos para todo i.
5. Operao Diferena entre Conjuntos
A operao diferena entre conjuntos denotada por -, permite-
nos encontrar as tuplas que esto numa relao, mas no em outra.
A expresso r s resulta na relao que contm tuplas que esto
em r mas no em s. Podemos encontrar todo os clientes que
possuem conta no banco mas no contraram emprstimos
escrevendo:
nome_cliente
(depositante) -
nome_cliente
(devedor)
Assim como no caso da operao de unio, precisamos assegurar
que o conjunto diferena seja feito entre relaes compatveis.
Portanto, para que as operaes de diferena entre conjuntos r e
s seja vlida, precisamos que as relaes r e s possuam o mesmo
nmero de atributos e que o domnio do I-simo atributo de r e do
I-simo atributo de s sejam os mesmos.
6. Operao Produto Cartesiano
A operao Produto-Cartesiano representada por x, permite-nos
combinar informaes de duas relaes quaisquer. Representamos
o produto das relaes r1 e r2 por r1 x r2. Uma relao definida
como um subconjunto de um produto cartesiano de um conjunto de
domnios. Desde que um mesmo nome de atributo pode aparecer
tanto em r1 como em r2, precisamos estabelecer um nome de
esquema para diferenciar esses dois atributos. Para os atributos
que aparecem apenas uma vez nos dois esquemas podemos omitir o
nome da relao.
O relao resultante do produto cartesiano de r = devedor x
emprstimo, possui uma tupla para cada par de tuplas possvel: um
da relao devedor outro da relao emprstimo. Ento, a relao
resultante uma relao grande. Assuma que podemos ter n1
tuplas em devedor, e n2 tuplas em emprstimo. A relao
resultante possui n1 * n2 tuplas em r.
Se quisermos, por exemplo, encontrar todos os nomes de todos os
clientes que tenham um emprstimo na agncia casa forte.
Podemos precisar para isso, de informaes das relaes devedor
e emprstimo. Ento a expresso:
devedor.numero_emprstimo = emprstimo.nmero_emprstimo
(
nome_agencia = casa
forte
(devedor x emprstimo))
E se quisermos apenas o nome do cliente, podemos fazer uma
projeo:
nome_cliente
(
devedor.nmero_emprstimo = emprstimo.nmero_emprstimo
(
nome_agncia = casa forte
(devedor x emprstimo)
7. Operao Rename
Ao contrrio das relaes em um banco de dados, o resultado de
uma expresso em lgebra relacional no possui um nome que
possa ser usado para referenci-la. O operador rename
representado pela letra grega rho permite-nos dar nomes a elas.
Dada a expresso em lgebra relacional E, a expresso
x
(E) tem
como resultado a expresso E sob o nome x.
Vises
Em todas as operaes que fizemos at agora, usamos operadores
no nvel lgico. Isto , assumimos que as colees de relaes
dadas sejam, na verdade, relaes armazenadas no banco de
dados. Muitas vezes no desejvel que todos os usurios vejam o
modelo lgico como um todo. Consideraes sobre segurana
podem exigir que determinados dados no estejam disponveis
para alguns usurios.
Com base em questes de segurana, podemos criar uma coleo
de relaes personalizadas de relaes que se ajustam mais as
necessidades do usurio do que ao modelo lgico.
Qualquer relao que no faa parte do modelo lgico, mas
visvel para o usurio como uma relao virtual chamada de viso.
possvel dar suporte a um grande nmero de vises sobre
qualquer conjunto de relaes reais.
Definindo Vises
Definimos uma viso usando o comando create view. Para definir
uma viso, precisamos dar um nome a ela e definir a consulta que
criar essa viso. A forma do comando create view :
Create view v as <expresso_de_consulta>
Como exemplo considere uma viso consistindo de clientes
devedores. Definimos esta viso de clientes_devedores como:
Create view clientes_devedores as
nome_cliente
(
cliente.seguro_social = devedor.seguro_social
(cliente X devedor))
Linguagem SQL
1. A linguagem SQL
SQL tem representado o padro para linguagens de banco de
dados relacionais. Existem diversas verses de SQL. Essa
linguagem, originalmente chamada de SEQUEL, foi implementada
como parte do projeto do Sistema R, no incio dos anos 70.
Inmeros produtos so suporte atualmente para a linguagem
SQL.
A linguagem SQL tem diversas partes: linguagem de definio de
dados, linguagem interativa de manipulao de dados,
incorporao DML, definio de vises, autorizao, integridade,
controle de transaes.
2. Estruturas Bsicas
A estrutura bsica de uma expresso SQL consiste em trs
clusulas: select, from e where.
A clusula select corresponde operao de projeo da
lgebra relacional. Ela usada para relacionar atributos
desejados no resultado de uma consulta.
A clusula from corresponde operao do produto
cartesiano da lgebra relacional. Associa ass relaes que
sero pesquisadas durante a evoluo de uma expresso.
A clusula where corresponde seleo do predicado na
lgebra relacional. Ela consiste em um predicado envolvendo
atributos da relao que aparece na clusula from.
O fato de o termo select possuir significado diferente em SQL e
na lgebra relacional infelizmente histrico e precisa ser
diferenciada.
Uma consulta tpica em SQL tem a seguinte forma:
Select A1, A2,...,An
From r1, r2,,rm
Where P
Onde, cada Ai representa um atributo e cada ri, uma relao. P
um predicado.
A consulta equivalente seguinte expresso em lgebra
relacional seria:
o
e
G
e
n
e
r
a
l
i
z
a
o
Numero_conta Saldo
Conta
Conta_Poupana Conta_Corrente
Taxas_Juros Limite_cheque_especial
Padro Especial Snior
Numero_cheque Taxa_juros
Saldo_mnimo Data_aniversrio
6
11
Generalizao
O refinamento do conjunto de entidades em nveis sucessivos de
subgrupos indica um processo top-down de projeto, no qual as
diferenciaes so feitas de modo explcito. O projeto pode ser
realizado de modo bottom-up, no qual vrios conjuntos de entidades
so sintetizados em um conjunto de entidades de alto nvel, com
base em atributos comuns.
Existem, por exemplo, similaridades entre o conjunto de entidades
conta-movimento e o conjunto de entidades conta-poupana, j que
possuem atributos comuns. Este compartilhamento de atributos
pode ser expressado pela generalizao.
12
Conjuntos de entidades superiores e inferiores podem tambm ser
designados em termos de super e subclasses, respectivamente. O
conjunto de entidades conta uma superclasse e conta_poupana e
conta_corrente so subclasses.
Podemos dizer que a generalizao o inverso da especializao,
onde a diferena entre as duas abordagens podem ser
caracterizadas pelo ponto de partida e seus objetivos gerais.
A especializao parte de um nico conjunto de entidades e
estabelece as diferenas expressas no conjunto de entidades de
nvel inferior.
A generalizao procede para o conhecimento de um nmero de
conjuntos de entidades que compartilham caractersticas comuns,
sintetizando esses conjuntos de entidades em um nico conjunto de
entidades.
7
13
Herana de Atributos
Uma propriedade decisiva das entidades de nveis
superior e inferior criadas pela especializao e pela
generalizao a herana de atributos.
Os atributos dos conjuntos de entidades de nvel
superior so herdados pelos conjuntos de entidades de
nvel inferior.
Os conjuntos de entidades de nvel inferior tambm
herdam a participao em conjuntos de relacionamentos
dos quais participam seus conjuntos de entidades de
nvel superior.
14
Restries de Projeto
Para a modelagem mais apurada de uma empresa, o projetista do
banco de dados pode optar por definir algumas restries em uma
generalizao em particular. Um tipo de restrio envolve a
determinao das entidades que podem participar de um dado
conjunto de entidades de nvel inferior.
Restrio definida por condio: o conjunto de entidades
selecionado com base na satisfao ou no de condies ou
predicados pr-estabelecidos. Um tipo de generalizao definida
por atributo, poderia ser exemplificada com o atributo da entidade
conta, tipo_conta, especializando a mesma em conta_poupana ou
conta_corrente.
8
15
Restries de Projeto
Definida pelo Usurio: Um conjunto de entidades de baixo nvel
definido pelo usurio no tem seus membros classificados por uma
condio, as entidades so designadas a um determinado conjunto
de entidades por usurios do banco de dados. A escolha para
composio de determinada entidade de nvel inferior feita por
critrios individuais, pesando a opinio do usurio, e sua
implementao feita por uma operao que adiciona a entidade ao
conjunto de entidades.
Um segundo tipo de restrio determina se uma entidade pode
pertencer a mais de um conjunto de entidades de nvel inferior.
Mutuamente exclusivos: Exige que uma entidade pertena a apenas
um conjunto de entidades de nvel inferior. Como por exemplo, a
especializao da entidade conta.
16
Restries de Projeto
Sobrepostos: Em generalizaes sobrepostas uma mesma
entidade pode pertencer a mais de um conjunto de entidades
de nvel inferior, dentro de uma generalizao simples. Um
exemplo, poderia ser dos grupos de trabalho de empregados.
A restrio de totalidade determina se uma entidade de nvel
superior pertence ou no, a, no mnimo, um dos conjuntos de
entidades de nvel inferior dentro da generalizao.
Total: cada entidade do conjunto de entidades de nvel
superior deve pertencer a um conjunto de entidades de nvel
inferior.
9
17
Parcial: cada entidade de nvel superior pode pertencer a qualquer
um dos conjuntos de entidades de nvel inferior.
A generalizao conta total, enquanto que a generalizao
empregados, parcial.
Quando uma restrio total aplicada, uma entidade inserida em um
conjunto de entidades de nvel superior dever ser inserida em pelo
menos um dos conjuntos de entidades de nvel inferior.
Em restries definidas por condio, todas as entidades de nvel
superior que satisfaam tal condio devem ser inseridas no
conjunto de entidades de nvel inferior.
Uma entidade excluda de um conjunto de entidades de nvel superior
tambm dever ser excluda de todos os conjuntos de entidades de
nvel inferior s quais pertenam.
18
Agregao
Uma das limitaes do modelo E-R que no possvel
representar relacionamentos entre relacionamentos.
A agregao a abstrao por meio do qual os
relacionamentos so tratados como entidades de nvel
superior. Como um conjunto de entidades tratado da
mesma forma que qualquer outro conjunto de entidades.
Considere o exemplo que descreve informaes sobre
clientes e seus emprstimos.
Suponha que cada par emprstimo-cliente possui um
bancrio, ou agente-emprstimo, responsvel pelo
acompanhamento de determinado emprstimo.
10
19
O conjunto de relacionamentos devedor e agente-
emprstimo poderia ser combinado em um nico
conjunto de relacionamentos. Mas, isso tornaria
obscura a estrutura deste esquema.
Isto poderia, por exemplo, dar a entender que existe
um agente-emprstimo especfico responsvel para
cada par emprstimo-cliente.
Existe ento uma redundncia de informaes na figura
resultante, uma vez que todo par emprstimo-cliente
em agente-emprstimo est tambm em devedor.
A melhor maneira de modelar a situao acima descrita
,pois, a agregao.
20
Seguro_social
Nome_cliente
Rua-cliente
Cidade_cliente
Cliente
devedor
Emprstimo
Numero_emprstimo saldo
Agente_
Emprstimo
Empregado
Seguro_social_empregado
Nome_empregado
Numero_telefone
11
21
Projeto de um Esquema de Banco de
Dados E-R
Diante de uma grande nmero de possibilidades durante o projeto
de um esquema de banco de dados, o projetista tem as seguintes
opes:
Optar entre o uso de um atributo ou de um conjunto de
entidades para representar um objeto;
Expressar uma concepo real por um conjunto de entidades ou
por um conjunto de relacionamentos;
Optar por um conjunto de relacionamentos ternrio, ou por um
par de de relacionamentos binrios;
Decidir se deve usar entidades fortes;
Decidir se o uso de generalizao apropriado;
Agregar grupos de uma parte do diagrama E-R em um conjunto
de entidades simples, caso apropriado.
22
Fases de Projeto
Um modelo de dados de alto nvel proporciona ao projetista uma
base conceitual na qual se pode especificar, de modo sistemtico,
quais as necessidades dos usurios do banco de dados e como este
banco de dados ser estruturado para atender plenamente todas as
necessidades.
A primeira fase do projeto, a especificao das necessidades
do usurio.
A segunda fase a escolha do modelo de dados, por meio da
aplicao de seus conceitos. Este fase chamada de projeto
conceitual, e proporciona uma viso detalhada da empresa.
Nesta fase o projetista tem a responsabilidade de checar as
entidades, relacionamentos, e restries de projeto, como
tambm de remover todo tipo de redundncia existente.
12
23
Fases de Projeto
Na especificao das necessidades funcionais os usurios
descrevem os tipos de operaes ou transaes que sero
realizadas com os dados, como atualizao, consulta e remoo.
O transporte do modelo de dados abstrato para sua implementao
ocorre nas fases finais do projeto. Na fase de projeto lgico, o
esquema conceitual mapeado para o modelo de implementao
fsica de dados do SGBD que est sendo usado.
O projeto fsico totalmente dependente dos recursos do SGBD
utilizado.
Iremos trabalhar na fase do projeto do esquema conceitual.
24
Dados-Exemplo de um Empresa
Bancria
Um banco organizado em agncias. Cada agncia localizada em
uma cidade identificada por um nome nico.
Os clientes do banco so identificados pelo nmero de seu seguro
social. Alm disso, o banco mantm dados como nome, rua e cidade
do cliente. Os clientes podem possuir conta e contrair emprstimos.
O cliente pode estar associado a um agente de emprstimos.
Os empregados do banco tambm so identificados pelo nmero de
seu seguro social. Alm disso, so guardados os dados de nome e
numero de telefone, nome de dependentes,e seguro social de seu
gerente, para cada empregado. Tambm se encontra no banco de
dados a data de contratao do empregado.
13
25
Empresa Bancria
O banco oferece dois tipos de contas: conta-poupana e
conta-movimento. As contas movimento podem possuir
mais de um correntista, e um correntista pode possuir
mais de uma conta. Cada conta possui um nico nmero.
O banco controla o saldo de cada conta assim como a
data de ltimo acesso. A conta poupana possui taxa de
juros associada, e a conta movimento registra os
excessos nos limites.
Um emprstimo originado em uma agncia pode ter sido
obtido por um ou mais clientes. Cada emprstimo
identificado por um nico nmero. O banco controla
alm do montante emprestado, os pagamentos das
parcelas.
26
Identificando as Entidades
Conjunto de entidades agncia cujos atributos so:
Nome_agncia, cidade_agncia, e fundos.
Conjunto de entidades cliente, com os atributos:
Nome_cliente, seguro_social, rua_cliente, e
cidade_cliente. Atributo adicional possvel: nome
bancrio.
Conjunto de entidades empregado, cujos atributos:
Seguro_social_empregado, nome_empregado,
numero_telefone, salrio e gerente. Atributos
adicionais descritivos multivalorados
nomes_dependentes , atributo bsico data_incio, e
e atributo descritivo tempo_de_trabalho.
14
27
Identificando Entidades
Dois conjuntos de entidades contas: conta-poupana e
conta-movimento. Com atributos comuns :
numero_conta e saldo. Possuindo tambm, a conta-
poupana o atributo taxa-juros e a conta-
movimento, o atributo limite_cheque_especial.
Conjunto de entidades emprstimo, com os atributos:
Numero-emprstimo, total e agncia_origem.
Atributos adicionais possveis:
pagamento_emprstimo, multivalorado, composto de:
numero_pagamento, data_pagamento e
total_pagamento.
28
Designao dos Relacionamentos
Devedor: relacionamento muitos para muitos entre
cliente e emprstimo.
Agncia_emprstimo: conjunto de relacionamentos
muitos para um que indica qual a agncia responsvel
pelo emprstimo.
Pagamento_emprstimo: relacionamento um para muitos
entre emprstimo e pagamento que documenta que um
pagamento est sendo feito para um dado emprstimo.
Depositante: com os atributos de relacionamento
data_acesso, um relacionamento muitos para muitos
entre cliente e conta.
15
29
Designao dos Relacionamentos
Agente_cliente: com o atributo tipo, um
relacionamento muitos para um expressando que
um cliente pode ser atendido por determinado
empregado, e que um empregado pode atender um
ou mais clientes.
Trabalha_para: relacionamento entre empregados,
que determina que se trata de gerente ou
empregado, onde um empregado trabalha para um
gerente especfico e que um gerente supervisiona
um ou mais empregados.
30
Exerccios
1. Construa um diagrama E-R para a secretaria de
uma universidade. A universidade mantm dados
sobre cada turma, inclusive do professor,
programa horrio e sala de aula. Para cada par
estudante-turma, uma grade registrada.
Documente todas as suas hipteses sobre o
mapeamento de restries.
2. Construa um diagrama E-R para uma companhia de
seguros de automveis que tem um conjunto de
clientes, cada um deles proprietrio de um ou mais
carros. Cada carro est associado com nenhum ou
vrios registros de acidentes.
16
31
3. Construa um diagrama E-R para um hospital com um
conjunto de pacientes e um corpo mdico. Associe
cada paciente a um pronturio registrando os
diversos exames e avaliaes realizados.