Instituto Tecnológico de Aeronáutica

Divisão da Ciência da Computação

Curso de Pós-Graduação

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CE-240 Projeto de Banco de Dados

 

 

 

 

Professor. Adilsom Marques da Cunha

 

 

Listex 04

 

 

 

 

 

 

 

 

 

 

Wellingtonn Vergílio Fortes

 

 

 

 

 

Barra do Piraí, 10 de abril de 2004

 

 

 

 

1         Introdução

1.1        Título

Implementação e Conversão para Modelo Orientado a Objeto e Hieráquico do SIS-MANUT

1.2        Motivação

            Melhorar a experiência em desenvolvimento de Banco de Dados e visualizar as vantagem que os modelo de Banco de Dados Orientado à Objeto e Hierárquico em relação ao Relacional.

1.3        Objetivo

            Desenvolver de um Protótipo de aplicativo de Banco de Dados (BD) na Terceira Forma Normal (3FN), do Banco de Dados SIS-MANUT e implementa-lo nos modelos de Banco de Dados Orientado à Objeto e Hierárquico,  e observar as qualidades de cada modelo.

1.4        Conteúdo

            Inicialmente será desenvolvido o banco de dados e sua documentação, posteriormente será aplicado técnicas de banco de dados Orientado à Objeto e Hierárquico.

 

 

 

2           Desenvolvimento

 

 
  Forma Normal

 

oficina { ofi_codofic, ofi_nome, ofi_endereco, ofi_bairro, ofi_cidade, ofi_uf, ofi_tel}

 

veículo {vei_codveiculo, vei_placa, vei_ano, vei_modelo}

 

manutencao { man_codmanut, man_dataentrada, man_datasaida }

 

MATERIAL {mat_codmaterial, mat_descrição, mat_quantidade, mat_valorunit}

 

servico {ser_codservicos, ser_descricao, ser_valor}

 

cotacao { cot_codcotacao, cot_data, cot_aprovacao}

 

OCORRENCIA {oco_cod, man_codmanut, vei_codveiculo}

 

TEM{ tem_cod, man_codmanut, ser_codservico}

 

VINCULO{ vin_cod , mat_codmaterial, ser_codservico}

 

PRESTA { pre_cod , man_codmanut, ofi_codofic}

 

 

 

2.1         Criando o Banco de dados Versão 1.0 e suas tabelas.

 

 

Criando o Banco de Dados

 

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Criando a Estrutura das Tabelas

 

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Comandos em SQL usados para criação das Entidades ou Tabelas

 

create table MANUTENCAO( man_codmanut varchar (10) not null ,

man_dataentrada date  not null, man_datasaida date  not null, primary key(man_codmanut));

 

create table VEICULO( vei_codveiculo varchar (10) not null ,

vei_placa varchar (7) not null, vei_ano varchar (4) not null, vei_modelo varchar (255) not null, primary key(vei_codveiculo));

 

create table COTACAO( cot_codcotacao varchar (10) not null ,

cot_data date not null,cot_aprovacao varchar (3) not null,man_codmanut varchar (10) not null, primary key(cot_codcotacao));

 

create table MATERIAL( mat_codmaterial varchar (10) not null ,

mat_descricao varchar (255) not null, mat_quantidade int,

mat_valorunit int, primary key(mat_codmaterial));

 

create table SERVICO( ser_codservico varchar (10) not null ,

ser_descricao varchar (255) not null, ser_valor int,primary key(ser_codservico));

 

create table OFICINA( ofi_codofic varchar (10) not null ,

ofi_nome varchar (80) not null, ofi_endereco varchar (255)not null,

ofi_bairro varchar (70) not null, ofi_cidade varchar (70) not null, ofi_uf varchar (2) not null, ofi_tel varchar (11) not null, primary key(ofi_codofic));

 

create table OCORRENCIA( oco_cod varchar (10) not null ,

man_codmanut varchar (10) not null,vei_codveiculo varchar (10) not null, primary key(oco_cod));

 

create table TEM( tem_cod varchar (10) not null ,

man_codmanut varchar (10) not null,ser_codservico varchar (10) not null, primary key(tem_cod));

 

create table VINCULO( vin_cod varchar (10) not null ,

mat_codmaterial varchar (10) not null,ser_codservico varchar (10) not null, primary key(vin_cod));

 

create table PRESTA( pre_cod varchar (10) not null ,

man_codmanut varchar (10) not null,ofi_codofic varchar (10) not null,

primary key(pre_cod));

 

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Comandos SQL usados para criar os relacionamentos entre entidades ou tabelas

 

Alter table OCORRENCIA add constraint fk_ocorrencia

foreign key (man_codmanut) references MANUTENCAO(man_codmanut);

 

Alter table TEM add constraint fk_tem foreign key (man_codmanut)

references MANUTENCAO(man_codmanut);

 

Alter table PRESTA add constraint fk_presta foreign key (man_codmanut)

references MANUTENCAO(man_codmanut);

 

Alter table TEM add constraint fk_tem_servico foreign key (ser_codservico) references SERVICO(ser_codservico);

 

Alter table VINCULO add constraint fk_servico_vinculo foreign key (ser_codservico) references SERVICO(ser_codservico);

 

Alter table VINCULO add constraint fk_vinculo_material foreign key (mat_codmaterial) references MATERIAL(mat_codmaterial);

 

Alter table OCORRENCIA add constraint fk_ocorrencia_veiculo foreign key (vei_codveiculo) references VEICULO(vei_codveiculo);

 

Alter table COTACAO add constraint fk_cotacao_manutencao foreign key (man_codmanut) references MANUTENCAO(man_codmanut);

 

Alter table PRESTA add constraint fk_presta_oficina foreign key (ofi_codofic) references OFICINA(ofi_codofic);

 

 

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


3           Dicionário de Dados

 

 

oficina { ofi_codofic, ofi_nome, ofi_endereco, ofi_bairro, ofi_cidade, ofi_uf, ofi_tel}

 

ESTRUTURA

Nome:

Conteúdo:

oficina

Informações sobre as Oficinas usadas

ofi_codofic

Caracter(10) - Código da Oficina.

 ofi_nome

Caracter (80)- Nome da Oficina.

ofi_endereco

Caracter (255) – Endereço da Oficina.

ofi_bairro

Caracter (70) – Bairro da Oficina.

ofi_cidade

Caracter (70) – Cidade da Oficina.

ofi_uf

Caracter (02)  - Unidade Federal da Oficina.

ofi_tel

Caracter (11)  - Telefone da Oficina.

 

INTEGRIDADE

Nome:

Conteúdo:

ofi_codofic

Não Nulo e Único.

 ofi_nome

Não Nulo.

ofi_endereco

Não Nulo.

ofi_bairro

Não Nulo.

ofi_cidade

Não Nulo.

ofi_uf

Não Nulo.

ofi_tel

Não Nulo.

 

SEGURANÇA E PRIVACIDADE

Nome:

Conteúdo:

ofi_codofic

Chave primária, exclui-se todos os registros relacionados.

 ofi_nome

Sem Restrição.

ofi_endereco

Sem Restrição.

ofi_bairro

Sem Restrição.

ofi_cidade

Sem Restrição.

ofi_uf

Sem Restrição.

ofi_tel

Sem Restrição.

 

 

veículo {vei_codveiculo, vei_placa, vei_ano, vei_modelo}

ESTRUTURA

Nome:

Conteúdo:

veículo

Informações sobre os Veículos da Empresa

vei_codveiculo

Caracter(10) - Código do Veiculo.

vei_placa

Caracter (7)- Placa de um veículo.

vei_ano

Caracter (4) - Ano de Fabricação  um veículo.

vei_modelo

Caracter (255) - Modelo de veículo.

 

INTEGRIDADE

Nome:

Conteúdo:

vei_codveiculo

Não Nulo.

vei_placa

Não Nulo.

vei_ano

Não Nulo.

vei_modelo

Não Nulo.

 

SEGURANÇA E PRIVACIDADE

Nome:

Conteúdo:

vei_codveiculo

