Вы находитесь на странице: 1из 80

INTRODUCCIN A ORACLE

CARACTERISTICAS
ARQUITECTURA DE ORACLE
DICCIONARIO DE DATOS
SQL
CONCEPTO
CARACTERSTICAS
ENTORNO SQL*PLUS
MANEJO DEL EDITOR
CARACTERSTICAS

Es el mayor y ms usado Sistema Manejador de Base de


Datos Relacional (RDBMS) en el mundo.
Incluye cuatro generaciones de desarrollo de aplicacin,
herramientas de reportes y utilitarios, como
son:Developed, Forms, Reports y Designer.
Una Base de Datos Oracle es un conjunto de datos
almacenado y accesible segn el formato de tablas
relacionales. Una tabla relacional tiene un nombre y unas
columnas, su definicin. Los datos estn almacenados en
las filas. Las tablas pueden estar relacionadas con otras.
Una Base de Datos Oracle est almacenada fsicamente en
ficheros, y la correspondencia entre los ficheros y las tablas es
posible gracias a las estructuras internas de la BD, que permiten
que diferentes tipos de datos estn almacenados fsicamente
separados.
Corre en computadoras personales (PC), microcomputadoras,
mainframes y computadoras con procesamiento paralelo masivo.
Soporta muchos idiomas.
Corre automticamente en ms de ochenta (80) arquitecturas de
hardware y software distinto sin tener la necesidad de cambiar
una sola lnea de cdigo. Esto es porque ms del ochenta por
ciento (80%) de los cdigos internos de Oracle son iguales a los
establecidos en todas las plataformas de sistemas operativos.
ARQUITECTURA DE ORACLE
Servidor Oracle:
Instancia
Base de datos
Instancia Oracle:
System Global
Area (SGA)
Procesos
Background
Base de datos
Oracle:
Ficheros de
Datos
Fichero(s) de
Control
Ficheros Redo
log
INSTANCIA
La integran los procesos background y la SGA
Abre una y slo una BDO, y permite acceder a ella.

Nota: con Oracle Real Application Cluster (RAC), ms


de una instancia usarn la misma BD.
En la mquina donde reside el servidor Oracle, la
variable ORACLE_SID identifica a la instancia con la
que estamos trabajando.
System Global Area (SGA)
Zona de memoria compartida, reservada al arrancar la
instancia. Su tamao es dinmico (>= 9i) y limitado por el
parmetro SGA_MAX_SIZE.
La SGA est formada por grnulos (espacio contiguo de
memoria virtual), que sern de 4M para SGAs <= 1Gb (en 9i
<= 128M), y de 16M en caso contrario. Los componentes de la
SGA (buffer cache, sharedpool, largepool, javapool, etc)
variarn su tamao en base a grnulos. Al arrancar, se
asignan al menos tres grnulos (uno para la SGA fija que
incluye los redo buffers, otro para la buffer cache y uno ms
de sharedpool); y cada componente seguir reservando
tantos grnulos como necesite.
Program Global Area (PGA)
Es una zona de memoria, fuera de la SGA, reservada para
cada proceso de usuario que se conecta a la BD.
Se crea para cada nuevo proceso servidor (o un proceso
background); y se libera cuando el proceso termina.
En un entorno de servidores dedicados (dedicated server)
contiene: sort area, informacin de sesin (privilegios de
usuario y estadsticas de sesin), estado de los cursores
(etapa del procesamiento de cada sentencia SQL que est
usando actualmente la sesin), pila (stack space).
Con servidores compartidos (MTS), parte de estas
estructuras se guardan en la SGA. Si se activa la Large
Pool se almacenan en ella, si no se quedan en la Shared
Pool.
ESTRUCTURA DE PROCESOS
Procesos de usuario: se arranca uno cuando un usuario
solicita una conexin a la BD. Establece la conexin con la BD
pero no interacta directamente con ella.
Procesos servidores: creado al establecer la conexin a la BD.
Es el proceso que interacta con la BD, para cada sesin. Puede
ser dedicado o compartido. Uno dedicado slo gestiona la
peticiones de la sesin que lo inicia; uno compartido gestiona las
peticiones de varios procesos de usuario.
Procesos background: disponibles cuando se arranca una
instancia Oracle. Son los siguientes: DBWR, PMON, SMON,
LGWR y CKPT; y nuevos en 10g: PSP0 (Process Spawner),
MMAN (Memory Manager), MMON (Memory Monitor), MMNL
(Memory Monitor Light). Opcionalmente podemos tener: ARCH,
RECO, Dispatchers (Dnnn), Shared Servers (Snnn), etc. El
parmetro BACKGROUND_DUMP_DEST, del fichero de
inicializacin, define el directorio donde se guardan los ficheros
de traza de los procesos background.
PROCESOS BACKGROUND
DBWR. Escribe los bloques de datos (y rollback) de la SGA
(data buffer cache) en los ficheros de datos. Esto lo hace de
forma asncrona, cuando:
Sucede un checkpoint.

El nmero de buffers modificados alcanza un umbral.

No quedan buffers libres.

Ocurre un timeout.

Ponemos un tablespace offline.

Dejamos un tablespace en modo readonly.

Borramos o truncamos una tabla.


LGWR. Realiza escrituras secuenciales del contenido de la
redo log buffer cache en los ficheros redo log. Cuando?
Se hace commit.
La redo log buffer cache se llena 1/3.
Hay 1Mb de cambios en la redo log buffer cache.
Como mucho, cada 3 segundos.
Siempre antes que escriba el DBWR.
SMON. Recupera la instancia, si es necesario, cuando sta
arranca: aplica los cambios registrados en los redo log (roll
forward), abre la base de datos dejndola accesible a los
usuarios, y hace rollback de las transacciones que no
terminaron.
Adems libera el espacio ocupado por segmentos
temporales durante el procesamiento de sentencias SQL.
PMON. Se activa peridicamente, recuperando los recursos
despus de que un proceso falle: hace rollback de las
transacciones que el usuario tena en curso, libera bloqueos a
nivel de tabla/fila y otros recursos reservados por el usuario, y
vuelve a arrancar dispatchers muertos (dead dispatchers).
CKPT. Avisa al DBWR cuando sucede un checkpoint y
actualiza las cabeceras de los ficheros de datos y de control (el
DBWR volcar los buffers actualizados a los ficheros de datos).
Si los checkpoints suceden muy frecuentemente puede haber
contencin en disco. Si tardan mucho se alargar el proceso de
recovery. Como mucho suceder un checkpoint al llenarse el
redolog.
ARCH. Proceso opcional. Archiva automticamente los redo log
online si se activa el modo ARCHIVELOG; asegurando que se
registran todos los cambios hechos en la base de datos. Archiva
el redo log que se ha llenado, cuando sucede un log switch.
CONEXIN A LA BD
Proceso de usuario: la ejecucin de la aplicacin
que permite al usuario iniciar la conexin; por
ejemplo, sql*plus.
Proceso servidor: se crea en el SBD cuando el
usuario se conecta a la BD, y es el que realmente
interacta con la BD.
Una conexin de un proceso de usuario al SBD es
una sesin en la BD (puede haber varias del mismo
usuario). Se inicia cuando el usuario se valida contra
la BD y termina al desconectarse.
ARCHIVOS QUE COMPONEN
ORACLE
CAPA FSICA: Consiste de archivos fsicos que
se encuentran en los discos. Estos pueden ser de
tres tipos diferentes: DATAFILES, REDO LOG
y CONTROL FILES.
CAPA LGICA: La capa lgica de una base de
datos consta de los siguientes elementos:
Tablespaces y esquema.
CAPA FISICA
Datafiles: almacenan toda la informacin
ingresada en una base de datos.
Se pueden tener slo uno o cientos de ellos.
Muchos objetos (tablas, ndices) pueden
compartir varios datafiles.
El nmero mximo de datafiles que pueden ser
configurados est limitado por el parmetro de
sistema MAXDATAFILES.
Redo Log: estos archivos almacenan
informacin que se utiliza para la
recuperacin de una base de datos en caso de
falla.
Estos archivos almacenan la historia de cambios
efectuados sobre la base de datos y son
particularmente tiles cuando se necesita corroborar
si los cambios que la base de datos ya ha confirmado
se han efectuado realmente en los datafiles.
Control files: estos archivos contienen
informacin que se utiliza cuando se levanta una
instancia, tal como la informacin de dnde se
encuentran ubicados los datafiles y los archivos
redo log. Estos archivos de control deben
encontrarse siempre protegidos.
CAPA LOGICA
Tablespaces: son piezas lgicas en las que se encuentra
dividida la base de datos, que son utilizados para separar
la informacin en grupos y as simplificar la
administracin de los datos.
Los tablespaces pueden ocupar uno o ms datafiles.
Dentro de los tablespaces y datafiles, el espacio utilizado para
almacenar datos es controlado por el uso de ciertas estructuras;
stas son las siguientes: Bloques, extensiones y segmentos.
Existen 4 tipos de segmentos: datos, ndices, rollback y
temporales.
Esquema: es una coleccin de objetos lgicos,
utilizados para organizar de manera ms
comprensible la informacin y conocidos como objetos
del esquema.
Algunos objetos son: Tabla, Cluster,
Indice, Vista, Procedimiento
Almacenado, Trigger y Secuencias.
OBJETOS DE ORACLE
TABLAS: Es donde se almacenan los datos.
CONSTRAINT: Restricciones de los atributos de
las tablas. Existen las siguientes restricciones:
Llave primaria
Llave fornea
Obligatoriedad
nico
Valor por defecto
Valores de un campo
USUARIOS: Son los dueos de los objetos de la
base de datos. Existen dos bsicos y son:
SYSTEM: posee las vistas que permiten acceder a las
tablas del diccionario, para el uso del resto de los usuarios
de la Base de Datos.
SYS: posee las tablas del diccionario de datos; que
almacenan informacin sobre el resto de las estructuras
de la Base de Datos.
INDICES: es una estructura de la Base de Datos
utilizada para agilizar el acceso a una fila de una
tabla.
Cada fila tiene un identificador de fila, ROWID, que
determina el fichero, bloque y fila dentro del bloque donde
est almacenada la fila.
Los ndices se crean automticamente cuando se define
una restriccin UNIQUE o PRIMARY KEY.
CLUSTERS: Se utiliza para almacenar juntas las
tablas que se acceden juntas, de este modo se
minimiza el nmero de Entradas y Salidas.
Las columnas que relacionan las tablas de un clster se
llaman clave del clster.
VISTAS: es una mscara que se extiende sobre una o ms
tablas, de modo que cada columna de la vista se
corresponde con una o ms columnas de las tablas
subyacentes.
Cuando se consulta una vista, esta traspasa la consulta
a las tablas sobre las que se asienta.
Las vistas no se pueden indexar.
Las vistas no generan almacenamiento de datos, y sus
definiciones se almacenan en el diccionario de datos.
En algunas ocasiones se puede utilizar para actualizar
los datos de las tablas de donde se origino la vista.
SECUENCIAS: Son mecanismos para obtener listas
de nmeros secuenciales.
Se utilizan para generar valores de llaves primarias que
no son propias de la realidad.
En algunos motores se utiliza el tipo de dato
autonumrico.
PROCEDIMIENTOS Y FUNCIONES: Son bloques
de cdigo PL/SQL (Lenguaje de programacin basado
en sentencias SQL), que se almacena en el diccionario
de datos y que es llamado por las aplicaciones.
Se pueden utilizar para implementar seguridad, no
dando acceso directamente a determinadas tablas
sino es a travs de procedimientos que acceden a
esas tablas.
La diferencia entre ellas es que la funcin
devuelven valores.
PAQUETES: Se utilizan para agrupar
procedimientos y funciones.
Los elementos dentro de los paquetes pueden ser pblicos
o privados.
Los pblicos pueden ser llamados por los
usuarios.
Los privados estn ocultos a los usuarios

y son llamados por otros procedimientos.


DISPARADORES, TRIGGERS: Son
procedimientos que son ejecutados cuando se
procede un determinado evento en la Base de
Datos.
Se pueden utilizar para mejorar y reforzar la integridad y
la seguridad de la Base de Datos.
SINNIMOS: Para identificar completamente
un objeto dentro de una Base de Datos se necesita
especificar el nombre de la mquina, el nombre
del servidor, el nombre del propietario y el
nombre del objeto. Para hacer transparente todo
esto al usuario se pueden utilizar los sinnimos.
stos apuntarn a los objetos y si el objeto cambia de
lugar o propietario, slo habr que modificar el
sinnimo.
PRIVILEGIOS Y ROLES:
Los roles son grupos de privilegios que pueden ser
utilizados para facilitar la gestin de los privilegios.
Los privilegios se pueden otorgar a un rol, y los roles
pueden ser otorgados a mltiples usuarios.
Ejemplos de privilegios son INSERT, SELECT, UPDATE,
EXECUTE, entre otros.
SEGMENTOS, EXTENSIONES Y BLOQUES: son
los equivalentes fsicos de los objetos que almacenan
datos.
Un segmento est constituido por
secciones llamadas extensiones, que
son conjuntos contiguos de bloques
Oracle.
DICCIONARIO DE DATOS
Diccionario de Datos (data dictionary): Es un conjunto de tablas de
slo lectura con los metadatos (descripcin del esquema).

