ATPS- B. Dados.docx

49
FACULDADE DE NEGÓCIOS DE BELO HORIZONTE TECNOLOGIA EM ANÁLISE DE DESENVOLVIMENTO DE SISTEMAS SISTEMA DE BANCO DE DADOS Belo Horizonte/MG 2014

Transcript of ATPS- B. Dados.docx

Page 1: ATPS- B. Dados.docx

FACULDADE DE NEGÓCIOS DE BELO HORIZONTE

TECNOLOGIA EM ANÁLISE DE DESENVOLVIMENTO DE SISTEMAS

SISTEMA DE BANCO DE DADOS

Belo Horizonte/MG 2014

SISTEMA DE BANCO DE DADOS

Page 2: ATPS- B. Dados.docx

Monografia apresentada como exigência para

obtenção do grau de Bacharelado em curso

superior de tecnologia em análise e

desenvolvimento de sistemas na anhanguera

educacional - uniderp .

Orientador: TUTOR PRESENCIAL: Rogério

de Oliveira Gonçalves

Belo Horizonte 2014

RELATÓRIO FINAL

Monografia apresentada como exigência para

Page 3: ATPS- B. Dados.docx

obtenção do grau de Bacharelado em curso

superior de tecnologia em análise e

desenvolvimento de sistemas na anhanguera

educacional - uniderp .

Orientador: TUTOR PRESENCIAL: Rogério

de Oliveira Gonçalves

Data de Aprovação:

BANCA EXAMINADORA

Professor: Jeferson Bussula Pinheiro

Anhanguera Educacional Ltda

Page 4: ATPS- B. Dados.docx

Resumo

Esse trabalho apresenta uma estudo e levantamento de termos utilizados para o

desenvolvimento de um sistema de banco de dados para a empresa LFLXZ ltda.

Foi apresentado as modelagem necessárias para a implementação do sistema no serviço de

estacionamento da empresa, demonstrando as entidades, modelos de dados e software

necessários para o desenvolvimento do banco de dados. Mapeamos e demonstramos em

representações gráficas o banco de dados necessário para os modelos relacionais, não se

esquecendo das normalizações que são importantíssimas no desenvolvimento de um banco de

dados.

Arquivamos todo o desenvolvimento em documentação, as operações realizadas durante a

realização do banco de dados, e apresentamos para ao cliente todo o material necessário para

futuras atualizações.

Palavras Chaves: Banco de dados, entidades, software, representações gráficas, modelos

relacionais, normalização, documentação.

Page 5: ATPS- B. Dados.docx

Abstract

This paper presents a study and survey of terms used for the development of a system

database for the company LFLXZ ltd.

Necessary for implementing the system in valet parking company model was presented,

showing the entities, data models and software required for development of the database.

Mapped and shown in graphical representations the database required for the relational model,

not forgetting of commonalities that are very important in the development of a database.

We file all documentation development, operations during the performance of the database

and presented to the client all the necessary materials for future updates.

Key Words: Database, entities, software, graphical representations, relational models,

standardization, documentation.

Page 6: ATPS- B. Dados.docx

Sumário Etapa 01

Introdução a Banco de Dados MER. MER( Modelo Entidade Relacionamento) 1

Definir, em no mínimo 10 linhas, “Modelo de Dados”. 2

Citar os três modelos de dados mais conhecidos descrevendo suas características e os softwares SGBD

que utilizam cada um dos modelos. 2

Defina qual modelo de dados deverá ser utilizado na resolução do desafio. Por quê?

Justificar a resposta com apresentação de exemplo. 3

Definir “Esquema” e “Instância” em banco de dados, utilizando-se das entidades propostas no desafio

para representar e exemplificar suas definições. 3

Etapa 02

Criar um quadro para cada entidade proposta no desafio, identificando todos seus atributos com seus

devidos tipos, chaves e relacionamentos esperados. 4

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

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.

6

Desenvolver um DER completo (Entidade, Atributos, Chaves, Relacionamento, Cardinalidade,

Símbolos etc.) partindo das entidade propostas no desafio e das informações trabalhadas nos passos

anteriores. 6

Etapa 03

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

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

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

Page 7: ATPS- B. Dados.docx

