5 Objetos de base de datos



Documentos relacionados
3 Consultas y subconsultas

Consultas con combinaciones

Un nombre de usuario de 30 caracteres o menos, sin caracteres especiales y que inicie con una letra.

6.0 Funcionalidades Adicionales

Bibliografía. Fundamentos de Sistemas de Bases de Datos (3. edición) Elmasri, Navathe Addisson Wesley 2002

Base de datos relacional

Sub consultas avanzadas

Oracle 12c DISEÑO Y PROGRAMACIÓN

Resumen. El rol del lenguaje SQL en los SGBDR y en la Relacional. cjimenez@inf.udec.cl, tamrstro@inf.udec.cl

1

Base de Datos Oracle 10g: Introducción a SQL Código: D Duración: 5 días (40 horas)

Seguridad en SQL Server 2005

Creación y administración de grupos de dominio

- Bases de Datos - - Diseño Físico - Luis D. García

CURSO DE SQL SERVER 2005

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros

LABORATORIO 10. ADMINISTRACIÓN DE COPIAS DE SEGURIDAD EN SQL SERVER

PROGRAMAS DE ESTUDIO FORMATO 7 INTRODUCCIÓN A SQL. Área de Formación Profesional

Entidad Formadora: Plan Local De Formación Convocatoria 2010

Creación y administración de grupos locales

Capítulo 12: Indexación y asociación

SQL (Structured Query Language)

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 9. Reglas de Integridad

A.1. Definiciones de datos en SQL

Aplicaciones de las vistas Concepto de vista Vistas en SQL Vistas en SQL.

BASE DE DATOS RELACIONALES

Administración de la producción. Sesión 10: Gestor de Base de Datos (Access)

Microsoft SQL Server 2005

Operación Microsoft Access 97

PARÁMETROS DE CONFIGURACIÓN DE SISTEMAS MANEJADORES DE BASE DE DATOS

Operación de Microsoft Excel. Una lista o una base de datos de Microsoft Excel.

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP

Toda base de datos relacional se basa en dos objetos

Formularios. Formularios Diapositiva 1

Sistema de Gestión Portuaria Sistema de Gestión Portuaria Uso General del Sistema

CAPÍTULO 3 Servidor de Modelo de Usuario

Elementos requeridos para crearlos (ejemplo: el compilador)

10776 Developing Microsoft SQL Server 2012 Databases

SINTAXIS DE SQL-92. <definición de esquema >::= CREATE SCHEMA <cláusula de nombre de esquema> [ <elemento de esquema>... ]

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

Se considera a Oracle como uno de los sistemas de bases de datos más completos, destacando su:

<Generador de exámenes> Visión preliminar

Manual del Usuario. Sistema de Help Desk

Utilidades de la base de datos

Acronis License Server. Guía del usuario

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

Componentes de Integración entre Plataformas Información Detallada

Accede a su DISCO Virtual del mismo modo como lo Hace a su disco duro, a través de:

COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN

Microsoft Access proporciona dos métodos para crear una Base de datos.

Guías _SGO. Gestione administradores, usuarios y grupos de su empresa. Sistema de Gestión Online

POLÍTICAS DE SEGURIDAD PARA EL DESARROLLO DE SISTEMAS DE CAPUFE

Curso Online de Microsoft

Arquitectura de sistema de alta disponibilidad

Oficina Online. Manual del administrador

MANUAL DE USUARIO. SISTEMA DE INVENTARIO DE OPERACIONES ESTADÍSTICAS.

1.1.- Objetivos de los sistemas de bases de datos Administración de los datos y administración de bases de datos Niveles de Arquitectura

2_trabajar con calc I

Gestión de Oportunidades

Autenticación Centralizada

Estructura de una BD Oracle. datafiles redo log controlfiles tablespace objetos Estructura lógica. Tablespaces tablespace SYSTEM

Roles y Características

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto

Manual de Usuario SIMIN 2.0

Infraestructura Tecnológica. Sesión 1: Infraestructura de servidores

SISTEMA DE ESPECIICACION DE REQUERIMIENTOS

Manual del Profesor Campus Virtual UNIVO

QUERCUS PRESUPUESTOS MANUAL DEL USO

T12 Vistas y tablas temporales

Bases de Datos 2. Teórico

8 SQL SERVER 2008 RA-MA

III. ADMINISTRACIÓN DE ORACLE.

G R U P O S INDICE Cómo crear una cuenta en ARQA? Cómo tener un grupo en ARQA? Secciones y funcionalidades de los grupos Configuración del grupo

GENERALIDADES DE BASES DE DATOS

MANUAL DE USUARIO PANEL DE CONTROL Sistema para Administración del Portal Web.

MANUAL DE USUARIO CMS- PLONE

Un ejemplo teórico de trigger podría ser éste:

ADMINISTRACIÓN DE BASES DE DATOS PREGUNTAS TEST SON SOLUCIÓN

Sistema para el control y tramitación de documentos SITA MSc. María de la Caridad Robledo Gómez y Ernesto García Fernández.

MEJORAR EL RENDIMIENTO DEL EXPLORADOR DE INTERNET

