Trabajo Final Unidad2

21
Instituto Tecnológico Superior De Valladolid Organismo Público Descentralizado Proyecto: Documentación De La Base de Datos. ELABORADO POR: ABAN DZUL CARLOS MARTIN. CANUL DZIB ZAZIL. CEN GARCIA IGNACIO. CHAN PADILLA FLORENCIA. POOT TUZ GEYDI. Carrera: Licenciatura en Informática. Grado y grupo: 7º Semestre. Grupo A. Turno: Vespertino. Valladolid Yuc. A 13 de octubre del 2009

Transcript of Trabajo Final Unidad2

Page 1: Trabajo Final Unidad2

Instituto Tecnológico Superior De Valladolid

Organismo Público Descentralizado

Proyecto:

Documentación De La Base de Datos.

ELABORADO POR:

ABAN DZUL CARLOS MARTIN. CANUL DZIB ZAZIL. CEN GARCIA IGNACIO. CHAN PADILLA FLORENCIA. POOT TUZ GEYDI.

Carrera: Licenciatura en Informática.

Grado y grupo: 7º Semestre. Grupo A.

Turno: Vespertino.

Valladolid Yuc. A 13 de octubre del 2009

Page 2: Trabajo Final Unidad2

Página | 2

Contenido….

Descripción De la Base de Datos………………………………… pág. 3

Objetivo de la Base de Datos CE………………………………….. pág. 4

Diagrama Entidad Relación………………………………………… pág. 5 Diccionario de Datos………………………………………………….. pág. 6 Diagrama de Clases General del modelo E-R………………. Pág. 10 Descripción de los Procedimientos de Fragmentación.. Pág. 11 Reglas De Fragmentación……………………………………….... pág. 12 Arquitectura de Distribución…………………………………… pág. 13 Implementación De Esquemas Locales…………………….... Pág. 14 Modo De Reconstrucción………………………………………….. Pág. 21

Page 3: Trabajo Final Unidad2

Página | 3

Descripción De la Base de Datos.

La base de datos para el sistema estará conformada por las entidades (Tablas) y

atributos de la siguiente forma:

ENTIDAD ATRIBUTOS Alumno (Clave de control, Clave Curp, Nombre, Apellido paterno, Apellido

materno, Dirección, Sexo, Edad, Fecha de Nacimiento, Teléfono, Grado a Cursar).

Tutor (Clave de control, Nombre, Apellido Paterno, Apellido Materno, Dirección, Edad, Sexo, Teléfono, Ocupación).

Profesor (Clave de registro (cedula), Nombre, Apellido Paterno, Apellido Materno, Dirección, Teléfono, Especialidad).

Asignatura (Clave, Nombre, Prioridad) Personal (Clave de Registro, Nombre, Apellido paterno, Apellido Materno,

Dirección, Puesto Laboral, Turno, Login, Contraseña). Grado (Clave, Grupo, Cupo, Turno). Escuela (Clave, Nombre, Dirección, Tipo, Escolaridad). Calificación (Clave –grado, Clave-asignatura, Clave-alumno, Periodo, Bimestre,

Dato-calificación)

Las relaciones se establecerán de acuerdo a la Siguiente Descripción:

RELACIÓN DESCRIPCIÓN (1-1) - 1 alumno tiene 1 tutor.

- 1 alumno es registrado por 1 personal. (1-N) - 1 alumno puede tener varias asignaturas.

- 1 tutor puede tener varios alumnos. - 1 profesor puede tener varios grados. - 1 personal puede registrar varias calificaciones. - 1 escuela puede tener varios personales.

Page 4: Trabajo Final Unidad2

Página | 4

Restricciones.

Todas las claves tienen que ser diferentes es decir para cada registro se

debe contar con una clave única.

Si se elimina un registro de alumno y el tutor tiene otro alumno, no se debe

eliminar el tutor, en caso contrario, pedir confirmación al usuario y realizar

la operación de eliminación alumno-tutor.

No se puede dar de alta a alumnos carezcan de tutor.

Un reporte de calificaciones es solo para un alumno.

Las edades, fechas, dirección, teléfono y demás atributos con dígitos deben

ser positivos.

Objetivo de la Base de Datos CE.

