Professor. Adilsom Marques da Cunha
Listex - 06
Wellingtonn Vergílio
Fortes - Normalizador
Barra
do Piraí - RJ, 21 de junho de 2004
DESENVOLVIMENTO
Neste nível foi criado o banco da empresa ALC, formou-se com a união dos bancos DELTA e CHARLIE.
Integrando os Protótipos de Aplicativo de Banco de Dados da Gestão de Apoio, Frotas, Missões e Recursos (SIS-GAFMR) e do Setor Administrativo, Armazenagem e Financeiro (SIS-ADAFI).
Toda a documentação do banco
(contextualização, dicionarização, MER e código SQL do banco) estão localizadas
no link:
http://geocities.yahoo.com.br/halcs2004/alc_contextualizacao.html
O Dicionário de Dados do Banco está na página:
http://geocities.yahoo.com.br/halcs2004/alc_dicionarizacao.html
O MER e a renormalização deste banco se encontra:
http://geocities.yahoo.com.br/halcs2004/alc_normalizacao.html
- Criação do Banco
4.2 Criação de Tabelas
Foi criado o Banco de Dados Frota que recebera o código SQL abaixo, para criação das tabelas.
CREATE TABLE ACESSO_PESSOA (ACP_ID INTEGER NOT NULL,
PES_ID
INTEGER NOT NULL,
DPT INTEGER
NOT NULL,
ACP_DATA
DATE,
ACP_FLAG
INTEGER);
CREATE TABLE ACESSO_VEICULO (VEI_ID INTEGER NOT NULL,
PES_ID
INTEGER NOT NULL,
ACV_DATA
DATE,
DPT__ID
INTEGER NOT NULL,
CAR_ID
INTEGER NOT NULL);
CREATE TABLE ARMAZEM (ARM_ID INTEGER NOT NULL,
CLI_ID
INTEGER NOT NULL,
LOC_ID
INTEGER NOT NULL,
ARM_ESPACO_TOTAL VARCHAR(50),
ARM_ESPACO_OCUPADO VARCHAR(50) NOT NULL,
PRIMARY KEY (ARM_ID));
CREATE TABLE CAPACITACAO_PESSOA (CAP_ID INTEGER NOT
NULL,
CAP_NOME VARCHAR(100),
CAP_DESC VARCHAR(100),
CAP_TEMPO INTEGER,
CAP_CATEGORIA VARCHAR(100));
CREATE TABLE CARGA (CAR_ID INTEGER NOT NULL,
CAR_QTD
FLOAT NOT NULL,
CAR_VALOR
FLOAT NOT NULL,
PRO_ID
INTEGER NOT NULL,
OSE_ID
INTEGER NOT NULL,
PCI_ID
INTEGER NOT NULL,
PRIMARY KEY (CAR_ID));
CREATE TABLE CIDADE (CID_ID INTEGER NOT NULL,
CID_NOME VARCHAR(100),
CID_UF VARCHAR(2),
PRIMARY KEY (CID_ID));
CREATE TABLE CLIENTE (CLI_ID INTEGER NOT NULL,
CLI_TIPO_PESSOA INTEGER NOT NULL,
CLI_NOME VARCHAR(50) NOT
NULL,
CLI_ENDERECO VARCHAR(200) NOT NULL,
CLI_CIDADE VARCHAR(50) NOT NULL,
CLI_DT_CADASTRO DATE NOT NULL,
CLI_SITE VARCHAR(50),
PRIMARY KEY (CLI_ID));
CREATE TABLE COMUNICACAO (COM_ID INTEGER NOT NULL,
COM_MENSAGEM VARCHAR(50),
MIS_ID INTEGER NOT NULL,
COM_TIPO INTEGER NOT NULL,
COM_DTHR DATE NOT NULL,
PRIMARY KEY (COM_ID));
CREATE TABLE CONTA_REC (CRE_ID INTEGER NOT NULL,
FAT_ID INTEGER,
CRE_VALOR_PAGO INTEGER,
CRE_VALOR_A_PAGAR INTEGER,
PRIMARY KEY (CRE_ID));
CREATE TABLE COTACAO_MANUT (COT_ID INTEGER NOT NULL,
COT_DATA
DATE,
COT_APROVACAO DATE,
MAT_ID
INTEGER NOT NULL);
CREATE TABLE DEPARTAMENTO (DPT_ID INTEGER NOT NULL,
DPT_NOME VARCHAR(100),
DPT_DESC VARCHAR(100));
CREATE TABLE DESTINATARIO (DES_ID INTEGER NOT NULL,
DES_NOME VARCHAR(50),
DES_ENDERECO VARCHAR(200),
DES_CEP VARCHAR(10),
DES_TELEFONE VARCHAR(18),
PRIMARY KEY (DES_ID));
CREATE TABLE ENTREGA (ENT_ID INTEGER NOT NULL,
VAG_ID
INTEGER NOT NULL,
CAR_ID
INTEGER NOT NULL,
DES_ID
INTEGER NOT NULL,
PRIMARY KEY (ENT_ID));
CREATE TABLE ESTOQUE (EST_ID INTEGER NOT NULL,
EST_DESC VARCHAR(50),
EST_QTDE
INTEGER,
MTR_ID
INTEGER NOT NULL,
PRIMARY KEY (EST_ID));
CREATE TABLE FATURA (FAT_ID INTEGER NOT NULL,
CLI_ID
INTEGER NOT NULL,
FAT_VALOR_TOTAL INTEGER,
FAT_DATA_VENC DATE,
FAT_PERC_DESC FLOAT,
FAT_PERC_MULTA FLOAT,
FAT_PERC_JUROS FLOAT,
PRIMARY KEY (FAT_ID));
CREATE TABLE FATURA_ITEM (FTI_ID INTEGER NOT NULL,
FAT_ID
INTEGER NOT NULL,
EST_ID
INTEGER NOT NULL,
FTI_QTDE INTEGER,
FTI_DESC_SERV VARCHAR(200),
FTI_VALOR_MERC_SERV INTEGER,
PRIMARY KEY (FTI_ID, FAT_ID));
CREATE TABLE FORNECEDOR (FOR_ID INTEGER NOT NULL,
FOR_NOME VARCHAR(50),
FOR_ENDERECO VARCHAR(255),
FOR_CNPJ VARCHAR(20),
PRIMARY KEY (FOR_ID));
CREATE TABLE FRETE (FRE_ID INTEGER NOT NULL,
FRE_VALOR
FLOAT NOT NULL,
LOC_ID_ORIGEM INTEGER NOT NULL,
LOC_ID_DESTINO INTEGER NOT NULL,
PRIMARY KEY (FRE_ID));
CREATE TABLE FROTA_TERC (FRO_ID INTEGER NOT NULL,
FRO_TRANSPORTADORA VARCHAR(50),
TER_ID INTEGER NOT NULL);
CREATE TABLE INCLUSAO_GRUPO (IGR_ID INTEGER NOT NULL,
PAR_ID
INTEGER NOT NULL,
LOC_ID
INTEGER NOT NULL,
PRIMARY KEY (IGR_ID));
CREATE TABLE ITEM_FISCAL (MTR_ID NUMERIC(9,
3) NOT NULL,
NEN_ID
INTEGER NOT NULL,
FOR_ID
INTEGER NOT NULL,
IFI_QTD
INTEGER NOT NULL,
IFI_NRSERIE
VARCHAR(10),
PRIMARY KEY (MTR_ID, NEN_ID, FOR_ID));
CREATE TABLE LOCALIZACAO (LOC_ID INTEGER NOT NULL,
LOC_ENDERECO VARCHAR(500) NOT NULL,
LOC_SETOR VARCHAR(20) NOT NULL,
LOC_UF VARCHAR(2),
LOC_CIDADE VARCHAR(50),
PRIMARY KEY (LOC_ID));
CREATE TABLE MANUTENCAO (MAN_ID INTEGER NOT NULL,
MAN_DTHR_ENT
DATE,
MAN_DTHR_SAIDA DATE,
SER_ID
INTEGER NOT NULL);
CREATE TABLE MATERIAL (FOR_ID INTEGER NOT NULL,
MTR_ID
INTEGER NOT NULL,
MTR_NOME VARCHAR(50) NOT NULL,
MTR_DESCRICAO VARCHAR(200) NOT NULL,
PRIMARY KEY (MTR_ID));
CREATE TABLE MATERIAL_MANUT (MAT_ID INTEGER NOT NULL,
MAT_DESC VARCHAR(50),
MAT_QTD
FLOAT,
MAT_VALOR_UNIT FLOAT,
MAT_DATAENT
DATE,
MAT_DATASAIDA DATE,
SEM_ID
INTEGER NOT NULL);
CREATE TABLE MISSAO (MIS_ID INTEGER NOT NULL,
ROT_ID
INTEGER NOT NULL,
VAG_ID
INTEGER NOT NULL,
PRIMARY KEY (MIS_ID));
CREATE TABLE MONITORAMENTO (MON_ID INTEGER NOT NULL,
MIS_ID
INTEGER NOT NULL,
MON_LAT
FLOAT,
MON_LONG
FLOAT,
MON_VEL
FLOAT,
MON_DTHR
DATE,
PRIMARY KEY (MON_ID));
CREATE TABLE NOTA_ENTRADA (NEN_ID INTEGER NOT NULL,
FOR_ID
INTEGER NOT NULL,
NEN_DATA
DATE NOT NULL,
NEN_VLRTOTAL NUMERIC(9, 2) NOT NULL,
NEN_LOTE_DESCRICAO VARCHAR(50),
NEN_LOTE_DATA_ENTRADA DATE,
PRIMARY KEY (NEN_ID, FOR_ID));
CREATE TABLE OCORRENCIA (OCO_ID INTEGER NOT NULL,
OCO_DESC VARCHAR(50),
ACV_DTHR
DATE,
OCO_STATUS
INTEGER,
SER_ID
INTEGER NOT NULL);
CREATE TABLE ORDEM_SERVICO (OSE_ID INTEGER NOT NULL,
PAR_ID
INTEGER NOT NULL,
PCI_ID
INTEGER NOT NULL,
PRIMARY KEY (OSE_ID));
CREATE TABLE PARCEIRO (PAR_ID INTEGER NOT NULL,
PAR_NOME VARCHAR(100) NOT NULL,
PAR_ENDERECO VARCHAR(100) NOT
NULL,
PAR_TELEFONE VARCHAR(50) NOT NULL,
PAR_CONTATO
VARCHAR(100) NOT NULL,
PRIMARY KEY (PAR_ID));
CREATE TABLE PARCELAMENTO (PAC_ID INTEGER NOT NULL,
CRE_ID
INTEGER NOT NULL,
PAC_VALOR INTEGER,
PAC_DATA_VENC DATE,
PAC_DATA_REC DATE,
PAC_JUROS_MULTA INTEGER,
PRIMARY KEY (PAC_ID, CRE_ID));
CREATE TABLE PEDAGIO (PED_ID INTEGER NOT NULL,
PED_VALOR
FLOAT,
PED_DTHR
DATE,
VIA_ID
INTEGER NOT NULL);
CREATE TABLE PEDIDO_CLIENTE (PCL_ID INTEGER NOT NULL,
PCL_DATA
DATE NOT NULL,
PCL_DATA_ENTREGA DATE NOT NULL,
PCL_STATUS VARCHAR(50) NOT NULL,
PCL_NF
INTEGER,
CLI_ID
INTEGER NOT NULL,
PRIMARY KEY (PCL_ID));
CREATE TABLE PEDIDO_CLIENTE_ITEM (PCI_ID INTEGER NOT
NULL,
PCL_ID
INTEGER NOT NULL,
PCI_PRECO
FLOAT NOT NULL,
PCI_GASTOSINDIRETOS FLOAT NOT NULL,
PCI_MAODEOBRA FLOAT NOT NULL,
FRE_ID
INTEGER NOT NULL,
PRO_ID
INTEGER NOT NULL,
PRIMARY KEY (PCI_ID));
CREATE TABLE PEDIDO_COMPRA (PCO_ID INTEGER NOT NULL,
PCO_DATA DATE,
PCO_DATA_ENTREGA DATE,
PCO_STATUS VARCHAR(50),
PRIMARY KEY (PCO_ID));
CREATE TABLE PEDIDO_COMPRA_ESTOQUE (EST_ID INTEGER NOT
NULL,
PCO_ID INTEGER
NOT NULL,
FOR_ID
INTEGER NOT NULL,
PCE_QTDE INTEGER,
PCE_PRECO INTEGER,
PRIMARY KEY (EST_ID, PCO_ID));
CREATE TABLE PESSOA (PES_ID INTEGER NOT NULL,
PES_NOME VARCHAR(50),
PES_END VARCHAR(100),
PES_CIDADE VARCHAR(100),
PES_TELEFONE VARCHAR(18),
PES_FLAG INTEGER,
CAP_ID INTEGER NOT NULL,
PRIMARY KEY (PES_ID));
CREATE TABLE PRODUTO (PRO_ID INTEGER NOT NULL,
PRO_VOLUME
FLOAT NOT NULL,
PRO_PESO
FLOAT NOT NULL,
PRO_VALOR
FLOAT,
PRO_TIPO VARCHAR(18),
PRO_PERFIL VARCHAR(18),
PRO_DESCRICAO VARCHAR(40),
PRIMARY KEY (PRO_ID));
CREATE TABLE RECEBIMENTO (MTR_ID NUMERIC(9,
3) NOT NULL,
NEN_ID
INTEGER NOT NULL,
FOR_ID
INTEGER NOT NULL,
REC_DATA
DATE NOT NULL,
REC_QTDE INTEGER,
REC_TIPO VARCHAR(30),
PRIMARY KEY (MTR_ID, NEN_ID, FOR_ID));
CREATE TABLE RECURSO_FISICO (REF_ID INTEGER NOT NULL,
REF_DESC VARCHAR(50),
REF_DATAENT
DATE,
REF_DATABAIXA
DATE,
PES_ID
INTEGER NOT NULL,
PRIMARY KEY (REF_ID));
CREATE TABLE REQUISICAO (REQ_ID INTEGER NOT NULL,
REQ_NOME VARCHAR(50),
REQ_DATA
DATE,
PRIMARY KEY (REQ_ID));
CREATE TABLE REQUISICAO_ESTOQUE (REQ_ID INTEGER NOT NULL,
EST_ID
INTEGER NOT NULL,
RES_QTDE
INTEGER,
PRIMARY KEY (REQ_ID, EST_ID));
CREATE TABLE
ROT_LAT
FLOAT,
ROT_LONG
FLOAT,
ROT_VEL_MAX
FLOAT,
ROT_WP
INTEGER,
VIA_ID INTEGER
NOT NULL,
PRIMARY KEY (ROT_ID));
CREATE TABLE SERVICO (SEM_ID INTEGER NOT NULL,
SEM_DESCRICAO VARCHAR(50),
SEM_VALOR FLOAT,
MAN_ID INTEGER NOT NULL,
PES_ID
INTEGER NOT NULL);
CREATE TABLE SERVICO_EST (SER_ID INTEGER NOT NULL,
SER_DESC VARCHAR(50),
SER_DATA DATE,
VAG_ID INTEGER NOT NULL,
VEI_ID
INTEGER NOT NULL,
COM_ID
INTEGER NOT NULL);
CREATE TABLE TAXA (TAX_DESC VARCHAR(10),
TAX_VALOR
FLOAT,
TAX_ID
INTEGER NOT NULL,
TAX_DATA_INC DATE,
TAX_DATA_PAG DATE,
TAX_DATA_VENC DATE,
VEI_ID
INTEGER NOT NULL,
PRIMARY KEY (TAX_ID));
CREATE TABLE TEMPO (TEM_ID INTEGER NOT NULL,
TEM_PROB_CHUVA INTEGER,
TEM_DATA DATE,
TEM_MAX INTEGER,
TEM_MIN INTEGER,
CID_ID INTEGER NOT NULL);
CREATE TABLE TERCEIRO (TER_ID INTEGER NOT NULL,
TER_NOME VARCHAR(50),
TER_CONTATO VARCHAR(50),
TER_TELEFONE VARCHAR(18));
CREATE TABLE VEICULO (VEI_ID INTEGER NOT NULL,
VEI_PLACA VARCHAR(7),
VEI_MODELO VARCHAR(50),
VEI_DATACOMPRA DATE,
VEI_PRECO FLOAT,
VEI_ANOFAB INTEGER,
FRO_ID INTEGER NOT NULL,
PRIMARY KEY (VEI_ID));
CREATE TABLE VIA (VIA_ID INTEGER NOT NULL,
CID_ID
INTEGER NOT NULL,
VIA_KM INTEGER,
PRIMARY KEY (VIA_ID));
CREATE TABLE VIAGEM (VAG_ID INTEGER NOT NULL,
VAG_DTHR_SAIDA DATE,
VEI_ID
INTEGER NOT NULL,
CID_ID
INTEGER NOT NULL,
VAG_DTHR_CHEGADA DATE,
PES_ID
INTEGER NOT NULL,
PRIMARY KEY (VAG_ID));
CREATE INDEX XIF29ARMAZEM ON ARMAZEM(CLI_ID);
CREATE INDEX XIF30ARMAZEM ON ARMAZEM(LOC_ID);
CREATE UNIQUE INDEX XPKARMAZEM ON ARMAZEM(ARM_ID);
CREATE UNIQUE INDEX XPKCLIENTE ON CLIENTE(CLI_ID);
CREATE INDEX XIF17CONTA_REC ON CONTA_REC(FAT_ID);
CREATE UNIQUE INDEX XPKCONTA_REC ON CONTA_REC(CRE_ID);
CREATE INDEX XIF58ESTOQUE ON ESTOQUE(MTR_ID);
CREATE INDEX XIF36FATURA ON FATURA(CLI_ID);
CREATE UNIQUE INDEX XPKFATURA ON FATURA(FAT_ID);
CREATE INDEX XIF18FATURA_ITEM ON FATURA_ITEM(FAT_ID);
CREATE INDEX XIF35FATURA_ITEM ON FATURA_ITEM(EST_ID);
CREATE UNIQUE INDEX XPKFATURA_ITEM ON FATURA_ITEM(FTI_ID, FAT_ID);
CREATE UNIQUE INDEX XPKFORNECEDOR ON FORNECEDOR(FOR_ID);
CREATE INDEX XIF30FRETE ON FRETE(LOC_ID_DESTINO);
CREATE INDEX XIF34FRETE ON FRETE(LOC_ID_ORIGEM);
CREATE UNIQUE INDEX XPKFRETE ON FRETE(FRE_ID);
CREATE INDEX XIF26INCLUSAO_GRUPO ON INCLUSAO_GRUPO(PAR_ID);
CREATE INDEX XIF52INCLUSAO_GRUPO ON INCLUSAO_GRUPO(LOC_ID);
CREATE UNIQUE INDEX XPKINCLUSAO_GRUPO ON INCLUSAO_GRUPO(IGR_ID);
CREATE INDEX XIF39ITEM_FISCAL ON ITEM_FISCAL(MTR_ID);
CREATE INDEX XIF40ITEM_FISCAL ON ITEM_FISCAL(NEN_ID, FOR_ID);
CREATE UNIQUE INDEX XPKITEM_FISCAL ON ITEM_FISCAL(MTR_ID, NEN_ID, FOR_ID);
CREATE UNIQUE INDEX XPKLOCALIZACAO ON LOCALIZACAO(LOC_ID);
CREATE INDEX XIF32MATERIAL ON MATERIAL(FOR_ID);
CREATE UNIQUE INDEX XPKMATERIAL ON MATERIAL(MTR_ID);
CREATE INDEX XIF38NOTA_ENTRADA ON NOTA_ENTRADA(FOR_ID);
CREATE UNIQUE INDEX XPKNOTA_ENTRADA ON NOTA_ENTRADA(NEN_ID, FOR_ID);
CREATE INDEX XIF30ORDEM_SERVICO ON ORDEM_SERVICO(PAR_ID);
CREATE INDEX XIF32ORDEM_SERVICO ON ORDEM_SERVICO(PCI_ID);
CREATE UNIQUE INDEX XPKORDEM_SERVICO ON ORDEM_SERVICO(OSE_ID);
CREATE UNIQUE INDEX XPKPARCEIRO ON PARCEIRO(PAR_ID);
CREATE INDEX XIF26PARCELAMENTO ON PARCELAMENTO(CRE_ID);
CREATE UNIQUE INDEX XPKPARCELAMENTO ON PARCELAMENTO(PAC_ID, CRE_ID);
CREATE INDEX XIF29PEDIDO_CLIENTE ON PEDIDO_CLIENTE(CLI_ID);
CREATE UNIQUE INDEX XPKPEDIDO_CLIENTE ON PEDIDO_CLIENTE(PCL_ID);
CREATE INDEX XIF18PEDIDO_CLIENTE_ITEM ON PEDIDO_CLIENTE_ITEM(FRE_ID);
CREATE INDEX XIF5PEDIDO_CLIENTE_ITEM ON PEDIDO_CLIENTE_ITEM(PCL_ID);
CREATE UNIQUE INDEX XPKPEDIDO_CLIENTE_ITEM ON PEDIDO_CLIENTE_ITEM(PCI_ID);
CREATE UNIQUE INDEX XPKPEDIDO_COMPRA ON PEDIDO_COMPRA(PCO_ID);
CREATE INDEX XIF27PEDIDO_COMPRA_ESTOQUE ON PEDIDO_COMPRA_ESTOQUE(PCO_ID);
CREATE INDEX XIF30PEDIDO_COMPRA_ESTOQUE ON PEDIDO_COMPRA_ESTOQUE(EST_ID);
CREATE INDEX XIF47PEDIDO_COMPRA_ESTOQUE ON PEDIDO_COMPRA_ESTOQUE(FOR_ID);
CREATE UNIQUE INDEX XPKPEDIDO_COMPRA_ESTOQUE ON PEDIDO_COMPRA_ESTOQUE(EST_ID, PCO_ID);
CREATE UNIQUE INDEX XPKRECEBIMENTO ON RECEBIMENTO(MTR_ID, NEN_ID, FOR_ID);
CREATE UNIQUE INDEX XPKREQUISICAO ON REQUISICAO(REQ_ID);
CREATE INDEX XIF23REQUISICAO_ESTOQUE ON REQUISICAO_ESTOQUE(REQ_ID);
CREATE INDEX XIF24REQUISICAO_ESTOQUE ON REQUISICAO_ESTOQUE(EST_ID);
CREATE UNIQUE INDEX XPKREQUISICAO_ESTOQUE ON
REQUISICAO_ESTOQUE(REQ_ID, EST_ID);
ALTER TABLE VIAGEM ADD FOREIGN KEY (CID_ID) REFERENCES
CIDADE(CID_ID);
ALTER TABLE VIAGEM ADD FOREIGN KEY (VEI_ID) REFERENCES
VEICULO(VEI_ID);
ALTER TABLE MISSAO ADD FOREIGN KEY (ROT_ID) REFERENCES
ALTER TABLE MISSAO ADD FOREIGN KEY (VAG_ID) REFERENCES
VIAGEM(VAG_ID);
ALTER TABLE MONITORAMENTO ADD FOREIGN KEY (MIS_ID)
REFERENCES MISSAO(MIS_ID);
ALTER TABLE CARGA ADD FOREIGN KEY (OSE_ID) REFERENCES
ORDEM_SERVICO(OSE_ID);
ALTER TABLE VIA ADD FOREIGN KEY (CID_ID) REFERENCES CIDADE(CID_ID);
ALTER TABLE
ALTER TABLE CARGA ADD FOREIGN KEY (PRO_ID) REFERENCES PRODUTO(PRO_ID);
ALTER TABLE ENTREGA ADD FOREIGN KEY (VAG_ID)
REFERENCES VIAGEM(VAG_ID);
ALTER TABLE ENTREGA ADD FOREIGN KEY (CAR_ID)
REFERENCES CARGA(CAR_ID);
ALTER TABLE ENTREGA ADD FOREIGN KEY (DES_ID)
REFERENCES DESTINATARIO(DES_ID);
ALTER TABLE COMUNICACAO ADD FOREIGN KEY (MIS_ID)
REFERENCES MISSAO(MIS_ID);
ALTER TABLE RECURSO_FISICO ADD FOREIGN KEY (PES_ID)
REFERENCES PESSOA(PES_ID);
ALTER TABLE VIAGEM ADD FOREIGN KEY (PES_ID) REFERENCES
PESSOA(PES_ID);
ALTER TABLE CARGA ADD FOREIGN KEY (PCI_ID) REFERENCES
PEDIDO_CLIENTE_ITEM(PCI_ID);
ALTER TABLE PEDIDO_CLIENTE_ITEM ADD FOREIGN KEY
(PRO_ID) REFERENCES PRODUTO(PRO_ID);
ALTER TABLE ESTOQUE ADD FOREIGN KEY (MTR_ID)
REFERENCES MATERIAL(MTR_ID);
ALTER TABLE ARMAZEM ADD FOREIGN KEY (LOC_ID)
REFERENCES LOCALIZACAO(LOC_ID);
ALTER TABLE ARMAZEM ADD FOREIGN KEY (CLI_ID)
REFERENCES CLIENTE(CLI_ID);
ALTER TABLE CONTA_REC ADD FOREIGN KEY (FAT_ID)
REFERENCES FATURA(FAT_ID);
ALTER TABLE FATURA ADD FOREIGN KEY (CLI_ID) REFERENCES
CLIENTE(CLI_ID);
ALTER TABLE FATURA_ITEM ADD FOREIGN KEY (FAT_ID)
REFERENCES FATURA(FAT_ID);
ALTER TABLE FRETE ADD FOREIGN KEY (LOC_ID_DESTINO)
REFERENCES LOCALIZACAO(LOC_ID);
ALTER TABLE FRETE ADD FOREIGN KEY (LOC_ID_ORIGEM)
REFERENCES LOCALIZACAO(LOC_ID);
ALTER TABLE INCLUSAO_GRUPO ADD FOREIGN KEY (LOC_ID)
REFERENCES LOCALIZACAO(LOC_ID);
ALTER TABLE INCLUSAO_GRUPO ADD FOREIGN KEY (PAR_ID)
REFERENCES PARCEIRO(PAR_ID);
ALTER TABLE NOTA_ENTRADA ADD FOREIGN KEY (FOR_ID)
REFERENCES FORNECEDOR(FOR_ID);
ALTER TABLE ORDEM_SERVICO ADD FOREIGN KEY (PCI_ID)
REFERENCES PEDIDO_CLIENTE_ITEM(PCI_ID);
ALTER TABLE ORDEM_SERVICO ADD FOREIGN KEY (PAR_ID)
REFERENCES PARCEIRO(PAR_ID);
ALTER TABLE PARCELAMENTO ADD FOREIGN KEY (CRE_ID)
REFERENCES CONTA_REC(CRE_ID);
ALTER TABLE PEDIDO_CLIENTE ADD FOREIGN KEY (CLI_ID)
REFERENCES CLIENTE(CLI_ID);
ALTER TABLE PEDIDO_CLIENTE_ITEM ADD FOREIGN KEY
(FRE_ID) REFERENCES FRETE(FRE_ID);
ALTER TABLE PEDIDO_CLIENTE_ITEM ADD FOREIGN KEY
(PCL_ID) REFERENCES PEDIDO_CLIENTE(PCL_ID);
ALTER TABLE PEDIDO_COMPRA_ESTOQUE ADD FOREIGN KEY (FOR_ID)
REFERENCES FORNECEDOR(FOR_ID);
ALTER TABLE PEDIDO_COMPRA_ESTOQUE ADD FOREIGN KEY
(EST_ID) REFERENCES ESTOQUE(EST_ID);
ALTER TABLE PEDIDO_COMPRA_ESTOQUE ADD FOREIGN KEY (PCO_ID) REFERENCES PEDIDO_COMPRA(PCO_ID);
ALTER TABLE MATERIAL ADD FOREIGN KEY (FOR_ID)
REFERENCES FORNECEDOR(FOR_ID);
ALTER TABLE REQUISICAO_ESTOQUE ADD FOREIGN KEY
(EST_ID) REFERENCES ESTOQUE(EST_ID);
ALTER TABLE REQUISICAO_ESTOQUE ADD FOREIGN KEY
(REQ_ID) REFERENCES REQUISICAO(REQ_ID);
ALTER TABLE ITEM_FISCAL ADD FOREIGN KEY (NEN_ID,
FOR_ID) REFERENCES NOTA_ENTRADA(NEN_ID, FOR_ID);
ALTER TABLE ITEM_FISCAL ADD FOREIGN KEY (MTR_ID)
REFERENCES MATERIAL(MTR_ID);
ALTER TABLE RECEBIMENTO ADD FOREIGN KEY (MTR_ID,
NEN_ID, FOR_ID) REFERENCES ITEM_FISCAL(MTR_ID, NEN_ID,
FOR_ID);
ALTER TABLE ESTOQUE ADD FOREIGN KEY (MTR_ID)
REFERENCES MATERIAL(MTR_ID);
ALTER TABLE ITEM_FISCAL ADD FOREIGN KEY (MTR_ID)
REFERENCES MATERIAL(MTR_ID);
Consulta -7
Qual a viagem e a ordem de serviço no qual o veiculo sofreu manutenção. Este caso é usado para responsábilizar o cliente pela quebra do veiculo.

