Está en la página 1de 23

PORTADA

Imagen Modelo Relaciona fase 3


Diseño del Script para Lenguaje de Definición de Datos (Data
Description Language DDL) con el Lenguaje SQL (Structured
Query Language) para crear la base de datos, tablas y los
respectivos campos de acuerdo con el diccionario de datos
creado.
NOTA: aquí pega los scripts DDL (no imágenes, solo el texto)
Creación de tablas:

CREATE TABLE MARCA(


REFERENCIA VARCHAR2(20) not null,
TIPO VARCHAR2(20) not null,
MARCA VARCHAR2(20) not null,
NOMBRE VARCHAR2(30) not null,
CONSTRAINT MARCA_PK PRIMARY KEY (REFERENCIA)
);

CREATE TABLE VEHICULO(


ID_VEHICULO INTEGER NOT NULL,
MARCA VARCHAR2(20) NOT NULL,
MATRICULA VARCHAR2(10) NOT NULL,
MODELO VARCHAR2(10) NOT NULL,
COLOR VARCHAR2(10),
TIPO_COMBUSTIBLE VARCHAR2(30) NOT NULL,
FECHA_INGRESO DATE NOT NULL,
HORA_INGRESO VARCHAR2(10),
FECHA_ENTREGA DATE NOT NULL,
TIPO_VEHICULO VARCHAR2(20) NOT NULL,
CONSTRAINT VEHICULO_PK PRIMARY KEY (ID_VEHICULO)
);

CREATE TABLE ADMINISTRACION(


ID_AMD INTEGER NOT NULL,
NOMBRE_1 VARCHAR2(30) NOT NULL,
NOMBRE_2 VARCHAR2(30) NOT NULL,
APELLIDO_P VARCHAR2(30) NOT NULL,
APELLIDO_M VARCHAR2(30),
INGRESOS NUMBER NOT NULL,
EGRESOS NUMBER NOT NULL,
TELEFONO_MOVIL NUMBER NOT NULL,
TELEFONO_FIJO NUMBER,
CORREO VARCHAR2(30),
CONSTRAINT ADMINISTRACION_PK PRIMARY KEY (ID_AMD)

);

CREATE TABLE CLIENTE(


BARRIOLOCALIDAD VARCHAR2(30),
ID_CLIENTE INTEGER NOT NULL UNIQUE,
NOMBRE_1 VARCHAR2(30) NOT NULL,
NOMBRE_2 VARCHAR2(30),
APELLIDO_P VARCHAR2(30) NOT NULL,
APELLIDO_M VARCHAR2(30) ,
EDAD NUMBER(3),
DIRECCION VARCHAR2(30) NOT NULL,
BARRIOLOCALIDAD1 VARCHAR2(30),
TELEFONO_FIJO NUMBER(10,2),
TELEFONO_MOVIL NUMBER(10,2) NOT NULL,
CORREO_ELECTRONICO VARCHAR2(30),
RH VARCHAR2(3),
EPS VARCHAR2(20),
CONSTRAINT CLIENTE_PK PRIMARY KEY (BARRIOLOCALIDAD)
);

CREATE TABLE MECANICO(


BARRIOLOCALIDAD VARCHAR2(30) NOT NULL,
ID_MECANICO INTEGER NOT NULL unique,
CODIGO INTEGER NOT NULL,
NOMBRE_1 VARCHAR2(30) NOT NULL,
NOMBRE_2 VARCHAR2(30),
APELLIDO_P VARCHAR2(20) NOT NULL,
APELLIDO_M VARCHAR2(30),
DIRECCION VARCHAR2(30) NOT NULL,
BARRIOLOCALIDAD1 VARCHAR2(30) NOT NULL,
TELEFONO_FIJO NUMERIC(10,2),
TELEFONO_MOVIL NUMERIC(10,2) NOT NULL,
ESPECIALIDAD VARCHAR2(30) NOT NULL,
CORREO_ELECTRONICO VARCHAR2(30) NOT NULL,
ADMINISTRACION_ID_AMD INTEGER NOT NULL,
INF_RECIDEN_BARRIOLOCALIDAD VARCHAR2(30) NOT NULL,
CONSTRAINT MECANICO_PK PRIMARY KEY (BARRIOLOCALIDAD)
);