Chave primária, exclui-se todos os registros relacionados.

vei_placa

Sem Restrição.

vei_ano

Sem Restrição.

vei_modelo

Sem Restrição.

 

manutencao { man_codmanut, man_dataentrada, man_datasaida }

ESTRUTURA

Nome:

Conteúdo:

manutencao

Informações sobre as Manutenções aplicada aos veiculos

man_codmanut

Caracter(10) - Código da Manutenção.

man_dataentrada

Date – Data da entrada do veiculo na oficina para manutenção

man_datasaida

Date – Data da saida do veiculo na oficina para manutenção

 

INTEGRIDADE

Nome:

Conteúdo:

man_codmanut

Não Nulo.

man_dataentrada

Não Nulo.

man_datasaida

Não Nulo.

 

SEGURANÇA E PRIVACIDADE

Nome:

Conteúdo:

man_codmanut

Chave primária, exclui-se todos os registros relacionados.

man_dataentrada

Sem Restrição.

man_datasaida

Sem Restrição.

 

 

 

MATERIAL {mat_codmaterial, mat_descrição, mat_quantidade, mat_valorunit}

 

ESTRUTURA

Nome:

Conteúdo:

MATERIAL

Informações sobre os Materiais usados na manutenção

mat_codmaterial

Caracter(10) - Código da Oficina.

mat_descrição

Caracter (255)- Número da placa de um veículo.

mat_quantidade

Numerico – Quantidade de Peças

mat_valorunit

Numérico – Valor unitário das peças

 

INTEGRIDADE

Nome:

Conteúdo:

mat_codmaterial

Não Nulo.

mat_descrição

Não Nulo.

mat_quantidade

Não Nulo.

mat_valorunit

Não Nulo.

 

SEGURANÇA E PRIVACIDADE

Nome:

Conteúdo:

mat_codmaterial

Chave Primária, exclui-se todos os registros relacionados.

mat_descrição

Sem Restrição.

mat_quantidade

Sem Restrição.

mat_valorunit

Sem Restrição.

 

servico {ser_codservicos, ser_descricao, ser_valor}

ESTRUTURA

Nome:

Conteúdo:

servico

Informações sobre os Serviços efetuados na manutenção

ser_codservicos

Caracter(10) - Código da Oficina.

ser_descricao

Caracter (255)- Número da placa de um veículo.

ser_valor

Numérico – Valor do Serviço Efetuado.

 

INTEGRIDADE

Nome:

Conteúdo:

ser_codservicos

Não Nulo.

ser_descricao

Não Nulo.

ser_valor

Não Nulo.

 

SEGURANÇA E PRIVACIDADE

Nome:

Conteúdo:

ser_codservicos

Chave Primária, exclui-se todos os registros relacionados.

ser_descricao

Sem Restrição.

ser_valor

Sem Restrição.

 

cotacao { cot_codcotacao, cot_data, cot_aprovacao}

ESTRUTURA

Nome:

Conteúdo:

cotacao

Informações sobre as Cotação Recebidas

cot_codcotacao

Caracter(10) - Código da Oficina.

cot_data

Data – Data do Orçamento.

cot_aprovacao

Caracter (03) - Aprovação.

 

INTEGRIDADE

Nome:

Conteúdo:

cot_codcotacao

Não Nulo.

cot_data

Não Nulo.

cot_aprovacao

Não Nulo.

 

SEGURANÇA E PRIVACIDADE

Nome:

Conteúdo:

cot_codcotacao

Chave Primária, exclui-se todos os registros relacionados.

cot_data

Sem Restrição.

cot_aprovacao

Sem Restrição.

 

 

 

OCORRENCIA {oco_cod, man_codmanut, vei_codveiculo}

ESTRUTURA

Nome:

Conteúdo:

OCORRENCIA

Informações sobre os veículos que sofreram manutenção

oco_cod

Caracter(10) - Código da Ocorrência.

man_codmanut

Caracter(10) - Código da Manutenção.

vei_codveiculo

Caracter (10) - Código do Veiculo

 

INTEGRIDADE

Nome:

Conteúdo:

oco_cod

