SlideShare una empresa de Scribd logo
1 de 30
UNIVERSIDAD CENTRAL DEL
ECUADOR
FACULTAD DE CIENCIAS ECONÓMICAS
INGENIERÍA EN FINANZAS
CAPÍTULO 7
Diseño de base de datos relacionales por
mapeado ER- y EER-a-relacional
CAPÍTULO 8
SQL-99: definición del esquema, restricciones,
consultas y vistas
Libro
Fundamentos de Sistemas de Bases de
Datos - 5ta Ed. - Elmasr
Lucio Karina, Ludeña Bryan y Melo Elena
CAPITULO 7
7.1 Diseño de una base de datos relacional utilizando el mapeado ER-a-
relacional
7.1.1 Algoritmo de mapeado ER-a-relacional
Lucio Karina, Ludeña Bryan y Melo Elena
Paso 1: Mapeado de los tipos de entidad regulares. Por cada
entidad(fuerte) regular E del esquema ER, cree una relación R que
incluya todos los archivos simples de E. Incluya únicamente los atributos
simples que conforman un atributo compuesto. Seleccione uno de los
atributos clave de E como clave principal para R. si la clave elegida de E
es compuesta, entonces el conjunto de los atributos simples que la
forman constituirán la clave principal de E.
Si durante el diseño conceptual se identificaron varias claves para E, la
información que describe los atributos que forman la clave adicional
conserva su orden para especificar las calves (únicas) secundarias de la
relación R. El conocimiento sobre las claves también es necesario para la
indexación y otros tipos de análisis.
En nuestro ejemplo creamos las relaciones EMPLEADO,
DEPARTAMENTO Y PROYECTO en la figura 7.2 como correspondiente a
los tipos de entidad regulares, EMPLEADO, DEPARTAMENTO y
PROYECTO de la figura 7.1 La foreign key y los atributos de relación si
los hay, no se incluye aún; se añadirán durante los pasos posteriores.
Nos referimos a los atributos SuperDni y Dni de EMPLEADO, DniDirector
y FechaIngreso-Director de DEPARTAMENTOS y NumDptoProyecto de
PROYECTO. En nuestro ejemplo, seleccionamos Dni, NúmeroDpto y
NumProyecto como las claves principales para las relaciones
EMPLEADO, DEPARTAMENTO Y PROYECTO, respectivamente.
Recuerde que NombreDpto de DEPARTAMENTO y NombreProyecto de
PROYECTO son claves secundarias, pues es posible que la utilicemos
más tarde en el daño.
Las relaciones que se crean a tupla representa una instancia de entidad.
En la figura 7.3 (a) se muestra el resultado tras este paso del mapeado.
Lucio Karina, Ludeña Bryan y Melo Elena
7.2. Resultado de mapear el esquema ER de
EMPRESA dentro de un esquema de base de datos
relacional.
Paso 2: Mapeado de los tipos de
entidad débiles. En nuestro ejemplo,
creamos la relación SUBORDINADO
en este paso como correspondencia
con el tipo de entidad
SUBORDINADO. Incluimos la clave
principal Dni de la relación
EMPLEADO (que corresponde al tipo
de entidad propietario) como un
atributo foreign key de
SUBORDINADO; lo renombramos
como DniEmpleado, aunque no es
necesario. La clave principal de la
relación SUNBORDINADO es la
combinacion (DniEmpleado, Nombre
Subordinado) porque
NombreSubordinado (también
renombrado a partir de Nombre en la
Figura 7.1) es la calve parcial de
SUBORDINADO.
Lucio Karina, Ludeña Bryan y Melo Elena
7.2. Resultado de mapear el esquema ER de EMPRESA dentro de un esquema de base
de datos relacional.
Figura 7.3: Ilustración de algunos pasos del mapeado. (a) Relaciones de entidad
después del paso 1. (b) Relación de entidad débil adicional después del paso 2.
(c) Relación de relación después del paso 5. (d) Relación que representa el
atributo multivalor después del paso 6.
Lucio Karina, Ludeña Bryan y Melo Elena
Paso 3: Mapeado de
los tipos de relación 1:1
binaria
Metodología de
la foreing key
Metodología de la
relación mezaclada
Metodología de
referencia cruzada
o relación de relación
Por cada tipo de relación (por ejemplo S) e incluya como
foreign key en S la clave principal T. Lo mejor es elegir un
tipo de entidad como participación total en R en el papel de
S.Incluya todos los atributos simples del tipo relación 1:1 R
como atricuto de S.
Una asignación alternativa de un tipo de relación 1:1 es
posible al mezclar los dos tipos de entidad y la relación.
esto puede ser apropiado cuando las participaciones
son totales.
La tercera opción consiste en configurar una tercera
relacion R con el propósito de crear uan referencia
cruzada de las calves principales de las relaciones S y
T que representa los tipos de entidad.
Paso 5: Mapeado de tipos relaciones M:N binarias. Por cada tipo de relación M:N binaria R, cree una nueva relación
S para representar R. Incluya como atributos de la foreign key en S las claves principales de las relaciones que
representan los tipos de entidad participantes; su combinación formara la clave principal de S. Incluya también
cualesquiera atributos simples del tipo de relación M:N como atributos de S.
Paso 4: Mapeado de tipos relaciones 1:N binaria. Por cada relación 1:n binaria regular R, identifique la relación S
que representa el tipo de entidad participante en el lado N del tipo de relación. Incluya como foreign key en S la clave
principal de la relación T que representa el otro tipo de entidad participante en R; hacemos esto porque cada
instancia de entidad en el lado de N está relacionada, a lo sumo, con una instancia de entidad del lado 1 del tipo de
relación.
Lucio Karina, Ludeña Bryan y Melo Elena
Paso 6: Mapeado de atributos multivalor. Por cada atributo multivalor A, cree una nueva relación R. Esta relación
incluirá atributos correspondientes a A, más el atributo clave principal K de la relación que representa el tipo de
entidad o tipo de relación que tiene A como un atributo. La clave principal de R es la combinación de A y K. Si el
atributo multivalor es compuesto, incluimos sus componentes simples.
Paso 7: Mapeado de tipos relaciones n-ary. Por cada tipo de relación n-ary R, donde n>2, cree una nueva relación
S para representar R. Incluya como atributos de la foreign key en S las claves principales de las relaciones que
presentan los tipos de entidad participantes. Incluye también cualesquiera atributos de S. Normalmente la clave
principal de entidad S es una combinación de todas las foreign keys que hacen referencia a las relaciones que
representan los tipos de entidad participantes.
7.1.2 Explicación y resumen del mapeado para las construcciones del modelo ER
Figura 7.4. Asignación de tipo de relación n-ary SUMINISTRO de la figura 3.17(a)
Para formar una relación que incluya el nombre del
empleado, el nombre del proyecto y las horas que el
empleado trabaja en cada proyecto, tenemos que conectar
cada tupla EMPLEADO con las tuplas PROYECTO
relacionadas a través de la relación TRABAJ_EN de la
figura 7.s. Por tanto, debemos aplicar la operación
EQUIJOIN a las relaciones EMPLEADO Y TRABAJA_EN
con la condición de concatenación Dni.
Lucio Karina, Ludeña Bryan y Melo Elena
7.2 Mapeado de construcciones del modelo EER a las relaciones
7.2.1 Mapeado de la especialización o generalización
 Paso 8: Opciones para mapear la especialización o generalización. Convierta cada especialización con m subclases
{S1,S2,…,Sn} y la superclase C, donde los atributos de C son {k, a,..,an} y k es la clave principal.
Figura 7.5. Opciones para el mapeado de la especialización y la
generalización. (a) Mapeado del esquema EER de la Figura 4.4
utilizando la opción 8A, (b) Mapeado del esquema EER de la
figura 4.4 utilizando la opción 8b, (c) Mapeado del esquema EER
de la figura 4.4 utilizando la opción 8C, (d) Mapeado del esquema
EER de la figura 4.4 utilizando la opción 8D.
Figura 7.6. Mapeado del entramado de especialización EER de la figura
4.8 utilizando varias opciones.
Lucio Karina, Ludeña Bryan y Melo Elena
Paso 9: Mapeado de tipos de unión (categorías).
Para mejorar una categoría cuyas superclases
definitorias tienen claves diferentes, es costumbre
especificar un nuevo atributo de clave, denominado
clave sustituta, al crear una relación correspondiente
a la categoría.
7.2.2 Mapeado de subclases compartidas
(herencia múltiple)
Una subclase compartida, como INGENIERO_JEFE
de la figura 4.7, en una sola clase de varias
subclases, indicando la herencia múltiple. Estas
clases deben tener todas el mismo atributo clave; en
caso contrario, la subclase compartida se modelaría
como una categoría.
7.2.3 Mapeado de categorías (tipos de unión)
Añadimos otros pasos al procedimiento de mapeado
para las categorías. Una categoría es una subclase de
la unión de dos o más superclases que puede tener
diferentes claves, porque pueden ser de distintos tipos
de entidad.
Figura 7.7. Mapeado de las categorías EER
El lenguaje SQL se puede considerar como una de las principales razones del éxito comercial de las
bases de daros relacionados. Como se convirtió en un estándar para estas ultimas, los usuarios
perdieron el miedo a migrar sus aplicaciones de base de datos desde otros tipos de sistemas de bases
de datos (por el producto DBMS tradicional que estaban utilizando.
Una ventaja de disponer de un estándar es que los usuarios pueden escribir sentencias en una
aplicación de base de datos para acceder a los datos almacenados en dos o mas DBMS relacionadas
sin tener que cambiar el sublenguaje de base de datos (SQL), siempre y cuando esos DBMS soporten
el SQL estándar.
El nombre SQL significa Lenguaje de consulta estructurado. Originalmente, SQL se denomina SEQUEL
(Structured English QUEry Languaje) y fue diseñado e implementado por IBM Research a modo de
interfaz para un sistema de base de datos relacional conocido como SYSTEM R. SQL es ahora el
lenguaje estandar de los DBMSs relacionales comerciales
Lucio Karina, Ludeña Bryan y Melo Elena
CAPITULO 8
SQL-99: definición del esquema, restricciones, consultas y vistas
Lucio Karina, Ludeña Bryan y Melo Elena
8.1 Definición de datos y tipos de datos SQL
SQL utiliza los términos tabla, fila y columna para los términos relación, tupla y atributo del modelo
relacional formal, respectivamente. Utilizamos todos es términos indistintamente. 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).
8.1.1 Conceptos de esquema y catálogo en SQL
Un esquema SQL se identifica con un nombre de esquemas e incluye un identificador de autorización
para indicar el usuario o a la cuenta propietaria del esquema así como unos descriptores para cada
elemento. Los elementos del esquema son las tablas, as restricciones, las vistas, los dominios y otras
estructuras que describen en esquema. El esquema se crea con la sentencia CREATE SCHEMA, que
puede incluir las definiciones de todos sus elementos.
CREATE SHEMA EMPRESA AUTHORIZATION Jperez;
8.1.2 El comando CREATE TABLE de SQL
El comando CREATE TABLE se utiliza para especificar una nueva relación, asignándole a esta ultima
un nombre y sus atributos y restricciones iniciales. Primero se especifica los atributos, a cada uno de
los cuales se les asigna un nombre, un tipo de datos para especificar su dominio de valores, y
cualesquiera restricciones de atributo, como NOT NULL. Las restricciones de clave, integridad de
entidad e integridad referencial, pueden especificarse con la sentencia CREATE TABLE después de
haber declarado los atributos, o pueden añadirse más tarde con el comando ALTER TABLE
Lucio Karina, Ludeña Bryan y Melo Elena
Figura 8.1. Sentencia de definición de datos CREATE TABLE para definir el esquema EMPRESA de la figura 5.7
Especificación de restricciones en SQL
 Restricciones de clave y de integridad referencial, restricciones en los dominios de atributo y NULLs y en las tuplas individuales