La base de datos CE tiene como objetivo almacenar los datos que el usuario ingrese

por medio de la aplicación, estructurar la información de acuerdo a los esquemas o

división de datos de acuerdo a las diferentes secciones, y evitar la inconsistencia de

datos al aplicarse esquemas de fragmentación.

Page 5: Trabajo Final Unidad2

Página | 5

Diagrama Entidad Relación (B-D Normalizada hasta la 3ar forma normal)

Page 6: Trabajo Final Unidad2

Página | 6

Diccionario de Datos

ENTIDAD ESCUELA

NOMBRE TIPO TAMAÑO DECIMALES

Clave int 15 0

Nombre varchar 50 0

Calle varchar 20 0

Núm. Char 5 0

colonia varchar 45 0

Municipio varchar 45 0

localidad varchar 45 0

Estado varchar 45 0

Escolaridad varchar 40 0

Tipo varchar 25 0

ENTIDAD PERSONAL

NOMBRE TIPO TAMAÑO DECIMALES

Clav.personal int 10 0

Nombre varchar 45 0

Ap_Pat varchar 20 0

Ap_Mat varchar 20 0

Edad char 2 0

sexo char 1 0

Calle varchar 20 0

Núm. Char 5 0

colonia varchar 45 0

Municipio varchar 45 0

localidad varchar 45 0

Estado varchar 45 0

Puesto varchar 45 0

Login char 15 0

Password char 10 0

Page 7: Trabajo Final Unidad2

Página | 7

ENTIDAD ALUMNO

NOMBRE TIPO TAMAÑO DECIMALES

Clav_Alumno int 10 0

Curp char 15 0

Nombre varchar 45 0

Ap_Pat varchar 20 0

Ap_Mat varchar 20 0

Edad char 2 0

sexo char 1 0

Calle varchar 20 0

Núm. Char 5 0

colonia varchar 45 0

Municipio varchar 45 0

localidad varchar 45 0

Estado varchar 45 0

teléfono char 15 0

ENTIDAD TUTOR

NOMBRE TIPO TAMAÑO DECIMALES

Clv_Tutor int 10 0

Nombre varchar 45 0

Ap_Pat varchar 20 0

Ap_Mat varchar 20 0

Edad char 2 0

sexo char 1 0

Calle varchar 20 0

Núm. Char 5 0

colonia varchar 45 0

Municipio varchar 45 0

localidad varchar 45 0

Estado varchar 45 0

Teléfono char 15 0

Ocupación varchar 45 0

Page 8: Trabajo Final Unidad2

Página | 8

ENTIDAD PROFESORES

NOMBRE TIPO TAMAÑO DECIMALES

Clv_Profesor int 10 0

Nombre varchar 45 0

Ap_Pat varchar 20 0

Ap_Mat varchar 20 0

Edad char 2 0

Sexo char 1 0

Calle varchar 20 0

Núm. Char 5 0

Colonia varchar 45 0

Municipio varchar 45 0

Localidad varchar 45 0

Estado varchar 45 0

Teléfono char 15 0

Especialidad varchar 45 0

ENTIDAD TUTOR

NOMBRE TIPO TAMAÑO DECIMALES

Clv_Tutor int 10 0

Nombre varchar 45 0

Ap_Pat varchar 20 0

Ap_Mat varchar 20 0

Edad char 2 0

sexo char 1 0

Calle varchar 20 0

Núm. Char 5 0

colonia varchar 45 0

Municipio varchar 45 0

localidad varchar 45 0

Estado varchar 45 0

Teléfono char 15 0

Ocupación varchar 45 0

Page 9: Trabajo Final Unidad2

Página | 9

ENTIDAD ASIGNATURA

NOMBRE TIPO TAMAÑO DECIMALES

Clv_Asignatura int 10 0

Nombre varchar 45 0

Prioridad varchar 20 0

ENTIDAD GRADO

NOMBRE TIPO TAMAÑO DECIMALES

Clv_Grado int 10 0

Nivel varchar 45 0

Cupo char 0

ENTIDAD CALIFICACIONES

NOMBRE TIPO TAMAÑO DECIMALES

Clv_Grado int 10 0

Bimestre char 10 0

Period_esc. Varchar 15 0

Dato_Calif char 5 0

Page 10: Trabajo Final Unidad2

