Sie sind auf Seite 1von 11

FUNDACION UNIVERSITARIA LUMEN GENTIUM UNICATOLICA ASIGNATURA TEMA ELECTIVA I SQL Creacin de una base de datos (Lenguaje DML)

L) RDBMS ORACLE. Gustavo Castao Soto 2

DOCENTE SEMANA

1. Diccionario de datos de ORACLE. El diccionario de datos (DD) de ORACLE es uno de los componentes ms importantes del DBMS ORACLE. Contiene toda la informacin sobre las estructuras y objetos de la base de datos as como de las tablas, columnas, usuarios, ficheros de datos, etc. Los datos guardados en el diccionario de datos son tambin llamados metadatos. Aunque el DD es usualmente del dominio del administrador de base de datos (DBA), es una valiosa fuente de informacion para los usuarios y desarrolladores. El DD consta dos niveles: nivel interno: contiene todas las tablas base que son utilizadas por el SGBD y que no son normalmente accesibles para el usuario, nivel externo: proporciona numerosas vistas de estas tablas base para acceder a la informacin sobre objetos y estructuras a diferentes niveles con detalle.

2. Tablas del diccionario de datos Las tablas y vistas que proporciona el DD contienen informacin sobre: Usuarios y sus privilegios Tablas, columnas de tabla y sus tipos de datos, restricciones de integridad e ndices Estadsticas sobre tablas e ndices usados Privilegios concedidos a los objetos de la BD Estructuras de almacenamiento de la BD Consulta
SELECT * FROM DICTIONARY

Descripcin
Lista todas las tablas y vistas del diccionario de base de datos que son accesibles para el usuario. La informacin seleccionada incluye el nombre y una corta descripcin de cada tabla y vista.

SELECT * FROM TABS

Recupera los nombres de todas las tablas pertenecientes al usuario que emite este comando.

SELECT * FROM COL

Devuelve toda la informacin sobre las columnas de algunas tablas.

3. Vistas del diccionario de datos El nivel externo del DD proporciona un interface para acceder a la informacin relevante para los usuarios. Este nivel tiene numerosas vistas que representan (una porcin de) los datos de las tablas base del DD de un modo legible y entendible. Estas vistas pueden utilizarse en consultas SQL como si fueran tablas normales. Las vistas proporcionadas por el DD se dividen en tres grupos: USER, ALL y DBA. Los nombres de los grupos construyen el prefijo para cada nombre de tabla. Para algunas vistas, hay sinnimos asociados (descritos en las tablas adjuntas). USER_: las tuplas en la vista USER contienen informacin sobre objetos pertenecientes al usuario que realiza la consulta SQL (usuario actual). USER_TABLES USER_CATALOG USER_COL_COMMENTS USER_CONSTRAINTS USER_INDEXES USER_OBJECTS USER_TAB_COLUMNS USER_TAB_COMMENTS USER_TRIGGERS USER_USERS USER_VIEWS Todas las tablas con su nombre, numero de columnas, informacin almacenada, etc. (TABS) Tablas, vistas y sinnimos (CAT) Comentarios en columnas Definiciones de restricciones para tablas Informacin sobre ndices creados para las tablas (IND) Todos los objetos de la BD propiedad del usuario (OBJ) Columnas de las tablas y vistas propiedad del usuario. Comentarios sobre tablas y vistas Disparadores definidos por el usuario. Informacin sobre el usuario actual. Vistas definidas por el usuario

ALL_: as filas de las vistas ALL contienen idntica informacin que las vistas USER pero de todos los usuarios. La estructura de estas vistas es anloga a la estructura de las vistas USER. ALL_TABLES ALL_CATALOG ALL_OBJECTS ALL_TRIGGERS ALL_USERS ALL_VIEWS Propietario, nombre de todas las tablas accesibles Propietario, tipo y nombre de todas las tablas accesibles, vistas y sinnimos. Propietario, tipo y nombre de todos los objetos accesibles de la BD Todos los disparadores definidos. Informacin sobre todos los usuarios. Todas las Vistas definidas.

DBA_: Las vistas DBA incluyen informacin sobre todos los objetos de la BD sin tener a los propietarios de dichos objetos. Slo los usuarios con privilegios DBA pueden acceder a estas vistas. DBA_TABLES DBA_CATALOG DBA_OBJECTS DBA_DATA_FILES DBA_USERS Tablas de todos los usuarios de la BD Tablas vistas y sinnimos definidos en la BD. Objetos de todos los usuarios Informacin sobre los ficheros de datos. Informacin sobre los usuarios de la BD.

4. Tipos de datos ORACLE. Ver archivo de Excel TiposDatos_Oracle.xlsx 5. Crear, Modificar y Borrar Tablas. Los tres comandos SQL que se estudian en este apartado son CREATE TABLE, ALTER TABLE y DROP TABLE, pertenecientes al DDL. Estos comandos permiten respectivamente crear y modificar la definicin de una tabla y eliminarla de la base de datos. 6. Creacin de tablas. Para la creacin de tablas con SQL se utiliza el comando CREATE TABLE. Este comando tiene una sintaxis ms compleja de la que aqu se expone, pero se van a obviar aquellos detalles que quedan fuera del mbito de esta publicacin. La sintaxis del comando es la siguiente:

Donde restriccin_columna tiene la siguiente sintaxis.

Y restriccin_tabla tiene la siguiente sintaxis.

El significado de las distintas opciones es: UNIQUE: impide que se introduzcan valores repetidos para ese atributo. No se puede utilizar junto con PRIMARY KEY. NOT NULL: evita que se introduzcan tuplas con valor NULL para ese atributo. PRIMARY KEY: establece ese atributo como la llave primaria de la tabla. CHECK (condicin): permite establecer condiciones que deben cumplir los valores introducidos en ese atributo. La condicin puede ser cualquier expresin vlida que sea cierta o falsa. Puede contener funciones, atributos (de esa tabla) y literales. Si un CHECK se especifica como una restriccin de columna, la condicin slo se puede referir a esa columna. Si el CHECK se especifica como restriccin de tabla, la condicin puede afectar a todas las columnas de la tabla. Slo se permiten condiciones simples, por ejemplo, no est permitido referirse a columnas de otras tablas o formular subconsulas dentro de un CHECK. Adems las funciones SYSDATE y USER no se pueden utilizar dentro de la condicin. En principio estn permitidas comparaciones simples de atributos y operadores lgicos (AND, OR y NOT). PRIMARY KEY lista_columnas: sirve para establecer como llave primaria un conjunto de atributos. FOREIGN KEY: define una llave externa de la tabla respecto de otra tabla. Esta restriccin especifica una columna o una lista de columnas como de clave externa de una tabla referenciada. La tabla referenciada se denomina tabla padre de la tabla que hace la referencia llamada tabla hija. En otras palabras, no se puede definir una restriccin de integridad referencial que se refiere a una tabla antes de que dicha tabla haya sido creada. Es importante resaltar que una clave externa debe referenciar a una clave primaria completa de la tabla padre, y nunca a un subconjunto de los atributos que forman esta clave primaria. ON DELETE CASCADE: especifica que se mantenga automticamente la integridad referencial borrando los valores de la llave externa correspondientes a un valor borrado de la tabla referenciada (tabla padre). Si se omite esta opcin no se permitir borrar valores de una tabla que sean referenciados como llave externa en otras tablas. En la definicin de una tabla pueden aparecer varias clusulas FOREIGN KEY, tantas como llaves externas tenga la tabla, sin embargo slo puede existir una llave primaria, si bien esta llave primaria puede estar formada por varios atributos.

La utilizacin de la clusula CONSTRAINT nombre_restriccin establece un nombre determinado para la restriccin de integridad, lo cual permite buscar en el Diccionario de Datos de la base de datos con posterioridad y fcilmente las restricciones introducidas para una determinada tabla. Ejercicio Tabla: Parqueaderos

Tabla: Colores_vehiculo

Tabla: Marcas_vehiculo

Tabla: Tipos_Vehiculo

Tabla: Vehiculos

Sintetizando, si al agregar una restriccin "foreign key": no se especifica accin para eliminaciones, y se intenta eliminar un registro de la tabla referenciada en la "foreign key" (marcas_vehiculo) cuyo valor de clave primaria (codigo) existe en la tabla principal (vehiculos), la accin no se realiza. se especifica "cascade" para eliminaciones ("on delete cascade") y elimina un registro de la tabla referenciada (marcas_vehiculo) cuyo valor de clave primaria (codmarcaveh) existe en la tabla principal(vehiculos), la eliminacin de la tabla referenciada (marcas_vehiculo) se realiza y se eliminan de la tabla principal (vehiculos) todos los registros cuyo valor coincide con el registro eliminado de la tabla referenciada (marcas_vehiculo). se especifica accin para eliminaciones ("on delete set null") y se elimina un registro de la tabla referenciada en la "foreign key" (marcas_vehiculo) cuyo valor de clave primaria (codmarcaveh) existe en la tabla principal (vehiculos), la accin se realiza y se setean a "null" todos los valores coincidentes en la tabla principal (vehiculos). La restriccin "foreign key" NO tiene una clusula para especificar acciones para actualizaciones. Si intentamos actualizar un registro de la tabla referenciada por una restriccin "foreign key" cuyo valor de clave primaria existe referenciada en la tabla que tiene dicha restriccin, la accin no se ejecuta y aparece un mensaje de error. Esto sucede porque, por defecto (y como nica opcin), para actualizaciones existe "no action".

Toda la definicin y restricciones de una tabla creada con el comando CREATE TABLE pueden ser consultadas a travs de las siguientes tablas y vistas del Diccionario de Datos de Oracle: USER_TABLES: almacena toda la informacin de almacenamiento fsico relativa a una tabla. USER_CONSTRAINTS: almacena todas las restricciones de integridad definidas por un usuario concreto. USER_CONS_COLUMNS: almacena las restricciones de integridad definidas sobre cada atributo 7. Modificacin de TABLAS. "ALTER TABLE" permite modificar la estructura de una tabla. Podemos utilizarla para agregar, modificar y eliminar campos de una tabla. Agregar campos (ALTER TABLE - ADD) Para agregar un nuevo campo a una tabla empleamos la siguiente sintaxis bsica: ALTER TABLE nombre_tabla ADD nombrenuevocampo DEFINICION; Adicionar el campo chasis en la tabla vehiculos

Adicionar el campo nroparqueadero en la tabla vehiculos

Modificar campos (ALTER TABLE - MODIFY) Para modificar un campo empleamos la siguiente sintaxis: ALTER TABLE nombre_tabla MODIFY nombrenuevocampo NUEVADEFINICION; Modificar campo codtipoveh en la tabla vehculos Ampliar el tamao del campo

Modificar campo codtipoveh en la tabla vehculos Adicionar llave primaria.

Cambiar el nombre de los campos de la tabla. Cambiar el nombre del campo nmbtipoveho de la tabla tipos_vehiculo por nombretipoveh (De acuerdo al modelo E-R)

Borrar un campo de una tabla Adicionar a la tabla vehculos un campo llamado nrollantas

Borrar el campo nrollantas de la tabla vehiculos

Ver la estructura de la tabla vehiculos

8. Comentarios en el diccionario de datos

Comentario en la columna placa de la tabla vehculos.

Ver la estructura de la tabla vehiculos

9. Indices. El objetivo de un indice es acelerar la recuperacin de informacin y que es til cuando la tabla contiene miles de registros, cuando se realizan operaciones de ordenamiento y agrupamiento, etc. Es importante identificar el o los campos por los que sera til crear un ndice, aquellos campos por los cuales se realizan bsquedas con frecuencia: claves primarias, claves externas o campos que combinan tablas. No se recomienda crear ndices sobre campos que no se usan con frecuencia en consultas o en tablas muy pequeas. Para crear ndices empleamos la instruccin "create index".

La sintaxis bsica es la siguiente: create TIPOdeINDICE index NOMBREINDICE on NOMBRETABLA(CAMPOS); Los ndices pueden ser: no nicos (los valores pueden estar repetidos) o nicos (los valores no pueden duplicarse). De modo predeterminado, si no se especifica el tipo de ndice, se crea uno no nico. En el siguiente ejemplo creamos un ndice nico sobre el campo "documento" de la tabla "empleados": create unique index I_empleados_documento on empleados(documento); Para identificar los ndices fcilmente, podemos agregar un prefijo al nombre del ndice, por ejemplo "I" y luego el nombre de la tabla y/o campo. Si se intenta crear un ndice nico para un campo que tiene valores duplicados, Oracle no lo permite. Los campos de tipo "long" y "long raw" no pueden indexarse. Una tabla puede indexarse por un campo (o varios). Creamos un ndice compuesto para los campos "apellido" y "nombre": create index I_empleados_apellidonombre on empleado(apellido,nombre); Cuando creamos una restriccin "primary key" o "unique" sobre una tabla, Oracle automticamente crea un ndice sobre el campo (o los campos) de la restriccin y le da el mismo nombre que la restriccin. En caso que la tabla ya tenga un ndice, Oracle lo usa, no crea otro. Para obtener informacin sobre los ndices podemos consultar varios diccionarios. 1) "user_indexes": nos muestra las siguientes columnas (entre otras que no analizaremos): - INDEX_NAME (nombre del ndice), - INDEX_TYPE (tipo de ndice, nosotros crearemos el stardart normal), - TABLE_NAME (nombre de la tabla), - UNIQUENESS (si es nico o no). 2) "user_ind_columns": nos muestra las siguientes columnas (entre otras que no analizaremos): - INDEX_NAME (nombre del ndice), - TABLE_NAME (nombre de la tabla), - COLUMN_NAME (nombre del campo), - COLUMN_POSITION (posicin del campo),

3) "user_objects": en la columna "OBJECT_TYPE" muestra "index" si es un ndice. 4) "user_constraints": si la restriccin tiene un ndice asociado, aparece su nombre en la columna "INDEX_NAME".

Referencias: Oracle Ya. Oracle Ya desde CERO. El tutorial est pensado para que pueda ser desarrollado por una persona que recin se inicia con SQL. El objetivo de este sitio es poder aprender Oracle en forma sencilla viendo un concepto terico, luego algunos ejercicios resueltos y por ltimo y lo ms importante efectuar una serie de ejercicios. Link: http://www.oracleya.com.ar/ Programacin de bases de datos Universidad de Jan Docente : Andrs Molina Aguilar Link: http://wwwdi.ujaen.es/~molina/bd1/bd1.html

Das könnte Ihnen auch gefallen