TIA 2: Implementación y manipulación de bases de datos
SU
VIVIENDA S.A.S
SU VIVIENDA S.A.S es una
empresa dedicada al área inmobiliaria, con un amplio portafolio de negocios,
con diez sedes estratégicamente ubicadas; personal calificado, experto y con
vocación de servicio.
Arrendatario: Contamos con un
equipo de asesores altamente calificados para ayudarle en la consecución de su
inmueble para rentar, le brindamos amplios horarios para visitar, junto con un
asesor las propiedades en las cuales se encuentra interesado, gran número de
propiedades en diferentes sectores, valores y comodidades.
En la actualidad esta
inmobiliaria está en un constante crecimiento; sus inicios fueron con una sede
ahora cuenta con diez sedes y una sede principal, cuenta con más de cinco mil
propiedades para el arrendamiento, actualmente debido a su crecimiento presenta
dificultades con sus bases de datos, necesitan reestructurar todo este sistema
por un nuevo modelo más eficiente y eficaz.
Después de analizar la
situación con el gerente de la sede principal, se planteó el nuevo modelo
estructural para la creación de su nueva base de datos, la cual quedo de la
siguiente manera:
- Se va a componer de una sede
principal la cual va a manejar un área contable, que maneje todo lo relacionado
con la recaudación del canon y determine el valor de arrendamiento de cada
propiedad. Con esto se pretende que la sede principal solo maneje la parte
financiera de la inmobiliaria y que las sedes se encarguen de todo lo
relacionado con los clientes.
- Cada sede va a tener un
código para poder ser identificada por la sede principal y así saber los
movimientos que estas llevan con cada propiedad.
- Cada sede va a tener un
administrador, y unos asesores que se encargaran tanto de los clientes que ya
manejan como de los nuevos clientes, la requisición necesaria para el arrendamiento,
firma de contrato y entrega del inmueble al arrendatario.
- Mediante un código único que
se le va a otorgar a cada propiedad, las sedes van a tener acceso a todas las
propiedades y de esta manera podrá saber la ubicación de la propiedad, las características,
disponibilidad y el dueño de la propiedad.
CREATE DATABASE
SU_VIVIENDA_SAS;
USE SU_VIVIENDA_SAS;
CREATE TABLE TBLCLIENTE(
ID_ARRENDATARIO int NOT
NULL PRIMARY KEY,
NOMBRE
varchar (30) NOT NULL,
EDAD
int NULL,
CERTIFICADO_TRABAJO nvarchar (50) NOT NULL,
ID_FIADOR
int NOT NULL
) ;
CREATE TABLE TBLCONTRATO (
COD_CONTRATO
int NOT NULL PRIMARY KEY,
ID_RESPONSABLE int
NULL,
ID_DUEÑO
int NULL,
ID_ARRENDATARIO int
NULL,
COD_PROPIEDAD int
NULL,
PRECIO_Smallmoney int NULL,
FECHA_ARRIENDO DATE
) ;
CREATE TABLE TBLDUENO (
ID_DUEÑO
int NOT NULL PRIMARY KEY,
NOMBRE
varchar (50) NOT NULL,
EDAD
int NULL,
CEDULA
int NOT NULL
) ;
CREATE TABLE TBLFIADOR (
ID_FIADOR
int NOT NULL PRIMARY KEY,
CEDULA
int NOT NULL,
NOMBRE
varchar (30) NULL,
NUMERO_BIENES int NOT
NULL
) ;
CREATE TABLE TBLPAGO
(
COD_PAGO
int NOT NULL PRIMARY KEY,
ID_ARRENDAMIENTO int
NULL,
COD_CONTRATO
int NULL,
COD_PROPIEDAD int
NULL,
MONTO_Smallmoney int NULL
) ;
CREATE TABLE TBLPROPIEDAD (
COD_PROPIEDAD int
NOT NULL PRIMARY KEY,
ID_RESPONSABLE int
NOT NULL,
ID_DUENO
int NOT NULL,
COD_PA
int NULL,
ID_ARRENDATARIO int
NULL,
UBICACION
nvarchar (50) NOT NULL,
PRECIO
numeric (18, 0) NOT NULL,
TAMAÑO
numeric (18, 0) NULL
) ;
CREATE TABLE TBLRESPONSABLE (
ID_RESPONSABLE int
NOT NULL PRIMARY KEY,
CEDULA
int NOT NULL,
NOMBRE
varchar (50) NOT NULL,
EDAD
int NULL
) ;
ALTER TABLE TBLCLIENTE
ADD CONSTRAINT FK_TBLCLIENTE_TBLFIADOR FOREIGN KEY( ID_FIADOR )
REFERENCES TBLFIADOR
( ID_FIADOR );
ALTER TABLE TBLCONTRATO ADD
CONSTRAINT
FK_TBLCONTRATO_TBLCLIENTE FOREIGN
KEY( ID_ARRENDATARIO )
REFERENCES TBLCLIENTE
( ID_ARRENDATARIO );
ALTER TABLE TBLCONTRATO ADD
CONSTRAINT
FK_TBLCONTRATO_TBLDUENO FOREIGN
KEY( ID_DUEÑO )
REFERENCES TBLDUENO
( ID_DUEÑO );
ALTER TABLE TBLCONTRATO ADD
CONSTRAINT
FK_TBLCONTRATO_TBLRESPONSABLE
FOREIGN KEY( ID_RESPONSABLE )
REFERENCES TBLRESPONSABLE ( ID_RESPONSABLE );
ALTER TABLE TBLPAGO
ADD CONSTRAINT FK_TBLPAGOTBLCLIENTE FOREIGN KEY( ID_ARRENDAMIENTO )
REFERENCES TBLCLIENTE
( ID_ARRENDATARIO );
ALTER TABLE TBLPAGO
ADD CONSTRAINT FK_TBLPAGOTBLCONTRATO FOREIGN KEY( COD_CONTRATO )
REFERENCES TBLCONTRATO
( COD_CONTRATO );
ALTER TABLE TBLPAGO
ADD CONSTRAINT FK_TBLPAGOTBLPROPIEDAD FOREIGN KEY( COD_CONTRATO )
REFERENCES TBLPROPIEDAD
( COD_PROPIEDAD );
ALTER TABLE TBLPROPIEDAD ADD
CONSTRAINT
FK__TBLPROPIE__ID_AR__7B5B524B
FOREIGN KEY( ID_ARRENDATARIO )
REFERENCES TBLCLIENTE
( ID_ARRENDATARIO );
ALTER TABLE TBLPROPIEDAD ADD
CONSTRAINT
FK__TBLPROPIE__ID_DU__797309D9
FOREIGN KEY( ID_DUENO )
REFERENCES TBLDUENO
( ID_DUEÑO );
ALTER TABLE TBLPROPIEDAD ADD
CONSTRAINT
FK__TBLPROPIE__ID_RE__787EE5A0
FOREIGN KEY( ID_RESPONSABLE )
REFERENCES TBLRESPONSABLE ( ID_RESPONSABLE );
INSERT
TBLDUENO ( ID_DUEÑO , NOMBRE , EDAD , CEDULA ) VALUES (1, N'LUIS
CORREA', 27, 1036643778);
INSERT TBLDUENO ( ID_DUEÑO , NOMBRE , EDAD , CEDULA
) VALUES (2, N'ANIBAL VELEZ', 35, 1000321245);
INSERT TBLDUENO ( ID_DUEÑO , NOMBRE , EDAD , CEDULA
) VALUES (3, N'JUAN HERNANDEZ', 42, 43221123);
INSERT TBLDUENO ( ID_DUEÑO , NOMBRE , EDAD , CEDULA
) VALUES (4, N'DANIEL RIOS', 25, 1000456789);
INSERT TBLDUENO ( ID_DUEÑO , NOMBRE , EDAD , CEDULA
) VALUES (5, N'ESTIVEN URREGO', 32, 98122917);
-------------------------------------------------------------------------------
INSERT TBLRESPONSABLE ( ID_RESPONSABLE , CEDULA ,
NOMBRE , EDAD ) VALUES (1, 92122876, N'DIEGO', 45);
INSERT TBLRESPONSABLE ( ID_RESPONSABLE , CEDULA ,
NOMBRE , EDAD ) VALUES (2, 41234980, N'JUAN MANUEL', 35);
INSERT TBLRESPONSABLE ( ID_RESPONSABLE , CEDULA ,
NOMBRE , EDAD ) VALUES (3, 8321579, N'HERNAN', 30);
INSERT TBLRESPONSABLE ( ID_RESPONSABLE , CEDULA ,
NOMBRE , EDAD ) VALUES (4, 96969696, N'CAROLINA', 25);
INSERT TBLRESPONSABLE ( ID_RESPONSABLE , CEDULA ,
NOMBRE , EDAD ) VALUES (5, 1012345678, N'DEISY', 19);
-------------------------------------------------------------------------------
INSERT TBLFIADOR ( ID_FIADOR , CEDULA , NOMBRE ,
NUMERO_BIENES ) VALUES (1, 75643211, N'PEDRO', 3);
INSERT TBLFIADOR ( ID_FIADOR , CEDULA , NOMBRE ,
NUMERO_BIENES ) VALUES (2,77000123, N'MANUEL', 4);
INSERT TBLFIADOR ( ID_FIADOR , CEDULA , NOMBRE ,
NUMERO_BIENES ) VALUES (3, 12370012, N'CARLOS', 2);
;
INSERT TBLFIADOR ( ID_FIADOR , CEDULA , NOMBRE ,
NUMERO_BIENES ) VALUES (4, 12370012, N'CESAR', 2);
INSERT TBLFIADOR ( ID_FIADOR , CEDULA , NOMBRE , NUMERO_BIENES
) VALUES (5, 32456765, N'SANDRA', 7);
-------------------------------------------------------------------------------
INSERT TBLCLIENTE ( ID_ARRENDATARIO , NOMBRE , EDAD
, CERTIFICADO_TRABAJO , ID_FIADOR ) VALUES (1, N'JUAN', 21, N'00999', 1);
INSERT TBLCLIENTE ( ID_ARRENDATARIO , NOMBRE , EDAD
, CERTIFICADO_TRABAJO , ID_FIADOR ) VALUES (2, N'JOSE', 30, N'00123', 2);
INSERT TBLCLIENTE ( ID_ARRENDATARIO , NOMBRE , EDAD
, CERTIFICADO_TRABAJO , ID_FIADOR ) VALUES (3, N'SERGIO', 18, N'00987', 3);
INSERT TBLCLIENTE ( ID_ARRENDATARIO , NOMBRE , EDAD
, CERTIFICADO_TRABAJO , ID_FIADOR ) VALUES (4, N'MARIA', 18, N'00034', 2);
INSERT TBLCLIENTE ( ID_ARRENDATARIO , NOMBRE , EDAD
, CERTIFICADO_TRABAJO , ID_FIADOR ) VALUES (5, N'MARIA JOSE', 18, N'00543,
UBICADO EN ', 5);
INSERT TBLPROPIEDAD ( COD_PROPIEDAD , ID_RESPONSABLE
, ID_DUENO , COD_PAGO , ID_ARRENDATARIO , UBICACION , PRECIO , TAMAÑO ) VALUES
(1, 1, 1, 1, 1, N'MEDELLIN', CAST(4587000 AS Numeric(18, 0)), CAST(70 AS
Numeric(18, 0)))
INSERT TBLPROPIEDAD ( COD_PROPIEDAD , ID_RESPONSABLE
, ID_DUENO , COD_PAGO , ID_ARRENDATARIO , UBICACION , PRECIO , TAMAÑO ) VALUES
(2, 2, 2, 2, 2, N'ITAGUI', CAST(7894894 AS Numeric(18, 0)), CAST(50 AS
Numeric(18, 0)))
INSERT TBLPROPIEDAD ( COD_PROPIEDAD , ID_RESPONSABLE
, ID_DUENO , COD_PAGO , ID_ARRENDATARIO , UBICACION , PRECIO , TAMAÑO ) VALUES
(3, 3, 3, 3, 3, N'POBLADO', CAST(848948 AS Numeric(18, 0)), CAST(80 AS
Numeric(18, 0)))
INSERT TBLPROPIEDAD ( COD_PROPIEDAD , ID_RESPONSABLE
, ID_DUENO , COD_PAGO , ID_ARRENDATARIO , UBICACION , PRECIO , TAMAÑO ,
HABITACIONES , TIPO) VALUES (4, 1, 2, 1, 3, N'POBLADO', CAST(45870 AS
Numeric(18, 0)), CAST(80 AS Numeric(18, 0)), 4, 'CASA')
INSERT TBLPROPIEDAD ( COD_PROPIEDAD , ID_RESPONSABLE
, ID_DUENO , COD_PAGO , ID_ARRENDATARIO , UBICACION , PRECIO , TAMAÑO ,
HABITACIONES , TIPO) VALUES (5, 2, 3, 3, 1, N'CASTILLA', CAST(45870 AS
Numeric(18, 0)), CAST(80 AS Numeric(18, 0)), 7, 'CASA')
INSERT TBLPROPIEDAD ( COD_PROPIEDAD , ID_RESPONSABLE
, ID_DUENO , COD_PAGO , ID_ARRENDATARIO , UBICACION , PRECIO , TAMAÑO ,
HABITACIONES ) VALUES (6, 2, 1, 1, 1, 'calle 25 #12-12.', CAST(45870 AS
Numeric(18, 0)), CAST(80 AS Numeric(18, 0)), 7)
-------------------------------------------------------------------------------
INSERT TBLCONTRATO ( COD_CONTRATO , ID_RESPONSABLE ,
ID_DUEÑO , ID_ARRENDATARIO , COD_PROPIEDAD , PRECIO , FECHA_ARRIENDO) VALUES
(1, 1, 1, 1, 1, 80000.0000, '2020-11-09')
INSERT TBLCONTRATO ( COD_CONTRATO , ID_RESPONSABLE ,
ID_DUEÑO , ID_ARRENDATARIO , COD_PROPIEDAD , PRECIO , FECHA_ARRIENDO) VALUES
(2, 2, 2, 2, 2, 100.0000, '2019-10-08')
INSERT TBLCONTRATO ( COD_CONTRATO , ID_RESPONSABLE ,
ID_DUEÑO , ID_ARRENDATARIO , COD_PROPIEDAD , PRECIO , FECHA_ARRIENDO ) VALUES
(3, 3, 3, 3, 3, 41651.0000,'2018-09-07')
INSERT TBLCONTRATO ( COD_CONTRATO , ID_RESPONSABLE ,
ID_DUEÑO , ID_ARRENDATARIO , COD_PROPIEDAD , PRECIO , FECHA_ARRIENDO ) VALUES
(4, 4, 4, 4, 4, 52311.0000,'2017-08-06')
-------------------------------------------------------------------------------
INSERT TBLPAGO (COD_PAGO, ID_ARRENDAMIENTO
,COD_CONTRATO,COD_PROPIEDAD ,MONTO_PAGO) VALUES(1,1,1,1,800.0000)
INSERT TBLPAGO (COD_PAGO, ID_ARRENDAMIENTO
,COD_CONTRATO,COD_PROPIEDAD ,MONTO_PAGO) VALUES(2, 2, 2, 2, 300.0000)
INSERT TBLPAGO (COD_PAGO, ID_ARRENDAMIENTO
,COD_CONTRATO,COD_PROPIEDAD ,MONTO_PAGO) VALUES(3, 3, 3, 3, 400.0000)
INSERT TBLPAGO (COD_PAGO, ID_ARRENDAMIENTO
,COD_CONTRATO,COD_PROPIEDAD ,MONTO_PAGO) VALUES(4, 1, 2, 6, 400.0000)
INSERT TBLPAGO (COD_PAGO, ID_ARRENDAMIENTO
,COD_CONTRATO,COD_PROPIEDAD ,MONTO_PAGO) VALUES(5, 1, 2, 6, 600.0000)
-------------------------------------------------------------------------------
--CONSULTAS CORRESPONDIENTES
Mostrar los datos de las
propiedades con número de habitaciones mayor que 3 y tiene un área mayor que 68
mts2 o son tipo casa.
SELECT * FROM TBLPROPIEDAD
WHERE HABITACIONES > 3 AND (TAMAÑO > 68 OR TIPO='CASA')
--Mostrar los datos de los
pagos generados por la propiedad con dirección calle 25 #12-12.
SELECT TBLPAGO.COD_PAGO,
MONTO_PAGO, UBICACION FROM TBLPAGO JOIN TBLPROPIEDAD ON TBLPAGO.COD_PROPIEDAD =
TBLPROPIEDAD.COD_PROPIEDAD WHERE UBICACION = 'calle 25 #12-12'
--Mostrar los datos de las
propiedades arrendadas en fechas menores a 28/11/2020
SELECT TBLPROPIEDAD.*
FROM TBLPROPIEDAD
JOIN TBLDUENO
ON TBLPROPIEDAD.ID_DUENO = TBLDUENO.ID_DUEÑO
JOIN TBLCONTRATO
ON TBLDUENO.ID_DUEÑO= TBLCONTRATO.ID_DUEÑO
WHERE
TBLCONTRATO.FECHA_ARRIENDO < '28/11/2020'
--Mostrar los datos de
clientes que han arrendado casas en el poblado y sus dueños son Jorge Pérez o
Aníbal Ruiz
SELECT TBLCLIENTE.*
FROM TBLCLIENTE
JOIN TBLPROPIEDAD
ON TBLCLIENTE.ID_FIADOR = TBLPROPIEDAD.ID_ARRENDATARIO
JOIN TBLDUENO
ON TBLPROPIEDAD.ID_DUENO = TBLDUENO.ID_DUEÑO
WHERE TBLPROPIEDAD.UBICACION =
'MEDELLIN' AND (TBLDUENO.NOMBRE = 'LUIS CORREA' OR TBLDUENO.NOMBRE = 'SANDRA
BENITEZ')
Importancia de utilizar el lenguaje SQL para la creación y manipulación
de las bases de datos relacionales.
R//: El Lenguaje SQL es uno de los lenguajes más capaces y
necesarios en el mundo moderno ya que ayuda a solucionar problemas
específicos o relacionados con la definición, manipulación e integridad de la
información representada por los datos que se almacenan en las bases de datos
Comentarios
Publicar un comentario