Вы находитесь на странице: 1из 28

NDICE

Administracin de una Base de Datos 2


Tunning de Base de Datos 2
Copias de seguridad en una Base de Datos 2
Definicin de Backup 2
Introduccin a las estrategias de seguridad y restauracion en sql server 3
Impacto del modelo de recuperacin de Copia de Seguridad y Restauracin 4
Diseo de la Estrategia de Copia de Seguridad 4
Copia de Seguridad en SQL Server 5
Backup (Transact-SQL) 6
Planes de Mantenimiento 7
Caractersticas 7
Funcionabilidad 7
Crear planes de mantenimiento usando sql server management studio 8
Particin de tablas
SEMANA 9 : Modelo relacional. Normalizacin 97
SEMANA 10 : Normalizacin 111
SEMANA 11 : Normalizacin 129
SEMANA 12 : Normalizacin 137
Unidad de Aprendizaje 5
SEMANA 13 : Obtencin del modelo lgico-global de los datos a partir del 143


1

ADMINISTRACIN DE BASE DE DATOS

La administracin de bases de datos se realiza con un sistema llamado DBMS (Database
management system [Sistema de administracin de bases de datos]). El DBMS es un
conjunto de servicios (aplicaciones de software) para administrar bases de datos, que
permite:
Un fcil acceso a los datos
El acceso a la informacin por parte de mltiples usuarios
La manipulacin de los datos encontrados en la base de datos (insertar, eliminar,
editar)

TUNNING DE BASE DE DATOS

El objetivo de Tunning es la optimizacin tanto de las sentencias SQL como de mejoras
en la configuracin del servidor de Bases de Datos, desde el punto de vista del tiempo de
ejecucin y consumo de recursos

COPIAS DE SEGURIDAD EN UNA BASE DE DATOS

DEFINICIN DE BACKUP
Es una copia de los datos originales que se realiza con el fin de disponer de un
medio de recuperarlos en caso de su prdida.
Las copias de seguridad son tiles ante distintos eventos y usos:
Recuperar los sistemas informticos y los datos de una catstrofe informtica,
natural o ataque.
Restaurar una pequea cantidad de archivos que pueden haberse eliminado
accidentalmente, corrompido, infectado por un virus informtico u otras causas.




2
o Guardar informacin histrica de forma ms econmica que los discos
duros y adems permitiendo el traslado a ubicaciones distintas de la de los
datos originales.

El proceso de copia de seguridad se complementa con otro conocido como
restauracin de los datos (en ingls restore), que es la accin de leer y grabar en
la ubicacin original u otra alternativa los datos requeridos.

Se han desarrollado muchas tcnicas diferentes para optimizar el procedimiento
de efectuar los backups. Estos procedimientos incluyen entre otros optimizaciones
para trabajar con archivos abiertos y fuentes de datos en uso y tambin incluyen
procesos de compresin, cifrado, y procesos de deduplicacion, entendindose por
esto ltimo a una forma especfica de compresin donde los datos superfluos son
eliminados. Muchas organizaciones e individuos tratan de asegurarse que el
proceso de backup se efecte de la manera esperada y trabajan en la evaluacin y
la validacin de las tcnicas utilizadas. Tambin es importante reconocer las
limitaciones y los factores humanos que estn involucrados en cualquier esquema
de backup que se utilice. Las copias de seguridad garantizan dos objetivos:
integridad y disponibilidad



INTRODUCCIN A LAS ESTRATEGIAS DE
SEGURIDAD Y RESTAURACION EN SQL SERVER

El propsito de crear copias de seguridad de SQL Server es para que usted
pueda recuperar una base de datos daada. Sin embargo, copias de seguridad
y restauracin de los datos debe ser personalizado para un ambiente particular
y debe trabajar con los recursos disponibles. Por lo tanto, un uso fiable de copia

3
de seguridad y restauracin para la recuperacin exige una copia de seguridad
y restauracin de la estrategia.
Una copia de seguridad bien diseado y restaurar la estrategia maximiza la
disponibilidad de datos y minimiza la prdida de datos, teniendo en cuenta sus
necesidades de negocio en particular.
Una estrategia de copia de seguridad y restauracin de copia de seguridad
contiene una porcin de seguridad y una porcin de restauracin. La parte de
seguridad de la estrategia define el tipo y frecuencia de las copias de seguridad,
la naturaleza y la velocidad del hardware que se requiere para que, como copias
de seguridad deben ser probados, y dnde y cmo los medios de comunicacin
copia de seguridad se van a almacenar (incluyendo las consideraciones de
seguridad).

