Guía N°1 SQL Server Management Studio
Guía N°1 SQL Server Management Studio
Guía N°1 SQL Server Management Studio
Construir tablas que hacen parte del diseño del diagrama relacional en el motor de base de
datos empleando las cuatro formas de normalización
SQL SERVER
GUÍA DE LABORATORIO N° 01
La arquitectura interna de las bases de datos en SQL Server está compuesta por 2 tipos de
estructura, la estructura lógica y la estructura física. Es muy importante conocer cómo es que
estas estructuras están compuestas y cuál es la relación que tienen los objetos de base de datos
con cada una de estas estructuras.
Estructura Lógica:
Desde el punto de vista lógico, la base de datos debe tener al menos 1 “FileGroup” el cual
contiene a toda la metadata de la misma base de datos, es decir tablas y vistas de sistema, a este
“FileGroup” inicial se le conoce como “Primario” y está presente en todas las bases de datos.
Todos los objetos de usuario que contengan data, ya sean tablas o índices, deben estar ligados a
un “FileGroup”, esto se puede definir al momento de ejecutar la sentencia DDL de creación del
objeto, si no se indica a que “FileGroup” estará ligado ese objeto, este pertenecerá al “FileGroup”
por defecto definido en la base de datos. La base de datos solo puede tener definido 1 solo
default “FileGroup”.
Las bases de datos pueden tener hasta 32767 “FileGroups” definidos, según los límites
establecidos para la última versión de SQL Server, la cual es SQL Server 2008 R2. Uno de los
propósitos de los “FileGroups” es poder distribuir la data a través de varios discos duros físicos,
de esta manera se puede obtener mayor rendimiento en las operaciones de I/O debido a que más
de un disco trabajara al mismo tiempo. Otro de los propósitos es poder esconder la ubicación
física real de la información a los programadores, ya que para ellos la tabla “X” pertenece al
PREPARADO POR: INSTRUCTOR MIGUEL OLIVARES
SQL SERVER
TÉCNICO EN PROGRAMACIÓN DE SOFTWARE
Construir tablas que hacen parte del diseño del diagrama relacional en el motor de base de
datos empleando las cuatro formas de normalización
“FileGroup” “A”, pero no saben en que data files físicamente se encuentra la información de la
tabla “X”.
Los “FileGroups” pueden contener 1 o más “Datafiles”, y cada uno de estos datafiles se pude
encontrar en un discos diferentes, lo cual también agilizara las consultas y los ingresos de
información a las tablas que se encuentren asignadas a este “FileGroup”, debido a que SQL Server
distribuirá la información uniformemente a través de todos los “DataFiles” del “FileGroup”.
Estructura Física:
Desde el punto de vista físico, como ya hemos visto, tenemos los “DataFiles” que son en realidad
los archivos de datos, es decir donde se guarda toda la información de la base de datos. Un
“DataFile” solo puede pertenecer a 1 “FileGroup”.
Internamente los “DataFiles” están divididos en “Extends” y estos a su vez en “Pages”. Las “Pages”
son la unidad minima de almacenamiento dentro de la base de datos. Un “Page” tiene 8 Kb de
tamaño en espacio de disco. Un “Extend” tiene 8 “Pages” contiguas que lo conforman, es decir, un
“Extend” tiene como tamaño 64 Kb de espacio en disco.
En un “Page” solo puede haber información de 1 sola tabla, es decir el espacio de un “Page” no es
compartido entre tablas o índices. En el caso de los “Extends”, estos pueden ser de dos tipos:
“Mixed”: Los cuales son compartidos hasta por 8 objetos, uno por cada “Page”.
“Uniform”: Los cuales solo pertenecen a un solo objeto, es decir que todos los “Pages”
pertenecen a un solo objeto.
Normalmente cuando se crea una nueva tabla esta es asignada a un “Extend” de tipo “Mixed”,
hasta alcanzar la utilización de hasta 8 “Pages”, a partir de ese momento se asignan “Extends” de
tipo “Uniform” para optimizar el uso del espacio en la tabla.
Los “DataFiles” normalmente tienen 2 extensiones de archivo, las cuales son estandar mas no
obligarias, la extencion “mdf” que se utiliza para el primer “Datafile” perteneciente al “FileGroup”
primario, y la extension “ndf” que se utiliza para los demas datafiles que se agregan
posteriormente a los demas “FileGroups” de la base de datos.
El primer paso para implementar físicamente una base de datos es crear los objetos de la base de
datos. Usando la información que obtuvo cuando se determinaron los requerimientos de diseño,
y los detalles que identificó en el diseño lógico de la base de datos, Ud. puede crear los objetos
de la base de datos y definir sus características. Podrá modificar estas características después
que haya creado los objetos de la base de datos.
Cuando cree una base de datos, deberá primero definir su nombre, su tamaño, y los archivos y
grupos de archivos usados para soportarla. Deberá considerar varios factores antes de crear la
base de datos:
· Por defecto solo tienen permiso para crear bases de datos los miembros de los roles
“sysadmin” y “dbcreator”, Ud. podría no tener asignados ninguno de dichos roles
pero aún contar con la autorización para crear bases de datos en caso que el
administrador se los hubiera otorgado.
· El usuario que crea una base de datos se convierte en el dueño de la base de datos
· Un máximo de 32.767 bases de datos pueden ser creadas sobre un servidor.
· El nombre de la base de datos debe seguir las reglas de los identificadores.
Como ya indicamos, se usan tres tipos de archivos para almacenar una base de datos: archivos
primarios, que contienen la información de arranque para la base de datos; archivos secundarios,
que hospedan a todos los datos que no caben en el archivo primario; y registro de transacciones,
que contienen la información de la transacciones, usadas para recuperar la base de datos. Toda
base de datos tiene al menos dos archivos: un archivo primario y un registro de transacciones.
Cuando se crea una base de datos, los archivos se llenan de ceros para sobrescribir cualquier
otro dato que archivos que han sido borrados puedan haber dejado en el disco. Aunque esto
significa que los archivos pueden tardar en ser creados, esta acción evita al sistema operativo
tener que llenar con cero los archivos al momento de la efectiva grabación de los datos durante la
normal operación de la base de datos, mejorando la performance operacional de cada día.
Cuando Ud. crea una base de datos, deberá especificar el tamaño máximo que un archivo tiene
autorizado a alcanzar. Esto previene que el archivo crezca, cuando los datos son ingresados,
hasta que el espacio en disco se termine.
· SQLServer usa una copia de la base de datos “Model” para inicializar la nueva base de
datos y sus metadatos.
· SQLServer luego llena el resto de la base de datos con páginas vacías (excepto aquellas
páginas que tienen grabados datos internos como el espacio usado)
Cualquier objeto definido por el usuario en la base de datos “Model” es copiado a todas las bases
de datos que sean creadas. Se pueden agregar objetos a la base de datos “Model”, tales como
tablas, vistas, procedimientos almacenados, tipos de datos, etc. que serán incluidos en las nuevas
bases de datos. Además, cada nueva base de datos hereda la configuración de las opciones de la
base de datos “Model”.
Se puede usar el comando CREATE DATABASE para crear una base de datos y los archivos
almacenados en una base de datos. El comando CREATE DATABASE le permitirá especificar una
serie de parámetros que definirán las características de la base de datos.
Por ejemplo, se puede especificar el máximo tamaño que puede alcanzar un archivo o el
incremento que puede experimentar dicho archivo. Si sólo utiliza CREATE
DATABASE nombre_de_la_base_de_datos la base de datos es creada del mismo tamaño de la base
de datos “Model”.
El comando puede ser ejecutado desde el SQL Query Analizer. El siguiente ejemplo crea una base
de datos llamadas “Productos” y especifica que se usará un solo archivo.
PRIMARY
Este parámetro especifica los archivos del grupo de archivos principal. El grupo de archivos principal
contiene todas las tablas del sistema de la base de datos. También contiene todos los objetos no
asignados a grupos de archivos del usuario. Todas las bases de datos tienen un archivo de datos
principal. El archivo de datos principal es el punto de inicio de la base de datos y señala a los demás
archivos de la base de datos. La extensión de nombre de archivo recomendada para los archivos de
datos principales es .mdf. Si no se especifica la palabra clave PRIMARY, el primer archivo enumerado en
la instrucción es el archivo principal.
FILENAME
Este parámetro especifica el nombre del archivo del sistema operativo y la ruta de acceso al archi Este
parámetro especifica el tamaño de los archivos de datos o de registro. Puede especificar los tamaños
en megabytes (MB), que es el valor predeterminado, o en kilobytes (KB). El tamaño mínimo es de 512
KB, tanto para los archivos de datos como para los archivos de registro. El tamaño especificado para el
archivo de datos principal debe ser, al menos, como el tamaño del archivo principal de la base de datos
model. Cuando se agrega un archivo de datos o un archivo de registro, el valor predeterminado es 1
MB. vo. La ruta acceso de archivoSO debe especificar una carpeta del servidor en el que está instalado
SQL Server.
SIZE
Este parámetro especifica el tamaño de los archivos de datos o de registro. Puede especificar los
tamaños en megabytes (MB), que es el valor predeterminado, o en kilobytes (KB). El tamaño mínimo es
de 512 KB, tanto para los archivos de datos como para los archivos de registro. El tamaño especificado
para el archivo de datos principal debe ser, al menos, como el tamaño del archivo principal de la base
de datos model. Cuando se agrega un archivo de datos o un archivo de registro, el valor
predeterminado es 1 MB.
MAXSIZE
Este parámetro especifica el tamaño máximo hasta el que puede crecer el archivo. Puede especificar el
tamaño en megabytes (valor predeterminado) o en kilobytes. Si no se especifica el tamaño, el archivo
crece hasta que el disco esté lleno.
FILEGROWTH
Son los formados por archivos NDF, donde como hemos visto antes, se almacenan copias de
seguridad, vistas etc. Para crear un grupo de archivo secundario seguiremos los siguientes pasos:
1. Modificamos la base de datos para añadirle el grupo de archivos secundario, para ello usaremos
Add FileGroup
2. Modificamos la base de datos para añadir un archivo NDF físico al grupo de archivos secundario,
para ello usaremos Add File. Sintaxis:
USE EJEMPLO
Exec SP_SPACEUSED
Mediante la opción Modify File de Alter Database, podemos modificar un archivo secundario. Sintaxis:
Con Add File, podemos añadir un nuevo archivo NDF al archivo secundario de la base de datos elegido.
Sintaxis:
Opciones:
EmptyFile: Indica que el tamaño del archivo reducido, pase a otros archivos secundarios del
mismo grupo.
TruncateOnly: Indica que el tamaño reducido de la base de datos pasa al sistema operativo. Si
no ponemos ninguna opción esta es la opción por defecto
NoTruncate: Indica que el tamaño reducido de la base de datos no pasa al sistema operativo.
ShrinkDataBase
Ejemplo:
1. Crear una base de datos de Clientes con un tamaño de 40 MB y con crecimiento de un 10%.
4. Mostrar si la base de datos está junto a las demás y el espacio usado de mi nueva base de
datos.
5. Crear un grupo de archivos en mi base de datos clientes que se llame Bajas. Añadir dos archivos
a ese grupo de archivos llamados RelacionAnual y que ocupen 5MB.
7. Eliminar uno de los archivos del grupo Bajas y modificar el otro para darle un tamaño de 10 MB.
11. Eliminar el grupo de Bajas de la base de datos junto con sus archivos. Eliminar también la base
de datos.