Vous êtes sur la page 1sur 90

Introduo a

Banco de Dados
Cludio Leones Bazzi

Cuiab-MT
2013

Presidncia da Repblica Federativa do Brasil


Ministrio da Educao
Secretaria de Educao Profissional e Tecnolgica
Diretoria de Integrao das Redes de Educao Profissional e Tecnolgica

Este caderno foi elaborado pela Universidade Tecnolgica Federal do Paran - PR


para a Rede e-Tec Brasil, do Ministrio da Educao em parceria com a Universidade
Federal do Mato Grosso.
Equipe de Reviso
Universidade Federal de Mato Grosso
UFMT

Universidade Tecnolgica Federal do


Paran PR
Coordenao Geral e-TEC
Edilson Pontarolo

Coordenao Institucional
Carlos Rinaldi
Coordenao de Produo de Material
Didtico Impresso
Pedro Roberto Piloni

Coordenao de Tecnologia na Educao


Henrique Oliveira da Silva
Coordenao de Curso
Eliane Maria de Bortoli Fvero

Designer Educacional
Alceu Vidotti
Designer Master
Daniela Mendes Piloni
Reviso Final
Francisco Rodrigues dos Santos
Ilustrao
Maurcio Jos Mota
Diagramao
Tatiane Hirata
Reviso de Lngua Portuguesa
Patrcia Rahuan

Projeto Grfico
Rede e-Tec Brasil / UFMT
Dados Internacionais de Catalogao na Publicao
B349

Bazzi, Cludio Leones

Introduo a banco de dados / Cludio Leones Bazzi. Curitiba: Ed. UTFPR, 2013.
91 p. : il.

Inclui bibliografia
e-ISBN: 978-85-7014-114-9
1. Banco de dados. 2 Modelagem de dados. 3. SQL (linguagem de programao de computador).
I. Ttulo.

CDD (22. ed.) 005.74


Bibliotecrio: Adriano Lopes CRB 9/1429

Apresentao Rede e-Tec Brasil


Prezado(a) estudante,
Bem-vindo(a) Rede e-Tec Brasil!
Voc faz parte de uma rede nacional de ensino que, por sua vez, constitui uma das aes do
Pronatec - Programa Nacional de Acesso ao Ensino Tcnico e Emprego. O Pronatec, institudo
pela Lei n 12.513/2011, tem como objetivo principal expandir, interiorizar e democratizar
a oferta de cursos de Educao Profissional e Tecnolgica (EPT) para a populao brasileira
propiciando caminho de acesso mais rpido ao emprego.
neste mbito que as aes da Rede e-Tec Brasil promovem a parceria entre a Secretaria de
Educao Profissional e Tecnolgica (Setec) e as instncias promotoras de ensino tcnico,
como os institutos federais, as secretarias de educao dos estados, as universidades, as escolas e colgios tecnolgicos e o Sistema S.
A educao a distncia no nosso pas, de dimenses continentais e grande diversidade regional e cultural, longe de distanciar, aproxima as pessoas ao garantir acesso educao
de qualidade e ao promover o fortalecimento da formao de jovens moradores de regies
distantes, geograficamente ou economicamente, dos grandes centros.
A Rede e-Tec Brasil leva diversos cursos tcnicos a todas as regies do pas, incentivando os
estudantes a concluir o ensino mdio e a realizar uma formao e atualizao contnuas. Os
cursos so ofertados pelas instituies de educao profissional e o atendimento ao estudante realizado tanto nas sedes das instituies quanto em suas unidades remotas, os polos.
Os parceiros da Rede e-Tec Brasil acreditam em uma educao profissional qualificada integradora do ensino mdio e da educao tcnica capaz de promover o cidado com capacidades para produzir, mas tambm com autonomia diante das diferentes dimenses da
realidade: cultural, social, familiar, esportiva, poltica e tica.
Ns acreditamos em voc!
Desejamos sucesso na sua formao profissional!
Ministrio da Educao
Dezembro de 2013
Nosso contato
etecbrasil@mec.gov.br

Rede e-Tec Brasil

Indicao de cones
Os cones so elementos grficos utilizados para ampliar as formas de
linguagem e facilitar a organizao e a leitura hipertextual.
Ateno: indica pontos de maior relevncia no texto.

Saiba mais: oferece novas informaes que enriquecem o


assunto ou curiosidades e notcias recentes relacionadas ao
tema estudado.
Glossrio: indica a definio de um termo, palavra ou expresso
utilizada no texto.
Mdias integradas: remete o tema para outras fontes: livros,
filmes, msicas, sites, programas de TV.
Atividades de aprendizagem: apresenta atividades em
diferentes nveis de aprendizagem para que o estudante possa
realiz-las e conferir o seu domnio do tema estudado.
Reflita: momento de uma pausa na leitura para refletir/escrever
sobre pontos importantes e/ou questionamentos.

Rede e-Tec Brasil

Contents

Apresentao Rede e-Tec Brasil

Indicao de cones

Apresentao da Disciplina

11

Sumrio

13

Aula 1. Modelagem de dados

15

1.1 Modelagem

17

Aula 2. Modelo Entidade





Relacionamento
27
2.1 Modelo Entidade Relacionamento -
27

MER

2.2 Definio do tipo de dados

33

Aula 3. Dicionrio de dados

39

3.1 Nomenclatura do dicionrio de dados

40

3.2 Dicionrio de dados (modelo de dados


41

da biblioteca)

Aula 4. Normalizao de dados

53

4.1 Formas normais

54

4.2 Dependncia funcional

55

4.3 Normalizao de dados (nota fiscal)

56

4.4 Normalizao de dados (Formulrio


62

Remanejamento)

Aula 5. Linguagem SQL

71

5.1 Comandos DDL (Linguagem de


Definio de Dados)
71
5.2 Comandos DML (Linguagem de

Manipulao de Dados)

Palavra do Professor-autor
A disciplina de Banco de Dados importante para qualquer profissional da
rea de informtica, tendo em vista que os softwares normalmente utilizam
recursos que permitem a incluso, atualizao, excluso e consulta de dados.
Um banco de dados corresponde a uma forma organizada e padronizada de
gerenciar e manter um conjunto de informaes que na maioria das vezes
so includos pelo prprio usurio do sistema.
Antes mesmo do surgimento da informtica, os bancos de dados j existiam,
mas de forma bem menos eficaz do que os atuais. Estes bancos correspondem caderneta da padaria, ao fichrio da loja de calados, entre outros.
Verifique que, de certa forma, os dados (aqueles das mercadorias compradas
e no pagas na padaria, calados vendidos, bem como os dados dos clientes)
eram armazenados em listas ou fichas para posterior consulta e baixa, quando o cliente viesse a realizar o pagamento.
Perceba ainda que as informaes no eram simplesmente anotadas. Havia
um sistema de busca (alfabtico, data) para que pudesse ser encontrada
com facilidade a ficha de cada cliente. Estas tcnicas so vlidas at hoje. No
entanto, a partir do surgimento da informtica, foram facilitadas e cada vez
mais vm sendo aperfeioadas, objetivando principalmente a velocidade e
a segurana dos dados, alm da capacidade de obter informaes sobre os
dados armazenados.
Este material objetiva dar suporte para que o aluno possa elaborar modelos
de dados e implement-los para solues prticas no desenvolvimento de
softwares.

Rede e-Tec Brasil

Apresentao da Disciplina
Inmeros Bancos de Dados surgiram no mercado, objetivando dar suporte aos sistemas de informao. O Sistema de Gerenciamento de Banco de
Dados (SGDB) quem controla o acesso aos dados, autentica os usurios,
gerencia a manipulao dos dados, d suporte a consultas, permite realizar
cpias de segurana (Backup), entre outras tarefas. importante notar que o
SGDB corresponde a somente uma interface para gerenciamento dos dados.
Dependendo do caso de aplicao, os dados devem ser organizados de uma
forma vlida para aquela situao em especfico, ficando a cargo do profissional de banco de dados, criar estas estruturas de forma lgica para atender
a necessidade de cada exigncia.
Para isso, existe a modelagem de dados, a qual permite ao profissional da
rea organizar os dados, criar estruturas e aplic-las na soluo de problemas reais. Desta forma, este material fornece suporte para que o aluno possa realizar a modelagem de bancos de dados a serem aplicados em sistemas
de informao.
Bom curso e sucesso!

11

Rede e-Tec Brasil

Rede e-Tec Brasil

12

Sumrio

Aula 1. Modelagem de dados


1.1 Modelagem
Aula 2. Modelo Entidade Relacionamento

15
17
27

2.1 Modelo Entidade Relacionamento - MER

27

2.2 Definio do tipo de dados

33

Aula 3. Dicionrio de dados

39

3.1 Nomenclatura do dicionrio de dados

40

3.2 Dicionrio de dados (modelo de dados da biblioteca)

41

Aula 4. Normalizao de dados

53

4.1 Formas normais

54

4.2 Dependncia funcional

55

4.3 Normalizao de dados (nota fiscal)

56

4.4 Normalizao de dados (Formulrio Remanejamento)

62

Aula 5. Linguagem SQL

71

5.1 Comandos DDL (Linguagem de Definio de Dados)

71

5.2 Comandos DML (Linguagem de Manipulao de Dados)

73

5.3 Comandos DCL (Linguagem de Controle de Dados)

74

5.4 Comandos DTL (Linguagem de Transao de Dados)

75

Palavras Finais
Guia de Solues
Referncias
Obras Consultadas
Currculo do Professor-autor

76
77
89
90
91

13

Rede e-Tec Brasil

Rede e-Tec Brasil

14

Aula 1. Modelagem de dados

Objetivos:
apresentar conceitos bsicos de modelagem de bancos de dados;
dar suporte para que o aluno consiga modelar um banco de
dados; e
propiciar recursos para que o estudante possa interpretar e
construir o Diagrama Entidade Relacionamento - DER.
Caro (a) estudante,
Em nossa primeira aula, importante que voc tenha cincia de que um
banco de dados uma parte importante de todo software e que independe
de linguagem de programao. Antes mesmo de serem criadas as telas de
um software, fundamental que ela j possua um banco de dados construdo. Veja que muito importante que a estrutura do banco de dados
criada seja suficiente para armazenar tudo o que o software exigir, pois aps
a implementao das telas, caso haja necessidade de incluso de algum
dado necessrio e no levantado anteriormente, o trabalho a ser executado
trar muitos transtornos. Pense na construo de uma casa onde o pedreiro
esqueceu de colocar os canos de esgoto, mas j rebocou as paredes e j
colocou o piso. Um trabalho simples pode tornar-se demorado por falta de
uma boa anlise e levantamento de requisitos que o sistema dever atender.

Figura 1
Fonte: ilustrador

Aula 1 - Modelagem de Dados

15

Rede e-Tec Brasil

Como se pode perceber, a criao do banco de dados est intimamente


ligada disciplina de anlise de sistemas, a qual busca obter todas as informaes que precisam ser armazenadas no banco de dados e qual a lgica
do negcio ao qual se tem inteno de desenvolver um sistema.
Alm de no deixar faltar nada, faz-se necessrio organizar as estruturas
que recebero os dados da melhor forma possvel para que seja facilitada a
manuteno, a insero, alterao, deleo e consultas, alm de no permitir a inconsistncia, como por exemplo a duplicidade de dados ou permitir o
armazenamento de dados incompletos, como um cliente sem CPF (Cadastro
de Pessoa Fsica).

Figuras 2 e 3
Fonte: ilustrador

Desta forma, importante que cada contexto onde o software ser inserido
deve ser conhecido e bem avaliado pelo projetista ou analista que ir construir a estrutura de armazenamento onde ficaro os dados.

Rede e-Tec Brasil

16

Introduo a Banco de Dados

1.1 Modelagem
A construo de um modelo de dados conciso e que responda de forma
satisfatria ao cliente, fornecendo um desempenho adequado, necessitando
do mnimo de requisitos de hardware, uma tarefa difcil e normalmente
as empresas no esto bem servidas de profissionais que atendam a essas
necessidades.
Tcnicas como a normalizao de dados podem facilitar a modelagem, mas
tendo em vista que um aspecto subjetivo do ponto de vista prtico, a experincia conta muito. A modelagem exige a participao permanente dos
usurios envolvidos para que se possa especificar e viabilizar uma soluo
apropriada. Reunies entre representantes de departamentos, funcionrios
que iro utilizar o software e analistas so fundamentais para que nada passe despercebido.

Figuras 4
Fonte: ilustrador

A representao inicial de um modelo de dados corresponde ao Diagrama


Entidade Relacionamento (DER) que uma representao grfica de um modelo de banco de dados. composto por entidades e relacionamentos, indicando visualmente as regras de determinado modelo.
Para quem no est habituado aos termos de banco de dados, neste ponto
j deve estar se perguntando: O que uma entidade? O que um relacionamento e o que ele representa? Neste sentido, iremos conceituar de forma
objetiva, exemplificando estes termos:

Aula 1 - Modelagem de Dados

17

Rede e-Tec Brasil

1.1.1 Entidade
Corresponde a tudo aquilo que se deseja guardar dados, podendo ser concreto ou abstrato, e que composta pelas caractersticas ou atributos que
devero ser armazenados no banco de dados. Por exemplo, em uma loja
de roupas, caso se deseje modelar um banco de dados para armazenar os
dados de compra e venda, obrigatoriamente necessitaramos armazenar informaes sobre os clientes, tais como nome, CPF, RG, endereo, telefone.
Neste caso, tem-se a entidade cliente, na qual esto inseridos seus atributos
(dados sobre cada cliente). A representao da entidade realizada atravs
de um retngulo, com o nome da entidade localizado em seu centro.

Figura 4
Fonte: ilustrador

Outra entidade neste exemplo corresponde aos dados das vendas. evidente que o banco de dados armazene dados sobre todas as vendas realizadas.
Sendo assim, outra entidade do modelo seria a entidade Venda, sendo esta
uma entidade abstrata (gerada pelo contexto do negcio).

1.1.2 Atributo
O atributo corresponde a todas as caractersticas ou dados relacionados com
a entidade e que se deseja guardar. Por exemplo, na entidade cliente indispensvel guardar o nome do cliente, o CPF, o endereo, etc. Perceba que
cada um destes itens corresponde a um atributo da entidade cliente que
ser vlido para cada cliente cadastrado. Em uma entidade os dados so
organizados como em uma tabela, sendo que os atributos correspondem
s colunas da tabela, e as linhas correspondem aos registros (um cliente por

Rede e-Tec Brasil

18

Introduo a Banco de Dados

exemplo), conforme apresentado na tabela 1.


Entidade Cliente
Nome (atributo 1)

CPF (atributo 2)

Endereo (atributo 3)

Registro 1 ->

JOS MARIA

904.343.333-00

RUA BAHIA

Registro 2 ->

JUCA LIMA

894.444.562-00

AVENIDA LISBOA

....

.....

.....

.....

Registro 190 ->

WANDERLEI LIRA

878.444.332-09

RUA SO PAULO

Tabela 1 - Entidade Cliente com registros

Observe que cada coluna da entidade Cliente corresponde representao


de um dado relativo aos clientes. Neste caso, h trs atributos (Nome, CPF,
Endereo). Perceba que cada linha da entidade corresponde a um cliente diferente. Isto significa que os registros so representados por linhas e, a cada
novo cliente, ser inserida uma nova linha.