dentro de una relación.
 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.
 También es posible definir un valor predeterminado para un atributo añadiendo la cláusula OEFAULT a su definición.
 Restringir los valores de atributo o dominio con la cláusula CHECK a continuación de la definición de un atributo o dominio.
Especificación de las restricciones de clave y de integridad
referencial
• Hay cláusulas especiales para la sentencia CREATE TABLE.
• 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 cláusula UNIQUE especifica claves (secundarias) alternativas.
• 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 laforeign key o de la clave principal
Asignación de nombres a
las restricciones
 Con la palabra clave CONSTRAINT
puede asignarse un nombre de restricción
a una restricción. El nombre de una
restricción se utiliza para identificar una
restricción particular en caso de que la
restricción tenga que eliminarse más tarde
y sustituirse por otra restricción
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.
Sentencias de SQL para cambiar el esquema
Comando DROP
 Se puede utilizar para eliminar los elementos con nombre del
esquema, como tablas, dominios o restricciones. Por ejemplo,
si ya no se necesita un esquema entero, se puede utilizar el
comando DROP SCHEMA.
 Hay dos opciones de comportamiento para estas
eliminaciones: CASCADE y RESTRICT. Por ejemplo, para
eliminar el esquema de la base de datos EMPRESA y todas
sus tablas, dominios y otros elementos, se utiliza la opción
CASCADE de este modo: DROP SCHEMA EMPRESA
CASCADE; Si se opta por RESTRICT en lugar de CASCAD E,
el esquema sólo se elimina si no contiene elementos; en caso
contrario, el comando DROP no se ejecutará.
 Si ya no se necesita una relación base dentro de un esquema,
la relación y su definición se pueden eliminar con el comando
DROP TABLE.
 Con la opción CASCADE, todas estas restricciones y vistas
que hacen referencia a la tabla se eliminan automáticamente
del esquema, junto con la propia tabla.
• Comando ALTER
• La definición de una tabla base o de otros
elementos con nombre del esquema se puede
cambiar con el comando ALTER.
• Para eliminar una columna, debemos elegir
CASCAD E o RESTRICT como comportamiento
de eliminación. En el caso de CASCADE, todas
las restricciones y vistas que hacen referencia a
la columna se eliminarán automáticamente del
esquema, junto con la columna. Si optamos por
RESTRICT, el comando es satisfactorio sólo si
no hay vistas o restricciones (u otros elementos)
que hagan referencia a la columna.
Consultas básicas en SQL
 SQL tiene una sentencia básica para
recuperar información de una base de datos:
SELECT.
 Algunas relaciones SQL están restringidas a
ser conjuntos porque se ha declarado una
restricción de clave o porque se ha utilizado la
opción DISTINCT con la sentencia SELECT
(se explica más adelante en esta sección).
Estructura SElECT-FROM-WHERE de las consultas básicas de SQL
La forma básica de la sentencia SELECT, denominada en ocasiones mapeado o bloque select-from-
where, está formada por las cláusulas SELECT, FROM y WHERE y tiene la siguiente forma:
SELECT <lista de atributos> cuyos valores serán recuperados por la consulta
FROM <lista de tablas> lista de las relaciones necesarias para procesar las consultas
WHERE <condición> una expresión condicional (booleana) que identifica las tuplas que la consulta
recuperará
Consulta 0. Recuperar la fecha de
nacimiento y la dirección del
empleado (o empleados) cuyo
nombre sea José Pérez Pérez,
 CO: SELECT FechaNac,
Dirección
 FROM EMPLEADO
 WHERE Nombre='José' AND
Apellid01 ='Pérez' AND
Apellid02='Pérez'
Nombres de atributo ambiguos, alias y variables
de tupla
En SQL el mismo nombre se puede utilizar para dos
(o más) atributos, siempre y cuando los atributos se
encuentren en relaciones diferentes.
La relación EMPLEADO se llamaran NumeroDpto y
Nombre, y que el atributo NombreDpto de
DEPARTAMENTO también se llamara Nombre.
Hemos añadido un prefijo a los atributos Nombre y
NumeroDpto para especificar a cuáles nos estamos
refiriendo en realidad
SELECT Nombre, EMPLEADO. Nombre, Dirección
FROM EMPLEADO, DEPARTAMENTO
DEPARTAMENTO
WHERE Nombre='lnvestígación' AND
DEPARTAMENTO.NumeroDpto=EMPLEADO.Numer
oDpto;
Cláusula WHERE no especificada y uso del asterisco
 La ausencia de una cláusula WHERE indica que no