Página | 10

Diagrama de Clases General del modelo E-R.

Page 11: Trabajo Final Unidad2

Página | 11

Descripción de los Procedimientos de Fragmentación.

La fragmentación de los datos esta sujeta a la distribución de trabajo del personal

asignado de a acuerdo a políticas de la institución, los datos serán distribuidos por

secciones (Norte, Sur, Sureste, Este), establecidas por la institución, para realizar

funciones diferentes, como creación de estadísticas, división de alumnos por sexo,

para la realización de visitas y estadísticas de alumnos por edades etc. Entre otras

divisiones existentes de los datos, mismos que serán planteados en la fragmentación,

descrita en el siguiente apartado.

La siguiente tabla describe de forma general los datos requeridos en cada sección o

distribuida de la institución.

SECCIÓN DATOS REQUERIDOS

Norte Todos los datos de todas las tablas, a excepción de la tabla alumnos don de solo se requiere Curp, Nombre, Appat, Apmat, Edad, Fech-Nac, Sexo de alumnos del sexo masculino.

Sur Alumnos .- Nombre, ApPat, ApMat, Edad, Fech-Nac, Curp, Sexo Tutor.- Nombre, Apat, Apmat, Ocupación. Grado.- solo de primer grado o clave 010.

Sureste Alumnos.- Calle, Colonia, Municipio, Localidad, Estado, Teléfono Tutor.- Edad, Sexo, Calle, Numero, Colonia Grado: solo los de 2do grado o clave 020.

Este Alumnos.- Calle, Núm., Colonia, Municipio, Localidad, Estado, Teléfono. Tutor.- Municipio, Localidad, Estado, Teléfono Grado.- solo los de tercero o clave 030.

Page 12: Trabajo Final Unidad2

Página | 12

Reglas De Fragmentación.

Fragmentación Vertical

Fragmentación tabla TUTOR. DATOS: (Clave tutor, Nombre, Appat, Apmat, Edad, Sexo, Calle, Numero, Colonia, Municipio, Localidad, Estado, Tel, Ocupación). Fragmento1: R1 => (Clave_tutor, Nombre, Apat, Apmat, Ocupación) Fragmento2: R2 => (Clave_tutor, Edad, Sexo, Calle, Numero, Colonia) Fragmento3: R3 => (Clave_tutor, Municipio, Localidad, Estado, Teléfono)

Fragmentación Horizontal. Existe una clave para cada grado o nivel escolar, Primer grado=010, Segundo grado=020,

Tercer grado=030 tomando en consideración la condición de necesidad de información de un

determinado para cada sección, la fragmentación seria la siguiente:

Fragmentación tabla GRADO. DATOS: (Clave, Grupo, Cupo, Turno).

Fragmento1: R1=> Grado=010 AG ALUMNO Fragmento2: R2=> Grado=020 AG ALUMNO Fragmento3: R3=> Grado=030 AG ALUMNO

Fragmentación Mixta. Fragmentación tabla ALUMNO DATOS(R): (ClvAlum, Curp, Nombre, ApPat, ApMat, Edad, Teléfono, Fech-Nac, Calle, Núm, Colonia, Municipio, Localidad, Estado, Sexo). Se realizara la fragmentación mista de acuerdo a la figura 1.1:

Fragmentación Horizontal: Fragmento1: R1=> Sexo = “F” Fragmento2: R2=> Sexo = “M”

Fragmentación Vertical: Fragmento1.1: R1_1 => (ClvAlum, Nombre, ApPat, ApMat, Edad, Fech-Nac, Curp, Sexo). Fragmento1.2: R1_2 => (ClvAlum, Calle, Colonia, Municipio, Localidad, Estado, Teléfono). Fragmento 2.1: R2.1=> (ClvAlum, Curp, Nombre, Appat, Apmat, Edad, Fech-Nac, Sexo). Fragmento 2.2: R2.2=> (ClvAlum, Calle, Núm., Colonia, Municipio, Localidad, Estado, Teléfono)

Figura1.1: fragmentación mixta

R

V V V

H H

R2 R1

R1_1 R1_2 R2_1 R2_2

Page 13: Trabajo Final Unidad2

Página | 13

Arquitectura de distribución.

BD CE_4

