Si alguna vez te has preguntado cómo SQL Server sabe qué configuración básica aplicar a una nueva base de datos al ejecutar un simple CREATE DATABASE, la respuesta reside en un componente fundamental y a menudo pasado por alto: la base de datos model.

La base de datos model no es una base de datos de usuario común. Es una base de datos del sistema con un propósito muy específico y vital: actúa como la plantilla maestra para todas las nuevas bases de datos que se crean en una instancia de SQL Server. Cada vez que se genera una nueva base de datos, SQL Server toma una copia del contenido y la configuración de model como punto de partida.
- ¿Por Qué la Base de Datos Model es Indispensable?
- El Proceso de Creación de una Nueva Base de Datos
- ¿Qué Heredan las Nuevas Bases de Datos de Model?
- Lo Que NO Heredan las Nuevas Bases de Datos: Propiedades Físicas de Archivo
- Modificando la Base de Datos Model: Un Poderoso Recurso
- Configuraciones Predeterminadas y Propiedades de Model
- Restricciones en la Base de Datos Model
- Preguntas Frecuentes sobre la Base de Datos Model
- ¿Puedo eliminar la base de datos model?
- ¿Qué sucede si realizo cambios en la base de datos model?
- ¿Puedo cambiar el propietario de la base de datos model?
- ¿Las rutas de archivo y la configuración de crecimiento automático de model se heredan por las nuevas bases de datos?
- ¿Por qué es tan importante la base de datos model para tempdb?
- Conclusión
¿Por Qué la Base de Datos Model es Indispensable?
La importancia de model va más allá de ser solo una plantilla para las bases de datos de usuario. Es absolutamente esencial para el funcionamiento de SQL Server porque también se utiliza como base para crear la base de datos tempdb.
La base de datos tempdb es una base de datos del sistema temporal que se recrea desde cero cada vez que se inicia SQL Server. Para poder hacer esto, SQL Server necesita una fuente confiable y consistente, y esa fuente es model. Por lo tanto, la base de datos model debe existir siempre en un sistema SQL Server y nunca debe eliminarse.
El Proceso de Creación de una Nueva Base de Datos
Cuando ejecutas una instrucción CREATE DATABASE, SQL Server no empieza desde cero con páginas vacías. El proceso comienza copiando el contenido completo de la base de datos model. Esto incluye no solo las estructuras básicas del sistema, sino también cualquier objeto (tablas, vistas, procedimientos almacenados, funciones, etc.) y configuraciones (opciones de base de datos) que existan en model en ese momento.
Una vez que el contenido de model ha sido copiado, el resto de la nueva base de datos se llena con páginas vacías, listas para almacenar tus propios datos y objetos.
¿Qué Heredan las Nuevas Bases de Datos de Model?
La característica clave de model es la herencia. Las nuevas bases de datos heredan una gran cantidad de propiedades y configuraciones de model:
- Contenidos: Cualquier objeto de usuario (tablas, vistas, procedimientos, funciones, tipos de datos definidos por el usuario, etc.) que hayas creado en model se copiará a la nueva base de datos.
- Opciones de Base de Datos: La mayoría de las opciones de configuración a nivel de base de datos establecidas en model se aplican a la nueva base de datos. Esto incluye opciones como
AUTO_CLOSE,AUTO_SHRINK,ANSI_NULL_DEFAULT,RECOVERYmodel, entre muchas otras. - Modelo de Recuperación: El modelo de recuperación (Simple, Full, Bulk-Logged) de la base de datos model se hereda por las nuevas bases de datos de usuario. El valor predeterminado de model es configurable, pero por defecto puede variar según la edición de SQL Server. Conocer y configurar adecuadamente el modelo de recuperación en model es crucial para la estrategia de copia de seguridad de tus futuras bases de datos.
- Configuración de Collation: Aunque no puedes cambiar la collation de model (siempre usa la collation de la instancia del servidor), las nuevas bases de datos heredan esta collation por defecto.
Lo Que NO Heredan las Nuevas Bases de Datos: Propiedades Físicas de Archivo
Una excepción importante a la herencia son las propiedades físicas de los archivos de datos y de log de la base de datos model. Propiedades como la ruta de archivo, el nombre físico del archivo y la configuración de crecimiento automático (autogrow) de model generalmente no se heredan directamente por los archivos de la nueva base de datos.
La única propiedad de archivo de model que sí se considera para la nueva base de datos es el *tamaño inicial* de los archivos de datos y de log. Los valores predeterminados para el tamaño inicial de los archivos de datos (modeldev) y log (modellog) en model son de 8 MB. Sin embargo, la forma en que se configura el crecimiento automático en model (por ejemplo, crecer 64 MB, crecer en porcentaje, crecer hasta un tamaño máximo) *no* es heredada por los nuevos archivos de base de datos, aunque la tabla sys.databases muestre estos valores por defecto para las bases de datos recién creadas antes de que se modifiquen explícitamente.
Modificando la Base de Datos Model: Un Poderoso Recurso
Dado que model actúa como plantilla, modificarla te permite pre-configurar todas las bases de datos futuras que crees en esa instancia de SQL Server. Puedes añadir tablas estándar, vistas, procedimientos almacenados, tipos de datos definidos por el usuario, o establecer opciones de base de datos específicas que quieras que todas tus nuevas bases de datos tengan por defecto.
Por ejemplo, si siempre usas un conjunto particular de tablas de auditoría o funciones auxiliares, puedes crearlas en model. Así, cada vez que crees una nueva base de datos para un proyecto, estas estructuras ya estarán presentes, ahorrando tiempo y asegurando consistencia.
Sin embargo, si decides modificar la base de datos model, es *altamente recomendable* realizar una copia de seguridad de model después de hacer los cambios. Model es una base de datos del sistema crítica, y tener una copia de seguridad te permitirá restaurarla a un estado conocido en caso de cualquier problema.
Configuraciones Predeterminadas y Propiedades de Model
Es útil conocer las configuraciones predeterminadas de la base de datos model tal como viene instalada. Estas configuraciones son la base de lo que obtendrán tus nuevas bases de datos a menos que modifiques model o especifiques opciones diferentes en la instrucción CREATE DATABASE.
Propiedades Físicas Predeterminadas de Archivo (Referencia)
Aunque el comportamiento de crecimiento automático no se hereda, los nombres lógicos y físicos predeterminados y los tamaños iniciales son relevantes:
| Tipo de Archivo | Nombre Lógico | Nombre Físico Predeterminado | Tamaño Inicial Predeterminado | Crecimiento Automático Predeterminado |
|---|---|---|---|---|
| Datos Primario | modeldev | model.mdf | 8 MB | Autogrow por 64 MB hasta llenar el disco* |
| Log | modellog | modellog.ldf | 8 MB | Autogrow por 64 MB hasta 2 TB* |
*Nota: Estas configuraciones de crecimiento automático *no* se heredan directamente por los nuevos archivos de base de datos creados a partir de model, aunque se muestren como predeterminadas en la vista sys.databases para bases de datos recién creadas. El tamaño inicial (8 MB) sí se hereda.
Algunas Opciones de Base de Datos Predeterminadas en Model
La base de datos model viene con una serie de opciones configuradas por defecto. La mayoría de ellas pueden ser modificadas en model (y por lo tanto heredadas con el nuevo valor) o cambiadas después de crear la nueva base de datos. Algunas opciones, sin embargo, no pueden ser modificadas en model.
| Opción de Base de Datos | Valor Predeterminado | ¿Modificable en Model? |
|---|---|---|
| ALLOW_SNAPSHOT_ISOLATION | OFF | Sí |
| ANSI_NULL_DEFAULT | OFF | Sí |
| AUTO_CLOSE | OFF | Sí |
| AUTO_CREATE_STATISTICS | ON | Sí |
| AUTO_SHRINK | OFF | Sí |
| AUTO_UPDATE_STATISTICS | ON | Sí |
| RECOVERY | Depende de la edición* | Sí |
| TRUSTWORTHY | OFF | No |
| DB_CHAINING | OFF | No |
*Puedes verificar el modelo de recuperación actual de model consultando la vista sys.databases.
Restricciones en la Base de Datos Model
Debido a su papel crítico como base de datos del sistema y plantilla, hay ciertas operaciones que no están permitidas en la base de datos model. Intentar realizar estas acciones resultará en un error:
- Agregar archivos o filegroups.
- Cambiar la collation. Siempre usa la collation de la instancia del servidor.
- Cambiar el propietario de la base de datos. model siempre es propiedad de
sa. - Eliminar la base de datos.
- Eliminar el usuario
guestde la base de datos. - Habilitar la captura de datos cambiados (Change Data Capture).
- Participar en un espejo de base de datos (Database Mirroring).
- Eliminar el filegroup primario, el archivo de datos primario o el archivo de log.
- Renombrar la base de datos o el filegroup primario.
- Establecer la base de datos en estado OFFLINE.
- Establecer el filegroup primario en READ_ONLY.
- Crear procedimientos, vistas o triggers utilizando la opción
WITH ENCRYPTION. Los objetos cifrados creados en model solo pueden usarse dentro de la propia base de datos model, ya que la clave de cifrado está ligada a la base de datos donde se crea el objeto.
Estas restricciones aseguran la integridad y disponibilidad de model para cumplir su función principal como plantilla y fuente para tempdb.
Preguntas Frecuentes sobre la Base de Datos Model
Aquí respondemos algunas preguntas comunes sobre la base de datos model:
¿Puedo eliminar la base de datos model?
No, no puedes eliminar la base de datos model. Es una base de datos del sistema esencial para la creación de nuevas bases de datos, incluida tempdb, que se recrea cada vez que se inicia SQL Server. Eliminar model haría que SQL Server no pudiera iniciar correctamente.
¿Qué sucede si realizo cambios en la base de datos model?
Cualquier cambio que realices en la base de datos model (como agregar objetos o modificar opciones de base de datos que son modificables) se heredará por todas las bases de datos de usuario que se creen *después* de haber realizado esos cambios. Los cambios no afectarán a las bases de datos existentes.
¿Puedo cambiar el propietario de la base de datos model?
No, la base de datos model siempre es propiedad del inicio de sesión del sistema sa y no puedes cambiar su propietario.
¿Las rutas de archivo y la configuración de crecimiento automático de model se heredan por las nuevas bases de datos?
No, las rutas físicas de los archivos y la configuración detallada del crecimiento automático (como crecer por un porcentaje específico o un tamaño máximo) no se heredan. La única propiedad de archivo que se hereda es el tamaño inicial de los archivos de datos y de log.
¿Por qué es tan importante la base de datos model para tempdb?
Tempdb es una base de datos temporal que se destruye y se recrea cada vez que se reinicia la instancia de SQL Server. Model es la plantilla que SQL Server utiliza para realizar esta recreación. Sin model, SQL Server no podría generar tempdb al inicio, lo que impediría que la instancia se iniciara correctamente.
Conclusión
La base de datos model es un componente discreto pero fundamental de SQL Server. Comprender su función como plantilla, qué propiedades y objetos hereda a las nuevas bases de datos, y las restricciones que tiene, es crucial para cualquier administrador de bases de datos SQL Server. Modificar model puede ser una estrategia eficiente para estandarizar la configuración inicial de tus bases de datos, pero siempre debe hacerse con precaución y respaldando la base de datos del sistema modificada.
Si quieres conocer otros artículos parecidos a La Base de Datos Model: Plantilla en SQL Server puedes visitar la categoría Bases de datos.

Aprende mas sobre MySQL