hay una condición en la selección de tuplas; por tanto,
todas las tuplas de la relación especificada en la
cláusula FROM se califican y seleccionan para la
consulta resultante. Si en la cláusula FROM se
especifica más de una relación y no hay una cláusula
WHERE, entonces se selecciona el PRODUCTO
CRUZADO (todas las posibles combinaciones de
tuplas) de esas relaciones.
 Consultas 9 y 10. Seleccione todos los Dni de
EMPLEADO (C9) y todas las combinaciones de Dni de
EMPLEADO y NombreDpto de DEPARTAMENTO
(CIO) en la base de datos.
 C9: SELECT Dni
 FROM EMPLEADO;
 C10: SELECT Dní, NombreDpto
 FROM EMPLEADO, DEPARTAMENTO;

Para recuperar todos los valores de
atributo de las tuplas seleccionadas,
no tenemos que listar explícitamente
los nombres de los atributos en SQL;
podemos escribir un asterisco (*), que
tiene el significado de todos los
atributos.
C1C: SELECT *
FROM EMPLEADO
WHERE Dno=5;
C10: SELECT *
FROM EMPLEADO,
DEPARTAMENTO
WHERE NombreDpto='lnvestigación'
AND Dno=NumeroDpto;
C10A: SELECT *
FROM EMPLEADO,
DEPARTAMENTO;
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.
 SQL no elimina automáticamente las tuplas duplicadas en los resultados de las consultas, por las siguientes razones:
 • La eliminación de duplicados es una operación muy costosa.
 • El usuario puede querer ver las tuplas duplicadas en el resultado de una consulta.
 • Cuando se aplica una función de agregación a las tuplas, en la mayoría de los casos no queremos eliminar los duplicados
 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
Comparación de subcadenas y
operadores aritméticos
 Condiciones de comparación
de partes de una cadena de
caracteres, mediante el
operador de comparación
LlKE. Esto se puede utilizar
para la comparación de
patrones. Las cadenas
parciales se especifican
mediante dos caracteres
reservados: % sustituye una
cantidad arbitraria de
caracteres (de cero o más
caracteres), y el guión de
subrayado U reemplaza un
solo carácter.
Permite utilizar la aritmética en las consultas. Los operadores
aritméticos estándar para la suma (+), la diferencia (-), la
multiplicación (*) y la división (/) se pueden aplicar a valores o
atributos numéricos con dominios numéricos.
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.
Con la palabra clave DESC podemos ver el resultado ordenado
descendentemente. La palabra clave ASC permite especificar
explícitamente el orden ascendente.
SQL tiene varias reglas para tratar con los valores NULL.
1. Valor desconocido Una persona en particular tiene una fecha de nacimiento, pero no la
conocemos, por lo que la representamos con NULL en la base de datos.
2. Valor no disponible o no especificado Una persona tiene un teléfono en casa, pero no quiere
que aparezca listado, por lo que se impide su visualización y se representa como NULL en la
base de datos.
3. Atributo no aplicable Un atributo ÚltimoGrado sería NULL para una persona que no tiene una
licenciatura, algo que no es aplicable para esa persona.
Cuando en una comparación se ve implicado un NULL, se considera que el resultado es
UNKNOWN, o desconocido (podría ser TRUE o podría ser FALSE).
Es necesario definir los resultados de las expresiones lógicas de tres valores cuando se utilizan
los conectores lógicos AND, OR Y NOT.
SQL permite consultas que comprueban si el valor de un atributo es NULL. En lugar de utilizar =
o <> para comparar el valor de un atributo con NULL, SQL utiliza 18 o 18 NOT.
Consultas SQl más complejas
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.
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.
EXISTS Y NOT EXISTS normalmente se utilizan en combinación con una consulta anidada
correlacionada. En general, EXISTS(Q) devuelve TRUE si hay al menos una tupla en el resultado de la
consulta anidada Q, y devuelve FALSE en caso contrario.
NOT EXISTS(Q) devuelve TRUE si no hay tuplas en el resultado de la consulta anidada Q, y devuelve
FALSE en caso contrario.
FUNCIONES AGREGADAS
EN SQL
FUNCIONES MIN, MAX FUNCIÓN AVG
FUNCIÓN COUNTFUNCIÓN SUM
Se aplica a un conjunto o muticonjunto
de valores numéricos y devulve la
respectiva suma.
Se aplica a un conjunto o
multiconjunto de valores numéricos y
devuelve el promedio.
Devuelve el número
de tuplas o valores
especificados en una consulta.
Se aplican a un conjunto o
multiconjunto de valores numéricos y
devuelven el valor mínimo y máximo.
AGRUPAMIENTO:
CLÁUSULAS GROUP BY Y
HAVING
GROUP BY HAVING
Esta cláusula especifica los
atributos de agrupamiento, que
también deben aparecer en la
cláusula Select.
Por lo tanto el valor resultante de
aplicar la función de agregación a un
grupo de tuplas aparece junto con el
valor de los atributos de
agrupamiento.
Si existen Nulls en el atributo de
agrupamiento, se crea un grupo
cerrado para todas las tuplas con un
valor Null en el atributo de
agrupamiento.
La cláusula Having sirve para elegir
grupos enteros.
Esta cláusula proporciona una
condición en el grupo de tuplas
asociado a cada valor de los atributos
de agrupamiento.
EJEMPLO DE APLICACIÓN DE
LAS CLÁUSULAS
GROUP BY - HAVING
Sentencias INSERT,
DELETE Y UPDATE de
SQL
COMANDO INSERT
COMANDO DELETE
COMANDO UPDATE
Se utiliza para modificar los valores de atributo de una o más tuplas
seleccionadas
Añade una tupla a una relación. Debemos especificar el
nombre de la relación y una lista de valores para la tupla.
Los valores deben suministrarse en el mismo oreden en el que se
especificaron los atributos correspondientes en el comando
Create Table.
También es posible insertar con un solo comando INSERT varias
tuplas separadas por comas.
Los valores de los atributos que constituyen cada
tupla se encierran entre paréntesis.
Elimina tuplas de una relación. Las tuplas se eliminan explicitamente
solo de una tabla a la vez.
La eliminación se puede propagar a tuplas de otras relaciones si se
han especificado acciones de activación referencial en las
restricciones de integridad referencial de DDL.
Cada comando UPDATE se refiere explícitamente a una sola
relación. Para modificar varias relaciones debemos ejecutar varios
comandos Update.
RESTRICCIONES COMO
ASERCIONES Y TRIGGERS
ASERCIONES TRIGGERS
En SQL podemos especificar restricciones generales mediante
aserciones declarativas utilizando la sentencia Create Assertion
del DDL.
El nombre de la restricción se puede utilizar más tarde para referirse
a dicha restricción o para modificarla o eliminarla. El DBMS es
responsable de garantizar que no se viole la condición.
Un trigger especifica un evento, una condición y una acción. La acción
se ejecuta automáticamente si se satisface la condición cuando se
produce el evento.
Por ejemplo puede ser útil especificar una condición, que en caso de
ser violada informe al usuario de alguna forma. La condición se utiliza
para monitorizar la base de datos.
En lugar de ofrecer al usuario la opción de abortar una operación que
provoca una violación, el DBMS debe contar con otras opciones
La técnica básica para escribir estas aserciones consiste en
especificar una consulta que seleccionan las tuplas que violan
la condición deseada.
VISTAS EN SQL
ESPECIFICACIONES
IMPLEMENTACIÓN
CARACTERÍSTICAS
ADICIONALES
SQL dispone de varias técnicas diferentes para escribir programas
en distintos lenguajes de programación en los que se pueden incluir
sentencias de SQL para acceder a una o más bases de datos.
En SQL se utiliza el comando Create View para especificar una
vista, asignándole un nombre de tabla o nombre de vista, una lista
de nombres de atributos y una consulta que sirve para especificar
el contenido de una vista.
Si ninguno de los atributos de la vista resulta de aplicar funciones u
operaciones aritméticas, no tenemos que especificar nombres de
atributos para la vista, pues serían idénticos a los de las tablas de
definición.
Una vista siempre está actualizada y no se materializa al definirla,
sino al especificar una consulta en la vista y todo ello depende del
DBMS.
La implementación de la vista puede darse bajo dos métodos: la
modificación de consulta y la materialización de la vista.
Una vista con una sola tabla de definición es actualizable si
los atributos de la vista contienen la clave principal de la
relación base.
SQL y las bases de datos relacionales pueden interactuar con las
nuevas tecnologías como XML.
RESUMEN GENERAL
Hemos presentado el lenguaje de base de datos SQL
Y hemos visto la implementación de sus variaciones
en muchos DBMSs.
SQL está diseñado como un lenguaje global que
incluye sentencias para la definición de datos,
consultas, actualizaciones, especificaciones de
restricciones y definición de vista.
Utilizamos la notación BNF, según la cual los símbolos
obligatorios se escriben entre corchetes angulares,
las partes opcionales se muestran entre corchetes,
las repeticiones entre llaves y las alternativas entre
paréntesis.

