adminstracion de base de datos

22
CONFIGURACION Y ADMINISTRACION DEL ESPACIO EN DISCO ADMINISTRACION DE BASE DE DATOS UNIDAD 3 MARIO ALEJANDRO LUGO FUENTES KEVIN ARVIZU SANDOVAL CESAR EDUARDO ALATORRE SANCHEZ DAVID OCHOA VALENCIA LANCER GONZALES ALVARES

Upload: mario-alejandro-fuentes

Post on 10-Dec-2015

226 views

Category:

Documents


1 download

DESCRIPTION

UNIDAD 3

TRANSCRIPT

CONFIGURACION Y ADMINISTRACION DEL ESPACIO EN DISCO

ADMINISTRACION DE BASE DE DATOS

UNIDAD 3• MARIO ALEJANDRO LUGO FUENTES• KEVIN ARVIZU SANDOVAL• CESAR EDUARDO ALATORRE SANCHEZ• DAVID OCHOA VALENCIA• LANCER GONZALES ALVARES

3.1 Estructuras lógicas de almacenamiento

Bloques: Unidad de almacenamiento mas pequeña y el nivel mas bajo al que un DBMS puede administrar sus datos.

Extensiones: Se forma con uno o mas bloques, cuando se aumenta el tamaño de un objeto se usa una extensión para incrementar el espacio.

Segmentos: Grupo de extensiones que forman un objeto de la base de datos (tabla o índice)

Espacio de tablas: Formado por uno o más datafiles, cada datafile solo puede pertenecer a un determinado tablespace

La estructura lógica: Es la forma en que están organizados los datos sin hacer mención a la forma ni método de almacenamiento.

3.1 Estructuras lógicas de almacenamiento

3.1 Estructuras lógicas de almacenamiento

Posibilita además otra serie de operaciones como las siguientes:

Asignar cuotas específicas de espacio a usuarios de la base de datos.

Controlar la disponibilidad de los datos de la base de datos, poniendo fuera de uso alguno de esos espacios de tablas individualmente.

Realizar copias de seguridad o recuperaciones parciales de la base de datos.

Reservar espacio para almacenamiento de datos de forma cooperativa entre distintos dispositivos.

3.1.1 Definición de Almacenamiento de Bases de Datos

La memoria secundaria es más útil para el almacenamiento de datos permanente.

Las razones por las cuales las bases de datos se almacenan en memorias secundarias son:

En general, las bases de datos son demasiado grandes para entrar en la memoria primaria.

La memoria secundaria suele ser más barata que la memoria primaria (aunque esta última tiene mayor velocidad).

La memoria secundaria es más útil para el almacenamiento de datos permanente, puesto que la memoria primaria es volátil.

Las bases de datos suelen ser creadas para almacenar grandes cantidades de datos de forma permanente.

La mayoría de las bases de datos se almacenan en memorias secundarias.

3.1.2.- Definición y Creación del Espacio Asignado para cada Base de Datos

Archivos de Montículos (o no Ordenados): esta técnica coloca los registros en el disco sin un orden específico, añadiendo nuevos registros al final del archivo.

Archivos Ordenados (o Secuenciales): mantiene el orden de los registros con respecto a algún valor de algún campo (clave de ordenación).

Archivos de Direccionamiento Calculado: utilizan una función de direccionamiento calculado aplicada a un campo específico para determinar la colocación de los registros en disco.

Ficheros o archivos: Grupos de datos estructurados que son almacenados en algún medio y pueden ser usados por aplicaciones.

Existen diferentes formas de organizaciones primarias de archivos que determinan la forma en que los registros de un archivo se colocan físicamente en el disco y, por lo tanto, cómo se accede a éstos.

Definición y Creación del Espacio Asignado para cada Base de Datos

Árboles B: se vale de la estructura de árbol para las colocaciones de registros.

Organización Secundaria o Estructura de Acceso Auxiliar: Estas permiten que los accesos a los registros de un archivo basado en campos alternativos, sean más eficientes que los que han sido utilizados para la organización primaria de archivos.

El DBMS asigna espacio de almacenamiento a las bases de datos cuando los usuarios introducen create database o alter database.

Para especificar un tamaño (por ejemplo, 4MB) para una base de datos que se va a almacenar en una ubicación predeterminada, se utiliza: on default = size de esta forma:

create database newpubs  on default = 4

3.1.3.- Bitácoras

Archivo donde se van registrando de forma secuencial todas las operaciones que afectan a una base de datos.

Cada registro de la bitácora escribe una única escritura de base de datos y tiene lo siguiente:

Nombre de la Transacción: Nombre de la transacción que realizó la operación de escritura.

 Nombre del Dato: El nombre único del dato escrito.

 Valor Antiguo: El valor del dato antes de la escritura.

 Valor Nuevo: El valor que tendrá el dato después de la escritura.

Bitácoras

Es fundamental que siempre se cree un registro en la bitácora cuando se realice una escritura antes de que se modifique la base de datos.

Los registros de la bitácora deben residir en memoria estable como resultado el volumen de datos en la bitácora puede ser exageradamente grande.

La instrucción en MySQL para crear una bitácora en .txt se crea antes de acceder a la base de datos con la instrucción:

"xampp>mysql>bin>mysql -hlocalhost -uroot --tee=C:bitacora.txt"

Bitácoras

