CONTENIDO
Definición
Microsoft SQL Server Definición Caracteristicas Microsoft SQL
Server es un Sistema Gestor de Bases de datos relacionales (SGBD) que además
ahora en sus versiones más actuales cuenta con diferentes tipos de herramientas
incorporadas en el programa, está basado en el lenguaje Transact-SQL y es capaz
de poner grandes cantidades de información a muchos usuarios simultáneamente y
de manera muy rápida.
Almacena datos de documentos estructurados, semiestructurados
o no estructurados como imágenes, música y archivos directamente dentro de la
base de datos.
Características
·
Soporte
de transacciones.
·
Escalabilidad,
estabilidad y seguridad.
·
Soporta procedimientos almacenados.
·
Incluye
también un potente entorno gráfico de administración, que permite el uso de
comandos DDL y DML gráficamente.
·
Permite
trabajar en modo cliente-servidor, donde la información y datos se alojan en el
servidor y los terminales o clientes de la red sólo acceden a la información.
·
Además
permite administrar información de otros servidores de datos.
Base de
datos del sistema (master, model, tempdb, etc)
MASTER, MSDB, MODEL, TEMPDB, DISTRIBUTION y MSSQLSYSTEMRESOURCE. ¿Qué función tiene cada una de las bases de datos
del sistema? ¿Para qué sirve MASTER? ¿Para qué sirve TEMPDB? ¿Para qué sirve
MODEL? ¿Para qué sirve MSSQLSYSTEMRESOURCE? Este capítulo explica cuál es la
función de cada una de las base de datos del sistema, algo de vital
importancia para conocer SQL Server, su funcionamiento, consideraciones cara
al diseño de planes de contingencia (backup y restores) y optimización de rendimiento
(tunning) de base de datos, etc.
|
SQL
Server incluye varias bases de datos del sistema (MASTER, MSDB, MODEL, TEMPDB,
DISTRIBUTION, MSSQLSYSTEMRESOURCE), cada con unas finalidades específicas, que
a continuación se indican:
- MASTER. ¿Para que sirve MASTER? Almacena información
de configuración de la instancia de SQL Server, como
puede ser la definición de los inicios de sesión (Logins), de las bases de
datos, de los errores del sistema, etc. Hay que tener en cuenta, que no
toda la configuración de la instancia se almacena en MASTER, pues por
ejemplo, el modo de autenticación (Windows o Mixto) se almacena en el
registro.
También contiene los procedimientos almacenados extendidos, y muchos otros procedimientos almacenados del sistema sólo disponibles en MASTER. - MSDB. ¿Para que sirve MSDB? Principalmente tiene
la función de dar soporte al Agente de SQL Server, de tal modo
que almacena la definición y planificación de JOBs, Planes de
Mantenimiento, etc. (incluyendo su historial de ejecución), así como
almacena la definición de otros objetos como Operadores, Alertas, etc.
Esto implica, que el Agente de SQL Server, que cómo sabemos es un servicio
de Windows, se conectará a esta base de datos, y por ello será necesario
parar el Agente de SQL Server si deseamos hacer un RESTORE de la misma,
pues necesitaremos exclusividad.
Sin embargo, MSDB también se utiliza cuando el Agente de SQL Server no está presente, como es el caso de SQL Express (que no incluye éste servicio) o en los casos en que no se utiliza (ej: el Agente de SQL Server está parado). Por poner ejemplos, siempre que se realiza una copia de seguridad (BACKUP DATABASE o BACKUP LOG) o una restauración (RESTORE DATABASE o RESTORE LOG), se almacena en MSDB (tablas backupfile, backupfilegroup, backupmediafamily, backupmediaset, backupset, restorefile, restorefilegroup, restorehistory).
Por último, también permite servir de ubicación de almacenamiento de paquetes DTS (SQL Server 2000) y DTSX (SQL Server 2005 - SSIS). - MODEL. ¿Para que sirve MODEL? Esta base de datos
sirve de modelo. Siempre que se crea una nueva base de datos (CREATE
DATABASE), se realiza una copia de la base de datos MODEL, heredando de
ésta su configuración y contenido, salvo que se especifique lo contrario.
Por ejemplo, es posible establecer el Modo de Recuperación o Modo de Registro de MODEL en SIMPLE (o
sencillo), con el fin de evitar que al crear una base de datos por defecto
se utilice el Modo de Recuperación FULL (completo).
- TEMPDB. ¿Para qué sirve TEMPDB? Almacena tanto
los objetos temporales (tablas temporales, procedimientos
almacenados temporales, etc.), como los resultados intermedios que
pueda necesitar crear el motor de base de datos, por ejemplo durante
la ejecución de consultas que utilizan las cláusulas GROUP BY, ORDER BY,
DISTINCT, etc.
Además, TEMPDB se crea de nuevo siempre que se inicia la instancia SQL Server, tomando su tamaño por defecto. Dado que según necesite más espacio, TEMPDB crecerá hasta el tamaño que necesite, y dado que el crecimiento de un fichero implica esperas debidas a la entrada/salida, es muy importante en entornos críticos dimensionar correctamente TEMPDB para que se cree con un tamaño apropiado, y evitar dichas esperas de entrada/salida en tiempo de ejecución, justo cuando estamos ofreciendo servicio a los usuarios. Evidentemente, estamos desplazando dichas esperas al momento de inicio de la instancia, pero también conseguimos una ventaja adicional al crear de una vez TEMPDB: limitamos la fragmentación (también muy importante en entornos críticos).
A partir de SQL Server 2005, también se utiliza al habilitar el modo de aislamiento SNAPSHOT, así como al crear o reconstruir índices con la opción SORT_IN_TEMPDB. - DISTRIBUTION. ¿Para qué sirve DISTRIBUTION? No existe por
defecto. Se crea al habilitar una instancia de SQL Server como
Distribuidor en un entorno de Replicación. Durante el proceso de
configuración del Distribuidor, se puede elegir el nombre de ésta base de
datos, por lo que no resulta estrictamente necesario que se llame
DISTRIBUTION.
Almacena información como la definición de las Publicaciones, la definición de los Agentes de Instantánea, etc. - MSSQLSYSTEMRESOURCE. ¿Para que sirve MSSQLSYSTEMRESOURCE? Esta
base de datos es nueva en SQL Server 2005. Aparentemente
está oculta (no podremos verla desde SQL Server
Management Studio). Es de sólo lectura y no contiene datos, sino por el
contrario, contiene el código de todos los objetos del sistema de
SQL Server 2005. No es accesible directamente, puesto que es necesario
establecer el modo de usuario único (single_user) para poder acceder a
esta base de datos (USE MSSQLSYSTEMRESOURCE). En cualquier caso, jamás se
debe acceder a esta base de datos.
Las bases
de datos de SQL Server utilizan tres tipos de archivos:
- Archivos de datos principales
El archivo de datos principal es el punto de
partida de la base de datos y apunta a los otros archivos de la base de datos.
Cada base de datos tiene un archivo de datos principal. La extensión
recomendada para los nombres de archivos de datos principales es .mdf.
- Archivos de datos secundarios
Los archivos de datos secundarios son todos los
archivos de datos menos el archivo de datos principal. Puede que algunas bases
de datos no tengan archivos de datos secundarios, mientras que otras pueden
tener varios archivos de datos secundarios. La extensión de nombre de archivo
recomendada para los archivos de datos secundarios es .ndf.
- Archivos de registro
Los archivos de registro almacenan toda la
información de registro que se utiliza para recuperar la base de datos. Como
mínimo, tiene que haber un archivo de registro por cada base de datos, aunque
puede haber varios. La extensión de nombre de archivo recomendada para los
archivos de registro es .ldf.
SQL
Server no exige las extensiones de nombre de archivo .mdf, .ndf y .ldf, pero
estas extensiones ayudan a identificar las distintas clases de archivos y su
uso.
En SQL
Server, las ubicaciones de todos los archivos de una base de datos se guardan
tanto en el archivo principal de la base de datos como en la base de datos maestra. SQL
Server Database Engine (Motor de base de datos de SQL Server) utiliza casi
siempre la información de ubicación del archivo de la base de datos maestra.
Sin embargo, Motor de base de datos utiliza la información de ubicación del
archivo principal para inicializar las entradas de ubicación de archivos de la
base de datos maestra en las siguientes situaciones:
- Al adjuntar una base de datos mediante la
instrucción CREATE DATABASE con la opción FOR ATTACH o la opción FOR
ATTACH_REBUILD_LOG.
- Al actualizar desde SQL Server versión 2000 o
versión 7.0
- Al restaurar la base de datos maestra.
NOMBRES DE ARCHIVO LÓGICO Y
FÍSICO
Los
archivos de SQL Server tienen dos nombres:
logical_file_name
logical_file_name es el nombre que se utiliza para hacer
referencia al archivo en todas las instrucciones Transact-SQL. El nombre de
archivo lógico tiene que cumplir las reglas de los identificadores de SQL
Server y tiene que ser único entre los nombres de archivos lógicos de la base
de datos.
os_file_name
os_file_name es el nombre del archivo físico que incluye
la ruta de acceso al directorio. Debe seguir las reglas para nombres de
archivos del sistema operativo.
Los
archivos de datos y de registro de SQL Server se pueden colocar en sistemas de
archivos FAT o NTFS. Se recomienda utilizar el sistema de archivos NTFS por las
características de seguridad que ofrece. No se pueden colocar grupos de
archivos de datos de lectura/escritura, y archivos de registro, en un sistema
de archivos NTFS comprimido. Solo las bases de datos de solo lectura y los
grupos de archivos secundarios de solo lectura se pueden colocar en un sistema
de archivos NTFS comprimido. Para obtener más información, vea Grupos de archivos de sólo lectura y compresión.
Cuando se
ejecutan varias instancias de SQL Server en un único equipo, cada instancia
recibe un directorio predeterminado diferente para albergar los archivos de las
bases de datos creadas en la instancia. Para obtener más información, vea Ubicaciones de archivos para las instancias predeterminadas y con nombre
de SQL Server.
Páginas de archivo de datos
Las
páginas de un archivo de datos de SQL Server están numeradas secuencialmente,
comenzando por cero (0) para la primera página del archivo. Cada archivo de una
base de datos tiene un número de identificador único. Para identificar de forma
única una página de una base de datos, se requiere el identificador del archivo
y el número de la página. El siguiente ejemplo muestra los números de página de
una base de datos que tiene un archivo de datos principal de 4 MB y un archivo
de datos secundario de 1 MB.
La
primera página de cada archivo es una página de encabezado de archivo que
contiene información acerca de los atributos del archivo. Algunas de las otras
páginas del comienzo del archivo también contienen información de sistema, como
mapas de asignación. Una de las páginas de sistema almacenadas en el archivo de
datos principal y en el archivo de registro principal es una página de arranque
de la base de datos que contiene información acerca de los atributos de la base
de datos. Para obtener más información acerca de las páginas y los tipos de
páginas, vea Descripción de páginas y extensiones.
Tamaño de
archivo
Los
archivos de SQL Server pueden crecer de forma automática a partir del tamaño
especificado inicialmente. Cuando se define un archivo, se puede especificar un
incremento de crecimiento. Cada vez que se llena el archivo, el tamaño aumenta
en la cantidad especificada. Si hay varios archivos en un grupo de archivos, no
crecerán automáticamente hasta que todos los archivos estén llenos. A
continuación, el crecimiento tiene lugar por turnos.
Cada
archivo también puede tener un tamaño máximo especificado. Si no se especifica
un tamaño máximo, el archivo puede crecer hasta utilizar todo el espacio
disponible en el disco. Esta característica es especialmente útil cuando SQL
Server se utiliza como una base de datos incrustada en una aplicación para la
que el usuario no dispone fácilmente de acceso a un administrador del sistema.
El usuario puede dejar que los archivos crezcan automáticamente cuando sea
necesario y evitar así las tareas administrativas de supervisar la cantidad de
espacio disponible en la base de datos y asignar más espacio manualmente.
La forma
de archivo que utiliza una instantánea de base de datos para almacenar sus
datos de copia por escritura depende de si la instantánea la ha creado un
usuario o se utiliza internamente:
Los
objetos y archivos de una base de datos se pueden agrupar en grupos de archivos
con fines de asignación y administración. Hay dos tipos de grupos de archivos:
Principal
El grupo
de archivos principal contiene el archivo de datos principal y los demás
archivos asignados específicamente a otro grupo de archivos. Todas las páginas
de las tablas del sistema están asignadas al grupo de archivos principal.
Definidos
por el usuario
Los
grupos de archivos definidos por el usuario son los grupos de archivos
especificados mediante la palabra clave FILEGROUP en la instrucción CREATE
DATABASE o ALTER DATABASE.
Los
archivos de registro nunca forman parte de un grupo de archivos. El espacio del
registro se administra de forma independiente del espacio de datos.
Ningún
archivo puede pertenecer a más de un grupo de archivos. Las tablas, los índices
y los datos de objetos grandes se pueden asociar a un grupo de archivos
específico. En este caso, todas sus páginas se asignarán a dicho grupo de archivos
o se pueden crear particiones en las tablas e índices. Los datos de las tablas
e índices con particiones se dividen en unidades y cada una de ellas se puede
colocar en un grupo de archivos independiente de una base de datos. Para
obtener más información acerca de las tablas e índices con particiones,
vea Tablas e índices con particiones.
Un grupo
de archivos de cada base de datos se designa como grupo de archivos predeterminado.
Cuando se crea una tabla o un índice sin especificar un grupo de archivos, se
supone que todas las páginas se asignarán a partir del grupo de archivos
predeterminado. Solo un grupo de archivos puede ser el predeterminado en un
momento dado. Los miembros del rol fijo de base de datos db_owner pueden
cambiar el grupo de archivos predeterminado de un grupo a otro. Si no se
especifica ningún grupo de archivos predeterminado, se considera como tal al
grupo de archivos principal.
Ejemplo
de archivos y grupos de archivos
En el
siguiente ejemplo se crea una base de datos con una contraseña de SQL Server.
La base de datos tiene un archivo de datos principal, un grupo de archivos
definido por el usuario y el archivo de registro. El archivo de datos principal
está en el grupo de archivos principal y el grupo de archivos definido por el
usuario tiene dos archivos de datos secundarios. Una instrucción ALTER DATABASE
hace que el grupo de archivos definido por el usuario sea el grupo
predeterminado. A continuación, se crea una tabla que especifica el grupo de
archivos definido por el usuario.
Comando
para creación, modificación y eliminación
CREATE DATABASE
Como
muchas instrucciones de Transact-SQL, la instrucción CREATE DATABASE tiene un
parámetro requerido: el nombre de la base de datos. CREATE DATABASE también
tiene muchos parámetros opcionales, como la ubicación de disco donde se
desean colocar los archivos de la base de datos. Si se ejecuta CREATE
DATABASE sin los parámetros opcionales, SQL Server usa los valores
predeterminados para muchos de estos parámetros. Este tutorial usa algunos de
los parámetros de sintaxis opcionales.
Para crear una base de datos
1.
En una ventana del Editor de consultas, escriba el
código siguiente, pero no lo ejecute:
2. CREATE DATABASE TestData 3. GO
4.
Use el puntero para seleccionar las palabras
CREATE DATABASE y,
a continuación, presione F1. Debe abrirse el
tema CREATE DATABASE de los Libros en pantalla de SQL Server. Puede usar esta
técnica para encontrar la sintaxis completa de CREATE DATABASE y de otras
instrucciones que se usan en este tutorial.
5.
En el Editor de consultas, presione F5 para
ejecutar la instrucción y crear una base de datos con el nombre
TestData .
La palabra clave GO separa las instrucciones cuando se
envían varias instrucciones en un solo lote. GO es opcional cuando el lote
solo contiene una instrucción.
ALTER DATABASE
Modifica
una base de datos, o los archivos y grupos de archivos asociados con la base
de datos. Añade o elimina los
archivos y grupos de archivos a partir de una base de datos, cambia los
atributos de una base de datos o sus archivos y grupos de archivos, cambian
la intercalación de base de datos, y establece las opciones de base de datos. Instantáneas de base de datos no se
pueden modificar. Para
modificar las opciones de base de datos asociados con la replicación.
ALTER DATABASE {nombre_basedatos | ACTUAL}
DROP
DATABASE database_name [;]
Drop
database
Quita una o varias
bases de datos de usuario o instantáneas de base de datos de una instancia de
SQL Server.
DROP
DATABASE database_name [;]
EJEMPLO
USE
master;
GO
CREATE
DATABASE MyDB
ON
PRIMARY
( NAME='MyDB_Primary',
FILENAME=
'c:\Program Files\Microsoft SQL
Server\MSSQL10_50.MSSQLSERVER\MSSQL\data\MyDB_Prm.mdf',
SIZE=4MB,
MAXSIZE=10MB,
FILEGROWTH=1MB),
FILEGROUP
MyDB_FG1
( NAME = 'MyDB_FG1_Dat1',
FILENAME =
'c:\Program Files\Microsoft SQL
Server\MSSQL10_50.MSSQLSERVER\MSSQL\data\MyDB_FG1_1.ndf',
SIZE = 1MB,
MAXSIZE=10MB,
FILEGROWTH=1MB),
( NAME = 'MyDB_FG1_Dat2',
FILENAME =
'c:\Program Files\Microsoft SQL
Server\MSSQL10_50.MSSQLSERVER\MSSQL\data\MyDB_FG1_2.ndf',
SIZE = 1MB,
MAXSIZE=10MB,
FILEGROWTH=1MB)
LOG ON
( NAME='MyDB_log',
FILENAME =
'c:\Program Files\Microsoft SQL
Server\MSSQL10_50.MSSQLSERVER\MSSQL\data\MyDB.ldf',
SIZE=1MB,
MAXSIZE=10MB,
FILEGROWTH=1MB);
GO
ALTER
DATABASE MyDB
MODIFY FILEGROUP MyDB_FG1 DEFAULT;
GO
USE
MyDB;
CREATE
TABLE MyTable
( cola int PRIMARY KEY,
colb char(8) )
ON MyDB_FG1;
GO
La
siguiente ilustración resume los resultados del ejemplo anterior.
|
RESUMEN
Un sistema de gestión de base de datos relacionales (rdbms)
de Microsoft que está diseñado para el entorno empresarial. SQL server se
ejecuta en T-SQL (transac –sql), un conjunto de extensiones de programación de
sybase y microsoft que añaden varias características a SQL estándar, incluyendo
control de transacciones, excepciones y manejo de errores, procesamiento fila, así
como variables declaradas.
SUMMARY
A management system relational database (RDBMS)
Microsoft that is designed for the business environment. SQL Server runs in T-
SQL ( transac -sql ) , a set of programming extensions Sybase and Microsoft
that add several features to standard SQL , including transaction control ,
exception and error handling , row processing , and declared variables .
RECOMENDACIONES
Para la creación de la base de datos se debe de conocer lo
que necesita el negocio o la empresa que lo requiera, a partir de eso
construirla, de igual manera para modificarla saber que debemos de mejorar o
cambiar y en el caso eliminarlo saber el porqué.
CONCLUSIONES
En este capítulo explicaremos cuál es la función de cada una
de las base de datos del sistema, algo de vital importancia para conocer SQL
Server, su funcionamiento, consideraciones para el diseño de planes de
contingencia (backup y restores) y optimización de rendimiento (tunning) de
base de datos, los Tipos de Base de datos del sistema, los comandos para crear,
modificar y eliminar una base de datos, etc.
GLOSARIO
Backup: son copias de seguridad es el procedimiento utilizado para hacer
copias de información. Estas copias de seguridad se deben realizar sobre los
datos más importantes con el propósito que estén disponibles en caso de fallas
de nuestros sistemas
Logins: login o logon (en español
ingresar o entrar) es el proceso mediante el cual se controla el acceso
individual a un sistema
Mb: Un megabyte es 1024 kilobytes, y un gigabyte es 1024
megabytes. El siguiente nivel sería terabytes, o gigabytes 1024. Sin embargo,
cuando se habla de la velocidad de una conexión a Internet, es casi siempre va
a ser contemplados en bits, si se trata de kilobits (Kb), megabits (Mb),
o gigabits (Gb).
BIBLIOGRAFÍA
Y FUENTES DE INFORMACIÓN
LINK DE DESCARGA SLIDESHARE: