¿Te gustaría Java desde cero?
Tenemos los diplomados que necesitas.¡Haz clic aquí!


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; 

Te esperamos en los siguientes artículos en donde hablaremos mas acerca de estos temas, los cuales hoy en día son de vital importancia en el mundo de la tecnología.

¿Te gustaría Java desde cero?
Tenemos los diplomados que necesitas.¡Haz clic aquí!
About Author

NGuerrero

0 0 votos
Article Rating
Suscribir
Notificar de
guest
0 Comments
Comentarios.
Ver todos los comentarios
0
¿Te gusta este articulo? por favor comentax