CREATE TABLE REPUESTO(


TIPO VARCHAR2(20) NOT NULL,
MARCA VARCHAR2(20) NOT NULL,
REFERENCIA VARCHAR2(20) NOT NULL,
PRECIO_UNITARIO INTEGER NOT NULL,
MECANICO_ID_MECANICO INTEGER NOT NULL,
CONSTRAINT REPUESTO_PK PRIMARY KEY (TIPO)
);

CREATE TABLE FACTURA (


NUMERO_FACTURA INTEGER NOT NULL,
FECHA_INGRESO DATE NOT NULL,
HORA_INGRESO VARCHAR2(10),
FECHA_ENTREGA DATE NOT NULL,
ID_CLIENTE INTEGER NOT NULL,
NOMBRES VARCHAR2(30) NOT NULL,
APELLIDOS VARCHAR2(30) NOT NULL,
MATRICULA VARCHAR2(10) NOT NULL,
TELEFONO_FIJO NUMBER,
TELEFONO_MOVIL NUMBER,
DESCRIPCION VARCHAR2(30) NOT NULL,
TIPO_REPUESTO VARCHAR2(20),
VALOR_UNITARIO INTEGER NOT NULL,
VALOR_TOTAL INTEGER NOT NULL,
VEHICULO_ID_VEHICULO INTEGER NOT NULL,
ADMINISTRACION_ID_AMD INTEGER NOT NULL,
CLIENTE_ID_CLIENTE INTEGER NOT NULL,
CONSTRAINT FACTURA_PK PRIMARY KEY (NUMERO_FACTURA)
);

------TABLS COMPUESTS
CREATE TABLE VEHICULO_MECANICO(
VEHICULO_ID_VEHICULO INTEGER NOT NULL,
MECANICO_BARRIOLOCALIDAD VARCHAR(20) NOT NULL,
CONSTRAINT VEHICULO_MECANICO_PK PRIMARY KEY
(VEHICULO_ID_VEHICULO,MECANICO_BARRIOLOCALIDAD)
);

CREATE TABLE REPUESTO_FACTURA(


FACTURA_NUMERO_FACTURA INTEGER NOT NULL,
REPUESTO_TIPO VARCHAR(20) NOT NULL,
CONSTRAINT REPUESTO_FACTURA_PK PRIMARY KEY
(FACTURA_NUMERO_FACTURA,REPUESTO_TIPO)

);

CREATE TABLE VEHICULO_MARCA(


MARCA_REFERENCIA VARCHAR2(20) NOT NULL,
VEHICULO_ID_VEHICULO INTEGER NOT NULL,
CONSTRAINT VEHICULO_MARCA_PK PRIMARY KEY
(MARCA_REFERENCIA,VEHICULO_ID_VEHICULO)

);

CREATE TABLE CLIENTE_MECANICO(


MECANICO_BARRIOLOCALIDAD VARCHAR2(20) NOT NULL,
CLIENTE_BARRIOLOCALIDAD VARCHAR2(30) NOT NULL,
CONSTRAINT CLIENTE_MECANICO_PK PRIMARY KEY
(MECANICO_BARRIOLOCALIDAD,CLIENTE_BARRIOLOCALIDAD)
);

CREATE TABLE CLIENTE_MECANICOv1(


INF_RECIDEN_BARRIOLOCALIDAD VARCHAR2(30) NOT NULL,
CLIENTE_BARRIOLOCALIDAD VARCHAR2(30) NOT NULL,
CONSTRAINT CLIENTE_MECANICOv1_PK PRIMARY KEY
(INF_RECIDEN_BARRIOLOCALIDAD,CLIENTE_BARRIOLOCALIDAD)

);

CREATE TABLE CLIENETE_VEHICULO(


CLIENTE_BARRIOLOCALIDAD VARCHAR2(30) NOT NULL,
VEHICULO_ID_VEHICULO INTEGER NOT NULL,
CONSTRAINT CLIENETE_VEHICULO_PK PRIMARY KEY
(CLIENTE_BARRIOLOCALIDAD,VEHICULO_ID_VEHICULO)

);

