Sei sulla pagina 1di 70

UNIVERSIDAD NACIONAL DE

INGENIERA
FACULTAD DE INGENIERA INDUSTRIAL Y DE
SISTEMAS

SQL SERVER
SISTEMA DE GESTIN DE BASE DE
DATOS
CURSO:
ADMINISTRACIN DE BASE DE DATOS
PROFESOR:
ING. MANUEL VELARDE CARPIO
INTEGRANTES:
GOYCOCHEA SANTISTEBAN, JARED
HUISA PALACIOS, CARLOS
ZUTTA TUESTA, JHEYMY

2015

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER
NDICE
INTRODUCCIN...........................................................................................4
1.

OBJETIVOS............................................................................................5

2.

MARCO TEORICO...................................................................................5
2.1. BASE DE DATOS................................................................................................. 5
2.2. SISTEMA DE GESTIN DE BASE DE DATOS........................................................6
2.3. ADMINISTRACIN DE BASE DE DATOS...............................................................8
2.4. BASE DE DATOS RELACIONAL............................................................................9
2.4.1.
Tablas......................................................................................................... 9
2.4.2.
Terminologa Relacional.............................................................................9
2.4.3.
Claves...................................................................................................... 10

3.

SQL SERVER........................................................................................10
3.1. DEFINICIN..................................................................................................... 10
3.2. HISTORIA......................................................................................................... 11
3.3. CARACTERSTICAS........................................................................................... 11
3.3.1.
Caractersticas Bsicas............................................................................11
3.3.2.
Caractersticas del servidor SQL SERVER 2014........................................12
3.3.3.
Tamao mximo 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.
Programacin en TRANSACT SQL.............................................................15
3.4.4.
Procedimientos almacenados STORE PROCEDURE...................................16
3.5. ADMINISTRACIN............................................................................................ 17
3.5.1.
Instalacin................................................................................................17
3.5.2.
Administracin de la Seguridad................................................................18
3.5.3.
Organizacin de archivos.........................................................................20
3.5.4.
Organizacin de Tablas............................................................................21
3.5.5.
Copias de Seguridad................................................................................23
3.5.6.
Replicacin............................................................................................... 27
3.6. SQL SERVER INTEGRATION SERVICES..............................................................27
3.6.1.
Caractersticas 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.

APLICACIN........................................................................................38
8.1. INFORMACIN ACERCA DEL NEGOCIO DE LA COMPAA ADVENTURE WORKS:...................38
8.2. SENTENCIAS DDL (LENGUAJE DE DEFINICIN DE DATOS):............................................38
8.2.1.
Creacin la Base de datos:.......................................................................38
8.2.2.
Creacin de esquemas XML:....................................................................39

ADMINISTRACIN DE BASE DE DATOS

Pgina 2 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER
8.2.3.
Creacin de las tablas:.............................................................................41
8.2.4.
Modelo Relacional:...................................................................................44
8.2.5.
Creacin de Triggers:...............................................................................46
8.2.6.
Creacin de Funciones:............................................................................48
8.2.7.
Creacin de Procedimientos:....................................................................50
8.2.8.
Creacin de vistas:...................................................................................51
8.3. SENTENCIAS DML (LENGUAJE DE MANIPULACIN 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
BIBLIOGRAFA........................................................................................... 63

ADMINISTRACIN DE BASE DE DATOS

Pgina 3 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER

INTRODUCCIN
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 informacin necesaria, es imposible tomar buenas decisiones que
lleven a las organizaciones a seguir creciendo. Esta informacin tiene como
caractersticas 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 situacin real de la organizacin y de buen
costo, debido a su relevancia.
Por tanto, para que las organizaciones puedan reducir la incertidumbre en la
toma de una determinada decisin, es necesario que cuenten con un sistema
de procesamiento de datos (SPD) que es el conjunto de procedimientos
manuales y/o automticos que cumplen con las funciones de recolectar datos,
procesarlos y distribuir la informacin. Pero adems, debido al volumen de
datos que una organizacin maneja, es necesario contar adems con un
Sistema de Gestin de Base de Datos (SGBD) que permitan el almacenamiento,
modificacin y extraccin de la informacin en una base de datos, adems de
proporcionar herramientas para aadir, borrar, modificar y analizar los datos.
Los usuarios pueden acceder a la informacin usando herramientas especficas
de interrogacin y de generacin 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 gestin de base de datos especfico y que ha
tenido muchos aos 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 caractersticas 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 tericos bsicos necesarios para una mayor comprensin de SQL
Server. Luego se tratar a detalle del SGBD SQL Server, empezando por su
definicin, historia, caractersticas importantes, las herramientas que posee, el
tipo modelo de datos y la organizacin de archivos que usa, y la administracin
de la base de datos. Se estudiarn las ventajas que sta posee, as como las
diferencias con otros SGBD que existen en el mercado. Tambin se dar a
conocer los precios por cada edicin que presenta la ltima versin de SQL
ADMINISTRACIN DE BASE DE DATOS

Pgina 4 de 70

SISTEMA DE GESTIN 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 aplicacin basado en dicho gestor,
usando las herramientas que nos proporciona.

ADMINISTRACIN DE BASE DE DATOS

Pgina 5 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER

1. OBJETIVOS
Conocer las bondades del manejador de base de datos Microsoft SQL
Server.
Identificar su organizacin de archivos y organizacin de tablas de SQL
Server.
Identificar los clientes que lo utilizan.
Hacer una evaluacin costo-beneficio del uso de Microsoft SQL Server en
una empresa.
Realizar una aplicacin pequea utilizando SQL Server y base de datos
relacional.

2. MARCO TEORICO
2.1.

BASE DE DATOS

Las aplicaciones informticas de los aos sesenta acostumbraban a darse


totalmente por lotes (batch) y estaban pensadas para una tarea muy especfica
relacionada con muy pocas entidades tipo.
Cada aplicacin (una o varias cadenas de programas) utilizaba ficheros de
movimientos para actualizar y/o para consultar uno o dos ficheros maestros o,
excepcionalmente, ms de dos.
Cada programa trataba como mximo un fichero maestro, que sola estar sobre
cinta magntica y, en consecuencia, se trabajaba con acceso secuencial. Cada
vez que se le quera aadir una aplicacin que requera el uso de algunos de
los datos que ya existan y de otros nuevos, se diseaba 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 lneas de comunicacin, los
terminales y los discos, se fueron escribiendo programas que permitan a varios
usuarios consultar los mismos ficheros de forma simultnea. Ms adelante fue
surgiendo la necesidad de hacer las actualizaciones tambin 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 deba disear de modo que estuviesen interrelacionados; al mismo
tiempo, las informaciones redundantes (como por ejemplo, el nombre y la
direccin de los clientes o el nombre y el precio de los productos), que
figuraban en los ficheros de ms de una de las aplicaciones, deban estar ahora
en un solo lugar.

ADMINISTRACIN DE BASE DE DATOS

Pgina 6 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER
El acceso on-line y la utilizacin eficiente de las interrelaciones exigan
estructuras fsicas que diesen un acceso rpido, como por ejemplo los ndices,
las multilistas, las tcnicas de hashing, etc.
Estos conjuntos de ficheros interrelacionados, con estructuras complejas y
compartidos por varios procesos de forma simultnea (unos on-line y otros por
lotes), recibieron al principio el nombre de Data Banks, y despus, a inicios de
los aos 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 representacin ser nica e
integrada, a pesar de que debe permitir utilizaciones varias y simultneas.

2.2.

SISTEMA DE GESTIN DE BASE DE DATOS

Un Sistema de Gestin de Bases de Datos (SGBD) consiste en una coleccin 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 Definicin de Datos.
DML (Data Manipulation Language): Lenguaje de Manipulacin de
Datos.
SQL (Structured Query Language): Lenguaje de Consulta
Estructurado
Ahora bien, para entender mejor qu son los SGBD, haremos un repaso de su
evolucin desde los aos sesenta hasta nuestros das.
Los primeros SGBDen los aos sesenta todava no se les denominaba as
estaban orientados a facilitar la utilizacin de grandes conjuntos de datos en
los que las interrelaciones eran complejas. El arquetipo de aplicacin era el Bill
of materials o Parts explosion, tpica en las industrias del automvil, en la
construccin 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 lnea telefnica, se empiezan a construir grandes aplicaciones
on-line transaccionales (OLTP). Los SGBD estaban ntimamente ligados al
software de comunicaciones y de gestin de transacciones.
Aunque para escribir los programas de aplicacin se utilizaban lenguajes de
alto nivel como Cobol o PL/I, se dispona tambin de instrucciones y de

ADMINISTRACIN DE BASE DE DATOS

Pgina 7 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER
subrutinas especializadas para tratar las BD que requeran que el programador
conociese muchos detalles del diseo fsico, y que hacan que la programacin
fuese muy compleja.
Puesto que los programas estaban relacionados con el nivel fsico, se deban
modificar continuamente cuando se hacan cambios en el diseo y la
organizacin de la BD. La preocupacin bsica era maximizar el rendimiento: el
tiempo de respuesta y las transacciones por segundo.
Durante los aos ochenta, el mejoramiento de los ordenadores (en reduccin
del tamao y aumento de la eficiencia), extendi el uso de la informtica a
prcticamente todas las empresas e instituciones, lo cual exiga que el
desarrollo de aplicaciones fuese ms sencillo. Los SGBD de los aos setenta
eran demasiado complejos e inflexibles, y slo los poda utilizar un personal
muy calificado.
Es as pues que, la aparicin de los SGBD relacionales supuso un avance
importante para facilitar la programacin de aplicaciones con BD y para
conseguir que los programas sean independientes de los aspectos fsicos de la
BD. La estandarizacin, en el ao 1986, del lenguaje SQL produjo una autntica
explosin de los SGBD relacionales.
Al acabar la dcada de los ochenta, los SGBD relacionales ya se utilizaban
prcticamente en todas las empresas; sin embargo, an a mediados de los
noventa, por un factor de rendimiento, se prefera usar otro tipo de SGBD.
La necesidad de tener una visin global de la empresa y de interrelacionar
diferentes aplicaciones que utilizan BD diferentes, junto con la facilidad que
dan las redes para la intercomunicacin 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 aos
ochenta y noventa son muy limitados. La incorporacin de tecnologas
multimediaimagen y sonido en los Sistemas de Informacin (SI) hace
necesario que los SGBD relacionales acepten atributos de estos tipos.
Esto nos lleva a la orientacin a objetos (OO). El xito de la OO al final de
aos ochenta, en el desarrollo de software bsico, en las aplicaciones
ingeniera industrial y en la construccin de interfaces grficas con
usuarios, hizo que durante la dcada de los noventa se extendiese
prcticamente todos los campos de la informtica.

ADMINISTRACIN DE BASE DE DATOS

los
de
los
en

Pgina 8 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER
La rpida adopcin de la web a los SI hace que los SGBD incorporen recursos
para ser servidores de pginas web, como por ejemplo la inclusin 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
informacin proveniente de toda clase de aplicaciones de la empresa (e,
incluso, de fuera). Los datos de este gran almacn, el Data Warehouse , se
obtienen por una replicacin ms 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 aplicacin, incorporando, por
ejemplo, herramientas como las siguientes:
a) La creacin y el mantenimiento de rplicas, con una cierta elaboracin
de los datos.
b) La consolidacin de datos de orgenes diferentes.
c) La creacin de estructuras fsicas que soporten eficientemente el anlisis
multidimensional.
Los SGBD que actualmente estn en el mercado pretenden satisfacer un
conjunto de objetivos directamente deducibles de lo que hemos explicado
hasta ahora. A continuacin 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 caracterizacin de la
informacin
Adaptarse al mundo del Internet.

