miércoles, 20 de marzo de 2013

Operación y mantenibilidad


Crear bitácoras para el sistema ficticio de la tercera unidad ( clinica veterinaria) , utilizando las herramientas propias del DBMS.











Investigar que otras soluciones en la nube existen para manejo de bases de datos y publicar en el blog.

Nube híbrida
La nube híbrida combina nubes públicas y privadas y permite a las organizaciones aprovechar los beneficios de ambas. El ambiente computacional más flexible y rentable de hoy en día incorpora una federación de nubes públicas y privadas, con las aplicaciones adecuadas ejecutándose en la nube pública; la mayoría de las aplicaciones de misión crítica y las que manejan información confidencial se ejecutan en una nube privada, y algunas aplicaciones se cruzan y usan servicios de nubes públicas y privadas.
Las cargas de trabajo se cruzan entre nubes privadas y públicas de dos maneras básicas: cuando los datos se transfieren entre una aplicación en nube pública y bases de datos o aplicaciones en nubes privadas, y cuando los servidores y el almacenamiento en nubes públicas sirven como complementos según demanda de recursos de nubes privadas para manejar la demanda máxima. Las organizaciones deben considerar y encarar con cuidad la complejidad adicional de administrar estos intercambios entre nubes.


Microsoft SQL Server
Es una plataforma de bases de datos económica para soluciones de alojamiento la cual proporciona características de valor agregado que los proveedores de alojamiento pueden utilizar para elevar los ingresos al ofrecer nuevos servicios y capacidades a sus clientes.


Windows Azure
 Es una plataforma de nube abierta y flexible que permite compilar, implementar y administrar aplicaciones rápidamente, en una red global de centros de datos administrados por Microsoft. Puede compilar aplicaciones en cualquier lenguaje, herramienta o marco. Y puede integrar sus aplicaciones de nube públicas con el entorno de TI existente.
Windows Azure proporciona una plataforma en la nube flexible que puede satisfacer los requisitos de cualquier aplicación. Permite hospedar y ampliar el código de aplicación dentro de roles de proceso de un modo totalmente confiable. Los datos se pueden almacenar en bases de datos SQL relacionales, almacenes de tablas NoSQL y almacenes de blobs no estructurados, y existe la opción de usar la funcionalidad de Hadoop e Business Intelligence para la minería de datos.


domingo, 17 de marzo de 2013

Actividad #19


Crear espacios de trabajo para tres usuarios de niveles distintos, con restricciones de almacenamiento acordes a cada perfil de usuario. 
Usuario administrador :( todos los privilegios).
Usuario: médico veterinario: ( con privilegios para  borrar, agregar y modificar datos pero no para modificar estructuras de las tablas).
Usuario Asistente: solo tiene privilegios de consulta.




















Actividad #18


Implementar el esquema de base de datos de la clínica veterinaria ( incluir todas las tablas  y  datos de 5 pacientes con 2  registros de   visita a la clínica cada  uno) .














Actividad #17


Planear y definir la estructura lógica de la base de datos de acuerdo a los recursos disponibles –memoria y disco. ( utilice el  problema de la Veterinaria)  incluya toda la secuencia, ( esquema conceptual, esquema lógico y esquema físico), calcular el numero de bytes por registro ( de acuerdo al tipo de datos) y cuantos bytes aproximados se require para alamacenar los datos de  100 pacientes con un promedio de  6 consultas al año) deben contener todos los campos  incluidos en la hoja clinica en el diseño.




















martes, 12 de marzo de 2013

Crear particiones utilizando diferentes plataformas Mysql y Oracle

Creación de particiones en Mysql:

En MySQL 5.0, se pueden usar particiones de dispositivos en bruto como ficheros de datos del espacio de tablas.

Cuando se crea un nuevo fichero de datos, se debe colocar la palabra clave newraw inmediatamente a continuación del tamaño del fichero de datos en innodb_data_file_path. La partición deberá ser al menos tan grande como el tamaño que se haya especificado. Nótese que 1MB en InnoDB significa 1024 * 1024 bytes, en tanto que 1MB, en las especificaciones de los discos, generalmente significa 1.000.000 de bytes.
[mysqld]
innodb_data_home_dir=
innodb_data_file_path=/dev/hdd1:3Gnewraw;/dev/hdd2:2Gnewraw
 
La próxima vez que se inicie el servidor, InnoDB advertirá la palabra clave newraw e inicializará la nueva partición.
 
En Windows puede asignarse una partición de disco como fichero de datos de este modo:
[mysqld]
innodb_data_home_dir=
innodb_data_file_path=//./D::10Gnewraw
 
