Está en la página 1de 7

Universidad Nacional Autónoma de México

Ingeniería en Computación

Laboratorio de Bases de Datos

Práctica 06: Diseño avanzado de modelos relacionales.

Fecha de realización: 19 de octubre de 2022.

Fecha de entrega: 19 de octubre de 2022.

Introducción:
Para obtener un modelo relacional a partir de un modelo Entidad-Relación extendido se tienen varias
opciones según el contexto.
Jerarquía de tipos:

Caso 1
• Se crea una relación para el supertipo.
• Se crean una relación para cada uno de los subtipos, propagándose la llave primaria
del supertipo a cada uno de los subtipos como llave foránea y este a su vez es llave
primaria.

1
Caso 2
• Se propagan los atributos del supertipo a los subtipos.
• Se crean una relación para cada uno de los subtipos, la llave primaria del supertipo
será la llave primaria de cada uno de los subtipos.

Caso 3
Generalización. No excluyente y sin atributos en los subtipos

PERSONAL= {noTrab(PK), nomPer}


TIPOPERSONAL= {noTrab (FK), tipoPersonal(CK)}
* Ck verifica los valores de ACADEMICO o
ADMINISTRATIVO

Caso 4

Generalización. Excluyente y sin atributos en los


subtipos

ESTUDIANTE={noCta(PK), nomEst, tipoEstud(CK)}


* Ck verifica los valores de REGULAR o NOREGULAR

Caso 5

Especialización No excluyente y sin atributos en los


subtipos
PERSONAL={idPer(PK),nomPer,...}
TIPO={idTipo(PK), descripTipo}
TIPOPERSONAL={idPer(FK), idTipo(FK)}
Habrá PK del supertipo que no tengan asignado ningún
tipo.

2
Caso 6

Especialización. Excluyente y sin atributos en los


subtipos
PERSONAL={idPer(PK), nomPer, idTipo(FK)}
TIPOPERSONAL={idTipo(PK), descripTipo}
La FK en el supertipo podrá tener valores nulos

Modelo relacional empleando herramientas CASE.

Relaciones Supertipo – Subtipo.

Existen 4 variantes para representar la cardinalidad entre un supertipo y su subtipo, las cuales se
expresan a través de 2 tipos de restricciones:

- Restricción Excluyente/traslape (disjoint / overlapping).

3
- Excluyente: Cada instancia del supertipo se asocia a lo más, con una instancia de alguno de
sus subtipos.
- Traslape: Cada instancia del supertipo puede asociarse con más de una
instancia de sus subtipos

Restricciones Parciales o totales (partial / complete).

- Total: Cada instancia del supertipo se asocia por lo menos con una instancia de sus subtipos.

- Parcial: Cada instancia del supertipo puede o no asociarse con las instancias de sus subtipos.

Objetivos:
El alumno comprenderá e implementará la construcción de modelos de datos relacionales
avanzados empleando herramientas CASE a partir de un diagrama ER extendido.

Desarrollo:
DROP TABLE EMPLEADORECURSIVIDAD_GCA;

CREATE TABLE EMPLEADORECURSIVIDAD_GCA(


MATRICULA NUMBER(9,0) NOT NULL,
NOMBRE VARCHAR(10) NOT NULL,
APELLIDO VARCHAR(10),
ID_JEFE NUMBER(8,0),
MONTO NUMBER(5,0),
ID_SUC NUMBER(8,0),
ID_DEPARTAMENTO NUMBER(8,0)
);

ALTER TABLE EMPLEADORECURSIVIDAD_GCA ADD CONSTRAINT PK_EMP200


PRIMARY KEY(MATRICULA);
ALTER TABLE EMPLEADORECURSIVIDAD_GCA ADD CONSTRAINT FK_EMP_R
FOREIGN KEY(ID_JEFE)
REFERENCES EMPLEADORECURSIVIDAD_GCA (MATRICULA);

SELECT * FROM EMPLEADORECURSIVIDAD_GCA;

INSERT INTO EMPLEADORECURSIVIDAD_GCA VALUES


(1,'JUAN','CALVILLO',NULL,75000,1,1);
INSERT INTO EMPLEADORECURSIVIDAD_GCA VALUES
(2,'ANGEL','PEREZ',1,75000,1,1);
INSERT INTO EMPLEADORECURSIVIDAD_GCA VALUES
(3,'MONSE','GUTIERREZ',1,85000,1,1);
INSERT INTO EMPLEADORECURSIVIDAD_GCA VALUES
(4,'RAMON','CALVILLO',5,85000,1,1);

4
DELETE FROM EMPLEADORECURSIVIDAD_GCA;

Fig.1 Tabla Empleado recursividad.

Resultados:

Ejemplo de recursividad en diagrama.

Fig. 2 Ejemplo recursividad.

Fig. 3 Código de ejemplo de recursividad.

5
Fig. 4 Tabla empleado.

Cuestionario:
- ¿Qué es una vista?

Una vista de base de datos es un subconjunto de una base de datos y se basa en una consulta que se
ejecuta en una o más tablas de base de datos. Las vistas de base de datos se guardan en la base de
datos como consultas con nombre y se pueden utilizar para guardar consultas completas que se
utilizan con frecuencia.

Hay dos tipos de vistas de base de datos: vistas dinámicas y vistas estáticas. Las vistas dinámicas
pueden contener datos de una o dos tablas e incluir automáticamente todas las columnas de la tabla
o tablas especificadas. Las vistas dinámicas se pueden actualizar dinámicamente cuando se crean o
modifican objetos relacionados u objetos ampliados. Las vistas estáticas pueden contener datos de
varias tablas y las columnas necesarias de estas tablas se deben especificar en las cláusulas SELECT y
WHERE de la vista estática. Las vistas dinámicas se pueden actualizar manualmente cuando se crean
o modifican objetos relacionados u objetos ampliados.

- ¿Qué es un objeto?

Es todo con lo que se trabaja cuando se maneja una base de datos: Tabla, Consulta,
Formulario, Reporte.

- Para qué sirve MODIFY en el ALTER?

Ejemplo:

ALTER TABLE ejemplo MODIFY correo CONVERT TO CHARACTER SET utf8


Es posible convertir sólo una columna, en este caso 'correo' a un juego de caracteres distinto
al de todo el resto de la tabla.

6
Conclusiones:
A partir de un modelo o diagrama se facilita el entendimiento en este caso de recursividad y como se
puede implementar con el uso de sql, se cumplio el entendimiento de la implementación de la
recursividad con un ejemplo visto en sql de forma que se pudo aplicar a un ejemplo proporcionado
por el alumno.

Referencias:

[1] Vistas de base de datos. (s. f.). © Copyright IBM Corp. 2018. Recuperado 19 de octubre
de 2022, de https://www.ibm.com/docs/es/control-desk/7.6.1?topic=structure-views

[2] Access 2007: Los objetos de una base de datos. (s. f.). GCFGlobal.org. Recuperado 19 de
octubre de 2022, de
https://edu.gcfglobal.org/es/access-2007/los-objetos-de-una-base-de-datos/1/

[3] Alter Table, ejemplos de uso. (s. f.). Recuperado 19 de octubre de 2022, de
https://www.linuxtotal.com.mx/index.php?cont=info_otros_005

Índice:

Introducción: 1

Objetivos: 4

Desarrollo: 4

Resultados: 5

Cuestionario: 6

Conclusiones: 7

Referencias: 7

También podría gustarte