Informacin: Nombres de usuarios, seguridad (accesos permitidos,


privilegios, roles...), informacin sobre los objetos, restricciones de
integridad, diversas estadsticas. En general, mantienen informacin sobre
las llamadas ESTRUCTURAS INTERNAS de la BD.
Las tablas del diccionario son propiedad del usuario SYS. El usuario
SYSTEM es propietario de diversas vistas sobre esas tablas, las cuales
pueden ser utilizadas por el resto de los usuarios de la BD.
Slo ORACLE debe escribir y leer en las tablas del diccionario:
Oracle accede cada vez que se ejecuta una sentencia DDL.

Los usuarios podrn acceder a algunas vistas: En general, no se deben

modificar estas vistas.


Componentes de la DD:
Tablas base: Una serie de tablas a las que el servidor de datos accede cada
vez que se procesa una instruccin DDL de SQL o en algunos comandos
DML.
Vistas estticas: Se crean durante la instalacin del RDBMS y decodifican
y resumen la informacin contenida en las tablas base. Tienen el nombre de
estticas porque no mantienen informacin relacionada con las sesiones. Se
dividen en 3 categoras:
Vistas con prefijo USER
Vistas con prefijo ALL
Vistas con prefijo DBA
Vistas dinmicas (o performance views): Incluyen informacin sobre las
condiciones actuales de operacin del RDBMS. La mayor parte son creadas
durante la instalacin y algunas se crean especficamente para monitorear
cierta actividad. Todas se identifican por el prefijo V$.
EJ: La vista dinmica V$_SESSION incluye informacin sobre las sesiones
actuales y la vista V$SYSSTAT provee informacin estadstica sobre el
RDBMS.
Vistas con prefijo USER: Puede utilizarlas cualquier usuario de la DB y se refieren a
objetos posedos por dicho usuario.
Ejemplo:
SELECT * FROM USER_TABLES;
Se desplegar toda la informacin de las tablas del usuario donde se conecto.
Vistas con prefijo ALL: Evidente, las podr usar cualquier usuario y adems aaden
la columna OWNER al resto de informacin. Con estas vistas se puede tener acceso a la
informacin de los objetos que el usuario es dueo adems de los objetos pblicos y los
que el usuario tiene acceso (por pertenecer a un grupo de seguridad o poseer ciertos
privilegios).
Vistas con prefijo DBA: Dan informacin sobre todos los objetos de la DB.
Usualmente tambin tienen la columna OWNER. Slo las puede utilizar el
administrador o usuarios con privilegio SELECT ANY TABLE o pertenezca a un rol que
incluya el privilegio.

Por ejemplo, para ver todas las vistas relacionadas con tablas podramos ejecutar:

SELECT * FROM DICTIONARY WHERE table_name LIKE %TABLE%;


SQL - DEFINICION
Es un lenguaje declarativo de acceso a base de datos
relacionales que permite especificar diversos tipos de
operaciones.
RESEA HISTRICA-SQL

Originalmente SQL fue llamado SEQUEL (Structured English


Query Language) de D.D.Chamberlin y R.F. Boyce (1974) y fue
implementado por primera vez por IBM como interfaz para el
sistema R. SQL como lenguaje de los SGBD, llamado SYSTEM R.
El primer esfuerzo por estandarizarlo fue en 1986, donde
participaron ISO (International Standards Organization) y ANSI
(American National Standards Institute) desarrollando una versin
estndar en 1986, llamada SQL86 o SQL1.
Posteriormente, se expandi al estndar SQL92 o SQL2 en 1992.
Se desarroll SQL3, que incluye conceptos de Base de Datos
orientadas a objetos.
Existen tres tipos de lenguajes que utilizan comandos
SQL as:
Los DCL (Lenguaje de Control de Datos): donde se
autoriza los permisos y roles de los usuarios del
sistema.
Los DDL (Lenguaje de Definicin de Datos) que
permiten crear y definir nuevas bases de datos,
campos e ndices, entre otros objetos.
Los DML (Lenguaje de Manipulacin de Datos) que
permiten generar consultas para ordenar, filtrar y
extraer datos de la base de datos.
SQL- CARACTERISTICAS
Manejo del lgebra y el clculo relacional permitiendo
efectuar consultas con el fin de recuperar -de una
forma sencilla- informacin de inters de una base de
datos, as como tambin hacer cambios sobre ella.
Es un lenguaje de cuarta generacin (4GL).
El lenguaje SQL est compuesto por comandos,
clusulas, operadores y funciones de agregado.
En las versiones inciales de SQL no se incluyo el
concepto de esquema relacional, el cual es una
agrupacin de tablas y otras construcciones que
pertenecen a la misma aplicacin.
Un esquema SQL es identificado por un nombre, e
incluye un identificador de autorizacin, adems de
descriptores para cada elemento en el esquema.
SQL2 tambin usa el concepto de CATALOG
(una coleccin de esquemas en un ambiente
SQL). Un catlogo contiene un esquema especial
INFORMATION_SCHEMA (informacin de todos
los descriptores de elementos de todos los
esquemas)
SQL tambin implementa la integridad
referencial, adems de nuevos tipos de datos, la
creacin de nuevos dominios de datos y las
restricciones en los campos.
ENTORNO DE SQL*PLUS
Es el editor de comandos para la manipulacin de las
sentencias SQL. Permite utilizar herramientas que
facilitan manipular dichas sentencias.
En SQL*PLUS se utilizan dos editores, el primero el que
tiene el sistema operativo donde se instalo (Ejemplo:
WINDOWS, el block de notas) y el segundo es un editor de
lnea, propio de ORACLE.
Las sentencias SQL son almacenadas en el buffer, lo que
hace que en el momento de escribir una nueva sentencia la
anterior se elimine, por eso si se desea conservar las
sentencias se tienen que almacenar antes de la siguiente.
MANEJO DE EDITORES
MANEJO DEL EDITOR DE LNEA: Por ser un editor de
lnea en el momento de dar enter se inicia una nueva lnea
y esto impide que se regrese a las lneas anteriores, lo
mismo que no se puede devolver en la misma lnea con las
teclas de las flechas, al finalizar la sentencia se debe dar
punto y coma (;).
MANEJO DEL EDITOR DEL SISTEMA OPERATIVO:
Para invocar el editor inicialmente se debe haber escrito
una sentencia SQL, y se invoca as:
SQL>ed
Despus abre el block de notas y se puede realizar las
modificaciones que se desean y utilizar las herramientas
de la utilidad, como grabar o abrir un archivo, la
extensin de estos archivos es .txt.
MANEJO DE USUARIOS
Las formas ms comunes de autentificar a un
usuario son:
Por base de datos: la administracin de la
cuenta de usuario, contrasea, que se guarda
encriptada, y la autentificacin es realizada
por Oracle.
Por sistema operativo (autentificacin
externa): la cuenta es mantenida por Oracle
pero la administracin de la contrasea y la
autentificacin de usuario es realizada
externamente.
Parmetro Descripcin
Usuario Debe ser nico respecto a otros nombres de usuario y roles. Cada
usuario tiene asociado un esquema y dentro del mismo cada
objeto debe tener un nico nombre.

