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

Entradas populares de este blog

Matrices especiales

Estructuras de Decisión Selectivas o Condicionales