SlideShare a Scribd company logo
1 of 28
Download to read offline
Jaime Amigo P. © 2006, Santiago - Chile
Instituto Profesional DuocUC
Escuela de Ingeniería
Administrando Esquemas
2
Instituto Profesional DuocUC
Escuela de Ingeniería
Objetivos
Después de completar esta lección, usted deberá saber:
• Crear y modificar tablas
• Definir constraints
• Ver los atributos de una tabla
• Ver el contenido de una tabla
• Crear indices y vistas
3
Instituto Profesional DuocUC
Escuela de Ingeniería
¿Qué es un Schema?
Esquema HR
Usuario HR
propietario
Qué es un Schema?
Un esquema es una colección de objetos de base de datos propiedad de un usuario en
particular. Un esquema tiene el mismo nombre que el usuario propietario del esquema,
Los objetos del esquema (schema objects) son estructuras lógicas directamente
referenciadas a los datos de la base de datos. Los objetos esquema incluyen
estructuras tales como tablas, vistas e índices.
Nota: No hay relación entre un tablespace y un esquema. Los objetos en un esquema
pueden pertenecer a diferentes tablespaces. Objetos en el mismo esquema pueden ser
de diferentes tablespaces y un tablespace contener objetos de diferentes esquema.
Se pueden crear y manipular objetos esquemas usando SQL o Enterprise Manager.
Cuando se usa Enterprise Manager, se genera un script SQL de la instrucción que se
ha ejecutado en la interfase gráfica.
4
Instituto Profesional DuocUC
Escuela de Ingeniería
Esquemas
Los esquemas son creados como parte del proceso
de creación de base de datos:
• SYS
• SYSTEM
• Esquema de ejemplos
Esquemas
Cuando se crea una base de datos, un número de esquemas es creado con ella. Hay dos
motivos de importancia:
• SYS schema: Todas las tablas base y vistas que constituyen el diccionario de la bases
de datos son creados con el schema SYS. El diccionario de datos es una colección de
tablas que describen la base de datos Oracle. El diccionario de datos es creado en el
tablespace SYSTEM cuando la base de datos es creada y es modificado por el Oracle
Server cuando una sentencia DLL (Data Definition Language) es ejecutada. El diccionario
de datos contiene información sobre usuario, objetos esquema y estructuras de
almacenamiento.
Se puede usar el diccionario de datos como una referencia de sólo lectura sobre la
información de la base de datos. Cuando se usa Enterprise Manager se accede a las
tablas del diccionario de datos a través de vistas.
Los objetos en el esquema SYS nunca deben ser modificados por ningún usuario o
administrador de base de datos y no se debe crear ningúna tabla en el esquema del
usuario SYS.
• SYSTEM schema: Contiene tablas y vistas adicionales que almacenan información
administrativa, como tablas internas y vistas utilizadas por varias opciones de Oracle y
sus herramientas. No se deben crear objetos adicionales en el esquema SYSTEM.
5
Esquemas (continuación)
Durante la instalación de una base de datos Oracle, el esquema de ejemplos se instala
automáticamente. El esquema de ejemplos sirve para proveer una plataforma común
de ejemplos en la documentación Oracle y cursos de capacitación. Ellos son un
conjunto de esquemas interrelacionados que incluyen lo siguiente:
• HR: Esquema de recursos humanos (Human Resources) para introducir tópicos
básicos. Una extensión de este esquema soporta demostraciones de Oracle
Internet Directory.
• OE: El esquema de ingreso de ordenes (Order Entry), es para abarcar materias
de mediana complejidad. Una gran variedad de tipos de datos esta disponible en
el esquema OE. El subsquema OC (Catalogo en línea) es una colección de
objetos relacionales de base de datos construidos dentro del esquema OE.
• PM: El esquema de Medios de Productos (Product Media) esta dedicado a tipos
de datos multimedia.
• QS: El esquema de Colas de Embarque (Queued Shipping) contiene un conjunto
de esquemas que son usados para demostrar las capacidades de Encolamiento
Avanzado de Oracle
• SH: El esquema de Ventas Históricas (Sales History) está diseñado para permitir
demostraciones con grandes cantidades de datos. Una extensión a este esquema
provee soporte a procesamiento analítico avanzado (advanced analytic
processing).
6
Instituto Profesional DuocUC
Escuela de Ingeniería
Accesando Objetos de Esquema
Click en un link para
acceder a objetos de
esquemas.
Accesando Objetos Esquemas
Es posible acceder a diversos tipos de objetos esquemas desde la región de Enterprise
Manager destinada a Administración (Administration).
Después de cliquear uno de estos links, una página de resultados es desplegada. En la
región Search se puede ingresar el nombre de un esquema y nombre de objeto
específico a buscar. En resumen, es posible buscar otros tipos de objetos
seleccionando el tipo de objeto en el menú disponible. Este menú, incluye tipos
adicionales que no son mostrados en los links de la página de administración de base
de datos.
7
Instituto Profesional DuocUC
Escuela de Ingeniería
Nombrando Objetos de Bases de Datos
• Nombres deben ser desde 1 a 30 bytes de largo, salvo
estas excepciones:
– Nombres de bases de datos están limitados a 8 bytes
– Nombres de links de bases de datos pueden tener hasta
128 bytes
• Los nombres no pueden ser palabras reservadas de
Oracle.
• Los nombres deben comenzar con caracteres
alfanuméricos del conjunto de caracteres de la base
de datos.
Nombrando Objetos de Bases de Datos
Cuando usted nombra un objeto en la base de datos, tiene la opción de encerrar el nombre
entre comillas dobles (“ “). Si usted hace esto, puede quebrantar varias reglas de
nombramiento, mencionadas anteriormente. Sin embargo, no se recomienda, porque si el
nombre de un objeto esta entre comillas dobles, cada vez que usted debe referenciarlo, deberá
hacerlo con la referencia de las comillas dobles. Por ejemplo, si el nombre de una tabla es
“Local_Temp”, usted deberá hacer lo siguiente:
SQL> select * from "Local_Temp";
TEMP_DATE LO_TEMP HI_TEMP
--------- ---------- ----------
01-DEC-03 30 41
Si usted tipea lo siguiente:
SQL> select * from "local_temp";
select * from "local_temp"
*
ERROR at line 1:
ORA-00942: table or view does not exist
Los nombres sin comillas son almacenados en mayúsculas y no son case sensitive. Cuando
una sentencia SQL es procesada, los nombres sin comillas son todos convertidos a
mayúsculas.
8
Instituto Profesional DuocUC
Escuela de Ingeniería
Nombrando Objetos de Bases de Datos
• Nombres solo pueden contener
– Caracteres alfanuméricos del conjunto de
caracteres de la base de datos
– El underscore (_)
– Signo Dolar ($)
– Signo de Libra (#)
• Dos objetos no pueden tener el mismo nombre
sobre el mismo espacio de nombres
Nombrando Objetos de Bases de Datos (continuación)
Los identificadores solo pueden contener caracteres alfanuméricos del conjunto de
caracteres de la bases de datos y el underscore (_), el signo dólar ($), and y #. Los
links de bases de datos pueden contener punto (.) y aroba (@). No se recomienda
utilizar $ y #.
9
Instituto Profesional DuocUC
Escuela de Ingeniería
Espacio de Nombres de Objetos
Los siguientes tienen
su propio espacio de
nombres:
• Indexes
• Constraints
• Clusters
• Database triggers
• Private database
links
• Dimensions
Los siguientes estan en el
mismo espacio de nombres:
• Tables
• Views
• Sequences
• Private synonyms
• Stand-alone procedures
• Stand-alone stored
functions
• Packages
• Materialized views
• User-defined types
Espacio de Nombres de Objetos
Oracle utiliza espacio de nombres (namespaces) para resolver referencias del objeto del
esquema. Cuando usted se refiere a un objeto en una declaración SQL, Oracle considera el
contexto de la declaración SQL y localiza el objeto en el namespace apropiado. Después de
localizar el objeto, realiza la operación especificada por la declaración en el objeto. Si el
nombre del objeto no puede ser localizado en el espacio de nombres apropiados, Oracle
retorna un error.
Ya que tablas y vistas están en el mismo espacio de nombres, una tabla y una vista en el
mismo esquema no pueden tener el mismo nombre. Sin embargo, tablas e índices están en
diferentes espacios de nombres. De esta manera, una tabla y un índice en el mismo esquema
pueden tener el mismo nombre.
Cada esquema en la base de datos tiene su propio espacio de nombres para los objetos que
contiene. Esto significa, por ejemplo, que dos tablas en diferentes esquemas están en
diferentes espacios de nombres y pueden tener el mismo nombre.
10
Instituto Profesional DuocUC
Escuela de Ingeniería
Especificando Tipos de Datos en Tablas
Tipos de Datos Comunes:
• CHAR(size): Dato caracter de largo en bytes
• VARCHAR2(size): Cadena de caracteres que
tiene un largo variable en bytes
• DATE: Rango de fecha válido desde Enero 01,
4712 AC hasta Diciembre 31, 9999 DC
• NUMBER(p,s): Númerico con precisión p y
escala s
Especificando Tipos de Datos en Tablas
Cuando se crea una tabla, se debe especificar el tipo de datos para cada columna de
esta. Cuando se crea un procedimiento o función, se debe especificar el tipo de datos
de cada argumento. Estos tipos de datos definen el dominio de valores que cada
columna puede contener o que cada argumento puede contener.
Oracle dispone de los siguientes tipos de datos:
• CHAR: Dato carácter de largo fijo en bytes. Máximo tamaño es 2000 bytes. Valor
por defecto y mínimo tamaño es 1 byte.
• VARCHAR2: Cada de caracteres de largo variable, cuyo máximo tamaño esta
dado en bytes. Máximo es 4000 bytes. Se debe especificar el tamaño para datos
VARCHAR2.
• DATE: Rango de fecha válido que va desde 01/01/4712 AC hasta 31/12/9999 DC;
también almacena la hora (hora, minutos y segundos, además del siglo). Cada
dato fecha utiliza 7 bytes de almacenamiento.
• NUMBER: Numérico que tiene precisión p y escala s. La precisión puede tener un
rango de 1 a 38. La escala puede tener un rango de –84 a 127.
Para referirse al listado completo de tipos de datos de Oracle, acceda el manual Oracle
Database SQL Reference.
11
Instituto Profesional DuocUC
Escuela de Ingeniería
Otros Tipos de Datos
• FLOAT
• INTEGER
• NCHAR
• NVARCHAR2
• LONG
• LONG RAW
• RAW
• ROWID
• UROWID
• BLOB
• CLOB
• NCLOB
• BFILE
• TIMESTAMP
Otros Tipos de Datos
• FLOAT(p): Este es un tipo de datos ANSI. Tipo de datos numérico de punto
flotante con precisión p. El valor por defecto de precisión para este tipo de datos
es 126 binario o 38 decimal.
• INTEGER: Esto es equivalente a NUMBER(p,0).
• NCHAR(length):El tipo de datos NCHAR es un tipo de datos Unicode-only.
Cuando se crea una tabla con una columna NCHAR, se define una columna de
largo en caracteres. Usted define el conjunto nacional de caracteres (national
character set) cuando se crea la base de datos. El máximo valor de esta columna
esta determinado por esa definición en la creación. Las especificaciones del
ancho del tipo de datos NCHAr se refieren al número de caracteres. El máximo
tamaño de esta columna es 2000. Si se inserta un valor más corto que el largo de
la columna, Oracle lo rellena con blancos. No se puede insertar un valor CHAR en
una columna NCHAR, no se puede insertar un valor NCHAR en una columna
CHAR.
• NVARCHAR2(length): El tipo de datos NVARCHAR2 es un tipo de datos Unicode-
only Máximo largo es 4000 bytes.
12
Otros Tipos e Datos (continuacion)
• LONG: Dato carácter de largo variable hasta 2 gigabytes, o 2 31
-1 bytes.
• LONG RAW: Dato binario de largo variable hasta 2 gigabytes.
• RAW(size): Dato binario de largo variable en bytes. Máximo tamaño es 2000
bytes. Se debe especificar el tamaño para un valor RAW.
• ROWID: Cadena de caracteres de Base 64 que repesenta la dirección única de
una fila en una tabla. Este tipo de datos es fundamentalmente para retornar
valores de la pseudocolumna ROWID.
• UROWID: Cadena de string de Base 64 que representa la dirección lógica de una
fila de una tabla indexada. El máximo tamaño de esta columna es 4000 bytes.
• BLOB: Un objeto binario grande.
• CLOB: Un objeto de caracter extenso, que contiene simples o múltiples de
caracteres.
• NCLOB: Un objeto de caracter extenso que contiene caracteres Unicode.
Nota: El máximo tamaño para todos los tipos de datos LOB (BLOB, CLOB and
NCLOB) es: (4 gigabytes - 1) * (el valor de CHUNK). Un CHUNK es un atributo
especial que se puede setear cuando se define un LOB. Este especifica el numero
de bytes que puede ser asignados para manipular el LOB. Si el tamaño no es
múltiplo de bloque de la base de datos, entonces se redondea hacia arriba al
múltiplo siguiente. Por ejemplo, si la base de datos tiene un bloque de 2048 y el
CHUNCK un tamaño de 2050, entonces la base de datos asigna 4096 (2
bloques). El máximo valor es 32768 (32K), que es el máximo tamaño de un
bloque Oracle. El valor por defecto de CHUNCK es el definido para un bloque de
datos Oracle.
• BFILE: Contiene un puntero a un gran archivo binario almacenado fuera de la
base de datos. El máximo tamaño es 4 gigabytes.
• TIMESTAMP(fractional_seconds_precision): Año, Mes y Dia de valores fecha,
como también horas, minutos y segundos, donde fractional_seconds_precision es
el número de dígitos en la parte fraccional de los segundos del campo fecha.
Acepta valores de 0 a 9. Default es 6.
13
Instituto Profesional DuocUC
Escuela de Ingeniería
Creando y Modificando Tablas
Especifique nombre de
tabla y esquema.
Especifique nombre de comunas,
tipo de datos y longitudes.
Creando y Modificando Tablas
Las tablas son la unidad básica de almacenamiento de datos en una base de datos Oracle.
Contiene los datos accesibles para los usuarios. Cada tabla tiene columnas y filas.
Creando una Tabla
Es posible crear una tabla usando el Enterprise Manager como sigue:
1. Click en el Esquema de Tables en la página Administration. Aparece la página de
Tables.
2. Si conoce el nombre del esquema, ingrese todo o parte de este esquema en la región
Search. Sino conoce el nombre del esquema, haga click en el ícono que parece una
linterna al lado del campo esquema. Buscar y Seleccionar: Aparece la ventana de
esquemas. Puedes navegar entre nombres de esquemas y selecciona la que
corresponda.
3. Click en Create. Aparece una página de crear tablas y la organización de la misma.
4. Aceptar los valores por defecto, siga los pasos de la creación según indique el producto
5. Ingrese el nombre de la tabla.
6. Ingrese el nombre del esquema o búsquelo presionando el icono linterna.
14
Creando y Modificando Tablas (continuación)
7. Ingrese el nombre del tablespace o búsquelo seleccionando el ícono linterna.
8. En la sección columnas, ingrese el nombre de la columna y tipos de datos.
9. Haga click en Ok. Aparece un mensaje de actualización que indica que la tabla ha
sido exitósamente creada.
Modificando una Tabla
Puede modificar una tabla usando el Enterprise Manager según se describe en los
siguientes pasos. En este ejemplo, una columna adicional a sido agregada a la tabla.
1. En la página tables, seleccione la tabla del listado y haga click en Edit.
2. En la página Edit Table, haga click en el botón Add 5 Table Columns. Aparece un
listado de columnas de campos editables.
3. Ingrese el nuevo nombre de columna, tipo de datos y tamaño. Haga click en
Apply.
4. Un mensaje que indica que la tabla ha sido modificada exitósamente aparece.
15
Instituto Profesional DuocUC
Escuela de Ingeniería
Comprendiendo la Integridad de Datos
Comprendiendo la Integridad de Datos
Usted puede usar las siguientes constraints de integridad para imponer restricciones sobre la
entrada de los valores de las columnas de una tabla:
• NOT NULL: Por defecto, todas las columnas en una tabla tienen permitido valores nulos.
Null significa ausencia de un valor (no significa 0 ni Blanco, pues ellos utilizan 1 byte).
Una constraints NOT NULL requiere que una columna de una tabla contenga valores no
nulos. Por ejemplo, se puede definir una constraint NOT NULL para requerir que un valor
sea ingresado en la columna last_name para cada nueva fila de la tabla employees.
• UNIQUE Key: Una constraint de integridad UNIQUE key requiere que cada valor en una
columna o conjunto de ellas (claves) sean únicas, esto es, 2 filas de la tabla no pueden
tener el mismo valor duplicado en la columna o conjunto de ellas. Por ejemplo, se define
una constraint UNIQUE key sobre la columna department_name de la tabla department,
por tanto no pueden haber dos departamentos con nombres duplicados.
• PRIMARY KEY: Cada tabla en la base de datos puede tener una o mas constraints de
PRIMARY KEY. El valor en el grupo de una o más columnas constituye un identificador
único para esa. En efecto, cada filas es nombrada por su valor de clave primaria.
16
Comprendiendo la Integridad de Datos (continued)
Oracle implementa las constraints de clave primaria (PRIMARY KEY) garantizando
que lo siguiente es verdadero:
- No pueden haber dos filas de una tabla con valores duplicados para una
columna o conjunto de ellos
- La columna clave primaria no puede ser null. Debe haber un valor para cada
columna clave primaria en cada fila.
Oracle fuerza todos los constraint de PRIMARY KEY usando índices. La
constraint de primary creada para la columna department_id en la tabla
departments table fuerza implícitamenta la creación:
- Un índice único sobre la columna
- Una constraint de NOT NULL para la columna
Referential integrity constraints : Diferentes tablas en una base de datos
relacional puede estar relacionadas por columnas comunes, y reglas que
gobiernan las relaciones de columnas deben mantenerse. Las reglas de integridad
referencial garantizan que esas relaciones sean preservadas.
Una constraint de integridad referencial requiere que para cada fila de la tabla, el
valor en la clave foránea este en la tabla padre.
Como ejemplo, una foreign key esta definida sobre la columna department_id de
la tabla empleados. Esto garantiza que el valor en esta columna debe existir como
clave primaria en la tabla departamentos (también la columna department_id). Por
lo tanto, ningún número erróneo puede existir en la columna department_id de la
tabla departamentos.
Check constraints : Una constraint de integridad de CHECK sobre una
columna o conjunto de ellas, requiere una condición específica para ser verdadera
o no conocida para cada fila de la la tabla. Si el resultado de una sentencia DML
en la condición de CHECK es falso, entonces la sentencia es deshecha.
17
Instituto Profesional DuocUC
Escuela de Ingeniería
Definiendo Constraints
Definiendo Constraints
Tu puedes agregar constraints a una tabla como sigue:
1. Seleccione la tabla en la página Tabla y haga click en el botón Edit.
2. Haga click en Constraints. La página Constraints es desplegada mostrando todos
los constraints que han sido definidos para la tabla.
3. Seleccione el tipo de constraint que se desea agregar desde el menu drop-down y
haga Click en Add
4. Ingrese la información apropiada para el tipo de constraint que se ha definido.
Haga click en OK.
18
Instituto Profesional DuocUC
Escuela de Ingeniería
Viendo Atributos de una Tabla
Viendo los atributos de una Tabla
Puede usar Enterprise Manager para ver los atributos de una tabla, según se explica a
continuación:
1. Haga click en el Link en la sección de esquemas en la página de Administración
de la Base de Datos.
2. Seleccione la tabla desde el listado disponible y haga click en el Botón View para
ver los atributos que ésta tiene.
Comando SQL:
DESCRIBE <nombre_tabla>
DESC <nombre_tabla>
19
Instituto Profesional DuocUC
Escuela de Ingeniería
Viendo el Contenido de una Tabla
Viendo el Contenido de una Tabla
Se puede fácilmente ver las filas de una tabla usando Enterprise Manager como sigue:
1. Selecione la tabla en la página Tables.
2. Seleccione View Data desde el menu Actions y haga click en Go.
Aparece la página View Data For Table. Las filas para la tabla son mostradas en la
sección Results. En la sección QUERY se despliega el SQL que fue ejecutado y
produjo el resultado. Sobre esta página se puede hacer click en cualquier columna y
orderar los datos en forma ascendente o descendente. Si se desea cambiar la
consulta, haga click en el botón Refine Query. En la página Refine Query para la tabla,
usted puede seleccionar columnas que desea sean desplegadas y especificar la
cláusula WHERE para la sentencia SQL y limitar el resultado.
Referirse al manual Oracle Database SQL Reference para más informacion sobre la
cláusula WHERE.
20
Instituto Profesional DuocUC
Escuela de Ingeniería
Acciones con Tablas
Acciones con Tablas
Es posible seleccionar una tabla y ejecutar acciones sobre ella.
• Create Like: Con esto usted puede crear una tabla que tenga la misma estructura que la
tabla seleccionada. Usted debe cambiar el nombre de la tabla y los nombres de las
constraints. También puede agregar y borrar columnas y hacer otros cambios en la
estructura de la tabla. Cuando está creada, la tabla se crea vacía.
• Create Index: Use esta opción para crear índices sobre la tabla seleccionada. Indices
deben ser creados solo sobre las columnas que serán usadas en las condiciones del
WHERE en los select y sentencias DML.
• Create Synonym: Un sinónimo es un nombre usado en lugar del nombre completo de la
tabla. Un sinónimo puede ser privado o público.
• Create Trigger: Un trigger sobre una tabla es un bloque PL/SQL que se ejecuta cuando
sucede un evento sobre una tabla (insert, delete, update). Por ejemplo, usted puede
desear mantener una copia de los datos en otra tabla al ejecutarse un delete de la tabla.
Se puede entonces crear un trigger “before delete” que inserte los datos que han sido
borrados de la tabla empleados en otra tabla.
Para mas información sobre tiggers referirse a los manuales Application Developer's Guide –
Fundamentals and the PL/SQL Users Guide and Reference.
21
Acciones con Tablas (continuación)
• Gather Statistics: El Wizard de estadísticas guía al usuario a través del proceso
de generar y modificar estadísticas del optimizador de la bases de datos. Las
estadísticas son almacenadas en el diccionario de datos y usadas por el
optimizador basado en costos. Mantener las estadísticas actualizadas puede
generar un gran aumento de rendimiento en consultas SQL. Oracle sugiere que
usted automatice las tareas de generar estadísticas regularmente dentro de
ventanas de mantenimiento .
• Generate DDL: Esto genera el comando para crear la tabla seleccionada. Puede
servir para propósitos de documentación.
• Grant Privileges: Por defecto, cuando una tabla es creada solo el dueño puede
hacer algo con ella. El dueño (propietario) debe asignar privilegios a otrosusuarios
para ejecutar DML o DDL sobre la tabla.
• Reorganize: Usted puede utilizar el Wizard de Reorganize oara reconstruir tables
o índices fragmentados, mover objetos a diferentes tablespaces o optimizar los
atributos de almacenamiento de un objeto específico.
• Run Segment Advisor: El asesor de segmentos determina si los objetos tienen
espacios inutilizados que puedan ser reutilizados, tomando en consideración los
requerimientos de espacio futuro para dicha estimación. El espacio futuro a
utilizar, lo hace en base a información histórica.
• Shrink Segment: Condensa espacio fragmentado y opcionalmente, libera espacio
.
• Show Dependencies: Muestra los objetos que dependen de esta tabla .
• View Data: Ejecuta una sentencia SELECT sobre la tabla, usted redefine la
sentencia si desea, No puede cambiar datos solo visualizarlos .
• Flashback Table: Las Flashback Tables (Tablas de retroceso), permiten
recuperar una tabla a un instante de tiempo previo. Permite recuperar una tabla
que ha sido accidentalmente modificada o borrar por un usuario o aplicación. Se
puede recuperar los datos de tabla junto a sus atributos asociados, tales como
índices triggers, etc. Esto se hace mientras la base de datos esta online
devolviendo solo aquellos cambios de dicha tabla. Se puede revertir la tabla a
cierto instante del tiempo .
• Flashback by Row Versions: Permite consultar metadatos y datos históricos
dentro de un intervalo de tiempo.. Se pueden ejecutar consultas sobre la tabla
como si fuese un reloj de pared. Debe seleccionar las condiciones que permiten
recuperar diferentes versioness de filas en una tabla en un intervalo de tiempo.
22
Instituto Profesional DuocUC
Escuela de Ingeniería
Creando Indices
Creando Indices
Los índices son estructuras opcionales asociadas con las tablas. Estos pueden crearse
para mejorar el rendimiento en la recuperación de datos de una tabla. Oracle provee
índices para acceder directamente a los datos de una tabla.
Los índices pueden ser creados de una o más columnas de una tabla. Después que un
índice sea a creado, es automáticamente mantenido y usado por Oracle. Al modificar
los datos de una tabla, ya sea agregando nuevas filas, modificando filas, borrando filas,
automáticamente se actualizan los índices asociados con total transparencia para el
usuario que realiza los cambios sobre las filas de dicha tabla.
Usted puede hacer click en el link Indexes link bajo el Esquema de Objetos de la
página Administration y ver la página de Indices. Usted puede ver los atributos de los
índices o usar el menu de Acciones para ver las dependencias de un índice.
Los índices son creados explícitamente o implícitamente a través de las constraints
que tienen lugar sobre la tabla.
23
Instituto Profesional DuocUC
Escuela de Ingeniería
¿Qué es una Vista?
• Representan datos de una o más tablas o vistas
• Las vistas no contienen datos
¿Qué es una Vista?
Las vistas son representaciones customizadas de datos de una o más tablas o de otras
vistas. Pueden ser pensadas como consultas almacenadas. Las vistas realmente no
contienen datos, pero obtienen sus datos desde tablas. Estas tablas son referenciadas
como tablas base de la vista.
Una vista es una estructura lógica que tiene la apariencia de una tabla, sin llegar a
serla. El objetivo de crear vistas es el de tener que prescindir de la tabla cuando se
desea permitir la manipulación de datos a otros usuarios; así como también de prevenir
que se altere de manera involuntaria el contenido de la información más sensible que
pudiera encontrarse en ciertas tablas.
Las vistas se forman haciendo una selección de campos de una o varias tablas.
También se puede reemplazar una vista que ya existe con una sintaxis diferente,
manteniendo su nombre.
24
Instituto Profesional DuocUC
Escuela de Ingeniería
Creando Vistas
Creando Vistas
Al igual que una tabla, las vistas pueden ser consultadas, modificadas insertase filas y borrar
algunas de ellas con ciertas restricciones claro esta. Todas las operaciones ejecutadas sobre
una vista, afectan las tablas base que la conforman. Las vistas proveen un nivel de seguridad
adicional para restringir el acceso a determinado conjunto de filas y columnas de una o mas.
También permiten ocultar la complejidad de los datos y almacenar consultas complejas.
La sintaxis de la creación de vistas es:
CREATE [OR REPLACE] VIEW nombre_vista AS
SELECT columna1, columna2, ...
FROM tabla1, ...
WHERE columna > valor ;
En Enterprise Manager, haciendo clik bajo el link Views en el Esquema asociado y debajo de
la página de Administration, aparece una nueva página para definir vista de base de datos.
25
Instituto Profesional DuocUC
Escuela de Ingeniería
Qué es una secuencia?
¿Qué es una secuencia?
A menudo es preciso generar números en forma ordenada para implementar, por
ejemplo, una clave primaria en una tabla o garantizar que esos números no se repiten y van
siempre en un orden predefinido por el desarrollador (no necesariamente secuenciales).
La forma tradicional de efectuar lo anterior sería almacenar el último número utilizado en un
registro especial, bloquearlo, obtener el próximo valor, actualizar el registro, desbloquearlo y
utilizar el número. Sin embargo, para eso Oracle implementa los objetos denominadas
secuencias, que permiten hacer lo anterior de manera transparente para el usuario.
Cuando se define una secuencia se deben indicar, como mínimo, el valor de partida (valor
mínimo) y el incremento
26
¿Qué es una secuencia? (continuación)
Generalmente el uso de secuencias genera valores de llave primaria
• Name: Usar las reglas de asignación de nombres descritas anteriormente para
nombrar una secuencia.
• Schema: Es el propietario de la secuencia.
• Type: Un secuencia puede se ascendente o descendente.
• Maximum Value: Especifica el máximo valor que puede generar la secuencia.
Este es un valor entero de máximo 28 dígitos. Debe ser mayor que el valor
mínimo e inicial. Usando Unlimited indica un valor máximo de 1027
para
secuencias ascendentes o -1 para secuencias descendentes. Elvalor por default
es Unlimited.
• Minimum Value: Especifica el mínimo valor para la secuencia. Este es un valor
entero de máximo 28 dígitos. Debe ser menor o igual que el inicial y menor que el
máximo valor. Usando Unlimited indica un mínimo de 1 para secuencias
ascendentes o -1026
para secuencias descendentes. El default es Unlimited.
• Interval: Especifica el intervalo entre números de secuencia.El valor entero puedo
ser positivo o negatico, pero no puede ser cero. Este valor puede tener hasta 28
dígitos. El valor por defecto es 1.
• Initial: Especifica el primero número de la secuencia a ser generado. Use esta
cláusula para comenzar una secuancia ascendente en un valor mayor que su
mínimo o para comenzar una sucesión descendente en un valor menor que su
máximo.
• Cycle Values: Después que una secuencia ascendente alcance su valor máximo,
genera su valor mínimo. Después que una secuencia descendente alcance su
mínimo, genera su valor máximo. Si usted no elige esta opción, un error será
devuelto si usted intenta recuperar un valor después de que se haya agotado la
secuencia.
• Order Values: Esto garantiza que los números de serie están generados en la
orden de la petición. Esta cláusula es útil si usted está utilizando los números de
serie como timestamps. Garantizar orden no es generalmente importante para las
secuencias usadas para generar llaves primarias. Esta opción es necesaria para
garantizar solamente la generación pedida si usted está utilizando Oracle con
Real Application Cluster
• Cache Options: Especifica cuantos valores de secuencia Oracle reserva y
mantiene en memoria para un acceso más rápido. Este valor es un entero de
hastas 28 dígitos. El mínimo valor de esta parámetro es 2. Para secuencias
ciclicas, este valor debe ser menor que el número de valores del ciclo. No se
pueden asignar más valores que los que los dados en la secuencias del ciclo.
La sintaxis de creación de una secuencia es la siguiente:
CREATE SEQUENCE nombre_secuencia
INCREMENT BY número
START WITH número
MINVALUE número [o NOMINVALUE]
MAXVALUE número [o NOMAXVALUE]
NOCYCLE [o CYCLE] ;
27
Instituto Profesional DuocUC
Escuela de Ingeniería
Usando una Secuencia
Usando Secuencias
Usted puede referirse a los valores de secuencias en una sentencia SQL con las
siguientes pseudocolumnas:
• CURRVAL: Retorna el valor actual de una secuencia
• NEXTVAL: Incrementa la secuencia y retorna el siguiente valor
Se debe calificar CURRVAL y NEXTVAL con el nombre de la secuencia:
sequence.CURRVAL
sequence.NEXTVAL
La primera referencia a NEXTVAL devuelve el valor inicial de la secuencia. Las
siguientes referencias de NEXTVAL incrementan la secuencia en el incremento
definido y retorna el siguiente valor. Cualquier referencia a CURRVAL siempre
devuelve el valor de la secuencia, que es el último valor retornado por NEXTVAL.
Jaime Amigo P. © 2006, Santiago - Chile
Instituto Profesional DuocUC
Escuela de Ingeniería
Fin de la Lección

More Related Content

What's hot

Bases de datos módulo 3 el lenguaje sql
Bases de datos módulo 3 el lenguaje sqlBases de datos módulo 3 el lenguaje sql
Bases de datos módulo 3 el lenguaje sqlFreddyRomana
 
DDL oracle - base de datos
DDL oracle - base de datosDDL oracle - base de datos
DDL oracle - base de datosLuis Bando
 
Material Clase BDD: Diseño de una Base de Datos
Material Clase BDD: Diseño de una Base de DatosMaterial Clase BDD: Diseño de una Base de Datos
Material Clase BDD: Diseño de una Base de Datosliras loca
 
Tareas 1- 4 Olap, Molap Y Rolap
Tareas 1- 4 Olap, Molap Y RolapTareas 1- 4 Olap, Molap Y Rolap
Tareas 1- 4 Olap, Molap Y Rolapbrenda carolina
 
Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2Julián Castiblanco
 
Informatica...juank
Informatica...juankInformatica...juank
Informatica...juankjuankarias
 
Informatica...juank
Informatica...juankInformatica...juank
Informatica...juankjuankarias
 
Presentacion Sql
Presentacion SqlPresentacion Sql
Presentacion Sqlguest5f0fa0
 
INDICES EN SQL SERVER
INDICES EN SQL SERVERINDICES EN SQL SERVER
INDICES EN SQL SERVERDarwin Durand
 
SQL EN VISUAL BASIC
SQL EN VISUAL BASICSQL EN VISUAL BASIC
SQL EN VISUAL BASICJavier Lasso
 
Conceptos basicos de bases de datos
Conceptos basicos de bases de datosConceptos basicos de bases de datos
Conceptos basicos de bases de datosAmyad Mustafa
 
Sql server express edition 2012 libro
Sql server express edition 2012 libroSql server express edition 2012 libro
Sql server express edition 2012 libroOsmar Zaragoza
 

What's hot (18)

Hoja de cálculo
Hoja de cálculoHoja de cálculo
Hoja de cálculo
 
Bases de datos módulo 3 el lenguaje sql
Bases de datos módulo 3 el lenguaje sqlBases de datos módulo 3 el lenguaje sql
Bases de datos módulo 3 el lenguaje sql
 
DDL oracle - base de datos
DDL oracle - base de datosDDL oracle - base de datos
DDL oracle - base de datos
 
Manual de access
Manual de accessManual de access
Manual de access
 
Material Clase BDD: Diseño de una Base de Datos
Material Clase BDD: Diseño de una Base de DatosMaterial Clase BDD: Diseño de una Base de Datos
Material Clase BDD: Diseño de una Base de Datos
 
Curso oracle por temas
Curso oracle por temasCurso oracle por temas
Curso oracle por temas
 
Abd3 sql
Abd3 sqlAbd3 sql
Abd3 sql
 
Tareas 1- 4 Olap, Molap Y Rolap
Tareas 1- 4 Olap, Molap Y RolapTareas 1- 4 Olap, Molap Y Rolap
Tareas 1- 4 Olap, Molap Y Rolap
 
Arc 13176(1)
Arc 13176(1)Arc 13176(1)
Arc 13176(1)
 
Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2
 
Informatica...juank
Informatica...juankInformatica...juank
Informatica...juank
 
Informatica...juank
Informatica...juankInformatica...juank
Informatica...juank
 
Presentacion Sql
Presentacion SqlPresentacion Sql
Presentacion Sql
 
INDICES EN SQL SERVER
INDICES EN SQL SERVERINDICES EN SQL SERVER
INDICES EN SQL SERVER
 
SQL EN VISUAL BASIC
SQL EN VISUAL BASICSQL EN VISUAL BASIC
SQL EN VISUAL BASIC
 
Conceptos basicos de bases de datos
Conceptos basicos de bases de datosConceptos basicos de bases de datos
Conceptos basicos de bases de datos
 
Fundamentos de BD - Unidad 6 lenguaje sql
Fundamentos de BD - Unidad 6 lenguaje sqlFundamentos de BD - Unidad 6 lenguaje sql
Fundamentos de BD - Unidad 6 lenguaje sql
 
Sql server express edition 2012 libro
Sql server express edition 2012 libroSql server express edition 2012 libro
Sql server express edition 2012 libro
 

Viewers also liked

Tutorial combinar correspondencia
Tutorial combinar correspondenciaTutorial combinar correspondencia
Tutorial combinar correspondenciaespinozavaleriosaul
 
La meva primera pesentació
La meva primera pesentacióLa meva primera pesentació
La meva primera pesentacióFidelviu
 
Diapositiva Emprendimiento
Diapositiva EmprendimientoDiapositiva Emprendimiento
Diapositiva EmprendimientoMafeQano
 
Promociones de ventas
Promociones de ventasPromociones de ventas
Promociones de ventasstefyvc
 
Moodle
MoodleMoodle
MoodleEsus28
 
Private tours in Dominican Republic
Private tours in Dominican RepublicPrivate tours in Dominican Republic
Private tours in Dominican RepublicCaribecoturismo
 
Marketing relacional diapositivass stefania
Marketing  relacional diapositivass stefaniaMarketing  relacional diapositivass stefania
Marketing relacional diapositivass stefaniastefyvc
 
LA SANACION Y EL OCULTISMO segun la BIBLIA by Eliud Gamez
LA SANACION Y EL OCULTISMO segun la BIBLIA  by Eliud Gamez LA SANACION Y EL OCULTISMO segun la BIBLIA  by Eliud Gamez
LA SANACION Y EL OCULTISMO segun la BIBLIA by Eliud Gamez Eliud Gamez Gomez
 
Experiencia 1 a 1
Experiencia 1 a 1Experiencia 1 a 1
Experiencia 1 a 1karyzilli
 
Semana 7 cursores de actualización y referenciales
Semana 7 cursores de actualización y referencialesSemana 7 cursores de actualización y referenciales
Semana 7 cursores de actualización y referencialesvictdiazm
 
Serie la agonia sobre la cruz by eliud gamez rev1 preview
Serie  la agonia sobre la cruz by eliud gamez rev1 previewSerie  la agonia sobre la cruz by eliud gamez rev1 preview
Serie la agonia sobre la cruz by eliud gamez rev1 previewEliud Gamez Gomez
 

Viewers also liked (20)

Tutorial combinar correspondencia
Tutorial combinar correspondenciaTutorial combinar correspondencia
Tutorial combinar correspondencia
 
Wikis
WikisWikis
Wikis
 
La meva primera pesentació
La meva primera pesentacióLa meva primera pesentació
La meva primera pesentació
 
Bolgs
BolgsBolgs
Bolgs
 
Bullying
BullyingBullying
Bullying
 
Diapositiva Emprendimiento
Diapositiva EmprendimientoDiapositiva Emprendimiento
Diapositiva Emprendimiento
 
Promociones de ventas
Promociones de ventasPromociones de ventas
Promociones de ventas
 
955 10 ojogorev42008espanhol
955 10 ojogorev42008espanhol955 10 ojogorev42008espanhol
955 10 ojogorev42008espanhol
 
Contra el h1 n1
Contra el h1 n1Contra el h1 n1
Contra el h1 n1
 
Moodle
MoodleMoodle
Moodle
 
Private tours in Dominican Republic
Private tours in Dominican RepublicPrivate tours in Dominican Republic
Private tours in Dominican Republic
 
Marketing relacional diapositivass stefania
Marketing  relacional diapositivass stefaniaMarketing  relacional diapositivass stefania
Marketing relacional diapositivass stefania
 
LA SANACION Y EL OCULTISMO segun la BIBLIA by Eliud Gamez
LA SANACION Y EL OCULTISMO segun la BIBLIA  by Eliud Gamez LA SANACION Y EL OCULTISMO segun la BIBLIA  by Eliud Gamez
LA SANACION Y EL OCULTISMO segun la BIBLIA by Eliud Gamez
 
Experiencia 1 a 1
Experiencia 1 a 1Experiencia 1 a 1
Experiencia 1 a 1
 
Semana 7 cursores de actualización y referenciales
Semana 7 cursores de actualización y referencialesSemana 7 cursores de actualización y referenciales
Semana 7 cursores de actualización y referenciales
 
Clase 17
Clase 17Clase 17
Clase 17
 
Serie la agonia sobre la cruz by eliud gamez rev1 preview
Serie  la agonia sobre la cruz by eliud gamez rev1 previewSerie  la agonia sobre la cruz by eliud gamez rev1 preview
Serie la agonia sobre la cruz by eliud gamez rev1 preview
 
El futbol
El futbolEl futbol
El futbol
 
Oficina de deportes store
Oficina de deportes storeOficina de deportes store
Oficina de deportes store
 
Trabajo emprendimiento grado 5 semana 5
Trabajo emprendimiento grado 5 semana 5Trabajo emprendimiento grado 5 semana 5
Trabajo emprendimiento grado 5 semana 5
 

Similar to Abf leccion 12

Similar to Abf leccion 12 (20)

Base de datos
Base de datosBase de datos
Base de datos
 
Conceptos Basicos Oracle
Conceptos Basicos OracleConceptos Basicos Oracle
Conceptos Basicos Oracle
 
Cuadro Comparativo Bd
Cuadro Comparativo BdCuadro Comparativo Bd
Cuadro Comparativo Bd
 
Introduccion a SQL
Introduccion a SQL Introduccion a SQL
Introduccion a SQL
 
Base de Datos1
Base de Datos1Base de Datos1
Base de Datos1
 
1_ Introducción a Oracle, SqlDeveloper, Usuarios-Privilegios.pptx
1_ Introducción a Oracle, SqlDeveloper, Usuarios-Privilegios.pptx1_ Introducción a Oracle, SqlDeveloper, Usuarios-Privilegios.pptx
1_ Introducción a Oracle, SqlDeveloper, Usuarios-Privilegios.pptx
 
Bdp3
Bdp3Bdp3
Bdp3
 
Base de datos en microsoft sql server
Base de datos en microsoft sql serverBase de datos en microsoft sql server
Base de datos en microsoft sql server
 
Presentacion oracle9 i
Presentacion oracle9 iPresentacion oracle9 i
Presentacion oracle9 i
 
Presentacion oracle9 i
Presentacion oracle9 iPresentacion oracle9 i
Presentacion oracle9 i
 
sesion 01_sql basico.pdf
sesion 01_sql basico.pdfsesion 01_sql basico.pdf
sesion 01_sql basico.pdf
 
Abf lec dictionary
Abf lec dictionaryAbf lec dictionary
Abf lec dictionary
 
alumno: jose carlos leocadio matines ...
                                    alumno: jose carlos leocadio matines     ...                                    alumno: jose carlos leocadio matines     ...
alumno: jose carlos leocadio matines ...
 
Curso SQL - Leccion 1
Curso SQL - Leccion 1Curso SQL - Leccion 1
Curso SQL - Leccion 1
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
OVA DISEÑO ORACLE Introducción Bases de Datos .pptx
OVA DISEÑO ORACLE Introducción Bases de Datos .pptxOVA DISEÑO ORACLE Introducción Bases de Datos .pptx
OVA DISEÑO ORACLE Introducción Bases de Datos .pptx
 
Oracle
OracleOracle
Oracle
 
Presentación1
Presentación1Presentación1
Presentación1
 
Actividad4cosdac
Actividad4cosdacActividad4cosdac
Actividad4cosdac
 
Que una base de datos
Que una base de datosQue una base de datos
Que una base de datos
 

More from victdiazm

Semana 2 y_3_-_file_ownerships_and_permissions
Semana 2 y_3_-_file_ownerships_and_permissionsSemana 2 y_3_-_file_ownerships_and_permissions
Semana 2 y_3_-_file_ownerships_and_permissionsvictdiazm
 
Semana 9 standard io and pipes guia de ejercicios resuelta
Semana 9   standard io and pipes  guia de ejercicios resueltaSemana 9   standard io and pipes  guia de ejercicios resuelta
Semana 9 standard io and pipes guia de ejercicios resueltavictdiazm
 
Semana 7 y 8 the linux filesystem guia de ejercicios resuelta
Semana 7 y 8   the linux filesystem guia de ejercicios resueltaSemana 7 y 8   the linux filesystem guia de ejercicios resuelta
Semana 7 y 8 the linux filesystem guia de ejercicios resueltavictdiazm
 
Semana 4 y 5 la shell bash guia de ejercicios resuelta
Semana 4 y 5  la shell bash guia de ejercicios resueltaSemana 4 y 5  la shell bash guia de ejercicios resuelta
Semana 4 y 5 la shell bash guia de ejercicios resueltavictdiazm
 
Semana 2 y 3 file ownerships and permissions guia de ejercicios resuelta
Semana 2 y 3   file ownerships and permissions guia de ejercicios resueltaSemana 2 y 3   file ownerships and permissions guia de ejercicios resuelta
Semana 2 y 3 file ownerships and permissions guia de ejercicios resueltavictdiazm
 
Semana 1 quick tours guia de ejercicios resuelta
Semana 1   quick tours guia de ejercicios resueltaSemana 1   quick tours guia de ejercicios resuelta
Semana 1 quick tours guia de ejercicios resueltavictdiazm
 
Semana 10 -_managing_processes_guia_de_ejercicios_resuelta
Semana 10 -_managing_processes_guia_de_ejercicios_resueltaSemana 10 -_managing_processes_guia_de_ejercicios_resuelta
Semana 10 -_managing_processes_guia_de_ejercicios_resueltavictdiazm
 
Semana 4 y_5_-_la_shell_bash
Semana 4 y_5_-_la_shell_bashSemana 4 y_5_-_la_shell_bash
Semana 4 y_5_-_la_shell_bashvictdiazm
 
Semana 2 y_3_-_file_ownerships_and_permissions
Semana 2 y_3_-_file_ownerships_and_permissionsSemana 2 y_3_-_file_ownerships_and_permissions
Semana 2 y_3_-_file_ownerships_and_permissionsvictdiazm
 
Semana 1 -_quick_tours_guia_de_ejercicios_resuelta
Semana 1 -_quick_tours_guia_de_ejercicios_resueltaSemana 1 -_quick_tours_guia_de_ejercicios_resuelta
Semana 1 -_quick_tours_guia_de_ejercicios_resueltavictdiazm
 
Semana 1 -_quick_tours
Semana 1 -_quick_toursSemana 1 -_quick_tours
Semana 1 -_quick_toursvictdiazm
 
Semana 16 usuarios y grupos
Semana 16 usuarios y gruposSemana 16 usuarios y grupos
Semana 16 usuarios y gruposvictdiazm
 
Semana 13 y 14 aplicaciones de redes
Semana 13 y 14 aplicaciones de redesSemana 13 y 14 aplicaciones de redes
Semana 13 y 14 aplicaciones de redesvictdiazm
 
Semana 12 filesystem basico
Semana 12  filesystem basicoSemana 12  filesystem basico
Semana 12 filesystem basicovictdiazm
 
Semana 10 administracion de procesos
Semana 10 administracion de procesosSemana 10 administracion de procesos
Semana 10 administracion de procesosvictdiazm
 
Semana 9 entradas salidas estandar y pipes
Semana 9 entradas salidas estandar y pipesSemana 9 entradas salidas estandar y pipes
Semana 9 entradas salidas estandar y pipesvictdiazm
 
Semana 8 herramientas de procesos de string
Semana 8  herramientas de procesos de stringSemana 8  herramientas de procesos de string
Semana 8 herramientas de procesos de stringvictdiazm
 
Semana 7 y 8 sistemas de archivos linux
Semana 7 y 8 sistemas de archivos linuxSemana 7 y 8 sistemas de archivos linux
Semana 7 y 8 sistemas de archivos linuxvictdiazm
 
Control1 victoria diaz
Control1   victoria diazControl1   victoria diaz
Control1 victoria diazvictdiazm
 

More from victdiazm (20)

Semana 2 y_3_-_file_ownerships_and_permissions
Semana 2 y_3_-_file_ownerships_and_permissionsSemana 2 y_3_-_file_ownerships_and_permissions
Semana 2 y_3_-_file_ownerships_and_permissions
 
Semana 9 standard io and pipes guia de ejercicios resuelta
Semana 9   standard io and pipes  guia de ejercicios resueltaSemana 9   standard io and pipes  guia de ejercicios resuelta
Semana 9 standard io and pipes guia de ejercicios resuelta
 
Semana 7 y 8 the linux filesystem guia de ejercicios resuelta
Semana 7 y 8   the linux filesystem guia de ejercicios resueltaSemana 7 y 8   the linux filesystem guia de ejercicios resuelta
Semana 7 y 8 the linux filesystem guia de ejercicios resuelta
 
Semana 4 y 5 la shell bash guia de ejercicios resuelta
Semana 4 y 5  la shell bash guia de ejercicios resueltaSemana 4 y 5  la shell bash guia de ejercicios resuelta
Semana 4 y 5 la shell bash guia de ejercicios resuelta
 
Semana 2 y 3 file ownerships and permissions guia de ejercicios resuelta
Semana 2 y 3   file ownerships and permissions guia de ejercicios resueltaSemana 2 y 3   file ownerships and permissions guia de ejercicios resuelta
Semana 2 y 3 file ownerships and permissions guia de ejercicios resuelta
 
Semana 1 quick tours guia de ejercicios resuelta
Semana 1   quick tours guia de ejercicios resueltaSemana 1   quick tours guia de ejercicios resuelta
Semana 1 quick tours guia de ejercicios resuelta
 
Semana 10 -_managing_processes_guia_de_ejercicios_resuelta
Semana 10 -_managing_processes_guia_de_ejercicios_resueltaSemana 10 -_managing_processes_guia_de_ejercicios_resuelta
Semana 10 -_managing_processes_guia_de_ejercicios_resuelta
 
Semana 4 y_5_-_la_shell_bash
Semana 4 y_5_-_la_shell_bashSemana 4 y_5_-_la_shell_bash
Semana 4 y_5_-_la_shell_bash
 
Semana 2 y_3_-_file_ownerships_and_permissions
Semana 2 y_3_-_file_ownerships_and_permissionsSemana 2 y_3_-_file_ownerships_and_permissions
Semana 2 y_3_-_file_ownerships_and_permissions
 
Semana 1 -_quick_tours_guia_de_ejercicios_resuelta
Semana 1 -_quick_tours_guia_de_ejercicios_resueltaSemana 1 -_quick_tours_guia_de_ejercicios_resuelta
Semana 1 -_quick_tours_guia_de_ejercicios_resuelta
 
Semana 1 -_quick_tours
Semana 1 -_quick_toursSemana 1 -_quick_tours
Semana 1 -_quick_tours
 
Semana 16 usuarios y grupos
Semana 16 usuarios y gruposSemana 16 usuarios y grupos
Semana 16 usuarios y grupos
 
Semana 13 y 14 aplicaciones de redes
Semana 13 y 14 aplicaciones de redesSemana 13 y 14 aplicaciones de redes
Semana 13 y 14 aplicaciones de redes
 
Semana 12 filesystem basico
Semana 12  filesystem basicoSemana 12  filesystem basico
Semana 12 filesystem basico
 
Semana 10 administracion de procesos
Semana 10 administracion de procesosSemana 10 administracion de procesos
Semana 10 administracion de procesos
 
Semana 9 entradas salidas estandar y pipes
Semana 9 entradas salidas estandar y pipesSemana 9 entradas salidas estandar y pipes
Semana 9 entradas salidas estandar y pipes
 
Semana 8 herramientas de procesos de string
Semana 8  herramientas de procesos de stringSemana 8  herramientas de procesos de string
Semana 8 herramientas de procesos de string
 
Semana 7 y 8 sistemas de archivos linux
Semana 7 y 8 sistemas de archivos linuxSemana 7 y 8 sistemas de archivos linux
Semana 7 y 8 sistemas de archivos linux
 
Script
ScriptScript
Script
 
Control1 victoria diaz
Control1   victoria diazControl1   victoria diaz
Control1 victoria diaz
 

Abf leccion 12

  • 1. Jaime Amigo P. © 2006, Santiago - Chile Instituto Profesional DuocUC Escuela de Ingeniería Administrando Esquemas
  • 2. 2 Instituto Profesional DuocUC Escuela de Ingeniería Objetivos Después de completar esta lección, usted deberá saber: • Crear y modificar tablas • Definir constraints • Ver los atributos de una tabla • Ver el contenido de una tabla • Crear indices y vistas
  • 3. 3 Instituto Profesional DuocUC Escuela de Ingeniería ¿Qué es un Schema? Esquema HR Usuario HR propietario Qué es un Schema? Un esquema es una colección de objetos de base de datos propiedad de un usuario en particular. Un esquema tiene el mismo nombre que el usuario propietario del esquema, Los objetos del esquema (schema objects) son estructuras lógicas directamente referenciadas a los datos de la base de datos. Los objetos esquema incluyen estructuras tales como tablas, vistas e índices. Nota: No hay relación entre un tablespace y un esquema. Los objetos en un esquema pueden pertenecer a diferentes tablespaces. Objetos en el mismo esquema pueden ser de diferentes tablespaces y un tablespace contener objetos de diferentes esquema. Se pueden crear y manipular objetos esquemas usando SQL o Enterprise Manager. Cuando se usa Enterprise Manager, se genera un script SQL de la instrucción que se ha ejecutado en la interfase gráfica.
  • 4. 4 Instituto Profesional DuocUC Escuela de Ingeniería Esquemas Los esquemas son creados como parte del proceso de creación de base de datos: • SYS • SYSTEM • Esquema de ejemplos Esquemas Cuando se crea una base de datos, un número de esquemas es creado con ella. Hay dos motivos de importancia: • SYS schema: Todas las tablas base y vistas que constituyen el diccionario de la bases de datos son creados con el schema SYS. El diccionario de datos es una colección de tablas que describen la base de datos Oracle. El diccionario de datos es creado en el tablespace SYSTEM cuando la base de datos es creada y es modificado por el Oracle Server cuando una sentencia DLL (Data Definition Language) es ejecutada. El diccionario de datos contiene información sobre usuario, objetos esquema y estructuras de almacenamiento. Se puede usar el diccionario de datos como una referencia de sólo lectura sobre la información de la base de datos. Cuando se usa Enterprise Manager se accede a las tablas del diccionario de datos a través de vistas. Los objetos en el esquema SYS nunca deben ser modificados por ningún usuario o administrador de base de datos y no se debe crear ningúna tabla en el esquema del usuario SYS. • SYSTEM schema: Contiene tablas y vistas adicionales que almacenan información administrativa, como tablas internas y vistas utilizadas por varias opciones de Oracle y sus herramientas. No se deben crear objetos adicionales en el esquema SYSTEM.
  • 5. 5 Esquemas (continuación) Durante la instalación de una base de datos Oracle, el esquema de ejemplos se instala automáticamente. El esquema de ejemplos sirve para proveer una plataforma común de ejemplos en la documentación Oracle y cursos de capacitación. Ellos son un conjunto de esquemas interrelacionados que incluyen lo siguiente: • HR: Esquema de recursos humanos (Human Resources) para introducir tópicos básicos. Una extensión de este esquema soporta demostraciones de Oracle Internet Directory. • OE: El esquema de ingreso de ordenes (Order Entry), es para abarcar materias de mediana complejidad. Una gran variedad de tipos de datos esta disponible en el esquema OE. El subsquema OC (Catalogo en línea) es una colección de objetos relacionales de base de datos construidos dentro del esquema OE. • PM: El esquema de Medios de Productos (Product Media) esta dedicado a tipos de datos multimedia. • QS: El esquema de Colas de Embarque (Queued Shipping) contiene un conjunto de esquemas que son usados para demostrar las capacidades de Encolamiento Avanzado de Oracle • SH: El esquema de Ventas Históricas (Sales History) está diseñado para permitir demostraciones con grandes cantidades de datos. Una extensión a este esquema provee soporte a procesamiento analítico avanzado (advanced analytic processing).
  • 6. 6 Instituto Profesional DuocUC Escuela de Ingeniería Accesando Objetos de Esquema Click en un link para acceder a objetos de esquemas. Accesando Objetos Esquemas Es posible acceder a diversos tipos de objetos esquemas desde la región de Enterprise Manager destinada a Administración (Administration). Después de cliquear uno de estos links, una página de resultados es desplegada. En la región Search se puede ingresar el nombre de un esquema y nombre de objeto específico a buscar. En resumen, es posible buscar otros tipos de objetos seleccionando el tipo de objeto en el menú disponible. Este menú, incluye tipos adicionales que no son mostrados en los links de la página de administración de base de datos.
  • 7. 7 Instituto Profesional DuocUC Escuela de Ingeniería Nombrando Objetos de Bases de Datos • Nombres deben ser desde 1 a 30 bytes de largo, salvo estas excepciones: – Nombres de bases de datos están limitados a 8 bytes – Nombres de links de bases de datos pueden tener hasta 128 bytes • Los nombres no pueden ser palabras reservadas de Oracle. • Los nombres deben comenzar con caracteres alfanuméricos del conjunto de caracteres de la base de datos. Nombrando Objetos de Bases de Datos Cuando usted nombra un objeto en la base de datos, tiene la opción de encerrar el nombre entre comillas dobles (“ “). Si usted hace esto, puede quebrantar varias reglas de nombramiento, mencionadas anteriormente. Sin embargo, no se recomienda, porque si el nombre de un objeto esta entre comillas dobles, cada vez que usted debe referenciarlo, deberá hacerlo con la referencia de las comillas dobles. Por ejemplo, si el nombre de una tabla es “Local_Temp”, usted deberá hacer lo siguiente: SQL> select * from "Local_Temp"; TEMP_DATE LO_TEMP HI_TEMP --------- ---------- ---------- 01-DEC-03 30 41 Si usted tipea lo siguiente: SQL> select * from "local_temp"; select * from "local_temp" * ERROR at line 1: ORA-00942: table or view does not exist Los nombres sin comillas son almacenados en mayúsculas y no son case sensitive. Cuando una sentencia SQL es procesada, los nombres sin comillas son todos convertidos a mayúsculas.
  • 8. 8 Instituto Profesional DuocUC Escuela de Ingeniería Nombrando Objetos de Bases de Datos • Nombres solo pueden contener – Caracteres alfanuméricos del conjunto de caracteres de la base de datos – El underscore (_) – Signo Dolar ($) – Signo de Libra (#) • Dos objetos no pueden tener el mismo nombre sobre el mismo espacio de nombres Nombrando Objetos de Bases de Datos (continuación) Los identificadores solo pueden contener caracteres alfanuméricos del conjunto de caracteres de la bases de datos y el underscore (_), el signo dólar ($), and y #. Los links de bases de datos pueden contener punto (.) y aroba (@). No se recomienda utilizar $ y #.
  • 9. 9 Instituto Profesional DuocUC Escuela de Ingeniería Espacio de Nombres de Objetos Los siguientes tienen su propio espacio de nombres: • Indexes • Constraints • Clusters • Database triggers • Private database links • Dimensions Los siguientes estan en el mismo espacio de nombres: • Tables • Views • Sequences • Private synonyms • Stand-alone procedures • Stand-alone stored functions • Packages • Materialized views • User-defined types Espacio de Nombres de Objetos Oracle utiliza espacio de nombres (namespaces) para resolver referencias del objeto del esquema. Cuando usted se refiere a un objeto en una declaración SQL, Oracle considera el contexto de la declaración SQL y localiza el objeto en el namespace apropiado. Después de localizar el objeto, realiza la operación especificada por la declaración en el objeto. Si el nombre del objeto no puede ser localizado en el espacio de nombres apropiados, Oracle retorna un error. Ya que tablas y vistas están en el mismo espacio de nombres, una tabla y una vista en el mismo esquema no pueden tener el mismo nombre. Sin embargo, tablas e índices están en diferentes espacios de nombres. De esta manera, una tabla y un índice en el mismo esquema pueden tener el mismo nombre. Cada esquema en la base de datos tiene su propio espacio de nombres para los objetos que contiene. Esto significa, por ejemplo, que dos tablas en diferentes esquemas están en diferentes espacios de nombres y pueden tener el mismo nombre.
  • 10. 10 Instituto Profesional DuocUC Escuela de Ingeniería Especificando Tipos de Datos en Tablas Tipos de Datos Comunes: • CHAR(size): Dato caracter de largo en bytes • VARCHAR2(size): Cadena de caracteres que tiene un largo variable en bytes • DATE: Rango de fecha válido desde Enero 01, 4712 AC hasta Diciembre 31, 9999 DC • NUMBER(p,s): Númerico con precisión p y escala s Especificando Tipos de Datos en Tablas Cuando se crea una tabla, se debe especificar el tipo de datos para cada columna de esta. Cuando se crea un procedimiento o función, se debe especificar el tipo de datos de cada argumento. Estos tipos de datos definen el dominio de valores que cada columna puede contener o que cada argumento puede contener. Oracle dispone de los siguientes tipos de datos: • CHAR: Dato carácter de largo fijo en bytes. Máximo tamaño es 2000 bytes. Valor por defecto y mínimo tamaño es 1 byte. • VARCHAR2: Cada de caracteres de largo variable, cuyo máximo tamaño esta dado en bytes. Máximo es 4000 bytes. Se debe especificar el tamaño para datos VARCHAR2. • DATE: Rango de fecha válido que va desde 01/01/4712 AC hasta 31/12/9999 DC; también almacena la hora (hora, minutos y segundos, además del siglo). Cada dato fecha utiliza 7 bytes de almacenamiento. • NUMBER: Numérico que tiene precisión p y escala s. La precisión puede tener un rango de 1 a 38. La escala puede tener un rango de –84 a 127. Para referirse al listado completo de tipos de datos de Oracle, acceda el manual Oracle Database SQL Reference.
  • 11. 11 Instituto Profesional DuocUC Escuela de Ingeniería Otros Tipos de Datos • FLOAT • INTEGER • NCHAR • NVARCHAR2 • LONG • LONG RAW • RAW • ROWID • UROWID • BLOB • CLOB • NCLOB • BFILE • TIMESTAMP Otros Tipos de Datos • FLOAT(p): Este es un tipo de datos ANSI. Tipo de datos numérico de punto flotante con precisión p. El valor por defecto de precisión para este tipo de datos es 126 binario o 38 decimal. • INTEGER: Esto es equivalente a NUMBER(p,0). • NCHAR(length):El tipo de datos NCHAR es un tipo de datos Unicode-only. Cuando se crea una tabla con una columna NCHAR, se define una columna de largo en caracteres. Usted define el conjunto nacional de caracteres (national character set) cuando se crea la base de datos. El máximo valor de esta columna esta determinado por esa definición en la creación. Las especificaciones del ancho del tipo de datos NCHAr se refieren al número de caracteres. El máximo tamaño de esta columna es 2000. Si se inserta un valor más corto que el largo de la columna, Oracle lo rellena con blancos. No se puede insertar un valor CHAR en una columna NCHAR, no se puede insertar un valor NCHAR en una columna CHAR. • NVARCHAR2(length): El tipo de datos NVARCHAR2 es un tipo de datos Unicode- only Máximo largo es 4000 bytes.
  • 12. 12 Otros Tipos e Datos (continuacion) • LONG: Dato carácter de largo variable hasta 2 gigabytes, o 2 31 -1 bytes. • LONG RAW: Dato binario de largo variable hasta 2 gigabytes. • RAW(size): Dato binario de largo variable en bytes. Máximo tamaño es 2000 bytes. Se debe especificar el tamaño para un valor RAW. • ROWID: Cadena de caracteres de Base 64 que repesenta la dirección única de una fila en una tabla. Este tipo de datos es fundamentalmente para retornar valores de la pseudocolumna ROWID. • UROWID: Cadena de string de Base 64 que representa la dirección lógica de una fila de una tabla indexada. El máximo tamaño de esta columna es 4000 bytes. • BLOB: Un objeto binario grande. • CLOB: Un objeto de caracter extenso, que contiene simples o múltiples de caracteres. • NCLOB: Un objeto de caracter extenso que contiene caracteres Unicode. Nota: El máximo tamaño para todos los tipos de datos LOB (BLOB, CLOB and NCLOB) es: (4 gigabytes - 1) * (el valor de CHUNK). Un CHUNK es un atributo especial que se puede setear cuando se define un LOB. Este especifica el numero de bytes que puede ser asignados para manipular el LOB. Si el tamaño no es múltiplo de bloque de la base de datos, entonces se redondea hacia arriba al múltiplo siguiente. Por ejemplo, si la base de datos tiene un bloque de 2048 y el CHUNCK un tamaño de 2050, entonces la base de datos asigna 4096 (2 bloques). El máximo valor es 32768 (32K), que es el máximo tamaño de un bloque Oracle. El valor por defecto de CHUNCK es el definido para un bloque de datos Oracle. • BFILE: Contiene un puntero a un gran archivo binario almacenado fuera de la base de datos. El máximo tamaño es 4 gigabytes. • TIMESTAMP(fractional_seconds_precision): Año, Mes y Dia de valores fecha, como también horas, minutos y segundos, donde fractional_seconds_precision es el número de dígitos en la parte fraccional de los segundos del campo fecha. Acepta valores de 0 a 9. Default es 6.
  • 13. 13 Instituto Profesional DuocUC Escuela de Ingeniería Creando y Modificando Tablas Especifique nombre de tabla y esquema. Especifique nombre de comunas, tipo de datos y longitudes. Creando y Modificando Tablas Las tablas son la unidad básica de almacenamiento de datos en una base de datos Oracle. Contiene los datos accesibles para los usuarios. Cada tabla tiene columnas y filas. Creando una Tabla Es posible crear una tabla usando el Enterprise Manager como sigue: 1. Click en el Esquema de Tables en la página Administration. Aparece la página de Tables. 2. Si conoce el nombre del esquema, ingrese todo o parte de este esquema en la región Search. Sino conoce el nombre del esquema, haga click en el ícono que parece una linterna al lado del campo esquema. Buscar y Seleccionar: Aparece la ventana de esquemas. Puedes navegar entre nombres de esquemas y selecciona la que corresponda. 3. Click en Create. Aparece una página de crear tablas y la organización de la misma. 4. Aceptar los valores por defecto, siga los pasos de la creación según indique el producto 5. Ingrese el nombre de la tabla. 6. Ingrese el nombre del esquema o búsquelo presionando el icono linterna.
  • 14. 14 Creando y Modificando Tablas (continuación) 7. Ingrese el nombre del tablespace o búsquelo seleccionando el ícono linterna. 8. En la sección columnas, ingrese el nombre de la columna y tipos de datos. 9. Haga click en Ok. Aparece un mensaje de actualización que indica que la tabla ha sido exitósamente creada. Modificando una Tabla Puede modificar una tabla usando el Enterprise Manager según se describe en los siguientes pasos. En este ejemplo, una columna adicional a sido agregada a la tabla. 1. En la página tables, seleccione la tabla del listado y haga click en Edit. 2. En la página Edit Table, haga click en el botón Add 5 Table Columns. Aparece un listado de columnas de campos editables. 3. Ingrese el nuevo nombre de columna, tipo de datos y tamaño. Haga click en Apply. 4. Un mensaje que indica que la tabla ha sido modificada exitósamente aparece.
  • 15. 15 Instituto Profesional DuocUC Escuela de Ingeniería Comprendiendo la Integridad de Datos Comprendiendo la Integridad de Datos Usted puede usar las siguientes constraints de integridad para imponer restricciones sobre la entrada de los valores de las columnas de una tabla: • NOT NULL: Por defecto, todas las columnas en una tabla tienen permitido valores nulos. Null significa ausencia de un valor (no significa 0 ni Blanco, pues ellos utilizan 1 byte). Una constraints NOT NULL requiere que una columna de una tabla contenga valores no nulos. Por ejemplo, se puede definir una constraint NOT NULL para requerir que un valor sea ingresado en la columna last_name para cada nueva fila de la tabla employees. • UNIQUE Key: Una constraint de integridad UNIQUE key requiere que cada valor en una columna o conjunto de ellas (claves) sean únicas, esto es, 2 filas de la tabla no pueden tener el mismo valor duplicado en la columna o conjunto de ellas. Por ejemplo, se define una constraint UNIQUE key sobre la columna department_name de la tabla department, por tanto no pueden haber dos departamentos con nombres duplicados. • PRIMARY KEY: Cada tabla en la base de datos puede tener una o mas constraints de PRIMARY KEY. El valor en el grupo de una o más columnas constituye un identificador único para esa. En efecto, cada filas es nombrada por su valor de clave primaria.
  • 16. 16 Comprendiendo la Integridad de Datos (continued) Oracle implementa las constraints de clave primaria (PRIMARY KEY) garantizando que lo siguiente es verdadero: - No pueden haber dos filas de una tabla con valores duplicados para una columna o conjunto de ellos - La columna clave primaria no puede ser null. Debe haber un valor para cada columna clave primaria en cada fila. Oracle fuerza todos los constraint de PRIMARY KEY usando índices. La constraint de primary creada para la columna department_id en la tabla departments table fuerza implícitamenta la creación: - Un índice único sobre la columna - Una constraint de NOT NULL para la columna Referential integrity constraints : Diferentes tablas en una base de datos relacional puede estar relacionadas por columnas comunes, y reglas que gobiernan las relaciones de columnas deben mantenerse. Las reglas de integridad referencial garantizan que esas relaciones sean preservadas. Una constraint de integridad referencial requiere que para cada fila de la tabla, el valor en la clave foránea este en la tabla padre. Como ejemplo, una foreign key esta definida sobre la columna department_id de la tabla empleados. Esto garantiza que el valor en esta columna debe existir como clave primaria en la tabla departamentos (también la columna department_id). Por lo tanto, ningún número erróneo puede existir en la columna department_id de la tabla departamentos. Check constraints : Una constraint de integridad de CHECK sobre una columna o conjunto de ellas, requiere una condición específica para ser verdadera o no conocida para cada fila de la la tabla. Si el resultado de una sentencia DML en la condición de CHECK es falso, entonces la sentencia es deshecha.
  • 17. 17 Instituto Profesional DuocUC Escuela de Ingeniería Definiendo Constraints Definiendo Constraints Tu puedes agregar constraints a una tabla como sigue: 1. Seleccione la tabla en la página Tabla y haga click en el botón Edit. 2. Haga click en Constraints. La página Constraints es desplegada mostrando todos los constraints que han sido definidos para la tabla. 3. Seleccione el tipo de constraint que se desea agregar desde el menu drop-down y haga Click en Add 4. Ingrese la información apropiada para el tipo de constraint que se ha definido. Haga click en OK.
  • 18. 18 Instituto Profesional DuocUC Escuela de Ingeniería Viendo Atributos de una Tabla Viendo los atributos de una Tabla Puede usar Enterprise Manager para ver los atributos de una tabla, según se explica a continuación: 1. Haga click en el Link en la sección de esquemas en la página de Administración de la Base de Datos. 2. Seleccione la tabla desde el listado disponible y haga click en el Botón View para ver los atributos que ésta tiene. Comando SQL: DESCRIBE <nombre_tabla> DESC <nombre_tabla>
  • 19. 19 Instituto Profesional DuocUC Escuela de Ingeniería Viendo el Contenido de una Tabla Viendo el Contenido de una Tabla Se puede fácilmente ver las filas de una tabla usando Enterprise Manager como sigue: 1. Selecione la tabla en la página Tables. 2. Seleccione View Data desde el menu Actions y haga click en Go. Aparece la página View Data For Table. Las filas para la tabla son mostradas en la sección Results. En la sección QUERY se despliega el SQL que fue ejecutado y produjo el resultado. Sobre esta página se puede hacer click en cualquier columna y orderar los datos en forma ascendente o descendente. Si se desea cambiar la consulta, haga click en el botón Refine Query. En la página Refine Query para la tabla, usted puede seleccionar columnas que desea sean desplegadas y especificar la cláusula WHERE para la sentencia SQL y limitar el resultado. Referirse al manual Oracle Database SQL Reference para más informacion sobre la cláusula WHERE.
  • 20. 20 Instituto Profesional DuocUC Escuela de Ingeniería Acciones con Tablas Acciones con Tablas Es posible seleccionar una tabla y ejecutar acciones sobre ella. • Create Like: Con esto usted puede crear una tabla que tenga la misma estructura que la tabla seleccionada. Usted debe cambiar el nombre de la tabla y los nombres de las constraints. También puede agregar y borrar columnas y hacer otros cambios en la estructura de la tabla. Cuando está creada, la tabla se crea vacía. • Create Index: Use esta opción para crear índices sobre la tabla seleccionada. Indices deben ser creados solo sobre las columnas que serán usadas en las condiciones del WHERE en los select y sentencias DML. • Create Synonym: Un sinónimo es un nombre usado en lugar del nombre completo de la tabla. Un sinónimo puede ser privado o público. • Create Trigger: Un trigger sobre una tabla es un bloque PL/SQL que se ejecuta cuando sucede un evento sobre una tabla (insert, delete, update). Por ejemplo, usted puede desear mantener una copia de los datos en otra tabla al ejecutarse un delete de la tabla. Se puede entonces crear un trigger “before delete” que inserte los datos que han sido borrados de la tabla empleados en otra tabla. Para mas información sobre tiggers referirse a los manuales Application Developer's Guide – Fundamentals and the PL/SQL Users Guide and Reference.
  • 21. 21 Acciones con Tablas (continuación) • Gather Statistics: El Wizard de estadísticas guía al usuario a través del proceso de generar y modificar estadísticas del optimizador de la bases de datos. Las estadísticas son almacenadas en el diccionario de datos y usadas por el optimizador basado en costos. Mantener las estadísticas actualizadas puede generar un gran aumento de rendimiento en consultas SQL. Oracle sugiere que usted automatice las tareas de generar estadísticas regularmente dentro de ventanas de mantenimiento . • Generate DDL: Esto genera el comando para crear la tabla seleccionada. Puede servir para propósitos de documentación. • Grant Privileges: Por defecto, cuando una tabla es creada solo el dueño puede hacer algo con ella. El dueño (propietario) debe asignar privilegios a otrosusuarios para ejecutar DML o DDL sobre la tabla. • Reorganize: Usted puede utilizar el Wizard de Reorganize oara reconstruir tables o índices fragmentados, mover objetos a diferentes tablespaces o optimizar los atributos de almacenamiento de un objeto específico. • Run Segment Advisor: El asesor de segmentos determina si los objetos tienen espacios inutilizados que puedan ser reutilizados, tomando en consideración los requerimientos de espacio futuro para dicha estimación. El espacio futuro a utilizar, lo hace en base a información histórica. • Shrink Segment: Condensa espacio fragmentado y opcionalmente, libera espacio . • Show Dependencies: Muestra los objetos que dependen de esta tabla . • View Data: Ejecuta una sentencia SELECT sobre la tabla, usted redefine la sentencia si desea, No puede cambiar datos solo visualizarlos . • Flashback Table: Las Flashback Tables (Tablas de retroceso), permiten recuperar una tabla a un instante de tiempo previo. Permite recuperar una tabla que ha sido accidentalmente modificada o borrar por un usuario o aplicación. Se puede recuperar los datos de tabla junto a sus atributos asociados, tales como índices triggers, etc. Esto se hace mientras la base de datos esta online devolviendo solo aquellos cambios de dicha tabla. Se puede revertir la tabla a cierto instante del tiempo . • Flashback by Row Versions: Permite consultar metadatos y datos históricos dentro de un intervalo de tiempo.. Se pueden ejecutar consultas sobre la tabla como si fuese un reloj de pared. Debe seleccionar las condiciones que permiten recuperar diferentes versioness de filas en una tabla en un intervalo de tiempo.
  • 22. 22 Instituto Profesional DuocUC Escuela de Ingeniería Creando Indices Creando Indices Los índices son estructuras opcionales asociadas con las tablas. Estos pueden crearse para mejorar el rendimiento en la recuperación de datos de una tabla. Oracle provee índices para acceder directamente a los datos de una tabla. Los índices pueden ser creados de una o más columnas de una tabla. Después que un índice sea a creado, es automáticamente mantenido y usado por Oracle. Al modificar los datos de una tabla, ya sea agregando nuevas filas, modificando filas, borrando filas, automáticamente se actualizan los índices asociados con total transparencia para el usuario que realiza los cambios sobre las filas de dicha tabla. Usted puede hacer click en el link Indexes link bajo el Esquema de Objetos de la página Administration y ver la página de Indices. Usted puede ver los atributos de los índices o usar el menu de Acciones para ver las dependencias de un índice. Los índices son creados explícitamente o implícitamente a través de las constraints que tienen lugar sobre la tabla.
  • 23. 23 Instituto Profesional DuocUC Escuela de Ingeniería ¿Qué es una Vista? • Representan datos de una o más tablas o vistas • Las vistas no contienen datos ¿Qué es una Vista? Las vistas son representaciones customizadas de datos de una o más tablas o de otras vistas. Pueden ser pensadas como consultas almacenadas. Las vistas realmente no contienen datos, pero obtienen sus datos desde tablas. Estas tablas son referenciadas como tablas base de la vista. Una vista es una estructura lógica que tiene la apariencia de una tabla, sin llegar a serla. El objetivo de crear vistas es el de tener que prescindir de la tabla cuando se desea permitir la manipulación de datos a otros usuarios; así como también de prevenir que se altere de manera involuntaria el contenido de la información más sensible que pudiera encontrarse en ciertas tablas. Las vistas se forman haciendo una selección de campos de una o varias tablas. También se puede reemplazar una vista que ya existe con una sintaxis diferente, manteniendo su nombre.
  • 24. 24 Instituto Profesional DuocUC Escuela de Ingeniería Creando Vistas Creando Vistas Al igual que una tabla, las vistas pueden ser consultadas, modificadas insertase filas y borrar algunas de ellas con ciertas restricciones claro esta. Todas las operaciones ejecutadas sobre una vista, afectan las tablas base que la conforman. Las vistas proveen un nivel de seguridad adicional para restringir el acceso a determinado conjunto de filas y columnas de una o mas. También permiten ocultar la complejidad de los datos y almacenar consultas complejas. La sintaxis de la creación de vistas es: CREATE [OR REPLACE] VIEW nombre_vista AS SELECT columna1, columna2, ... FROM tabla1, ... WHERE columna > valor ; En Enterprise Manager, haciendo clik bajo el link Views en el Esquema asociado y debajo de la página de Administration, aparece una nueva página para definir vista de base de datos.
  • 25. 25 Instituto Profesional DuocUC Escuela de Ingeniería Qué es una secuencia? ¿Qué es una secuencia? A menudo es preciso generar números en forma ordenada para implementar, por ejemplo, una clave primaria en una tabla o garantizar que esos números no se repiten y van siempre en un orden predefinido por el desarrollador (no necesariamente secuenciales). La forma tradicional de efectuar lo anterior sería almacenar el último número utilizado en un registro especial, bloquearlo, obtener el próximo valor, actualizar el registro, desbloquearlo y utilizar el número. Sin embargo, para eso Oracle implementa los objetos denominadas secuencias, que permiten hacer lo anterior de manera transparente para el usuario. Cuando se define una secuencia se deben indicar, como mínimo, el valor de partida (valor mínimo) y el incremento
  • 26. 26 ¿Qué es una secuencia? (continuación) Generalmente el uso de secuencias genera valores de llave primaria • Name: Usar las reglas de asignación de nombres descritas anteriormente para nombrar una secuencia. • Schema: Es el propietario de la secuencia. • Type: Un secuencia puede se ascendente o descendente. • Maximum Value: Especifica el máximo valor que puede generar la secuencia. Este es un valor entero de máximo 28 dígitos. Debe ser mayor que el valor mínimo e inicial. Usando Unlimited indica un valor máximo de 1027 para secuencias ascendentes o -1 para secuencias descendentes. Elvalor por default es Unlimited. • Minimum Value: Especifica el mínimo valor para la secuencia. Este es un valor entero de máximo 28 dígitos. Debe ser menor o igual que el inicial y menor que el máximo valor. Usando Unlimited indica un mínimo de 1 para secuencias ascendentes o -1026 para secuencias descendentes. El default es Unlimited. • Interval: Especifica el intervalo entre números de secuencia.El valor entero puedo ser positivo o negatico, pero no puede ser cero. Este valor puede tener hasta 28 dígitos. El valor por defecto es 1. • Initial: Especifica el primero número de la secuencia a ser generado. Use esta cláusula para comenzar una secuancia ascendente en un valor mayor que su mínimo o para comenzar una sucesión descendente en un valor menor que su máximo. • Cycle Values: Después que una secuencia ascendente alcance su valor máximo, genera su valor mínimo. Después que una secuencia descendente alcance su mínimo, genera su valor máximo. Si usted no elige esta opción, un error será devuelto si usted intenta recuperar un valor después de que se haya agotado la secuencia. • Order Values: Esto garantiza que los números de serie están generados en la orden de la petición. Esta cláusula es útil si usted está utilizando los números de serie como timestamps. Garantizar orden no es generalmente importante para las secuencias usadas para generar llaves primarias. Esta opción es necesaria para garantizar solamente la generación pedida si usted está utilizando Oracle con Real Application Cluster • Cache Options: Especifica cuantos valores de secuencia Oracle reserva y mantiene en memoria para un acceso más rápido. Este valor es un entero de hastas 28 dígitos. El mínimo valor de esta parámetro es 2. Para secuencias ciclicas, este valor debe ser menor que el número de valores del ciclo. No se pueden asignar más valores que los que los dados en la secuencias del ciclo. La sintaxis de creación de una secuencia es la siguiente: CREATE SEQUENCE nombre_secuencia INCREMENT BY número START WITH número MINVALUE número [o NOMINVALUE] MAXVALUE número [o NOMAXVALUE] NOCYCLE [o CYCLE] ;
  • 27. 27 Instituto Profesional DuocUC Escuela de Ingeniería Usando una Secuencia Usando Secuencias Usted puede referirse a los valores de secuencias en una sentencia SQL con las siguientes pseudocolumnas: • CURRVAL: Retorna el valor actual de una secuencia • NEXTVAL: Incrementa la secuencia y retorna el siguiente valor Se debe calificar CURRVAL y NEXTVAL con el nombre de la secuencia: sequence.CURRVAL sequence.NEXTVAL La primera referencia a NEXTVAL devuelve el valor inicial de la secuencia. Las siguientes referencias de NEXTVAL incrementan la secuencia en el incremento definido y retorna el siguiente valor. Cualquier referencia a CURRVAL siempre devuelve el valor de la secuencia, que es el último valor retornado por NEXTVAL.
  • 28. Jaime Amigo P. © 2006, Santiago - Chile Instituto Profesional DuocUC Escuela de Ingeniería Fin de la Lección