1. UNIVERSIDAD NACIONAL ABIERTA
VICERRECTORADO ACADÉMICO
AREA: INGENIERÍA
TRABAJO PRÁCTICO Nro. 3
ASIGNATURA: Base de Datos
CÓDIGO: 311
FECHA DE ENTREGA: 23-03-2024
NOMBRE DEL ESTUDIANTE: Jaidary Coromoto Mejía la Cruz
CÉDULA DE IDENTIDAD: 26.881.784
CORREO ELECTRÓNICO: jaidarymejia30@gmail.com
TELÉFONO: 0424-7818855
CENTRO LOCAL: Trujillo
UNIDAD DE APOYO: Boconó
CARRERA: 236
RESULTADOS DE CORRECCIÓN:
OBJ. N.º III.3
0:NL 1: L
2. INTRODUCCION
En el mundo de la gestión de bases de datos relacionales, SQL (Structured Query Language)
es un lenguaje estándar utilizado para realizar diversas operaciones, incluida la creación de bases
de datos. La creación de una base de datos en SQL implica definir su esquema, que incluye la
especificación de tablas, columnas y restricciones. La definición del esquema de una base de datos
en SQL implica la creación de tablas y la especificación de las relaciones entre ellas. Esto se logra
mediante la declaración de columnas y la asignación de claves primarias y externas para establecer
relaciones entre las tablas.
Por consiguiente, una vez definido el esquema de la base de datos, se pueden insertar
registros en las tablas para almacenar datos. Esto se logra mediante la instrucción INSERT INTO,
que permite agregar filas de datos a una tabla específica. Las consultas en SQL se utilizan para
recuperar datos de una base de datos. Esto se logra mediante la instrucción SELECT, que permite
seleccionar columnas específicas de una o más tablas, filtrar resultados con condiciones y ordenar
los datos según criterios específicos.
Por otra parte, las restricciones en SQL se utilizan para imponer reglas o condiciones en los
datos almacenados en la base de datos. Esto incluye restricciones de integridad, como claves
primarias y externas, así como restricciones de valores permitidos en columnas específicas. La
agregación y la agrupación de datos en SQL se utilizan para realizar cálculos sobre conjuntos de
datos y resumir los resultados. Esto se logra mediante funciones de agregación como COUNT, SUM,
AVG, MAX y MIN, así como la agrupación de filas de datos utilizando la cláusula GROUP BY.
Finalmente, el ordenamiento y el filtrado de resultados en SQL se utilizan para organizar y
limitar los datos recuperados por una consulta. Esto se logra mediante la cláusula ORDER BY para
ordenar los resultados según una o más columnas y la cláusula WHERE para filtrar filas basadas en
condiciones específicas.
En resumen, SQL es un lenguaje poderoso y versátil que permite gestionar eficazmente
bases de datos relacionales mediante la creación de esquemas, la manipulación de datos y la
realización de consultas avanzadas para obtener información útil.
3. TABLA DE CONTENIDOS
INTRODUCCION.................................................................................................................................................................. 2
ESPECIFICACIONES DEL TRABAJO PRÁCTICO No.3...............................................................................................4
CREAR LA B.D LLAMADA COLEGIO...............................................................................................................................9
CREAR LAS TABLAS PRESENTADAS........................................................................................................................... 9
INSERTAR LOS REGISTROS EN LAS TABLAS PRESENTADAS...........................................................................11
CONSULTAS EN LA B.D...................................................................................................................................................15
BIBLIOGRAFIA....................................................................................................................................................................19
4. ESPECIFICACIONES DEL TRABAJO PRÁCTICO No.3
En este proyecto, se creará una B.D. relacional, llamada Colegio con sus respectivas tablas
y se realizaran consultas simples, practicando los comandos más utilizados en el modelo SQL.
Dadas las siguientes tablas:
Grados
Numero nombre tipo inicio fin
1 Primero Semestre 2019-03-05 2019-09-05
2 Segundo Semestre 2019-03-05 2019-09-05
3 Tercero Semestre 2019-03-05 2019-09-05
4 Cuarto Semestre 2019-03-05 2019-09-05
5 Quinto Semestre 2019-03-05 2019-09-05
Secciones
Sección turno id_coordinador id_grado
"A" "Matutino" 1 1
"B" "Matutino" 1 1
"C" "Matutino" 1 1
"A" "Matutino" 1 2
"B" "Matutino" 1 2
"A" "Matutino" 1 3
"A" "Matutino" 1 4
"A" "Matutino" 1 5
5. Materias
NombreMateria Clave.id id_maestro
Física I 009 1
Física II 009 1
Física III 009 1
Matemática I 009 2
Matemática II 009 2
Matemática III 009 2
Química I 009 3
Química II 009 3
Química III 009 3
Biología I 009 4
Biología II 009 4
Biología III 009 4
Historia I 009 5
Historia II 009 5
Historia III 009 5
Geografía I 009 6
Geografía II 009 6
Geografía III 009 6
Artes I 009 7
Artes II 009 7
Artes III 009 7
6. Inglés I 009 8
Inglés II 009 8
Inglés III 009 8
Estudiantes
IdEstudiante Nombre Grad
o
Sección id_maestro Fecha de Inscripción
E11 Jesús García 1 "A" 1 4-2-2019
E12 Carolina Ramírez 1 "B" 1 5-2-2019
E13 Homero Garces 1 "C" 1 6-2-2019
E21 Julio Ferreira 2 "A" 2 7-2-2019
E22 Omaira Torres 2 "B" 2 8-2-2019
E31 Luis León 3 "A" 3 11-2-2019
E41 Pedro Gutiérrez 4 "A" 4 12-2-2019
E51 José Guzmán 5 "A" 5 13-2-2019
Maestros
Id_Maestr
o
Nombre Grado Sección
1 Pablo Ortega 1 "A"
1 Pablo Ortega 1 "B"
1 Pablo Ortega 1 "C"
1 Julio Ferreira 2 "A"
7. 2 Carlos Acosta 2 "B"
3 María León 3 "A"
4 Juan Sánchez 4 "A"
5 Mirtha Bolívar 5 "A"
6 Jesús Castañeda 6 "A"
7 Cristóbal Alvarado 7 "A"
8 Marta González 8 "A"
8. Con las tablas anteriores establecer en forma analítica en código SQL, la B.D. relacional,
como sigue:
1. Crear la B.D. llamada Colegio.
2. Crear las tablas presentadas.
3. Insertar los registros en las tablas presentadas.
4. Realizar las siguientes consultas sobre la B.D. creada.
-Seleccionar a todos los maestros, excepto de las asignaturas de historia e inglés
-Seleccionar a todos los maestros, que dan primero, segundo y tercer grado
-Seleccionar a todos los estudiantes, de primero y segundo grado, mostrando el nombre, sección, id
del maestro.
-Seleccionar a todas las secciones por grado que existen.
-Seleccionar a los maestros correspondientes a los estudiantes, mostrando nombre del maestro,
nombre del estudiante, grado y sección.
-Seleccionar a todas las materias que se dictan que existen.
-Seleccionar a todas las materias por grado, mostrando nombre de materia, grado, nombre del
maestro por grado.
-Seleccionar a los alumnos inscritos entre 7/2/2019 y 13/2/2019, mostrando el nombre, apellido,
grado y fecha de inscripción. Ordenar por fecha ascendente.
-Seleccionar cuantos alumnos hay en cada grado, sólo mostrando el número del curso y su cantidad
de alumnos.
-Seleccionar las materias dictadas por los maestros mostrando, identificación de la materia nombre
y nombre del maestro
UND III, OBJ. I
Establecer, de forma coherente, el modelo SQL con definición del
esquema, restricciones, consultas y vistas.
.
9. CREAR LA B.D LLAMADA COLEGIO
SQL
CREATE DATABASE COLEGIO;
CREAR LAS TABLAS PRESENTADAS
-- Usar la base de datos COLEGIO
USE COLEGIO;
-- Crear la tabla Grados
CREATE TABLE Grados (
Numero INT PRIMARY KEY,
Nombre VARCHAR(50),
Tipo VARCHAR(50),
Inicio DATE,
Fin DATE
);
-- Crear la tabla Secciones
CREATE TABLE Secciones (
Seccion VARCHAR(10),
Turno VARCHAR(20),
11. -- Crear la tabla Maestros
CREATE TABLE Maestros (
Id_Maestro INT PRIMARY KEY,
Nombre VARCHAR(100),
Grado INT,
Seccion VARCHAR(10)
);
-- Añadir las relaciones de las tablas Estudiantes y Secciones
ALTER TABLE Estudiantes
ADD FOREIGN KEY (Seccion) REFERENCES Secciones(Seccion);
-- Añadir la relación de la tabla Secciones con Maestros
ALTER TABLE Secciones
ADD FOREIGN KEY (Id_Coordinador) REFERENCES Maestros(Id_Maestro);
INSERTAR LOS REGISTROS EN LAS TABLAS PRESENTADAS
-- Insertar registros en la tabla Grados
INSERT INTO Grados (Numero, Nombre, Tipo, Inicio, Fin)
VALUES
(1, 'Primero', 'Semestre', '2019-03-05', '2019-09-05'),
15. (8, 'Marta González', 8, 'A');
CONSULTAS EN LA B.D
-Seleccionar a todos los maestros, excepto de las asignaturas de historia e inglés
SELECT *
FROM Maestros
WHERE Grado NOT IN (SELECT DISTINCT Grado FROM Materias WHERE NombreMateria
IN ('Historia I', 'Historia II', 'Historia III', 'Inglés I', 'Inglés II', 'Inglés III'));
Id_Maestro Nombre Grado Seccion
1
1
1
6
7
8
Pablo Ortega
Pablo Ortega
Pablo Ortega
Jesús Castañeda
Cristóbal Alvarado
Marta González
1
1
1
6
7
8
A
B
C
A
A
A
-Seleccionar a todos los maestros, que dan primero, segundo y tercer grado
SELECT DISTINCT m.Id_Maestro, m.Nombre
FROM Maestros m
16. JOIN Estudiantes e ON m.Id_Maestro = e.id_maestro
JOIN Grados g ON e.Grado = g.Numero
WHERE g.Numero IN (1, 2, 3);
-Seleccionar a todos los estudiantes, de primero y segundo grado, mostrando el nombre,
sección, id del maestro.
-Seleccionar a todas las secciones por grado que existen.
SELECT DISTINCT id_grado, Sección
FROM Secciones;
-Seleccionar a los maestros correspondientes a los estudiantes, mostrando nombre del
maestro, nombre del estudiante, grado y sección.
SELECT m.Nombre AS 'Nombre del Maestro', e.Nombre AS 'Nombre del Estudiante', e.Grado,
e.Sección
FROM Maestros m
JOIN Estudiantes e ON m.id_maestro = e.id_maestro;
-Seleccionar a todas las materias que se dictan que existen.
SELECT DISTINCT NombreMateria
SELECT e.Nombre, e.Sección, e.id_maestro
FROM Estudiantes e
JOIN Grados g ON e.Grado = g.Numero
WHERE g.Numero IN (1, 2);
17. FROM Materias;
-Seleccionar a todas las materias por grado, mostrando nombre de materia, grado,
nombre del maestro por grado.
SELECT m.NombreMateria, g.Numero AS 'Grado', ma.Nombre AS 'Nombre del Maestro'
FROM Materias m
JOIN Grados g ON m.id = g.Numero
JOIN Maestros ma ON m.id_maestro = ma.Id_Maestro;
-Seleccionar a los alumnos inscritos entre 7/2/2019 y 13/2/2019, mostrando el nombre,
apellido, grado y fecha de inscripción. Ordenar por fecha ascendente.
SELECT m.NombreMateria, g.Numero AS 'Grado', ma.Nombre AS 'Nombre del Maestro'
FROM Materias m
JOIN Grados g ON m.id = g.Numero
JOIN Maestros ma ON m.id_maestro = ma.Id_Maestro;
-Seleccionar cuantos alumnos hay en cada grado, sólo mostrando el número del curso y
su cantidad de alumnos.
SELECT Grado, COUNT(*) AS 'Cantidad de Alumnos'
FROM Estudiantes
GROUP BY Grado;
18. -Seleccionar las materias dictadas por los maestros mostrando, identificación de la
materia nombre y nombre del maestro
SELECT m.NombreMateria, ma.Nombre AS 'Nombre del Maestro'
FROM Materias m
JOIN Maestros ma ON m.id_maestro = ma.Id_Maestro;
Recomendaciones básicas para la creación y gestión de bases de datos en SQL:
1. Planificación antes de comenzar: Antes de crear una base de datos, se debe planificar su
estructura, los tipos de datos que necesitarás, las relaciones entre las tablas y cualquier
restricción necesaria.
2. Utilizar nombres descriptivos: Los nombres descriptivos para las tablas, columnas, claves
primarias, claves foráneas y cualquier otro objeto de base de datos para facilitar la comprensión
y el mantenimiento de la base de datos.
3. Normalizar la base de datos: Se aplican los principios de normalización para reducir la
redundancia de datos y garantizar la integridad de los datos. Esto ayuda a evitar problemas
como la actualización anómala y la inconsistencia de datos.
4. Establecer claves primarias y claves foráneas: Definir claves primarias para identificar de
forma única cada registro en una tabla y claves foráneas para establecer relaciones entre las
tablas. Esto asegurará la integridad referencial de la base de datos.
5. Utilizar restricciones de integridad: Las restricciones de integridad, como restricciones NOT
NULL, UNIQUE, DEFAULT y CHECK, garantizan la validez y consistencia de los datos
almacenados en la base de datos.
6. Realizar copias de seguridad regularmente: Las copias de seguridad de una base de datos
protegen los datos contra la pérdida accidental, el daño o la corrupción. También es
recomendable probar regularmente la restauración de las copias de seguridad para asegurarse
de que funcionen correctamente.
19. BIBLIOGRAFIA
1. Platzi. (s.f.). Curso de Bases de Datos. Recuperado de https://platzi.com/cursos/bd/
2. Ramez, E. y Shamkant, N. (2007). Fundamentos de Sistemas de bases de datos, 5ª
Edición, PEARSON EDUCACIÓN S.A.: Madrid pp. 205-243