opinião da equipe quanto ao modelo mais adequado, no ponto de vista de facilidade de

compreensão da modelagem e estrutura

funcional......................................................................................................................................9

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

Transformar as tuplas não normalizadas das entidades propostas, passando-as para a1ª Forma

Normal (1FN). Explicar a ação da e0quipe baseando e citando a qual conceito se enquadra a

aplicação da 1FN.......................................................................................................................10

Etapa 4

Transformar as tuplas não normalizadas das entidades propostas, passando-as para a1ª Forma

Normal (1FN). Explicar a ação da equipe baseando e citando a qual conceito se enquadra a

aplicação da 1FN..............................................................................................................................................................................10

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

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

Etapa 5

Aula tema: Álgebra Relacional...............................................................................................17

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

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

Criar uma operação de “PROJEÇÃO” para cada relação existente no modelo criado e

descrever que ação essa operação está realizando.................................................................19

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

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

Page 8: ATPS- B. Dados.docx

Etapa 6

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

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

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

Bibliografia...................................................................................................................25

Page 9: ATPS- B. Dados.docx

1

Etapa 01

Introdução a Banco de Dados MER. MER( Modelo Entidade Relacionamento)

O primeiro Sistema Gerenciador de Banco de Dados (SGBD) comercial surgiu no final de 1960 com base nos primitivos sistemas de arquivos disponíveis na época, os quais não controlavam o acesso concorrente por vários usuários ou processos. Os SGBDs evoluíram desses sistemas de arquivos de armazenamento em disco, criando novas estruturas de dados com o objetivo de armazenar informações. Com o tempo, os SGBD’s passaram a utilizar diferentes formas de representação, ou modelos de dados, para descrever a estrutura das informações contidas em seus bancos de dados. Atualmente, os seguintes modelos de dados são normalmente utilizados pelos SGBD’s: modelo hierárquico, modelo em redes, modelo relacional (amplamente usado) e o modelo orientado a objetos.

Vamos analisar nos comparativos abaixo as vantagens e desvantagens, entre o sistema

gerenciados de banco de dados e sistemas de arquivo.

SGBD(Sistema Gerenciados de Bando De Dados)

Vantagem DesvantagemOs dados podem ser compartilhados. Alto investimento inicial na compra de software e

hardware adicionais;Um SGBD multiusuário permitir que múltiplos usuários acessem o banco de dados ao mesmo tempo.

Treinamento inicial necessário aos programadores e usuário.

Um SGBD fornece um subsistema de autorização e segurança, o qual é utilizado pelo DBA para criar “contas” e especificar as restrições destas contas.

Danos ao banco de dados afetam virtualmente a todos os programas.

Sistemas Arquivos

Vantagem DesvantagemSimplicidade tanto para usuário quando para computadores;

Torna o sistema mais vulnerável a acidentes de parada total (falta de energia, por exemplo)

O acesso a disco é tratado de uma forma uniforme.Existe apenas uma interface para acessar os dados de um disco.

Torna a transferência de grandes quantidades de informação mais lenta.

Minimização do número de transferências entre o disco e a memória (cache hits)

Erro em qualquer um dos blocos do arquivo torna impossível recuperação do restante.

Page 10: ATPS- B. Dados.docx

2

Definir, em no mínimo 10 linhas, “Modelo de Dados”.

A modelagem de dados responde a um conjunto de questões especificas, relevantes para

qualquer aplicação de processamento de dados( PRESSMAN,2002).

São vários os fatores que tornam a modelagem de dados fundamental para a construção de

sistemas de banco de dados. Um desses fatores é a necessidade de validar requesitos, e é por

intermédio da modelagem que se aumenta a probabilidade de encontrar erros, de se identificar

inconsistência e de descobrir omissões, já nas fases iniciais de projeto.

Por meio da modelagem de dados, consegue-se identificar quais são os principais objetos de

dados a serem processados pelo sistema; qual a composição de cada objeto de dados; que

propriedades os descrevem; onde os objetos costumam ficar: quais as relações entre os objetos

e os processos que os transformam ( PRESSMAN,2002).

As etapas envolvidas na construção de um modelo podem ser divididas em 3 modelos:

Conceitual, lógico e físico.

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 é representado pelos

