0% encontró este documento útil (0 votos)
112 vistas

Sql-Server

Cargado por

EDUARDO
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
112 vistas

Sql-Server

Cargado por

EDUARDO
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 70

UNIVERSIDAD NACIONAL DE

INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE
SISTEMAS

SQL SERVER
SISTEMA DE GESTIÓN DE BASE DE
DATOS
CURSO:
ADMINISTRACIÓN DE BASE DE DATOS

PROFESOR:
ING. MANUEL VELARDE CARPIO

INTEGRANTES:
GOYCOCHEA SANTISTEBAN, JARED
HUISA PALACIOS, CARLOS
ZUTTA TUESTA, JHEYMY

2015
SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

ÍNDICE

INTRODUCCIÓN...........................................................................................4
1. OBJETIVOS............................................................................................5
2. MARCO TEORICO...................................................................................5
2.1. BASE DE DATOS................................................................................................. 5
2.2. SISTEMA DE GESTIÓN DE BASE DE DATOS........................................................6
2.3. ADMINISTRACIÓN DE BASE DE DATOS...............................................................8
2.4. BASE DE DATOS RELACIONAL............................................................................9
2.4.1. Tablas......................................................................................................... 9
2.4.2. Terminología Relacional.............................................................................9
2.4.3. Claves...................................................................................................... 10
3. SQL SERVER........................................................................................10
3.1. DEFINICIÓN..................................................................................................... 10
3.2. HISTORIA......................................................................................................... 11
3.3. CARACTERÍSTICAS........................................................................................... 11
3.3.1. Características Básicas............................................................................11
3.3.2. Características del servidor SQL SERVER 2014........................................12
3.3.3. Tamaño máximo de una base de datos....................................................13
3.4. TRANSACT- SQL (MOTOR DE BASE DE DATOS)................................................14
3.4.1. Consulta MULTITABLA...............................................................................14
3.4.2. Subconsultas............................................................................................15
3.4.3. Programación en TRANSACT SQL.............................................................15
3.4.4. Procedimientos almacenados STORE PROCEDURE...................................16
3.5. ADMINISTRACIÓN............................................................................................ 17
3.5.1. Instalación................................................................................................17
3.5.2. Administración de la Seguridad................................................................18
3.5.3. Organización de archivos.........................................................................20
3.5.4. Organización de Tablas............................................................................21
3.5.5. Copias de Seguridad................................................................................23
3.5.6. Replicación............................................................................................... 27
3.6. SQL SERVER INTEGRATION SERVICES..............................................................27
3.6.1. Características y tareas de Integration Services......................................28
3.7. SQL SERVER DATA TOOLS (SSDT).........................................................................28
4. VENTAJAS............................................................................................ 28
5. DIFERENCIAS.......................................................................................31
6. COSTOS.............................................................................................. 33
7. USO DEL SOFTWARE EN LAS EMPRESAS................................................34
8. APLICACIÓN........................................................................................38
8.1. INFORMACIÓN ACERCA DEL NEGOCIO DE LA COMPAÑÍA ADVENTURE WORKS:...................38
8.2. SENTENCIAS DDL (LENGUAJE DE DEFINICIÓN DE DATOS):............................................38
8.2.1. Creación la Base de datos:.......................................................................38
8.2.2. Creación de esquemas XML:....................................................................39

ADMINISTRACIÓN DE BASE DE DATOS Página 2 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER
8.2.3. Creación de las tablas:.............................................................................41
8.2.4. Modelo Relacional:...................................................................................44
8.2.5. Creación de Triggers:...............................................................................46
8.2.6. Creación de Funciones:............................................................................48
8.2.7. Creación de Procedimientos:....................................................................50
8.2.8. Creación de vistas:...................................................................................51
8.3. SENTENCIAS DML (LENGUAJE DE MANIPULACIÓN DE DATOS).........................................53
8.3.1. Insertando Datos:.....................................................................................53
8.3.2. Actualizar Datos:......................................................................................54
8.3.3. Eliminar datos:......................................................................................... 55
8.3.4. Reportes................................................................................................... 55
8.4. EXPORTAR DATOS A EXCEL.....................................................................................60
CONCLUSIONES.........................................................................................62
BIBLIOGRAFÍA........................................................................................... 63

ADMINISTRACIÓN DE BASE DE DATOS Página 3 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

INTRODUCCIÓN

En la actualidad, existen muchas organizaciones que necesitan tomar


decisiones importantes en tiempo real, y que el resultado de las mismas
depende de la existencia de dichas organizaciones. La finalidad de estas
decisiones en las empresas es el de obtener mayores beneficios, pero si no se
tiene la información necesaria, es imposible tomar buenas decisiones que
lleven a las organizaciones a seguir creciendo. Esta información tiene como
características ser oportuna, exacta y de buen costo. Oportuna porque debe
darse en el momento indicado, en el tiempo correcto; exacta porque debe ser
precisa y concreta, debe mostrar la situación real de la organización y de buen
costo, debido a su relevancia.

Por tanto, para que las organizaciones puedan reducir la incertidumbre en la


toma de una determinada decisión, es necesario que cuenten con un sistema
de procesamiento de datos (SPD) que es el conjunto de procedimientos
manuales y/o automáticos que cumplen con las funciones de recolectar datos,
procesarlos y distribuir la información. Pero además, debido al volumen de
datos que una organización maneja, es necesario contar además con un
Sistema de Gestión de Base de Datos (SGBD) que permitan el almacenamiento,
modificación y extracción de la información en una base de datos, además de
proporcionar herramientas para añadir, borrar, modificar y analizar los datos.
Los usuarios pueden acceder a la información usando herramientas específicas
de interrogación y de generación de informes, o bien mediante aplicaciones al
efecto.

Existen muchos SGBD que dan soporte a los datos que son generados por el
propio negocio de las organizaciones, y es por ello que en el presente trabajo
se estudiará a un sistema de gestión de base de datos específico y que ha
tenido muchos años en el mercado, SQL Server. Este sistema de gestor de base
de datos, es pues, ampliamente conocido por sus funciones avanzadas y su
seguridad. Ofrece varias ediciones con diferentes opciones en cada una de
ellas, las cuales cuentan con un conjunto de características que buscan
satisfacer una variedad de necesidades de los usuarios. Esto, sumado a su
confiabilidad, otorga beneficios considerables al momento de su uso.

En el presente informe, en primer lugar, se tratará de dar a conocer algunos


conceptos teóricos básicos necesarios para una mayor comprensión de SQL
Server. Luego se tratará a detalle del SGBD SQL Server, empezando por su
definición, historia, características importantes, las herramientas que posee, el
tipo modelo de datos y la organización de archivos que usa, y la administración
de la base de datos. Se estudiarán las ventajas que ésta posee, así como las
diferencias con otros SGBD que existen en el mercado. También se dará a
conocer los precios por cada edición que presenta la última versión de SQL

ADMINISTRACIÓN DE BASE DE DATOS Página 4 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

Server, las empresas que actualmente tienen implementado este sistema de


gestor de base de datos, y por último una aplicación basado en dicho gestor,
usando las herramientas que nos proporciona.

ADMINISTRACIÓN DE BASE DE DATOS Página 5 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

1. OBJETIVOS

 Conocer las bondades del manejador de base de datos Microsoft SQL


Server.
 Identificar su organización de archivos y organización de tablas de SQL
Server.
 Identificar los clientes que lo utilizan.
 Hacer una evaluación costo-beneficio del uso de Microsoft SQL Server en
una empresa.
 Realizar una aplicación pequeña utilizando SQL Server y base de datos
relacional.

2. MARCO TEORICO

2.1. BASE DE DATOS

Las aplicaciones informáticas de los años sesenta acostumbraban a darse


totalmente por lotes (batch) y estaban pensadas para una tarea muy específica
relacionada con muy pocas entidades tipo.

Cada aplicación (una o varias cadenas de programas) utilizaba ficheros de


movimientos para actualizar y/o para consultar uno o dos ficheros maestros o,
excepcionalmente, más de dos.

Cada programa trataba como máximo un fichero maestro, que solía estar sobre
cinta magnética y, en consecuencia, se trabajaba con acceso secuencial. Cada
vez que se le quería añadir una aplicación que requería el uso de algunos de
los datos que ya existían y de otros nuevos, se diseñaba un fichero nuevo con
todos los datos necesarios (algo que provocaba redundancia) para evitar que
los programas tuviesen que leer muchos ficheros.

A medida que se fueron introduciendo las líneas de comunicación, los


terminales y los discos, se fueron escribiendo programas que permitían a varios
usuarios consultar los mismos ficheros de forma simultánea. Más adelante fue
surgiendo la necesidad de hacer las actualizaciones también on-line.

A medida que se integraban las aplicaciones, se tuvieron que interrelacionar


sus ficheros y fue necesario eliminar la redundancia. El nuevo conjunto de
ficheros se debía diseñar de modo que estuviesen interrelacionados; al mismo
tiempo, las informaciones redundantes (como por ejemplo, el nombre y la
dirección de los clientes o el nombre y el precio de los productos), que
figuraban en los ficheros de más de una de las aplicaciones, debían estar ahora
en un solo lugar.

ADMINISTRACIÓN DE BASE DE DATOS Página 6 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

El acceso on-line y la utilización eficiente de las interrelaciones exigían


estructuras físicas que diesen un acceso rápido, como por ejemplo los índices,
las multilistas, las técnicas de hashing, etc.

Estos conjuntos de ficheros interrelacionados, con estructuras complejas y


compartidos por varios procesos de forma simultánea (unos on-line y otros por
lotes), recibieron al principio el nombre de Data Banks, y después, a inicios de
los años setenta, el de Data Bases, es decir, Bases de Datos.

Es así pues que, una base de datos es un conjunto estructurado de datos que
representa entidades y sus interrelaciones. La representación será única e
integrada, a pesar de que debe permitir utilizaciones varias y simultáneas.

2.2. SISTEMA DE GESTIÓN DE BASE DE DATOS

Un Sistema de Gestión de Bases de Datos (SGBD) consiste en una colección de


datos interrelacionados y un conjunto de programas para acceder a los
mismos. Vale decir, un conjunto de programas que gestionan la Base de Datos,
el cual está compuesto por:

 DDL (Data Definition Language): Lenguaje de Definición de Datos.


 DML (Data Manipulation Language): Lenguaje de Manipulación de
Datos.
 SQL (Structured Query Language): Lenguaje de Consulta
Estructurado

Ahora bien, para entender mejor qué son los SGBD, haremos un repaso de su
evolución desde los años sesenta hasta nuestros días.

Los primeros SGBD–en los años sesenta todavía no se les denominaba así–
estaban orientados a facilitar la utilización de grandes conjuntos de datos en
los que las interrelaciones eran complejas. El arquetipo de aplicación era el Bill
of materials o Parts explosion, típica en las industrias del automóvil, en la
construcción de naves espaciales y en campos similares. Estos sistemas
trabajaban exclusivamente por lotes (batch).

Al aparecer los terminales de teclado, conectados al ordenador central


mediante una línea telefónica, se empiezan a construir grandes aplicaciones
on-line transaccionales (OLTP). Los SGBD estaban íntimamente ligados al
software de comunicaciones y de gestión de transacciones.

Aunque para escribir los programas de aplicación se utilizaban lenguajes de


alto nivel como Cobol o PL/I, se disponía también de instrucciones y de

ADMINISTRACIÓN DE BASE DE DATOS Página 7 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

subrutinas especializadas para tratar las BD que requerían que el programador


conociese muchos detalles del diseño físico, y que hacían que la programación
fuese muy compleja.

Puesto que los programas estaban relacionados con el nivel físico, se debían
modificar continuamente cuando se hacían cambios en el diseño y la
organización de la BD. La preocupación básica era maximizar el rendimiento: el
tiempo de respuesta y las transacciones por segundo.

Durante los años ochenta, el mejoramiento de los ordenadores (en reducción


del tamaño y aumento de la eficiencia), extendió el uso de la informática a
prácticamente todas las empresas e instituciones, lo cual exigía que el
desarrollo de aplicaciones fuese más sencillo. Los SGBD de los años setenta
eran demasiado complejos e inflexibles, y sólo los podía utilizar un personal
muy calificado.

Es así pues que, la aparición de los SGBD relacionales supuso un avance


importante para facilitar la programación de aplicaciones con BD y para
conseguir que los programas sean independientes de los aspectos físicos de la
BD. La estandarización, en el año 1986, del lenguaje SQL produjo una auténtica
explosión de los SGBD relacionales.

Al acabar la década de los ochenta, los SGBD relacionales ya se utilizaban


prácticamente en todas las empresas; sin embargo, aún a mediados de los
noventa, por un factor de rendimiento, se prefería usar otro tipo de SGBD.

La necesidad de tener una visión global de la empresa y de interrelacionar


diferentes aplicaciones que utilizan BD diferentes, junto con la facilidad que
dan las redes para la intercomunicación entre ordenadores, ha conducido a los
SGBD actuales, que permiten que un programa pueda trabajar con diferentes
BD como si se tratase de una sola. Es lo que se conoce como base de datos
distribuida.

