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

Universidad Central de Venezuela Facultad de Ciencias Escuela de Computacin Administracin de Base de Datos TALLER 1 MODELOS INTERNOS I Parte Terica:

: 1.- Qu es una Base de Datos? Una Base de Datos es una serie de datos organizados y relacionados entre s, independiente de su utilizacin y su implementacin en maquinas accesibles en tiempo real y compatibles con usuarios concurrentes con la necesidad de diferente informacin y no predicable en el tiempo. 2.- Qu es un Sistema Manejador de Base de Datos? Es un conjunto de programas que se encargan de manejar la creacin y todos los accesos a las bases de datos. Se compone de un lenguaje de definicin de datos (DDL: Data Definition Language), de un lenguaje de manipulacin de datos (DML: Data Manipulation Language) y de un lenguaje de consulta (SQL: Structured Query Language). El lenguaje de definicin de datos (DDL) es utilizado para describir todas las estructuras de informacin y los programas que se usan para construir, actualizar e introducir la informacin que contiene una base de datos. El lenguaje de manipulacin de datos (DML) es utilizado para escribir programas que crean, actualizan y extraen informacin de las bases de datos. El lenguaje de consulta (SQL) es empleado por el usuario para extraer informacin de la base de datos. El lenguaje de consulta permite al usuario hacer requisiciones de datos sin tener que escribir un programa, usando instrucciones como el SELECT, el PROJECT y el JOIN.

3.- Oracle como SMBD Oracle es un sistema de base de datos objeto - relacional extremadamente potente y flexible, esta potencia y flexibilidad, sin embargo, implica tambin una cierta complejidad. Se considera a Oracle como uno de los sistemas de bases de datos ms completos, destacando su:

Soporte de transacciones. Estabilidad. Escalabilidad.


Editado: Semestre I-2009
GABD/DD

Soporte multiplataforma.

La Corporacin Oracle ofrece este RDBMS como un producto incorporado a la lnea de produccin. Adems incluye cuatro generaciones de desarrollo de aplicacin, herramientas de reportes y utilitarios. Una Base de Datos Oracle es un conjunto de datos almacenado sobre los cuales se puedan realizar operaciones. Los datos estn almacenados en pginas de disco y estn relacionados entre s. Una Base de Datos Oracle est almacenada fsicamente en archivos y la correspondencia entre los stos y las tablas es posible gracias a las estructuras internas de la BD, las cuales permiten que diferentes tipos de datos estn almacenados fsicamente separados y se puedan acceder utilizando los mtodos de acceso definidos.

Oracle como SMBD consta de tres partes bien definidas, que se mencionan a continuacin: 1.- Instancia de Oracle: Es un conjunto de procesos y estructuras que permiten la interaccin entre los usuarios y los datos almacenados. La instancia de Oracle es la combinacin procesos de background y estructuras de memoria. Una instancia debe estar levantada para acceder a una base de datos oracle. Cada vez que una instancia de oracle es levantada, el sistema genera el SGA (System Global Area) y se levantan una serie de procesos de background. La instancia a su vez se subdivide en estructuras, las cuales son:
Editado: Semestre I-2009
GABD/DD