Ejemplo:
1.- Creamos la tabla reports:
CREATE TABLE reports (
  id int(10) NOT NULL AUTO_INCREMENT,
  date datetime NOT NULL,
  report TEXT,
  PRIMARY KEY (id,date)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
Como se puede ver hemos añadido como índice de tabla el campo date, esto es necesario si luego queremos particionar por fecha.

2.-
Ahora que tenemos la tabla creada vamos a particionar por mes:
ALTER TABLE reports PARTITION BY RANGE(TO_DAYS(date))(
  PARTITION p201111 VALUES LESS THAN (TO_DAYS("2011-12-01")),
  PARTITION p201112 VALUES LESS THAN (TO_DAYS("2012-01-01")),
  PARTITION p201201 VALUES LESS THAN (TO_DAYS("2012-02-01")), 
  PARTITION p201202 VALUES LESS THAN (TO_DAYS("2012-03-01")),
  PARTITION p201203 VALUES LESS THAN (TO_DAYS("2012-04-01")),
  PARTITION p201204 VALUES LESS THAN (TO_DAYS("2012-05-01")),
  PARTITION p201205 VALUES LESS THAN (TO_DAYS("2012-06-01")),
  PARTITION pDefault VALUES LESS THAN MAXVALUE);
La última partición (pDefault) 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.



Creación de particiones en Oracle:

Basicamente, el particionado se realiza utilizando una clave de particionado (partitioning key), que determina en que partición de las existentes en la tabla van a residir los datos que se insertan. Oracle también permite realizar el particionado de indices y de tablas organizadas por indices. Cada partición ademas puede tener sus propias propiedades de almacenamiento. Las tablas particionadas aparecen en el sistema como una única tabla, realizando el sistema la gestión automatica de lectura y escritura en cada una de las particiones (excepto para el caso de la partición de Sistema introducida en la versión 11g).  La definición de las particiones se indica en la sentencia de creación de las tablas, con la sintaxis oportuna para cada uno de los tipos.
  • Particionado Range: la clave de particionado viene determinada por un rango de valores, que determina la partición donde se almacenara un valor.
  • Particionado Hash: la clave de particionado es una función hash, aplicada sobre una columna, que tiene como objetivo realizar una distribución equitativa de los registros sobre las diferentes particiones. Es útil para particionar tablas donde no hay unos criterios de particionado claros, pero en la que se quiere mejor el rendimiento.
  • Particionado List: la clave de particionado es una lista de valores, que determina cada una de las particiones.
  • Particionado Composite: los particionados anteriores eran del tipo simples (single o one-level), pues utilizamos un unico método de particionado sobre una o mas columnas. Oracle nos permite utilizar metodos de particionado compuestos, utilizando un primer particionado de un tipo determinado, y luego para cada particion, realizar un segundo nivel de particionado utilizando otro metodo. Las combinaciones son las siguientes (se han ido ampliando conforme han ido avanzando las versiones): range-hash, range-list, range-range, list-range, list-list, list-hash y hash-hash .
  • Particionado Interval:  En lugar de indicar los rangos de valores que van a determinar como se realiza el particionado, el sistema automáticamente creara las particiones cuando se inserte un nuevo registro en la b.d. Las técnicas de este tipo disponible son Interval, Interval List, Interval Range e Interval Hash (por lo que el particionado Interval es complementario a las técnicas de particionado vistas anteriormente).
  • Particionado System: se define la tabla particionada indicando las particiones deseadas, pero no se indica una clave de particionamiento. En este tipo de particionado, se delega la gestión del particionado a las aplicaciones que utilicen la base de datos (por ejemplo, en las sentencias sql de inserción deberemos de indicar en que partición insertamos los datos).

viernes, 8 de marzo de 2013

Bitácora



¿Qué es?

Las bitácoras son fundamentales en lo que es la administración de bases de datos, pues con estas se puede tener un registro físicamente de todos los usuarios u objetos que se encuentren en determinada base de datos así como la información de las operaciones de las transacciones . Está almacenada en disco de forma que no es afectada por ningún tipo de fallo salvo error del propio disco o catástrofe.

 Funciones:

·         En caso de pérdida de usuarios u objetos y sus dueños así como los roles que desempeñan dentro del gestor nos sirven como respaldo de la información.

·         Para permitir la recuperación de transacciones fallidas, el sistema mantiene un fichero de bitácora o diario (también llamado fichero log ó journal). BD. Esta información puede necesitarse para recuperar desde transacciones fallidas.


Bitácora en mysql:

mysql -hlocalhost -uroot --tee=C: "Bitacora.txt"

c=Letra del dispositivo de almacenamiento
"Bitacora.txt=nombre de la bitacora


Bitácora en Oracle:
Para crear una bitácora en oracle es necesario el uso de triggers.

CREATE OR REPLACE TRIGGER  "AUDIT_EMPSALES_VALUES"
AFTER
update of "SALARY" on "EMPLOYEES"
for each row
begin
INSERT INTO audit_record_tb1
   VALUES(sys_context('userenv','current_user'),
      sysdate, :old.employee_id, :old.salary, :new.salary);
end;
/
ALTER TRIGGER  "AUDIT_EMPSALES_VALUES" ENABLE
/


jueves, 7 de marzo de 2013

Comparacion entre partición de disco y sistema de archivos


Las particiones son divisiones de tamaño fijo del disco duro..

Un sistema de archivos son los métodos y estructuras de datos que un sistema operativo utiliza para seguir la pista de los archivos de un disco o partición; es decir, es la manera en la que se organizan los archivos en el disco.

La diferencia entre un disco o partición y el sistema de archivos que contiene es importante. Unos pocos programas (incluyendo, razonablemente, aquellos que crean sistemas de archivos) trabajan directamente en los sectores crudos del disco o partición; si hay un archivo de sistema existente allí será destruido o corrompido severamente. La mayoría de programas trabajan sobre un sistema de archivos, y por lo tanto no utilizarán una partición que no contenga uno (o que contenga uno del tipo equivocado).

Particionar un disco duro es realizar una división en él de modo que, a efectos prácticos, el sistema operativo crea que tienes varios discos duros, cuando en realidad sólo hay un único disco físico dividido en varias partes.Mientras que los sistemas de archivos indican el modo en que se gestionan los archivos dentro de estas  particiones.

Partición de disco, su importancia y como particionar un disco


Las particiones son divisiones de tamaño fijo del disco duro. partición del disco duro puede tener un sistema de archivos (sistema operativo) distinto. Cada disco duro constituye una unidad física distinta. Sin embargo, los sistemas operativos no trabajan con unidades físicas directamente sino con unidades lógicas . Dentro de una misma unidad física de disco duro puede haber varias unidades lógicas. Cada una de estas unidades lógicas constituye una partición del disco duro. Esto quiere decir que podemos dividir un disco duro en, por ejemplo, dos particiones (dos unidades lógicas dentro de una misma unidad física) y trabajar de la misma manera que si tuviésemos dos discos duros (una unidad lógica para cada unidad física).

Existen tres tipos de particiones: particiones primarias , particiones extendidas y unidades lógicas.

Importancia  de las Particiones:

Son dos los motivos fundamentales por los que se han de realizar particiones en un disco o bien disponer físicamente de al menos dos de ellos.
(DT, AGENCIAS) En primer lugar, permitirá mantener los datos personales en un lugar independiente a donde se encuentra el sistema operativo. En caso de que éste no pueda arrancar, será mucho más fácil acceder a ellos.

Por otro lado, el acceso a los datos es más rápido y las operaciones sobre los discos que efectúe el programa que se estén utilizando se realizarán de forma más eficaz.
 
Como Particionar Disco Curo:
 
 

miércoles, 6 de marzo de 2013

Actividad 1. Instancia de un SGBD


Cada vez que se inicia una base de datos, se reserva espacio para un área global de sistema (SGA, System Global Area) y se inician los procesos background de Oracle. El área global del sistema es un área de memoria utilizada para guardar la información de la base de datos compartida por los usuarios de la base de datos. A la combinación de procesos de background y de búfers de memoria se le denomina instancia de Oracle.

Una instancia Oracle tiene dos tipos de procesos: procesos de usuario y procesos 
de Oracle. 
• Un proceso de usuario ejecuta el código de un programa de aplicación (p.e. una consulta). 
• Los procesos de Oracle son procesos del servidor que realizan el trabajo necesario para responder a los procesos de usuario, y también son los encargados de realizar las tareas de mantenimiento del Servidor Oracle.



Instancias de un SGBD

Instancia Oracle


-Conjunto de estructuras de memoria y procesos que acceden a los archivos de una BD.
 
-Distintas instancias pueden acceder a la misma BD.
-Componentes:
 
*Área Global del Sistema (System Global Area, SGA): Área de memoria con la
información de la BD que pueden compartir los usuarios. Se crea cuando se
empieza a usar una BD. Puede verse alguna información desde SQL*PLUS, usando
el comando ShoW SGA.

Esta compuesta por:
Caché de BD: bloques de datos de la BD más recientemente accedidos - para reducir los
accesos a disco.

Buffer del registro de rehacer: para el fichero de redo log (se utiliza para la recuperación).
Memoria compartida: para consultas SQL y otros procesos.

*Área Global de Programa (Program Global Area, PGA): Buffer de memoria con
información sobre los procesos.
 
*Procesos de Usuario: Aplicaciones que ejecuta el usuario.
 
*Procesos de Oracle: Procesos del servidor (para atender a los usuarios) y
procesos de segundo plano (background), para tareas de registro,monitorizacion...