modelos conceituais e lógicos. Por meio desses modelos, é descrita a estrutura do banco de

dados completo sob o ponto de vista do usuário, omitindo-se detalhes de armazenamento de

dados e concentrando na descrição de entidades, atributos, relacionamento. 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 o Visio e o DBDesigner. 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 nessa etapa é o SQL SERVER.

Page 11: ATPS- B. Dados.docx

3

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

Definir “Esquema” e “Instância” em banco de dados, utilizando-se das entidades

propostas no desafio para representar e exemplificar suas definições.

Em qualquer modelo de dados é importante distinguir entre a descrição da base de dados e a

base de dados propriamente dita. A descrição de uma base de dados é chamada Esquema da

Base de Dados. Um esquema de base de dados é especificado durante o projeto da base de

dados, sendo que a expectativa de mudanças não é grande. A forma de visualização de um

esquema é chamada Diagrama do Esquema. Muitos modelos de dados têm certas convenções

para, diagramaticamente, mostrar esquemas especificados no modelo.

Os dados atualmente existentes em uma base de dados podem mudar com relativa frequência.

Os dados da base de dados em um particular momento do tempo são chamados Instâncias da

Base de Dados (ou Ocorrências ou Estados). A base-esquema é algumas vezes chamada de

Base-Intencional e uma instância é chamada de Base-Extensional do esquema.

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 12: ATPS- B. Dados.docx

4

Etapa 02

Criar um quadro para cada entidade proposta no desafio, identificando todosseus atributos com seus devidos tipos, chaves e relacionamentos esperados.

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: Uma entidade é um objeto que existe e é distinguível dos outros objetos. Por

exemplo, Juberto Nunes com número de CPF 123.456.789-00 é uma entidade, visto que isso

identifica unicamente uma pessoa particular do universo. Assim a conta número 40167-9 na

agência Venda Nova é uma entidade que identifica unicamente uma conta corrente particular.

Uma entidade pode ser concreta, como uma pessoa ou um livro, ou pode ser abstrata, como

um feriado ou um conceito.

Uma entidade pode ser um objeto com uma existência física - uma pessoa, carro ou

empregado - ou pode ser um objeto com existência conceitual - uma companhia, um trabalho

ou um curso universitário. Exemplos de entidades: Cliente, Produto, Contrato,

Vendas, etc.

Representação Gráfica. Representam conjunto de relacionamentos.

*#numero_vaga

PK *#placa_veiculo

modelo_veiculoano_ veiculotipo_veiculocor_veiculo

Codigo_Cadastro

PK *#numer_Ficha

Cadastro_Vaga

PK *#num_vaga

*#numero_ficha

PK *#cpf_proprietário

nome_proprietariotel_celulartel_comerciale-mail

Page 13: ATPS- B. Dados.docx

5

Atributos: Cada entidade tem propriedades particulares, chamadas atributos, que a

descrevem. Por exemplo, uma entidade empregado pode ser descrita pelo seu nome, o

trabalho que realiza, idade, endereço e salário. Uma entidade em particular terá um valor para

cada um de seus atributos. Os valores de atributos que descrevem cada entidade ocupam a

maior parte dos dados armazenados na base de dados.

Formalmente, um atributo é uma função que mapeia um conjunto de entidades em um

domínio. Portanto, toda entidade é descrita por um conjunto de pares (atributo, valor do

atributo), sendo um par para cada atributo do conjunto de entidades. Uma entidade cliente é

descrita pelo conjunto {(nome, Juberto Nunes), (cpf, 123.456.789-00), (rua, São Paulo),

(cidade, Belo Horizonte)}, que significa que a entidade descreve uma pessoa chamada Juberto

Nunes, cujo CPF é 123.456.789-00, residente à São Paulo, em Belo Horizonte.

Representação Gráfica.

Atributo Chave: Atributo para uma única entidade.

Representação Gráfica.

Atributo Composto: Alguns atributos podem ser divididos em partes menores com

significados independentes. Por exemplo, Endereço da entidade e1 pode ser dividido em

Endereço da Rua, Cidade, Estado e CEP. Um atributo que é composto de outros atributos

mais básicos é chamado composto. Atributos deste tipo formam uma hierarquia.

Representação Gráfica.

Page 14: ATPS- B. Dados.docx