1.1.3 Relacionamento
Corresponde representao que indica qual a relao entre uma entidade
e outra. Por exemplo, indicamos que teramos a entidade cliente e a entidade venda para o exemplo da loja. O relacionamento indica justamente que
a entidade cliente tem alguma relao com a entidade venda. Neste ponto,
faz-se necessrio o entendimento de outro conceito importante em banco
de dados: o conceito de Cardinalidade.

1.1.4 Cardinalidade
Corresponde ao grau de relao entre duas entidades. No exemplo, pode-se
definir que um cliente pode ter vrias vendas relacionadas com ele e que uma
venda realizada para um nico cliente. Perceba que a cardinalidade se baseia
na seguinte questo: uma linha (registro) de uma tabela (Cliente) est relacionada com quantas linhas da outra tabela (Vendas). Como se pode verificar,
dado que cada venda registrada em uma linha da entidade Vendas, ento
pode-se dizer que um cliente est relacionado com vrias vendas.
Visualizando o mesmo relacionamento, mas por outro ngulo, tem-se que
uma linha (ou registro) de venda relaciona-se somente com um cliente. Ou
seja, em uma venda, podemos relacionar somente um cliente, e no mais do
que isso. Por este motivo, dizemos que temos uma relao um para um,
em que uma venda se relaciona com somente um cliente. Perceba que o
relacionamento entre duas entidades dado sempre por um atributo. Neste

Aula 1 - Modelagem de Dados

19

Rede e-Tec Brasil

caso utilizado o atributo Codigo_Cliente. O relacionamento e a cardinalidade representada na figura 5.

Figura 5 - Relacionamento entre a entidade Cliente e a Entidade Vendas.


Fonte: autor (adaptado pelo ilustrador)

Conforme apresentado na figura 6, tm-se as duas entidades (cliente e vendas) representadas por retngulos. A linha que interliga as duas entidades
chamada de relacionamento, e o conjunto todo, juntamente com a representao da cardinalidade, definido como Diagrama Entidade Relacionamento DER. Perceba que as entidades no so representadas com seus
atributos inclusos. Caso isso ocorra, define-se o diagrama como Modelo Entidade Relacionamento (MER).

Figura 6 - Estrutura de um Diagrama Entidade Relacionamento - DER


Fonte: autor (adaptado pelo ilustrador)

O DER tem como objetivo identificar as entidades essenciais na organizao


dos dados e a forma com que elas esto relacionadas umas com as outras.
Pelo que podemos perceber, corresponde a uma importante ferramenta de
modelagem, usada para definir as informaes necessrias ao modelo de
entidade-relacionamento (MER), o qual uma visualizao mais real do modelo e que ser visto num passo posterior.
O DER permite uma visualizao ampla do projeto do banco e das formas
de armazenamento dos dados, evitando a redundncia, alm de facilitar a
identificao das entidades e relacionamentos existentes entre elas.
Em 1976, Peter Chen desenvolveu a E-R (Entidade e Relacionamento) que
surgiu da necessidade de representar um Banco de Dados de uma forma
visvel mostrando todas as entidades, seus atributos e cardinalidade. Este
mtodo trata da simbologia geral do BD, sendo:

Rede e-Tec Brasil

20

Introduo a Banco de Dados

Figura 7
Fonte: autor (adaptado pelo ilustrador)

ENTIDADE FRACA So entidades que s passaro a existir sob influncia de


outra entidade. Exemplo:

Figura 8
Fonte: autor (adaptado pelo ilustrador)

Neste caso, o dependente s passar a existir no sistema se ele estiver relacionado com um funcionrio, sendo impossvel a existncia dele por outros
meios.
As interaes que existem entre duas entidades so descritas dentro do relacionamento (losango), dando um entendimento maior sobre a influncia
que uma entidade exerce sobre a outra (figura 9).

Aula 1 - Modelagem de Dados

21

Rede e-Tec Brasil

Figura 9 - Exemplo do DER apresentado por Peter Chen


em que:
m - m = muitos para muitos, ou seja, uma linha de uma tabela A deve se relacionar com vrias colunas da tabela B e uma linha da tabela B deve se relacionar com vrias linhas da tabela A;
1 m = um para muitos, ou seja, uma linha da tabela A deve se relacionar com
vrias linhas da tabela B, mas uma linha da tabela B se relaciona com uma
nica linha da tabela A;
Fonte: autor (adaptado pelo ilustrador)

Na dcada de 80, Charles Bachman e James Martin desenvolveram uma


nova simbologia para realizar a representao do relacionamento extraindo
o losango. Neste caso, simplifica-se o Diagrama Entidade Relacionamento,
em que o relacionamento representado somente por uma linha. A cardinalidade representada prxima conexo da linha nos retngulos que
representam as entidades.

Figura 10 - Representao de cardinalidade mnima e mxima no modelo proposto


por Charles e James
Fonte: autor (adaptado pelo ilustrador)

Rede e-Tec Brasil

22

Introduo a Banco de Dados

A representao de cardinalidade pode ser dada de vrias maneiras, dependendo da relao existente entre as entidades, sendo:

Figura 11
Fonte: autor (adaptado pelo ilustrador)

A figura 12 mostra um modelo simples para um banco relativo a uma videolocadora, em que se apresenta a aplicao dos tipos de cardinalidade existentes. importantssimo notar que um relacionamento nunca deve possuir
uma relao de muitos para muitos, pois, para os conceitos apresentados
neste caso, devem ser criadas entidades associativas, como o caso da entidade Item_Reserva e Item_Locacao.

Figura 12 - Modelo de dados de uma videolocadora


Fonte: autor (adaptado pelo ilustrador)

Sobre o modelo construdo para a videolocadora, pode-se dizer que:


Um funcionrio responsvel por uma ou vrias locaes, ao passo que
uma locao relacionada com apenas um funcionrio;
Item_Locacao uma tabela associativa, onde haver um cdigo de locao e um cdigo de filme para cada linha da tabela, podendo relacionar
vrios filmes com uma nica locao, e um filme com varias locaes;

Aula 1 - Modelagem de Dados

23

Rede e-Tec Brasil

Item_Reserva trata-se da mesma situao (item_locacao). Um filme


pode ser reservado vrias vezes, e uma reserva pode conter vrios filmes;
Uma locao pode estar ou no relacionada com uma reserva.

Resumo
Nesta aula voc aprendeu sobre conceitos de estruturas importantes presentes nos bancos de dados: entidades correspondem a tudo o que se deseja
guardar dados; os relacionamentos correspondem s relaes existentes entre as entidades; a cardinalidade diz qual o grau de relao no relacionamento de duas entidades; os atributos so as caractersticas relativas ao que
se quer guardar dados; e os registros so os dados armazenados em uma
entidade. importante perceber que so com estes conceitos que um banco
de dados construdo, adequando-os a cada contexto que se deseja criar
um banco de dados. A organizao do contexto que se deseja modelar, considerando os conceitos apresentados, fornecem suporte para elaborao do
Diagrama Entidade Relacionamento DER que um esboo pouco refinado
do banco de dados final, e ao Modelo Entidade Relacionamento MER que
corresponde ao modelo que ser implementado ao software, contendo os
atributos de cada entidade, assim como as caractersticas apresentadas pelo
DER.

Atividades de Aprendizagem
1. Defina entidade e apresente dois exemplos prticos.
2. Defina relacionamento e apresente dois exemplos prticos.
3. Quais entidades voc definiria para a construo de um diagrama de dados para uma oficina mecnica?
4. Construa um Diagrama Entidade Relacionamento (DER), para servir de
base para um sistema de uma loja de calados. Sabe-se que a loja s vende
calados, tem cadastro de clientes, os funcionrios da loja vendem vista e
prazo (30, 60 e 90 dias). Os clientes inadimplentes no podem comprar se
possuem contas em atraso.
Ao fim desta aula, fica clara a importncia do analista no processo de criao
de um banco de dados, o qual deve ter envolvimento com o processo ou
contexto. Por meio da anlise, devero ser definidos todos os itens que se
deseja guardar dados (entidade) e avaliar como se relacionam. Fica claro que

Rede e-Tec Brasil

24

Introduo a Banco de Dados

erros no projeto do banco de dados acabam por prejudicar toda a estrutura


e desenvolvimento do mesmo, devendo-se ter o mximo de cuidado para
sua criao. A modelagem corresponde transformao do contexto onde
o sistema ir ser inserido em entidades, relacionamentos, criando o DER. Na
prxima aula trataremos da elaborao do Modelo Entidade Relacionamento - MER, que complementa o DER.

Aula 1 - Modelagem de Dados

25

Rede e-Tec Brasil

Aula 2. Modelo Entidade



Relacionamento

Objetivos:
definir o Modelo Entidade Relacionamento (MER) utilizando-se
de casos reais; e
dar suporte ao entendimento de conceitos e procedimentos
para elaborao de modelos de dados.

Caro (a) estudante,


Nesta aula daremos continuidade ao contedo de modelagem de dados,
incorporando ao Diagrama Entidade Relacionamento - DER caractersticas
relativas ao contexto que se deseja modelar. Ao final desta aula, o aluno dever estar apto a construir um Modelo Entidade Relacionamento (MER) para
um contexto onde pretende-se realizar a construo de um banco de dados.
O Modelo Entidade Relacionamento (MER) corresponde a um diagrama mais
detalhado ou mais prximo do modelo real que ser implementado. Como
vimos, o DER uma forma grfica de representao e est limitado a apresentar um esquema de todas as entidades, seus relacionamentos e a cardinalidade entre eles.
Perceba que o DER no contempla os atributos do modelo, ou seja, o MER
complementa o DER, informando o nome dos atributos que cada entidade
contempla, bem como quais atributos so utilizados para realizar o relacionamento entre eles.

2.1 Modelo Entidade Relacionamento -


MER
Antes de iniciarmos, preciso entender dois conceitos importantes sobre
chave primria e chave estrangeira, que fazem parte do MER.

Aula 2 - Modelo entidade-relacionamento

27

Rede e-Tec Brasil

2.1.1 Chave primria


Relembrando que as estruturas de armazenamento do banco de dados so
dadas como tabelas (com linhas e colunas), a chave primria corresponde
ao atributo da entidade (coluna da tabela) que representa de forma nica
um registro, ou seja, nunca para uma entidade teremos dois registros (linhas
da tabela) com o mesmo valor para o atributo chave primria. Por exemplo,
no Brasil, temos o CPF como identificador nico para cada pessoa. Considerando que tivssemos a entidade BRASILEIROS, como no possumos
duas pessoas com o mesmo CPF, poderamos ter o CPF como chave primria
para esta entidade. Neste caso, cada brasileiro cadastrado no banco ocuparia uma linha da tabela e todas as linhas teriam um nmero de CPF diferente,
pois cada linha representa um brasileiro.
Perceba que no poderamos utilizar o nome de brasileiros como chave primria, tendo em vista que podemos ter vrias pessoas com o mesmo nome
e, quando falssemos do brasileiro Joo da Silva, no saberamos realmente a qual linha do banco de dados ele est associado, considerando que
poderamos ter vrios brasileiros com este nome.
Voc deve estar se perguntando: posso ter vrios Joo da Silva, mas moram em lugares diferentes, por meio do local de moradia, pode-se distinguir
um do outro! No poderia? A resposta para essa pergunta SIM. Com certeza, voc poderia relacionar com outros atributos e identificar qual Joo
da Silva voc est procurando.
Neste caso, utiliza-se o conceito de chave primria composta. A chave primria composta visa relacionar vrios atributos para obter uma chave primria. Por exemplo, entidade BRASILEIROS poderamos utilizar os atributos
NOME, DATA DE NASCIMENTO. Mas pensando bem, no seria suficiente,
pois pode-se ter dois Joo da Silva nascidos no mesmo dia. Poderamos ento, utilizar mais atributos, tais como NATURALIDADE e NOME DA
ME. Neste caso, verifique que nunca teramos duas pessoas, nascidas no
mesmo dia, na mesma cidade e com nomes de me idnticos. Pode-se, ento, definir este conjunto de atributos como chave primria. A chave primria representada por um asterisco (*).

2.1.2 Chave estrangeira


A chave estrangeira aquela utilizada para realizar o relacionamento entre
entidades. Supondo duas entidades A e B relacionadas, um atributo de A
includo dentro da entidade B, registrando que este atributo corresponde a

Rede e-Tec Brasil

28

Introduo a Banco de Dados

uma referncia para indicar um registro de A que faz referncia em B. Por


exemplo: supondo a entidade A (TB_ENDERECO), relacionada com a entidade B (TB_CLIENTE), dizemos que o relacionamento realizado atravs do
atributo END_CODIGO da tabela A, sendo referenciado na tabela B como
CLI_CODENDERECO. Tem-se ento, que quando cadastrado um cliente,
deve-se referenciar o cdigo do endereo previamente cadastrado na tabela
TB_ENDERECO.
Outro exemplo, supondo o caso de uma videolocadora. Temos as entidades
Cliente e Locacao que so relacionadas (figura 13).

Figura 13 - Relacionamento entre as entidades Cliente e Locao


Fonte: autor (adaptado pelo ilustrador)

importante verificar que o relacionamento realizado atravs de atributos e