Más contenido relacionado

La actualidad más candente

Base de datos
Base de datosBase de datos
Base de datosmarcia666
 
Unidad iv base de datos
Unidad iv base de datosUnidad iv base de datos
Unidad iv base de datosValadu Rojas
 
Presentacion g4
Presentacion g4Presentacion g4
Presentacion g4Edwin Tmz
 
Unidad 5 TransformacióN Er A Relacional NormalizacióN
Unidad 5 TransformacióN Er A Relacional   NormalizacióNUnidad 5 TransformacióN Er A Relacional   NormalizacióN
Unidad 5 TransformacióN Er A Relacional NormalizacióNSergio Sanchez
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de DatosMayra Romero
 
Formas normales
Formas normalesFormas normales
Formas normalesrivero_top
 
4. diseño logico. relacional
4. diseño logico. relacional4. diseño logico. relacional
4. diseño logico. relacionalGalo Anzules
 
Normalizaciòn
NormalizaciònNormalizaciòn
Normalizaciònomarzon
 
Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas Pamelaguibkdoe
 
PresentacióN Tema 8
PresentacióN Tema 8PresentacióN Tema 8
PresentacióN Tema 8Andalucia
 
Tm11 transformación mer a mr
Tm11 transformación mer a mrTm11 transformación mer a mr
Tm11 transformación mer a mrJulio Pari
 

La actualidad más candente (20)

Bases de datos
Bases de datosBases de datos
Bases de datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
Base datos normalización une
Base datos normalización uneBase datos normalización une
Base datos normalización une
 
Unidad iv base de datos
Unidad iv base de datosUnidad iv base de datos
Unidad iv base de datos
 
Presentacion g4
Presentacion g4Presentacion g4
Presentacion g4
 
Ejercicio
EjercicioEjercicio
Ejercicio
 
NORMALIZACIÓN
NORMALIZACIÓN  NORMALIZACIÓN
NORMALIZACIÓN
 
Unidad 5 TransformacióN Er A Relacional NormalizacióN
Unidad 5 TransformacióN Er A Relacional   NormalizacióNUnidad 5 TransformacióN Er A Relacional   NormalizacióN
Unidad 5 TransformacióN Er A Relacional NormalizacióN
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de Datos
 
Formas normales
Formas normalesFormas normales
Formas normales
 
4. diseño logico. relacional
4. diseño logico. relacional4. diseño logico. relacional
4. diseño logico. relacional
 
Clase 0.3 normalizacion. sql server aplicado
Clase 0.3   normalizacion. sql server aplicadoClase 0.3   normalizacion. sql server aplicado
Clase 0.3 normalizacion. sql server aplicado
 
Algebra Relacional
Algebra RelacionalAlgebra Relacional
Algebra Relacional
 
Normalizaciòn
NormalizaciònNormalizaciòn
Normalizaciòn
 
Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas
 
PresentacióN Tema 8
PresentacióN Tema 8PresentacióN Tema 8
PresentacióN Tema 8
 
normalizacion base de datos
normalizacion base de datosnormalizacion base de datos
normalizacion base de datos
 
Sql tutor
Sql tutorSql tutor
Sql tutor
 
Modelo Relacional
Modelo RelacionalModelo Relacional
Modelo Relacional
 
Tm11 transformación mer a mr
Tm11 transformación mer a mrTm11 transformación mer a mr
Tm11 transformación mer a mr
 

Similar a Fundamentos de Sistemas de Base de Datos (Capítulo 7 y 8)

Diseño Logico de base de datos
Diseño Logico de base de datosDiseño Logico de base de datos
Diseño Logico de base de datosRobert Rodriguez
 
BASES DE DATOS CL2 para PPT.pdf
BASES DE DATOS CL2 para PPT.pdfBASES DE DATOS CL2 para PPT.pdf
BASES DE DATOS CL2 para PPT.pdfAbisSanMartin1
 
Diseño lógico de bases de datos.
Diseño lógico de bases de datos.Diseño lógico de bases de datos.
Diseño lógico de bases de datos.KareliaRivas
 
4.-ModeloRelacional (1).pdf
4.-ModeloRelacional (1).pdf4.-ModeloRelacional (1).pdf
4.-ModeloRelacional (1).pdfMaximinoDaniel
 
MODELOS RELACIONAL.pdf
MODELOS RELACIONAL.pdfMODELOS RELACIONAL.pdf
MODELOS RELACIONAL.pdfMaria Garcia
 
Unidad III: Modelo Lógico de BD
Unidad III: Modelo Lógico de BDUnidad III: Modelo Lógico de BD
Unidad III: Modelo Lógico de BDlissette_torrealba
 
El modelo relacional
El modelo relacionalEl modelo relacional
El modelo relacionalLuis Jherry
 
03 Modelo Relacional
03 Modelo Relacional03 Modelo Relacional
03 Modelo RelacionalKudos S.A.S
 
Estadística con Lenguaje R: Sesión Introductoria
Estadística con Lenguaje R: Sesión IntroductoriaEstadística con Lenguaje R: Sesión Introductoria
Estadística con Lenguaje R: Sesión IntroductoriaLuis Fernando Aguas Bucheli
 
Bases de Datos Cap:III El modelo relacional
Bases de Datos Cap:III El modelo relacionalBases de Datos Cap:III El modelo relacional
Bases de Datos Cap:III El modelo relacionalVideoconferencias UTPL
 
Modelo Relacional
Modelo RelacionalModelo Relacional
Modelo Relacionalomarzon
 
Ud2 el modelo relacional
Ud2  el modelo relacionalUd2  el modelo relacional
Ud2 el modelo relacionalLesli Pacheco
 
Contenido UNIDAD II. COMO SON LAS BASES DE DATOS.
Contenido UNIDAD II.  COMO SON LAS BASES DE DATOS.Contenido UNIDAD II.  COMO SON LAS BASES DE DATOS.
Contenido UNIDAD II. COMO SON LAS BASES DE DATOS.spgutierrez86
 

Similar a Fundamentos de Sistemas de Base de Datos (Capítulo 7 y 8) (20)

Diseño Logico de base de datos
Diseño Logico de base de datosDiseño Logico de base de datos
Diseño Logico de base de datos
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
BASES DE DATOS CL2 para PPT.pdf
BASES DE DATOS CL2 para PPT.pdfBASES DE DATOS CL2 para PPT.pdf
BASES DE DATOS CL2 para PPT.pdf
 
Diseño lógico de bases de datos.
Diseño lógico de bases de datos.Diseño lógico de bases de datos.
Diseño lógico de bases de datos.
 