1.1.- Estructura de Memoria: Se almacenan los ejecutables del software Oracle y todo el sistema necesario para el tratamiento del SMBD. La filosofa de Oracle es albergar la mxima cantidad de informacin en memoria con el objeto de acelerar el tratamiento de los datos. La estructura de Oracle en memoria se divide en: 1.1.1.- SGA (System Global Area): Es el rea de memoria utilizada para almacenar temporalmente informacin de la base de datos que es utilizada y compartida por los procesos de base de datos. La SGA puede estar compuesta por muchas estructuras, pero al menos encontraremos tres estructuras internas bsicas que son Shared Pool, Data Buffer Cache y Redo Log Buffer. Shared Pool: Es una estructura de memoria que almacena las sentencias de SQL que han sido usadas recientemente, al igual que los datos del Diccionario de Datos que han tenido los ltimos accesos. Data Base Buffer Cache y Redo Log Buffer: En estas estructuras se almacenan la data usada ms recientemente y lo ltimos registros de los archivos logs creados. El DB buffer es usado para enviar informacin a o leer de informacin de los Archivos de Datos. El Redo Log buffer es usado para seguir los cambios hechos a la BD. Hay que mencionar que existen otros tipos de estructuras adicionales a los mencionados, como lo son: o Java Pool: Usada para guardar cdigo Java a ejecutar. o Large Pool: Usada para mover grandes cantidades de datos, por ejemplo al hacer backups o restauraciones de la informacin. 1.1.2.- PGA (Program Global Area) es un rea de memoria usada para almacenar data e informacin de control necesaria para el proceso de servidor. A diferencia de la SGA, la PGA es usada por un nico proceso, el del servidor. La PGA es iniciada con el proceso de servidor y terminada, cuando dicho proceso muere. Entre los componentes principales del PGA, se encuentra: Sort Area: esta rea es utilizada para la ordenacin de sentencias. Session information: contiene los privilegios de usuario, as como estadsticas de sesin.

1.2.- Archivos de Configuracin (init.ora): Archivo de inicializacin de valores para el arranque de la instancia y para el establecimiento de configuraciones Oracle. Se especifican parmetros predeterminados con el valor que se desee, con el fin de optimizar los rendimientos o adecuar los recursos. Ser donde se establezcan todos los parmetros para que Oracle trabaje de una u otra forma. Estos archivos son independientes por instancia, es decir, habr tantos archivos de configuracin como instancias activas en el sistema de informacin.
Editado: Semestre I-2009
GABD/DD

1.3.- Procesos Background: Serie de procesos encargados de mantener, manejar y controlar todo el SMBD. Existen unos procesos estndar, que Oracle activa siempre que ejecuta una instancia, y otros que dependern de las configuraciones establecidas en el fichero de inicializacin (init.ora) Los procesos estndar que Oracle siempre se activa son: SMON (System Monitor): Verifica la consistencia de la BD, si es necesario, recupera parte de la BD cuando esta es abierta. PMON (Process Monitor): Proceso que se encarga de monitorear a los otros procesos. En caso de falla, libera los recursos que son utilizados por el o los procesos que presentan el problema. CKPT (Check Point): Actualiza el estado de la BD en los Control Files y los Data Files cuando los cambios de los buffers pasan a la BD. LGWR (Log Writer): Proceso que se encarga de actualizar los Log Files con los datos que se encuentran en el buffer de Redo Log. DBWR (Data Base Writer): Proceso que se encarga de actualizar los Data Files con los datos que se encuentran en el buffer de Datos. Otros: pueden ser procesos como Dnnn, que es el despachador de peticiones por parte del proceso de servidor, el LCKn es el proceso encargado de gestionar bloqueos entre distintas instancias, entre otros.

2.- Base de Datos de Oracle: Una Base de Datos Oracle es un conjunto de datos almacenado y accesible segn el formato de tablas relacionales. Una Base de Datos Oracle est almacenada fsicamente en ficheros, y la correspondencia entre los ficheros y las tablas es posible gracias a las estructuras internas de la BD, que permiten que diferentes tipos de datos estn almacenados fsicamente separados. Est divisin lgica se hace gracias a los espacios de tablas, tablespaces. A su vez una base de datos esta conformada de estructuras, como son: 2.1.- Data Files (Archivos de Datos): Son los archivos que proveen almacenamiento fsico de la informacin de la BD. Estos archivos se emplean para asegurando que los datos puedan ser recuperados en caso de falla. Existen tambin otros tipos de archivos dentro de Oracle, que a pesar de que no son Data Files, forman parte de la Base de Datos. Estos archivos se usan para configurar la instancia, autenticar usuarios y recuperar la BD en caso de falla. 2.2.- Control file (Archivos de control): Mantienen la informacin fsica de todos los ficheros que forman la BD, camino incluido; as como el estado actual de la BD. Son
Editado: Semestre I-2009
GABD/DD

utilizados para mantener la consistencia interna y guiar las operaciones de recuperacin. Son imprescindibles para que la BD se pueda arrancar. Contienen: Informacin de arranque y parada de la BD Nombres de los archivos de la BD y redo log. Informacin sobre los checkpoints. Fecha de creacin y nombre de la BD. Estado online y offline de los archivos.

Debe haber mltiples copias en distintos discos, oracle garantiza que exista un respaldo, pero puede haber ms de uno, por seguridad para protegerlos de los fallos de disco. La lista de los ficheros de control se encuentra en el parmetro CONTROL_FILES, que debe modificarse con la BD parada. 2.3.- Redo Log file (Archivos de transacciones): Los registros Redo describen los cambios realizados en la BD y son escritos en los ficheros redo log para que puedan ser utilizados en las operaciones de recuperacin hacia adelante, roll-forward, durante las recuperaciones de la BD. Pero antes de ser escritos en los ficheros redo log son escritos en un cach de la SGA llamado redo log buffer. El servidor escribe peridicamente los registros redo log en los ficheros redo log. El tamao del buffer redo log se fija por el parmetro LOG_BUFFER. 2.4.- Archivo Alerta: Si la escritura en un fichero redo log falla pero el LGWR puede escribir al menos en uno de los miembros del grupo, lo hace , ignorando el fichero inaccesible y registrando un fallo en un fichero de traza o alerta. Oracle crea ficheros de traza automticamente cuando ocurre algn error. 3.- Entorno Cliente / Servidor Sistema basado en compartir aplicaciones y/o datos a travs de una red. El entorno cliente/servidor bsico, quedara establecido de la siguiente manera: Servidor de datos compartido, donde estar ubicado el SMBD Oracle, el software del servidor y la propia estructura fsica de los datos. Puestos de trabajo de los usuarios, donde se ubicar el software cliente Oracle. Infraestructura de conexin, para establecer las comunicaciones, tanto fsicas como lgicas, entre las estaciones de los clientes y el servidor de datos. Software de comunicaciones.

Editado: Semestre I-2009


GABD/DD

1.- Estructura Lgica 1.1.- Tablespaces (Espacio de Tablas): Cuando se crea una base de datos es obligatorio crear un tablespace inicial en el que se van a crear los usuarios SYS y SYSTEM automticamente, los cuales tienen permisologas del sistema para tareas de administracin, como por ejemplo, creacin de tablespaces, usuarios y base de datos. El tablespace inicial se llama por defecto SYSTEM, en el cual residen todos los objetos de los usuarios SYS y SYSTEM. Cuando se crea un tablespace se le asigna un espacio en disco reservado de inmediato por el SMBD Oracle. Dicho espacio se puede gestionar para que su crecimiento sea dinmico. Los parmetros de crecimiento del tamao de los tablespaces se especifican durante la creacin de los mismos. Tablespace Temporal: Es aquel en el que solamente se pueden tener objetos temporales. No se pueden crear objetos permanentes como los ndices, tablas y segmentos de rollback. Estn especialmente preparados para optimizar las operaciones que requieren ordenar o agrupar datos, as como la creacin de ndices y clculos de estadsticas.
Editado: Semestre I-2009
GABD/DD

1.2.- Segmento. Un segmento almacena la informacin de una estructura lgica de Oracle dentro de un tablespace. Existen cuatro tipos de segmentos: Segmentos de datos, Segmentos de ndices, Segmentos de Rollback y Segmentos Temporales. 1.2.1.- Segmentos de Datos. Cada una de las tablas se almacena en un segmento de datos (excepto los clusters). El segmento se especifica en la sintaxis de la creacin de las tablas, mediante los parmetros de control de almacenamiento (PCTFREE y PCTUSED) y la evolucin de los segmentos; sta ltima viene dada por los siguientes parmetros: INITIAL: Tamao de la extensin inicial del segmento. NEXT: Tamao de las prximas extensiones. PCTINCREASE: Porcentaje que debe crecer cada nueva extensin. MINEXTENTS: nmero de extensiones que tendr inicialmente la tabla. MAXEXTENTS: nmero de extensiones mximas que tendr la tabla. 1.2.2.- Segmentos de ndices. Cada ndice es almacenado en un solo segmento. Durante su creacin se puede especificar el parmetro PCTFREE, el tablespace y la forma en que se crear el segmento. 1.2.3.- Segmentos de RollBack. Este segmento almacena todas las acciones producidas por una transaccin y se utiliza para deshacer las transacciones y recuperar la BD en caso de una falla. Cada BD contiene uno o ms segmentos de rollback. Durante la creacin del segmento de rollback se especifica los siguientes parmetros: Valor mnimo (MINEXTENTS). Generalmente es 2 OPTIMAL indica el tamao ptimo. 1.2.4.- Segmentos temporales. Oracle necesita un espacio temporal para guardar los resultados intermedios, los cuales se crean y eliminan automticamente cuando sean necesarios. Estos segmentos se crean por defecto en el tablespace SYSTEM. 1.3.- Extents. Un extent es una unidad lgica de almacenamiento formada por un nmero determinado de bloques de datos contiguos. La agrupacin de uno o varios extents forman un segmento que puede ser una tabla, un ndice, un segmento de rollback o un segmento temporal. Adems, los datos de una tabla estarn en un segmento tipo tabla, que a su vez estar formado por uno o varios extents; cada uno de estos estn estn organizados en forma de bloques de datos. 1.4.- Bloques de Datos. Son unidades lgicas y estn relacionadas con los segmentos y extents. Un segmento est formado por una o varias extensiones y cada extent est formado por varios bloques. Un bloque es la unidad mnima de almacenamiento de informacin. A los bloques tambin se les conoce como "bloques de datos", "bloques lgicos" o "bloques oracle". Cada uno de estos bloques est formado por un nmero determinado de bloques del sistema operativo. A la hora de crear una nueva base de datos se debe indicar cuntos bloques de sistema operativo formarn un bloque de datos o bloque Oracle. Es muy
Editado: Semestre I-2009
GABD/DD

importante decidir bien este valor de antemano ya que una vez creada la base de datos ya no se puede modificar ms que en migraciones a versiones ms actuales del producto. Un bloque de datos es la mnima unidad de Lectura / Escritura en una base de datos Oracle, es decir, el SMBD Oracle no lee y escribe en bloques del sistema operativo sino que lo hace en unidades lgicas que son los bloques de datos y que varan de una base de datos a otra en la misma mquina ya que es un valor que se debe indicar en la creacin de cada base de datos. Oracle recomienda que el tamao de un bloque de datos sea siempre un mltiplo del bloque de datos del sistema operativo. 2.- Estructura Fsica 2.1.- Datafile: Es un archivo fsico donde se almacenan los objetos que forman parte de un tablespace. Un tablespace puede estar formado por uno o varios datafiles. Un datafile pertenece solamente a un tablespace y a una instancia de base de datos. Cuando se crea un datafile se debe indicar su nombre, ubicacin fsica de disco, tamao y el tablespace al que va a pertenecer. El SMBD reserva el espacio siempre y cuando haya disponibilidad suficiente de espacio en disco para crear dicho archivo; de lo contrario se producir un error y no ser creado. En dicho tablespace se irn almacenando lgicamente los elementos de datos (tablas, datos, ndices, etc.) y fsicamente se van guardando en los datafiles asignados a dicho tablespace. No se puede controlar en qu archivo fsico se almacenan los datos de un tablespace. Si un tablespace est formado por 2 datafiles y tenemos una tabla en ese tablespace, a medida que vamos insertando filas stas se almacenarn indistintamente en cualquiera de los dos datafiles. El espacio total disponible en un tablespace es la suma de los tamaos que ocupan los datafiles que lo componen. 2.2.- OSBlock: Son simplemente los bloques en memoria del sistema operativo. Parmetros de control de almacenamiento 1.- PCTFREE. Define el porcentaje de espacio libre que se debe reservar, por cada bloque de datos, para las actualizaciones sobre los registros. Este parmetro es un valor entero entre 0 y 99, que considera las actualizaciones sobre los registros de la tabla. Por ejemplo, supongamos una tabla de empleados; dicha tabla almacena datos de trabajadores de la empresa, la cual est dividida en distintos bloques de datos. Si el primer bloque de datos de la tabla se encuentra lleno y se desea modificar el nombre de un empleado, si no se dispone de espacio en el bloque para almacenar los caracteres adicionales, se requiere del pctfree como espacio libre para actualizaciones sobre los registros.
Editado: Semestre I-2009
GABD/DD

