instalaciÓn y manual de oracle

31
INSTALACIÓN DE ORACLE Manual explicado paso a paso (con capturas de pantalla) cómo instalar Oracle 9i en Windows (cualquier versión). Incluyendo soluciones de algunos errores en el arranque de Oracle. 1. INSTALACIÓN DE ORACLE 9i EN WINDOWS • Introduciremos el CD 1 de la instalación, los tres CDs que componen el programa de instalación se pueden descargar gratuitamente (siempre que no sea con fines lucrativos) desde la propia web de oracle: www.oracle.com • Tras seleccionar la ruta de los ficheros de oracle pulsaremos en Siguiente . • A continuación seleccionaremos el tipo de instalación que deseemos:

Upload: oracle5

Post on 15-Jun-2015

11.744 views

Category:

Documents


1 download

DESCRIPTION

DBMS ORACLE

TRANSCRIPT

Page 1: INSTALACIÓN Y MANUAL DE ORACLE

INSTALACIÓN DE ORACLE

Manual explicado paso a paso (con capturas de pantalla) cómo instalar Oracle 9i en Windows (cualquier versión). Incluyendo soluciones de algunos errores en el arranque de Oracle.

1. INSTALACIÓN DE ORACLE 9i EN WINDOWS

• Introduciremos el CD 1 de la instalación, los tres CDs que componen el programa de instalación se pueden descargar gratuitamente (siempre que no sea con fines lucrativos) desde la propia web de oracle: www.oracle.com

• Tras seleccionar la ruta de los ficheros de oracle pulsaremos en Siguiente. • A continuación seleccionaremos el tipo de instalación que deseemos:

Page 2: INSTALACIÓN Y MANUAL DE ORACLE

En nuestro caso, puesto que crearemos la base de datos en el servidor donde estamos realizando la instalación seleccionaremos Oracle9i Database 9.2.0.1.0. Si ya disponemos de un servidor de Oracle con las correspondientes bases de datos a las que queramos acceder será suficiente con seleccionar la

opción Oracle9i Client 9 .2.0.1.0, en este caso la instalación es bastante más simple, pues sólo es necesario especificar la IP o el nombre de red del servidor de Oracle así como el nombre (sid) de la base de datos a la que queramos acceder.

• Seleccionaremos el tipo de instalación que queramos realizar:

Page 3: INSTALACIÓN Y MANUAL DE ORACLE

En nuestro caso, seleccionaremos Enterprise Edition , si queremos realizar una instalación más avanzada

(especificando manualmente las opciones a instalar) seleccionaremos Personalizado , en este caso aparecería una ventana como esta:

• Seleccionaremos la siguiente opción dependiendo del uso que le quer amos dar a nuestra base de datos, normalmente es para Uso General . Si no queremos crear una base de datos en el proceso de instalación (se puede crear en otro momento) seleccionaremos Sólo software:

• Seleccionaremos el puerto para Oracle MTS Service, normalmente se suele seleccionar el puerto por defecto 2030. Este parámetro es muy importante pues, si decidimos cambiar el puerto por defecto,

cuando queramos que un cliente se conecte al servidor deberemos especificar el puerto que hayamos seleccionado en este punto de la instalación:

Page 4: INSTALACIÓN Y MANUAL DE ORACLE

• Especificaremos el nombre de la base de datos (con un máximo de 8 caracteres):

Nota: el SID es el identificador interno que utilizará Oracle para referenciar a nuestra base de datos, se puede elegir uno diferente al del nombre de la Base de Datos, aunque se suele utilizar el mismo.

• En este punto de la instalación seleccionaremos la ubicación de los archivos de la base de datos que la instalación creará. Oracle recomienda que la ubicación de los archivos de la base de datos esté en un disco físico distinto al de los archivos de la instalación (software de Oracle). También recomienda que los archivos de Redo Log estén multiplexados (varias copias, esto se configura en la consola de

administración de Oracle) y en diferentes discos físicos. Lógicamente es lo recomendable por Oracle y sólo se configura así cuando se trata de una Base de Datos que tendrá múltiples accesos concurrentes (al mismo tiempo) y con un volumen de datos importante, pues el desembolso económico en harware

para la correcta instalación de Oracle puede ser importante. En nuestro caso, instalaremos los archivos

Page 5: INSTALACIÓN Y MANUAL DE ORACLE

de la base de datos en un segundo disco duro instalado exclusivamente para Oracle. A pesar de todo no

hay ningún problema por instalar la bas e de datos en el mismo disco duro que el software de Oracle. Si nuestra organización dispone, por ejemplo, de unos 20 usuarios conectados a Oracle no habría una pérdida del rendimiento por instalarla en el mismo disco duro. Por supuesto esto es orientativo pues

