Sie sind auf Seite 1von 22

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
<<num_control>>
aula aluas_aux calificación_semestre
carrera
<<aula>> <<cantidad <<periodo_escolar
aula FK num_control FK>>
equipo_aula>> prom_general
prom_semestre
calificaciones_unidad
<<unidad profesores
num_control FK <<num_empleado>> grupos horario_alumno
id_grupo FK >> <<id_grupo>> <<prom_materia
calificación horas_totales id_grupo FK
periodo_escolar num_control FK>>
num_empleado FK
exámenes_especiales
cve_materia FK
<<fecha_aplicación
horario_prof num_control FK
<<día cve_materia FK >> materias
id_grupo FK >> prof_sinodal <<cve_materia>>
traslados
aula FK prof_sinodal2 horas_materia
<<num_solicitud>>
hora_materia calificación nombre_materia
lugar_traslado
profesor_titular carrera
fecha_traslado
créditos
inscripciones plan
reinscripciones
<<fecha_reinscripción <<carrera
num_control FK>> num_ficha>>
datos_personales
pago_reinscripción fecha_inscripción
nombre
horario_reinscripción fecha_limite_inscripción
edad
periodo_escolar 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 CONSTRAINT "Key4" PRIMARY KEY


("id_grupo")
;

-- Creación de la tabla horario_prof

CREATE TABLE "horario_prof"(


"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 -- Sección de la creación de las tablas ---------------------------------------------


----
nombre
edad -- Creación de la tabla datos_personales
curp CREATE TABLE "datos_personales"(
dirección
"nombre" Character varying(30),
teléfono
correo "edad" Bigint,

"curp" Character varying(20),

"direccion" Character varying(30),

"telefono" Character varying(20),

"correo" Character varying(30) )

INHERITS ("datos_personales")

WITH (OIDS=FALSE) ;
Tablas Hijo (o heredadas)

alumnos -- Creación de la tabla alumnos


<<num_control>>
CREATE TABLE "alumnos"(
carrera
"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


<<num_empleado>>
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
INHERITS ("datos_personales")
herencia la tabla datos_personales (tabla padre) les
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: <<INHERITS
ALTER TABLE "profesores" ADD CONSTRAINT "Key3" PRIMARY
("datos_personales")>> generado por el modelador KEY ("num_empleado") ;
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.
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','mas@hotmail.com',9560011,'isc'),
('julio agosto',20,'ve910120hmnllc02c','los perros 1','321415','ja@hotmail.com',9560012,'iq'),
('salomon solorio',19,'jaret98093hmnllc02c','torreon 67','456734','ss@hotmail.com',9560013,'iq'),
('rafaela soas',20,'sosa0420hmnllc02c','las cotorras 26','879034','rsosa_04@hotmail.com',9560014,'isc'),
('emmanuel alanis',20,'ve910120hmnllc02','torreon 17','894532','manuel@hotmail.com',9560015,'ii'),
('juan mendez',21,'jlm901009hmnllc0','pera 45','907634','jlme@hotmail.com',9560016,'isc'),
('vixtor alanis',20,'aavv910120hmnll','torreon 17','231425','vmav_2091@hotmail',9560017,'isc'),
('mario rivas',22,'mar0131321hmnllc0','manzanas 34','645328','mar@hotmail.com',9560018,'iel'),
('rafael marquez',20,'rm0420hmnllc02c','las cotorras 56','243516','rm_04@hotmail.com',9560019,'isc'),
('jorge perez',19,'j90320hmnllc02c','rio verde','231648','jlp@hotmail.com',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

Das könnte Ihnen auch gefallen