SlideShare ist ein Scribd-Unternehmen logo
1 von 16
Universidad Técnica Particular de Loja
BASE DE DATOS
PRIMER BIMESTRE
Ing. Juan Carlos Morocho
Alumna: Marilyn Jaramillo
2009
1 Cree un modelo conceptual de los datos y compruebe que soporta las transacciones
requeridas, para ello utilice cualquiera de los dos métodos estudiados en el capítulo 1 Diseño
Conceptual de la base de datos
ENTIDADES
 Factura
 Pago de factura
 Consejero
 Estudiante
 Residencia
 Curso
 Pariente
 Contrato
 Inspeccion
 Empleado
 Habitacion

DIAGRAMA CONCEPTUAL
2 Genere el modelo de datos lógico a partir del modelo conceptual:
DIAGRAMA FISICO
envia
tieneF
tiene
pertenece
Relationship_8
realiaza
perteneceR
Relationship_11
realiza
FACTURA
num_factura
num_A
semestre
tipo_pago
<pi> Variable characters (5)
Variable characters (5)
Variable characters (10)
Float
<M>
num_factura <pi>
PAGO
num_pago_factura
fecha_pago
modo_pago
fecha_recordatorio
<pi> Variable characters (5)
Date
Variable characters (10)
Date
<M>
num_pago_factura <pi>
ESTUDIANTE
id_estudiante
num_matricula
nombre_estudiante
apellido_estudiante
fecha_nac_empleado
sexo_empleado
categoria_empleado
nacionalidad
estado_fumador
estado_actual
curso
necesidades
comentarios
Variable characters (10)
Variable characters (5)
Variable characters (25)
Variable characters (25)
Date
Variable characters (2)
Variable characters (30)
Variable characters (15)
Variable characters (6)
Variable characters (15)
Variable characters (15)
Variable characters (50)
Variable characters (50)
<M>
<M>
CONTRATO
num_A
tiempo
inicio_Alq
final_alq
periodo_min
Variable characters (5)
Variable characters (15)
Variable characters (15)
Date
Date
<M>
PARIENTE
id_pariente
relacion
direccion
num_fono
<pi> Variable characters (10)
Variable characters (25)
Variable characters (30)
Variable characters (15)
<M>
id_pariente <pi>
CURSOS
num_curso
titulo_curso
id_empleado
<pi> Variable characters (5)
Variable characters (25)
Variable characters (10)
<M>
num_curso <pi>
Empleado
id_empleado
nombre_empleado
apellido_empleado
fecha_nac_empleado
sexo_empleado
categoria_empleado
<pi> Variable characters (10)
Variable characters (25)
Variable characters (25)
Date
Variable characters (2)
Variable characters (30)
<M>
Identifier_1 <pi>
RESIDENCIA
id_residencia
nombre_residencia
direccion_residencia
num_telefono
Variable characters (5)
Variable characters (25)
Variable characters (30)
Variable characters (15)
<M>
HABITACION
num_identificacion_habitacion
num_habitacion
importe_mensual
<pi> Variable characters (5)
Integer
Float
num_identifiacion_habitacion <pi>
PISO
num_apartamento
capacidad_estudiantes
direccion_apartamento
num_habitacion
<pi> Variable characters (5)
Integer
Variable characters (30)
Integer
<M>
num_apartamento <pi>
INSPECCION
id_inspeccion
fecha_inspeccion
estado_inmueble
comentarios
<pi> Variable characters (5)
Date
Variable characters (15)
Variable characters (50)
<M>
id_inspeccion <pi>
/*==============================================================*/
/* DBMS name: Sybase SQL Anywhere 10 */
/* Created on: 11/05/2009 17:22:14 */
/*==============================================================*/
if exists(select 1 from sys.sysforeignkey where role='FK_CONTRATO_REALIZA_ESTUDIAN') then
alter table CONTRATO
delete foreign key FK_CONTRATO_REALIZA_ESTUDIAN
end if;
if exists(select 1 from sys.sysforeignkey where role='FK_CURSOS_PERTENECE_ESTUDIAN')
then
alter table CURSOS
delete foreign key FK_CURSOS_PERTENECE_ESTUDIAN
end if;
if exists(select 1 from sys.sysforeignkey where role='FK_EMPLEADO_RELATIONS_ESTUDIAN')
then
alter table EMPLEADO
delete foreign key FK_EMPLEADO_RELATIONS_ESTUDIAN
end if;
if exists(select 1 from sys.sysforeignkey where role='FK_ESTUDIAN_ENVIA_FACTURA') then
alter table ESTUDIANTE
delete foreign key FK_ESTUDIAN_ENVIA_FACTURA
end if;
if exists(select 1 from sys.sysforeignkey where role='FK_FACTURA_ENVIA2_ESTUDIAN') then
alter table FACTURA
delete foreign key FK_FACTURA_ENVIA2_ESTUDIAN
end if;
if exists(select 1 from sys.sysforeignkey where role='FK_PAGO_TIENEF_FACTURA') then
alter table PAGO
FK_ESTUDIAN_ENVIA_FACTURAFK_FACTURA_ENVIA2_ESTUDIAN
FK_PAGO_TIENEF_FACTURA
FK_PARIENTE_TIENE_ESTUDIAN
FK_CURSOS_PERTENECE_ESTUDIAN
FK_PISO_RELATIONS_HABITACI
FK_REALIAZA_REALIAZA2_PISO
FK_REALIAZA_REALIAZA_INSPECCI
FK_RESIDENC_PERTENECE_ESTUDIAN
FK_EMPLEADO_RELATIONS_ESTUDIAN
FK_CONTRATO_REALIZA_ESTUDIAN
FACTURA
num_factura
id_estudiante
num_A
semestre
tipo_pago
varchar(5)
varchar(10)
varchar(5)
varchar(10)
float
<pk>
<fk>
PAGO
num_pago_factura
num_factura
fecha_pago
modo_pago
fecha_recordatorio
varchar(5)
varchar(5)
date
varchar(10)
date
<pk>
<fk>
ESTUDIANTE
id_estudiante
num_factura
num_matricula
nombre_estudiante
apellido_estudiante
fecha_nac_empleado
sexo_empleado
categoria_empleado
nacionalidad
estado_fumador
estado_actual
curso
necesidades
comentarios
varchar(10)
varchar(5)
varchar(5)
varchar(25)
varchar(25)
date
varchar(2)
varchar(30)
varchar(15)
varchar(6)
varchar(15)
varchar(15)
varchar(50)
varchar(50)
<pk>
<fk>
CONTRATO
id_estudiante
num_A
tiempo
inicio_Alq
final_alq
periodo_min
varchar(10)
varchar(5)
varchar(15)
varchar(15)
date
date
<fk>
PARIENTE
id_pariente
id_estudiante
relacion
direccion
num_fono
varchar(10)
varchar(10)
varchar(25)
varchar(30)
varchar(15)
<pk>
<fk>
CURSOS
num_curso
id_estudiante
titulo_curso
id_empleado
varchar(5)
varchar(10)
varchar(25)
varchar(10)
<pk>
<fk>
RESIDENCIA
id_estudiante
id_residencia
nombre_residencia
direccion_residencia
num_telefono
varchar(10)
varchar(5)
varchar(25)
varchar(30)
varchar(15)
<fk>
<ak>
HABITACION
num_identificacion_habitacion
num_habitacion
importe_mensual
varchar(5)
integer
float
<pk>
PISO
num_apartamento
num_identificacion_habitacion
capacidad_estudiantes
direccion_apartamento
num_habitacion
varchar(5)
varchar(5)
integer
varchar(30)
integer
<pk>
<fk>
INSPECCION
id_inspeccion
fecha_inspeccion
estado_inmueble
comentarios
varchar(5)
date
varchar(15)
varchar(50)
<pk>
realiaza
id_inspeccion
num_apartamento
varchar(5)
varchar(5)
<pk,fk1>
<pk,fk2>
delete foreign key FK_PAGO_TIENEF_FACTURA
end if;
if exists(select 1 from sys.sysforeignkey where role='FK_PARIENTE_TIENE_ESTUDIAN') then
alter table PARIENTE
delete foreign key FK_PARIENTE_TIENE_ESTUDIAN
end if;
if exists(select 1 from sys.sysforeignkey where role='FK_PISO_RELATIONS_HABITACI') then
alter table PISO
delete foreign key FK_PISO_RELATIONS_HABITACI
end if;
if exists(select 1 from sys.sysforeignkey where role='FK_REALIAZA_REALIAZA_INSPECCI') then
alter table REALIAZA
delete foreign key FK_REALIAZA_REALIAZA_INSPECCI
end if;
if exists(select 1 from sys.sysforeignkey where role='FK_REALIAZA_REALIAZA2_PISO') then
alter table REALIAZA
delete foreign key FK_REALIAZA_REALIAZA2_PISO
end if;
if exists(select 1 from sys.sysforeignkey where role='FK_RESIDENC_PERTENECE_ESTUDIAN')
then
alter table RESIDENCIA
delete foreign key FK_RESIDENC_PERTENECE_ESTUDIAN
end if;
if exists(
select 1 from sys.sysindex i, sys.systable t
where i.table_id=t.table_id
and i.index_name='REALIZA_FK'
and t.table_name='CONTRATO'
) then
drop index CONTRATO.REALIZA_FK
end if;
if exists(
select 1 from sys.systable
where table_name='CONTRATO'
and table_type in ('BASE', 'GBL TEMP')
) then
drop table CONTRATO
end if;
if exists(
select 1 from sys.sysindex i, sys.systable t
where i.table_id=t.table_id
and i.index_name='PERTENECE_FK'
and t.table_name='CURSOS'
) then
drop index CURSOS.PERTENECE_FK
end if;
if exists(
select 1 from sys.sysindex i, sys.systable t
where i.table_id=t.table_id
and i.index_name='CURSOS_PK'
and t.table_name='CURSOS'
) then
drop index CURSOS.CURSOS_PK
end if;
if exists(
select 1 from sys.systable
where table_name='CURSOS'
and table_type in ('BASE', 'GBL TEMP')
) then
drop table CURSOS
end if;
if exists(
select 1 from sys.sysindex i, sys.systable t
where i.table_id=t.table_id
and i.index_name='RELATIONSHIP_11_FK'
and t.table_name='EMPLEADO'
) then
drop index EMPLEADO.RELATIONSHIP_11_FK
end if;
if exists(
select 1 from sys.sysindex i, sys.systable t
where i.table_id=t.table_id
and i.index_name='EMPLEADO_PK'
and t.table_name='EMPLEADO'
) then
drop index EMPLEADO.EMPLEADO_PK
end if;
if exists(
select 1 from sys.systable
where table_name='EMPLEADO'
and table_type in ('BASE', 'GBL TEMP')
) then
drop table EMPLEADO
end if;
if exists(
select 1 from sys.sysindex i, sys.systable t
where i.table_id=t.table_id
and i.index_name='PERTENECER_FK'
and t.table_name='ESTUDIANTE'
) then
drop index ESTUDIANTE.PERTENECER_FK
end if;
if exists(
select 1 from sys.sysindex i, sys.systable t
where i.table_id=t.table_id
and i.index_name='ENVIA_FK'
and t.table_name='ESTUDIANTE'
) then
drop index ESTUDIANTE.ENVIA_FK
end if;
if exists(
select 1 from sys.sysindex i, sys.systable t
where i.table_id=t.table_id
and i.index_name='ESTUDIANTE_PK'
and t.table_name='ESTUDIANTE'
) then
drop index ESTUDIANTE.ESTUDIANTE_PK
end if;
if exists(
select 1 from sys.systable
where table_name='ESTUDIANTE'
and table_type in ('BASE', 'GBL TEMP')
) then
drop table ESTUDIANTE
end if;
if exists(
select 1 from sys.sysindex i, sys.systable t
where i.table_id=t.table_id
and i.index_name='ENVIA2_FK'
and t.table_name='FACTURA'
) then
drop index FACTURA.ENVIA2_FK
end if;
if exists(
select 1 from sys.sysindex i, sys.systable t
where i.table_id=t.table_id
and i.index_name='FACTURA_PK'
and t.table_name='FACTURA'
) then
drop index FACTURA.FACTURA_PK
end if;
if exists(
select 1 from sys.systable
where table_name='FACTURA'
and table_type in ('BASE', 'GBL TEMP')
) then
drop table FACTURA
end if;
if exists(
select 1 from sys.sysindex i, sys.systable t
where i.table_id=t.table_id
and i.index_name='HABITACION_PK'
and t.table_name='HABITACION'
) then
drop index HABITACION.HABITACION_PK
end if;
if exists(
select 1 from sys.systable
where table_name='HABITACION'
and table_type in ('BASE', 'GBL TEMP')
) then
drop table HABITACION
end if;
if exists(
select 1 from sys.sysindex i, sys.systable t
where i.table_id=t.table_id
and i.index_name='INSPECCION_PK'
and t.table_name='INSPECCION'
) then
drop index INSPECCION.INSPECCION_PK
end if;
if exists(
select 1 from sys.systable
where table_name='INSPECCION'
and table_type in ('BASE', 'GBL TEMP')
) then
drop table INSPECCION
end if;
if exists(
select 1 from sys.sysindex i, sys.systable t
where i.table_id=t.table_id
and i.index_name='TIENEF_FK'
and t.table_name='PAGO'
) then
drop index PAGO.TIENEF_FK
end if;
if exists(
select 1 from sys.sysindex i, sys.systable t
where i.table_id=t.table_id
and i.index_name='PAGO_PK'
and t.table_name='PAGO'
) then
drop index PAGO.PAGO_PK
end if;
if exists(
select 1 from sys.systable
where table_name='PAGO'
and table_type in ('BASE', 'GBL TEMP')
) then
drop table PAGO
end if;
if exists(
select 1 from sys.sysindex i, sys.systable t
where i.table_id=t.table_id
and i.index_name='TIENE_FK'
and t.table_name='PARIENTE'
) then
drop index PARIENTE.TIENE_FK
end if;
if exists(
select 1 from sys.sysindex i, sys.systable t
where i.table_id=t.table_id
and i.index_name='PARIENTE_PK'
and t.table_name='PARIENTE'
) then
drop index PARIENTE.PARIENTE_PK
end if;
if exists(
select 1 from sys.systable
where table_name='PARIENTE'
and table_type in ('BASE', 'GBL TEMP')
) then
drop table PARIENTE
end if;
if exists(
select 1 from sys.sysindex i, sys.systable t
where i.table_id=t.table_id
and i.index_name='RELATIONSHIP_8_FK'
and t.table_name='PISO'
) then
drop index PISO.RELATIONSHIP_8_FK
end if;
if exists(
select 1 from sys.sysindex i, sys.systable t
where i.table_id=t.table_id
and i.index_name='PISO_PK'
and t.table_name='PISO'
) then
drop index PISO.PISO_PK
end if;
if exists(
select 1 from sys.systable
where table_name='PISO'
and table_type in ('BASE', 'GBL TEMP')
) then
drop table PISO
end if;
if exists(
select 1 from sys.sysindex i, sys.systable t
where i.table_id=t.table_id
and i.index_name='REALIAZA2_FK'
and t.table_name='REALIAZA'
) then
drop index REALIAZA.REALIAZA2_FK
end if;
if exists(
select 1 from sys.sysindex i, sys.systable t
where i.table_id=t.table_id
and i.index_name='REALIAZA_FK'
and t.table_name='REALIAZA'
) then
drop index REALIAZA.REALIAZA_FK
end if;
if exists(
select 1 from sys.sysindex i, sys.systable t
where i.table_id=t.table_id
and i.index_name='REALIAZA_PK'
and t.table_name='REALIAZA'
) then
drop index REALIAZA.REALIAZA_PK
end if;
if exists(
select 1 from sys.systable
where table_name='REALIAZA'
and table_type in ('BASE', 'GBL TEMP')
) then
drop table REALIAZA
end if;
if exists(
select 1 from sys.sysindex i, sys.systable t
where i.table_id=t.table_id
and i.index_name='RESIDENCIA_AK'
and t.table_name='RESIDENCIA'
) then
drop index RESIDENCIA.RESIDENCIA_AK
end if;
if exists(
select 1 from sys.systable
where table_name='RESIDENCIA'
and table_type in ('BASE', 'GBL TEMP')
) then
drop table RESIDENCIA
end if;
/*==============================================================*/
/* Table: CONTRATO */
/*==============================================================*/
create table CONTRATO
(
ID_ESTUDIANTE varchar(10),
NUM_A varchar(5) not null,
TIEMPO varchar(15),
INICIO_ALQ varchar(15),
FINAL_ALQ date,
PERIODO_MIN date
);
/*==============================================================*/
/* Index: REALIZA_FK */
/*==============================================================*/
create index REALIZA_FK on CONTRATO (
ID_ESTUDIANTE ASC
);
/*==============================================================*/
/* Table: CURSOS */
/*==============================================================*/
create table CURSOS
(
NUM_CURSO varchar(5) not null,
ID_ESTUDIANTE varchar(10),
TITULO_CURSO varchar(25),
ID_EMPLEADO varchar(10),
constraint PK_CURSOS primary key (NUM_CURSO)
);
/*==============================================================*/
/* Index: CURSOS_PK */
/*==============================================================*/
create unique index CURSOS_PK on CURSOS (
NUM_CURSO ASC
);
/*==============================================================*/
/* Index: PERTENECE_FK */
/*==============================================================*/
create index PERTENECE_FK on CURSOS (
ID_ESTUDIANTE ASC
);
/*==============================================================*/
/* Table: EMPLEADO */
/*==============================================================*/
create table EMPLEADO
(
ID_ESTUDIANTE2 varchar(10) not null,
ID_ESTUDIANTE varchar(10),
NOMBRE_EMPLEADO varchar(25),
APELLIDO_EMPLEADO varchar(25),
FECHA_NAC_EMPLEADO date,
SEXO_EMPLEADO varchar(2),
CATEGORIA_EMPLEADO varchar(30)
constraint CKC_CATEGORIA_EMPLEAD_EMPLEADO check (CATEGORIA_EMPLEADO is
null or (CATEGORIA_EMPLEADO between '30' and '30' and CATEGORIA_EMPLEADO =
lower(CATEGORIA_EMPLEADO))),
constraint PK_EMPLEADO primary key (ID_ESTUDIANTE2)
);
/*==============================================================*/
/* Index: EMPLEADO_PK */
/*==============================================================*/
create unique index EMPLEADO_PK on EMPLEADO (
ID_ESTUDIANTE2 ASC
);
/*==============================================================*/
/* Index: RELATIONSHIP_11_FK */
/*==============================================================*/
create index RELATIONSHIP_11_FK on EMPLEADO (
ID_ESTUDIANTE ASC
);
/*==============================================================*/
/* Table: ESTUDIANTE */
/*==============================================================*/
create table ESTUDIANTE
(
ID_ESTUDIANTE varchar(10) not null,
NUM_FACTURA varchar(5),
NUM_MATRICULA varchar(5) not null,
NOMBRE_ESTUDIANTE varchar(25),
APELLIDO_ESTUDIANTE varchar(25),
FECHA_NAC_EMPLEADO date,
SEXO_EMPLEADO varchar(2),
CATEGORIA_EMPLEADO varchar(30)
constraint CKC_CATEGORIA_EMPLEAD_ESTUDIAN check (CATEGORIA_EMPLEADO is null
or (CATEGORIA_EMPLEADO between '30' and '30' and CATEGORIA_EMPLEADO =
lower(CATEGORIA_EMPLEADO))),
NACIONALIDAD varchar(15),
ESTADO_FUMADOR varchar(6),
ESTADO_ACTUAL varchar(15),
CURSO varchar(15),
NECESIDADES varchar(50),
COMENTARIOS varchar(50)
constraint CKC_COMENTARIOS_ESTUDIAN check (COMENTARIOS is null or
(COMENTARIOS between '0' and '30' and COMENTARIOS = lower(COMENTARIOS))),
constraint PK_ESTUDIANTE primary key (ID_ESTUDIANTE)
);
/*==============================================================*/
/* Index: ESTUDIANTE_PK */
/*==============================================================*/
create unique index ESTUDIANTE_PK on ESTUDIANTE (
ID_ESTUDIANTE ASC
);
/*==============================================================*/
/* Index: ENVIA_FK */
/*==============================================================*/
create index ENVIA_FK on ESTUDIANTE (
NUM_FACTURA ASC
);
/*==============================================================*/
/* Index: PERTENECER_FK */
/*==============================================================*/
create index PERTENECER_FK on ESTUDIANTE (
ID_ESTUDIANTE ASC
);
/*==============================================================*/
/* Table: FACTURA */
/*==============================================================*/
create table FACTURA
(
NUM_FACTURA varchar(5) not null,
ID_ESTUDIANTE varchar(10),
NUM_A varchar(5),
SEMESTRE varchar(10),
TIPO_PAGO float,
constraint PK_FACTURA primary key (NUM_FACTURA)
);
/*==============================================================*/
/* Index: FACTURA_PK */
/*==============================================================*/
create unique index FACTURA_PK on FACTURA (
NUM_FACTURA ASC
);
/*==============================================================*/
/* Index: ENVIA2_FK */
/*==============================================================*/
create index ENVIA2_FK on FACTURA (
ID_ESTUDIANTE ASC
);
/*==============================================================*/
/* Table: HABITACION */
/*==============================================================*/
create table HABITACION
(
NUM_IDENTIFICACION_HABITACION varchar(5) not null,
NUM_HABITACION integer not null,
IMPORTE_MENSUAL float,
constraint PK_HABITACION primary key (NUM_IDENTIFICACION_HABITACION)
);
/*==============================================================*/
/* Index: HABITACION_PK */
/*==============================================================*/
create unique index HABITACION_PK on HABITACION (
NUM_IDENTIFICACION_HABITACION ASC
);
/*==============================================================*/
/* Table: INSPECCION */
/*==============================================================*/
create table INSPECCION
(
ID_INSPECCION varchar(5) not null,
FECHA_INSPECCION date,
ESTADO_INMUEBLE varchar(15),
COMENTARIOS varchar(50)
constraint CKC_COMENTARIOS_INSPECCI check (COMENTARIOS is null or
(COMENTARIOS between '0' and '30' and COMENTARIOS = lower(COMENTARIOS))),
constraint PK_INSPECCION primary key (ID_INSPECCION)
);
/*==============================================================*/
/* Index: INSPECCION_PK */
/*==============================================================*/
create unique index INSPECCION_PK on INSPECCION (
ID_INSPECCION ASC
);
/*==============================================================*/
/* Table: PAGO */
/*==============================================================*/
create table PAGO
(
NUM_PAGO_FACTURA varchar(5) not null,
NUM_FACTURA varchar(5),
FECHA_PAGO date,
MODO_PAGO varchar(10),
FECHA_RECORDATORIO date,
constraint PK_PAGO primary key (NUM_PAGO_FACTURA)
);
/*==============================================================*/
/* Index: PAGO_PK */
/*==============================================================*/
create unique index PAGO_PK on PAGO (
NUM_PAGO_FACTURA ASC
);
/*==============================================================*/
/* Index: TIENEF_FK */
/*==============================================================*/
create index TIENEF_FK on PAGO (
NUM_FACTURA ASC
);
/*==============================================================*/
/* Table: PARIENTE */
/*==============================================================*/
create table PARIENTE
(
ID_PARIENTE varchar(10) not null,
ID_ESTUDIANTE varchar(10),
RELACION varchar(25),
DIRECCION varchar(30),
NUM_FONO varchar(15),
constraint PK_PARIENTE primary key (ID_PARIENTE)
);
/*==============================================================*/
/* Index: PARIENTE_PK */
/*==============================================================*/
create unique index PARIENTE_PK on PARIENTE (
ID_PARIENTE ASC
);
/*==============================================================*/
/* Index: TIENE_FK */
/*==============================================================*/
create index TIENE_FK on PARIENTE (
ID_ESTUDIANTE ASC
);
/*==============================================================*/
/* Table: PISO */
/*==============================================================*/
create table PISO
(
NUM_APARTAMENTO varchar(5) not null,
NUM_IDENTIFICACION_HABITACION varchar(5),
CAPACIDAD_ESTUDIANTES integer,
DIRECCION_APARTAMENTO varchar(30),
NUM_HABITACION integer,
constraint PK_PISO primary key (NUM_APARTAMENTO)
);
/*==============================================================*/
/* Index: PISO_PK */
/*==============================================================*/
create unique index PISO_PK on PISO (
NUM_APARTAMENTO ASC
);
/*==============================================================*/
/* Index: RELATIONSHIP_8_FK */
/*==============================================================*/
create index RELATIONSHIP_8_FK on PISO (
NUM_IDENTIFICACION_HABITACION ASC
);
/*==============================================================*/
/* Table: REALIAZA */
/*==============================================================*/
create table REALIAZA
(
ID_INSPECCION varchar(5) not null,
NUM_APARTAMENTO varchar(5) not null,
constraint PK_REALIAZA primary key clustered (ID_INSPECCION, NUM_APARTAMENTO)
);
/*==============================================================*/
/* Index: REALIAZA_PK */
/*==============================================================*/
create unique clustered index REALIAZA_PK on REALIAZA (
ID_INSPECCION ASC,
NUM_APARTAMENTO ASC
);
/*==============================================================*/
/* Index: REALIAZA_FK */
/*==============================================================*/
create index REALIAZA_FK on REALIAZA (
ID_INSPECCION ASC
);
/*==============================================================*/
/* Index: REALIAZA2_FK */
/*==============================================================*/
create index REALIAZA2_FK on REALIAZA (
NUM_APARTAMENTO ASC
);
/*==============================================================*/
/* Table: RESIDENCIA */
/*==============================================================*/
create table RESIDENCIA
(
ID_ESTUDIANTE varchar(10),
ID_RESIDENCIA varchar(5) not null,
NOMBRE_RESIDENCIA varchar(25),
DIRECCION_RESIDENCIA varchar(30),
NUM_TELEFONO varchar(15),
constraint AK_ID_RESIDENCIA_RESIDENC unique (ID_RESIDENCIA)
);
/*==============================================================*/
/* Index: RESIDENCIA_AK */
/*==============================================================*/
create unique index RESIDENCIA_AK on RESIDENCIA (
ID_RESIDENCIA ASC
);
alter table CONTRATO
add constraint FK_CONTRATO_REALIZA_ESTUDIAN foreign key (ID_ESTUDIANTE)
references ESTUDIANTE (ID_ESTUDIANTE)
on update restrict
on delete restrict;
alter table CURSOS
add constraint FK_CURSOS_PERTENECE_ESTUDIAN foreign key (ID_ESTUDIANTE)
references ESTUDIANTE (ID_ESTUDIANTE)
on update restrict
on delete restrict;
alter table EMPLEADO
add constraint FK_EMPLEADO_RELATIONS_ESTUDIAN foreign key (ID_ESTUDIANTE)
references ESTUDIANTE (ID_ESTUDIANTE)
on update restrict
on delete restrict;
alter table ESTUDIANTE
add constraint FK_ESTUDIAN_ENVIA_FACTURA foreign key (NUM_FACTURA)
references FACTURA (NUM_FACTURA)
on update restrict
on delete restrict;
alter table FACTURA
add constraint FK_FACTURA_ENVIA2_ESTUDIAN foreign key (ID_ESTUDIANTE)
references ESTUDIANTE (ID_ESTUDIANTE)
on update restrict
on delete restrict;
alter table PAGO
add constraint FK_PAGO_TIENEF_FACTURA foreign key (NUM_FACTURA)
references FACTURA (NUM_FACTURA)
on update restrict
on delete restrict;
alter table PARIENTE
add constraint FK_PARIENTE_TIENE_ESTUDIAN foreign key (ID_ESTUDIANTE)
references ESTUDIANTE (ID_ESTUDIANTE)
on update restrict
on delete restrict;
alter table PISO
add constraint FK_PISO_RELATIONS_HABITACI foreign key
(NUM_IDENTIFICACION_HABITACION)
references HABITACION (NUM_IDENTIFICACION_HABITACION)
on update restrict
on delete restrict;
alter table REALIAZA
add constraint FK_REALIAZA_REALIAZA_INSPECCI foreign key (ID_INSPECCION)
references INSPECCION (ID_INSPECCION)
on update restrict
on delete restrict;
alter table REALIAZA
add constraint FK_REALIAZA_REALIAZA2_PISO foreign key (NUM_APARTAMENTO)
references PISO (NUM_APARTAMENTO)
on update restrict
on delete restrict;
alter table RESIDENCIA
add constraint FK_RESIDENC_PERTENECE_ESTUDIAN foreign key (ID_ESTUDIANTE)
references ESTUDIANTE (ID_ESTUDIANTE)
on update restrict
on delete restrict;
3. Basándose en el caso de esdio, identifique las potenciales amenaas a las que tendría que
enfrentarse y proponga contramedidas para prevenirlas
Las vulneravilidades que se podrian presentar es que el acceso a la base de datos no sea
controlada a tiempo y que datos muy importantes como informacion de estudiante y tutores esten
disponible para todo tipo de usuario, llegando a la conclucion de que los datos puedes ser robados
o modificados.

