Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Unidad 3 Informe

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 17

INF-4200 14 UASD ©

2021-01
Prof. Edward Martinez
Felix E. Reyes
100470672
INDICE
Introducción............................................................................................................................................................3
Definición de SQL.................................................................................................................................................3
Definición de datos y tipos de datos de SQL........................................................................................4
Conceptos de esquema y catálogo en SQL........................................................................................4
El comando CREATE TABLE de SQL....................................................................................................4
Tipos de datos y dominios en SQL.................................................................................................................5
Especificación de restricciones en SQL.......................................................................................................6
Especificación de las restricciones de clave y de integridad referencial..................................7
Asignación de nombres a las restricciones............................................................................................7
Especificación de restricciones en las tuplas utilizando CHECK.................................................7
Sentencias de SQL para cambiar el esquema.............................................................................................8
Comando DROP.................................................................................................................................................8
Comando ALTER...............................................................................................................................................8
Consultas básicas en SQL..................................................................................................................................9
Estructura SELECT-FROM-WHERE de las consultas básicas de SQL..........................................9
Cláusula WHERE no especificada y uso del asterisco.....................................................................10
Ordenación del resultado de una consulta...........................................................................................10
Consultas SQL más complejas.......................................................................................................................11
Comparaciones con valores NULL y lógica de tres valores...........................................................11
Funciones agregadas en SQL.....................................................................................................................12
Agrupamiento: Las clausulas GROUP BY y HAVING.........................................................................12
Sentencias INSERT, DELETE y UPDATE de SQL....................................................................................13
Comando INSERT...........................................................................................................................................13
Comando DELETE..........................................................................................................................................14
Comando UPDATE..........................................................................................................................................14
Vistas (tablas virtuales) en SQL.....................................................................................................................15
Concepto de vista en SQL...........................................................................................................................15
Especificación de vistas en SQL...............................................................................................................15
Conclusión.............................................................................................................................................................. 16
Bibliografía............................................................................................................................................................. 17

2
Introducción

En el presente informe le estaré hablando sobre el Lenguaje SQL y lo que nos permite
hacer este lenguaje que lo hace tan importante en la actualidad.

El lenguaje SQL se puede considerar como una de las principales razones del éxito
comercial de las bases de datos relacionales. Como se convirtió en un estándar para
estas últimas, los usuarios perdieron el miedo a migrar sus aplicaciones de base de
datos desde otros tipos de sistemas de bases de datos (por ejemplo, sistemas de red o
jerárquicos) a los sistemas relacionales, porque aunque estuvieran satisfechos con el
producto DBMS relacional que estaban utilizando, no esperaban que la conversión a
otro producto DBMS relacional fuera caro y consumiera mucho tiempo, ya que ambos
sistemas seguían los mismos estándares en cuanto al lenguaje.

Definición de SQL

SQL (por sus siglas en inglés Structured Query Language; en español lenguaje de


consulta estructurada) es un lenguaje específico del dominio que da acceso a
un sistema de gestión de bases de datos relacionales que permite especificar diversos
tipos de operaciones en ellos. Una de sus características es el manejo del álgebra y
el cálculo relacional que permiten efectuar consultas con el fin de recuperar, de forma
sencilla, información de bases de datos, así como hacer cambios en ellas.

Originalmente, SQL se denominaba SEQUEL (Structure English QUEry Language) 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 estándar
de los DBMSs relacionales comerciales. Un esfuerzo conjunto llevado a cabo por el
Instituto nacional americano de normalización (ANSI, American National Standards
lnstitute) y la Organizacón internacional para la normalización (ISO, lnternational
Standards Organization) llevó a una versión estándar de SQL (ANSI 1986),
denominada SQL-86 o SQL1.