Los tipos de datos que se pueden definir en los SGBD relacionales de los años
ochenta y noventa son muy limitados. La incorporación de tecnologías
multimedia–imagen y sonido– en los Sistemas de Información (SI) hace
necesario que los SGBD relacionales acepten atributos de estos tipos.

Esto nos lleva a la orientación a objetos (OO). El éxito de la OO al final de los


años ochenta, en el desarrollo de software básico, en las aplicaciones de
ingeniería industrial y en la construcción de interfaces gráficas con los
usuarios, hizo que durante la década de los noventa se extendiese en
prácticamente todos los campos de la informática.

ADMINISTRACIÓN DE BASE DE DATOS Página 8 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

La rápida adopción de la web a los SI hace que los SGBD incorporen recursos
para ser servidores de páginas web, como por ejemplo la inclusión de SQL en
guiones HTML, SQL incorporado en Java, etc.

Es importante notar que en el mundo de la web son habituales los datos


multimedia y la OO. Por lo tanto, se trata de mantener una gran BD con
información proveniente de toda clase de aplicaciones de la empresa (e,
incluso, de fuera). Los datos de este gran almacén, el Data Warehouse , se
obtienen por una replicación más o menos elaborada de las que hay en las BD
que se utilizan en el trabajo cotidiano de la empresa.

Estos almacenes de datos se utilizan exclusivamente para hacer consultas, de


forma especial para que lleven a cabo estudios los analistas financieros, los
analistas de mercado, etc.

Actualmente, los SGBD se adaptan a este tipo de aplicación, incorporando, por


ejemplo, herramientas como las siguientes:

a) La creación y el mantenimiento de réplicas, con una cierta elaboración


de los datos.
b) La consolidación de datos de orígenes diferentes.
c) La creación de estructuras físicas que soporten eficientemente el análisis
multidimensional.

Los SGBD que actualmente están en el mercado pretenden satisfacer un


conjunto de objetivos directamente deducibles de lo que hemos explicado
hasta ahora. A continuación los mencionaremos, pero sin entrar en detalles:

 Consultas no predefinidas y complejas


 Flexibilidad e independencia
 Problemas de la redundancia
 Integridad de los datos
 Concurrencia de usuarios
 Seguridad
 Servir eficientemente los Data Warehouse.
 Adaptarse al desarrollo orientado a objetos
 Incorporar el tiempo como un elemento de caracterización de la
información
 Adaptarse al mundo del Internet.

2.3. ADMINISTRACIÓN DE BASE DE DATOS

Hay un tipo de usuario especial: el que realiza tareas de administración y


control de la BD. Una empresa o institución que tenga SI construidos en torno a
BD necesita que alguien lleve a cabo una serie de funciones centralizadas de

ADMINISTRACIÓN DE BASE DE DATOS Página 9 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

gestión y administración, para asegurar que la explotación de la BD es la


correcta. Este conjunto de funciones se conoce con el nombre de
administración de BD (ABD), y los usuarios que hacen este tipo especial de
trabajo se denominan administradores de BD.

Los administradores de BD son los responsables del correcto funcionamiento de


la BD y velan para que siempre se mantenga útil. Intervienen en situaciones
problemáticas o de emergencia, pero su responsabilidad fundamental es velar
para que no se produzcan incidentes.

Se procede a mencionar, en una lista, las tareas típicas de la Administración


de Base de Datos:

 Mantenimiento, administración y control de los esquemas


 Asegurar la máxima disponibilidad de los datos
 Resolución de emergencias
 Vigilancia de la integridad y de la calidad de los datos
 Diseño físico, estrategia de caminos de acceso y restructuraciones
 Control del rendimiento y decisiones relativas a las modificaciones en los
esquemas y/o parámetros del SGBD y del SO, para mejorarlo
 Normativa y asesoramiento a los programadores y a los usuarios finales
sobre la utilización de la BD
 Control y administración de la seguridad: autorizaciones, restricciones,
etc.

2.4. BASE DE DATOS RELACIONAL

Edgar Frank Codd a finales definió las bases del modelo relacional a finales de
los 60. Trabajaba para IBM empresa que tardó un poco en implementar sus
bases. Pocos años después el modelo se empezó a implementar cada vez más,
hasta ser el modelo de bases de datos más popular. En las bases de Codd se
definían los objetivos de este modelo:

 Independencia física. La forma de almacenar los datos, no debe influir en


su manipulación lógica.
 Independencia lógica. Las aplicaciones que utilizan la base de datos no
deben ser modificadas por que se modifiquen elementos de la base de
datos.
 Flexibilidad. La base de datos ofrece fácilmente distintas vistas en
función de los usuarios y aplicaciones.
 Uniformidad. Las estructuras lógicas siempre tienen una única forma
conceptual (las tablas).
 Sencillez.

ADMINISTRACIÓN DE BASE DE DATOS Página 10 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

2.4.1. Tablas

Las bases de datos relacionales se basan en el uso de tablas (también se las


llama relaciones). Las tablas se representan gráficamente como una estructura
rectangular formada por filas y columnas. Cada columna almacena información
sobre una propiedad determinada de la tabla (se le llama también atributo),
nombre, DNI, apellidos, edad, etc.

Cada fila posee una ocurrencia o ejemplar de la instancia o relación


representada por la tabla (a las filas se las llama también tuplas).

2.4.2. Terminología Relacional

 Tupla. Cada fila de la tabla (cada ejemplar que la tabla representa)


 Atributo. Cada columna de la tabla
 Grado. Número de atributos de la tabla
 Cardinalidad. Número de tuplas de una tabla
 Dominio. Conjunto válido de valores representables por un atributo.

2.4.3. Claves

 Clave candidata: Conjunto de atributos de una tabla que identifican


unívocamente cada tupla de la tabla.
 Clave primaria: Clave candidata que se escoge como identificador de las
tuplas.
 Clave alternativa: Cualquier clave candidata que no sea primaria
 Clave externa o secundaria: Atributo de una tabla relacionado con una
clave de otra tabla.

Representación de una tabla en el modelo relacional

3. SQL SERVER

3.1. DEFINICIÓN

SQL Server es un sistema gestor de bases de datos relacionales de Microsoft


Corporation orientado a sistemas medianos y grandes. SQL Server

ADMINISTRACIÓN DE BASE DE DATOS Página 11 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

Management Studio (SSMS) es la herramienta de SQL Server que permite


definir y gestionar todas las bases de datos almacenadas en el servidor SQL
Server.

Microsoft SQL Server 2014 se basa en las funciones críticas ofrecidas en la


versión anterior, proporcionando un rendimiento, una disponibilidad y una
facilidad de uso innovadores para las aplicaciones más importantes. Microsoft
SQL Server 2014 ofrece nuevas capacidades en memoria en la base de datos
principal para el procesamiento de transacciones en línea (OLTP) y el
almacenamiento de datos, que complementan sus capacidades de
almacenamiento de datos en memoria y BI existentes para lograr la solución
de base de datos en memoria más completa del mercado.

SQL Server 2014 también proporciona nuevas soluciones de copia de seguridad


y de recuperación ante desastres, así como de arquitectura híbrida con
Windows Azure, lo que permite a los clientes utilizar sus actuales
conocimientos con características locales que aprovechan los centros de datos
globales de Microsoft. Además, SQL Server 2014 aprovecha las nuevas
capacidades de Windows Server 2012 y Windows Server 2012 R2 para ofrecer
una escalabilidad sin parangón a las aplicaciones de base de datos en un
entorno físico o virtual.

3.2. HISTORIA

La historia de SQL empieza en 1974 con la definición, por parte de Donald


Chamberlin y de otras personas que trabajaban en los laboratorios de
investigación de IBM, de un lenguaje para la especificación de las
características de las bases de datos que adoptaban el modelo relacional. Este
lenguaje se llamaba SEQUEL (Structured English Query Language) y se
implementó en un prototipo llamado SEQUEL-XRM entre 1974 y 1975. Las
experimentaciones con ese prototipo condujeron, entre 1976 y 1977, a una
revisión del lenguaje (SEQUEL/2), que a partir de ese momento cambió de
nombre por motivos legales, convirtiéndose en SQL.

El prototipo (System R), basado en este lenguaje, se adoptó y utilizó


internamente en IBM y lo adoptaron algunos de sus clientes elegidos. Gracias
al éxito de este sistema, que no estaba todavía comercializado, también otras
compañías empezaron a desarrollar sus productos relacionales basados en
SQL. A partir de 1981, IBM comenzó a entregar sus productos relacionales y en
1983 empezó a vender DB2. En el curso de los años ochenta, numerosas
compañías (por ejemplo Oracle y Sybase, sólo por citar algunos)
comercializaron productos basados en SQL, que se convierte en el estándar
industrial de hecho por lo que respecta a las bases de datos relacionales.

ADMINISTRACIÓN DE BASE DE DATOS Página 12 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

3.3. CARACTERÍSTICAS

3.3.1. Características Básicas

 Seguridad: Protección de datos, Control de acceso.

 Integridad de datos: SQL Server proporciona los siguientes


mecanismos para exigir la integridad de datos en una columna
 Restricciones PRIMARY KEY
 Restricciones FOREIGN KEY
 Restricciones UNIQUE
 Restricciones CHECK
 Restricciones Default
 Permitir o denegar valores NULL
 Así como también admite distintos tipos de datos

 Concurrencia: Permite que varios usuarios usen la misma base de


datos al mismo tiempo controlando el acceso simultáneo mediante 2
modos de control de concurrencia.

 Recuperación: SQL Server cuenta con 3 formas diferentes de respaldo


y recuperación de base de datos
 SQL Server Management Studio: Herramienta gráfica de
administración para SQL Server 2005
 PowerShell: Interfaz avanzada de consola disponible para Microsoft,
Windows con posibilidad de interactuar con SQL Server
 TRANSACT-SQL: lenguaje propio de SQL Server.

 Diccionario de datos: Contiene palabras reservadas como cualquier


otro SGBD que permiten acceder a la información dela estructura de una
BD. Para crear una Base de Datos solo basta con crear un script que
obtenga dicha información.

 Almacenamiento y servicios en la nube

3.3.2. Características del servidor SQL SERVER 2014

OLTP en memoria
Proporciona funciones de OLTP en memoria integradas en la base de datos
central de SQL Server para mejorar en forma significativa la velocidad y el
rendimiento de las transacciones en su aplicación de base de datos. OLTP en
memoria se instala con el motor de SQL Server 2014 y no requiere de acciones
adicionales. Además, entrega los beneficios del rendimiento en memoria sin
necesidad de reescribir la aplicación de base de datos ni de actualizar el

ADMINISTRACIÓN DE BASE DE DATOS Página 13 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

hardware. OLTP en memoria le permite acceder a las demás características


sofisticadas de SQL Server, mientras saca ventaja del rendimiento en memoria.

Almacén de columnas actualizable en memoria


Proporciona una compresión mayor, consultas más sofisticadas y la capacidad
de actualizar el almacén de columnas existente para las cargas de trabajo de
almacenamiento de datos, lo que mejora aún más la velocidad de carga, el
rendimiento de las consultas, la concurrencia e incluso reduce el precio por
terabyte.

Extensión de la memoria a SSD


Integra en forma transparente y sin fisuras el almacenamiento en estado sólido
en SQL Server al utilizar las unidades SSD como una extensión del grupo de
búfer de la base de datos, lo que permite aumentar el procesamiento en
memoria y reduce la E/S en disco.

Alta disponibilidad mejorada


Nuevas funciones AlwaysOn: los grupos de disponibilidad ahora permiten hasta
ocho réplicas secundarias que permanecen disponibles para lecturas en todo
momento, incluso en el caso de errores de red. Las instancias de los clústeres
de conmutación por error ahora son compatibles con los volúmenes
compartidos de clúster de Microsoft, lo que aumenta el uso del
almacenamiento compartido y mejora la resistencia ante la conmutación por
error.

Operaciones en línea mejoradas de la base de datos: incluye la reconstrucción


en línea del índice de una sola partición y la administración de prioridad de
bloqueo para el conmutador de partición de tablas, lo que reduce el impacto
por tiempos de inactividad debido a mantenimiento.

Copias de seguridad cifradas: permite cifrar las copias de seguridad en las


instalaciones locales y en Microsoft Azure.

Gobierno de recursos de E/S: los grupos de recursos ahora permiten configurar


IOPS mínimas y máximas en cada volumen, lo que ofrece controles más
completos para aislar los recursos.

Escenarios híbridos
Copias de seguridad de SQL Server en Azure: proporciona una administración y
automatización de las copias de seguridad de SQL Server (desde las
instalaciones locales y Microsoft Azure) al almacenamiento de Microsoft Azure.

AlwaysOn mediante réplicas secundarias de Azure: agregue fácilmente réplicas


en Microsoft Azure a los grupos de disponibilidad locales.

ADMINISTRACIÓN DE BASE DE DATOS Página 14 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