que, em nosso exemplo corresponde ao atributo CLI_CODIGO, que chave
primria na entidade CLIENTE. Para que seja realizada uma Locao, necessrio indicar quem o cliente que a est realizando. Neste caso, para que
isso seja possvel, inclumos na entidade LOCACAO um atributo chamado
LOC_CODCLIENTE, o qual indica o cliente, includo na tabela de CLIENTE
que est realizando a locao. Perceba que este atributo (LOC_CODCLIENTE) corresponde ao atributo de relacionamento entre as entidades. Como o
atributo LOC_CODCLIENTE corresponde a um atributo disposto na outra
entidade, este atributo corresponde a uma chave estrangeira. Uma chave
estrangeira normalmente representada pelo smbolo (#).
Considerando o exemplo da videolocadora, iremos agora definir quais atributos cada uma das entidades possui, bem como quais so chave primria
e estrangeira.
Na entidade Cliente, como chave primria, utilizaremos um atributo CLI_
CODIGO, que ser gerado sequencialmente a cada novo cliente cadastrado,
sendo o primeiro cliente com cdigo 1, o segundo como 2, e assim por diante. Outro atributo importante para a entidade corresponde ao CLI_NOME,
que armazenar o nome do cliente cadastrado. Entre os demais atributos,
tem-se, CLI_RG, CLI_CPF, CLI_FONE, CLI_CELULAR. Outro atributo que se
faz necessrio referente ao endereo do cliente. Mas preciso tomar cui-

Aula 2 - Modelo entidade-relacionamento

29

Rede e-Tec Brasil

dado com essa situao. Perceba que o endereo do cliente est atrelado
rua em que ele mora, ao bairro, cidade e ao nmero da casa. Note ainda
que, em uma rua, podem-se ter vrios clientes; no mesmo bairro e na mesma cidade tambm isso ocorre. Neste sentido, como uma rua, um bairro e
uma cidade so atributos que podem se repetir vrias vezes (em vrias linhas)
na entidade CLIENTE, define-se uma nova entidade para cada um destes
componentes do endereo do cliente e as relacionamos com cada cliente
cadastrado. Desta forma, no necessitaramos digitar vrias vezes o nome
da "Rua Bahia", considerando que tivssemos vrios clientes que moram
nela. Incluiramos o registro de nome RUA BAHIA na entidade Endereo
e relacionaria a mesma ao cliente atravs do atributo END_CODIGO (chave
primria), na entidade CLIENTE.
Dando continuidade a este raciocnio, devemos criar as entidades ENDERECO, BAIRRO, CIDADE e CLIENTE, com os atributos relacionados, como
podemos verificar na figura 14.

Figura 14 - Entidades, atributos e relacionamentos


Fonte: autor (adaptado pelo ilustrador)

A entidade Locao tambm importante, tendo em vista que nesta sero


realizados os cadastros de todas as locaes realizadas. Vale a pena observar
que temos tambm relacionada com ela outra entidade chamada ITEM_LOCACAO, a qual ir armazenar os itens locados. Isso se faz necessrio, pois
uma locao pode ter vrios itens locados, e a entidade LOCACAO no teria
condies de armazenar mais de um tem locado, tendo em vista que no se
sabe quantos itens uma locao ter e no se pode destinar vrias colunas
para esse tipo de registro, considerando que no se tem uma certeza de

Rede e-Tec Brasil

30

Introduo a Banco de Dados

quantos itens podemos ter. Neste caso, cada novo tem de uma locao ser
includo na entidade ITEM_LOCACAO, considerando que, para cada novo
tem incluso, teremos um novo registro na tabela (uma nova linha).
Para identificao dos itens a serem locados, devemos possuir uma entidade chamada FILMES, considerando que sero armazenados todos os filmes
que a locadora possui. Perceba que no se ter um controle de cada exemplar que a locadora possui, e sim somente um cadastro referenciando qual
o filme e qual a quantidade de exemplares. Verifique como est nosso
modelo at o momento (figura 15).

Figura 15 - Modelo de dados parcial.


Fonte: autor (adaptado pelo ilustrador)

Trabalharemos incluindo os dados gerais de uma locao na tabela TB_LOCACAO e os dados referentes aos filmes locados devero ser inseridos na tabela TB_ITEMLOCACAO, considerando que a cada novo registro, teremos
um novo tem incluso na locao.
Perceba que a tabela TB_LOCACAO possui um atributo (Loc_CodCliente)
que faz o relacionamento com a entidade TB_CLIENTE, considerando que
se faz necessrio, tendo em vista que, na entidade locao, necessitamos
indicar qual o cliente que est locando filmes. O atributo Funcionario na
entidade TB_LOCACAO importante para indicar quem foi o funcionrio
que realizou a locao. Perceba ainda que a entidade TB_LOCACAO no
possui o valor total da locao, considerando que como se trata de um campo calculado a partir dos registros da tabela TB_ITEMLOCACAO, no h
necessidade de criar campos adicionais.
A entidade TB_FILME utilizada para registrar dados de todos os filmes da
locadora, sendo o campo quantidade utilizado para indicar qual a quantidade de exemplares de determinado filme. O campo Valor indica qual o
valor corrente do filme e o atributo Categoria indica qual a categoria do
filme.

Aula 2 - Modelo entidade-relacionamento

31

Rede e-Tec Brasil

A entidade TB_ITEMLOCACAO indica quais os itens locados em uma determinada locao, fazendo a relao entre as entidades TB_LOCACAO e
TB_FILME, atravs dos atributos IL_CodLocacao e IL_CodFilme. O atributo
IL_Valor corresponde ao valor do filme locado no momento da efetivao
da locao. Perceba que esse valor praticamente o mesmo encontrado na
entidade TB_FILME, mas se diferencia por ser um valor fixo e inaltervel,
enquanto o atributo presente na entidade TB_FILME corresponde ao valor corrente de aluguel de determinado filme. Na entidade TB_ITEMLOCACAO, foi includo um atributo Loc_DataPgto que indica a data em que cada
tem da locao foi pago, considerando que no necessariamente necessita
ser paga no mesmo dia em que ocorreu a locao e cada tem pode ter sido
devolvido e pago em uma data distinta. Por meio deste atributo, pode-se
verificar que as locaes que ainda no foram pagas, tero este atributo
definido como NULL (vazio).
Perceba que, na entidade TB_LOCACAO, tem-se o atributo Funcionario,
que, se for atribudo a um campo texto, pode-se digitar o nome do mesmo.
Verifique que, se em toda locao for necessrio digitar o nome do funcionrio, se tornar uma operao incmoda e possivelmente inconsistente,
tendo em vista que poderia ser digitado o nome erroneamente, algumas
vezes, ou poderia ainda incluir nomes com todas as letras maisculas ou
minsculas. Neste sentido, para facilitar o trabalho e diminuir o espao gasto
para armazenar o nome do funcionrio que fez uma locao, iremos criar
uma entidade chamada TB_FUNCIONARIO e passaremos a relacion-la
com a entidade TB_LOCACAO pelo atributo Loc_CodFuncionario, localizado dentro da entidade TB_LOCACAO.
Iremos fazer isso tambm na entidade TB_FILME, em que iremos criar outra entidade chamada TB_CATEGORIA para cadastrar todas as categorias
possveis e relacion-las atravs do atributo Fil_CodCategoria localizado na
entidade TB_FILME como podemos verificar na figura 10.

Figura 16 - Modelo de dados final


Fonte: autor (adaptado pelo ilustrador)

Rede e-Tec Brasil

32

Introduo a Banco de Dados

2.2 Definio do tipo de dados


Depois de elaborado o modelo de dados, hora de definir qual o tipo
de dados que dever ser utilizado para cada um dos atributos definidos no
modelo. Esta uma tarefa trabalhosa, necessria antes da criao do banco
de dados, efetivamente.
Durante a criao das tabelas de dados, deve-se definir o tipo de dados para
cada coluna e a escolha incorreta pode ocasionar problemas srios, talvez
no momentneos, mas a partir de um tempo ou com mudanas na estrutura da empresa.
Dependendo do Sistema Gerenciador de Banco de Dados, certos tipos de
atributos no so suportados. Neste sentido, importante ater-se neste detalhe, assinalando que os tipos de dados apresentados neste material dizem
respeito ao Sistema Gerenciador de Banco de Dados Oracle 10g.

2.2.1 Dados alfanumricos


O tipo de dados alfanumricos so os mais comumente utilizados, pois alm
de permitirem o armazenamento de dados referentes a caracteres alfanumricos, incluindo nmeros, acentuao e pontuao. Os tipos de dados
alfanumricos, conforme Oracle (2006), correspondem a:
VARCHAR2 - Caracteres de dados de tamanho variado: normalmente
o mais utilizado e possui uma caracterstica de capacidade importante,
podendo armazenar de 1 byte a 4 KB;
NVARCHAR2 Mesmas caractersticas do VARCHAR2, mas com capacidade de armazenar caracteres especiais como os caracteres chineses, os
quais so diferentes do padro Unicode;
CHAR Caracteres de dados de tamanho fixo: utilizado para armazenar
dados de tamanho fixo, tais como siglas de estado (com dois caracteres)
e possui capacidade de armazenamento de 1 byte a 2 KB.
Para representao de dados do tipo binrio utilizado o tipo RAW (Dados binrios de tamanho varivel) que no segue os padres VARCHAR2 e
NVARCHAR2, no mantendo padro nenhum tipo de caractere em especial.

Aula 2 - Modelo entidade-relacionamento

33

Rede e-Tec Brasil

2.2.2 Dados numricos


Segundo Oracle (2006), para armazenamento de dados numricos, temos
todos os tipos de tamanho varivel:
NUMBER Dados numricos: pode-se identificar a preciso e a escala,
sendo de 1 a 38 caracteres e uma escala de 127 caracteres;
FLOAT Dados ponto flutuante: pode representar valores ponto flutuante com preciso de 38 caracteres. O Oracle prov os tipos BINARY_FLOAT
e BINARY_DOUBLE como tipos alternativos;
INTEGER Dados inteiros: equivalente ao NUMBER, mas com escala zero.

2.2.3 Dados tipo data


Para tratar de dados referentes a datas, a Oracle (2006) prev vrias situaes teis para os usurios de bancos de dados. Alm dos tradicionais tipos
de dados Date e Timestamp, so previstos dados do tipo Timestamp com
Timezone e intervalos entre datas. Para armazenamento de dados do tipo
data e hora, temos:
DATE Data: possui tamanho zero se o campo estiver vazio, mas sete
bytes quando estiver completo. O tipo de dado DATE possui informaes
sobre sculo, ano, ms, dia, hora, minuto e segundo. O intervalo vlido
de primeiro de janeiro de 4712 antes de cristo e 9999 dC.
TIMESTAMP Data e hora: possui tamanho zero quando o campo estiver
vazio, mas pode conter at onze bytes, de acordo com a preciso especificada. Praticamente igual a DATE, mas a preciso de at nove casas
decimais para o segundo, sendo seis casas o padro.
TIMESTAMP COM TIMEZONE Como o TIMESTAMP, mas com os dados
guardado um registro que armazena o fuso horrio a que se refere. O
tamanho pode chegar a treze bytes, dependendo da preciso. Permite
identificar a diferena de dois tempos, mesmo estando em fusos horrios
diferentes.
TIMESTAMP COM TIMEZONE LOCAL Parecido com o TIMESTAMP, mas
os dados so normalizados para um fuso horrio padro.
INTERVALO DE ANOS PARA MESES Utilizado para armazenar registros

Rede e-Tec Brasil

34

Introduo a Banco de Dados

referentes a um perodo de anos em meses para dois dados DATE ou


TIMESTAMP.
INTERVALO DE DIAS EM SEGUNDO - Utilizado para armazenar registros
referentes a um perodo de dias em segundos para dois dados DATE ou
TIMESTAMP.

2.2.4 Dados de tamanho elevado


Para armazenamento de dados grandes, so utilizados dados com caractersticas diferenciadas, apesar de armazenarem dados comuns, como por
exemplo alfanumricos. A Oracle (2006) definiu alguns tipos de dados para
tratar esse tipo de problema:
CLOB dados do tipo caractere, que permitem a utilizao de grandes
quantidades de dados, sendo at 4GB.
NLOB dados parecidos com o CLOB, mas utilizado para caracteres especiais diferentes do padro Unicode.
BLOB parecido com o CLOB, mas utilizado para dados binrios.
BFILE ponteiro de localizao que aponta para um arquivo de at 4 GB
armazenado no servidor.
LONG dados de caractere, mas para grande quantidade de dados.
Cada tabela pode ter somente um campo deste tipo.
LONGRAW parecido com o tipo LONG, mas para dados binrios. Uma
coluna deste tipo pode ser convertida para BLOB.
ROWID corresponde a um valor codificado na base 64, que um ponteiro em uma linha na tabela. o endereo fsico e possui uma propriedade que no visvel, salvo quando especificamente selecionado.

Resumo
Tivemos a oportunidade de aprender nesta aula que o Modelo Entidade
Relacionamento (MER) corresponde a um diagrama mais detalhado ou mais
prximo do modelo real que ser implementado. Ressaltamos que o DER
uma forma grfica de representao e est limitado a apresentar um esquema de todas as entidades, seus relacionamentos e a cardinalidade entre eles.

Aula 2 - Modelo entidade-relacionamento

35

Rede e-Tec Brasil

Conceituamos chave primria, que corresponde ao atributo da entidade (coluna da tabela) que representa de forma nica um registro, ou seja, nunca
para uma entidade teremos dois registros (linhas da tabela) com o mesmo
valor para o atributo chave primria. Por exemplo, no Brasil, temos o CPF
como identificador nico para cada pessoa.

Observamos, tambm, o conceito de chave estrangeira, que aquela utilizada para realizar o relacionamento entre entidades. Supondo duas entidades A e B relacionadas, um atributo de A inserido na entidade B,
registrando que este atributo corresponde a uma referncia para indicar
um registro de A que faz referncia em B. Por exemplo: supondo a entidade A (TB_ENDERECO), relacionada com a entidade B (TB_CLIENTE), dizemos que o relacionamento realizado atravs do atributo END_CODIGO
da tabela A, sendo referenciado na tabela B como CLI_CODENDERECO.
Tem-se, ento, que quando cadastrado um cliente, deve-se referenciar
o cdigo do endereo previamente cadastrado na tabela TB_ENDERECO.
Por fim, vimos que depois de elaborado o modelo de dados, preciso definir
qual o tipo de dados que dever ser utilizado para cada um dos atributos
definidos no modelo. No entanto, dependendo do Sistema Gerenciador de
Banco de Dados, certos tipos de atributos no so suportados. Neste sentido, importante ater-se neste detalhe, assinalando que os tipos de dados
apresentados neste material dizem respeito ao Sistema Gerenciador de Banco de Dados Oracle 10g.

Atividades de Aprendizagem
1. Construir os modelos de dados conforme casos hipotticos:
a) Caso hipottico 1:
Em uma clnica trabalham mdicos e existem pacientes internados. Cada
mdico identificado pelo seu CRM, possui um nome e recebe um salrio
na clnica. Um mdico tem formao em diversas especialidades (ortopedia,
traumatologia, etc), mas s exerce uma delas na clnica. Para todo paciente
internado na clnica so cadastrados alguns dados pessoais: nome, RG, CPF,
endereo, telefone(s) para contato e data do nascimento. Um paciente tem
sempre determinado mdico como responsvel (com um horrio de visita
dirio predeterminado), porm, vrios outros mdicos podem participar de
seu tratamento. Pacientes esto sempre internados em quartos individuais,
que so identificados por um nmero e ficam em um andar da clnica.

Rede e-Tec Brasil

36

Introduo a Banco de Dados

b) Caso hipottico 2:
Elabore um modelo de dados para suprir a necessidade de um sistema que
vise atender a uma oficina mecnica, onde so realizados oramentos e servios. Os clientes normalmente realizam o oramento; sendo autorizado pelo
cliente, o servio efetuado. O sistema deve controlar as peas (estoque),
bem como manter, em banco, a relao de compras efetuadas. Um servio
ou uma pea podem ter garantia, ressaltando que o sistema deve controlar
esse fato. Os mecnicos recebem comisso sobre seus servios e possuem
um salrio fixo tambm. Deve-se ter uma forma de manter um histrico de
tudo o que foi elaborado em determinado veculo para facilitar a identificao de novos problemas.
Nesta etapa, voc deve estar refletindo como o banco de dados ficar estruturado quando implementado. Perceba que apesar da fcil interpretao dos
modelos criados, so muitos detalhes que precisam ser seguidos para implementao e manipulao dos dados a serem armazenados em um banco de
dados. Pense agora em modelar um sistema com vinte ou trinta entidades,
dar suporte ao mesmo por um perodo e passar a tarefa para outro funcionrio da empresa por voc ter sido promovido. impossvel que este novo
funcionrio saiba todos os detalhes do banco que voc implementou e at
com o passar do tempo, fica difcil para voc mesmo relembrar de detalhes
importantes, como tipos de dados, nome de atributos e entidades, restries de integridade, entre outros. Neste sentido, de suma importncia que
sejam gravados dados sobre os dados (tambm chamados de metadados)
e que correspondem a relatar cada detalhe do banco, incluindo entidades,
atributos, relacionamentos, restries de integridade, tipos de dados, entre
outras coisas. Desta forma, qualquer pessoa que estiver em dvida sobre algum detalhe do modelo, poder consultar esta documentao e sanar suas
dvidas. O prximo captulo trata do dicionrio de dados e expe uma forma
organizada de documentar o modelo de dados.

Aula 2 - Modelo entidade-relacionamento

37

Rede e-Tec Brasil

Aula 3. Dicionrio de dados

Objetivos:
entender a importncia de um Dicionrio de Dados, tanto na
criao como na manuteno de um banco de dados; e
tornar o aluno capaz de elaborar dicionrio de dados para modelos de dados aplicados a situaes reais.

Caro (a) estudante,