Weitere ähnliche Inhalte

Andere mochten auch

Tarifario Modelo 2010-2011
Tarifario Modelo 2010-2011Tarifario Modelo 2010-2011
Tarifario Modelo 2010-2011bilove
 
Progetto Radiolina
Progetto RadiolinaProgetto Radiolina
Progetto Radiolinapaola iasci
 
HL7 DFDL with WebSphere Message Broker
HL7 DFDL with WebSphere Message BrokerHL7 DFDL with WebSphere Message Broker
HL7 DFDL with WebSphere Message BrokerAnt Phillips
 
PRESENTACIÓN -ANÁLISIS DE LA IMPLANTACIÓN DE PROCESOS DE DIRECCIÓN ESTRATÉGIC...
PRESENTACIÓN -ANÁLISIS DE LA IMPLANTACIÓN DE PROCESOS DE DIRECCIÓN ESTRATÉGIC...PRESENTACIÓN -ANÁLISIS DE LA IMPLANTACIÓN DE PROCESOS DE DIRECCIÓN ESTRATÉGIC...
PRESENTACIÓN -ANÁLISIS DE LA IMPLANTACIÓN DE PROCESOS DE DIRECCIÓN ESTRATÉGIC...Encarna Aguilera
 
Nuevas extensiones de dominio y Trademark Clearinghouse
Nuevas extensiones de dominio y Trademark ClearinghouseNuevas extensiones de dominio y Trademark Clearinghouse
Nuevas extensiones de dominio y Trademark ClearinghouseNominalia
 