Visión General de GXportal. Última actualización: 2009

Modelos y Bases de Datos

Manual del usuario del Módulo de Administración de Privilegios del Sistema Ingresador (MAPSI)

Estándar de desarrollo de aplicaciones del Govern de les Illes Balears

CONSULTAS BASICAS EN SQL SERVER

Internet Information Server

Vistas en postgresql

8 MICROSOFT SQL SERVER 2008 R2. CURSO PRÁCTICO RA-MA

Introducción a la Firma Electrónica en MIDAS

Monografía RECINTOS SEGUROS v4.2

1. DML. Las subconsultas

Manual de usuario del Centro de Control

ADMINISTRACIÓN DE BASE DE DATOS

App para realizar consultas al Sistema de Información Estadística de Castilla y León

Servicio de Alta, Baja, Modificación y Consulta de usuarios Medusa

Manual de Usuario Módulo Gestión de Vistas

Obteniendo más valor de su Sistema ERP

Novedades en Q-flow 3.02

Conceptos básicos Oracle 10g Introducción - Administración de Oracle - Orasite.com

Transcripción:

5 Objetos de base de datos Una consulta SQL, restringiendo las filas resultantes, agrupando valores a nivel de grupos de datos, realizando conversiones de datos, etc., puede ser almacenada en la base de datos. Dicha consulta almacenada se denomina vista de datos, o simplemente vista. Una vez que ha sido definida una vista, la misma puede ser tratada como una tabla más de la base de datos. Puede escribirse una sentencia SELECT que acceda, restrinja, agrupe, etc., datos a partir de la vista. Cada vez que se ejecuta una consulta sobre una vista, la consulta almacenada (o vista) es ejecutada. También es posible realizar actualizaciones de datos sobre las vistas, pero esta operación puede no ser posible debido a la complejidad de la vista en cuestión. Además de tablas y vistas, una base de datos Oracle contiene otros tipos de objetos. Secuencias son utilizadas para generar números secuencialmente. Sinónimos proveen alias (sobrenombres) a objetos. Índices son utilizados para mejorar la performance de consultas SQL. Paquetes, procedimientos y funciones, programados en PL/SQL o Java, también pueden ser almacenados en una base de datos Oracle. Por otro lado, Oracle9i provee varias formas de controlar el acceso de usuarios. Existen diferentes métodos de autenticación y una cuenta de usuario está definida por un conjunto de atributos que controlan la forma en la cual el usuario se conecta e interactúa con la base de datos. Uno de los mecanismos para controlar el acceso de usuarios es a través de la asignación de privilegios. Otorgando y revocando privilegios es posible especificar las tareas que un usuario determinado puede ejecutar sobre los objetos de la base de datos. La definición de perfiles permite controlar cómo se utilizan los recursos del sistema.

5.1 Creación de vistas En la figura (1) se presenta una clasificación de los contenidos tratados en esta subunidad teniendo en cuenta la relación de los mismos con el Material del Estudiante (kit). Esta clasificación sugiere diferentes momentos de lectura, estudio y revisión entre los contenidos de este currículo y el Material del Estudiante (Kit). Según esta clasificación los contenidos pueden ser de: Lectura Previa: Se sugiere la lectura de estos contenidos antes de abordar los subtemas, temas o unidad asociados al Material del Estudiante (Kit). Lectura Complementaria: Se sugiere la lectura de estos contenidos como complemento a los subtemas, temas o unidad asociados al Material del Estudiante (Kit). Lectura Adicional: Se sugiere la lectura posterior de estos contenidos como material adicional a los tratados en el Material del Estudiante (Kit). Prácticas : Actividades de laboratorios e interactivas incluidas como práctica adicional al Material del Estudiante (Kit).

5.1 Creación de vistas 5.1.1 Objetivos Una vista es una representación lógica de datos a partir de una o más tablas o vistas de base. Una vista puede ser pensada como una consulta almacenada en la base de datos. Oracle9i Server permite crear restricciones sobre las vistas y restringir las operaciones que pueden ser realizadas sobre una vista. Este tema discute el uso de vistas, cómo crear y gestionar vistas, y cómo realizar consultas del tipo n- principales en Oracle9i utilizando vistas en línea.

5.1 Creación de vistas 5.1.2 Cuestionario de Iniciación Coloque el cursor sobre los botones numerados que aparecen a la izquierda para visualizar las preguntas de iniciación. Si desea, puede desplegar su respuesta.

5.1 Creación de vistas 5.1.3 Descripción de las VISTAS Una vista es una presentación hecha a medida de los datos en una o más tablas. Una vista también puede ser pensada como una consulta almacenada. Una vista es una tabla virtual en la base de datos cuyos contenidos están definidos por una consulta. Las vistas realmente no contienen o almacenan datos; en lugar de ello, ellas derivan sus datos de tablas sobre las cuales están basadas, referidas como tablas base de las vistas. Las tablas base pueden, a su vez, ser tablas o vistas. Como las tablas, las vistas se pueden consultar, actualizar, insertar en ellas o borrar de ellas, con restricciones. Todas las operaciones efectuadas sobre una vista en realidad afectan a las tablas base de la vista. Las vistas que involucran la unión (una sentencia SELECT que selecciona datos de múltiples tablas) de dos o más tablas sólo pueden ser actualizadas bajo ciertas condiciones.

5.1 Creación de vistas 5.1.4 Beneficios de las vistas Las vistas generalmente se utilizan para proveer un nivel de seguridad de tabla adicional restringiendo el acceso a un conjunto predeterminado de filas y columnas de una tabla. Por ejemplo, una vista de una tabla puede ser creada tal que las columnas con datos sensitivos (por ejemplo, información sobre el salario) no sean incluidas en la definición de la vista. Además ocultan la complejidad de los datos. Por ejemplo, una única vista puede combinar doce tablas de ventas mensuales para proveer un año de datos para realizar análisis y reportes. Una única vista puede ser utilizada para crear una unión, que es una muestra de columnas o filas relacionadas en múltiples tablas. Sin embargo, la vista oculta el hecho de que estos datos realmente provienen de varias tablas. Simplifican los comandos para el usuario. Por ejemplo, las vistas permiten a los usuarios seleccionar información de múltiples tablas sin requerir que los usuarios conozcan cómo realizar una subconsulta de correlación. Presentan los datos en una perspectiva diferente de la de la tabla base. Por ejemplo, las vistas proveen un significado a las columnas renombradas sin afectar las tablas en las cuales la vista está basada. Almacenan consultas complejas. Por ejemplo, una consulta podría ejecutar cálculos extensos con información de una tabla. Grabando esta consulta como una vista, los cálculos son realizados sólo cuando la vista es consultada. Permiten a los desarrolladores crear aplicaciones utilizando vistas, lo cual les minimiza el impacto ante cambios en el origen de los datos o en la forma en la cual se obtienen, teniendo que solo modificar la definición de la vista.

5.1 Creación de vistas 5.1.5 Sintaxis para la creación de las vistas Es posible crear una vista embebiendo una subconsulta en la sentencia CREATE VIEW. Para modificar una vista se debe utilizar la cláusula CREATE OR REPLACE en la sentencia CREATE VIEW.

5.1 Creación de vistas 5.1.6 Consulta de una vista Una vez creada una vista, puede visualizar los datos utilizando la sentencia SELECT de la misma forma que lo hace con las tablas. (1)

5.1 Creación de vistas 5.1.7 Cláusula : WITH CHECK OPTION Para asegurarse que cuando se agregan o actualizan datos en una vista simple, los mismos puedan ser consultados a través de la vista, se utiliza la cláusula WITH CHECK OPTION. (1)

5.1 Creación de vistas 5.1.8 Cláusula : WITH READ ONLY Para asegurar que no ocurran operaciones DML sobre una vista, ésta debe ser creada con la opción WITH READ ONLY. (1)

5.1 Creación de vistas 5.1.10 AI: Generación de vistas con una tabla Lea con atención las sintaxis de creación de vistas y considerando el conjunto los enunciados presentados, una con flechas según corresponda.

5.1 Creación de vistas 5.1.11 AI: Generación de vistas con más de una tabla En base a la sentencia de creación de vista presentada, responda si las siguientes afirmaciones son verdaderas o falsas.

5.1 Creación de vistas 5.1.12 Síntesis Una vista es una representación de datos hecha a medida a partir de una o más tablas o vistas de base. La vista es una consulta almacenada. Vistas pueden ser utilizadas para presentar una perspectiva diferente de los datos, para limitar el acceso a datos, o para ocultar una consulta compleja. Vistas pueden ser utilizadas de la misma en que se usan tablas en consultas. Es posible actualizar, eliminar e insertar datos en las tablas de base a partir de una vista (con restricciones), pero la operación puede afectar sólo una tabla a la vez si existe más de una tabla en la definición de la vista. Para modificar la definición de una vista, se debe recrear la vista utilizando la sentencia CREATE OR REPLACE. Para recompilar una vista, agregar o eliminar restricciones, se utiliza la sentencia ALTER VIEW. Restricciones declarativas pueden ser creadas sobre vistas; las restricciones no son impuestas. Los tipos de restricciones válidos son: de clave primaria, de clave única y de clave foránea. Una vista en línea es una consulta que puede ser utilizada en lugar de una tabla o vista en la cláusula FROM de una consulta. Utilizando la cláusula ORDER BY en vistas (y en vistas en línea), es posible ejecutar análisis del tipo n-principales.

5.2 Otros objetos de base de datos En la figura (1) se presenta una clasificación de los contenidos tratados en esta subunidad teniendo en cuenta la relación de los mismos con el Material del Estudiante (kit). Esta clasificación sugiere diferentes momentos de lectura, estudio y revisión entre los contenidos de este currículo y el Material del Estudiante (Kit). Según esta clasificación los contenidos pueden ser de: Lectura Previa: Se sugiere la lectura de estos contenidos antes de abordar los subtemas, temas o unidad asociados al Material del Estudiante (Kit). Lectura Complementaria: Se sugiere la lectura de estos contenidos como complemento a los subtemas, temas o unidad asociados al Material del Estudiante (Kit). Lectura Adicional: Se sugiere la lectura posterior de estos contenidos como material adicional a los tratados en el Material del Estudiante (Kit). Prácticas : Actividades de laboratorios e interactivas incluidas como práctica adicional al Material del Estudiante (Kit).