Contrasea Un usuario autentificado de forma externa se ha de crear con la


clusula IDENTIFIED EXTERNALLY.
CREACIN: Debe empezar por letras.
DEFAULT TABLESPACE Indica aquel espacio de almacenamiento donde se crearn los
Sintaxis: objetos del esquema del usuario cuando al hacerlo no se indica
ninguno en particular.
CREATE USER <usuario> Si se omite la clusula, los objetos se crean en el espacio
almacenado Por defecto de la base de datos (default user
tablespace) que se indica mediante la sentencia: alter database
IDENTIFIED BY <contrasea>/EXTERNALLY default tablespace ...; si este no se ha especificado el espacio por
defecto es SYSTEM y esto es un error.
DEFAULT TABLESPACE <espacio>
TEMPORARY TABLESPACE Indica el espacio o grupo de espacios de almacenamiento para
TEMPORARY TABLESPACE <espacio>/<grupo_espacios> los segmentos temporales requeridos por el usuario.
No debe indicarse cuota. Si se omite la clusula, el espacio
temporal por defecto es el SYSTEM y esto es un error, a menos
QUOTA <xx>/UNLIMITED ON <espacio> que se haya fijado el valor del espacio temporal por defecto
(default temporary tablespace): alter database default temporary
PROFILE <perfil> tablespace ...; .
QUOTA Indica la cantidad mxima de espacio que un usuario puede
PASSWORD EXPIRE utilizar en un determinado espacio de almacenamiento.
Puede indicarse cuota en mltiples espacios al tiempo.
ACCOUNT LOCK/UNLOCK; El creador del usuario puede indicar cuota sobre espacios de
almacenamiento aunque l no las posea.
Ejemplo: Por defecto no se tiene cuota en ningn espacio de
Crear un usuario llamado jdiaz, donde los parmetros que debe tener almacenamiento. Indicando UNLIMITED, es ilimitado el espacio a
usar. Pueden usarse distintas abreviaturas para indicar el
son los siguientes: contrasea el mismo nombre, tablespace por tamao: kilobytes (K), megabytes (M), gigabytes (G), terabytes
defecto tesoreria y el temporal temp, la cuenta debe estar (T), petabytes (P), o exabytes (E).
Puede revocarse el acceso a un espacio de almacenamiento
desbloqueada y el password debe expirar cuando ingrese. asignando cuota cero en el mismo. Los objetos ya creados
CREATE USER jdiaz permanecen pero no pueden crecer ni crearse ninguno ms.
IDENTIFIED BY jdiaz PROFILE Indica el perfil a asignar al usuario (especifica limitaciones en
DEFAULT TABLESPACE tesoreria recursos del sistema y restricciones). Si se omite se asigna el
perfil DEFAULT.
TEMPORARY TABLESPACE temp
PASSWORD EXPIRE Fuerza al usuario a cambiar la clave antes de conectarse a la
PASSWORD EXPIRE base de datos.
ACCOUNT UNLOCK; ACCOUNT ACCOUNT LOCK, bloquea la cuenta de usuario y deshabilita el
acceso. ACCOUNT UNLOCK, desbloquea la cuenta de usuario y
permite al acceso.
Parmetro Descripcin
Usuario Nombre del usuario
Contrasea Un usuario autentificado de forma externa se ha de crear con la
clusula IDENTIFIED EXTERNALLY.
Debe empezar por letras.
DEFAULT TABLESPACE Indica aquel espacio de almacenamiento donde se crearn los
objetos del esquema del usuario cuando al hacerlo no se indica
ninguno en particular.
Si se omite la clusula, los objetos se crean en el espacio
almacenado Por defecto de la base de datos (default user
tablespace) que se indica mediante la sentencia: alter database
MODIFICACIN default tablespace ...; si este no se ha especificado el espacio
por defecto es SYSTEM y esto es un error.
Sintaxis:
TEMPORARY TABLESPACE Indica el espacio o grupo de espacios de almacenamiento para
ALTER USER <usuario> los segmentos temporales requeridos por el usuario.
No debe indicarse cuota. Si se omite la clusula, el espacio
temporal por defecto es el SYSTEM y esto es un error, a menos
IDENTIFIED BY <contrasea>/EXTERNALLY que se haya fijado el valor del espacio temporal por defecto
(default temporary tablespace): alter database default
DEFAULT TABLESPACE <espacio> temporary tablespace ...; .

TEMPORARY TABLESPACE <espacio>/<grupo_espacios> QUOTA Indica la cantidad mxima de espacio que un usuario puede
utilizar en un determinado espacio de almacenamiento.
Puede indicarse cuota en mltiples espacios al tiempo.
QUOTA <xx>/UNLIMITED ON <espacio> El creador del usuario puede indicar cuota sobre espacios de
almacenamiento aunque l no las posea.
DEFAULT ROLE <role>/ALL/ALL EXCEPT <role>/NONE Por defecto no se tiene cuota en ningn espacio de
almacenamiento. Indicando UNLIMITED, es ilimitado el espacio a
PROFILE <perfil> usar. Pueden usarse distintas abreviaturas para indicar el
tamao: kilobytes (K), megabytes (M), gigabytes (G), terabytes
(T), petabytes (P), o exabytes (E).
PASSWORD EXPIRE Puede revocarse el acceso a un espacio de almacenamiento
asignando cuota cero en el mismo. Los objetos ya creados
ACCOUNT
Ejemplo: LOCK/UNLOCK; permanecen pero no pueden crecer ni crearse ninguno ms.

Al usuario jdiaz modificarle el espacio de tabla a inventarios, forzar a


