









Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Resumen del capitulo #8 de base de datos
Tipo: Resúmenes
1 / 15
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!










Indice Introducción Definición de datos y tipos de datos de SQL Conceptos de esquema y catálogo en SQL El comando CREATE TABLE de SQL Tipos de datos en SQL Especificación de restricciones en SQL Especificación de restricciones de atributo y valores predeterminados de atributo Especificación de las restricciones de clave y de integridad referencial Especificación de restricciones en las tuplas utilizando CHECK Sentencias de SQL para cambiar el esquema Comando DROP Comando ALTER Consultas básicas en SQL Estructura SELECT-FROM-WHERE de las consultas básicas de SQL Nombres de atributo ambiguos, alias y variables de tupla Cláusula WHERE no especificada y uso del asterisco Tablas como conjuntos en SQL Ordenación del resultado de una consulta Consultas SQL más complejas Comparaciones con valores NULL y lógica de tres valores Consultas anidadas, tuplas y comparaciones conjunto/multiconjunto Consultas anidadas correlacionadas Las funciones EXISTS y UNIQUE en SQL Conjuntos explícitos y renombrado de atributos en SQL Funciones agregadas en SQL Agrupamiento: las cláusulas GROUP BY y HAVING Sentencias INSERT, DELETE y UPDATE de SQL Comando INSERT Comando DELETE Comando UPDATE Vistas (tablas virtuales) en SQL Conclusión Bibliografía ……………………………………………………………………………………………..
Capítulo 8 : SQL-99: definición del esquema, restricciones, consultas y vistas Definición de datos y tipos de datos de SQL: SQL usa los términos tabla, fila y columna para los términos relación, tupla y atributo del modelo relacional formal, respectivamente. El principal comando de SQL para definir datos es la sentencia CREATE, que se utiliza para crear esquemas, tablas (relaciones) y dominios (así como otras estructuras, como vistas, aserciones y triggers). Conceptos de esquema y catálogo en SQL: Un esquema SQL se identifica con un nombre de esquema e incluye un identificador de autorización para indicar el usuario o la cuenta propietaria del esquema, así como unos descriptores para cada elemento. Los elementos del esquema son las tablas, las restricciones, las vistas, los dominios y otras estructuras (como la concesión de autorización), que describen el esquema. El esquema se crea con la sentencia CREATE SCHEMA, que puede incluir las definiciones de todos sus elementos. SQL utiliza el concepto de catálogo, que es una colección de esquemas bajo un nombre, en un entorno SQL. Un entorno SQL es básicamente una instalación de un RDBMS compatible con SQL en un computador.2 Un catálogo siempre contiene un esquema especial denominado INFORMATION_SCHEMA, que proporciona información sobre todos los esquemas del catálogo y todos los descriptores de elemento de esos esquemas. El comando CREATE TABLE de SQL: Este comando se utiliza para crear una nueva tabla, colocándole un nombre con sus atributos y restricciones iniciales. Primero se especifican los atributos, a cada uno de los cuales se le asigna un nombre, un tipo de datos para especificar su dominio de valores, y cualesquiera restricciones de atributo, como NOT NULL. Tipos de datos en SQL: Los tipos de datos básicos disponibles para los atributos son numéricos, cadena de caracteres, cadena de bits, fecha y hora.
Especificación de restricciones en SQL Especificación de restricciones de atributo y valores predeterminados de atributo: Como SQL permite NULL como valor de atributo, es posible especificar una restricción NOT NULL si no se permite NULL para un atributo en particular. Sin embargo, el ID no puede ser un dato NULL, ya que es el identificador único del registro. Especificación de las restricciones de clave y de integridad referencial: La cláusula PRIMARY KEY especifica uno o más atributos que constituyen la clave principal de una relación. Si una clave principal sólo tiene un atributo, la cláusula puede seguir al atributo directamente. La integridad referencial se especifica mediante la cláusula FOREIGN KEY una restricción de integridad referencial se puede violar cuando se insertan o eliminan tuplas o cuando se modifica el valor de un atributo de la foreign key o de la clave principal. La acción predeterminada que SQL toma en caso de una violación de la integridad es rechazar la operación de actualización que provocaría tal violación. Sin embargo, el diseñador del esquema puede especificar una acción alternativa si se viola la integridad referencial añadiendo una cláusula de acción de activación referencial a cualquier restricción de foreign key. Las opciones son SET NULL, CASCADE y SET DEFAULT. Una opción debe cualificarse con ON DELETE u ON UPDATE. Especificación de restricciones en las tuplas utilizando CHECK: Se pueden indicar otras restricciones de tabla mediante cláusulas CHECK adicionales al final de una sentencia CREATE TABLE. Estas restricciones se pueden denominar basadas en tuplas porque se aplican individualmente a cada tupla y se comprueban siempre que se inserta o modifica una tupla. Por ejemplo, suponga que la tabla DEPARTAMENTO tiene un atributo adicional FechaCreaciónDpto, que almacena la
FROM
Es extremadamente importante especificar todas las selecciones y condiciones de concatenación en la cláusula WHERE; si se omite cualquiera de esas condiciones, pueden obtenerse relaciones incorrectas y muy grandes. Mientras el asterisco (*) trae todos los campos de la tabla. Tablas como conjuntos en SQL SQL trata normalmente a una tabla no como un conjunto, sino como un multiconjunto; las tuplas duplicadas pueden aparecer más de una vez en una tabla, y en el resultado de una consulta. Una tabla SQL con una clave está restringida a ser un conjunto, ya que el valor de la clave debe ser distinto en cada tupla. Si queremos eliminar las tuplas duplicadas del resultado de una consulta SQL, utilizamos la palabra clave DISTINCT en la cláusula SELECT, lo que significa que sólo las tuplas distintas deben permanecer en el resultado. En general, una consulta con SELECT DISTINCT elimina los duplicados, mientras que una consulta con SELECT ALL no lo hace. Especificar SELECT sin ALL ni DISTINCT (como en nuestros anteriores ejemplos) es equivalente a SELECT ALL. C11: SELECT ALL Sueldo FROM EMPLEADO; C11A: SELECT DISTINCT Sueldo FROM EMPLEADO; Ordenación del resultado de una consulta SQL permite ordenar las tuplas del resultado de una consulta por los valores de uno o más atributos, utilizando la cláusula ORDER BY. Consulta 15. Recuperar una lista de empleados y de los proyectos en los que trabajan, ordenada por el departamento. Dentro de cada departamento, ordenar alfabéticamente los empleados por su primer apellido y su nombre. C15: SELECT NombreDpto, Apellido1, Nombre, NombreProyecto FROM DEPARTAMENTO, EMPLEADO, TRABAJA_EN, PROYECTO WHERE NumeroDpto=Dno AND Dni=DniEmpleado AND NumProy=NumProyecto ORDER BY NombreDpto, Apellido1, Nombre;
( SELECT NumProy FROM TRABAJA_EN, EMPLEADO WHERE DniEmpleado=Dni AND Apellido1=‘Pérez’ ); La primera consulta anidada selecciona los números de proyecto de los proyectos que tienen a ‘Pérez’ como director, mientras que la segunda selecciona los números de proyecto de los proyectos que tienen a ‘Pérez’ como trabajador. En la consulta externa, utilizamos OR para recuperar una tupla PROYECTO si el valor NUMPROYECTO de esa tupla se encuentra en el resultado de cualquier consulta anidada. Consultas anidadas correlacionadas Siempre que una condición de la cláusula WHERE de una consulta anidada se refiera a algún atributo de una relación declarada en la consulta exterior, se dice que las dos consultas son correlacionadas. Podemos entender mejor una consulta correlacionada teniendo en cuenta que la consulta anidada se evalúa una vez por cada tupla (o combinación de tuplas) en la consulta exterior. Por ejemplo, podemos imaginar C16 de este modo: por cada tupla EMPLEADO, evaluar la consulta anidada, que recupera los valores DniEmpleado para todas las tuplas SUBORDINADO que tienen el mismo sexo y nombre que la tupla de EMPLEADO; si el valor de Dni de la tupla EMPLEADO se encuentra en el resultado de la consulta anidada, entonces seleccionar esa tupla EMPLEADO. En general, una consulta escrita con bloques select-from-where anidados y utilizando los operadores de comparación = o IN siempre se expresa como una consulta de un solo bloque. Por ejemplo, C16 se puede escribir como en C16A: C16A: SELECT E.Nombre, E.Apellido FROM EMPLEADO AS E, SUBORDINADO AS D WHERE E.Dni=D.DniEmpleado AND E.Sexo=D.Sexo AND E.Nombre=D.NombSubordinado; Las funciones EXISTS y UNIQUE en SQL: La función EXISTS de SQL se utiliza para comprobar si el resultado de una consulta anidada correlacionada está vacío (no contiene tuplas) o no. El resultado de EXISTS es un valor booleano, TRUE o FALSE.
Hay otra función SQL, UNIQUE(Q), que devuelve TRUE si no hay tuplas duplicadas en el resultado de la consulta Q; en caso contrario, devuelve FALSE. Esto se puede utilizar para probar si el resultado de una consulta anidada es un conjunto o un multiconjunto. Conjuntos explícitos y renombrado de atributos en SQL Es posible renombrar cualquier atributo que aparezca en el resultado de una consulta añadiendo el calificador AS seguido por el nombre nuevo deseado. Por tanto, la estructura AS se puede utilizar para asignar alias a los nombres de atributos y relaciones, y tanto en la cláusula SELECT como en la cláusula FROM. C8A: SELECT E.Apellido1 AS NombreDeEmpleado, S.Apellido1 AS NombreDeSupervisor FROM EMPLEADO AS E, EMPLEADO AS S WHERE E.SuperDni=S.Dni; Funciones agregadas en SQL La función COUNT devuelve el número de tuplas o valores especificados en una consulta. Las funciones SUM, MAX, MIN y AVG se aplican a un conjunto o multiconjunto de valores numéricos y devuelven, respectivamente, la suma, el valor máximo, el valor mínimo y el promedio de esos valores. Estas funciones se pueden utilizar en la cláusula SELECT o en una cláusula HAVING. Visualizar la suma de los salarios de todos los empleados, el salario más alto, el salario más bajo y el sueldo medio. C19: SELECT SUM (Sueldo), MAX (Sueldo), MIN (Sueldo), AVG (Sueldo) FROM EMPLEADO; Agrupamiento: las cláusulas GROUP BY y HAVING Mientras que GROUP BY Combina los registros con valores idénticos en la lista de campos especificados con un único registro, HAVING es similar a WHERE, determina que registros se seleccionan. Una vez que los registros se han agrupado usando GOUP BY, HAVING determinará cuales de ellos mostrar.
Una cláusula SET adicional en el comando UPDATE especifica los atributos que se modificarán y sus nuevos valores. Por ejemplo, para cambiar la ubicación y el número de departamento de control del número de proyecto 10 a ‘Valencia’ y 5, respectivamente, utilizamos U5: U5: UPDATE PROYECTO SET UbicaciónProyecto = ‘Valencia’, NumDptoProyecto = 5 WHERE NumProyecto=10; Vistas (tablas virtuales) en SQL Una vista en SQL es una tabla que deriva de otras tablas. En SQL se utiliza el comando CREATE VIEW para especificar una vista. A una vista se le asigna un nombre de tabla (virtual), o nombre de vista, una lista de nombres de atributos y una consulta que sirve para especificar el contenido de la vista. V1: CREATE VIEW TRABAJA_EN AS SELECT Nombre, Apellido1, NombreProyecto, Horas FROM EMPLEADO, PROYECTO, TRABAJA_EN WHERE Dni=DniEmpleado AND NumProy=NumProyecto;
Conclusión Al finalizar este informe ya sabemos algunos de los tipos de datos mas usados en SQL como son de tipo numérico (INT), cadena de caracteres (VARCHAR), cadena de bits(BIT), fecha(DATE) y hora(TIME). Aprendimos sobre uno de los comandos más básicos CREATE TABLE, el cual se utiliza para crear una nueva tabla, colocándole un nombre con sus atributos y restricciones iniciales. Primero se especifican los atributos, a cada uno de los cuales se le asigna un nombre, un tipo de datos como los antes mencionados para especificar su dominio de valores, y cualesquiera restricciones de atributo, como NOT NULL. Vimos que la función EXISTS de SQL se utiliza para comprobar si el resultado de una consulta anidada correlacionada está vacío (no contiene tuplas) o no. El resultado de EXISTS es un valor booleano, TRUE o FALSE. Mientras UNIQUE(Q), devuelve TRUE si no hay tuplas duplicadas en el resultado de la consulta Q; en caso contrario, devuelve FALSE. Esto se puede utilizar para probar si el resultado de una consulta anidada es un conjunto o un multiconjunto. Gracias por llegar hasta el final de este informe, espero que haya sido de su agrado.