5.2 Otros objetos de base de datos 5.2.1 Objetivos Una base de datos Oracle puede contener mucho más que simples tablas y vistas. Secuencias pueden ser utilizadas para generar claves artificiales. Sinónimos proveen alias (sobrenombres) a objetos. Varios tipos de índices pueden ser utilizados para mejorar la performance de consultas SQL. Para ejecutar tareas de administración de base de datos es necesario conocer cómo utilizar paquetes, procedimientos y funciones. Un objeto secuencia en una base de datos Oracle es un generador de números secuenciales con nombre. Secuencias son frecuentemente utilizadas para generar claves artificiales o para ordenar filas que de otra manera no poseen orden. De la misma forma que ocurre para restricciones, secuencias sólo existen en el diccionario de datos. Un objeto sinónimo en una base de datos Oracle es un alias (sobrenombre) a otro objeto de base de datos. Un sinónimo público está disponible para todos los usuarios, mientras que un sinónimo privado está disponible sólo para el propietario del mismo o para los usuarios a quienes el propietario otorga privilegios. Índices son estructuras de datos que pueden ofrecer mejoras de performance, por sobre el recorrido completo de tablas, al obtener filas específicas de datos. No obstante, índices no siempre mejoran la performance. Este tema abarca cómo crear, modificar y eliminar secuencias, sinónimos e índices, y cómo utilizar el diccionario de datos para realizar tareas de administración de base de datos relacionadas a estos tipos de objetos. Además, dicho tema revisa las tecnologías de indexación B-tree y bitmap (mapa de bits), y repasa cuándo y cómo índices pueden mejorar performance.

5.2 Otros objetos de base de datos 5.2.2 Cuestionario de Iniciación Coloque el cursor sobre los botones numerados que aparecen a la izquierda para visualizar las preguntas de iniciación. Si desea, puede desplegar su respuesta.

5.2 Otros objetos de base de datos 5.2.3 Descripción de Secuencias Sintaxis Una secuencia es un objeto de la base de datos creado por un usuario, y puede ser compartido por varios de ellos. Se puede utilizar un generador de secuencia para producir automáticamente una secuencia de números enteros únicos para las filas de una tabla. Los números de una secuencia se almacenan y generan independientemente de las tablas. De esta manera, la misma secuencia puede ser utilizada por varias tablas. Cuando se genera un número de secuencia, se incrementa la secuencia independientemente de que la transacción se confirme o se descarte. En la figura (1), se muestra la sintaxis de lo expresado anteriormente. Si el valor INCREMENT BY es negativo, la secuencia descenderá. Adicionalmente, NOMAXVALUE entonces especifica un valor máximo de 1 y NOMINVALUE tiene un valor mínimo de (1026). Si los valores de la secuencia se mantienen en memoria principal (en la cache), se perderán ante una falla o caída del sistema. Si se especifica la opción NOCYCLE, cualquier intento de generar un número de secuencia, una vez alcanzado el valor máximo, causará un error. Un uso muy común de las secuencias es para crear valores de clave primaria, ya que el mismo debe ser único para cada fila. La secuencia se genera e incrementa (o decrementa) por una rutina interna de Oracle9i. (2) Son útiles en ambientes multiusuario porque reducen el tiempo de ejecución de una transacción, fundamentalmente cuando las sentencias de dos transacciones deben generar números secuenciales al mismo tiempo. El generador de secuencias elimina la serialización en la generación de estos números. Una vez que una sentencia en una sesión del usuario genera un número de secuencia, el número de secuencia generado está disponible solo en esa sesión. Cada usuario que referencia una secuencia tiene acceso a sus números de secuencia propios (no los que puedan haber generado otros usuarios con la misma secuencia). Para eliminar una secuencia, se utiliza el comando DROP SEQUENCE (3). Consulta de los Parámetros de una Secuencia Una vez que se ha creado la secuencia, la misma es documentada en el diccionario de datos. Para consultar los parámetros de la secuencia, se los puede seleccionar de la tabla USER_SEQUENCES del diccionario de datos. (4)

5.2 Otros objetos de base de datos 5.2.4 Utilización de secuencias Una vez creada la secuencia, se la puede usar para generar números secuenciales que se utilizarán en las tablas. Para hacer referencia a los valores de la secuencia, se utilizan las pseudocolumnas NEXTVAL y CURRVAL. Pseudocolumnas NEXTVAL y CURRVAL La pseudocolumna NEXTVAL se utiliza para obtener el próximo número de una secuencia específica. Se debe cualificar NEXTVAL con el nombre de la secuencia. Cuando se referencia a secuencia.nextval, un nuevo número de secuencia se genera y el número actual se coloca en CURRVAL. La pseudocolumna CURRVAL se utiliza para hacer referencia al número de secuencia recientemente generado. NEXTVAL debe ser usado para generar un número de secuencia en la sesión actual del usuario, antes de poder hacer referencia a CURRVAL. Se debe cualificar a CURRVAL con el nombre de la secuencia. Cuando se referencia a secuencia.currval, se obtiene el último valor devuelto al proceso del usuario. (1) - (2)