que cambie nuevamente la contrasea. DEFAULT ROLE Indica los roles otorgados por defecto al usuario en la conexin.
ALTER USER jdiaz Se refiere a roles otorgados de forma directa al usuario (con la
sentencia GRANT).
DEFAULT TABLESPACE inventarios Oracle activa los roles indicados sin necesidad de especificar sus
PASSWORD EXPIRE; contraseas.
Al crear el usuario los roles por defecto son todos los asignados,
se limitan posteriormente mediante ALTER USER.

PROFILE Indica el perfil a asignar al usuario (especifica limitaciones en


recursos del sistema y restricciones). Si se omite se asigna el
perfil DEFAULT.
PASSWORD EXPIRE Fuerza al usuario a cambiar la clave antes de conectarse a la
base de datos.
ACCOUNT ACCOUNT LOCK, bloquea la cuenta de usuario y deshabilita el
acceso. ACCOUNT UNLOCK, desbloquea la cuenta de usuario y
permite al acceso.
ELIMINACIN
Sintaxis:
DROP USER <usuario> <CASCADE>;
Se debe tener en cuenta:
Al borrar un usuario el esquema asociado, con todos sus objetos,
desaparecen. Una posible solucin para que permanezca el
usuario y los objetos pero impedir la conexin es revocar el
privilegio CREATE SESSION.
No es posible eliminar un usuario que permanezca conectado a
la base de datos. Debe esperarse a que concluya o forzar su
terminacin (ALTER SYSTEM KILL SESSION).
Es necesario tener el privilegio de sistemas DROP USER.
Oracle no borra esquemas de usuario no vacos a menos que se indique
CASCADE, realiza un borrado de objetos previo, o se hayan eliminado con
anterioridad los objetos.
Es conveniente estudiar las implicaciones que sobre otros esquemas tiene el
borrado del usuario y de su esquema:
Se invalida vistas o sinnimos para objetos en el esquema borrado.
Se invalidan procedimientos almacenados, funciones, o paquetes que
consulten objetos pertenecientes al esquema eliminado.
Las vistas materializadas en otros esquemas basados en tablas
pertenecientes al esquema borrado no podrn refrescarse.
Se borran todos los disparadores, triggers, del esquema.
No se eliminan roles creados por el usuario.
CARACTERISTICAS
Se encarga del manejo de privilegios y roles de los
usuarios de la Base de datos. Lo utiliza el DBA
para asignar o no privilegios y roles a los
usuarios.
Las sentencias utilizadas son:
GRANT: permite agregar privilegios y roles a los
usuarios.
REVOKE: elimina los privilegios y roles a los
usuarios.
PRIVILEGIOS
Es el derecho a ejecutar un tipo determinado de sentencia
SQL o a acceder a un objeto de otro usuario. Pueden
asignarse a usuarios o, preferiblemente, a roles. Es
importante no excederse en la concesin de privilegios.
Se distinguen dos tipos:
De sistema: Permite realizar determinadas acciones en
la base de datos (Por ejemplo, crear espacios de
almacenamiento, crear usuarios, ) o en cualquier
esquema.
Sobre objetos: Permite a un usuario acceder y
manipular o ejecutar objetos concretos (tablas, vistas,
secuencias, procedimientos, funciones o paquetes).
Los privilegios del Sistema son:

DATABASE: ALTER DATABASE, ALTER SYSTEM y AUDIT SYSTEM.


DATABASE LINKS: CREATE DATABASE LINK, CREATE PUBLIC DATABASE LINK y DROP
PUBLIC DATABASE LINK.
TABLAS: INDICES, CREATE TABLE, CREATE ANY TABLE / CREATE ANY INDEX, ALTER
ANY TABLE / ALTER ANY INDEX, DROP ANY TABLE / DROP ANY INDEX y DELETE ANY
TABLE / DROP ANY TABLE / INSERT ANY TABLE /UPDATE ANY TABLES/ SELECT ANY
TABLE
PROCEDURE: CREATE PROCEDURE, CREATE ANY PROCEDURE, ALTER ANY
PROCEDURE, DROP ANY PROCEDURE y EXECUTE ANY PROCEDURE.
PROFILES: CREATE PROFILE, ALTER PROFILE y DROP PROFILE.
ROLES: CREATE ROLE, ALTER ANY ROLE, DROP ANY ROLE y GRANT ANY ROLE
ROLLBACK SEGMENTS: CREATE ROLLBACK SEGMENT, ALTER ROLLBACK SEGMENT y
DROP ROLLBACK SEGMENT.
SESSIONS: CREATE SESSION y ALTER SESSION.
TABLESPACES : CREATE TABLESPACE, ALTER TABLESPACE, DROP TABLESPACE,
MANAGE TABLESPACE y UNLIMITED TABLESPACE.
USUARIO: CREATE USER, ALTER USER y DROP USER.
OTROS: ANALYZE ANY, AUDIT ANY y COMMENT ANY TABLE, y hay ms.
La clusula ANY en cualquier privilegio indica que los usuarios a los que se les
conceda tienen dicho privilegio en cualquier esquema.
No existe el privilegio CREATE INDEX, esta incluido en CREATE TABLE con
el privilegio ANALYZE. Los privilegios como CREATE TABLE o CREATE
PROCEDURE incluyen el borrado de dichos objetos.
UNLIMITED TABLESPACE no puede otorgarse a un rol. Este privilegio
permite usar una cantidad ilimitada de espacio en cualquier espacio de
almacenamiento de la base de datos y se antepone a cualquier cuota explcita
asignada al usuario , esto es un grave error.
Para que un usuario pueda otorgar un priv.de sistema bien debe haberse
otorgado con ADMIN OPTION, permite a aquel a quien se le concede el
privilegio poder otorgarlo (peligro!), o haber sido concedido el privilegio GRANT
ANY PRIVILEGE.
OTORGAR PRIVILEGIOS
Sintaxis:
GRANT <privilegio>/ALL PRIVILEGES TO Parmetro Descripcin
Privilegio Es el nombre del privilegio a otorgar.
<usuario>/<rol>/PUBLIC; ALL PRIVILEGES Se otorgan todos los privilegios de
sistema.
Usuario o rol Se da el nombre de usuario o rol al que
se le da el privilegio.
GRANT <privilegio>/ALL PRIVILEGES TO PUBLIC Otorga el privilegio a todos los usuarios
WITH ADMIN Permite a los usuarios que se les otorga
<usuario>/<rol>/PUBLIC WITH ADMIN OPTION el privilegio poder asignarlo a otros
OPTION; usuarios.

EJEMPLO:
Al usuario jdiaz asignarle todos los privilegios y que el
pueda otorgar privilegios a otros usuarios.

GRANT ALL PRIVILEGES TO jdiaz