4.-ModeloRelacional (1).pdf
4.-ModeloRelacional (1).pdf4.-ModeloRelacional (1).pdf
4.-ModeloRelacional (1).pdf
 
MODELOS RELACIONAL.pdf
MODELOS RELACIONAL.pdfMODELOS RELACIONAL.pdf
MODELOS RELACIONAL.pdf
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
Unidad III: Modelo Lógico de BD
Unidad III: Modelo Lógico de BDUnidad III: Modelo Lógico de BD
Unidad III: Modelo Lógico de BD
 
El modelo relacional
El modelo relacionalEl modelo relacional
El modelo relacional
 
03 Modelo Relacional
03 Modelo Relacional03 Modelo Relacional
03 Modelo Relacional
 
Estadística con Lenguaje R: Sesión Introductoria
Estadística con Lenguaje R: Sesión IntroductoriaEstadística con Lenguaje R: Sesión Introductoria
Estadística con Lenguaje R: Sesión Introductoria
 
Modelo relacional2
Modelo relacional2Modelo relacional2
Modelo relacional2
 
Bases de Datos Cap:III El modelo relacional
Bases de Datos Cap:III El modelo relacionalBases de Datos Cap:III El modelo relacional
Bases de Datos Cap:III El modelo relacional
 
Modelo Relacional
Modelo RelacionalModelo Relacional
Modelo Relacional
 
Tema2 bases dedatosrelacional
Tema2 bases dedatosrelacionalTema2 bases dedatosrelacional
Tema2 bases dedatosrelacional
 
Ud2 el modelo relacional
Ud2  el modelo relacionalUd2  el modelo relacional
Ud2 el modelo relacional
 
Contenido UNIDAD II. COMO SON LAS BASES DE DATOS.
Contenido UNIDAD II.  COMO SON LAS BASES DE DATOS.Contenido UNIDAD II.  COMO SON LAS BASES DE DATOS.
Contenido UNIDAD II. COMO SON LAS BASES DE DATOS.
 
Normalizacion
NormalizacionNormalizacion
Normalizacion
 
Presentacion1
Presentacion1Presentacion1
Presentacion1
 
Manual de Erwin
Manual de ErwinManual de Erwin
Manual de Erwin
 

Más de Karina Lucio

Tipo de variables de SPSS
Tipo de variables de SPSSTipo de variables de SPSS
Tipo de variables de SPSSKarina Lucio
 
Fundamentos de Sistemas de Base de Datos (Capítulo 9 y 10)
Fundamentos de Sistemas de Base de Datos (Capítulo 9 y 10)Fundamentos de Sistemas de Base de Datos (Capítulo 9 y 10)
Fundamentos de Sistemas de Base de Datos (Capítulo 9 y 10)Karina Lucio
 
Fundamentos de Sistemas de Base de Datos (Capítulo 1 y 2)
Fundamentos de Sistemas de Base de Datos (Capítulo 1 y 2)Fundamentos de Sistemas de Base de Datos (Capítulo 1 y 2)
Fundamentos de Sistemas de Base de Datos (Capítulo 1 y 2)Karina Lucio
 
Fundamentos de Sistemas de Base de Datos (Capítulo 29 y 30)
Fundamentos de Sistemas de Base de Datos (Capítulo 29 y 30)Fundamentos de Sistemas de Base de Datos (Capítulo 29 y 30)
Fundamentos de Sistemas de Base de Datos (Capítulo 29 y 30)Karina Lucio
 
Fundamentos de Sistemas de Base de Datos (Capítulo 5 y 6)
Fundamentos de Sistemas de Base de Datos (Capítulo 5 y 6)Fundamentos de Sistemas de Base de Datos (Capítulo 5 y 6)
Fundamentos de Sistemas de Base de Datos (Capítulo 5 y 6)Karina Lucio
 
Fundamentos de Sistemas de Base de Datos (Capítulo 3 y 4)
Fundamentos de Sistemas de Base de Datos (Capítulo 3 y 4)Fundamentos de Sistemas de Base de Datos (Capítulo 3 y 4)
Fundamentos de Sistemas de Base de Datos (Capítulo 3 y 4)Karina Lucio
 
Tipo de variables de Microsoft Access
Tipo de variables de Microsoft AccessTipo de variables de Microsoft Access
Tipo de variables de Microsoft AccessKarina Lucio
 
Tipo de variables de PowerDesigner
Tipo de variables de PowerDesignerTipo de variables de PowerDesigner
Tipo de variables de PowerDesignerKarina Lucio
 
Tipo de variables de PowerDesigner
Tipo de variables de PowerDesignerTipo de variables de PowerDesigner
Tipo de variables de PowerDesignerKarina Lucio
 

Más de Karina Lucio (9)

Tipo de variables de SPSS
Tipo de variables de SPSSTipo de variables de SPSS
Tipo de variables de SPSS
 
Fundamentos de Sistemas de Base de Datos (Capítulo 9 y 10)
Fundamentos de Sistemas de Base de Datos (Capítulo 9 y 10)Fundamentos de Sistemas de Base de Datos (Capítulo 9 y 10)
Fundamentos de Sistemas de Base de Datos (Capítulo 9 y 10)
 
Fundamentos de Sistemas de Base de Datos (Capítulo 1 y 2)
Fundamentos de Sistemas de Base de Datos (Capítulo 1 y 2)Fundamentos de Sistemas de Base de Datos (Capítulo 1 y 2)
Fundamentos de Sistemas de Base de Datos (Capítulo 1 y 2)
 
Fundamentos de Sistemas de Base de Datos (Capítulo 29 y 30)
Fundamentos de Sistemas de Base de Datos (Capítulo 29 y 30)Fundamentos de Sistemas de Base de Datos (Capítulo 29 y 30)
Fundamentos de Sistemas de Base de Datos (Capítulo 29 y 30)
 
Fundamentos de Sistemas de Base de Datos (Capítulo 5 y 6)
Fundamentos de Sistemas de Base de Datos (Capítulo 5 y 6)Fundamentos de Sistemas de Base de Datos (Capítulo 5 y 6)
Fundamentos de Sistemas de Base de Datos (Capítulo 5 y 6)
 
Fundamentos de Sistemas de Base de Datos (Capítulo 3 y 4)
Fundamentos de Sistemas de Base de Datos (Capítulo 3 y 4)Fundamentos de Sistemas de Base de Datos (Capítulo 3 y 4)
Fundamentos de Sistemas de Base de Datos (Capítulo 3 y 4)
 
Tipo de variables de Microsoft Access
Tipo de variables de Microsoft AccessTipo de variables de Microsoft Access
Tipo de variables de Microsoft Access
 
Tipo de variables de PowerDesigner
Tipo de variables de PowerDesignerTipo de variables de PowerDesigner
Tipo de variables de PowerDesigner
 
Tipo de variables de PowerDesigner
Tipo de variables de PowerDesignerTipo de variables de PowerDesigner
Tipo de variables de PowerDesigner
 

Último

el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuelacocuyelquemao
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...JAVIER SOLIS NOYOLA
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxYeseniaRivera50
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024IES Vicent Andres Estelles
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfromanmillans
 
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtweBROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwealekzHuri
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 

Último (20)

el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuela
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
 
Unidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDIUnidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDI
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdf
 
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtweBROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 