SURESTE

RED

BD CE_2 ESTE

BD CE_1

NORTE

BD CE_3 SUR

TABLAS

Alumno (M–R2.1)

Tutor (S/F)

Profesor (S/F)

Asignatura (S/F)

Personal (S/F)

Grado (S/F)

Escuela (S/F)

Calificación (S/F)

TABLAS

Alumno (M - R1.1)

Tutor (V - R1)

Grado (H – R1)

TABLAS

Alumno (M-R2.2)

Tutor (V-R3)

Grado (H-R3)

TABLAS

Alumno (M-R1.2)

Tutor (V-R2)

Grado (H-R2)

Distribución Fragmentos De La Base De Datos CE (Control Escolar) y Asignamiento Por Secciones.

ESPECIFICACIONES

(S/F) => Sin Fragmentar

(V - R1) => Fragmentación Vertical – (Fragmento Asignado).

(H – R1) => Fragmentación Horizontal – (Fragmento Asignado).

(M–R2.1) => Fragmentación Mixta -- (Fragmento Asignado).

Page 14: Trabajo Final Unidad2

Página | 14

Implementación De Esquemas Locales De Las Bases De Datos (CE en Mysql).

Creación De las bases de datos.

mysql> create database CE_1_Norte; Query OK, 1 row affected (0.06 sec) mysql> create database CE_2_Este; Query OK, 1 row affected (0.00 sec) mysql> Create database CE_3_Sur; Query OK, 1 row affected (0.00 sec) mysql> Create database CE_4_Sureste; Query OK, 1 row affected (0.02 sec) mysql> use CE_1_norte; Database changed mysql> create table ESCUELA ( -> clv_Escuela int not null primary key, -> Nombre varchar(45) not null, -> Calle Varchar(45) not null, -> Num char(5) not null, -> Colonia varchar(45) not null, -> Municipio Varchar(45) not null, -> Localidad Varchar(45) not null, -> Estado varchar(45) not null, -> Escolaridad varchar(40) not null, -> Tipo Varchar(25) not null); Query OK, 0 rows affected (0.41 sec) mysql> create table PERSONAL ( -> Clv_Personal int not null primary key, -> Ap_Pat varchar(20) not null, -> Ap_Mat varchar(20) not null, -> Edad Char(2) not null, -> sexo Char(1) not null, -> Calle varchar(45) not null, -> Num Char(10) not null, -> Municipio varchar(45) not null, -> Localidad varchar(45) not null, -> Estado Varchar(45) not null, -> Puesto Varchar(45) not null,

-> Login Char(15) not null, -> password char(15) not null, -> clv_Ecuela int not null, -> foreign key(clv_Ecuela) references ESCUELA(clv_escuela) -> on update cascade on delete cascade); Query OK, 0 rows affected (0.09 sec) mysql> create table TUTOR ( -> Clv_Tutor int not null primary key, -> Nombre varchar(45) not null, -> Ap_Pat varchar(20) not null, -> Ap_Mat varchar(20) not null, -> Edad Char(2) not null, -> Sexo char(2) not null, -> Calle varchar(45) not null, -> Num char(5) not null, -> col Varchar(45) not null, -> Municipio varchar(45) not null, -> Localidad varchar(45) not null, -> Estado varchar(45) not null, -> Telefono char(20) not null, -> Ocupacion varchar(50) not null); Query OK, 0 rows affected (0.05 sec) mysql> create table ALUMNO ( -> Clv_Alumno int not null primary key, -> Curp varchar(18) not null, -> Nombre varchar(45) not null, -> Ap_Pat varchar(20) not null, -> Ap_Mat varchar(20) not null, -> Edad Char(2) not null, -> Sexo char(2) not null, -> fecha_Nac date); Query OK, 0 rows affected (0.08 sec) mysql> create table GRADO ( -> Clv_Grado int not null primary key, -> cupo varchar(12) not null, -> turno varchar(12) not null);

Page 15: Trabajo Final Unidad2

Página | 15