Na definio das entidades, atributos e restries para o modelo de dados,
so elencados nomes que normalmente sugerem o que se deseja armazenar.
Apesar disso, nomes tidos como "inconfundveis" podem confundir um profissional que no esteve totalmente inserido na criao do modelo. Uma entidade neste contexto refere-se a Cliente, que mesmo para um leigo, deve
armazenar dados de um cliente. Mas agora pense em uma situao inusitada! No caso de modelarmos um banco de dados para atender a necessidade
de uma funerria. Quem o cliente neste caso? O defunto? O parente mais
prximo que deu entrada na funerria? Perceba que se torna uma situao
confusa para quem necessita entender o modelo de dados criado. Neste
sentido, o dicionrio de dados permite voc documentar todo o modelo,
fazendo com que no reste dvida de quem o Cliente neste caso.
O dicionrio de dados corresponde a uma descrio detalhada da estrutura
que o banco de dados possui. Nesta aula apresentaremos um modelo de
Dicionrio de Dados, tendo como base um modelo de dados de uma Biblioteca, cujo Modelo Entidade Relacionamento (MER) representado de acordo com a figura 17. Como dito, este um modelo e pode sofrer alteraes
conforme a necessidade.

Aula 3 - Dicionrio de dados

39

Rede e-Tec Brasil

Figura 17 - Modelo de dados (biblioteca)


Fonte: autor (adaptado pelo ilustrador)

3.1 Nomenclatura do dicionrio de dados


Antes de nos aprofundarmos no exemplo da figura 11 (biblioteca), preciso
entender que um dicionrio de dados apresenta formas de caracterizar cada
um dos principais elementos do Modelo Entidade Relacionamento (MER),
relativos as entidades, relacionamentos e atributos. Neste sentido, para cada
Entidade do modelo so apresentados trs comentrios sobre ela, devendo
compreender:
a) Entidade: Caracterizao da entidade de forma geral e abrangente.
Nome

Nome da entidade

Sigla

Sigla ou nome abreviado

Descrio

Descrio do contedo da Entidade no contexto do projeto, deixando evidente o que poder ser
registrado na entidade e o que no poder estar, caso isso seja necessrio.

b) Relacionamentos: Indicao de quais relacionamentos a entidade em


questo possui, indicando caractersticas de cardinalidade, atributo e nome
do relacionamento (quando for o caso)
Com a Entidade

Cardinalidade

Rede e-Tec Brasil

40

Nome abreviado da entidade com a qual existe um relacionamento


Tipo do relacionamento, indicativo da cardinalidade do relacionamento, no formato X:Y em
que X = cardinalidade na entidade em descrio, podendo ser: 0, 1 ou M (muitos)
Y = cardinalidade na outra entidade, podendo ser 0, 1 ou M

Introduo a Banco de Dados

Atributo
Nome

Nome do atributo que estabelece o relacionamento na entidade que est sendo descrita, ou
na entidade relacionada.
Nome do relacionamento e sua descrio (o que representa no contexto do negcio).

c) Elementos de dados: Indicao dos atributos da entidade, indicando sobre caractersticas de nome, tipo, tipo de dado, descrio e se corresponde a
chaves primrias ou estrangeiras.
Nome
Caracterstica

Tipo

Chave

Descrio

Nome do atributo, conforme ser utilizado pelos programas e linguagem SQL.


Simples, composto, identificador, nico, multivalorado, derivado...
Tipo do dado:
Varchar2= Conjunto de caracteres
N = Number
D = Date.
Indicador de campo chave
CP chave primria
CE chave estrangeira
CU chave nica
Descrio estendida do atributo. Todos os detalhes referentes ao atributo devem ser
relacionados nesta coluna. Caso possua mscara de edio, esta deve ser indicada nesta
coluna, tais como:
a) regras de validao
b) valor padro
c) se pode ser nulo ou requerido.

Perceba que aps a descrio de todo o modelo, relacionado todas as entidades e seus respectivos atributos e relacionamentos, o dicionrio de dados
poder ser utilizado para solucionar quaisquer dvidas sobre o modelo criado.

3.2 Dicionrio de dados (modelo de dados


da biblioteca)
Agora iremos explicar a montagem do dicionrio de dados, baseado no modelo de dados da biblioteca conforme a figura 11. Iniciaremos pela entidade
Tb_Autor, seguindo a sugesto de falarmos inicialmente sobre a entidade de
modo geral, sobre os relacionamentos e somente depois sobre os atributos
da entidade. Procure padronizar esta ordem para facilitar o processo de busca pela informao quando necessrio.

Aula 3 - Dicionrio de dados

41

Rede e-Tec Brasil

Tb_Autor
Entidade:
Nome da Entidade: Tb_Autor

Sigla: Aut

Descrio: Refere-se aos dados dos Autores das obras cadastradas.


Relacionamentos:
Com a Entidade

Cardinalidade

Atributo(s)

Nome do relacionamento e significado

Tb_AutorLivro

1:M

AutLiv_CodAutor

Nome do Atributo

Caracterstica

Tipo

Chave

Descrio estendida e observaes

Aut_Codigo

Identificador

Number

CP

Refere-se ao cdigo
do autor. No nulo.

Aut_Nome

Simples

Varchar2(60)

Representa o nome
do autor. No nulo.

Representa o cdigo do autor, para indicar


que o autor est associado a um livro.

Elementos de dados:

Tb_AutorLivro
Entidade:
Nome da Entidade: Tb_AutorLivro

Sigla: AutLiv

Descrio: Entidade Associativa, onde so registrados e associados todos os autores de determinado livro.
Relacionamentos:
Com a Entidade

Cardinalidade

Atributo(s)

Nome do relacionamento e significado

Tb_Autor

M:1

AutLiv_CodAutor

Representa o autor no relacionamento.

Tb_Livro

M:1

AutLiv_CodLivro

Representa o livro no relacionamento.

Nome do Atributo

Caracterstica

Tipo

Chave

Descrio estendida e
observaes

AutLiv_CodAutor

Identificador

Number

CP

Representa o cdigo do autor


do livro. No nulo.

AutLiv_CodLivro

Simples

Number

CP

Refere-se ao cdigo do livro


do autor. No nulo.

AutLiv_Principal

Simples

Varchar2(3)

Indica que o autor que est


sendo associado ao livro corresponde ao autor principal.
No nulo.

Elementos de dados:

Tb_Categoria
Entidade:
Nome da Entidade: Tb_Categoria

Sigla: Cat

Descrio: Corresponde nomenclatura de todas as reas de interesse. Por exemplo, pode-se ter a categoria referente informtica, fsica, qumica, entre outros.

Relacionamentos:
Com a Entidade

Rede e-Tec Brasil

42

Cardinalidade

Atributo(s)

Nome do relacionamento e significado

Introduo a Banco de Dados

Tb_Livro

1:M

Liv_CodCategoria

Representa o cdigo da categoria com que o


livro se relaciona.

Nome do Atributo

Caracterstica

Tipo

Chave

Descrio estendida e
observaes

Cat_Codigo

Identificador

Number

CP

Refere-se ao cdigo da categoria. No nulo.

Cat_Descricao

Simples

Varchar2(60)

Representa a descrio da
categoria. No nulo.

Elementos de dados:

Tb_Livro
Entidade:
Nome da Entidade: Tb_Livro

Sigla: Liv

Descrio: So armazenados nesta tabela, dados referentes a cada obra disponvel na biblioteca.
Relacionamentos:
Com a Entidade

Cardinalidade

Atributo(s)

Nome do relacionamento e significado

Tb_AutorLivro

1:M

AutLiv_CodAutor

Representa o cdigo do livro no relacionamento.

Tb_Categoria

M:1

Liv_CodCategoria

Representa o cdigo da categoria que o livro se


relaciona.

Tb_Editora

M:1

Liv_CodEditora

Representa o cdigo da editora com a qual o


livro est registrado.

Tb_Reserva

1:M

Res_CodReserva

Representa o cdigo do livro em uma reserva.

Tb_Exemplar

1:M

Exe_CodLivro

Nome do Atributo

Caracterstica

Tipo

Chave

Liv_Codigo

Identificador

Number

CP

Representa o cdigo do
livro cadastrado. Campo
no nulo.

Liv_Titulo

Simples

Varchar2 (60)

Refere-se ao ttulo do
livro. Campo no nulo.

Liv_CodEditora

Simples

Number

Refere-se ao cdigo da
editora na qual o livro foi
editado. Campo no nulo.

Liv_CodCategoria

Simples

Number

Representa a categoria
pela qual o livro est inserido. Campo no nulo.

Liv_Edicao

Simples

Varchar2 (20)

Refere-se ao nmero da
edio do livro. Campo
no nulo.

Liv_Ano

Simples

Number

Representa o ano de lanamento do livro. Campo


no nulo.

Refere-se ao prazo que o


livro ficar emprestado.
Campo nulo. Este dado
expresso em dias.

Representa o cdigo do livro do exemplar

Elementos de dados:

Liv_PrazoMinimo

Simples

Aula 3 - Dicionrio de dados

Number

Descrio estendida e
observaes

43

Rede e-Tec Brasil

Tb_Exemplar
Entidade:
Nome da Entidade: Tb_Exemplar

Sigla: Exe

Descrio: Refere-se ao exemplar do livro dentro do acervo da biblioteca. Neste caso, pode-se verificar que um livro
pode conter vrios exemplares. O que deve ficar bem claro que o exemplar se faz necessrio para identificar, de forma
nica, cada um dos exemplares de cada obra que ser utilizado para realizao dos emprstimos. Deve-se ter em mente
que, quando realizado um emprstimo, empresta-se um exemplar do livro para saber, exatamente, qual o exemplar
que foi emprestado para determinado leitor.
Relacionamentos:
Com a Entidade

Cardinalidade

Atributo(s)

Tb_Livro

M:1

Exe_CodLivro

Tb_ExemplarEmprestimo

1:M

Exepre_Codexemplar

Caracterstica

Tipo

Nome do relacionamento e significado


Representa o livro ao qual corresponde o
exemplar.
Representa o cdigo do exemplar do livro que
est sendo emprestado.

Elementos de dados:
Nome do Atributo

Chave

Descrio estendida e
observaes

Exe_Codigo

Identificador

Number

CP

Refere-se ao cdigo do
exemplar no acervo da
biblioteca. Campo no
nulo.

Exe_CodLivro

Simples

Number

Representa o cdigo do
livro registrado. No nulo.

Exe_Status

Simples

Varchar2(10)

Refere-se situao atual


do exemplar. No nulo.

Tb_Editora
Entidade:
Nome da Entidade: Tb_Editora

Sigla: Edi

Descrio: Representa a editora pela qual um livro foi editado.

Relacionamentos:
Com a Entidade

Cardinalidade

Atributo(s)

Nome do relacionamento e significado

Tb_Bairro

M:1

Edi_CodBairro

Representa o bairro onde a editora est


localizada.

Tb_Cidade

M:1

Edi_CodCidade

Representa a cidade em que a editora se


localiza.

Tb_Endereco

M:1

Edi_CodEndereco

Tb_Livro

1:M

Liv_CodEditora

Nome do Atributo

Caracterstica

Tipo

Chave

Edi_Codigo

Identificador

Number

CP

Refere-se ao cdigo da
editora. No nulo.

Edi_Nome

Simples

Varchar2 (60)

Representa o nome da
editora. No nulo.

Representa a rua da editora.


Representa a editora que editou o livro

Elementos de dados:

Rede e-Tec Brasil

44

Descrio estendida e
observaes

Introduo a Banco de Dados

Edi_CodEndereco

Simples

Number

Refere-se ao cdigo do
endereo da editora. No
nulo.

Edi_CodCidade

Simples

Number

Refere-se ao cdigo da
cidade da editora. No
nulo.

Edi_CodBairro

Simples

Number

Representa o cdigo do
bairro da editora. No
nulo.

Edi_Fone

Simples

Varchar2 (14)

Refere-se ao nmero
telefnico da editora. No
nulo.

Edi_Contato

Simples

Varchar2 (14)

Representa uma pessoa


da empresa que possa ser
contatada. Nulo.

Tb_Reserva
Entidade:
Nome da Entidade: Tb_Reserva

Sigla: Res

Descrio: Refere-se reserva de livros no acervo da biblioteca. Caso o livro no esteja disponvel no momento, o livro
pode ser reservado pelo leitor.
Relacionamentos:
Com a Entidade

Cardinalidade

Atributo(s)

Tb_Livro

M:1

Res_CodLivro

Nome do relacionamento e significado

Tb_Funcionario

M:1

Res_CodFuncionario

Representa o cdigo do funcionrio responsvel


pela reserva.

Tb_Cliente

M:1

Res_CodCliente

Representa o cdigo do cliente da reserva.

Tb_ExemplarEmprestimo

1:N

Exepre_CodReserva

Nome do Atributo

Caracterstica

Tipo

Chave

Res_Codigo

Identificador

Number

CP

Refere-se ao cdigo da
reserva. No nulo.

Res_Data

Simples

Date

Representa a data que


a reserva foi solicitada.
No nulo.

Res_CodLivro

Simples

Number

Representa o cdigo do
livro. No nulo.

Res_CodFunc

Simples

Number

Refere-se ao cdigo do
funcionrio que realizou a
reserva. No nulo.

Res_CodCliente

Simples

Number

Representa o cdigo do
cliente que realizou a
reserva. No nulo.

Res_Situacao

Simples

Varchar2 (10)

Refere-se ao status da
reserva. Nulo.

Representa o cdigo do livro da reserva.

Representa o cdigo da reserva registrada no


banco de dados.

Elementos de dados:

Aula 3 - Dicionrio de dados

Descrio estendida e
observaes

45

Rede e-Tec Brasil

Tb_Cargo
Entidade:
Nome da Entidade: Tb_Cargo

Sigla: Car

Descrio: Entidade que tem por funo armazenar a descrio dos cargos dos funcionrios que trabalham na biblioteca, juntamente com o salrio-base equivalente.
Relacionamentos:
Com a Entidade

Cardinalidade

Atributo(s)

Tb_Funcionario

1:M

Fun_CodCargo

Nome do relacionamento e significado

Nome do Atributo

Caracterstica

Tipo

Chave

Car_Codigo

Identificador

Number

CP

Refere-se ao cdigo do
cargo. No nulo.

Car_Descricao

Simples

Varchar2 (60)

Representa o nome do
cargo. No nulo.

Car_SalarioBase

simples

Number

Representa o salrio-base,
referente ao cargo. No
nulo.

Representa o cargo do funcionrio

Elementos de dados:
Descrio estendida e
observaes

Tb_Funcionario
Entidade:
Nome da Entidade: Tb_Funcionario

Sigla: Fun

Descrio: Representa os dados pessoais do funcionrio juntamente com sua funo na biblioteca.
Relacionamentos:
Com a Entidade

Cardinalidade

Atributo(s)

Nome do relacionamento e significado

Tb_Cargo

M:1

Fun_CodCargo

Representa o cargo do funcionrio.

Tb_Bairro

M:1

Fun_CodBairro

Representa o bairro do funcionrio.

Tb_Endereco

M:1

Fun_CodEndereco

Tb_Cidade

M:1

Fun_CodCidade

Representa a cidade do funcionrio.

Tb_Emprestimo

1:M

Emp_CodFuncionario

Representa o cdigo do funcionrio na tabela


de emprstimos. Mantm o controle de qual
funcionrio efetuou o emprstimo.

Tb_Funcionario

1:M

Res_CodFuncionario

Representa o cdigo do funcionrio responsvel


pela reserva.

Nome do Atributo

Caracterstica

Tipo

Chave

Fun_Codigo

Identificador