Não Nulo.

man_codmanut

Não Nulo.

vei_codveiculo

Não Nulo.

 

SEGURANÇA E PRIVACIDADE

Nome:

Conteúdo:

oco_cod

Chave Primária, exclui-se todos os registros relacionados.

man_codmanut

Chave Estrangeira, exclui-se os vínculos com as outras tabelas

vei_codveiculo

Chave Estrangeira, exclui-se os vínculos com as outras tabelas

 

TEM{ tem_cod, man_codmanut, ser_codservico}

ESTRUTURA

Nome:

Conteúdo:

TEM

Informações sobre os serviços efetuados na manutenção

tem_cod

Caracter(10) - Código da tabela tem.

man_codmanut

Caracter (10)- Código da Manutenção.

ser_codservico

Caracter (10) - Código do Serviço.

 

INTEGRIDADE

Nome:

Conteúdo:

tem_cod

Não Nulo.

man_codmanut

Não Nulo.

ser_codservico

Não Nulo.

 

SEGURANÇA E PRIVACIDADE

Nome:

Conteúdo:

tem_cod

Chave Primária, exclui-se todos os registros relacionados.

man_codmanut

Chave Estrangeira, exclui-se os vínculos com as outras tabelas

ser_codservico

Chave Estrangeira, exclui-se os vínculos com as outras tabelas

 

 

 

VINCULO{ vin_cod , mat_codmaterial, ser_codservico}

ESTRUTURA

Nome:

Conteúdo:

VINCULO

Informações sobre os materiais usado pelos serviços

vin_cod

Caracter(10) - Código do Vinculo.

mat_codmaterial

Caracter (10)- Código do Material.

ser_codservico

Caracter (10) - Código do Serviço.

 

INTEGRIDADE

Nome:

Conteúdo:

vin_cod

Não Nulo.

mat_codmaterial

Não Nulo.

ser_codservico

Não Nulo.

 

SEGURANÇA E PRIVACIDADE

Nome:

Conteúdo:

vin_cod

Excluindo este registro, exclui-se todos os registros relacionados.

mat_codmaterial

Chave Estrangeira, exclui-se os vínculos com as outras tabelas

ser_codservico

Chave Estrangeira, exclui-se os vínculos com as outras tabelas

 

PRESTA { pre_cod , man_codmanut, ofi_codofic}

ESTRUTURA

Nome:

Conteúdo:

PRESTA

Informações sobre as Oficinas que prestam determinada manutenção

pre_cod

Caracter(10) - Código da Tabela Presta.

man_codmanut

Caracter (10)- Código da Manutenção.

ofi_codofic

Caracter (10) - Código da Oficina.

 

INTEGRIDADE

Nome:

Conteúdo:

pre_cod

Não Nulo.

man_codmanut

Não Nulo.

ofi_codofic

Não Nulo.

 

SEGURANÇA E PRIVACIDADE

Nome:

Conteúdo:

pre_cod

Excluindo este registro, exclui-se todos os registros relacionados.

man_codmanut

Chave Estrangeira, exclui-se os vínculos com as outras tabelas

ofi_codofic

Chave Estrangeira, exclui-se os vínculos com as outras tabelas

 

 

 

 

4           Diretório de Dados

 

 

4.1         Hardware

 

 

            O Banco de Dados será implantado em um servidor fechado da empresa ITAUTEC. Este servidor será o InforServer 3030 . Característica:

 

·        Inforserver 3030 Dual

·        Processadores Pentium 4 3.2 Ghz Xeon

·        1 Gb de Ram

·        Placa Mãe Gigabyte

·        Placa de Vídeo  off-board

·        2 HDs SCSI de 70 Gb

·        Unidade de Fita DAT DDS4

·         Placa Rede 3COM  10/100/1000

 

Os terminais de acesso poderão ter a configuração mínima abaixo:

 

 

·        Pentium III 800 Mhz

·        128 de Ram

·        HD 10 Gb

 

 

 

4.2         Softwares

 

 

