ATPS- B. Dados.docx
-
Upload
jacob-dixon -
Category
Documents
-
view
216 -
download
0
Transcript of 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
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
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
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.
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.
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
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
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
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.
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.
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.
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
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.
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
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.
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
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
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
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.
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
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
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
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
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.
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
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
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)
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.
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
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))
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).
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
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
26