WITH ADMIN OPTION;
REVOCAR PRIVILEGIOS
Sintaxis:
REVOKE <privilegio>/ALL PRIVILEGES
FROM <usuario>/<rol>/PUBLIC;

Cualquier usuario con la opcin ADMIN OPTION sobre un privilegio puede


revocarlo. Quien lo hace no tiene porque ser el usuario que originalmente lo
otorgo. Al retirar ciertos privilegios determinados objetos pueden quedar
inconsistentes (procedimientos o vistas consultadas al privilegio SELECT ANY
TABLE). En el caso de ADMIN OPTION no hay un efecto en cascada cuando
se retira un privilegio referente a operaciones DDL (como el CREATE TABLE);
si lo hay cuando se revoca un privilegio referente a operaciones DML (como
SELECT ANY TABLE).
Si se retira un privilegio de sistema de PUBLIC, pero existen usuarios a los que
se ha otorgado aquel directamente o a travs de roles, estos siguen pudindolo
usar.
PRIVILEGIOS SOBRE OBJETOS
TABLAS: ALTER - DELETE
FLASHBACK, INDEX - INSERT
REFERENCES y SELECT - UPDATE
VISTAS: DELETE - FLASHBACK
INSERT y REFERENCES - SELECT -
UPDATE
SECUENCIAS: ALTER - SELECT

FUNCIONES, PAQUETES Y
PROCEDIMIENTOS: EXECUTE
OTORGAR PRIVILEGIOS SOBRE
OBJETOS
Sintaxis:
GRANT <privilegio>/ALL PRIVILEGES <columna>/ON <esquema>.objeto
TO <usuario>/<rol>/PUBLIC;

GRANT <privilegio>/ALL PRIVILEGES ON <esquema>.objeto


TO <usuario>/<rol>/PUBLIC WITH GRANT OPTION;

Con ALL PRIVILEGES se otorgan todos los privilegios sobre el objeto, esto crea
inseguridad, lo mismo con PUBLIC porque se otorga el privilegio a todos los usuarios y
mucho ms con la clusula GRANT OPTION permite a aquel a quien se le concede el
privilegio poder otorgarlo.

Ejemplos:
GRANT ALL PRIVILEGES ON nomina.retenciones
TO gestor WITH GRANT OPTION;
GRANT REFERENCES (dni_empleado), UPDATE (dni_empleado, sueldo_base)
ON nomina.empleados TO gestor;
REVOCAR PRIVILEGIOS SOBRE
OBJETOS

Sintaxis:
REVOKE <privilegio>/ALL PRIVILEGES ON <esquema>.objeto
FROM <usuario>/<rol>/PUBLIC <CASCADE CONSTRAINTS>;

CASCADE CONSTRAINTS elimina cualquier clusula de integridad referencial que


aquel a quien se retiran los permisos haya definido usando REFERENCES o ALL
PRIVILEGES.
Quien otorgo privilegios solo puede revocarlos a aquellos usuarios a quienes se los ha
concedido. En el caso de GRANT OPTION hay un efecto en cascada cuando se retira
un privilegio.

Ejemplos:
REVOKE ALL PRIVILEGES ON nomina.retenciones;
ROLES
Es un grupo de privilegios, de sistema o sobre objetos,
a los que se les da un nombre y pueden ser asignados
a otros usuarios y roles.

Caractersticas:
Pueden otorgarse a cualquier usuario o rol, pero no a
si mismo ni tampoco de forma circular.
Pueden tener contrasea.

Su nombre es nico en la base de datos, distinto a


cualquier otro nombre de usuario o rol.
No pertenecen a ningn esquema.
BENEFICIOS DE LOS ROLES

Simplifican el manejo de privilegios. Los permisos pueden


asignarse a un rol y este a los diferentes usuarios.
Manejo de privilegios dinmico. Si se modifican los privilegios
asociados al rol, todos los usuarios que lo posean los adquieren de
forma inmediata.
Disponibilidad de privilegios selectiva. Roles asignados a un
usuario pueden ser activados o desactivados temporalmente.
Mejora aplicaciones. Cuando un usuario ejecuta una determinada
aplicacin puede activarse, o desctivarse, selectivamente roles en
funcin de nuestro inters. Los roles tambin pueden protegerse
con claves y estos activarse slo si la aplicacin suministra la
correcta.
Mejora de la productividad. El uso de roles disminuye el numero
de grants almacenados en el diccionario de datos.
ROLES PREDEFINIDOS
Oracle proporciona roles predefinidos como ayuda a la administracin de
base de datos, entre los que se encuentran:
CONNECT. Incluye slo el privilegio CREATE SESSION.
RESOURCE. Incluye CREATE CLUSTER, CREATE INDEXTYPE,
CREATE OPERATOR, CREATE PROCEDURE, CREATE SEQUENCE,
CREATE TABLE, CREATE TRIGGER y CREATE TYPE.
DBA. Todo privilegio de sistema WITH ADMIN OPTION.
EXP_FULL_DATABASE. Privilegios para realizar exportaciones
completas e incrementales de la base de datos.
IMP_FULL_DATABASE. Idem para importaciones completas.
DELETE_CATALOG_ROLE. Privilegio de borrado en la tabla de auditora
de sistema (AUD$).
EXECUTE_CATALOG_ROLE. Privilegio de ejecucin sobre objetos en el
diccionario de datos.
SELECT_CATALOG_ROLE. Privilegio de consulta sobre objetos del
diccionario de datos.
Se recomienda crear roles especficos en cada
base de datos y asignarles los permisos
necesarios, evitando el uso de roles predefinidos,
con lo que no surgirn problemas si estos quedan
obsoletos en futuras versiones.
CREACIN DE ROLES

Sintaxis:
CREATE ROLE <rol> IDENTIFIED BY <contrasea>;

CREATE ROLE <rol> NOT IDENTIFIED/<>;

La clusula IDENTIFIED BY indica como debe ser autorizado


antes de usarse por un usuario al que se la ha otorgado.

Ejemplo:

Crear el rol de coordinador y debe tener como contrasea


as344dd.
CREATE ROLE coordinador IDENTIFIED BY as344dd;
MODIFICACIN DE ROLES
Un rol solo puede modificarse para cambiar su mtodo de
autentificacin y para eso debe poseer el privilegio de sistema
ALTER ANY ROLE o haber sido otorgado el rol con la opcin
ADMIN.
No se ven afectadas las sesiones en las que el rol est ya activo.
Sintaxis:
ALTER ROLE <rol> NOT IDENTIFIED/
IDENTIFIED BY <contrasea>;

