INSTITUTO TECNOLOGICO DE LAZARO CARDENAS
ALUMNO (S): VICTOR MANUEL ALANIS VELAZQUEZ HOMAR SANCHEZ BAUTISTA LUIS FELIPE FIGUEROA INFANTE
PROFESOR (A): ARACELI VELAZQUEZ GUTIÉRREZ
ASIGNATURA: FUNDAMENTOS DE BASE DE DATOS
CARRERA: INGENIERIA EN SISTEMAS COMPUTACIONALES
PROYECTO: DISEÑO DE UN SISTEMA DE BASE DE DATOS PARA EL CONTROL ESCOLAR.
OBJETIVO. Desarrollar un sistema de base de datos en el cual nos permita llevar el control escolar de una institución de nivel medio superior para un mejor manejo de de la información desarrollando los conocimientos adquiridos en el aula.
INTRODUCCIÓN. Un sistema de bases de datos es básicamente un sistema computarizado para llevar registros.
Es posible considerar a la propia base de datos como una especie de armario electrónico para archivar; es decir, es un depósito o contenedor de una colección de archivos de datos computarizados. Los usuarios del sistema pueden realizar una variedad de operaciones sobre dichos archivos, por ejemplo:
Agregar nuevos archivos vacíos 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
están
expresadas en un lenguaje denominado SQL. SQL es el lenguaje estándar para interactuar con bases de datos relaciónales y es soportado por práctica mente todos los productos de base de datos actuales.
JUSTIFICACIÓN.
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 específicas que formuló la comunidad estudiantil.
MARCO TEÓRICO.
Una base de datos es un conjunto de datos persistentes que es utilizado por los sistemas de aplicación de alguna empresa dada. Aquí, el término "empresa" es simplemente un término genérico conveniente para identificar a cualquier organización independiente de tipo comercial, técnico, científico u otro. Una empresa podría ser un solo individuo (con una pequeña base de datos personal), toda una corporación 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:
1. Una compañía manufacturera 2. Un banco 3. Un hospital 4. Una universidad 5. Un departamento gubernamental
Toda empresa necesariamente debe mantener una gran cantidad de datos acerca de su operación. La implementación de determinado modelo de datos es una realización física, en una máquina real, de los componentes de la máquina abstracta que en conjunto constituyen ese modelo.
DESCRIPCIÓN DEL PROBLEMA. Tener acceso de manera más eficiente a la información para un mejor manejo de resultados específicos, como promedios, índice de reprobación y/o aprobación, exámenes especiales, etc.
PROCESO DE CONTROL ESCOLAR.
1.-El alumno tiene un registro contenido en la tabla inscripciones, cuyos datos personales están registrados en la tabla alumno, además de poder consultar sus calificaciones en la tabla calificaciones por unidad, ellos mismos cada semestre se podrán reinscribir cada semestre en un horario según su promedio general que podrán 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 podrán identificar las horas y las aulas en las que impartirán y recibirán sus materias.
4.-En las tablas aulas y aulas_aux se podrá encontrar información del nombre de las aulas, edificio en el que se encuentran y numero de aula, además del equipo con la que cuenta el aula.
5.-En las tablas exámenes_especiales y traslados se
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 institución respectivamente.
IDENTIFICACIÓN DE ENTIDADES. Las entidades fuertes en nuestra base de datos se identifican con
los
nombres:
Alumnos
Profesores
Grupos
Exámenes_especiales
Inscripciones
Reinscripciones
Traslados
Aulas
Materias
Las entidades débiles en nuestra base de datos se identifican con los nombres: o Aulas_aux o Horario_alumno o Horario_prof o Calificación_semestre o Calificación_unidad o Grupos
ALCANCES DEL PROYECTO.
El sistema podrá llevar el control sobre la información personal del alumnado así
como de profesores, sus calificaciones, materias y grupos asignados,
respectivamente.
PROCESO DE NORMALIZACIÓN.
En este proceso lo primero que hicimos fue identificar los datos atómicos y los no atómicos de cada tabla para así poder pasarlos a 1FN. Las tablas que no tenían atributos con valores atómicos se decía que la cumplían con 1FN y las que no tuvimos que separar dichos valores (atributos) a una tabla auxiliar tomando en cuenta las llaves primarias.
Después 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 normalización ya habiendo cumplido con la 1FN Y 2FN, ahora se tenía 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 más de otro atributo ajeno a la llave primaria entonces debe separare o en dado caso ser eliminado, sabiendo esto proseguimos a la aplicación 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 más rigurosa que la 3FN ya que aun siendo llaves primarias los atributos, estos no deben depender de unos atributos más 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 demás, 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 normalización. Existe otra forma normal (FN) llamada DKNF la cual omitimos por ser difícil de alcanzar en la práctica.
Ya con esto podemos decir que nuestras tablas o mejor dicho nuestra base de datos (BD) está normalizada.
En la siguiente imagen se muestra nuestra base de datos (BD) ya normalizada:
DIAGRAMA FINAL.
alumnos <
> carrera
aula <>
calificaciones_unidad <> calificación
horario_prof <> aula FK hora_materia
aluas_aux <>
profesores <>
exámenes_especiales <> prof_sinodal prof_sinodal2 calificación profesor_titular
reinscripciones <> pago_reinscripción horario_reinscripción periodo_escolar
calificación_semestre <> prom_general prom_semestre
grupos <> horas_totales periodo_escolar num_empleado FK cve_materia FK
traslados <> lugar_traslado fecha_traslado
inscripciones <> fecha_inscripción fecha_limite_inscripción
horario_alumno <>
materias <> horas_materia nombre_materia carrera créditos plan
datos_personales nombre edad curp dirección teléfono correo
CODIGO SQL.
-- Sección de la creación de las tablas -------------------------------------------------- Creación 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) ;
-- Creación 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") ;
-- Creación 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") ;
-- Creación de la tabla grupos
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) ;
-- Se agregan las llaves primarias para la tabla grupos
ALTER
TABLE
"grupos"
ADD
("id_grupo") ;
-- Creación de la tabla horario_prof
CREATE TABLE "horario_prof"(
CONSTRAINT
"Key4"
PRIMARY
KEY
"dia" Bigint NOT NULL, "id_grupo" Bigint NOT NULL, "aula" Character varying(20) NOT NULL, "hora_materia" Character varying(20) ) WITH (OIDS=FALSE) ;
-- Se agregan las llaves primarias para la tabla horario_prof
ALTER TABLE "horario_prof" ADD CONSTRAINT "Key5" PRIMARY KEY ("aula","id_grupo","dia") ;
-- Creación de la tabla aula
CREATE TABLE "aula"( "aula" Character varying(20) NOT NULL ) WITH (OIDS=FALSE) ;
-- Se agregan las llaves primarias para la tabla aula
ALTER TABLE "aula" ADD CONSTRAINT "Key6" PRIMARY KEY ("aula") ;
-- Creación de la tabla horario_alumno
CREATE TABLE "horario_alumno"( "prom_materia" Bigint NOT NULL, "id_grupo" Bigint NOT NULL, "num_control" Bigint NOT NULL )
WITH (OIDS=FALSE) ;
-- Se agregan las llaves primarias para la tabla horario_alumno
ALTER TABLE "horario_alumno" ADD CONSTRAINT "Key7" PRIMARY KEY ("prom_materia","id_grupo","num_control") ;
-- Creación de la tabla materias
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) ;
-- Se agregan las llaves primarias para la tabla materias
ALTER TABLE "materias" ADD CONSTRAINT "Key8" PRIMARY KEY ("cve_materia") ;
-- Creación de la tabla calificacion_semestre
CREATE TABLE "calificacion_semestre"( "periodo_escolar" Character varying(20) NOT NULL, "prom_semestre" Bigint, "prom_general" Bigint,
"num_control" Bigint NOT NULL ) WITH (OIDS=FALSE) ;
-- Se agregan las llaves primarias para la tabla calificacion_semestre
ALTER TABLE "calificacion_semestre" ADD CONSTRAINT "Key9" PRIMARY KEY ("periodo_escolar","num_control") ;
-- Creación de la tabla calificaciones_unidad
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) ;
-- Se agregan las llaves primarias para la tabla calificaciones_unidad
ALTER TABLE "calificaciones_unidad" ADD CONSTRAINT "Key10" PRIMARY KEY ("unidad","num_control","id_grupo") ;
-- Creación de la tabla reinscripciones
CREATE TABLE "reinscripciones"( "fecha_reinscripcion" Character varying(20) NOT NULL, "periodo_escolar" Character varying(20), "pago_reinscripcion" Bigint,
"horario_reinscripcion" Character varying(20), "num_control" Bigint NOT NULL ) WITH (OIDS=FALSE) ;
-- Se agregan las llaves primarias para la tabla reinscripciones
ALTER TABLE "reinscripciones" ADD CONSTRAINT "Key11" PRIMARY KEY ("num_control","fecha_reinscripcion") ;
-- Creación de la tabla inscripciones
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) ;
-- Se agregan las llaves primarias para la tabla inscripciones
ALTER TABLE "inscripciones" ADD CONSTRAINT "Key12" PRIMARY KEY ("carrera","num_ficha") ;
-- Creación de la tabla examenes_especiales
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) ;
-- Se agregan las llaves primarias para la tabla examenes_especiales
ALTER TABLE "examenes_especiales" ADD CONSTRAINT "Key13" PRIMARY KEY ("fecha_aplicacion") ;
-- Creación de la tabla aulas_aux
CREATE TABLE "aulas_aux"( "cantidad" Bigint NOT NULL, "equipo_aula" Bigint NOT NULL, "aula" Character varying(20) NOT NULL ) WITH (OIDS=FALSE) ;
-- Se agregan las llaves primarias para la tabla aulas_aux
ALTER TABLE "aulas_aux" ADD CONSTRAINT "Key14" PRIMARY KEY ("cantidad","equipo_aula","aula") ;
-- Creación de la tabla traslados
CREATE TABLE "traslados"( "num_solicitud" Bigint NOT NULL, "lugar_traslado" Character varying(30),
"fecha_traslado" Character varying(20) ) WITH (OIDS=FALSE) ;
-- Se agregan las llaves primarias para la tabla traslados
ALTER TABLE "traslados" ADD CONSTRAINT "Key15" PRIMARY KEY ("num_solicitud") ;
-- Sección de la creación de las relaciones (o llaves foráneas) ------------------------------------------------
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
DELETE NO ACTION ON UPDATE NO ACTION ;
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 ;
Aplicación de Herencia (Diagrama y código SQL).
Tabla Padre
Código generado
datos_personales nombre edad curp dirección teléfono correo
-- Sección de la creación de las tablas ------------------------------------------------- Creación 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")
Tablas Hijo (o heredadas)
WITH (OIDS=FALSE) ;
alumnos <> carrera
-- Creación 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 <>
-- Creación de la tabla profesores CREATE TABLE "profesores"(
Nota. Nótese que las tablas alumnos y profesores (tablas
"num_empleado" Bigint NOT NULL )
hijo) carecen de atributos, esto es porque al utilizar herencia la tabla datos_personales (tabla padre) les
INHERITS ("datos_personales")
heredara dichos atributos pertenecientes a la misma a las
WITH (OIDS=FALSE) ;
tablas alumnos y profesores (tablas hijo), la herencia se
-- Se agregan las llaves primarias para la tabla profesores
efectuará mediante el siguiente código: <>
generado
por
el
modelador
utilizado, en este caso Toad Data Modeler (el código 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.
ALTER TABLE "profesores" ADD CONSTRAINT "Key3" PRIMARY KEY ("num_empleado") ;
INSTRUCCIONES SQL. Inserción de datos nuevos: INSERT INTO alumnos VALUES ('maria ramirez',24,'mara4509hmnllc02c','aguas11','987632','mara4509hmnllc02c',9560010,'ie'), ('mario suarez',24,'mas4509hmnllc02c','aguas1','454536','[email protected]',9560011,'isc'), ('julio agosto',20,'ve910120hmnllc02c','los perros 1','321415','[email protected]',9560012,'iq'), ('salomon solorio',19,'jaret98093hmnllc02c','torreon 67','456734','[email protected]',9560013,'iq'), ('rafaela soas',20,'sosa0420hmnllc02c','las cotorras 26','879034','[email protected]',9560014,'isc'), ('emmanuel alanis',20,'ve910120hmnllc02','torreon 17','894532','[email protected]',9560015,'ii'), ('juan mendez',21,'jlm901009hmnllc0','pera 45','907634','[email protected]',9560016,'isc'), ('vixtor alanis',20,'aavv910120hmnll','torreon 17','231425','vmav_2091@hotmail',9560017,'isc'), ('mario rivas',22,'mar0131321hmnllc0','manzanas 34','645328','[email protected]',9560018,'iel'), ('rafael marquez',20,'rm0420hmnllc02c','las cotorras 56','243516','[email protected]',9560019,'isc'), ('jorge perez',19,'j90320hmnllc02c','rio verde','231648','[email protected]',9560020,'ie'); INSERT INTO calificacion_semestre VALUES ('ene-jun 2011',90,93,9560010), ('ene-jun 2011',80,90,9560011), ('ene-jun 2011',80,100,9560012), ('ene-jun 2011',70,70,9560013), ('ene-jun 2011',80,85,9560014), ('ene-jun 2011',75,80,9560015), ('ene-jun 2011',85,87,9560016), ('ene-jun 2011',77,79,9560017), ('ene-jun 2011',79,80,9560018), ('ene-jun 2011',80;85,9560019), ('ene-jun 2011',80;85,9560020); INSERT INTO calificaciones_unidad
INSERT INTO reinscripciones
VALUES
VALUES
(1,9560010,110,70),
('23/08/11','ago-dic',800,'12:00-13:00',9560010),
(2,9560010,110,85),
(‘24/08/11','ago-dic',900,'11:00-14:00',9560011),
(2,9560011,111,80),
('24/09/11','ago-dic',900,'12:00-14:00',9560012),
(3,9560010,110,90),
('25/08/11','ago-dic',700,'10:00-14:00',9560013),
(3,9560011,111,95),
('24/08/11','ago-dic',1000,'13:00-
(3,9560012,112,90),
15:00',9560014),
(4,9560010,110,100),
('15/08/11','ago-dic',800,'12:00-14:00',9560015),
(4,9560011,111,87),
('16/08/11','ago-dic',900,'11:00-14:00',9560016),
(4,9560013,113,100),
('24/08/11','ago-dic',900,'09:00-12:00',9560016),
(5,9560011,111,78);
('22/08/11','ago-dic',800,'10:00-13:00',9560018), ('14/08/11','ago-dic',700,'10:00-12:00',9560019);
Modificación de datos existentes: UPDATE grupos SET periodo_escolar = 'ago - dic 2011' WHERE periodo_escolar like '%e%'; UPDATE grupos SET horas_totales = horas_totales + 1 WHERE num_empleado > 13; UPDATE aulas_aux SET cantidad = cantidad + 2 WHERE cantidad < 2;
Eliminación de datos existentes: DELETE FROM calificacion_semestre WHERE prom_semestre >= 70; DELETE FROM calificaciones_unidad WHERE calificacion > 69; DELETE FROM reinscripciones WHERE periodo_escolar LIKE '%a%';
Consulta de datos existentes Nombre de las materias que se imparten el miércoles en el aula e5. SELECT nombre_materia, dia_materia, num_aula FROM horario_alumno_aux1 where num_aula = 'e5' and dia_materia = 'miercoles';
Nombre de las materias que lleva el estudiante con el num_control 09560634. SELECT nombre_materia, num_control FROM horario_alumno_aux1 where num_control = 9560634;
Cantidad de alumnos que llevan la materia fundamentos bd. SELECT nombre_materia, count(*) FROM horario_alumno_aux1 where nombre_materia = 'fundamentos bd' group by nombre_materia;
Nombre de los alumnos que harán exámenes especiales. SELECT calificacion, alumnos.nombre_alumno FROM examenes_especiales,alumnos WHERE alumnos.num_control = examenes_especiales.num_control and calificación = 0;
Nombre de los alumnos que ya presentaron exámenes especiales y su calificación. SELECT calificacion,alumnos.nombre_alumno FROM examenes_especiales,alumnos WHERE alumnos.num_control = examenes_especiales.num_control and calificacion>=70;
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 están relacionadas, este marcara error por la restricción de la lleve foránea, en otras palabras, primero se deben de llenar las columnas que sean llaves primarias antes que las columnas que sean llaves foráneas de la otra tabla o de las otras donde allá relación. También al momento de querer eliminar filas, deben de tomar en cuenta que si las tablas ya están llenas con datos y se quiere eliminar una fila donde una columna es llave primaria no se les permitirá por la restricción ya que hay una llave foránea en otra tabla, esto es porque hay relación 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 información almacenada tanto para alumnos como maestros, además de haber aprendido herramientas importantes para el desarrollo de una base de datos que hasta el momento no nos habían explicado tan correcto como en este curso.
BIBLIOGRAFÍA. FUNDAMENTOS DE BASES DE DATOS Cuarta edición Abraham Silberschatz Introducción a los Sistemas de bases de datos SÉPTIMA EDICIÓN C. J. Date