Generación de Tablas Renombrando Tablas e Identificando llaves primarias Una vez identificadas las entidades que se convertirán en tablas, se debe especificar cuál será su llave primaria. Área (area): El único atributo que posee es nombre, esta podría ser su llave primaria, pero conviene tener una llave que sea más sencilla de manejar, como no hay otro atributo, se creará uno numérico llamado id_area. Profesor (profesor): De los atributos del Profesor, el numero_economico identifica de manera única a cada uno de ellos, por lo que se tomará como llave primaria. Proyecto de Investigación (proyecto_investigacion): Solo tiene como atributo el nombre, por esa razón se creará uno numérico para usarlo como llave primaria, en este caso id_proyecto_investigacion. Servicio Social (servicio_social): De sus atributos, el que podría distinguirlo de otros sería el nombre, pero para una mejor facilidad se generará un atributo numérico, en este caso id_servicio_social. Proyecto Terminal (proyecto_terminal): El nombre es el atributo que podría usarse, pero por simplicidad se creará un atributo numérico, en este caso id_proyecto_terminal. Artículo de Investigación (articulo_investigacion): El nombre es el atributo que podría usarse, pero por simplicidad se creará un atributo numérico, en este caso id_articulo_investigacion. Revista (revista): El ISBN de una revista es único por lo que se usará como llave para identificarla (isbn). Presentación en congreso (presentacion_congreso): El nombre es el atributo que podría usarse, pero por simplicidad se creará un atributo numérico, en este caso id_presentacion_congreso. 1 Congreso (congreso): El nombre es el atributo que podría usarse, pero por simplicidad se creará un atributo numérico, en este caso id_congreso. Cardinalidad de Relaciones Un área puede tener varios proyectos de investigación, pero un proyecto de investigación puede pertenecer solamente a un área, la relación entre area y proyecto_investigacion es (1:N) Un profesor puede pertenecer a un área y un área puede tener muchos profesores, la relación entre area y profesor es (1:N) Un profesor puede participar en varios proyectos de investigación, un proyecto de investigación puede tener varios profesores participando en él, la relación entre profesor y proyecto_investigacion es (M:N) Un profesor puede dirigir varios proyectos terminales y un proyecto terminal puede ser dirigido por varios profesores, la relación entre profesor y proyecto_terminal es (M:N) Un profesor puede dirigir varios servicios sociales y un servicio social puede ser dirigido por varios profesores, la relación entre profesor y servicio_social es (M:N) Un profesor puede escribir varios artículos de investigación y un artículo de investigación puede ser escrito por varios profesores, la relación entre profesor y articulo_investigacion es (M:N) Un profesor puede presentar varios trabajos en congresos y una presentación en congreso puede tener a varios autores, la relación entre profesor y presentacion_congreso es (M:N) Un proyecto de investigación puede tener varios proyectos terminales asociados, y un proyecto terminal solamente puede pertenecer a un proyecto de investigación, la relación entre proyecto_investigacion y proyecto_terminal es (1:N) Un proyecto de investigación puede tener varios servicios sociales asociados, y un servicio social solamente puede pertenecer a un proyecto de investigación, la relación entre proyecto_investigacion y servicio_social es (1:N) Un proyecto de investigación puede tener varios artículos de investigación, y un artículo de investigación solamente puede pertenecer a un proyecto de investigación, la relación entre proyecto_investigacion y articulo_investigacion es (1:N) Un proyecto de investigación puede generar varias presentaciones en congresos, y una presentación en congreso solamente puede pertenecer a un proyecto de investigación, la relación entre proyecto_investigacion y presentacion_congreso es (1:N) Una revista puede publicar varios artículos y un artículo puede ser publicado solo en una revista, la relación entre revista y articulo_investigacion es (1:N) 2 En un congreso se pueden presentar varios trabajos, un trabajo solamente puede ser presentado en un congreso, la relación entre congreso y presentacion_congreso es (1:N) Un Proyecto de Investigación puede tener varios conteos de puntos y varios conteos de puntos pueden pertenecer a 1 Proyecto de Investigación (1:N) Un Profesor puede tener varios conteos de puntos y varios conteos de puntos pueden pertenecer a 1 Proyecto de Investigación (1:N) Un Área puede tener varios conteos de puntos y varios conteos de puntos pueden pertenecer a 1 Proyecto de Investigación (1:N) Proceso de Normalización. Para el proceso de normalización, se revisarán los atributos de cada tabla, se romperán las relaciones Muchos a Muchos (M:N) y se agregarán atributos extra por las relaciones Uno a Muchos o Muchos a Uno (1:N) o (N:1) Rompiendo Relaciones M : N El siguiente paso es romper las relaciones de muchos a muchos (M:N) Profesor -> Proyecto de Investigación Se crea una nueva tabla llamada profesor_proyecto_investigacion en donde se utiliza la llave primaria de un proyecto (id_proyecto_investigacion) junto con la de un profesor (numero_economico) para indicar la relación entre profesores y proyectos de investigación. Profesor -> Proyecto Terminal Se crea una nueva tabla llamada profesor_proyecto_terminal en donde se utiliza la llave primaria de un proyecto terminal (id_proyecto_terminal) junto con la de un profesor (numero_economico) para indicar la relación entre profesores y los proyectos terminales que dirige. Profesor -> Artículo de Investigación Se crea una nueva tabla llamada profesor_articulo_investigacion en donde se utiliza la llave primaria de un artículo de investigación (id_articulo_investigacion) junto con la de un profesor (numero_economico) para indicar la relación entre profesores y los artículos que ha escrito. Profesor -> Presentación en Congreso Se crea una nueva tabla llamada profesor_presentacion en donde se utiliza la llave primaria de una presentación en congreso (id_presentacion_congreso) junto con la de un profesor (numero_economico) para indicar la relación entre profesores y las presentaciones en las que está como autor. 3 Profesor -> Servicio Social Se crea una nueva tabla llamada profesor_servicio_social en donde se utiliza la llave primaria de un servicio social (id_servicio_social) junto con la de un profesor (numero_economico) para indicar la relación entre profesores y los servicios sociales que está dirigiendo. Llaves Foráneas Se agregan las siguientes llaves foráneas como resultados de las relaciones (1:N) • • • • • • • • Se agrega como llave foránea a profesor la clave del área a la que pertenece (id_area) Se agrega como llave foránea a proyecto_investigacion la clave del área a la que pertenece (id_area) Se agrega a presentacion_congreso la clave del congreso en donde fue presentado (id_congreso) Se agrega a articulo_investigacion la clave de la revista en la que fue publicado (isbn) Se agrega a proyecto_terminal la clave del proyecto de investigación al que está ligado (id_proyecto_investigacion) Se agrega a articulo_investigacion la clave del proyecto de investigación al que está ligado (id_proyecto_investigacion) Se agrega a presentacion_congreso la clave del proyecto de investigación al que está ligado (id_proyecto_investigacion) Se agrega a servicio_social la clave del proyecto de investigación al que está ligado (id_proyecto_investigacion) Atributos Complementarios Se agregan los siguientes atributos para completar las propiedades solicitadas en la funcionalidad del sistema. Se agrega el campo rol a la tabla que relaciona un profesor con los proyectos de investigación (profesor_proyecto_investigacion) que indicará el papel que juega el profesor en el proyecto con el que tiene una relación. Restricciones El siguiente paso es identificar las restricciones que se tienen para varias tablas Restricciones de Atributo Proyecto Terminal • • El valor de puntos deberá ser 30 El valor de estado deberá ser “FINALIZADO” o “EN PROCESO” 4 Servicio Social • • El valor de puntos deberá ser 0 o 20 El valor de estado deberá ser “FINALIZADO” o “EN PROCESO” Presentación en Congreso • • El valor de puntos deberá ser 0, 50 o 60 El valor de estado deberá ser “FINALIZADO” o “EN PROCESO” Artículo de Investigación • • El valor de puntos deberá ser 0, 80 o 100 El valor de estado deberá ser “FINALIZADO” o “EN PROCESO” Revista • El valor de tipo deberá ser “INDEXADA” o “NO INDEXADA” Congreso • El valor de tipo deberá ser “NACIONAL” o “INTERNACIONAL” Profesor Proyecto de Investigación • El valor de rol deberá ser “RESPONSABLE” o “PARTICIPANTE” Restricciones de Tupla Proyecto Terminal • • • Si el valor de estado es “FINALIZADO”, el valor de puntos deberá ser 30 Si el valor de estado es “EN PROCESO”, el valor de puntos deberá ser 0 Servicio Social • • Si el valor de estado es “FINALIZADO”, el valor de puntos deberá ser 20 Si el valor de estado es “EN PROCESO”, el valor de puntos deberá ser 0 Presentación en Congreso • • Si el valor de estado es “FINALIZADO”, el valor de puntos deberá ser 50 o 60 Si el valor de estado es “EN PROCESO”, el valor de puntos deberá ser 0 5 Artículo de Investigación • • Si el valor de estado es “FINALIZADO”, el valor de puntos deberá ser 80 o 100 Si el valor de estado es “EN PROCESO”, el valor de puntos deberá ser 0 Restricciones de Tabla Profesor Proyecto de Investigación • • Solo podrá haber un profesor con el rol de “RESPONSABLE” en un proyecto Solo podrá haber un profesor con el rol de “RESPONSABLE” para cada proyecto Restricciones de Base de Datos Presentación en Congreso y Congreso • • Si el valor de tipo en Congreso es “NACIONAL”, el valor de puntos deberá ser 0 o 50 en Presentación en Congreso Si el valor de tipo en Congreso es “INTERNACIONAL”, el valor de puntos deberá ser 0 o 60 en Presentación en Congreso Artículo de Investigación y Revista • • Si el valor de tipo en Revista es “INDEXADA ”, el valor de puntos deberá ser 0 o 100 en Artículo de Investigación Si el valor de tipo en Revista es “NO INDEXADA ”, el valor de puntos deberá ser 0 u 80 en Artículo de Investigación Diccionario de Datos Tablas Se presentan las tablas que se encuentran en la Base de Datos y una descripción genera de la información que contienen Nombre Descripción area Información de las áreas de un Departamento articulo_investigacion Información sobre los artículos de investigación realizados congreso Información sobre los congresos en donde se han expuesto presentaciones presentacion_congreso Información sobre las presentaciones realizadas en congresos 6 profesor Información sobre los profesores profesor_presentacion Relación entre los profesores y las presentaciones en congresos que han realizado profesor_articulo_investigacion Relación entre los profesores y los artículos de investigación que han realizado profesor_proyecto_investigacion Relación entre los profesores y los proyectos de investigación en a los que pertenecen profesor_proyecto_terminal Relación entre los profesores y los proyectos terminales que han dirigido profesor_servicio_social Relación entre los profesores y los servicios sociales que dirigen proyecto_investigacion Información de los proyectos de investigación proyecto_terminal Información sobre los proyectos terminales puntos_area_investigacion Histórico de los puntos de un Área de Investigación puntos_profesor Histórico de los puntos de un Profesor puntos_proyecto_investigacion Histórico de los puntos de un Proyecto de Investigación revista Información sobre las revistas en donde se publican artículos de investigación servicio_social Información sobre los servicios sociales Tabla area Columna Tipo Llave Descripción id_area PK Identifica al área registrada nombre Restricciones Nombre del área registrada Tabla profesor Columna Tipo Llave Descripción Restricciones numero_economico PK Número económico del profesor Solo puede números apellido_paterno Apellido paterno del profesor apellido_materno Apellido materno del profesor nombre Nombre del profesor ultimo_grado Último grado del profesor area_id_area FK contener Identificador del área a la que pertenece 7 Tabla proyecto_investigacion Columna Tipo Llave Descripción Restricciones id_proyecto_investigacion PK Identificador del proyecto registrado nombre Nombre del proyecto area_id_area FK Identificador del área a la que pertenece Tabla profesor_proyecto_investigacion Columna Tipo Llave Descripción id_profesor_proyecto_investigacion PK Identificador relación rol Restricciones de la Rol del profesor en el “RESPONSABLE” proyecto “COLABORADOR” Solo puede haber un responsable por identificador de proyecto profesor_numero_economico FK Identificador profesor del proyecto_investigacion_id_proyecto_ FK investigacion Identificador proyecto investigación del de Tabla servicio_social Columna Tipo Llave Descripción id_servicio_social PK Restricciones Identificador del servicio social registrado titulo Título del servicio social cantidad_alumnos Cantidad de alumnos participantes Debe ser un número fecha_inicio Fecha de inicio Formato dd/mm/aaaa fecha_fin Fecha de finalización Formato dd/mm/aaaa puntos Puntos obtenidos 0 si el estado es “EN PROCESO” 8 20 si el estado es “FINALIZADO” estado Estado del servicio social “EN PROCESO” “FINALIZADO” evaluado Indicador si ya fue contabilizado “VERDADERO” “FALSO” id_proyecto_investigacion FK Identificador del proyecto investigación al que pertenece de Tabla profesor_servicio_social Columna Tipo Llave Descripción Restricciones id_profesor_servicio_social PK Identificador de la relación profesor_numero_economico FK Identificador del profesor servicio_social_id_servicio_social FK Identificador social del servicio Tabla proyecto_terminal Columna Tipo Llave Descripción id_proyecto_terminal PK Restricciones Identificador del proyecto terminal titulo Título del servicio social cantidad_alumnos Cantidad de alumnos participantes Debe ser un número fecha_inicio Fecha de inicio Formato dd/mm/aaaa fecha_fin Fecha de finalización Formato dd/mm/aaaa puntos Puntos obtenidos 0 si el estado es “EN PROCESO” 30 si el estado es “FINALIZADO” estado Estado del proyecto terminal “EN PROCESO” “FINALIZADO” evaluado Indicador si ya fue contabilizado “VERDADERO” “FALSO” proyecto_investigacion_id FK _proyecto_investigacion Identificador del proyecto investigación al que pertenece de 9 Tabla profesor_proyecto_terminal Columna Tipo Llave Descripción id_profesor_proyecto_terminal PK Identificador de la relación profesor_numero_economico FK Identificador del profesor proyecto_terminal_id_proyecto_ter FK minal Identificador terminal Restricciones del proyecto Tabla articulo_investigacion Columna Tipo Llave Descripción Restricciones id_articulo_investigacion PK Identificador del artículo de investigación titulo Título del investigación fecha_publicacion Fecha de publicación Formato dd/mm/aaaa puntos Puntos obtenidos 0 si el estado es “EN PROCESO” 80 o 100 si el estado es “FINALIZADO” 80 si el tipo de revista es “NO INDEXADA” 100 si el tipo de proyecto es “INDEXADA” estado Estado del investigación evaluado Indicador si contabilizado proyecto_investigacion_id_proye FK cto_investigacion Identificador del proyecto de investigación al que pertenece revista_isbn ISBN de la revista donde se publicó FK artículo artículo ya de de “EN PROCESO” “FINALIZADO” fue “VERDADERO” “FALSO” 10 Tabla profesor_articulo_investigacion Columna Tipo Llave Descripción id_profesor_ articulo_investigacion PK Identificador de la relación profesor_numero_economico FK Identificador del profesor articulo_investigacion_id_ articulo_investigacion FK Identificador del artículo de investigación Columna Tipo Llave Descripción isbn PK ISBN que identifica a una revista Restricciones Tabla revista Restricciones nombre Nombre de la revista editorial Editorial de la revista tipo Tipo de la revista “INDEXADA” “NO INDEXADA” Restricciones Tabla presentacion_congreso Columna Tipo Llave Descripción id_presentacion_congreso PK Identificador de la presentación en congreso titulo Título del trabajo presentado fecha_presentacion Fecha de presentación Formato dd/mm/aaaa puntos Puntos obtenidos 0 si el estado es “EN PROCESO” 50 o 60 si el estado es “NACIONAL” 50 si el tipo de congreso es “NO INDEXADA” 60 si el tipo de congreso es “INTERNACIO 11 NAL” estado Estado del servicio social evaluado Indicador si contabilizado proyecto_investigacion_id_proye FK cto_investigacion Identificador del proyecto de investigación al que pertenece congreso_id_congreso FK Identificador del congreso en donde se presentó Columna Tipo Llave Descripción id_profesor_ presentacion PK Identificador de la relación profesor_numero_economico FK Identificador del profesor ya “EN PROCESO” “FINALIZADO” fue “VERDADERO” “FALSO” Tabla profesor_presentacion presentacion_congreso_id_prese FK ntacion_congreso Restricciones Identificador de la presentación en congreso Tabla congreso Columna Tipo Llave Descripción Restricciones id_congreso PK Identificador del congreso nombre Nombre del congreso sede Sede del congreso fecha_inicio Fecha de inicio del congreso fecha_finalizacion Fecha de congreso tipo Tipo del congreso finalización Formato dd/mm/aaaa del Formato dd/mm/aaaa “NACIONAL” “INTERNACIO NAL” 12 Tabla puntos_area Columna Tipo Llave Descripción id_puntos_area PK Identificador de la relación puntos Puntos asignados fecha_conteo Fecha del último conteo area_id_area FK Identificador del área Columna Tipo Llave Descripción id_puntos_profesor PK Identificador de la relación Restricciones Tabla puntos_profesor puntos Puntos asignados fecha_conteo Fecha del último conteo profesor_numero_economico FK Restricciones Identificador del profesor Tabla puntos_proyecto_investigacion Columna Tipo Llave Descripción id_puntos_proyecto_investigacion PK Identificador de la relación puntos Puntos asignados fecha_conteo Fecha del último conteo proyecto_investigacion_id_proyec FK to_investigacion Identificador del proyecto de investigación Restricciones 13