SQL es un lenguaje de bases de datos global: cuenta con sentencias para definir datos,
consultas y actualizaciones. Por tanto, se comporta como DDL y como DML. Además,
dispone de características para definir vistas en la base de datos, especificar temas de
seguridad y autorización, definir restricciones de integridad, y especificar controles de
transacciones. También tiene reglas para incrustar sentencias de SQL en un lenguaje
de programación de propósito general, como Java, COBOL o C/C++.

3
Definición de datos y tipos de datos de SQL

SQL utiliza los términos tabla, fila y columna para los términos relación, tupla y
atributo del modelo relacional formal, respectivamente. Utilizaremos todos estos
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).

Conceptos de esquema y catálogo en SQL

El concepto de esquema SQL se incorporó por primera vez en SQL2 para agrupar las
tablas y otras estructuras pertenecientes a la misma aplicación de base de datos. 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.

Por ejemplo, la siguiente sentencia crea el esquema EMPRESA, propiedad del usuario
cuyo identificador de autorización es ‘Jperez’.

CREATE SCHEMA EMPRESA AUTHORIZATION Jperez;

En general, no todos los usuarios están autorizados a crear esquemas y elementos de


esquema. El privilegio de crear esquemas, tablas y otras estructuras debe ser otorgado
explícitamente por el administrador del sistema o DBA a las cuentas de usuario
pertinentes.

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. Las restricciones de
integridad, como la integridad referencial, se pueden definir entre las relaciones sólo si
existen en los esquemas del mismo catálogo. Los esquemas del mismo catálogo
también pueden compartir ciertos elementos, como las definiciones de dominio.

El comando CREATE TABLE de SQL

El comando CREATE TABLE se utiliza para especificar una nueva relación,


asignándole a esta última un nombre y 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

4
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.

Un ejemplo de este comando es el siguiente donde departamento es el nombre de la


tabla.

CREATE TABLE DEPARTAMENTO

( NombreDpto VARCHAR(15) NOT NULL,


NúmeroDpto INT NOT NULL,
DniDirector CHAR(9) NOT NULL,
FechalngresoDírector DATE,
PRIMARY KEY(NúmeroDpto),
UNIQUE (NombreDpto),
FOREIGN KEY (DniDirector) REFERENCES EMPLEADO(Dni) );

Las relaciones declaradas mediante sentencias CREATE TABLE se denominan tablas


base (o relaciones base); esto significa que el DBMS crea y almacena como un fichero
la relación y sus tuplas.

Tipos de datos y dominios en SQL

Los tipos de datos básicos disponibles para los atributos son numéricos, cadena de
caracteres, cadena de bits, booleano, fecha y hora.

 El tipo de datos numéricos incluye los números enteros de varios tamaños


(lNTEGER o INT, Y SMALLINT) así como los números en coma flotante (reales)
de distintas precisiones (FLOAT o REAL, Y DOUBLE PRECISION). Los números
se pueden declarar utilizando DECIMAL(i,j) [o DEC(i,j) o NUMERIC(i,j)], donde
i, la precisión, es el número total de dígitos decimales y j, la escala, es el
número de dígitos después del punto decimal.

 El tipo de datos cadena de caracteres puede ser de longitud fija [CHAR( n) o


CHARACTER(n), donde n es la cantidad de caracteres] o de longitud variable
[VARCHAR(n) o CHAR VARYING(n) o CHARACTER VARYING(n), donde n es la
cantidad máxima de caracteres]. Al especificar un valor de cadena literal, se
coloca entre comillas simples (apóstrofes) y distingue entre minúsculas y
mayúsculas, ‘Perez’.

 El tipo de datos cadena de bits es de longitud fija n [BIT(n)] o de longitud


variable [BIT VARYING(n)], donde n es la cantidad máxima de bits. El valor
predeterminado para n, que es la longitud de una cadena de caracteres o de
una cadena de bits, es 1. Las cadenas de bits literales se escriben entre
comillas simples pero precedidas por una B para distinguirlas de las cadenas de
caracteres. En SQL-99 existe otro tipo de datos denominado BINARY LARGE

