2. El lenguaje SQL ha evolucionado a
partir de finales de los años setenta
desde un lenguaje con pocas
funcionalidades a un lenguaje
complejo con características para
satisfacer a muchos tipos diferentes
de usuarios. En esta ocasión se
tratarán algunas de las
características avanzadas de SQL.
Introducción
4. Tipos de datos predefinidos
date. Una fecha de calendario que contiene el año (de cuatro cifras), el mes y el día del mes.
time. La hora del día, en horas, minutos y segundos. Se puede usar una variante, time(p), para
especificar el número de cifras decimales para los segundos (el valor predeterminado es 0).
También es posible almacenar la información del huso horario junto a la hora especificando
time with timezone.
timestamp. Una combinación de date y time. Se puede usar una variante, timestamp(p), para
especificar el número de cifras decimales para los segundos (el valor predeterminado es
seis). También se almacena información sobre el huso horario si se especifica with
timezone.
5. Your logo
Los valores de fecha y hora se pueden especificar de esta manera:
date ’2001-04-25’
time ’09:30:00’
timestamp ’2001-04-25 10:29:01.45’
6. Tipos de datos para objetos grandes
Muchas aplicaciones de bases de datos de última generación necesitan almacenar
atributos que pueden ser de gran tamaño (del orden de muchos kilobytes), como
pueden ser fotografías de personas, o muy grande (del orden de muchos
megabytes o, incluso, gigabytes), como las imágenes médicas de alta resolución o
fragmentos de vídeo. SQL, por tanto, ofrece nuevos tipos de datos para objetos de
gran tamaño para los datos de caracteres (clob) y para los datos binarios (blob). Las
letras “lob” de estos tipos de datos significan “objeto grande” (Large Object). Por
ejemplo, se pueden declarar los atributos:
7. Esquemas, catálogos y entornos
El nivel superior de la jerarquía consta de catálogos,
cada uno de los cuales puede contener esquemas.
Los objetos de SQL, como las relaciones y las vistas,
están contenidos en esquemas. (Algunas
implementaciones de las bases de datos emplean el
término “base de datos” en lugar de catálogo).
Para llevar a cabo cualquier acción sobre la base de
datos los usuarios (o los programas) primero deben
conectarse a ella. El usuario debe proporcionar el
nombre de usuario y, generalmente, una contraseña
secreta para que se compruebe su identidad. Cada
usuario tiene un catálogo y un esquema
predeterminados, y esa combinación es única para
cada usuario.
8. Restricciones de Integridad
Valor nulo
El saldo de las cuentas no
puede ser nulo.
Duplicidad
No puede haber dos cuentas con el mismo
número.
Correspondencia
Todos los números de cuenta
de la relación impositor deben
tener el número de cuenta
correspondiente en la relación
cuenta.
Rango valores
El salario por hora de los empleados
del banco debe ser, como mínimo,
de X gs., la hora.
01
03 04
02
Las restricciones de integridad garantizan que las modificaciones realizadas en la base de datos por los usuarios
autorizados no den lugar a una pérdida de la consistencia de los datos. Por tanto, las restricciones de integridad
protegen contra daños accidentales a las bases de datos. Algunos ejemplos son:
9. Restricciones sobre una sola relación
unique
not null check
Además de la restricción “de clave primaria”, hay varias más que pueden incluirse en
el comando Create Table. Entre las restricciones de integridad permitidas se
encuentran:
11. A menudo se desea garantizar que el valor que aparece en
una relación para un conjunto dado de
atributos aparezca también para un conjunto determinado de
atributos en otra relación. Esta condición
se denomina integridad referencial.
12. Integridad Referencial
Las claves externas pueden especificarse como parte de la instrucción de
SQL create table mediante la cláusula foreign key. Las declaraciones de
claves externas se ilustran mediante la definición en el LDD de SQL de
parte de la base de datos bancaria, como puede verse en la Figura 4.2. La
declaración de la tabla cuenta tiente una declaración “foreign key
(nombre_sucursal) references sucursal”. Esta declaración de clave externa
especifica que para cada tupla de cuenta, el nombre de sucursal
especificado en la tupla debe existir en la relación sucursal. Sin esta
restricción, es posible que alguna cuenta especifique el nombre de una
sucursal inexistente.
13.
14. Eso es todo, gracias por su atención
¿Preguntas?