select viagem.vag_id,
servico.sem_descricao,manutencao.man_dthr_ent,
manutencao.man_dthr_saida,servico_est.ser_desc,
veiculo.vei_placa,veiculo.vei_modelo,OSE_ID,PAR_ID,PCI_ID
from servico,manutencao,
servico_est, veiculo,viagem,entrega,carga,ordem_servico
where servico.man_id=manutencao.man_id
and servico_est.com_id=manutencao.ser_id
and servico_est.vei_id=veiculo.vei_id
and viagem.vag_id=servico_est.vag_id
and viagem.vag_id=entrega.ent_id
and entrega.car_id=carga.car_id
and ordem_servico.ose_id=carga.ose_id
Consulta -8
Qual o produto transportado no qual o veiculo sofreu manutenção em viagem, e o valor dele? Esta consulta é importante ser efeutada quando o produto é perecível e o veiculo precisa de manutenção.

select viagem.vag_id,
servico.sem_descricao,manutencao.man_dthr_ent,
manutencao.man_dthr_saida,servico_est.ser_desc,
veiculo.vei_placa,veiculo.vei_modelo,OSE_ID,PAR_ID,PCI_ID,pedido_cliente_item.pci_preco,pedido_cliente_item.PCI_GASTOSINDIRETOS,
produto.pro_descricao
from servico,manutencao,
servico_est, veiculo,viagem,entrega,carga,ordem_servico,
produto,pedido_cliente_item
where servico.man_id=manutencao.man_id
and servico_est.com_id=manutencao.ser_id
and servico_est.vei_id=veiculo.vei_id
and viagem.vag_id=servico_est.vag_id
and viagem.vag_id=entrega.ent_id
and entrega.car_id=carga.car_id
and ordem_servico.ose_id=carga.ose_id
and carga.pro_id=produto.pro_id
and
pedido_cliente_item.pro_id = produto.pro_id