Fundamentos de Sistemas de Base de Datos (Capítulo 7 y 8)

  • 1. UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE CIENCIAS ECONÓMICAS INGENIERÍA EN FINANZAS CAPÍTULO 7 Diseño de base de datos relacionales por mapeado ER- y EER-a-relacional CAPÍTULO 8 SQL-99: definición del esquema, restricciones, consultas y vistas
  • 2. Libro Fundamentos de Sistemas de Bases de Datos - 5ta Ed. - Elmasr Lucio Karina, Ludeña Bryan y Melo Elena CAPITULO 7 7.1 Diseño de una base de datos relacional utilizando el mapeado ER-a- relacional
  • 3. 7.1.1 Algoritmo de mapeado ER-a-relacional Lucio Karina, Ludeña Bryan y Melo Elena
  • 4. Paso 1: Mapeado de los tipos de entidad regulares. Por cada entidad(fuerte) regular E del esquema ER, cree una relación R que incluya todos los archivos simples de E. Incluya únicamente los atributos simples que conforman un atributo compuesto. Seleccione uno de los atributos clave de E como clave principal para R. si la clave elegida de E es compuesta, entonces el conjunto de los atributos simples que la forman constituirán la clave principal de E. Si durante el diseño conceptual se identificaron varias claves para E, la información que describe los atributos que forman la clave adicional conserva su orden para especificar las calves (únicas) secundarias de la relación R. El conocimiento sobre las claves también es necesario para la indexación y otros tipos de análisis. En nuestro ejemplo creamos las relaciones EMPLEADO, DEPARTAMENTO Y PROYECTO en la figura 7.2 como correspondiente a los tipos de entidad regulares, EMPLEADO, DEPARTAMENTO y PROYECTO de la figura 7.1 La foreign key y los atributos de relación si los hay, no se incluye aún; se añadirán durante los pasos posteriores. Nos referimos a los atributos SuperDni y Dni de EMPLEADO, DniDirector y FechaIngreso-Director de DEPARTAMENTOS y NumDptoProyecto de PROYECTO. En nuestro ejemplo, seleccionamos Dni, NúmeroDpto y NumProyecto como las claves principales para las relaciones EMPLEADO, DEPARTAMENTO Y PROYECTO, respectivamente. Recuerde que NombreDpto de DEPARTAMENTO y NombreProyecto de PROYECTO son claves secundarias, pues es posible que la utilicemos más tarde en el daño. Las relaciones que se crean a tupla representa una instancia de entidad. En la figura 7.3 (a) se muestra el resultado tras este paso del mapeado. Lucio Karina, Ludeña Bryan y Melo Elena 7.2. Resultado de mapear el esquema ER de EMPRESA dentro de un esquema de base de datos relacional.
  • 5. Paso 2: Mapeado de los tipos de entidad débiles. En nuestro ejemplo, creamos la relación SUBORDINADO en este paso como correspondencia con el tipo de entidad SUBORDINADO. Incluimos la clave principal Dni de la relación EMPLEADO (que corresponde al tipo de entidad propietario) como un atributo foreign key de SUBORDINADO; lo renombramos como DniEmpleado, aunque no es necesario. La clave principal de la relación SUNBORDINADO es la combinacion (DniEmpleado, Nombre Subordinado) porque NombreSubordinado (también renombrado a partir de Nombre en la Figura 7.1) es la calve parcial de SUBORDINADO. Lucio Karina, Ludeña Bryan y Melo Elena 7.2. Resultado de mapear el esquema ER de EMPRESA dentro de un esquema de base de datos relacional. Figura 7.3: Ilustración de algunos pasos del mapeado. (a) Relaciones de entidad después del paso 1. (b) Relación de entidad débil adicional después del paso 2. (c) Relación de relación después del paso 5. (d) Relación que representa el atributo multivalor después del paso 6.
  • 6. Lucio Karina, Ludeña Bryan y Melo Elena Paso 3: Mapeado de los tipos de relación 1:1 binaria Metodología de la foreing key Metodología de la relación mezaclada Metodología de referencia cruzada o relación de relación Por cada tipo de relación (por ejemplo S) e incluya como foreign key en S la clave principal T. Lo mejor es elegir un tipo de entidad como participación total en R en el papel de S.Incluya todos los atributos simples del tipo relación 1:1 R como atricuto de S. Una asignación alternativa de un tipo de relación 1:1 es posible al mezclar los dos tipos de entidad y la relación. esto puede ser apropiado cuando las participaciones son totales. La tercera opción consiste en configurar una tercera relacion R con el propósito de crear uan referencia cruzada de las calves principales de las relaciones S y T que representa los tipos de entidad. Paso 5: Mapeado de tipos relaciones M:N binarias. Por cada tipo de relación M:N binaria R, cree una nueva relación S para representar R. Incluya como atributos de la foreign key en S las claves principales de las relaciones que representan los tipos de entidad participantes; su combinación formara la clave principal de S. Incluya también cualesquiera atributos simples del tipo de relación M:N como atributos de S. Paso 4: Mapeado de tipos relaciones 1:N binaria. Por cada relación 1:n binaria regular R, identifique la relación S que representa el tipo de entidad participante en el lado N del tipo de relación. Incluya como foreign key en S la clave principal de la relación T que representa el otro tipo de entidad participante en R; hacemos esto porque cada instancia de entidad en el lado de N está relacionada, a lo sumo, con una instancia de entidad del lado 1 del tipo de relación.
  • 7. Lucio Karina, Ludeña Bryan y Melo Elena Paso 6: Mapeado de atributos multivalor. Por cada atributo multivalor A, cree una nueva relación R. Esta relación incluirá atributos correspondientes a A, más el atributo clave principal K de la relación que representa el tipo de entidad o tipo de relación que tiene A como un atributo. La clave principal de R es la combinación de A y K. Si el atributo multivalor es compuesto, incluimos sus componentes simples. Paso 7: Mapeado de tipos relaciones n-ary. Por cada tipo de relación n-ary R, donde n>2, cree una nueva relación S para representar R. Incluya como atributos de la foreign key en S las claves principales de las relaciones que presentan los tipos de entidad participantes. Incluye también cualesquiera atributos de S. Normalmente la clave principal de entidad S es una combinación de todas las foreign keys que hacen referencia a las relaciones que representan los tipos de entidad participantes. 7.1.2 Explicación y resumen del mapeado para las construcciones del modelo ER Figura 7.4. Asignación de tipo de relación n-ary SUMINISTRO de la figura 3.17(a) Para formar una relación que incluya el nombre del empleado, el nombre del proyecto y las horas que el empleado trabaja en cada proyecto, tenemos que conectar cada tupla EMPLEADO con las tuplas PROYECTO relacionadas a través de la relación TRABAJ_EN de la figura 7.s. Por tanto, debemos aplicar la operación EQUIJOIN a las relaciones EMPLEADO Y TRABAJA_EN con la condición de concatenación Dni.
  • 8. Lucio Karina, Ludeña Bryan y Melo Elena 7.2 Mapeado de construcciones del modelo EER a las relaciones 7.2.1 Mapeado de la especialización o generalización  Paso 8: Opciones para mapear la especialización o generalización. Convierta cada especialización con m subclases {S1,S2,…,Sn} y la superclase C, donde los atributos de C son {k, a,..,an} y k es la clave principal. Figura 7.5. Opciones para el mapeado de la especialización y la generalización. (a) Mapeado del esquema EER de la Figura 4.4 utilizando la opción 8A, (b) Mapeado del esquema EER de la figura 4.4 utilizando la opción 8b, (c) Mapeado del esquema EER de la figura 4.4 utilizando la opción 8C, (d) Mapeado del esquema EER de la figura 4.4 utilizando la opción 8D. Figura 7.6. Mapeado del entramado de especialización EER de la figura 4.8 utilizando varias opciones.
  • 9. Lucio Karina, Ludeña Bryan y Melo Elena Paso 9: Mapeado de tipos de unión (categorías). Para mejorar una categoría cuyas superclases definitorias tienen claves diferentes, es costumbre especificar un nuevo atributo de clave, denominado clave sustituta, al crear una relación correspondiente a la categoría. 7.2.2 Mapeado de subclases compartidas (herencia múltiple) Una subclase compartida, como INGENIERO_JEFE de la figura 4.7, en una sola clase de varias subclases, indicando la herencia múltiple. Estas clases deben tener todas el mismo atributo clave; en caso contrario, la subclase compartida se modelaría como una categoría. 7.2.3 Mapeado de categorías (tipos de unión) Añadimos otros pasos al procedimiento de mapeado para las categorías. Una categoría es una subclase de la unión de dos o más superclases que puede tener diferentes claves, porque pueden ser de distintos tipos de entidad. Figura 7.7. Mapeado de las categorías EER
  • 10. El lenguaje SQL se puede considerar como una de las principales razones del éxito comercial de las bases de daros relacionados. Como se convirtió en un estándar para estas ultimas, los usuarios perdieron el miedo a migrar sus aplicaciones de base de datos desde otros tipos de sistemas de bases de datos (por el producto DBMS tradicional que estaban utilizando. Una ventaja de disponer de un estándar es que los usuarios pueden escribir sentencias en una aplicación de base de datos para acceder a los datos almacenados en dos o mas DBMS relacionadas sin tener que cambiar el sublenguaje de base de datos (SQL), siempre y cuando esos DBMS soporten el SQL estándar. El nombre SQL significa Lenguaje de consulta estructurado. Originalmente, SQL se denomina SEQUEL (Structured English QUEry Languaje) y fue diseñado e implementado por IBM Research a modo de interfaz para un sistema de base de datos relacional conocido como SYSTEM R. SQL es ahora el lenguaje estandar de los DBMSs relacionales comerciales Lucio Karina, Ludeña Bryan y Melo Elena CAPITULO 8 SQL-99: definición del esquema, restricciones, consultas y vistas
  • 11. Lucio Karina, Ludeña Bryan y Melo Elena 8.1 Definición de datos y tipos de datos SQL SQL utiliza los términos tabla, fila y columna para los términos relación, tupla y atributo del modelo relacional formal, respectivamente. Utilizamos todos es términos indistintamente. 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). 8.1.1 Conceptos de esquema y catálogo en SQL Un esquema SQL se identifica con un nombre de esquemas e incluye un identificador de autorización para indicar el usuario o a la cuenta propietaria del esquema así como unos descriptores para cada elemento. Los elementos del esquema son las tablas, as restricciones, las vistas, los dominios y otras estructuras que describen en esquema. El esquema se crea con la sentencia CREATE SCHEMA, que puede incluir las definiciones de todos sus elementos. CREATE SHEMA EMPRESA AUTHORIZATION Jperez; 8.1.2 El comando CREATE TABLE de SQL El comando CREATE TABLE se utiliza para especificar una nueva relación, asignándole a esta ultima un nombre y sus atributos y restricciones iniciales. Primero se especifica los atributos, a cada uno de los cuales se les asigna un nombre, un tipo de datos para especificar su dominio de valores, y cualesquiera restricciones de atributo, como NOT NULL. Las restricciones de clave, integridad de entidad e integridad referencial, pueden especificarse con la sentencia CREATE TABLE después de haber declarado los atributos, o pueden añadirse más tarde con el comando ALTER TABLE
  • 12. Lucio Karina, Ludeña Bryan y Melo Elena Figura 8.1. Sentencia de definición de datos CREATE TABLE para definir el esquema EMPRESA de la figura 5.7
  • 13. Especificación de restricciones en SQL  Restricciones de clave y de integridad referencial, restricciones en los dominios de atributo y NULLs y en las tuplas individuales dentro de una relación.  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.  También es posible definir un valor predeterminado para un atributo añadiendo la cláusula OEFAULT a su definición.  Restringir los valores de atributo o dominio con la cláusula CHECK a continuación de la definición de un atributo o dominio. Especificación de las restricciones de clave y de integridad referencial • Hay cláusulas especiales para la sentencia CREATE TABLE. • 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 cláusula UNIQUE especifica claves (secundarias) alternativas. • 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 laforeign key o de la clave principal
  • 14. Asignación de nombres a las restricciones  Con la palabra clave CONSTRAINT puede asignarse un nombre de restricción a una restricción. El nombre de una restricción se utiliza para identificar una restricción particular en caso de que la restricción tenga que eliminarse más tarde y sustituirse por otra restricción 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.
  • 15. Sentencias de SQL para cambiar el esquema Comando DROP  Se puede utilizar para eliminar los elementos con nombre del esquema, como tablas, dominios o restricciones. Por ejemplo, si ya no se necesita un esquema entero, se puede utilizar el comando DROP SCHEMA.  Hay dos opciones de comportamiento para estas eliminaciones: CASCADE y RESTRICT. Por ejemplo, para eliminar el esquema de la base de datos EMPRESA y todas sus tablas, dominios y otros elementos, se utiliza la opción CASCADE de este modo: DROP SCHEMA EMPRESA CASCADE; Si se opta por RESTRICT en lugar de CASCAD E, el esquema sólo se elimina si no contiene elementos; en caso contrario, el comando DROP no se ejecutará.  Si ya no se necesita una relación base dentro de un esquema, la relación y su definición se pueden eliminar con el comando DROP TABLE.  Con la opción CASCADE, todas estas restricciones y vistas que hacen referencia a la tabla se eliminan automáticamente del esquema, junto con la propia tabla. • Comando ALTER • La definición de una tabla base o de otros elementos con nombre del esquema se puede cambiar con el comando ALTER. • Para eliminar una columna, debemos elegir CASCAD E o RESTRICT como comportamiento de eliminación. En el caso de CASCADE, todas las restricciones y vistas que hacen referencia a la columna se eliminarán automáticamente del esquema, junto con la columna. Si optamos por RESTRICT, el comando es satisfactorio sólo si no hay vistas o restricciones (u otros elementos) que hagan referencia a la columna.
  • 16. Consultas básicas en SQL  SQL tiene una sentencia básica para recuperar información de una base de datos: SELECT.  Algunas relaciones SQL están restringidas a ser conjuntos porque se ha declarado una restricción de clave o porque se ha utilizado la opción DISTINCT con la sentencia SELECT (se explica más adelante en esta sección). Estructura SElECT-FROM-WHERE de las consultas básicas de SQL La forma básica de la sentencia SELECT, denominada en ocasiones mapeado o bloque select-from- where, está formada por las cláusulas SELECT, FROM y WHERE y tiene la siguiente forma: SELECT <lista de atributos> cuyos valores serán recuperados por la consulta FROM <lista de tablas> lista de las relaciones necesarias para procesar las consultas WHERE <condición> una expresión condicional (booleana) que identifica las tuplas que la consulta recuperará
  • 17. Consulta 0. Recuperar la fecha de nacimiento y la dirección del empleado (o empleados) cuyo nombre sea José Pérez Pérez,  CO: SELECT FechaNac, Dirección  FROM EMPLEADO  WHERE Nombre='José' AND Apellid01 ='Pérez' AND Apellid02='Pérez' Nombres de atributo ambiguos, alias y variables de tupla En SQL el mismo nombre se puede utilizar para dos (o más) atributos, siempre y cuando los atributos se encuentren en relaciones diferentes. La relación EMPLEADO se llamaran NumeroDpto y Nombre, y que el atributo NombreDpto de DEPARTAMENTO también se llamara Nombre. Hemos añadido un prefijo a los atributos Nombre y NumeroDpto para especificar a cuáles nos estamos refiriendo en realidad SELECT Nombre, EMPLEADO. Nombre, Dirección FROM EMPLEADO, DEPARTAMENTO DEPARTAMENTO WHERE Nombre='lnvestígación' AND DEPARTAMENTO.NumeroDpto=EMPLEADO.Numer oDpto;
  • 18. Cláusula WHERE no especificada y uso del asterisco  La ausencia de una cláusula WHERE indica que no hay una condición en la selección de tuplas; por tanto, todas las tuplas de la relación especificada en la cláusula FROM se califican y seleccionan para la consulta resultante. Si en la cláusula FROM se especifica más de una relación y no hay una cláusula WHERE, entonces se selecciona el PRODUCTO CRUZADO (todas las posibles combinaciones de tuplas) de esas relaciones.  Consultas 9 y 10. Seleccione todos los Dni de EMPLEADO (C9) y todas las combinaciones de Dni de EMPLEADO y NombreDpto de DEPARTAMENTO (CIO) en la base de datos.  C9: SELECT Dni  FROM EMPLEADO;  C10: SELECT Dní, NombreDpto  FROM EMPLEADO, DEPARTAMENTO;  Para recuperar todos los valores de atributo de las tuplas seleccionadas, no tenemos que listar explícitamente los nombres de los atributos en SQL; podemos escribir un asterisco (*), que tiene el significado de todos los atributos. C1C: SELECT * FROM EMPLEADO WHERE Dno=5; C10: SELECT * FROM EMPLEADO, DEPARTAMENTO WHERE NombreDpto='lnvestigación' AND Dno=NumeroDpto; C10A: SELECT * FROM EMPLEADO, DEPARTAMENTO;
  • 19. 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.  SQL no elimina automáticamente las tuplas duplicadas en los resultados de las consultas, por las siguientes razones:  • La eliminación de duplicados es una operación muy costosa.  • El usuario puede querer ver las tuplas duplicadas en el resultado de una consulta.  • Cuando se aplica una función de agregación a las tuplas, en la mayoría de los casos no queremos eliminar los duplicados  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
  • 20. Comparación de subcadenas y operadores aritméticos  Condiciones de comparación de partes de una cadena de caracteres, mediante el operador de comparación LlKE. Esto se puede utilizar para la comparación de patrones. Las cadenas parciales se especifican mediante dos caracteres reservados: % sustituye una cantidad arbitraria de caracteres (de cero o más caracteres), y el guión de subrayado U reemplaza un solo carácter. Permite utilizar la aritmética en las consultas. Los operadores aritméticos estándar para la suma (+), la diferencia (-), la multiplicación (*) y la división (/) se pueden aplicar a valores o atributos numéricos con dominios numéricos. 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. Con la palabra clave DESC podemos ver el resultado ordenado descendentemente. La palabra clave ASC permite especificar explícitamente el orden ascendente.
  • 21. SQL tiene varias reglas para tratar con los valores NULL. 1. Valor desconocido Una persona en particular tiene una fecha de nacimiento, pero no la conocemos, por lo que la representamos con NULL en la base de datos. 2. Valor no disponible o no especificado Una persona tiene un teléfono en casa, pero no quiere que aparezca listado, por lo que se impide su visualización y se representa como NULL en la base de datos. 3. Atributo no aplicable Un atributo ÚltimoGrado sería NULL para una persona que no tiene una licenciatura, algo que no es aplicable para esa persona. Cuando en una comparación se ve implicado un NULL, se considera que el resultado es UNKNOWN, o desconocido (podría ser TRUE o podría ser FALSE). Es necesario definir los resultados de las expresiones lógicas de tres valores cuando se utilizan los conectores lógicos AND, OR Y NOT. SQL permite consultas que comprueban si el valor de un atributo es NULL. En lugar de utilizar = o <> para comparar el valor de un atributo con NULL, SQL utiliza 18 o 18 NOT. Consultas SQl más complejas
  • 22. 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. 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. EXISTS Y NOT EXISTS normalmente se utilizan en combinación con una consulta anidada correlacionada. En general, EXISTS(Q) devuelve TRUE si hay al menos una tupla en el resultado de la consulta anidada Q, y devuelve FALSE en caso contrario. NOT EXISTS(Q) devuelve TRUE si no hay tuplas en el resultado de la consulta anidada Q, y devuelve FALSE en caso contrario.
  • 23.
  • 24. FUNCIONES AGREGADAS EN SQL FUNCIONES MIN, MAX FUNCIÓN AVG FUNCIÓN COUNTFUNCIÓN SUM Se aplica a un conjunto o muticonjunto de valores numéricos y devulve la respectiva suma. Se aplica a un conjunto o multiconjunto de valores numéricos y devuelve el promedio. Devuelve el número de tuplas o valores especificados en una consulta. Se aplican a un conjunto o multiconjunto de valores numéricos y devuelven el valor mínimo y máximo.
  • 25. AGRUPAMIENTO: CLÁUSULAS GROUP BY Y HAVING GROUP BY HAVING Esta cláusula especifica los atributos de agrupamiento, que también deben aparecer en la cláusula Select. Por lo tanto el valor resultante de aplicar la función de agregación a un grupo de tuplas aparece junto con el valor de los atributos de agrupamiento. Si existen Nulls en el atributo de agrupamiento, se crea un grupo cerrado para todas las tuplas con un valor Null en el atributo de agrupamiento. La cláusula Having sirve para elegir grupos enteros. Esta cláusula proporciona una condición en el grupo de tuplas asociado a cada valor de los atributos de agrupamiento.
  • 26. EJEMPLO DE APLICACIÓN DE LAS CLÁUSULAS GROUP BY - HAVING
  • 27. Sentencias INSERT, DELETE Y UPDATE de SQL COMANDO INSERT COMANDO DELETE COMANDO UPDATE Se utiliza para modificar los valores de atributo de una o más tuplas seleccionadas Añade una tupla a una relación. Debemos especificar el nombre de la relación y una lista de valores para la tupla. Los valores deben suministrarse en el mismo oreden en el que se especificaron los atributos correspondientes en el comando Create Table. También es posible insertar con un solo comando INSERT varias tuplas separadas por comas. Los valores de los atributos que constituyen cada tupla se encierran entre paréntesis. Elimina tuplas de una relación. Las tuplas se eliminan explicitamente solo de una tabla a la vez. La eliminación se puede propagar a tuplas de otras relaciones si se han especificado acciones de activación referencial en las restricciones de integridad referencial de DDL. Cada comando UPDATE se refiere explícitamente a una sola relación. Para modificar varias relaciones debemos ejecutar varios comandos Update.
  • 28. RESTRICCIONES COMO ASERCIONES Y TRIGGERS ASERCIONES TRIGGERS En SQL podemos especificar restricciones generales mediante aserciones declarativas utilizando la sentencia Create Assertion del DDL. El nombre de la restricción se puede utilizar más tarde para referirse a dicha restricción o para modificarla o eliminarla. El DBMS es responsable de garantizar que no se viole la condición. Un trigger especifica un evento, una condición y una acción. La acción se ejecuta automáticamente si se satisface la condición cuando se produce el evento. Por ejemplo puede ser útil especificar una condición, que en caso de ser violada informe al usuario de alguna forma. La condición se utiliza para monitorizar la base de datos. En lugar de ofrecer al usuario la opción de abortar una operación que provoca una violación, el DBMS debe contar con otras opciones La técnica básica para escribir estas aserciones consiste en especificar una consulta que seleccionan las tuplas que violan la condición deseada.
  • 29. VISTAS EN SQL ESPECIFICACIONES IMPLEMENTACIÓN CARACTERÍSTICAS ADICIONALES SQL dispone de varias técnicas diferentes para escribir programas en distintos lenguajes de programación en los que se pueden incluir sentencias de SQL para acceder a una o más bases de datos. En SQL se utiliza el comando Create View para especificar una vista, asignándole un nombre de tabla o nombre de vista, una lista de nombres de atributos y una consulta que sirve para especificar el contenido de una vista. Si ninguno de los atributos de la vista resulta de aplicar funciones u operaciones aritméticas, no tenemos que especificar nombres de atributos para la vista, pues serían idénticos a los de las tablas de definición. Una vista siempre está actualizada y no se materializa al definirla, sino al especificar una consulta en la vista y todo ello depende del DBMS. La implementación de la vista puede darse bajo dos métodos: la modificación de consulta y la materialización de la vista. Una vista con una sola tabla de definición es actualizable si los atributos de la vista contienen la clave principal de la relación base. SQL y las bases de datos relacionales pueden interactuar con las nuevas tecnologías como XML.
  • 30. RESUMEN GENERAL Hemos presentado el lenguaje de base de datos SQL Y hemos visto la implementación de sus variaciones en muchos DBMSs. SQL está diseñado como un lenguaje global que incluye sentencias para la definición de datos, consultas, actualizaciones, especificaciones de restricciones y definición de vista. Utilizamos la notación BNF, según la cual los símbolos obligatorios se escriben entre corchetes angulares, las partes opcionales se muestran entre corchetes, las repeticiones entre llaves y las alternativas entre paréntesis.