Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
Recomendaciones
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
Restricciones
TEMPDB DATABASE
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
Recomendaciones
Cuando trabaje con la base de datos msdb, tenga en cuenta las siguientes recomendaciones:
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.
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
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 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.
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.
Metadata Functions Return information about the database and database objects.
System Functions Perform operations and return information about values, objects,
and settings in an instance of SQL Server.
Text and Image Functions Perform operations on text or image input values or columns, and
return information about the value.