6

Linhas: Ligam atributos a conjuntos de entidades e conjuntos de entidades a relacionamentos.

Representação Gráfica.

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.

(1,1) (1,1) (1,0)

Desenvolver um DER completo (Entidade, Atributos, Chaves, Relacionamento,

Cardinalidade, Símbolos etc.) partindo das entidade propostas no desafio e das

informações trabalhadas nos passos anteriores.

nome-proprietario cpf_proprietario ano_veiculo num_vagae-mail tel_residencial placa_veiculo

(1,1) (1,1) (1,0)

numer_Ficha tel_comercial modelo_veiculo cor_veiculo

tel_celular tipo_veiculo

Etapa 3

Estacionamento Disponibiliza

Vaga

Estacionamento VagaDisponibiliza

Page 15: ATPS- B. Dados.docx

7

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

ouformal. Na descrição informal estamos preocupados com aspectos práticos da utilização

eusamos os termos tabela, linha e coluna. Na descrição formal estamos preocupados com

asemâ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émum

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 regrasconsistem

em associar um ou vários atributo de uma tabela com um ou vários atributos deoutra 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 tabelacadastro.

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 valoresnulos

quando assim se fizer necessário. Resumidamente, um registro é uma instância de umatabela,

ou entidade.

Exemplo: O Cliente cpf_proprietario é uma instância (registro) da tabela cadastro, e anro_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 osregistros distintos.

Colunas (tribunas)

As colunas de uma tabela são também chamadas de Atributos. Ao conjunto de valores queum

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- B. Dados.docx

8

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:

Chave Primária: (PK - Primary Key) é a chave que identifica cada registro dando-lhe

unicidade. A chave primária nunca se repetirá.

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.

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

Page 17: ATPS- B. Dados.docx

9

como entidades de nível superior.

Usando agregação:

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

Page 18: ATPS- B. Dados.docx

10

Modelo Relacional

Elaborar um relatório (Relatório 03) documentando as informações levantadasnos

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

Transformar as tuplas não normalizadas das entidades propostas, passando-as para a1ª

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

Page 19: ATPS- B. Dados.docx

11

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 tabelasacabam

sendo divididas em duas ou mais tabelas, o que no final gera um número maior detabelas 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 :

N_ficha; nome; telefone; endereço

Agora a tabela com os dados:

N_fixa Nome Telefone Endereço

0001 Jorge 9999-9999 Rua São Paulo,380 Contagem

3398-243

0002 Juberto 8989-7895 Rua Ipê Amarelo, 132, Vespasiano

4232-233

0003 Carlos 8473-5858 Rua Luiz Carlos,165 Betim

4352-432

Tabela desnormalizada, ou seja, não está na 1ª forma normal.

Page 20: ATPS- B. Dados.docx

12

Analisando teremos:

Todos os clientes possuem Rua, CEP e Bairro, e essas informações estão na mesmacélula da

tabela, logo ela não está na 1º forma normal. Para normalizar, deveremos colocarcada

informação em uma coluna diferente, como no exemplo a seguir:

N_fixa Nome Telefone Rua Cidade Cep

0001 Jorge 9999-9999 Rua São Paulo,

380

Contagem 3398-243

0002 Juberto 8989-7895 Rua Ipê

Amarelo, 132

Vespasiano 4232-233

0003 Carlos 8473-5858 Rua Luiz

Carlos,165

Betim 4352-432

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. Paranormalizar será

necessário criar uma nova tabela para armazenar os números dos telefones e ocampo-chave da

tabela cliente.

Veja o resultado a seguir:

N_fixa Nome Rua Cidade Cep

0001 Jorge Rua São Paulo, 380 Contagem 3398-243

0002 Juberto Rua Ipê Amarelo, 132 Vespasiano 4232-233

0003 Carlos Rua Luiz Carlos,165 Betim 4352-432

Tabela na 1º forma normal

N_fixa Telefone

0001 9999-9999

0002 8989-7895

0003 8473-5858

Tabela na 1ª forma normal

Page 21: ATPS- B. Dados.docx

13

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 assim: 31 9999-999 e 31- 6736-3367. Neste

caso a tabela ficaria desnormalizada, mas muitos acabam preferindo assim, principalmente

