Escolar Documentos
Profissional Documentos
Cultura Documentos
Introducao Banco Dados ISBN
Introducao Banco Dados ISBN
Banco de Dados
Cláudio Leones Bazzi
Cuiabá-MT
2013
Presidência da República Federativa do Brasil
Ministério da Educação
Secretaria de Educação Profissional e Tecnológica
Diretoria de Integração das Redes de Educação Profissional e Tecnológica
Designer Master
Daniela Mendes Piloni
Revisão Final
Francisco Rodrigues dos Santos
Ilustração
Maurício José Mota
Diagramação
Tatiane Hirata
Projeto Gráfico
Rede e-Tec Brasil / UFMT
Introdução a banco de dados / Cláudio 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 programação de computador).
I. Título.
CDD (22. ed.) 005.74
Prezado(a) estudante,
Você faz parte de uma rede nacional de ensino que, por sua vez, constitui uma das ações do
Pronatec - Programa Nacional de Acesso ao Ensino Técnico e Emprego. O Pronatec, instituído
pela Lei nº 12.513/2011, tem como objetivo principal expandir, interiorizar e democratizar
a oferta de cursos de Educação Profissional e Tecnológica (EPT) para a população brasileira
propiciando caminho de acesso mais rápido ao emprego.
É neste âmbito que as ações da Rede e-Tec Brasil promovem a parceria entre a Secretaria de
Educação Profissional e Tecnológica (Setec) e as instâncias promotoras de ensino técnico,
como os institutos federais, as secretarias de educação dos estados, as universidades, as es-
colas e colégios tecnológicos e o Sistema S.
A Rede e-Tec Brasil leva diversos cursos técnicos a todas as regiões do país, incentivando os
estudantes a concluir o ensino médio e a realizar uma formação e atualização contínuas. Os
cursos são ofertados pelas instituições de educação profissional e o atendimento ao estudan-
te é realizado tanto nas sedes das instituições quanto em suas unidades remotas, os polos.
Os parceiros da Rede e-Tec Brasil acreditam em uma educação profissional qualificada – in-
tegradora do ensino médio e da educação técnica – capaz de promover o cidadão com ca-
pacidades para produzir, mas também com autonomia diante das diferentes dimensões da
realidade: cultural, social, familiar, esportiva, política e ética.
Ministério da Educação
Dezembro de 2013
Nosso contato
etecbrasil@mec.gov.br
Indicação de ícones 7
Apresentação da Disciplina 11
Sumário 13
1.1 Modelagem 17
Este material objetiva dar suporte para que o aluno possa elaborar modelos
de dados e implementá-los para soluções práticas no desenvolvimento de
softwares.
1.1 Modelagem 17
Palavras Finais 76
Guia de Soluções 77
Referências 89
Obras Consultadas 90
Currículo do Professor-autor 91
Objetivos:
Figura 1
Fonte: ilustrador
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á cons-
truir a estrutura de armazenamento onde ficarão os dados.
Figuras 4
Fonte: ilustrador
Para quem não está habituado aos termos de banco de dados, neste ponto
já deve estar se perguntando: O que é uma entidade? O que é um relacio-
namento e o que ele representa? Neste sentido, iremos conceituar de forma
objetiva, exemplificando estes termos:
Figura 4
Fonte: ilustrador
Outra entidade neste exemplo corresponde aos dados das vendas. É eviden-
te 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 negócio).
1.1.2 Atributo
O atributo corresponde a todas as características ou dados relacionados com
a entidade e que se deseja guardar. Por exemplo, na entidade cliente é in-
dispensável guardar o nome do cliente, o CPF, o endereço, etc. Perceba que
cada um destes itens corresponde a um atributo da entidade cliente que
será válido para cada cliente cadastrado. Em uma entidade os dados são
organizados como em uma tabela, sendo que os atributos correspondem
às colunas da tabela, e as linhas correspondem aos registros (um cliente por
Entidade Cliente
1.1.3 Relacionamento
Corresponde à representação que indica qual é a relação entre uma entidade
e outra. Por exemplo, indicamos que teríamos a entidade cliente e a entida-
de venda para o exemplo da loja. O relacionamento indica justamente que
a entidade cliente tem alguma relação com a entidade venda. Neste ponto,
faz-se necessário o entendimento de outro conceito importante em banco
de dados: o conceito de Cardinalidade.
1.1.4 Cardinalidade
Corresponde ao grau de relação entre duas entidades. No exemplo, pode-se
definir que um cliente pode ter várias vendas relacionadas com ele e que uma
venda é realizada para um único cliente. Perceba que a cardinalidade se baseia
na seguinte questão: uma linha (registro) de uma tabela (Cliente) está relacio-
nada com quantas linhas da outra tabela (Vendas). Como se pode verificar,
dado que cada venda é registrada em uma linha da entidade Vendas, então
pode-se dizer que um cliente está relacionado com várias vendas.
Figura 8
Fonte: autor (adaptado pelo ilustrador)
As interações que existem entre duas entidades são descritas dentro do re-
lacionamento (losango), dando um entendimento maior sobre a influência
que uma entidade exerce sobre a outra (figura 9).
em que:
m - m = muitos para muitos, ou seja, uma linha de uma tabela A deve se rela-
cionar com várias colunas da tabela B e uma linha da tabela B deve se relacio-
nar com várias linhas da tabela A;
1 – m = um para muitos, ou seja, uma linha da tabela A deve se relacionar com
várias linhas da tabela B, mas uma linha da tabela B se relaciona com uma
única linha da tabela A;
Fonte: autor (adaptado pelo ilustrador)
Figura 11
Fonte: autor (adaptado pelo ilustrador)
Resumo
Nesta aula você aprendeu sobre conceitos de estruturas importantes presen-
tes nos bancos de dados: entidades correspondem a tudo o que se deseja
guardar dados; os relacionamentos correspondem às relações existentes en-
tre as entidades; a cardinalidade diz qual é o grau de relação no relaciona-
mento de duas entidades; os atributos são as características relativas ao que
se quer guardar dados; e os registros são os dados armazenados em uma
entidade. É importante perceber que são com estes conceitos que um banco
de dados é construído, adequando-os a cada contexto que se deseja criar
um banco de dados. A organização do contexto que se deseja modelar, con-
siderando os conceitos apresentados, fornecem suporte para elaboração do
Diagrama Entidade Relacionamento – DER que é um esboço 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 características apresentadas pelo
DER.
Atividades de Aprendizagem
1. Defina entidade e apresente dois exemplos práticos.
Objetivos:
Perceba que não poderíamos utilizar o nome de brasileiros como chave pri-
mária, tendo em vista que podemos ter várias pessoas com o mesmo nome
e, quando falássemos do brasileiro “João da Silva”, não saberíamos real-
mente a qual linha do banco de dados ele está associado, considerando que
poderíamos ter vários brasileiros com este nome.
Você deve estar se perguntando: posso ter vários “João da Silva”, mas mo-
ram em lugares diferentes, por meio do local de moradia, pode-se distinguir
um do outro! Não poderia? A resposta para essa pergunta é SIM. Com cer-
teza, você poderia relacionar com outros atributos e identificar qual “João
da Silva” você está procurando.
Para identificação dos itens a serem locados, devemos possuir uma entida-
de chamada FILMES, considerando que serão armazenados todos os filmes
que a locadora possui. Perceba que não se terá um controle de cada exem-
plar 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).
Iremos fazer isso também na entidade TB_FILME, em que iremos criar ou-
tra entidade chamada TB_CATEGORIA para cadastrar todas as categorias
possíveis e relacioná-las através do atributo Fil_CodCategoria localizado na
entidade TB_FILME como podemos verificar na figura 10.
Durante a criação das tabelas de dados, deve-se definir o tipo de dados para
cada coluna e a escolha incorreta pode ocasionar problemas sérios, talvez
não momentâneos, mas a partir de um tempo ou com mudanças na estru-
tura da empresa.
• DATE – Data: possui tamanho zero se o campo estiver vazio, mas sete
bytes quando estiver completo. O tipo de dado DATE possui informações
sobre século, ano, mês, dia, hora, minuto e segundo. O intervalo válido é
de primeiro de janeiro de 4712 antes de cristo e 9999 dC.
• NLOB – dados parecidos com o CLOB, mas utilizado para caracteres es-
peciais diferentes do padrão Unicode.
• LONGRAW – parecido com o tipo LONG, mas para dados binários. Uma
coluna deste tipo pode ser convertida para BLOB.
Resumo
Tivemos a oportunidade de aprender nesta aula que o Modelo Entidade
Relacionamento (MER) corresponde a um diagrama mais detalhado ou mais
próximo do modelo real que será implementado. Ressaltamos que o DER é
uma forma gráfica de representação e está limitado a apresentar um esque-
ma de todas as entidades, seus relacionamentos e a cardinalidade entre eles.
Atividades de Aprendizagem
1. Construir os modelos de dados conforme casos hipotéticos:
a) Caso hipotético 1:
Nesta etapa, você deve estar refletindo como o banco de dados ficará estru-
turado quando implementado. Perceba que apesar da fácil interpretação dos
modelos criados, são muitos detalhes que precisam ser seguidos para imple-
mentação e manipulação 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 período e passar a tarefa para outro funcio-
nário da empresa por você ter sido promovido. É impossível que este novo
funcionário saiba todos os detalhes do banco que você implementou e até
com o passar do tempo, fica difícil para você mesmo relembrar de detalhes
importantes, como tipos de dados, nome de atributos e entidades, restri-
ções de integridade, entre outros. Neste sentido, é de suma importância que
sejam gravados dados sobre os dados (também chamados de metadados)
e que correspondem a relatar cada detalhe do banco, incluindo entidades,
atributos, relacionamentos, restrições de integridade, tipos de dados, entre
outras coisas. Desta forma, qualquer pessoa que estiver em dúvida sobre al-
gum detalhe do modelo, poderá consultar esta documentação e sanar suas
dúvidas. O próximo capítulo trata do dicionário de dados e expõe uma forma
organizada de documentar o modelo de dados.
Objetivos:
Nome Nome do atributo, conforme será utilizado pelos programas e linguagem SQL.
Característica Simples, composto, identificador, único, multivalorado, derivado...
Tipo do dado:
Varchar2= Conjunto de caracteres
Tipo N = Number
D = Date.
Relacionamentos:
Com a Entidade Cardinalidade Atributo(s) Nome do relacionamento e significado
Tb_AutorLivro 1:M AutLiv_CodAutor Representa o código do autor, para indicar
que o autor está associado a um livro.
Elementos de dados:
Nome do Atributo Característica Tipo Chave Descrição estendi-
da e observações
Aut_Codigo Identificador Number CP Refere-se ao código
do autor. Não nulo.
Aut_Nome Simples Varchar2(60) - Representa o nome
do autor. Não nulo.
Tb_AutorLivro
Entidade:
Nome da Entidade: Tb_AutorLivro Sigla: AutLiv
Descrição: Entidade Associativa, onde são 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.
Elementos de dados:
Nome do Atributo Característica Tipo Chave Descrição estendida e
observações
AutLiv_CodAutor Identificador Number CP Representa o código do autor
do livro. Não nulo.
AutLiv_CodLivro Simples Number CP Refere-se ao código do livro
do autor. Não nulo.
AutLiv_Principal Simples Varchar2(3) - Indica que o autor que está
sendo associado ao livro cor-
responde ao autor principal.
Não nulo.
Tb_Categoria
Entidade:
Nome da Entidade: Tb_Categoria Sigla: Cat
Descrição: Corresponde à nomenclatura de todas as áreas de interesse. Por exemplo, pode-se ter a categoria referen-
te à informática, à física, à química, entre outros.
Relacionamentos:
Com a Entidade Cardinalidade Atributo(s) Nome do relacionamento e significado
Tb_Livro
Entidade:
Nome da Entidade: Tb_Livro Sigla: Liv
Descrição: São armazenados nesta tabela, dados referentes a cada obra disponível na biblioteca.
Relacionamentos:
Com a Entidade Cardinalidade Atributo(s) Nome do relacionamento e significado
Tb_AutorLivro 1:M AutLiv_CodAutor Representa o código do livro no relacionamento.
Representa o código da categoria que o livro se
Tb_Categoria M:1 Liv_CodCategoria
relaciona.
Representa o código da editora com a qual o
Tb_Editora M:1 Liv_CodEditora
livro está registrado.
Tb_Reserva 1:M Res_CodReserva Representa o código do livro em uma reserva.
Tb_Exemplar 1:M Exe_CodLivro Representa o código do livro do exemplar
Elementos de dados:
Nome do Atributo Característica Tipo Chave Descrição estendida e
observações
Representa o código do
Liv_Codigo Identificador Number CP livro cadastrado. Campo
não nulo.
Refere-se ao título do
Liv_Titulo Simples Varchar2 (60) -
livro. Campo não nulo.
Refere-se ao código da
Liv_CodEditora Simples Number - editora na qual o livro foi
editado. Campo não nulo.
Representa a categoria
Liv_CodCategoria Simples Number - pela qual o livro está inse-
rido. Campo não nulo.
Refere-se ao número da
Liv_Edicao Simples Varchar2 (20) - edição do livro. Campo
não nulo.
Representa o ano de lan-
Liv_Ano Simples Number - çamento do livro. Campo
não nulo.
Refere-se ao prazo que o
livro ficará emprestado.
Liv_PrazoMinimo Simples Number -
Campo nulo. Este dado é
expresso em dias.
Relacionamentos:
Com a Entidade Cardinalidade Atributo(s) Nome do relacionamento e significado
Representa o livro ao qual corresponde o
Tb_Livro M:1 Exe_CodLivro
exemplar.
Tb_ExemplarEm- Exepre_Codexem- Representa o código do exemplar do livro que
1:M
prestimo plar está sendo emprestado.
Elementos de dados:
Nome do Atributo Característica Tipo Chave Descrição estendida e
observações
Refere-se ao código do
exemplar no acervo da
Exe_Codigo Identificador Number CP
biblioteca. Campo não
nulo.
Representa o código do
Exe_CodLivro Simples Number -
livro registrado. Não nulo.
Refere-se à situação atual
Exe_Status Simples Varchar2(10) -
do exemplar. Não nulo.
Tb_Editora
Entidade:
Nome da Entidade: Tb_Editora Sigla: Edi
Descrição: Representa a editora pela qual um livro foi editado.
Relacionamentos:
Com a Entidade Cardinalidade Atributo(s) Nome do relacionamento e significado
Representa o bairro onde a editora está
Tb_Bairro M:1 Edi_CodBairro
localizada.
Representa a cidade em que a editora se
Tb_Cidade M:1 Edi_CodCidade
localiza.
Tb_Endereco M:1 Edi_CodEndereco Representa a rua da editora.
Tb_Livro 1:M Liv_CodEditora Representa a editora que editou o livro
Elementos de dados:
Nome do Atributo Característica Tipo Chave Descrição estendida e
observações
Refere-se ao código da
Edi_Codigo Identificador Number CP
editora. Não nulo.
Representa o nome da
Edi_Nome Simples Varchar2 (60) -
editora. Não nulo.
Tb_Reserva
Entidade:
Nome da Entidade: Tb_Reserva Sigla: Res
Descrição: Refere-se à reserva de livros no acervo da biblioteca. Caso o livro não esteja disponível no momento, o livro
pode ser reservado pelo leitor.
Relacionamentos:
Com a Entidade Cardinalidade Atributo(s) Nome do relacionamento e significado
Tb_Livro M:1 Res_CodLivro Representa o código do livro da reserva.
Res_CodFuncio- Representa o código do funcionário responsável
Tb_Funcionario M:1
nario pela reserva.
Tb_Cliente M:1 Res_CodCliente Representa o código do cliente da reserva.
Tb_ExemplarEm- Representa o código da reserva registrada no
1:N Exepre_CodReserva
prestimo banco de dados.
Elementos de dados:
Nome do Atributo Característica Tipo Chave Descrição estendida e
observações
Refere-se ao código da
Res_Codigo Identificador Number CP
reserva. Não nulo.
Representa a data que
Res_Data Simples Date - a reserva foi solicitada.
Não nulo.
Representa o código do
Res_CodLivro Simples Number -
livro. Não nulo.
Refere-se ao código do
Res_CodFunc Simples Number - funcionário que realizou a
reserva. Não nulo.
Representa o código do
Res_CodCliente Simples Number - cliente que realizou a
reserva. Não nulo.
Refere-se ao status da
Res_Situacao Simples Varchar2 (10) -
reserva. Nulo.
Relacionamentos:
Com a Entidade Cardinalidade Atributo(s) Nome do relacionamento e significado
Tb_Funcionario 1:M Fun_CodCargo Representa o cargo do funcionário
Elementos de dados:
Nome do Atributo Característica Tipo Chave Descrição estendida e
observações
Refere-se ao código do
Car_Codigo Identificador Number CP
cargo. Não nulo.
Representa o nome do
Car_Descricao Simples Varchar2 (60) -
cargo. Não nulo.
Representa o salário-base,
Car_SalarioBase simples Number - referente ao cargo. Não
nulo.
Tb_Funcionario
Entidade:
Nome da Entidade: Tb_Funcionario Sigla: Fun
Descrição: Representa os dados pessoais do funcionário juntamente com sua função na biblioteca.
Relacionamentos:
Com a Entidade Cardinalidade Atributo(s) Nome do relacionamento e significado
Tb_Cargo M:1 Fun_CodCargo Representa o cargo do funcionário.
Tb_Bairro M:1 Fun_CodBairro Representa o bairro do funcionário.
Tb_Endereco M:1 Fun_CodEndereco Representa o endereço do funcionário.
Tb_Cidade M:1 Fun_CodCidade Representa a cidade do funcionário.
Representa o código do funcionário na tabela
Emp_CodFuncio-
Tb_Emprestimo 1:M de empréstimos. Mantém o controle de qual
nario
funcionário efetuou o empréstimo.
Res_CodFuncio- Representa o código do funcionário responsável
Tb_Funcionario 1:M
nario pela reserva.
Elementos de dados:
Nome do Atributo Característica Tipo Chave Descrição estendida e
observações
Código do funcionário.
Fun_Codigo Identificador Number CP
Não nulo.
Nome do funcionário.
Fun_Nome Simples Varchar2(60) -
Não nulo
Cargo do funcionário.
Fun_CodCargo Simples Number CE
Não nulo
CPF do funcionário. Não
Fun_CPF Simples Varchar2 (14) -
nulo.
RG do funcionário. Não
Fun_RG Simples Varchar2 (20) -
nulo.
Tb_Bairro
Entidade:
Nome da Entidade: Tb_Bairro Sigla: Bai
Descrição: Representa os bairros cadastrados no banco de dados.
Relacionamentos:
Com a Entidade Cardinalidade Atributo(s) Nome do relacionamento e significado
Tb_Funcionario 1:M Fun_CodBairro Bairro onde o funcionário reside.
Tb_Cliente 1:M Cli_CodBairro Bairro onde o cliente reside.
Tb_Editora 1:M Edi_CodBairro Bairro onde localiza-se a editora.
Elementos de dados:
Nome do Atributo Característica Tipo Chave Descrição estendida e
observações
Refere-se ao código do
Bai_Codigo Identificador Number CP
bairro. Não nulo
Representa o nome do
Bai_Descricao Simples Varchar2 (60) -
bairro. Não nulo.
Tb_Cidade
Entidade:
Nome da Entidade: Tb_Cidade Sigla: Cid
Descrição: 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 funcionário reside.
Tb_Cliente 1:M Cli_CodCidade Cidade onde o cliente reside.
Tb_Editora 1:M Edi_CodCidade Cidade onde localiza-se a editora.
Elementos de dados:
Nome do Atributo Característica Tipo Chave Descrição estendida e
observações
Refere-se ao código da
Cid_Codigo Identificador Number CP
cidade. Não nulo
Representa o nome da
Cid_Descricao Simples Varchar2 (60) -
cidade. Não nulo.
Relacionamentos:
Com a Entidade Cardinalidade Atributo(s) Nome do relacionamento e significado
Tb_Funcionario 1:M Fun_CodEndereco Endereço onde o funcionário reside.
Tb_Cliente 1:M Cli_CodEnderco Endereço onde o cliente reside.
Tb_Editora 1:M Edi_CodEndereco Endereço onde localiza-se a editora.
Elementos de dados:
Nome do Atributo Característica Tipo Chave Descrição estendida e
observações
Refere-se ao código do
End_Codigo Identificador Number CP
endereço. Não nulo
Representa o nome do
End_Descricao Simples Varchar2 (60) -
endereço. Não nulo.
Tb_Cliente
Entidade:
Nome da Entidade: Tb_Cliente Sigla: Cli
Descrição: Representa os dados pessoais do cliente.
Relacionamentos:
Com a Entidade Cardinalidade Atributo(s) Nome do relacionamento e significado
Tb_Reserva 1:M Res_CodCliente Representa o cliente que fez a reserva.
Tb_Emprestimo M:1 Emp_CodCliente Representa o cliente que fez o empréstimo.
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 Endereço onde o cliente reside.
Elementos de dados:
Nome do Atributo Característica Tipo Chave Descrição estendida e
observações
Refere-se ao código do
Cli_Codigo Identificador Number CP
cliente. Não nulo.
Representa o nome do
Cli_Nome Simples Varchar2(60) -
cliente. Não nulo
Representa o RG do
Cli_RG Simples Varchar2(20) -
cliente. Não nulo.
Representa o CPF do
Cli_CPF Simples Varchar2(14) -
cliente. Nulo.
Endereço onde o cliente
Cli_CodEndereco Simples Number CE
reside. Não nulo.
Representa o número do
Cli_Numero Simples Number - endereço no qual o cliente
reside. Nulo.
Bairro onde o cliente
Cli_CodBairro Simples Number CE
reside. Não nulo.
Tb_Emprestimo
Entidade:
Nome da Entidade: Tb_Emprestimo Sigla: Emp
Descrição: Tem por função controlar os empréstimos, armazenar qual funcionário emprestou, e qual cliente tomou
emprestado e a data de realização do mesmo.
Relacionamentos:
Com a Entidade Cardinalidade Atributo(s) Nome do relacionamento e significado
Mantém o controle de qual funcionário efetuou
Tb_Funcionario M:1 Emp_CodFunc.
o empréstimo.
Representa o código do cliente quando é
Tb_Cliente 1:M Emp_CodCliente
realizado um empréstimo.
Refere-se ao código do empréstimo na tabela
Tb_ExemplarEm- associativa. Mantém o controle de quais exem-
1:M Exepre_Codemp.
prestimo plares foram emprestados, em determinado
empréstimo.
Elementos de dados:
Nome do Atributo Característica Tipo Chave Descrição estendida e
observações
Código do empréstimo.
Emp_Codigo Identificador Number CP
Não nulo.
Refere-se à data em que
Emp_Data Simples Date - foi realizado o emprésti-
mo. Não nulo.
Funcionário responsável
Emp_CodFuncionario Simples Number - pelo empréstimo. Não
nulo.
Cliente que realizou o
Emp_CodCliente Simples Number -
empréstimo. Não nulo.
Relacionamentos:
Com a Entidade Cardinalidade Atributo(s) Nome do relacionamento e significado
Exepre_Codem-
Tb_Emprestimo M:1 Código do empréstimo do relacionamento.
prestimo
Representa o código reserva que motivou um
Tb_Reserva 0:1 Exepre_CodReserva
empréstimo.
Exepre_CodExem- Representa o código do exemplar registrado no
Tb_Exemplar M:1
plar banco de dados.
Elementos de dados:
Nome do Atributo Característica Tipo Chave Descrição estendida e
observações
Refere-se ao código do
Exepre_CodExemplar Identificador Number CP
exemplar. Não nulo.
Exepre_CodEmpres- Refere-se ao código do
Identificador Number CP
timo empréstimo. Não nulo.
Refere-se à data prevista
Exepre_DtPrevDev Simples Date - para a devolução do
exemplar. Não nulo.
Refere-se à data de devo-
Exepre_DtDevMul Simples Date - lução em que foi cobrada
multa. Nulo.
Refere-se à data em que
Exepre_DtPgMul Simples Date -
foi paga a multa. Nulo.
Refere-se ao código da
Exepre_CodReserva Simples Number CE
reserva. Não nulo.
Refere-se ao valor cobrado
Exepre_ValorMulta Simples Number - em caso de atraso da
devolução. Não nulo.
Resumo
Observamos nesta aula que o dicionário de dados corresponde a uma des-
crição detalhada da estrutura que o banco de dados possui. Baseado em um
modelo de dados de uma Biblioteca, demonstramos como um dicionário
de dados é montado, entendendo que ele apresenta formas de caracteri-
zar cada um dos principais elementos do Modelo Entidade Relacionamento
Atividade de Aprendizagem
1. Elaborar o Dicionário de dados para o Modelo Entidade Relacionamento
abaixo:
Objetivos:
Para atingir os objetivos, podemos dizer que um banco de dados está rela-
cionado a alguns conceitos fundamentais:
1. Contextualização;
2. Objetivação;
3. Intitulação;
4. Especificação de Requisitos;
5. Normalização;
6. Modelagem;
7. Trigramação;
8. Dicionarização;
Para este curso, estaremos focados no que diz respeito à Normalização como
ferramenta para o desenvolvimento de um banco de dados.
• Inclusão - ao se incluir um novo cliente, por exemplo, ele tem que estar
relacionado com uma venda.
Neste caso, a entidade principal foi definida como Nota e a ela foram relacio-
nados todos os atributos oriundos a emissão de uma nota fiscal. Foi definida
ainda a chave primária, única para cada nota fiscal a ser emitida.
Nota (número da nota, data, cliente, RG, CPF, cidade, UF (Unidade da Fede-
ração), endereço, nº, bairro, código_produto_1, código_produto_2, código_
produto_3, ..., descrição_produto 1, descrição_produto_2, descrição_pro-
duto_3,..., unidade_produto_1, unidade_produto_2, unidade_produto_3,
quantidade_produto_1, quantidade_produto_2, quantidade_produto_3,
...,valor_unitário_produto_1, valor_unitário_produto_2, valor_unitário_pro-
duto_3 ,..., valor_total_produto_1, valor_total_produto_2, valor_total_pro-
duto_3,..., valor_total_da_nota);
A 1FN diz que cada ocorrência da chave primária deve corresponder a so-
mente uma informação de cada atributo, ou seja, a entidade não deve con-
ter atributos repetidos ou multivalorados, ou, ainda, os atributos não-chave
deverão ser atômicos (únicos).
Por exemplo:
A 1FN diz que todos os atributos devem conter um valor atômico (único), ou
seja, os dados inclusos dentro do campo não devem se repetir.
Ex.: o campo cliente vai ser preenchido quantas vezes na nota acima? Ape-
nas uma vez, certo? Então corresponde a um valor atômico. Já os campos
que se referem aos itens da nota serão acrescidos uma ou muitas vezes. Des-
ta forma, tem-se a necessidade de separação da entidade Nota, criando-se a
nova entidade chamada Itens_Nota, ficando:
Nota (número da nota, data, cliente, RG, CPF, endereço, nº, bairro, cidade,
UF, valor_total)
• Note que o atributo valor total da nota foi retirado na 3FN. Todos os atri-
butos que são gerados a partir do resultado de dois ou mais atributos são
retirados, visando manter a consistência dos dados.
• O atributo valor total sai, pois ele é resultado de outros dois atributos: a
quantidade vezes o valor unitário.
Figura 19
Fonte: Machado (1995)
Ex.: o campo que representa os cursos feitos pelo requerente será preen-
chido quantas vezes no formulário? Depende de quantos cursos ele fez: na
possibilidade de ser preenchido duas vezes, o campo é retirado para uma
tabela associativa.
Remanejamento/escolaridade (código_remanejamento,_escolaridade,
grau);
Remanejamento/Cursos (código_remanejamento,_cursos);
Resumo
Chegando ao fim deste capítulo, você deve ter percebido que a norma-
lização de dados é uma ferramenta a mais, que propicia a criação 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 não
faça isso, seu modelo gerado poderá apresentar problemas, como duplici-
dade de dados, inconsistência, 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 histórico necessário e sua dependência com as entidades.
A terceira forma visa criar entidades que normalmente não dependem de
ninguém, mas que se tornam dependentes de outras entidades.
Prezado(a) estudante,
Objetivos:
Para criação do índice único (não permite cadastrar dois clientes com o mes-
mo nome e com o mesmo CPF), um comando DDL deve ser utilizado, con-
forme o exemplo:
Adicionar colunas:
Dropar colunas:
Renomear colunas:
UPDATE tb_funcionario
SET fun_salario = 2000
WHERE fun_codigo = 10;
Resumo
Neste capítulo você pôde avaliar como é a estrutura da linguagem SQL,
utilizada para construção e manipulação de bancos de dados. É importante
que você tenha em mente a separação entre os comandos, que possuem
particularidades. Lembre-se que comandos DDL são para serem utilizados
para construção dos modelos de dados. Comandos DML são para manipu-
lação de dados nos bancos de dados já criados. Comando DTL auxiliam na
manipulação dos dados, indicando início e fim de transação e permitem que
alterações sejam desfeitas. Por fim, comandos DCL são utilizados para con-
trole de permissões de acesso e manipulação de dados e do banco, dadas
ou retiradas dos usuários.
Atividade de Aprendizagem
1. Construir o modelo de dados utilizando comandos SQL, e inserir em cada
entidade pelo menos um registro:
Resposta:
Tb_Cliente
Entidade:
Nome da Entidade: Tb_Cliente Sigla: Cli
Descrição:Refere-se aos dados dos Clientes a serem cadastrados
Relacionamentos
Com a Entidade Cardinalidade Atributo(s) Nome do relacionamento e significado
Chave primária do cliente faz o relaciona-
Tb_Venda 1:M Ven_CodCliente
mento com a entidade Venda
Elementos de dados:
Nome do Atributo Característica Tipo Chave Descrição estendi-
da e observações
Refere-se ao código
Cli_Codigo Identificador Number CP
do Cliente. Não nulo.
Representa o nome
Cli_Nome Simples Varchar2(60) CU
do Cliente. Não nulo.
Representa a identi-
ficação do Cadastro
Cli_CPF Simples Varchar2(14) CU
Nacional de Pessoa
Física. Não nulo.
Representa a identi-
Cli_RG Simples Varchar2(15) ficação do Cadastro
Geral do Cliente.
Representa a data
Cli_Nascimento Simples Data de nascimento do
cliente.
Representa a identificação do
Ven_CodCliente Simples Number cliente para quem foi realizada
a venda.
Representa a identificação
Ven_CodFuncionario Simples Number do funcionário que realizou
a venda.
Tb_ItensVenda
Entidade:
Nome da Entidade: Tb_ItensVenda Sigla: Itv
Descrição:Refere-se aos dados referentes aos itens vendidos.
Relacionamentos:
Com a Entidade Cardinalidade Atributo(s) Nome do relacionamento e significado
Faz o relacionamento com a entidade Tb_Venda
Tb_Venda M:1 Itv_CodVenda a qual indica o código da venda com que um
ítem foi vendido.
Faz o relacionamento com a entidade Tb_Produ-
Tb_Produto M:1 Itv_CodProduto to, a qual indica o produto que foi vendido em
determinada venda.
Elementos de dados:
Descrição estendida e
Nome do Atributo Característica Tipo Chave
observações
Refere-se ao código da
Itv_CodVenda Identificador Number CP
venda. Não nulo.
Refere-se ao código do
Itv_CodProduto Identificador Number CP
produto. Não nulo.
Representa a quantidade
Itv_Quantidade Simples Number vendida de um ítem em
determinada venda.
Tb_Funcionario
Entidade:
Nome da Entidade: Tb_Funcionario Sigla: Fun
Descrição: Refere-se aos dados dos funcionários
Relacionamentos:
Com a Entidade Cardinalidade Atributo(s) Nome do relacionamento e significado
Representa a chave primária da entidade Tb_
Funcionario, que é utilizada para se relacionar
Tb_Venda 1:M Fun_Codigo
com a entidade Venda, indicando qual foi o
funcionário que realizou determinada venda.
Elementos de dados:
Descrição estendida e
Nome do Atributo Característica Tipo Chave
observações
Refere-se ao código do
Fun_Codigo Identificador Number CP
funcionário. Não nulo.
Refere-se ao nome do
Fun_Nome Simples Varchar2(60) CU
funcionário. Não Nulo.
Representa o valor per-
Fun_PercentualCo- centual que determinado
Simples Number
missao funcionário possui sobre as
vendas realizadas
Representa o valor do salário
Fun_SalarioFixo Simples Number
fixo do funcionário.
Tb_Produto
Entidade:
Nome da Entidade: Tb_Produto Sigla: Pro
Descrição: Refere-se aos dados relativos aos produtos para revenda
Relacionamentos:
Com a Entidade Cardinalidade Atributo(s) Nome do relacionamento e significado
Elementos de dados:
Descrição estendida e
Nome do Atributo Característica Tipo Chave
observações
Refere-se ao código do
Pro_Codigo Identificador Number CP
produto. Não nulo.
Refere-se à descrição dos
Pro_Descricao Simples Varchar2(60) CU produtos cadastrados.
Não nulo.
Representa o valor
Pro_Valor Simples Number unitário 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, ocupa-
cao, escolaridade, formacao, ondeestuda, pretendevoltarestudar, portador-
necessidade, estudopretendido, socilitacupom, associacao, sindicato, clube,
religiao)
1 FORMA NORMAL
MUNICIPE (Codigo, nome, cpf, rg, emissor, uf, data, titulo, secao, zona, nas-
cimento, naturalidade, nacionalidade, sexo, estadocivil, dependentes, en-
dereco, numero, bairro, fone, celular, dtchegada, cor, pai, mae, ocupacao,
escolaridade, formacao, ondeestuda, pretendevoltarestudar, estudopreten-
dido, socilitacupom, associacao, sindicato, clube, religiao)
2 FORMA NORMAL
MUNICIPE (Codigo, nome, cpf, rg, emissor, uf, data, titulo, secão, zona, nas-
cimento, naturalidade, nacionalidade, sexo, estadocivil, dependentes, en-
dereco, numero, bairro, fone, celular, dtchegada, cor, pai, mae, ocupacao,
escolaridade, formacao, ondeestuda, pretendevoltarestudar, estudopreten-
dido, socilitacupom, associacao, sindicato, clube, religiao)
NECESSIDADES/MUNICIPE(Codmunicipe, necessidadeespecial)
3 FORMA NORMAL
MUNICIPE (codigo, nome, cpf, rg, codemissor, data, titulo, secao, zona, nas-
cimento, codnaturalidade, codnacionalidade, sexo, codestadocivil, depen-
dentes, codendereco, numero, codbairro, fone, celular, dtchegada, codcor,
pai, mae, codocupacao, codescolaridade, codformacao, codondeestuda,
pretendevoltarestudar, codestudopretendido, Solicitacupom, codassociacao,
codsindicato, codclube, codreligiao)
RELIGIAO(Codigo, descricao)
ESCOLA(Codigo, descricao)
NECESSIDADES/MUNICIPE(Codmunicipe, Codnecessidadeespecial)
NECESSIDADEESPECIAL(Codigo, descricao)
Resposta
(
END_CODIGO INTEGER NOT NULL,
END_DESCRICAO VARCHAR2(60) NOT NULL,
PRIMARY KEY (END_CODIGO)
);
ORACLE. Oracle Database 10g: SQL Fundamentals. Student Guide. Oracle Corporation.
Ed. 2, 2006.
MACHADO, Felipe N. R. Projeto de Banco de Dados: Uma visão prática. São Paulo:
Érica, 2004.
SILVA, Ivan J. de M.; OLIVEIRA, Vivianne de. Banco de dados: do modelo conceitual à
implantação física. Rio de Janeiro: Alta Books, 2005.