Number

CP

Cdigo do funcionrio.
No nulo.

Fun_Nome

Simples

Varchar2(60)

Nome do funcionrio.
No nulo

Fun_CodCargo

Simples

Number

CE

Cargo do funcionrio.
No nulo

Fun_CPF

Simples

Varchar2 (14)

CPF do funcionrio. No
nulo.

Fun_RG

Simples

Varchar2 (20)

RG do funcionrio. No
nulo.

Representa o endereo do funcionrio.

Elementos de dados:

Rede e-Tec Brasil

46

Descrio estendida e
observaes

Introduo a Banco de Dados

Fun_CodEndereco

Simples

Number

CE

Endereo do funcionrio.
No nulo.

Fun_CodBairro

Simples

Number

CE

Bairro do funcionrio. No
nulo.

Fun_CodCidade

Simples

Number

CE

Cidade do funcionrio.
No nulo.

Tb_Bairro
Entidade:
Nome da Entidade: Tb_Bairro

Sigla: Bai

Descrio: Representa os bairros cadastrados no banco de dados.


Relacionamentos:
Com a Entidade

Cardinalidade

Atributo(s)

Tb_Funcionario

1:M

Fun_CodBairro

Bairro onde o funcionrio reside.

Nome do relacionamento e significado

Tb_Cliente

1:M

Cli_CodBairro

Bairro onde o cliente reside.

Tb_Editora

1:M

Edi_CodBairro

Bairro onde localiza-se a editora.

Nome do Atributo

Caracterstica

Tipo

Chave

Bai_Codigo

Identificador

Number

CP

Refere-se ao cdigo do
bairro. No nulo

Bai_Descricao

Simples

Varchar2 (60)

Representa o nome do
bairro. No nulo.

Elementos de dados:
Descrio estendida e
observaes

Tb_Cidade
Entidade:
Nome da Entidade: Tb_Cidade

Sigla: Cid

Descrio: Refere-se s cidades cadastradas no banco de dados


Relacionamentos:
Com a Entidade

Cardinalidade

Atributo(s)

Nome do relacionamento e significado

Tb_Funcionario

1:M

Fun_CodCidade

Cidade onde o funcionrio reside.

Tb_Cliente

1:M

Cli_CodCidade

Cidade onde o cliente reside.

Tb_Editora

1:M

Edi_CodCidade

Cidade onde localiza-se a editora.

Nome do Atributo

Caracterstica

Tipo

Chave

Cid_Codigo

Identificador

Number

CP

Refere-se ao cdigo da
cidade. No nulo

Cid_Descricao

Simples

Varchar2 (60)

Representa o nome da
cidade. No nulo.

Elementos de dados:

Aula 3 - Dicionrio de dados

Descrio estendida e
observaes

47

Rede e-Tec Brasil

Tb_Endereco
Entidade:
Nome da Entidade: Tb_Endereco

Sigla: End

Descrio: Representa os endereos cadastrados no banco de dados


Relacionamentos:
Com a Entidade

Cardinalidade

Atributo(s)

Nome do relacionamento e significado

Tb_Funcionario

1:M

Fun_CodEndereco

Tb_Cliente

1:M

Cli_CodEnderco

Endereo onde o cliente reside.

Tb_Editora

1:M

Edi_CodEndereco

Endereo onde localiza-se a editora.

Nome do Atributo

Caracterstica

Tipo

Chave

End_Codigo

Identificador

Number

CP

Refere-se ao cdigo do
endereo. No nulo

End_Descricao

Simples

Varchar2 (60)

Representa o nome do
endereo. No nulo.

Endereo onde o funcionrio reside.

Elementos de dados:
Descrio estendida e
observaes

Tb_Cliente
Entidade:
Nome da Entidade: Tb_Cliente

Sigla: Cli

Descrio: Representa os dados pessoais do cliente.


Relacionamentos:
Com a Entidade

Cardinalidade

Atributo(s)

Tb_Reserva

1:M

Res_CodCliente

Representa o cliente que fez a reserva.

Nome do relacionamento e significado

Tb_Emprestimo

M:1

Emp_CodCliente

Representa o cliente que fez o emprstimo.

Tb_Bairro

M:1

Cli_CodBairro

Bairro onde o cliente reside.

Tb_Cidade

M:1

Cli_CodCidade

Cidade onde o cliente reside.

Tb_Endereco

M:1

Cli_CodEndereco

Nome do Atributo

Caracterstica

Tipo

Chave

Cli_Codigo

Identificador

Number

CP

Refere-se ao cdigo do
cliente. No nulo.

Cli_Nome

Simples

Varchar2(60)

Representa o nome do
cliente. No nulo

Cli_RG

Simples

Varchar2(20)

Representa o RG do
cliente. No nulo.

Cli_CPF

Simples

Varchar2(14)

Representa o CPF do
cliente. Nulo.

Cli_CodEndereco

Simples

Number

CE

Endereo onde o cliente


reside. No nulo.

Cli_Numero

Simples

Number

Representa o nmero do
endereo no qual o cliente
reside. Nulo.

Cli_CodBairro

Simples

Number

CE

Bairro onde o cliente


reside. No nulo.

Endereo onde o cliente reside.

Elementos de dados:

Rede e-Tec Brasil

48

Descrio estendida e
observaes

Introduo a Banco de Dados

Cli_CodCidade

Simples

Number

CE

Cidade onde o cliente


reside. No nulo.

Cli_Fone

Simples

Varchar2(14)

Representa telefone para


contato do cliente. No
nulo.

Representa o prazo em
dias que o cliente tem
para devolver o bem
emprestado.

Cli_PrazoDevol

Simples

Number

Tb_Emprestimo
Entidade:
Nome da Entidade: Tb_Emprestimo

Sigla: Emp

Descrio: Tem por funo controlar os emprstimos, armazenar qual funcionrio emprestou, e qual cliente tomou
emprestado e a data de realizao do mesmo.
Relacionamentos:
Com a Entidade

Cardinalidade

Atributo(s)

Nome do relacionamento e significado

Tb_Funcionario

M:1

Emp_CodFunc.

Mantm o controle de qual funcionrio efetuou


o emprstimo.

Tb_Cliente

1:M

Emp_CodCliente

Representa o cdigo do cliente quando


realizado um emprstimo.

1:M

Exepre_Codemp.

Refere-se ao cdigo do emprstimo na tabela


associativa. Mantm o controle de quais exemplares foram emprestados, em determinado
emprstimo.

Nome do Atributo

Caracterstica

Tipo

Chave

Emp_Codigo

Identificador

Number

CP

Cdigo do emprstimo.
No nulo.

Emp_Data

Simples

Date

Refere-se data em que


foi realizado o emprstimo. No nulo.

Emp_CodFuncionario

Simples

Number

Funcionrio responsvel
pelo emprstimo. No
nulo.

Emp_CodCliente

Simples

Number

Cliente que realizou o


emprstimo. No nulo.

Tb_ExemplarEmprestimo
Elementos de dados:

Aula 3 - Dicionrio de dados

Descrio estendida e
observaes

49

Rede e-Tec Brasil

Tb_ExemplarEmprestimo
Entidade:
Nome da Entidade: Tb_ExemplarEmprestimo

Sigla: Exepre

Descrio: Tabela associativa. Identifica quais exemplares foram emprestados, controlando tambm os prazos e multas.
Relacionamentos:
Com a Entidade

Cardinalidade

Atributo(s)

Nome do relacionamento e significado

Tb_Emprestimo

M:1

Exepre_Codemprestimo

Tb_Reserva

0:1

Exepre_CodReserva

Representa o cdigo reserva que motivou um


emprstimo.

Tb_Exemplar

M:1

Exepre_CodExemplar

Representa o cdigo do exemplar registrado no


banco de dados.

Nome do Atributo

Caracterstica

Tipo

Chave

Exepre_CodExemplar

Identificador

Number

CP

Refere-se ao cdigo do
exemplar. No nulo.

Exepre_CodEmprestimo

Identificador

Number

CP

Refere-se ao cdigo do
emprstimo. No nulo.

Exepre_DtPrevDev

Simples

Date

Refere-se data prevista


para a devoluo do
exemplar. No nulo.

Exepre_DtDevMul

Simples

Date

Refere-se data de devoluo em que foi cobrada


multa. Nulo.

Exepre_DtPgMul

Simples

Date

Refere-se data em que


foi paga a multa. Nulo.

Exepre_CodReserva

Simples

Number

CE

Refere-se ao cdigo da
reserva. No nulo.

Exepre_ValorMulta

Simples

Number

Refere-se ao valor cobrado


em caso de atraso da
devoluo. No nulo.

Cdigo do emprstimo do relacionamento.

Elementos de dados:
Descrio estendida e
observaes

Perceba que acaba por ser cansativo o trabalho de descrio de todas as


regras do modelo de dados para deix-lo o mais explicativo possvel. importante lembrar que apesar de cansativo, o dicionrio de dados fundamental para consultas de projetistas e desenvolvedores, fazendo com que
seja facilitado o trabalho destes.

Resumo
Observamos nesta aula que o dicionrio de dados corresponde a uma descrio detalhada da estrutura que o banco de dados possui. Baseado em um
modelo de dados de uma Biblioteca, demonstramos como um dicionrio
de dados montado, entendendo que ele apresenta formas de caracterizar cada um dos principais elementos do Modelo Entidade Relacionamento

Rede e-Tec Brasil

50

Introduo a Banco de Dados

(MER), relativas as entidades, relacionamentos e atributos.

Atividade de Aprendizagem
1. Elaborar o Dicionrio de dados para o Modelo Entidade Relacionamento
abaixo:

Ao final da construo do dicionrio de dados voc deve estar refletindo no


quanto trabalhoso o papel do profissional de Banco de Dados. Apesar do
trabalho, verifique que este processo realizado somente uma vez para cada
modelo de dados criado, e que este poder ser utilizado por muitos anos,
compensando assim esta etapa. Pense em que passados dez anos, ao ler o
dicionrio de dados criado, voc ficar a par de tudo o que foi pensado na
poca para o desenvolvimento de tal modelo, e poder sugerir alteraes
ou melhoras de forma confivel e com o mnimo de risco. Na prxima aula
nosso tema ser Normalizao de dados. Prossiga com ateno.

Aula 3 - Dicionrio de dados

51

Rede e-Tec Brasil

Aula 4. Normalizao de dados


Objetivos:
aprender a construir o Banco de Dados em sua estrutura; e
produzir um projeto de Bando de Dados utilizando as tcnicas
de normalizao.

Caro (a) estudante,


Nesta aula, aprenderemos a montar o Modelo Entidade Relacionamento
(MER), considerando outro ponto de vista. Anteriormente, era apresentado
o contexto em que tinha-se a ideia de modelar o banco e eram definidas as
entidades, relacionamentos e atributos de forma bastante subjetiva. A normalizao de dados trata da construo do modelo de dados, mas considera
fatos reais, como documentos fiscais, formulrios, planilhas, fichas, entre
outras coisas. A ideia bsica que a partir destes documentos, aplicando regras previstas no processo de normalizao, seja gerado o Modelo de Dados.
Para atingir os objetivos, podemos dizer que um banco de dados est relacionado a alguns conceitos fundamentais:
Banco de Dados = Coleo de Arquivos;
Arquivos = Coleo de Registros;
Registro = Coleo de Campos (Tuplas);
Campo = Coleo de Caracteres;
Caractere = Alfa-numricos ou smbolos.

Aula 4 - Normalizao de dados

53

Rede e-Tec Brasil

De acordo com Machado (1995), existem nove tcnicas que podem ser utilizadas no desenvolvimento de um banco de dados nas fases iniciais, as quais
podemos citar:
1. Contextualizao;
2. Objetivao;
3. Intitulao;
4. Especificao de Requisitos;
5. Normalizao;
6. Modelagem;
7. Trigramao;
8. Dicionarizao;
9. Auditoria das fases de Anlise e de Projeto Lgico do Sistema de Banco
de Dados.
Para este curso, estaremos focados no que diz respeito Normalizao como
ferramenta para o desenvolvimento de um banco de dados.
Os conceitos apresentados neste material, em seu todo ou em partes, foram retirados do livro Projeto de Banco de Dados: uma viso prtica, de
Machado, F. N. R, e Abreu, M. P., Editora rica, 1995, Captulo 12, Normalizao.

4.1 Formas normais


A Teoria da Normalizao expressa tradicionalmente atravs de um conjunto de Formas Normais, que otimizam a estrutura e o contedo das relaes
entre as entidades.
O conceito de normalizao foi introduzido por E. F. Codd, em 1970, utilizando a primeira forma normal 1FN. Esta tcnica, pode-se dizer, um
processo matemtico formal que fundamenta-se na teoria dos conjuntos.

Rede e-Tec Brasil

54

Introduo a Banco de Dados

Nesse processo podem ocorrer as seguintes Anomalias de Atualizao:


Incluso - ao se incluir um novo cliente, por exemplo, ele tem que estar
relacionado com uma venda.
Alterao - caso o fabricante de um produto altere o preo de determinada classe de produto, ser preciso percorrer toda a Entidade para se
realizarem mltiplas alteraes.
Excluso - Ao se excluir um cliente, por exemplo, os dados referentes s
suas compras podero ser perdidos.
Atravs do processo de normalizao podemos substituir, de forma gradual,
um conjunto de Entidades e Relacionamentos para um modelo mais adequado, em relao s Anomalias de Atualizao (Incluso, Alterao e Excluso), as quais podem causar certos problemas:
Grupos repetitivos (atributos multivalorados) de dados;
Dependncias parciais em relao a uma chave concatenada;
Redundncias de dados desnecessrios;
Perdas acidentais de informao;
Dificuldade na representao de fatos da realidade observada;
Dependncias transitivas entre atributos.
Estes problemas podem ser minimizados atravs da aplicao da normalizao, tornando o modelo de dados bastante estvel e sujeito a poucas
manutenes.

4.2 Dependncia funcional


Para descrever as formas normais, faz-se necessria a introduo deste conceito importante na aplicao da normalizao, no qual a maior parte da
teoria de normalizao foi baseada.
Dada uma entidade qualquer, dizemos que o atributo ou conjunto de atribu-

Aula 4 - Normalizao de dados

55

Rede e-Tec Brasil

tos de A dependente funcionalmente de outro atributo de B; neste caso,


h dependncia funcional.
Em outras palavras, podemos dizer que, em uma entidade TB_ITENSNOTA, o
atributo ITN_CODPRODUTO depende funcionalmente do atributo PRO_CODIGO, que encontra-se na entidade TB_PRODUTO.
A anlise das relaes existentes entre os atributos de uma entidade deve
ser feita a partir de um conhecimento prvio da sistemtica aplicada nas
relaes entre as entidades, para que esta possa ser modelada, como no
exemplo anterior.
Para iniciar a normalizao, faz-se necessria a descrio de todos os atributos do documento que se deseja normalizar (visando a criao do modelo
de dados), para que posteriormente, possam ser aplicadas tcnicas (formas
normais) que iro dividir os atributos em entidades, as quais daro suporte
construo do modelo de dados.
Para facilitar o entendimento, este material ir apresentar a normalizao
com exemplos prticos.

4.3 Normalizao de dados (nota fiscal)


Supondo a necessidade de uma empresa em modelar um banco de dados
para emisso de uma nota fiscal simples, como apresentado no quadro abaixo. Verifique que h dados que so especficos da empresa, representados
aqui como "Dados da Empresa" e que no h necessidade de manter-se no
banco de dados, pois so impressos diretamente na nota fiscal encaminhada
pela grfica. O que nos interessa aqui justamente os dados que necessitam
ser preenchidos, como Data, Nmero da Nota Fiscal, Cliente, RG, CPF, Cidade, UF, Endereo, Nmero e Bairro, alm dos dados dos produtos vendidos,
inerentes ao Cdigo do produto, Descrio, Unidade de Medida, Quantidade, Valor Unitrio e Valor Total.

Rede e-Tec Brasil

56

Introduo a Banco de Dados

Dados da Empresa

Data: 01/01/0101

CLIENTE: Joo da Silva


CPF:000000000-00

NF N 123
RG: 0000000000-00

CIDADE: Medianeira

UF: PR

ENDEREO: R. Bahia

N 1234

BAIRRO: Centro

Cdigo

Descrio

Und. de Medida

Quantidade

Vlr Unitrio

Vlr Total

1
2
3

Arroz
Sabonete
Leite

kg
Unidade
Litro

2
1
3

1,99
0,79
2,12

3,98
0,79
6,36

Valor TOTAL : 11,13

Inicialmente, realiza-se a definio de todos os atributos que o documento


possui, registrando que eles so tidos como atributos da entidade principal
(documento), conforme segue.
Neste caso, a entidade principal foi definida como Nota e a ela foram relacionados todos os atributos oriundos a emisso de uma nota fiscal. Foi definida
ainda a chave primria, nica para cada nota fiscal a ser emitida.
Nota (nmero da nota, data, cliente, RG, CPF, cidade, UF (Unidade da Federao), endereo, n, bairro, cdigo_produto_1, cdigo_produto_2, cdigo_
produto_3, ..., descrio_produto 1, descrio_produto_2, descrio_produto_3,..., unidade_produto_1, unidade_produto_2, unidade_produto_3,
quantidade_produto_1, quantidade_produto_2, quantidade_produto_3,
...,valor_unitrio_produto_1, valor_unitrio_produto_2, valor_unitrio_produto_3 ,..., valor_total_produto_1, valor_total_produto_2, valor_total_produto_3,..., valor_total_da_nota);
Os campos sublinhados indicam as chaves primrias.

4.3.1 Aplicao da 1 Forma Normal 1FN


Existem situaes em que nos deparamos com algumas informaes que se
repetem (atributo multivalorado) dentro de uma nica linha, ligada a uma
chave primria.
A 1FN diz que cada ocorrncia da chave primria deve corresponder a somente uma informao de cada atributo, ou seja, a entidade no deve conter atributos repetidos ou multivalorados, ou, ainda, os atributos no-chave
devero ser atmicos (nicos).

Aula 4 - Normalizao de dados

57

Rede e-Tec Brasil

Ao observarmos que certo grupo de atributos no-chave no so atmicos,


ao longo do processo de entrada de dados, verificamos que este atributo
dever ser decomposto em uma nova entidade.
Nas novas entidades criadas, a chave primria ser a concatenao da chave
primria da entidade original, o que mantm, desta forma, o relacionamento
entre elas, como tambm o conjunto de atributos que se repetem.
Por exemplo:
A 1FN diz que todos os atributos devem conter um valor atmico (nico), ou
seja, os dados inclusos dentro do campo no devem se repetir.
Ex.: o campo cliente vai ser preenchido quantas vezes na nota acima? Apenas uma vez, certo? Ento corresponde a um valor atmico. J os campos
que se referem aos itens da nota sero acrescidos uma ou muitas vezes. Desta forma, tem-se a necessidade de separao da entidade Nota, criando-se a
nova entidade chamada Itens_Nota, ficando:
Nota (nmero da nota, data, cliente, RG, CPF, endereo, n, bairro, cidade,
UF, valor_total)
Os campos que se repetem so destinados a uma nova tabela, no nosso
exemplo chamado de itens da nota. A chave principal tambm inclusa na
nova tabela para manter o relacionamento entre elas.
Itens_Nota (nmero da nota, cdigo, descrio, unidade_de_medida, valor_unitrio, quantidade, valor_total)
Note: as tabelas que saem na 1FN so tabelas associativas.

4.3.2 Aplicao da 2 Forma Normal 2FN


A 2FN diz que todos os atributos que no forem chave tm que ser dependentes diretos da chave, ou seja, os atributos que esto contidos na nota
tm que depender diretamente da chave Nmero da nota.
Inicialmente, observa-se a entidade que possui chave primria concatenada.
Para aquelas que satisfazem esta condio, analisar se existe algum atributo
ou conjunto de atributos com dependncia direta chave primria.

Rede e-Tec Brasil

58

Introduo a Banco de Dados

Ex.: o atributo cliente dependente direto da nota, pois o cliente desta


nota. J atributo RG, CPF so dependentes do cliente, no tendo nenhuma
relao direta com a nota, ou seja, independentemente da nota, o CPF do
cliente ser o mesmo se soubermos o nome do cliente. Sabe-se tambm que
o CPF do cliente nunca muda. Desta forma, tem-se:
Nota (nmero da nota, data, cdigo_cliente, endereo, n, bairro, cdigo_
cidade, valor_total);
Os atributos adicionados acima cdigo_cliente e cdigo_cidade so
para manter o relacionamento entre as entidades.
Verifique que o campo endereo deve permanecer na entidade Nota,
tendo em vista que, se, por acaso, pretender-se buscar uma nota emitida h cinco anos cujo cliente alterou seu endereo para outra rua, o
endereo que dever aparecer na nota emitida h cinco anos deve ser o
correspondente ao endereo antigo do cliente, e no o novo endereo.
Cliente (cdigo, nome, RG, CPF);
Os campos dependentes do cliente so transferidos para a tabela cliente.
Cidade (cdigo, descrio, UF);
O atributo UF que depende apenas da cidade atribudo para a tabela
cidade.
Itens nota (nmero_da_nota, cdigo_produto, quantidade, valor_unitrio,
valor_total);
O atributo cdigo_produto mantido na tabela associativa para manter o relacionamento entre Nota, Itens da Nota e Produtos.
Produto (cdigo, descrio, unidade_de_medida, valor_unitrio);
Os atributos dependentes de produto so relacionados tabela produto.
Repare que o atributo valor unitrio foi duplicado, isso pela necessidade
do valor unitrio de um produto sofrer mudanas, em notas diferentes o
valor unitrio pode estar diferente tambm.

Aula 4 - Normalizao de dados

59

Rede e-Tec Brasil

4.3.3 Aplicao da 3 Forma Normal 3FN


A 3FN diz que o atributo precisa estar na segunda forma normal, e todos os
atributos que no so chave, no podem depender de outros atributos que
tambm no so chave. Deve-se verificar ainda se o valor de um atributo
pode se repetir em muitas tuplas, sendo que neste caso, necessrio incluso de nova entidade.
Uma Entidade est na 3FN se nenhum de seus atributos possui dependncia
em relao a outros atributos da Entidade. Ao verificar a existncia de dependncia entre as Entidades e seus atributos, devemos criar outra entidade
que contenha os atributos dependentes.
Nota (nmero da nota, data, cdigo_cliente, cdigo_endereo, cdigo_bairro, n, cdigo_cidade);
Note que o atributo valor total da nota foi retirado na 3FN. Todos os atributos que so gerados a partir do resultado de dois ou mais atributos so
retirados, visando manter a consistncia dos dados.
Endereo (cdigo, descrio);
Aplicando a 3FN, o endereo retirado da tabela nota, pois o endereo
no um atributo chave e refere-se ao endereo do cliente nesta nota.
Ento, o endereo incluso na tabela de clientes e relaciona-se tanto
com a entidade Cliente como a entidade Nota.
Bairro (cdigo, descrio);
Aplicando a 3FN, o bairro retirado da tabela nota, pois o bairro no
um atributo chave e refere-se ao bairro do cliente nesta nota. Ento, o
bairro incluso tambm na tabela de clientes e relaciona-se tanto com
a entidade Cliente como a entidade Nota.
Cliente (cdigo, nome, RG, CPF, n, cdigo_endereo, cdigo_cidade);
Os campos chave cdigo_endereo e cdigo_cidade vm para a tabela
de clientes com o fim de fazer o relacionamento entre as tabelas.

Rede e-Tec Brasil

60

Introduo a Banco de Dados

Cidade (cdigo, descrio, UF);


Itens nota (nmero da nota, cdigo produto, quantidade, valor_unitrio);
O atributo valor total sai, pois ele resultado de outros dois atributos: a
quantidade vezes o valor unitrio.
Produto (cdigo, descrio, unidade_de_medida, valor_unitrio);
A figura 18 representa o MER do exemplo normalizado anteriormente.

Figura 18 - Modelo gerado pela Normalizao da Nota Fiscal


Fonte: autor (adaptado pelo ilustrador)

Aula 4 - Normalizao de dados

61

Rede e-Tec Brasil

4.4 Normalizao de dados (Formulrio


Remanejamento)
Dado o formulrio de solicitao de remanejamento, ser aplicada a normalizao de dados visando obter um modelo de dados conciso:

Figura 19
Fonte: Machado (1995)

Rede e-Tec Brasil

62

Introduo a Banco de Dados

Figura 20
Fonte: Machado (1995)

Aula 4 - Normalizao de dados

63

Rede e-Tec Brasil

Figura 21
Fonte: Machado (1995)

Rede e-Tec Brasil

64

Introduo a Banco de Dados

4.4.1 Definio dos atributos contidos no


formulrio
Requerimento (cdigo, nome, sexo, data_nascimento, categoria_funcional,
lotao_atual, data_admisso, cidade, escolaridade, grau, cursos_realizados,
experincias_profissionais, atribuies_desenvolvidas, setor_que_trabalhou,
data_entrada, data_sada, motivo_sada, atribuies_que_gostaria, horrio, setores/divises/diretorias_gostaria, motivos_descontente, observaes,
data_preenchimento, questo1, questo2, questo3, questo4, questo5,
questo6, questo7, resultado, justificativa, data_resultado)
Os campos sublinhados indicam as chaves primrias.

4.4.2 Aplicao da 1 Forma Normal - 1FN


A 1FN diz que todos os atributos devem conter um valor atmico (nico), ou
seja, os dados inclusos dentro do campo no devem se repetir.
Ex.: o campo que representa os cursos feitos pelo requerente ser preenchido quantas vezes no formulrio? Depende de quantos cursos ele fez: na
possibilidade de ser preenchido duas vezes, o campo retirado para uma
tabela associativa.
Remanejamento (cdigo, nome, sexo, data_nascimento, categoria_funcional, lotao_atual, data_admisso, cidade, data_preenchimento, questo1,
questo2, questo3, questo4, questo5, questo6, questo7, resultado,
justificativa, data_resultado);
Permaneceram na tabela remanejamento apenas os campos com valores
nicos, os campos que podem ser preenchidos uma ou mais vezes so
retirados para as tabelas associativas.
Remanejamento/escolaridade
grau);

(cdigo_remanejamento,

escolaridade,

Remanejamento/Cursos (cdigo_remanejamento, cursos);


Remanejamento/experincias profissionais (cdigo remanejamento, experincias_profissionais);
Remanejamento/atribuies desenvolvidas (cdigo_remanejamento,
atribuies);

Aula 4 - Normalizao de dados

65

Rede e-Tec Brasil

Remanejamento/setores que trabalhou (cdigo_remanejamento, setor,


data_entrada, data_sada, motivo_sada);
Remanejamento/atribuies que
atribuies, horrio);

gostaria (cdigo_remanejamento,

Remanejamento/setores-divises-diretorias que gostaria (cdigo remanejamento, setor);


Remanejamento/motivos descontentamento (cdigo remanejamento,
motivos, observaes).

4.4.3 Aplicao da 2 Forma Normal - 2FN


A 2FN diz que todos os atributos que no forem chave tm que ser dependentes diretos da chave, ou seja, os atributos que esto contidos no requerimento tm que depender diretamente da chave cdigo requerimento.
Inicialmente, observa-se a entidade que possui chave primria concatenada.
Para aquelas que satisfazem esta condio, analisar se existe algum atributo
ou conjunto de atributos com dependncia direta chave primria.
Remanejamento (cdigo, cdigo_funcionrio, categoria_funcional, lotao_atual, data_admisso, cidade, data_preenchimento, questo1, questo2, questo3, questo4, questo5, questo6, questo7, resultado, justificativa, data_resultado);
Verifique que o campo categoria funcional, lotao atual e cidade devem permanecer na entidade Remanejamento, tendo em vista que, se,
por acaso, se desejar buscar um formulrio emitido h cinco anos, cujo
funcionrio alterou sua categoria funcional, lotao atual ou cidade, os
dados que devero aparecer no formulrio preenchido h cinco anos
devem ser o correspondente categoria funcional, lotao atual ou cidade, preenchido antigamente, e no os dados novos.
Funcionrio (cdigo, nome, sexo, data_nascimento);
Remanejamento/escolaridade
grau);