2.3.

ADMINISTRACIN DE BASE DE DATOS

Hay un tipo de usuario especial: el que realiza tareas de administracin y


control de la BD. Una empresa o institucin que tenga SI construidos en torno a
BD necesita que alguien lleve a cabo una serie de funciones centralizadas de
ADMINISTRACIN DE BASE DE DATOS

Pgina 9 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER
gestin y administracin, para asegurar que la explotacin de la BD es la
correcta. Este conjunto de funciones se conoce con el nombre de
administracin 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
problemticas o de emergencia, pero su responsabilidad fundamental es velar
para que no se produzcan incidentes.
Se procede a mencionar, en una lista, las tareas tpicas de la Administracin
de Base de Datos:
Mantenimiento, administracin y control de los esquemas
Asegurar la mxima disponibilidad de los datos
Resolucin de emergencias
Vigilancia de la integridad y de la calidad de los datos
Diseo fsico, estrategia de caminos de acceso y restructuraciones
Control del rendimiento y decisiones relativas a las modificaciones en los
esquemas y/o parmetros del SGBD y del SO, para mejorarlo
Normativa y asesoramiento a los programadores y a los usuarios finales
sobre la utilizacin de la BD
Control y administracin 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 aos despus el modelo se empez a implementar cada vez ms,
hasta ser el modelo de bases de datos ms popular. En las bases de Codd se
definan los objetivos de este modelo:
Independencia fsica. La forma de almacenar los datos, no debe influir en
su manipulacin lgica.
Independencia lgica. 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 fcilmente distintas vistas en
funcin de los usuarios y aplicaciones.
Uniformidad. Las estructuras lgicas siempre tienen una nica forma
conceptual (las tablas).
Sencillez.

ADMINISTRACIN DE BASE DE DATOS

Pgina 10 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER

2.4.1.

Tablas

Las bases de datos relacionales se basan en el uso de tablas (tambin se las


llama relaciones). Las tablas se representan grficamente como una estructura
rectangular formada por filas y columnas. Cada columna almacena informacin
sobre una propiedad determinada de la tabla (se le llama tambin atributo),
nombre, DNI, apellidos, edad, etc.
Cada fila posee una ocurrencia o ejemplar de la instancia o relacin
representada por la tabla (a las filas se las llama tambin tuplas).

2.4.2.

Terminologa Relacional

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


Atributo. Cada columna de la tabla
Grado. Nmero de atributos de la tabla
Cardinalidad. Nmero de tuplas de una tabla
Dominio. Conjunto vlido de valores representables por un atributo.

2.4.3.

Claves

Clave candidata: Conjunto de atributos de una tabla que identifican


unvocamente 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.

Representacin de una tabla en el modelo relacional

3. SQL SERVER
3.1.

DEFINICIN

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


Corporation orientado a sistemas medianos y grandes. SQL Server

ADMINISTRACIN DE BASE DE DATOS

Pgina 11 de 70

SISTEMA DE GESTIN 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 crticas ofrecidas en la
versin anterior, proporcionando un rendimiento, una disponibilidad y una
facilidad de uso innovadores para las aplicaciones ms importantes. Microsoft
SQL Server 2014 ofrece nuevas capacidades en memoria en la base de datos
principal para el procesamiento de transacciones en lnea (OLTP) y el
almacenamiento de datos, que complementan sus capacidades de
almacenamiento de datos en memoria y BI existentes para lograr la solucin
de base de datos en memoria ms completa del mercado.
SQL Server 2014 tambin proporciona nuevas soluciones de copia de seguridad
y de recuperacin ante desastres, as como de arquitectura hbrida con
Windows Azure, lo que permite a los clientes utilizar sus actuales
conocimientos con caractersticas locales que aprovechan los centros de datos
globales de Microsoft. Adems, SQL Server 2014 aprovecha las nuevas
capacidades de Windows Server 2012 y Windows Server 2012 R2 para ofrecer
una escalabilidad sin parangn a las aplicaciones de base de datos en un
entorno fsico o virtual.

3.2.

HISTORIA

La historia de SQL empieza en 1974 con la definicin, por parte de Donald


Chamberlin y de otras personas que trabajaban en los laboratorios de
investigacin de IBM, de un lenguaje para la especificacin de las
caractersticas 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
revisin del lenguaje (SEQUEL/2), que a partir de ese momento cambi de
nombre por motivos legales, convirtindose 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 todava comercializado, tambin otras
compaas 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 aos ochenta, numerosas
compaas (por ejemplo Oracle y Sybase, slo por citar algunos)
comercializaron productos basados en SQL, que se convierte en el estndar
industrial de hecho por lo que respecta a las bases de datos relacionales.

