Академический Документы
Профессиональный Документы
Культура Документы
1
2.1 Caractersticas del DBMS
Independencia fsica/lgica
Consiste en la capacidad de modificar el esquema ya sea fsico o lgico
de una base de datos sin tener que realizar cambios en las aplicaciones
que se sirven de ella y viceversa.
Respaldo y recuperacin
Un DBMS debe poder realizar un respaldo de una base de datos por si
en algn momento llegara a fallar o se cometiera un error, fcilmente
podramos recuperar la informacin con la copia de seguridad.
Control de concurrencia
Varios usuarios deben poder acceder al mismo tiempo sin que la base
de datos se sature y deje de funcionar.
2
Seguridad
Un DBMS debe garantizar que la informacin de la base de datos se
encuentra segura de permisos y grupos de usuarios que permiten
otorgar diversas categoras de permisos.
Tiempo de respuesta
Lgicamente es deseable minimizar el tiempo que el DBMS demora en
proporcionar la informacin solicitada y en almacenar los cambios
realizados.
Manejo de transacciones
Una transaccin es un conjunto de operaciones que se ejecutan como
una sola, esto quiere decir que luego de una ejecucin en la que se
produce una falla, es el mismo que se obtendra si el programa no se
hubiera ejecutado.
Consistencia
La informacin de la base de datos debe estar siempre actualizada.
Integridad
Un DBMS debe ser capaz de evaluar los datos, deben coincidir con el
tipo de dato que se solicite.
Accesibilidad
Se debe poder acceder a la informacin de una base de datos desde
cualquier punto siempre y cuando el usuario tenga los privilegios
necesarios.
Redundancia mnima
Un buen diseo de una base de datos lograr evitar la aparicin de
informacin repetida o redundante.
3
2.1.1 Estructura de memoria y procesos de la instancia.
La memoria se puede estructurar en las siguientes partes:
rea Global del Sistema (SGA)
Es un grupo de estructuras de la memoria compartida que contiene
datos e informacin de control de una instancia de una base de datos.
Si varios usuarios se conectan de forma concurrente a la misma
instancia, entonces los datos se comparten en el SGA por lo que
tambin se llama shared global area.
Estructura de datos del SGA:
4
Redo Log Buffer
Es un buffer circular que mantiene todos los cambios que han
sido realizados sobre la base de datos por operaciones INSERT,
UPDATE, DELETE, CREATE, ALTER y DROP. Las entradas de este
buffer contienen toda la informacin necesaria para reconstruir
los cambios realizados a la base de datos por medio de cualquier
sentencia del DDL o del DML. El tamao de este Buffer tambin
puede ser configurado para mejorar el rendimiento de la
instancia y de las aplicaciones que sobre ellas se ejecutan. 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.
5
Los pasos de procesamiento de cada peticin de anlisis de una
sentencia SQL son:
o Comprobar si la sentencia se encuentra en el rea
compartida.
o Comprobar si los objetos referenciados son los mismos.
o Comprobar si el usuario tiene acceso a los objetos
referenciados.Si no, la sentencia es nueva, se analiza y los
datos de anlisis se almacenan en la zona de SQL
compartida.
Large pool
El administrador de la base de datos puede configurar esta rea
de memoria opcional para proveer localidades ms amplias de
memoria para:
o Memoria de sesiones.
o Procesos de I/O del servidor.
o Backups de la base de datos y operaciones de
recuperacin.
Java pool
La memoria java pool es usada en la memoria del servidor para
todas las sesiones que utilicen cdigo java y datos en la JVM. Esta
memoria es usada de diferentes maneras dependiendo del
modo en el que la base de datos est corriendo.
Streams pool
Esta memoria es usada exclusivamente por flujos de Oracle. Esta
almacena colas de mensajes y provee memoria para que los
flujos de Oracle capturen procesos y los apliquen. A menos que
se configure especficamente, el tamao de esta memoria
empieza en cero. El tamao de la streams pool crece
dinmicamente como sea necesario cuando los flujos de Oracle
son usados.
6
Data Dictionary Cache
Tambin conocido como Dictionary Cache o Row Cache,
almacena la informacin de uso ms reciente sobre el
diccionario de datos. Es una coleccin de tablas y vistas que
contienen informacin referente a la base de datos como los
nombres y tipos de datos de las columnas de las tablas, usuarios,
passwords y privilegios. Durante la fase de compilacin, esta
informacin es necesaria para resolver los nombres de los
objetos utilizados en un comando SQL y para validar los
privilegios de acceso.
7
rea SQL compartida. Aunque, muchas reas SQL privadas
pueden ser asociadas con la misma rea SQL compartida.
8
Para un mejor rendimiento del SGBD, la mayora de las
ordenaciones deberan tener lugar nicamente en memoria ya
que en caso de tener que escribir a disco, obtendremos un claro
efecto adverso sobre ste. Si las aplicaciones que acceden a la
base de datos suelen realizar bsquedas que no caben en el rea
de ordenaciones, o incluso si las aplicaciones realizan
demasiadas bsquedas innecesarias, entonces sera
conveniente modificar el parmetro de SORT_AREA SIZE.
Memoria virtual
Oracle puede utilizar la memoria virtual proporcionada por el SO para
simular memoria a base de algn dispositivo de almacenamiento como
el disco duro.
La memoria virtual est mapeada en la RAM. Cuando no hay suficiente
memoria con sta para ejecutar los programas (en caso de Oracle las
sentencias, bsquedas, etc) se necesita un espacio auxiliar que
normalmente suele ser el disco duro. Para el traspaso de informacin
se utilizan dos tcnicas principales: el Paging o paginacin y el
Swapping.
9
Paginacin
La paginacin consiste en dividir los programas en pequeos bloques o
pginas, de manera que sea ms fcil moverlos de memoria a disco y
viceversa. De la misma forma, la memoria se divide en marcos de
pgina. De esta forma, la cantidad de memoria desperdiciada por un
proceso es el final de su ltima pgina, minimizando as la
fragmentacin interna y evitando la externa.
Swapping
El Swapping es el procedimiento de mover los bloques de memoria en
los que estn algunos procesos que no se estn utilizando, desde la
10
memoria principal a un espacio Swap dejando as hueco libre para
poder cargar en memoria otros procesos que s se van a utilizar.
El espacio Swap o espacio de intercambio es una zona de disco (un
fichero o una particin) que se usa para guardar las imgenes de los
procesos que no han de mantenerse en memoria fsica.
Este procedimiento es muy similar a la paginacin, con la diferencia
principal de que el directorio Swap funciona exactamente igual que la
memoria RAM, por lo que puede almacenar datos privados,
contraseas y todo lo que almacena sta. Sin embargo, en la
paginacin, nicamente se sacan de memoria pginas pertenecientes
a procesos que no se estn utilizando, adems de que se pueden sacar
solo algunas pginas de los procesos y no stos enteros como se hace
en el Swapping.
Con respecto al tamao que debe tener el directorio Swap, hay muchas
discusiones sobre ello como por ejemplo la antigua creencia de El
Swap debe tener el doble de tamao que la RAM. cosa que no es
vlida hoy da debido a la gran capacidad de la memoria RAM de la
mayora de ordenadores.
Como conclusin, hay que destacar que el uso de la memoria virtual
por parte de Oracle, va a influir bastante en el rendimiento,
disminuyndolo drsticamente en comparacin con el uso nicamente
de la memoria RAM.
11
ahorro considerable de memoria y una mejora del rendimiento
general.
Por otra parte, los programas de usuario tambin pueden ser
compartidos o no. Algunas utilidades y herramientas de Oracle (como
ocurre con Oracle Forms y SQL*Plus) pueden ser instalados de forma
compartida, pero otras no. Mltiples instancias de Oracle pueden usar
la misma SCA con diferentes bases de datos si estn corriendo en la
misma mquina.
Hay que tener en cuenta que la opcin de instalar software compartido
puede no estar disponible en funcin del sistema operativo, como
ocurre por ejemplo en mquinas con Windows.
Instancia
Es el conjunto de estructuras de memoria y de procesos que acceden a
los archivos de una base de datos.
Es un conjunto de estructuras de memoria que manejan los archivos de
la base de datos.
Cada instancia est asociada a una base de datos. Cuando se inicia una base
de datos en un servidor, se le asigna un rea de memoria (SGA) y lanza uno o
ms procesos. A la combinacin del SGA y de los procesos, es lo que se llama
instancia. La memoria y los procesos de una instancia gestionan los datos de
la base de datos asociada de forma eficiente y sirven a uno o varios usuarios.
Cuando se inicia una estancia, el DBMS monta la base de datos, es decir, asocia
dicha estancia a su base de datos correspondiente. En una misma
computadora pueden ejecutarse varias instancias simultneamente,
accediendo cada una a su propia base de datos fsica.
nicamente el administrador de la base de datos puede iniciar una instancia y
abrir una base de datos. Si una base de datos est abierta, entonces el
administrador puede cerrarla y cuando esto ocurre, los usuarios no pueden
acceder a la informacin que contiene.
12
Procesos que acceden al SGA.
Procesos de primer plano
Los procesos de primer plano ejecutan actividades como verificar si un usuario
tiene o no permiso de acceder a los datos, generando un plan de ejecucin de
sentencias para las consultas (querys) enviadas por el usuario y recuperando
bloques de datos del buffer cach y modificndolos.
Procesos de primer plano:
Verificacin de permisos de usuario
Elaboracin del plan de ejecucin para las sentencias
Recuperacin de datos de la cach
Recuperacin en caso de fallos
Bloqueos
Procesos de Segundo plano
A diferencia de los procesos de primer plano, los procesos de Segundo plano
viven desde que la base de datos se inicia hasta que sta es apagada.
Procesos de segundo plano:
Database Writer
Log Writer
Archiver
Procesos de Checkpoint
13
Este proceso restaura las transacciones no validadas de los procesos de
usuario que abortan, liberando los bloqueos y los recursos de la SGA.
Asume la identidad del usuario que ha fallado, liberando todos los
recursos de la BD que estuviera utilizando, y anula la transaccin
cancelada. Este proceso se despierta regularmente para comprobar si
su intervencin es necesaria.
Checkpoint, CKPT
Este proceso escribe en los ficheros de control los checkpoints. Estos
puntos de sincronizacin son referencias al estado coherente de todos
los ficheros de la BD en un instante determinado, en un punto de
sincronizacin. Esto significa que los bloques sucios de la BD se vuelcan
a los ficheros de BD, asegurndose de que todos los bloques de datos
modificados desde el ltimo checkpoint se escriben realmente en los
ficheros de datos y no slo en los ficheros redo log; y que los ficheros de
redo log tambin almacenan los registros de redo log hasta este
instante. La secuencia de puntos de control se almacena en los ficheros
de datos, redo log y control.
14
escribir los bloques modificados desde el buffer de datos a los ficheros
de datos.
Archiver, ARCH
El proceso archivador tiene que ver con los ficheros redo log. Por
defecto, estos ficheros se reutilizan de manera cclica de modo que se
van perdiendo los registros redo log que tienen una cierta antigedad.
Cuando la BD se ejecuta en modo ARCHIVELOG, antes de reutilizar un
fichero redo log realiza una copia del mismo. De esta manera se
mantiene una copia de todos los registros redo log por si fueran
necesarios para una recuperacin. Este es el trabajo del proceso
archivador.
Recoverer, RECO
El proceso de recuperacin est asociado al servidor distribuido. En un
servidor distribuido los datos se encuentran repartidos en varias
localizaciones fsicas, y estas se han de mantener sincronizadas. Cuando
una transaccin distribuida se lleva a cabo puede que problemas en la
red de comunicacin haga que una de las localizaciones no aplique las
modificaciones debidas. Esta transaccin dudosa debe ser resuelta de
algn modo, y esa es la tarea del proceso recuperador. Est activo si el
parmetro DISTRIBUTED_TRANSACTIONS tiene un valor distinto de 0.
15
2.1.2 Estructuras fsicas de la base de datos.
Archivos de datos.
16
respaldo completa (full backup). El registro de transacciones no contiene
pginas, sino entradas con todos los cambios realizados en la base de datos,
como son las modificaciones de datos, modificaciones de la base de datos y
eventos de copia de seguridad y restauracin. El acceso a datos es secuencial,
ya que el registro de transacciones se actualiza en el mismo orden cronolgico
en el que se hacen las modificaciones. Este archivo no puede ser ledo por
herramientas de usuario de SQL auqnue existen herramientas de terceros que
leen este archivo para recuperar los cambios efectuados. Dependiendo de la
versin el registro de transacciones se utiliza para otros propsitos como por
ejemplo bases de datos espejo (mirror) y transporte remoto de transacciones
(log shipping). Para muchos de los administradores de bases de datos, la
imagen anterior representa la parte lgica y la parte fsica, donde:
Data File.
Los datafiles son los archivos fsicos en los que se almacenan los objetos que
forman parte de un tablespace. Un datafile pertenece solamente a un
tablespace y a una instancia de base de datos. Un tablespace puede estar
formado por uno o varios datafiles. Cuando se crea un datafile, se debe indicar
su nombre, su ubicacin o directorio, el tamao que va a tener y el tablespace
al que va a pertenecer. Adems, al crearlos, ocupan ya ese espacio, aunque se
encuentran totalmente vacos, es decir, Oracle reserva el espacio para poder
ir llenndolo poco a poco con posterioridad. Por supuesto, si no hay sitio
suficiente para crear un archivo fsico del tamao indicado, se producir un
error y no se crear dicho archivo. Cuando se van creando objetos en un
tablespace, stos fsicamente se van almacenando en los datafiles asignados a
dicho tablespace, es decir, cuando creamos una tabla y vamos insertando
datos en ella, estos datos realmente se reparten por los archivos fsicos o
datafiles que forman parte del 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 en cualquiera de los dos datafiles
indistintamente, es decir, unas pueden estar en un datafile y otras en otro. El
espacio total disponible en un tablespace es lgicamente la suma de los
17
tamaos que ocupan los archivos fsicos o datafiles que lo forman. Como
hemos indicado estos datafiles, al crearlos, estn totalmente vacos,
simplemente es un espacio reservado y formateado por Oracle para su uso. A
medida que se van creando objetos en ellos como tablas, ndices, etc. y se van
insertando registros en estas tablas, los datafiles se van llenando o, lo que es
lo mismo, el tablespace se va llenando.
Conocidos como Disk Block, estos mapean a los data blocks. A la hora de crear
una nueva base de datos se debe indicar cuntos bloques de sistema operativo
formarn un bloque de datos.
18
2.1.3 Requerimientos para instalacin.
19
2.1.4 Instalacin del software de BD en modo transaccional.
20
- CommitTrans para efectuar los cambios con xito
- RollbackTrans para deshacer los cambios
Y depende que base de datos uses para efectuar las operaciones pero, es la
misma teora para cualquier BD.
Una vez que se sabe la forma de ingresar comandos, es el momento de acceder
a una base de datos.
21
2.1.5 Variables de Ambiente y archivos importantes para
instalacin.
22
Es binario, por lo que su manejo es complicado, para ver el contenido se usa
la utilidad mysqlbinlog de esta forma: mysqlbinlog archivoLOG
Registro de Consultas Lentas (Slow Query Log File): Registra las consultas que
tardaron ms del tiempo mnimo establecido. El archivo est (salvo quese
especifique slow-log-file como parmetro) en la carpeta de datos de MySQL
con el nombre host_name-slow.log
23
2.1.6 Procedimiento general de instalacin
24
o Instalar aplicacin de base de datos
o Crear instancias y tablas de base de datos segn el documento de
requisitos y diseo de base de datos
o Probar la conectividad de cliente de base de datos
25
2.1.7 Procedimiento para configuracin de un DBMS
26
A continuacin se debe decidir qu codificacin de caracteres emplears,
salvo que quieras empezar a trabajar con Unicode porque necesites soporte
multilenguaje, probablemente Latin1 te sirva (opcin por defecto).
Instalamos MySQL como un servicio de Windows (la opcin ms limpia) y lo
marcamos para que el motor de la base de datos arranque por defecto y est
siempre a nuestra disposicin. La alternativa es hacer esto manualmente.
Se puede aadir contrasea al usuario root, esto siempre es lo ms seguro. Si
lo deseas, puedes indicar que el usuario root pueda acceder desde una
mquina diferente a esta, aunque no sea la mejor opcin de seguridad
En la ltima etapa, ya est listo para generar el fichero de configuracin y
arrancar el servicio. Slo damos al botn de Finalizar y terminamos con la
configuracin del DBMS.
27
2.1.8 Comandos generales de alta y baja del DBMS
28
(DROP) Eliminacin
Modificacin
Oracle permite modificar las restricciones definidas para una tabla. Esto puede
llevar a inconsistencia de los datos ya introducidos en la base de datos. Por
ello, Oracle tiene definidos mecanismos para modificacin de los datos ya
existentes.
Esta operacin se puede realizar con el comando ALTER TABLE.
ALTER TABLE [esquema.]tabla
clausula_constraint [,]
[ENABLE clausula_activa | DISABLE clausula_disable]
[{ENABLE|DISABLE} TABLE LOCK]
[{ENABLE|DISABLE} ALL TRIGGERS];
29
Hay que tener en cuenta varios puntos:
La versin 5 de MySQL crea por defecto tablas innoDB que permiten el manejo
de integridad referencial, transacciones. Al igual que las tablas regulares de
oracle. Para saber si el gestor de base de datos de MySQL que tenemos las
soporta es necesario ejecutar la siguiente sentencia.
30
Ejemplo: Estados, capitales, densidad de poblacin y superficie de la Republica
Mexicana
CREATE TABLE estados (idEstado INTEGER PRIMARY KEY , nombreEstado
CHAR(25) NOT NULL , capitalCHAR(25) NOT NULL, densidad INTEGER NOT
NULL, poblacion INTEGER NOT NULL) ENGINE = InnoDB;
Comando Describe
MySQL proporciona este comando que resulta til para conocer la estructura
de una tabla, las columnas que la forman y su tipo y restricciones. La sintsis
es la siguiente DESCRIBE nombreTabla.
Ejemplo: DESCRIBE f1;
El comando SHOW TABLES muestra las tablas dentro de una base de datos y
SHOW CREATE TABLES muestra la estructura de creacin de la tabla.
Tablas temporales
Las tablas temporales solo existen mientras la sesin est viva. Si se corre este
cdigo en un script de PHP (Cualquier otro lenguaje), la tabla temporal se
destruir automticamente al trmino de la ejecucin de la pgina. Si no
especfica MEMORY, la tabla se guardar por defecto en el disco.
CREATE TEMPORARY TABLE temporal (
Ife INTEGER(13) PRIMARY KEY,
nombre CHAR(30) NOT NULL UNIQUE
);
31
Este tipo de tabla solo puede ser usada por el usuario que la crea.
Si creamos una tabla que tiene el mismo nombre que una existente en la
base de datos, la que existe quedar oculta y trabajaremos sobre la temporal.
Modificacin
Esta operacin se puede realizar con el comando ALTER TABLE. Para usar
ALTER TABLE, necesita permisos ALTER, INSERT y CREATE para la tabla. La
sintaxis para MySQL es
alter_specification:
ADD [COLUMN] column_definition [FIRST | AFTERcol_name ]
| ADD [COLUMN] (column_definition,...)
| ADD INDEX [index_name] [index_type] (index_col_name,...)
| ADD [CONSTRAINT [symbol]]
PRIMARY KEY [index_type] (index_col_name,...)
| ADD [CONSTRAINT [symbol]]
UNIQUE [index_name] [index_type] (index_col_name,...)
| ADD [FULLTEXT|SPATIAL] [index_name] (index_col_name,...)
| ADD [CONSTRAINT [symbol]]
FOREIGN KEY [index_name] (index_col_name,...)
[reference_definition]
| ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
32
| CHANGE [COLUMN] old_col_namecolumn_definition
[FIRST|AFTER col_name]
| MODIFY [COLUMN] column_definition [FIRST | AFTER col_name]
| DROP [COLUMN] col_name
| DROP PRIMARY KEY
| DROP INDEX index_name
| DROP FOREIGN KEY fk_symbol
| DISABLE KEYS
| ENABLE KEYS
| RENAME [TO] new_tbl_name
| ORDER BY col_name
| CONVERT TO CHARACTER SET charset_name [COLLATEcollation_name]
| [DEFAULT] CHARACTER SET charset_name [COLLATEcollation_name]
| DISCARD TABLESPACE
| IMPORT TABLESPACE
| table_options
Ejemplo: Eliminar una llave foranea
ALTER TABLE automovil DROP FOREIGN KEY FK_Propietario;
33
GRFICOS
34
1.1.2. Redo Log Buffer
35
1.1.4. Large Pool
36
1.2. rea Global del Programa
37
1.3. . Proceso de configuracin de un DBMS (MySQL)
38
BIBLIOGRAFA
https://sites.google.com/site/201608abd5/unidad-2-arquitectura-e-
instalacion-del-sgbd/2-1-estructura-de-memoria-y-procesos-de-la-
instancia
http://oracleenespanol.blogspot.mx/2011/03/instancia-es-igual-
procesos-y.html
http://abdarrayan.blogspot.mx/2009/04/areas-globales-de-
programas-pga_14.html
http://abdarrayan.blogspot.mx/2009/04/areas-globales-de-
programas-pga_14.html
http://abdarrayan.blogspot.mx/
https://norfipc.com/inf/variables-entorno.html
proyecto359.webnode.mx/unidad2/
39