Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ALUMNO (S): VICTOR MANUEL ALANIS VELAZQUEZ HOMAR SANCHEZ BAUTISTA LUIS FELIPE FIGUEROA INFANTE
OBJETIVO. Desarrollar un sistema de base de datos en el cual nos permita llevar el control escolar de una institucin de nivel medio superior para un mejor manejo de de la informacin desarrollando los conocimientos adquiridos en el aula.
INTRODUCCIN.
Un sistema de bases de datos es bsicamente un sistema computarizado para llevar registros.
Es posible considerar a la propia base de datos como una especie de armario electrnico para archivar; es decir, es un depsito o contenedor de una coleccin de archivos de datos computarizados. Los usuarios del sistema pueden realizar una variedad de operaciones sobre dichos archivos, por ejemplo:
Agregar nuevos archivos vacos a la base de datos; Insertar datos dentro de los archivos existentes; Recuperar datos de los archivos existentes; Modificar datos en archivos existentes; Eliminar datos de los archivos existentes; Eliminar archivos existentes de la base de datos. Consultar los datos existentes
Las
instrucciones
SELECT,
INSERT, UPDATE,
DELETE
estn
expresadas en un lenguaje denominado SQL. SQL es el lenguaje estndar para interactuar con bases de datos relacinales y es soportado por prctica mente todos los productos de base de datos actuales.
JUSTIFICACIN.
Este proyecto, busca fundamentalmente responder a las necesidades y aspiraciones tanto de alumnos como de los trabajadores encargados para el manejo de este sistema de control escolar, de los principales problemas que padece y de las demandas especficas que formul la comunidad estudiantil.
MARCO TERICO.
Una base de datos es un conjunto de datos persistentes que es utilizado por los sistemas de aplicacin de alguna empresa dada. Aqu, el trmino "empresa" es simplemente un trmino genrico conveniente para identificar a cualquier organizacin independiente de tipo comercial, tcnico, cientfico u otro. Una empresa podra ser un solo individuo (con una pequea base de datos personal), toda una corporacin o un gran consorcio similar (con una gran base de datos compartida) o todo lo que se ubique entre estas dos opciones. Aqu tenemos algunos ejemplos:
Toda empresa necesariamente debe mantener una gran cantidad de datos acerca de su operacin. La implementacin de determinado modelo de datos es una realizacin fsica, en una mquina real, de los componentes de la mquina abstracta que en conjunto constituyen ese modelo.
DESCRIPCIN DEL PROBLEMA. Tener acceso de manera ms eficiente a la informacin para un mejor manejo de resultados especficos, como promedios, ndice de reprobacin y/o aprobacin, exmenes especiales, etc.
1.-El alumno tiene un registro contenido en la tabla inscripciones, cuyos datos personales estn registrados en la tabla alumno, adems de poder consultar sus calificaciones en la tabla calificaciones por unidad, ellos mismos cada semestre se podrn reinscribir cada semestre en un horario segn su promedio general que podrn corroborar en la tabla calificaciones por semestre.
2.-El maestro tiene un registro en la tabla profesores, dicha tabla almacena sus datos personales, en la tabla grupos lleva un control sobre los grupos a los que da clases,
3.-En las tablas horarios_alumno y horario_prof tanto maestros como alumnos podrn identificar las horas y las aulas en las que impartirn y recibirn sus materias.
4.-En las tablas aulas y aulas_aux se podr encontrar informacin del nombre de las aulas, edificio en el que se encuentran y numero de aula, adems del equipo con la que cuenta el aula.
manejan datos en
casos de algunos alumnos, no en su totalidad como las otras tablas solo los que requieran un ltimo examen para acreditar la materia y los que soliciten un cambio de institucin respectivamente.
IDENTIFICACIN DE ENTIDADES. Las entidades fuertes en nuestra base de datos se identifican con nombres: Alumnos Profesores Grupos Exmenes_especiales Inscripciones Reinscripciones Traslados Aulas Materias los
Las entidades dbiles en nuestra base de datos se identifican con los nombres: o Aulas_aux o Horario_alumno o Horario_prof o Calificacin_semestre o Calificacin_unidad o Grupos
El sistema podr llevar el control sobre la informacin personal del alumnado as como de profesores, sus calificaciones, materias y grupos asignados,
respectivamente.
PROCESO DE NORMALIZACIN.
En este proceso lo primero que hicimos fue identificar los datos atmicos y los no atmicos de cada tabla para as poder pasarlos a 1FN. Las tablas que no tenan atributos con valores atmicos se deca que la cumplan con 1FN y las que no tuvimos que separar dichos valores (atributos) a una tabla auxiliar tomando en cuenta las llaves primarias.
Despus proseguimos con cada tabla para ahora pasarlas a 2FN, primero que nada las tablas deben estar en 1FN para poder pasarlas a 2FN ya cumpliendo esto, se pueden pasar a 2FN, que nos dice que todo atributo que nos sea clave primaria debe depender nicamente de dicha llave, de no ser as debe separarse o eliminarse as que sabiendo esto proseguimos a dicho proceso hasta terminar la 2FN en cada tabla.
Continuando con nuestro proceso de normalizacin ya habiendo cumplido con la 1FN Y 2FN, ahora se tena que aplicar 3FN, la que nos dice que todo atributo no primario (que no pertenece a la clave primaria) debe depender de la clave primaria y no de otro atributo no primario, si este depende ms de otro atributo ajeno a la llave primaria entonces debe separare o en dado caso ser eliminado, sabiendo esto proseguimos a la aplicacin de la 3FN en cada una de nuestras tablas.
Ya teniendo nuestras tablas en 1FN, 2FN Y 3FN, proseguimos con la FNBC que va de la mano con la 3FN ya que trata igualmente de dependencias funcionales, pero lo que caracteriza a esta forma normal, es que es ms rigurosa que la 3FN ya que aun siendo llaves primarias los atributos, estos no deben depender de unos atributos ms que otros, si no solo deben depender de la llave primaria en s, sabiendo esto continuamos a aplicar la FNBC.
Continuando con la 4FN, nos dice que si hay datos independientes estos deben ser separados, esto se refiere a las dependencias multivaluadas, los atributos
aun siendo llave primaria deben depender de los dems, de no ser as deben separarse de tal manera que tengan congruencia a la hora de introducir datos, sabiendo esto proseguimos a aplicar la 4FN.
Ya la 5FN trata de evitar la redundancia en los datos, si se encuentra dicha redundancia en los datos se tienen que separa los atributos que propicien la misma, sabiendo esto proseguimos a aplicar la 5FN.
Ya habiendo aplicado la 1FN, 2FN, 3FN, FNBC, 4FN Y 5FN dimos por terminado nuestro proceso de normalizacin. Existe otra forma normal (FN) llamada DKNF la cual omitimos por ser difcil de alcanzar en la prctica.
Ya con esto podemos decir que nuestras tablas o mejor dicho nuestra base de datos (BD) est normalizada.
DIAGRAMA FINAL.
aula <<aula>>
profesores <<num_empleado>>
CODIGO SQL.
-- Seccin de la creacin de las tablas -------------------------------------------------- Creacin de la tabla datos_personales CREATE TABLE "datos_personales"( "nombre" Character varying(30), "edad" Bigint, "curp" Character varying(20), "direccion" Character varying(30), "telefono" Character varying(20), "correo" Character varying(30) ) INHERITS ("datos_personales") WITH (OIDS=FALSE) ;
CREATE TABLE "alumnos"( "num_control" Bigint NOT NULL, "carrera" Character varying(20) ) INHERITS ("datos_personales") WITH (OIDS=FALSE) ;
CREATE TABLE "profesores"( "num_empleado" Bigint NOT NULL ) INHERITS ("datos_personales") WITH (OIDS=FALSE) ;
CREATE TABLE "grupos"( "id_grupo" Bigint NOT NULL, "horas_totales" Bigint, "periodo_escolar" Character varying(20), "num_empleado" Bigint, "cve_materia" Bigint ) WITH (OIDS=FALSE) ;
ALTER
TABLE
"grupos"
ADD
CONSTRAINT
"Key4"
PRIMARY
KEY
("id_grupo") ;
"dia" Bigint NOT NULL, "id_grupo" Bigint NOT NULL, "aula" Character varying(20) NOT NULL, "hora_materia" Character varying(20) ) WITH (OIDS=FALSE) ;
CREATE TABLE "aula"( "aula" Character varying(20) NOT NULL ) WITH (OIDS=FALSE) ;
CREATE TABLE "horario_alumno"( "prom_materia" Bigint NOT NULL, "id_grupo" Bigint NOT NULL, "num_control" Bigint NOT NULL )
WITH (OIDS=FALSE) ;
CREATE TABLE "materias"( "cve_materia" Bigint NOT NULL, "horas_materia" Bigint, "nombre_materia" Character varying(20), "carrera" Character varying(20), "creditos" Bigint, "plan" Bigint ) WITH (OIDS=FALSE) ;
CREATE TABLE "calificacion_semestre"( "periodo_escolar" Character varying(20) NOT NULL, "prom_semestre" Bigint, "prom_general" Bigint,
CREATE TABLE "calificaciones_unidad"( "unidad" Bigint NOT NULL, "num_control" Bigint NOT NULL, "id_grupo" Bigint NOT NULL, "calificacion" Bigint NOT NULL ) WITH (OIDS=FALSE) ;
CREATE TABLE "reinscripciones"( "fecha_reinscripcion" Character varying(20) NOT NULL, "periodo_escolar" Character varying(20), "pago_reinscripcion" Bigint,
CREATE TABLE "inscripciones"( "carrera" Character varying(20) NOT NULL, "num_ficha" Bigint NOT NULL, "fecha_inscripcion" Character varying(20), "fecha_limite_inscripcion" Bigint ) WITH (OIDS=FALSE) ;
CREATE TABLE "examenes_especiales"( "fecha_aplicacion" Character varying(20) NOT NULL, "calificacion" Bigint,
"profesor_titular" Character varying(30), "prof_sinodal" Character varying(30), "prof_sinodal2" Character varying(30) ) WITH (OIDS=FALSE) ;
CREATE TABLE "aulas_aux"( "cantidad" Bigint NOT NULL, "equipo_aula" Bigint NOT NULL, "aula" Character varying(20) NOT NULL ) WITH (OIDS=FALSE) ;
CREATE TABLE "traslados"( "num_solicitud" Bigint NOT NULL, "lugar_traslado" Character varying(30),
ALTER TABLE "horario_prof" ADD CONSTRAINT "Relationship1" FOREIGN KEY ("aula") REFERENCES "aula" ("aula") ON DELETE NO ACTION ON UPDATE NO ACTION ;
ALTER TABLE "horario_prof" ADD CONSTRAINT "Relationship2" FOREIGN KEY ("id_grupo") REFERENCES "grupos" ("id_grupo") ON DELETE NO ACTION ON UPDATE NO ACTION ;
ALTER TABLE "grupos" ADD CONSTRAINT "Relationship5" FOREIGN KEY ("num_empleado") REFERENCES "profesores" ("num_empleado") ON
ALTER
TABLE
"horario_alumno"
ADD
CONSTRAINT
"Relationship6"
FOREIGN KEY ("id_grupo") REFERENCES "grupos" ("id_grupo") ON DELETE NO ACTION ON UPDATE NO ACTION ;
ALTER
TABLE
"horario_alumno"
ADD
CONSTRAINT
"Relationship7"
FOREIGN KEY ("num_control") REFERENCES "alumnos" ("num_control") ON DELETE NO ACTION ON UPDATE NO ACTION ;
ALTER TABLE "grupos" ADD CONSTRAINT "Relationship9" FOREIGN KEY ("cve_materia") REFERENCES "materias" ("cve_materia") ON DELETE NO ACTION ON UPDATE NO ACTION ;
ALTER TABLE "calificacion_semestre" ADD CONSTRAINT "Relationship10" FOREIGN KEY ("num_control") REFERENCES "alumnos" ("num_control") ON DELETE NO ACTION ON UPDATE NO ACTION ;
ALTER TABLE "calificaciones_unidad" ADD CONSTRAINT "Relationship11" FOREIGN KEY ("num_control") REFERENCES "alumnos" ("num_control") ON DELETE NO ACTION ON UPDATE NO ACTION ;
ALTER TABLE "calificaciones_unidad" ADD CONSTRAINT "Relationship12" FOREIGN KEY ("id_grupo") REFERENCES "grupos" ("id_grupo") ON DELETE NO ACTION ON UPDATE NO ACTION ;
ALTER
TABLE
"reinscripciones"
ADD
CONSTRAINT
"Relationship13"
FOREIGN KEY ("num_control") REFERENCES "alumnos" ("num_control") ON DELETE NO ACTION ON UPDATE NO ACTION ;
ALTER TABLE "aulas_aux" ADD CONSTRAINT "Relationship14" FOREIGN KEY ("aula") REFERENCES "aula" ("aula") ON DELETE NO ACTION ON UPDATE NO ACTION ;
Tabla Padre
datos_personales nombre edad curp direccin telfono correo
Cdigo generado
-- Seccin de la creacin de las tablas ------------------------------------------------- Creacin de la tabla datos_personales CREATE TABLE "datos_personales"( "nombre" Character varying(30), "edad" Bigint, "curp" Character varying(20), "direccion" Character varying(30), "telefono" Character varying(20), "correo" Character varying(30) ) INHERITS ("datos_personales")
WITH (OIDS=FALSE) ;
-- Creacin de la tabla alumnos CREATE TABLE "alumnos"( "num_control" Bigint NOT NULL, "carrera" Character varying(20) ) INHERITS ("datos_personales") WITH (OIDS=FALSE) ; -- Se agregan las llaves primarias para la tabla alumnos ALTER TABLE "alumnos" ADD CONSTRAINT "Key2" PRIMARY KEY ("num_control") ;
profesores <<num_empleado>>
Nota. Ntese que las tablas alumnos y profesores (tablas
hijo) carecen de atributos, esto es porque al utilizar herencia la tabla datos_personales (tabla padre) les heredara dichos atributos pertenecientes a la misma a las tablas alumnos y profesores (tablas hijo), la herencia se efectuar mediante el siguiente cdigo: <<INHERITS ("datos_personales")>> generado por el modelador
-- Creacin de la tabla profesores CREATE TABLE "profesores"( "num_empleado" Bigint NOT NULL ) INHERITS ("datos_personales") WITH (OIDS=FALSE) ; -- Se agregan las llaves primarias para la tabla profesores ALTER TABLE "profesores" ADD CONSTRAINT "Key3" PRIMARY KEY ("num_empleado") ;
utilizado, en este caso Toad Data Modeler (el cdigo SQL completo generado por el modelador, se puede apreciar en la parte izquierda para cada tabla respectivamente). La herencia se ver reflejada ya en la base de datos (BD) a utilizar, en este caso PostgreSQL.
Recomendaciones a considerar al momento de usar INSERT, DELETE, UPDATE: En el momento llenar las tablas con datos, lo primero que
deben hacer es llenar aquellas tablas que contengan las llaves primarias ya que si llenan antes las que estn relacionadas, este marcara error por la restriccin de la lleve fornea, en otras palabras, primero se deben de llenar las columnas que sean llaves primarias antes que las columnas que sean llaves forneas de la otra tabla o de las otras donde all relacin. Tambin al momento de querer eliminar filas, deben de tomar en cuenta que si las tablas ya estn llenas con datos y se quiere eliminar una fila donde una columna es llave primaria no se les permitir por la restriccin ya que hay una llave fornea en otra tabla, esto es porque hay relacin entre esas tablas, la relaciones pueden existir entre dos o mas tablas, as que, lo primero que deben hacer es, eliminar los datos de aquellas tablas con las que est relacionada dicha tabla. Estas consideraciones se aplican de igual manera al momento de modificar (o actualizar) un dato.
CONCLUSION.
El uso correcto de esta base de datos nos permite un mejor manejo de la informacin almacenada tanto para alumnos como maestros, adems de haber aprendido herramientas importantes para el desarrollo de una base de datos que hasta el momento no nos haban explicado tan correcto como en este curso.
BIBLIOGRAFA.
FUNDAMENTOS DE BASES DE DATOS Cuarta edicin Abraham Silberschatz Introduccin a los Sistemas de bases de datos SPTIMA EDICIN C. J. Date