Regla de negocio:
Una Empresa de Radio Taxis “Escorpio” desea que Ud. diseñe
una Base de datos que permita manejar la información relacionada con la gestión
de su negocio. La empresa cuenta con una
flota de taxis, los cuales son identificados por un patente, marca, modelo, año y si posee su revisión técnica al día o no.
Un chófer conduce un vehículo (Taxi). Los
chóferes de la empresa son identificados con un número único y además nos interesa registrar su Rut, Nombre, apellido y edad, esto con el fin de tener la identidad completa del chófer, por otra parte tenemos diferentes clientes que prefieren nuestra empresa, para tomar nuestros servicios necesitamos los siguientes datos de un cliente: nombre, rut, apellido, edad y que tipo de convenio posee con nuestra empresa (ejm: Frecuente, Carrera), y también saber en que fecha requerirán un móvil, el lugar de origen y destino al que se dirigirá
Para mas información Diccionario de Datos mas Scrip
https://www.dropbox.com/sh/sab779qgainwq34/i9kD3-V0k-?n=147404406
Modelo Logico
Modelo Relacional
Reglas de Negocio:
Script DLL:
Script:
-- ELIMINA TABLAS (ESTO ESTA HECHO A MANO)
DROP TABLE Chofer CASCADE CONSTRAINT;
DROP TABLE Cliente CASCADE CONSTRAINT;
DROP TABLE TipoConvenio CASCADE CONSTRAINT;
DROP TABLE SolicituVehiculo CASCADE CONSTRAINT;
DROP TABLE vehiculo CASCADE CONSTRAINT;
--CREA TABLAS
CREATE TABLE Chofer
(
IdChofer INTEGER NOT NULL ,
Nombre VARCHAR2 (30) NOT NULL ,
IdVehiculo INTEGER NOT NULL ,
Rut VARCHAR2 (20) NOT NULL ,
Apellido VARCHAR2 (20) NOT NULL ,
Edad INTEGER
)
;
CREATE UNIQUE INDEX Chofer__IDX ON Chofer
(
IdVehiculo ASC
)
;
-- Error - Index Chofer__IDXv1 has no columns
ALTER TABLE Chofer
ADD CONSTRAINT "Chofer PK" PRIMARY KEY ( IdChofer ) ;
CREATE TABLE Cliente
(
IdCliente INTEGER NOT NULL ,
Rut VARCHAR2 (10) NOT NULL ,
Nombre VARCHAR2 (20) NOT NULL ,
Apellido VARCHAR2 (20) NOT NULL ,
IdTipoConvenio INTEGER ,
Edad INTEGER
)
;
-- Error - Index Cliente__IDX has no columns
ALTER TABLE Cliente
ADD CONSTRAINT "Cliente PK" PRIMARY KEY ( IdCliente ) ;
CREATE TABLE SolicituVehiculo
(
IdSolicitud INTEGER NOT NULL ,
FechaSolicitud DATE NOT NULL ,
Origen VARCHAR2 (30) NOT NULL ,
Destino VARCHAR2 (30) NOT NULL ,
Precio NUMBER ,
IdChofer INTEGER NOT NULL ,
IdCliente INTEGER NOT NULL
)
;
-- Error - Index SolicituVehiculo__IDX has no columns
-- Error - Index SolicituVehiculo__IDXv1 has no columns
CREATE UNIQUE INDEX SolicituVehiculo__IDXv2 ON SolicituVehiculo
(
IdChofer ASC
)
;
CREATE UNIQUE INDEX SolicituVehiculo__IDXv3 ON SolicituVehiculo
(
IdCliente ASC
)
;
ALTER TABLE SolicituVehiculo
ADD CONSTRAINT "SolicituVehiculo PK" PRIMARY KEY ( IdSolicitud ) ;
CREATE TABLE TipoConvenio
(
IdTipoConvenio INTEGER NOT NULL ,
NombreConvenio VARCHAR2 (20) NOT NULL ,
FechaInicio DATE ,
FechaFin DATE ,
PrecioDescuento INTEGER
)
;
ALTER TABLE TipoConvenio
ADD CONSTRAINT "TipoConvenio PK" PRIMARY KEY ( IdTipoConvenio ) ;
CREATE TABLE vehiculo
(
IdVehiculo INTEGER NOT NULL ,
patente VARCHAR2 (20) NOT NULL ,
Año INTEGER NOT NULL ,
Modelo VARCHAR2 (20) ,
EstadoRevision CHAR (1) NOT NULL
)
;
-- Error - Index vehiculo__IDX has no columns
ALTER TABLE vehiculo
ADD CONSTRAINT "vehiculo PK" PRIMARY KEY ( IdVehiculo ) ;
ALTER TABLE Chofer
ADD CONSTRAINT Maneja FOREIGN KEY
(
IdVehiculo
)
REFERENCES vehiculo
(
IdVehiculo
)
;
ALTER TABLE SolicituVehiculo
ADD CONSTRAINT Tiene FOREIGN KEY
(
IdCliente
)
REFERENCES Cliente
(
IdCliente
)
;
ALTER TABLE Cliente
ADD CONSTRAINT "Tiene convenio" FOREIGN KEY
(
IdTipoConvenio
)
REFERENCES TipoConvenio
(
IdTipoConvenio
)
;
ALTER TABLE SolicituVehiculo
ADD CONSTRAINT asiga FOREIGN KEY
(
IdChofer
)
REFERENCES Chofer
(
IdChofer
)
;
insert into TipoConvenio values (1,'frecuente',to_date('02/04/2013','dd/mm/yyyy'),to_date('02/04/2013','dd/mm/yyyy'),2000);
insert into TipoConvenio values (2,'carrera',to_date('02/04/2013','dd/mm/yyyy'),to_date('02/04/2013','dd/mm/yyyy'),2500);
INSERT INTO vehiculo VALUES(1,'MG-193',2012,'SUSUKI',1);
INSERT INTO vehiculo VALUES(2,'MG-194',2012,'CHEVROLET',1);
INSERT INTO vehiculo VALUES(3,'MG-195',2012,'MERCEDEZ',1);
INSERT INTO chofer VALUES(1,'Mariela',1,'1-9','Fuentealba',24);
INSERT INTO chofer VALUES(2,'Milo',3,'1-k','Oyanedel',24);
INSERT INTO chofer VALUES(3,'Mariela',2,'1-2','Duran',22);
INSERT INTO cliente values(1,'1-2','Juean','Perez',1,26);
INSERT INTO cliente values(2,'1-3','Ana','Reyes',2,44);
INSERT INTO cliente values(3,'1-5','Luis','Muñoz',2,21);
INSERT INTO cliente values(4,'1-8','Pedro','Martinez',1,89);
INSERT INTO solicituvehiculo values(1,to_date('02/04/2013','dd/mm/yyyy'),'Rancagua','Santiago',21000,3,4);
INSERT INTO solicituvehiculo values(2,to_date('22/07/2013','dd/mm/yyyy'),'Santiago','Peñalolen',5000,2,1);
INSERT INTO solicituvehiculo values(3,to_date('12/09/2013','dd/mm/yyyy'),'Valparaiso','Santiago',24000,1,3);
select * from TipoConvenio;
select * from vehiculo;
select * from chofer;
select * from cliente;
select * from solicituvehiculo;