IMPACTO DEL MODELO DE RECUPERACIN DE
COPIA DE SEGURIDAD Y RESTAURACIN

Copia de seguridad y restauracin de las operaciones se producen en el
contexto de un modelo de recuperacin. Un modelo de recuperacin es una
propiedad de base de datos que controla el registro de transacciones que se
gestiona. Adems, el modelo de recuperacin de una base de datos determina
qu tipos de copias de seguridad y restauracin son compatibles con la base de
datos. Normalmente, una base de datos utiliza ya sea el modelo de
recuperacin simple o el modelo de recuperacin completa.


DISEO DE LA ESTRATEGIA DE COPIA DE
SEGURIDAD

La estrategia de copia de seguridad ptima depende de una variedad de factores, de
los cuales los siguientes son especialmente importantes:
Cuntas horas al da no tiene aplicaciones para acceder a la base de
datos? Si hay una predecible temporada baja perodo, le recomendamos
que programe copias de seguridad completas de bases de datos para ese
perodo.
Con qu frecuencia se producen cambios y actualizaciones probables que
ocurra?

4
Si los cambios son frecuentes, considere lo siguiente:
Bajo el modelo de recuperacin simple, considere la programacin de
copias de seguridad diferenciales entre copias de seguridad de base de
datos completa.
Bajo el modelo de recuperacin completa, debe programar copias de
seguridad frecuentes de registro. Programacin de copias de seguridad
diferenciales entre copias de seguridad completas puede reducir el tiempo
de restauracin mediante la reduccin del nmero de copias de seguridad
de registros que se deben restaurar despus de restaurar los datos.
Son los cambios probables de ocurrir en tan slo una pequea parte de la
base de datos o en una gran parte de la base de datos?

Para una gran base de datos en la que los cambios se concentran en una parte
de los archivos o grupos de archivos, copias de seguridad parciales o copias de
seguridad de archivos y puede ser til.
Cunto espacio en disco una copia de seguridad completa requiere?

COPIA DE SEGURIDAD EN SQL SERVER

El alcance de una copia de seguridad de los datos puede ser una base de datos
completa, una base de datos parciales, o un conjunto de archivos o grupos de
archivos. Para cada uno de estos, SQL Server admite copias de seguridad
completas y diferenciales:

o Copia de seguridad completa
Contiene todos los datos en una base de datos especfica o un conjunto
de grupos de archivos o archivos, y tambin suficiente registro para
permitir la recuperacin de los datos.

o Copia de seguridad diferencial
Una copia diferencial es una copia de seguridad completa de lectura /
escritura de datos. Una copia de seguridad diferencial incluye slo los
datos que ha cambiado desde la base diferencial. Por lo general, los
respaldos diferenciales que se toman poco despus de la copia de
seguridad de base son ms pequeos y ms rpidos de crear que la
base de una copia de seguridad completa. Por lo tanto, utilizar los
respaldos diferenciales puede acelerar el proceso de hacer copias de
seguridad frecuentes para disminuir el riesgo de prdida de datos

5

o Copia de seguridad del registro de transacciones
Bajo el modelo de recuperacin optimizado para cargas masivas de
registros de modelo de recuperacin, copias de seguridad del registro de
transacciones (o copias de seguridad de registro) son obligatorias. Cada
copia de seguridad de registro cubre la parte del registro de
transacciones que estaba activa cuando la copia de seguridad fue
creada, e incluye todos los registros que no fueron respaldados en una
copia de seguridad de registros anterior.

Antes de crear la copia de seguridad de registro en primer lugar, debe crear una copia
de seguridad completa, como una copia de seguridad de bases de datos. A partir de
entonces, la copia de seguridad del registro de transacciones con regularidad es
necesaria, no slo para minimizar la prdida de trabajo sino tambin para permitir el
truncamiento del registro de transacciones.
.
BACKUP (TRANSACT-SQL)