5.2 Otros objetos de base de datos 5.2.5 Descripción de índices Sintaxis Un índice es un objeto de la base de datos que contiene una entrada por cada valor que aparece en las columnas indexadas de la tabla y permite acelerar la recuperación de filas. Si no se tiene un índice sobre la(s) columna(s), entonces se debe hacer un barrido total de la tabla para una búsqueda. Los índices reducen la necesidad de E/S de disco mediante el uso de una estructura Árbol B (B*Tree) indexada para ubicar rápidamente a los datos. El índice es automáticamente usado y mantenido por Oracle9i Server. Una vez que un índice es creado, no se requiere actividad directa del usuario. La presencia de muchos índices sobre una tabla disminuye la performance de la tabla cuando se actualiza, inserta o borra porque tienen que actualizarse los índices asociados con las tablas. Los índices son lógica y físicamente independientes de la tabla sobre la que se aplican. Esto significa que pueden ser creados o eliminados en cualquier momento y no tienen efectos sobre la tabla base u otros índices. Un índice es una estructura opcional que es independiente de la estructura de la tabla. Cada índice se compone de valores de las columnas que se indexan, y punteros (o ROWID) a las filas que contienen esos valores. Cada puntero conduce directamente a la fila apropiada, en consecuencia se evita el barrido total de la tabla. Árbol B (B*Tree) Oracle9i Server usa una estructura de índice de tipo árbol B balanceado. Esta es una estructura de búsqueda binaria, autobalanceada para igualar los tiempos de acceso para todas las filas. Es un método eficiente que asegura que el tiempo de acceso a un valor específico sea más o menos el mismo ya sea que la fila se encuentre al principio, al medio o al final de la tabla. Cada índice que Oracle9i Server construye consiste de un número de páginas (o ramas) de almacenamiento organizadas en una estructura de árbol. Cada página (o rama) contiene una serie de valores de claves y punteros a las páginas (o ramas) inferiores en la estructura hasta que eventualmente el valor de la clave indica la ubicación del dato propiamente dicho. El identificador de la ubicación a nivel de la base de datos se denomina ROWID. Para crear un índice sobre una o más columnas, se utiliza el comando CREATE INDEX. (1) (2)

5.2 Otros objetos de base de datos 5.2.6Índices creados automáticamente Se pueden crear dos tipos de índices (1). Un tipo es un índice único o unique. Oracle9i Sever crea automáticamente este tipo de índice cuando en una tabla se definen una o más columnas que forman parte de una restricción PRIMARY KEY o UNIQUE. El índice toma el mismo nombre que la restricción. El otro tipo de índice que un usuario puede crear es un índice no único (non-unique). Por ejemplo, se puede crear un índice de columna FOREIGN KEY para una operación de unión en una consulta que acelere la respuesta. Los tipos de índices único y no único son mutuamente excluyentes, pero pueden estar formados por una o más columnas. Por ejemplo, se puede crear un índice único, concatenado. El orden de las columnas en un índice concatenado es importante. El Servidor lee las columnas de izquierda a derecha cuando averigua la eficiencia para elegir el índice. La decisión de crear índices es una decisión global de alto nivel. Con frecuencia, la creación y el mantenimiento de índices es una tarea del DBA.

5.2 Otros objetos de base de datos 5.2.7 Descripción de Sinónimos Sintaxis Crear un Sinónimo para un Objeto Para referirse a una tabla de otro usuario, se necesita prefijar el nombre de la tabla con el nombre del usuario que lo creó seguido por un punto. Crear un sinónimo elimina la necesidad de calificar el nombre del objeto con el esquema y provee un nombre alternativo para una tabla, vista, secuencia, procedimiento u otros objetos. Este método puede ser especialmente útil con objetos con nombres largos, tales como vistas. No requiere almacenamiento, solo un lugar en la definición en el diccionario de datos. (1) Con la utilización de sinónimos se puede lograr: enmascarar el nombre del dueño de un objeto simplificar las sentencias SQL para los usuarios de datos en aplicaciones distribuidas dar transparencia a la localización de las bases de datos Se pueden crear sinónimos públicos y privados. Una vez que se ha creado un sinónimo, el mismo es documentado en el diccionario de datos. Para información a cerca de los sinónimos creados, se los puede seleccionar de la tabla USER_SYNONYMS del diccionario de datos. Eliminar un Sinónimo Para eliminar un sinónimo, se utiliza el comando DROP SYNONYM. Solamente el DBA puede eliminar un sinónimo público. (2) Nota: En Oracle9i Server, el DBA puede específicamente otorgar el privilegio CREATE PUBLIC SYNONYM a cualquier usuario, permitiéndole al usuario crear sinónimos públicos.

5.2 Otros objetos de base de datos 5.2.10 AI: Mayor velocidad con los Índices Teniendo en cuenta los motivos por el cual es posible decidir si es conveniente o no crear un índice sobre ciertas columnas, responda si son verdaderas o falsas las siguientes afirmaciones.