5
OBJECT o BLOB destinado a especificar las columnas que tienen valores
binarios más grandes, como las imágenes.

 Un tipo de datos booleano tiene los valores tradicionales TRUE o FALSE. En


SQL, debido a la presencia de los valores NULL, se utiliza una lógica de tres
valores, que permite un tercer valor.

 El tipo de datos DATE tiene diez posiciones y sus componentes son AÑO, MES
Y DIA según la forma AAAA-MM-DD.

 El tipo de datos TIME tiene al menos ocho posiciones, con los componentes
HORAS, MINUTOS Y SEGUNDOS en la forma HH:MM:SS. La implementación de
SQL sólo debe permitir las fechas y las horas válidas. La comparación < (menor
que) se puede utilizar con fechas y horas (una fecha anterior se considera que
es más pequeña que una fecha posterior, y lo mismo pasa con las horas).

Especificación de restricciones en SQL

En estas restricciones en SQL podemos especificar como parte de la creación de una


tabla.

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. Esto siempre se
especifica implícitamente para los atributos que forman parte de la clave principal de
cada relación, pero puede especificarse para cualquier otro atributo para cuyo valor se
exige que no sea NULL.

También es posible definir un valor predeterminado para un atributo añadiendo la


cláusula DEFAULT <valor> a su definición. El valor predeterminado se incluye en
cualquier tupla nueva si no se proporciona un valor explícito para ese atributo. Si no se
especifica una cláusula predeterminada, el valor predeterminado es NULL para los
atributos que no tienen la restricción NOT NULL.

Otro tipo de restricción puede ser restringir los valores de atributo o dominio con la
cláusula CHECK a continuación de la definición de un atributo o dominio. Por ejemplo,
suponga que los números de departamento están restringidos a número enteros entre
1 y 20; entonces, podemos cambiar la declaración de atributo de NumeroDpto en la
tabla DEPARTAMENTO a lo siguiente:

NumeroDpto INT NOT NULL


CHECK (NumeroDpto > 0 AND NumeroDpto < 21);

6
Especificación de las restricciones de clave y de integridad
referencial

Como las restricciones de clave e integridad referencial son muy importantes, 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. Por ejemplo, la clave principal de
DEPARTAMENTO se puede especificar de la siguiente manera:

NumeroDpto INT PRIMARY KEY;

La cláusula UNIQUE especifica claves (secundarias) alternativas.

La integridad referencial se especifica mediante la cláusula FOREIGN KEY. 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.

Asignación de nombres a las restricciones

Con la palabra clave CONSTRAINT, puede asignarse un nombre de restricción a una


restricción. Los nombres de todas las restricciones dentro de un esquema particular
deben ser únicos. 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

Además de las restricciones de clave y de integridad referencial, que se especifican


mediante palabras claves especiales, 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.

7
Sentencias de SQL para cambiar el esquema

Aquí veremos Comandos de evolución del esquema de SQL, que se pueden utilizar
para alterar un esquema añadiendo o eliminando tablas, atributos, restricciones y otros
elementos del esquema.

Comando DROP

El comando DROP se puede utilizar para eliminar los elementos con nombre del
esquema, como tablas, dominios o restricciones. También puede eliminar un esquema.
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 elige la opción RESTRICT en lugar de CASCADE, la tabla sólo se elimina si no se


hace referencia a ella en ninguna restricción (por ejemplo, desde las definiciones de
foreign key de otra relación) o vista. 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.

El comando DROP TABLE no sólo elimina todos los registros de la tabla, sino también
la definición de la tabla del catálogo. Si se desea eliminar los registros, pero
manteniendo la definición de la tabla para un uso futuro, entonces hay que utilizar el
comando DELETE en lugar de DROP TABLE.

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 las tablas base, las posibles acciones de
alteración incluyen la adición o eliminación de una columna (atributo), el cambio de la
definición de una columna, y la adición o eliminación de restricciones.

