Estructuras de Oracle

En este captulo se van a tratar dos temas fundamentales en toda base de datos Oracle: los usuarios o esquemas y las tablas. Se explicar todo muy por encima ya que el objetivo de este manual no es mostrar cmo consultar o crear datos en una base de datos Oracle, sino conocer los elementos que soportan una base de datos Oracle y que ser lo que se explica con profundidad en los siguientes temas. Adems, se parte de la idea de que se conoce SQL y la herramienta SQLPLUS, desde la cual se ejecutan todas las sentencias que se explican en el manual para la creacin de usuarios, tablas, tablespaces, datafiles, etc.

La funcin bsica de una base de datos es la de almacenar informacin. Esta informacin se almacena en unas unidades lgicas llamadas tablas.

La forma en que se almacenan los datos en las tablas est estructurada de manera que resulte muy sencillo su acceso y en cada tabla guardaremos los datos que tienen relacin o que definen una idea del mundo real. Por ejemplo, podemos crear una tabla para almacenar la informacin de los empleados de una empresa. A esta tabla la podemos llamar empleados y, por cada empleado podemos querer guardar informacin de su edad, sus aos de antigedad, su nombre y sus apellidos.

Cuando creamos una tabla de Oracle, hay que indicar su nombre, que en nuestro caso va a ser empleados, y qu informacin y de qu tipo vamos a guardar en ella, siendo en nuestro caso la edad que ser un nmero, la antigedad que ser tambin un nmero, su nombre que ser un dato carcter y su apellido que sern tambin caracteres.

Una sintaxis bsica para crear esta tabla puede ser la siguiente:

Create table empeados (edad number, antigedad number, nombre varchar2(30),
apellido varchar2(30));

Cmo se almacena la informacin en una tabla?.

Cuando creamos una tabla, sta se crea vaca, es decir, no contiene datos. Para crear los datos se deben ir ejecutanto sentencias de manipulacin de datos. La instruccin bsica para crear un nuevo registro es la INSERT y con ella lo que hacemos es crear un nuevo empleado con sus datos en la tabla de empleados. Existen 3 operaciones bsicas ms que se pueden realizar sobre las tablas. La sentencia UPDATE se utiliza para modificar los valores de algn registro o fila ya existente, por ejemplo, si hemos insertado en la tabla de empleados a un empleado el ao pasado, este ao tendremos que aumentarle en uno su edad por lo que habr que hacer una modificacin a ese empleado, a esa fila.

Para borrar registos de una tabla porque, por ejemplo, el empleado se ha cambiado de empresa, se utiliza la sentencia DELETE.

Y finalmente, para consultar datos de nuestra tabla de empleados, la sentencia utilizada es la SELECT. Con ella podremos hacer todas las preguntas que se nos ocurran a nuestra base de datos sobre los empleados que tenemos. Con la definicin de la tabla que hemos creados, podremos hacer preguntas como qu nombre tiene el empleado de mayor edad?, cual es la antigedad del empleado de nombre 'X'?, etc.

Ahora que tenemos una idea sobre qu es una tabla, vamos a ver algunas operaciones que nos permiten modificar su estructura, que no es lo mismo que modificar sus datos.

Por ejemplo, imaginemos que nos damos cuenta de que queremos guardar de nuestros empleados tambin el departamento de la empresa al que pertenecen. Tal y como hemos creado la tabla, no hemos recogido esta informacin. Por lo tanto, hay que modificar su estructura para que podamos aadir este dato a las filas que ya existen, a los empleados que ya tenemos y para que a los prximos empleados que insertemos les podamos dar directamente ya su nmero de departamento.

En estos momentos nuestra tabla tiene cuatro campos o atributos, que son la edad, la antigedad, el nombre y el apellido. Ahora, vamos a aadir un nuevo campo para que podamos almacenar tambin el nmero del departamento de cada empleado.

Alter table empleados (add departamento number(8)); 