CREATE TABLE MARCA_REPUESTO(


MARCA_REFERENCIA VARCHAR2(20) not null,
REPUESTO_TIPO VARCHAR2(20) not null,
CONSTRAINT MARCA_REPUESTO_PK PRIMARY KEY (MARCA_REFERENCIA,REPUESTO_TIPO)

);

CREATE TABLE INF_RECIDENCIAL(


BARRIOLOCALIDAD VARCHAR2(30) NOT NULL,
NOMBRE VARCHAR2(30) NOT NULL,
DIRECCION VARCHAR2(20) NOT NULL,
COD_POSTAL VARCHAR2(10) NOT NULL,
INF_RECIDEN_BARRIOLOCALIDAD VARCHAR2(30),
CLIENTE_BARRIOLOCALIDAD VARCHAR2(30),
MECANICO_BARRIOLOCALIDAD VARCHAR2(30),
CONSTRAINT frack_2 CHECK(((CLIENTE_BARRIOLOCALIDAD IS NOT NULL
AND (MECANICO_BARRIOLOCALIDAD IS NULL))
OR((CLIENTE_BARRIOLOCALIDAD IS NOT NULL)
AND (MECANICO_BARRIOLOCALIDAD IS NULL))
OR (CLIENTE_BARRIOLOCALIDAD IS NULL)
AND (MECANICO_BARRIOLOCALIDAD IS NULL))),
CONSTRAINT INF_RECIDENCIAL_PK PRIMARY KEY (BARRIOLOCALIDAD)
);

/RELACIONES/
/MECANICO SALIDA/

ALTER TABLE MECANICO


ADD CONSTRAINT MECANICO_INF_RECIDEN_FK FOREIGN KEY (BARRIOLOCALIDAD)
REFERENCES INF_RECIDENCIAL(BARRIOLOCALIDAD);

ALTER TABLE MECANICO


ADD CONSTRAINT MECANICO_INF_RECIDEN_FK2 FOREIGN KEY
(INF_RECIDEN_BARRIOLOCALIDAD)
REFERENCES INF_RECIDENCIAL(BARRIOLOCALIDAD);

ALTER TABLE MECANICO


ADD CONSTRAINT MECANICO_ADMINISTRACION_FK FOREIGN KEY
(ADMINISTRACION_ID_AMD)
REFERENCES ADMINISTRACION(ID_AMD);

/CLIENTE/
ALTER TABLE CLIENTE
ADD CONSTRAINT CLIENTE_INF_RECIDEN_FK FOREIGN KEY (BARRIOLOCALIDAD)
REFERENCES INF_RECIDENCIAL(BARRIOLOCALIDAD);

/CLIENTE MECANICO V1/

ALTER TABLE CLIENTE_MECANICOv1


ADD CONSTRAINT CLIENTE_Mv1_INF_RECIDEN_FK FOREIGN KEY
(INF_RECIDEN_BARRIOLOCALIDAD)
REFERENCES INF_RECIDENCIAL(BARRIOLOCALIDAD);
ALTER TABLE CLIENTE_MECANICOv1
ADD CONSTRAINT CLIENTE_Mv1_CLIENTE_FK FOREIGN KEY (CLIENTE_BARRIOLOCALIDAD)
REFERENCES CLIENTE(BARRIOLOCALIDAD);

/CLINETE VEHICULO/

ALTER TABLE CLIENETE_VEHICULO


ADD CONSTRAINT RELACION_6_CLIENTE_FK FOREIGN KEY (CLIENTE_BARRIOLOCALIDAD)
REFERENCES CLIENTE(BARRIOLOCALIDAD);

ALTER TABLE CLIENETE_VEHICULO


ADD CONSTRAINT RELACION_6_VEHICULO_FK FOREIGN KEY (VEHICULO_ID_VEHICULO)
REFERENCES VEHICULO(ID_VEHICULO);

/MARCA REPUESTO/

ALTER TABLE MARCA_REPUESTO


ADD CONSTRAINT MARCA_REPUESTO_MARCA_FK FOREIGN KEY (MARCA_REFERENCIA)
REFERENCES MARCA(REFERENCIA);

ALTER TABLE MARCA_REPUESTO


ADD CONSTRAINT MARCA_REPUESTO_REPUESTO_FK FOREIGN KEY (REPUESTO_TIPO)
REFERENCES REPUESTO(TIPO);