2.- PCTUSED. Est directamente relacionado con el pctfree, ya que define el porcentaje que se debe haber liberado del bloque de datos para poder hacer nuevas inserciones sobre dicho bloque. Al igual que el pctfree, el pctused es un entero entre 0 y 99. La utilidad del mismo se ve reflejada en el momento que se borran registros de un bloque que se encontraba ocupado. Es ilgico bloquear escrituras sobre dicho bloque, ya que estaramos inutilizando espacio de disco. Parmetros de control de concurrencia 1.- INITRANS. Determina el nmero mnimo de transacciones simultneas que pueden hacer cambios sobre un bloque de datos. Cuando se manipula el initrans Oracle reserva (23 * n) bytes de cabecera para garantizar la atencin de las n transacciones sobre dicho bloque de datos. 2.- MAXTRANS. Define el nmero mximo de transacciones simultneas que pueden hacer cambios sobre un bloque de datos. Se utiliza para limitar la concurrencia. Listado de consultas bsicas disponibles en Oracle: Consultar los datafiles usando la vista v$datafile SYS.GV_$DATAFILE consultando la tabla DBA_DATA_FILES. Consultar los segmentos de rollback usando la tabla DBA_ROLLBACK_SEGS Consultar los redo log files usando la vista V$LOGFILE Consultar los archived log usando la vista V$ARCHIVED_LOG Consultar los datos del buffer usando la vista V$BUFFER_POOL Consultar los control files usando la vista V$CONTROLFILE Consultar los archivos de Base de datos usando la vista V$DBFILE Consultar la instancia de Base de datos usando la vista V$INSTANCE Consultar los valores del SGA usando la vista V$SGA o show SGA. Consultar los datos contenidos en la vista V$DB_CACHE_ADVICE Consultar los datos del Area de SQL contenidos en la vista V$SQLAREA Verifique cul es la configuracin actual del SMBD. Use la vista V$PARAMETER.
Editado: Semestre I-2009
GABD/DD

Sintaxis de creacin de tablespace:

CREATE [UNDO] TABLESPACE tablespace_name DATAFILE Datafile_Options Storage_Options; Storage_Options: DEFAULT [COMPRESS|NOCOMPRESS] STORAGE storage_clause MINIMUM EXTENT int {K|M} BLOCKSIZE int K LOGGING | NOLOGGING FORCE LOGGING ONLINE | OFFLINE PERMANENT | TEMPORARY EXTENT MANAGEMENT {DICTIONARY | LOCAL {AUTOALLOCATE | UNIFORM [SIZE int K | M]} } SEGMENT SPACE MANAGEMENT {MANUAL | AUTO} storage clause: INITIAL int K | M NEXT int K | M MINEXTENTS int MAXEXTENTS int MAXEXTENTS UNLIMITED PCTINCREASE int FREELISTS int FREELIST GROUPS int OPTIMAL OPTIMAL int K | M OPTIMAL NULL BUFFER POOL {KEEP|RECYCLE|DEFAULT} Sintaxis de creacin de tablas: CREATE TABLE [usuario.]tabla ({Columna tipo_dato [DEFAULT expresion] [restriccin_columna] | restriccin_tabla}, [{columna tipo_dato [DEFAULT expresion] [restriccin_columna] | restriccin_tabla}]...) [PCTFREE entero] [PCTUSED entero] [STORAGE ([INITIAL entero [k|M]] [NEXT entero [K|M]] [PCTINCREASE entero] [MINEXTENTS entero] [MAXEXTENTS entero]) [TABLESPACE espacio_tabla] Sintaxis de creacin de segmentos de rollback: CREATE ROLLBACK SEGMENT segmento
Editado: Semestre I-2009
GABD/DD

[TABLESPACE espacio_tabla] [STORAGE ([INITIAL entero [K|M]] [NEXT entero [K|M]] [PCTINCREASE entero] [MINEXTENTS entero] [MAXEXTENTS entero] [OPTIMAL (entero [K|M] | NULL}]) Comandos que pueden requerir de segmentos temporales: CREATE INDEX SELECT ... ORDER BY SELECT DISTINCT SELECT ... GROUP BY SELECT ... UNION SELECT ... INTERSECT SELECT ... MINUS Datafile_Options: 'filespec' [AUTOEXTEND OFF] 'filespec' [AUTOEXTEND ON [NEXT int K | M] [MAXSIZE int K|M]] II - Parte Practica: 1. Cree un tablespace de 3 Mb cuyo nombre debe ser TSDATA_XX, donde XX es el cdigo de usuario que usted tiene asignado. El datafile asociado deber tener un tamao inicial de 1 Mb y deber denominarse DFDATA1_XX. Ayuda: Use las vistas V$TABLESPACE, V$DATAFILES del diccionario de datos para verificar el resultado. 2. Agregue un datafile de 2Mb al tablespace TSDATA_XX con la opcin de autoresizing, y con un tamao mximo de 5 Mb. Verifique los resultados con la vista V$DATAFILE. 3. Redimensione el tamao del datafile a 5 Mb. Consulte como quedaron finalmente los datafiles. 4. Cree un tablespace temporal llamado TSTEMP_XX de 1 Mb. 5. Desactivar (colocar OFFLINE) el tablespace TSTEMP_XX usando el comando ALTER TABLESPACE. Use la vista V$DATAFILE para confirmar. 6. Cree la tabla Producto (cdigo, nombre) en el tablespace TSTEMP_XX. Qu observa?. Ahora intente crearla en el tablespace TSDATA_XX. Consulte la estructura de la tabla Producto. 7. Eliminar el tablespace TSTEMP_XX. Verifique que efectivamente este tablespace no existe en la base de datos. 8. Verifique la cantidad, status y tamao de cada uno de los tablespace existente en el sistema. 9. Use la vista DBA_SEGMENTS para que identifique los tipos de segmentos existentes en el sistema. 10. Elimine el tablespace TSDATA_XX 11. Cree una tabla cualquiera en el tablespace de datos. Asuma que va a tener un alto grado de actualizaciones (manipule el pctfree, el pctused, el initrans y el maxtrans para que el manejo de la tabla sea eficiente). 12. En el tablespace TSDATA_XX, crear las tablas:
Editado: Semestre I-2009
GABD/DD

Producto (Codigo, Nombre) Vendedor (CI, Nombre, Edad, FechaNac, Sexo) 13. Inserte un producto, 2 vendedores. Consulte la informacin insertada. 14. A la tabla Producto agregue la columna Precio, para saber cual fue el precio del producto en particular. 15. Consulte los extends usados por la tabla Producto. Use la tabla DBA_EXTENDS 16. Consultar el espacio disponible por cada tablespace. Use la vista DBA_FREE_SPACE. 17. Verifique el porcentaje de espacio usado de cada uno de los tablespaces (o datafiles asociados). Use la vista DBA_SEGEMENTS

Editado: Semestre I-2009


GABD/DD

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