5.2 Otros objetos de base de datos 5.2.11 Síntesis Este tema abordó secuencias, sinónimos e índices. Secuencias son generadores de números, y es posible utilizarlas junto a las palabras clave CURRVAL y NEXTVAL. Un sinónimo es un mecanismo para darle un sobrenombre o alias a otro objeto, ya sea que dicho objeto sea local o remoto accesible a través de un enlace de base de datos. Los sinónimos pueden estar disponibles en forma global (públicos), o restringidos a usuarios limitados (privados). Los dos tipos principales de índices son los índices B-tree y bitmap. En este tema se profundizó sobre cuándo dichos índices pueden mejorar la performance de una consulta, y también que los mismos pueden empeorar las operaciones INSERT, DELETE y UPDATE.

5.3 Control de acceso de usuarios En la figura (1) se presenta una clasificación de los contenidos tratados en esta subunidad teniendo en cuenta la relación de los mismos con el Material del Estudiante (kit). Esta clasificación sugiere diferentes momentos de lectura, estudio y revisión entre los contenidos de este currículo y el Material del Estudiante (Kit). Según esta clasificación los contenidos pueden ser de: Lectura Previa: Se sugiere la lectura de estos contenidos antes de abordar los subtemas, temas o unidad asociados al Material del Estudiante (Kit). Lectura Complementaria: Se sugiere la lectura de estos contenidos como complemento a los subtemas, temas o unidad asociados al Material del Estudiante (Kit). Lectura Adicional: Se sugiere la lectura posterior de estos contenidos como material adicional a los tratados en el Material del Estudiante (Kit). Prácticas : Actividades de laboratorios e interactivas incluidas como práctica adicional al Material del Estudiante (Kit).

5.3 Control de acceso de usuarios 5.3.1 Objetivos Oracle9i Server provee varias formas de controlar el acceso de usuarios. Cuando se crea un usuario, es posible especificar el método de autenticación utilizado así como otros atributos que controlan la forma en que el usuario accede e interactúa con la base de datos. También es posible modificar cuentas de usuario para agregar o cambiar atributos. La forma más común de controlar el acceso de usuarios es a través de privilegios. Oracle9i Server incluye privilegios de objeto, privilegios de sistema, y privilegios de roles. Otorgando y revocando privilegios es posible especificar las tareas que un usuario determinado puede ejecutar sobre los objetos de la base de datos. Otro método de controlar cómo usuarios utilizan recursos del sistema es a través de perfiles. Este tema cubre cómo crear y modificar cuentas de usuario, cómo permitir o prevenir cambios utilizando privilegios y cómo gestionar la asignación de privilegios utilizando roles. Además, dicho tema abarca cómo asignar perfiles.

5.3 Control de acceso de usuarios 5.3.2 Cuestionario de Iniciación Coloque el cursor sobre los botones numerados que aparecen a la izquierda para visualizar las preguntas de iniciación. Si desea, puede desplegar su respuesta.

5.3 Control de acceso de usuarios 5.3.3 Descripción de Privilegios Privilegios son los derechos para ejecutar sentencias SQL particulares. El administrador de la base de datos es un usuario de alto nivel con la capacidad para otorgarle permisos a los usuarios para acceder a la base de datos y sus objetos. Los usuarios requieren privilegios del sistema para obtener el acceso a la base de datos y privilegios de objetos para manipular el contenido de los objetos en la base de datos. A los usuarios, además se les puede dar el privilegio de otorgar privilegios adicionales a otros usuarios o a roles, que son grupos de privilegios relacionados que tienen un nombre. (1) Privilegios del Sistema Un privilegio del sistema es el derecho a realizar una acción particular, o realizar una acción sobre cualquier ( any ) objeto de un tipo particular. Por ejemplo, los privilegios para crear tablespaces o para borrar filas de cualquier tabla de una base de datos son privilegios del sistema. Existen más de ochenta privilegios del sistema disponibles para los usuarios y roles, dentro de los cuales podemos mencionar a CREATE TABLE, CREATE ANY TABLE, SELECT ANY TABLE, ALTER SESSION entre otros. Los privilegios del sistema son otorgados generalmente por el administrador del sistema. Privilegios de Objetos Un privilegio sobre un objeto del schema es un derecho para efectuar una acción particular (INSER, UPDATE, REFERENCES, EXECUTE) sobre una tabla, vista, secuencia, procedimiento, función o paquete. Cada tipo de objeto tiene un determinado juego de privilegios otorgables. Algunos otros objetos como clusters, índices, triggers y vínculos de base de datos (database links) no se asocian a privilegios sobre los objetos, sino que son controlados por medio de privilegios del sistema. Un objeto del schema y su sinónimo son equivalentes en cuanto a los privilegios, esto implica que en cuanto a los privilegios referenciar el objeto o su sinónimo es lo mismo. Un usuario posee automáticamente todos los privilegios sobre los objetos que se encuentran en su schema. Por lo tanto, un usuario puede garantizar cualquier privilegio sobre estos objetos a cualquier otro usuario o rol. Si la asignación de privilegios incluye GRANT OPTION, el usuario o rol a quien se le asigno esta opción, puede a su vez asignar estos privilegios a otros usuarios.

