Está en la página 1de 12

SYSTEM DATABASES

MASTER DATABASE

Esta base guarda toda la información a nivel de sistema para un sistema SQL Server. Incluidos
metadatos como cuentas, endpoints, servidores enlazados y ajustes d configuración de
sistema. En SQL Server, system objects no se almacenan en el MASTER DATABASE, sino en el
RESOURCE DATABASE. MASTER registra la existencia de las otros bases de datos y la ubicación
de esos archivos de bases de datos y registra la información de inicialización para SQL Server.

Restricciones

Lo siguiente el MASTER no lo puede hacer:

 Agregar filas o grupos de archivos (contiene el principal archivo de data y cualquier


archivo secundario que no están en otro grupo)
 Solo se puede realizar una copia de seguridad completa de la base de datos en la base
de datos maestra.
 Cambiar el propietario de la base de datos.
 Dejar caer la base de datos.
 Eliminar el grupo de archivos primario, el archivo de datos primario o el archivo de
registro.
 Cambiar el nombre de la base de datos o el grupo de archivos primario.
 Establecer la base de datos en OFFLINE.
 Establecer la base de datos o el grupo de archivos primario en READ_ONLY.

Recomendaciones

 Siempre tener una copia de seguridad del MASTER DATABASE disponible


 Hacer una copia de seguridad del MASTER después de:
o crear, modificar, o eliminar cualquier base de datos
o Cambiar de servidor o eliminar cualquier base de datos
o Modificar o agregar cuentas
 No crear objetos de usuario en MASTER
 No activar la opción TRUSTWORTHY

MODEL DATABASE

Es usado como plantilla para todas las bases de datos creadas en SQL Server. Todo el
contenido del MODEL DATABASE son copiado a una nueva base de datos. Algunos ajustes de
MODEL son también utilizados para crear un nuevo TEMPDB durante el arranque, por ello el
MODEL DATABASE siempre debe existir en un SQL Server System

Usage

Cuando el comando CREATE DATABASE es ejecutado, la primera parte de la base de datos es


creada copiándose el contenido del MODEL DATABASE.
Cuando se modifica el MODEL DATABASE, todas las bases de datos creadas heredaran esos
cambios.

Restricciones

Lo siguiente el MODEL no lo puede hacer:

 Agregar archivos o grupos de archivos


 Cambiar el propietario
 Eliminar la base de datos
 Eliminar al guest de la base de datos
 Crear procedimientos, vistas o triggers usando el WITH ENCRYPTION. La llave de
encriptación esta ligada a la base de datos en el que el objeto es creado. Objetos
encriptados en el MODEL DATABASE solo se pueden usar en MODEL.

TEMPDB DATABASE

Es un recurso global que contiene:

 Objetos de usuarios temporales que son creados explícitamente. Incluyen tablas


temporales e índices, procedimientos temporales almacenados, variables de tablas,
tablas devueltas en funciones con valores de tabla y cursores.
 Objetos internos que el motor de la base de datos crea. Incluye:
o Tablas de trabajo que almacenan resultados intermedios para carretes,
cursores, tipos y almacenamiento temporal de objetos grandes
o Filas de trabajo para operaciones hash join
o Resultados de ordenación intermedia para operaciones como crear o
reconstruir índices
 Version stores, que son colecciones de paginas de datos que contienen filas de
información que admiten características para el control de versiones de filas
o Versiones de fila generadas por transacciones de modificación de datos en una
base de datos que usa LECTURA CONFIRMADA a través de transacciones de
aislamiento de versiones de fila o aislamiento de instantáneas.

Operaciones con TEMPDB se registran mínimamente para que esas transacciones regresen.
TEMPDB se vuelve a crear cada vez que se inicia SQL Server para que el sistema siempre se
inicie con una copia limpia de la base de datos. Las tablas temporales y los procedimientos
almacenados se descartan automáticamente al desconectarse y no hay conexiones activas
cuando se apaga el sistema.

TEMPB nunca guarda algo de una sesión de SQL Server a otra. Copia de seguridad y
recuperación no están permitidas.

MSDB DATABASE

La base de datos msdb es utilizada por el Agente SQL Server para programar alertas y trabajos
y por otras características como SQL Server Management Studio, Service Broker y Database
Mail.
Por ejemplo, SQL Server mantiene un historial completo de respaldo y restauración en línea
dentro de las tablas en msdb. Esta información incluye el nombre de la parte que realizó la
copia de seguridad, la hora de la copia de seguridad y los dispositivos o archivos donde se
almacena la copia de seguridad. SQL Server Management Studio usa esta información para
proponer un plan para restaurar una base de datos y aplicar copias de seguridad del registro
de transacciones. Los eventos de respaldo para todas las bases de datos se registran incluso si
se crearon con aplicaciones personalizadas o herramientas de terceros.