O banco de dados a ser utilizado será o JDATASTORE que vem junto com JBUILDER.

 

            Sistema Operacional do Servidor: Windows 2003 Advance  Server

            Implementado RAID 1.

 

Sistema Operacional dos Terminais: Windows 9x, Windows 2000 Professional, Windows XP.

 

 

4.3         Procedimentos de Implementação

 

Os procedimentos serão seguidos conforme a ordem abaixo:

 

·        Instalação da parte física da rede

·        Instalação do Sistema Operacional do Servidor

·        Configuração de Segurança no Servidor

·        Implantação do SGBD JDATASTORE

·        Implantação do Banco SYS-MANUT

·        Configuração das Estações para acesso a rede

·        Instalação dos Clientes do Banco de Dados

 

 

5           Dicionário de Recursos

 

Localização dos Dados

d:/SIS-MANUT/SYS_MANUT.gdb

Alias:

SYSMANUT

Projeto:

Sistema de Gestão de Frota de Apoio à Logística de Cargas - SIGEF-ALC”.

 

Características protocolo utilizado:

TCP/IP

 

 

 

 

6           Dicionário de Metadados

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


7           Criando a Massa de Dados

 

 

Para inserção de dados foram criados os conjuntos de comandos SQL e executados juntos assim inserindo o dados em todas tabelas.

 

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Os comandos em SQL.

 

Insert into MANUTENCAO( man_codmanut,man_dataentrada, man_datasaida)

VALUES('A1','2004-05-11','2004-12-19');

 

Insert into MANUTENCAO( man_codmanut,man_dataentrada, man_datasaida)

VALUES('A2','2004-05-01','2004-02-14');

 

Insert into MANUTENCAO( man_codmanut,man_dataentrada, man_datasaida)

VALUES('A3','2004-06-01','2004-07-01');

 

 

Insert into VEICULO( vei_codveiculo,vei_placa, vei_ano,vei_modelo)

values('B1','MND4567','2000','FORD 40000');

 

Insert into VEICULO( vei_codveiculo,vei_placa, vei_ano,vei_modelo)

values('B2','MLD4667','1999','FORD 30000');

 

Insert into VEICULO( vei_codveiculo,vei_placa, vei_ano,vei_modelo)

values('B3','CLD4667','2001','FORD 20000');

 

 

 

Insert into COTACAO(cot_codcotacao,cot_data,cot_aprovacao,man_codmanut)

VALUES('C1','2004-01-01','SIM','A1' );

 

Insert into COTACAO(cot_codcotacao,cot_data,cot_aprovacao,man_codmanut)

VALUES('C2','2004-02-01','NAO','A2' );

 

Insert into COTACAO(cot_codcotacao,cot_data,cot_aprovacao,man_codmanut)

VALUES('C3','2004-03-01','SIM','A3' );

 

 

Insert into OFICINA(ofi_codofic,ofi_nome , ofi_endereco, ofi_bairro,ofi_cidade,ofi_uf, ofi_tel) VALUES('D1','Of. Teste','Av. Luis,85','Antigo','São Jose','SP','354364454'  );

 

 

Insert into OFICINA(ofi_codofic,ofi_nome , ofi_endereco, ofi_bairro,ofi_cidade,ofi_uf, ofi_tel) VALUES('D2','Of. Arruma','Rua João,5','Centro','Barra do Piraí','RJ','35564454'  );

 

Insert into OFICINA(ofi_codofic,ofi_nome , ofi_endereco, ofi_bairro,ofi_cidade,ofi_uf, ofi_tel) VALUES('D3','Of. do Paulo','Rua Anterior,78','Aterro','Volta Redonda','RJ','35555454'  );

 

 

Insert into MATERIAL( mat_codmaterial,mat_descricao,mat_quantidade,mat_valorunit)

VALUES('F1','Lata de Oleo',12,15 );

 

Insert into MATERIAL( mat_codmaterial,mat_descricao,mat_quantidade,mat_valorunit)

VALUES('F2','Lata de Oleo de Freio',32,12 );

 

Insert into MATERIAL( mat_codmaterial,mat_descricao,mat_quantidade,mat_valorunit)