Comando TRANSACT-SQL que realiza copias de seguridad de una base de
datos completa, o uno o ms archivos o grupos de archivos (BASE DE DATOS
DE SEGURIDAD). Adems, bajo el modelo de recuperacin optimizado para
cargas masivas de registros de modelo de recuperacin, copias de seguridad
del registro de transacciones (BACKUP LOG).
La sintaxis para realizar un BACK UP a la base de datos es la siguiente:
BACKUP DATABASE { nombre_base_datos | @var_nombre_base_datos }
TO <dispositivo_backup> [ ,...n ]
[ <MIRROR TO clause> ] [ next-mirror-to ]
[ WITH { DIFFERENTIAL | <general_WITH_options> [ ,...n ] } ] [;]

La sintaxis para realizar un BACK UP a los Filegroup de la base de datos
BACKUP DATABASE { nombre_base_datos | @var_nombre_base_datos }
<file_or_filegroup> [ ,...n ]
TO <dispositivo_backup> [ ,...n ]
[ <MIRROR TO clause> ] [ next-mirror-to ]
[ WITH { DIFFERENTIAL | <general_WITH_options> [ ,...n ] } ] [;]



6
La sintaxis para realizar un BACK UP al registro de transacciones o LOG de la base de
datos
BACKUP LOG { nombre_base_datos | @var_nombre_base_datos }
TO <dispositivo_backup> [ ,...n ]
[ <MIRROR TO clause> ] [ next-mirror-to ]
[ WITH { <general_WITH_options> | <log-specific_optionspec> } [
,...n ] ]
[;]

PLANES DE MANTENIMIENTO

Los planes de mantenimiento crean un flujo de trabajo de las tareas necesarias
para asegurarse de que la base de datos est optimizada, se realizan copias de
seguridad de la misma con regularidad y no tiene incoherencias. El Asistente para
planes de mantenimiento tambin crea planes de mantenimiento principales, pero
la creacin manual de planes le da mucha ms flexibilidad.

CARACTERSTICAS
Los planes de mantenimiento de SQL Server 2012 proporcionan las caractersticas
siguientes:
o Creacin de flujos de trabajo con diferentes tareas de mantenimiento
tpicas.
o Jerarquas conceptuales. Cada plan le permite crear o editar flujos de
trabajo de tareas.
o Compatibilidad con planes multiservidor que se pueden utilizar en entornos
de servidor maestro o servidor de destino.
o Compatibilidad con el historial de planes de registro en los servidores
remotos.
o Compatibilidad con la autenticacin de Windows y la autenticacin de SQL
Server. Siempre que sea posible, utilice la autenticacin de Windows.

FUNCIONABILIDAD
Los planes de mantenimiento se pueden crear para realizar las tareas siguientes:
o Reorganizar los datos de las pginas de datos y de ndices mediante una
nueva generacin de los ndices con un nuevo factor de relleno. Comprimir
archivos de datos mediante la eliminacin de las pginas de base de datos
que estn vacas.
o Actualizar las estadsticas de los ndices para asegurarse de que el
optimizador de consultas dispone de informacin actualizada acerca de la
distribucin de los valores de los datos en las tablas.

7
o Realizar comprobaciones de coherencia interna de los datos y de las
pginas de datos de la base de datos para asegurarse de que no se han
daado debido a un problema de software o del sistema.
o Realizar copias de seguridad de la base de datos y de los archivos de
registro de transacciones. Las copias de seguridad de la base de datos y
del registro pueden mantenerse durante un perodo especificado. Esto le
permite crear un historial de copias de seguridad para utilizarlo si tiene que
restaurar la base de datos a una fecha anterior a la de la ltima copia de
seguridad de la base de datos.
o Ejecutar trabajos del Agente SQL Server. Se puede usar para crear
trabajos que realicen diversas acciones y los planes de mantenimiento para
ejecutar esos trabajos.