quando há poucos casos de repetição.

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

N_ficha, Código_vaga, Vaga, Quantidade, Valor, Subtotal

Agora a tabela com os dados:

N_fixa Código Vaga Quantidade Valor Subtotal

0001 52 Visitante 2 50,00 100,00

0002 53 Funcionário 2 50,00 100,00

0003 54 Avulso 26 200,00 5200,00

0004 55 Executivo 10 300,00 3000,00

Tabela não está na 2º forma normal

Page 22: ATPS- B. Dados.docx

14

Analisando teremos:

O nome do produto depende do código da vaga, porém não depende de N_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 N_ficha,

código_vaga, quantidade, valor e subtotal. Veja o resultado abaixo:

Tabela na 2º forma normal

N_fixa Código Quantidade Valor Subtotal

0001 52 2 50,00 100,00

0002 53 2 50,00 100,00

0003 54 26 200,00 5200,00

0004 55 10 300,00 3000,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 seenquadra 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:

Código Vaga

52 Visitante

53 Funcionário

54 Avulso

55 Executivo

Page 23: ATPS- B. Dados.docx

15

a) Identificar todos os atributos que são funcionalmente dependentes de outros atributos

nãochave;

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:

N_fixa Código Quantidade Valor Subtotal

0001 52 2 50,00 100,00

0002 53 2 50,00 100,00

0003 54 26 200,00 5200,00

0004 55 10 300,00 3000,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 Quantidade X Valo, desta forma 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:

N_fixa Código Quantidade Valor

0001 52 2 50,00

0002 53 2 50,00

0003 54 26 200,00

0004 55 10 300,00

Tabela na 3º forma normal

Page 24: ATPS- B. Dados.docx

16

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.

Page 25: ATPS- B. Dados.docx

17

ETAPA 5.

Aula tema: Álgebra Relacional.

Esta atividade é importante para que você construa mecanismos de pesquisas capazes de

manipular dados existentes em banco de dados. A proposta dessa etapa é criar diversas

operações de álgebra relacional que sejam aplicáveis em banco de dados, utilizando como

base o Modelo Relacional.

Para realizá-la é importante seguir os passos descritos.

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- proprietário Endereço Telefone

1 MOISES RUA A (31)3481001

2 JOSE RUA B (31)3481002

3 MARCOS RUA C (31)3481003

4 LUIZ RUA D (31)3481004

5 DANIEL RUA E (31)3481005

6 GERALDO RUA F (31)3481006

7 GUILHERME RUA G (31)3481007

8 BRUNO RUA H (31)3481008

9 WEMERSOM RUA I (31)3481009

10 ALEX RUA J (31)3481010

Page 26: ATPS- B. Dados.docx

18

Veiculo:

Placa_veicul

o

Mod_veicul

o

Cor_veiculo Tipo_veiculo Ano_veicul

o

Nro_fich

a (FK)

NMK-1234 GOL AZUL VW 2003 1

MNH-2354 UNO MARROM FIAT 2005 2

JKU-3467 206 CINZA PEGEOT 2014 3

KIU-5482 FOX PRETO VW 2015 4

OEH-8756 CELTA BRANCO CHEVROLE

T

2003 5

KIU-8976 KA VERMELH

O

FORD 2005 6

YUT-8734 CORSA BEGE FORD 2010 7

OMJ-8734 PICANTO ABOBORA KIA 2011 8

OJH-3143 PALIO AMARELO FIAT 2006 9

KYT-IUYT AGILE ROSA CHEFROLET 2014 10

VAGA:

Cod_vaga Placa_veiculo (FK)

100 NMK-1234

200 MNH-2354

300 JKU-3467

400 KIU-5482

500 OEH-8756

600 KIU-8976

700 YUT-8734

800 OMJ-8734

900 OJH-3143

901 KYT-IUYT

Page 27: ATPS- B. Dados.docx

19

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 = ‟Moises‟ (Proprietário)

σ tipo_veiculo = ‟strada‟ (Veiculo)

σ cod_vag a= ‟400‟ (Vaga)

SELECT Nro_ficha, Nome_proprietario, Endereço, Telefone FROM Proprietário

WHERE Nome_proprietario='Moises';

