UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDES



Documentos relacionados
Base de datos relacional

CONTROL DE ACCESO. curso 2008

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

Administración de Oracle 9i. Existen alrededor de 126 privilegios del sistema, a continuación vemos los más destacados

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

CREATE USER ADMINISTRADOR IDENTIFIED BY ADMIN DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP QUOTA 500K ON USERS;

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

Seguridad en SQL Server 2005

M. C. Gustavo Alfonso Gutiérrez Carreón

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

Base de Datos Práctica 1.

BASE DE DATOS - CURSO 02/03 PRÁCTICA 2: SQL: Lenguaje de definición de datos (DDL)

III. ADMINISTRACIÓN DE ORACLE.

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS

INTRODUCCIÓN INTRODUCCIÓN INTRODUCCIÓN INTRODUCCIÓN INSTRUCCIONES DE DEFINICIÓN DE TABLAS E ÍNDICES INSTRUCCIONES DE DEFINICIÓN DE TABLAS E ÍNDICES

sql*plus es un programa de linea de comandos de oracle que puede ejecutar comandos sql y pl/sql de forma interactiva o mediante un script.

UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA DE LA FUERZA ARMADA NACIONAL EXTENSIÓN BARQUISIMETO BARQUISIMETO ESTADO. LARA

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

Ejercicios: Administración de Bases de Datos en ORACLE

INSTALACIÓN DE ORACLE 8i (8.1.7) SOBRE NT

BrowserSQL 4 versión 2 - TUTORIAL

Región de Murcia Consejería de Educación, Ciencia e Investigación. Manual Usuario FCT

ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Programación de sitios web Act 11: Reconocimiento de la unidad 3

CONCEPTOS DE PROCESAMIENTO DE TRANSACCIONES

Si queremos modificar la contraseña de sys, una vez que accedamos al sistema como sys, escribiremos la sentencia:

EL ENTORNO DE TRABAJO SQL ORACLE

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

Universidad Nacional de Costa Rica Administración de Bases de Datos

Oracle Database 10g: Taller de Administración I 1-2

Seguridad y Auditoría de Bases de Datos Oracle

Tema: Auditoria de Base de datos. Objetivo Especifico

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

Tema: Auditoria de Base de datos. Parte I

T12 Vistas y tablas temporales

PROCESO GESTIÓN ADMINISTRATIVA INSTRUCTIVO TÉCNICO ALISTAMIENTO SERVIDORES GESTIÓN DOCUMENTAL

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

Bases de datos relacionales y el modelo entidad-relación

Diseño de bases de datos

Trabajos de Ampliación. Bases de datos NoSQL.

QUÉ ES UNA BASE DE DATOS Y CUÁLES SON LOS PRINCIPALES TIPOS? EJEMPLOS: MYSQL, SQLSERVER, ORACLE, POSTGRESQL, INFORMIX (DV00204A)

Iniciando con Oracle. Índice de contenido. Ingresando a Oracle. Cambiando Su Contraseña. Ingresando un Comando SQL en SQL*Plus

BASE DE DATOS RELACIONALES

El Modo SQL de Emacs

Backup & Recovery Oracle 9i. Las copias físicas offline, conocidas como Backups en frío, se realizan cuando la Base de Datos está parada.

MANUAL BÁSICO DE ORACLE

Maestría en Bioinformática. Bases de Datos y Sistemas de Información SQL: DDL. Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.

UNIVERSIDAD TÉCNICA DEL NORTE FACULTAD DE INGENIERÍA EN CIENCIAS APLICADAS ESCUELA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES

Clase 1: Estructuras, Procesos y Diccionario de Datos

Componentes de una BD

PROYECTO ADMINISTRACIÓN ORACLE ENTERPRISE MANAGER

ATLAS PERSISTENCIA DE SESIONES EN BASE DE DATOS CON WEBLOGIC 9.2

Universidad Católica Boliviana San Pablo Centro de Sistemas de Información

Oracle Básico PL/SQL

Estimado usuario. Tabla de Contenidos

Aviso Legal El presente libro electrónico se distribuye bajo Attribution-NonCommercial- NoDerivs 3.0 Unported

Restricciones (constraints) FOREIGN KEY

Modelos y Bases de Datos

1. Arquitectura y estructura interna de un gestor de bases de datos.

Manual etime para supervisores

2. ESTUDIO DE INDICES

GESTIÓN DE LA DOCUMENTACIÓN

UNIDAD DIDACTICA 1: SISTEMAS GESTORES DE BASES DE DATOS

Tienda Virtual Synergy (Parte 2)

USANDO SQL. EN BASE DE Ooo.

LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F)

Gestión de Permisos. Documento de Construcción. Copyright 2014 Bizagi

Oracle 12c DISEÑO Y PROGRAMACIÓN

Seguridad de la Información Permisos. Sistemas de Bases de Datos II - ITS EMT - CETP

Sesión No. 2. Contextualización: Nombre de la sesión: Paquetería ASPEL - COI PAQUETERÍA CONTABLE

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

Instituto Profesional DuocUC Escuela de Ingeniería Control File

Acuerdo de aprobación de la Normativa Básica de Correo Electrónico de la Universidad Miguel Hernández.

FP BÁSICA Ofimática y archivo de Documentos

Bases de Datos 3º Informática de Sistemas

Formatos para prácticas de laboratorio

Manual de Usuario Sistema SIGESP 1 de 15 Módulo: Sistema de Seguridad Rev. Nº 00. Revisado Por : Firma: Elaborado Por: ADS. Teresa Andrade Firma

Instructivo Asesoría Básica Comunidad Virtual SharePoint 2010

Usuarios y Seguridad

Que es Velneo vdataclient V7?

Consultas con combinaciones

TEMA 2 ARQUITECTURA. 1. Arquitectura ANSI-SPARC El DBA y el SGBD Arquitectura back-end / front-end... 31

ADMINISTRACIÓN DE BASES DE DATOS DISTRIBUIDAS

SQL (Structured Query Language)

ADMINISTRACIÓN DE BASE DE DATOS

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

Introducción a los Sistemas de Gestión de Bases de Datos

TEMA 6. ARQUITECTURA DE ADO.NET 6.1. INTRODUCCIÓN A ADO.NET

INSTALACIÓN - SERVER MANUAL TÉCNICO INSTALACIÓN SERVER MANUAL TÉCNICO 1

INSTALACION DE UN SERVIDOR PENTAHO 5.2 CON POSTGRESQL 9.1 EN LINUX CENTOS 6.6 de 32 BITS

5 Objetos de base de datos

Manual de Instrucciones

COPPEL MANUAL TÉCNICO MCC DE SISTEMAS PROGRAMACIÓN DESCRIPCIÓN DEL PROCESO DE ARQUITECTURA DE SOFTWARE

La publicación. Pere Barnola Augé P08/93133/01510

Administración de Bases de Datos

Tablas internas 1-12

IAP ENTORNOS INFORMATIZADOS CON SISTEMAS DE BASES DE DATOS

Descripción de la BBDD para las prácticas

SurfCop. Libro blanco técnico

6.0 Funcionalidades Adicionales

Transcripción:

UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDES UNIANDES Facultad de Sistemas Mercantiles Carrera de Sistemas de Informática Tema: ORACLE 9i. Autor: Muñoz Vivero Álvaro Andrés Ibarra 2010