ADMINISTRACIN DE BASE DE DATOS

Pgina 12 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER

3.3.

CARACTERSTICAS

3.3.1.

Caractersticas Bsicas

Seguridad: Proteccin 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 tambin admite distintos tipos de datos
Concurrencia: Permite que varios usuarios usen la misma base de
datos al mismo tiempo controlando el acceso simultneo mediante 2
modos de control de concurrencia.
Recuperacin: SQL Server cuenta con 3 formas diferentes de respaldo
y recuperacin de base de datos
SQL Server Management Studio: Herramienta grfica de
administracin 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 informacin dela estructura de una
BD. Para crear una Base de Datos solo basta con crear un script que
obtenga dicha informacin.
Almacenamiento y servicios en la nube

3.3.2.

Caractersticas 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 aplicacin de base de datos. OLTP en
memoria se instala con el motor de SQL Server 2014 y no requiere de acciones
adicionales. Adems, entrega los beneficios del rendimiento en memoria sin
necesidad de reescribir la aplicacin de base de datos ni de actualizar el

ADMINISTRACIN DE BASE DE DATOS

Pgina 13 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER
hardware. OLTP en memoria le permite acceder a las dems caractersticas
sofisticadas de SQL Server, mientras saca ventaja del rendimiento en memoria.
Almacn de columnas actualizable en memoria
Proporciona una compresin mayor, consultas ms sofisticadas y la capacidad
de actualizar el almacn de columnas existente para las cargas de trabajo de
almacenamiento de datos, lo que mejora an ms la velocidad de carga, el
rendimiento de las consultas, la concurrencia e incluso reduce el precio por
terabyte.
Extensin de la memoria a SSD
Integra en forma transparente y sin fisuras el almacenamiento en estado slido
en SQL Server al utilizar las unidades SSD como una extensin del grupo de
bfer 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 rplicas secundarias que permanecen disponibles para lecturas en todo
momento, incluso en el caso de errores de red. Las instancias de los clsteres
de conmutacin por error ahora son compatibles con los volmenes
compartidos de clster de Microsoft, lo que aumenta el uso del
almacenamiento compartido y mejora la resistencia ante la conmutacin por
error.
Operaciones en lnea mejoradas de la base de datos: incluye la reconstruccin
en lnea del ndice de una sola particin y la administracin de prioridad de
bloqueo para el conmutador de particin 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 mnimas y mximas en cada volumen, lo que ofrece controles ms
completos para aislar los recursos.
Escenarios hbridos
Copias de seguridad de SQL Server en Azure: proporciona una administracin y
automatizacin de las copias de seguridad de SQL Server (desde las
instalaciones locales y Microsoft Azure) al almacenamiento de Microsoft Azure.
AlwaysOn mediante rplicas secundarias de Azure: agregue fcilmente rplicas
en Microsoft Azure a los grupos de disponibilidad locales.

ADMINISTRACIN DE BASE DE DATOS