Query OK, 0 rows affected (0.06 sec) mysql> create table asignatura ( -> clave char(8) not null primary key, -> nombre varchar(45) not null, -> prioridad varchar(10) not null ); Query OK, 0 rows affected (0.05 sec) mysql> create table PROFESOR ( -> Clv_profesor int not null primary key, -> Nombre Varchar(45) not null, -> Ap_Pat varchar(20) not null, -> Ap_Mat varchar(20) not null, -> Edad Char(2) not null, -> sexo Char(1) not null, -> Calle varchar(45) not null, -> Num Char(10) not null, -> col varchar(45) not null, -> Municipio varchar(45) not null, -> Localidad varchar(45) not null, -> Estado Varchar(45) not null, -> Telefono char(20) not null, -> Especialidad varchar(45) not null ); Query OK, 0 rows affected (0.08 sec) mysql> create table ASIG_PROF ( -> clv_profesor int not null, -> clave char not null, -> primary key(clv_profesor,clave), -> foreign key(clv_profesor) references PROFESOR(clv_profesor) -> on update cascade on delete cascade, -> foreign key(clave) references asignatura(clave) -> on update cascade on delete cascade ); Query OK, 0 rows affected (0.08 sec) mysql> create table GRA_ASIG ( -> Clv_grado int not null, -> clave char not null, -> primary key(clv_grado,clave), -> foreign key(clv_grado) references GRADO(clv_grado) -> on update cascade on delete cascade, -> foreign key(clave) references asignatura(clave) -> on update cascade on delete cascade, -> bimestre char(9) not null, -> Periodo_Esc varchar(12) not null, -> calificacion char (5)not null); Query OK, 0 rows affected (0.09 sec)

mysql> create table AG_ALUMNO ( -> Clv_alumno int not null, -> Clv_Grado int not null, -> Clave char not null, -> clv_personal int not null, -> primary key (clv_alumno,clv_grado, clave), -> foreign key(clv_alumno) references alumno(clv_alumno) -> on update cascade on delete cascade, -> foreign key (clv_grado) references grado(clv_grado) -> on update cascade on delete cascade, -> foreign key (clave) references asignatura(clave) -> on update cascade on delete cascade, -> foreign key(clv_personal) references personal(clv_personal) -> on update cascade on delete cascade, -> Grupo varchar (12) not null); Query OK, 0 rows affected (0.13 sec) mysql> use CE_2_Este; Database changed mysql> create table ALUMNO ( -> Clv_Alumno int not null primary key, -> Calle varchar(45) not null, -> Num char(5) not null, -> col Varchar(45) not null, -> Localidad varchar(45) not null, -> Municipio varchar(45) not null, -> Estado varchar(45) not null, -> Telefono char(20) not null); Query OK, 0 rows affected (0.06 sec) mysql> create table TUTOR ( -> Clv_Tutor int not null primary key, -> Municipio varchar(45) not null, -> Localidad varchar(45) not null, -> Estado varchar(45) not null, -> Telefono char(20) not null); Query OK, 0 rows affected (0.06 sec) mysql> create table GRADO ( -> Clv_Grado int not null primary key, -> cupo varchar(12) not null, -> turno varchar(12) not null); Query OK, 0 rows affected (0.09 sec)

Page 16: Trabajo Final Unidad2

Página | 16

mysql> use ce_3_sur; Database changed mysql> create table TUTOR ( -> Clv_Tutor int not null primary key, -> Nombre varchar(45) not null, -> Ap_Pat varchar(20) not null, -> Ap_Mat varchar(20) not null, -> Ocupacion varchar(50) not null); Query OK, 0 rows affected (0.06 sec) mysql> mysql> create table GRADO ( -> Clv_Grado int not null primary key, -> cupo varchar(12) not null, -> turno varchar(12) not null); Query OK, 0 rows affected (0.06 sec) mysql> mysql> create table ALUMNO ( -> Clv_Alumno int not null primary key, -> Curp varchar(18) not null, -> Nombre varchar(45) not null, -> Ap_Pat varchar(20) not null, -> Ap_Mat varchar(20) not null, -> Edad Char(2) not null, -> Sexo char(2) not null, -> fecha_Nac date); Query OK, 0 rows affected (0.06 sec)