Con esta sentencia hemos creado por cada registro que exista en nuestra tabla, es decir, por cada empleado que habamos metido en nuestra tabla, un espacio vaco con el nombre de "departamento" para que pongamos en l su nmero de departamento. Insistimos, el espacio creado est vaco.

Tambin podemos borrar la definicin de una tabla junto con todos sus datos, que no es lo mismo que borrar simplemente todos sus datos. Para borrar esta definicin, podemos usar la sentencia drop.

Drop table empleados; 

.Usuarios

La unidad bsica de almacenamiento de una base de datos Oracle es la Tabla, sin embargo, para tener una mejor estructuracin de la informacin dentro de la base de datos Oracle, las tablas se agrupan a su vez dentro de los Usuarios, llamados tambin Esquemas. Por lo tanto, un usuario puede tener cero o muchas tablas y se dice que es el propietario de dichas tablas. Adems, una tabla pertenece a un solo usuario o esquema.

Cada vez que se crea una base de datos nueva, hay una serie de elementos que no pueden faltar en ella y siempre se crean. Los dos principales elementos que se crean son el usuario SYS y el usuario SYSTEM. Toda base de datos Oracle tiene siempre estos dos usuarios.

Por qu se crean estos dos usuarios automticamente?. Para poder gestionar la base de datos recin creada, el sistema Oracle necesita tener informacin sobre las tablas que existen en la base de datos, los usuarios que existen, los ndices que se van creando y borrando, la cantidad de datos que hay en cada tabla, etc. Por lo tanto, necesita unas tablas en las que ir almacenando toda esta informacin. A este conjunto de tablas se le llama diccionario de la base de datos y, como hemos dicho, toda tabla de una base de datos Oracle debe pertenercer a un usuario, por eso se crean siempre estos dos usuarios especiales, SYS y SYSTEM que son los propietarios de las tablas del diccionario de la base de datos y, por lo tanto, son lo ms importante para que funcione correctamente la base de datos. Si por algn error se borraran tablas de alguno de estos usuarios especiales, se podra corromper toda la base de datos.

Lo normal en los proyectos informticos es que, una vez que se crea una base de datos Oracle vaca, es decir, solamente existen estos dos usuarios con sus tablas, se crean nuevos usuarios y en cada uno de esos usuarios se van creando las tablas necesarias para cada proyecto.

As, si en nuestra base de datos tenemos que crear dos aplicaciones totalmente distintas, una para llevar un registro de los empleados de nuestra empresa y con sus sueldos y primas, y otra con los artculos que vendemos, con los clientes que nos compran y con los proveedores que nos reaprovisionan, podemos crear dos usuarios distintos, a uno lo podemos llamar "contabilidad" y al otro "ventas", y dentro de cada uno ir creando las tablas que vamos necesitando para cada proyecto.

Para crear un nuevo usuario, se le debe indicar un nombre, un password o contrasea, un tablespace por defecto en el que se crearn todas las tablas de dicho usuario y un tablespace temporal en el que se ejecutarn las select que necesitan de ordenaciones. Estos conceptos se irn aclarando en los siguientes captulos. La sentencia podra ser como la que sigue:

Create user nombre_de_usuario  identified by pasword_de_usuario default tablespace
nombre_tablespace_default temporary tablespace nombre_tablespace_temporal;

Si por cualquier motivo queremos borrar un usuario deberemos usar el comando drop, pero si ya hemos creado tablas en este usuario, Oracle no nos dejar, nos indicar este hecho y, si queremos borrar el usuario y todas sus tablas debemos aadir la coletilla "cascade" a la sentencia.

Drop user nombre_de_usuario; 

COMPARTE ESTE ARTÍCULO

ENVIAR A UN AMIGO
COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN GOOGLE +
SIGUIENTE ARTÍCULO

¡SÉ EL PRIMERO EN COMENTAR!
Conéctate o Regístrate para dejar tu comentario.