CREAR PLANES DE MANTENIMIENTO USANDO SQL
SERVER MANAGEMENT STUDIO
SQL Server nos permite crear un plan de mantenimiento de nuestras bases de datos
de forma muy sencilla sin embargo es poco comn que existan en la mayora de los
entornos sencillamente por desconocimiento tcnicos de los administradores de
sistemas o por no saber cmo nuestras bases de datos se ven afectadas a medida
que se realizan operaciones sobre ella lo cual reduce el rendimiento y a su vez los
tiempo de respuesta en operaciones CRUD y especialmente en las consultas. Una vez
ms, ms all de que el usuario tenga que esperar un segundo ms en una consulta
se trata de como la disminucin del rendimiento de nuestras aplicaciones afecta de
forma global el desempeo de nuestra aplicacin, cuanto tiempo (horas o minutos
laborables) nos hace perder y los costos econmicos asociados a ello, cuanto espacio
estamos ocupando de manera innecesaria en nuestros servidores y cul sera el costo
econmico de perder parte de nuestros datos en caso de un fallo grave en nuestros
discos.
Con un poco de anlisis de nuestras necesidades podemos llevar a cabo un plan de
mantenimiento en pocos minutos. Veamos cmo hacerlo en SSMS.
En SQL Server Managment Studio podremos ver la carpeta Managment y dentro de
ella Maintenance Plans, para usar el ayudante seleccionamos Maintenance Plans
Wizard


8

Hacemos clic en Next

Le damos un nombre a nuestro plan de mantenimiento ya que podremos crear
tantos como queramos para distintas base de datos o conjunto de ellas.


Escogemos las tareas de mantenimiento que queremos realizar.

9
o Shrink Database: reduce espacio de la base de datos y los archivos de
log.
o Update Statistic: asegura que el optimizador de consultas tiene la
informacin actualizada acerca de la distribucin de los datos en la base de
datos, esto permite que el optimizador realice mejores clculos acerca de
cmo realizar alguna consulta.
o Reorganized Index: desfragmenta y comprime los ndices fsicos
(Clustered Index) y no fsicos.
o Rebuild Index: reconstruye las paginas ndices permitiendo la
reorganizacin de los datos y bsquedas ms rpidas.
o Check Database Integrity: confirma la integridad de los datos y ndices de
la base de datos.
o History Cleanup: elimina informacin histrica sobre copias de respaldos y
restauraciones.
o Maintenance Cleanup: elimina archivos dejados por la ejecucin de los
planes de mantenimiento.



Escogemos el orden en que se ejecutan las tareas.

10

Para cada tarea se nos pedira que escojamos la base de datos, podemos escoger una,
varias o todas.



Para cada tarea sera necesario escoger las opciones que correspondan.

11

Despus de configurar todas las tareas se creara el plan de ejecucion.



12
Podremos ver en el diseador el plan de mantenimiento que hemos creado.

En la parte superior del diseador en el icono con forma de calendario podemos
configurar la programacin de un nuestro plan de mantenimiento.


13


Finalmente lo mismo que hemos realizado con el SSMS lo podemos realizar con SQL
Server Integration Services y el SQL Server Business Intelligence Development Studio.

Cuando creemos un proyecto podremos ver que en las herramientas tenemos
una seccin dedicada a tareas del plan de mantenimiento. Solo es necesario arrastrar las
tareas que queremos ejecutar.

14




Si hace clic derecho> Editar sobre cualquier tarea la podemos configura exactamente
igual como lo hacamos con SSMS.

15


Con esto generaremos un paquete de SSIS que podremos ejecutar cada vez que
queramos.
Como hemos visto crear un plan de mantenimiento es relativamente sencillo, obviamente
cada escenario necesitara de realizar una anlisis de cules son nuestras necesidades y
como puede impactar el plan de mantenimiento a nuestra aplicacin sobre todo si
estamos hablamos de producto out of the box.
PARTICIN DE TABLAS

DEFINICIN
La particin facilita el uso de tablas e ndices grandes, ya que permite administrar y
tener acceso a subconjuntos de datos de forma rpida y eficaz, a la vez que mantiene
la integridad de la recopilacin de datos.
Si se utilizan las particiones, una operacin como la carga de datos desde un sistema
OLTP a un sistema OLAP tarda solo unos segundos, en lugar de los minutos y las
horas que tardaba en versiones anteriores de SQL Server.
Las operaciones de mantenimiento que se realizan en los subconjuntos de datos
tambin se realizan de forma ms eficaz porque estas operaciones solo afectan a los
datos necesarios, en lugar de a toda la tabla.


16

