12.170 cursos gratis
8.769.741 alumnos
Facebook Twitter YouTube
Busca cursos gratis:

Introducción a Oracle

Autor: Roberto www.ForInfor.net
Curso:
9,57/10 (16 opiniones) |21247 alumnos|Fecha publicación: 01/02/2006
Envía un mensaje al autor

Capítulo 10:

 Enterprise Manager. Gestión de los objetos del esquema

Gestión de los objetos del esquema Objetos de base de datos

Los usuarios de la base de datos, se pueden clasificar en:

usuarios finales, que sólo acceden a la base de datos mediante una aplicación para consultar y modificar información

los desarrolladores, que suelen tener un número limitado de privilegios y roles para consultar objetos y crear objetos en su esquema.

los administradores, que pueden realizar cualquier operación sobre la base de datos

Cada usuario creado en la base de datos tiene su propio esquema, y en él pueden crearse objetos que se considerarán propiedad suya. Por lo tanto, el esquema es una agrupación lógica de tablas, vistas, índices, secuencias, ... que han sido creadas por un usuario.

Cuando los desarrolladores o usuarios finales necesiten nuevos privilegios u objetos que no pueden crear, recurrirán al administrador, y éste deberá realizar las correspondientes tareas de creación y concesión de privilegios para que los usuarios o desarrolladores puedan realizar su trabajo.

La forma básica de crear los objetos es utilizando el lenguaje SQL aunque existen multitud de herramientas con entornos gráficos con las que el usuario podrá simplificar esta tarea; de igual forma, el administrador puede utilizar el entorno gráfico del Enterprise Manager para crear los objetos y generándose de forma automática las sentencias SQL equivalentes.

En este capítulo se mostrarán las posibilidades de la herramienta para la creación y mantenimiento de los objetos más comunes que soporta una base de datos Oracle; aunque no se entrará en detalle en ellos ya que cae fuera del alcance del curso y se ve en detalle en el curso de El lenguaje SQL.

Desde la gestión del esquema, se permite administrar los objetos de los esquemas tales como tablas, índices, secuencias, funciones, procedimientos, paquetes, ...

Enterprise Manager. Gestión de los objetos del esquema



Enterprise Manager. Gestión de los objetos del esquema

Tablas

En el proceso de diseño de una base de datos relacional, se aplican un conjunto de técnicas que van encaminadas a obtener modelos entidad-relación que estén al menos en tercera forma normal.

La tarea de modelado de la base de datos suele ser realizada principalmente por los analistas funcionales, aunque siempre queda un pequeño porcentaje de refinamiento en el diseño que no se realiza hasta la fase de diseño técnico o desarrollo de los componentes.

La tabla es el objeto básico de la base de datos, donde se van a guardar los datos de los usuarios y el rendimiento de las aplicaciones depende en gran medida de cómo se hayan diseñado.

Sin entrar en conceptos de diseño, que sobrepasan el objetivo de este curso y que se tratan en otro curso, bastaría con pinchar en el botón "Crear" para que se fueran sucediendo los formularios para definir la tabla y sus columnas.

Enterprise Manager. Gestión de los objetos del esquema

Para aprender cómo crear una tabla es muy didáctico ver las propiedades de las existentes, como por ejemplo la tabla de empleados (EMP)

Enterprise Manager. Gestión de los objetos del esquema

Como se aprecia la tabla está creada en el esquema del usuario "Scott", y aunque el usuario conectado al Enterprise Manager sea SYS, puede crear la tabla en cualquier esquema existente. La tabla almacenará sus datos en el tablespace USERS, y su organización es "Estándar, organización en pilas". Durante la creación de una tabla se puede seleccionar si tiene ordenación por pilas o índices; si se selecciona como una pila, los datos se van almacenando desordenadamente en ella según se van insertando, y si se opta por índices se almacenan ordenadamente los campos que forman parte de la clave primaria de la tabla.

Enterprise Manager. Gestión de los objetos del esquema

En la sección de restricciones se muestra la clave primaria (PK_) y una clave externa (FK_), y pinchando en el enlace del índice, se pueden obtener información del mismo.

Enterprise Manager. Gestión de los objetos del esquema

