Professional Documents
Culture Documents
SUMRIO
1
INTRODUCAO..................................................................................................................4
1.1
Problema.......................................................................................................................4
1.2
Objetivos......................................................................................................................4
1.2.1
1.3
2
Geral......................................................................................................................4
Metodologia.................................................................................................................4
DESENVOLVIMENTO.....................................................................................................4
2.1
2.1.1
2.2
Modelo de Dados.........................................................................................................6
2.2.1
Conceito................................................................................................................6
2.2.2
2.3
2.3.2
2.3.3
Normalizao de Dados......................................................................................15
2.3.4
Algebra Relacional..............................................................................................18
CONCLUSO..................................................................................................................22
BIBLIOGRAFIA..............................................................................................................23
ANEXO.............................................................................................................................24
INTRODUCAO
1.1
Problema
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 informaes 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
1.2
Objetivos
1.2.1
Geral
Elaborar um modelo de dados para o sistema de informao para controle de um
estacionamento.
1.3
Metodologia
Utilizar as leituras obrigatrias e vivencias do grupo.
DESENVOLVIMENTO
2.1
2.1.1
Tipo
Arquivo
SGBD
Prs
- Exclusividade sobre
a arquitetura
- No h custo com
licena, somente
custo de
desenvolvimento
-Aplicaes mais
genricas;
-Controle de
redundncia de
dados;
-Independncia de
dados e aplicativos;
-Mais segurana;
-O controle e a
manuteno integral
dos dados so feitos
pelo SGBD;
-O controle de
concorrncia feito
pelo SGBD.
Contras
-Banco de Dados
-Aplicaes especficas;
-Redundncia de dados;
-Dependncia entre dados e
aplicativos;
-Menos segurana;
-A integridade deve ser mantida em
cada programa;
-O controle de concorrncia deve ser
feito pelos programas.
- Exige capacidade tcnica apurada
dependendo do fornecedor da
soluo (ex: Oracle).
- Custo elevado para alguns tipos de
fornecedor
2.2
Modelo de Dados
2.2.1
Conceito
Modelar significa criar um modelo que explique as caractersticas de funcionamento e
comportamento de um software a partir do qual ele ser criado, facilitando seu
entendimento e seu projeto, atravs das caractersticas principais que evitaro erros de
programao, projeto e funcionamento. uma parte importante do desenho de um
sistema de informao.
A modelagem de dados a primeira etapa de um projeto que envolva banco de dados e
tem como seu principal objetivo o desenvolvimento de um modelo que contenha
entidades e relacionamentos, e que com isso seja possvel representas as
especificaes das informaes do negcio (OLIVEIRA,2002).A modelagem de dados
ajuda a organizar a forma de pensamento sobre os dados, demonstrando o significado.
A abordagem que se dispensa ao assunto normalmente atende trs perspectivas:
Modelagem Conceitual, Modelagem Lgica e Modelagem Fsica. A primeira e
conhecida e usada como representao de alto nvel e considera exclusivamente o
ponto de vista do usurio criador do dado, a segunda j agrega alguns detalhes de
implementao e a terceira demonstra como os dados so fisicamente armazenados.
Um modelo de dados a coleo de, pelo menos, 3 componentes:
1) Um conjunto de tipos de estruturas de dados
Define o tipo de dados e como se inter-relacionam
2) Um conjunto de operadores
Operaes que permitem manipular as estruturas de dados
definidas.
3) Um conjunto de regras de integridade
Regras que definem que dados so vlidos
2.2.2
de atributos (campos), cada um dos quais contendo somente uma informao; uma
ligao a associao entre dois registros. Por exemplo: em uma dada base de dados
comercial, uma encomenda (i.e. registro) possuda por um nico cliente.
Ex Software: IMS
2.3
2.3.1.1 Justificativa
Para os dados a serem processados n SGBD vamos utilizar o modelo relacional pela
sua simplicidade de implantao e alto grau de compatibilidade com os maiores
softwares de SGBD do mercado.
Figura 1 Exemplo Modelo Relacional
Descrio
Tipo
Tamanho Restrio
Comentrios
Not null
Sequencial
fk
id_cliente
Nmero de cadastro do
cliente
interger -
Not null
pk placa_veiculo
Nmero da placa do
veculo do cliente
varchar 7
Not null
pk nro_vaga
Nmero do cadastro da
vaga
interger -
Not null
Status da vaga no
varchar 3
estacionamento do cliente
Not null
Default:LBD(Liberada), outros
valores:OCP(Ocupada)
RES(Reservada)
status
PND(Pendente)
Descrio
Tipo
Tamanho Restrio
Comentrios
pk nro_vaga
Nmero do cadastro da
vaga no banco de dados
interger
Not null
Sequencial
locl_vaga
Localizao da vaga no
estacionamento
varchar
250
Not null
fk
sigla_vaga
Not null
Apenas MEN(Mensalista)
ROT(Rotativa)
fk
status_vaga
Not null
pk
pk
Descrio
Tipo
Tamanho Restrio
Comentrios
Nmero de cadastro do
interger cliente no banco de dados
Not null
Sequencial
nome_cliente
250
Not null
cpf_cliente
Nmero do CPF do
cliente
varchar
12
Not null
telefone_coml
Nmero do telefone
comercial do cliente
interger 11
Not null
telefone_resl
Nmero do telefone
residencial do cliente
interger 11
Not null
telefone_celr
Nmero do telefone
celular do cliente
interger 11
Not null
Endereo de e-mail do
cliente
varchar
200
null
placa_veiculo
Nmero da placa do
veculo do cliente
varchar
Not null
varchar
40
null
cor_veiculo
Descrio da cor do
veculo
varchar
40
null
tipo_veiculo
Descrio do tipo do
veculo
varchar
40
null
ano_veiculo
Ano de fabricao do
year
null
10
veculo
caracteres(YYYY)
Descrio
Tipo
Tamanho Restrio
Comentrios
pk nro_vaga
Nmero do cadastro da
vaga na tabela vaga
interger
Not null
pk tipo_vaga
Descrio completa do
tipo de vaga
varchar
50
Not null
valor_vaga
Descrio da sigla do
status
float
10
Not null
sigla_vaga
Not null
Apenas MEN(Mensalista)
ROT(Rotativa)
pk sigla_status
Descrio
Tipo
Tamanho Restrio
Comentrios
Nmero do cadastro do
status no banco de dados
interger
Not null
Sequencial
Descrio completa do
status
varchar
50
Not null
Ex.: Liberada,
Pendente,Reservada,
Ocupada
Descrio da sigla do
status
varchar
Not null
Default:LBD(Liberada),
outros
valores:OCP(Ocupada)
RES(Reservada)
PND(Pendente)
id_estacionament
o
1
2
3
id_client
placa_veiculo
e
IIU6292
3
IKP6060
2
KPQ1616
1
nro_vaga
status
10
11
12
LBD
OCP
PND
11
id_cl
iente
nom
e_cli
ente
cpf_cl
iente
telefo
ne_co
ml
telefo
ne_re
sl
telefon
e_celr
Fulan
o
12345
67891
0
51323
03030
5132
3030
30
659987
4561
Cicla
no
51325
40889
Beltr
ano
5132
5408
89
6132
5544
78
619874
5612
98765
43124
1
12378
94567
8
61325
54478
518456
1237
email
teste
@test
e.com
.
teste1
@test
e.com
teste3
@test
e.com
placa
_veic
ulo
model
o_veic
ulo
cor_
veic
ulo
tipo_ve
iculo
ano_vei
culo
IIU62
92
Corsa
Azul
Passeio
1998
IKP6
060
Celta
Cinz
a
Passeio
2012
KPQ1
616
Ford
Ka
Verm
elho
Passeio
2003
nro_vaga
10
11
12
locl_vag
a
LOTE
A1
LOTE
A2
LOTE
A3
sigla_vaga
status_vaga
MEN
ROT
ROT
nro_vaga
3
1
12
id_status
desc_status
1 Pendente
2 Liberada
3 Ocupada
2.3.2
sigla_status
PND
LBD
OCP
13
estacionamento:
relacionamento
dos
dados
da
tabela
14
estacionamento
vaga,
onde
relacionamento
com
15
2.3.3
Normalizao de Dados
16
dados, e isso tem como consequncia que as consultas feitas a um banco de dados
totalmente normalizado tm um mau desempenho. Nestes casos, usa-se por vezes a
desnormalizao para melhorar o desempenho, com o custo de menores garantias de
consistncia.
-id_cliente
-id_estacionamento
-nome_cliente
-cpf_cliente
-telefone_coml
-telefone_resl
-telefone_celr
-email
-placa_veiculo
-modelo_veiculo
-cor_veiculo
-tipo_veiculo
-ano_veiculo
estacionamento
-id_estacionamento
-id_cliente
-placa_veiculo
-modelo_veiculo
-cor_veiculo
-tipo_veiculo
-ano_veiculo
17
-nro_vaga
-sigla_vaga
-status
-id_estacionamento
-id_cliente
-placa_veiculo
-modelo_veiculo
-cor_veiculo
-tipo_veiculo
-ano_veiculo
-nro_vaga
-sigla_vaga
-status
vaga
-nro_vaga
-locl_vaga
-sigla_vaga
-status_vaga
18
2.3.4
cliente
-id_cliente
-nome_cliente
-cpf_cliente
-telefone_coml
-telefone_resl
-telefone_celr
-email
-placa_veiculo
-modelo_veiculo
-cor_veiculo
-tipo_veiculo
-ano_veiculo
estacionamento
-id_estacionamento
-id_cliente
-placa_veiculo
-nro_vaga
-sigla_vaga
-status
vaga
-nro_vaga
-locl_vaga
-sigla_vaga
-status
tipo_vaga
-nro_vaga
-tipo_vaga
-valor_vaga
-sigla_vaga
status
-id_status
-desc_status
-sigla_status
Algebra Relacional
19
uma operao que para um conjunto inicial fornecido como argumento, produz um
subconjunto estruturalmente idntico, mas apenas com os elementos do conjunto
original que atendem a uma determinada condio (chamada de predicado). A seleo
pode ser entendida como uma operao que filtra as linhas de uma relao(tabela), e
uma operao unria, pois opera sobre um nico conjunto de dados.
Resultado subconjunto horizontal de uma relao
Operadores de comparao : =, <, <=, >, >=,
Operadores lgicos: ^ (and) V (or) (not)
2.3.4.2.2 Projeo
Produz um conjunto onde h um elemento para cada elemento do conjunto de entrada,
sendo que a estrutura dos membros do conjunto resultante definida nos argumentos
da operao. Pode ser entendida como uma operao que filtra as colunas de uma
tabela. Por operar sobre apenas um conjunto de entrada classificada como uma
operao unria.
2.3.4.2.3 Unio
Produz como resultado uma Relao que contm todas as linhas da primeira Relao
seguidas de todas as linhas da segunda tabela. A Relao resultante possui a mesma
quantidade de colunas que as relaes originais, e tem um nmero de linhas que no
mximo igual soma das linhas das relaes fornecidas como operandos, j que as
linhas que so comuns a ambas as relaes aparecem uma nica vez no resultado.
Obs: As relaes devem possuir o mesmo nmero de atributos.
2.3.4.2.4 Interseco
Esta uma operao adicional que produz como resultado uma tabela que contm,
sem repeties, todos os elementos que so comuns s duas tabelas fornecidas como
operandos. As tabelas devem ser unio-compatveis.
2.3.4.2.5 Diviso
20
2.3.4.2.6 Diferena
uma operao que requer como operandos duas relaes unio-compatveis, ou seja,
estruturalmente idnticas. O resultado uma relao que possui todas as linhas que
existem na primeira relao e no existem na segunda.
2.3.4.2.7 Juno
O resultado da operao juno natural uma relao com todas as combinaes das
tuplas na relao1 (R1) e relao2 (R2) nas quais os seus atributos em comum so
iguais.
uma operao que produz uma combinao entre as linhas de uma relao com as
linhas correspondentes de outra relao, sendo em princpio correspondente a uma
seleo pelos atributos de relacionamento sobre um produto cartesiano dessas
relaes:
A operao de juno foi criada porque esse tipo de combinao de tabelas muito
comum, facilitando com isso a escrita de expresses. A tabela resultante de uma
juno tem todas as colunas da primeira tabela e todas da segunda tabela.
2.3.4.3 Exemplos Prticos de Acordo com Problema Proposto
2.3.4.3.1 Seleo
Comando select * from estacionamento where id_cliente = 3.
Figura 3 Exemplo consulta Seleo
2.3.4.3.2 Projeo
21
2.3.4.3.3 Unio
Comando
select
cli.nome_cliente,
es.placa_veiculo,
vg.locl_vaga
from
2.3.4.3.4 Interseco
Comando select vg.nro_vaga, vg.status_vaga, es.placa_veiculo from estacionamento
as es inner join vaga as vg on vg.status_vaga = es.`status`
Figura 6 Exemplo consulta Interseo
22
2.3.4.3.5 Diviso
Comando select es.id_cliente, es.placa_veiculo from estacionamento as es
inner join cliente as cli on es.placa_veiculo = cli.placa_veiculo
Figura 7 Exemplo consulta Diviso
2.3.4.3.6 Diferena
Comando select cli.nome_cliente, cli.placa_veiculo, es.nro_vaga from cliente as cli
inner join estacionamento as es on es.id_cliente = cli.id_cliente
Figura 8 Exemplo consulta Diferena
2.3.4.3.7 Juno
Comando select es.placa_veiculo, vg.sigla_vaga from estacionamento as es
left join vaga as vg on vg.status_vaga = es.`status`
Figura 9 Exemplo consulta Juno
23
CONCLUSO
O modelo relacional foi proposto por Edgar Codd em 1970, como uma nova maneira
de representao de dados. Neste seu trabalho Codd mostrou que uma viso relacional
dos dados permite a sua descrio em uma maneira natural, sem que sejam necessrias
estruturas adicionais para sua representao, provendo uma maior independncia dos
dados em relao aos programas. Em complementao, apresentou bases para tratar
problemas como redundncia e consistncia. Mais tarde, em outro trabalho, Codd
definiu uma lgebra relacional e provou, por meio de sua equivalncia com o clculo
relacional, que ela era relacionalmente completa, dando fundamentao terica ao
modelo relacional.
Este modelo, por suas caractersticas e por sua completitude, mostrou ser uma
excelente opo, superando os modelos mais usados quela poca: o de redes e o
hierrquico. A maior vantagem do modelo relacional sobre seus antecessores a
representao simples dos dados e a facilidade com que consultas complexas podem
ser expressas e foi utilizado para tratar o problema proposto das entidades
estacionamento e vaga.
BIBLIOGRAFIA
PRESSMAN, Roger S. Engenharia de Software. 6. ed. So Paulo: McGraw-Hill, 2006.
SILVA, Nelson Peres. Anlise e estrutura de sistemas de informao. So Paulo: rica,
2007.
SOARES, Mrcio V. et al. Algoritmos e Lgica de Programao. 2. ed. So Paulo:
Cengage
Learning, 2011.
WIKIPEDIA,
NORMA
FORMAL,
PRIMEIRA,
http://pt.wikipedia.org/wiki/Normaliza
%C3%A7%C3%A3o_de_dados#Primeira_Forma_Normal,
Ultima
Atualizao:
11/02/2014
http://www.devmedia.com.br/algebra-relacional-parte-i/2663,
01/04/2014
Ultima
Atualizao:
24
ANEXO
Comando de configurao do banco de dados utilizado no projeto com a ferramenta
open source MySql e HeidiSQL.
-- --------------------------------------------------------- Servidor:
127.0.0.1
-- Verso do servidor:
-- OS do Servidor:
Win32
-- HeidiSQL Verso:
8.2.0.4675
-- -------------------------------------------------------/*!40101
SET
@OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET NAMES utf8 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS,
FOREIGN_KEY_CHECKS=0 */;
/*!40101
SET
@OLD_SQL_MODE=@@SQL_MODE,
SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
-- Copiando estrutura do banco de dados para atps
CREATE DATABASE IF NOT EXISTS `atps` /*!40100 DEFAULT CHARACTER
SET utf8 COLLATE utf8_bin */;
USE `atps`;
25
26
27
127.0.0.1
-- Verso do servidor:
-- OS do Servidor:
Win32
-- HeidiSQL Verso:
8.2.0.4675
-- -------------------------------------------------------/*!40101
SET
@OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET NAMES utf8 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS,
FOREIGN_KEY_CHECKS=0 */;
/*!40101
SET
@OLD_SQL_MODE=@@SQL_MODE,
SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
-- Copiando estrutura do banco de dados para atps
CREATE DATABASE IF NOT EXISTS `atps` /*!40100 DEFAULT CHARACTER
SET utf8 COLLATE utf8_bin */;
USE `atps`;
28
Nunes
Maciel',
'84854911573', 2147483647,
2147483647,
'Carlos
Alberto
Silva',
'74865728260',
512421138,
2147483647,
'Lucas
Klein
Pereira',
'05987430739',
512421149,
2147483647,
29
30
ENGINE=InnoDB
AUTO_INCREMENT=7
DEFAULT
CHARSET=utf8
COLLATE=utf8_bin;
-- Copiando dados para a tabela atps.status: ~6 rows (aproximadamente)
/*!40000 ALTER TABLE `status` DISABLE KEYS */;
INSERT INTO `status` (`id_status`, `desc_status`, `sigla_status`) VALUES
(1, 'Liberada', 'LBD'),
(2, 'Ocupada', 'OCP'),
(3, 'Pendente', 'PND'),
(4, 'Reservada', 'RES'),
(5, 'Manutencao', 'MNT'),
(6, 'Inativa', 'INT');
/*!40000 ALTER TABLE `status` ENABLE KEYS */;
31
32