SQL XI (integración con XStore): compatibilidad con los archivos de base de


datos de SQL Server (desde las instalaciones locales y Microsoft Azure) en los
blobs de almacenamiento de Microsoft Azure.

Asistente de implementación: implemente fácilmente las bases de datos


locales de SQL Server en Microsoft Azure.

3.3.3. Tamaño máximo de una base de datos

En la siguiente tabla se especifican el tamaño y la cantidad máxima de


diversos objetos definidos en las bases de datos de SQL Server o a los que se
hace referencia en las instrucciones Transact-SQL.

Objeto SQL Server Tamaños máximo SQL Tamaños máximo


Motor de base de Server (32 bits) SQL Server (64
datos bits)
Tamaño de archivo 16 terabytes 16 terabytes
(datos)
Tamaño de archivo 2 terabytes 2 terabytes
(registro)
Tamaño de la base de 524.272 terabytes 524.272 terabytes
datos
Bases de datos por 32.767 32.767
instancia de SQL Server
Niveles de 32 32
procedimientos
almacenados anidados
Subconsultas anidadas 32 32
Niveles de 32 32
desencadenadores
anidados
Índices no clúster por 999 999
tabla
Parámetros por 2,100 2,100
procedimiento
almacenado
REFERENCES por tabla 253 253
Columnas por instrucción 4096 4096
UPDATE (tablas anchas)

3.4. TRANSACT- SQL (MOTOR DE BASE DE DATOS)

TRANSACT-SQL es fundamental para trabajar con SQL Server. Todas las


aplicaciones que se comunican con SQL Server lo hacen enviando instrucciones
TRANSACT-SQL al servidor, independientemente de la interfaz de usuario de la
aplicación.

ADMINISTRACIÓN DE BASE DE DATOS Página 15 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

TRANSACT-SQL es un lenguaje muy potente que nos permite definir casi


cualquier tarea que queramos efectuar sobre la base de datos. TRANSACT-SQL
va más allá de un lenguaje SQL cualquiera ya que incluye características
propias de cualquier lenguaje de programación, características que nos
permiten definir la lógica necesaria para el tratamiento de la información:

 Tipos de datos.
 Definición de variables.
 Estructuras de control de flujo.
 Gestión de excepciones.
 Funciones predefinidas.
 Sin embargo no permite:
 Crear interfaces de usuario.
 Crear aplicaciones ejecutables, sino elementos que en algún momento
llegarán al servidor de datos y serán ejecutados.

Debido a estas restricciones se emplea generalmente para crear


procedimientos almacenados, triggers y funciones de usuario.

Puede ser utilizado como cualquier SQL como lenguaje embebido en


aplicaciones desarrolladas en otros lenguajes de programación como Visual
Basic, C, Java, etc. Y por supuesto los lenguajes incluidos en la plataforma .NET.

También lo podremos ejecutar directamente de manera interactiva, por


ejemplo desde el editor de consultas de SSMS (SQL Server Management
Studio) el entorno de gestión que ya conocemos. Esta es la forma en que lo
utilizaremos nosotros.

3.4.1. Consulta MULTITABLA

Para obtener datos de varias tablas tenemos que combinar estas tablas
mediante alguna operación basada en el álgebra relacional. El álgebra
relacional define una serie de operaciones cuyos operandos son tablas y cuyo
resultado es también una tabla.

Las operaciones de álgebra relacional implementadas en TRANSACT-SQL son:

 La unión UNION
 La diferencia EXCEPT
 La intersección INTERSECT
 El producto cartesiano CROSS JOIN
 La composición interna INNER JOIN
 La composición externa LEFT JOIN, RIGHT JOIN Y FULL JOIN

ADMINISTRACIÓN DE BASE DE DATOS Página 16 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

3.4.2. Subconsultas

Una subconsulta es una consulta que aparece dentro de otra consulta o


subconsultas, en la lista de selección o en la cláusula WHERE o HAVING,
originalmente no se podían incluir en la lista de selección.

Una subconsulta se denomina también consulta o selección interna, mientras


que la instrucción que contiene la subconsulta es conocida como consulta o
selección externa.

Aparece siempre encerrada entre paréntesis y tiene la misma sintaxis que una
sentencia SELECT normal con alguna limitación:

No puede incluir una cláusula COMPUTE o FOR BROWSE y sólo puede incluir
una cláusula ORDER BY cuando se especifica también una cláusula TOP.

Una subconsulta puede anidarse en la cláusula WHERE o HAVING de una


instrucción externa SELECT, INSERT, UPDATE o DELETE, o bien en otra
subconsulta. Se puede disponer de hasta 32 niveles de anidamiento, aunque el
límite varía dependiendo de la memoria disponible y de la complejidad del
resto de las expresiones de la consulta. Hay que tener en cuenta que para cada
fila de la consulta externa, se calcula la subconsulta, si anidamos varias
consultas, el número de veces que se ejecutarán las subconsultas ¡puede
dispararse!

Cuando la subconsulta aparece en la lista de selección de otra consulta, deberá


devolver un solo valor, de lo contrario provocará un error.

3.4.3. Programación en TRANSACT SQL

Ahora veremos que TRANSACT-SQL va más allá de un lenguaje SQL cualquiera


ya que aunque no permita:

 Crear interfaces de usuario.


 Crear aplicaciones ejecutables, sino elementos que en algún momento
llegarán al servidor de datos y serán ejecutados.

Incluye características propias de cualquier lenguaje de programación,


características que nos permiten definir la lógica necesaria para el tratamiento
de la información:

 Tipos de datos.
 Definición de variables.
 Estructuras de control de flujo.

ADMINISTRACIÓN DE BASE DE DATOS Página 17 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

 Gestión de excepciones.
 Funciones predefinidas.
 Elementos para la visualización, que permiten mostrar mensajes
definidos por el usuario gracias a la cláusula PRINT.

Estas características permiten crear bloques de código orientados a realizar


operaciones más complejas. Estos bloques no son programas sino
procedimientos o funciones que podrán ser llamados en cualquier momento.

En SQL Server podemos definir tres tipos de bloques de código, los


procedimientos almacenados, los desencadenadores (o triggers) y funciones
definidas por el usuario.

3.4.4. Procedimientos almacenados STORE PROCEDURE

Un procedimiento almacenado (STORE PROCEDURE) está formado por un


conjunto de instrucciones Transact-SQL que definen un determinado proceso,
puede aceptar parámetros de entrada y devolver un valor o conjunto de
resultados. Este procedimiento se guarda en el servidor y puede ser ejecutado
en cualquier momento.

Los procedimientos almacenados se diferencian de las instrucciones SQL


ordinarias y de los lotes de instrucciones SQL en que están precompilados. La
primera vez que se ejecuta un procedimiento, el procesador de consultas de
SQL Server lo analiza y prepara un plan de ejecución que se almacena en una
tabla del sistema. Posteriormente, el procedimiento se ejecuta según el plan
almacenado. Puesto que ya se ha realizado la mayor parte del trabajo de
procesamiento de consultas, los procedimientos almacenados se ejecutan casi
de forma instantánea por lo que el uso de procedimientos almacenados mejora
notablemente la potencia y eficacia del SQL.

SQL Server incorpora procedimientos almacenados del sistema, se encuentran


en la base de datos master y se reconocen por su nombre, todos tienen un
nombre que empieza por sp_. Permiten recuperar información de las tablas del
sistema y pueden ejecutarse en cualquier base de datos del servidor.

También están los procedimientos de usuario, los crea cualquier usuario que
tenga los permisos oportunos.

Se pueden crear también procedimiento temporales locales y globales. Un


procedimiento temporal local se crea por un usuario en una conexión
determinada y sólo se puede utilizar en esa sesión, un procedimiento temporal
global lo pueden utilizar todos los usuarios, cualquier conexión puede ejecutar
un procedimiento almacenado temporal global. Éste existe hasta que se cierra

ADMINISTRACIÓN DE BASE DE DATOS Página 18 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

la conexión que el usuario utilizó para crearlo, y hasta que se completan todas
las versiones del procedimiento que se estuvieran ejecutando mediante otras
conexiones. Una vez cerrada la conexión que se utilizó para crear el
procedimiento, éste ya no se puede volver a ejecutar, sólo podrán finalizar las
conexiones que hayan empezado a ejecutar el procedimiento.

Tanto los procedimientos temporales como los no temporales se crean y


ejecutan de la misma forma, el nombre que le pongamos indicará de qué tipo
es el procedimiento.

Los procedimientos almacenados se crean mediante la sentencia CREATE


PROCEDURE y se ejecutan con EXEC (o EXECUTE). Para ejecutarlo también se
puede utilizar el nombre del procedimiento almacenado sólo, siempre que sea
la primera palabra del lote. Para eliminar un procedimiento almacenado
utilizamos la sentencia DROP PROCEDURE.

3.5. ADMINISTRACIÓN

3.5.1. Instalación

La instalación de SQL Server no representa mayores problemas, ya que muchas


distribuciones incluyen paquetes con los que realizar la instalación y
configuración básica. A continuación

Requisitos software y hardware para SQL Server 2014:

Compone Requisito
nte
.NET .NET 3.5 SP1 es un requisito para SQL Server 2014
Framewor cuando se selecciona Motor de base de datos,
k Reporting Services, Master Data Services, Data
Quality Services, Replicación o SQL Server
Management Studio, y no lo instala ya el programa
de instalación de SQL Server.
.NET 4.0 es un requisito para SQL Server 2014. SQL
Server instala .NET 4.0 durante el paso de instalación
de características.
Windows SQL Server 2014 no instala ni habilita Windows
PowerShe PowerShell 2.0; sin embargo, Windows PowerShell 2.0
ll es un requisito previo de instalación para los
componentes del Motor de base de datos y SQL
Server Management Studio.
Software Los sistemas operativos admitidos para SQL Server
de red 2014 tienen software de red integrado. Las instancias
con nombre y predeterminadas de una instalación

ADMINISTRACIÓN DE BASE DE DATOS Página 19 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

independiente admiten los siguientes protocolos de


red: Memoria compartida, Canalizaciones con
nombre, TCP/IP y VIA.
Virtualiza SQL Server 2014 se admite en entornos de máquina
ción virtual que se ejecutan en el rol Hyper-V de:
 Windows Server 2008 SP2 Standard, Enterprise y
Datacenter
 Ediciones Windows Server 2008 R2 SP1 Standard,
Enterprise y Datacenter.
 Windows Server 2012 Datacenter y Standard.
Disco SQL Server 2014 requiere un mínimo de 6 GB de
duro espacio disponible en disco.
Las necesidades de espacio en disco variarán según
los componentes de SQL Server 2014 que instale.
Unidad Para la instalación desde disco se necesita una
unidad de DVD.
Monitor SQL Server 2014 requiere Super VGA (800x600) o un
monitor de una resolución mayor.
Internet La funcionalidad de Internet necesita acceso a
Internet (no necesariamente de carácter gratuito).

Requisitos de procesador, memoria y sistema operativo

Componente Requisito
Memoria Mínimo:
Ediciones Express: 512 MB
Todas las demás ediciones: 1 GB
Se recomienda:
Ediciones Express: 1 GB
Todas las demás ediciones: al menos 4 GB y debe
aumentar a medida que el tamaño de la base de
datos aumente para asegurar un rendimiento
óptimo.
Velocidad Mínimo:
del  Procesador x86: 1,0 GHz
procesador  Procesador x64: 1,4 GHz
Recomendado: 2 GHz o más
Tipo de  Procesador x64: AMD Opteron, AMD Athlon 64,
procesador Intel Xeon compatible con Intel EM64T Intel
Pentium IV compatible con EM64T
 Procesador x86: compatible con Pentium III o
superior

3.5.2. Administración de la Seguridad

ADMINISTRACIÓN DE BASE DE DATOS Página 20 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

Un usuario es una entidad de seguridad de la base de datos. Los inicios de


sesión deben estar asignados a un usuario de base de datos para poder
conectarse a una base de datos.

En SQL server se puede crear inicios de sesión con autenticación en Windows y


autenticación en SQL Server con sus respectivos permisos. SQL Server usa
permisos para controlar el acceso a los protegibles por parte de las entidades
de seguridad.

Autenticación de Windows: En este modo de autenticación, los usuarios


obtienen acceso al servidor SQL Server mediante un inicio de sesión asignado a
sus cuentas de Windows.

Ventajas:

 Permite agregar grupos de usuarios a SQL Server mediante la


agregación de una cuenta de inicio de sesión única.
 Permite a los usuarios un rápido acceso a SQL Server sin tener que
recordar otra cuenta de inicio de sesión y contraseña.

Autenticación SQL: En este modo de autenticación, los usuarios obtienen


acceso a SQL Server mediante un inicio de sesión asignado a sus cuentas de
SQL Server.

Modificar inicios de sesión: Se puede modificar un inicio de sesión con la


instrucción ALTER LOGIN o con el explorador de objetos, que puede ser para
cambiar su contraseña.

Eliminar inicios de sesión: Se puede eliminar inicios de sesión con la


