domingo, 19 de junio de 2016

BASE DE DATOS EN MICROSOFT SQL SERVER


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:
  • Una instantánea de base de datos que crea un usuario almacena sus datos en uno o más archivos dispersos. La tecnología de archivos dispersos es una característica del sistema de archivos NTFS. Al principio, un archivo disperso no incluye datos de usuario y no se le asigna espacio en disco. Para obtener información general sobre el uso de los archivos dispersos en instantáneas de bases de datos y el crecimiento de éstas, vea Funcionamiento de las instantáneas de la base de datos y Descripción del tamaño de los archivos dispersos en instantáneas de bases de datos.
  • Las instantáneas de bases de datos las utilizan internamente algunos comandos DBCC. Entre estos comandos se incluyen: DBCC CHECKDB, DBCC CHECKTABLE, DBCC CHECKALLOC y DBCC CHECKFILEGROUP. Una instantánea de base de datos interna utiliza flujos de datos alternativos dispersos de los archivos de base de datos originales. Como los archivos dispersos, los flujos de datos alternativos son una característica del sistema de archivos NTFS. El uso de los flujos de datos alternativos dispersos permite que varias asignaciones de datos se asocien a un único archivo o carpeta sin afectar a las estadísticas de tamaño o volumen.
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:  
                                                                         Base de Datos en Microsoft SQL Server