(cdigo_remanejamento,_escolaridade,

Remanejamento/Cursos (cdigo_remanejamento,_cursos);

Rede e-Tec Brasil

66

Introduo a Banco de Dados

Remanejamento/experincias profissionais (cdigo remanejamento, experincias);


Remanejamento/atribuies desenvolvidas (cdigo remanejamento,_
atribuies);
Remanejamento/setores que trabalhou (cdigo_remanejamento,_setor,
data_entrada, data_sada, motivo_sada);
Remanejamento/atribuies que gostaria (cdigo_remanejamento,_
atribuies, horrio);
Remanejamento/setores-divises-diretorias que gostaria (cdigo_remanejamento, setor);
Remanejamento/motivos descontentamento (cdigo_remanejamento,_motivos, observaes);

4.4.4 Aplicao da 3 Forma Normal 3FN


A 3FN diz que o atributo precisa estar na segunda forma normal, e todos os
atributos que no so chave, no podem depender de outros atributos que
tambm no so chave.
Uma Entidade est na 3FN se nenhum de seus atributos possui dependncia
em relao a outros atributos da entidade. Ao verificar a existncia de dependncia entre as Entidades e seus atributos, devemos criar outra entidade
que contenha os atributos dependentes.
Remanejamento (cdigo, cdigo_funcionrio, cdigo_categoria_funcional, cdigo_lotao, data_admisso, cdigo_cidade, data_preenchimento,
questo1, questo2, questo3, questo4, questo5, questo6, questo7,
resultado, justificativa, data_resultado);
Categoria Funcional (cdigo, descrio);
Lotao (cdigo, descrio);
Cidade (cdigo, descrio);
Funcionrio (cdigo, nome, sexo, data_nascimento);

Aula 4 - Normalizao de dados

67

Rede e-Tec Brasil

Remanejamento/escolaridade (cdigo_remanejamento, cdigo_escolaridade, grau);


Escolaridade (cdigo, descrio);
Remanejamento/Cursos (cdigo_remanejamento, cdigo_cursos);
Cursos (cdigo, descrio);
Remanejamento/experincias profissionais (cdigo_remanejamento,
cdigo_experincias);
Experincias Profissionais (cdigo, descrio);
Remanejamento/atribuies desenvolvidas (cdigo_remanejamento,
cdigo_atribuies);
Atribuies (cdigo, descrio);
Remanejamento/setores que trabalhou (cdigo_remanejamento, cdigo_setor, data_entrada, data_sada, motivo_sada);
Setores (cdigo, descrio);
Remanejamento/atribuies que gostaria (cdigo_remanejamento, cdigo_atribuies, horrio);
Remanejamento/setores-divises-diretorias que gostaria (cdigo_remanejamento, cdigo_setor);
Remanejamento/motivos descontentamento (cdigo_remanejamento,
cdigo_motivos, observaes);
Motivo descontentamento (cdigo, descrio).
A figura 22 demonstra o MER do exemplo anterior.

Rede e-Tec Brasil

68

Introduo a Banco de Dados

Figura 22 - Modelo de Dados aplicado ao Requerimento de Remanejamento


Fonte: autor (adaptado pelo ilustrador)

Resumo
Chegando ao fim deste captulo, voc deve ter percebido que a normalizao de dados uma ferramenta a mais, que propicia a criao de um
Modelo de Dados conciso de forma facilitada. Lembre-se de que sempre h
necessidade de seguir as regras "ao p da letra", considerando que caso no
faa isso, seu modelo gerado poder apresentar problemas, como duplicidade de dados, inconsistncia, entre outros. Fixe a ideia de que a primeira
forma normal busca determinar todas as tabelas associativas que voc ter.
A segunda forma normal busca manter a integridade do banco, mantendo
inclusive o aspecto histrico necessrio e sua dependncia com as entidades.
A terceira forma visa criar entidades que normalmente no dependem de
ningum, mas que se tornam dependentes de outras entidades.

Aula 4 - Normalizao de dados

69

Rede e-Tec Brasil

Atividade de Aprendizagem
1. Aplicar as 3 formas normais e criar o Modelo Entidade Relacionamento
para o formulrio de cadastro de pessoas em um determinado municpio:

Prezado(a) estudante,
Esperamos que voc tenha percebido que a normalizao de dados corresponde a mais uma ferramenta para modelagem de bancos de dados. Neste
momento do curso voc j deve estar apto a trabalhar modelando bancos de
dados para situaes reais, adequando os modelos conforme necessidades
especficas. A prxima aula trata de como os modelos criados so implementados no banco de dados e como realizada a manipulao dos dados
no banco. Para isso, normalmente utiliza-se a linguagem SQL (Structured
Query Language) que est presente em praticamente todos os Sistemas
Gerenciadores de Bancos de Dados e tida como linguagem universal para
bancos de dados.

Rede e-Tec Brasil

70

Introduo a Banco de Dados

Aula 5. Linguagem SQL


Objetivos:
implementar modelos de dados utilizando a linguagem SQL
(Structured Query Language); e
operar a manipulao de informaes em bancos de dados.

Aps a modelagem do banco de dados, no qual h necessidade de definio


de quais entidades, atributos, relacionamentos, tipos de dados e restries
que o mesmo deve conter, fica relativamente fcil implement-lo no Sistema
Gerenciador de Banco de Dados, o qual ir gerenciar os dados a serem armazenados. Para realizar a implementao do modelo de banco de dados,
assim como manipular os dados (inserir, alterar, deletar) utiliza-se uma determinada linguagem, sendo que a mais conhecida e padronizada para praticamente todos os bancos de dados, corresponde linguagem SQL (Structured
Query Language).
A linguagem SQL foi desenvolvida para trabalhar com a manipulao de
dados em bancos de dados e tornou-se um padro internacional de acesso
a bancos de dados.
Seus comandos so divididos em categorias, cada qual com funcionalidades
especficas. Dependendo da literatura utilizada, possumos quatro ou cinco
categorias. Considerando o material fornecido pela Oracle (empresa que
lder do mercado no segmento de banco de dados), possumos quatro classes distintas de comandos:

5.1 Comandos DDL (Linguagem de


Definio de Dados)
So comandos utilizados para construo dos modelos de dados. Por exemplo, se se deseja criar uma tabela (entidade), deve-se utilizar o comando
CREATE TABLE para constru-la. Deve ficar claro que os comandos DDL so

Aula 5 - Linguagem SQL

71

Rede e-Tec Brasil

utilizados somente para criao de estruturas e no insero de registros de


dados.
Entre os comandos DDL temos:

5.1.1 Comando CREATE


Utilizado para criao de tabelas, ndices, relacionamentos, entre outros.
Como exemplo tem-se:

CREATE TABLE tb_cliente


(
cli_codigo INTEGER NOT NULL,
cli_nome VARCHAR2(60) NOT NULL,
cli_rg VARCHAR2(15) NOT NULL,
cli_cpf VARCHAR2(15) NOT NULL,
cli_sexo CHAR(1) NOT NULL,
PRIMARY KEY (cli_codigo)
);
Este exemplo apresenta a criao da entidade tb_cliente, com cinco atributos, em que so definidos os tipos de dados e a chave primria (cli_codigo)
no final da instruo. O que indica o final da instruo corresponde ao (;)
ponto e vrgula.
Para criao do ndice nico (no permite cadastrar dois clientes com o mesmo nome e com o mesmo CPF), um comando DDL deve ser utilizado, conforme o exemplo:
CREATE UNIQUE INDEX uk_cliente ON tb_cliente (cli_nome, cli_cpf);

5.1.2 Comando ALTER


utilizado para alterar a estrutura de uma tabela, por exemplo. Atravs dele
pode-se:
Adicionar colunas:
ALTER TABLE TB_CLIENTE ADD CLI_FONE VARCHAR2(14) NOT NULL;

Rede e-Tec Brasil

72

Introduo a Banco de Dados

Modificar colunas:
ALTER TABLE TB_CLIENTE MODIFY CLI_FONE VARCHAR2(18) NOT NULL;

Dropar colunas:
ALTER TABLE TB_CLIENTE DROP COLUNM CLI_FONE;

Marcar colunas como no utilizadas:


ALTER TABLE TB_CLIENTE SET UNUSED COLUMN CLI_FONE;

Renomear colunas:
ALTER TABLE TB_CLIENTE RENAME COLUMN CLI_FONE TO CLI_TELEFONE;

Definir tabelas como somente leitura:


ALTER TABLE TB_CLIENTE READ ONLY;

5.1.3 Comando DROP


Comando utilizado para apagar tabelas, colunas, ndices, entre outros:
DROP TABLE tb_cliente;

5.2 Comandos DML (Linguagem de



Manipulao de Dados)
Os comandos de manipulao de dados servem para incluir, alterar, deletar
ou selecionar registro das estruturas de dados criadas, utilizando os comandos DDL.

Aula 5 - Linguagem SQL

73

Rede e-Tec Brasil

5.2.1 Comando INSERT


Utilizado para inserir registros em uma entidade:
INSERT INTO tb_bairro (bai_codigo, bai_descricao) VALUES (1, 'CENTRO');

5.2.2 Comando UPDATE:


Utilizado para atualizar registros em uma entidade:

UPDATE tb_funcionario
SET fun_salario = 2000
WHERE fun_codigo = 10;
Perceba que este comando ir atualizar a tabela de funcionrio, alterando o
salrio do funcionrio de cdigo = 10 para R$ 2000,00.

5.2.3 Comando DELETE


Utilizado para apagar registro de uma entidade:
DELETE FROM tb_cliente WHERE cli_codigo = 5;

Neste caso, o comando apagaria da tabela tb_cliente cujo cdigo for 5;

5.2.4 Comando SELECT


Utilizado para selecionar registros em uma ou mais tabelas:
SELECT fun_codigo, fun_nome, fun_salario FROM tb_funcionario;

Este comando selecionaria, na tabela tb_funcionario, todos os funcionrios


e seus respectivos cdigos, nomes e salrios.

5.3 Comandos DCL (Linguagem de


Controle de Dados)

Permitem controlar quais usurios tem permisso para quais atribuies no


banco de dados. O Comando GRANT d permisso, o comando REVOKE
exclui as permisses concedidas.

Rede e-Tec Brasil

74

Introduo a Banco de Dados

GRANT CREATE_TABLE ON USER_JOSE;


REVOKE CREATE_TABEL ON USER_JOSE;
Respectivamente, d-se permisso de criao de tabelas ao usurio USER_
JOSE e retira-se a permisso concedida.

5.4 Comandos DTL (Linguagem de


Transao de Dados)

Estes comandos so necessrios para que os dados sejam gravados fisicamente no disco, quando se confirma uma transao como concluda. Desta
forma, o comando COMMIT, quanto executado, grava toda a transao no
disco, sem a possibilidade de retorno em uma situao anterior, a no ser
atravs de mecanismos de backup. Quando se deseja desfazer uma transao, executa-se o comando ROLLBACK, e o sistema desfaz automaticamente tudo o que no foi comitado at o momento.

Resumo
Neste captulo voc pde avaliar como a estrutura da linguagem SQL,
utilizada para construo e manipulao de bancos de dados. importante
que voc tenha em mente a separao entre os comandos, que possuem
particularidades. Lembre-se que comandos DDL so para serem utilizados
para construo dos modelos de dados. Comandos DML so para manipulao de dados nos bancos de dados j criados. Comando DTL auxiliam na
manipulao dos dados, indicando incio e fim de transao e permitem que
alteraes sejam desfeitas. Por fim, comandos DCL so utilizados para controle de permisses de acesso e manipulao de dados e do banco, dadas
ou retiradas dos usurios.

Atividade de Aprendizagem
1. Construir o modelo de dados utilizando comandos SQL, e inserir em cada
entidade pelo menos um registro:

Aula 5 - Linguagem SQL

75

Rede e-Tec Brasil

Palavras finais
Ao final de nosso curso, espero que voc tenha tirado o mximo de proveito
do contedo repassado e que este ensinamento seja o incio de um futuro
brilhante. Acredito que esta disciplina poder colaborar para sua formao
profissional e acadmica e que ser apenas o ponto de partida para que se
torne um(a) profissional respeitado(a) e com orgulho do que faz, atuando
sempre com simplicidade e dignidade.
Como professor, tenho conscincia de que serei apenas mais um colaborador para que alcance seus objetivos, mas de qualquer forma, gostaria de
dizer que no s como professor, mas como amigo, toro para que alcance
seus objetivos e continue sempre na luta por aprender mais e buscar novos
caminhos.

Rede e-Tec Brasil

76

Introduo a Banco de Dados

Guia de Solues

Aula 1.Modelagem de Dados

1. Defina entidade e apresente dois exemplos prticos.


Resposta: Corresponde a tudo aquilo que se deseja guardar dados, podendo ser concreto ou abstrato. Ex. Cliente, com os atributos Cdigo, nome,
CPF, RG, data de nascimento. Neste caso teramos um atributo concreto.
Como abstrato, podemos ter a entidade Venda, que corresponde a um procedimento interno da empresa. Neste caso, teramos que armazenar dados
de n da venda, data, cliente, funcionrio, produtos, quantidades e valores
unitrios.
2. Defina relacionamento e apresente dois exemplos prticos.
Resposta: corresponde ligao lgica que h entre duas entidades. A entidade Venda, por exemplo, tem ligao com o cliente para quem foi vendido
algum tem. Neste caso, tem-se um relacionamento entre a entidade Cliente
e Funcionrio. Outro exemplo corresponde a entidade Funcionrio que se
liga a entidade Venda por meio do atributo cdigo_do_funcionrio localizado na entidade venda e que representa qual funcionrio realizou a venda.
importante notar que o Funcionrio no tem relao direta (relacionamento)
com a entidade Cliente, considerando que a entidade Venda faz a ligao
entre as duas entidades.
3. Quais entidades voc definiria para construo de um diagrama de dados
para uma oficina mecnica?
Resposta: Cliente, Fornecedor Veculo, Oramento, Ordem_Servio, Peas,
Servios, Mecnicos, Servios_Orcamento, Peas_Oramento, Servios_Ordem, Peas_Ordem, Compras, Peas_Compra, Contas a Pagar, Contas a Receber.
4. Construa um Diagrama Entidade Relacionamento (DER), para servir de
base para um sistema de uma loja de calados. Sabe-se que a loja s vende
calados, tem cadastro de clientes, os funcionrios da loja vendem vista e
prazo (30, 60 e 90 dias). Os clientes inadimplentes no podem comprar se
possuem contas em atraso.

77

Rede e-Tec Brasil

Aula 2 Modelo Entidade Relacionamento


1. Construir os modelos de dados conforme casos hipotticos:
1.1 Caso hipottico 1:
Em uma clnica trabalham mdicos e existem pacientes internados. Cada
mdico identificado pelo seu CRM, possui um nome e recebe um salrio
na clnica. Um mdico tem formao em diversas especialidades (ortopedia,
traumatologia, etc), mas s exerce uma delas na clnica. Para todo paciente
internado na clnica so cadastrados alguns dados pessoais: nome, RG, CPF,
endereo, telefone(s) para contato e data do nascimento. Um paciente tem
sempre determinado mdico como responsvel (com um horrio de visita dirio predeterminado), porm vrios outros mdicos podem participar de seu
tratamento. Pacientes esto sempre internados em quartos individuais, que
so identificados por um nmero e ficam em um andar da clnica.

Rede e-Tec Brasil

78

Introduo a Banco de Dados

1.2 Caso hipottico 2:


Elabore um modelo de dados para suprir a necessidade de um sistema que
vise atender a uma oficina mecnica, onde so realizados oramentos e servios. Os clientes normalmente realizam o oramento; sendo autorizado pelo
cliente, o servio efetuado. O sistema deve controlar as peas (estoque),
bem como manter, em banco, a relao de compras efetuadas. Um servio
ou uma pea podem ter garantia, ressaltando que o sistema deve controlar
esse fato. Os mecnicos recebem comisso sobre seus servios e possuem
um salrio fixo tambm. Deve-se ter uma forma de manter um histrico de
tudo o que foi elaborado em determinado veculo para facilitar a identificao de novos problemas.

79

Rede e-Tec Brasil

Aula 3.Dicionrio De Dados


1. Elaborar o Dicionrio de dados para o Modelo Entidade Relacionamento
abaixo:

Resposta:
Tb_Cliente
Entidade:
Nome da Entidade: Tb_Cliente

Sigla: Cli

Descrio:Refere-se aos dados dos Clientes a serem cadastrados


Relacionamentos
Com a Entidade

Cardinalidade

Atributo(s)

Nome do relacionamento e significado

Tb_Venda

1:M

Ven_CodCliente

Chave primria do cliente faz o relacionamento com a entidade Venda

Nome do Atributo

Caracterstica

Tipo

Chave

Cli_Codigo

Identificador

Number

CP

Refere-se ao cdigo
do Cliente. No nulo.

Cli_Nome

Simples

Varchar2(60)

CU

Representa o nome
do Cliente. No nulo.

CU

Representa a identificao do Cadastro


Nacional de Pessoa
Fsica. No nulo.

Elementos de dados:

Rede e-Tec Brasil

80

Descrio estendida e observaes

Cli_CPF

Simples

Varchar2(14)

Cli_RG

Simples

Varchar2(15)

Representa a identificao do Cadastro


Geral do Cliente.

Cli_Nascimento

Simples

Data

Representa a data
de nascimento do
cliente.

Introduo a Banco de Dados

Tb_Venda
Entidade:
Nome da Entidade: Tb_Venda

Sigla: Ven

Descrio: Refere-se aos dados das vendas realizadas (dados de cabealho, ou seja, dados de quem vendeu, quando
e para quem)
Relacionamentos:
Com a Entidade

Cardinalidade

Atributo(s)

Nome do relacionamento e significado

Tb_Cliente

M:1

Ven_CodCliente

Chave primria do cliente faz o relacinamento


com a entidade Venda

Tb_Funcionario

M:1

Ven_CodFuncionario

Chave primria do funcionrio faz o relacionamento com a entidade Venda

Tb_ItensVenda

1:M

Ven_Codigo

Chave primria da Venda faz o relacionamento


com a entidade Tb_ItensVenda representando
o valor com que o item foi vendido.

Nome do Atributo

Caracterstica

Tipo

Chave

Descrio estendida e
observaes

Ven_Codigo

Identificador

Number

CP

Refere-se ao cdigo da venda.


No nulo.

Ven_Data

Simples

Data

Representa a data em que a


venda foi realizada. No nulo.

Ven_CodCliente

Simples

Number

Representa a identificao do
cliente para quem foi realizada
a venda.

Ven_CodFuncionario

Simples

Number

Representa a identificao
do funcionrio que realizou
a venda.

Elementos de dados:

Tb_ItensVenda
Entidade:
Nome da Entidade: Tb_ItensVenda

Sigla: Itv

Descrio:Refere-se aos dados referentes aos itens vendidos.


Relacionamentos:
Com a Entidade

Cardinalidade

Atributo(s)

Nome do relacionamento e significado

Tb_Venda

M:1

Itv_CodVenda

Faz o relacionamento com a entidade Tb_Venda


a qual indica o cdigo da venda com que um
tem foi vendido.

Tb_Produto

M:1

Itv_CodProduto

Faz o relacionamento com a entidade Tb_Produto, a qual indica o produto que foi vendido em
determinada venda.

Nome do Atributo

Caracterstica

Tipo

Chave

Descrio estendida e
observaes

Itv_CodVenda

Identificador

Number

CP

Refere-se ao cdigo da
venda. No nulo.

Itv_CodProduto

Identificador

Number

CP

Refere-se ao cdigo do
produto. No nulo.

Itv_Quantidade

Simples

Number

Elementos de dados:

Representa a quantidade
vendida de um tem em
determinada venda.

81

Rede e-Tec Brasil

Itv_ValorUnitario

Simples

Representa o valor de um
tem em determinada
venda.

Number

Tb_Funcionario
Entidade:
Nome da Entidade: Tb_Funcionario

Sigla: Fun

Descrio: Refere-se aos dados dos funcionrios


Relacionamentos:
Com a Entidade

Atributo(s)

Nome do relacionamento e significado

1:M

Fun_Codigo

Representa a chave primria da entidade Tb_


Funcionario, que utilizada para se relacionar
com a entidade Venda, indicando qual foi o
funcionrio que realizou determinada venda.

Nome do Atributo

Caracterstica

Tipo

Chave

Descrio estendida e
observaes

Fun_Codigo

Identificador

Number

CP

Refere-se ao cdigo do
funcionrio. No nulo.

Fun_Nome

Simples

Varchar2(60)

CU

Refere-se ao nome do
funcionrio. No Nulo.

Tb_Venda

Cardinalidade

Elementos de dados:

Fun_PercentualComissao

Simples

Number

Representa o valor percentual que determinado


funcionrio possui sobre as
vendas realizadas

Fun_SalarioFixo

Simples

Number

Representa o valor do salrio


fixo do funcionrio.

Tb_Produto
Entidade:
Nome da Entidade: Tb_Produto

Sigla: Pro

Descrio: Refere-se aos dados relativos aos produtos para revenda


Relacionamentos:
Com a Entidade

Cardinalidade

Atributo(s)

Nome do relacionamento e significado

Tb_ItensVenda

M:1

Itv_CodProduto

O atributo Pro_Codigo se relaciona com a


entidade Tb_ItensVenda, indicando qual o
produto vendido em determinada venda.

Nome do Atributo

Caracterstica

Tipo

Chave

Descrio estendida e
observaes

Pro_Codigo

Identificador

Number

CP

Refere-se ao cdigo do
produto. No nulo.

Pro_Descricao

Simples

Varchar2(60)

CU

Refere-se descrio dos


produtos cadastrados.
No nulo.

Pro_Valor

Simples

Number

Elementos de dados:

Rede e-Tec Brasil

82

Representa o valor
unitrio corrente de cada
produto.

Introduo a Banco de Dados

Aula 4. Normalizao De Dados


1. Aplicar as 3 formas normais e criar o Modelo Entidade Relacionamento
para o formulrio de cadastro de pessoas em um determinado municpio:

RESPOSTA:
MUNICIPE (Codigo, nome, cpf, rg, emissor, uf, data, titulo, secao, zona,
nascimento, naturalidade, nacionalidade, sexo, estadocivil, dependentes,
endereco, numero, bairro, fone, celular, dtchegada, cor, pai, mae, ocupacao, escolaridade, formacao, ondeestuda, pretendevoltarestudar, portadornecessidade, estudopretendido, socilitacupom, associacao, sindicato, clube,
religiao)
1 FORMA NORMAL
MUNICIPE (Codigo, nome, cpf, rg, emissor, uf, data, titulo, secao, zona, nascimento, naturalidade, nacionalidade, sexo, estadocivil, dependentes, endereco, numero, bairro, fone, celular, dtchegada, cor, pai, mae, ocupacao,
escolaridade, formacao, ondeestuda, pretendevoltarestudar, estudopretendido, socilitacupom, associacao, sindicato, clube, religiao)

83

Rede e-Tec Brasil

NECESSIDADES/MUNICIPE(Codmunicipe, necessidadeespecial)
2 FORMA NORMAL
MUNICIPE (Codigo, nome, cpf, rg, emissor, uf, data, titulo, seco, zona, nascimento, naturalidade, nacionalidade, sexo, estadocivil, dependentes, endereco, numero, bairro, fone, celular, dtchegada, cor, pai, mae, ocupacao,
escolaridade, formacao, ondeestuda, pretendevoltarestudar, estudopretendido, socilitacupom, associacao, sindicato, clube, religiao)
NECESSIDADES/MUNICIPE(Codmunicipe, necessidadeespecial)
3 FORMA NORMAL
MUNICIPE (codigo, nome, cpf, rg, codemissor, data, titulo, secao, zona, nascimento, codnaturalidade, codnacionalidade, sexo, codestadocivil, dependentes, codendereco, numero, codbairro, fone, celular, dtchegada, codcor,
pai, mae, codocupacao, codescolaridade, codformacao, codondeestuda,
pretendevoltarestudar, codestudopretendido, Solicitacupom, codassociacao,
codsindicato, codclube, codreligiao)
RELIGIAO(Codigo, descricao)
CLUBE (Codigo, descricao)
SINDICATO (Codigo, descricao)
ASSOCIACAO (Codigo, descricao)
ESCOLA(Codigo, descricao)
FORMACAO (codigo, descricao)
ESCOLARIDADE (Codigo, descricao)
OCUPACAO (Codigo, descricao)
COR (Codigo, descricao)
BAIRRO (Codigo, descricao)

Rede e-Tec Brasil

84

Introduo a Banco de Dados

ENDERECO (Codigo, descricao)


ESTADOCIVIL (Codigo, descricao)
NACIONALIDADE (codigo, descricao)
NATURALIDADE (Codigo, descricao)
EMISSOR (Codigo, descricao, uf)
NECESSIDADES/MUNICIPE(Codmunicipe, Codnecessidadeespecial)
NECESSIDADEESPECIAL(Codigo, descricao)

Aula 5. Linguagem Sql


1. Construir o modelo de dados utilizando comandos SQL, e inserir em cada
entidade pelo menos um registro:

Resposta
COMANDOS DDL (Linguagem de Definio de Dados):
CREATE TABLE TB_ENDERECO
(
END_CODIGO INTEGER NOT NULL,
END_DESCRICAO VARCHAR2(60) NOT NULL,
PRIMARY KEY (END_CODIGO)
);

85

Rede e-Tec Brasil

CREATE UNIQUE INDEX UK_ENDERECO ON TB_ENDERECO(END_DESCRICAO);


CREATE TABLE TB_BAIRRO
(
BAI_CODIGO INTEGER NOT NULL,
BAI_DESCRICAO VARCHAR2(60) NOT NULL,
PRIMARY KEY (BAI_CODIGO)
);
CREATE UNIQUE INDEX UK_BAIRRO ON TB_BAIRRO(BAI_DESCRICAO);
CREATE TABLE TB_CIDADE
(
CID_CODIGO INTEGER NOT NULL,
CID_DESCRICAO VARCHAR2(60) NOT NULL,
CID_ESTADO CHAR(2) NOT NULL,
PRIMARY KEY (CID_CODIGO)
);
CREATE UNIQUE INDEX UK_CIDADE ON TB_CIDADE(CID_DESCRICAO,
CID_ESTADO);
CREATE TABLE TB_CLIENTE
(
CLI_CODIGO INTEGER NOT NULL,
CLI_NOME VARCHAR2(60) NOT NULL,
CLI_RG VARCHAR2(15) NOT NULL,
CLI_CPF VARCHAR2(14) NOT NULL,
CLI_CODENDERECO INTEGER NOT NULL REFERENCES TB_
ENDERECO(END_CODIGO),
CLI_NUMERO INTEGER,
CLI_CODBAIRRO INTEGER NOT NULL REFERENCES TB_BAIRRO(BAI_
CODIGO),
CLI_CODCIDADE INTEGER NOT NULL REFERENCES TB_CIDADE(CID_
CODIGO),
CLI_DTNASCIMENTO DATE NOT NULL,
CLI_DTCADASTRO DATE NOT NULL,
PRIMARY KEY (CLI_CODIGO)
);
CREATE UNIQUE INDEX UK_CLIENTE ON TB_CLIENTE (CLI_CPF);
CREATE TABLE TB_FUNCIONARIO
(
FUN_CODIGO INTEGER NOT NULL,
FUN_NOME VARCHAR2(60),
PRIMARY KEY (FUN_CODIGO)
);
CREATE TABLE TB_PRODUTO
(
PRO_CODIGO INTEGER NOT NULL,
PRO_DESCRICAO VARCHAR2(60) NOT NULL,
PRO_VLRCUSTO DECIMAL(10,2) NOT NULL,
PRO_VLRVENDA DECIMAL(10,2) NOT NULL,
PRO_UNIDADE VARCHAR2(20) NOT NULL,

Rede e-Tec Brasil

86

Introduo a Banco de Dados



PRO_MINIMO DECIMAL(10,2),
PRO_MAXIMO DECIMAL(10,2),
PRO_QUANTIDADE DECIMAL (10,2),
PRIMARY KEY (PRO_CODIGO)

);
CREATE UNIQUE INDEX UK_PRODUTO ON TB_PRODUTO (PRO_DESCRICAO);
CREATE TABLE TB_VENDA
(
VEN_CODIGO INTEGER NOT NULL,
VEN_DATA DATE NOT NULL,
VEN_VALORTOTAL DECIMAL (10,2),
VEN_CODCLIENTE INTEGER NOT NULL REFERENCES TB_CLIENTE(CLI_
CODIGO),
VEN_CODVENDEDOR INTEGER NOT NULL REFERENCES TB_
FUNCIONARIO(FUN_CODIGO),
PRIMARY KEY (VEN_CODIGO)
);
CREATE TABLE TB_ITEMVENDA
(
ITV_CODVENDA INTEGER NOT NULL REFERENCES TB_VENDA(VEN_
CODIGO),
ITV_CODPRODUTO INTEGER NOT NULL REFERENCES TB_PRODUTO(PRO_
CODIGO),
ITV_QUANTIDADE DECIMAL(10,2) NOT NULL,
ITV_VLRUNITARIO DECIMAL(10,2) NOT NULL,
PRIMARY KEY (ITV_CODVENDA, ITV_CODPRODUTO)
);
COMANDOS DML (LINGUAGEM DE MANIPULAO DE DADOS):
INSERT INTO TB_ENDERECO (END_CODIGO, END_DESCRICAO) VALUES (1,
'RUA BAHIA');
INSERT INTO TB_BAIRRO (BAI_CODIGO, BAI_DESCRICAO) VALUES (1,
'COND');
INSERT INTO TB_CIDADE (CID_CODIGO, CID_DESCRICAO, CID_ESTADO)
VALUES (1, 'MEDIANEIRA', 'PR');
INSERT INTO TB_CLIENTE (CLI_CODIGO, CLI_NOME, CLI_RG, CLI_CPF, CLI_
CODENDERECO, CLI_NUMERO, CLI_CODBAIRRO, CLI_CODCIDADE, CLI_DTNASCIMENTO, CLI_DTCADASTRO) VALUES (1, 'CLAUDIO LEONES BAZZI',
'2324234-9', '009.098.943-22', 1, 1050, 1, 1, '02/07/1980', '20/03/2001');

87

Rede e-Tec Brasil

INSERT INTO TB_FUNCIONARIO (FUN_CODIGO, FUN_NOME) VALUES (1,


'JOS DOS SANTOS');
INSERT INTO TB_PRODUTO (PRO_CODIGO, PRO_DESCRICAO, PRO_VLRCUSTO, PRO_VLRVENDA, PRO_UNIDADE, PRO_MINIMO, PRO_MAXIMO,
PRO_QUANTIDADE) VALUES (1, 'CAF SOLVEL NESCAF 200G', 2.90,
4.50, 'FRASCO', 10, 50, 10);
INSERT INTO TB_VENDA (VEN_CODIGO, VEN_DATA, VEN_CODCLIENTE,
VEN_CODVENDEDOR) VALUES (1, '10/10/2001', 1, 1);
INSERT INTO TB_ITEMVENDA (ITV_CODVENDA, ITV_CODPRODUTO, ITV_
QUANTIDADE, ITV_VLRUNITARIO) VALUES (1, 1, 5, 4.5);

Rede e-Tec Brasil

88

Introduo a Banco de Dados

Referncias
MACHADO, F. N. R, e ABREU, M. P. Projeto de Banco de Dados: uma viso prtica. So
Paulo: Editora rica, 1995.
ORACLE. Oracle Database 10g: SQL Fundamentals. Student Guide. Oracle Corporation.
Ed. 2, 2006.

89

Rede e-Tec Brasil

Obras Consultadas
HEUSER, Carlos Alberto. Projeto de Banco de Dados. Porto Alegre: Sagra-Luzzatto,
2000.
LIGHTSTONE, Sam; NADEAU, Tom; TEOREY, Toby. Projeto e Modelagem de Bancos de
Dados. So Paulo: Campus, 2006.
MACHADO, Felipe N. R. Projeto de Banco de Dados: Uma viso prtica. So Paulo:
rica, 2004.
SILVA, Ivan J. de M.; OLIVEIRA, Vivianne de. Banco de dados: do modelo conceitual
implantao fsica. Rio de Janeiro: Alta Books, 2005.
SILBERSCHATZ, Abraham. Sistema de Banco de Dados. So Paulo: Makron Books,
1999.

Rede e-Tec Brasil

90

Introduo a Banco de Dados

Currculo do Professor-autor
Cludio Leones Bazzi, graduado em Tecnologia em Processamento de Dados pelo Centro
de Ensino Superior de Foz do Iguau (2001),
especializao em Computao Aplicada
(2002), especializao em Redes de Computadores (2007), mestrado em Engenharia
Agrcola pela Universidade Estadual do Oeste do Paran (2007). Doutor em Engenharia
Agrcola da Universidade Estadual do Oeste do Paran (2011), professor Adjunto da
Universidade Tecnolgica Federal do Paran, coordenador do curso de especializao em Bancos de Dados - Administrao e Desenvolvimento e coordenador do curso de Bacharelado em Cincia da Computao do campus
Medianeira da UTFPR. Tem experincia na rea de Cincia da Computao,
com nfase em Desenvolvimento de Sistemas, atuando principalmente nos
seguintes temas: computao aplicada, bancos de dados relacionais e bancos
de dados geogrficos, anlise de dados.

91

Rede e-Tec Brasil

Rede e-Tec Brasil

92