atps bd 2012

57
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

Upload: mabonis211

Post on 05-Aug-2015

3.983 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: ATPS BD 2012

 

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

Page 2: ATPS BD 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.

Page 3: ATPS BD 2012

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

Page 4: ATPS BD 2012

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;

Page 5: ATPS BD 2012

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

Page 6: ATPS BD 2012

 

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.

Page 7: ATPS BD 2012

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.

Page 8: ATPS BD 2012

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.

Page 9: ATPS BD 2012

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.

Page 10: ATPS BD 2012

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.

Page 11: ATPS BD 2012

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.

Page 12: ATPS BD 2012

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.

Page 13: ATPS BD 2012

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 .

Page 14: ATPS BD 2012

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.

Page 15: ATPS BD 2012

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.

Page 16: ATPS BD 2012

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

Page 17: ATPS BD 2012

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:

Page 18: ATPS BD 2012

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

Page 19: ATPS BD 2012

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

Page 20: ATPS BD 2012

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

Page 21: ATPS BD 2012

  

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:

Page 22: ATPS BD 2012

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

Page 23: ATPS BD 2012

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:

Page 24: ATPS BD 2012

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

Page 25: ATPS BD 2012

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

Page 26: ATPS BD 2012

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.

Page 27: ATPS BD 2012

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:

Page 28: ATPS BD 2012

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.

Page 29: ATPS BD 2012

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).

Page 30: ATPS BD 2012

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

Page 31: ATPS BD 2012

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

Page 32: ATPS BD 2012

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

Page 33: ATPS BD 2012

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

Page 34: ATPS BD 2012

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

Page 35: ATPS BD 2012

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

Page 36: ATPS BD 2012

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 .

Page 37: ATPS BD 2012

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.

Page 38: ATPS BD 2012

  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;

Page 39: ATPS BD 2012

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).

Page 40: ATPS BD 2012

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)

Page 41: ATPS BD 2012

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.