Si se selecciona el botón de "Editar", se muestran sus propiedades en un formato similar al utilizado durante la creación de una nueva tabla

Enterprise Manager. Gestión de los objetos del esquema

Pinchando en el botón "Mostrar SQL" se puede visualizar la sentencia SQL que se va a ejecutar, como por ejemplo

Enterprise Manager. Gestión de los objetos del esquema

Como se ve se podría haber creado directamente la tabla desde el intérprete de comandos SQL*Plus mediante la sentencia que se muestra en el gráfico anterior.

Cuando se crea una tabla está vacía; es decir, no contiene datos.

Para crear y mantener los datos se deben ejecutar sentencias de manipulación de datos (Data Manipulation Language o DML), que son:

De inserción: La instrucción básica para crear un nuevo registro es INSERT y con ella lo que hacemos es crear un nuevo registro o tupla en la tabla de empleados.

De modificación: La sentencia UPDATE se utiliza para modificar los valores de algún registro o fila ya existente.

De borrado: Para borrar registros de una tabla se utiliza la sentencia DELETE.

Desde el Enterprise Manager no se pueden modificar ni borrar los datos de una tabla, pero se pueden consultar sin más que ejecutar la acción "Ver Datos" asociada a la misma.

Vistas

Las vistas son similares a las tablas, pero con la diferencia fundamental de que sus datos no están almacenados físicamente, si no que se recuperan y ordenan en tiempo de ejecución.

Una vista se crea por múltiples razones, que generalmente son ocultar la complejidad de la consulta de unión de tablas a los usuarios, tener columnas agrupadas, restringir automáticamente el acceso a los datos, ...

En una vista se puede mostrar información de una o varias tablas, junto con campos calculados.

Supongamos que queremos crear una vista que muestre el número y nombre de los empleados (Scott.emp) junto con el número y el nombre del departamento donde trabajan (Scott.dept). Desde el asistente se indica la consulta en lenguaje SQL con la que se va a crear la vista y los alias con que se van a nombrar las columnas resultantes.

Enterprise Manager. Gestión de los objetos del esquema

Seleccionando la acción "Ver Datos" se muestran los valores devueltos al consultar la vista.

Indices

Los índices tienen por finalidad permitir acelerar la recuperación de los datos de una consulta. Supongamos por ejemplo que una empresa tuviera varios departamentos en cada localidad, y siempre recupera sólo los departamentos de cada una de ellas. Quizás en base a los tiempos de respuesta se considerara necesario crear un índice en los campos localidad (LOC) y número de departamento (deptno).

Enterprise Manager. Gestión de los objetos del esquema

Observar que el orden de la columna sirve además para indicar cuáles de ellas forman parte del índice.

Enterprise Manager. Gestión de los objetos del esquema

Sinónimos

Un sinónimo es un sobrenombre que se aplica a los objetos para eliminar por ejemplo la necesidad de tener que referenciarlos teniendo en cuenta el esquema donde han sido creados.

Por defecto los objetos sólo pertenecen al esquema del usuario donde se crearon y han de ser referenciados como "NombreEsquema.NombreObjeto". Supongamos por ejemplo que queremos simplificar la referencia a la vista de "Empleados_Departamento" del usuario Scott, para que cualquier usuario la pueda referenciar como "EMP_DEPT".

Enterprise Manager. Gestión de los objetos del esquema

En este caso se ha creado un sinónimo público, es decir que va a poder referenciarse desde cualquier otro esquema. Aunque pueda ser referenciado por otros usuarios distintos de Scott, hay que recordar que para poder consultar la vista los usuarios han de tener los privilegios necesarios para ello

Enterprise Manager. Gestión de los objetos del esquema

Una vez concedidos los privilegios sobre el objeto al usuario SYSTEM, éste podrá realizar la siguiente consulta:

SELECT * FORM EMP_DEPT; Secuencias

Una secuencia es un objeto que permite generar números secuenciales sin repetición en un entorno de usuarios concurrentes.

Enterprise Manager. Gestión de los objetos del esquema

En este caso hemos creado la secuencia de nombre SECUENCIA que comienza con uno y cada vez que se recupera un nuevo valor (SECUENCIA.NEXTVAL) lo incrementa en 1; además hemos fijado un valor máximo y mínimo, y los crearemos en orden.



