Sql-Server
Sql-Server
INGENIERÍA
FACULTAD DE INGENIERÍA INDUSTRIAL Y DE
SISTEMAS
SQL SERVER
SISTEMA DE GESTIÓN DE BASE DE
DATOS
CURSO:
ADMINISTRACIÓN DE BASE DE DATOS
PROFESOR:
ING. MANUEL VELARDE CARPIO
INTEGRANTES:
GOYCOCHEA SANTISTEBAN, JARED
HUISA PALACIOS, CARLOS
ZUTTA TUESTA, JHEYMY
2015
SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL SERVER
ÍNDICE
INTRODUCCIÓN...........................................................................................4
1. OBJETIVOS............................................................................................5
2. MARCO TEORICO...................................................................................5
2.1. BASE DE DATOS................................................................................................. 5
2.2. SISTEMA DE GESTIÓN DE BASE DE DATOS........................................................6
2.3. ADMINISTRACIÓN DE BASE DE DATOS...............................................................8
2.4. BASE DE DATOS RELACIONAL............................................................................9
2.4.1. Tablas......................................................................................................... 9
2.4.2. Terminología Relacional.............................................................................9
2.4.3. Claves...................................................................................................... 10
3. SQL SERVER........................................................................................10
3.1. DEFINICIÓN..................................................................................................... 10
3.2. HISTORIA......................................................................................................... 11
3.3. CARACTERÍSTICAS........................................................................................... 11
3.3.1. Características Básicas............................................................................11
3.3.2. Características del servidor SQL SERVER 2014........................................12
3.3.3. Tamaño máximo de una base de datos....................................................13
3.4. TRANSACT- SQL (MOTOR DE BASE DE DATOS)................................................14
3.4.1. Consulta MULTITABLA...............................................................................14
3.4.2. Subconsultas............................................................................................15
3.4.3. Programación en TRANSACT SQL.............................................................15
3.4.4. Procedimientos almacenados STORE PROCEDURE...................................16
3.5. ADMINISTRACIÓN............................................................................................ 17
3.5.1. Instalación................................................................................................17
3.5.2. Administración de la Seguridad................................................................18
3.5.3. Organización de archivos.........................................................................20
3.5.4. Organización de Tablas............................................................................21
3.5.5. Copias de Seguridad................................................................................23
3.5.6. Replicación............................................................................................... 27
3.6. SQL SERVER INTEGRATION SERVICES..............................................................27
3.6.1. Características y tareas de Integration Services......................................28
3.7. SQL SERVER DATA TOOLS (SSDT).........................................................................28
4. VENTAJAS............................................................................................ 28
5. DIFERENCIAS.......................................................................................31
6. COSTOS.............................................................................................. 33
7. USO DEL SOFTWARE EN LAS EMPRESAS................................................34
8. APLICACIÓN........................................................................................38
8.1. INFORMACIÓN ACERCA DEL NEGOCIO DE LA COMPAÑÍA ADVENTURE WORKS:...................38
8.2. SENTENCIAS DDL (LENGUAJE DE DEFINICIÓN DE DATOS):............................................38
8.2.1. Creación la Base de datos:.......................................................................38
8.2.2. Creación de esquemas XML:....................................................................39
INTRODUCCIÓN
Existen muchos SGBD que dan soporte a los datos que son generados por el
propio negocio de las organizaciones, y es por ello que en el presente trabajo
se estudiará a un sistema de gestión de base de datos específico y que ha
tenido muchos años en el mercado, SQL Server. Este sistema de gestor de base
de datos, es pues, ampliamente conocido por sus funciones avanzadas y su
seguridad. Ofrece varias ediciones con diferentes opciones en cada una de
ellas, las cuales cuentan con un conjunto de características que buscan
satisfacer una variedad de necesidades de los usuarios. Esto, sumado a su
confiabilidad, otorga beneficios considerables al momento de su uso.
1. OBJETIVOS
2. MARCO TEORICO
Cada programa trataba como máximo un fichero maestro, que solía estar sobre
cinta magnética y, en consecuencia, se trabajaba con acceso secuencial. Cada
vez que se le quería añadir una aplicación que requería el uso de algunos de
los datos que ya existían y de otros nuevos, se diseñaba un fichero nuevo con
todos los datos necesarios (algo que provocaba redundancia) para evitar que
los programas tuviesen que leer muchos ficheros.
Es así pues que, una base de datos es un conjunto estructurado de datos que
representa entidades y sus interrelaciones. La representación será única e
integrada, a pesar de que debe permitir utilizaciones varias y simultáneas.
Ahora bien, para entender mejor qué son los SGBD, haremos un repaso de su
evolución desde los años sesenta hasta nuestros días.
Los primeros SGBD–en los años sesenta todavía no se les denominaba así–
estaban orientados a facilitar la utilización de grandes conjuntos de datos en
los que las interrelaciones eran complejas. El arquetipo de aplicación era el Bill
of materials o Parts explosion, típica en las industrias del automóvil, en la
construcción de naves espaciales y en campos similares. Estos sistemas
trabajaban exclusivamente por lotes (batch).
Puesto que los programas estaban relacionados con el nivel físico, se debían
modificar continuamente cuando se hacían cambios en el diseño y la
organización de la BD. La preocupación básica era maximizar el rendimiento: el
tiempo de respuesta y las transacciones por segundo.
Los tipos de datos que se pueden definir en los SGBD relacionales de los años
ochenta y noventa son muy limitados. La incorporación de tecnologías
multimedia–imagen y sonido– en los Sistemas de Información (SI) hace
necesario que los SGBD relacionales acepten atributos de estos tipos.
La rápida adopción de la web a los SI hace que los SGBD incorporen recursos
para ser servidores de páginas web, como por ejemplo la inclusión de SQL en
guiones HTML, SQL incorporado en Java, etc.
Edgar Frank Codd a finales definió las bases del modelo relacional a finales de
los 60. Trabajaba para IBM empresa que tardó un poco en implementar sus
bases. Pocos años después el modelo se empezó a implementar cada vez más,
hasta ser el modelo de bases de datos más popular. En las bases de Codd se
definían los objetivos de este modelo:
2.4.1. Tablas
2.4.3. Claves
3. SQL SERVER
3.1. DEFINICIÓN
3.2. HISTORIA
3.3. CARACTERÍSTICAS
OLTP en memoria
Proporciona funciones de OLTP en memoria integradas en la base de datos
central de SQL Server para mejorar en forma significativa la velocidad y el
rendimiento de las transacciones en su aplicación de base de datos. OLTP en
memoria se instala con el motor de SQL Server 2014 y no requiere de acciones
adicionales. Además, entrega los beneficios del rendimiento en memoria sin
necesidad de reescribir la aplicación de base de datos ni de actualizar el
Escenarios híbridos
Copias de seguridad de SQL Server en Azure: proporciona una administración y
automatización de las copias de seguridad de SQL Server (desde las
instalaciones locales y Microsoft Azure) al almacenamiento de Microsoft Azure.
Tipos de datos.
Definición de variables.
Estructuras de control de flujo.
Gestión de excepciones.
Funciones predefinidas.
Sin embargo no permite:
Crear interfaces de usuario.
Crear aplicaciones ejecutables, sino elementos que en algún momento
llegarán al servidor de datos y serán ejecutados.
Para obtener datos de varias tablas tenemos que combinar estas tablas
mediante alguna operación basada en el álgebra relacional. El álgebra
relacional define una serie de operaciones cuyos operandos son tablas y cuyo
resultado es también una tabla.
La unión UNION
La diferencia EXCEPT
La intersección INTERSECT
El producto cartesiano CROSS JOIN
La composición interna INNER JOIN
La composición externa LEFT JOIN, RIGHT JOIN Y FULL JOIN
3.4.2. Subconsultas
Aparece siempre encerrada entre paréntesis y tiene la misma sintaxis que una
sentencia SELECT normal con alguna limitación:
No puede incluir una cláusula COMPUTE o FOR BROWSE y sólo puede incluir
una cláusula ORDER BY cuando se especifica también una cláusula TOP.
Tipos de datos.
Definición de variables.
Estructuras de control de flujo.
Gestión de excepciones.
Funciones predefinidas.
Elementos para la visualización, que permiten mostrar mensajes
definidos por el usuario gracias a la cláusula PRINT.
También están los procedimientos de usuario, los crea cualquier usuario que
tenga los permisos oportunos.
la conexión que el usuario utilizó para crearlo, y hasta que se completan todas
las versiones del procedimiento que se estuvieran ejecutando mediante otras
conexiones. Una vez cerrada la conexión que se utilizó para crear el
procedimiento, éste ya no se puede volver a ejecutar, sólo podrán finalizar las
conexiones que hayan empezado a ejecutar el procedimiento.
3.5. ADMINISTRACIÓN
3.5.1. Instalación
Compone Requisito
nte
.NET .NET 3.5 SP1 es un requisito para SQL Server 2014
Framewor cuando se selecciona Motor de base de datos,
k Reporting Services, Master Data Services, Data
Quality Services, Replicación o SQL Server
Management Studio, y no lo instala ya el programa
de instalación de SQL Server.
.NET 4.0 es un requisito para SQL Server 2014. SQL
Server instala .NET 4.0 durante el paso de instalación
de características.
Windows SQL Server 2014 no instala ni habilita Windows
PowerShe PowerShell 2.0; sin embargo, Windows PowerShell 2.0
ll es un requisito previo de instalación para los
componentes del Motor de base de datos y SQL
Server Management Studio.
Software Los sistemas operativos admitidos para SQL Server
de red 2014 tienen software de red integrado. Las instancias
con nombre y predeterminadas de una instalación
Componente Requisito
Memoria Mínimo:
Ediciones Express: 512 MB
Todas las demás ediciones: 1 GB
Se recomienda:
Ediciones Express: 1 GB
Todas las demás ediciones: al menos 4 GB y debe
aumentar a medida que el tamaño de la base de
datos aumente para asegurar un rendimiento
óptimo.
Velocidad Mínimo:
del Procesador x86: 1,0 GHz
procesador Procesador x64: 1,4 GHz
Recomendado: 2 GHz o más
Tipo de Procesador x64: AMD Opteron, AMD Athlon 64,
procesador Intel Xeon compatible con Intel EM64T Intel
Pentium IV compatible con EM64T
Procesador x86: compatible con Pentium III o
superior
Ventajas:
FUNCION DESCRIPCIÓN
db_accessadmin Agregar o quitar usuarios, grupos
y funciones de la base de datos.
db_backupoperator Realizar una copia de seguridad
de la base de datos
db_datareader Leer datos de cualquier tabla.
db_datawriter Agregar, cambiar o eliminar datos
de cualquier tabla
db_ddladmin Agregar, eliminar o modificar
objetos de la base de datos
db_denydatareader No poder leer datos de ninguna
tabla
db_denydatawriter No poder cambiar datos de
ninguna tabla.
db_owner Realizar cualquier actividad de
función de la base de datos
public Mantener los permisos
predeterminados
Los índices agrupados tienen una fila en sys.partitions, con index_id = 1 para
cada partición utilizada por el índice. De forma predeterminada, un índice
agrupado tiene una sola partición. Cuando un índice agrupado tiene múltiples
particiones, cada partición tiene una estructura de árbol b que contiene los
datos de esa partición específica. Por ejemplo, si un índice agrupado tiene
cuatro particiones, hay cuatro estructuras de árbol b, una en cada partición.
En función de los tipos de datos del índice agrupado, cada estructura de índice
agrupado tendrá una o más unidades de asignación en las que almacenar y
administrar los datos de una partición específica. Como mínimo, cada índice
agrupado tendrá una unidad de asignación IN_ROW_DATA por partición. El
índice agrupado también tendrá una unidad de asignación LOB_DATA por
partición si contiene columnas de objetos grandes (LOB). También tendrá una
unidad de asignación ROW_OVERFLOW_DATA por partición si contiene
columnas de longitud variable que superen el límite de tamaño de fila de 8.060
bytes.
Las páginas de la cadena de datos y las filas que contienen se ordenan según
el valor de la clave de índice agrupado. Todas las inserciones se hacen en el
punto en el que el valor de clave de la fila insertada quede dentro de la
secuencia de orden entre las filas existentes. Las colecciones de páginas del
árbol b están delimitadas por punteros de página en la vista del sistema
sys.system_internals_allocation_units.
Las tablas y los índices se almacenan como una colección de páginas de 8 KB.
En este tema se describe el modo en el que se organizan las páginas de tablas
e índices.
Particiones
Las páginas de tablas e índices están incluidas en una o varias particiones. Una
partición es una unidad de organización de datos definida por el usuario. De
forma predeterminada, una tabla o un índice solo incluyen una partición que
contiene todas las páginas de tablas o índices. La partición se encuentra en un
solo grupo de archivos. Una tabla o un índice con una sola partición es
equivalente a la estructura organizativa de tablas e índices de versiones
anteriores de SQL Server.
Cuando una tabla o un índice utilizan varias particiones, se crean particiones
horizontales de los datos para que se asignen los grupos de filas a particiones
individuales, en función de la columna especificada. Las particiones se pueden
colocar en uno o varios grupos de archivos de la base de datos. La tabla o el
índice se tratarán como una sola entidad lógica cuando se realicen consultas o
actualizaciones en los datos.
Para ver las particiones utilizadas por una tabla o un índice, utilice la vista de
catálogo sys.partitions (Transact-SQL).
índice, incluidas las páginas de datos del nivel hoja, se vinculan en una
lista con vínculos dobles. Sin embargo, la navegación de un nivel a otro.
Las copias de seguridad de bases de datos son fáciles de utilizar. Una copia de
seguridad completa de una base de datos contiene todos los datos de la base
de datos. Para las bases de datos pequeñas, de las que se puede hacer una
copia de seguridad con rapidez, la práctica recomendada es utilizar copias de
seguridad completas de la base de datos. Sin embargo, a media que la base de
datos aumenta de tamaño, las copias de seguridad completas requieren una
mayor cantidad de tiempo y espacio de almacenamiento. Por ello, para una
base de datos grande, puede que desee complementar las copias de seguridad
completas con copias de seguridad diferenciales.
Una copia de seguridad diferencial de la base de datos registra sólo los datos
que han cambiado desde la última copia de seguridad completa de la base de
datos. Esta copia de seguridad completa se llama base diferencial. Las copias
de seguridad diferenciales de base de datos son más pequeñas y rápidas que
las copias de seguridad completas de base de datos. Esto ahorra tiempo de
copia de seguridad pero aumenta la complejidad. Para bases de datos grandes,
las copias de seguridad diferenciales pueden producirse en intervalos menores
que las copias de seguridad de base de datos. Esto disminuye el riesgo de
pérdida del trabajo.
3.5.6. Replicación
Al trabajar en SQL Server Data Tools (SSDT), se pueden realizar las siguientes
tareas:
Ejecutar el Asistente para importación y exportación de SQL Server para
crear paquetes básicos que copian datos de un origen en un destino.
Crear paquetes que incluyan flujo de control complejo, flujo de datos,
lógica controlada por eventos y registro.
Probar y depurar paquetes mediante las características de solución de
problemas y supervisión en el Diseñador SSIS, y las características de
depuración en SQL Server Data Tools (SSDT).
Crear configuraciones que actualizan las propiedades de los paquetes y
los objetos de paquete en el tiempo de ejecución.
Crear una utilidad de implementación que pueda instalar paquetes y sus
dependencias en otros equipos.
Guardar copias de paquetes en la base de datos msdb de SQL Server, el
Almacén de paquetes de SSIS y el sistema de archivos.
4. VENTAJAS
Dado que las aplicaciones de red y web cada vez se vuelven más significantes,
la importancia de sistemas de administración de bases de datos relacionales
también se incrementa. Seleccionar la adecuada de acuerdo a las necesidades
es esencial para asegurar la calidad y el desempeño adecuado de las
aplicaciones. Microsoft SQL Server presenta las siguientes cualidades:
Seguridad y Estabilidad
Instalación Simplificada
5. DIFERENCIAS
6. COSTOS
SQL
Canal de
Server Modelo de Precio Open
Propósito Distribució
2014 Licencias NL (US$)
n
editions
Enterpri Enterprise - SQL Server Por Licencias $14,256***
se 2014 Enterprise pone a núcleo** por
su disposición volumen,
rendimiento fiable y hosting de
completo para terceros
satisfacer los requisitos
de base de datos y
Business Intelligence
más exigentes La
edición Enterprise
proporciona los niveles
de servicio y
rendimiento más altos
para las cargas de
trabajo de nivel 1.
Busines Business Intelligence - Servidor + Licencias $8,908***
s SQL Server 2014 CAL**** por
intellige Business Intelligence volumen,
nce ofrece una plataforma hosting de
amplia que permite a terceros
las organizaciones
compilar e implementar
soluciones BI seguras,
escalables y
administrables.
Standar Standard - SQL Server Por Licencias $3,717***
d 2014 Standard núcleo** por
proporciona volumen,
funcionalidad de hosting de
Business Intelligence y terceros
administración de datos
básica para cargas de
trabajo que no son
críticas, con recursos de
TI mínimos.
Servidor + Licencias $931***
CAL**** por
volumen,
hosting de
terceros,
minorista
(FPP)
Develop Developer - SQL Server Por usuario Licencias $38***
er 2014 Developer es una por
versión completamente volumen,
funcional de SQL Server hosting de
que permite a los terceros,
desarrolladores minorista
compilar, probar y (FPP)
demostrar aplicaciones
con software de SQL
Server de una manera
rentable.
* Los clientes que requieran un almacén de datos MPP ahora tienen acceso a
Parallel Data Warehouse (PDW) a través de sus licencias básicas Enterprise
Edition con Software Assurance. PDW es parte Analytics Platform System (APS)
**Ediciones vendidas bajo el modelo de licencia por núcleo se venden como
paquetes de dos núcleos.
***Los precios corresponden a Open No Level (NL) ERP. Para precios más
específicos, es necesario contactarse con un proveedor de Microsoft.
****Se requieren licencias CAL para cada usuario o dispositivo que acceda a un
servidor, bajo el modelo de licencia Servidor+CAL
se traduce en un procesamiento de 25
millones de capitalizaciones y
devengos de cuentas en menos de 42
minutos.
8. APLICACIÓN
Tras un año fiscal con muy buenos resultados, Adventure Works Cycles está
intentando ampliar su cuota de mercado dirigiendo sus ventas a sus mejores
clientes, ampliando la disponibilidad de sus productos en un sitio web externo,
y reduciendo los costos de venta a través de costos de producción más bajos.
Ventas
Entregas
Administración de inventario
Administración de personal
Definición de presupuestos
<xsd:import
namespace="http://schemas.microsoft.com/sqlserver/2004/07/adventure-
works/ContactRecord" />
<xsd:import
namespace="http://schemas.microsoft.com/sqlserver/2004/07/adventure-
works/ContactTypes" />
<xsd:any processContents="strict"
namespace="http://schemas.microsoft.com/sqlserver/2004/07/adventure-
works/ContactRecord
http://schemas.microsoft.com/sqlserver/2004/07/adventure-
works/ContactTypes"
minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>';
GO
namespace="http://schemas.microsoft.com/sqlserver/2004/07/adventure-
works/ContactTypes" />
</xsd:choice>
<xsd:attribute name="date" type="xsd:date" />
</xsd:complexType>
</xsd:element>
</xsd:schema>';
GO
urces
Tabla Department
Tabla Contact
Nombres y direcciones de clientes
Person Tabla Address
individuales, proveedores y empleados.
Tabla StateProvince
Tabla BillOfMaterials
Productos fabricados y vendidos por
Production Tabla Product
Adventure Works Cycles.
Tabla WorkOrder
Tabla
PurchaseOrderDetail
Tabla Vendor
Tabla Customer
Tabla
Datos relacionados con los clientes y las
Sales SalesOrderDetail
ventas.
Tabla
SalesOrderHeader
) ON [PRIMARY];
GO
También se le crea un índice para acelerar y hacer más eficiente las consultas
sobre la tabla producto, este índice también se puede realizar en XML para
cada columna XML:
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];
EXECUTE [dbo].[uspLogError];
END CATCH;
END;
GO
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];
EXECUTE [dbo].[uspLogError];
END CATCH;
END;
GO
Código de la función:
IF (@ret IS NULL)
SET @ret = 0
RETURN @ret
END;
GO
Código de la función:
RETURN @StandardCost;
END;
GO
--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
,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
Al realizar una consulta del PRODUCTO X, se mostrarán los datos del nuevo
producto que hemos insertado:
UPDATE Production.Product
set ProductNumber='XY-7500', ListPrice=700.50
where ProductID=1010;
8.3.4. Reportes
Reporte de los productos con color Negro y cuyo precio sea mayor a 200
dólares:
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;
Reporte de las ordenes de venta, con el nombre y apellido del cliente, su correo
y cuyo importe de venta total sea mayor 2’000 dólares:
SELECT
H.SalesOrderID AS 'N° Orden',
H.OrderDate AS Fecha,
SUM(D.OrderQty*D.UnitPrice) AS [Importe Vendido],
C.FirstName+' '+C.MiddleName+' '+C.LastName AS Cliente,
A.EmailAddress AS Email
FROM Sales.SalesOrderHeader H
INNER JOIN Sales.SalesOrderDetail D
ON H.SalesOrderID = D.SalesOrderID
INNER JOIN Person.Person C
ON H.CustomerID = C.BusinessEntityID
INNER JOIN Person.EmailAddress A
ON C.BusinessEntityID = A.BusinessEntityID
GROUP BY H.SalesOrderID, H.OrderDate, C.FirstName+' '+C.MiddleName+'
'+C.LastName,A.EmailAddress
HAVING SUM(D.OrderQty*D.UnitPrice)>2000;
SELECT
s.[BusinessEntityID] AS CODIGO
,p.[FirstName] AS NOMBRE
,p.[LastName] AS APELLIDO
,e.[JobTitle] AS TÍTULO
,pp.[PhoneNumber] AS NÚMERO
,ea.[EmailAddress] AS CORREO
,a.[AddressLine1] AS DIRRECIÓN
,a.[City] AS CIUDAD
,s.[SalesQuota] AS VENTAS
,s.[SalesLastYear] AS Ventas_Año_Pasado
FROM [Sales].[SalesPerson] s
INNER JOIN [HumanResources].[Employee] e
ON e.[BusinessEntityID] = s.[BusinessEntityID]
INNER JOIN [Person].[Person] p
ON p.[BusinessEntityID] = s.[BusinessEntityID]
INNER JOIN [Person].[BusinessEntityAddress] bea
ON bea.[BusinessEntityID] = s.[BusinessEntityID]
INNER JOIN [Person].[Address] a
ON a.[AddressID] = bea.[AddressID]
INNER JOIN [Person].[CountryRegion] cr
ON cr.[CountryRegionCode] = sp.[CountryRegionCode]
LEFT OUTER JOIN [Sales].[SalesTerritory] st
ON st.[TerritoryID] = s.[TerritoryID]
LEFT OUTER JOIN [Person].[EmailAddress] ea
ON ea.[BusinessEntityID] = p.[BusinessEntityID]
LEFT OUTER JOIN [Person].[PersonPhone] pp
ON pp.[BusinessEntityID] = p.[BusinessEntityID]
Reporte de los datos de los productos con su código, nombre, color, nivel de
stock, costo , precio, su número componentes estructurales (Bills of Materials)
totales, además se muestra la cantidad de ordenes totales que se ha realizado
de un producto y con una condición de que su stock actual sea mayor que
200:
SELECT
P.ProductID as Código, P.Name as Nombre, P.Color, P.SafetyStockLevel as
'Nivel de Stock', P.StandardCost as Costo, P.ListPrice as Precio,
SUM(B.PerAssemblyQty) as 'Cantidad de Materiales', SUM(W.OrderQty) as
'Orden Total'
FROM Production.Product P
INNER JOIN Production.BillOfMaterials B
ON P.ProductID = B.ComponentID
INNER JOIN Production.WorkOrder W
ON W.ProductID = P.ProductID
WHERE P.SafetyStockLevel > 200
GROUP BY P.SafetyStockLevel, P.Name, P.StandardCost, P.ListPrice,
P.ProductID, P.Color
CONCLUSIONES
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.
BIBLIOGRAFÍA
https://msdn.microsoft.com/es-es/library/bb545450.aspx
https://www.microsoft.com/es-es/server-cloud/products/sql-server-
benchmarks/partner.aspx
http://www.spperu.com/pdf/microstrategy/Neptunia.pdf
http://www.spperu.com/pdf/microstrategy/AFPIntegra.pdf
http://www.spperu.com/pdf/microstrategy/Depsa.pdf
http://www.spperu.com/pdf/microstrategy/Laboratorios_Hersil.pdf
http://www.spperu.com/pdf/microstrategy/Miyasato.pdf
http://www.spperu.com/pdf/microstrategy/Yichang.pdf
https://www.microsoft.com/en-us/server-cloud/products/sql-
server/purchasing.aspx