Unser Wasser. Unser Leben - warum VortexPower
Unser Wasser. Unser Leben - warum VortexPower Unser Wasser. Unser Leben - warum VortexPower
Unser Wasser. Unser Leben - warum VortexPower Matthias C. Mend
 
Claves de una estrategia en redes sociales
Claves de una estrategia en redes socialesClaves de una estrategia en redes sociales
Claves de una estrategia en redes socialesTristán Elósegui
 
Curso De Tarot 2
Curso De Tarot 2Curso De Tarot 2
Curso De Tarot 2Juan Carlos
 
Simplified Technical English: How Standardizing Content Saves Translation Cos...
Simplified Technical English: How Standardizing Content Saves Translation Cos...Simplified Technical English: How Standardizing Content Saves Translation Cos...
Simplified Technical English: How Standardizing Content Saves Translation Cos...Scott Abel
 
Multiband Transceivers - [Chapter 7] Multi-mode/Multi-band GSM/GPRS/TDMA/AMP...
Multiband Transceivers - [Chapter 7]  Multi-mode/Multi-band GSM/GPRS/TDMA/AMP...Multiband Transceivers - [Chapter 7]  Multi-mode/Multi-band GSM/GPRS/TDMA/AMP...
Multiband Transceivers - [Chapter 7] Multi-mode/Multi-band GSM/GPRS/TDMA/AMP...Simen Li
 

Andere mochten auch (15)

Comité de Dirección del itdUPM. 19 de diciembre de 2016
Comité de Dirección del itdUPM. 19 de diciembre de 2016Comité de Dirección del itdUPM. 19 de diciembre de 2016
Comité de Dirección del itdUPM. 19 de diciembre de 2016
 
Tarifario Modelo 2010-2011
Tarifario Modelo 2010-2011Tarifario Modelo 2010-2011
Tarifario Modelo 2010-2011
 
Movie Clips
Movie ClipsMovie Clips
Movie Clips
 
Progetto Radiolina
Progetto RadiolinaProgetto Radiolina
Progetto Radiolina
 
HL7 DFDL with WebSphere Message Broker
HL7 DFDL with WebSphere Message BrokerHL7 DFDL with WebSphere Message Broker
HL7 DFDL with WebSphere Message Broker
 
PRESENTACIÓN -ANÁLISIS DE LA IMPLANTACIÓN DE PROCESOS DE DIRECCIÓN ESTRATÉGIC...
PRESENTACIÓN -ANÁLISIS DE LA IMPLANTACIÓN DE PROCESOS DE DIRECCIÓN ESTRATÉGIC...PRESENTACIÓN -ANÁLISIS DE LA IMPLANTACIÓN DE PROCESOS DE DIRECCIÓN ESTRATÉGIC...
PRESENTACIÓN -ANÁLISIS DE LA IMPLANTACIÓN DE PROCESOS DE DIRECCIÓN ESTRATÉGIC...
 