Para conocer el valor actual de la secuencia podremos hacer la siguiente consulta:

SELECT SECUENCIA.CURRVAL FROM DUAL; Programas

Oracle permite almacenar procedimientos en la base de datos, con lo que se una vez probado y verificado su funcionamiento, puede se utilizado por cualquier usuario autorizado.

El código almacenado puede ser codificado en PL/SQL o Java, aunque lo más habitual será utilizar PL/SQL.

Paquetes

Un paquete es una estructura de almacenamiento que contiene la descripción de tipos, variables, funciones y procedimientos públicos que se van a codificar en su cuerpo.

Los paquetes y en general todos los programas han de estar en estado "válido" para su correcta ejecución, pero efectos laterales al modificar otros objetos de la base de datos pueden quedar en estado "no válido" y no serán ejecutables.

En la siguiente imagen se muestra una consulta realizada para ver los paquetes válidos del usuario "SYSTEM" desde la cual se tiene acceso a la página de edición para compilar y corregir los posibles errores.

Enterprise Manager. Gestión de los objetos del esquema

Para ejecutar un procedimiento o función almacenado basta con indicar el nombre del esquema seguido del nombre del paquete y terminado por el nombre del procedimiento o función. Por ejemplo desde la línea del intérprete de comandos podríamos escribir

SQL>EXECUTE esquema.nombre_paquete.nombre_procedimiento; SQL>SELECT esquema.nombre_paquete.nombre_función FROM DUAL; Cuerpo del paquete

En el cuerpo del paquete se han de codificar las funciones y procedimientos públicos que han sido declarados en el paquete, y todas las funciones y procedimientos privados que sea necesario. Los procedimientos privados sólo podrán ser llamados desde las funciones o procedimientos del paquete, y nunca directamente.

Al crear un paquete por defecto se muestra la sintaxis de los procedimientos y funciones para facilitar su codificación.

Enterprise Manager. Gestión de los objetos del esquema

Al terminar la codificación y "Aceptar", el paquete puede haber quedado en estado "no válido"

Enterprise Manager. Gestión de los objetos del esquema

y entrando en él se puede ejecutar la acción "Compilar" para ver los errores que se producen. En este ejemplo, el error es haber codificado primero el cuerpo del paquete y faltar por lo tanto la especificación del mismo.

Oracle permite almacenar en la base de datos el código en un formato codificado conocido como "wrap" y que impide que otros usuarios pueden manipularlo o copiarlo. Para realizar esta operación se utiliza el comando MSDOS wrap.exe que se puede encontrar en el directorio <raíz de Oracle>/bin/wrap.exe

C:\Oracle\product\10.2.0\db_4\BIN>wrap iname=origen.sql oname=destino.sql

El código que está "wrapped" o "ajustado" no puede ser modificado desde el Enterprise Manager y aparece el mensaje "Source code could not be displayed, because it is wrapped" o "No se ha podido mostrar el código de origen porque está ajustado".

Enterprise Manager. Gestión de los objetos del esquema

Procedimientos y funciones

Los procedimientos y funciones pueden ser creados como unidades independientes de código, y se diferencian en que las funciones devuelven un valor.

Para ejecutar un procedimiento o función almacenado basta con indicar el nombre del esquema seguido del nombre del procedimiento o función. Por ejemplo desde la línea del intérprete de comandos podríamos escribir

SQL>EXECUTE esquema.nombre_procedimiento; SQL>SELECT esquema.nombre_función FROM DUAL;

Observar que mientras que el procedimiento se puede ejecutar directamente, la función ha de ser llamada desde una sentencia SELECT para tratar el dato devuelto.

Disparadores de base de datos

Un disparador al igual que los procedimiento y funciones, es una unidad de código almacenada en la base de datos con la particularidad de que está asociado a tablas, vistas u otros eventos y se ejecuta cada vez que se produce por ejemplo una inserción, modificación o borrado de datos.

Los disparadores suelen utilizarse para realizar tareas de verificación de los datos, tareas de auditoria, control de acceso, ...

La página de definición del disparador es similar a la del resto de programas, y en la pestaña de eventos se muestra un formulario contextual con el tipo de evento al que se asocia el disparador:

eventos de tabla