Ejemplo:
Al rol coordinador cambiar la contrasea por dfgsd3452k.

ALTER ROLE coordinador IDENTIFIED BY dfgsd3452k;


ASIGNAR ROLES A USUARIOS
Sintaxis:
GRANT <rol> TO <usuario>/<rol>/PUBLIC;

GRANT <rol> TO <usuario>/<rol>/PUBLIC WITH ADMIN OPTION;

Para que un usuario pueda otorgar un rol debe habrsele concedido con
ADMIN OPTION, poseer el privilegio GRANT ANY ROLE, o haberlo
creado y el usuario que crea el rol implcitamente lo tiene asignado con
ADMIN OPTION.

Ejemplo:
Asignarle el rol de coordinador jdiaz con la opcin de administrador del
rol.

GRANT coordinador TO jdiaz WITH ADMIN OPTION;


ROLES POR DEFECTO
Un rol por defecto es aquel que automticamente se activa al conectarse y con
la sentencia ALTER USER se limitan los roles por defecto asignados a un
usuario. La clusula puede slo indicar roles otorgados directamente al usuario
con una sentencia GRANT.

Sintaxis:
ALTER USER <usuario> DEFAULT ROLE <rol1>,<roln>/
ALL [EXCEPT rol1 [,role2]... ] / NONE;

La clusula DEFAULT ROLE se aplica solo a los roles otorgados de forma


directa, y no para roles no asignados al usuario o asignados a travs de otros
roles.
ALL hace que todos los roles sean por defecto excepto aquellos indicados en la
clusula EXCEPT.
EXCEPT indica que los roles que le siguen no sern por defecto.
NONE hace que ninguno de los roles sea por defecto, y los nicos privilegios al
efectuarse la conexin sern aquellos asignados directamente.
REASIGNACIN DE ROLES

Puede hacerlo cualquier usuario con la opcin ADMIN


OPTION para un rol, tambin aquellos usuarios con el
privilegio GRANT ANY ROLE (pueden revocar cualquier
rol).

Sintaxis:
REVOKE <rol1>, <roln>
FROM <usuario>|<rol>|PUBLIC
[, <usuario>|<rol>} ]...

Con PUBLIC se reasigna el rol de todos los usuarios.


BORRADO DE ROLES

Debe poseerse el privilegio DROP ANY ROLE o haber sido


concedido el rol con ADMIN OPTION.

Sintaxis:
DROP ROLE <rol>;

Al borrar un rol se reasigna de todos los usuarios y roles, y


se elimina de la base de datos. Las sesiones en las que el rol
est activo no se ven afectadas, pero ninguna otra lo podr
usar.
ACTIVACIN Y DESACTIVACIN
DE ROLES
Durante una sesin, el usuario o una aplicacin puede usar
la sentencia SET ROLE para modificar los roles activos en
la sesin. Previamente los roles deben haber sido asignados
al usuario.
Al crear un usuario todos los roles asignados son por
defecto, a menos que se limite con ALTER USER.
No podr hacerse uso de los privilegios otorgados a travs
del rol inactivo a menos que tambin se hayan otorgado de
forma directa o a travs de otros roles.
En la siguiente sesin, los roles activos vuelven a ser los
roles por defecto y la vista SESSION_ROLES informa de
aquellos roles que, para el usuario actual, estn activos en
un momento determinado.
Sintaxis:
SET ROLE <rol> [ IDENTIFIED BY <contrasea>]
[, <rol> [ IDENTIFIED BY <contrasea>]]/
ALL [ EXCEPT <rol1> , ,<roln> ] ...]
/NONE

IDENTIFIED BY indica la contrasea del rol al activarlo.


ALL activa todos los roles excepto los que aparecen en la clusula
EXCEPT (no puede usarse esta opcin para activar roles con
contrasea).
NONE desactiva todos los roles en la sesin (solo son activos los
privilegios otorgados directamente).
VISTAS: USUARIOS, ROLES Y
PRIVILEGIOS

Vista Descripcin
DATABASE_PROPERTIES Propiedades de la bd
DBA_USERS Usuarios de la bd
DBA_ROLES Roles existentes en la bd
DBA_ROLE_PRIVS Roles concedidos a usuarios y roles
DBA_SYS_PRIVS Privilegios de sistema a usuarios y roles
DBA_TAB_PRIVS Permisos sobre objetos en la bd
DBA_TABLESPACE_GROUPS Grupos de espacios temporales
DBA_COL_PRIVS Permisos sobre columnas de objetos en bd
DBA_TS_QUOTAS Cuotas de espacio para usuarios
DBA_PROFILES Perfiles en la bd
ROLE_ROLE_PRIVS Roles concedidos a otros roles.
ROLE_SYS_PRIVS Privilegios de sistema concedidos a roles
ROLE_TAB_PRIVS Privilegios sobre objetos concedidos a roles.
DBA_CONNECT_ROLE_GRANTEES Usuarios con privilegio CONNECT
USER_PASSWORD_LIMITS Parmetros contrasea usuario
USER_RESOURCE_LIMITS Lmites de recursos por usuario.
SESSION_PRIVS Privilegios disponibles en la sesin
SESSION_ROLES Roles activos en la sesin
V$SESSION Informacin de sesin.
LENGUAJE DE DEFINICION
DE DATOS DDL
CREACION DE TABLAS
SINTAXIS
CREATE TABLE nombre_tabla
(nombre_campo TIPO_DATO [CONSTRAINT nombre_const TIPO_CONST]
,
[CONSTRAINT nombre_const TIPO_CONST] , ,
);
PARAMETROS:
NOMBRE
Debe iniciar en letras, mximo 30 caracteres, y solo acepta
caracteres, letras y numeros.
No pueden existir objetos con el mismo nombre. (Usuarios, Tablas y
Constraints)
TIPO_DATO
Caracteres:
VARCHAR(n): Longitud Variable.
CHAR(n): Longitud Fija
LONG: Longitud variable mximo 2 Gigabytes
Numrico:
NUMBER(d,s): d indica el nmero de dgitos y s el numero de
dgitos decimales.
Fecha/Hora:
DATE
TIPO_CONSTRAINT
Campo:
NOT NULL nn
Tabla:
PRIMARY KEY pk
[FOREIGN KEY ] REFERENCES fk
UNIQUE uk
CHECK ck
DEFAULT df
TIPOS DE DATOS

Tipo de Dato Descripcin