8
Por ejemplo, para añadir a las relaciones base EMPLEADO del esquema EMPRESA un
atributo que sirva para hacer un seguimiento de los trabajos de los empleados,
podemos usar este comando:

ALTER TABLE EMPRESA.EMPLEADO ADD COLUMN Trabajo VARCHAR(12);

Consultas básicas en SQL

SQL tiene una sentencia básica para recuperar información de una base de datos:
SELECT.

SQL permite que una tabla (relación) tenga dos o más tuplas idénticas en todos sus
valores de atributo. Por tanto, en general, una tabla SQL no es un conjunto de tuplas,
porque un conjunto no per- mite dos miembros idénticos; en su lugar, es un
multiconjunto (a veces conocido como bolsa) de tuplas. 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.

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>


FROM <lista de tablas>
WHERE <condición>;

donde:

 <lista de atributos> es una lista de los atributos cuyos valores serán


recuperados por la consulta.
 <lista de tablas> es una lista de las relaciones necesarias para procesar la consulta.
 <condición> es una expresión condicional (booleana) que identifica las tuplas que la
consulta recuperará.

Ejemplo:

SELECT fechaNac, Direccion


FROM EMPLEADO
WHERE Nombre=’Jose’ AND Apellido1=’Perez’;

9
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.

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.

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. Por ejemplo:
SELECT * FROM EMPLEADO WHERE Dno=5;

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.

Este ejemplo recupera 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.

SELECT NombreDpto, Apellid01, Nombre, NombreProyecto

FROM DEPARTAMENTO, EMPLEADO, TRABAJA_EN, PROYECTO

WHERE NumeroDpto=Dno AND Dni=DniEmpleado AND NumProy=NumProyecto

ORDER BY NombreDpto, Apellid01, Nombre;

El orden predeterminado es el ascendente. Con la palabra clave DESC podemos ver el


resultado ordenado descendentemente. La palabra clave ASC permite especificar
explícitamente el orden ascendente. Por ejemplo, si deseamos el orden descendente
para NombreDpto y el orden ascendente para Apellido1, Nombre, la cláusula ORDER
BY se puede escribir de este modo:

ORDER BY NombreDpto DESC, Apellido1 ASC, Nombre ASC;

10
Consultas SQL más complejas

Comparaciones con valores NULL y lógica de tres valores

SQL tiene varias reglas para tratar con los valores NULL. NULL se utiliza para
representar la ausencia de un valor, aunque normalmente tiene una de tres
interpretaciones diferentes: valor desconocido (existe, pero no se conoce), valor no
disponible (existe, pero no se especifica a propósito), o atributo no aplicable (no
definido para esta tupla). Considere los siguientes ejemplos para ilustrar cada uno de
los significados de NULL.

 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.

 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.

 Atributo no aplicable. Un atributo Último Grado sería NULL para una persona
que no tiene una licenciatura, algo que no es aplicable para esa persona.

A veces no es posible determinar el significado que se pretende; por ejemplo, NULL


para el teléfono de casa de una persona puede tener cualquiera de los tres
significados. Por tanto, SQL no distingue entre los diferentes significados de NULL.

En general, cada NULL es considerado diferente a cualquier otro NULL de la base de


datos. 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). Por
tanto, SQL utiliza una lógica de tres valores con los valores TRUE, FALSE y UNKNOWN,
en lugar de la lógica estándar de dos valores con TRUE o FALSE. Por consiguiente, 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 IS o IS
NOT. Esto es así porque SQL considera cada valor NULL distinto a cualquier otro valor
NULL, por lo que la comparación de igualdad no es apropiada.

Resulta que cuando se especifica una condición de concatenación, las tuplas con
valores NULL en los atributos de concatenación no se incluyen en el resultado. La
Consulta IS ilustra esto y a continuación veremos un ejemplo:

Recuperar el nombre de todos los empleados que no tienen supervisores.

11
SELECT Nombre, Apellido1
FROM EMPLEADO
WHERE SuperDni IS NULL;

Funciones agregadas en SQL

Como en muchas aplicaciones de bases de datos se necesitan el agrupamiento y la


agregación, SQL dispone de funciones que incorporan estos conceptos: COUNT, SUM,
MAX, MIN y AVG. 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 (de la que hablaremos
más tarde). Las funciones MAX y MIN también se pueden utilizar con atributos que
tienen dominios no numéricos si los valores del dominio tienen una ordenación total
entre sí.

Ejemplo. Visualizar la suma de los salarios de todos los empleados, el salario más alto,
el salario más bajo y el sueldo medio.

SELECT SUM (Sueldo), MAX (Sueldo), MIN (Sueldo), AVG (Sueldo)


FROM EMPLEADO;

Agrupamiento: Las clausulas GROUP BY y HAVING

En muchos casos queremos aplicar las funciones agregadas a subgrupos de tuplas de


una relación, estando los subgrupos basados en algunos valores de atributo. Por
ejemplo, vamos a suponer que queremos saber el sueldo medio de los empleados de
cada departamento o el número de empleados que trabajan en cada proyecto. En
estos casos, tenemos que dividir la relación en subconjuntos no solapados (o grupos)
de tuplas. Cada grupo (partición) estará compuesto por las tuplas que tienen el mismo
valor para algún(os) atributo(s), denominado(s) atributo(s) de agrupamiento. Después
podemos aplicar la función independientemente a cada grupo. SQL tiene una cláusula
GROUP BY para este propósito.

Ejemplo. Por cada departamento, recuperar el número de departamento, el número de


empleados del mismo y el sueldo medio.

SELECT Dno, COUNT (*), AVG (Sueldo)


FROM EMPLEADO
GROUP BY Dno;

12
Nota: El asterisco (*) se refiere a las filas (tuplas), por lo que COUNT (*) devuelve el
número de filas del resultado de la consulta. También podemos utilizar la función
COUNT para contar los valores de una columna en lugar de las tuplas

A veces necesitamos recuperar los valores de esas funciones sólo para aquellos grupos
que satisfacen ciertas condiciones. Por ejemplo, suponga que realizar una consulta que
en el resultado sólo aparezcan los proyectos con más de dos empleados. SQL
proporciona una cláusula HAVING, que puede aparecer en combinación con una
cláusula GROUP BY, con este propósito.

Ejemplo. Por cada proyecto en el que trabajan más de dos empleados, recuperar el
número, el nombre y la cantidad de empleados que trabajan en él.

SELECT NumProyecto, NombreProyecto, COUNT (*)


FROM PROYECTO, TRABAJA_EN
WHERE NumProyecto=NumProy
GROUP BY NumProyecto, NombreProyecto
HAVING COUNT (*) > 2;

Sentencias INSERT, DELETE y UPDATE de SQL

Comando INSERT

En su formato más sencillo, INSERT se utiliza para añadir una sola 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 orden en el que se especificaron
los atributos correspondientes en el comando CREATE TABLE.

INSERT se utiliza para agregar los valores o datos a una tabla seleccionada. Ejemplo:

INSERT INTO EMPLEADO


VALUES ( 'Ricardo', 'Roca', 'Flores', '653298653', '30-12-1962’, ‘Los Jarales, 47', 'H',
37000, '653298653', 4 );

Una segunda forma de la sentencia INSERT permite especificar explícitamente los


nombres de los atributos que se corresponden con los valores suministrados en el
comando INSERT. Esto resulta útil si la relación tiene muchos atributos y sólo vamos a
asignar valores a unos cuantos en la tupla nueva.

INSERT INTO EMPLEADO (Nombre, Apellido1, Dno, Dni)


