Banco de Dados
Cludio Leones Bazzi
Cuiab-MT
2013
Coordenao Institucional
Carlos Rinaldi
Coordenao de Produo de Material
Didtico Impresso
Pedro Roberto Piloni
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
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.
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.
Contents
Indicao de cones
Apresentao da Disciplina
11
Sumrio
13
15
1.1 Modelagem
17
MER
33
39
40
da biblioteca)
53
54
55
56
Remanejamento)
71
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.
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
12
Sumrio
15
17
27
27
33
39
40
41
53
54
55
56
62
71
71
73
74
75
Palavras Finais
Guia de Solues
Referncias
Obras Consultadas
Currculo do Professor-autor
76
77
89
90
91
13
14
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
15
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.
16
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
17
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
18
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
....
.....
.....
.....
WANDERLEI LIRA
878.444.332-09
RUA SO PAULO
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
19
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).
20
Figura 7
Fonte: autor (adaptado pelo ilustrador)
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).
21
22
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.
23
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
24
25
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.
27
28
29
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.
30
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).
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.
31
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.
32
33
34
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.
35
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.
36
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.
37
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.
39
Nome da entidade
Sigla
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.
Cardinalidade
40
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
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.
41
Tb_Autor
Entidade:
Nome da Entidade: Tb_Autor
Sigla: Aut
Cardinalidade
Atributo(s)
Tb_AutorLivro
1:M
AutLiv_CodAutor
Nome do Atributo
Caracterstica
Tipo
Chave
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.
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)
Tb_Autor
M:1
AutLiv_CodAutor
Tb_Livro
M:1
AutLiv_CodLivro
Nome do Atributo
Caracterstica
Tipo
Chave
Descrio estendida e
observaes
AutLiv_CodAutor
Identificador
Number
CP
AutLiv_CodLivro
Simples
Number
CP
AutLiv_Principal
Simples
Varchar2(3)
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
42
Cardinalidade
Atributo(s)
Tb_Livro
1:M
Liv_CodCategoria
Nome do Atributo
Caracterstica
Tipo
Chave
Descrio estendida e
observaes
Cat_Codigo
Identificador
Number
CP
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)
Tb_AutorLivro
1:M
AutLiv_CodAutor
Tb_Categoria
M:1
Liv_CodCategoria
Tb_Editora
M:1
Liv_CodEditora
Tb_Reserva
1:M
Res_CodReserva
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
Elementos de dados:
Liv_PrazoMinimo
Simples
Number
Descrio estendida e
observaes
43
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
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)
Tb_Editora
Entidade:
Nome da Entidade: Tb_Editora
Sigla: Edi
Relacionamentos:
Com a Entidade
Cardinalidade
Atributo(s)
Tb_Bairro
M:1
Edi_CodBairro
Tb_Cidade
M:1
Edi_CodCidade
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.
Elementos de dados:
44
Descrio estendida e
observaes
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)
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
Tb_Funcionario
M:1
Res_CodFuncionario
Tb_Cliente
M:1
Res_CodCliente
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
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.
Elementos de dados:
Descrio estendida e
observaes
45
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 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.
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)
Tb_Cargo
M:1
Fun_CodCargo
Tb_Bairro
M:1
Fun_CodBairro
Tb_Endereco
M:1
Fun_CodEndereco
Tb_Cidade
M:1
Fun_CodCidade
Tb_Emprestimo
1:M
Emp_CodFuncionario
Tb_Funcionario
1:M
Res_CodFuncionario
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.
Elementos de dados:
46
Descrio estendida e
observaes
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
Cardinalidade
Atributo(s)
Tb_Funcionario
1:M
Fun_CodBairro
Tb_Cliente
1:M
Cli_CodBairro
Tb_Editora
1:M
Edi_CodBairro
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
Cardinalidade
Atributo(s)
Tb_Funcionario
1:M
Fun_CodCidade
Tb_Cliente
1:M
Cli_CodCidade
Tb_Editora
1:M
Edi_CodCidade
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:
Descrio estendida e
observaes
47
Tb_Endereco
Entidade:
Nome da Entidade: Tb_Endereco
Sigla: End
Cardinalidade
Atributo(s)
Tb_Funcionario
1:M
Fun_CodEndereco
Tb_Cliente
1:M
Cli_CodEnderco
Tb_Editora
1:M
Edi_CodEndereco
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.
Elementos de dados:
Descrio estendida e
observaes
Tb_Cliente
Entidade:
Nome da Entidade: Tb_Cliente
Sigla: Cli
Cardinalidade
Atributo(s)
Tb_Reserva
1:M
Res_CodCliente
Tb_Emprestimo
M:1
Emp_CodCliente
Tb_Bairro
M:1
Cli_CodBairro
Tb_Cidade
M:1
Cli_CodCidade
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
Cli_Numero
Simples
Number
Representa o nmero do
endereo no qual o cliente
reside. Nulo.
Cli_CodBairro
Simples
Number
CE
Elementos de dados:
48
Descrio estendida e
observaes
Cli_CodCidade
Simples
Number
CE
Cli_Fone
Simples
Varchar2(14)
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)
Tb_Funcionario
M:1
Emp_CodFunc.
Tb_Cliente
1:M
Emp_CodCliente
1:M
Exepre_Codemp.
Nome do Atributo
Caracterstica
Tipo
Chave
Emp_Codigo
Identificador
Number
CP
Cdigo do emprstimo.
No nulo.
Emp_Data
Simples
Date
Emp_CodFuncionario
Simples
Number
Funcionrio responsvel
pelo emprstimo. No
nulo.
Emp_CodCliente
Simples
Number
Tb_ExemplarEmprestimo
Elementos de dados:
Descrio estendida e
observaes
49
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)
Tb_Emprestimo
M:1
Exepre_Codemprestimo
Tb_Reserva
0:1
Exepre_CodReserva
Tb_Exemplar
M:1
Exepre_CodExemplar
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
Exepre_DtDevMul
Simples
Date
Exepre_DtPgMul
Simples
Date
Exepre_CodReserva
Simples
Number
CE
Refere-se ao cdigo da
reserva. No nulo.
Exepre_ValorMulta
Simples
Number
Elementos de dados:
Descrio estendida e
observaes
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
50
Atividade de Aprendizagem
1. Elaborar o Dicionrio de dados para o Modelo Entidade Relacionamento
abaixo:
51
53
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.
54
55
56
Dados da Empresa
Data: 01/01/0101
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
57
58
59
60
61
Figura 19
Fonte: Machado (1995)
62
Figura 20
Fonte: Machado (1995)
63
Figura 21
Fonte: Machado (1995)
64
(cdigo_remanejamento,
escolaridade,
65
gostaria (cdigo_remanejamento,
(cdigo_remanejamento,_escolaridade,
Remanejamento/Cursos (cdigo_remanejamento,_cursos);
66
67
68
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.
69
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.
70
71
72
Modificar colunas:
ALTER TABLE TB_CLIENTE MODIFY CLI_FONE VARCHAR2(18) NOT NULL;
Dropar colunas:
ALTER TABLE TB_CLIENTE DROP COLUNM CLI_FONE;
Renomear colunas:
ALTER TABLE TB_CLIENTE RENAME COLUMN CLI_FONE TO CLI_TELEFONE;
73
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.
74
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:
75
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.
76
Guia de Solues
Aula 1.Modelagem de Dados
77
78
79
Resposta:
Tb_Cliente
Entidade:
Nome da Entidade: Tb_Cliente
Sigla: Cli
Cardinalidade
Atributo(s)
Tb_Venda
1:M
Ven_CodCliente
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
Elementos de dados:
80
Cli_CPF
Simples
Varchar2(14)
Cli_RG
Simples
Varchar2(15)
Cli_Nascimento
Simples
Data
Representa a data
de nascimento do
cliente.
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)
Tb_Cliente
M:1
Ven_CodCliente
Tb_Funcionario
M:1
Ven_CodFuncionario
Tb_ItensVenda
1:M
Ven_Codigo
Nome do Atributo
Caracterstica
Tipo
Chave
Descrio estendida e
observaes
Ven_Codigo
Identificador
Number
CP
Ven_Data
Simples
Data
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
Cardinalidade
Atributo(s)
Tb_Venda
M:1
Itv_CodVenda
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
Itv_ValorUnitario
Simples
Representa o valor de um
tem em determinada
venda.
Number
Tb_Funcionario
Entidade:
Nome da Entidade: Tb_Funcionario
Sigla: Fun
Atributo(s)
1:M
Fun_Codigo
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
Fun_SalarioFixo
Simples
Number
Tb_Produto
Entidade:
Nome da Entidade: Tb_Produto
Sigla: Pro
Cardinalidade
Atributo(s)
Tb_ItensVenda
M:1
Itv_CodProduto
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
Pro_Valor
Simples
Number
Elementos de dados:
82
Representa o valor
unitrio corrente de cada
produto.
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
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)
84
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
86
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
88
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
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.
90
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
92