dependerá también del volumen de datos que necesite cada usuario así como de otros factores (rpm del disco duro, características del servidor de Oracle (procesadores, memoria RAM, …), velocidad de la red local, tipo de conexión que realice el software de nuestra empresa que acceda a Oracle (el acceso nativo sin necesidad de utilizar controladores ODBC incrementa considerablemente el rendimiento frente a

accesos mediante controladores ODBC que no dejan de ser una pasarela entre el software y Oracle):

• Seleccionaremos el juego de caracteres que vayamos a utilizar, si dejamos el juego de caracteres por defecto Oracle utilizará el juego de caracteres que tengamos configurado en nuestro sistema operativo, es la opción recomendada. Este parámetro sólo sería importante en el caso en que queramos exportar

nuestra base de datos a otro servidor de Oracle, en este caso será importante que el juego de caracteres del servidor que recibirá los datos coincida con el que los exportó. Si no coinciden podrían aparecer erróneamente caracteres como “€” alojados en nuestra base de datos:

Page 6: INSTALACIÓN Y MANUAL DE ORACLE

• Como último paso de la preinstalación nos aparecerá una ventana con el software que se va a instalar, tras comprobar que es correcto pulsaremos en Instalar:

• Introduciremos los CDs de instalación conforme los vaya pidiendo el programa:

• Tras la instalación de Oracle y la creación de la base de datos aparecerá una ventana indicando que el proceso de instalación ha finalizado:

Page 7: INSTALACIÓN Y MANUAL DE ORACLE

En esta ventana nos indica que ha finalizado el proceso de instalación y que podemos acceder desde cualquier otro PC de la red introduciendo en el navegador de Internet:

http://nombre_o_IP_del_servidor_oracle:7778

El acceso vía Internet está permitido pues al seleccionar la instalación Enterprise Edition se instala e inicia por defecto Oracle http Server (servidor web de Oracle). Si al intentar acceder a la Consola de Oracle Enterprise Manager nos aparece este error:

Deberemos configurar el Listener manualmente, para ello accederemos a Inicio – Programas – Oracle – OraHome92 – Configuration and Migration Tools – Net Configuration Assistant :

Page 8: INSTALACIÓN Y MANUAL DE ORACLE

Seleccionamos Configuración de Listener y a continuación Volver a Configurar:

Nos aparecerá el Listener que el programa de instalación de Oracle crea automáticamente:

Seleccionamos el protocolo a utilizar (TCP):

Page 9: INSTALACIÓN Y MANUAL DE ORACLE

Seleccionamos el puerto a utilizar, por defecto 1521:

Con esto habremos vuelto a actualizar el Listener:

Page 10: INSTALACIÓN Y MANUAL DE ORACLE

Si el error ORA-12541: TNS: no hay ningún listener continúa apareciendo deberemos seguir los pasos que se indican en el punto 1 del anexo.

CONFIGURACIÓN DE USUARIO PARA ACCESO VÍA HTTP A LOS PROCEDIMIENTOS PL -SQL

ALMACENADOS

Si tenemos iniciado el Servidor http de Oracle podremos acceder desde cualquier equipo de la red local y, también, desde cualquier parte del mundo (siempre que tengamos configurado el router con el puerto 7778 redirigido a la IP local del Servidor de Oracle). Es suficiente con poner en el navegador de

Internet: http://IP_Servidor_Oracle:7778, nos aparecerá una ventana como esta:

Desde aquí podremos configurar los usuarios que tendrán acceso a través de Internet a Oracle, así como los procedimientos que se ejecutarán en el inicio.

ERRORES CON EL ORACLE

1.- ALGUNOS ERRORES AL INICIAR ORACLE Y SU SOL UCIÓN

• Al iniciar la Enterprise Manager Console o al intentar conectarme a la Base de Datos de Oracle aparece el siguiente error:

TNSLSNR.EXE ha detectado un problema y debe cerrarse. Más información: szAppName: TNSLSNR.EXE szAppVer: 0.0.0.0 szModName: orantcp9.dll

Page 11: INSTALACIÓN Y MANUAL DE ORACLE

Y tras pulsar en Cerrar el servicio OracleOraHome92TNSListener se detiene.

Solución: Accedemos al Regedit, desde el botón Inicio – Ejecutar ponemos regedit y pulsamos en Aceptar:

buscamos la siguiente clave: HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0

E insertamos una nueva entrada de tipo Valor de cadena expandible con el valor TRUE: USE_SHARED_SOCKET=TRUE

Una vez añadida esta clave reiniciaremos el sistema. En teoría ya debería haberse solucionado el problema.

Si el problema sigue produciéndose tras reiniciar, será conveniente comprobar el fichero WinsockXPFix.exe • El espacio en disco no para de decrecer , hasta quedarse sin espacio. Este problema es producido por el

Servidor HTTP de O racle Basado en Apache, cuando dicho servidor encuentra algún problema con el Listener (como el descrito en el punto 1), lo informa escribiendo en el log que crea a tal efecto. Dicho fichero de log va creciendo desproporcionadamente hasta dejar el disco duro sin espacio. La l ínea del fichero de log podría ser como esta:

[warn] FastCGI: server "c:/oracle/ora92/bin/isqlplus" can't be restarted:exceeded max restarts

Solución:

Para solucionar este problema, en primer lugar deberemos detener el servicio OracleOraHome92HTTPServer y deshabilitarlo para que no se vuelva a iniciar, al menos, hasta que solucionemos el problema, a continuación eliminaremos el fichero de log de Apache ubicado en:

Page 12: INSTALACIÓN Y MANUAL DE ORACLE

C:/oracle/ora92/Apache/Apache/logs Eliminaremos el fichero error_log, si no nos deja eliminarlo será porque el servicio no se ha detenido

correctamente, con lo cual deberíamos deshabilitar dicho servicio y reiniciar el equipo. Con esto hemos solucionado el problema parcialmente pues, aunque ya no vamos a tener problemas con el espacio en disco, el servidor de Apache estará deshabilitado, con lo cual no podremos acceder a

Oracle vía Internet. Para poder iniciar el servicio de Apache sin que deje el disco sin espacio editaremos el fichero:

C:/oracle/ora92/Apache/Apache/conf/httpd.conf

Y modificaremos la l ínea LogLevel warn por LogLevel error . De esta forma evitaremos que el log se llene

de warning y sólo se guardarán los errores. Una vez guardado el fichero httpd.conf podremos volver a iniciar el servicio OracleOraHome92HTTPServer. • Al intentar conectar a Oracle aparece el error "TNS-12535: TNS:timeout de la operación" ó "ORA-

12535: TNS:operation timed out". Dicho error se puede comprobar en el directorio de instalación de Oracle: C:/oracle/ora92/bin/sqlnet.log

Solución: Normalmente es debido a un fallo de conexión de red con el servidor. Si, tras comprobar que la red funciona adecuadamenete, el problema sigue apareciendo se puede deber también a la intervención de un cortafuegos (tanto hardware como software). Por ejemplo, si tenemos instalado Oracle Server en un

PC con Windows XP, el cortafuegos software que éste incorpora inpedirá el acceso a la Base de Datos Oracle desde otros PCs. Para solucionarlo deberemos configurar adecuadamente en cortafuegos abriendo los puertos que util iza Oracle, tales como el 1521.

2.- INICIAR / PARAR / PROBAR LA BASE DE DATOS MANUALMENTE Para iniciar una base de datos de Oracle manualmente seguiremos los siguientes pasos:

Desde la l ínea de comandos (consola de MS-DOS) pondremos:

o Sqlplus /nolog: Para conectarnos a SQLPlus que es la consola de Oracle para MS-DOS,

útil para realizar tareas de mantenimiento de la Base de Datos, tales como reparación,

apagado manual, inicio manual o Connect / as sysdba: Para conectarnos a Oracle como administradores, al no poner

nombre de usuario delante de “/” se asume el usuario del sistema operativo (éste ha de ser administrador)

o Select status from v$instance: con esta consulta comprobamos que la base de datos no está iniciada, para ello deberá devolver un valor distinto a STARTED

o Select database_status from v$instance

o startup nomount: con esta sentencia iniciaremos la base de datos sin montar, puede ser útil para reparar algún datafile dañado o para realizar tareas que no se podrían llevar a cabo con la base de datos montada

o shutdown immediate: cierra la base de datos, incluso aunque haya usuarios

conectados o startup: inicia y monta la base de datos , la deja lista para ser usada o alter user hr identified by hr account unlock: esta instrucción sirve para desbloquear

un usuario bloqueado y cambiarle la contraseña, en este caso hemos desbloqueado un usuario que Oracle crea por defecto, l lamado hr y le hemos asignado la contraseña hr

o connect hr/hr: nos conectamos con el usuario hr para hacer una Select y comprobar que funciona correctamente

Page 13: INSTALACIÓN Y MANUAL DE ORACLE

o select * from employees: hacemos una consulta de selección para que nos muestre el

contenido de la tabla employees que Oracle crea automáticamente en la instalación

Para realizar este manual hemos utilizado:

Oracle9i Database 9.2.0.1.0.

Microsoft Windows XP.

Nota: este manual no tiene por qué ser la mejor forma de instalar Oracle, es una de las muchas configuraciones que se pueden realizar.

INSTALACIÓN DE ORACLE 11G EN WINDOWS XP

Requerimientos:

Permisos de Administrador: Es necesario tener permisos de administrador para ejecutar el instalador. Requisitos mínimos de Hardware: Es necesario cumplir con los siguientes requerimientos mínimos en

Esta es una guía rápida de instalación de Oracle 11g en Windows 32-Bit, así que solo se tocaran los puntos más importantes para dejar corriendo los servicios básicos de Oracle. Requerimientos:

1. Permisos de Administrador: Es necesario tener permisos de administrador para ejecutar el

instalador.

2. Requisitos mínimos de Hardware: Es nec esario cumplir con los siguientes requerimientos

mínimos en equipo donde se desea instalar:

Requisito Mínimo

Memoria Física (RAM) 1Gb

Memoria Virtual El doble de tamaño que la RAM (2Gb)

Espacio en disco Instalación Básica: 4.55Gb Instalación Avanzada: 4.92Gb

Adaptación de Vídeo 256 colores

Procesador 550Mhz

3. Requisitos mínimos de Software:

Arquitectura de procesador Intel (x86), AMD64, o Intel EM64T

Sistema Operativo o Windows 2000 Service Pack 1 o superior

o Windows Server 2003 o

Superior o Windows XP Professional o Windows Vista Businnes o

Superior *Windows NT no esta soportado

Compilador o ACUCOBOL-GT version 6.2 o Micro Focus Net Express

5.0

Protocolo de red o TCP/IP o TCP/IP with SSL

Page 14: INSTALACIÓN Y MANUAL DE ORACLE

o Named Pipes

4. Navegadores web soportados:

o Netscape Navigator 7.2 o Superior o Mozilla version 1.7 o Superior o Microsoft Internet Explorer 6.0 SP2 o Superior o Firefox 1.0.4 o Superior

Instalación:

1. Si está instalando Oracle en un equipo con muchos alias, defina la variable de entorno ORACLE_HOSTNAME en el Panel de Control para definir el alias que se va a usar.

2. Ingrese al directorio donde descomprimió el instalador 3. Ejecute el instalador con permisos de Admi nistrador. Si el usuario que en el que estas logueado

actualmente no tiene esos permisos(En Windows Vista es obligatorio usar el usuario Administrador / Administrador para esto), da clic derecho al instalador, elige la opción ejecutar como…. y selecciona un usuario con los permisos adecuados:

4. Se selecciona el producto que se va a instalar:

5. Usualmente se elige la opción Básica, pero esta vez va mos a pasar por la parte avanzada. así

que elegimos Instalación Avanzada:

Page 15: INSTALACIÓN Y MANUAL DE ORACLE

6. Si es la primer instalación que hace de Oracle es probable que tenga que especificar, la ruta seria: “/u01/app/oraInventory“.

7. Ahora seleccionaremos Custom y clic al botón Next:

8. Ahora dejamos todos los parámetros de la localización de la instalación tal como están por default:

9. A continuación se nos muestran los componentes a ser instalados. Seleccionamos los que

necesitemos o podemos dejarlo tal como esta:

Page 16: INSTALACIÓN Y MANUAL DE ORACLE

10. Llego la hora de la instalación de la base de datos. Seleccionamos el tipo de base de datos que necesitemos:

11. Antes de instalarse se nos muestra un breve sumario que detalla cada parámetro de la instalación, si todo esta correcto damos clic en Install:

Page 17: INSTALACIÓN Y MANUAL DE ORACLE

12. Seguro que a estas alturas ya se antoja una taza de café (ahora mismo hace frío acá en

Montemorelos,NL), así que sientete en la libertad de irte a preparar uno o charlar un rato con tu chapis; porque esto va a tardar un buen rato:

13. Espero que te hallas divertido mientras Oracle se instalaba, si no ocurrió ningún problema….felicidades Oracle está instalado en tu máquina y listo para comenzar a trabajar:

Cualquier duda a problema con la instalación porfavor no preguntes aquí, no soy un experto en la

administración de BD Oracle. Este solo es un trabajo presentado en cumplimiento de una materia, por el contrario te animo visites el sitio que te recomiendo a continuación; espero all í puedas resolver todas tus dudas.

CREAR UNA BASE DE DATOS ORACLE

CONFIGURAR UNA BASE NUEVA

Para configurar una nueva base de datos ingresamos al “Asistente de configuración de Bases de Datos”:

Page 18: INSTALACIÓN Y MANUAL DE ORACLE

Seguimos los 15 pasos, en el paso 3 escribimos el nombre de la nueva base de datos, y en el paso 5

seleccionamos el uso de la misma contraseña para todos los usuarios, y la escribimos, en los demás pasos seleccionamos los valores por defecto:

Page 19: INSTALACIÓN Y MANUAL DE ORACLE
Page 20: INSTALACIÓN Y MANUAL DE ORACLE

Creamos un usuario para poder ingresar con una conexión a la base de datos.

Page 21: INSTALACIÓN Y MANUAL DE ORACLE

El usuario tiene que tener asignado por defecto la tablespace SYSTEM y como temporal TEMP, también

tiene que tener todos los privilegios, por eso seleccionamos en la misma ventana la viñeta de privilegios del sistema.

Finalmente en el SQL Developer realizamos una nueva conexión de la base de datos creada con el

nombre del usuario.

Page 22: INSTALACIÓN Y MANUAL DE ORACLE

CREACIÓN DE TABLAS

Los nombres de las tablas deben cumplir las siguientes reglas:

Deben comenzar con una letra No deben tener más de 30 caracteres Sólo se permiten utilizar letras del alfabeto (inglés), números o el signo de subrayado (también

el signo $ y #, pero esos se utilizan de manera especial por lo que no son recomendados)

No puede haber dos tablas con el mismo nombre para el mismo usuario (pueden coincidir l os nombres si están en distintos esquemas)

No puede coincidir con el nombre de una palabra reservada de Word

La sentencia CREATE TABLE es la orden SQL que permite crear una tabla. Por defecto será almacenad en el tablespace por defecto del usuario que crea la tabla.

Sintaxis:

Ejemplo: CREATE TABLE Region

( RegionID NUMBER NOT NULL, RegionDescription CHAR(50) NOT NULL,

CONSTRAINT PK_Region PRIMARY KEY (RegionID) )

/

La sentencia DESCRIBE, permite obtener la estructura de una tabla. Ejemplo:

DESCRIBE Region;

Y aparecerán los campos de la tabla proveedores. La sentencia INSERT permite añadir datos a las tablas.

Su sintaxis básica es:

Indicando la tabla se añaden los datos que se especifiquen tras el apartado VALUES en un nuevo registro. Los valores deben corresponderse con el orden de las columnas. Si no es así se puede indicar

tras el nombre de la tabla y entre paréntesis.

Page 23: INSTALACIÓN Y MANUAL DE ORACLE

Ejemplo:

Begin INSERT INTO Region(RegionID, RegionDescription)

VALUES (1, 'Eastern'); commit; end;/

BORRADO TABLAS

Borrar tabla

La sentencia DROP TABLE seguida del nombre de una tabla, permite eliminar la tabla en cuestión. Al borrar una tabla:

Desaparecen todos los datos.

Cualquier vista y sinónimo referente a la tabla seguirán existiendo, pero ya no funcionarán (conviene eliminarlos).

Las transacciones pendientes son aceptadas (COMMIT). Sólo es posible realizar esta operación si se es el propietario de la tabla o se posee el privilegio

DROP ANY TABLE.

El borrado de una tabla es irreversible, y no hay ninguna petición de confirmación, por lo que conviene

ser muy cuidadoso con esta operación. Borra contenido de tablas

La sentencia TRUNCATE TABLE seguida del nombre de una tabla, hace que se elimine el contenido de la tabla, pero no la tabla en sí. Incluso borra del archivo de datos el espacio ocupado por la tabla. Esta orden no puede anularse con un ROLLBACK.

MODIFICAR TABLAS La versátil ALTER TABLE permite hacer cambios en la estructura de una tabla.

Cambiar nombre de tablas La sentencia RENAME permite el cambio de nombre de cualquier objeto. Sintaxis:

Añadir columnas

Permite añadir nuevas columnas a la tabla. Se deben indicar su tipo de datos y sus propiedades si es

necesario (al estilo de CREATE TABLE). Las nuevas columnas se añaden al final, no se puede indicar otra posición.

Page 24: INSTALACIÓN Y MANUAL DE ORACLE

Borrar columnas

Elimina la columna indicada de manera irreversible e incluyendo los datos que contenía. No se puede eliminar la última columna (habrá que usar DROP TABLE). Modificar columna

Permite cambiar el tipo de datos y propiedades de una determinada columna. Sintaxis:

Los cambios que se permiten son:

Incrementar precisión o anchura de los tipos de datos Sólo se puede reducir la anchura si la anchura máxima de un campo si esa columna posee nulos

en todos los registros, o todos los valores so o no hay registros.

Se puede pasar de CHAR a VARCHAR2 y viceversa (si no se modifica la anchura) Se puede pasar de DATE a TIMESTAMP y viceversa.

Añadir comentarios a las tablas

Se le pueden poner comentarios a las tablas y las columnas. Un comentario es un texto descriptivo utilizado para documentar la tabla. Sintaxis:

Para mostrar los comentarios puestos se usan las siguientes vistas del diccionario de datos mediante la instrucción SELECT: • USER_TAB_COMMENTS. Comentarios de las tablas del usuario actual.

• USER_COL_COMMENTS. Comentarios de las columnas del usuario actual. • ALL_TAB_COMMENTS. Comentarios de las tablas de todos los usuarios (sólo administradores) • ALL_COL_COMMENTS. Comentarios de las columnas de todos los usuarios (sólo administradores).

RESTRICCIONES Una restricción es una condición de obligado cumplimiento para una o más columnas de la tabla. A cada

restricción se le pone un nombre, en el caso de no poner un nombre (en las que eso sea posible) entonces el propio Oracle le coloca el nombre que es un mnemotécnico con el nombre de tabla, columna y tipo de restricción.

Page 25: INSTALACIÓN Y MANUAL DE ORACLE

Su sintaxis general es:

Las restricciones tienen un nombre, se puede hacer que sea Oracle el que les ponga nombre, pero entonces será críptico. Por eso es mejor ponerle uno mismo. Los nombres de restricción no se pueden repetir para el mismo esquema, por lo que es buena idea

incluir de algún modo el nombre de la tabla, los campos involucrados y el tipo de restricción en el nombre de la misma. Prohibir nulos

La restricción NOT NULL permite prohibir los nulos en una determinada tabla. Eso obliga a que la columna tenga que tener obligatoriamente un valor para que sea almacenado el registro.

Se puede colocar durante la creación (o modificación) del campo añadiendo la palabra NOT NULL tras el tipo: CREATE TABLE Territories (TerritoryID VARCHAR2(20) NOT NULL);

En ese caso el nombre le coloca Oracle. La otra forma (que admite nombre) es: CREATE TABLE Territories(TerritoryID VARCHAR2(20) CONSTRAINT TerritoryID _sinnulos NOT NULL(TerritoryID));

Valores únicos Las restricciones de tipo UNIQUE obligan a que el contenido de uno o más campos no puedan repetir

valores. Nuevamente hay dos formas de colocar esta restricción: CREATE TABLE cliente(dni VARCHAR2(9) UNIQUE); En ese caso el nombre de la restricción la coloca el sistema Oracle. Otra forma es:

CREATE TABLE cliente(dni VARCHAR2(9) CONSTRAINT dni_u UNIQUE); Esta forma permite poner un nombre a la restricción. Si la repetición de valores se refiere a varios campos, la forma sería: CREATE TABLE alquiler(dni VARCHAR2(9),

cod_pelicula NUMBER(5), CONSTRAINT alquiler_uk UNIQUE(dni,cod_pelicula) ;

La coma tras la definición del campo cod_pelicula hace que la restricción sea independiente de ese campo. Eso obliga a que, tras UNIQUE se indique la lista de campos. Clave primaria

La clave primaria de una tabla la forman las columnas que indican a cada registro de la misma. La clave primaria hace que los campos que la forman sean NOT NULL (sin posibilidad de quedar vacíos) y que los

valores de los campos sean de tipo UNIQUE (sin posibilidad de repetición). Si la clave está formada por un solo campo basta con: CREATE TABLE Shippers(ShipperID NUMBER NO T NULL, CONSTRAINT

PK_Shippers PRIMARY KEY (ShipperID))

Page 26: INSTALACIÓN Y MANUAL DE ORACLE

Clave secundaria o foránea

Una clave secundaria o foránea, es uno o más campos de una tabla que están relacionados con la clave principal de los campos de otra tabla. La forma de indicar una clave foránea es:

CREATE TABLE alquiler(dni VARCHAR2(9), cod_pelicula NUMBER(5), CONSTRAINT alquiler_pk PRIMARY KEY(dni,cod_pelicula),

CONSTRAINT dni_fk FOREIGN KEY (dni) REFERENCES clientes(dni), CONSTRAINT pelicula_fk FOREIGN KEY (cod_pelicula)

REFERENCES pel iculas(cod)); La integridad referencial es una herramienta imprescindible de las bases de datos relacionales. Pero provoca varios problemas. Por ejemplo, si borramos un registro en la tabla principal que está

relacionado con uno o varios de la secundaria ocurrirá un error, ya que de permitírsenos borrar el registro ocurrirá fallo de integridad (habrá claves secundarios refiriéndose a una clave principal que ya no existe).

Por ello Oracle nos ofrece dos soluciones a añadir tras la cláusula REFERENCES:

ON DELETE SET NULL. Coloca nulos todas las claves secundarias relacionadas con la borrada.

ON DELETE CASCADE. Borra todos los registros cuya clave secundaria es igual que la clave del registro borrado.

Restricciones de validación

Son restricciones que dictan una condición que deben cumplir los contenidos de una columna. La expresión de la condición es cualquier expresión que devuelva verdadero o falso, pero si cumple estas premisas:

No puede hacer referencia a números de fila No puede hacer referencia a objetos de SYSTEM o SYS

No se permiten usar las funciones SYSDATE, UID, USER y USERENV No se permiten referencias a columnas de otras tablas (si a las de la misma tabla)

Una misma columna puede tener múltiples CHECKS en su definición (se pondrían varios

CONSTRAINT seguidos, sin comas). Ejemplo:

CREATE TABLE ingresos(cod NUMBER(5) PRIMARY KEY, concepto VARCHAR2(40) NOT NULL, importe NUMBER(11,2) CONSTRAINT importe_min

CHECK (importe>0) CONSTRAINT importe_max CHECK (importe<8000) );

Mostrar restricciones

La vista del diccionario de datos USER_CONSTRAINTS permite identificar las restricciones colocadas por el usuario (ALL_CONSTRAINTS permite mostrar las restricciones de todos los usuarios, pero sólo está permitida a los administradores). En esa vista aparece toda la información que el diccionario de datos posee sobre las restricciones.

Page 27: INSTALACIÓN Y MANUAL DE ORACLE

CREACIÓN DE ÍNDICES

Tipos de índices

Existen tres tipos de índices cuya naturaleza depende de la forma en que haya sido creado. Estos tipos son: Un índice único es aquel que tiene la restricción adicional de que el grupo de columnas indexadas define

una única fila. Sin embargo, si no van a existir más grupos de columnas con estas características dentro de una misma tabla, se recomienda crear el conjunto como una clave primaria ya que de todas formas Oracle asociará un índice único a esta restricción (la clave primaria).

Un índice no único , que es aquel que no impone la restricción de que las filas no deban repetirse. Un índice compuesto es aquel que agrupa varias columnas de la tabla. Este tipo es muy útil cuando las

sentencias de selección (SELECT) efectúan búsquedas por varios criterios (columnas) en una misma tabla. Es importante el orden en que se ponen las columnas al crear el índice; la columna más referenciada debería ser puesta en primer lugar y así sucesivamente.

Es importante decidir qué columnas indexar. Siga las siguientes reglas cuando tenga que tomar esta decisión:

Escoja las columnas que se utilizan con mayor frecuencia en las cláusulas WHERE de las consultas.

No indexe aquellas columnas que tengan demasiados valores repetidos en ellas. Las columnas que toman valores únicos son excelentes candidatas para indexar.

Oracle automáticamente indexa las claves primarias de las tablas. Indexe las columnas que sirven para unir una tabla con otras (join en las consultas). Si hay columnas que no tienen valores únicos por sí solas pero que en conjunto con otra

columna forman una dupla única o con pocas repeticiones (menos que las columnas

individualmente), entonces conviene indexarlas (siempre y cuando existan consultas que las utilicen en conjunto). Estos índices reciben el nombre de índices compuestos.

Sintaxis de creación de índices: CREATE INDEX nombre_indice ON [esquema.]nombre_tabla (columna1 [, columna2,.. .])

TABLESPACE nombre_tablespace;

2. LENGUAJE DE CONSUL TA ESTRUCTURADO

Los comandos básicos del DBMS es un conjunto de sentencias que está orientado a la consulta y manejo de datos de los objetos creados, básicamente consta de 4 sentencias: SELECT, INSERT, DELETE, UPDATE.

INSTRUCCIÓN SELECT

Es la encargada de indicar las columnas que se desean mostrar de una tabla en el resultado, con

cualquier tipo de condición, agrupación u ordenación. Una sentencia SELECT retorna un único conjunto de res ultados, por lo que podrá ser aplicada en cualquier lugar donde se espere un conjunto de resultados.

Las distintas columnas deben aparecer separadas por coma ( , ), opcionalmente puede ser cualificadas con el nombre de su tabla utilizando la sintaxis: Si se quieren mostrar todas las columnas de una tabla, se podrá incluir el carácter *, o bien TABLA.*

Page 28: INSTALACIÓN Y MANUAL DE ORACLE

La sintaxis básica es:

SELECT * / columna1, columna2,... FROM nombre_tabla

WHERE condición GROUP BY columnas de agrupación HAVING condición agrupada ORDER BY columnas de ordenación;

Todas las cláusulas son opcionales excepto SELECT y FROM. Si se incluye la cláusula DISTINCT después de SELECT, se suprimirán aquellas filas del resultado que

tenga igual valor que otras. La sentencia FROM se indican el (los) conjunto(s) de resultado(s) que interviene(n) en la consulta. Normalmente se utilizan tablas, pero se admite cualquier tipo de conjunto (tabla, select, vista…). Si

apareciese más de una tabla, deben ir separadas por coma. Las tablas deben existir y si no existiera alguna aparecería un error. La sentencia WHERE indica qué condiciones debe cumplirse para que una fi la entre dentro del conjunto

de resultados retornado. Para construir las condiciones se podrán utilizar todos los operadores lógicos. Es posible construir condiciones complejas uniendo dos o más condiciones simples a través de los

operadores lógicos AND y OR. La sentencia GROUP BY.- La expresión GROUP BY se util iza para agrupar valores que es necesario procesar como un grupo.

La sentencia HAVING.- Se utiliza cuando se quiere poner condiciones al resultado de un grupo. Sólo se la puede utilizar si se ha incluido la cláusula GROUP BY.

La sentencia ORDER BY.- Se utiliza para ordenar las filas del conjunto de resultados final. Todas las columnas por las que se desea realizar el orden tienen que encontrarse en la sentencia SELECT de la consulta.

INSTRUCCIÓN DELETE.

Borra una o más filas de una tabla, dependiendo de la condición WHERE, para guardar cambios hay que

ejecutar COMMIT; y para cancelar el borrado podemos hacer ROLLBACK; su sintaxis es la siguiente: DELETE FROM nombre_tabla

WHERE condición; Si no se pone condición, borra todas las filas de una tabla.

Ejemplo de DELETE

Page 29: INSTALACIÓN Y MANUAL DE ORACLE

Tabla antes del borrado

Tabla después del borrado

INSTRUCCIÓN UPDATE.

Actualiza valores de una o más columnas para un subconjunto de filas de una tabla, para guardar cambios hay que ejecutar COMMIT; y para cancelar la modificación podemos hacer ROLLBACK;

su sintaxis es la siguiente: UPDATE nombre_tabla

SET columna1 = valor1, columna2 = valor2, ... WHERE condición; Actualiza las filas que cumplan con la condición, si no se pone condición de selección, la actualización se

da en todas las filas de la tabla. No existe una gran diferencia entre la sintaxis básica de SQL Server 2005 y Oracle 11g, la única diferencia es que para ejecutar la consulta, inserción, actualización o borrado en SQL se ponía al final GO, mientras

que en Oracle solo se pone punto y coma (;). Ejemplo de UPDATE

Page 30: INSTALACIÓN Y MANUAL DE ORACLE

Antes de la actualización

Después de la actualización

CONSULTAS

SQL es un conjunto de sentencias u órdenes que todos los programas y usuarios deben utilizar para acceder a bases de datos Oracle. No hay otra manera de comunicarse con Oracle si no es a través de

SQL. Dado que SQL es un estándar, todas las bases de datos comerciales de la actualidad util izan SQL como puente de comunicación entre la base de datos y el usuario. Ejemplo de consultas

SUBCONSUL TAS

Una subconsulta es una instrucción SELECT anidada dentro de una instrucción SELECT, SELECT...INTO, INSERT...INTO, DELETE, o UPDATE o dentro de otra subconsulta.

Puede utilizar tres formas de sintaxis para crear una subconsulta: Comparación: Es una expresión y un operador de comparación que compara la expresión con el

resultado de la subconsulta.

Page 31: INSTALACIÓN Y MANUAL DE ORACLE

Sintaxis: comparación [ANY | ALL | SOME] (instrucción sql); Expresión: Es una expresión por la que se busca el conjunto resultante de la subconsulta.

Sintaxis: expresión [NOT] IN (instrucción sql); Instrucción SQL: Es una instrucción SELECT, que sigue el mismo formato y reglas que cualquier

otra instrucción SELECT. Debe ir entre paréntesis.

Sintaxis: [NOT] EXISTS (instrucción sql) VISTAS

Una vista no es más que una consulta al macenada a fin de utilizarla tantas veces como se desee. Una vista no contiene datos sino la instrucción SELECT necesaria para crear la vista. Hay dos tipos de vistas:

Simples: Las forman una sola tabla y no contienen funciones de agrupación. Su ventaja es que permiten siempre realizar operaciones DML sobre ellas.

Complejas: Obtienen datos de varias tablas, pueden utilizar funciones de agrupación. No siempre permiten operaciones DML.

Creación de vistas Sintaxis:

Donde:

OR REPLACE. Si la vista ya existía, la cambia por la actual. FORCE. Crea la vista aunque los datos de la consulta SELECT no existan vista. Nombre que se le da a la vista

alias. Lista de alias que se establecen para las columnas devueltas por la consulta SELECT en la que se basa esta vista. El número de alias debe coincidir con el número de columnas devueltas por SELECT.

WITH CHECK OPTION. Hace que sólo las filas que se muestran en la vista puedan ser añadidas

(INSERT) o modificadas (IPDATE). La restricción que sigue a esta sección es el nombre que se le

da a esta restricción de tipo CHECK OPTION. WITH READ ONLY. Hace que la vista sea de sólo lectura. Permite grabar un nombre para esta

restricción.

Procedimientos almacenados Un procedimiento almacenado es un conjunto de instrucciones en PL/SQL, que pueden ser l lamado usando el nombre que se le haya asignado.

La sintaxis para crear un procedimiento es la siguiente: CREATE [OR REPLACE] PROCEDURE name ([param [IN|OUT|IN OUT|] datatype ], . . .) AS sql_subprogram

El uso de OR REPLACE permite sobreescribir un procedimiento existente. Si se omite, y el procedimiento ya existe, se producirá un error. Los modificadores IN, OUT, IN OUT indican si el parametro es de entrada, salida o ambos. Si se desea eliminar (borrar) un procedimiento almacenado, se usa la instrucción:

DROP PROCEDURE name;