Pgina 14 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER
SQL XI (integracin 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 implementacin: implemente fcilmente las bases de datos
locales de SQL Server en Microsoft Azure.

3.3.3.

Tamao mximo de una base de datos

En la siguiente tabla se especifican el tamao y la cantidad mxima 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
Motor de base de
datos
Tamao de archivo
(datos)
Tamao de archivo
(registro)
Tamao de la base de
datos
Bases de datos por
instancia de SQL Server
Niveles de
procedimientos
almacenados anidados
Subconsultas anidadas
Niveles de
desencadenadores
anidados
ndices no clster por
tabla
Parmetros por
procedimiento
almacenado
REFERENCES por tabla
Columnas por instruccin
UPDATE (tablas anchas)

3.4.

Tamaos mximo SQL


Server (32 bits)
16 terabytes

Tamaos mximo
SQL Server (64
bits)
16 terabytes

2 terabytes

2 terabytes

524.272 terabytes

524.272 terabytes

32.767

32.767

32

32

32
32

32
32

999

999

2,100

2,100

253
4096

253
4096

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
aplicacin.

ADMINISTRACIN DE BASE DE DATOS

Pgina 15 de 70

SISTEMA DE GESTIN 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 ms all de un lenguaje SQL cualquiera ya que incluye caractersticas
propias de cualquier lenguaje de programacin, caractersticas que nos
permiten definir la lgica necesaria para el tratamiento de la informacin:

Tipos de datos.
Definicin de variables.
Estructuras de control de flujo.
Gestin de excepciones.
Funciones predefinidas.
Sin embargo no permite:
Crear interfaces de usuario.
Crear aplicaciones ejecutables, sino elementos que en algn momento
llegarn al servidor de datos y sern ejecutados.

Debido a estas restricciones se emplea generalmente


procedimientos almacenados, triggers y funciones de usuario.

para

crear

Puede ser utilizado como cualquier SQL como lenguaje embebido en


aplicaciones desarrolladas en otros lenguajes de programacin como Visual
Basic, C, Java, etc. Y por supuesto los lenguajes incluidos en la plataforma .NET.
Tambin lo podremos ejecutar directamente de manera interactiva, por
ejemplo desde el editor de consultas de SSMS (SQL Server Management
Studio) el entorno de gestin 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 operacin basada en el lgebra relacional. El lgebra
relacional define una serie de operaciones cuyos operandos son tablas y cuyo
resultado es tambin una tabla.
Las operaciones de lgebra relacional implementadas en TRANSACT-SQL son:

La unin UNION
La diferencia EXCEPT
La interseccin INTERSECT
El producto cartesiano CROSS JOIN
La composicin interna INNER JOIN
La composicin externa LEFT JOIN, RIGHT JOIN Y FULL JOIN

ADMINISTRACIN DE BASE DE DATOS

Pgina 16 de 70

SISTEMA DE GESTIN 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 seleccin o en la clusula WHERE o HAVING,
originalmente no se podan incluir en la lista de seleccin.
Una subconsulta se denomina tambin consulta o seleccin interna, mientras
que la instruccin que contiene la subconsulta es conocida como consulta o
seleccin externa.
Aparece siempre encerrada entre parntesis y tiene la misma sintaxis que una
sentencia SELECT normal con alguna limitacin:
No puede incluir una clusula COMPUTE o FOR BROWSE y slo puede incluir
una clusula ORDER BY cuando se especifica tambin una clusula TOP.
Una subconsulta puede anidarse en la clusula WHERE o HAVING de una
instruccin externa SELECT, INSERT, UPDATE o DELETE, o bien en otra
subconsulta. Se puede disponer de hasta 32 niveles de anidamiento, aunque el
lmite vara 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 nmero de veces que se ejecutarn las subconsultas puede
dispararse!
Cuando la subconsulta aparece en la lista de seleccin de otra consulta, deber
devolver un solo valor, de lo contrario provocar un error.

3.4.3.

Programacin en TRANSACT SQL

Ahora veremos que TRANSACT-SQL va ms all de un lenguaje SQL cualquiera


ya que aunque no permita:
Crear interfaces de usuario.
Crear aplicaciones ejecutables, sino elementos que en algn momento
llegarn al servidor de datos y sern ejecutados.
Incluye caractersticas propias de cualquier lenguaje de programacin,
caractersticas que nos permiten definir la lgica necesaria para el tratamiento
de la informacin:
Tipos de datos.
Definicin de variables.
Estructuras de control de flujo.

ADMINISTRACIN DE BASE DE DATOS

Pgina 17 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER
Gestin de excepciones.
Funciones predefinidas.
Elementos para la visualizacin, que permiten mostrar mensajes
definidos por el usuario gracias a la clusula PRINT.
Estas caractersticas permiten crear bloques de cdigo orientados a realizar
operaciones ms complejas. Estos bloques no son programas sino
procedimientos o funciones que podrn ser llamados en cualquier momento.
En SQL Server podemos definir tres tipos de bloques de cdigo, 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 parmetros 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 estn precompilados. La
primera vez que se ejecuta un procedimiento, el procesador de consultas de
SQL Server lo analiza y prepara un plan de ejecucin que se almacena en una
tabla del sistema. Posteriormente, el procedimiento se ejecuta segn 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 instantnea 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 informacin de las tablas del
sistema y pueden ejecutarse en cualquier base de datos del servidor.
Tambin estn los procedimientos de usuario, los crea cualquier usuario que
tenga los permisos oportunos.
Se pueden crear tambin procedimiento temporales locales y globales. Un
procedimiento temporal local se crea por un usuario en una conexin
determinada y slo se puede utilizar en esa sesin, un procedimiento temporal
global lo pueden utilizar todos los usuarios, cualquier conexin puede ejecutar
un procedimiento almacenado temporal global. ste existe hasta que se cierra

ADMINISTRACIN DE BASE DE DATOS

Pgina 18 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER
la conexin 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 conexin que se utiliz para crear el
procedimiento, ste ya no se puede volver a ejecutar, slo podrn 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 tambin se
puede utilizar el nombre del procedimiento almacenado slo, siempre que sea
la primera palabra del lote. Para eliminar un procedimiento almacenado
utilizamos la sentencia DROP PROCEDURE.

3.5.

ADMINISTRACIN

3.5.1.

Instalacin

La instalacin de SQL Server no representa mayores problemas, ya que muchas


distribuciones incluyen paquetes con los que realizar la instalacin y
configuracin bsica. A continuacin
Requisitos software y hardware para SQL Server 2014:
Compone
nte
.NET
Framewor
k

Windows
PowerShe
ll

Software
de red

Requisito
.NET 3.5 SP1 es un requisito para SQL Server 2014
cuando se selecciona Motor de base de datos,
Reporting Services, Master Data Services, Data
Quality Services, Replicacin o SQL Server
Management Studio, y no lo instala ya el programa
de instalacin de SQL Server.
.NET 4.0 es un requisito para SQL Server 2014. SQL
Server instala .NET 4.0 durante el paso de instalacin
de caractersticas.
SQL Server 2014 no instala ni habilita Windows
PowerShell 2.0; sin embargo, Windows PowerShell 2.0
es un requisito previo de instalacin para los
componentes del Motor de base de datos y SQL
Server Management Studio.
Los sistemas operativos admitidos para SQL Server
2014 tienen software de red integrado. Las instancias
con nombre y predeterminadas de una instalacin

ADMINISTRACIN DE BASE DE DATOS

Pgina 19 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER

Virtualiza
cin

Disco
duro

Unidad
Monitor
Internet

independiente admiten los siguientes protocolos de


red: Memoria compartida, Canalizaciones con
nombre, TCP/IP y VIA.
SQL Server 2014 se admite en entornos de mquina
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.
SQL Server 2014 requiere un mnimo de 6 GB de
espacio disponible en disco.
Las necesidades de espacio en disco variarn segn
los componentes de SQL Server 2014 que instale.
Para la instalacin desde disco se necesita una
unidad de DVD.
SQL Server 2014 requiere Super VGA (800x600) o un
monitor de una resolucin mayor.
La funcionalidad de Internet necesita acceso a
Internet (no necesariamente de carcter gratuito).

Requisitos de procesador, memoria y sistema operativo


Componente
Memoria

Velocidad
del
procesador
Tipo de
procesador

3.5.2.

Requisito
Mnimo:
Ediciones Express: 512 MB
Todas las dems ediciones: 1 GB
Se recomienda:
Ediciones Express: 1 GB
Todas las dems ediciones: al menos 4 GB y debe
aumentar a medida que el tamao de la base de
datos aumente para asegurar un rendimiento
ptimo.
Mnimo:
Procesador x86: 1,0 GHz
Procesador x64: 1,4 GHz
Recomendado: 2 GHz o ms
Procesador x64: AMD Opteron, AMD Athlon 64,
Intel Xeon compatible con Intel EM64T Intel
Pentium IV compatible con EM64T
Procesador x86: compatible con Pentium III o
superior

Administracin de la Seguridad

ADMINISTRACIN DE BASE DE DATOS

Pgina 20 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER
Un usuario es una entidad de seguridad de la base de datos. Los inicios de
sesin 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 sesin con autenticacin en Windows y
autenticacin 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.
Autenticacin de Windows: En este modo de autenticacin, los usuarios
obtienen acceso al servidor SQL Server mediante un inicio de sesin asignado a
sus cuentas de Windows.
Ventajas:
Permite agregar grupos de usuarios a SQL Server mediante la
agregacin de una cuenta de inicio de sesin nica.
Permite a los usuarios un rpido acceso a SQL Server sin tener que
recordar otra cuenta de inicio de sesin y contrasea.
Autenticacin SQL: En este modo de autenticacin, los usuarios obtienen
acceso a SQL Server mediante un inicio de sesin asignado a sus cuentas de
SQL Server.
Modificar inicios de sesin: Se puede modificar un inicio de sesin con la
instruccin ALTER LOGIN o con el explorador de objetos, que puede ser para
cambiar su contrasea.
Eliminar inicios de sesin: Se puede eliminar inicios de sesin con la
instruccin 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 funcin sysadmin, por
ejemplo el inicio de sesin 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 sesin 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:

ADMINISTRACIN DE BASE DE DATOS

Pgina 21 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER
FUNCION
db_accessadmin
db_backupoperator
db_datareader
db_datawriter
db_ddladmin
db_denydatareader
db_denydatawriter
db_owner
public

3.5.3.

DESCRIPCIN
Agregar o quitar usuarios, grupos
y funciones de la base de datos.
Realizar una copia de seguridad
de la base de datos
Leer datos de cualquier tabla.
Agregar, cambiar o eliminar datos
de cualquier tabla
Agregar, eliminar o modificar
objetos de la base de datos
No poder leer datos de ninguna
tabla
No poder cambiar datos de
ninguna tabla.
Realizar cualquier actividad de
funcin de la base de datos
Mantener los permisos
predeterminados

Organizacin de archivos

La organizacin de archivos de SQL Server es de forma indexada utilizando dos


archivos, uno de datos que contiene la informacin de la base de datos (tablas)
que permite que las consultas realizadas sean ms rpidas, se puede acceder a
los registros de forma secuencial y tambin de forma aleatoria(usando el
ndice).
En SQL Server, los ndices se organizan como rboles b. Las pginas de un
rbol b de ndice se llaman nodos del ndice. El nodo superior del rbol b se
llama nodo raz. El nivel inferior de los nodos del ndice se denomina nodos
hoja. Los niveles del ndice entre el nodo raz y los nodos hoja se conocen en
conjunto como niveles intermedios. En un ndice agrupado, los nodos hoja
contienen las pginas de datos de la tabla subyacente. El nodo raz y los nodos
intermedios incluyen pginas de ndice que contienen filas de ndice. Cada fila
de ndice contiene un valor clave y un puntero a una pgina de nivel
intermedio en el rbol b, o bien a una fila de datos del nivel hoja del ndice. Las
pginas de cada nivel del ndice se vinculan en una lista con vnculos dobles.
Los ndices agrupados tienen una fila en sys.partitions, con index_id = 1 para
cada particin utilizada por el ndice. De forma predeterminada, un ndice
agrupado tiene una sola particin. Cuando un ndice agrupado tiene mltiples
particiones, cada particin tiene una estructura de rbol b que contiene los
datos de esa particin especfica. Por ejemplo, si un ndice agrupado tiene
cuatro particiones, hay cuatro estructuras de rbol b, una en cada particin.

ADMINISTRACIN DE BASE DE DATOS

Pgina 22 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER
En funcin de los tipos de datos del ndice agrupado, cada estructura de ndice
agrupado tendr una o ms unidades de asignacin en las que almacenar y
administrar los datos de una particin especfica. Como mnimo, cada ndice
agrupado tendr una unidad de asignacin IN_ROW_DATA por particin. El
ndice agrupado tambin tendr una unidad de asignacin LOB_DATA por
particin si contiene columnas de objetos grandes (LOB). Tambin tendr una
unidad de asignacin ROW_OVERFLOW_DATA por particin si contiene
columnas de longitud variable que superen el lmite de tamao de fila de 8.060
bytes.
Las pginas de la cadena de datos y las filas que contienen se ordenan segn
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 pginas del
rbol b estn delimitadas por punteros de pgina 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 particin especfica. 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 despus recorre las pginas de datos
mediante los punteros anterior y siguiente. Para buscar la primera pgina de la
cadena de pginas de datos, SQL Server sigue los punteros situados ms a la
izquierda desde el nodo raz del ndice.
En esta ilustracin se muestra la estructura de un ndice agrupado en una sola
particin.

ADMINISTRACIN DE BASE DE DATOS

Pgina 23 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER

3.5.4.

Organizacin de Tablas

Las tablas y los ndices se almacenan como una coleccin de pginas de 8 KB.
En este tema se describe el modo en el que se organizan las pginas de tablas
e ndices.
En la siguiente ilustracin se muestra la organizacin de una tabla. Una tabla
est incluida en una o varias particiones y cada particin incluyen filas de
datos con una estructura de ndice clster o de montn. Las pginas del ndice
clster o de montn se administran en una o varias unidades de asignacin,
segn los tipos de columna de las filas de datos.

ADMINISTRACIN DE BASE DE DATOS

Pgina 24 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER

Particiones
Las pginas de tablas e ndices estn incluidas en una o varias particiones. Una
particin es una unidad de organizacin de datos definida por el usuario. De
forma predeterminada, una tabla o un ndice solo incluyen una particin que
contiene todas las pginas de tablas o ndices. La particin se encuentra en un
solo grupo de archivos. Una tabla o un ndice con una sola particin 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 funcin 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 tratarn como una sola entidad lgica cuando se realicen consultas o
actualizaciones en los datos.
Para ver las particiones utilizadas por una tabla o un ndice, utilice la vista de
catlogo sys.partitions (Transact-SQL).
Tablas, montones e ndices clster
Las tablas de SQL Server utilizan uno de estos dos mtodos para organizar sus
pginas de datos en una particin:
Las tablas agrupadas son tablas que tienen un ndice clster.
Las filas de datos estn almacenadas en un orden basado en la clave del
ndice clster. El ndice clster se implementa como una estructura de
rbol b que admite la recuperacin rpida de las filas a partir de los
valores de las claves del ndice clster. Las pginas de cada nivel del

ADMINISTRACIN DE BASE DE DATOS

Pgina 25 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER
ndice, incluidas las pginas de datos del nivel hoja, se vinculan en una
lista con vnculos dobles. Sin embargo, la navegacin de un nivel a otro.

3.5.5.

Copias de Seguridad

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


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

de
de
de
de

Las copias de seguridad de bases de datos son fciles 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 pequeas, de las que se puede hacer una
copia de seguridad con rapidez, la prctica recomendada es utilizar copias de
seguridad completas de la base de datos. Sin embargo, a media que la base de
datos aumenta de tamao, 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
recuperacin simple
Con el modelo de recuperacin simple, despus de cada copia de seguridad, la
base de datos queda expuesta a la prdida potencial del trabajo en caso de
desastre. El riesgo de prdida del trabajo se incrementa con cada actualizacin
hasta la siguiente copia de seguridad completa, cuando el riesgo de prdida
vuelve a cero y empieza un nuevo ciclo de riesgo.
Con el modelo de recuperacin simple, el riesgo de prdida del trabajo se
incrementa a lo largo del tiempo que transcurre entre las copias de seguridad.
La siguiente ilustracin muestra el riesgo de prdida del trabajo en una
estrategia de copia de seguridad que solo utiliza copias de seguridad
completas de la base de datos.

ADMINISTRACIN DE BASE DE DATOS

Pgina 26 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER

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


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

Copias de seguridad diferenciales de bases de datos

ADMINISTRACIN DE BASE DE DATOS

Pgina 27 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER
Una copia de seguridad diferencial de la base de datos registra slo 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 ms pequeas y rpidas 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
prdida 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 ms 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 recuperacin simple)
Con el modelo de recuperacin simple, el riesgo de prdida de trabajo entre
copias de seguridad aumenta con el tiempo. La siguiente ilustracin muestra
una estrategia de copia de seguridad que reduce el riesgo de prdida del
trabajo mediante la utilizacin 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
tamao suficiente como para que la prxima 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.

