Professional Documents
Culture Documents
Independencia.
Capacidad de modificar el esquema
(físico o lógico) sin tener que realizar
cambios en las aplicaciones que se sirven
de ella.
Finalidad del DBMS
Redundancia mínima.
Evitar la aparición de información
repetida o redundante.
Consistencia.
Vigilar que aquella información que
aparece repetida se actualice de forma
coherente.
Finalidad del DBMS
Seguridad.
Respaldo y recuperación.
Proporcionar una forma eficiente de realizar
copias de seguridad de la información
almacenada.
Restaurar a partir de estas copias los datos
que se hayan podido perder.
Finalidad del DBMS
Control de la concurrencia.
Son muchas las personas que acceden a
una base de datos.
SGBD debe controlar este acceso
concurrente a la información, que podría derivar
en inconsistencias.
Tiempo de respuesta.
Minimizar el tiempo que el SGBD tarda en
darnos la información solicitada y en almacenar
los cambios realizados.
En resumen
Finalidad de DBMS
1. Abstracción de la información.
2. Independencia.
3. Redundancia mínima.
4. Consistencia.
5. Seguridad.
6. Integridad.
7. Respaldo y recuperación.
8. Control de la concurrencia.
9. Tiempo de respuesta.
DBMS comerciales:
DBMS a utilizar
SQL Server 2014
Developer Edition o superior
MySQL
Componentes de SQL
• Comandos,
• Cláusulas,
• Operadores,
• Funciones.
Comandos DDL
Comando Descripción
CREATE Utilizado para crear nuevas tablas,
campos e índices.
DROP Empleado para eliminar tablas e índices.
ALTER Utilizado para modificar las tablas agregando
campos o combinando la definición de los campos.
1.2.3 De edición para crear esquemas y consultas de bases de datos
Componentes de SQL
Cláusulas
• Son condiciones de modificación utilizadas para definir
los datos que desea seleccionar o manipular.
Cláusula Descripción
FROM Utilizada para especificar la tabla de la cual se van a
seleccionar los registros.
WHERE Utilizada para especificar las condiciones que
deben reunir los registros que se van a seleccionar.
GROUP BY Utilizada para separar los registros seleccionados
en grupos específicos.
HAVING Utilizada para expresar la condición que debe
satisfacer cada grupo.
ORDER BY Utilizada para ordenar los registros seleccionados
de acuerdo con un orden específico
1.2.3 De edición para crear esquemas y consultas de bases de datos
Componentes de SQL
Operadores Lógicos
Operador Uso
AND Es el "y" lógico. Evalúa dos condiciones y devuelve
un valor de verdad sólo si ambas son ciertas.
OR Es el "o" lógico. Evalúa dos condiciones y devuelve
un valor de verdad si alguna de las dos es cierta.
NOT Negación lógica. Devuelve el valor contrario de la
expresión.
1.2.3 De edición para crear esquemas y consultas de bases de datos
Componentes de SQL
Operadores de comparación
Operador Uso
= Igual que
<>, != Diferente
!< No menor que
!> No mayor que
BETWEEN Utilizado para especificar un intervalo de valores.
LIKE Utilizado en la comparación de un modelo.
Funciones de agrupamiento
•Se usan dentro de una cláusula SELECT en grupos de registros
para devolver un único valor que se aplica a un conjunto de
registros.
Función Descripción
AVG Utilizada para calcular el promedio de los valores de un
campo determinado .
COUNT Utilizada para devolver el número de registros
de la selección.
SUM Utilizada para devolver la suma de todos los valores de
un campo determinado.
MAX Utilizada para devolver el valor más alto de un campo
especificado.
MIN Utilizada para devolver el valor más bajo de un campo
especificado.
1.2.3 De edición para crear esquemas y consultas de bases de datos
Tipos de datos
Cada columna, variable local, expresión y
parámetro dispone de un tipo de dato.
SQL Server suministra el siguiente conjunto
de tipos de datos:
1.2.3 De edición para crear esquemas y consultas de bases de datos
Tipos de datos
Empleados
Nombre Apellidos
25 50
1.2.3 De edición para crear esquemas y consultas de bases de datos
Crear tabla
Crea una nueva tabla llamada Empleados con
dos campos, uno llamado Nombre con longitud
25 y otro llamado Apellidos con longitud 50.
Crear tabla
Crea una nueva tabla llamada Empleados2 con un campo
Nombre con longitud 10, otro con llamado Apellidos
longitud 50 y uno más llamado Fecha_Nacimiento de tipo
Fecha/Hora.
También crea una restricción que no permite valores
repetidos para los tres campos.
CREATE TABLE dbo.Empleados2
(
Nombre VARCHAR (10),
Apellidos VARCHAR (50),
Fecha_Nacimiento DATETIME,
CONSTRAINT valor_unico
UNIQUE ([Nombre], [Apellidos], [Fecha_Nacimiento])
) GO
1.2.3 De edición para crear esquemas y consultas de bases de datos
Crear tabla
Crea una tabla llamada Empleados3 con un campo de
longitud 20 llamado Nombre, otro llamado Apellidos de
longitud 25, otro campo llamado Fecha_Nacimiento de
tipo Fecha/Hora y por ultimo un ID de tipo entero el que
establece como llave primaria.
CREATE TABLE dbo.Empleado3
( ID INT PRIMARY KEY,
Nombre VARCHAR(20),
Apellidos VARCHAR(25),
Fecha_Nacimiento DATETIME,
CONSTRAINT valor_unico2
UNIQUE ([Nombre], [Apellidos], [Fecha_Nacimiento]
)
1.2.3 De edición para crear esquemas y consultas de bases de datos
)
CREATE TABLE dbo.Alumnos (
NC INT PRIMARY KEY,
NombreA VARCHAR(50),
Sexo VARCHAR(1),
Domicilio VARCHAR(50),
Edad TINYINT,
NoC INT
FOREIGN KEY (NoC) REFERENCES Carreras)
1.2.3 De edición para crear esquemas y consultas de bases de datos
SELECT selección
[ INTO nueva_tabla ]
FROM tabla_fuente
[ WHERE condición ]
[ GROUP BY grupo ]
[ HAVING condición_grupo ]
[ ORDER BY expresión
[ ASC | DESC ] ]
1.2.3 De edición para crear esquemas y consultas de bases de datos
SELECT selección
[ INTO nueva_tabla ]
FROM tabla_fuente
[ WHERE condición ]
[ GROUP BY grupo ]
[ HAVING condición_grupo ]
[ ORDER BY expresión
[ ASC | DESC ] ]
1.2.3 De edición para crear esquemas y consultas de bases de datos
[ GROUP BY grupo ]
[ HAVING condición_grupo ]
[ ORDER BY expresión
[ ASC | DESC ] ]
Consultas a las Tablas
SELECT selección
[ INTO nueva_tabla ]
FROM tabla_fuente
[ WHERE condición ]
[ GROUP BY grupo ] Especifica el orden del
[ HAVING condición_grupo ] conjunto de resultados.
[ ORDER BY expresión
[ ASC | DESC ] ]
1.2.3 De edición para crear esquemas y consultas de bases de datos
tabla_fuente [ [ AS ] alias ]
| nombre_vista [ [ AS ] alias ]
tabla_fuente [ [ AS ] alias ]
| nombre_vista [ [ AS ] alias ]
tabla_fuente [ [ AS ] alias ]
| nombre_vista [ [ AS ] alias ]
tabla_fuente [ [ AS ] alias ]
| nombre_vista [ [ AS ] alias ]
Ejemplos:
SELECT * FROM Alumnos WHERE Edad
Between 22 And 24
SELECT * FROM Alumnos WHERE Edad NOT
Between 22 And 24
1.2.3 De edición para crear esquemas y consultas de bases de datos
Consultas a las Tablas
Listaremos nombres de los Alumnos que
tenga una edad entre 22 a 24 años utilizando
el BETWEEN.
Arc: Consulta_1_2_Empleados
1.2.3 De edición para crear esquemas y consultas de bases de datos
Consultas a las Tablas
LIKE
Arc: Consulta_3_Empleados
1.2.3 De edición para crear esquemas y consultas de bases de datos
Consultas a las Tablas
LIKE
Arc: Consulta_4_Empleados
1.2.3 De edición para crear esquemas y consultas de bases de datos
Consultas a las Tablas
LIKE
Arc:Seleccion3
Ejercicios
Liste el nombre de todos aquellos
alumnos que están en la carrera de
Ingeniería Civil.
Liste el nombre de todos aquellos
alumnos que son mujeres.
Liste el nombre de todos aquellos
alumnos cuyo apellino inicie con R o r.
1.2.3 De edición para crear esquemas y consultas de bases de datos
Consultas a las Tablas
Subconsultas
Es una consulta SELECT que devuelve un valor único
y está anidada en una instrucción SELECT, INSERT,
UPDATE o DELETE, o dentro de otra subconsulta.
Una subconsulta se puede utilizar en cualquier parte
en la que se permita una expresión.
La consulta SELECT de una subconsulta se incluye
siempre entre paréntesis.
Las instrucciones que incluyen una subconsulta
normalmente tienen uno de estos formatos:
1.2.3 De edición para crear esquemas y consultas de bases de datos
Consultas a las Tablas
Subconsultas
Ejercicio
Liste los nombres de los alumnos que están
inscritos(en al menos un grupo).
SELECT NC, NombreA FROM Alumnos
WHERE NC IN (SELECT NC FROM
Grupos)
Arc: Consulta_7_Alumnos_y_Grupos
1.2.3 De edición para crear esquemas y consultas de bases de datos
Consultas a las Tablas
5. Liste los nombres de los Catedráticos que
no imparten clases
Arc: Consulta_8_Catedraticos_y_Grupos
1.2.3 De edición para crear esquemas y consultas de bases de datos
NxM
1.2.3 De edición para crear esquemas y consultas de bases de datos
Consultas a las Tablas
Utilizar combinaciones
cruzadas
SELECT * FROM Alumnos, Carrera
Arc: Consulta_9_Producto_Alumnos_Carrera
1.2.3 De edición para crear esquemas y consultas de bases de datos
Consultas a las Tablas
6. Liste el Número de Control, Nombre del Alumno y
Nombre de Carrera de todos los Alumnos.
Arc: Consulta_9_Producto_Alumnos_Carrera_2
1.2.3 De edición para crear esquemas y consultas de bases de datos
Sintaxis
[ GROUP BY grupo [ ,...n ] ]
SELECT NoC,NombreA
FROM Alumnos GROUP BY
NoC,NombreA
Arc: Consulta_5_Emp1eados_1
1.2.3 De edición para crear esquemas y consultas de bases de datos
AVG Devuelve la media de los valores de un grupo. Los valores nulos se pasan
por alto.
SUM Devuelve la suma de todos los valores, sólo puede utilizarse con columnas
numéricas. Los valores nulos se pasan por alto.
1.2.3 De edición para crear esquemas y consultas de bases de datos
Arc: Consulta_5_Empleados
1.2.3 De edición para crear esquemas y consultas de bases de datos
Consultas a las Tablas
7. De cada grupo liste Número de grupo, Nombre
del Catedrático, Nombre de la Materia, Número de
FIN Alumnos, Calificación Máxima, Calificación Mínima
y Promedio.
SELECT NG, G.NCC, C.NombreC, G.NM, M.NombreM,
COUNT(*) AS [No de Alumnos],
MAX(Calificación) AS [CAL.MAX],
MIN(Calificación) AS [CAL. MIN],
AVG(Calificación) AS [PROMEDIO]
FROM Grupos G, Catedraticos C, Materias M
WHERE G.NCC = C.NCC AND G.NM = M.NM
GROUP BY NG, G.NCC, C.Nombrec, G.NM, M.NombreM
Arc: Consulta_11_PromedioAlumnos
1.2.3 De edición para crear esquemas y consultas de bases de datos
Consultas a las Tablas
7. De cada grupo liste Número de grupo, Nombre
del Catedrático, Nombre de la Materia, Número de
Alumnos, Calificación Máxima, Calificación Mínima
y Promedio.
Otra solución
SELECT NG, G.NCC, C.Nombrec, G.NM, M.NombreM,
COUNT(*) AS [No de Alumnos],
MAX(Calificacion) AS [CAL.MAX],
MIN(Calificacion) AS [CAL. MIN],
AVG(Calificacion) AS [PROMEDIO]
FROM Grupos G INNER JOIN Catedraticos C ON G.NCC = C.NCC
INNER JOIN Materias M ON G.NM = M.NM
GROUP BY NG, G.NCC, C.Nombrec, G.NM, M.NombreM
Arc: Consulta_11_PromedioAlumnos_2
1.2.3 De edición para crear esquemas y consultas de bases de datos
Consultas a las Tablas
7. De cada grupo liste Número de grupo, Nombre
del Catedrático, Nombre de la Materia, Número de
Alumnos, Calificación Máxima, Calificación Mínima
y Promedio.
Comparación
SELECT NG, G.NCC, C.Nombrec, G.NM, M.NombreM, SELECT NG, G.NCC, C.Nombrec, G.NM, M.NombreM,
COUNT(*) AS [No de Alumnos], COUNT(*) AS [No de Alumnos],
MAX(Calificación) AS [CAL.MAX], MAX(Calificacion) AS [CAL.MAX],
MIN(Calificación) AS [CAL. MIN], MIN(Calificacion) AS [CAL. MIN],
AVG(Calificación) AS [PROMEDIO] AVG(Calificacion) AS [PROMEDIO]
FROM Grupos G, Catedraticos C, Materias M FROM Grupos G INNER JOIN Catedraticos C ON G.NCC = C.NCC
WHERE G.NCC = C.NCC AND G.NM = M.NM INNER JOIN Materias M ON G.NM = M.NM
GROUP BY NG, G.NCC, C.Nombrec, G.NM, M.NombreM GROUP BY NG, G.NCC, C.Nombrec, G.NM, M.NombreM
1.2.3 De edición para crear esquemas y consultas de bases de datos
Consultas a las Tablas
8. De cada grupo liste Número de grupo, Número
del Catedrático, Número de Materia y Alumnos
acreditados(igual o superior a 70).
Arc: Consulta_12
Funciones de agregado solo con
SELECT
SELECT COUNT(*) AS [Número de Alumnos
]FROM Alumnos
Especifica la condición
de búsqueda del
grupo o del agregado
que se debe cumplir.
Arc: Consulta_6_Empleados
1.2.3 De edición para crear esquemas y consultas de bases de datos
Consultas a las Tablas
9. De cada grupo liste Número de grupo, Número
del Catedrático, Número de Materia y Promedio,
pero solo de aquellos grupos donde el promedio
sea mayor a 80.
SELECT NG, NCC, NM,
AVG(Calificacion) AS [Promedio del Grupo]
FROM Grupos GROUP BY NG, NCC, NM
HAVING AVG(Calificacion) > 80
Arc: Consulta_13
9. De cada grupo liste Número de grupo, Número
del Catedrático, Número de Materia y Promedio,
pero solo de aquellos grupos donde el promedio
sea mayor a 80.
SELECT NG, NCC, G.NM, NombreM
AVG(Calificacion) AS [Promedio del Grupo]
FROM Grupos G, Materias M
WHERE G.NM=M.NM
GROUP BY NG, NCC, G.NM, NombreM
HAVING AVG(Calificacion) > 80
1.2.3 De edición para crear esquemas y consultas de bases de datos
SELECT Nov
FROM Ventas
GROUP BY Nov ORDER BY Nov DESC
SELECT Nov
FROM Ventas
GROUP BY Nov ORDER BY Nov ASC
Arc: Consulta_Order_By
1.2.3 De edición para crear esquemas y consultas de bases de datos
Arc: DELETE 1
1.2.3 De edición para crear esquemas y consultas de bases de datos
Borrar registros
10. Borre los alumnos que no están inscritos en
ningún grupo.
Arc: DELETE_Alumnos_1
Ejercicio
Arc: Actualizar_Alumnos_1
1.2.3 De edición para crear esquemas y consultas de bases de datos
Elimina tablas
DROP TABLE
Elimina tablas
DROP TABLE (Sintaxis)
Es el nombre de la tabla
que se va a eliminar.
1.2.3 De edición para crear esquemas y consultas de bases de datos
Elimina tablas
DROP TABLE (Sintaxis)
Observaciones
No se puede utilizar DROP TABLE para quitar una tabla a la que
se haga referencia con una restricción FOREIGN KEY. Primero se
debe quitar la restricción FOREIGN KEY o la tabla de referencia.
Arc: DropTable_Ventas_1
1.2.3 De edición para crear esquemas y consultas de bases de datos
Modificar tablas
ALTER TABLE
Arc: AlterTable_Catedraticos_1
TAREA 3
En línea de comandos
Crear Base de Datos Control
Escolar y todas las tablas y
agregar registros a cada tabla
CREATE TABLE Carreras
( NoC int primary key,
NombreC Varchar(50)
);
CREATE TABLE Alumnos(
NC int primary key,
NombreA Varchar(50),
Sexo char,
Domicilio varchar(50),
Edad int,
NoC int,
Foreign key(NoC) REFERENCES
Carreras(NoC)
)
Fin de la Unidad 1
I.2.4. De control, monitoreo
y estadísticas de acceso a
bases de datos.
I.2.4. De control, monitoreo y estadísticas de acceso a bases de datos.