VALUES('F3','Pastilha de Freio',10,40 );

 

 

Insert into SERVICO( ser_codservico ,ser_descricao, ser_valor)

VALUES('H1','Troca de Óleo',34);

 

Insert into SERVICO( ser_codservico ,ser_descricao, ser_valor)

VALUES('H2','Troca de Caixa de Marcha',234);

 

Insert into SERVICO( ser_codservico ,ser_descricao, ser_valor)

VALUES('H3','Reparo na Biela',534);

 

 

 

Insert into TEM( tem_cod, man_codmanut,ser_codservico)

VALUES('E1','A2','H3');

 

Insert into TEM( tem_cod, man_codmanut,ser_codservico)

VALUES('E2','A3','H1');

 

Insert into TEM( tem_cod, man_codmanut,ser_codservico)

VALUES('E3','A1','H2');

 

 

Insert into VINCULO( vin_cod,mat_codmaterial,ser_codservico)

values('I1','F2','H3');

 

Insert into VINCULO( vin_cod,mat_codmaterial,ser_codservico)

values('I2','F1','H2');

 

Insert into VINCULO( vin_cod,mat_codmaterial,ser_codservico)

values('I3','F3','H1');

 

 

Insert into OCORRENCIA( oco_cod,man_codmanut,vei_codveiculo)

values('J1','A2','B3');

 

Insert into OCORRENCIA( oco_cod,man_codmanut,vei_codveiculo)

values('J2','A3','B1');

 

Insert into OCORRENCIA( oco_cod,man_codmanut,vei_codveiculo)

values('J3','A1','B2');

 

 

Insert into PRESTA( pre_cod,man_codmanut,ofi_codofic)

VALUES('L1','A1','D1');

 

Insert into PRESTA( pre_cod,man_codmanut,ofi_codofic)

VALUES('L2','A2','D2');

 

Insert into PRESTA( pre_cod,man_codmanut,ofi_codofic)

VALUES('L3','A3','D3');

 

 

 

8           Consulta ao Banco de Dados

 

Linguagem Natural

 

-         Mostras o nome e telefone das oficinas do estado do Rio de Janeiro

 

SQL :

 

select ofi_nome,ofi_tel from oficina where ofi_uf='RJ'

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Linguagem Natural

 

-         Mostrar as proposta ou cotação de manutenção que não foram aprovadas

 

SQL

 

select cotacao.cot_codcotacao,manutencao.man_codmanut

from manutencao,cotacao where manutencao.man_codmanut=cotacao.man_codmanut and

cotacao.cot_aprovacao='NAO';

 

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Linguagem Natural

 

-         Mostrar as datas no qual o veiculo especificado sofreu manutenção

 

SQL

 

select veiculo.vei_placa,manutencao.man_dataentrada, manutencao.man_datasaida from manutencao,ocorrencia, veiculo where  veiculo.vei_placa='MND4567' and manutencao.man_codmanut=ocorrencia.man_codmanut and ocorrencia.vei_codveiculo=veiculo.vei_codveiculo

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


9           Conversão para modelo Hiráquico

 

 

Este modelo de banco de dados seque um a estrutura de um organograma de uma empresa. Assim ele demonstra a herarquia das relações.

 

 

 

 

 

10       Modelo de Dados de Rede.

 

 

O Modelo de Dados de Rede à medida que os dados são apresentados por uma coleção de registros, e os relacionamentos entre dados são representados por meio de links, enquanto no Modelo Relacional, os dados e os relacionamentos entre dados são representados por meio de uma coleção de tabelas.

 

 

 

11       Modelo de Dados Orientado à Objeto.

 

 

Modelos de Dados Orientados a Objetos apresentam um estilo de organização de sistemas como uma gama de objetos que integram estruturas de dados e seus comportamentos. Os conceitos, princípios e mecanismos são diferentes dos outros modelos.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


12       Conclusão

 

 

Esta listex forçou nos a aplicar as técnicas e projetar a primeira versão do Banco SYS-MANUT. E assim, nos capacitou e agregou nos mais conhecimento.

 

 

 

Hosted by www.Geocities.ws

1