5.3 Control de acceso de usuarios 5.3.4 Creación de Usuarios Sintaxis Un usuario es un nombre definido en la base de datos que se puede conectar y acceder a los objetos. Un schema es un conjunto nominado de objetos tales como tablas, vistas, clusters, procedimientos y paquetes asociados con un usuario particular. Cuando se crea un usuario se crea el schema correspondiente con el mismo nombre. Por default, una vez que el usuario se conecta con la base de datos, el usuario tiene acceso a todos los objetos contenidos en el schema correspondiente. El usuario se asocia con el schema del mismo nombre, por lo tanto, los términos usuario y schema se usan para referirse a lo mismo. El DBA crea un nuevo usuario en Oracle9i Server asignándole una cantidad de privilegios al mismo. Esos privilegios determinan qué puede hacer el usuario a nivel de la base de datos. El DBA crea al usuario ejecutando el comando CREATE USER (1). El usuario no tiene privilegios del sistema. Una vez creado el usuario, puede asignarle los privilegios. Cada base de datos tiene un usuario de grupo llamado PUBLIC. El usuario PUBLIC provee el acceso público a objetos específicos del schema (tablas, vistas, etc.) y provee a todos los usuarios con privilegios del sistema específicos. Todo usuario pertenece automáticamente al grupo de usuarios PUBLIC. Como miembros de PUBLIC, los usuarios pueden ver (seleccionar de) todas las tablas del diccionario de datos prefijadas como USER and ALL. Además, un usuario puede garantizar un privilegio o un rol a PUBLIC.

5.3 Control de acceso de usuarios 5.3.5 Otorgar privilegios Sintaxis Otorgar Privilegios del Sistema El DBA usa el comando GRANT para asignarle privilegios del sistema al usuario. Una vez que se le otorgan los privilegios al usuario, éste puede usarlos inmediatamente. (1) Otorgar Privilegios Sobre un Objeto El DBA puede permitir a los usuarios realizar una acción particular sobre una tabla, vista, secuencia o procedimiento almacenado otorgándole privilegios sobre los objetos. El propietario de un objeto tiene todos los privilegios sobre el mismo. Para que un usuario le otorgue acceso a sus objetos a otro usuario, debe ejecutar el comando GRANT. (2) Un privilegio otorgado con WITH GRANT OPTION puede ser transmitido a otros usuarios y roles por el depositario del privilegio. Los privilegios otorgados con WITH GRANT OPTION son quitados cuando se le quitan a quien los pasó u otorgó. Nota: Si a un usuario se le otorga un privilegio con WITH GRANT OPTION, entonces ese usuario también puede otorgar ese privilegio con WITH GRANT OPTION, de tal modo que una larga cadena de concesiones es posible, pero no se permiten concesiones circulares. Si un propietario revoca un privilegio a un usuario que además ha otorgado ese privilegio a otros usuarios, entonces el REVOKE quita todos los privilegios otorgados en cascada. Por ejemplo, sin un usuario A otorga el privilegio SELECT sobre la tabla Ventas al usuario B incluyendo la opción WITH GRANT OPTION, entonces el usuario B puede otorgar el mismo privilegio al usuario C con la misma opción, y lo mismo puede hacer el usuario C con el usuario D. Si el usuario A le quita el privilegio al usuario B o el usuario B es eliminado, entonces los usuarios C y D pierden los privilegios sobre la tabla Ventas concedidos por el usuario B. (3) (4)

5.3 Control de acceso de usuarios 5.3.6 Quitar privilegios Sintaxis Para quitar los privilegios otorgados a otros usuarios se utiliza el comando REVOKE (1). Cuando se utiliza el comando REVOKE, los privilegios que uno especifica pueden ser quitados a los usuarios que se nombren y a todos los demás usuarios a quienes se les haya otorgado privilegios.

5.3 Control de acceso de usuarios 5.3.7 Descripción de roles Sintaxis Oracle9i Server tiene un modo fácil y controlado de administrar privilegios a través de roles. En general se emplean para asignar los privilegios relacionados con los usuarios finales de las aplicaciones de un sistema o para asignar roles a otros roles. En general no se emplean para asignar privilegios a los que desarrollan las aplicaciones, estos privilegios necesitan asignarse directamente. Un rol es un grupo de privilegios relacionados que se le pueden otorgar a los usuarios y que lleva un nombre. Esto hace que otorgar y quitar privilegios sea fácil de realizar y mantener. Un usuario puede tener varios roles y a varios usuarios se les puede asignar el mismo rol. Los roles se crean para una aplicación de la base de datos. Primero, el DBA debe crear el rol (1). Luego, puede asignar privilegios al rol y usuarios al rol. Una vez creado un rol, el DBA puede usar el comando GRANT para asignar usuarios al rol como así también asignar privilegios para el rol. Los roles de la base de datos tienen la siguiente funcionalidad: un rol puede tener privilegios del sistema y privilegios de objetos del schema un rol se puede asignar a otros roles. No obstante un rol no se puede autorizar a sí mismo ni tampoco de manera circular a cualquier usuario de la base de datos se le puede asignar cualquier rol. un rol asignado a un usuario se puede habilitar o inhabilitar en cualquier momento. un rol garantizado indirectamente (un rol asignado a un rol) puede ser explícitamente habilitado o inhabilitado al usuario. No obstante para habilitar un rol que contiene otros roles, los roles contenidos se habilitan implícitamente habilitando el rol que los contiene.