ADMINISTRACIN DE BASE DE DATOS

Pgina 28 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER

Estrategia de las copias de seguridad diferenciales de bases de datos


(modelo de recuperacin completa)
Con el modelo de recuperacin completa y el de recuperacin optimizada para
cargas masivas de registros, las copias de seguridad diferenciales de la base
de datos reducen el tiempo necesario para poner al da 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 prdida de trabajo al momento
despus de la copia de seguridad de registros ms 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 tamao
suficiente como para que la prxima 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.

ADMINISTRACIN DE BASE DE DATOS

Pgina 29 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER

Antes de la primera copia de seguridad de la base de datos en esta ilustracin,


la base de datos est expuesta a una posible prdida de trabajo (de la hora t0
a la hora t1). Por tanto, las copias de seguridad de registros rutinarias reducen
el riesgo de prdida de trabajo a la posibilidad de perder los cambios realizados
despus 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.

Replicacin

La replicacin es un conjunto de tecnologas destinadas a la copia y


distribucin 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 replicacin permite distribuir datos entre diferentes ubicaciones y entre
usuarios remotos o mviles mediante redes locales y de rea extensa,
conexiones de acceso telefnico, conexiones inalmbricas e Internet.
La replicacin 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 creacin de

ADMINISTRACIN DE BASE DE DATOS

Pgina 30 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER
informes, la integracin de datos procedentes de varios sitios, la integracin de
datos heterogneos, y la descarga del procesamiento por lotes. La replicacin
de mezcla se ha diseado principalmente para las aplicaciones mviles o de
servidores distribuidos que pueden encontrarse con conflictos de datos. Los
escenarios ms frecuentes son: el intercambio de datos con usuarios mviles,
las aplicaciones de punto de venta (POS) a consumidores, y la integracin de
datos de varios sitios. La replicacin de instantneas se usa para proporcionar
el conjunto de datos inicial para la replicacin transaccional y de mezcla;
tambin se puede usar cuando est indicada una actualizacin completa de los
datos. Con estos tres tipos de replicacin, SQL Server proporciona un sistema
eficaz y flexible para la sincronizacin de datos en toda la organizacin. La
replicacin 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 creacin de soluciones


empresariales de transformaciones de datos e integracin de datos. Integration
Services sirve para resolver complejos problemas empresariales mediante la
copia o descarga de archivos, el envo de mensajes de correo electrnico como
respuesta a eventos, la actualizacin de almacenamientos de datos, la limpieza
y minera de datos, y la administracin 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 orgenes como archivos de datos XML,
archivos planos y orgenes de datos relacionales y, despus, cargar los datos
en uno o varios destinos.
Integration Services contiene un variado conjunto de tareas y transformaciones
integradas, herramientas para la creacin de paquetes y el servicio Integration
Services para ejecutar y administrar los paquetes. Las herramientas grficas de
Integration Services se pueden usar para crear soluciones sin escribir una sola
lnea de cdigo. Tambin se puede programar el amplio modelo de objetos de
Integration Services para crear paquetes mediante programacin y codificar
tareas personalizadas y otros objetos de paquete.

3.6.1.

Caractersticas 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 solucin empresarial requiere. SQL Server Data Tools

ADMINISTRACIN DE BASE DE DATOS

Pgina 31 de 70

SISTEMA DE GESTIN 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 produccin.

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 importacin y exportacin de SQL Server para
crear paquetes bsicos que copian datos de un origen en un destino.
Crear paquetes que incluyan flujo de control complejo, flujo de datos,
lgica controlada por eventos y registro.
Probar y depurar paquetes mediante las caractersticas de solucin de
problemas y supervisin en el Diseador SSIS, y las caractersticas de
depuracin en SQL Server Data Tools (SSDT).
Crear configuraciones que actualizan las propiedades de los paquetes y
los objetos de paquete en el tiempo de ejecucin.
Crear una utilidad de implementacin que pueda instalar paquetes y sus
dependencias en otros equipos.
Guardar copias de paquetes en la base de datos msdb de SQL Server, el
Almacn de paquetes de SSIS y el sistema de archivos.