De forma predeterminada, msdb usa el modelo de recuperación simple. Si utiliza las tablas del
historial de copia de seguridad y restauración, le recomendamos que utilice el modelo de
recuperación completa para msdb.

Restricciones

Las siguientes operaciones no se pueden realizar en la base de datos msdb:

 Cambio de colación. La intercalación predeterminada es la intercalación del servidor.


 Descartando la base de datos.
 Eliminar al usuario invitado de la base de datos.
 Habilitación de la captura de datos modificados.
 Participar en la creación de reflejo de la base de datos.
 Quitar el grupo de archivos principal, el archivo de datos principal o el archivo de
registro.
 Cambiar el nombre de la base de datos o el grupo de archivos principal.
 Configuración de la base de datos en OFFLINE.
 Establecer el grupo de archivos principal en READ_ONLY.

Recomendaciones

Cuando trabaje con la base de datos msdb, tenga en cuenta las siguientes recomendaciones:

 Tenga siempre disponible una copia de seguridad actualizada de la base de datos


msdb.
 Realice una copia de seguridad de la base de datos msdb lo antes posible después de
las siguientes operaciones:
 Crear, modificar o eliminar trabajos, alertas, proxies o planes de mantenimiento
 Agregar, cambiar o eliminar perfiles de correo de la base de datos
 Adición, modificación o eliminación de políticas de gestión basadas en políticas
 No cree objetos de usuario en msdb. Si lo hace, se debe realizar una copia de
seguridad de msdb con mayor frecuencia.
 Trate la base de datos msdb como altamente confidencial y no otorgue acceso a nadie
sin una necesidad adecuada. Tenga especialmente en cuenta que los trabajos del
Agente SQL Server suelen ser propiedad de miembros del rol de administrador del
sistema y, por lo tanto, asegúrese de que el código que se ejecuta no se pueda alterar.
 Audite cualquier cambio en los objetos en msdb

RESUMEN

System Descripción
database
master Registra toda la información a nivel del sistema para una instancia de
Database SQL Server.
msdb Database El Agente SQL Server lo utiliza para programar alertas y trabajos.

model Se utiliza como plantilla para todas las bases de datos creadas en la
Database instancia de SQL Server. Las modificaciones realizadas en la base de
datos modelo, como el tamaño de la base de datos, la intercalación, el
modelo de recuperación y otras opciones de la base de datos, se aplican
a cualquier base de datos creada posteriormente.
tempdb Es un espacio de trabajo para contener objetos temporales o conjuntos
Database de resultados intermedios.
VISTAS
Una vista es una tabla virtual cuyo contenido se define mediante una consulta. Al igual
que una tabla, una vista consta de un conjunto de columnas y filas de datos con
nombre. A menos que esté indexada, una vista no existe como un conjunto
almacenado de valores de datos en una base de datos. Las filas y columnas de datos
provienen de tablas a las que se hace referencia en la consulta que define la vista y se
producen dinámicamente cuando se hace referencia a la vista.

Una vista actúa como un filtro en las tablas subyacentes a las que se hace referencia en
la vista. La consulta que define la vista puede ser de una o más tablas o de otras vistas
en la base de datos actual o en otras. Las consultas distribuidas también se pueden
usar para definir vistas que usan datos de múltiples fuentes heterogéneas. Esto es útil,
por ejemplo, si desea combinar datos estructurados de manera similar de diferentes
servidores, cada uno de los cuales almacena datos para una región diferente de su
organización.

Las vistas generalmente se usan para enfocar, simplificar y personalizar la percepción


que cada usuario tiene de la base de datos. Las vistas se pueden usar como
mecanismos de seguridad al permitir que los usuarios accedan a los datos a través de
la vista, sin otorgarles permisos para acceder directamente a las tablas base
subyacentes de la vista. Las vistas se pueden usar para proporcionar una interfaz
compatible con versiones anteriores para emular una tabla que solía existir, pero cuyo
esquema ha cambiado. Las vistas también se pueden usar cuando copia datos hacia y
desde SQL Server para mejorar el rendimiento y particionar datos.

Tipos de vistas

 Indexadas
o Una vista indexada es una vista que se ha materializado. Esto significa
que la definición de la vista se ha calculado y los datos resultantes se
han almacenado como una tabla. Una vista se indexa creando un índice
agrupado único en ella. Las vistas indexadas pueden mejorar
drásticamente el rendimiento de algunos tipos de consultas. Las vistas
indexadas funcionan mejor para consultas que agregan muchas filas. No
son adecuados para conjuntos de datos subyacentes que se actualizan
con frecuencia.
 Particionadas
