Estructuras de Oracle

En este cap�tulo 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 c�mo 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. Adem�s, 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 creaci�n de usuarios, tablas, tablespaces, datafiles, etc.

La funci�n b�sica de una base de datos es la de almacenar informaci�n. Esta informaci�n se almacena en unas unidades l�gicas 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 relaci�n o que definen una idea del mundo real. Por ejemplo, podemos crear una tabla para almacenar la informaci�n de los empleados de una empresa. A esta tabla la podemos llamar empleados y, por cada empleado podemos querer guardar informaci�n de su edad, sus a�os de antig�edad, 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� informaci�n y de qu� tipo vamos a guardar en ella, siendo en nuestro caso la edad que ser� un n�mero, la antig�edad que ser� tambi�n un n�mero, su nombre que ser� un dato car�cter y su apellido que ser�n tambi�n caracteres.

Una sintaxis b�sica para crear esta tabla puede ser la siguiente:

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

�C�mo se almacena la informaci�n en una tabla?.

Cuando creamos una tabla, �sta se crea vac�a, es decir, no contiene datos. Para crear los datos se deben ir ejecutanto sentencias de manipulaci�n de datos. La instrucci�n b�sica 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 b�sicas m�s que se pueden realizar sobre las tablas. La sentencia UPDATE se utiliza para modificar los valores de alg�n registro o fila ya existente, por ejemplo, si hemos insertado en la tabla de empleados a un empleado el a�o pasado, este a�o tendremos que aumentarle en uno su edad por lo que habr� que hacer una modificaci�n 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 definici�n de la tabla que hemos creados, podremos hacer preguntas como �qu� nombre tiene el empleado de mayor edad?, �cual es la antig�edad 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 tambi�n el departamento de la empresa al que pertenecen. Tal y como hemos creado la tabla, no hemos recogido esta informaci�n. Por lo tanto, hay que modificar su estructura para que podamos a�adir este dato a las filas que ya existen, a los empleados que ya tenemos y para que a los pr�ximos empleados que insertemos les podamos dar directamente ya su n�mero de departamento.

En estos momentos nuestra tabla tiene cuatro campos o atributos, que son la edad, la antig�edad, el nombre y el apellido. Ahora, vamos a a�adir un nuevo campo para que podamos almacenar tambi�n el n�mero del departamento de cada empleado.

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

Con esta sentencia hemos creado por cada registro que exist�a en nuestra tabla, es decir, por cada empleado que hab�amos metido en nuestra tabla, un espacio vac�o con el nombre de "departamento" para que pongamos en �l su n�mero de departamento. Insistimos, el espacio creado est� vac�o.

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

Drop table empleados; 

.�Usuarios

La unidad b�sica de almacenamiento de una base de datos Oracle es la Tabla, sin embargo, para tener una mejor estructuraci�n de la informaci�n dentro de la base de datos Oracle, las tablas se agrupan a su vez dentro de los Usuarios, llamados tambi�n Esquemas. Por lo tanto, un usuario puede tener cero o muchas tablas y se dice que es el propietario de dichas tablas. Adem�s, 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 autom�ticamente?. Para poder gestionar la base de datos reci�n creada, el sistema Oracle necesita tener informaci�n 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 informaci�n. 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 m�s importante para que funcione correctamente la base de datos. Si por alg�n error se borraran tablas de alguno de estos usuarios especiales, se podr�a corromper toda la base de datos.

Lo normal en los proyectos inform�ticos es que, una vez que se crea una base de datos Oracle vac�a, 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 art�culos 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 contrase�a, un tablespace por defecto en el que se crear�n todas las tablas de dicho usuario y un tablespace temporal en el que se ejecutar�n las select que necesitan de ordenaciones. Estos conceptos se ir�n aclarando en los siguientes cap�tulos. La sentencia podr�a 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 a�adir la coletilla "cascade" a la sentencia.

Drop user nombre_de_usuario; 

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
SIGUIENTE ARTÍCULO