VARCHAR2(tamao) Caracter variable
CHAR(tamao) Carcter de longitud fija
NUMBER(d,s) Dato numrico
DATE Fecha y hora
LONG Carcter de longitud variable (hasta 2
GB)
TIPS PARA CREAR TABLAS
Se debe empezar por tablas que no tienen llaves
forneas, ya que ORACLE tiene implementado
Integridad Referencial.
Crear al final las tablas formadas por una relacin.
Es conveniente solo crear campos numricos cuando
se necesitan hacer operaciones con ellos, ya que
ocupan mayor espacio que los tipos de dato carcter.
Si no tiene ningn constraint no se coloca la palabra
CONSTRAINT en la construccin del campo.
EJEMPLO CREATE TABLE empresa
(nit VARCHAR(10) CONSTRAINT emp_nit_pk PRIMARY KEY,
nombre VARCHAR(30) CONSTRAINT emp_nom_nn NOT NULL,
direccion VARCHAR(40) CONSTRAINT emp_dir_nn NOT NULL,
Telefono NUMBER(20) );

CREATE TABLE representante


(cedula VARCHAR(20) CONSTRAINT rep_ced_pk PRIMARY KEY,
nombre VARCHAR(30) CONSTRAINT rep_nom_nn NOT NULL,
apellido VARCHAR(30) CONSTRAINT rep_ape_nn NOT NULL,
direccion VARCHAR(40) CONSTRAINT rep_dir_nn NOT NULL,
Telefono NUMBER(20),
Nit_empresa VARCHAR(10) CONSTRAINT rep_nit_emp_nn NOT NULL
CONSTRAINT rep_nit_emp_uk UNIQUE
CONSTRAINT rep_nit_emp_fk REFERENCES empresa(nit) );

CREATE TABLE pedido


(numero VARCHAR(20),
Fecha DATE CONSTRAINT ped_num_nn NOT NULL,
nit_empresa VARCHAR(10) CONSTRAINT ped_nit_emp_nn NOT NULL,
CONSTRAINT ped_num_pk PRIMARY KEY (numero),
CONSTRAINT ped_nit_emp_fk FOREIGN KEY (nit_empresa) REFERENCES
empresa (nit));
MODIFICACION DE TABLAS
Agregar campos
ALTER TABLE nombre_tabla
ADD(nombre_campo tipo_dato [CONSTRAINT nombre_const tipo_const, ])
Ejemplo: para empresa colocar fax v(30) obligatorio.
ALTER TABLE empresa
ADD fax VARCHAR(30) CONSTRAINT emp_fax_nn NOT NULL;
Nota: Si la tabla tiene datos no se puede agregar con el constraint de not null,
agregar el campo sin el constraint, luego llenar los datos y al final colocar el
not null.
Modificar campos: tipo y tamao o agregar NOT NULL
ALTER TABLE nombre_tabla
MODIFY(nombre_campo [tipo_dato] [CONSTRAINT nombre_const tipo_const,
])
Ejemplo: para empresa colocar nombre v(50) y telfono colocarlo
obligatorio.
ALTER TABLE empresa
MODIFY (nombre VARCHAR(50), telefono CONSTRAINT emp_tel_nn NOT
NULL);
Nota: Integridad referencial: primary key debo modificar foreign key.
Modificar el nombre del campo
ALTER TABLE nombre_tabla
RENAME COLUMN nombre_campo TO nombre_campo_n
Ejemplo: Cambiar el nombre de empresa a razn_social.
ALTER TABLE empresa
RENAME COLUMN nombre TO razon_social;
Agregar Constraint: Menos NOT NULL
ALTER TABLE nombre_tabla
ADD CONSTRANT nombre_const tipo_cont(nombre_campo)
Ejemplo: Colocar razn_social unico.
ALTER TABLE empresa
ADD CONSTRAINT emp_raz_uk UNIQUE(razon_social);

ALTER TABLE empresa


ADD CONSTRAINT emp_val_ck CHECK (valor > 800000);
Eliminar constraint (todos)
ALTER TABLE nombre_tabla
DROP CONSTRAINT nombre_const;
Ejemplo: colocar opcional la direccin de empresa.
ALTER TABLE empresa
DROP CONSTRAINT emp_dir_nn;
Eliminar una columna
ALTER TABLE nombre_tabla
DROP COLUMN nombre_columna;
NOTA: Tener presente integridad referencial para eliminar campos
llaves franeas y/o llaves primarias.
Consultar los constraints
SELECT CONTRAINT_NAME
FROM USER_CONSTRAINTS
WHERE TABLE_NAME=NOMBRE_TABLA;
NOTA: NOMBRE_TABLA debe SIEMPRE escribirse en mayscula.
Cambiar el nombre de una tabla
RENAME nombre_tabla TO nombre_tabla_nuevo
Ejemplo: cambiar el nombre de empresa por entidad.
RENAME empresa TO entidad;
Eliminar una tabla
DROP TABLE nombre_tabla [CASCADE CONSTRAINT]
[PURGE];
[CASCADE CONSTRAINT]: se utiliza cuando hay llaves
franeas en otras tablas.
Ejemplo: eliminar empresa.
DROP TABLE empresa; No deja eliminar la tabla.
DROP TABLE empresa CASCADE CONSTRAINT;

flashback table tut to before drop;


ELIMINAR TABLAS
Sintaxis:
DROP TABLE nombreTabla [CASCADE CONSTRAINT] [PURGE];

Para eliminar una tabla se debe tener en cuenta la integridad referencial ya


que si existe alguna tabla que tenga la llave fornea de ella, se debe utilizar la
clusula CASCADE CONSTRAINT, de lo contrario no hay necesidad de ella.
Hay que recordar que esta clusula elimina es el constraint que referencia a las
tablas, ya que el campo se conserva.

EJEMPLO: Se supondr que eliminamos la tabla grabacin y la tabla


compositomusica.
SQL>DROP TABLE compositormusica;
SQL>DROP TABLE grabacion CASCADE CONSTRAINT;

Se observa en el ejemplo que la primera tabla no necesita de la instruccin


CASCADE CONSTRAINT, ya que no tiene llaves forneas en otras tablas, y la
segunda si ya que tiene llave fornea en la tabla grabacionMusica.
RENOMBRAR UNA TABLA
Sintaxis:
RENAME TABLE nombreTabla TO
nombreNuevoTabla;

EJEMPLO: Supondremos que a la tabla


grabacin la llamaremos disco.

RENAME TABLE grabacion TO disco;


Para poder consultar la estructura de una tabla se
utiliza el comando DESCRIBE, por ser un comando
de SQL*Plus no necesita de punto y coma al final, as:
Comando:
DESC nombre_tabla
Para ver las tablas creadas en el usuario:
Sintaxis:
SELECT *
FROM tab;

Вам также может понравиться