CUNDO DEBEMOS PARTICIONAR
La decisin acerca del uso de las particiones depende bsicamente del tamao actual
o futuro de la tabla, la forma en que se utiliza y el rendimiento que presenta en las
consultas de usuario y las operaciones de mantenimiento.
Por regla general, puede resultar adecuado crear particiones de una tabla grande si se
cumplen las dos condiciones siguientes:
La tabla contiene, o se espera que contenga, muchos datos que se utilizan
de formas diferentes.
Las consultas o las actualizaciones en la tabla no presentan el rendimiento
que se esperaba o los costos de mantenimiento superan los perodos de
mantenimiento predefinidos.

ARQUITECTURA DE LAS PARTICIONES
En SQL Server, se considera que todas las tablas e ndices de una base de datos
disponen de particiones, incluso si se componen de una sola particin. Bsicamente,
las particiones conforman la unidad bsica de organizacin en la arquitectura fsica de
tablas e ndices. Esto significa que la arquitectura lgica y fsica de las tablas y los
ndices compuestos por varias particiones es igual a la de tablas e ndices con una
nica particin.

CREAR UNA FUNCIN DE PARTICIN
Una funcin de particin especifica cmo se divide la tabla o el ndice. La funcin
asigna el dominio a un conjunto de particiones.
Para crear una funcin de particin debe especificar el nmero de particiones, la
columna de particin y el intervalo de valores de columnas de particin para cada
particin. Tenga en cuenta que al especificar la columna de particin solamente puede
especificar una columna.

CREAR UN ESQUEMA DE PARTICIONES
Un esquema de particiones asigna las particiones creadas por una funcin de particin
a un conjunto de grupos de archivos que el usuario ha definido.
Al crear un esquema de particiones se definen los grupos de archivos en los que se
asignan las particiones de tabla basndose en los parmetros de la funcin de
particin. Debe especificar suficientes grupos de archivos para albergar todas las
particiones. Puede especificar que todas las particiones se asignen a un grupo de
archivos diferente, que algunas particiones se asignen a un solo grupo de archivos o
que todas las particiones se asignen a un nico grupo de archivos.
Un esquema de particiones slo puede utilizar una funcin de particin. Sin embargo,
una funcin de particin puede participar en ms de un esquema de particiones.


17


GENERACIN DE NDICES

DEFINICIN:

Los ndices son objetos de base de datos diseados para mejorar el rendimiento
de las consultas

ARQUITECTURA DE NDICES

Los ndices estn estructurados para facilitar una respuesta rpida de
conjuntos de resultados
Los tipos de ndices que SQL soporta son:
Agrupados
No Agrupados
Las caractersticas de un ndice afecta el uso de los recursos del sistema y
performance general. El Query Optimizer usar un ndice si este mejorar la
performance de la consulta.

IMPORTANCIA DEL USO DE NDICES:
Un ndice en SQL Server asiste al motor de base de datos en la ubicacin de los
registros, tal como un ndice en un libro ayuda a ubicar informacin rpidamente.
Sin ndices, una consulta deber buscar en todos los registros de la tabla en orden
a encontrar coincidencias.
TIPOS
o Indices agrupados:
Los ndices no se limitan a las restricciones.
Se pueden crear ndices sobre cualquier columna o combinacin
de columnas en una tabla o vista.
ndices agrupados aseguran la unicidad internamente.
Para evitar el trabajo adicional requerido para mantener valores
nicos sobre columnas duplicadas, generalmente se generan
ndices agrupados sobre columnas con la restriccin PRIMARY
KEY.

o Indices no agrupados

18
Sobre una tabla o vista se pueden crear 250 ndice no agrupados o
249 ndices no agrupados y un ndice agrupado. Se debe primero
crear un ndice nico agrupado sobre una vista previo a crear los
ndices no agrupados. Esta restriccin no se aplica a las tablas. Un
ndice no agrupado es anlogo a un ndice al final de un libro.
Se puede usar el ndice del libro para ubicar las pginas
que contienen una tema del ndice del libro. La base de
datos usa los ndices no agrupados para encontrar registros
segn una clave.
Si no existe un ndices agrupado para la tabla, los datos de la tabla
se encontrarn desordenados fsicamente y se dice que la tabla
tendr la estructura de montn (heap).
Un ndice no agrupado sobre una tabla montn contiene punteros a
las filas de la tabla. Cada entrada en las pginas de ndice contiene
un identificador de fila (RID, row ID).
El RID es un puntero a una fila en un montn, y este
consiste de un nmero de pgina, un nmero de archivo y
un nmero de ranura. Si existe un ndice agrupado, las
pginas de un ndice no agrupado contienen las claves del
ndice agrupado en vez del RID.