Introducción La arquitectura de ORACLE tiene tres componentes básicos: las estructuras de memoria para almacenar los datos y el código ejecutable, los procesos que corren el sistema de base de datos y las tareas de cada usuario conecta a la base de datos y los archivos que sirven para el almacenamiento físico, en disco, de la información de la base de datos. Dentro de la estructura de la memoria hay dos clases de memoria, una de ellas compartida por todos lo usuarios conectados y otra dedicada al trabajo de cada uno de ellos; SGA (system global area Área Global de Sistema, PGA (program global area área global de programa. Para la manipulación de BD (Base de Datos tenemos privilegios del sistema los cuales permite al usuario hacer ciertas tareas sobre la BD, como por ejemplo crear un Tablespace. Estos permisos son otorgados por el administrador; también encontramos los privilegios de objetos que le permite al usuario hacer cierta acción en un objeto de la base de datos, como puede ser una tabla, vista, función etc. Oracle cuenta con roles que son conjuntos de privilegios; puede tener garantizados una serie de privilegios tanto del sistema como sobre objetos. Por otro lado los perfiles permiten definir limitaciones de recursos. Por ejemplo podemos definir un perfil que limite el número de sesiones abiertas concurrentemente por un usuario cualquiera. Objetivos. 1. Fortalecer el conocimiento sobre la arquitectura de la plataforma de base de datos Oracle de una forma de auto aprendizaje. 2. Establecer pautas base para la inicialización en el trabajo de manipulación y administración de bases de datos desarrolladas en Oracle. 3. Generar de las consultas en internet un instrumento de análisis y reflexión para una participación activa durante el avance del modulo. 4. Expandir nuestros discernimiento acerca de la información que nos pone a consideración sabiendo definir y diferenciar la buena de la mala información que encontramos.

Componentes del S. G. A. (Área Global de Sistema. Sirve para facilitar la transferencia de información entre usuarios. Almacena la mayor parte de la información sobre la propia estructura de la base de datos que es consultada con más frecuencia. Actúa de forma similar a la caché de un PC. Si un usuario realiza una consulta SQL contra la base de datos y ésta ya ha sido ejecutada por otro usuario, tal vez se encuentre almacenada en la SGA, si es así, Oracle devolverá el resultado de la consulta SQL al segundo usuario que la ha solicitado bastante más rápida pues no tendrá que leer de los archivos de datos. Se divide en tres partes: Fondo común compartido (Shared pool. En ella mantiene el diccionario de datos y las áreas compartidas de las órdenes SQL que se solicitan para su procesamiento. Fondo de memoria rápida (Database buffer cache. Su función es mantener bloques de datos leídos directamente de los archivos de datos. Cuando se procesa una consulta, el servidor busca los bloques de datos requeridos en esta estructura. Si el bloque no se encuentra en esta estructura, el proceso servidor lee el bloque de la memoria secundaria y coloca una copia en esta estructura. De esta forma, otras peticiones que requieran de este bloque de datos no requerirán de acceso a memoria secundaria (lecturas físicas. Área de registros de rehacer (Redo log buffer. Es un buffer circular que mantiene todos los cambios que han sido realizados sobre la base de datos por operaciones de insert, update, delete, create, alter y drop. Las entradas de este buffer contienen toda la información necesaria para reconstruir los cambios realizados a la base de datos por medio de cualquier sentencia del DDL o del DML (el bloque que ha sido cambiado, la posición de cambio y el nuevo valor. El uso del Redo Buffer es estrictamente secuencial, en tal sentido pueden entrelazarse cambios en los bloques de datos producidos por transacciones diferentes. El tamaño de este Buffer también puede ser configurado para mejorar el rendimiento de la instancia y de las aplicaciones que sobre ellas se ejecutan.

Request Queue y Response Queues. Estas estructuras constituyen los elementos básicos para el manejo de conexiones de usuarios al manejador. Por cada instancia de ORACLE existirá una Request Queue y varias Response Queues. Cuando un proceso usuario desea establecer conexión con el manejador, la solicitud de conexión será encolada en la Request Queue. Los procesos servidores tomarán las solicitudes de conexión, efectuarán las acciones necesarias para que la base de datos complete la solicitud y colocarán la petición en la Response Queue asociada al proceso que atendió la solicitud. Componentes del P. G. A. (Área Central de Proceso. Esta área de memoria contiene datos e información de control para los procesos que se ejecutan en el servidor de Oracle (relacionados con la base de datos. El tamaño y contenido de la PGA depende de las opciones del servidor que se hayan instalado. El PGA constituye una región de memoria asociada a cada proceso servidor, la cual contiene datos e información de control para cada una de las sesiones que los usuarios mantienen con el RDBMS ORACLE a través de éste proceso servidor. Por lo tanto el PGA no es un área de memoria compartida. Una región de memoria para almacenar un PGA es solicitada cuando un proceso usuario establece una sesión de trabajo con el manejador de datos. El tipo de información que se almacena en el PGA depende de las opciones instaladas para el servidor ORACLE. Por ejemplo, cuando se utiliza una configuración de servidor dedicado, el PGA contiene los siguientes componentes: Sort Area, que es utilizada para llevar a cabo los posibles ordenamientos de filas requeridos antes de que las filas sean procesadas o devueltas al usuario como resultado de una consulta. Stack Space, el cual contiene las variables de sesión de usuario y sus valores. Cursor State, el cual almacena el estado de los diferentes cursores que están siendo utilizados en la sesión del usuario. Session Information, la cual mantiene información sobre los privilegios que el usuario que ejecuta la sesión. Ejemplo: Cada vez que se invoca SQL*Plus, se crear un proceso usuario. Este proceso usuario se comunicará (bien sea por los mecanismos de IPC en caso de que el servidor ORACLE y el proceso usuario estén en la misma máquina- o por mecanismos de software de comunicación en Red como SQL*Net en caso de que el servidor ORACLE y el proceso usuario estén en máquinas diferentes con el proceso servidor que le proveerá del acceso necesario al servidor ORACLE.

PRIVILEGIOS DE ORACLE 9i Privilegios de Objeto Existen alrededor de 126 privilegios del sistema, a continuación los más destacados: SESSION TABLESPACE TABLE INDEX Categoría Ejemplo CREATE SESSION ALTER SESSION RESTRICTED SESSION CREATE ALTER DROP TABLESPACE UNLIMITED TABLESPACE CREATE TABLE CREATE ALTER DROP ANY TABLE SELECT INSERT UPDATE DELETE ANY TABLE CREATE ALTER DROP ANY INDEX Consideraciones No existe el privilegio CREATE INDEX, el usuario que pueda crear una tabla, podrá crear un índice (en su esquema CREATE TABLE ya incluye CREATE INDEX y ANALYZE Si puedes crear una tabla, un procedimiento. Los usuarios con el privilegio ANY podrán manipular los objetos en cualquier esquema. Es decir, si un usuario recibe el privilegio CREATE ANY TABLE, podrá crear una tabla en el esquema de cualquier usuario UNLIMITED TABLESPACE no se puede otorgar a un rol Para conceder privilegios utilizamos el comando GRANT En la Sintaxis: system_priv especifica el privilegio a otorgar user especifica el usuario que lo recibe role existe la posibilidad de asignar el privilegio a un role PUBLIC especifica que el rol se otorga a todos los usuarios de la BBDD WITH ADMIN OPTION permite a la persona que recibe el privilegio otorgarlo a otros usuarios o roles Consideraciones Para que un usuario pueda otorgar un privilegio de sistema, ha tenido que recibirlo con la opción WITH ADMIN OPTION El usuario que goce del privilegio GRANT ANY ROLE podrá otorgar cualquier rol en una BBDD El usuario que reciba un privilegio con la opción WITH ADMIN OPTION podrá otorgarlo y revocarlo de cualquier usuario o rol de la BBDD

Privilegios SYSDBA y SYSOPER Los usuarios que gocen de estos privilegios de sistema serán los usuarios que puedan, entre otras cosas, arrancar y parar una BBDD (si los usuarios se autentican mediante el fichero de contraseñas. Ejemplo de asignación de privilegios SYSDBA y SYSOPER al usuario SYSTEM: Desde este momento, el usuario SYSTEM podrá bajar la BBDD (entre otras cosas siempre y cuando se conecte de la siguiente manera: Consideraciones En esta asignación no es posible añadir la cláusula WITH ADMIN.OPTION Estos privilegios no se pueden asignar a roles En la vista V$PWFILE_USERS podemos ver qué usuarios gozan de estos privilegios Para que la autenticación se realice mediante el fichero de passwords, hemos de definir con el valor EXCLUSIVE el parámetro REMOTE_LOGIN_PASSWORDFILE del init.ora para permitir conexiones remotas Revocar Privilegios Para revocar los privilegios otorgados a un usuario o rol utilizamos la sentencia REVOKE Consideraciones Sólo se podrán revocar aquellos privilegios otorgados directamente con un comando GRANT

No se producen revocaciones en cascada. Es decir, user1 otorgó privilegios a user2 y, a su vez, user2 los otorgó a user3, si user1 revoca los privilegios a user2, user3 no los pierde

Privilegio CREATE ANY INDEX CREATE SYNONYM CREATE [ANY] TABLE CREATE [ANY] VIEW ALTER ANY INDEX ALTER ANY TABLE DROP ANY INDEX DROP ANY SYNONYM Descripción Crear cualquier índice. [PUBLIC] Crear sinónimos [públicos]. Crear tablas. El usuario debe tener cuota en el espacio de tablas, o ha de tener asignado el privilegio UNLIMITED TABLESPACE. Crear vistas. Alterar cualquier índice. Alterar cualquier tabla Borrar cualquier índice. Borrar cualquier sinónimo. DROP PUBLIC SYNONYM Borrar sinónimos públicos. DROP ANY VIEW DROP ANY TABLE SELECT ANY TABLE INSERT ANY TABLE DELETE ANY TABLE ALTER SESSION CREATE SESSION CREATE PROFILE CREATE ROLE CREATE SEGMENT CREATE TABLESPACE CREATE USER ALTER PROFILE ALTER ANY ROLE ALTER SEGMENT ALTER TABLESPACE ALTER USER DROP PROFILE DROP ANY ROLE DROP SEGMENT DROP TABLESPACE DROP USER ALTER DATABASE GRANT ANY PRIVILEGE GRANT ANY ROLE Borrar cualquier vista. Borrar cualquier tabla. Efectuar selecciones de cualquier tabla o vista. Insertar en cualquier tabla o vista. Borrar filas de cualquier tabla o vista, y también truncar. Alterar los parámetros de la sesión. Conectarse a la BD. Crear perfiles de usuario. Crear roles. ROLLBACK Creación de segmentos de rollback. Crear espacios de tablas. Crear usuarios. Alterar perfiles existentes. Alterar cualquier rol. ROLLBACK Alterar segmentos de rollback. Alterar espacios de tablas. Alterar usuarios. Borrar un perfil existente. Borrar cualquier rol. ROLLBACK Borrar un segmento de rollback existente. Borrar un espacio de tablas. Borrar un usuario. Añadir CASCADE si el usuario posee objetos. Permite una sentencia ALTER DATABASE. Otorgar cualquiera de estos privilegios. Otorgar cualquier rol a un usuario. UNLIMITED TABLESPACE Puede usar una cantidad de almacenamiento ilimitada. DROP PROFILE Borrar un perfil existente.

Privilegios de Objeto Objeto TABLA VISTA SECUENCIA PROCEDIMIENTO Privilegio ALTER TABLE SELECT INSERT UPDATE DELETE SELECT INSERT UPDATE DELETE SELECT ALTER EXECUTE Para otorgar privilegios de objeto debemos utilizar el comando GRANT Sintaxis: object_priv especifica el privilegio a otorgar column_list se puede especificar sobre qué columnas se tendrá el privilegio ALL PRIVILEGES otorga todos los privilegios sobre el objeto object especifica sobre qué objeto WITH GRANT OPTION permite a la persona que recibe el privilegio otorgarlo a otros usuarios o roles Consideraciones Para que un usuario pueda otorgar un privilegio de objeto, este ha de estar en su esquema o bien ha tenido que recibirlo con la opción WITH ADMIN OPTION Los privilegios de objeto se revocan igual que los de sistema Un usuario sólo podrá revocar el privilegio a los usuarios que lo hayan recibido directamente por él. En los privilegios de objeto sí se producen revocaciones en cascada Privilegio SELECT INSERT UPDATE DELETE ALTER INDEX REFERENCES Descripción Puede consultar a un objeto. Puede insertar filas en una tabla o vista. Puede especificarse las columnas donde se permite insertar dentro de la tabla o vista. Puede actualizar filas en una tabla o vista. Puede especificarse las columnas donde se permite actualizar dentro de la tabla o vista. Puede borrar filas dentro de la tabla o vista. Puede alterar la tabla. Puede crear índices de una tabla. Puede crear claves ajenas que referencie a esta tabla.

EXECUTE READ ROLES Puede ejecutar un procedimiento, paquete o función. Permite leer archivos asociados con objetos BFILE en el directorio del sistema Un rol es un grupo de privilegios relacionados que se otorgan a usuarios o a otros roles. Características Los roles no pertenecen a nadie, no están en ningún esquema Sus características se almacenan en el diccionario de datos El nombre del rol ha de ser único en la BBDD Pueden estar formados por privilegios de sistema y privilegios de objeto Se otorgan y se revocan con los mismos comandos que se utilizan para los privilegios Es un método indirecto de asignación de privilegios El rol es una capa intermedia entre los privilegios y los usuarios Creación de Roles Para crear un role utilizamos la sentencia CREATE ROLE Sintaxis: Role IDENTIFIED BY Modificación de Roles es el nombre del rol indica que el rol deberá activarse (en el caso que alguien lo haya desactivado especificando un password Podemos modificar un rol para cambiar su método de autenticación mediante el comando ALTER ROLE

Sintaxis: role NOT IDENTIFIED IDENTIFIED BY Asignar un role es el nombre del rol especifica que ya no se necesitará un password para activar el rol indica que el rol deberá activarse (en el caso que alguien lo haya desactivado especificando un password Un rol se puede asignar a un usuario o a otros roles mediante la sentencia GRANT y se puede añadir la cláusula WITH ADMIN OPTION para permitir a la persona que recibe el rol pueda otorgarlo a otro usuario. El rol siempre está activado (a no ser que un usuario lo desactive y se asigna al usuario en el momento de la conexión. comando SET ROLE Los Roles se activan y se desactivan mediante el Sintaxis: PERFILES IDENTIFIED BY especificamos el password para poder activar el rol. ALL activa todos los roles otorgados al usuario salvo los que nombremos en la cláusula EXCEPT. Esta opción solo es válida si los roles no tienen password. NONE desactiva todos los roles de la sesión. Los perfiles permiten definir limitaciones de recursos. Por ejemplo podemos definir un perfil que limite el número de sesiones abiertas concurrentemente por un usuario cualquiera, y posteriormente aplicar este perfil a uno o más usuarios concretos. Por ejemplo, se pueden establecer 3 tipos de usuarios: Administradores: Que podrían tener acceso a recursos ilimitados dentro del sistema. Desarrolladores: Que podrían disponer de un número ilimitado de sesiones pero restringida la utilización de la CPU. Otros. En síntesis, los perfiles se utilizan para suavizar las tareas de administración de la seguridad, manteniendo siempre bajo control los accesos a los recursos de todos los usuarios, por muchos que éstos puedan llegar ser.

Los perfiles se crean y modifican con los comandos CREATE PROFILE y ALTER PROFILE. La sintaxis de estos comandos no necesitan ser repetidas aquí porque vienen extensamente explicados en la ayuda del software; sólo vale la pena destacar que algunas de las cláusulas hacen referencia a cuánto ciclo de CPU se le asignará a cada usuario, cuántas sesiones concurrentes podrán tener, etc. Script de la Base de Datos * Database name: Oracle * * DBMS name: ORACLE Version 9i * * Created on: 21042010 22:25:29 * drop index RELATIONSHIP_17_FK drop index RELATIONSHIP_16_FK drop index RELATIONSHIP_1_FK drop index RELATIONSHIP_4_FK drop index RELATIONSHIP_11_FK drop index RELATIONSHIP_15_FK drop index RELATIONSHIP_19_FK drop index RELATIONSHIP_18_FK drop index RELATIONSHIP_14_FK drop index RELATIONSHIP_20_FK drop index RELATIONSHIP_13_FK drop index RELATIONSHIP_3_FK drop index RELATIONSHIP_5_FK drop index RELATIONSHIP_6_FK

drop index RELATIONSHIP_7_FK drop index RELATIONSHIP_8_FK drop index RELATIONSHIP_10_FK drop index RELATIONSHIP_2_FK drop index RELATIONSHIP_9_FK drop table DETALLE_DEV_VENTAS cascade constraints drop table DETALLE_DEV_COMPRAS cascade constraints drop table DEVOLUCIONES_VENTAS cascade constraints drop table DEVOLUCIONES_COMPRAS cascade constraints drop table DETALLES_VENTAS cascade constraints drop table DETALLES_COMPRA cascade constraints drop table CARACTERISTICAS cascade constraints drop table ARTICULO cascade constraints drop table FACTURA_VENTAS cascade constraints drop table FACTURA_COMPRAS cascade constraints drop table DISTRIBUIDORES cascade constraints drop table CLIENTES cascade constraints drop table PROVINCIA cascade constraints drop table CIUDAD cascade constraints drop table CATEGORIAS cascade constraints * Table: CATEGORIAS * create table CATEGORIAS ( ID_CATEGORIA INTEGER not null, CAT_TIPO VARCHAR2(100, constraint PK_CATEGORIAS primary key (ID_CATEGORIA

* Table: CIUDAD * create table CIUDAD ( ID_CIUDAD INTEGER not null, CIU_NOMBRE VARCHAR2(50, constraint PK_CIUDAD primary key (ID_CIUDAD * Table: PROVINCIA * create table PROVINCIA ( ID_PROVINCIA INTEGER not null, PRO_NOMBRE VARCHAR2(50, constraint PK_PROVINCIA primary key (ID_PROVINCIA * Table: CLIENTES * create table CLIENTES ( ID_CLIENTE INTEGER not null, ID_PROVINCIA INTEGER, ID_CIUDAD INTEGER, CEDULA CHAR(10, NOMBRE VARCHAR2(50, APELLIDO VARCHAR2(50, constraint PK_CLIENTES primary key (ID_CLIENTE, constraint FK_CLIENTES_RELATIONS_CIUDAD foreign key (ID_CIUDAD references CIUDAD (ID_CIUDAD, constraint FK_CLIENTES_RELATIONS_PROVINCI foreign key (ID_PROVINCIA references PROVINCIA (ID_PROVINCIA * Index: RELATIONSHIP_1_FK *

create index RELATIONSHIP_1_FK on CLIENTES ( ID_CIUDAD ASC * Index: RELATIONSHIP_4_FK * create index RELATIONSHIP_4_FK on CLIENTES ( ID_PROVINCIA ASC * Table: DISTRIBUIDORES * create table DISTRIBUIDORES ( ID_DISTRIBUIDOR INTEGER not null, ID_PROVINCIA INTEGER, ID_CIUDAD INTEGER, RUC CHAR(20, RAZON_SOCIAL VARCHAR2(100, TELEFONO VARCHAR2(10, constraint PK_DISTRIBUIDORES primary key (ID_DISTRIBUIDOR, constraint FK_DISTRIBU_RELATIONS_PROVINCI foreign key (ID_PROVINCIA references PROVINCIA (ID_PROVINCIA, constraint FK_DISTRIBU_RELATIONS_CIUDAD foreign key (ID_CIUDAD references CIUDAD (ID_CIUDAD * Index: RELATIONSHIP_3_FK * create index RELATIONSHIP_3_FK on DISTRIBUIDORES ( ID_PROVINCIA ASC * Index: RELATIONSHIP_5_FK * create index RELATIONSHIP_5_FK on DISTRIBUIDORES ( ID_CIUDAD ASC

* Table: FACTURA_COMPRAS * create table FACTURA_COMPRAS ( ID_FACT_COMPRAS INTEGER not null, ID_DISTRIBUIDOR INTEGER, ID_PROVINCIA INTEGER, ID_CIUDAD INTEGER, COM_FECHA DATE, COM_SUBTOTAL NUMBER(8,2, COM_IVA NUMBER, COM_TOTAL NUMBER(8,2, constraint PK_FACTURA_COMPRAS primary key (ID_FACT_COMPRAS, constraint FK_FACTURA FACTURA_C_PROVINCI foreign key (ID_PROVINCIA references PROVINCIA (ID_PROVINCIA, constraint FK_FACTURA FFACTURA CIUDAD foreign key (ID_CIUDAD references CIUDAD (ID_CIUDAD, constraint FK_FACTURA RELATIONS_DISTRIBU foreign key (ID_DISTRIBUIDOR references DISTRIBUIDORES (ID_DISTRIBUIDOR * Index: RELATIONSHIP_6_FK * create index RELATIONSHIP_6_FK on FACTURA_COMPRAS ( ID_PROVINCIA ASC * Index: RELATIONSHIP_7_FK * create index RELATIONSHIP_7_FK on FACTURA_COMPRAS ( ID_CIUDAD ASC * Index: RELATIONSHIP_8_FK * create index RELATIONSHIP_8_FK on FACTURA_COMPRAS ( ID_DISTRIBUIDOR ASC

* Table: FACTURA_VENTAS * create table FACTURA_VENTAS ( ID_FACT_VENTAS INTEGER not null, ID_PROVINCIA INTEGER, ID_CIUDAD INTEGER, ID_CLIENTE INTEGER, VEN_FECHA DATE, VEN_SUBTOTAL NUMBER(8,2, VEN_IVA NUMBER, VEN_TOTAL NUMBER(8,2, constraint PK_FACTURA_VENTAS primary key (ID_FACT_VENTAS, constraint FK_FACTURA RELATIONS_CLIENTES foreign key (ID_CLIENTE references CLIENTES (ID_CLIENTE, constraint FK_FACTURA RELATIONS_PROVINCI foreign key (ID_PROVINCIA references PROVINCIA (ID_PROVINCIA, constraint FK_FACTURA RELATIONS_CIUDAD foreign key (ID_CIUDAD references CIUDAD (ID_CIUDAD * Index: RELATIONSHIP_2_FK * create index RELATIONSHIP_2_FK on FACTURA_VENTAS ( ID_CLIENTE ASC * Index: RELATIONSHIP_9_FK * create index RELATIONSHIP_9_FK on FACTURA_VENTAS ( ID_PROVINCIA ASC * Index: RELATIONSHIP_10_FK * create index RELATIONSHIP_10_FK on FACTURA_VENTAS ( ID_CIUDAD ASC

* Table: ARTICULO * create table ARTICULO ( ID_ARTICULO INTEGER not null, ID_CATEGORIA INTEGER, ART_PRECIO_COMPRA NUMBER(8,2, ART_PRECIO_VENTA NUMBER(8,2, constraint PK_ARTICULO primary key (ID_ARTICULO, constraint FK_ARTICULO_RELATIONS_CATEGORI foreign key (ID_CATEGORIA references CATEGORIAS (ID_CATEGORIA * Index: RELATIONSHIP_17_FK * create index RELATIONSHIP_17_FK on ARTICULO ( ID_CATEGORIA ASC * Table: CARACTERISTICAS * create table CARACTERISTICAS ( ID_CARA INTEGER not null, ID_ARTICULO INTEGER, CARA_GENERO VARCHAR2(50, CARA_MODELO VARCHAR2(50, CARA_TALLA VARCHAR2(50, CARA_COLOR VARCHAR2(50, CARA_MARCA VARCHAR2(50, constraint PK_CARACTERISTICAS primary key (ID_CARA, constraint FK_CARACTER_RELATIONS_ARTICULO foreign key (ID_ARTICULO references ARTICULO (ID_ARTICULO * Index: RELATIONSHIP_16_FK *

create index RELATIONSHIP_16_FK on CARACTERISTICAS ( ID_ARTICULO ASC * Table: DETALLES_COMPRA * create table DETALLES_COMPRA ( ID_DETALLE_COMPRA INTEGER not null, ID_FACT_COMPRAS INTEGER, DCOM_CANTIDAD NUMBER, DCOM_DETALLE VARCHAR2(100, DCOM_PRECIO_COMPRA NUMBER, COM_TOTAL NUMBER(8,2, constraint PK_DETALLES_COMPRA primary key (ID_DETALLE_COMPRA, constraint FK_DETALLES_DETCOMPRA_FACTURA_ foreign key (ID_FACT_COMPRAS references FACTURA_COMPRAS (ID_FACT_COMPRAS * Index: RELATIONSHIP_11_FK * create index RELATIONSHIP_11_FK on DETALLES_COMPRA ( ID_FACT_COMPRAS ASC * Table: DETALLES_VENTAS * create table DETALLES_VENTAS ( ID_DETALLE_VENTAS INTEGER not null, ID_FACT_VENTAS INTEGER, ID_CARA INTEGER, DVEN_CANTIDAD NUMBER, DVEN_DETALLE VARCHAR2(100, DVEN_PRECIO_VENTA NUMBER, DVEN_TOTAL NUMBER(8,2, constraint PK_DETALLES_VENTAS primary key (ID_DETALLE_VENTAS, constraint FK_DETALLES_RELATIONS_CARACTER foreign key (ID_CARA references CARACTERISTICAS (ID_CARA, constraint FK_DETALLES_RELATIONS_FACTURA_ foreign key (ID_FACT_VENTAS references FACTURA_VENTAS (ID_FACT_VENTAS

* Index: RELATIONSHIP_15_FK * create index RELATIONSHIP_15_FK on DETALLES_VENTAS ( ID_CARA ASC * Index: RELATIONSHIP_19_FK * create index RELATIONSHIP_19_FK on DETALLES_VENTAS ( ID_FACT_VENTAS ASC * Table: DEVOLUCIONES_COMPRAS * create table DEVOLUCIONES_COMPRAS ( ID_DEV_COMPRA INTEGER not null, ID_DETALLE_COMPRA INTEGER, DEVC_ID_DETALLE_COMPRA VARCHAR2(100, DEVC_FECHA DATE, DEVC_TOTAL NUMBER(8,2, constraint PK_DEVOLUCIONES_COMPRAS primary key (ID_DEV_COMPRA, constraint FK_DEVOLUCI_DEVCOMPRA_DETALLES foreign key (ID_DETALLE_COMPRA references DETALLES_COMPRA (ID_DETALLE_COMPRA * Index: RELATIONSHIP_20_FK * create index RELATIONSHIP_20_FK on DEVOLUCIONES_COMPRAS ( ID_DETALLE_COMPRA ASC * Table: DEVOLUCIONES_VENTAS *

create table DEVOLUCIONES_VENTAS ( ID_DEV_VENTAS INTEGER not null, ID_DETALLE_VENTAS INTEGER, DEVV_ID_DETALLE_VENTA VARCHAR2(10, DEVV_FECHA DATE, DEVV_TOTAL NUMBER(8,2, constraint PK_DEVOLUCIONES_VENTAS primary key (ID_DEV_VENTAS, constraint FK_DEVOLUCI_DEVVENTAS_DETALLES foreign key (ID_DETALLE_VENTAS references DETALLES_VENTAS (ID_DETALLE_VENTAS * Index: RELATIONSHIP_13_FK * create index RELATIONSHIP_13_FK on DEVOLUCIONES_VENTAS ( ID_DETALLE_VENTAS ASC * Table: DETALLE_DEV_COMPRAS * create table DETALLE_DEV_COMPRAS ( ID_DET_DEV_COMPRA INTEGER not null, ID_DEV_COMPRA INTEGER, DDC_CANTIDAD NUMBER, DDC_DETALLE VARCHAR2(100, DDC_PRECIO_COMPRA NUMBER(8,2, DDC_TOTAL NUMBER(8,2, constraint PK_DETALLE_DEV_COMPRAS primary key (ID_DET_DEV_COMPRA, constraint FK_DETALLE DETALLE_D_DEVOLUCI foreign key (ID_DEV_COMPRA references DEVOLUCIONES_COMPRAS (ID_DEV_COMPRA * Index: RELATIONSHIP_18_FK * create index RELATIONSHIP_18_FK on DETALLE_DEV_COMPRAS ( ID_DEV_COMPRA ASC

* Table: DETALLE_DEV_VENTAS * create table DETALLE_DEV_VENTAS ( ID_DET_DEV_VENTAS INTEGER not null, ID_DEV_VENTAS INTEGER, DDV_CANTIDAD NUMBER, DDV_DETALLE VARCHAR2(100, DDV_PRECIO_VENTA NUMBER(8,2, DDV_TOTAL NUMBER(8,2, constraint PK_DETALLE_DEV_VENTAS primary key (ID_DET_DEV_VENTAS, constraint FK_DETALLE RELATIONS_DEVOLUCI foreign key (ID_DEV_VENTAS references DEVOLUCIONES_VENTAS (ID_DEV_VENTAS * Index: RELATIONSHIP_14_FK * create index RELATIONSHIP_14_FK on DETALLE_DEV_VENTAS ( ID_DEV_VENTAS ASC

Lincografía Bibliografía Arquitectura de Oracle, Claudia Jiménez AjpdSoft, http:www.ajpdsoft.com http:www.ajpdsoft.commodules.php?name=news&file=article&sid=168 Manual de Oracle 9i, Jessica Vilca - jesy_santy@hotmail.com Administración de Oracle 9.i. Ing. Eduardo Palena - Napolifirewall.com CI-5313 Prof. Nunzio Savino Tema Nro. 1 Arquitectura y Administración de DBMSs I Septiembre-Diciembre 2001 Introducción a la Arquitectura del RDBMS ORACLE