Formula magistral desmopresina
Formula magistral desmopresinaFormula magistral desmopresina
Formula magistral desmopresina
 
OpenStack Astara
OpenStack AstaraOpenStack Astara
OpenStack Astara
 
Internet 2
Internet 2Internet 2
Internet 2
 
Nuevas extensiones de dominio y Trademark Clearinghouse
Nuevas extensiones de dominio y Trademark ClearinghouseNuevas extensiones de dominio y Trademark Clearinghouse
Nuevas extensiones de dominio y Trademark Clearinghouse
 
Unser Wasser. Unser Leben - warum VortexPower
Unser Wasser. Unser Leben - warum VortexPower Unser Wasser. Unser Leben - warum VortexPower
Unser Wasser. Unser Leben - warum VortexPower
 
Claves de una estrategia en redes sociales
Claves de una estrategia en redes socialesClaves de una estrategia en redes sociales
Claves de una estrategia en redes sociales
 
Curso De Tarot 2
Curso De Tarot 2Curso De Tarot 2
Curso De Tarot 2
 
Simplified Technical English: How Standardizing Content Saves Translation Cos...
Simplified Technical English: How Standardizing Content Saves Translation Cos...Simplified Technical English: How Standardizing Content Saves Translation Cos...
Simplified Technical English: How Standardizing Content Saves Translation Cos...
 
Multiband Transceivers - [Chapter 7] Multi-mode/Multi-band GSM/GPRS/TDMA/AMP...
Multiband Transceivers - [Chapter 7]  Multi-mode/Multi-band GSM/GPRS/TDMA/AMP...Multiband Transceivers - [Chapter 7]  Multi-mode/Multi-band GSM/GPRS/TDMA/AMP...
Multiband Transceivers - [Chapter 7] Multi-mode/Multi-band GSM/GPRS/TDMA/AMP...
 

Mehr von Marilyn Jaramillo (20)

Tecnologías de internet en la Educación
Tecnologías de internet en la EducaciónTecnologías de internet en la Educación
Tecnologías de internet en la Educación
 
Juan carlos torres i summit-2010-1
Juan carlos torres i summit-2010-1Juan carlos torres i summit-2010-1
Juan carlos torres i summit-2010-1
 
simulación OSI
simulación OSIsimulación OSI
simulación OSI
 
Capa transporte
Capa transporteCapa transporte
Capa transporte
 
Informe
InformeInforme
Informe
 
Mineria de datos secuenciales
Mineria de datos secuencialesMineria de datos secuenciales
Mineria de datos secuenciales
 
Lesiones sistémicas por calor
Lesiones sistémicas por calorLesiones sistémicas por calor
Lesiones sistémicas por calor
 
caso de DreamHome BD
caso de DreamHome BDcaso de DreamHome BD
caso de DreamHome BD
 
Deber base
Deber baseDeber base
Deber base
 
Ejercicios capitulo 6
Ejercicios capitulo 6Ejercicios capitulo 6
Ejercicios capitulo 6
 
Modelo Entidad-Relacion 2
Modelo Entidad-Relacion 2Modelo Entidad-Relacion 2
Modelo Entidad-Relacion 2
 
Ensayo sociedad de la infromacion
Ensayo sociedad de la infromacionEnsayo sociedad de la infromacion
Ensayo sociedad de la infromacion
 
Lesiones SistéMicas Por Calor
Lesiones SistéMicas Por CalorLesiones SistéMicas Por Calor
Lesiones SistéMicas Por Calor
 
Mineria De Datos Secuenciales
Mineria De Datos SecuencialesMineria De Datos Secuenciales
Mineria De Datos Secuenciales
 
DescripcióN Del Producto
DescripcióN Del ProductoDescripcióN Del Producto
DescripcióN Del Producto
 
Capitulo 19 Modelado De DiseñO
Capitulo 19 Modelado De DiseñOCapitulo 19 Modelado De DiseñO
Capitulo 19 Modelado De DiseñO
 
open innovation y ventajas GC
open innovation y ventajas  GCopen innovation y ventajas  GC
open innovation y ventajas GC
 
Colas
ColasColas
Colas
 
Casos De Uso
Casos De UsoCasos De Uso
Casos De Uso
 
Diferencia Entre Novio Y Amigo
Diferencia Entre Novio Y AmigoDiferencia Entre Novio Y Amigo
Diferencia Entre Novio Y Amigo
 