4. VENTAJAS
Dado que las aplicaciones de red y web cada vez se vuelven ms significantes,
la importancia de sistemas de administracin de bases de datos relacionales
tambin se incrementa. Seleccionar la adecuada de acuerdo a las necesidades
es esencial para asegurar la calidad y el desempeo adecuado de las
aplicaciones. Microsoft SQL Server presenta las siguientes cualidades:

ADMINISTRACIN DE BASE DE DATOS

Pgina 32 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER
Software de Administracin de Nivel Empresarial
Microsoft SQL Server incluye software de administracin de base de datos de
nivel profesional y empresarial. Pocos competidores, como MySQL, han
desarrollado software similar en aos recientes, pero Microsoft SQL Server se
diferencia por ser ms fcil de usar, adems de tener ms funcionalidades.
Soporte completo para disparadores (triggers), por ejemplo, son compatibles
con los productos de Microsoft. MySQL Server ha incluido esta caracterstica,
sin embargo, sin el completo soporte necesario. El software ofrecido por
Microsoft tambin ofrece una estrecha integracin con .NET framework, el cual
no es el caso de sus competidores.
Excelente Soporte de Recuperacin de Datos
Los datos corruptos son siempre una preocupacin cuando se producen
prdidas de energa o paradas incorrectas. Microsoft SQL Server posee una
serie de caractersticas que facilitan la recuperacin y restauracin de datos.
Aunque tablas individuales no pueden ser recuperadas o restauradas, estn
disponibles opciones de recuperacin 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 mltiples opciones de recuperacin.
Seguridad y Estabilidad
Muchos servidores SQL estn diseados para el uso de grandes conjuntos de
datos y el manejo de muchos usuarios. Cuando se enfrenta esta situacin, es
decir, mltiples 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 difcil acceso no autorizado). Microsoft SQL Server tiene
herramientas como Administracin Basada en Polticas (Poilicy-Based
Managment) que permite a los administradores de la base de datos el poder
definir polticas para los datos y el recibir alertas cuando estas polticas son
violadas. Otra caracterstica 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 ms seguro frente a eventuales ataques. Existen
tambin caractersticas de Administracin de Claves Externas (External Key
Managment) que permiten soportar certificados de terceros e informacin
encriptada en una seccin separada, por lo que se puede, por ejemplo,
manejar el procesamiento de tarjetas de crdito y permanecer en el
cumplimiento de las leyes actuales de la industria de tarjetas de crditos.
Instalacin Simplificada
Microsoft SQL Server puede ser instalado usando asistentes de configuracin
(setup-wizards); el instalador tambin detecta, descarga e instala cualquier

ADMINISTRACIN DE BASE DE DATOS

Pgina 33 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER
actualizacin pre-requisito requerida. Estas caractersticas reducen la
complejidad de instalar el software. Componentes individuales como Servicios
de Base de Datos, Servicios de Anlisis e Integracin de Servicios pueden ser
instalados de forma separada. Microsoft SQL Server actualiza automticamente
los parches de seguridad para reducir los costes de mantenimiento.
Menores costos de propiedad
Microsoft SQL Server incluye caractersticas adicionales sin costo adicional,
como: Compresin Avanzada, herramientas de gestin de datos,
particionamiento de discos, herramientas de minera de datos, Reportes
Empresariales (Enterprise Reporting) y Seguridad Avanzada. Adems, pese a
ligeras variaciones, las versiones ms recientes de Microsft SQL Server poseen
compatibilidad con versiones anteriores, por lo que no hay necesidad de
actualizar todos los equipos.

5. DIFERENCIAS
A continuacin 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

ADMINISTRACIN DE BASE DE DATOS

Pgina 34 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER

ADMINISTRACIN DE BASE DE DATOS

Pgina 35 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER
Cuadro comparativo sobre Otros Objetos ms 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 integracin de tecnologas en memoria, una
rpida obtencin de informacin 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
Server
Propsito
2014
editions
Enterpri Enterprise - SQL Server
se
2014 Enterprise pone a
su disposicin
rendimiento fiable y
completo para
satisfacer los requisitos
de base de datos y

Canal de
Modelo de
Distribuci
Licencias
n
Por
ncleo**

ADMINISTRACIN DE BASE DE DATOS

Licencias
por
volumen,
hosting de
terceros

Precio Open
NL (US$)
$14,256***

Pgina 36 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER
Business Intelligence
ms exigentes La
edicin Enterprise
proporciona los niveles
de servicio y
rendimiento ms altos
para las cargas de
trabajo de nivel 1.
Busines Business Intelligence s
SQL Server 2014
intellige Business Intelligence
nce
ofrece una plataforma
amplia que permite a
las organizaciones
compilar e implementar
soluciones BI seguras,
escalables y
administrables.
Standar Standard - SQL Server
d
2014 Standard
proporciona
funcionalidad de
Business Intelligence y
administracin de datos
bsica para cargas de
trabajo que no son
crticas, con recursos de
TI mnimos.

Servidor +
CAL****

Licencias
por
volumen,
hosting de
terceros

$8,908***

Por
ncleo**

Licencias
por
volumen,
hosting de
terceros

$3,717***

Servidor +
CAL****

Licencias
por
volumen,
hosting de
terceros,
minorista
(FPP)
Licencias
por
volumen,
hosting de
terceros,
minorista
(FPP)

$931***

Develop Developer - SQL Server Por usuario


er
2014 Developer es una
versin completamente
funcional de SQL Server
que permite a los
desarrolladores
compilar, probar y
demostrar aplicaciones
con software de SQL
Server de una manera
rentable.

ADMINISTRACIN DE BASE DE DATOS

$38***

Pgina 37 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER
Web

Web - SQL Server 2014 Web facilita una


plataforma de datos
segura, rentable y
altamente escalable
para sitios web pblicos.
La edicin Web est
disponible solo para
proveedores de
servicios de software de
terceros.
Express Express - SQL Server
2014 Express es una
base de datos bsica
gratuita, ideal para
aprender y para
compilar aplicaciones
de escritorio y pequeas
aplicaciones de servidor
controladas por datos.
Novedad en SQL Server
2014: SQL Server
Express LocalDB.

Slo hosting
de terceros

Descarga
gratuita

Segn sea el
precio
establecido
por el
proveedor de
hosting

Gratuito

* Los clientes que requieran un almacn de datos MPP ahora tienen acceso a
Parallel Data Warehouse (PDW) a travs de sus licencias bsicas Enterprise
Edition con Software Assurance. PDW es parte Analytics Platform System (APS)
**Ediciones vendidas bajo el modelo de licencia por ncleo se venden como
paquetes de dos ncleos.
***Los precios corresponden a Open No Level (NL) ERP. Para precios ms
especficos, 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 lderes
en el sector, partners y clientes.
En la siguiente tabla, se muestra las empresas INTERNACIONALES que usan
SQL SERVER, mostrando el tipo de aplicacin en el que se ha usado, junto con
los resultados que se obtuvieron:
Tipo de
Aplicacin

EMPRESAS/Aplica
ciones

ADMINISTRACIN DE BASE DE DATOS

Resultado

Pgina 38 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER
Servicios de
juego en lnea

bwin.party

Aceleracin
del
almacenamie
nto flash PCIe

LSI

Aceleracin

Fusion-io

ADMINISTRACIN DE BASE DE DATOS

Mejora
del
rendimiento
transaccional que multiplica por
16
el
actual,
de
15.000
transacciones por segundo a
250.000 con SQL Server con OLTP
en memoria
La compaa de entretenimiento
digital en lnea bwin.party ofrece
servicios de juego en lnea y otros
productos a casi dos millones de
usuarios. Dado que la empresa
necesitaba ms capacidad para el
rpido crecimiento del negocio y
mejorar el rendimiento del sitio web,
implement
una
solucin
de
procesamiento de transacciones en
lnea (OLTP) en memoria en Microsoft
SQL Server 2014. Ahora, la compaa
puede administrar 250.000 solicitudes
por segundo y ofrecer a los jugadores
una experiencia de juego ms gil y
fluido. bwin.party tambin espera
ahorrar hasta 100.000 USD en costes
de hardware, y est aumentando sus
ingresos.
Mejora
del
rendimiento
transaccional que multiplica por
24
el
actual,
de
6.500
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 caracterstica SQL Server 2014
con OLTP en memoria. Adems, 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.
Mejora radical del rendimiento