instrucción DROP LOGIN o con el explorador de objetos.

Tipos de usuarios: Se puede tener dos tipos de usuario:

 Usuario dbo: Son usuarios especiales con la función sysadmin, por


ejemplo el inicio de sesión “a” se encuentra en todas las base de datos.
El usuario dbo es una cuenta predeterminada y no puede eliminarse.
 Usuario invitado: Permite inicios de sesión sin cuentas de usuario para
tener acceso a una base de datos.

Permisos: Asignar los permisos a los usuarios es muy importante, ya que de


ello va a depender la seguridad de la base de datos; por ejemplo: no se puede
conceder las opciones de eliminar, agregar o cambiar a un usuario que su rol
en una empresa solo sea de consultar datos; entre las funciones que nos brinda
SQL server son:

ADMINISTRACIÓN DE BASE DE DATOS Página 21 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

FUNCION DESCRIPCIÓN
db_accessadmin Agregar o quitar usuarios, grupos
y funciones de la base de datos.
db_backupoperator Realizar una copia de seguridad
de la base de datos
db_datareader Leer datos de cualquier tabla.
db_datawriter Agregar, cambiar o eliminar datos
de cualquier tabla
db_ddladmin Agregar, eliminar o modificar
objetos de la base de datos
db_denydatareader No poder leer datos de ninguna
tabla
db_denydatawriter No poder cambiar datos de
ninguna tabla.
db_owner Realizar cualquier actividad de
función de la base de datos
public Mantener los permisos
predeterminados

3.5.3. Organización de archivos

La organización de archivos de SQL Server es de forma indexada utilizando dos


archivos, uno de datos que contiene la información de la base de datos (tablas)
que permite que las consultas realizadas sean más rápidas, se puede acceder a
los registros de forma secuencial y también de forma aleatoria(usando el
índice).

En SQL Server, los índices se organizan como árboles b. Las páginas de un


árbol b de índice se llaman nodos del índice. El nodo superior del árbol b se
llama nodo raíz. El nivel inferior de los nodos del índice se denomina nodos
hoja. Los niveles del índice entre el nodo raíz y los nodos hoja se conocen en
conjunto como niveles intermedios. En un índice agrupado, los nodos hoja
contienen las páginas de datos de la tabla subyacente. El nodo raíz y los nodos
intermedios incluyen páginas de índice que contienen filas de índice. Cada fila
de índice contiene un valor clave y un puntero a una página de nivel
intermedio en el árbol b, o bien a una fila de datos del nivel hoja del índice. Las
páginas de cada nivel del índice se vinculan en una lista con vínculos dobles.

Los índices agrupados tienen una fila en sys.partitions, con index_id = 1 para
cada partición utilizada por el índice. De forma predeterminada, un índice
agrupado tiene una sola partición. Cuando un índice agrupado tiene múltiples
particiones, cada partición tiene una estructura de árbol b que contiene los
datos de esa partición específica. Por ejemplo, si un índice agrupado tiene
cuatro particiones, hay cuatro estructuras de árbol b, una en cada partición.

ADMINISTRACIÓN DE BASE DE DATOS Página 22 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

En función de los tipos de datos del índice agrupado, cada estructura de índice
agrupado tendrá una o más unidades de asignación en las que almacenar y
administrar los datos de una partición específica. Como mínimo, cada índice
agrupado tendrá una unidad de asignación IN_ROW_DATA por partición. El
índice agrupado también tendrá una unidad de asignación LOB_DATA por
partición si contiene columnas de objetos grandes (LOB). También tendrá una
unidad de asignación ROW_OVERFLOW_DATA por partición si contiene
columnas de longitud variable que superen el límite de tamaño de fila de 8.060
bytes.

Las páginas de la cadena de datos y las filas que contienen se ordenan según
el valor de la clave de índice agrupado. Todas las inserciones se hacen en el
punto en el que el valor de clave de la fila insertada quede dentro de la
secuencia de orden entre las filas existentes. Las colecciones de páginas del
árbol b están delimitadas por punteros de página en la vista del sistema
sys.system_internals_allocation_units.

En un índice agrupado, lancolumna root_page de


sys.system_internals_allocation _units apunta al nivel superior del índice
agrupado para una partición específica. SQL Server baja en el índice para
buscar la fila correspondiente a una clave de índice agrupado. Para buscar un
intervalo de claves, SQL Server se desplaza por el índice hasta encontrar el
valor de clave inicial del intervalo y después recorre las páginas de datos
mediante los punteros anterior y siguiente. Para buscar la primera página de la
cadena de páginas de datos, SQL Server sigue los punteros situados más a la
izquierda desde el nodo raíz del índice.

En esta ilustración se muestra la estructura de un índice agrupado en una sola


partición.

ADMINISTRACIÓN DE BASE DE DATOS Página 23 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

3.5.4. Organización de Tablas

Las tablas y los índices se almacenan como una colección de páginas de 8 KB.
En este tema se describe el modo en el que se organizan las páginas de tablas
e índices.

En la siguiente ilustración se muestra la organización de una tabla. Una tabla


está incluida en una o varias particiones y cada partición incluyen filas de
datos con una estructura de índice clúster o de montón. Las páginas del índice
clúster o de montón se administran en una o varias unidades de asignación,
según los tipos de columna de las filas de datos.

ADMINISTRACIÓN DE BASE DE DATOS Página 24 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

Particiones
Las páginas de tablas e índices están incluidas en una o varias particiones. Una
partición es una unidad de organización de datos definida por el usuario. De
forma predeterminada, una tabla o un índice solo incluyen una partición que
contiene todas las páginas de tablas o índices. La partición se encuentra en un
solo grupo de archivos. Una tabla o un índice con una sola partición es
equivalente a la estructura organizativa de tablas e índices de versiones
anteriores de SQL Server.
Cuando una tabla o un índice utilizan varias particiones, se crean particiones
horizontales de los datos para que se asignen los grupos de filas a particiones
individuales, en función de la columna especificada. Las particiones se pueden
colocar en uno o varios grupos de archivos de la base de datos. La tabla o el
índice se tratarán como una sola entidad lógica cuando se realicen consultas o
actualizaciones en los datos.

Para ver las particiones utilizadas por una tabla o un índice, utilice la vista de
catálogo sys.partitions (Transact-SQL).

Tablas, montones e índices clúster


Las tablas de SQL Server utilizan uno de estos dos métodos para organizar sus
páginas de datos en una partición:
 Las tablas agrupadas son tablas que tienen un índice clúster.
 Las filas de datos están almacenadas en un orden basado en la clave del
índice clúster. El índice clúster se implementa como una estructura de
árbol b que admite la recuperación rápida de las filas a partir de los
valores de las claves del índice clúster. Las páginas de cada nivel del

ADMINISTRACIÓN DE BASE DE DATOS Página 25 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

índice, incluidas las páginas de datos del nivel hoja, se vinculan en una
lista con vínculos dobles. Sin embargo, la navegación de un nivel a otro.

3.5.5. Copias de Seguridad

Una copia de seguridad completa de la base de datos crea una copia de


seguridad de toda la base de datos, que incluye parte del registro de
transacciones para que se pueda recuperar la copia de seguridad completa de
la base de datos. Las copias de seguridad completas representan la base de
datos en el momento en que finalizó la copia de seguridad.

Las copias de seguridad de bases de datos son fáciles de utilizar. Una copia de
seguridad completa de una base de datos contiene todos los datos de la base
de datos. Para las bases de datos pequeñas, de las que se puede hacer una
copia de seguridad con rapidez, la práctica recomendada es utilizar copias de
seguridad completas de la base de datos. Sin embargo, a media que la base de
datos aumenta de tamaño, las copias de seguridad completas requieren una
mayor cantidad de tiempo y espacio de almacenamiento. Por ello, para una
base de datos grande, puede que desee complementar las copias de seguridad
completas con copias de seguridad diferenciales.

Usar copias de seguridad de la base de datos en el modelo de


recuperación simple
Con el modelo de recuperación simple, después de cada copia de seguridad, la
base de datos queda expuesta a la pérdida potencial del trabajo en caso de
desastre. El riesgo de pérdida del trabajo se incrementa con cada actualización
hasta la siguiente copia de seguridad completa, cuando el riesgo de pérdida
vuelve a cero y empieza un nuevo ciclo de riesgo.

Con el modelo de recuperación simple, el riesgo de pérdida del trabajo se


incrementa a lo largo del tiempo que transcurre entre las copias de seguridad.
La siguiente ilustración muestra el riesgo de pérdida del trabajo en una
estrategia de copia de seguridad que solo utiliza copias de seguridad
completas de la base de datos.

ADMINISTRACIÓN DE BASE DE DATOS Página 26 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

Usar copias de seguridad de la base de datos en el modelo de


recuperación completa
Las bases de datos que usan el modelo de recuperación completa y el modelo
de recuperación optimizado para cargas masivas de registros, requieren copias
de seguridad del registro de transacciones. La siguiente ilustración muestra la
estrategia de copia de seguridad menos compleja en un modelo de
recuperación completa.

Copias de seguridad diferenciales de bases de datos

ADMINISTRACIÓN DE BASE DE DATOS Página 27 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

Una copia de seguridad diferencial de la base de datos registra sólo los datos
que han cambiado desde la última copia de seguridad completa de la base de
datos. Esta copia de seguridad completa se llama base diferencial. Las copias
de seguridad diferenciales de base de datos son más pequeñas y rápidas que
las copias de seguridad completas de base de datos. Esto ahorra tiempo de
copia de seguridad pero aumenta la complejidad. Para bases de datos grandes,
las copias de seguridad diferenciales pueden producirse en intervalos menores
que las copias de seguridad de base de datos. Esto disminuye el riesgo de
pérdida del trabajo.

Las copias de seguridad diferenciales de bases de datos son particularmente


útiles si un subconjunto de una base de datos se modifica con más frecuencia
que el resto de la base de datos. En tales casos, las copias de seguridad
diferenciales de bases de datos le permiten hacer una copia de seguridad con
frecuencia sin la sobrecarga que generan las copias de seguridad completas de
bases de datos.

Estrategia de las copias de seguridad diferenciales de bases de datos


(modelo de recuperación simple)

Con el modelo de recuperación simple, el riesgo de pérdida de trabajo entre


copias de seguridad aumenta con el tiempo. La siguiente ilustración muestra
una estrategia de copia de seguridad que reduce el riesgo de pérdida del
trabajo mediante la utilización de copias de seguridad de bases de datos
complementadas con copias de seguridad diferenciales de bases de datos. Tras
la primera copia de seguridad de la base de datos, se realizan tres copias de
seguridad diferenciales. La tercera copia de seguridad diferencial tiene el
tamaño suficiente como para que la próxima copia de seguridad sea una copia
de seguridad de base de datos. Esta copia de seguridad de base de datos
establece una nueva base diferencial.

ADMINISTRACIÓN DE BASE DE DATOS Página 28 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

Estrategia de las copias de seguridad diferenciales de bases de datos


(modelo de recuperación completa)
Con el modelo de recuperación completa y el de recuperación optimizada para
cargas masivas de registros, las copias de seguridad diferenciales de la base
de datos reducen el tiempo necesario para poner al día las copias de seguridad
del registro de transacciones cuando se restaura una base de datos. Una copia
de seguridad diferencial de la base de datos restaura la base de datos hasta el
punto en el que terminó la copia de seguridad diferencial.

La siguiente figura muestra una estrategia de copia de seguridad que


complementa las copias de seguridad completas de la base de datos con las
copias de seguridad diferenciales, así como una serie de copias de seguridad
de registros rutinarias. La presencia de copias de seguridad del registro de
transacciones reduce el posible riesgo de pérdida de trabajo al momento
después de la copia de seguridad de registros más reciente. Tras la primera
copia de seguridad de la base de datos, se realizan tres copias de seguridad
diferenciales. La tercera copia de seguridad diferencial tiene el tamaño
suficiente como para que la próxima copia de seguridad sea una copia de
seguridad de base de datos completa. Esta copia de seguridad de base de
datos completa establece una nueva base diferencial.

ADMINISTRACIÓN DE BASE DE DATOS Página 29 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

Antes de la primera copia de seguridad de la base de datos en esta ilustración,


la base de datos está expuesta a una posible pérdida de trabajo (de la hora t0
a la hora t1). Por tanto, las copias de seguridad de registros rutinarias reducen
el riesgo de pérdida de trabajo a la posibilidad de perder los cambios realizados
después de la última copia de seguridad de registros (realizada a la hora t14).

Si se produce un error de disco, el administrador de la base de datos debe


intentar realizar inmediatamente una copia de seguridad del registro activo (el
final del registro). Si esta copia del final del registro se realiza correctamente, la
base de datos se puede restaurar hasta el momento del error.

3.5.6. Replicación

La replicación es un conjunto de tecnologías destinadas a la copia y


distribución de datos y objetos de base de datos desde una base de datos a
otra, para luego sincronizar ambas bases de datos y mantener su coherencia.
La replicación permite distribuir datos entre diferentes ubicaciones y entre
usuarios remotos o móviles mediante redes locales y de área extensa,
conexiones de acceso telefónico, conexiones inalámbricas e Internet.