La bitácora debe registrar todos los movimientos (insertar, eliminar y modificar) que se realicen en las tablas de la base de datos. Para lograr lo anterior es necesario crear un trigger para que se ejecute después de la operación de insertar, otro para después de eliminar y el último para después de modificar para cada una de las 3 tablas de la base de datos.

3.1.4.- Particiones

Es la división de una base de datos lógica o sus elementos constituyentes en partes independientes.

Cuando alguna de las tablas de una base de datos llega a crecer tanto que el rendimiento empieza a ser un problema, es hora de empezar a conocer algo sobre optimización.

Particionar tablas en MySQL nos permite rotar la información de nuestras tablas en diferentes particiones, consiguiendo así realizar consultas más rápidas y recuperar espacio en disco al borrar los registros. El uso más común de particionado es según la fecha.

Para ver si nuestra base de datos soporta particionado simplemente ejecutamos:

SHOW VARIABLES LIKE '%partition%';

Particiones

Ejemplos:

Por Rango: para construir las particiones se especifican rangos de valores.

ALTER TABLE contratos 

PARTITION BY RANGE (YEAR (fechaInicio)) ( 

PARTITION partDecada80 VALUES LESS THAN (1990), 

PARTITION partDecada90 VALUES LESS THAN (2000),

PARTITION partDefault VALUES LESS THAN MAXVALUE );

• Por rango

• Por lista

• Por hash

• Por clave

• Compuesta

La última partición (partDefault) tendrá todos los registros que no entren en las particiones anteriores. De esta manera nos aseguramos que la información nunca dejará de insertarse en la tabla.

Particiones

 Por Listas: para construir nuestras particiones especificamos listas de valores concretos.

ALTER TABLE contratos 

PARTITION BY LIST (YEAR (fechaInicio)) ( 

    PARTITION partDecada80 VALUES IN (1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989) ); 

 Por Hash: MySQL se encarga de distribuir las tuplas automáticamente usando una operación de módulo. Sólo hay que pasarle una columna o expresión que resulte en un entero (el hash) y el número de particiones que queramos crear.

ALTER TABLE contratos 

PARTITION BY HASH (YEAR (fechaInicio)) 

PARTITIONS 7; 

Particiones

Borrar Particiones: Por ejemplo si queremos borrar la partición más antigua simplemente ejecutamos:

ALTER TABLE reports DROP PARTITION p201111;

Consultar Particiones

SELECT PARTITION_NAME, TABLE_ROWS FROM information_schema.PARTITIONS WHERE TABLE_NAME='reports';

3.1.5.- Espacios Privados

Un “espacio privado” permite que los administradores y redactores gestionen el conjunto de datos del sitio. Algunas bases de datos tienen estos espacios privados llamados comúnmente paneles de control, que son formularios que aparecen al abrir la base de datos.

Los paneles de control sirven de "puerta principal" o "recibidor" de una base de datos en el sentido de que dirigen a las personas hacia determinadas tareas, como introducir o buscar datos. Sirven también para mantener alejados a los usuarios de las tablas que contienen los datos en tiempo real.

3.1.6.- Espacios para Objetos

Son los espacios reservados para aquellos objetos que componen la base de datos como los son:

Tablas

Consultas

Formulario

Informe

Macro

Módulo 

Algunos DBMS permiten al tamaño de los archivos temporales de expandirse y contraerse de forma automática. Dependiendo del tipo y la naturaleza de las operaciones de base de datos en proceso, esta fluctuación puede provocar picos de uso del disco.

3.2. Segmentos

Tipo de registro de sistema. Contiene un tipo específico de objetos de la base de datos.

Está compuesto de extensiones que definen el tamaño disponible para el segmento.

Segmentos

Un segmento está constituido por secciones llamadas extensiones, que son conjuntos contiguos de bloques. Una vez que una extensión existente en un segmento no puede almacenar más datos, el segmento obtendrá del espacio de tabla otra extensión. 

Existen 5 tipos de segmento:

De datos.

De índices.

De rollback.

Temporales.

De bootstrap.

Segmentos

Segmentos de Datos

Se crea con la sentencia CREATE.Los parámetros de almacenamiento de páginas y extensiones se crean con CREATE o ALTER, y afectan a la eficiencia en el almacenamiento y la recuperación de datos.

Segmentos de Índice

La sentencia CREATE INDEX crea un segmento también y pueden fijarse los parámetros de almacenamiento.. Segmentos de Rollback

Son objetos internos de la base de datos. Permiten efectuar la restauración de las transacciones no válidas.

Segmentos

Segmentos TemporalesSon creados para uso temporal cuando debe realizar una ordenación que no le cabe en memoria, en operaciones como:

CREATE INDEX, ORDER BY, GROUP BY, MINUS, etc.

Son eliminados cuando la sentencia finaliza.

De bootstrap

Se crea en SYSTEM.

Contiene definiciones del diccionario para sus tablas que se cargan al abrir la base de datos.

3.3 Definición de Memoria Compartida

Tipo de memoria que puede ser accedida por múltiples programas, ya sea para comunicarse entre ellos o para evitar copias redundantes.

3.4. Instancias múltiples

Las instancias múltiples son el hecho de poder ejecutar un programa más de una vez al mismo tiempo.

Con las bases de datos se complica un poco porque si un usuario modifica un registro que otro usuario tiene también abierto, la modificación que se haga en una instancia debe reflejarse de inmediato (actualizarse) en cualquier otra instancia abierta de la misma base de datos.