Cada operação apresentada ira selecionar apenas as linhas que contenha a palavra queira

encontrar. Como por exemplo, no caso na primeira seleção (σ nome –

proprietário=’Moises’(proprietário))o símbolo mostrado (σ) ,sigma, representa seleção ou a

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 a

informação de Moises.

Exemplo:

Nro_ficha Nome_proprietario Endereço Telefone

1 Moises Rua A (31)3481001

Criar uma operação de “PROJEÇÃO” para cada relação existente no modelo criado e

descrever que ação essa operação está realizando.

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)

Page 28: ATPS- B. Dados.docx

20

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

MOISES

JOSE

LUIZ

MARCOS

DANIEL

GERALDO

BRUNO

ALEX

GUILHERME

JONATHAM

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 29: ATPS- B. Dados.docx

21

WHERE TIPO_VEICULO='FOX' 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 FOX

4 GOL

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.

(Nro_ficha (estacionamento)) Ç (v.modelo_veiculo (vaga))

SELECT Nro_ficha, v.modelo_veiculo FROM VAGA v, ESTACIONAMENTO e

WHERE Nro_ficha = Nro_ficha AND v.tipo_veiculo = ‘CHEFROLET.

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

5 CHEVROLET

10 CHEVROLET

Page 30: ATPS- B. Dados.docx

22

Etapa 6

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 (FK)

NMK-1234

MNH-2354

JKU-3467

KIU-5482

OEH-8756

KIU-8976

YUT-8734

OMJ-8734

OJH-3143

KYT-IUYT

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

Page 31: ATPS- B. Dados.docx

23

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)

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 MOISES 2003 100

2 000.000.000-01 JOSE 2005 200

3 000.000.000-01 MARCOS 2014 300

4 000.000.000-01 LUIZ 2015 400

5 000.000.000-01 DANIEL 2003 500

6 000.000.000-01 GERALDO 2005 600

7 000.000.000-01 GUILHERME 2010 700

8 000.000.000-01 BRUNO 2011 800

9 000.000.000-01 WEMERSOM 2006 900

10 000.000.000-01 ALEX 2014 901

Vaga (cod_vaga; Nro_ficha; nome_proprietario).

Page 32: ATPS- B. Dados.docx

24

Cod_vaga Nro_ficha Nome_proprietario

100 1 MOISES

200 2 JOSE

300 3 MARCOS

400 4 LUIZ

500 5 DANIEL

600 6 GERALDO

700 7 GUILHERME

800 8 BRUNO

900 9 WEMERSOM

901 10 ALEX

Estacionamento (X) Vaga:

Nro_ficha Nome_proprietario Endereço Nro_vaga Cod_vaga

1 MOISES RUA A 2003 100

2 JOSE RUA B 2005 200

3 MARCOS RUA C 2014 300

4 LUIZ RUA D 2015 400

5 DANIEL RUA E 2003 500

6 GERALDO RUA F 2005 600

7 GUILHERME RUA G 2010 700

8 BRUNO RUA H 2011 800

9 WEMERSOM RUA I 2006 900

10 ALEX RUA J 2014 901

Page 33: ATPS- B. Dados.docx

25

Bibliografia

Disponível em: https://pt.wikibooks.org/wiki/Sistemas_operacionais/Sistemas_de_arquivos

Acesso: 15 de Março De 2014

Disponível em: http://pt.slideshare.net/zagari/so08-sistemas-de-arquivos Acesso: 15 de Março

De 2014

Disponível em: http://www.ic.unicamp.br/~rtorres/mc536A_07s1/relatorio1.pdf Acesso: 18

de Março de 2014

Disponível em: http://www.julianoribeiro.com.br/troca/banco_de_dados/material_der.pdf

Acesso: 21 de Março de 2014

Disponível em: http://www.devmedia.com.br/modelo-entidade-relacionamento-mer-e-

diagrama-entidade-relacionamento-der/14332 Acesso: 25 de Março de 2014

Disponível em: http://pt.kioskea.net/contents/65-bancos-de-dados-introducao

Acesso em 30 de março de 2014

Disponível em: http://www.cos.ufrj.br/~marta/BdRel.pdf

Acesso em 30 de março de 2014

Page 34: ATPS- B. Dados.docx

26