You are on page 1of 6

Resumen de Bases de Datos

Unidad 6: Definicin de Datos


6.1.1 Identificadores SOL: Los identificadores SQL se utilizan para identificar
objetos en la base de datos, como por ejemplo nombres de tablas, nombres de vistas
y columnas. Los caracteres que pueden utilizarse en un identificador SQL definido por
el usuario deben aparecer dentro de un determinado conjunto de caracteres. El
estndar ISO proporciona un conjunto de caracteres predeterminado, que est
compuesto por las letras maysculas A .. Z, las letras minsculas a ... z, los dgitos
O ... 9 Y el carcter de subrayado ( _ ). Tambin es posible especificar conjuntos de
caracteres alternativos. Las restricciones aplicables a los identificadores son las
siguientes:
Cada identificador no puede tener ms de 128 caracteres de longitud (la
mayora de los dialectos tienen un lmite muy inferior a ste);
Cada identificador debe comenzar con una letra;
Los identificadores no pueden contener espacios.
6.1.2Tipos de datos SOL escalares: La Tabla 6.1 muestra los tipos de datos SQL
escalares definidos en el estndar ISO, para propsitos de manipulacin y conversin,
los tipos de datos carcter y bit se denominan colectivamente como tipos de datos de
cadena, mientras que los tipos de datos numrico exacto y numrico aproximado se
denominan tipos de datos numricos, ya que comparten propiedades similares. El
estndar SQL: 2003 tambin define objetos de gran tamao de tipo carcter y de tipo
binario, aunque dejaremos las explicaciones sobre estos tipos de datos para la
Seccin 28.4.
Datos booleanos: Los datos booleanos estn compuestos de los valores de verdad
TRUE y FALSE.
Datos de caracteres Los datos de caracteres estn compuestos de una secuencia
de caracteres extrados de un conjunto de caracteres definidos por la
implementacin, es decir, definido por el fabricante del dialecto SQL concreto. Dos
conjuntos de caracteres de uso comn hoy en da son ASCII y EBCDIC.
Datos de bit: El tipo de datos bit se utiliza para definir cadenas de bits, es decir,
secuencias de dgitos binarios (bits), cada uno de los cuales puede tener el valor O o
l.
6.1.3 Datos numricos exactos: El tipo de datos numricos exactos se utiliza para
definir nmeros con una representacin exacta. Cada nmero estar compuesto por
dgitos, por una coma decimal opcional y por un signo tambin opcional.
Datos numricos aproximados: Los tipos de datos numricos aproximados se
utilizan para definir nmeros que no tienen una representacin exacta, como, por
ejemplo, los nmeros reales.
Datos de fecha y hora: Los tipos de datos de fecha y hora se utilizan para definir
instantes temporales con un cierto grado de precisin.
Datos de intervalo: El tipo de datos de intervalo se utiliza para representar periodos
de tiempo.
Operadores escalares: SQL proporciona una serie de funciones y operadores
escalares integrados que pueden utilizarse para construir una expresin escalar, es
decir, una expresin que proporcione como resultado de la evaluacin un valor
escalar. Adems de los operadores aritmticos obvios (+, -, *, /), estn disponibles los
siguientes operadores: BIT LENGTH, OCTET LENGTH, CAST, CURRENT USER, o USER,
SESSION USER, LOWER, UPPER, TRIM, POSITION, SUBSTRING, CASE.
6.2 Caractersticas de mejora de la integridad: En esta seccin, vamos a
examinar las funciones proporcionadas por el estndar SQL para el control de
integridad. El control de integridad est compuesto por restricciones que deseamos

imponer con el fin de proteger la base de datos frente a posibles incoherencias.