o Una vista particionada une datos particionados horizontalmente de un
conjunto de tablas miembro en uno o más servidores. Esto hace que los
datos aparezcan como si fueran de una tabla. Una vista que une tablas
de miembros en la misma instancia de SQL Server es una vista
particionada local.
 Sistema
o Las vistas del sistema exponen los metadatos del catálogo. Puede usar
vistas del sistema para devolver información sobre la instancia de SQL
Server o los objetos definidos en la instancia. Por ejemplo, puede
consultar la vista de catálogo sys.databases para obtener información
sobre las bases de datos definidas por el usuario disponibles en la
instancia.
STORE PROCEDURE

El procedimiento almacenado de SQL Server es un lote de declaraciones agrupadas


como una unidad lógica y almacenada en la base de datos. El procedimiento
almacenado acepta los parámetros y ejecuta las declaraciones T-SQL en el
procedimiento, devuelve el conjunto de resultados, si lo hay.

 Aceptar parámetros de entrada y devuelva múltiples valores en forma de


parámetros de salida al programa de llamada.
 Contener sentencias de programación que realizan operaciones en la base de
datos. Estos incluyen llamar a otros procedimientos.
 Devolver un valor de estado a un programa de llamada para indicar el éxito o el
fracaso (y el motivo del error).

Beneficios
- Reduce trafico en la red cliente/servidor
o Los comandos de un procedimiento se ejecutan como un único lote de
código. Esto puede reducir significativamente el tráfico de red porque
solo la llamada para ejecutar el procedimiento se envía a través de la
red. Sin el encapsulado cada línea de código individual tendría que
cruzar la red.
- Seguridad robusta
o Varios usuarios y programas cliente pueden realizar operaciones en
objetos de base de datos subyacentes a través de un procedimiento,
incluso si los usuarios y programas no tienen permisos directos sobre
esos objetos subyacentes. El procedimiento controla qué procesos y
actividades se realizan y protege los objetos de base de datos
subyacentes. Esto elimina el requisito de otorgar permisos a nivel de
objeto individual y simplifica las capas de seguridad.
- Reutilización de código
o El código para cualquier operación de base de datos repetitiva es el
candidato perfecto para la encapsulación en procedimientos. Esto
elimina las reescrituras innecesarias del mismo código, disminuye la
inconsistencia del código y permite que cualquier usuario o aplicación
que posea los permisos necesarios acceda y ejecute el código.
- Mantenimiento sencillo
o Cuando las aplicaciones cliente llaman a los procedimientos y
mantienen las operaciones de la base de datos en el nivel de datos, solo
los procedimientos deben actualizarse para cualquier cambio en la base
de datos subyacente. El nivel de la aplicación permanece separado y no
tiene que saber qué sucede con los cambios en los diseños, las
relaciones o los procesos de la base de datos.
- Mejora de rendimiento
o De forma predeterminada, un procedimiento compila la primera vez
que se ejecuta y crea un plan de ejecución que se reutiliza para
ejecuciones posteriores. Dado que el procesador de consultas no tiene
que crear un nuevo plan, normalmente lleva menos tiempo procesar el
procedimiento.
Tipos de procedimientos
- User-defined
o Un procedimiento definido por el usuario se puede crear en una base de
datos definida por el usuario o en todas las bases de datos del sistema
excepto la base de datos de recursos. El procedimiento se puede
desarrollar en Transact-SQL o como una referencia a un método de
lenguaje de tiempo de ejecución común (CLR) de Microsoft .NET
Framework.
- Temporary
o Los procedimientos temporales son una forma de procedimientos
definidos por el usuario. Los procedimientos temporales son como un
procedimiento permanente, excepto que los procedimientos
temporales se almacenan en tempdb. Existen dos tipos de
procedimientos temporales: locales y globales. Se diferencian entre sí
en sus nombres, su visibilidad y su disponibilidad. Los procedimientos
temporales locales tienen un solo signo de número (#) como primer
carácter de sus nombres; solo son visibles para la conexión del usuario
actual y se eliminan cuando se cierra la conexión. Los procedimientos
temporales globales tienen dos signos numéricos (##) como los dos
primeros caracteres de sus nombres; son visibles para cualquier usuario
después de que se crean y se eliminan al final de la última sesión
utilizando el procedimiento.
- System
o Los procedimientos del sistema se incluyen con SQL Server. Se
almacenan físicamente en la base de datos de recursos oculta interna y
aparecen lógicamente en el esquema del sistema de cada sistema y
base de datos definida por el usuario. Además, la base de datos msdb
también contiene procedimientos almacenados del sistema en el
esquema dbo que se utilizan para programar alertas y trabajos.
SQL Server admite los procedimientos del sistema que proporcionan
una interfaz de SQL Server a programas externos para diversas
actividades de mantenimiento. Estos procedimientos extendidos
utilizan el prefijo xp_. Para obtener una lista completa de los
procedimientos extendidos, consulte Procedimientos almacenados
extendidos generales (Transact-SQL).
- Extended User-Defined
o Los procedimientos extendidos permiten crear rutinas externas en un
lenguaje de programación como C. Estos procedimientos son archivos
DLL que una instancia de SQL Server puede cargar y ejecutar
dinámicamente.
CLAUSULA WITH
La cláusula SQL WITH le permite dar un nombre a un bloque de subconsulta al que se
puede hacer referencia en varios lugares dentro de la consulta SQL principal.

 La cláusula se utiliza para definir una relación temporal de modo que la salida
de esta relación temporal esté disponible y la utilice la consulta asociada a la
cláusula WITH.
 Las consultas que tienen una cláusula WITH asociada también se pueden
escribir mediante subconsultas anidadas, pero al hacerlo agregan más
complejidad para leer/depurar la consulta SQL.
 La cláusula WITH no es compatible con todos los sistemas de bases de datos.
 El nombre asignado a la subconsulta se trata como si fuera una vista o tabla en
línea
En esta consulta, la cláusula WITH se usa para definir una relación temporal
temporaryTable que tiene solo 1 atributo averageValue. averageValue contiene el
valor promedio de la columna Attr1 descrito en la tabla de relaciones. La instrucción
SELECT que sigue a la cláusula WITH producirá solo aquellas tuplas donde el valor de
Attr1 en la relación Tabla es mayor que el valor promedio obtenido de la instrucción de
la cláusula WITH.

Nota: Cuando se ejecuta una consulta con una cláusula WITH, primero se evalúa la
consulta mencionada dentro de la cláusula y el resultado de esta evaluación se
almacena en una relación temporal. A continuación, finalmente se ejecuta la consulta
principal asociada a la cláusula WITH que utilizaría la relación temporal producida.

Views create an actual object in the database, with associated metadata and security
capabilities. With statements are only part of a single query.
With statements offer the opportunity to have recursive CTEs, in some databases. This
is not possible for views.
FUNCIONES
FUNCIONES AGREGADAS
Las funciones agregadas realizan un cálculo en un conjunto de valores y devuelven un
solo valor. Están permitidos en la lista de selección o en la cláusula HAVING de una
instrucción SELECT. Puede usar una agregación en combinación con la cláusula GROUP
BY para calcular la agregación en categorías de filas. Utilice la cláusula OVER para
calcular la agregación en un rango de valor específico. La cláusula OVER no puede
seguir las agregaciones GROUPING o GROUPING_ID.

FUNCIONES ANALÍTICAS
Las funciones analíticas calculan un valor agregado basado en un grupo de filas. Sin
embargo, a diferencia de las funciones agregadas, las funciones analíticas pueden
devolver varias filas para cada grupo. Puede usar funciones analíticas para calcular
promedios móviles, totales acumulados, porcentajes o resultados de N principales
dentro de un grupo.

FUNCIONES DE MANIPULACIÓN DE BITS


Las funciones de manipulación de bits le permiten procesar y almacenar datos de
manera más eficiente que con bits individuales. Para obtener más información,
consulte Funciones de manipulación de bits.

FUNCIONES DE CLASIFICACIÓN
Las funciones de clasificación devuelven un valor de clasificación para cada fila en una
partición. Dependiendo de la función que se utilice, algunas filas pueden recibir el
mismo valor que otras filas. Las funciones de clasificación no son deterministas.

FUNCIONES DE CONJUNTO DE FILAS


Funciones de conjunto de filas Devuelven un objeto que se puede usar como
referencias de tabla en una instrucción SQL.
FUNCIONES ESCALARES
Opera en un solo valor y luego devuelve un solo valor. Las funciones escalares se
pueden usar siempre que una expresión sea válida.

Function category Description

Configuration Functions Return information about the current configuration.

Conversion Functions Support data type casting and converting.

Cursor Functions Return information about cursors.

Date and Time Data Types Perform operations on a date and time input values and return
and Functions string, numeric, or date and time values.

Graph Functions Perform operations to convert to and from character representations


of graph node and edge IDs.

JSON Functions Validate, query, or change JSON data.

Logical Functions Perform logical operations.

Mathematical Functions Perform calculations based on input values provided as parameters


to the functions, and return numeric values.

Metadata Functions Return information about the database and database objects.

Security Functions Return information about users and roles.

String Functions Perform operations on a string (char or varchar) input value and


return a string or numeric value.

System Functions Perform operations and return information about values, objects,
and settings in an instance of SQL Server.

System Statistical Functions Return statistical information about the system.

Text and Image Functions Perform operations on text or image input values or columns, and
return information about the value.

También podría gustarte