Está en la página 1de 5

Lenguaje de definicin de datos El LDD (Data Definition Language) es la parte del SQL que ms vara de un sistema a otro ya que

esa rea tiene que ver con cmo se organizan internamente los datos y eso, cada sistema lo hace de una manera u otra. Es el que se encarga de la modificacin de la estructura de los objetos de la base de datos. Existen cuatro operaciones bsicas: CREATE, ALTER, DROP y TRUNCATE. El LDD de SQL permite la especificacin no slo de un conjunto de relaciones, sino tambin de alguna informacin relativa a esas relaciones, incluyendo: El esquema de cada relacin. El dominio de valores asociado a cada atributo. Las restricciones de integridad. El conjunto de ndices que se deben mantener por cada relacin. Informacin de seguridad y autorizacin para cada relacin. La estructura de almacenamiento fsico de cada relacin en disco.

Tipos de dominios en SQL La norma SQL soporta un conjunto de tipos de dominios predefinidos, que incluye los siguientes: char(n): Cadenas de caracteres de tamao fijo, con una longitud n especificada por el usuario de hasta un mximo de 255. Tambin se puede utilizar la palabra completa character. varchar(n): Es una cadena de caracteres de longitud variable, con una longitud n especificada por el usuario de hasta un mximo de 2000 caracteres. Tambin se puede utilizar la forma completa character varying. int: Es un entero. Tambin se puede utilizar la palabra completa integer. smallint: Es un entero pequeo (Un subconjunto del dominio de los enteros). numeric(p,d): Es un nmero en coma flotante, cuya precisin la especifica el usuario. El nmero est formado por p dgitos y de esos p dgitos d pertenecen a la parte decimal. real, double precision: Son respectivamente nmeros en coma flotante y nmeros en coma flotante de doble precisin, con precisin dependiente de la mquina. float(n): Es un nmero en coma flotante, cuya precisin es de al menos n dgitos.

date: Es una fecha del calendario, que contiene un ao (de cuatro dgitos), un mes y un da del mes. time: Es la hora del da, expresada en horas, minutos y segundos. timestamp: Es una combinacin de date y time. Los valores de fecha y hora se pueden especificar como: date 2009-05-11 time 09:30:00 timestamp: 2009-05-11 09:35:00 raw(Longitud): Representa valores binarios de longitud mxima de 255 bytes. Long Raw: Igual que el tipo anterior con la diferencia que el tamao mximo es de 2 gigabytes Rowid: Tipo de dato binario que representa la direccin de una tupla de una tabla.
http://kesquivel.files.word press.com/2011/03/clase _no-6_ldd.pdf

La primera fase de cualquier base de datos comienza siempre con sentencias DDL, ya que antes de poder almacenar informacin debemos definir los objetos bsicos donde agrupar la informacin. Los objetos bsicos con que trabaja SQL son las tablas. Una tabla es un conjunto de celdas agrupadas en filas y columnas donde se almacenan elementos de informacin. Antes de llevar a cabo la creacin de una tabla conviene planificar:

nombre de la tabla, nombre de cada columna, tipo y tamao de los datos almacenados en cada columna, informacin adicional, restricciones, etc.

Hay que tener en cuenta tambin ciertas restricciones en la formacin de los nombres de las tablas: longitud mxima de 30 caracteres, no puede haber nombres de tabla duplicados, deben comenzar con un carcter alfabtico, permitir caracteres alfanumricos y el guin bajo '_', y Oracle no distingue entre maysculas y minsculas. La sintaxis del comando que permite crear un tabla es la siguiente: CREATE TABLE [esquema.]tabla ({columna tipoColumna [NOT NULL],}+, {CONSTRAINT nombreRestriccin {UNIQUE ([column,]+)| DEFAULT expresion| CHECK (condicion)| PRIMARY KEY ([column,]+)| FOREIGN KEY (column) REFERENCES tabla(columna)},}*)
Del examen de la sintaxis de la sentencia Create Table se pueden concluir que necesitamos conocer los distintos tipos de columna y las distintas restricciones que se pueden imponer al contenido de las columnas.

Las restricciones de los datos se imponen para asegurarnos que los datos cumplen con una serie de condiciones predefinidas para cada tabla. Estas restricciones ayudan a conseguir la integridad de referencia: todas las referencias dentro de una BD son vlidas y todas las restricciones se han cumplido. Las restricciones se van a definir acompaadas por un nombre, lo que permitir activarlas o desactivarlas segn sea el caso; o tambin mezcladas en la definiciones de las columnas de la tabla. A continuacin vamos a describir cada una de las restricciones mencionadas.
NOT NULL

Establece la obligatoriedad de que esta columna tenga un valor no nulo. Se debe especificar junto a la columna a la que afecta. Los valores nulos no ocupan espacio, y son distintos a 0 y al espacio en blanco. Hay que tener cuidado con los valores nulos en las operaciones, ya que 1 * NULL es igual a NULL.
UNIQUE

Evita valores repetidos en una columna, admitiendo valores nulos. Oracle crea un ndice automticamente cuando se habilita esta restriccin y lo borra al deshabilitarse.
DEFAULT

