Memorias de un DBA

Un blog dedicado a contribuir a la comunidad SQL Server en español

Diseño de una Base de Datos

with one comment

Las Bases de Datos están compuestas por elementos lógicos y físicos como se puede detallar en el siguiente post. Sin embargo para poder tener un mayor control sobre los objetos que guardamos en ella es necesario realizar un planeamiento previo del diseño ésta, este paso previo a la creación de la base de datos es muy importante ya que si no tenemos un buen diseño inicial, mas adelante cuando encontremos problemas en el diseño, el corregirlo será mucho mas complicado y costoso.

 Comenzaremos viendo desde donde sale la estructura inicial de una base de datos en SQL Server. Cuando se crea una base de datos, internamente SQL Server toma como plantilla la base de datos de sistema llamada “model”, heredando todas sus propiedades y objetos, también copiando los filegroups y datafiles para luego cambiarles de nombre por los de la nueva base de datos, sin embargo este diseño lógico y físico inicial se puede personalizar añadiendo opciones adicionales a la creación de la base de datos, estas opciones adicionales se pueden agregar a través de código o a través del wizard del SSMS (SQL Server Management Studio).

El problema con esto es que normalmente la base de datos model esta configurada sólo con el filegroup “PRIMARY” con un tamaño de 8 MB y un Log de transacciones de 2 MB, ambos configurados con un auto-creacimiento de 10% para ambos archivos. Adicionalmente tiene un modelo de recuperación Full, lo cual ocasiona problemas con el crecimiento del log de transacciones si es que éste no tiene el tratamiento debido, es decir considerar dentro de la estrategia de backup los backups de log de transacciones, lo cual normalmente.

Ahora, personalmente considero que toda base de datos debe tener por lo menos dos filegroups, uno de ellos siempre sera el “PRIMARY” el cual albergara a todos los objetos de sistema como las tablas y vistas de metadata, los subsiguientes filegroups serán dedicados a albergar la data del usuario. Adicionalmente se pueden agregar mas filegroups que sirvan para albergar distintos tipos de data como indices, BLOB data, o tablas de módulos específicos. De esta manera,al tener filegroups destinados a un uso especifico es mucho mas ordenado e incluso permite traer a la base de datos en linea por partes en caso de algún desastre reduciendo el tiempo de espera de los sistemas para poder acceder a la data.

Otra razón importante para poder tener este diseño es para tener mayor flexibilidad al momento de mover los datafiles de un disco a otro mientras estos se encuentran en linea, si es que la data de usuario se encontrara en el filegroup ”PRIMARY” y se quisiera mover el data file con extensión “MDF”, no se podría mover ya que este datafile en especial no puede ser vaciado por completo. Mas adelante tendremos un articulo en el cual se explicara a mas detalle como se debe hacer este movimiento.

Finalmente el realizar este diseño permitirá que la data se distribuya entre varios archivos de datos los cuales según las buenas practicas deberían estar alojados en diferentes discos físicos los cuales permitirán compartir las operaciones de lectura \ escritura de disco, lo cual permitirá el más rápido acceso a los datos. Así que ya saben la próxima vez que se cree una base de datos piense bien el mejor diseño que esta debe tener.

Written by dbamemories

enero 15, 2013 a 5:00 pm

Publicado en SQL Server Database

Tagged with ,

Una respuesta

Subscribe to comments with RSS.

  1. Gracias por compartir tus conocimientos, me son de mucho ayuda.

    Luis

    marzo 1, 2013 at 11:02 am


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: