El DDL es la parte del lenguaje SQL que realiza la función de definición de datos del SGBD. Fundamentalmente, se encarga de la creación, modificación y eliminación de los objetos de la base de datos (es decir de los metadatos). Por supuesto es el encargado de la creación de las tablas.
Los elementos, llamados objetos, de la base de datos: tablas, vistas, columnas, índices,… se almacenan en el diccionario de datos. Por otro lado, muchos Sistemas Gestores de Bases de Datos aportan elementos para organizar estos objetos (como catálogos y esquemas).
Los objetos son manipulados y creados por los usuarios. En principio solo los administradores y los usuarios propietarios pueden acceder a cada objeto, salvo que se modifiquen los privilegios del objeto para permitir el acceso a otros usuarios.
Hay que tener en cuenta que ninguna instrucción DDL puede ser anulada por una instrucción ROLLBACK (la instrucción ROLLBACK está relacionada con el uso de transacciones, que se comentarán más adelante) por lo que hay que tener mucha precaución a la hora de utilizarlas. Es decir, las instrucciones DDL generan acciones que no se pueden deshacer. Salvo que dispongamos de alguna copia de seguridad o de otros elementos de recuperación.
Creación de bases de datos
Esta es una tarea administrativa que se comentará más profundamente en otros temas. Por ahora solo se comenta de forma simple. Crear la base de datos implica indicar los archivos y ubicaciones que se utilizarán para la misma, además de otras indicaciones técnicas y administrativas que no se comentarán en este tema.
Lógicamente solo es posible crear una base de datos si se tienen privilegios de DBA (DataBase Administrator).
El comando SQL de creación de una base de datos es CREATE DATABASE. Este comando crea una base de datos con el nombre que se indique. Ejemplo:
CREATE DATABASE prueba;
En el caso de Oracle necesitamos indicar muchos más parámetros.
Ejemplo:
CREATE DATABASE prueba LOGFILE prueba.log MAXLOGFILES 25 MAXINSTANCES 10 ARCHIVELOG CHARACTER SET WIN1214 NATIONAL CHARACTER SET AL32UTF8 DATAFILE prueba1.dbf AUTOEXTEND ON MAXSIZE 500MB;
Creación de tablas
Nombre de las tablas
Deben cumplir las siguientes reglas (se comentan las reglas de Oracle, en otros SGBD podrían cambiar):
- Deben comenzar con una letra
- No deben tener más de 30 caracteres
- Solo se permiten utilizar letras del alfabeto (inglés), números o el signo de subrayado (también los signos $ y #, pero esos se utilizan de manera especial, por lo que no son recomendados)
- No puede haber dos tablas con el mismo nombre dentro del mismo esquema (pueden coincidir los nombres si están en distintos esquemas)
- No puede coincidir con el nombre de una palabra reservada SQL (por ejemplo no se puede llamar SELECT a una tabla)
- En el caso de que el nombre tenga espacios en blanco o caracteres nacionales (permitido solo en algunas bases de datos), entonces se suele entrecomillar con comillas dobles. En el estándar SQL 99 (respetado por Oracle) se pueden utilizar comillas dobles al poner el nombre de la tabla a fin de hacerla sensible a las mayúsculas (se diferenciará entre “FACTURAS” y “Facturas”)
Nota: Estas son también las propiedades que debe cumplir cualquier nombre de objeto en una base de datos (nombres de vistas, columnas, restricciones,…) |