TABLAS DE AUDITORA

CONCEPTO DE AUDITORA

Es el seguimiento de las operaciones realizadas por cada usuario, bsicamente llevar
un control de "que se hace", "quien lo hace (el Usuario)", "en donde se hace", y
"cuando se hace".

ESTRUCTURA DE UNA TABLA DE AUDITORA EN SQL
SERVER
o La primera forma: Aadir campos a una tabla

El modo ms simple de auditar una tabla es registrando cada cambio fila por
fila, sin embargo tambin es la menos recomendable. Se basa en aadir uno o
dos campos testigos que registren la fecha en que se realizen cambios y el
usuario que los efecte, sin embargo cambios en cada columna no son
registrados ni auditados, slo se registra el ltimo usuario que haya hecho un
cambio. Por ejemplo si Pilar hace un cambio en la columna "Precio" y luego

19
Juan cambia el valor de la columna "Cantidad" slo quedar registrado que
Juan hizo un cambio. Este tipo de auditora es algo ingenua pero que puede
servir en algunos casos.


o Una segunda forma: Triggers y Tablas Espejo

Sql Server tiene en los triggers (desencadenadores o disparadores) una ayuda
para llevar a cabo registros de auditora. Esta forma tiene el siguiente
procedimiento:

1. Crear una tabla espejo con los mismo campos que la tabla
auditada pero con campos adicionales, como el usuario que haya
hecho el cambio, la fecha y la operacin realizada que puede ser fila
agregada, fila modificada o fila eliminada.

2. Aadir triggers INSERT, UPDATE y DELETE a la tabla origen, de
modo que al efectuarse cualquiera de las operaciones indicadas,
grabe el mismo registro en la tabla de auditora, incluyendo los
campos de auditora (usuario,fecha,tipo de operacion).

Esta forma de auditora, si bien es mejor que la anterior ya que
registra cada cambio realizado y almacena un historial completo
para cada fila, impone una sobrecarga de operaciones por cada fila,
ya que se vuelve a registrar la misma fila con datos adicionales en
caso sea insertada, actualizada o eliminada. Y a la vez aumenta el
espacio a ocupar.



20

COMPACTACIN DE BASE DE DATOS

Si borras, modificas y crear tablas a menudo, la base de datos puede fragmentarse, lo
que provoca un uso deficiente del espacio en disco. Al compactar la base de datos, se
hace una copia de la misma y se reorganiza el espacio que ocupa en el disco.

PARA COMPACTAR UNA BASE DE DATOS
1. Cree un objeto Engine y pase la cadena de conexin a la base de datos existente
que desee compactar.
2. SqlCeEngine engine = new SqlCeEngine("Data Source = AdWks.sdf");
3. Llame al mtodo Compact. Cuando llame al mtodo Compact, tambin puede
especificar las propiedades de la nueva base de datos, incluida la proteccin con
contrasea o el cifrado.