Pgina 39 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER
del
almacenamie
nto flash PCIe

Administraci
n de plizas
de seguros

Sistema
de
administracin de
plizas de seguros
de Accenture Duck
Creek

Software
empresarial

Conjunto
aplicaciones
de OpenText

de
ECM

ADMINISTRACIN DE BASE DE DATOS

mediante SQL Server 2014 con


OLTP en memoria
Fusion-io
ha
realizado
varias
comparativas con SQL Server 2014
con OLTP en memoria en las que se
muestran
mejoras
radicales
del
rendimiento.
Un rendimiento transaccional un 9
% mayor con respecto a SQL
Server 2008
Con ms de 37.000 transacciones por
hora, esta comparativa de Accenture y
HP model una mezcla compleja de
actividades de administracin de
plizas
que
una
aseguradora
experimentara durante un da activo
de
procesamiento
empresarial.
Basndose en datos recopilados de
tres aseguradoras diferentes de nivel
1, se demostr que Microsoft SQL
Server 2012 ofrece un aumento
significativo en el rendimiento.
Procesamiento de 14,8 millones
de mensajes de correo electrnico
en 24 horas
OpenText,
lder
global
de
administracin
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 solucin
OpenText
Email
Monitoring
ejecutndose en SQL Server 2012
proces 14,8 millones de mensajes en
24 horas. Esta cantidad sobrepasa
cualquier
resultado
comparativo
publicado
para
soluciones
de
supervisin de correo electrnico y es
aproximadamente 15 veces superior al
volumen tpico de ingesta de mensajes
de organizaciones de gran tamao que
procesan entre 1 y 1,5 millones de
mensajes al da.

Pgina 40 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER
Facturacin
de
telecomunica
ciones

Turnkey Converged
Billing (TCB) de
Redknee

Administraci
n del ciclo de
vida
del
producto

Teamcenter
Siemens

Servicios
financieros

Temenos T24

de

ADMINISTRACIN DE BASE DE DATOS

Escalado a 250 millones de


suscriptores
En estudios comparativos, la solucin
de facturacin 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
facturacin como en la mediacin, con
la generacin de 26 millones de
facturas en un ciclo de facturacin de
seis horas y la mediacin de 4.900
millones registros de detalles de
llamadas en 12 horas. Esto mostr una
escalabilidad casi lineal a medida que
aumentaba el nmero de suscriptores.
Nmero de usuarios simultneos
duplicado a 10.000 y con un gran
rendimiento
Las
pruebas
comparativas
de
rendimiento realizadas por Siemens
PLM validaron el rendimiento y la
escalabilidad de Microsoft SQL Server
2012
como
un
sistema
de
administracin de bases de datos
empresariales para Teamcenter. Las
pruebas confirman que, cuando se
ejecuta
en
SQL
Server
2012,
Teamcenter puede escalar fcilmente
a 10.000 usuarios simultneos y
mantener un rendimiento excelente.
Escalado lineal de un 95 %
Microsoft SQL Server 2012, junto con
HP y XIO, bati el rcord de
rendimiento de Temenos T24. En un
momento de mximo rendimiento, el
sistema proces 11.500 transacciones
por segundo en pruebas empresariales
en lnea y, de media, ms de 10.000
capitalizaciones
y
devengos
de
intereses por segundo durante las
pruebas de cierre de empresa, lo que

Pgina 41 de 70

SISTEMA DE GESTIN 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
S
Neptunia
s.a.

AFP
Integra

Depsa

Hersil s.a.

Corporaci
n
Miyasato

Arquitectura

Aplicaciones

Sistemas
Fuente:
Sistemas
Propios.
ETL: DTS de MS SQL
Base de Datos: MS SQL Server
Plataforma BI: MicroStrategy
Desktop
Designer,
Architect,
Intelligence Server SE, Web
Reporter.
Sistemas
Fuente:
Sistemas
Propios
ETL: MS DTS
Base de Datos: MS SQL
Plataforma BI: MicroStrategy
Architect,
Desktop
Designer,
Intelligence Server SE y
Web Professional
Sistemas Fuente: Desarrollos
propios y pirmides
Base de Datos: MS SQL
Plataforma BI: MicroStrategy

Extranet
para
Clientes
Externos
Track & Trace de Envos

Sistemas Fuente: AS 400 e IMS


ETL: BI Tool y procesos de AS400
Base de Datos: MS SQL
Plataforma
de
BI:
MicroStrategy
Sistemas Fuente: OfiSmart ERP.
ETL: Desarrollos propios (Stored
Procedures)
Base de Datos: MS SQL 2005
Plataforma
de
BI:
MicroStrategy

ADMINISTRACIN DE BASE DE DATOS

Finanzas

Contabilidad
Almacn
Ventas
Existencias
Clientes
Finanzas
Comercial
Prescripciones mdicas

Ventas
Logstica
Cuentas por Cobrar

Pgina 42 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER
Yichang

Sistemas Fuente: SAP


ETL: DTS
Base de Datos: MS SQL
Plataforma BI: MicroStrategy

Ventas
Rentabilidad
Finanzas
Logstica
Operaciones

8. APLICACIN
La aplicacin se realizar en la base de datos AdventureWorks (una BD de la
compaa ficticia Adventure Works ), el cual ser implementada utilizando
Microsoft SQL Server Managment Studio 2014:

8.1.
Informacin acerca
Adventure Works:

del

negocio

de

la

compaa

Adventure Works Cycles, la empresa ficticia en la que se basan las bases de


datos de ejemplo AdventureWorks, es una gran empresa de fabricacin
multinacional. La empresa fabrica y vende bicicletas de metal y de metal
compuesto en los mercados de Norteamrica, 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 ao 2000, Adventure Works Cycles compr una pequea planta de
fabricacin, Importadores Neptuno, situada en Mxico. Importadores Neptuno
fabrica varios subcomponentes muy importantes para la lnea de productos de
Adventure Works Cycles. Estos subcomponentes se envan a la sede de Bothell
para el ensamblado final del producto. En el ao 2001, Importadores Neptuno
pas a ser el nico fabricante y distribuidor del grupo de productos de
bicicletas de paseo.
Tras un ao 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 travs de costos de produccin ms bajos.
Los empleados de la compaa realizan actividades de negocio habituales tales
como:
Ventas
Establecimiento de objetivos de ventas y otros objetivos de negocio
Entregas

ADMINISTRACIN DE BASE DE DATOS

Pgina 43 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER
Administracin de inventario
Administracin de ferias comerciales
Administracin de personal
Definicin de presupuestos

8.2.

Sentencias DDL (Lenguaje de definicin de datos):

8.2.1.

Creacin la Base de datos:

Se crea la base de datos llamada AdventureWorks, especificando la direccin


del archivo principal AdventureWorks2014_Data.mdf' (El cul tiene
extensin .mdf y contiene todas las tablas), y el archivo de transacciones
AdventureWorks2014_Log.ldf (con extensin 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)

ADMINISTRACIN DE BASE DE DATOS

Pgina 44 de 70

SISTEMA DE GESTIN 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.

Creacin 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 coleccin de esquemas XML existente.

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

coleccin de esquemas XML y todos sus componentes.


En nuestra aplicacin 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/adventureworks/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/adventureworks/ContactRecord" />
<xsd:import
namespace="http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/ContactTypes" />
<xsd:element name="AdditionalContactInfo" >
<xsd:complexType mixed="true" >
<xsd:sequence>
ADMINISTRACIN DE BASE DE DATOS

Pgina 45 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER
<xsd:any processContents="strict"
namespace="http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/ContactRecord
http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/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/adventureworks/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/adventureworks/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

ADMINISTRACIN DE BASE DE DATOS

Pgina 46 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER
urces
Tabla Department
Tabla Contact
Person

Nombres y direcciones de clientes


Tabla Address
individuales, proveedores y empleados.
Tabla StateProvince
Tabla BillOfMaterials

Production

Productos fabricados y vendidos por


Adventure Works Cycles.