Establece un valor por defecto para esa columna, si no se le asigna ninguno.


CHECK

Comprueba que se cumpla una condicin determinada al rellenar esa columna. Esta condicin slo debe estar construida con columnas de esta misma tabla.
PRIMARY KEY

Establece el conjunto de columnas que forman la clave primaria de esa tabla. Se comporta como nica y obligatoria sin necesidad de explicitarlo. Slo puede existir una clave primaria por tabla. Puede ser referenciada como clave ajena por otras tablas. Crea un ndice automticamente cuando se habilita o se crea esta restriccin. En Oracle, los ndices son construidos sobre rboles B+.
FOREIGN KEY

Establece que el contenido de esta columna ser uno de los valores contenidos en una columna de otra tabla maestra. Esta columna marcada como clave ajena puede ser NULL. No hay lmite en el nmero de claves ajenas. La clave ajena puede ser otra columna de la misma tabla. Se puede forzar que cuando una fila de la tabla maestra sea borrada, todas las filas de la tabla detalle cuya clave ajena coincida con la clave borrada se borren tambin. Esto se consigue aadiendo la coletilla ON DELETE CASCADE en la definicin de la clave ajena. Despus de crear una tabla, a veces nos encontramos con que se necesita aadir una columna adicional o modificar la definicin de una columna existente. Esta operacin se puede realizar con el comando ALTER TABLE. ALTER TABLE tabla {ADD | MODIFY} ({columna tipoColumna [NOT NULL],}+);

Hay que tener en cuenta varios puntos:


No es posible disminuir el tamao de un columna. En las modificaciones, los tipos anterior y nuevo deben ser compatibles, o la tabla debe estar vaca. La opcin ADD ... NOT NULL slo ser posible si la tabla est vaca. La opcin MODIFY ... NOT NULL slo podr realizarse cuando la tabla no contenga ninguna fila con valor nulo en la columna en cuestin.

Por ejemplo la sentencia siguiente aade la fecha de nacimiento a la tabla de empleados. SQL> alter table emp add (fecha_nac date not null); Tambin se puede querer modificar una tabla aadiendo o eliminando restricciones. En este caso el comando a utilizar ser ALTER TABLE tabla {ADD | DROP} CONSTRAINT restriccin; Eliminacin de una tabla. Cuando una tabla ya no es til y no vamos a volver a necesitarla debe ser borrada. Esta operacin se puede realizar con el comando DROP TABLE. DROP TABLE tabla [CASCADE CONSTRAINTS]; Se borra la tabla de la base de datos, borrando toda la informacin contenida en la tabla, es decir, todas las filas. Tambin se borrar toda la informacin que sobre la tabla existiera en el diccionario. Puede que si alguna columna de esta tabla a borrar sirva como clave ajena de alguna tabla detalle, impida la eliminacin de la tabla, ya que existe una restriccin que requiere de la existencia de la tabla maestra. Esto se puede areglar colocando la coletilla CASCADE CONSTRAINTS. Esto produce que las restricciones de la tabla detalle se borren antes de borrar la tabla maestra. La siguiente sentencia produce la eliminacin de la tabla de departamentos. SQL> drop table dep cascade constraints; Table dropped. Restricciones semnticas: Son definidas por el usuario Son facilidades que el modelo ofrece a los diseadores para que puedan reflejar en el esquema, lo ms fielmente posible, la semntica del mundo real. Los tipos de restricciones semnticas permitidos en el MR (Incorporados a SQL 92) son:
http://www.infor.uva.es /~jvegas/cursos/bd/sqlpl us/sqlplus.html

-Clave Primaria (PRIMARY KEY) -Unicidad (UNIQUE) -Obligatoriedad (NOT NULL) -Integridad Referencial (FOREIGN KEY) -Verificacin (CHECK) -Asercin (CREATE ASSERTION) -Disparador (TRIGGER), incluido en SQL:1999 Clave Primaria (PRIMARY KEY): -Permite declarar un atributo o un conjunto de atributos como clave primaria de una relacin => sus valores no se podrn repetir ni se admitirn los nulos. -Ni el SQL92 ni los SGBDs relacionales obligan a la declaracin de una clave primaria para cada tabla (el modelo terico s la impone), aunque permiten la definicin de la misma. -Se debe distinguir entre la restriccin inherente de obligatoriedad de la clave primaria y la restriccin semntica que le permite al usuario indicar qu atributos forman parte de la clave primaria. Unicidad (UNIQUE): -Los valores de un conjunto de atributos (uno o ms) no pueden repetirse en una relacin. Permite la definicin de claves alternativas. Obligatoriedad (NOT NULL): -El conjunto de atributos no admite valores nulos. Integridad Referencial (FOREING KEY): -Si una relacin R2 (relacin que referencia) tiene un descriptor (subconjunto de atributos) CA que referencia a una clave candidata CC de la relacin R1 (relacin referenciada), todo valor de dicho descriptor CA debe coincidir con un valor de CC o ser nulo.
http://personales.unican.es/zorrillm/ BasesDatos/02%20%20Modelos%20de%20datos%20ERUML-relacional.pdf

También podría gustarte