Modelo conceptual de BD

  • 1. Universidad Técnica Particular de Loja BASE DE DATOS PRIMER BIMESTRE Ing. Juan Carlos Morocho Alumna: Marilyn Jaramillo 2009
  • 2. 1 Cree un modelo conceptual de los datos y compruebe que soporta las transacciones requeridas, para ello utilice cualquiera de los dos métodos estudiados en el capítulo 1 Diseño Conceptual de la base de datos ENTIDADES  Factura  Pago de factura  Consejero  Estudiante  Residencia  Curso  Pariente  Contrato  Inspeccion  Empleado  Habitacion  DIAGRAMA CONCEPTUAL 2 Genere el modelo de datos lógico a partir del modelo conceptual: DIAGRAMA FISICO envia tieneF tiene pertenece Relationship_8 realiaza perteneceR Relationship_11 realiza FACTURA num_factura num_A semestre tipo_pago <pi> Variable characters (5) Variable characters (5) Variable characters (10) Float <M> num_factura <pi> PAGO num_pago_factura fecha_pago modo_pago fecha_recordatorio <pi> Variable characters (5) Date Variable characters (10) Date <M> num_pago_factura <pi> ESTUDIANTE id_estudiante num_matricula nombre_estudiante apellido_estudiante fecha_nac_empleado sexo_empleado categoria_empleado nacionalidad estado_fumador estado_actual curso necesidades comentarios Variable characters (10) Variable characters (5) Variable characters (25) Variable characters (25) Date Variable characters (2) Variable characters (30) Variable characters (15) Variable characters (6) Variable characters (15) Variable characters (15) Variable characters (50) Variable characters (50) <M> <M> CONTRATO num_A tiempo inicio_Alq final_alq periodo_min Variable characters (5) Variable characters (15) Variable characters (15) Date Date <M> PARIENTE id_pariente relacion direccion num_fono <pi> Variable characters (10) Variable characters (25) Variable characters (30) Variable characters (15) <M> id_pariente <pi> CURSOS num_curso titulo_curso id_empleado <pi> Variable characters (5) Variable characters (25) Variable characters (10) <M> num_curso <pi> Empleado id_empleado nombre_empleado apellido_empleado fecha_nac_empleado sexo_empleado categoria_empleado <pi> Variable characters (10) Variable characters (25) Variable characters (25) Date Variable characters (2) Variable characters (30) <M> Identifier_1 <pi> RESIDENCIA id_residencia nombre_residencia direccion_residencia num_telefono Variable characters (5) Variable characters (25) Variable characters (30) Variable characters (15) <M> HABITACION num_identificacion_habitacion num_habitacion importe_mensual <pi> Variable characters (5) Integer Float num_identifiacion_habitacion <pi> PISO num_apartamento capacidad_estudiantes direccion_apartamento num_habitacion <pi> Variable characters (5) Integer Variable characters (30) Integer <M> num_apartamento <pi> INSPECCION id_inspeccion fecha_inspeccion estado_inmueble comentarios <pi> Variable characters (5) Date Variable characters (15) Variable characters (50) <M> id_inspeccion <pi>
  • 3. /*==============================================================*/ /* DBMS name: Sybase SQL Anywhere 10 */ /* Created on: 11/05/2009 17:22:14 */ /*==============================================================*/ if exists(select 1 from sys.sysforeignkey where role='FK_CONTRATO_REALIZA_ESTUDIAN') then alter table CONTRATO delete foreign key FK_CONTRATO_REALIZA_ESTUDIAN end if; if exists(select 1 from sys.sysforeignkey where role='FK_CURSOS_PERTENECE_ESTUDIAN') then alter table CURSOS delete foreign key FK_CURSOS_PERTENECE_ESTUDIAN end if; if exists(select 1 from sys.sysforeignkey where role='FK_EMPLEADO_RELATIONS_ESTUDIAN') then alter table EMPLEADO delete foreign key FK_EMPLEADO_RELATIONS_ESTUDIAN end if; if exists(select 1 from sys.sysforeignkey where role='FK_ESTUDIAN_ENVIA_FACTURA') then alter table ESTUDIANTE delete foreign key FK_ESTUDIAN_ENVIA_FACTURA end if; if exists(select 1 from sys.sysforeignkey where role='FK_FACTURA_ENVIA2_ESTUDIAN') then alter table FACTURA delete foreign key FK_FACTURA_ENVIA2_ESTUDIAN end if; if exists(select 1 from sys.sysforeignkey where role='FK_PAGO_TIENEF_FACTURA') then alter table PAGO FK_ESTUDIAN_ENVIA_FACTURAFK_FACTURA_ENVIA2_ESTUDIAN FK_PAGO_TIENEF_FACTURA FK_PARIENTE_TIENE_ESTUDIAN FK_CURSOS_PERTENECE_ESTUDIAN FK_PISO_RELATIONS_HABITACI FK_REALIAZA_REALIAZA2_PISO FK_REALIAZA_REALIAZA_INSPECCI FK_RESIDENC_PERTENECE_ESTUDIAN FK_EMPLEADO_RELATIONS_ESTUDIAN FK_CONTRATO_REALIZA_ESTUDIAN FACTURA num_factura id_estudiante num_A semestre tipo_pago varchar(5) varchar(10) varchar(5) varchar(10) float <pk> <fk> PAGO num_pago_factura num_factura fecha_pago modo_pago fecha_recordatorio varchar(5) varchar(5) date varchar(10) date <pk> <fk> ESTUDIANTE id_estudiante num_factura num_matricula nombre_estudiante apellido_estudiante fecha_nac_empleado sexo_empleado categoria_empleado nacionalidad estado_fumador estado_actual curso necesidades comentarios varchar(10) varchar(5) varchar(5) varchar(25) varchar(25) date varchar(2) varchar(30) varchar(15) varchar(6) varchar(15) varchar(15) varchar(50) varchar(50) <pk> <fk> CONTRATO id_estudiante num_A tiempo inicio_Alq final_alq periodo_min varchar(10) varchar(5) varchar(15) varchar(15) date date <fk> PARIENTE id_pariente id_estudiante relacion direccion num_fono varchar(10) varchar(10) varchar(25) varchar(30) varchar(15) <pk> <fk> CURSOS num_curso id_estudiante titulo_curso id_empleado varchar(5) varchar(10) varchar(25) varchar(10) <pk> <fk> RESIDENCIA id_estudiante id_residencia nombre_residencia direccion_residencia num_telefono varchar(10) varchar(5) varchar(25) varchar(30) varchar(15) <fk> <ak> HABITACION num_identificacion_habitacion num_habitacion importe_mensual varchar(5) integer float <pk> PISO num_apartamento num_identificacion_habitacion capacidad_estudiantes direccion_apartamento num_habitacion varchar(5) varchar(5) integer varchar(30) integer <pk> <fk> INSPECCION id_inspeccion fecha_inspeccion estado_inmueble comentarios varchar(5) date varchar(15) varchar(50) <pk> realiaza id_inspeccion num_apartamento varchar(5) varchar(5) <pk,fk1> <pk,fk2>
  • 4. delete foreign key FK_PAGO_TIENEF_FACTURA end if; if exists(select 1 from sys.sysforeignkey where role='FK_PARIENTE_TIENE_ESTUDIAN') then alter table PARIENTE delete foreign key FK_PARIENTE_TIENE_ESTUDIAN end if; if exists(select 1 from sys.sysforeignkey where role='FK_PISO_RELATIONS_HABITACI') then alter table PISO delete foreign key FK_PISO_RELATIONS_HABITACI end if; if exists(select 1 from sys.sysforeignkey where role='FK_REALIAZA_REALIAZA_INSPECCI') then alter table REALIAZA delete foreign key FK_REALIAZA_REALIAZA_INSPECCI end if; if exists(select 1 from sys.sysforeignkey where role='FK_REALIAZA_REALIAZA2_PISO') then alter table REALIAZA delete foreign key FK_REALIAZA_REALIAZA2_PISO end if; if exists(select 1 from sys.sysforeignkey where role='FK_RESIDENC_PERTENECE_ESTUDIAN') then alter table RESIDENCIA delete foreign key FK_RESIDENC_PERTENECE_ESTUDIAN end if; if exists( select 1 from sys.sysindex i, sys.systable t where i.table_id=t.table_id and i.index_name='REALIZA_FK' and t.table_name='CONTRATO' ) then drop index CONTRATO.REALIZA_FK end if; if exists( select 1 from sys.systable where table_name='CONTRATO' and table_type in ('BASE', 'GBL TEMP') ) then drop table CONTRATO end if; if exists( select 1 from sys.sysindex i, sys.systable t where i.table_id=t.table_id and i.index_name='PERTENECE_FK' and t.table_name='CURSOS' ) then drop index CURSOS.PERTENECE_FK end if; if exists(
  • 5. select 1 from sys.sysindex i, sys.systable t where i.table_id=t.table_id and i.index_name='CURSOS_PK' and t.table_name='CURSOS' ) then drop index CURSOS.CURSOS_PK end if; if exists( select 1 from sys.systable where table_name='CURSOS' and table_type in ('BASE', 'GBL TEMP') ) then drop table CURSOS end if; if exists( select 1 from sys.sysindex i, sys.systable t where i.table_id=t.table_id and i.index_name='RELATIONSHIP_11_FK' and t.table_name='EMPLEADO' ) then drop index EMPLEADO.RELATIONSHIP_11_FK end if; if exists( select 1 from sys.sysindex i, sys.systable t where i.table_id=t.table_id and i.index_name='EMPLEADO_PK' and t.table_name='EMPLEADO' ) then drop index EMPLEADO.EMPLEADO_PK end if; if exists( select 1 from sys.systable where table_name='EMPLEADO' and table_type in ('BASE', 'GBL TEMP') ) then drop table EMPLEADO end if; if exists( select 1 from sys.sysindex i, sys.systable t where i.table_id=t.table_id and i.index_name='PERTENECER_FK' and t.table_name='ESTUDIANTE' ) then drop index ESTUDIANTE.PERTENECER_FK end if; if exists( select 1 from sys.sysindex i, sys.systable t where i.table_id=t.table_id and i.index_name='ENVIA_FK' and t.table_name='ESTUDIANTE'
  • 6. ) then drop index ESTUDIANTE.ENVIA_FK end if; if exists( select 1 from sys.sysindex i, sys.systable t where i.table_id=t.table_id and i.index_name='ESTUDIANTE_PK' and t.table_name='ESTUDIANTE' ) then drop index ESTUDIANTE.ESTUDIANTE_PK end if; if exists( select 1 from sys.systable where table_name='ESTUDIANTE' and table_type in ('BASE', 'GBL TEMP') ) then drop table ESTUDIANTE end if; if exists( select 1 from sys.sysindex i, sys.systable t where i.table_id=t.table_id and i.index_name='ENVIA2_FK' and t.table_name='FACTURA' ) then drop index FACTURA.ENVIA2_FK end if; if exists( select 1 from sys.sysindex i, sys.systable t where i.table_id=t.table_id and i.index_name='FACTURA_PK' and t.table_name='FACTURA' ) then drop index FACTURA.FACTURA_PK end if; if exists( select 1 from sys.systable where table_name='FACTURA' and table_type in ('BASE', 'GBL TEMP') ) then drop table FACTURA end if; if exists( select 1 from sys.sysindex i, sys.systable t where i.table_id=t.table_id and i.index_name='HABITACION_PK' and t.table_name='HABITACION' ) then drop index HABITACION.HABITACION_PK end if;
  • 7. if exists( select 1 from sys.systable where table_name='HABITACION' and table_type in ('BASE', 'GBL TEMP') ) then drop table HABITACION end if; if exists( select 1 from sys.sysindex i, sys.systable t where i.table_id=t.table_id and i.index_name='INSPECCION_PK' and t.table_name='INSPECCION' ) then drop index INSPECCION.INSPECCION_PK end if; if exists( select 1 from sys.systable where table_name='INSPECCION' and table_type in ('BASE', 'GBL TEMP') ) then drop table INSPECCION end if; if exists( select 1 from sys.sysindex i, sys.systable t where i.table_id=t.table_id and i.index_name='TIENEF_FK' and t.table_name='PAGO' ) then drop index PAGO.TIENEF_FK end if; if exists( select 1 from sys.sysindex i, sys.systable t where i.table_id=t.table_id and i.index_name='PAGO_PK' and t.table_name='PAGO' ) then drop index PAGO.PAGO_PK end if; if exists( select 1 from sys.systable where table_name='PAGO' and table_type in ('BASE', 'GBL TEMP') ) then drop table PAGO end if; if exists( select 1 from sys.sysindex i, sys.systable t where i.table_id=t.table_id and i.index_name='TIENE_FK' and t.table_name='PARIENTE'
  • 8. ) then drop index PARIENTE.TIENE_FK end if; if exists( select 1 from sys.sysindex i, sys.systable t where i.table_id=t.table_id and i.index_name='PARIENTE_PK' and t.table_name='PARIENTE' ) then drop index PARIENTE.PARIENTE_PK end if; if exists( select 1 from sys.systable where table_name='PARIENTE' and table_type in ('BASE', 'GBL TEMP') ) then drop table PARIENTE end if; if exists( select 1 from sys.sysindex i, sys.systable t where i.table_id=t.table_id and i.index_name='RELATIONSHIP_8_FK' and t.table_name='PISO' ) then drop index PISO.RELATIONSHIP_8_FK end if; if exists( select 1 from sys.sysindex i, sys.systable t where i.table_id=t.table_id and i.index_name='PISO_PK' and t.table_name='PISO' ) then drop index PISO.PISO_PK end if; if exists( select 1 from sys.systable where table_name='PISO' and table_type in ('BASE', 'GBL TEMP') ) then drop table PISO end if; if exists( select 1 from sys.sysindex i, sys.systable t where i.table_id=t.table_id and i.index_name='REALIAZA2_FK' and t.table_name='REALIAZA' ) then drop index REALIAZA.REALIAZA2_FK end if;
  • 9. if exists( select 1 from sys.sysindex i, sys.systable t where i.table_id=t.table_id and i.index_name='REALIAZA_FK' and t.table_name='REALIAZA' ) then drop index REALIAZA.REALIAZA_FK end if; if exists( select 1 from sys.sysindex i, sys.systable t where i.table_id=t.table_id and i.index_name='REALIAZA_PK' and t.table_name='REALIAZA' ) then drop index REALIAZA.REALIAZA_PK end if; if exists( select 1 from sys.systable where table_name='REALIAZA' and table_type in ('BASE', 'GBL TEMP') ) then drop table REALIAZA end if; if exists( select 1 from sys.sysindex i, sys.systable t where i.table_id=t.table_id and i.index_name='RESIDENCIA_AK' and t.table_name='RESIDENCIA' ) then drop index RESIDENCIA.RESIDENCIA_AK end if; if exists( select 1 from sys.systable where table_name='RESIDENCIA' and table_type in ('BASE', 'GBL TEMP') ) then drop table RESIDENCIA end if; /*==============================================================*/ /* Table: CONTRATO */ /*==============================================================*/ create table CONTRATO ( ID_ESTUDIANTE varchar(10), NUM_A varchar(5) not null, TIEMPO varchar(15), INICIO_ALQ varchar(15), FINAL_ALQ date, PERIODO_MIN date );
  • 10. /*==============================================================*/ /* Index: REALIZA_FK */ /*==============================================================*/ create index REALIZA_FK on CONTRATO ( ID_ESTUDIANTE ASC ); /*==============================================================*/ /* Table: CURSOS */ /*==============================================================*/ create table CURSOS ( NUM_CURSO varchar(5) not null, ID_ESTUDIANTE varchar(10), TITULO_CURSO varchar(25), ID_EMPLEADO varchar(10), constraint PK_CURSOS primary key (NUM_CURSO) ); /*==============================================================*/ /* Index: CURSOS_PK */ /*==============================================================*/ create unique index CURSOS_PK on CURSOS ( NUM_CURSO ASC ); /*==============================================================*/ /* Index: PERTENECE_FK */ /*==============================================================*/ create index PERTENECE_FK on CURSOS ( ID_ESTUDIANTE ASC ); /*==============================================================*/ /* Table: EMPLEADO */ /*==============================================================*/ create table EMPLEADO ( ID_ESTUDIANTE2 varchar(10) not null, ID_ESTUDIANTE varchar(10), NOMBRE_EMPLEADO varchar(25), APELLIDO_EMPLEADO varchar(25), FECHA_NAC_EMPLEADO date, SEXO_EMPLEADO varchar(2), CATEGORIA_EMPLEADO varchar(30) constraint CKC_CATEGORIA_EMPLEAD_EMPLEADO check (CATEGORIA_EMPLEADO is null or (CATEGORIA_EMPLEADO between '30' and '30' and CATEGORIA_EMPLEADO = lower(CATEGORIA_EMPLEADO))), constraint PK_EMPLEADO primary key (ID_ESTUDIANTE2) ); /*==============================================================*/ /* Index: EMPLEADO_PK */ /*==============================================================*/ create unique index EMPLEADO_PK on EMPLEADO ( ID_ESTUDIANTE2 ASC
  • 11. ); /*==============================================================*/ /* Index: RELATIONSHIP_11_FK */ /*==============================================================*/ create index RELATIONSHIP_11_FK on EMPLEADO ( ID_ESTUDIANTE ASC ); /*==============================================================*/ /* Table: ESTUDIANTE */ /*==============================================================*/ create table ESTUDIANTE ( ID_ESTUDIANTE varchar(10) not null, NUM_FACTURA varchar(5), NUM_MATRICULA varchar(5) not null, NOMBRE_ESTUDIANTE varchar(25), APELLIDO_ESTUDIANTE varchar(25), FECHA_NAC_EMPLEADO date, SEXO_EMPLEADO varchar(2), CATEGORIA_EMPLEADO varchar(30) constraint CKC_CATEGORIA_EMPLEAD_ESTUDIAN check (CATEGORIA_EMPLEADO is null or (CATEGORIA_EMPLEADO between '30' and '30' and CATEGORIA_EMPLEADO = lower(CATEGORIA_EMPLEADO))), NACIONALIDAD varchar(15), ESTADO_FUMADOR varchar(6), ESTADO_ACTUAL varchar(15), CURSO varchar(15), NECESIDADES varchar(50), COMENTARIOS varchar(50) constraint CKC_COMENTARIOS_ESTUDIAN check (COMENTARIOS is null or (COMENTARIOS between '0' and '30' and COMENTARIOS = lower(COMENTARIOS))), constraint PK_ESTUDIANTE primary key (ID_ESTUDIANTE) ); /*==============================================================*/ /* Index: ESTUDIANTE_PK */ /*==============================================================*/ create unique index ESTUDIANTE_PK on ESTUDIANTE ( ID_ESTUDIANTE ASC ); /*==============================================================*/ /* Index: ENVIA_FK */ /*==============================================================*/ create index ENVIA_FK on ESTUDIANTE ( NUM_FACTURA ASC ); /*==============================================================*/ /* Index: PERTENECER_FK */ /*==============================================================*/ create index PERTENECER_FK on ESTUDIANTE ( ID_ESTUDIANTE ASC );
  • 12. /*==============================================================*/ /* Table: FACTURA */ /*==============================================================*/ create table FACTURA ( NUM_FACTURA varchar(5) not null, ID_ESTUDIANTE varchar(10), NUM_A varchar(5), SEMESTRE varchar(10), TIPO_PAGO float, constraint PK_FACTURA primary key (NUM_FACTURA) ); /*==============================================================*/ /* Index: FACTURA_PK */ /*==============================================================*/ create unique index FACTURA_PK on FACTURA ( NUM_FACTURA ASC ); /*==============================================================*/ /* Index: ENVIA2_FK */ /*==============================================================*/ create index ENVIA2_FK on FACTURA ( ID_ESTUDIANTE ASC ); /*==============================================================*/ /* Table: HABITACION */ /*==============================================================*/ create table HABITACION ( NUM_IDENTIFICACION_HABITACION varchar(5) not null, NUM_HABITACION integer not null, IMPORTE_MENSUAL float, constraint PK_HABITACION primary key (NUM_IDENTIFICACION_HABITACION) ); /*==============================================================*/ /* Index: HABITACION_PK */ /*==============================================================*/ create unique index HABITACION_PK on HABITACION ( NUM_IDENTIFICACION_HABITACION ASC ); /*==============================================================*/ /* Table: INSPECCION */ /*==============================================================*/ create table INSPECCION ( ID_INSPECCION varchar(5) not null, FECHA_INSPECCION date, ESTADO_INMUEBLE varchar(15), COMENTARIOS varchar(50)
  • 13. constraint CKC_COMENTARIOS_INSPECCI check (COMENTARIOS is null or (COMENTARIOS between '0' and '30' and COMENTARIOS = lower(COMENTARIOS))), constraint PK_INSPECCION primary key (ID_INSPECCION) ); /*==============================================================*/ /* Index: INSPECCION_PK */ /*==============================================================*/ create unique index INSPECCION_PK on INSPECCION ( ID_INSPECCION ASC ); /*==============================================================*/ /* Table: PAGO */ /*==============================================================*/ create table PAGO ( NUM_PAGO_FACTURA varchar(5) not null, NUM_FACTURA varchar(5), FECHA_PAGO date, MODO_PAGO varchar(10), FECHA_RECORDATORIO date, constraint PK_PAGO primary key (NUM_PAGO_FACTURA) ); /*==============================================================*/ /* Index: PAGO_PK */ /*==============================================================*/ create unique index PAGO_PK on PAGO ( NUM_PAGO_FACTURA ASC ); /*==============================================================*/ /* Index: TIENEF_FK */ /*==============================================================*/ create index TIENEF_FK on PAGO ( NUM_FACTURA ASC ); /*==============================================================*/ /* Table: PARIENTE */ /*==============================================================*/ create table PARIENTE ( ID_PARIENTE varchar(10) not null, ID_ESTUDIANTE varchar(10), RELACION varchar(25), DIRECCION varchar(30), NUM_FONO varchar(15), constraint PK_PARIENTE primary key (ID_PARIENTE) ); /*==============================================================*/ /* Index: PARIENTE_PK */ /*==============================================================*/ create unique index PARIENTE_PK on PARIENTE (
  • 14. ID_PARIENTE ASC ); /*==============================================================*/ /* Index: TIENE_FK */ /*==============================================================*/ create index TIENE_FK on PARIENTE ( ID_ESTUDIANTE ASC ); /*==============================================================*/ /* Table: PISO */ /*==============================================================*/ create table PISO ( NUM_APARTAMENTO varchar(5) not null, NUM_IDENTIFICACION_HABITACION varchar(5), CAPACIDAD_ESTUDIANTES integer, DIRECCION_APARTAMENTO varchar(30), NUM_HABITACION integer, constraint PK_PISO primary key (NUM_APARTAMENTO) ); /*==============================================================*/ /* Index: PISO_PK */ /*==============================================================*/ create unique index PISO_PK on PISO ( NUM_APARTAMENTO ASC ); /*==============================================================*/ /* Index: RELATIONSHIP_8_FK */ /*==============================================================*/ create index RELATIONSHIP_8_FK on PISO ( NUM_IDENTIFICACION_HABITACION ASC ); /*==============================================================*/ /* Table: REALIAZA */ /*==============================================================*/ create table REALIAZA ( ID_INSPECCION varchar(5) not null, NUM_APARTAMENTO varchar(5) not null, constraint PK_REALIAZA primary key clustered (ID_INSPECCION, NUM_APARTAMENTO) ); /*==============================================================*/ /* Index: REALIAZA_PK */ /*==============================================================*/ create unique clustered index REALIAZA_PK on REALIAZA ( ID_INSPECCION ASC, NUM_APARTAMENTO ASC ); /*==============================================================*/
  • 15. /* Index: REALIAZA_FK */ /*==============================================================*/ create index REALIAZA_FK on REALIAZA ( ID_INSPECCION ASC ); /*==============================================================*/ /* Index: REALIAZA2_FK */ /*==============================================================*/ create index REALIAZA2_FK on REALIAZA ( NUM_APARTAMENTO ASC ); /*==============================================================*/ /* Table: RESIDENCIA */ /*==============================================================*/ create table RESIDENCIA ( ID_ESTUDIANTE varchar(10), ID_RESIDENCIA varchar(5) not null, NOMBRE_RESIDENCIA varchar(25), DIRECCION_RESIDENCIA varchar(30), NUM_TELEFONO varchar(15), constraint AK_ID_RESIDENCIA_RESIDENC unique (ID_RESIDENCIA) ); /*==============================================================*/ /* Index: RESIDENCIA_AK */ /*==============================================================*/ create unique index RESIDENCIA_AK on RESIDENCIA ( ID_RESIDENCIA ASC ); alter table CONTRATO add constraint FK_CONTRATO_REALIZA_ESTUDIAN foreign key (ID_ESTUDIANTE) references ESTUDIANTE (ID_ESTUDIANTE) on update restrict on delete restrict; alter table CURSOS add constraint FK_CURSOS_PERTENECE_ESTUDIAN foreign key (ID_ESTUDIANTE) references ESTUDIANTE (ID_ESTUDIANTE) on update restrict on delete restrict; alter table EMPLEADO add constraint FK_EMPLEADO_RELATIONS_ESTUDIAN foreign key (ID_ESTUDIANTE) references ESTUDIANTE (ID_ESTUDIANTE) on update restrict on delete restrict; alter table ESTUDIANTE add constraint FK_ESTUDIAN_ENVIA_FACTURA foreign key (NUM_FACTURA) references FACTURA (NUM_FACTURA) on update restrict on delete restrict;
  • 16. alter table FACTURA add constraint FK_FACTURA_ENVIA2_ESTUDIAN foreign key (ID_ESTUDIANTE) references ESTUDIANTE (ID_ESTUDIANTE) on update restrict on delete restrict; alter table PAGO add constraint FK_PAGO_TIENEF_FACTURA foreign key (NUM_FACTURA) references FACTURA (NUM_FACTURA) on update restrict on delete restrict; alter table PARIENTE add constraint FK_PARIENTE_TIENE_ESTUDIAN foreign key (ID_ESTUDIANTE) references ESTUDIANTE (ID_ESTUDIANTE) on update restrict on delete restrict; alter table PISO add constraint FK_PISO_RELATIONS_HABITACI foreign key (NUM_IDENTIFICACION_HABITACION) references HABITACION (NUM_IDENTIFICACION_HABITACION) on update restrict on delete restrict; alter table REALIAZA add constraint FK_REALIAZA_REALIAZA_INSPECCI foreign key (ID_INSPECCION) references INSPECCION (ID_INSPECCION) on update restrict on delete restrict; alter table REALIAZA add constraint FK_REALIAZA_REALIAZA2_PISO foreign key (NUM_APARTAMENTO) references PISO (NUM_APARTAMENTO) on update restrict on delete restrict; alter table RESIDENCIA add constraint FK_RESIDENC_PERTENECE_ESTUDIAN foreign key (ID_ESTUDIANTE) references ESTUDIANTE (ID_ESTUDIANTE) on update restrict on delete restrict; 3. Basándose en el caso de esdio, identifique las potenciales amenaas a las que tendría que enfrentarse y proponga contramedidas para prevenirlas Las vulneravilidades que se podrian presentar es que el acceso a la base de datos no sea controlada a tiempo y que datos muy importantes como informacion de estudiante y tutores esten disponible para todo tipo de usuario, llegando a la conclucion de que los datos puedes ser robados o modificados.