La replicación transaccional se usa normalmente en escenarios servidor a


servidor que requieren un alto rendimiento, como por ejemplo, la mejora de la
escalabilidad y la disponibilidad, el almacenamiento de datos y la creación de

ADMINISTRACIÓN DE BASE DE DATOS Página 30 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

informes, la integración de datos procedentes de varios sitios, la integración de


datos heterogéneos, y la descarga del procesamiento por lotes. La replicación
de mezcla se ha diseñado principalmente para las aplicaciones móviles o de
servidores distribuidos que pueden encontrarse con conflictos de datos. Los
escenarios más frecuentes son: el intercambio de datos con usuarios móviles,
las aplicaciones de punto de venta (POS) a consumidores, y la integración de
datos de varios sitios. La replicación de instantáneas se usa para proporcionar
el conjunto de datos inicial para la replicación transaccional y de mezcla;
también se puede usar cuando está indicada una actualización completa de los
datos. Con estos tres tipos de replicación, SQL Server proporciona un sistema
eficaz y flexible para la sincronización de datos en toda la organización. La
replicación en SQLCE 3.5 y SQLCE 4.0 se admite tanto en Windows Server 2012
como en Windows 8.

3.6. SQL SERVER INTEGRATION SERVICES

Microsoft Integration Services es una plataforma para la creación de soluciones


empresariales de transformaciones de datos e integración de datos. Integration
Services sirve para resolver complejos problemas empresariales mediante la
copia o descarga de archivos, el envío de mensajes de correo electrónico como
respuesta a eventos, la actualización de almacenamientos de datos, la limpieza
y minería de datos, y la administración de objetos y datos de SQL Server. Los
paquetes pueden funcionar en solitario o junto con otros paquetes para hacer
frente a las complejas necesidades de la empresa. Integration Services puede
extraer y transformar datos de diversos orígenes como archivos de datos XML,
archivos planos y orígenes de datos relacionales y, después, cargar los datos
en uno o varios destinos.

Integration Services contiene un variado conjunto de tareas y transformaciones


integradas, herramientas para la creación de paquetes y el servicio Integration
Services para ejecutar y administrar los paquetes. Las herramientas gráficas de
Integration Services se pueden usar para crear soluciones sin escribir una sola
línea de código. También se puede programar el amplio modelo de objetos de
Integration Services para crear paquetes mediante programación y codificar
tareas personalizadas y otros objetos de paquete.

3.6.1. Características y tareas de Integration Services

Entornos IDE e Integration Services (SSIS)


SQL Server 2012 Integration Services incluye dos IDEs para trabajar con
Integration Services:
 SQL Server Data Tools (SSDT) para desarrollar los paquetes Integration
Services que una solución empresarial requiere. SQL Server Data Tools

ADMINISTRACIÓN DE BASE DE DATOS Página 31 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

(SSDT) proporciona el proyecto de Integration Services en el que se


crean paquetes.
 SQL Server Management Studio para administrar paquetes en un
entorno de producción.

3.7. SQL Server Data Tools (SSDT)

Al trabajar en SQL Server Data Tools (SSDT), se pueden realizar las siguientes
tareas:
 Ejecutar el Asistente para importación y exportación de SQL Server para
crear paquetes básicos que copian datos de un origen en un destino.
 Crear paquetes que incluyan flujo de control complejo, flujo de datos,
lógica controlada por eventos y registro.
 Probar y depurar paquetes mediante las características de solución de
problemas y supervisión en el Diseñador SSIS, y las características de
depuración en SQL Server Data Tools (SSDT).
 Crear configuraciones que actualizan las propiedades de los paquetes y
los objetos de paquete en el tiempo de ejecución.
 Crear una utilidad de implementación que pueda instalar paquetes y sus
dependencias en otros equipos.
 Guardar copias de paquetes en la base de datos msdb de SQL Server, el
Almacén de paquetes de SSIS y el sistema de archivos.

4. VENTAJAS

Dado que las aplicaciones de red y web cada vez se vuelven más significantes,
la importancia de sistemas de administración de bases de datos relacionales
también se incrementa. Seleccionar la adecuada de acuerdo a las necesidades
es esencial para asegurar la calidad y el desempeño adecuado de las
aplicaciones. Microsoft SQL Server presenta las siguientes cualidades:

ADMINISTRACIÓN DE BASE DE DATOS Página 32 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

Software de Administración de Nivel Empresarial

Microsoft SQL Server incluye software de administración de base de datos de


nivel profesional y empresarial. Pocos competidores, como MySQL, han
desarrollado software similar en años recientes, pero Microsoft SQL Server se
diferencia por ser más fácil de usar, además de tener más funcionalidades.
Soporte completo para disparadores (triggers), por ejemplo, son compatibles
con los productos de Microsoft. MySQL Server ha incluido esta característica,
sin embargo, sin el completo soporte necesario. El software ofrecido por
Microsoft también ofrece una estrecha integración con .NET framework, el cual
no es el caso de sus competidores.

Excelente Soporte de Recuperación de Datos

Los datos corruptos son siempre una preocupación cuando se producen


pérdidas de energía o paradas incorrectas. Microsoft SQL Server posee una
serie de características que facilitan la recuperación y restauración de datos.
Aunque tablas individuales no pueden ser recuperadas o restauradas, están
disponibles opciones de recuperación de bases de datos completas. Mediante
el uso de archivos de registro, almacenamiento en caché, y copias de
seguridad, Microsoft SQL Server previene futuras complicaciones debido
perdidas de datos, ofreciendo múltiples opciones de recuperación.

Seguridad y Estabilidad

Muchos servidores SQL están diseñados para el uso de grandes conjuntos de


datos y el manejo de muchos usuarios. Cuando se enfrenta esta situación, es
decir, múltiples usuarios y enromes cantidades de datos, se necesita un
sistema fiable (lo que significa que no se “congela” a menudo) y seguro (lo cual
se traduce en difícil acceso no autorizado). Microsoft SQL Server tiene
herramientas como Administración Basada en Políticas (Poilicy-Based
Managment) que permite a los administradores de la base de datos el poder
definir políticas para los datos y el recibir alertas cuando estas políticas son
violadas. Otra característica adicional, es que Microsoft SQL Server puede cifrar
toda la base de datos, incluyendo los datos y archivos de registro, haciendo de
este modo que el servidor sea más seguro frente a eventuales ataques. Existen
también características de Administración de Claves Externas (External Key
Managment) que permiten soportar certificados de terceros e información
encriptada en una sección separada, por lo que se puede, por ejemplo,
manejar el procesamiento de tarjetas de crédito y permanecer en el
cumplimiento de las leyes actuales de la industria de tarjetas de créditos.

Instalación Simplificada

Microsoft SQL Server puede ser instalado usando asistentes de configuración


(setup-wizards); el instalador también detecta, descarga e instala cualquier

ADMINISTRACIÓN DE BASE DE DATOS Página 33 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

actualización pre-requisito requerida. Estas características reducen la


complejidad de instalar el software. Componentes individuales como Servicios
de Base de Datos, Servicios de Análisis e Integración de Servicios pueden ser
instalados de forma separada. Microsoft SQL Server actualiza automáticamente
los parches de seguridad para reducir los costes de mantenimiento.

Menores costos de propiedad

Microsoft SQL Server incluye características adicionales sin costo adicional,


como: Compresión Avanzada, herramientas de gestión de datos,
particionamiento de discos, herramientas de minería de datos, Reportes
Empresariales (Enterprise Reporting) y Seguridad Avanzada. Además, pese a
ligeras variaciones, las versiones más recientes de Microsft SQL Server poseen
compatibilidad con versiones anteriores, por lo que no hay necesidad de
actualizar todos los equipos.

5. DIFERENCIAS

A continuación se presenta cuadros comparativos, donde se muestran las


diferencias que existen entre los distintos motores de base de datos en la
actualidad.

Cuadro comparativo sobre Tablas y Vistas que son soportados


nativamente

Cuadro comparativo sobre Índices que son soportados nativamente

ADMINISTRACIÓN DE BASE DE DATOS Página 34 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

ADMINISTRACIÓN DE BASE DE DATOS Página 35 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

Cuadro comparativo sobre Otros Objetos más comunes en los motores


de BD

Cuadro comparativo sobre Particionamiento que son soportados


nativamente

6. COSTOS

SQL Server, la amplia plataforma de base datos de Microsoft, ofrece un


rendimiento fiable gracias a la integración de tecnologías en memoria, una
rápida obtención de información útil a partir de cualquier tipo de datos, con
herramientas que todos conocemos, como Excel, y una plataforma para
compilar, implementar y administrar soluciones tanto locales como en nube.

SQL
Canal de
Server Modelo de Precio Open
Propósito Distribució
2014 Licencias NL (US$)
n
editions
Enterpri Enterprise - SQL Server Por Licencias $14,256***
se 2014 Enterprise pone a núcleo** por
su disposición volumen,
rendimiento fiable y hosting de
completo para terceros
satisfacer los requisitos
de base de datos y

ADMINISTRACIÓN DE BASE DE DATOS Página 36 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

Business Intelligence
más exigentes La
edición Enterprise
proporciona los niveles
de servicio y
rendimiento más altos
para las cargas de
trabajo de nivel 1.
Busines Business Intelligence - Servidor + Licencias $8,908***
s SQL Server 2014 CAL**** por
intellige Business Intelligence volumen,
nce ofrece una plataforma hosting de
amplia que permite a terceros
las organizaciones
compilar e implementar
soluciones BI seguras,
escalables y
administrables.
Standar Standard - SQL Server Por Licencias $3,717***
d 2014 Standard núcleo** por
proporciona volumen,
funcionalidad de hosting de
Business Intelligence y terceros
administración de datos
básica para cargas de
trabajo que no son
críticas, con recursos de
TI mínimos.
Servidor + Licencias $931***
CAL**** por
volumen,
hosting de
terceros,
minorista
(FPP)
Develop Developer - SQL Server Por usuario Licencias $38***
er 2014 Developer es una por
versión completamente volumen,
funcional de SQL Server hosting de
que permite a los terceros,
desarrolladores minorista
compilar, probar y (FPP)
demostrar aplicaciones
con software de SQL
Server de una manera
rentable.

ADMINISTRACIÓN DE BASE DE DATOS Página 37 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

Web Web - SQL Server 2014 - Sólo hosting Según sea el


Web facilita una de terceros precio
plataforma de datos establecido
segura, rentable y por el
altamente escalable proveedor de
para sitios web públicos. hosting
La edición Web está
disponible solo para
proveedores de
servicios de software de
terceros.
Express Express - SQL Server - Descarga Gratuito
2014 Express es una gratuita
base de datos básica
gratuita, ideal para
aprender y para
compilar aplicaciones
de escritorio y pequeñas
aplicaciones de servidor
controladas por datos.
Novedad en SQL Server
2014: SQL Server
Express LocalDB.

* Los clientes que requieran un almacén de datos MPP ahora tienen acceso a
Parallel Data Warehouse (PDW) a través de sus licencias básicas Enterprise
Edition con Software Assurance. PDW es parte Analytics Platform System (APS)
**Ediciones vendidas bajo el modelo de licencia por núcleo se venden como
paquetes de dos núcleos.
***Los precios corresponden a Open No Level (NL) ERP. Para precios más
específicos, es necesario contactarse con un proveedor de Microsoft.
****Se requieren licencias CAL para cada usuario o dispositivo que acceda a un
servidor, bajo el modelo de licencia Servidor+CAL

7. USO DEL SOFTWARE EN LAS EMPRESAS

SQL Server 2014 ofrece un innovador rendimiento confiable gracias a


funcionalidades integradas en memoria y respaldadas por comparativas líderes
en el sector, partners y clientes.

En la siguiente tabla, se muestra las empresas INTERNACIONALES que usan


SQL SERVER, mostrando el tipo de aplicación en el que se ha usado, junto con
los resultados que se obtuvieron:

Tipo de EMPRESAS/Aplica Resultado


Aplicación ciones

ADMINISTRACIÓN DE BASE DE DATOS Página 38 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

Servicios de bwin.party Mejora del rendimiento


juego en línea transaccional que multiplica por
16 el actual, de 15.000
transacciones por segundo a
250.000 con SQL Server con OLTP
en memoria
La compañía de entretenimiento
digital en línea bwin.party ofrece
servicios de juego en línea y otros
productos a casi dos millones de
usuarios. Dado que la empresa
necesitaba más capacidad para el
rápido crecimiento del negocio y
mejorar el rendimiento del sitio web,
implementó una solución de
procesamiento de transacciones en
línea (OLTP) en memoria en Microsoft
SQL Server 2014. Ahora, la compañía
puede administrar 250.000 solicitudes
por segundo y ofrecer a los jugadores
una experiencia de juego más ágil y
fluido. bwin.party también espera
ahorrar hasta 100.000 USD en costes
de hardware, y está aumentando sus
ingresos.
Aceleración LSI Mejora del rendimiento
del transaccional que multiplica por
almacenamie 24 el actual, de 6.500
nto flash PCIe transacciones por segundo a
158.000 con SQL Server con OLTP
en memoria
Esta comparativa de LSI muestra una
mejora radical del rendimiento con la
nueva característica SQL Server 2014
con OLTP en memoria. Además, se
solicitó al equipo de rendimiento de
Microsoft SQL Server que cree un
entorno de pruebas interno que fuera
flexible y estable, y que eliminara el
almacenamiento como cuello de
botella del rendimiento. Para realizar
esta tarea, se utilizó SQL Server 2014
y las tarjetas LSI Nytro WarpDrive.
Aceleración Fusion-io Mejora radical del rendimiento