VALUES ('Ricardo', 'Roca', 4, '653298653' );

13
Comando DELETE

El comando DELETE elimina tuplas de una relación. Incluye una cláusula WHERE,
parecida a la que se utiliza en una consulta SQL, para seleccionar las tuplas que se van
a eliminar. Las tuplas se eliminan explícitamente sólo de una tabla a la vez. Sin
embargo, 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 del DDL.

En función del número de tuplas seleccionadas por la condición de la cláusula WHERE,


ninguna, una o varias tuplas pueden ser eliminadas por un solo comando DELETE. La
ausencia de una cláusula WHERE significa que se borrarán todas las tuplas de la
relación; sin embargo, la tabla permanece en la base de datos, pero vacía. Debemos
utilizar el comando DROP TABLE para eliminar la definición de la tabla. Ejemplo:

DELETE FROM EMPLEADO


WHERE Apellido1=’Cabrera’;

Comando UPDATE

El comando UPDATE se utiliza para modificar los valores de atributo de una o más
tuplas seleccionadas. Como en el comando DELETE, una cláusula WHERE en el
comando UPDATE selecciona las tuplas de una relación que se van a modificar. No
obstante, la actualización del valor de una clave principal puede propagarse a los
valores de la foreign key de las tuplas de otras relaciones en caso de haberse
especificado una acción de activación referencial en las restricciones de integridad
referencial del DDL.

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:

UPDATE PROYECTO
SET UbicaciónProyecto = 'Valencia', NumDptoProyecto = 5
WHERE NumProyecto=10;

También es posible especificar NULL o DEFAULT como nuevo valor de un atributo.


Cada comando UPDATE se refiere explícitamente a una sola relación. Para modificar
varias relaciones, debemos ejecutar varios comandos UPDATE.

14
Vistas (tablas virtuales) en SQL

Concepto de vista en SQL

Una vista en terminología SQL es una tabla que deriva de otras tablas. Esas otras
tablas pueden ser tablas base o vistas definidas anteriormente. Una vista no existe
necesariamente en formato físico; está considerada como una tabla virtual, en
oposición a las tablas base, cuyas tuplas están realmente almacenadas en la base de
datos. Esto limita las posibles operaciones de actualización que pueden aplicarse a las
vistas, pero no ofrecen limitación alguna al consultar una vista.

Especificación de vistas en SQL

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.

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, puesto que
serían idénticos a los de los atributos de las tablas de definición.

Ejemplo:

CREATE VIEW TRABAJA_EN1


AS SELECT Nombre, Apellido1, NombreProyecto, Horas
FROM EMPLEADO, PROYECTO, TRABAJA_EN
WHERE Dni=DniEmpleado AND NumProy=NumProyecto;

15
Conclusión
En este informe hemos presentado el lenguaje de bases de datos SQL especificado en
el capítulo 8 del libro FUNDAMENTOS DE SISTEMAS DE BASES DE DATOS en su 5ta
Edición. SQL ha permitido la evolución sobre la manera en la que almacenamos,
gestionamos y organizamos los datos.

Pudimos observar lo necesario para la formación y planificación de una base de datos,


refiriéndome al levantamiento y análisis con la base de dato en si con sus tablas
necesarias y atributos, como vimos con el Lenguaje de Definición de Datos (DDL). Por
otro lado, también presenciamos la parte de la manipulación de nuestra base de datos,
así como los comandos que debemos darle al “hablarle” para saber que deseamos ver
y como ella nos lo puede proporcionar y que necesitamos que ella nos muestre por
pantalla de los datos que tenemos almacenados, todo esto con el Lenguaje de
Manipulación de Datos (DML).

16
Bibliografía
1. Ramez Elmasri, Shamkant B. Navathe (2007). Fundamentos de Sistemas de
Bases de Datos. Editora Pearson, Madrid, 5ta. Edición.

17

También podría gustarte