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).