lunes, 4 de noviembre de 2013

Proyecto Semestral Parte 1

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;