engine.Compact("Data Source=; Password =
<enterStrongPasswordHere>");


FUNCIONES


Las funciones se utilizan para realizar clculos que le pueden devolver a una aplicacin
de llamada o estar integrada en un conjunto de resultados.
TIPOS DE FUNCIONES
SQL Server nos proporciona los siguientes tipos de funciones:
o Funciones integradas: SQL Server proporciona las funciones integradas para
ayudar a realizar diversas operaciones.
No se pueden modicar
o Funciones definidas por el usuario: Se crean con la instruccin CREATE
FUNCTION, se modifican con la instruccin ALTER FUNCTION y se quitan
con la instruccin DROP FUNCTION.





21

FUNCIONES INTEGRADAS

o Funciones de agregacin: Estas funciones devuelven un valor nico como
resultado de un clculo estadstico sobre una seleccin de registros.
Las funciones agregadas son deterministas, es decir, aplicada a un mismo
conjunto de datos, la funcin siempre devolver el mismo resultado.
Con excepcin de la funcin COUNT, las funciones agregadas no
tienen en cuenta los valores NULL.
COUNT(*)
Cuenta los registros seleccionados.
COUNT([ALL|DISTINCT] expr)
Cuenta todas las expresiones no nulas (ALL) o las expresiones no nulas
nicas (DISTINCT).
COUNT_BIG
Su funcionamiento es idntico a la funcin COUNT, pero el resultado
devuelto est en formato bigint, en lugar de int como sucede con la funcin
COUNT.
SUM([ALL|DISTINCT] exprn)
Suma todas las expresiones no nulas (ALL) o las expresiones no nulas nicas
(DISTINCT).
AVG([ALL|DISTINCT] exprn)
Media de todas las expresiones no nulas (ALL) o de las expresiones no nulas
nicas (DISTINCT).
MIN(exp) o MAX(exp)
Valor mnimo o mximo de todas las expresiones.
STDEV ([ALL|DISTINCT] exprn)
Desviacin tpica de todos los valores de la expresin dada, no nulos (ALL) o
de las expresiones no nulas nicas (DISTINCT).


22
STDEVP ([ALL|DISTINCT] exprn)
Desviacin tpica de la poblacin para todos los valores de la expresin
dada, no nulos (ALL) o de las expresiones no nulas nicas (DISTINCT).
GROUPING
Se usa junto con ROLLUP y CUBE. Indica el valor 1 cuando el registro se
genera con una instruccin ROLLUP o CUBE. En caso contrario indica el
valor 0.
o Funciones matemticas: Estas funciones devuelven un valor como
resultado de clculos matemticos clsicos (lgebra, trigonometra,
logaritmos, etc.).
ABS(expn)
Valor absoluto de expn.
CEILING(expn)
Entero ms pequeo igual o superior a expn.
FLOOR(expn)
Entero ms grande inferior o igual a expn.
SIGN(expn)
Devuelve 1 si expn es positiva, -1 si es negativa y 0 si es cero.

o Funciones diversas:
RAND([expn])
Nmero aleatorio comprendido entre 0 y 1. expn representa al valor de
inicio.
ROUND(expn,n[,f])
Redondea expn con precisin n. Si n es positivo, representa el nmero de
decimales.

o Funciones de tipo fecha

23
Las funciones de tipo fecha manipulan expresiones de tipo fecha y usan
los formatos que representan la parte de la fecha que se debe
administrar.


FUNCIONES DEFINIDAS POR EL USUARIO:

Las funciones definidas por el usuario, en tiempo de ejecucin de lenguaje
TRANSACT-SQL o comn (CLR), acepta parmetros, realiza una accin, como un
clculo complejo, y devuelve el resultado de esa accin como un valor. El valor de
retorno puede ser un escalar (nico) valor o una tabla.

Las funciones de usuario son definidas para crear una rutina reutilizables que se
pueden utilizar en las siguientes maneras:
1. En TRANSACT-SQL como SELECT
2. En las aplicaciones de llamar a la funcin
3. En la definicin de otra funcin definida por el usuario
4. Para parametrizar una vista o mejorar la funcionalidad de una vista
indizada
5. Para definir una columna en una tabla
6. Para definir una restriccin CHECK en una columna
Formato Abreviatura Significado
year yy, yyyy Ao (de 1.753 a 9.999)
quarter qq, q Trimestre (de 1 a 4)
month mm, m Mes (de 1 a 12)
day of year dy, y Da del ao (de 1 a 366)
day dd, d Da del mes (de 1 a 31)
weekday dw, ww Da de la semana (de 1 Lunes a 7 Domingo)
hour hh Hora (de 0 a 23)
minute mi, n Minuto (de 0 a 59)
seconds ss, s Segundo (de 0 a 59)
millisecond ms Milisegundo (de 0 a 999)

24
7. Para reemplazar a un procedimiento almacenado

Funciones Escalares: Las funciones escalares definidas por el usuario
devuelven un nico valor de datos del tipo definido en la clusula RETURNS. Las
funciones escalares en lnea no tienen cuerpo; el valor escalar es el resultado de
una sola instruccin. Para una funcin escalar de mltiples instrucciones, el cuerpo
de la funcin, definido en un bloque BEGINEND, contiene una serie de
instrucciones Transact-SQL que devuelven el valor nico.
El tipo devuelto puede ser de cualquier tipo de datos excepto text, ntext, image,
cursor y timestamp.
Ejemplo:
1
2
3
4
5
6
7
8
9
Create Function Suma(@N1 int, @N2 int)
RETURNS Int
AS
BEGIN
Return (@N1 + @N2)
END

--Ejecutar
Print dbo.Suma(5,8)
Funciones con valores de tabla: Las funciones con valores de tabla definidas
por el usuario devuelven un tipo de datos table. Las funciones con valores de tabla
en lnea no tienen cuerpo; la tabla es el conjunto de resultados de una sola
instruccin SELECT.

o FUNCIONES DEFINIDAS POR EL USUARIO EN LINEA.
Ejemplo: Funcin que devuelve una tabla con la lista de productos
suspendidos; el argumento ingresado puede ser 1-Suspendido o 0-Activo.
1
2
3
4
5
6
7
Create Function ProdSuspendido(@Sus int)
Returns Table
AS
Return(Select * From Productos Where Suspendido=@Sus)

--Ejecutar
Select * From dbo.ProdSuspendido(1)
o FUNCIONES DEFINIDAS POR EL USUARIO CON VALORES DE
TABLA.

25
Ejemplo: Crear una funcin que devuelva en formato de tabla el nombre
completo de cada uno de los clientes que pertenecen a una determinada
zona
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
CREATE FUNCTION Nombre_Cliente_F
(
@Zona int
)
RETURNS @NombreCliente Table
(
NombreCompleto Varchar(50)
)
AS
BEGIN
Declare @Nombre Varchar(50)
Insert Into @NombreCliente
Select (Apellidos + ', ' + Nombre)
From Cliente
Where IdZona=@Zona
RETURN
END

--Ejecutar
SELECT * From Nombre_Cliente_F(2)

PROCEDIMIENTOS ALMACENADOS

Los procedimientos almacenados son grupos formados por instrucciones SQL y el
lenguaje de control de flujo. Cuando se ejecuta un procedimiento, se prepara un plan
de ejecucin para que la subsiguiente ejecucin sea muy rpida. Los procedimientos
almacenados pueden:
Incluir parmetros
Llamar a otros procedimientos
Devolver un valor de estado a un procedimiento de llamada o lote para indicar el
xito o el fracaso del mismo y la razn de dicho fallo.
Devolver valores de parmetros a un procedimiento de llamada o lote

VENTAJAS DEL USO DE PROCEDIMIENTOS
ALMACENADOS:

o Mejora notablemente la potencia, eficacia y flexibilidad de SQL.
o Mejoran la ejecucin de las instrucciones y lotes de SQL de forma dramtica.

26
o Pueden ejecutarse en otro SQL Server si el servidor del usuario y el remoto
estn configurados para permitir logins remotos.

PROCEDIMIENTOS ALMACENADOS EN SQL SERVER
Los procedimientos almacenados se crean con CREATE PROCEDURE. Para ejecutar
un procedimiento almacenado, ya sea un procedimiento del sistema o uno definido por
el usuario, use el comando EXECUTE. Tambin, puede utilizar el nombre del
procedimiento almacenado solo, siempre que sea la primera palabra de una
instruccin o lote.

Sintaxis para crear un procedimiento almacenado:
CREATE PROCEDURE <Procedure_Name, sysname, ProcedureName>
-- Aadir parmetros al procedimiento almacenado
<@Param1> <Datatype_For_Param1> = <Default_Value_For_Param1>,
<@Param2> <Datatype_For_Param2> = <Default_Value_For_Param2>
AS
BEGIN
-- Insertar la sentencia para el procedimiento
Sentencia SQL
END

Sintaxis para modificar un procedimiento almacenado:
ALTER PROCEDURE NOMBRE_PROCEDIMIENTO
<@Param1> <Datatype_For_Param1> = <Default_Value_For_Param1>,
<@Param2> <Datatype_For_Param2> = <Default_Value_For_Param2>
AS
CONSULTA_SQL

Sintaxis para eliminar un procedimiento almacenado:
DROP PROCEDURE NOMBRE_PROCEDIMIENTO



27

BIBLIOGRAFA
Desarrollo de bases de datos en Microsoft SQL Server desde el principio, Pearson, 2002
SQL Server 2008 Administracin de una base de datos con SQL Server Management
Studio, Ediciones ENI, 2010
SQL Server 2012: Diseo y creacin de una base de datos, Ediciones ENI, 2013
http://technet.microsoft.com/es-es/library/ms130214.aspx consultado el 27/04/2014
http://msdn.microsoft.com/es-es/library/ consultado el 28/04/2014