Você está na página 1de 144

Banco de Dados

Parte do contedo exposto nestas transparncias foi retirado dos livros:


Projeto de Banco de Dados, de Carlos A. Heuser ;
Projeto de Banco de Dados - Uma viso prtica, de Felipe Machado e Maurcio Abreu
Parte 1
Conceitos Bsicos
3
Dado x Informao
DADO: algo conhecido, informado, mas sem
tratamento sistmico, ou seja, o DADO precisa de
um processamento bsico para se transformar em
INFORMAO;
INFORMAO o DADO processado !
Ex: Jogo de Baralho. Cartas/Jogada
Algoritmo para fazer a soma de dois ns X e Y.
Os nmeros so os dados e o resultado a informao
que se deseja saber.
4
Dado x Informao
Ex: Imagine que o sistema armazene os seguintes itens
a respeito dos funcionrios de uma empresa.
Nmero
Nome
Data Contratao
Endereo
Bairro
Cidade
O que DADO
e o que
INFORMAO?
Os itens acima referem-se aos dados do funcionrio e a
partir destes dados possvel extrair informaes.
Ex: - O tempo que o funcionrio trabalha na empresa;
- O endereo do funcionrio (endereo+bairro+ cidade)
5
Compartilhamento de Dados
Quando a implantao da Informtica nas organizaes
ocorre de forma gradual, provvel que ocorram alguns
problemas.
Suponha que uma indstria execute trs funes bsicas:
Vendas: concentra as atividades relativas ao contado com
os clientes, como fornecimento de cotaes de preos,
vendas e a disponibilidade de produtos
Produo: concentra as atividades relativas produo
propriamente dita, como planejamento da produo, ou
seja, dos produtos e controle do que foi produzido
Compras: concentra as atividades relativas aquisio
de insumos necessrios produo, como cotaes de
preos junto a fornecedores, etc.
6
SISTEMA
PRODUO
SISTEMA
VENDAS
SISTEMA DE
COMPRAS
O que voc vai
PRODUZIR?
PRODUTO
preciso saber quais
os componentes dos
produtos e como so
produzidos.
O que voc vai
VENDER?
PRODUTO
preciso saber o preo
do produto, seu prazo de
validade, estoque...
O que voc vai
COMPRAR?
MATRIA-PRIMA do
PRODUTO
preciso saber quais
componentes sero
adquiridos para fabricar o
produto
Arquivos Produo
Arquivos Vendas Arquivos Compras
Compartilhamento de Dados
7
Compartilhamento de Dados
Se cada uma das funes for informatizada de forma
separada, pode ocorrer que, para cada uma delas, seja criado
um arquivo separado para PRODUTOS.
Dados de diferentes aplicaes no esto integrados;
Dados esto projetados para atender uma aplicao
especfica.
SISTEMA
PRODUO
SISTEMA
VENDAS
SISTEMA DE
COMPRAS
Arquivos Produo Arquivos Vendas Arquivos Compras
Produto Produto Produto
8
Problemas da Falta de Integrao de Dados
Redundncia Controlada e No Controlada de Dados
Redundncia de Dados - o mesmo objeto da realidade
armazenado mais de uma vez no banco de dados.
Ex: Produtos
Redundncia Controlada - acontece quando o software
tem conhecimento da mltipla representao e garante
a sincronia entre as diversas representaes. Ou seja,
atualiza automaticamente os dados quando necessrio.
Ex: Sistemas distribudos - um mesmo dado
armazenado em vrios computadores, permitindo
acesso rpido a partir de qualquer um deles.
9
Problemas da Falta de Integrao de Dados
Redundncia No Controlada - acontece quando a
responsabilidade pela manuteno da sincronia entre as
diversas representaes de um dado est com o usurio.
Redundncia No Controlada leva a :
Redigitao de Dados - o mesmo dado digitado vrias
vezes no sistema. Este trabalho repetitivo pode levar a
erros;
Inconsistncia dos Dados - os dados podem no
representar corretamente a realidade. Imagine que o
usurio alterou o preo de um produto no sistema de
compra mas no alterou no sistema de vendas.
Dificuldade de extrao de informaes - os dados
projetados para atender uma aplicao especfica po-
dem gerar dificuldade para o cruzamento dos dados
10
Soluo
COMPARTILHAMENTO DE DADOS
A soluo para evitar a redundncia NO CONTROLADA
de informaes.
SISTEMA
VENDAS
BANCO DE DADOS
Produtos
SISTEMA
PRODUO
SISTEMA DE
COMPRAS
Assim, cada dado armazenado uma NICA VEZ, sendo
acessada pelos vrios sistemas que dele necessitam.
11
Compartilhamento de Dados
SISTEMA
PRODUO
SISTEMA
VENDAS
SISTEMA DE
COMPRAS
Arquivos Produo Arquivos Vendas
Arquivos Compras
Produto Produto Produto
SISTEMA
VENDAS
BANCO DE DADOS
Produto
SISTEMA
PRODUO
SISTEMA DE
COMPRAS
12
BANCO DE
DADOS
o nome dado ao conjunto de arquivos
integrados que atendem a um conjunto
de sistemas
Conjunto de dados integrados que tem por
objetivo atender a uma comunidade de
usurios
Uma coleo de dados operacionais inter-relacionados. Estes dados
so armazenados de forma independente dos programas que os
utilizam, servindo assim a mltiplas aplicaes de uma organizao.
(Kort, Henry F.)
Banco de Dados
13
Banco de Dados
O que muda com o surgimento dos Bancos de Dados, ou
seja, com o Compartilhamento dos Dados?
Acesso por mltiplos programas - pode haver mais de
uma equipe de desenvolvimento envolvida no
desenvolvimento de uma aplicao
Os programas devem garantir a Restrio de Integridade,
ou seja, garantir a veracidade e a correo dos dados.
Ex: Um funcionrio no pode estar alocado em dois
departamentos.
O BD pode ser acessado concorrentemente por mlti-
plos usurios - os programas devem implementar o
controle de acesso concorrente
14
Banco de Dados
Restries de Acesso - nem todo usurio pode acessar
qualquer informao. O programa deve implementar o
controle de acesso, ou seja, quem tem permisso para
acessar o qu
Dados so de importncia vital e no podem ser perdi-
dos - mecanismos simples como cpias de backup
no so suficientes. Caso haja uma falha, o banco de
dados deve ser recuperado rapidamente. Os
programas devem implementar mecanismos de tolerncia
a falhas
Estruturas de dados mais complexas - os arquivos
devem ser projetados para atender a diferentes
necessidades dos sistemas, portanto, h que se tomar
bastante cuidado na fase de definio dos DADOS.
15
Sistema de Gerncia de Banco de Dados
SGBD Software que incorpora as funes de
definio, recuperao e alterao de dados em um
banco de dados
Aplicao
SGBD
Banco de Dados
Software que serve para
armazenar e acessar
dados em um banco de
dados
16
Sistema de Gerncia de Banco de Dados: Vantagens
Independncia de dados - SGBD oferece isolamento
das aplicaes em relao aos dados, ou seja, altera-
es no modelo de dados (estrutura) afeta pouco as
aplicaes
Abstrao de dados - aplicaes no se preocupam
com detalhes fsicos de implementao (localizao no
meio de armazenamento, existncia de ndices,
caminhos de acesso..)
Controle de segurana - que usurio pode fazer o que
sobre qual dado
Tolerncia a falhas - recuperao em caso de falha
imperceptvel ao usurio
Controle a acesso concorrente - muitos usurios
acessando o banco ao mesmo tempo
17
Quatro Geraes de Gerenciamento de Dados
1960 1970 1980 1990 2000
Sistemas de Gerenciamento de Arquivos(ISAM, VSAM)
SGBDs Hierrquicos (IMS) e em Rede (CODASYL)
SGBDs RELACIONAIS (DB2,SQL Server, Oracle)
SGBDs OO (Versant, Objectivity)
18
Projeto de Banco de Dados - Aplicao
Mas e da, onde vou aplicar isto?
Quando estudamos as metodologias de
desenvolvimento de sistemas, estudamos anlise de
requisitos e definimos o que necessrio ser
executado, quais as rotinas devem ser desenvolvidas
para atender as necessidades do cliente, isto , quais
as informaes que o cliente necessita para ter
sucesso em seu negcio.
Porm, para obter estas informaes, preciso definir
quais so os dados que devem ser armazenados no
banco de dados para que, posteriormente, possamos
devolver ao cliente, as informaes que satisfaam as
exigncias definidas por ele, ou seja, as necessidades
de informao do negcio.
19
Ainda no entendi
o que afinal de contas eu vou
aprender nesta disciplina!!!
Parte 2
Abordagem
Entidade-Relacionamento
21
Objetivos
Compreender os conceitos de ENTIDADE e algumas
de suas caractersticas: RELACIONAMENTO,
ATRIBUTO, CARDINALIDADE
22
Abordagem Entidade-Relacionamento
A primeira etapa do projeto de um banco de dados
a construo de um modelo conceitual, a chamada
Modelagem Conceitual.
A Modelagem Conceitual tem por objetivo obter uma
descrio abstrata, independente de implementao
em computador, dos dados que sero armazenados
no banco de dados.
MODELO
CONCEITUAL
MODELO
LGICO
MODELO
FSICO
23
Abordagem Entidade-Relacionamento
Dentre as tcnicas mais difundidas e utilizadas para
a modelagem conceitual dos dados destacam-se:
a Abordagem Entidade-Relacionamento, definida por
Peter Chen em 1976 e que segue a metodologia de
desenvolvimento Estruturado de Sistemas
a UML (Unified Modeling Language), que uma
metodologia de desenvolvimento Orientado a Objeto
O Modelo Entidade Relacionamento (M.E.R.)
representado graficamente pelo Diagrama Entidade
Relacionamento (D.E.R.) e este convertido para o
Modelo Relacional/Lgico para ser implementado
fisicamente num Banco de Dados Relacional.
24
Modelo Entidade-Relacionamento
Peter Chen, ao formular a proposta do modelo E-R
baseou-se na compreenso da realidade em que
se situava o problema e no na viso de um sistema
de aplicao.
CHEN preocupou-se em destacar a importncia de
reconhecer os objetos (coisas) que compem este
negcio, independentemente de preocupar-se com
formas de tratamento das informaes,
procedimentos, programas, etc
Estes objetos ele classificou em dois grupos:
ENTIDADE e RELACIONAMENTO
25
Faz Contm
O fato acima pode acontecer em qualquer realidade.
Ele deve, portanto, ser retratado atravs de elementos
bsicos que compem o Modelo ER.
PEDIDO
CLIENTE
PRODUTO
Abordagem Entidade-Relacionamento
26
Modelo Entidade-Relacionamento (M.E.R.)
Os componentes bsicos do Modelo ER so:
ENTIDADES
RELACIONAMENTOS
ATRIBUTOS
27
Modelo ER: ENTIDADE
ENTIDADE
Conjunto de objetos da realidade modelada sobre
os quais deseja-se manter informaes no Banco de
Dados (Heuser). Considera-se objeto qualquer
coisa perceptvel ou manipulvel.
So as coisas que existem no negcio sobre as
quais temos interesse em manter armazenadas no
banco de dados.
uma coisa ou um objeto no mundo real que
pode ser identificada de forma nica em relao aos
outros objetos.
28
Modelo ER: ENTIDADE
ENTIDADE
Uma ENTIDADE uma representao de um
CONJUNTO DE DADOS do negcio, um conjunto de
informaes de mesmas caractersticas e suas
ocorrncias.
representada atravs de um retngulo com o nome
da entidade em seu interior.
CLIENTE PRODUTO FUNCIONRIO
NOTA
FISCAL
ORDEM DE
PRODUO
29
Modelo ER: ENTIDADE
Exemplo:
CLIENTE
O retngulo CLIENTE
representa o conjunto de
todas as pessoas sobre as
quais se deseja manter
informaes no BD..
Este objeto particular (um
dos clientes) chamado
de OCORRNCIA de uma
entidade, neste caso
CLIENTE.
30
Modelo ER: ENTIDADE
As ocorrncias de uma entidade no so
representadas no DER mas so semanticamente
interpretadas no mesmo, ou seja, ao visualizar uma
entidade, devemos entend-la como uma tabela de
dados, onde cada linha representa uma ocorrncia
da mesma.
FUNCIONRIO
Matrcula Nome Data Admisso
4456 Joo Carlos da Silva 29/04/91
6689 Slvia de Oliveira 26/02/92
1203 Carla Martinez 14/04/92
31
Modelo ER: ENTIDADE
Exemplo:
Quais so as coisas que vocs conseguem
identificar nos LABORATRIOS de INFORMTICA
da UNINOVE ?
Mquinas
Bancadas
Pessoas
Quadro-negro
Canetas
Ar-condicionado
32
Modelo ER: ENTIDADE
PERGUNTA 1 !!
Todas estas coisas identificadas deveriam ter seus
dados armazenados, caso ns quisssemos
desenvolver um Sistema para Controlar os
Equipamentosdos Laboratrios de Informtica?
NO!!!
Pois se quero controlar equipamentos,
a entidade PESSOA, por exemplo, no
teria importncia alguma no contexto
33
Modelo ER: ENTIDADE
PERGUNTA 2 !!
Se ao invs do caso anterior, ns quisssemos
desenvolver um sistema para controlar no somente os
Equipamentos existentes, mas tambm a Utilizao dos
Laboratrios ?
Neste caso temos que lembrar que
quem utiliza, ou seja, as PESSOAS so
de interesse do sistema
34
Modelo ER: PROPRIEDADES
Alm de especificar as entidades, ou seja, os objetos
sobre os quais se deseja manter informaes, o
MER deve permitir a especificao das
PROPRIEDADES destas entidades.
Estas propriedades so :
Participar de um
Relacionamento
Ter um ATRIBUTO
35
Modelo ER : ATRIBUTO
ATRIBUTO
Dado que associado a cada ocorrncia de uma
entidade ou de um relacionamento (caractersticas
especficas)
36
Ex 1: Projeto
Em uma entidade Projeto, por exemplo, poder ser
importante armazenar o Cdigo, o Tipo e no nome do
Projeto. A representao grfica dever ficar, ento:
PROJETO
tipo
cdigo
nome
Modelo ER: ATRIBUTO
ENTIDADE
ATRIBUTOS
37
Ex 2: Funcionrio
Vamos supor que em uma empresa temos uma
entidade chamada Funcionario, ou seja, um objeto sobre
o qual desejamos manter informaes.
O que descreve FUNCIONRIO?
- um nmero de matrcula, o nome do funcionrio, sua
data de admisso, data de nascimento, valor do salrio,...
FUNCIONRIO
Nmero Matrcula
Nome
Data Admisso
Data Nascimento
Valor Salrio
Modelo ER: ATRIBUTO
38
Cada ocorrncia de Funcionrio ser formada por
valores nestes atributos e o conjunto destes valores
representa a informao de um funcionrio que devemos
visualizar como uma linha de uma tabela de dados.
Entidade: Funcionrio
Matrcula Nome
Data
Admisso
4456 Joo Carlos da Silva 29/04/91
6689 Slvia de Oliveira 26/02/92
1203 Carla Martinez 14/04/92
7702 Pedro Guilherme Souza 01/01/92
Modelo ER: ATRIBUTO
39
CLIENTE
Endereo
Nome
CPF
Os atributos podem ser de vrios tipos:
monovalorado: possui apenas um valor que no
pode ser decomposto. Ex: CPF
multivalorado: possui vrios valores na mesma
ocorrncia. Ex: Telefone
composto: possui vrios valores sobre o mesmo
nome e quando decomposto no perde o sentido.
Ex: Nome, Endereo
Modelo ER: ATRIBUTO
Telefone
40
Cada entidade deve possuir um identificador!!!
IDENTIFICADOR um conjunto de um ou mais
atributos (e possivelmente relacionamentos) cujos
valores servem para distinguir uma ocorrncia da
entidade das demais ocorrncias da mesma entidade
PESSOA
cdigo
nome
endereo
DISCIPLINA
Cd. Departamento
Cd. Disciplina
Nome da disciplina
Identificador simples
Identificador composto
Modelo ER: ATRIBUTO IDENTIFICADOR
41
O identificador de uma Entidade deve obedecer UMA
propriedade:
Deve ser MNIMO isto , se retirarmos um dos
atributos ou relacionamentos que o compe, ele deixa
de ser identificador
PESSOA
cdigo
nome
endereo
Modelo ER: ATRIBUTO IDENTIFICADOR
No necessrio utilizar
Cdigo e nome para
identificar a entidade.
Cdigo suficiente para
distinguir as ocorrncias
de PESSOA
42
Modelo ER: RELACIONAMENTO
RELACIONAMENTO
Conjunto de associaes entre entidades
DEPARTAMENTO PESSOA LOTAO
Um conjunto de objetos classificados como pessoa
(Entidade PESSOA) ;
Um conjunto de objetos classificados como
departamento (Entidade DEPARTAMENTO);
Um conjunto de ASSOCIAES, cada uma ligando
um departamento a uma pessoa (relacionamento
LOTAO);
43
Modelo ER: RELACIONAMENTO
No nosso dia-a-dia convivemos com os mais variados
tipos de entidades (objetos reais), que so descritos
por uma srie de atributos (caractersticas) e que
expressam uma realidade de existncia.
Estas entidades do dia-a-dia esto relacionadas de
forma a mostrar a realidade com um contedo lgico:
As pessoas Moram em Apartamentos;
Os apartamentos Formam Condomnios;
Os condomnios Localizam-se em Ruas ou Avenidas;
As Avenidas e Ruas Esto em uma Cidade
44
Modelo ER: RELACIONAMENTO
RELACIONAMENTO
Assim como ocorre com as entidades, temos as
ocorrncias de relacionamentos.
Isto pode ser melhor observado atravs do
Diagrama de Ocorrncias. Nele, ocorrncias de
entidades so representadas por crculos brancos e
de relacionamentos por crculos pretos.
45
p
1
,d
1
p
1 p
2
p
4
p
5
p
3
p
7
p
8
d
1
d
2
d
3
p
2
,d
1
p
4
,d
2
p
5
,d
3
Diagrama de ocorrncias
PESSOA
DEPARTAMENTO
LOTAO
Modelo ER: RELACIONAMENTO
Neste caso, uma ocorrncia seria um par especfico
formado por uma determinada ocorrncia da
entidade PESSOA e por uma determinada
ocorrncia da entidade DEPARTAMENTO
Entidade
Relacionamento
Entidade
46
No exemplo, ATUAO possui um atributo (Funo),
ou seja, o papel que um engenheiro deve
desempenhar dentro de um projeto.
ENGENHEIRO
cdigo
nome
PROJETO
cdigo
ttulo
ATUAO
(0,n) (0,n)
Funo
Assim como Entidade, Relacionamentos tambm
podem possuir atributos
Funo ENGENHEIRO Funo PROJETO
Modelo ER: RELACIONAMENTO
47
Modelo ER: CARDINALIDADE
CARDINALIDADE (mnima e mxima)
num relacionamento
o nmero (mnimo,mximo) de
ocorrncias de uma entidade associadas a
uma ocorrncia de outra entidade atravs
do relacionamento
48
Modelo ER: LEITURA da CARDINALIDADE
HOMEM
MULHER CASADO
?
PERGUNTA:
Um homem pode estar casado com quantas mulheres?
HOMEM MULHER CASADO
(0,1)
RESPOSTA:
Um homem pode no ser casado com NENHUMA mulher,
portanto a cardinalidade mnima 0;
Um homem pode se casar com no mximo UMA mulher,
portanto, a cardinalidade mxima 1;
49
Modelo ER: LEITURA da CARDINALIDADE
HOMEM
MULHER CASADO
?
PERGUNTA:
Uma mulher pode estar casada com quantos homens?
HOMEM
MULHER CASADO
(0,1)
RESPOSTA:
Uma mulher pode no ser casada com NENHUM homem,
portanto a cardinalidade mnima 0;
Uma mulher pode se casar com no mximo UM homem,
portanto, a cardinalidade mxima 1;
50
Modelo ER: LEITURA da CARDINALIDADE
HOMEM
MULHER CASADO
(0,1)
HOMEM MULHER CASADO
(0,1)
HOMEM
MULHER CASADO
(0,1) (0,1)
51
Modelo ER: Cardinalidade MNIMA
Cardinalidade Mnima o nmero mnimo de
ocorrncias de uma entidade associadas a uma
ocorrncia de outra entidade num relacionamento
Consideram-se apenas duas cardinalidades:
Obrigatria (1) indica que o
relacionamento deve obrigatoriamente associar
uma ocorrncia de uma entidade a uma
ocorrncia de outra entidade
Opcional (0) indica que o relacionamento
existe independente de haver ou no uma
ocorrncia de uma entidade ligada outra
52
Modelo ER: Cardinalidade MNIMA
Cada empregado deve estar obrigatoriamente
alocado a um setor-departamento (1)
Um setor-departamento pode existir mesmo que
no exista nenhum empregado alocado nele (0)
EMPREGADO
DEPARTAMENTO
ALOCAO
(0,n)
(1,1)
53
Modelo ER: Cardinalidade MXIMA
Cardinalidade Mxima o nmero mximo de
ocorrncias de uma entidade associadas a uma
ocorrncia de outra entidade num relacionamento
Consideram-se apenas duas cardinalidades:
n indica que uma ocorrncia de uma
determinada entidade pode estar associada a
muitas ocorrncias da entidade relacionada a ela
1 indica que uma ocorrncia de uma
determinada entidade pode estar associada a no
mximo UMA ocorrncia da entidade relacionada
a ela
54
Modelo ER: Cardinalidade MXIMA
Uma ocorrncia de
departamento pode
estar associada a
muitas (n) ocorrncias de
empregado, isto ,
Departamento tem
cardinalidade mxima n
no relacionamento Lotao
EMPREGADO
DEPARTAMENTO
LOTAO
(0,n)
(1,1)
Uma ocorrncia de
empregado pode estar
associada a no mximo
uma (1) ocorrncia de
departamento, isto ,
empregado tem
cardinalidade mxima 1
no relacionamento Lotao
55
Modelo ER: TIPO DE RELACIONAMENTO
TIPO DE RELACIONAMENTO
1:1
1:N
N:N
Para a descoberta do tipo de relacionamento
devemos analisar de forma macro a possibilidade
de relacionamentos entre as entidades, sendo que
a ocorrncia de maior valor que determina
sempre o tipo do relacionamento (cardinalidade
mxima). So eles:
TIPO DE RELACIONAMENTO
TIPO DE RELACIONAMENTO
56
Modelo ER: TIPO DE RELACIONAMENTO
HOMEM MULHER CASADO
(0,1)
HOMEM
A
B
C
D
MULHER
X
Y
Z
W
(0,1)
Relacionamento de 1:1 Cada elemento de uma
entidade relaciona-se com um e somente um
elemento de outra entidade
57
Modelo ER: TIPO DE RELACIONAMENTO
Cada diviso gerenciada por UM e apenas UM gerente
Cada gerente administra UMA e apenas UMA diviso
Exemplo Relacionamento de 1:1
DIVISO GERNCIA GERENCIADA
(0,1) (0,1)
58
Modelo ER: TIPO DE RELACIONAMENTO
ME
A
B
C
FILHO
a
b
c
d
e
f
Este tipo de relacionamento o mais comum no
mundo real, entretanto, possui caractersticas
especficas quanto ao sentido de leitura dos fatos e
sua interpretao
Relacionamento de 1:N Cada elemento da
entidade A relaciona-se com muitos elementos da
entidade B, mas cada elemento da entidade B s
pode estar relacionado a um elemento da
entidade A
59
Modelo ER: TIPO DE RELACIONAMENTO
ME FILHO POSSUI
(1,n)
ME FILHO POSSUI
(1,1)
ME FILHO POSSUI
(1,1) (1,n)
A cardinalidade
determinante sempre
a mxima obtida da
interpretao dos fatos
Exemplo Relacionamento de 1:N
60
Modelo ER: TIPO DE RELACIONAMENTO
Regra geral: um relacionamento do tipo 1:N
quando um sentido de leitura dos fatos nos apresenta
a cardinalidade mxima de 1:N e o sentido oposto
apresenta obrigatoriamente cardinalidade mxima
de 1:1
ME FILHO POSSUI
(1,1) (1,n)
EMPREGADO DEPENDENTE
(1,1) (0,n)
POSSUI
61
Modelo ER: TIPO DE RELACIONAMENTO
ESTUDANTE
E1
E2
E3
E4
E5
DISCIPLINA
D1
D2
D3
D4
ESTUDANTE
E1
E2
E3
E4
E5
DISCIPLINA
D1
D2
D3
D4
Relacionamento de N:N Em ambos os sentidos de
leitura encontramos uma cardinalidade mxima de 1:N, o
que caracteriza ser ento um contexto geral de N:N
62
Modelo ER: TIPO DE RELACIONAMENTO
Exemplo Relacionamento de N:N
DISCIPLINA CURSA
ALUNO
(0,n)
(0,n)
63
Modelo ER: TIPO DE RELACIONAMENTO
ALUNO
E1
E2
E3
E4
E5
DISCIPLINA
D1
D2
D3
D4
CURSA
1

64
Modelo ER: TIPO DE RELACIONAMENTO
Cada produto fornecido por UM ou MUITOS fornecedores
Cada fornecedor fornece UM ou MUITOS produtos
Este tipo de relacionamento caracteriza-se por apresentar
atributos, isto , o relacionamento possui dados que so
inerentes ao fato e no as entidades
FORNECEDOR PRODUTO
FORNECE
(0,n) (0,n)
Exemplo Relacionamento de N:N
Vl_Unit
65
IDENTIFICADOR Relacionamento quando o identificador
de uma entidade composto por atributos da prpria entidade
e tambm por relacionamentos dos quais a entidade participa
Nmero seqncia
EMPREGADO
cdigo
nome
DEPENDENTE
nome
(1,1)
(0,n)
CADA dependente est relacionado a exatamente UM empregado
um dependente identificado atravs do cdigo do empregado ao
qual ele est relacionado e por um nmero de seqncia que
distingue os diferentes dependentes de um mesmo empregado
Alguns autores chamam esta entidade de FRACA pois
ela s existe relacionada outra entidade
Modelo ER: IDENTIFICANDO ENTIDADES
66
Modelo ER: GRAU DE RELACIONAMENTO
GRAU DE RELACIONAMENTO
o nmero de entidades ligadas num mesmo
relacionamento. So eles:
Grau 1 ou Auto-relacionamento
Grau 2 ou Binrio
Grau 3 ou Ternrio
N-rio (acima de 3 entidades)
67
Modelo ER: GRAU DE RELACIONAMENTO
Grau 1 ou Auto-relacionamento Quando existe
apenas uma entidade envolvida num relacionamento, ou
seja, uma entidade se relacionando com ela mesma.
Neste caso, necessrio definir o papel da entidade no
relacionamento, ou seja, a funo que a entidade exerce
dentro do relacionamento
PESSOA
CASAMENTO
marido esposa
p
1 p
2
p
4
p
5
p
3
p
7 p
8
p
2
,p
3
p
4
,p
5
Uma ocorrncia de pessoa exerce o papel de marido e a
outra ocorrncia exerce o papel de esposa
marido
marido
esposa
esposa
68
Modelo ER: GRAU DE RELACIONAMENTO
Grau 2 ou Binrio quando existem duas
entidades envolvidas num mesmo relacionamento.
1:1 Um para Um
HOMEM
MULHER
CASADO
1 1
1:N Um para Muitos
ALUNO
CURSO INSCRIO
n 1
N:N Muitos para muitos
MDICO
PACIENTE ATENDE
n n
69
CIDADE DISTRIBUIDOR
DISTRIBUIO
PRODUTO
Cada ocorrncia do relacionamento DISTRIBUIO
associa trs ocorrncias de entidade:
- um produto a ser distribudo,
- uma cidade na qual feita a distribuio e
- um distribuidor
Modelo ER: GRAU DE RELACIONAMENTO
n 1
n
Grau 3 ou Ternrio quando existem trs
entidades envolvidas num mesmo relacionamento.
70
CIDADE
DISTRIBUIDOR
DISTRIBUIO
n 1
PRODUTO
n
Cada par de ocorrncias de Cidade e Produto est
relacionado a NO MXIMO um distribuidor , isto , em cada
cidade s pode haver um distribuidor para cada produto.
Modelo ER: GRAU DE RELACIONAMENTO
Neste caso analisaremos PARES de entidades
A cardinalidade
1refere-se a
um par cidade
produto
71
CIDADE
DISTRIBUIDOR
DISTRIBUIO
n 1
PRODUTO
n
Modelo ER: GRAU DE RELACIONAMENTO
(Cidade, Produto) est associado a no Mximo 1
Distribuidor Cada produto s pode ter um
distribuidor em cada cidade
(Cidade, Distribuidor) est associada a MUITOS
produtos um distribuidor pode distribuir muitos
produtos em muitas cidades
(Distribuidor, Produto) est associado a MUITAS
cidades um produto pode ser distribudo em
muitas cidades por um distribuidor
72
DEPARTAMENTO
DISCIPLINA RESPONSVEL
(1,1)
(0,n)
ALUNO
CURSO
DISC-CURSO
INSCRIO
(0,n)
(1,1)
(0,n)
(0,n)
PR_REQUIS
(0,n)
(0,n)
Modelo ER: EXERCCIOS
1) Explique a diferena entre uma entidade e uma
ocorrncia de entidade.
2) Observe o MER e responda s questes:
73
Modelo ER: EXERCCIOS
Identifique as entidades e os relacionamentos do modelo;
Interprete cada um dos relacionamentos abaixo,
identificando o tipo de cardinalidade e o grau do
relacionamento:
a)
b)
c) d)
DEPARTAMENTO
DISCIPLINA
RESPONSVEL
(1,1) (0,n)
DISCIPLINA
PR_REQUIS
(0,n) (0,n)
(0,n) (1,1)
DISCIPLINA
CURSO
DISC-CURSO
(0,n)
(0,n)
INSCRIO
ALUNO CURSO
74
Modelo ER: EXERCCIOS
3) Identifique a Cardinalidade dos relacionamentos,
exibindo os passos conforme o exemplo:
Um Aluno DEVE estar inscrito em no mnimo um curso
(mnimo 1) e somente UM curso (mximo 1).
Um Curso pode ter NENHUM aluno inscrito ou MUITOS
alunos inscritos.
a)
b)
____
____
ALUNO
CURSO
INSCRIO
(0,n)
(1,1)
____
MDICO
PACIENTE ATENDE
____
PROJETO
ENGENHEIRO ALOCAO
75
Modelo ER: EXERCCIOS
c)
d)
e)
f)
PRODUTO
COMPOSIO
____
compe
____
composto
PEA
FORNECEDOR
FORNECE
____
____
POSSUI
____
___
MEDICAMENTO
PRESCRIO
____
___
MDICO
EMPREGADO
DEPENDENTE
76
Modelo ER: EXERCCIOS
4) Identifique as entidades, os relacionamentos e a
cardinalidade entre os relacionamentos, como no
exerccio 1.
EMPREGADO DEPARTAMENTO
DEPENDENTE
PROJETO
controla
trabalha
gerencia
trabalha
possui
77
importante, durante a visualizao dos dados, prestar
ateno ao nvel de abstrao em que estamos atuando,
pois, quando definimos uma entidade, estamos com a viso
de uma classe genrica de dados, que pode estar
incorporando, implicitamente, diversas outras classes de
dados
Ou seja, temos classes diferenciadas mas que possuem
caractersticas que nos permitam coloc-las sob a viso de
uma nica entidade.
Por exemplo, CLIENTE na realidade uma generalizao
para diversas classes de dados de clientes, tais como:
- Cliente Pessoa Fsica
- Cliente Pessoa Jurdica
Modelo ER:
GENERALIZAO/ESPECIALIZAO
78
Atravs deste conceito possvel atribuir propriedades
particulares a um subconjunto das ocorrncias
(especializadas) de uma entidade genrica.
FILIAL CLIENTE
PESSOA
FSICA
PESSOA
JURDICA
CPF
Sexo
CNPJ
Tipo de
organizao
nome
cdigo
(0,n)
(1,1)
Cliente dividida em
dois subconjutnos,
as entidades
PESSOA FSICA e
JURDICA, cada uma
com propriedades
especficas
Modelo ER:
GENERALIZAO/ESPECIALIZAO
79
Mas por que a preocupao deste gnero?
Quando ela se torna importante?
Ela importante porque podemos vir a ter na anlise
funcional do sistema, tratamentos procedurais e
diferenciados para cada subconjunto, assim como
poderemos tratar simultaneamente todos os conjuntos.
Desta forma, devemos represent-los de forma que
possamos vir a trat-los como um todo ou como parte
do todo
Modelo ER:
GENERALIZAO/ESPECIALIZAO
80
HERANA DE PROPRIEDADE cada ocorrncia da
entidade especializada possui, alm de suas propriedades,
tambm as propriedades da ocorrncia da entidade
genrica.
FILIAL CLIENTE
PESSOA
FSICA
PESSOA
JURDICA
CPF
SEXO
CNPJ
Tipo de
organizao
nome
cdigo
(0,n)
(1,1)
Pessoa Fsica tem como atributos nome, cdigo, CPF e sexo.
identificada pelo cdigo e est obrigatoriamente relacionada
a exatamente uma filial.
Modelo ER:
GENERALIZAO/ESPECIALIZAO
81
Generalizao TOTAL para cada ocorrncia da entidade
genrica existe sempre uma ocorrncia em uma das
entidades especializadas.
Isto vlido para o exemplo pois, para TODA ocorrncia de
cliente deve haver uma ocorrncia em uma das duas
especializaes
CLIENTE
PESSOA
FSICA
PESSOA
JURDICA
CPF
Sexo
CNPJ
Tipo de
organizao
nome
cdigo
t
Modelo ER:
GENERALIZAO/ESPECIALIZAO
82
Generalizao PARCIAL nem toda ocorrncia da
entidade genrica corresponde a uma ocorrncia em uma
entidade especializada.
Ex: Nem todo funcionrio Motorista ou secretria!!
Neste caso, h necessidade de especificar o atributo que
identifica o tipo de ocorrncia da entidade genrica
FUNCIONRIO
MOTORISTA SECRETRIA
Tipo de funcionrio
p
Modelo ER:
GENERALIZAO/ESPECIALIZAO
83
Uma entidade pode ser especializada em qualquer nmero de
entidades, inclusive em uma nica.
FUNCIONRIO
MOTORISTA
Tipo de
funcionrio p
VECULO
VECULO
TERRESTRE
VECULO
AQUTICO
AUTOMVEL
VECULO
ANFBIO
BARCO
Modelo ER:
GENERALIZAO/ESPECIALIZAO
84
S pode haver UMA ENTIDADE GENRICA em cada
hierarquia de generalizao/Especializao
Modelo ER:
GENERALIZAO/ESPECIALIZAO
85
MDICO PACIENTE
CONSULTA
n n
Como ficaria o modelo se quisssemos saber QUE
MEDICAMENTOS EXISTEM e QUAIS FORAM
PRESCRITOS em cada consulta?
Modelo ER: ENTIDADE ASSOCIATIVA
Teramos, claro, que definir uma nova entidade, denominada
MEDICAMENTO. Mas, como esta nova entidade deveria
estar relacionada no modelo? Ou seja, ela deveria estar
ligada a MDICO ou a PACIENTE ?
86
MDICO
PACIENTE
CONSULTA
n n
Neste caso, teramos a informao de que mdico
prescreve qual medicamento. Entretanto, no
teramos a informao de quais pacientes
receberam a prescrio.
MEDICAMENTO
Modelo ER: ENTIDADE ASSOCIATIVA
PRESCRIO
n
n
1
a
OPO
87
MDICO PACIENTE
CONSULTA
n n
Neste outro caso, teramos a informao de quais
pacientes receberam quais medicamentos, porm,
no saberamos dizer qual foi o mdico que
prescreveu tais medicamentos.
MEDICAMENTO
Modelo ER: ENTIDADE ASSOCIATIVA
PRESCRIO
n
n
2
a
OPO
88
MDICO PACIENTE CONSULTA
n n
MEDICAMENTO
Modelo ER: ENTIDADE ASSOCIATIVA
PRESCRIO
n
n
SOLUO
A entidade MEDICAMENTO, portanto, deve estar
relacionado ao relacionamento CONSULTA. A isso,
damos o nome de ENTIDADE ASSOCIATIVA, ou seja, o
relacionamento que passa a ser tratado como se fosse
tambm uma entidade.
89
MDICO PACIENTE
CONSULTA
n
n
MEDICAMENTO
PRESCRIO
n
n
(1,1) (1,1)
Modelo ER: ENTIDADE ASSOCIATIVA
Caso no se desejasse
usar o conceito de
Entidade Associativa, seria
necessrio transformar o
relacionamento CONSULTA
em uma entidade. Neste
caso, uma consulta deve
estar relacionada com
exatamente um mdico e
um paciente.
90
Parte 3
Modelo Relacional/Lgico
91
Modelo Relacional/Lgico TABELAS
Uma tabela um conjunto no ordenado de linhas
(tuplas, na terminologia acadmica). Cada linha
composta por uma srie de campos (valor de atributo).
A primeira linha (registro) da tabela quer dizer que o
Cliente Joo, cujo cdigo igual a 0111, foi admitido no
dia 12/11/2000 e trabalha no Departamento cujo cdigo
01.
Nome Cdigo
0111
0112
0271
0108
0357
0097
Joo
Antnio
Carlos
Eduardo
Lus
Vera
Data Admisso
12/11/2000
12/12/2001
05/06/2001
03/03/2000
20/10/2001
15/02/2002
Cdigo Depto
01
01
10
10
10
21
linha
coluna
92
Modelo Relacional/Lgico TABELAS
As linhas de uma tabela no tem ordenao. A ordem de
recuperao pelo SGBD arbitrria, a menos que a
instruo de consulta tenha especificado explicitamente
uma ordenao (ORDER BY).
Nome Cdigo
0111
0112
0271
0108
0357
0097
Joo
Antnio
Carlos
Eduardo
Lus
Vera
Data Admisso
12/11/2000
12/12/2001
05/06/2001
03/03/2000
20/10/2001
15/02/2002
Cdigo Depto
01
01
10
10
10
21
Valor do
campo
coluna
(atributo)
linha(tupla)
93
Modelo Relacional/Lgico CHAVES
CHAVE a forma de identificar linhas e estabelecer
relaes entre linhas de tabelas de um banco de dados
relacional
CHAVE PRIMRIA
uma coluna ou uma combinao de colunas cujos valores
distinguem uma linha das demais dentro de uma tabela
Nome CodEmp
E5
E3
E2
E1
Souza
Santos
Silva
Soares
CategFuncional
C5
C5
C2
----
D1
D2
D1
D1
CodDepto
Empregado
94
Horastrab CodEmp
E1
E1
E2
E6
E6
86
32
180
40
120
01
02
01
01
02
CodProj
Chave
Primria
Simples
EmpxProj
Nome CodEmp
E5
E3
E2
E1
Souza
Santos
Silva
Soares
CategFuncional
C5
C5
C2
----
D1
D2
D1
D1
CodDepto
Empregado
Chave
Primria
Composta
Modelo Relacional/Lgico CHAVES
95
Modelo Relacional/Lgico CHAVES
CHAVE ESTRANGEIRA
uma coluna ou uma combinao de colunas cujos
valores aparecem necessariamente na chave primria
de uma tabela.
ela que permite a implementao de
relacionamentos em um banco de dados relacional
Nome CodEmp
E5
E3
E2
E1
Souza
Santos
Silva
Soares
CategFuncional
C5
C5
C2
----
D1
D2
D1
D1
CodDepto
Empregado
Chave estrangeira
96
Nome Depto
CodDepto
01
10
21
Contabilidade
Vendas
Faturamento
Verba
9.500,00
15.000,00
12.800,00
Nome Codigo
0111
0112
0271
0108
0357
0097
Joo
Antnio
Carlos
Eduardo
Lus
Vera
Data Admisso
12/11/2000
12/12/2001
05/06/2001
03/03/2000
20/10/2001
15/02/2002
CodDepto
01
01
10
10
10
21
Qual o nome do
departamento
do Funcionrio
Joo?
Modelo Relacional/Lgico CHAVES
Tabela: Departamento
Tabela: Empregado
97
CodDepto
01
10
21
Contabilidade
Vendas
Faturamento
Verba
9.500,00
15.000,00
12.800,00
Tabela: Departamento
Tabela: Empregado
Nome
0111
0112
0271
0108
0357
0097
Joo
Antnio
Carlos
Eduardo
Lus
Vera
Data Admisso
12/11/2000
12/12/2001
05/06/2001
03/03/2000
20/10/2001
15/02/2002
Cdigo Depto
01
01
10
10
10
21
Cdigo
Modelo Relac./Lgico EXPRESSO RELACIONAMENTO
Quais os funcionrios do
Depto de vendas?
- Cdigo do Depto de
vendas = 10
Quais os funcionrios
que tem cdigo do Depto
igual a 10?
- Carlos, Eduardo e Lus
Nome Depto
98
Modelo Relacional/Lgico REGRAS DE CONVERSO
Modelo Conceitual para o Modelo Relacional/Lgico:
1. Cada entidade do Modelo Conceitual transforma-se em
uma tabela no Modelo Relacional/Lgico contendo como
campos os respectivos atributos da entidade.
2. O atributo identificador da entidade transforma-se em
chave primria na tabela.
3. Analisar os relacionamentos entre as entidades para
gerar a chave estrangeira, aplicando a regra de acordo
com o tipo de relacionamento:
99
Modelo Relacional/Lgico REGRAS DE CONVERSO
Analisando os relacionamentos:
Relacionamento de 1:N No cria nova tabela, mas a
chave primria da tabela de lado 1 transforma-se em
chave estrangeira na tabela de lado N do
relacionamento. Caso o relacionamento contenha
atributos, esses devem acompanhar a chave estrangeira.
DEPARTAMENTO
EMPREGADO
LOTAO
1
N
100
Modelo Relacional/Lgico REGRAS DE CONVERSO
Analisando os relacionamentos:
Relacionamento de N:N Cria-se nova tabela cuja
chave primria ser composta pela chave primria
das duas tabelas relacionadas. Caso o relacionamento
contenha atributos, esses devem ser adicionados na
nova tabela, do contrrio, ser uma tabela contendo
apenas a chave primria. Esses campos recebero a
restrio de chave primria composta e ao mesmo tempo
sero, individualmente, chave estrangeira.
PROJETO
EMPREGADO
ALOCADO
N
N
HorasTrab
101
Modelo Relacional/Lgico REGRAS DE CONVERSO
Analisando os relacionamentos:
Relacionamento de 1:1 No cria nova tabela, mas a
chave primria de um dos lados deve se transformar
em chave estrangeira do outro lado do
relacionamento. O lado a ser escolhido dever ser
aquele que ter menor possibilidade de conter valores
nulos na coluna que ser a chave estrangeira. Caso o
relacionamento contenha atributos, esses devem
acompanhar a chave estrangeira.
PEDIDO
NOTA FISCAL
GERA
1
1
DataEmisso
102
Modelo Relacional/Lgico REGRAS DE CONVERSO
ATENO:
Qualquer tabela que no tenha sido gerada de acordo
com essa regra est errada, ou seja, todas as tabelas
que surgirem no modelo relacional devem corresponder a
uma entidade ou ser fruto do relacionamento de N:N no
modelo conceitual.
Uma tabela gerada a partir do relacionamento de N:N s
contm campos alm das chaves se esses forem
atributos do relacionamento na Modelagem Conceitual.
103
Modelo Relac./Lgico RESTRIES DE CHAVES
A existncia de uma chave estrangeira impe restries
que devem ser garantidas ao executar diversas operaes
de alterao no banco de dados
Quando da incluso de uma linha na tabela que contm
a chave estrangeira (ela deve existir na chave primria);
Quando da alterao do valor da chave estrangeira (ele
deve existir na chave primria);
Quando da excluso de uma linha da tabela que
contm a chave primria referenciada pela chave
estrangeira (verificar se outra tabela a utiliza);
Quando da alterao do valor da chave primria
referenciada pela chave estrangeira (garantir que na
coluna chave estrangeira no aparea o antigo valor da
chave primria alterada);
104
Modelo Relac./Lgico DOMNIOS E VALORES VAZIOS
Quando uma tabela do banco de dados definida, para
cada coluna da tabela, deve ser especificado um conjunto
de valores (alfanumrico, numrico,..) que os campos da
respectiva coluna podem assumir.
Tambm deve ser especificado se os campos da coluna
podem estar vazios (null em ingls) ou no.
Este conjunto de valores chamado de DOMNIO DA
COLUNA ou do CAMPO
As colunas nas quais no so admitidos valores
vazios so chamadas de colunas Obrigatrias e as
outras so chamadas de Opcionais.
105
Parte 4
lgebra Relacional
106
lgebra Relacional OPERAES
Conjunto de operadores de alto nvel que manipulam
os dados coletados em uma ou mais tabelas.
Tipos de Operaes:
Tradicionais
UNIO (OPERADOR OU)
INTERSECO (OPERADOR E)
DIFERENA
PRODUTO CARTESIANO
Especiais
SELEO
PROJEO
JUNO
107
lgebra Relacional OPERAES
UNIO COMPATVEL
Quando as relaes possuem as mesmas estruturas
So consideradas operaes do tipo Unio
Compatvel as operaes de UNIO, INTERSECO
e DIFERENA.
108
lgebra Relacional SIMBOLOGIAS
UNIO A B
INTERSEO A B
DIFERENA A - B
SELEO
(Condio seleo)
PROJEO
(Lista de Campos)
PROD.CARTESIANO A B
JUNO A x
<condio de juno>
B
109
SELEO
Ex:
< condio de seleo >
(nome da relao)
PROJEO
Ex:
< lista de campos >
(nome da relao)
JUNO uma operao de Produto Cartesiano
seguida pela operao de seleo.
Ex: R x
< condio JOIN >
S