ADMINISTRACIÓN DE BASE DE DATOS Página 39 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

del mediante SQL Server 2014 con


almacenamie OLTP en memoria
nto flash PCIe Fusion-io ha realizado varias
comparativas con SQL Server 2014
con OLTP en memoria en las que se
muestran mejoras radicales del
rendimiento.
Administració Sistema de Un rendimiento transaccional un 9
n de pólizas administración de % mayor con respecto a SQL
de seguros pólizas de seguros Server 2008
de Accenture Duck Con más de 37.000 transacciones por
Creek hora, esta comparativa de Accenture y
HP modeló una mezcla compleja de
actividades de administración de
pólizas que una aseguradora
experimentaría durante un día activo
de procesamiento empresarial.
Basándose en datos recopilados de
tres aseguradoras diferentes de nivel
1, se demostró que Microsoft SQL
Server 2012 ofrece un aumento
significativo en el rendimiento.
Software Conjunto de Procesamiento de 14,8 millones
empresarial aplicaciones ECM de mensajes de correo electrónico
de OpenText en 24 horas
OpenText, líder global de
administración de contenido
empresarial (ECM), ayuda a las
organizaciones a administrar y a
obtener el verdadero valor de su
contenido empresarial. Durante el
estudio comparativo, la solución
OpenText Email Monitoring
ejecutándose en SQL Server 2012
procesó 14,8 millones de mensajes en
24 horas. Esta cantidad sobrepasa
cualquier resultado comparativo
publicado para soluciones de
supervisión de correo electrónico y es
aproximadamente 15 veces superior al
volumen típico de ingesta de mensajes
de organizaciones de gran tamaño que
procesan entre 1 y 1,5 millones de
mensajes al día.

ADMINISTRACIÓN DE BASE DE DATOS Página 40 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

Facturación Turnkey Converged Escalado a 250 millones de


de Billing (TCB) de suscriptores
telecomunica Redknee En estudios comparativos, la solución
ciones de facturación convergente (Turnkey
Converged Billing), integrada en SQL
Server 2012, ha evidenciado ser capaz
de admitir a 250 millones de
suscriptores. La prueba de los 250
millones de suscriptores excedió los
objetivos de rendimiento tanto en la
facturación como en la mediación, con
la generación de 26 millones de
facturas en un ciclo de facturación de
seis horas y la mediación de 4.900
millones registros de detalles de
llamadas en 12 horas. Esto mostró una
escalabilidad casi lineal a medida que
aumentaba el número de suscriptores.
Administració Teamcenter de Número de usuarios simultáneos
n del ciclo de Siemens duplicado a 10.000 y con un gran
vida del rendimiento
producto Las pruebas comparativas de
rendimiento realizadas por Siemens
PLM validaron el rendimiento y la
escalabilidad de Microsoft SQL Server
2012 como un sistema de
administración de bases de datos
empresariales para Teamcenter. Las
pruebas confirman que, cuando se
ejecuta en SQL Server 2012,
Teamcenter puede escalar fácilmente
a 10.000 usuarios simultáneos y
mantener un rendimiento excelente.
Servicios Temenos T24 Escalado lineal de un 95 %
financieros Microsoft SQL Server 2012, junto con
HP y XIO, batió el récord de
rendimiento de Temenos T24. En un
momento de máximo rendimiento, el
sistema procesó 11.500 transacciones
por segundo en pruebas empresariales
en línea y, de media, más de 10.000
capitalizaciones y devengos de
intereses por segundo durante las
pruebas de cierre de empresa, lo que

ADMINISTRACIÓN DE BASE DE DATOS Página 41 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

se traduce en un procesamiento de 25
millones de capitalizaciones y
devengos de cuentas en menos de 42
minutos.

En la siguiente tabla, se muestra las empresas NACIONALES que usan SQL


SERVER, junto con las aplicaciones en el que se ha usado el manejador de base
de datos:

EMPRESA Arquitectura Aplicaciones


S
Neptunia Sistemas Fuente: Sistemas Extranet para Clientes
s.a. Propios. Externos
ETL: DTS de MS SQL Track & Trace de Envíos
Base de Datos: MS SQL Server
Plataforma BI: MicroStrategy
Desktop Designer, Architect,
Intelligence Server SE, Web
Reporter.
AFP Sistemas Fuente: Sistemas Finanzas
Integra Propios
ETL: MS DTS
Base de Datos: MS SQL
Plataforma BI: MicroStrategy
Architect, Desktop Designer,
Intelligence Server SE y
Web Professional
Depsa Sistemas Fuente: Desarrollos Contabilidad
propios y pirámides Almacén
Base de Datos: MS SQL Ventas
Plataforma BI: MicroStrategy Existencias
Clientes
Finanzas
Hersil s.a. Sistemas Fuente: AS 400 e IMS Comercial
ETL: BI Tool y procesos de AS400 Prescripciones médicas
Base de Datos: MS SQL
Plataforma de BI:
MicroStrategy
Corporaci Sistemas Fuente: OfiSmart ERP. Ventas
ón ETL: Desarrollos propios (Stored Logística
Miyasato Procedures) Cuentas por Cobrar
Base de Datos: MS SQL 2005
Plataforma de BI:
MicroStrategy

ADMINISTRACIÓN DE BASE DE DATOS Página 42 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

Yichang Sistemas Fuente: SAP Ventas


ETL: DTS Rentabilidad
Base de Datos: MS SQL Finanzas
Plataforma BI: MicroStrategy Logística
Operaciones

8. APLICACIÓN

La aplicación se realizará en la base de datos AdventureWorks (una BD de la


compañía ficticia Adventure Works ), el cual será implementada utilizando
Microsoft SQL Server Managment Studio 2014:

8.1. Información acerca del negocio de la compañía


Adventure Works:
Adventure Works Cycles, la empresa ficticia en la que se basan las bases de
datos de ejemplo AdventureWorks, es una gran empresa de fabricación
multinacional. La empresa fabrica y vende bicicletas de metal y de metal
compuesto en los mercados de Norteamérica, Europa y Asia. Si bien su sede
central de operaciones se encuentra en Bothell, Washington, con 290
empleados, en toda su base de mercado tiene distribuidos varios equipos
regionales de ventas.

En el año 2000, Adventure Works Cycles compró una pequeña planta de


fabricación, Importadores Neptuno, situada en México. Importadores Neptuno
fabrica varios subcomponentes muy importantes para la línea de productos de
Adventure Works Cycles. Estos subcomponentes se envían a la sede de Bothell
para el ensamblado final del producto. En el año 2001, Importadores Neptuno
pasó a ser el único fabricante y distribuidor del grupo de productos de
bicicletas de paseo.

Tras un año fiscal con muy buenos resultados, Adventure Works Cycles está
intentando ampliar su cuota de mercado dirigiendo sus ventas a sus mejores
clientes, ampliando la disponibilidad de sus productos en un sitio web externo,
y reduciendo los costos de venta a través de costos de producción más bajos.

Los empleados de la compañía realizan actividades de negocio habituales tales


como:

 Ventas

 Establecimiento de objetivos de ventas y otros objetivos de negocio

 Entregas

ADMINISTRACIÓN DE BASE DE DATOS Página 43 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

 Administración de inventario

 Administración de ferias comerciales

 Administración de personal

 Definición de presupuestos

8.2. Sentencias DDL (Lenguaje de definición de datos):

8.2.1. Creación la Base de datos:

Se crea la base de datos llamada AdventureWorks, especificando la dirección


del archivo principal AdventureWorks2014_Data.mdf' (El cuál tiene
extensión .mdf y contiene todas las tablas), y el archivo de transacciones
AdventureWorks2014_Log.ldf (con extensión ldf. y que almacena los detalles
de todas las modificaciones sobre la base de datos)

:setvar SqlSamplesDatabasePath "C:\Program Files\Microsoft SQL


Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\"
:setvar SqlSamplesSourceDataPath "C:\Program Files\Microsoft SQL
Server\120\Tools\Samples\Adventure Works 2014 OLTP Script\"

IF '$(SqlSamplesSourceDataPath)' IS NULL OR '$(SqlSamplesSourceDataPath)'