/* REPUESTO */
ALTER TABLE REPUESTO
ADD CONSTRAINT MECANICO_ID_MECANICO_FK FOREIGN KEY (MECANICO_ID_MECANICO)
REFERENCES MECANICO(ID_MECANICO);

/* REPUESTO FACTURA*/
ALTER TABLE REPUESTO_FACTURA
ADD CONSTRAINT REPUESTO_FACTURA_FACTURA_FK FOREIGN KEY
(FACTURA_NUMERO_FACTURA)
REFERENCES FACTURA(NUMERO_FACTURA);
ALTER TABLE REPUESTO_FACTURA
ADD CONSTRAINT REPUESTO_FACTURA_REPUESTO_FK FOREIGN KEY (REPUESTO_TIPO)
REFERENCES REPUESTO(TIPO);

/* VEHICULO MECANICO*/

ALTER TABLE VEHICULO_MECANICO


ADD CONSTRAINT VEHICULO_MECANICO_VEHICULO_FK FOREIGN KEY
(VEHICULO_ID_VEHICULO)
REFERENCES VEHICULO(ID_VEHICULO);

ALTER TABLE VEHICULO_MECANICO


ADD CONSTRAINT VEHICULO_MECANICO_MECANICO_FK FOREIGN KEY
(MECANICO_BARRIOLOCALIDAD)
REFERENCES MECANICO(BARRIOLOCALIDAD);

/* VEHICULO MARCA*/

ALTER TABLE VEHICULO_MARCA


ADD CONSTRAINT VEHICULO_MARCA_MARCA_FK FOREIGN KEY (MARCA_REFERENCIA)
REFERENCES MARCA(REFERENCIA);

ALTER TABLE VEHICULO_MARCA


ADD CONSTRAINT VEHICULO_MARCA_VEHICULO_FK FOREIGN KEY (VEHICULO_ID_VEHICULO)
REFERENCES VEHICULO(ID_VEHICULO);

/CLIENTE MECANICO/

ALTER TABLE CLIENTE_MECANICO


ADD CONSTRAINT CLIENTE_MECANICO_MECANICO_FK FOREIGN KEY
(MECANICO_BARRIOLOCALIDAD)
REFERENCES MECANICO(BARRIOLOCALIDAD);

ALTER TABLE CLIENTE_MECANICO


ADD CONSTRAINT CLIENTE_MECANICO_CLIENTE_FK FOREIGN KEY
(CLIENTE_BARRIOLOCALIDAD)
REFERENCES CLIENTE(BARRIOLOCALIDAD);
/FACTURA/

ALTER TABLE FACTURA


ADD CONSTRAINT VEHICULO_ID_VEHICULO_FK FOREIGN KEY (VEHICULO_ID_VEHICULO)
REFERENCES VEHICULO(ID_VEHICULO);

ALTER TABLE FACTURA


ADD CONSTRAINT ADMINISTRACION_ID_AMD_FK FOREIGN KEY (ADMINISTRACION_ID_AMD)
REFERENCES ADMINISTRACION(ID_AMD);

ALTER TABLE FACTURA


ADD CONSTRAINT CLIENTE_ID_CLIENTE_FK FOREIGN KEY (CLIENTE_ID_CLIENTE)
REFERENCES CLIENTE(ID_CLIENTE);
Evidencia imágenes Diseño del Script para Lenguaje de
Definición de Datos (Data Description Language DDL).
Diseño del Script para Lenguaje de Definición de Datos (Data
Manipulation Language DML) con el Lenguaje SQL (Structured
Query Language) para poblar las tablas de la base de datos.

NOTA: aquí pega los scripts DML (no imágenes, solo el texto)
/*INSERT MARCA*/
INSERT INTO marca VALUES('123456','CUPE','BMW','BMW_A1');
INSERT INTO marca VALUES('234677','DEPORTIVO','LEXUS','LEXUS_A1');
INSERT INTO marca VALUES('890123','CUPE','MERCEDES_BENZ','MERCE_A1');
INSERT INTO marca VALUES('456789','PICAP','FORD','FORD_A1');
INSERT INTO marca VALUES('543217','DEPORTIVO','AUDI','AUDI_A1');