< condio de seleo >


(R S)
lgebra Relacional SIMBOLOGIAS
110
A unio de duas tabelas normalizadas A e B, uma
tabela normalizada C que contm todas as linhas de A
e/ou B.
lgebra Relacional UNIO
111
A interseco das tabelas A e B uma tabela normalizada
C que s contm aquelas linhas que pertencem a A e B
simultaneamente.
lgebra Relacional INTERSECO
112
A diferena entre duas tabelas A e B uma tabela
normalizada C que contm as linhas de A que no
pertencem a B.
lgebra Relacional DIFERENA
113
O produto cartesiano de duas tabelas A e B uma tabela
C cujas linhas so obtidas fazendo todas as concatenaes
possveis entre as linhas de A e B.
lgebra Relacional PRODUTO CARTESIANO
114
A projeo de uma tabela normalizada sobre uma ou vrias
de suas colunas uma nova tabela que contm somente as
colunas projetadas.
lgebra Relacional PROJEO
115
Parte 5
SQL
Structured Query Language
116
Compe-se de:
DDL criao do esquema, ou seja, estruturas de
armazenamento
DML linguagem de consulta baseada em lgebra
relacional
DCL linguagem de controle de acessos e autorizao
Estrutura bsica de uma expresso SQL:
( Linguagem Estrutura de Consulta )
Onde Ai = atributo i, ti = tabela i e C = conjunto de condies
SQL Structured Query Language
117
Forma o produto cartesiano das tabelas indicadas na
clusula FROM (quando houver mais de uma tabela na
clusula)
Executa uma seleo da lgebra relacional usando as
condies da clusula WHERE
Projeta o resultado para os atributos da clusula SELECT
Obs.: O caractere * permite selecionar todos os atributos de
uma ou mais tabelas, quando colocado aps a clusula
SELECT
Ex.: SELECT * FROM Tabela1
SQL Structured Query Language
118
SELEO
NRO_PED DATA REG_VDA TOTAL
10 23/01/86 SP 1250
11 13/12/87 RJ 722
12 27/01/86 SP 347
14 28/04/87 MG 2455
17 27/03/86 GO 145
T
R
R=SELEO T;
(REG_VDA .NEQ. SP AND TOTAL .GT. 500)
NRO_PED DATA REG_VDA TOTAL
11 13/12/87 RJ 722
14 28/04/87 MG 2455
A SELEO DE UMA TABELA T COM REFERNCIA A CERTA
CONDIO, UMA OUTRA TABELA R QUE CONTM TODAS
AS LINHAS DE T PARAAS QUAIS A CONDIO CERTA.
SQL Structured Query Language
119
SELEO - Exemplos
TAB. AGENCIA
AG_NUM AG_NOME ENDERECO REGIAO
11-002 Itaim R. Dr. Mrio F. Sul
11-003 Sto. Amaro Lgo. 13 de Maio Sul
12-005 Boa Vista R. Boa Vista, 2 Centro
12-007 Direita R. Direita, 344 Centro
15-001 Diamantina R. Diamantina Norte
a) SELECT *
FROM Agencia
AG_NUM AG_NOME ENDERECO REGIAO
11-002 Itaim R. Dr. Mrio F. Sul
11-003 Sto. Amaro Lgo. 13 de Maio Sul
12-005 Boa Vista R. Boa Vista, 2 Centro
12-007 Direita R. Direita, 344 Centro
15-001 Diamantina R. Diamantina Norte
AG_NOME REGIAO
Itaim Sul
Sto. Amaro Sul
Boa Vista Centro
Direita Centro
Diamantina Norte
b) SELECT AG_NOME, REGIAO
FROM Agencia
SQL Structured Query Language
120
TAB. AGENCIA
AG_NUM AG_NOME ENDERECO REGIAO
11-002 Itaim R. Dr. Mrio F. Sul
11-003 Sto. Amaro Lgo. 13 de Maio Sul
12-005 Boa Vista R. Boa Vista, 2 Centro
12-007 Direita R. Direita, 344 Centro
15-001 Diamantina R. Diamantina Norte
c) SELECT AG_NOME, REGIAO
FROM Agencia
WHERE REGIAO = Centro
d) SELECT AG_NOME, REGIAO
FROM Agencia
WHERE REGIAO <> Centro
e) SELECT REGIAO
FROM Agencia
AG_NOME REGIAO
Boa Vista Centro
Direita Centro
AG_NOME REGIAO
Itaim Sul
Sto. Amaro Sul
Diamantina Norte
REGIAO
Sul
Sul
Centro
Centro
Norte
f) SELECT DISTINCT REGIAO
FROM Agencia
REGIAO
Sul
Centro
Norte
SELEO - Exemplos
SQL Structured Query Language
121
JOIN - Fuso
A fuso de duas tabelas A e B com referncia a um atributo ou
conjunto de atributos comuns uma tabela que contm todas as
linhas obtidas concatenando linhas de A e linhas de B para as
quais o atributo escolhido tem o mesmo valor.
A: PEDIDOS
C: Fuso de A e B segundo FORNEC
B: FORNECEDORES
PEDIDO FORNEC DATA
720 214 110295
721 273 220595
916 214 120396
930 273 240496
FORNEC NOME
214 ALFA AS
273 BETA AS
283 GAMA AS
PEDIDO FORNEC DATA NOME
720 214 110295 ALFA AS
721 273 220595 BETA AS
916 214 120396 ALFA AS
930 273 240496 BETA AS
SQL Structured Query Language
122
JOIN - Exemplos
TAB. AGENCIA TAB. CLIENTE
AG_NUM AG_NOME ENDERECO REGIAO
11-002 Itaim R. Dr. Mrio F. Sul
11-003 Sto. Amaro Lgo. 13 de Maio Sul
12-005 Boa Vista R. Boa Vista, 2 Centro
12-007 Direita R. Diereita, 344 Centro
15-001 Diamantina R. Diamantina Norte
NUM_CLI NOM_CLI AG_NUM END_CLI
1002 Jair Bastos 12-005 R. ....
1003 Nair Mendes 15-001 Av. .....
1004 Nelson Alves 11-002 R. .....
1005 Ana Pdua 11-002 R. .....
1006 Hugo Torres 11-003 ...
1007 Tiago Melo 11-002 ...
a) SELECT * FROM Agencia, Cliente Produto Cartesiano
b) SELECT NUM_CLI,NOM_CLI,AG_NOME
FROM Agencia, Cliente
WHERE
Agencia.AG_NUM = Cliente.AG_NUM
NUM_CLI NOM_CLI AG_NOME
1002 Jair Bastos Boa Vista
1003 Nair Mendes Diamantina
1004 Nelson Alves Itaim
1005 Ana Pdua Itaim
1006 Hugo Torres Sto. Amaro
1007 Tiago Melo Itaim
SQL Structured Query Language
123
TAB. AGENCIA TAB. CLIENTE
AG_NUM AG_NOME ENDERECO REGIAO
11-002 Itaim R. Dr. Mrio F. Sul
11-003 Sto. Amaro Lgo. 13 de Maio Sul
12-005 Boa Vista R. Boa Vista, 2 Centro
12-007 Direita R. Diereita, 344 Centro
15-001 Diamantina R. Diamantina Norte
NUM_CLI NOM_CLI AG_NUM END_CLI
1002 Jair Bastos 12-005 R. ....
1003 Nair Mendes 15-001 Av. .....
1004 Nelson Alves 11-002 R. .....
1005 Ana Pdua 11-002 R. .....
1006 Hugo Torres 11-003 ...
1007 Tiago Melo 11-002 ...
c) SELECT NUM_CLI, NOM_CLI, AG_NOME
FROM Agencia, Cliente
WHERE Agencia.AG_NUM=Cliente.AG_NUM
AND REGIAO=Sul
NUM_CLI NOM_CLI AG_NOME
1004 Nelson Alves Itaim
1005 Ana Pdua Itaim
1006 Hugo Torres Sto. Amaro
1007 Tiago Melo Itaim
d) SELECT NOM_CLI, NUM_CLI, AG_NOME
FROM Agencia, Cliente
WHERE Agencia.AG_NUM=Cliente.AG_NUM
AND NOM_CLI LIKE N%
NOM_CLI NUM_CLI AG_NOME
Nair Mendes 1003 Diamantina
Nelson Alves 1004 Itaim
JOIN - Exemplos
SQL Structured Query Language
124
Parte 6
Normalizao de Tabelas
125
Normalizao uma tcnica aceita para aumentar a
confiabilidade na extrao e na atualizao de dados
num banco de dados. Partimos de dados no-
normalizados e otimizados at a 3 Forma Normal.
Note que cada grau de otimizao depende do
anterior, isto , para ir 2 F.N. necessrio que a
tabela esteja na 1 F.N., e para ir 3 F.N.,
necessrio que a tabela esteja na 2 F.N.
Nem sempre conveniente atingir a 3 F.N., por
vrias razes. Por exemplo, o aumento da quantidade
de tabelas (que provoca, no mnimo, prejuzo de
performance) e pouco interesse de manter-se a
consistncia ou integridade dos dados.
Normalizao de Tabelas
126
Consequncias da No-Normalizao
PERGUNTAS:
Pode-se manter informao sobre um cliente que nunca fez pedido?
O que acontece com os dados do cliente se for excludo o nico pedido
que ele fez?
O que necessrio fazer para alterar informaes sobre um cliente?
900,00 900,00 9,00 100 GIZ 21
RUA
CHU
N. 240
CARLO
S
864 18/05 302
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
2180,00 900,00 90,00 10 CLIPS 16 RUA A,
N.76
CARLO
S
864 28/04 238
2180,00 480,00 2,00 240 LPIS 63 RUA A,
N.76
CARLO
S
864 28/04 238
2180,00 800,00 8,00 100 GIZ 21 RUA A,
N.76
CARLO
S
864 28/04 238
VAL-
PED-
TOT
VAL-
PRC-
TOT
VAL-
PRC-
UNT
QTD NOM-
PRD
NUM-
PRD
DES-
END-
CLI
NOM-
CLI
NUM-
CLI
DAT NUM
PEDIDO
Normalizao de Tabelas
127
900,00 900,00 9,00 100 GIZ 21
RUA CHU
N. 240 CARLOS 864 18/05 302
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
2180,00 900,00 90,00 10 CLIPS 16 RUA A,
N.76
CARLOS 864 28/04 238
2180,00 480,00 2,00 240 LPIS 63 RUA A,
N.76
CARLOS 864 28/04 238
2180,00 800,00 8,00 100 GIZ 21 RUA A,
N.76
CARLOS 864 28/04 238
VAL_
TOT_
PED
VAL_
TOT_
ITEM
VAL_
UNIT_
PRD
QTD NOM
E_PR
D
NUM_
PRD
DES_
END_
CLI
NOME_
CLI
NUM_
CLI
DAT
A
NUM
PEDIDO
NORMALIZAO
Normalizao de Tabelas
128
*
*
*
2180,00
*
*
*
900,00
*
*
*
864
*
*
*
864
*
*
*
28/04
*
*
*
18/05
*
*
*
238
*
*
*
302
VAL_TOT_PED NUM_CLI
(FK)
DATA NUM
(PK)
*
*
*
RUA CHU, N.240
*
*
*
CARLO
S
*
*
*
864
DES_END_CLI NOME NUM
(PK)
PEDIDO
CLIENTE
*
*
*
800,00
480,00
900,00
*
900,00
*
*
*
100
240
10
*
100
*
*
*
21
63
16
*
21
*
*
*
238
238
238
*
302
VAL_TOT_ITEM QTD NUM_
PRD
(FK)
NUM_
PED
(FK)
ITEMPRD
*
98,00
*
*
9,00
*
*
2,60
*
CLIPS
*
*
GIZ
*
*
LPIS
*
16
*
*
21
*
*
63
VAL_UNIT_PRD NOME NUM
(PK)
PRD
Normalizao de Tabelas
*
*
*
800,00
480,00
900,00
*
900,00
*
*
*
100
240
10
*
100
*
*
*
21
63
16
*
21
*
*
*
238
238
238
*
302
VAL_TOT_ITEM QTD NUM_
PRD
(FK)
NUM_
PED
(FK)
ITEMPRD
129
1 Forma Normal
A 1 F.N. exige que no se criem grupos de
repetio em uma tabela, isto , o cruzamento de
linha-coluna no deve ter mais de uma informao.
Tambm no se pode ter registros duplicados, ou
seja, deve-se eliminar os atributos compostos e
multivalorados.
Normalizao de Tabelas
130
1 FN Exemplo 1
ELIMINAR DADO ESTRUTURADO (Atributo Composto)
90000
8888
*
*
011 2345678
0194 424166
*
*
JOO
CRISTINA
*
*
0100
0200
*
*
VAL_SAL NUM_TEL_DDD NOME NUM (PK)
FUN
2345678
424166
*
*
NUM_TEL
9000
8888
*
*
011
0194
*
*
JOO
CRISTINA
*
*
0100
0200
*
*
VAL_SAL DDD NOME NUM(PK)
FUN
1 FN
Normalizao de Tabelas
131
1 FN Exemplo 2
ELIMINAR DADO REPETITIVO (Atributo Multivalorado)
90000
80000
*
*
JOS,MARIA,CAIO
BEATRIZ
*
*
JOO
JOS
*
*
0100
0300
*
*
VAL_SAL NOME_DEPEND NOME NUM(PK)
FUN
90000
90000
90000
90000
JOS
MARIA
CAIO
BEATRIZ
JOO
JOO
JOO
JOS
0100
0100
0100
0300
VAL_SAL NOME_DEPEND(PK) NOME NUM(PK)
FUN
1 FN
Normalizao de Tabelas
132
Dependncia Funcional
Para entender a 2 e 3 formas normais que sero
apresentadas a seguir, necessrio compreender o
conceito de dependncia funcional.
Em uma tabela relacional, diz-se que uma coluna C2
depende funcionalmente de uma coluna C1 (ou que
a coluna C1 determina a coluna C2) quando, em
todas as linhas da tabela, para cada valor de C1 que
aparece na tabela, aparece o mesmo valor de C2.
Normalizao de Tabelas
133
Dependncia Funcional
O conceito fica mais fcil de entender se considerarmos um
exemplo:
Normalizao de Tabelas
........ CDIGO ........ SALRIO ................
E1 10
E3 10
E1 10
E2 5
E3 10
E2 5
E1 10
134
Dependncia Funcional
A tabela anterior contm, entre outras colunas irrelevantes ao
exemplo, as colunas Cdigo e Salrio. Diz-se que a coluna
Salrio depende funcionalmente da coluna Cdigo (ou que a
coluna Cdigo determina a coluna Salrio) pelo fato de cada
valor de Cdigo estar associado sempre ao mesmo valor de
Salrio. Exemplificando o valor E1 da coluna Cdigo identifica
sempre o mesmo valor de Salrio (10).
Para denotar esta dependncia funcional, usa-se uma
expresso na forma Cdigo Salrio. A expresso denota que
a coluna Salrio depende funcionalmente da coluna Cdigo.
Diz-se que a coluna Cdigo o determinante da dependncia
funcional.
De forma geral, o determinante de uma dependncia funcional
pode ser um conjunto de colunas e no somente uma coluna
como na definio acima.
Normalizao de Tabelas
135
2 Forma Normal
Uma tabela est na 2 F.N. se estiver na 1 F.N. e,
adicionalmente, se cada campo no pertencente
chave for dependente da chave completa, e no
apenas de uma parte dela.
Normalizao de Tabelas
136
2 FN Exemplo 1
90000
90000
90000
*
VAL_SAL
PESQUISA
PESQUISA
PESQUISA
NUM_DEPTO
CAROLINE
CAROLINE
CAROLINE
JOS
MARIA
CAIO
JOO
JOO
JOO
*
0100
0100
0100
*
NOME_DIR NOME_DEP NOME NUM
FUN
PESQUISA
*
NOME_DEPTO
CAROLINE
*
90000
*
JOO
*
0100
*
NOME_DIR VAL_SAL NOME NUM(PK)
FUN
JOS
MARIA
CAIO
*
0100
0100
0100
*
NOME_DEP(PK) NUM_FUN(PK)
DPD
+
2 FN
Normalizao de Tabelas
137
2 FN Exemplo 2
3
3
2
*
*
*
QT_DIAR
STD
LUXO
SUITE
*
*
*
TIP_APT
100,00
140,00
170,00
*
*
*
VL_DIAR
300,00
420,00
340,00
*
*
*
104
105
82
*
*
*
01/07/89
01/07/89
08/07/89
*
*
*
JOS
JOS
ELZA
*
*
*
VL_TOT NUM_APT DT_ENTR NOME
CLI
RSV
2 FN
A tabela est na 1 FN, pois no contm grupos repetidos.
A tabela no est na 2 FN, pois TIP_APT e VL_DIAR so
determinados apenas conhecendo-se NUM_APT.
Normalizao de Tabelas
138
2 FN Exemplo 2
3
3
*
*
*
QT_DIAR
300,00
420,00
*
*
*
104
105
*
*
*
01/07/89
01/07/89
*
*
*
JOS
JOS
*
*
*
VL_TOT NUM_APT DT_ENTR NOMECLI
RSV
STD
LUXO
SUTE
TIP_APT
100,00
140,00
170,00
*
*
*
104
105
82
*
*
*
VL_DIAR NUM(PK)
APT
+
Normalizao de Tabelas
139
3 Forma Normal
Uma tabela est na 3 F.N. se estiver na 2 F.N. e,
se todos os campos no pertencentes chave
primria (completa) forem independentes entre si.
Normalizao de Tabelas
140
3 FN Exemplo 1
CAROLINE
JORGE
JORGE
FLAVIA
PESQUISA
VENDAS
VENDAS
FINANAS
0100
0200
0300
0400
NOME_DIR NOME_DEPTO NUM(PK) FUN
PESQUISA
VENDAS
VENDAS
FINANAS
NOME_DEPTO(FK)
0100
0200
0300
0400
NUM(PK)
FUN
NUM NOME_DEPTO
NOME_DEPTO NOME_DIR
NOME_DEPTO NUM
CAROLINE
JORGE
FLAVIA
NOME_DIR
PESQUISA
VENDAS
FINANAS
NOME_DEPTO
(PK)
DEP
/
+
3 FN
Normalizao de Tabelas
141
3 FN Exemplo 2
3,57
4,59
2,05
4,99
6,00
*
VAL_SAL_HOR
101
101
202
303
202
*
NUM_PRJ
BIBLIOTECA
BIBLIOTECA
RH
PD
RH
*
NOME_PRJ
23/06/90
23/06/90
20/08/91
20/12/92
20/08/91
*
1234567
2224567
2312200
2312200
2223300
*
0100
0200
0300
0400
0500
*
DT_FIM NUM_TEL NUM
(PK)
FUN
1234567
2224567
2312200
2311000
2223300
NUM_TEL
3,57
4,59
2,05
4,99
6,00
VAL_SAL_HOR
101
101
202
303
202
NUM_PRJ
(FK)
0100
0200
030
0040
0050
NUM
(PK)
FUN
BIBLIOTECA
RH
PD
NOME
23/06/90
20/08/91
20/12/92
DT_FIM
101
202
303
NUM
(PK)
PRJ
+
Est na 1 e 2 FN, porm, no est na 3 FN, pois NOM-PRJ e DAT-FIM so
determinados apenas conhecendo-se o NUM-PRJ
Normalizao de Tabelas
142
Regras
1 Forma Normal
A 1 F.N. exige que no se criem grupos de repetio em uma tabela,
isto , o cruzamento de linha-coluna no deve ter mais de uma
informao. Tambm no se pode ter registros duplicados, ou seja,
deve-se eliminar os atributos compostos e multivalorados.
2 Forma Normal
Uma tabela est na 2 F.N. se estiver na 1 F.N. e, adicionalmente, se
cada campo no pertencente chave for dependente da chave
completa, e no apenas de uma parte dela.
3 Forma Normal
Uma tabela est na 3 F.N. se estiver na 2 F.N. e, se todos os campos
no pertencentes chave principal (completa) forem independentes
entre si.
Normalizao de Tabelas
143
Normalizao de Tabelas
144
Implicaes
Normalizao de Tabelas