= ''
BEGIN
RAISERROR(N'The variable SqlSamplesSourceDataPath must be
defined.', 16, 127) WITH NOWAIT
RETURN
END;

IF '$(SqlSamplesDatabasePath)' IS NULL OR '$(SqlSamplesDatabasePath)' = ''


BEGIN
RAISERROR(N'The variable SqlSamplesDatabasePath must be defined.',
16, 127) WITH NOWAIT
RETURN
END;

SET NOCOUNT OFF;


GO

CREATE DATABASE [AdventureWorks2014]


ON (NAME = 'AdventureWorks2014_Data', FILENAME = N'$
(SqlSamplesDatabasePath)AdventureWorks2014_Data.mdf', SIZE = 170,
FILEGROWTH = 8)

ADMINISTRACIÓN DE BASE DE DATOS Página 44 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

LOG ON (NAME = 'AdventureWorks2014_Log', FILENAME = N'$


(SqlSamplesDatabasePath)AdventureWorks2014_Log.ldf' , SIZE = 2,
FILEGROWTH = 96);
GO

8.2.2. Creación de esquemas XML:

Se pueden crear colecciones de esquemas XML en la base de datos y


asociarlas a variables y columnas de tipo xml. Para administrar las colecciones
de esquemas de la base de datos, SQL Server proporciona las siguientes
instrucciones DDL:

 CREATE XML SCHEMA COLLECTION (Transact-SQL) Importa los


componentes del esquema a una base de datos.

 ALTER XML SCHEMA COLLECTION (Transact-SQL) Modifica los


componentes de esquema en una colección de esquemas XML existente.

 DROP XML SCHEMA COLLECTION (Transact-SQL) Elimina toda la


colección de esquemas XML y todos sus componentes.

En nuestra aplicación vamos a crear algunas colecciones de esquemas XML


para nuestra base de datos; en el siguiente script lo haremos para la entidad
Persona creando un esquema y luego modificandola:

CREATE XML SCHEMA COLLECTION [Person].


[AdditionalContactInfoSchemaCollection] AS
'<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema
targetNamespace="http://schemas.microsoft.com/sqlserver/2004/07/adventure
-works/ContactInfo"
xmlns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-
works/ContactInfo"
elementFormDefault="qualified"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" >
<!-- the following imports are not needed. They simply provide readability
-->

<xsd:import
namespace="http://schemas.microsoft.com/sqlserver/2004/07/adventure-
works/ContactRecord" />

<xsd:import
namespace="http://schemas.microsoft.com/sqlserver/2004/07/adventure-
works/ContactTypes" />

<xsd:element name="AdditionalContactInfo" >


<xsd:complexType mixed="true" >
<xsd:sequence>

ADMINISTRACIÓN DE BASE DE DATOS Página 45 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

<xsd:any processContents="strict"

namespace="http://schemas.microsoft.com/sqlserver/2004/07/adventure-
works/ContactRecord
http://schemas.microsoft.com/sqlserver/2004/07/adventure-
works/ContactTypes"
minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>';
GO

ALTER XML SCHEMA COLLECTION [Person].


[AdditionalContactInfoSchemaCollection] ADD
'<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema
targetNamespace="http://schemas.microsoft.com/sqlserver/2004/07/adventure
-works/ContactRecord"
elementFormDefault="qualified"
xmlns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-
works/ContactRecord"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" >

<xsd:element name="ContactRecord" >


<xsd:complexType mixed="true" >
<xsd:choice minOccurs="0" maxOccurs="unbounded" >
<xsd:any processContents="strict"

namespace="http://schemas.microsoft.com/sqlserver/2004/07/adventure-
works/ContactTypes" />
</xsd:choice>
<xsd:attribute name="date" type="xsd:date" />
</xsd:complexType>
</xsd:element>
</xsd:schema>';
GO

En la tabla siguiente se describen los esquemas que se utilizan en nuestra base


de datos de AdventureWorks y se enumeran las tablas representativas de cada
esquema:

Esquema Contiene objetos relacionados con Ejemplos

HumanReso Empleados de Adventure Works Cycles. Tabla Employee

ADMINISTRACIÓN DE BASE DE DATOS Página 46 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

urces
Tabla Department

Tabla Contact
Nombres y direcciones de clientes
Person Tabla Address
individuales, proveedores y empleados.
Tabla StateProvince

Tabla BillOfMaterials
Productos fabricados y vendidos por
Production Tabla Product
Adventure Works Cycles.
Tabla WorkOrder

Tabla
PurchaseOrderDetail

Proveedores a los que se compran las Tabla


Purchasing
piezas y los productos. PurchaseOrderHeade
r

Tabla Vendor

Tabla Customer

Tabla
Datos relacionados con los clientes y las
Sales SalesOrderDetail
ventas.
Tabla
SalesOrderHeader

8.2.3. Creación de las tablas:

Se creará una tabla Producto para el área de Producción (esquema Production


en la BD), estableciendo su Clave Primaria (Primary Key), sus respectivos
CONSTRAINTS y con algunos CHECKS para sus restricciones:

CREATE TABLE [Production].[Product](


[ProductID] [int] IDENTITY (1, 1) NOT NULL,
[Name] [Name] NOT NULL,
[ProductNumber] [nvarchar](25) NOT NULL,

ADMINISTRACIÓN DE BASE DE DATOS Página 47 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

[MakeFlag] [Flag] NOT NULL CONSTRAINT [DF_Product_MakeFlag] DEFAULT


(1),
[FinishedGoodsFlag] [Flag] NOT NULL CONSTRAINT
[DF_Product_FinishedGoodsFlag] DEFAULT (1),
[Color] [nvarchar](15) NULL,
[SafetyStockLevel] [smallint] NOT NULL,
[ReorderPoint] [smallint] NOT NULL,
[StandardCost] [money] NOT NULL,
[ListPrice] [money] NOT NULL,
[Size] [nvarchar](5) NULL,
[SizeUnitMeasureCode] [nchar](3) NULL,
[WeightUnitMeasureCode] [nchar](3) NULL,
[Weight] [decimal](8, 2) NULL,
[DaysToManufacture] [int] NOT NULL,
[ProductLine] [nchar](2) NULL,
[Class] [nchar](2) NULL,
[Style] [nchar](2) NULL,
[ProductSubcategoryID] [int] NULL,
[ProductModelID] [int] NULL,
[SellStartDate] [datetime] NOT NULL,
[SellEndDate] [datetime] NULL,
[DiscontinuedDate] [datetime] NULL,
[rowguid] uniqueidentifier ROWGUIDCOL NOT NULL CONSTRAINT
[DF_Product_rowguid] DEFAULT (NEWID()),
[ModifiedDate] [datetime] NOT NULL CONSTRAINT
[DF_Product_ModifiedDate] DEFAULT (GETDATE()),
CONSTRAINT [CK_Product_SafetyStockLevel] CHECK ([SafetyStockLevel] >
0),
CONSTRAINT [CK_Product_ReorderPoint] CHECK ([ReorderPoint] > 0),
CONSTRAINT [CK_Product_StandardCost] CHECK ([StandardCost] >= 0.00),
CONSTRAINT [CK_Product_ListPrice] CHECK ([ListPrice] >= 0.00),
CONSTRAINT [CK_Product_Weight] CHECK ([Weight] > 0.00),
CONSTRAINT [CK_Product_DaysToManufacture] CHECK ([DaysToManufacture]
>= 0),
CONSTRAINT [CK_Product_ProductLine] CHECK (UPPER([ProductLine]) IN ('S',
'T', 'M', 'R') OR [ProductLine] IS NULL),
CONSTRAINT [CK_Product_Class] CHECK (UPPER([Class]) IN ('L', 'M', 'H') OR
[Class] IS NULL),
CONSTRAINT [CK_Product_Style] CHECK (UPPER([Style]) IN ('W', 'M', 'U') OR
[Style] IS NULL),
CONSTRAINT [CK_Product_SellEndDate] CHECK (([SellEndDate] >=
[SellStartDate]) OR ([SellEndDate] IS NULL)),
) ON [PRIMARY];
GO

ALTER TABLE [Production].[Product] WITH CHECK ADD


CONSTRAINT [PK_Product_ProductID] PRIMARY KEY CLUSTERED
(
[ProductID]

ADMINISTRACIÓN DE BASE DE DATOS Página 48 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

) ON [PRIMARY];
GO

También se le crea un índice para acelerar y hacer más eficiente las consultas
sobre la tabla producto, este índice también se puede realizar en XML para
cada columna XML:

CREATE UNIQUE INDEX [AK_Product_ProductNumber] ON [Production].[Product]


([ProductNumber]) ON [PRIMARY];
CREATE UNIQUE INDEX [AK_Product_Name] ON [Production].[Product]([Name])
ON [PRIMARY];
CREATE UNIQUE INDEX [AK_Product_rowguid] ON [Production].[Product]
([rowguid]) ON [PRIMARY];
GO

CREATE PRIMARY XML INDEX [PXML_ProductModel_CatalogDescription] ON


[Production].[ProductModel]([CatalogDescription]);
GO

CREATE PRIMARY XML INDEX [PXML_ProductModel_Instructions] ON


[Production].[ProductModel]([Instructions]);
GO

ADMINISTRACIÓN DE BASE DE DATOS Página 49 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

Creación de Foreign Keys para la tabla producto:

ALTER TABLE [Production].[Product] ADD


CONSTRAINT [FK_Product_UnitMeasure_SizeUnitMeasureCode] FOREIGN KEY
(
[SizeUnitMeasureCode]
) REFERENCES [Production].[UnitMeasure](
[UnitMeasureCode]
),
CONSTRAINT [FK_Product_UnitMeasure_WeightUnitMeasureCode] FOREIGN
KEY
(
[WeightUnitMeasureCode]
) REFERENCES [Production].[UnitMeasure](
[UnitMeasureCode]
),
CONSTRAINT [FK_Product_ProductModel_ProductModelID] FOREIGN KEY
(
[ProductModelID]
) REFERENCES [Production].[ProductModel](
[ProductModelID]
),
CONSTRAINT [FK_Product_ProductSubcategory_ProductSubcategoryID]
FOREIGN KEY
(
[ProductSubcategoryID]
) REFERENCES [Production].[ProductSubcategory](
[ProductSubcategoryID]
);
GO

8.2.4. Modelo Relacional:

Debido a la enorme cantidad de tablas distribuidas en los diferentes esquemas


en la base de datos AdventureWorks, presentar un modelo relacional entre
todas las tablas de la base de datos sería demasiado incomprensible y extenso,
por lo que presentaremos solamente el modelo relacional del esquema más
importante del negocio: Esquema de producción.

Este esquema contiene la información completa de los productos que la


empresa fabrica, y su relación con las diferentes tablas existentes en el
esquema. Estas tablas contienen la información de: los componentes que se
utilizan para fabricar las biciletas, lista de ubicaciones en las que los productos
y las piezas de almacenan como inventario, clasificación general de los
productos, costos, descripción, modelos del producto, orden de trabajo, etc.

ADMINISTRACIÓN DE BASE DE DATOS Página 50 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

Modelo relacional sencillo del esquema Production

ADMINISTRACIÓN DE BASE DE DATOS Página 51 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

ADMINISTRACIÓN DE BASE DE DATOS Página 52 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

8.2.5. Creación de Triggers:

Para el área de producción se crearon los siguientes triggers, estos triggers se


relacionan con la orden de trabajo y el historial de transacciones del producto
en particular, cada vez que se crea una nueva orden de trabajo de un producto
o si se edita una orden se deberá registrar la información de esa orden en el
historial de transacciones del producto.

CREATE TRIGGER [Production].[iWorkOrder] ON [Production].[WorkOrder]


AFTER INSERT AS
BEGIN
DECLARE @Count int;

SET @Count = @@ROWCOUNT;


IF @Count = 0
RETURN;

SET NOCOUNT ON;

BEGIN TRY
INSERT INTO [Production].[TransactionHistory](
[ProductID]
,[ReferenceOrderID]
,[TransactionType]
,[TransactionDate]
,[Quantity]
,[ActualCost])
SELECT
inserted.[ProductID]
,inserted.[WorkOrderID]
,'W'
,GETDATE()
,inserted.[OrderQty]
,0
FROM inserted;
END TRY
BEGIN CATCH
EXECUTE [dbo].[uspPrintError];

-- Rollback any active or uncommittable transactions before


-- inserting information in the ErrorLog
IF @@TRANCOUNT > 0
BEGIN
ROLLBACK TRANSACTION;
END

EXECUTE [dbo].[uspLogError];
END CATCH;
END;

ADMINISTRACIÓN DE BASE DE DATOS Página 53 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

GO

CREATE TRIGGER [Production].[uWorkOrder] ON [Production].[WorkOrder]


AFTER UPDATE AS
BEGIN
DECLARE @Count int;

SET @Count = @@ROWCOUNT;


IF @Count = 0
RETURN;

SET NOCOUNT ON;

BEGIN TRY
IF UPDATE([ProductID]) OR UPDATE([OrderQty])
BEGIN
INSERT INTO [Production].[TransactionHistory](
[ProductID]
,[ReferenceOrderID]
,[TransactionType]
,[TransactionDate]
,[Quantity])
SELECT
inserted.[ProductID]
,inserted.[WorkOrderID]
,'W'
,GETDATE()
,inserted.[OrderQty]
FROM inserted;
END;
END TRY
BEGIN CATCH
EXECUTE [dbo].[uspPrintError];

-- Rollback any active or uncommittable transactions before


-- inserting information in the ErrorLog
IF @@TRANCOUNT > 0
BEGIN
ROLLBACK TRANSACTION;
END

EXECUTE [dbo].[uspLogError];
END CATCH;
END;
GO

ADMINISTRACIÓN DE BASE DE DATOS Página 54 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

8.2.6. Creación de Funciones:

Primeramente se creará una función para saber el nivel de stock de un


producto en su respectivo almacén, donde el parámetro de entrada será el
código del producto.

Código de la función:

CREATE FUNCTION [dbo].[ufnGetStock](@ProductID [int])


RETURNS [int]
AS
-- Returns the stock level for the product. This function is used internally only
BEGIN
DECLARE @ret int;

SELECT @ret = SUM(p.[Quantity])


FROM [Production].[ProductInventory] p
WHERE p.[ProductID] = @ProductID
AND p.[LocationID] = '6'; -- Only look at inventory in the misc storage

IF (@ret IS NULL)
SET @ret = 0

RETURN @ret
END;
GO

Al ejecutar la función para un parámetro ‘1’ y al consultarlo se obtiene su stock


respectivo:

ADMINISTRACIÓN DE BASE DE DATOS Página 55 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

Luego crearemos una función para obtener el precio de un producto según su


código y una fecha en específico, esta información se obtendrá del historial de
costos del producto.

Código de la función:

CREATE FUNCTION [dbo].[ufnGetProductStandardCost](@ProductID [int],


@OrderDate [datetime])
RETURNS [money]
AS
-- Returns the standard cost for the product on a specific date.
BEGIN
DECLARE @StandardCost money;

SELECT @StandardCost = pch.[StandardCost]


FROM [Production].[Product] p
INNER JOIN [Production].[ProductCostHistory] pch
ON p.[ProductID] = pch.[ProductID]
AND p.[ProductID] = @ProductID
AND @OrderDate BETWEEN pch.[StartDate] AND COALESCE(pch.
[EndDate], CONVERT(datetime, '99991231', 112)); -- Make sure we get all the
prices!

RETURN @StandardCost;
END;
GO

El resultado que obtendremos al consultar la función con los parámetros


respectivos del producto con código 770 y la fecha del 20-06-2011 será:

ADMINISTRACIÓN DE BASE DE DATOS Página 56 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

8.2.7. Creación de Procedimientos:

Este procedure permite obtener los datos de los diferentes componentes de un


producto en sus diferentes niveles de estructura, además se mostrará la
descripción del componente, su cantidad, su costo total, y su nivel de jerarquía
en la construcción del producto.

Código del procedure:

CREATE PROCEDURE [dbo].[uspGetWhereUsedProductID]


@StartProductID [int],
@CheckDate [datetime]
AS
BEGIN
SET NOCOUNT ON;

--Use recursive query to generate a multi-level Bill of Material (i.e. all level 1
components of a level 0 assembly, all level 2 components of a level 1
assembly)
WITH [BOM_cte]([ProductAssemblyID], [ComponentID], [ComponentDesc],
[PerAssemblyQty], [StandardCost], [ListPrice], [BOMLevel], [RecursionLevel]) --
CTE name and columns
AS (
SELECT b.[ProductAssemblyID], b.[ComponentID], p.[Name], b.
[PerAssemblyQty], p.[StandardCost], p.[ListPrice], b.[BOMLevel], 0 -- Get the
initial list of components for the bike assembly
FROM [Production].[BillOfMaterials] b
INNER JOIN [Production].[Product] p
ON b.[ProductAssemblyID] = p.[ProductID]
WHERE b.[ComponentID] = @StartProductID
AND @CheckDate >= b.[StartDate]
AND @CheckDate <= ISNULL(b.[EndDate], @CheckDate)
UNION ALL
SELECT b.[ProductAssemblyID], b.[ComponentID], p.[Name], b.
[PerAssemblyQty], p.[StandardCost], p.[ListPrice], b.[BOMLevel],
[RecursionLevel] + 1 -- Join recursive member to anchor
FROM [BOM_cte] cte
INNER JOIN [Production].[BillOfMaterials] b
ON cte.[ProductAssemblyID] = b.[ComponentID]
INNER JOIN [Production].[Product] p
ON b.[ProductAssemblyID] = p.[ProductID]
WHERE @CheckDate >= b.[StartDate]
AND @CheckDate <= ISNULL(b.[EndDate], @CheckDate)
)
-- Outer select from the CTE
SELECT b.[ProductAssemblyID], b.[ComponentID], b.[ComponentDesc],
SUM(b.[PerAssemblyQty]) AS [TotalQuantity] , b.[StandardCost], b.[ListPrice], b.
[BOMLevel], b.[RecursionLevel]
FROM [BOM_cte] b

ADMINISTRACIÓN DE BASE DE DATOS Página 57 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

GROUP BY b.[ComponentID], b.[ComponentDesc], b.[ProductAssemblyID], b.


[BOMLevel], b.[RecursionLevel], b.[StandardCost], b.[ListPrice]
ORDER BY b.[BOMLevel], b.[ProductAssemblyID], b.[ComponentID]
OPTION (MAXRECURSION 25)
END;
GO

Al ejecutar el procedimiento para el producto con código 717 y en la fecha del


15-06-2011, se obtendrán los siguientes resultados:

8.2.8. Creación de vistas:

Código de creación para el producto y su descripción:

CREATE VIEW [Production].[vProductAndDescription]


WITH SCHEMABINDING
AS
-- View (indexed or standard) to display products and product descriptions by
language.
SELECT
p.[ProductID]

ADMINISTRACIÓN DE BASE DE DATOS Página 58 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

,p.[Name]
,pm.[Name] AS [ProductModel]
,pmx.[CultureID]
,pd.[Description]
FROM [Production].[Product] p
INNER JOIN [Production].[ProductModel] pm
ON p.[ProductModelID] = pm.[ProductModelID]
INNER JOIN [Production].[ProductModelProductDescriptionCulture] pmx
ON pm.[ProductModelID] = pmx.[ProductModelID]
INNER JOIN [Production].[ProductDescription] pd
ON pmx.[ProductDescriptionID] = pd.[ProductDescriptionID];
GO

El diseño de esta vista se podrá visualizar en el SQL Server Management Studio


de la siguiente manera:

ADMINISTRACIÓN DE BASE DE DATOS Página 59 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

Al consultar la vista se tendría el siguiente resultado:

8.3. Sentencias DML (Lenguaje de manipulación de datos)

8.3.1. Insertando Datos:

Para insertar datos a la entidad Producto se necesita insertar un código de


subcategoría y de modelo existentes en la base de datos ya que sus claves
primarias son consideradas como claves foráneas en la tabla Producto.

Insertaremos los datos de un Producto con nombre ‘PRODUCTO X’ y con código


1010:

INSERT INTO Production.Product


("ProductID","Name","ProductNumber","MakeFlag","FinishedGoodsFlag","Color",
"SafetyStockLevel","ReorderPoint","StandardCost","ListPrice","Size","SizeUnitM
easureCode","WeightUnitMeasureCode"
, "Weight", "DaysToManufacture", "ProductLine", "Class",
"Style","ProductSubcategoryID","ProductModelID","SellStartDate"
,"SellEndDate","DiscontinuedDate","rowguid","ModifiedDate") VALUES
(1010,'PRODUCTO X','XY-7800',0,0,'Black',
1000, 600, 300.5, 620.75, 55, 'CM', 'LB', 23.44, 5, 'M', 'L', 'U', 21,10,
'20140530', NULL, NULL,
'694215B7-08F7-4C1D-ACB1-D754Bb44C0C8', '20140208');

ADMINISTRACIÓN DE BASE DE DATOS Página 60 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

Al realizar una consulta del PRODUCTO X, se mostrarán los datos del nuevo
producto que hemos insertado:

8.3.2. Actualizar Datos:

Actualizaremos los datos del PRODUCTO X que hemos creado anteriormente,


cambiaremos su ProductNumber por de XY-7800 a XY-7500 y le cambiaremos
su Precio de 620.75 a 700.50

UPDATE Production.Product
set ProductNumber='XY-7500', ListPrice=700.50
where ProductID=1010;

Al consultar la Tabla del PRODUCTO X con código 1010 veremos que la


actualización de datos se realizó satisfactoriamente:

ADMINISTRACIÓN DE BASE DE DATOS Página 61 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

8.3.3. Eliminar datos:

Procederemos a eliminar el PRODUCTO X con código 1010:

DELETE from Production.Product


where ProductID=1010;

Al consultar la tabla del PRODUCTO X, veremos que la eliminación de datos se


ha realizado satisfactoriamente:

8.3.4. Reportes

Reporte de los productos con color Negro y cuyo precio sea mayor a 200
dólares:

select ProductID, Name, ProductNumber, Color, SafetyStockLevel,


ReorderPoint,StandardCost, ListPrice, ProductSubcategoryID, ProductModelID
from Production.Product where Color='Black' and ListPrice>200;

ADMINISTRACIÓN DE BASE DE DATOS Página 62 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

Reporte de las ordenes de venta de un producto: el n° de orden, su fecha y su


importe total:

SELECT
H.SalesOrderID AS 'N° Orden',
H.OrderDate AS Fecha,
SUM(D.OrderQty*D.UnitPrice) AS [Importe Vendido]
FROM Sales.SalesOrderHeader H
INNER JOIN Sales.SalesOrderDetail D
ON H.SalesOrderID = D.SalesOrderID
GROUP BY H.SalesOrderID, H.OrderDate;

ADMINISTRACIÓN DE BASE DE DATOS Página 63 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

Reporte de las ordenes de venta, con el nombre y apellido del cliente, su correo
y cuyo importe de venta total sea mayor 2’000 dólares:

SELECT
H.SalesOrderID AS 'N° Orden',
H.OrderDate AS Fecha,
SUM(D.OrderQty*D.UnitPrice) AS [Importe Vendido],
C.FirstName+' '+C.MiddleName+' '+C.LastName AS Cliente,
A.EmailAddress AS Email
FROM Sales.SalesOrderHeader H
INNER JOIN Sales.SalesOrderDetail D
ON H.SalesOrderID = D.SalesOrderID
INNER JOIN Person.Person C
ON H.CustomerID = C.BusinessEntityID
INNER JOIN Person.EmailAddress A
ON C.BusinessEntityID = A.BusinessEntityID
GROUP BY H.SalesOrderID, H.OrderDate, C.FirstName+' '+C.MiddleName+'
'+C.LastName,A.EmailAddress
HAVING SUM(D.OrderQty*D.UnitPrice)>2000;

ADMINISTRACIÓN DE BASE DE DATOS Página 64 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

Reporte de los vendedores que tiene la empresa AdventureWorks, con sus


datos del vendedor y sus ventas de este año y del año pasado:

SELECT
s.[BusinessEntityID] AS CODIGO
,p.[FirstName] AS NOMBRE
,p.[LastName] AS APELLIDO
,e.[JobTitle] AS TÍTULO
,pp.[PhoneNumber] AS NÚMERO
,ea.[EmailAddress] AS CORREO
,a.[AddressLine1] AS DIRRECIÓN
,a.[City] AS CIUDAD
,s.[SalesQuota] AS VENTAS
,s.[SalesLastYear] AS Ventas_Año_Pasado
FROM [Sales].[SalesPerson] s
INNER JOIN [HumanResources].[Employee] e
ON e.[BusinessEntityID] = s.[BusinessEntityID]
INNER JOIN [Person].[Person] p
ON p.[BusinessEntityID] = s.[BusinessEntityID]
INNER JOIN [Person].[BusinessEntityAddress] bea
ON bea.[BusinessEntityID] = s.[BusinessEntityID]
INNER JOIN [Person].[Address] a
ON a.[AddressID] = bea.[AddressID]
INNER JOIN [Person].[CountryRegion] cr
ON cr.[CountryRegionCode] = sp.[CountryRegionCode]
LEFT OUTER JOIN [Sales].[SalesTerritory] st
ON st.[TerritoryID] = s.[TerritoryID]
LEFT OUTER JOIN [Person].[EmailAddress] ea

ADMINISTRACIÓN DE BASE DE DATOS Página 65 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

ON ea.[BusinessEntityID] = p.[BusinessEntityID]
LEFT OUTER JOIN [Person].[PersonPhone] pp
ON pp.[BusinessEntityID] = p.[BusinessEntityID]

Reporte de los datos de los productos con su código, nombre, color, nivel de
stock, costo , precio, su número componentes estructurales (Bills of Materials)
totales, además se muestra la cantidad de ordenes totales que se ha realizado
de un producto y con una condición de que su stock actual sea mayor que
200:

SELECT
P.ProductID as Código, P.Name as Nombre, P.Color, P.SafetyStockLevel as
'Nivel de Stock', P.StandardCost as Costo, P.ListPrice as Precio,
SUM(B.PerAssemblyQty) as 'Cantidad de Materiales', SUM(W.OrderQty) as
'Orden Total'
FROM Production.Product P
INNER JOIN Production.BillOfMaterials B
ON P.ProductID = B.ComponentID
INNER JOIN Production.WorkOrder W
ON W.ProductID = P.ProductID
WHERE P.SafetyStockLevel > 200
GROUP BY P.SafetyStockLevel, P.Name, P.StandardCost, P.ListPrice,
P.ProductID, P.Color

ADMINISTRACIÓN DE BASE DE DATOS Página 66 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

8.4. Exportar datos a Excel

Desde el mismo Excel se puede importar las tablas de nuestras diferentes


bases de datos a través de las pestañas Datos > De otras fuentes > Desde Sql
Server.

Seleccionamos nuestro servidor, luego seleccionamos la base de datos que


queremos importar ( AdventureWorks ),y por último la tabla o vista que
deseamos excelizar.

ADMINISTRACIÓN DE BASE DE DATOS Página 67 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

Al importar los datos obtendremos la siguiente tabla en excel con la


información de la tabla “Empleados” de base de datos utilizada en nuestra
aplicación:

ADMINISTRACIÓN DE BASE DE DATOS Página 68 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

CONCLUSIONES

 Microsoft SQL Server es un manejador de base de datos que implementa


el modelo relacional, teniendo como ventaja manejar la relación de
muchos a muchos. Además de tener la considerable ventaja de que es
más fácil de entender y de utilizar por un usuario no experto.

 La organización de archivos de SQL Server se hace de forma indexada


utilizando dos archivos, uno de datos que contiene la información de la
base de datos permitiendo que las consultas realizadas sean más
rápidas, accediéndose a los registros de forma secuencial y también de
forma aleatoria, usando el índice.

 SQL Server presenta opciones para la administración de los datos y su


seguridad respectiva. Esto mediante las copias de seguridad y sus
diversas formas de realizarlo, así como los permisos que se otorgan a los
usuarios para la lectura y escritura de los datos.

 Microsoft SQL Server compensa su precio al ser usado en empresas que


posean bases de datos de gran volumen, sobre todo si se requiere de
encriptación, debido a que este manejador de base de datos apuesta por
la seguridad.

 Las empresas grandes tanto del Perú como del Mundo, tienen
implementados este gestor de base de datos que almacenan las grandes
cantidades de datos que son originados por el propio negocio. Esto
debido a su seguridad y escalabilidad.

 Microsoft SQL Server ofrece garantías, así como un rendimiento


confiable, mayor rapidez en la obtención de la información privilegiada
que subyace en datos de cualquier tipo, y una plataforma para la nube
híbrida, que facilitan más la creación de soluciones de recuperación ante
desastres y copias de seguridad con Microsoft Azure.

 Por lo tanto, SQL Server hace más sencilla y rentable la creación de


aplicaciones esenciales y de alto rendimiento, ayudando a los empleados
y de la alta dirección, a tomar decisiones más inteligentes y rápidas.

ADMINISTRACIÓN DE BASE DE DATOS Página 69 de 70


SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER

BIBLIOGRAFÍA

 https://msdn.microsoft.com/es-es/library/bb545450.aspx
 https://www.microsoft.com/es-es/server-cloud/products/sql-server-
benchmarks/partner.aspx
 http://www.spperu.com/pdf/microstrategy/Neptunia.pdf
 http://www.spperu.com/pdf/microstrategy/AFPIntegra.pdf
 http://www.spperu.com/pdf/microstrategy/Depsa.pdf
 http://www.spperu.com/pdf/microstrategy/Laboratorios_Hersil.pdf
 http://www.spperu.com/pdf/microstrategy/Miyasato.pdf
 http://www.spperu.com/pdf/microstrategy/Yichang.pdf
 https://www.microsoft.com/en-us/server-cloud/products/sql-
server/purchasing.aspx

ADMINISTRACIÓN DE BASE DE DATOS Página 70 de 70

También podría gustarte