/*VEHICULO*/
INSERT INTO vehiculo VALUES ('098765','BMW','657437-7','2020','AZUL','EXTRA',date'2020-05-
06','14:06:30',date'2021-05-06','CUPE');
INSERT INTO vehiculo VALUES ('453567','LEXUS','543657-7','2020','MORADO','EXTRA',date'2020-
10-04','06:30:30',date'2021-10-04','DEPORTIVO');
INSERT INTO vehiculo VALUES ('765478','MERCEDES','867547-7','2020','ROJO','EXTRA',date'2020-
04-16','13:10:30',date'2021-04-16','CUPE');
INSERT INTO vehiculo VALUES ('424677','FORD','123456-7','2020','NEGRO','EXTRA',date'2020-09-
10','17:42:48',date'2021-09-10','PICAP');
INSERT INTO vehiculo VALUES ('680546','AUDI','643679-7','2020','AZUL','EXTRA',date'2020-05-
06','08:00:00',date'2022-05-06','DEPORTIVO');

/*vehiculo_marca*/
INSERT INTO vehiculo_marca VALUES('123456','098765');
INSERT INTO vehiculo_marca VALUES('234677','453567');
INSERT INTO vehiculo_marca VALUES('890123','765478');
INSERT INTO vehiculo_marca VALUES('456789','424677');
INSERT INTO vehiculo_marca VALUES('543217','680546');

/*ADMINISTRACION*/
INSERT INTO administracion
VALUES(345,'JOSE','MIGUEL','ROJAS','LOPEZ',1000000,500000,3144567654,NULL,'jsr@hotmail.co
m' );
INSERT INTO administracion
VALUES(567,'HELVERTH','DANIEL','FANDIÑO','PEÑA',5000000,1000000,3135679865,NULL,'hdf@ho
tmail.com' );
INSERT INTO administracion VALUES(423,'ROBERT','UBLDINA','MARTINEZ','
',4000000,2500000,3145436765,NULL,'rhy@hotmail.com' );
INSERT INTO administracion
VALUES(323,'JESSICA','LORENA','PLAZAS','NIÑO',5000000,5000000,3104536547,NULL,'jlp@hotmail
.com' );

/*INF RECIDENCIAL*/
INSERT INTO inf_recidencial values('06','TUNJUELITO','CALLE FALSA
123','10001','CLARET','CLARET2','');
INSERT INTO inf_recidencial values('13','TEUSAQUILLO','CALLE 33 # 45 -
65','10010','PALERMO','PALERMO2','');
INSERT INTO inf_recidencial values('18','RAFAEL URIBE URIBE','CALLE 33#34-
65sur','10011','CARMEN','CARMEN3','');

/*CLIENTE*/
insert into cliente values('18',1031342567,'JOSE' ,'MANUEL' ,'PETRO' ,'DUQUE' ,
55,'Carrera34#23-16' ,'SANTA ISABEL' ,0,32145865.00,'jsm@gmail.com','O+','COLSANITAS');
insert into cliente
values('13',1015897563,'CARMEN' ,'MARIA' ,'BONILLA' ,'SUAREZ',18,'Calle20#15-
5sur' ,'CASTILLA' ,0,31343589.00,'cmr@gmail.com','O+','COLMEDICA');
insert into cliente values('06',1043678996,'UBALDINA' ,'FABIOLA' ,'MARTINEZ' ,'' ,
35,'Carre35#14-05sur','CASTILLA' ,0,31234678.00,'fab@gmail.com','O-','COLMEDICA');

/*FACTURA*/
INSERT INTO FACTURA VALUES(4654367896,date'2020-04-13','14:06:05',date'2021-04-
13',345000,'JOSE MIGUEL','ROJAS LOPEZ','867547-7','',3135646789,'CAMBIO DE
CHASIS','CHASIS',3400000,3400000,098765,567,1031342567);
INSERT INTO FACTURA VALUES(4325678543,date'2020-01-15','13:05:05',date'2020-10-
15',350000,'LUIS','ALBERTO','654768-7','',3204536578,'CAMBIO DE
MOTOR','MOTOR',5000000,5000000,424677,323,1015897563);

/*MECANICO*/
INSERT INTO mecanico
VALUES('06',1034768983,4534,'ANDRES','LOPEZ','MARIÑO','','Calle123#43','CLARET',0.00,314564.
00,'RECONSTRUCCION','jlop@gmil.com',567,'06');
INSERT INTO mecanico
VALUES('13',534564,5647,'JOSE','LOPEZ','MARIÑO','','Calle123#43','PALERMO',0.00,56457.00,'ELE
CTRICO','KLJ@gmil.com',567,'13');
INSERT INTO mecanico VALUES('18',345355,3425,'ANA','RUIZ','NIÑO','','Calle123#43','SANTA
ISABEL',0.00,86468.00,'PINTURA','POL@gmil.com',567,'18');

/*REPUESTO*/
insert into repuesto values('MOTOR','CHINA','234REF',345345345,534564);
insert into repuesto values('CHASIS','AMERICANA','676REF',499000,345355);
insert into repuesto values('PUERTA','ALEMANA','987REF',34987500,1034768983);

/*REPUESTO_FACTURA*/
DESCRIBE repuesto_factura;
insert into repuesto_factura values(4654367896,'MOTOR');
insert into repuesto_factura values(4325678543,'PUERTA');

/*MARCA_REPUESTO*/
insert into marca_repuesto values('123456','CHASIS');
insert into marca_repuesto values('890123','PUERTA');

/*cliente_vehiculo*/
insert into clienete_vehiculo values('18',453567);
insert into clienete_vehiculo values('06',680546)

/*cliente_mecanico*/
insert into cliente_mecanico values('13','06');
insert into cliente_mecanico values('18','13');

/*cliente_mecanicov1*/

insert into cliente_mecanicov1 values('18','06');


insert into cliente_mecanicov1 values('13','13');

/*vehiculo mecanico*/
insert into vehiculo_mecanico values(453567,'06');
insert into vehiculo_mecanico values(680546,'13');

Evidencia imágenes Diseño del Script para Lenguaje de


Definición de Datos (Data Description Language DML).
NOTA: aquí pega los scripts DML (no imágenes, solo el texto)
Diseño del Script para generación de consultas sobre las
tablas de la base de datos.
select c.ID_CLIENTE ,
c.NOMBRE_1,
c.APELLIDO_P,
f.NUMERO_FACTURA,
f.VALOR_TOTAL,
v.MARCA,
v.MATRICULA,
v.MODELO
from CLIENTE c
INNER JOIN FACTURA f ON f.CLIENTE_ID_CLIENTE = c.ID_CLIENTE
INNER JOIN VEHICULO v ON v.ID_VEHICULO=f.VEHICULO_ID_VEHICULO

SELECT MAX(f.VALOR_TOTAL),
v.MARCA
FROM FACTURA f
INNER JOIN VEHICULO v ON v.ID_VEHICULO=f.VEHICULO_ID_VEHICULO
GROUP BY v.MARCA ;

select m.REFERENCIA,
m.TIPO,
v.ID_VEHICULO,
v.MODELO,
v.COLOR
FROM MARCA m
INNER JOIN VEHICULO_MARCA vm on vm.MARCA_REFERENCIA = m.REFERENCIA
INNER JOIN VEHICULO v on v.ID_VEHICULO = VEHICULO_ID_VEHICULO
WHERE v.COLOR <> 'ROJO'
ORDER BY m.REFERENCIA ASC;

SELECT i.COD_POSTAL,
M.nombre_1,
M.id_mecanico,
M.direccion,
a.ingresos,
a.egresos
FROM INF_RECIDENCIAL i
INNER JOIN MECANICO M on M.BARRIOLOCALIDAD= i.BARRIOLOCALIDAD
INNER JOIN ADMINISTRACION a on a.ID_AMD = m.ADMINISTRACION_ID_AMD
where ingresos between 900000 and 4000000
OR M.Nombre_1 like '%AN%';
Imágenes que Evidencien de resultado de las consultas
Observaciones

Cual fue la mayor dificultad que encontró en el desarrollo de


la presente actividad.

La mayor dificultad fue insertar la información ya que se tiene


que tener en cuenta las llaves foraneas y restricciones que
tiene cada tabla, el cual generaba inconvenientes con los
campos.

También podría gustarte