atps bd 2012
TRANSCRIPT
Grupo Bones
André Prado Quedas RA: 3730701103
Emanuel Ciriaco RA: 3770743484
José Aluisio Santana dos Santos RA: 4211797998
Marcelo de Bonis RA: 4211807488
Willian Ferreira da Silva RA: 4200063141
ATIVIDADE PRÁTICAS SUPERVISIONADAS
(Gestão da Tecnologia da Informação / 2ºBN)
Banco de Dados
Prof.: Giovani Santos
Faculdade Anchieta
São Bernardo do Campo
2012
DESAFIO
A empresa LFLXZ Ltda. está informatizando a parte de controle de seu
estacionamento. Diante disso está contratando sua equipe como uma consultoria que
desenvolverá um Modelo de Dados de forma a organizar todas as informações em um SGBD
(Sistema Gerenciador de Banco de Dados). A modelagem de dados deverá ser realizada a
partir da entidade “Estacionamento”, gerada a partir do levantamento de dados elaborado e
com vistas a atender a demanda do cliente.
Entidade: Estacionamento
Atributos: nro_ficha, cpf_proprietario, nome_proprietario, telefone_com, telefone_res,
telefone_cel, e-mail, (placa_veiculo, modelo_veiculo, cor_veiculo, tipo_veiculo, ano_veiculo)
Entidade: Vaga Atributos: (nro_vaga, placa_veiculo, modelo_veiculo, cor_veiculo,
tipo_veiculo, ano_veiculo) Representação da estrutura da entidade: - Todos os atributos
sublinhados são atributos chave. - Todos os atributos que estiverem entre parênteses, serão
atributos repetitivos. Sua equipe de trabalho (consultoria contratada) deverá ser composta com
até 4 alunos, e essa entregará, ao final do desafio, sua proposta de modelo de dados.
Objetivo do Desafio:
Elaborar um modelo de dados para o sistema de informação para controle de um
estacionamento.
ETAPA 01 .
Passo 1 (Aluno)
Ler o artigo o capítulo 1.1 – Modelos de Dados da apostila “Introdução à Banco de
Dados” de Osvaldo Kotaro Takai, Isabel Cristina Italiano e João Eduardo Ferreira. 2005.
Disponível em:<https://docs.google.com/a/aedu.com/viewer?
a=v&pid=explorer&chrome=true&srcid=0B9e1nJ9U5ACjZWMyN2ViZjYtYWMxMS00OT
E4LWIwYzItNTc0ZGU0MjEyOTI2&hl=en_US>. Acesso em: 12 abr. 2012.
Fazer também uma pesquisa na internet para conhecer os principais softwares de
gerenciamento de Banco de Dados. Entre eles: <http://www.postgresql.org> e:
<http://www.mysql.com>. Acessos em: 12 abr. 2012.
Passo 2 (Equipe)
Desenvolver um comparativo entre a utilização de arquivos convencionais
(arquivo texto, por exemplo) e a utilização de um SGBD (Sistema Gerenciador de Banco
de Dados) para armazenamento de dados. Nesse comparativo é essencial o apontamento
de vantagens e desvantagens, bem como a aplicação de ambos os métodos em uma
operação empresarial, por exemplo, registro de vendas.
Sistema de Banco de Dados X Sistema de Arquivos
Antes dos Sistemas Gerenciadores de Banco de Dados (SGBD) as aplicações
utilizavam sistemas de arquivos do Sistema Operacional. Através de arquivos, as aplicações
armazenavam seus dados através das interações com a aplicação. Sendo armazenados em
diversos arquivos, precisando de diferentes programas de aplicações para extrair e acrescentar
registros, elevando de formas os custos destas aplicações.
Dados e Meta-dados na base
Os dados e a descrição correspondente são armazenadas na base e gerenciadas pelo
SGBD.
Independência de Dados-Programas
Modificações como inclusão de um novo campo não afetam os programas.
Abstração de Dados
Representação conceitual através de um modelo de dados que só usa conceitos
lógicos.
Múltiplas Visões
São visões, de como os usuários veem o banco de dados:
Cada um vê o banco de dados ao seu modo;
Representam a abstração de mais alto nível da arquitetura;
Construídos de forma que sejam removidos os conflitos entre duas ou mais visões.
Sistema de Banco de Dados
Vantagens Desvantagens
Os Dados podem ser compartilhados;
Os sistemas de banco de dados são
complexos, difíceis e demorados para
projetar;
As redundâncias podem ser reduzidas; Elevados custos inicias de hardware e
software;
Inconsistência pode ser vista até certo
ponto;
Danos ao banco de dados afetam
virtualmente a todos os programas;
Suporte a transação pode ser fornecido;
Elevados custos para a conversão de
sistema baseado em arquivos para banco
de dados;
Integridade pode ser mantida;
Segurança reforçada; Treinamento inicial necessário aos
Requisitos contraditórios podem ser
equilibrados;
programadores e usuários.
Padrões poder ser reforçados.
Sistema de Arquivos
Vantagens Desvantagens
É padrão aberto, não sendo preciso pagar
por nenhum software;
Problemas de integridades;
Existem várias ferramentas e editores
bons no mercado;
A redundância pode afetar a eficiência
para armazenamento, afetando a
transmissão e o processamento, elevando
os custos;
Simplicidade tanto para usuário como
para computadores;
Redundância e inconsistência dos dados;
Separação do conteúdo para a formatação; Dificuldade no acesso aos dados;
Possibilidade de criar sua própria sintaxe
de dados;
Isolamento dos dados;
Possui suporte a Unicode; Anomalia de acesso concorrente;
Permite validação, o que torna os testes
mais efetivos, e a construção de
aplicações bem mais fáceis.
Problemas de segurança.
Passo 3 (Equipe)
Fazer as atividades a seguir:
1. Definir, em no mínimo 10 linhas, “Modelo de Dados”.
Modelagem de Dados representa um conjunto de requerimentos de informações de
negócio, é uma parte importante do desenho de um sistema de informação.
Entre os principais objetivos da modelagem de dados temos a representação do
ambiente observado, documentação e normalização, fornecimento de processos de validação e
observação dos processos de relacionamento entre objetos.
As etapas envolvidas na construção de um modelo podem ser divididas em 3 modelos:
Conceitual, lógico e físico.
2. Citar os três modelos de dados mais conhecidos descrevendo suas características e os
softwares SGBD que utilizam cada um dos modelos.
A modelagem de dados normalmente atende a três perspectivas: Modelagem
Conceitual, Modelagem Lógica e a Modelagem Física. A modelagem conceitual é usada
como representação de alto nível e considera exclusivamente o ponto de vista do usuário
criador do dado, dentre os sistemas utilizados para facilitar o desenvolvimento desta etapa
podemos citar o Visio e o DBDesigner. A modelagem lógica já leva em conta algumas
limitações e implementa reursos como adequação de padrão e nomenclatura, para este os
sistemas utilizados podem ser os mesmos da modelagem conceitual. A modelagem física
demonstra como os dados são fisicamente armazenados, leva-se em conta as limitações
impostas pelo SGBD escolhido e deve ser criado sempre com base nos exemplos de
modelagem de dados produzidos no modelo lógico, um exemplo de SGBD utilizado nesta
etapa é o SQL Server.
3. Com base na entidade proposta no enunciado do desafio e nos modelos de dados
citados neste passo, definam qual modelo de dados deverá ser utilizado na resolução do
desafio. Por quê? Justificar a resposta com apresentação de exemplo.
Modelo lógico pois, a primeira etapa já foi concluída com a definição das entidades e
no momento não é necessário visar qual SGBD será utilizado.
A necessidade atual é definir as chaves primárias, estrangeiras e seus respectivos
relacionamentos, assim como o tipo de cada atributo, como exemplo será necessário haver um
relacionamento entre a entidade estacionamento e a entidade vaga pois, no mesmo
estacionamento existem varias vagas.
4. Definir “Esquema” e “Instância” em banco de dados, utilizando-se das entidades
propostas no desafio para representar e exemplificar suas definições.
Esquema é a definição das estruturas que compõem o banco de dados, espera-se que o
esquema irá sobrar nenhuma ou poucas alterações depois de implementado, o esquema
independe dos dados a serem armazenados, como por exemplo podemos citar a entidade
estacionamento e seus respectivos atributos, podendo haver relacionamento com outra
entidade.
Instancia é a materialização do banco de dados composto pelas estruturas mais os
dados armazenados, é um “retrato” do banco de dados em um determinado momento,
podemos ter a mesma estrutura reaplicada em vários locais, cada uma com seu conjunto de
dados, como exemplo podemos supor que já existem dados armazenados na entidades vaga,
em determinado momento o estacionamento conterá tais vagas preenchidas.
Passo 4 (Equipe)
Reunir as informações levantadas nos passos anteriores e elaborem uma
documentação com o nome de Relatório 01 para utilização nas próximas etapas.
Entregar a documentação à LFLXZ para apreciação.
Relatório 01
Até o presente momento, fora desenvolvido atividades de sondagem de como será
desenvolvido a base, para o real desenvolvimento do banco de dados, tendo conhecimento do
que se faz melhor para a Empresa LFL, procuramos apresentar de forma clara e objetiva, do
que já fora desenvolvido, pela nossa equipe, bem como exemplificando, e diferenciando as
diversas formas de se montar o Servidor de Banco de Dados.
Procurando o melhor desempenho e praticidade, verificamos que o melhor para a
empresa é um sistema de banco de dados, bem como pela facilidade de gerar relatórios,
modificações, bem como atualizações. Apresentando a vocês, todas as vantagens e
desvantagens para esta confecção, Junto a este relatório, será enviado, parte de nosso estudo
de caso, para a melhor compreensão, bem como com suas definições e exemplificações.
Já apresentado, nosso relatório, e todos os levantamento para a confecção da base de
banco de dados, iremos agora mais adiante, criando modelos de entidades-relacionamento,
mostrando graficamente todos os processos pela nossa equipe desenvolvida.
Etapa 02 .
Passo 1 (Equipe)
Criar um quadro para cada entidade proposta no desafio, identificando todos
seus atributos com seus devidos tipos, chaves e relacionamentos esperados.
Passo 2 (Equipe)
Fazer as atividades a seguir:
1. Para a representação gráfica do MER existem figuras que simbolizam cada um dos
componentes do DER (Diagrama Entidade-Relacionamento). Demonstrar,
graficamente, cada um desses símbolos identificando-os com as entidades propostas.
Entidade – Objeto do universo de interesse do Banco de Dados, cujas características se
deseja armazenar. Pode ser definida como qualquer coisa do Mundo real, abstrata ou concreta,
na qual se deseja guardar informações. Exemplos de entidades: Cliente, Produto, Contrato,
Vendas, etc.
Atributos – Características das entidades, exemplos de atributos: Código do Produto
(entidade produto), Nome do Cliente (entidade cliente).
Atributo Chave – Atributo único para a entidade.
Atributo Composto – Atributo com tipos de dados diferentes.
Linhas – Ligam atributos a conjuntos de entidades e conjuntos de entidades a
relacionamentos. Alguns autores chamam as linhas de arestas, em analogia às teorias de
grafos e redes.
2. Apresentar o(s) relacionamento(s) existente(s) entre as duas entidades identificando
sua cardinalidade. Justificar o(s) relacionamento(s) apresentado(s) a partir do conceito
de relacionamento e cardinalidade.
Passo3 (Equipe)
Desenvolver um DER completo (Entidade, Atributos, Chaves, Relacionamento,
Cardinalidade, Símbolos etc.) partindo das entidades propostas no desafio e das
informações trabalhadas nos passos anteriores.
Passo 4 (Equipe)
Elaborar um relatório (Relatório 02) documentando as informações levantadas
nos passos anteriores, de forma a demonstrar a empresa o desenvolvimento da equipe.
Entregar o relatório ao cliente para apreciação na próxima reunião.
Relatório 02
Na etapa anterior foi desenvolvida, a parte conceitual e uma breve introdução, do que
seria desenvolvido, para o SGBD da Empresa LFLXZ Ltda., como foi dito em relatório
anteriormente.
Já nesta etapa, criamos quadro de cada entidade propostas, identificando todos seus
atributos com seus devidos tipos, chaves e relacionamentos. Representando graficamente os
Modelos de Entidades Relacionais, identificando as entidades propostas e a simbologia de
cada figura atribuída.
Apresentamos também, os relacionamentos existentes entre as entidades levantando
sua cardinalidade (1:1, 1:N, N:M), seu grau de relacionamento, justificando seus
relacionamentos apresentando o conceito de relacionamento e cardinalidade.
Desenvolvemos a partir daí um Diagrama de Entidade e Relacionamento, completo
(Entidade, Atributos, Chaves, Relacionamento, Cardinalidade, Símbolos, dentre outros),
partindo da entidade proposta no programa e das atividades desenvolvidas anteriormente.
Etapa 3 .
Passo 1 (Equipe)
Descrever sobre cada um dos itens que compõem a estrutura do Modelo
Relacional, apontando suas funções e relacionando-os com as entidades propostas no
desafio.
O Modelo Relacional
A arquitetura de um banco de dados relacional pode ser descrita de maneira informal ou
formal. Na descrição informal estamos preocupados com aspectos práticos da utilização e
usamos os termos tabela, linha e coluna. Na descrição formal estamos preocupados com a
semântica formal do modelo e usamos termos como relação (tabela), tupla (linhas) e atributo
(coluna).
Tabelas (ou relações, ou entidades)
Todos os dados de um banco de dados relacional (BDR) são armazenados em tabelas.
Uma tabela é uma simples estrutura de linhas e colunas. Em uma tabela, cada linha contém
um mesmo conjunto de colunas. Em um banco de dados podem existir uma ou centenas de
tabelas, sendo que o limite pode ser imposto tanto pela ferramenta de software utilizada,
quantos pelos recursos de hardware disponíveis no equipamento.
As tabelas associam-se entre si através de regras de relacionamentos, estas regras
consistem em associar um ou vários atributo de uma tabela com um ou vários atributos de
outra tabela.
Exemplo: A tabela cadastro relaciona-se com a tabela vaga no estacionamento.
Através deste relacionamento esta última tabela fornece a lista de vagas para a tabela
cadastro.
Registros (ou tuplas)
Cada linha formada por uma lista ordenada de colunas representa um registro, ou tupla.
Os registros não precisam conter informações em todas as colunas, podendo assumir valores
nulos quando assim se fizer necessário. Resumidamente, um registro é uma instância de uma
tabela, ou entidade.
Exemplo: O Cliente cpf_proprietario é uma instância (registro) da tabela cadastro, e a
nro_vaga é a instância (registro) da tabela vaga do Estacionamento. Uma associação
entre estas duas tabelas criaria a seguinte instância de relacionamento:
cpf_proprietario é o nro_vaga, onde o verbo ser representa uma ligação entre os
registros distintos.
Colunas (tribunas)
As colunas de uma tabela são também chamadas de Atributos. Ao conjunto de valores que
um atributo pode assumir chama-se domínio. Por exemplo: em um campo do tipo numérico,
serão somente armazenados números, etc.
O conceito mais similar a domínio é o de tipo abstrato de dados em linguagens de
programação, ou seja, são meta-dados (dados acerca de dados).
Exemplo: cpf_proprietario, ano_veiculo, placa_veiculo, nro_ficha, telefone(s),
nro_ficha, nro_vaga.
Chave
As tabelas relacionam-se umas as outras através de chaves. Uma chave é um conjunto de
um ou mais atributos que determinam a unicidade de cada registro.
Por exemplo, se um banco de dados tem como chaves Nro_vaga e Nro_ficha, sempre
que acontecer uma inserção de dados o sistema de gerenciamento de banco de dados irá fazer
uma consulta para identificar se o registro já não se encontra gravado na tabela. Neste caso,
um novo registro não será criado, resultando esta operação apenas da alteração do registro
existente.
A unicidade dos registros, determinada por sua chave, também é fundamental para a
criação dos índices.
Temos dois tipos de chaves:
1. Chave Primária: (PK - Primary Key) é a chave que identifica cada registro
dando-lhe unicidade. A chave primária nunca se repetirá.
2. Chave Secundária: (FK - Foreign Key) é a chave formada através de um
relacionamento com a chave primária de outra tabela. Define um
relacionamento entre as tabelas e podem ocorrer repetidas vezes. Caso a
chave primária seja composta na origem, a chave estrangeira também o ser.
Passo 2 (Equipe)
Descrever qual(is) limitação(ões) existem na execução do processo de
Mapeamento do modelo MER para o Relacional. Justificar sua resposta, utilizando-se
também de exemplos, tendo em vista que possuem estruturas e características distintas.
Grandes partes das extensões aproximaram o MER do modelo Orientado à Objeto, não
sendo muito utilizados, pois os SGBD’s Relacionais não suportam diretamente extensões,
então se faz necessário antes de implementar mapear estas extensões para o MER original.
Uma limitação do modelo E-R é que não é possível expressar relacionamentos entre
relacionamentos. A agregação é uma abstração através das quais relacionamentos são tratados
como entidades de nível superior.
Usando agregação:
Passo 3 (Equipe)
Criar uma representação gráfica que demonstre a conversão do DER em Modelo
Relacional descrevendo o processo passo a passo. Ao final, apresentar, em apenas um
parágrafo, a opinião da equipe quanto ao modelo mais adequado, no ponto de vista de
facilidade de compreensão da modelagem e estrutura funcional.
Modelo DER
Modelo Relacional
Passo 4 (Equipe)
Elaborar um relatório (Relatório 03) documentando as informações levantadas
nos passos anteriores, de forma a demonstrar a empresa o desenvolvimento da equipe.
Entregar o relatório ao cliente para apreciação na próxima reunião.
Relatório 03
Bem como em relatórios anteriores, se fazendo em comum todo o assunto tratado,
foram importante para que se desenvolvessem alguns conceitos, neste, não se fazendo
diferente, pois nossa equipe desenvolveu conceitos do Modelo Relacional, sendo aplicados e
demonstrados na forma de representação gráfica de um banco de dados, sendo assim
mapeados os Modelos DER e Relacional.
Descrevendo todos os itens que as compõem, na forma de uma estrutura Relacional,
apontando funções e as relacionando com as entidades propostas no projeto. Descrevendo
limitações existentes na execução do processo de Mapeamento do modelo MER para o
Relacional.
Criando representações gráficas e demonstrando conversões do DER em Modelo
Relacional e assim vice-versa, descrevendo tais processos passo a passo. Apresentando
sempre o ponto de vista na facilidade de compreensão da modelagem e estrutura funcional,
por parte da equipe.
Etapa 4 .
Passo 1 (Equipe)
Transformar as tuplas não normalizadas das entidades propostas, passando-as para a
1ª Forma Normal (1FN). Explicar a ação da equipe baseando e citando a qual conceito se
enquadra a aplicação da 1FN.
Normalização de dados é o processo formal passo a passo que examina os atributos de
uma entidade, com o objetivo de evitar anomalias observadas na inclusão, exclusão e
alteração de registros.
Uma regra que devemos observar quando do projeto de um Banco de Dados baseado
no Modelo Relacional de Dados é a de "não misturar assuntos em uma mesma Tabela". Por
exemplo: na Tabela Cadastro devemos colocar somente campos relacionados com o assunto
de cadastro do cliente. Não devemos misturar campos relacionados com outros assuntos. Essa
"Mistura de Assuntos" em uma mesma tabela acaba por gerar repetição desnecessária dos
dados bem como inconsistência dos dados.
Normalmente após a aplicação das regras de normalização de dados, algumas tabelas
acabam sendo divididas em duas ou mais tabelas, o que no final gera um número maior de
tabelas do que o originalmente existente. Este processo causa a simplificação dos atributos de
uma tabela, colaborando significativamente para a estabilidade do modelo de dados,
reduzindo-se consideravelmente as necessidades de manutenção.
Objetivos
Minimização de redundâncias e inconsistências;
Facilidade de manipulações do banco de dados;
Facilidade de manutenção do sistema de Informação.
Uma relação estará na 1º forma normal 1FN, se e somente se todos os domínios básicos
contiverem somente valores atômicos (não contiver grupos repetitivos).
Em outras palavras podemos definir que a 1º forma normal não admite repetições ou
campos que tenha mais que um valor.
Considere a tabela cadastro abaixo:
Cadastro :
nro_ficha; nome_proprietario; telefone; endereço
Agora a tabela com os dados:
Nro_ficha Nome_proprietario Telefone Endereço
0001 José 99999-0099 Rua Marechal, 1800 São Bernardo
12345-567
0002 Maria 98888-0088
4121-2112
Rua Oliveira, 32 Santo André
09700-000
0003 João 97000-6512
4234-2020
Avenida da Paz, 1000 São Caetano
20201-200
Tabela desnormalizada, ou seja, não está na 1ª forma normal.
Analisando teremos:
Todos os clientes possuem Rua, CEP e Bairro, e essas informações estão na mesma
célula da tabela, logo ela não está na 1º forma normal. Para normalizar, deveremos colocar
cada informação em uma coluna diferente, como no exemplo a seguir:
Nro_ficha Nome_proprietario Telefone Rua Cidade CEP
0001 José 99999-0099 Rua Marechal,
1800
São
Bernardo
12345-567
0002 Maria 98888-0088
4121-2112
Rua Oliveira,
32
Santo
André
09700-000
0003 João 97000-6512
4234-2020
Avenida da
Paz, 1000
São
Caetano
20201-200
Tabela ainda não está na 1º forma normal
Mesmo com o ajuste acima, a tabela ainda não está na primeira forma normal, pois há
clientes com mais de um telefone e os valores estão em uma mesma célula. Para
normalizar será necessário criar uma nova tabela para armazenar os números dos telefones e o
campo-chave da tabela cliente. Veja o resultado a seguir:
Nro_ficha Nome_proprietario Rua Cidade CEP
0001 José Rua Marechal, São Bernardo 12345-567
1800
0002 Maria Rua Oliveira, 32 Santo André 09700-000
0003 João Avenida da Paz,
1000
São Caetano 20201-200
Tabela na 1º forma normal
Nro_ficha Telefone
0001 99999-0099
0002 98888-0088
0002 4121-2112
0003 97000-6512
0003 4234-2020
Tabela na 1ª forma normal
No exemplo acima foi gerado uma segunda entidade para que a primeira forma
normal fosse satisfeita, contudo é possível manter a tabela original, admitindo-se valores duplos
em uma mesma coluna, como exemplo o campo telefone ficaria assim: 11-5432-5678 e 11-3500-
3500. Neste caso a tabela ficaria desnormalizada, mas muitos acabam preferindo assim,
principalmente quando há poucos casos de repetição.
Passo 2 (Equipe)
Fazer as atividades a seguir:
1. Agora, com as tuplas na 1FN, a equipe deverá colocá-las na 2ª Forma normal (2FN).
Explicar a ação da equipe baseando e citando a qual conceito se enquadra a aplicação da
2FN.
Uma tabela está na 2º Forma Normal 2FN se ela estiver na 1FN e todos os atributos
não chave forem totalmente dependentes da chave primária (dependente de toda a chave e não
apenas de parte dela).
Se o nome do produto já existe na tabela produtos, então não é necessário que ele
exista na tabela de produtos. A segunda forma normal trata destas anomalias e evita que
valores fiquem em redundância no banco de dados.
Procedimentos:
a) Identificar os atributos que não são funcionalmente dependentes de toda a chave primária;
b) Remover da entidade todos esses atributos identificados e criar uma nova entidade com
eles.
A chave primária da nova entidade será o atributo do qual os atributos do qual os
atributos removidos são funcionalmente dependentes.
Exemplo de segunda forma normal
Considere a tabela vendas abaixo:
Estacionamento
Nro_ficha, Código_vaga, Vaga, Quant, Valor_unit, Subtotal
Agora a tabela com os dados:
Nro_ficha Código_vaga Vaga Quant Valor_unit Subtotal
0005 101 Executivo 5 300,00 1500,00
0006 102 Funcionário 3 150,00 450,00
0007 104 Visitante 1 200,00 200,00
0008 105 Avulso 15 50,00 750,00
Tabela não está na 2º forma normal
Analisando teremos:
O nome do produto depende do código da vaga, porém não depende de Nro_ficha que
é a chave primária da tabela, portanto não está na segunda forma normal. Isto gera problemas
com a manutenção dos dados, pois se houver alteração no nome do produto teremos que
alterar em todos os registros da tabela venda.
Para normalizar esta tabela teremos de criar a tabela Estacionamento que ficará com os
atributos Código_vaga e vaga e na tabela Vaga manteremos somente os atributos Nro_ficha,
código_vaga, quant, valor_unit e subtotal. Veja o resultado abaixo:
Código_vaga Vaga
101 Executivo
102 Funcionário
104 Visitante
105 Avulso
Tabela na 2º forma normal
Nro_ficha Código_vaga Quant Valor_unit Subtotal
0005 101 5 300,00 1500,00
0006 102 3 150,00 450,00
0007 104 1 200,00 200,00
0008 105 15 50,00 750,00
Tabela na 2ª forma normal
Conforme visto na primeira forma normal, quando aplicamos normalização é comum
gerar novas tabelas a fim de satisfazer as formas normais que estão sendo aplicadas.
2. Com as tuplas na 2FN, a equipe deverá colocá-las, quando possível, agora na 3ª
Forma Normal (3FN). Explicar a ação da equipe baseando e citando a qual conceito se
enquadra a aplicação da 3FN.
Uma tabela está na 3º Forma Normal 3FN se ela estiver na 2FN e se nenhuma coluna
não-chave depender de outra coluna não-chave.
Na terceira forma normal temos de eliminar aqueles campos que podem ser obtidos
pela equação de outros campos da mesma tabela.
Procedimentos:
a) Identificar todos os atributos que são funcionalmente dependentes de outros atributos não
chave;
b) Removê-los.
A chave primária da nova entidade será o atributo do qual os atributos removidos são
funcionalmente dependentes.
Exemplo de normalização na terceira forma normal
Considere a tabela abaixo:
Nro_ficha Código_vaga Quant Valor_unit Subtotal
0005 101 5 300,00 1500,00
0006 102 3 150,00 450,00
0007 104 1 200,00 200,00
0008 105 15 50,00 750,00
Tabela não está na 3º forma normal
Considerando ainda a nossa tabela Vaga, veremos que a mesma não está na terceira
forma normal, pois o subtotal é o resultado da multiplicação Quant X Valor_unit, desta forma
a coluna subtotal depende de outras colunas não-chave.
Para normalizar esta tabela na terceira forma normal teremos de eliminar a coluna
subtotal, como no exemplo a seguir:
Nro_ficha Código_vaga Quant Valor_unit
0005 101 5 300,00
0006 102 3 150,00
0007 104 1 200,00
0008 105 15 50,00
Tabela na 3º forma normal
Modelo Relacional
Passo 3 (Equipe)
Elaborar um relatório (Relatório 04) documentando o passo a passo do
desenvolvimento da normalização. Entregar o relatório ao cliente para apreciação na
próxima reunião.
Relatório 04
Aprendemos nesta etapa, a desenvolver a organização de entidades no Banco de Dados
baseando nas regras de normalização, fazendo com que minimize a duplicidade dos dados e
mantenha as devidas dependências das informações nas várias entidades do Banco de Dados.
A proposta dessa etapa é transformar tuplas não normalizadas em tuplas na 3ª Forma Normal
(3FN).
Passamos ai, a transformar as tuplas não normalizadas das entidades propostas,
passando para a 1ª Forma Normal (1FN), e conceituando-as para melhor entendimento de
normalização, já tínhamos as tuplas na 1 Forma Normal, a equipe seguiu o próximo passo e
colocamos na 2ª Forma Normal(2FN). Já o próximo passo era colocá-las na 3ª Forma Normal,
através de conhecimentos extraídos de livros e apostilas, podemos enfim deixar bem claro, o
que é normalização e de como faremos, para normalizar um Banco de Dados.
Etapa 5 .
Passo 1 (Equipe)
Criar 10 tuplas para cada relação (tabela) de forma que sigam os conceitos
tratados anteriormente (chave primária/estrangeira, relacionamento, redundância e
integridade).
Proprietário
Nro_ficha(PK) Nome_proprietario Endereço Telefone
1 José Quadra 1 2111-4444
2 Maria Quadra 5 3232-5656
3 João Quadra 8 2324-2121
4 Emanuel Quadra 12 2134-5678
5 André Quadra 9 8765-9876
6 Willian Quadra 7 5678-0987
7 Marcelo Quadra 3 9876-6767
8 Roberto Quadra 11 9998-5454
9 Lucas Quadra 13 7655-3232
10 Ricardo Quadra 2 3341-0099
Veiculo
Placa_veiculo Mod_veiculo Cor_veiculo Tipo_veiculo Ano_veiculo Nro_ficha(FK)
FER-2005 F355 Vermelho Ferrari 2005 1
BMW-2003 M5 Preto BMW 2003 2
FOX-2012 Fox Vermelho Volkswagen 2012 3
UNO-2002 UNO Prata Fiat 2002 4
CLI-2011 Clio Cinza Renault 2011 5
KAL-2010 KA Prata Ford 2010 6
CEL-2009 Celta Prata GM 2009 7
CLA-2009 Classic Preto GM 2009 8
FIS-2011 Fiesta Branco Ford 2011 9
GOL-2012 GOL Cinza Volkswagen 2012 10
Vaga
Cod_vaga Placa_veiculo (FK)
101 FER-2005
102 BMW-2003
103 FOX-2012
104 UNO-2002
105 CLI-2011
106 KAL-2010
107 CEL-2009
108 CLA-2009
109 FIS-2011
110 GOL-2012
Passo 2 (Equipe)
Fazer as atividades a seguir:
1. Criar uma operação de “SELEÇÃO” para cada relação existente no modelo criado e
descrever que ação essa operação está realizando.
Seleção Seleciona tuplas da relação argumento que satisfaçam à condição de seleção;
σ nome_proprietario=’Maria’(Proprietário)
σ tipo_veiculo=’Fiat’(Veiculo)
σ cod_vaga=’5’(Vaga)
SELECT Nro_ficha, Nome_proprietario, Endereço, Telefone FROM Proprietario
WHERE Nome_proprietario ='Maria'
Cada operação apresentada irá selecionar apenas as linhas que contenha a palavra que
queira encontrar. Como, por exemplo, no caso na primeira seleção (σ
nome_proprietario=’Maria’(Proprietário)) o símbolo mostrado (σ), sigma, representa a
seleção ou restrição da linha que contenha o que esteja procurando, que no caso é ‘Maria’ que
está na coluna nome_proprietario, e na tabela, e o resultado apresentado será a linha que
contenha as informações de Maria:
Exemplo:
Nro_ficha Nome_proprietario Endereço Telefone
2 Maria Quadra 5 3232-5656
Projeção Produz uma nova relação contendo um “subconjunto vertical” da relação
argumento, sem “duplicações”:
p nome_proprietario (Proprietário)
p nro_ficha (Número da ficha)
p telefone (Telefone)
A operação de projeção apresentada irá projetar apenas as colunas chamadas, por
exemplo, na projeção p nome_proprietario (proprietário) está projetando a coluna
“nome_proprietario” da tabela, que irá ficar assim:
Exemplo:
Nome_proprietario
José
Maria
João
Emanuel
André
Willian
Marcelo
Roberto
Lucas
Ricardo
3. Criar uma operação de “UNIÃO” para cada relação existente no modelo criado e
descrever que ação essa operação está realizando.
União Une duas relações R e S compatíveis em uma relação que contém todas as tuplas
pertencentes a R, a S, ou a ambas (R e S):
proprietário U veiculo
proprietário U vaga
veiculo U vaga
SELECT NRO_FICHA, MOD_VEICULO FROM VEICULO
WHERE TIPO_VEICULO='FERRARI'
UNION
SELECT NRO_FICHA, MOD_VEICULO FROM VEICULO
WHERE TIPO_VEICULO='VW'
A operação de união irá unir todos os atributos da tabela e irá ficar assim:
Nro_ficha Mod_veiculo
1 F355
3 Fox
10 GOL
4. Criar uma operação de “INTERSEÇÃO” para cada relação existente no modelo
criado e descrever que ação essa operação está realizando.
Interseção Une duas relações R e S compatíveis em uma relação que contém todas as
tuplas pertencentes a R quanto a S.
(e.nro_ficha(estacionamento)) Ç (v.modelo_veiculo(vaga))
SELECT e.nro_ficha, v.modelo_veiculo
FROM VAGA v, ESTACIONAMENTO e
WHERE v.nro_ficha = e.nro_ficha AND v.tipo_veiculo = 'VW'
Essa operação mostra os valores que contém na primeira e na segunda tabela ao mesmo
tempo. Que vai ser:
Nro_ficha modelo_veiculo
3 VW
10 VW
Passo 3 (Equipe)
Elaborar um relatório (Relatório 05) documentando com as informações
trabalhadas nesta etapa do desafio. Entregar o relatório ao cliente para apreciação na
próxima reunião.
Relatório 05
Nesta nova etapa fora construído mecanismos de pesquisas capazes de manipular
dados existentes em banco de dados. Criamos nesta etapa, diversas operações de álgebra
relacional que sejam aplicáveis em banco de dados, utilizados como base do Modelo
Relacional.
Desenvolvemos atividades de criação de tuplas para cada relação (Tabela) existente,
seguindo os conceitos tratados nas etapas anteriores.
Fora criada uma operação, para cada operação de álgebra relacional, são eles:
Seleção;
Projeção;
União;
Interseção;
Para cada operação, fora criado uma tabela para melhor entendimento da equipe, e
conceituada de suas funções exercidas no Modelo Relacional a Banco de Dados.
Etapa 6 .
Passo 1 (Equipe)
Fazer as atividades a seguir:
1. Criar uma operação de “DIVISÃO” para cada relação existente no modelo criado e descrever que ação essa operação está realizando.
Divisão Divisão de duas relações R e S, todos os valores de um atributo em R que fazem
referência a todos os valores de um atributo S;
(p nro_vaga, placa_veiculo (VEICULO)) ÷ (p nro_vaga(VAGA))
A operação de divisão acima está procurando todos os veículos que estão ocupando as
vagas do estacionamento. No caso como todas as vagas estão sendo ocupados por veículos de
placas diferentes e estacionados em vagas distintas, a projeção será a seguinte:
Placa_veiculo
FER-2005
BMW-2003
FOX-2012
UNO-2002
CLI-2011
KAL-2010
CEL-2009
CLA-2009
FIS-2011
GOL-2012
2. Criar uma operação de “DIFERENÇA” para cada relação existente no modelo criado e descrever que ação essa operação está realizando.
Diferença Une duas relações R e S compatíveis em uma relação que contém todas as tuplas
pertencentes a R que não pertencem a S:
(p placa_veiculo(VEICULO)) – (p placa_veiculo(VAGA))
Não terá resultado nenhum essa operação, pois a operação de diferença das duas tabelas
produz como resultado uma tabela que contém as tuplas presentes na primeira tabela
(VEICULO) que não constam na segunda (VAGA).
3. Criar uma operação de “JUNÇÃO” para cada relação existente no modelo criado e descrever que ação essa operação está realizando.
Junção Natural
Concatena tuplas relacionadas de duas relações em tuplas únicas;
Simplifica consultas que requerem produto cartesiano:
Forma um produto cartesiano dos argumentos;
Faz uma seleção forçando igualdade sobre os atributos que aparecem em ambos
argumentos;
Remove colunas duplicadas
Junção
Concatenação:
dos atributos comuns;
dos atributos especificados na condição de junção;
Relação Argumento 1 (X) condição_junção Relação Argumento2
Estacionamento (nro_ficha; CPF_proprietario; nome_proprietario; nro_vaga; cod_vaga).
Nro_ficha CPF_proprietario Nome_proprietario Nro_vaga Cod_vaga
1 000.000.000-01 José C001 101
2 000.000.000-02 Maria L005 102
3 000.000.000-03 João H008 103
4 000.000.000-04 Emanuel G012 104
5 000.000.000-04 André A009 105
6 000.000.000-06 Willian V007 106
7 000.000.000-07 Marcelo C003 107
8 000.000.000-08 Roberto N011 108
9 000.000.000-09 Lucas A013 109
10 000.000.000-10 Ricardo J002 110
Vaga (cod_vaga; nro_ficha ; nome_proprietario).
Cod_vaga Nro_ficha Nome_proprietario
101 1 José
102 2 Maria
103 3 João
104 4 Emanuel
105 5 André
106 6 Willian
107 7 Marcelo
108 8 Roberto
109 9 Lucas
110 10 Ricardo
Estacionamento (X) Vaga
Nro_ficha Nome_proprietari
o
Endereço Nro_vaga Cod_vaga
1 José Quadra 1 C001 101
2 Maria Quadra 5 L005 102
3 João Quadra 8 H008 103
4 Emanuel Quadra 12 G012 104
5 André Quadra 9 A009 105
6 Willian Quadra 7 V007 106
7 Marcelo Quadra 3 C003 107
8 Roberto Quadra 11 N011 108
9 Lucas Quadra 13 A013 109
10 Ricardo Quadra 2 J002 110
Passo 2 (Equipe)
Elaborar um relatório (Relatório 06) documentando as operações desenvolvidas
nos passos anteriores e a ação realizada por elas. Entregar o relatório ao cliente em sua
última reunião.
Relatório 06
Nesta nova etapa fora construído mecanismos de pesquisas capazes de manipular
dados existentes em banco de dados. Criamos nesta etapa, diversas operações de álgebra
relacional que sejam aplicáveis em banco de dados, utilizados como base do Modelo
Relacional.
Desenvolvemos atividades de criação de tuplas para cada relação (Tabela) existente,
seguindo os conceitos tratados nas etapas anteriores.
Fora criada uma operação, para cada operação de álgebra relacional, são eles:
Divisão;
Diferença;
Junção;
Para cada operação, fora criado uma tabela para melhor entendimento da equipe, e
conceituada de suas funções exercidas no Modelo Relacional a Banco de Dados.