A continuación anexo el Script de la Base de Datos, Agencia de Arrendamiento, escrita en Comandos DDL, lo cual permite crear una base de datos para una Agencia de Arrendamientos.
Si identifican alguna mejora que le pueda realizar a mi Base de Datos, con gusto será tomada todos los comentarios.
create database BDAgencia_Arrendamiento
use BDAgencia_Arrendamiento
-- Tabla Agencia
CREATE TABLE Agencia (
Nit_Agencia float,
Nombre_Empresa VARCHAR(100),
Cedula_RepresentanteLegal float,
Nombre_RepresententeLegal VARCHAR(100),
Telefono float,
Dirección VARCHAR(200),
CONSTRAINT pk_cAgencia PRIMARY KEY (Nit_Agencia))
select * from Agencia
-- Tabla Dueño
CREATE TABLE Dueño (
Cedula float,
Nombre VARCHAR(100),
Telefono float,
Dirección VARCHAR(200),
CONSTRAINT pk_cDueño PRIMARY KEY (Cedula))
select * from Dueño
-- Tabla Cliente
CREATE TABLE Cliente (
Cedula float,
Nombre VARCHAR(100),
Telefono float,
Dirección VARCHAR(200),
CONSTRAINT pk_cClliente PRIMARY KEY (Cedula))
select * from Cliente
-- Tabla Pago
CREATE TABLE Pago (
idRecibo float,
CONSTRAINT pk_cPago PRIMARY KEY (idRecibo))
select * from Pago
-- Tabla Sedes
CREATE TABLE Sedes (
id_Sedes float,
Nombre_Sede VARCHAR(100),
Telefono float,
Dirección VARCHAR(200),
Nit_Agencia_c1 float,
CONSTRAINT pk_cSedes PRIMARY KEY (id_Sedes),
CONSTRAINT fk_fc1 FOREIGN KEY (Nit_Agencia_c1) REFERENCES Agencia (Nit_Agencia))
select * from Sedes
-- Tabla Administrador
CREATE TABLE Administrador (
Cedula float,
Nombre VARCHAR(100),
Telefono float,
Dirección VARCHAR(200),
Fecha_Ingreso DATETIME,
Fecha_Retiro DATETIME,
idSedes_c1 float,
CONSTRAINT pk_cAdministrador PRIMARY KEY (Cedula),
CONSTRAINT fk_fc2 FOREIGN KEY (idSedes_c1) REFERENCES Sedes (id_Sedes))
select * from Administrador
-- Tabla Certificado_Trabajo
CREATE TABLE Certificado_Trabajo (
idCertificado_Trabajo float,
Empresa VARCHAR(100),
Cargo VARCHAR(100),
Salario float,
Fecha_Ingreso DATETIME,
Fecha_Retiro DATETIME,
Cliente_Cedula_c1 float,
CONSTRAINT pk_cCertificados PRIMARY KEY (idCertificado_Trabajo),
CONSTRAINT fk_fc3 FOREIGN KEY (Cliente_Cedula_c1) REFERENCES Cliente (Cedula))
select * from Certificado_Trabajo
-- Tabla Fiador
CREATE TABLE Fiador (
Cedula float,
Nombre VARCHAR(100),
Telefono float,
Dirección VARCHAR(200),
Cliente_Cedula_c2 float,
CONSTRAINT pk_cFiador PRIMARY KEY (Cedula),
CONSTRAINT fk_fc4 FOREIGN KEY (Cliente_Cedula_c2) REFERENCES Cliente (Cedula))
select * from Fiador
-- Tabla Bien_Fiador
CREATE TABLE Bien_Fiador (
idBien_Fiador float,
Tipo_Bien VARCHAR(100),
Descripción VARCHAR(200),
Valor float,
Fiador_Cedula_c1 float,
CONSTRAINT pk_cBien_Fiador PRIMARY KEY (idBien_Fiador),
CONSTRAINT fk_fc5 FOREIGN KEY (Fiador_Cedula_c1) REFERENCES Fiador (Cedula))
select * from Bien_Fiador
-- Tabla Contrato_Arrendamiento
CREATE TABLE Contrato_Arrendamiento (
idContrato_Arrendamiento VARCHAR(100),
Fecha_Vigencia DATETIME,
Fecha_Vencimiento DATETIME,
Valor_Arrendamiento float,
Estado_Contrato VARCHAR(100),
/*regla de validacion*/
check (Estado_Contrato in ('VIGENTE','TERMINADO','CANCELADO POR ACUERDO','CANCELADO POR NO PAGO','EN MORA')),
Cliente_Cedula_c3 float,
CONSTRAINT pk_cContrato PRIMARY KEY (idContrato_Arrendamiento),
CONSTRAINT fk_fc6 FOREIGN KEY (Cliente_Cedula_c3) REFERENCES Cliente (Cedula))
select * from Contrato_Arrendamiento
-- Tabla Propiedad
CREATE TABLE Propiedad (
idPropiedad VARCHAR(200),
Dirección VARCHAR(200),
Ciudad VARCHAR(100),
Barrio VARCHAR(100),
Nro_Habitaciones float,
Nro_Baños float,
Tipo_Propiedad VARCHAR(100),
Mts_Cuadrados float,
idSedes_c2 float,
CONSTRAINT pk_cPropiedad PRIMARY KEY (idPropiedad),
CONSTRAINT fk_fc7 FOREIGN KEY (idSedes_c2) REFERENCES Sedes (id_Sedes))
select * from Propiedad
-- Tabla Pago_has_Contrato_Arrendamiento
CREATE TABLE Pago_has_Contrato_Arrendamiento (
pago_idRecibo float,
idContrato_Arrendamiento VARCHAR(100),
Cuota_Cancelada VARCHAR(100),
/*regla de validacion*/
check (Cuota_Cancelada in ('PRIMERA','SEGUNDA','TERCERA','CUARTA','QUINTA','SEXTA','SEPTIMA','OCTAVA','NOVENA','DECIMA','ONCEAVA','DOCEAVA')),
Fecha_Pago DATETIME,
Valor_Cancelado float,
CONSTRAINT fk_fc10 FOREIGN KEY (pago_idRecibo) REFERENCES Pago (idRecibo),
CONSTRAINT fk_fc11 FOREIGN KEY (idContrato_Arrendamiento) REFERENCES Contrato_Arrendamiento (idContrato_Arrendamiento))
select * from Pago_has_Contrato_Arrendamiento
-- Tabla Contrato_Arrendamiento_has_Propiedad
CREATE TABLE Contrato_Arrendamiento_Propiedad (
Contrato_idContrato_Arrendamiento VARCHAR(100),
Propiedad_idPropiedad VARCHAR(200),
CONSTRAINT fk_fc12 FOREIGN KEY (Contrato_idContrato_Arrendamiento) REFERENCES Contrato_Arrendamiento (idContrato_Arrendamiento),
CONSTRAINT fk_fc13 FOREIGN KEY (Propiedad_idPropiedad) REFERENCES Propiedad (idPropiedad))
select * from Contrato_Arrendamiento_Propiedad
-- Tabla Dueño_has_Propiedad
CREATE TABLE Dueño_Propiedad (
Dueño_Cedula float,
Propiedad_idPropiedad VARCHAR(200),
CONSTRAINT fk_fc14 FOREIGN KEY (Dueño_Cedula) REFERENCES Dueño (Cedula),
CONSTRAINT fk_fc15 FOREIGN KEY (Propiedad_idPropiedad) REFERENCES Propiedad (idPropiedad))
select * from Dueño_Propiedad
-- Para verificar la creación de las tablas
select * from Agencia
select * from Dueño
select * from Cliente
select * from Pago
select * from Sedes
select * from Administrador
select * from Certificado_Trabajo
select * from Fiador
select * from Bien_Fiador
select * from Contrato_Arrendamiento
select * from Propiedad
select * from Pago_has_Contrato_Arrendamiento
select * from Contrato_Arrendamiento_Propiedad
select * from Dueño_Propiedad