Vamos a considerar cinco tipos distintos de restricciones de integridad.
Datos requeridos;
Restricciones de dominio;
Integridad de entidades;
Integridad referencial;
Restricciones generales.
Estas restricciones pueden definirse en las instrucciones CREATE y ALTER TABLE,
como veremos en breve.
6.2.1 Datos requeridos: Algunas columnas deben contener un valor vlido; no est
permitido que dichas columnas contengan valores nulos. Los valores nulos son
diferentes de los espacios en blanco o de los valores numricos iguales a cero, y se
utilizan para representar datos que o bien no estn disponibles, o faltan o bien no son
aplicables.
6.2.2 Restricciones de dominio: Toda columna tiene un dominio, es decir, un
conjunto de valores legales (vase la Seccin 3.2.1). Por ejemplo, el sexo de un
empleado puede ser 'M' o 'F', por lo que el dominio de la columna sex de la tabla Staf
es una nica cadena de caracteres compuesta de 'M' o 'F'. El estndar ISO
proporciona dos mecanismos para especificar dominios en las instrucciones CREATE y
ALTER TABLE. El primero es la clusula: CHECK, que permite definir una restriccin
sobre una columna o sobre la tabla completa. El formato de la clusula CHECK es:
CHECK (condicinBsqueda)
6.2.3 Integridad de entidades: La clave principal de una tabla debe contener un
valor univoco y no nulo en cada fila. El estndar ISO soporta las restricciones de
integridad de entidades mediante la clusula PRIMARY KEY en las instrucciones
CREATE y ALTER TABLE. Por ejemplo, para definir la clave principal de la tabla
PropertyForRent, incluimos la clusula: PRIMARY KEY(propertyNo)
Para definir una clave principal compuesta, se especifican mltiples nombres de
columna en la clusula PRIMARY KEY, separando cada uno de ellos mediante una
coma. Por ejemplo, para definir la clave principal de la tabla Viewing, que est
compuesta por las columnas c1ientNoy propertyNo, incluimos la clusula: PRIMARY
KEY(clientNo, propertyNo)
La clusula PRIMARY KEY puede especificarse nicamente una vez por cada tabla. Sin
embargo, sigue siendo posible garantizar la unicidad para cualesquiera claves
alternativas que tenga la tabla utilizando la palabra clave UNIQUE. Cada columna que
aparezca en una clusula UNIQUE debe tambin declararse como NOT NULL. Puede
haber tantas clusulas UNIQUE por cada tabla como sea necesario.
6.2.4 Integridad referencial: Una clave externa es una columna o conjunto de
columnas que enlazan cada fila de la tabla hijo que contiene la clave externa con la
fila de la clave padre que contiene el valor correspondiente de clave candidata. La
integridad referencial quiere decir que, si la clave externa contiene un valor, dicho
valor debe hacer referencia a una fila existente y vlida dentro de la tabla padre.
6.2.5 Restricciones generales: Las actualizaciones de las tablas pueden estar
restringidas por reglas de negocio que gobiernen las transacciones del mundo real
representadas por dichas actualizaciones.

6.3 Definicin de datos: El lenguaje de definicin de datos (DDL, Data Definition


Language) de SQL permite crear y destruir objetos de la base de datos tales como
esquemas, dominios, tablas, vistas e ndices.
El estndar ISO tambin permite la creacin de conjuntos de caracteres,
intercalaciones y traducciones.
Las instrucciones principales del lenguaje de definicin de datos de SQL son:

CREATE
CREATE
CREATE
CREATE

SCHEMA
DOMAIN
TABLE
VIEW

Estas instrucciones se utilizan para crear, modificar y destruir las estructuras que
forman el esquema conceptual. Aunque no estn cubiertas por l estn dar SQL,
muchos SGBD proporcionan tambin las siguientes dos instrucciones adicionales:
CREATE INDEX DROPINDEX.
Es importante tomar en cuenta lo siguiente:
Las relaciones y otros objetos de base de datos existen dentro de lo que se
denomina entorno.
Cada entorno est compuesto por uno o ms catlogos y cada catlogo por
una serie de esquemas.
Un esquema es una coleccin nominada de objetos de base de datos que
estn relacionadas entre s de alguna manera.
Los objetos de un esquema pueden ser tablas, vistas, dominios. Todos los
objetos de un esquema tienen el mismo propietario y comparten una seria de
valores predeterminados.
El DBA dispone de comandos adicionales para especificar los detalles fsicos relativos
al almacenamiento de los datos
6.3.1 Creacin de una base de datos: El proceso de creacin de una base de
datos difiere significativamente de unos productos a otros. En los sistemas
multiusuario, la autoridad para crear una base de datos est usualmente reservada al
DBA. En los sistemas monousuario, puede que se establezca una base de datos
predeterminada a la hora de instalar y configurar el sistema, pudiendo el usuario
crear otras cuando lo necesite. El estndar ISO no especifica cmo se crean las bases
de datos, por lo que cada dialecto suele adoptar un enfoque distinto.
De acuerdo con el estndar ISO, las relaciones y otros objetos de base de datos
existen dentro de lo que se denomina un entorno. Entre otras cosas, cada entorno
est compuesto de uno o ms catlogos y cada catlogo por una serie de esquemas.
Un esquema es una coleccin nominada de objetos de base de datos que estn
relacionados entre s de alguna manera (todos los objetos de la base de datos estn
descritos en un esquema u otro). Los objetos de un esquema pueden ser tablas,
vistas, dominios, aserciones, intercalaciones, traducciones y conjuntos de caracteres.
Todos los objetos de un esquema tienen el mismo propietario y comparten una serie
de valores predeterminados.
El estndar deja al arbitrio de la implementacin el mecanismo para crear y destruir
los catlogos, pero proporciona mecanismos para crear y destruir los esquemas. La
instruccin de definicin de un esquema tiene el siguiente formato (simplificado):

