modelo conceptual de bd
DESCRIPTION
Diseño Conceptual de la base de datosTRANSCRIPT
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_8realiaza
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.