Generación de Tablas - academicos.azc.uam.mx

Anuncio
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
Descargar