6.3.2 Creacin de una tabla (CREATE TABLE): Habiendo creado la estructura de


la base de datos, podemos ahora crear las estructuras de las tablas para formar las
relaciones base que queremos incluir en la base de datos. Esto se hace por medio de
la instruccin CREATE TABLE, que tiene la siguiente sintaxis bsica:
CREATE TABLE NombreTabla
{(NombreColumnatipoData [NOT NULL] [UNIQUE]
[DEFAULT opcinPredeterminada] [CHECK (condicinBsqueda)] [, ... ])
[PRIMARY REY (IistaDeColumnas),]
{[UNIQUE (listaDeColumnas)] [, ... ]}
{[FOREIGN REY (IistaColumnasClaveExterna)
REFEREN CES NombreTablaPadre [(listaColumnasClaveCandidatas)]
[MATCH {PARTIAL I FULL}
[ON UPDATE accinReferencial]
[ON DELETE accinReferencial]] [, ... ]}
{[CHECK (condicinBsqueda)] [, ... ]})
La instruccin CREATE TABLE incorpora facilidades para definir restricciones de
integridad referencial y de otros tipos. Existen variaciones significativas en el soporte
proporcionado por los diferentes dialectos a esta versin de la instruccin. Sin
embargo, si dichas facilidades estn soportadas, deben emplearse. La instruccin
CREATE TABLE crea una tabla denominada NombreTabla y que est compuesta de
una o ms columnas del tipoDato especificado. El conjunto de tipos de datos
permitidos se describe en la Seccin
6.1.2. La clusula opcional DEFAULT puede especificarse para proporcionar un
valor predeterminado para cada columna concreta. SQL utilizar este valor
predeterminado siempre que se omita en una instruccin
INSERT el valor correspondiente a una columna. Entre otros valores, la opcin
Predeterminada incluye literales. Las clusulas NOT NULL, UNIQUE YCHECK ya han
sido explicadas en la seccin anterior. Las clusulas restantes se denominan
restricciones de tabla y puede precederse opcionalmente por la clusula:
CONSTRAINT Nombre ieRestriccin que permite eliminar la restriccin haciendo
referencia a su nombre en la instruccin ALTER TABLE
6.3.5 Creacin de un ndice (CREATE INDEX): Un ndice es una estructura que
permite acelerar el acceso a las filas de una tabla, basndose en los valores de una o
ms columnas. La presencia de un ndice puede mejorar significativamente la
velocidad de una consulta. Sin embargo, puesto que los ndices pueden ser
actualizados por el sistema cada vez que se actualizan las tablas subyacentes, eso
impone al sistema una carga de trabajo adicional. Los ndices se crean normalmente
para satisfacer criterios de bsqueda concretos despus de que la tabla haya estado
en uso durante un cierto tiempo y su tamao haya aumentado. La creacin de ndices
no es parte del estndar SQL. Sin embargo, la mayora de los dialectos soportan al
menos las siguientes capacidades:
CREATE [UNIQUE] INDEX Nombrelndice
ON NombreTabla (NombreColumna [ASC IDESe] [, ... ])

Las columnas especificadas constituyen la clave del ndice y deben enumerarse


comenzando por la parte principal de la clave y continuando con las partes menos
significativas. Los ndices slo pueden crearse sobre
tablas base, y no sobre vistas. Si se utiliza la clusula UNIQUE, el SGBD impondr la
unicidad de la columna combinacin de columnas utilizadas para la indexacin. Evidentemente, esto es
obligatorio para la clave
principal y posiblemente tambin para otras columnas (por ejemplo, para las claves
alternativas). Aunque pueden crearse ndices en cualquier momento, puede presentarse un problema si se
intenta crear un ndice unvoco sobre una tabla que ya tenga registros incorporados, porque puede que los valores
almacenados en las
columnas utilizadas como ndice ya contengan duplicados. Por tanto, resulta
conveniente crear los ndices unvocos, al menos para las columnas de clave principal, cuando se crea la tabla base y
el SGBD no impone automticamente la unicidad de clave principal.
Para las tablas Staf y PropertyForRent, puede resultar conveniente crear al menos los
siguientes ndices:
CREATE UNIQUE INDEX StafNolnd ON Staf (stafNo);
CREATE UNIQUE INDEX PropertyNolnd ON PropertyForRent (propertyNo);
Para cada columna, podemos especificar si el orden debe ser ascendente (ASe) o
descendente (DESe).
Siendo ASC la opcin predeterminada. Por ejemplo, si creamos un ndice sobre la
tabla PropertyForRent
mediante la instruccin:
CREATE INDEX Rentlnd ON PropertyForRent (city, rent);
entonces se crear un ndice denominado Rentlnd. Las entradas del ndice estarn en
orden alfabtico segn el
contenido de la columna city y, dentro de cada valor de city, por orden de los valores
de la columna rent.
Eliminacin de un ndice (DROP INDEX)
Si creamos un ndice para una tabla base y posteriormente decidimos que ya no es
necesario, podemos utilizar la instruccin DROP INDEX para eliminar el ndice de la base de datos. DROP
INDEX tiene el formato:
DROP INDEX Nombrendice

La siguiente instruccin permitir eliminar el ndice creado en el ejemplo anterior:


DROP INDEX Rentlnd;
6.4 Vistas: Vista El resultado dinmico de una o ms operaciones relacionales que
operan sobre las relaciones base para producir otra relacin. Una vista es una relacin
virtual que no tiene por qu existir necesariamente en la base de datos, sino que
puede producirse cuando se solicite por parte de un usuario concreto, generndosela
en el momento de la solicitud. Para el usuario de base de datos, las vistas semejan
una tabla real, con un conjunto de columnas nominadas y una serie de filas de datos.
Sin embargo, a diferencia de una tabla base, las vistas no tienen por qu existir
necesariamente en la base de datos en forma de conjuntos de valores de datos
almacenados.
6.4.1 Creacin de una vista (CREATE VIEW) El formato de una instruccin
CREATE VIEW es:
CREATE VIEW view_name
AS select_stmt
Las vistas se definen especificando una instruccin SELECT de SQL. Puede asignarse
opcionalmente un nombre a cada columna de la vista. Si se especifica una vista de
nombres de columna, debe tener el mismo nmero de elementos que el nmero de
columnas generadas por la subseleccin
6.3.4 Eliminacin de una tabla (DROP TABLE): A lo largo del tiempo, la
estructura de las bases de datos cambia; pueden crearse nuevas tablas y algunas
otras dejarn de ser necesarias. Podemos eliminar una tabla redundante de la base
de datos utilizando la instruccin DROP TABLE, que tiene el formato:
DROP TABLE table_name
Por ejemplo, para eliminar la tabla Alumnos: DROP TABLE Alumnos
6.3.6 Eliminacin de un ndice (DROP INDEX): Si creamos un ndice para una
tabla base y posteriormente decidimos que ya no es necesario, podemos utilizar la
instruccin DROP INDEX para eliminar el ndice de la base de datos. DROP INDEX
tiene el formato: DROP INDEX index_name
6.4.2 Eliminacin de una vista (DROP VIEW): Las vistas se eliminan de la base
de datos mediante la instruccin DROP VIEW: Formato: DROP VIEW view_name;

You might also like