Enterprise Manager. Gestión de los objetos del esquema

eventos de vista

Enterprise Manager. Gestión de los objetos del esquema

eventos del esquema

Enterprise Manager. Gestión de los objetos del esquema

eventos de la Base de Datos

Enterprise Manager. Gestión de los objetos del esquema

El diccionario de datos

Si se crea la base de datos con el DBCA se crea automáticamente el diccionario de datos. El diccionario es un repositorio de datos que almacena información sobre todos los objetos contenidos en la base de datos, y que se actualiza con cada operación de definición de datos (DDL).

El diccionario de datos se crea en el esquema del usuario SYSTEM y ha de permanecer en él.

Si la base de datos se crea manualmente será necesario será necesario ejecutar estos guiones (scripts) con un usuario con privilegios de SYSDBA, generalmente SYS.

Guión

Descripción

catalog.sql

Crea el diccionario de datos y sinónimos públicos para sus vistas.

catproc.sql

Ejecuta todos los guiones necesarios para poder ejecutar PL/SQL

catclust.sql

Crea las vistas del diccionario de datos para el Oracle9i Real Application Clusters

Hemos ido viendo que hay mucha más información almacenada en el SGBDR que los datos de los usuarios, y que en ocasiones puede ser necesario consultarla.

Bastaría hacer una consulta desde SQL*Plus de las tablas y vistas del usuario SYS para ver el número de objetos de los que podemos obtener información

SQL> CONNECT SYS@SID AS SYSDBA; Introduzca la contraseña: ********** Conectado. SQL> SELECT COUNT(*) 2 FROM USER_TABLES; COUNT(*) ---------- 298 SQL> SELECT COUNT(*) 2 FROM USER_VIEWS; COUNT(*) ---------- 1820 SQL> SELECT COUNT(*) 2 FROM USER_OBJECTS; COUNT(*) ---------- 15045 SQL> SELECT COUNT(*) 2 FROM CATALOG; COUNT(*) ---------- 2041 SQL>

Es imposible guardar toda esta información en nuestra memoria, pero en un momento dado podemos recuperar algunas referencias válidas si utilizamos la siguiente consulta:

SQL> R 1 SELECT OBJECT_NAME 2 , OBJECT_TYPE 3 FROM ALL_OBJECTS 4 WHERE OBJECT_NAME LIKE UPPER('%&patrón_de_búsqueda%') 5* ORDER BY 2,1 Introduzca un valor para patrón_de_búsqueda: package antiguo 4: WHERE OBJECT_NAME LIKE UPPER('%&patrón_de_búsqueda%') nuevo 4: WHERE OBJECT_NAME LIKE UPPER('%package%') OBJECT_NAME OBJECT_TYPE ------------------------------ ------------------ I_ACTPACKAGE INDEX CIOPACKAGE PACKAGE DBMS_REPCAT_INTERNAL_PACKAGE PACKAGE IFR_PACKAGE PACKAGE CIOPACKAGE PACKAGE BODY DBMS_REPCAT_INTERNAL_PACKAGE PACKAGE BODY IFR_PACKAGE PACKAGE BODY DBMS_REPCAT_INTERNAL_PACKAGE SYNONYM CI_PACKAGES VIEW CI_ROOT_PACKAGES VIEW 10 filas seleccionadas. SQL>

Nuestras novedades en tu e-mail

Escribe tu e-mail:



MailxMail tratará tus datos para realizar acciones promocionales (vía email y/o teléfono).
En la política de privacidad conocerás tu derechos y gestionarás la baja.

Cursos similares a Introducción a Oracle



  • Vídeo
  • Alumnos
  • Valoración
  • Cursos
1. Procesamiento de datos con Oracle
Curso para aprender desde qué son los datos hasta cómo se transforman en... [24/02/06]
12.886  
2. Introducción al JavaScript
Javascript, uno de los lenguajes más empleados en Internet, le permitirá construir... [08/04/03]
51.119  
3. Introducción al Lenguaje C
El lenguaje C apareció en 1972, en el diseño del sistema operativo UNIX. Este... [10/05/04]
73.701  

¿Qué es mailxmail.com?|ISSN: 1699-4914|Ayuda
Publicidad|Condiciones legales de mailxmail