5.3 Control de acceso de usuarios 5.3.8 Tabla de privilegios por Objeto Los privilegios de objetos varían de un objeto a otro. En la figura (1), se muestra un resumen de los privilegios que se pueden otorgar sobre algunos tipos de objetos. Nota: procedimiento se refiere a procedimientos y funciones aislados y a construcciones package públicas. Los privilegios INDEX y REFERENCES no se pueden otorgar a un rol. Cada objeto tiene un conjunto particular de privilegios otorgables. UPDATE, REFERENCES e INSERT se pueden restringir especificando un subconjunto específico de columnas modificables. Un SELECT se puede restringir especificando un subconjunto de columnas seleccionables. El privilegio que se otorga sobre un sinónimo se traslada a la tabla base referenciada por ese sinónimo.

5.3 Control de acceso de usuarios 5.3.9 Descripción de enlaces de Bases de datos remotas Un enlace de base de datos es un objeto del esquema de una base de datos local que permite tener acceso a objetos que se encuentren en una base de datos remota. La base de datos remota no necesariamente debe ser Oracle. Una vez creado un enlace de base de datos, se puede utilizar para referenciar a las tablas y vistas sobre la base de datos remota anexando @dblink al nombre de la tabla o vista en una sentencia SQL. (1)

5.3 Control de acceso de usuarios 5.3.11 AI: Gestión de usuarios y privilegios Arrastre las opciones que crea correctas para completar las siguientes sentencias.

5.3 Control de acceso de usuarios 5.3.12 Síntesis En este tema se profundizó sobre cómo crear y gestionar cuentas de usuario, incluyendo la configuración de varios atributos sobre dichas cuentas. Seguidamente, se explicó acerca de privilegios de objeto y de sistema, y sobre cómo gestionar estos privilegios a través del uso de roles. Se aprendió cómo asignar y cómo quitar privilegios utilizando las sentencias GRANT y REVOKE. También se revisaron muchas de las vistas del diccionario de datos que proveen información sobre privilegios. Finalmente, este tema cubrió cómo gestionar grupos de usuario con perfiles. Perfiles permiten la configuración de recursos del sistema con el objetivo de limitar el consumo de recursos para determinados grupos de usuarios, así como la configuración de recursos relacionados a claves de acceso para gestionar las reglas de utilización de claves de acceso.

5.4 Taller SQL En la figura (1)se presenta una clasificación de los contenidos tratados en esta subunidad teniendo en cuenta la relación de los mismos con el Material del Estudiante (kit). Esta clasificación sugiere diferentes momentos de lectura, estudio y revisión entre los contenidos de este currículo y el Material del Estudiante (Kit). Según esta clasificación los contenidos pueden ser de: Lectura Previa: Se sugiere la lectura de estos contenidos antes de abordar los subtemas, temas o unidad asociados al Material del Estudiante (Kit). Lectura Complementaria: Se sugiere la lectura de estos contenidos como complemento a los subtemas, temas o unidad asociados al Material del Estudiante (Kit). Lectura Adicional: Se sugiere la lectura posterior de estos contenidos como material adicional a los tratados en el Material del Estudiante (Kit). Prácticas : Actividades de laboratorios e interactivas incluidas como práctica adicional al Material del Estudiante (Kit).

5.4 Taller SQL 5.4.1 Objetivos En el capítulo 14 del Kit de Estudiante se presenta un Taller SQL que aborda los temas tratados hasta el momento en el curso Introducción a Oracle9i: SQL. El objetivo principal de este taller consiste en crear un juego de tablas para una aplicación de video, realizando las actividades que se presentan en la figura (1).

5.4 Taller SQL 5.4.2 Cuestionario de Iniciación Coloque el cursor sobre los botones numerados que aparecen a la izquierda para visualizar las preguntas de iniciación. Si desea, puede desplegar su respuesta.

5.4 Taller SQL 5.4.3 Secuencia de trabajo para el taller En la figura (1) se muestra un resumen de items de este Material Complementario asociados a cada etapa del Taller SQL, permitiendo al estudiante repasar conceptos y sintaxis de cláusulas SQL necesarias para realizar la actividad correspondiente.

5.4 Taller SQL 5.4.4 Síntesis Este tema abordó la implementación de un modelo de datos correspondiente a una aplicación de alquiler de videos. Primeramente, se crearon las tablas del modelo, se definieron relaciones entre tablas, y se verificaron los objetos creados contra el diccionario de datos. Seguidamente, se crearon secuencias, las que fueron utilizadas en la inserción de datos a las tablas. Una vez que el modelo quedó definido y cargado con datos, se definió una vista personalizada sobre dicho modelo. Como paso siguiente, se actualizaron datos de negocio, y se modificó la definición de una tabla de dominio. Por último, se presentaron los datos con formato de reporte de impresión.