mysql> use ce_4_sureste; Database changed. mysql> create table TUTOR ( -> Clv_Tutor int not null primary key, -> Edad Char(2) not null, -> Sexo char(2) not null, -> Calle varchar(45) not null, -> Num char(5) not null, -> col Varchar(45) not null); Query OK, 0 rows affected (0.06 sec) mysql> mysql> create table GRADO ( -> Clv_Grado int not null primary key, -> cupo varchar(12) not null, -> turno varchar(12) not null); Query OK, 0 rows affected (0.05 sec) mysql> mysql> create table ALUMNO ( -> Clv_Alumno int not null primary key, -> Calle varchar(45) not null, -> Num char(5) not null, -> col Varchar(45) not null, -> Localidad varchar(45) not null, -> Municipio varchar(45) not null, -> Estado varchar(45) not null, -> Telefono char(20) not null); Query OK, 0 rows affected (0.06 sec)

Page 17: Trabajo Final Unidad2

Página | 17

Esquemas locales.

Definición de como quedan las tablas para cada base de datos ubicada en la sección

indicada.

Base de datos sección norte (CE_1_Norte),

Contiene todos los datos de la base de datos.

Manteniendo el esquema original de la base de

datos.

Esquema de fragmentación mixta (Fragmento R2.1)

Page 18: Trabajo Final Unidad2

Página | 18

Base de datos sección norte (CE_2_Este),

Esquema de la Fragmentación Mixta de ALUMNOS (Fragmento R2.2).

Esquema de la Fragmentación Vertical de TUTOR (Fragmento R3)

Esquema de la Fragmentación Horizontal de GRADO (Fragmento R3)

Page 19: Trabajo Final Unidad2

Página | 19

Base de datos sección norte (CE_3_SUR),

Esquema de la Fragmentación Mixta de ALUMNOS (Fragmento R1.1).

Esquema de la Fragmentación Vertical de TUTOR (Fragmento R1)

Esquema de la Fragmentación Horizontal de GRADO (Fragmento R1)

Page 20: Trabajo Final Unidad2

Página | 20

Base de datos sección norte (CE_4_SURESTE),

Esquema de fragmentación ALUMNO (Fragmento)

Esquema de la Fragmentación Horizontal de GRADO (Fragmento R2)

Esquema de la Fragmentación Vertical de TUTOR (Fragmento R2)

Page 21: Trabajo Final Unidad2

Página | 21

Modo De Reconstrucción.

Los siguientes códigos indican la forma en que serán reconstruidas las tablas con la unión de

las partes o fragmento que la tabla tenga. Mediante la aplicación de sintaxis en Mysql., como

se describe a continuación para cada fragmentación realizada a la base de datos CE.

Reconstrucción de fragmentación horizontal:

mysql> select * from Ce_2_este.grado

-> union

-> select * from Ce_3_sur.grado

-> union

-> select * from Ce_4_sureste.grado;

+---------------+--------+---------------+

| Clv_Grado | cupo | turno |

+---------------+--------+---------------+

| 30 | 20 | vespertino |

| 10 | 20 | vespertino |

| 20 | 20 | vespertino |

+---------------+---------+- -----------+

3 rows in set (0.00 sec)

Reconstrucción fragmentación vertical mysql> select a.clv_tutor, a.nombre, a.ap_pat, a.ap_mat, a.ocupacion,

-> b.edad, b.sexo, b.calle, b.num, b.col,

-> c.municipio, c.localidad, c.estado, c.telefono

-> from ce_3_sur.tutor a inner join ce_4_sureste.tutor b

-> on a.clv_tutor = b.clv_tutor

-> inner join ce_2_este.tutor c

-> on a.clv_tutor = c.clv_tutor;

Reconstrucción fragmentación mixta: mysql> select a.clv_alumno, a. nombre, a.ap_pat, a.ap_mat, a.edad, a.sexo,

a.fecha_nac,

-> b.calle, b.num, b.col, b.localidad, b.municipio, b.estado, b.telefono

-> from ce_1_norte.alumno a inner join ce_2_este.alumno b

-> on a.clv_alumno = b.clv_alumno

-> union

-> select a.clv_alumno, a.nombre, a.ap_pat, a.ap_mat, a.edad, a.sexo,

a.fecha_nac,

-> b.calle, b.num, b.col, b.localidad, b.municipio, b.estado, b.telefono

-> from ce_3_sur.alumno a inner join ce_4_sureste.alumno b

-> on a.clv_alumno = b.clv_alumno;