Tabla Product
Tabla WorkOrder
Tabla
PurchaseOrderDetail

Purchasing

Proveedores a los que se compran las


piezas y los productos.

Tabla
PurchaseOrderHeade
r
Tabla Vendor
Tabla Customer

Sales

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

8.2.3.

Creacin de las tablas:

Se crear una tabla Producto para el rea de Produccin (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,

ADMINISTRACIN DE BASE DE DATOS

Pgina 47 de 70

SISTEMA DE GESTIN 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]

ADMINISTRACIN DE BASE DE DATOS

Pgina 48 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER
) ON [PRIMARY];
GO
Tambin se le crea un ndice para acelerar y hacer ms eficiente las consultas
sobre la tabla producto, este ndice tambin 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

ADMINISTRACIN DE BASE DE DATOS

Pgina 49 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER
Creacin 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 sera demasiado incomprensible y extenso,
por lo que presentaremos solamente el modelo relacional del esquema ms
importante del negocio: Esquema de produccin.
Este esquema contiene la informacin completa de los productos que la
empresa fabrica, y su relacin con las diferentes tablas existentes en el
esquema. Estas tablas contienen la informacin 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, clasificacin general de los
productos, costos, descripcin, modelos del producto, orden de trabajo, etc.

ADMINISTRACIN DE BASE DE DATOS

Pgina 50 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER
Modelo relacional sencillo del esquema Production

ADMINISTRACIN DE BASE DE DATOS

Pgina 51 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER

ADMINISTRACIN DE BASE DE DATOS

Pgina 52 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER

8.2.5.

Creacin de Triggers:

Para el rea de produccin 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 informacin 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;

ADMINISTRACIN DE BASE DE DATOS

Pgina 53 de 70

SISTEMA DE GESTIN 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

ADMINISTRACIN DE BASE DE DATOS

Pgina 54 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER

8.2.6.

Creacin de Funciones:

Primeramente se crear una funcin para saber el nivel de stock de un


producto en su respectivo almacn, donde el parmetro de entrada ser el
cdigo del producto.
Cdigo de la funcin:
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 funcin para un parmetro 1 y al consultarlo se obtiene su stock
respectivo:

ADMINISTRACIN DE BASE DE DATOS

Pgina 55 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER
Luego crearemos una funcin para obtener el precio de un producto segn su
cdigo y una fecha en especfico, esta informacin se obtendr del historial de
costos del producto.
Cdigo de la funcin:
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 funcin con los parmetros
respectivos del producto con cdigo 770 y la fecha del 20-06-2011 ser:

ADMINISTRACIN DE BASE DE DATOS

Pgina 56 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER

8.2.7.

Creacin de Procedimientos:

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


producto en sus diferentes niveles de estructura, adems se mostrar la
descripcin del componente, su cantidad, su costo total, y su nivel de jerarqua
en la construccin del producto.
Cdigo 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
ADMINISTRACIN DE BASE DE DATOS

Pgina 57 de 70

SISTEMA DE GESTIN 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 cdigo 717 y en la fecha del
15-06-2011, se obtendrn los siguientes resultados:

8.2.8.

Creacin de vistas:

Cdigo de creacin para el producto y su descripcin:


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

ADMINISTRACIN DE BASE DE DATOS

Pgina 58 de 70

SISTEMA DE GESTIN 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 diseo de esta vista se podr visualizar en el SQL Server Management Studio
de la siguiente manera:

ADMINISTRACIN DE BASE DE DATOS

Pgina 59 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER
Al consultar la vista se tendra el siguiente resultado:

8.3.

Sentencias DML (Lenguaje de manipulacin de datos)

8.3.1.

Insertando Datos:

Para insertar datos a la entidad Producto se necesita insertar un cdigo de


subcategora y de modelo existentes en la base de datos ya que sus claves
primarias son consideradas como claves forneas en la tabla Producto.
Insertaremos los datos de un Producto con nombre PRODUCTO X y con cdigo
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');

ADMINISTRACIN DE BASE DE DATOS

Pgina 60 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER
Al realizar una consulta del PRODUCTO X, se mostrarn 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 cdigo 1010 veremos que la
actualizacin de datos se realiz satisfactoriamente:

ADMINISTRACIN DE BASE DE DATOS

Pgina 61 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER

8.3.3.

Eliminar datos:

Procederemos a eliminar el PRODUCTO X con cdigo 1010:


DELETE from Production.Product
where ProductID=1010;
Al consultar la tabla del PRODUCTO X, veremos que la eliminacin de datos se
ha realizado satisfactoriamente:

8.3.4.

Reportes

Reporte de los productos con color Negro y cuyo precio sea mayor a 200
dlares:
select ProductID, Name, ProductNumber, Color, SafetyStockLevel,
ReorderPoint,StandardCost, ListPrice, ProductSubcategoryID, ProductModelID
from Production.Product where Color='Black' and ListPrice>200;

ADMINISTRACIN DE BASE DE DATOS

Pgina 62 de 70

SISTEMA DE GESTIN 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;

ADMINISTRACIN DE BASE DE DATOS

Pgina 63 de 70

SISTEMA DE GESTIN 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 2000 dlares:
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;

ADMINISTRACIN DE BASE DE DATOS

Pgina 64 de 70

SISTEMA DE GESTIN 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 ao y del ao pasado:
SELECT
s.[BusinessEntityID] AS CODIGO
,p.[FirstName] AS NOMBRE
,p.[LastName] AS APELLIDO
,e.[JobTitle] AS TTULO
,pp.[PhoneNumber] AS NMERO
,ea.[EmailAddress] AS CORREO
,a.[AddressLine1] AS DIRRECIN
,a.[City] AS CIUDAD
,s.[SalesQuota] AS VENTAS
,s.[SalesLastYear] AS Ventas_Ao_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

ADMINISTRACIN DE BASE DE DATOS

Pgina 65 de 70

SISTEMA DE GESTIN 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 cdigo, nombre, color, nivel de
stock, costo , precio, su nmero componentes estructurales (Bills of Materials)
totales, adems se muestra la cantidad de ordenes totales que se ha realizado
de un producto y con una condicin de que su stock actual sea mayor que
200:
SELECT
P.ProductID as Cdigo, 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

ADMINISTRACIN DE BASE DE DATOS

Pgina 66 de 70

SISTEMA DE GESTIN 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 travs de las pestaas 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.

ADMINISTRACIN DE BASE DE DATOS

Pgina 67 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER

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


informacin de la tabla Empleados de base de datos utilizada en nuestra
aplicacin:

ADMINISTRACIN DE BASE DE DATOS

Pgina 68 de 70

SISTEMA DE GESTIN 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 relacin de
muchos a muchos. Adems de tener la considerable ventaja de que es
ms fcil de entender y de utilizar por un usuario no experto.
La organizacin de archivos de SQL Server se hace de forma indexada
utilizando dos archivos, uno de datos que contiene la informacin de la
base de datos permitiendo que las consultas realizadas sean ms
rpidas, accedindose a los registros de forma secuencial y tambin de
forma aleatoria, usando el ndice.
SQL Server presenta opciones para la administracin 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
encriptacin, 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 garantas, as como un rendimiento
confiable, mayor rapidez en la obtencin de la informacin privilegiada
que subyace en datos de cualquier tipo, y una plataforma para la nube
hbrida, que facilitan ms la creacin de soluciones de recuperacin ante
desastres y copias de seguridad con Microsoft Azure.
Por lo tanto, SQL Server hace ms sencilla y rentable la creacin de
aplicaciones esenciales y de alto rendimiento, ayudando a los empleados
y de la alta direccin, a tomar decisiones ms inteligentes y rpidas.

ADMINISTRACIN DE BASE DE DATOS

Pgina 69 de 70

SISTEMA DE GESTIN DE BASE DE DATOS


SQL SERVER

BIBLIOGRAFA
https://msdn.microsoft.com/es-es/library/bb545450.aspx
https://www.microsoft.com/es-es/server-cloud/products/sql-serverbenchmarks/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/sqlserver/purchasing.aspx

ADMINISTRACIN DE BASE DE DATOS

Pgina 70 de 70

Potrebbero piacerti anche