Você está na página 1de 4

Ela atende a dois mercados, o das pessoas físicas e o das pessoas jurídicas.

/* Para cada pessoa física é necessário conhecer seu nome, sexo, data de
nascimento, endereço e CIC. */
CREATE TABLE `cliente_fisico` (
`id_cliente` varchar(255) NOT NULL,
`nome_cliente` varchar(255) NOT NULL,
`sexo` varchar(255) NOT NULL,
`data_nasc` varchar(255) NOT NULL,
`endereco` varchar(255) NOT NULL,
`cpf` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ALTER TABLE `cliente_fisico` DROP `id_cliente`;

/* Já para as pessoas jurídicas é necessário conhecer seu nome, CGC, inscrição


estadual e endereço. */
CREATE TABLE `cliente_cnpj` (
`nome_cnpj` varchar(255) NOT NULL,
`cnpj` varchar(255) NOT NULL,
`insc_estadual` varchar(255) NOT NULL,
`endereco` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

/* Os veículos são classificados por uma tabela de classificação */

CREATE TABLE `tabela_veiculo` (


`id_veiculo` varchar(255) NOT NULL, # p3/g4 #
`marca` varchar(255) NOT NULL, #
fiat/wolkswagem/chevrolet/ford/importados #
`tipo` varchar(255) NOT NULL, # passeio/ carga #
`n_passageiros` varchar(255) NOT NULL, # 2/5/7 #
`tamanho` varchar(255) NOT NULL, # pegueno/medio/grande #
`acessorios` varchar(255) NOT NULL, # ar-cond,rádio,toca-fitas,CD,direção
hidráulica,câmbio aut.#
`portas` varchar(255) NOT NULL # o número de portas #
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ALTER TABLE `tabela_veiculo` DROP `tipo`;

/* Os veículos são classificados por uma tabela de tipos.


Por exemplo:
P3 corresponde a automóveis pequenos, de quatro portas e com ar-condicionado (Uno,
Palio, etc.)
e
G4 a grandes automóveis de luxo (Omega ou similar). */

CREATE TABLE `tipo_veiculo` (


`id_tipo` varchar(255) NOT NULL,
`tipo_passeio` varchar(255) NOT NULL,
`tipo_luxo` varchar(255) NOT NULL,
`tipo_carga` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

/* Os veículos são classificados por uma tabela de carga. */

CREATE TABLE `carga_veiculo` (


`id_carga` varchar(255) NOT NULL,
`carga_1` varchar(255) NOT NULL,
`carga_2` varchar(255) NOT NULL,
`carga_2` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

/* Em um momento no tempo, um veículo encontra-se sob responsabilidade de uma


filial. */
CREATE TABLE `filial` (
`id_filial` varchar(255) NOT NULL, # 01..#
`nome_filial` varchar(255) NOT NULL, # locadora beatriz #
`cidade_filial` varchar(255) NOT NULL, # coritiba #
`entrada` varchar(255) NOT NULL, # 01.01.2022 #
`saida` varchar(255) NOT NULL, # 01.02.2022 #
`manutencao` varchar(255) NOT NULL # 28 dias #
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

/* Um veículo é identificado pela sua placa; Além disso, é necessário conhecer o


número do chassis, o número do motor, o tipo de veículo e a cor de cada veículo. */

CREATE TABLE `veiculo` (


`id_placa` varchar(255) NOT NULL, # JMA 6X78 #
`chassis` varchar(255) NOT NULL, # 99876503345678 #
`num_motor` varchar(255) NOT NULL, # 1z2x3c4v5b6nyy #
`tipo` varchar(255) NOT NULL # passeio/ carga #
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

/* O sistema em computador deverá registrar:


a) os veículos disponíveis em determinada filial na data corrente,
b) as reservas para veículos em uma filial, com previsão de que veículos estarão
disponíveis em uma data futura,
c) os veículos presentemente alugados pela filial, o ponto de entrega (caso seja
diferente do de locação) e data de entrega prevista. */

CREATE TABLE `reserva` (


`id_reserva` varchar(255) NOT NULL, /*
`cnpj_cliente` varchar(255) NOT NULL, /* conecta com a chave
primariaa ID_nome_cnpj */
`cpf_cliente` varchar(255) NOT NULL, /* conecta com a chave
primaria ID_cliente */
`filiais` varchar(255) NOT NULL, /* conecta com a
chave primaria ID_filial */
`tipos` varchar(255) NOT NULL, /* conecta com a
chave estrangeira tipo */
`placas` varchar(255) NOT NULL, /* conecta com a chave
primaria ID_placa */
`data_reserva`varchar(255) NOT NULL, /* conecta com a chave
estrangeira saida */
`entrega_reserva`varchar(255) NOT NULL, /* conecta com a chave
estrangeira entrada */
`veiculo_disponivel` varchar(255) NOT NULL /* conecta com a chave
estrangeira manutencao */
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

/* chaves primarias */

ALTER TABLE `cliente_cnpj`ADD PRIMARY KEY (`cnpj`);


ALTER TABLE `cliente_fisico`ADD PRIMARY KEY (`cpf`);
ALTER TABLE `filial`ADD PRIMARY KEY (`id_filial`);
ALTER TABLE `reserva`ADD PRIMARY KEY (`id_reserva`);
ALTER TABLE `tabela_veiculo`ADD PRIMARY KEY (`id_veiculo`);
ALTER TABLE `veiculo`ADD PRIMARY KEY (`id_placa`);
ALTER TABLE `tipo_veiculo`ADD PRIMARY KEY (`id_tipo`);
ALTER TABLE `carga_veiculo`ADD PRIMARY KEY (`id_carga`);

/* chaves estrangeiras */

ALTER TABLE `reserva`


ADD KEY `fk_cnpj_cliente` (`cnpj_cliente`),
ADD KEY `fk_cpf_cliente` (`cpf_cliente`),
ADD KEY `fk_filiais` (`filiais`),
ADD KEY `fk_placas` (`placas`),
ADD KEY `fk_tipos` (`tipos`),
ADD KEY `fk_veiculo_disponivel` (`veiculo_disponivel`);

/* relacionamento entre atributos */

ALTER TABLE `reserva`


ADD CONSTRAINT `fk_cnpj_cliente` FOREIGN KEY (`cnpj_cliente`) REFERENCES
`cliente_cnpj` (`cnpj`);
ALTER TABLE `reserva`
ADD CONSTRAINT `fk_cpf_cliente` FOREIGN KEY (`cpf_cliente`) REFERENCES
`cliente_fisico` (`cpf`);
ALTER TABLE `reserva`
ADD CONSTRAINT `fk_filiais` FOREIGN KEY (`filiais`) REFERENCES `filial`
(`id_filial`);
ALTER TABLE `reserva`
ADD CONSTRAINT `fk_veiculo_disponivel` FOREIGN KEY (`veiculo_disponivel`)
REFERENCES `tabela_veiculo` (`id_veiculo`);
ALTER TABLE `reserva`
ADD CONSTRAINT `fk_placas` FOREIGN KEY (`placas`) REFERENCES `veiculo`
(`id_placas`);
ALTER TABLE `reserva`ADD CONSTRAINT `fk_tipos` FOREIGN KEY (`tipos`) REFERENCES
`tipo_veiculo` (`id_tipo`);
ALTER TABLE `tipo_veiculo`ADD CONSTRAINT `fk_tipo_carga` FOREIGN KEY
(`tipo_carga`) REFERENCES `carga_veiculo` (`id_carga`);

/* insercao das empresas na tabela cliente_cnpj */


INSERT INTO `cliente_cnpj`(`cnpj`, `nome_cnpj`, `insc_estadual`, `endereco`) VALUES
('10020030055','Perfumaria Jasmime','123456789','rua jardim do mar,50-Jardim
Paulista-57.001-400, Jacupira-Jundiai'),
('10020030066','trama tecidos','123456710','rua jardim meresias,50-Jardim Paulista-
57.001-500, Jacarei-Jundiai'),
('10020030077','Humanus Informatica','123456711','rua jardim mar alto,100-Jardim
Paulista-57.001-500, Jeriquaquara-Jundiai'),
('10020030088','funeraria descanso feliz','123456712','rua jardim lua cheia,150-
Jardim Paulista-57.001-500, Jipiapa-Jundiai'),
('10020030099','viagens va longe','123456713','rua jardim do mar,200-Jardim
horizonte-57.001-500, Jurere-Jundiai');

/* insercao das clientes na tabela cliente_fisico */


INSERT INTO `cliente_fisico`(`cpf`, `nome_cliente`, `sexo`, `data_nasc`,
`endereco`) VALUES
('10020050001','Jasmine junqueira','feminino','23-04-1966','rua jardim campo
belo,555-Jardim Paulistano-57.001-444, São Paulo-SP'),
('10020050002','Jamile jardim','feminino','23-05-1967','rua jardim espelhado,600-
Jardim campestre-57.001-555, São Paulo-SP'),
('10020050003','Jade jardel','feminino','23-06-1968','rua jardim encantado,755-
Jardim italiano-57.001-660, São Paulo-SP'),
('10020050004','Jucy jacinta','feminino','23-07-1969','rua jardim campo
elisios,865-Jardim florenca-57.001-770, São Paulo-SP'),
('10020050005','Jocelia jasmim','feminino','23-08-1970','rua jardim esperanca,99-
Jardim natividade-57.001-890, São Paulo-SP');

/* insercao das filiais na tabela filiais */


INSERT INTO `filial`(`id_filial`, `nome_filial`, `cidade_filial`, `entrada`,
`saida`, `manutencao`) VALUES
('01','rentcar floripa','florianopolis','01.01.2022','31.01.2022','28 dias'),
('02','rentcar citrix','curitiba','01.02.2022','31.02.2022','28 dias'),
('03','rentcar Aumax','itajai','01.03.2022','31.03.2022','28 dias'),
('04','rentcar gramaldina','gramado','01.04.2022','31.04.2022','28 dias'),
('05','rentcar camboja','camburiu','01.05.2022','31.05.2022','28 dias'),
('06','rentcar blablabla','blumenau','01.06.2022','31.05.2022','28 dias'),
('07','rentcar pelicano','pelotas','01.07.2022','31.07.2022','28 dias'),
('08','rentcar jardim','joinville','01.08.2022','31.08.2022','28 dias'),
('09','rentcar cantares','canela','01.09.2022','31.09.2022','28 dias'),
('10','rentcar marina','maringa','01.10.2022','31.10.2022','28 dias');

/* inserçao de valores da tabela carga_veiculo */


INSERT INTO `carga_veiculo`(`id_carga`, `carga_1`, `carga_2`, `carga_3`) VALUES
('01','1000','3000','5000');

ALTER TABLE `tabela_veiculo`ADD PRIMARY KEY (`tipo`),


ADD KEY `fk_tipos`FOREIGN KEY (`tipos`)REFERENCES `tabela_veiculo`(`tipo`);

Você também pode gostar