Está en la página 1de 12

Universidad Autónoma de Santo Domingo

Facultad de Ciencias
Escuela de Informática
Nombre
Rainer
Apellidos
Ramón Martinez
Matricula
100228961
Asignatura
Base de Datos I
Docente
Edward Ureña Mejía
Tema
SQL-99: Definición Del Esquema, Restricciones, Consultas Y
Vistas
SQL-99: Definición Del Esquema, Restricciones, Consultas Y
Vistas

Contenido
Introducción......................................................................................................................................4
SQL-99: definición del esquema, restricciones, consultas y vistas...................................................5
Definición de datos y tipos de datos de SQL.................................................................................6
Conceptos de esquema y catálogo en SQL................................................................................6
El comando CREATE TABLE de SQL................................................................................................7
Tipos de datos y dominios en SQL.................................................................................................8
Especificación de restricciones en SQL............................................................................................10
Especificación de restricciones de atributo y valores predeterminados de atributo.................10
Introducción
El lenguaje de consultas estructuradas o SQL (Structured Query Language) es un
lenguaje de programación estandarizado que se utiliza para administrar bases de
datos relacionales y realizar diversas operaciones con los datos que contienen.
Creado inicialmente en la década de 1970, SQL es utilizado habitualmente no solo
por los administradores de bases de datos, sino también por los desarrolladores
que escriben scripts de integración de datos y por los analistas de datos que
desean configurar y ejecutar consultas analíticas.
Los usos de SQL incluyen la modificación de las estructuras de tablas e índices de
las bases de datos; la adición, actualización y eliminación de filas de datos; y la
recuperación de subconjuntos de información de una base de datos para el
procesamiento de transacciones y aplicaciones analíticas. Las consultas y otras
operaciones SQL adoptan la forma de comandos escritos en forma de sentencias:
las sentencias SQL más utilizadas son select, add, insert, update, delete, create,
alter y truncate.
A continuación veremos un control de lectura extraído del Capitulo 8 del libro
Fundamentos de Sistemas de Bases de Datos, de Ramez Elmasri y Shamkant
B.Navathe (2007) , 5ta. Edición .
SQL-99: definición del esquema, restricciones, consultas y vistas
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.
En la práctica, por supuesto, hay muchas diferencias entre los distintos paquetes
DBMS relacionales comerciales. Sin embargo, si el usuario sólo utiliza las
funciones que forman parte del estándar, y si ambos sistemas relacionales
soportan fielmente el estándar, la conversión entre los dos sistemas es mucho
más sencilla. Otra 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 más DBMSs relacionales sin tener que cambiar el
sublenguaje de base de datos (SQL), siempre y cuando esos DBMS soporten el
SQL estándar.
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++.
Como la especificación del estándar SQL sigue creciendo, con más funciones en
cada nueva versión del estándar, el último estándar, SQL-99, está dividido en una
especificación central (o núcleo) más unos paquetes especializados opcionales.
Se supone que todos los desarrolladores de DBMSs compatibles con SQL-99
implementan dicho núcleo. Los paquetes pueden implementarse como módulos
opcionales que pueden adquirirse independientemente para determinadas
aplicaciones de bases de datos; por ejemplo, para el minado de datos, datos
espaciales, datos meteorológicos, datos de almacenamiento, procesamiento
analítico online (OLAP), datos multimedia, etcétera.
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). Antes de describir las sentencias CREATE
relevantes, explicamos los conceptos de esquema y catálogo en la Sección 8.1.1
para centrar nuestra explicación. La Sección 8.1.2 describe la creación de las
tablas y la Sección 8.1.3 describe los tipos de datos más
importantes disponibles para la especificación de atributos. Como la especificación
SQL es muy larga, ofrecemos una descripción de las características más
importantes. Los detalles más avanzados se pueden encontrar en los distintos
documentos de los estándares
Conceptos de esquema y catálogo en SQL
Las versiones anteriores de SQL no incluían el concepto de esquema de base de
datos relacional; todas las tablas (relaciones) estaban consideradas como parte
del mismo esquema. 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. Como alternativa, puede asignarse un
nombre y un identificador de autorización al esquema, y definir los elementos más
tarde. Por ejemplo, la siguiente sentencia crea el esquema EMPRESA, propiedad
del usuario cuyo identificador deautorización es ‘Jperez’. CREATE SCHEMA
EMPRESA AUTHORIZATION Jperez
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 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
Tipos de datos y dominios en SQL
Los tipos de datos básicos disponibles para los atributos son numérico, 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
(INTEGER 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 valor predeterminado para la escala es cero,
mientras que la precisión predeterminada se define en la implementación.
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. En el caso de las cadenas de longitud fija, las cadenas más cortas se
rellenan con caracteres en blanco por la derecha. Por ejemplo, si el valor ‘Pérez’
corresponde a un atributo de tipo CHAR(10), se rellena con cinco caracteres en
blanco para convertirse en ‘Pérez ‘, si es necesario. Los blancos de relleno
normalmente se ignoran cuando se comparan cadenas. En las comparaciones, las
cadenas se consideran ordenadas alfabéticamente (o lexicográficamente); si una
cadena cad1 aparece antes que otra cadena cad2 en orden alfabético, entonces
se considera que cad1 es menor que cad2.También existe un operador de
concatenación representado por || (doble barra vertical) que permite concatenar
dos cadenas en SQL. Por ejemplo, ‘abc’ || ‘XYZ’ da como resultado una sola
cadena, ‘abcXYZ’.
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; por ejemplo,B‘10101’.5 En SQL-99 existe otro tipo de datos
denominado BINARY LARGE 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: UNKNOWN.
En SQL2 se añadieron dos nuevos tipos de datos, fecha y hora. El tipo de datos
DATE tiene diez posiciones y sus componentes son AÑO, MES y DÍA 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.
Un tipo de datos marca de tiempo (TIMESTAMP) incluye los campos DATE y
TIME, más un mínimo de seis posiciones para las fracciones decimales de
segundos y un calificador WITH TIME ZONE opcional. Los valores literales se
representan como cadenas entre comillas simples precedidas por la palabra clave
TIMESTAMP, con un espacio en blanco entre la fecha y la hora; por ejemplo,
TIMESTAMP ‘2002-09-27 09:12:47 648302’.

Especificación de restricciones en SQL


Especificación de restricciones de atributo y valores predeterminados de
atributo
Como SQL permite NULL como valor de atributo, es posible especificar una
restricción NOT NULL si no se permite NULL para un atributo en particular. 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.
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.6 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.
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. En la Figura 8.1 se
muestran algunos ejemplos para ilustrar la especificación de claves y la integridad
referencial.7 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 como sigue.
NumeroDpto INT PRIMARY KEY
La cláusula UNIQUE especifica claves (secundarias) alternativas, como se
ilustraba en la declaración de las tablas DEPARTAMENTO y PROYECTO
La integridad referencial se especifica mediante la cláusula FOREIGN KEY. Como
se explicó en la Sección 5.2.4, una restricción de integridad referencial se puede
violar cuando se insertan o eliminan tuplas o cuando se modifica el valor de un
atributo de la foreign key o de la clave principal. La acción predeterminada que
SQL toma en caso de una violación de la integridad es rechazar la operación de
actualización que provocaría tal violación. Sin embargo, el diseñador del esquema
puede especificar una acción alternativa si se viola la integridad referencial
añadiendo una cláusula de acción de activación referencial a cualquier restricción
de foreign key.
Asignación de nombres a las restricciones
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. La asignación de nombres a las restricciones es
opcional.
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. Por ejemplo, suponga que la tabla
DEPARTAMENTO de la Figura 8.1 tiene un atributo adicional FechaCreaciónDpto,
que almacena la fecha en que se creó el departamento. Después, podríamos
añadir la siguiente cláusula CHECK al final de la sentencia CREATE TABLE para
la tabla DEPARTAMENTO para garantizar que la fecha de inicio de un director es
posterior a la fecha de creación del departamento.
Sentencias de SQL para cambiar el esquema
En esta sección ofrecemos una panorámica de los 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.

También podría gustarte