martes, 30 de junio de 2015

Normalización de Base de Datos

El proceso de normalización de bases de datos consiste en designar y aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación al modelo relacional.
Las bases de datos relacionales se normalizan para:
  • Evitar la redundancia de los datos.
  • Disminuir problemas de actualización de los datos en las tablas.
  • Proteger la integridad de los datos.

En el modelo relacional es frecuente llamar tabla a una relación, aunque para que una tabla sea considerada como una relación tiene que cumplir con algunas restricciones:
  • Cada tabla debe tener su nombre único.
  • No puede haber dos filas iguales. No se permiten los duplicados.
  • Todos los datos en una columna deben ser del mismo tipo.


Los términos Relación, Tupla y Atributo derivan del álgebra y cálculo relacional, que constituyen la fuente teórica del modelo de base de datos relacional.
Todo atributo en una tabla tiene un dominio, el cual representa el conjunto de valores que el mismo puede tomar. Una instancia de una tabla puede verse entonces como un subconjunto del producto cartesiano entre los dominios de los atributos. Sin embargo, suele haber algunas diferencias con la analogía matemática, ya que algunos RDBMS permiten filas duplicadas, entre otras cosas. Finalmente, una tupla puede razonarse matemáticamente como un elemento del producto cartesiano entre los dominios.

Primera Forma Normal (1FN)

Una tabla está en Primera Forma Normal si:
  • Todos los atributos son atómicos. Un atributo es atómico si los elementos del dominio son simples e indivisibles.
  • La tabla contiene una clave primaria única.
  • La clave primaria no contiene atributos nulos.
  • No debe existir variación en el número de columnas.
  • Los Campos no clave deben identificarse por la clave (Dependencia Funcional)
  • Debe Existir una independencia del orden tanto de las filas como de las columnas, es decir, si los datos cambian de orden no deben cambiar sus significados
Esta forma normal elimina los valores repetidos dentro de una Base de Datos.

Segunda Forma Normal (2FN)



Dependencia Funcional. Una relación está en 2FN si está en 1FN y si los atributos que no forman parte de ninguna clave dependen de forma completa de la clave principal. Es decir que no existen dependencias parciales. (Todos los atributos que no son clave principal deben depender únicamente de la clave principal). Por ejemplo {DNI, ID_PROYECTO} \rightarrow HORAS_TRABAJO (con el DNI de un empleado y el ID de un proyecto sabemos cuántas horas de trabajo por semana trabaja un empleado en dicho proyecto) es completamente funcional dado que ni DNI \rightarrowHORAS_TRABAJO ni ID_PROYECTO \rightarrow HORAS_TRABAJO mantienen la dependencia. Sin embargo {DNI, ID_PROYECTO} \rightarrow NOMBRE_EMPLEADO es parcialmente dependiente dado que DNI \rightarrow NOMBRE_EMPLEADO mantiene la dependencia.


Tercera Forma Normal (3FN)



La tabla se encuentra en 3FN si es 2FN y si no existe ninguna dependencia funcional transitiva entre los atributos que no son clave.
Un ejemplo de este concepto sería que, una dependencia funcional X->Y en un esquema de relación R es una dependencia transitiva si hay un conjunto de atributos Z que no es un subconjunto de alguna clave de R, donde se mantiene X->Z y Z->Y.
Por ejemplo, la dependencia SSN->DMGRSSN es una dependencia transitiva en EMP_DEPT de la siguiente figura. Decimos que la dependencia de DMGRSSN el atributo clave SSN es transitiva vía DNUMBER porque las dependencias SSN→DNUMBER y DNUMBER→DMGRSSN son mantenidas, y DNUMBER no es un subconjunto de la clave de EMP_DEPT. Intuitivamente, podemos ver que la dependencia de DMGRSSN sobre DNUMBER es indeseable en EMP_DEPT dado que DNUMBER no es una clave de EMP_DEPT.

Estas tres son las que más vamos a utilizar ya que con estos 3 pasos por así decirlo ya tendriamos una base de datos funcional al 99.9% :3

Vistas y Procedimientos SQL

VISTAS
Crea una tabla virtual cuyo contenido (columnas y filas) se define mediante una consulta. Utilice esta instrucción para crear una vista de los datos de una o varias tablas de la base de datos. Por ejemplo, una vista se puede utilizar para lo siguiente:
  • Para centrar, simplificar y personalizar la percepción de la base de datos para cada usuario.
  • Como mecanismo de seguridad, que permite a los usuarios obtener acceso a los datos por medio de la vista, pero no les conceden el permiso de obtener acceso directo a las tablas base subyacentes de la vista.
  • Para proporcionar una interfaz compatible con versiones anteriores para emular una tabla cuyo esquema ha cambiado.
Sintaxis

CREATE VIEW [ schema_name . ] view_name [ (column [ ,...n ] ) ] 
[ WITH <view_attribute> [ ,...n ] ] 
AS select_statement 
[ WITH CHECK OPTION ] 
[ ; ]

<view_attribute> ::= 
{
    [ ENCRYPTION ]
    [ SCHEMABINDING ]
    [ VIEW_METADATA ]     
} 

Ejemplo

USE AdventureWorks2012 ;
GO
IF OBJECT_ID ('Purchasing.PurchaseOrderReject', 'V') IS NOT NULL
    DROP VIEW Purchasing.PurchaseOrderReject ;
GO
CREATE VIEW Purchasing.PurchaseOrderReject
WITH ENCRYPTION
AS
SELECT PurchaseOrderID, ReceivedQty, RejectedQty, 
    RejectedQty / ReceivedQty AS RejectRatio, DueDate
FROM Purchasing.PurchaseOrderDetail
WHERE RejectedQty / ReceivedQty > 0
AND DueDate > CONVERT(DATETIME,'20010630',101) ;
GO

                                                                     Procedimientos

En este tema se describe cómo se crea un procedimiento almacenado de Transact-SQL mediante SQL Server Management Studio y la instrucción CREATE PROCEDURE de Transact-SQL.
Requiere el permiso CREATE PROCEDURE en la base de datos y el permiso ALTER en el esquema en el que se va a crear el procedimiento.

Ejemplo

USE AdventureWorks2012;
GO
CREATE PROCEDURE HumanResources.uspGetEmployeesTest2 
    @LastName nvarchar(50), 
    @FirstName nvarchar(50) 
AS 

    SET NOCOUNT ON;
    SELECT FirstName, LastName, Department
    FROM HumanResources.vEmployeeDepartmentHistory
    WHERE FirstName = @FirstName AND LastName = @LastName
    AND EndDate IS NULL;
GO



Disparadores SQL

Los Triggers o Disparadores son objetos que se asocian con tablas y se almacenan en la base de datos. Su nombre se deriva por el comportamiento que presentan en su funcionamiento, ya que se ejecutan cuando sucede algún evento sobre las tablas a las que se encuentra asociado. Los eventos que hacen que se ejecute un trigger son las operaciones de inserción (INSERT), borrado (DELETE) o actualización (UPDATE), ya que modifican los datos de una tabla.
La utilidad principal de un trigger es mejorar la administración de la base de datos, ya que no requieren que un usuario los ejecute. Por lo tanto, son empleados para implementar las REGLAS DE NEGOCIO (tipo especial de integridad) de una base de datos. Una Regla de Negocio es cualquier restricción, requerimiento, necesidad o actividad especial que debe ser verificada al momento de intentar agregar, borrar o actualizar la información de una base de datos. Un trigger puede prevenir errores en los datos, modificar valores de una vista, sincronizar tablas, entre otros.
Son usados para mejorar la administración de la Base de datos, sin necesidad de contar con que el usuario ejecute la sentencia de SQL. Además, pueden generar valores de columnas, previene errores de datos, sincroniza tablas, modifica valores de una vista, etc. Permite implementar programas basados en paradigma lógico (sistemas expertos, deducción).
Estructura
  • Llamada de activación: es la sentencia que permite "disparar" el código a ejecutar.
  • Restricción: es la condición necesaria para realizar el código. Esta restricción puede ser de tipo condicional o de tipo nulidad.
  • Acción a ejecutar: es la secuencia de instrucciones a ejecutar una vez que se han cumplido las condiciones iniciales

Ejemplo

CREATE TRIGGER insertar_tabla
BEFORE UPDATE ON tabla_almacen
FOR ALL records
IF New.producto < 100 then 
      INSERT INTO tabla_pedidos(Producto) VALUES ('1000');
END IF;
SELECT DBO.POLVE.TEST

END


Constraints SQL

Son usados para especificar reglas para los datos de la tabla.
si hay una violación entre la acción de los datos y la constraints, la accion es abortada por el constraints.

Los constraints pueden ser especificado cuando la tabla es creada(en el comando de CREATE TABLE) o despues de crearla con (ALTER TABLE).

Syntaxis

CREATE TABLE table_name
(
column_name1 data_type(sizeconstraint_name,
column_name2 data_type(sizeconstraint_name,
column_name3 data_type(sizeconstraint_name,
....
);

CREATE TYPE

Crea un alias de tipo de datos o un tipo definido por el usuario en la base de datos actual en SQL Server o Base de datos SQL de Azure. La implementación de un alias de tipo de datos se basa en un tipo nativo del sistema de SQL Server. Un tipo definido por el usuario se implementa a través de una clase de un ensamblado de Common Language Runtime (CLR) de Microsoft .NET Framework. Para enlazar un tipo definido por el usuario a su implementación, el ensamblado CLR que contiene la implementación del tipo se debe registrar primero en SQL.

Para seleccionar tipos de datos y equilibrar el tamaño de almacenamiento
con los requisitos, tenga en cuenta las directrices siguientes:


  • „ Si la longitud de la columna varía, utilice uno de los tipos de datos variables. Por ejemplo, si tiene una lista de nombres, puede definirlos como varchar en lugar de char (fijo).
  • „ Si es dueño de un próspero negocio de venta de libros con filiales en muchos lugares y ha especificado el tipo de datos tinyint para el identificador de cada librería en la base de datos, puede tener problemas cuando decida abrir la librería número 256.
  • „ Para los tipos de datos numéricos, el tamaño y el nivel de precisión requeridos determinan su elección. En general, utilice decimal.
  • „ Si el almacenamiento es superior a 8000 bytes, utilice text o image. Si es inferior a 8000, utilice binary o char. Cuando sea posible, lo mejor es utilizar varchar porque tiene mayor funcionalidad que text e image.
  • „ Para la moneda utilice el tipo de datos money. „ No utilice los tipos de datos aproximados float y real como claves principales. Debido a que los valores de estos tipos de datos no son exactos, no es adecuado utilizarlos en comparaciones. 

EJEMPLO


CREATE TYPE LocationTableType AS TABLE 
    ( LocationName VARCHAR(50)
    , CostRate INT );
GO

Esquema SQL

Limitaciones y restricciones

El esquema nuevo es propiedad de una de las siguientes entidades de seguridad de nivel de base de datos: usuario de base de datos, rol de base de datos o rol de aplicación. Los objetos creados dentro de un esquema son propiedad del esquema y tienen un principal_id NULL en sys.objects. La propiedad de los objetos incluidos en el esquema puede transferirse a cualquier entidad de seguridad de nivel de base de datos, pero el propietario del esquema siempre mantiene el permiso CONTROL en los objetos del esquema.

Cuando se crea un objeto de base de datos, si especifica una entidad de seguridad de dominio válida (usuario o grupo) como la propietaria del objeto, la entidad de seguridad de dominio se agregará a la base de datos como esquema. Esa entidad de seguridad de dominio será la propietaria del nuevo esquema.


EJEMPLO

USE AdventureWorks2012;
GO
CREATE SCHEMA Sprockets AUTHORIZATION Annik
    CREATE TABLE NineProngs (source int, cost int, partnumber int)
    GRANT SELECT ON SCHEMA::Sprockets TO Mandar
    DENY SELECT ON SCHEMA::Sprockets TO Prasanna;
GO 

FileGroups

Como mínimo, todas las bases de datos de SQL Server tienen dos archivos del sistema operativo: un archivo de datos y un archivo de registro. Los archivos de datos contienen datos y otros objetos, como tablas, índices, procedimientos almacenados y vistas. Los archivos de registro contienen la información necesaria para recuperar todas las transacciones de la base de datos. Los archivos de datos se pueden agrupar en grupos de archivos para su asignación y administración.

Archivos de la base de datos









Grupos de archivos


Cada base de datos tiene un grupo de archivos principal. Este grupo de archivos contiene el archivo de datos principal y cualquier otro archivo secundario que no se encuentre en otro grupo de archivos. Se pueden crear grupos de archivos definidos por el usuario para agrupar archivos con fines administrativos y de asignación y ubicación de datos.
Por ejemplo, tres archivos, Data1. ndf, Data2. ndf, y Data3. ndf, puede crearse en tres unidades de disco, respectivamente, y asignarse al grupo de archivos grArchivos1. A continuación, se puede crear una tabla específicamente para el grupo de archivos grArchivos1. Las consultas de datos de la tabla se distribuirán por los tres discos, con lo que mejorará el rendimiento. Puede obtenerse la misma mejora del rendimiento con un solo archivo creado en un conjunto de bandas RAID (matriz redundante de discos independientes). No obstante, los archivos y grupos de archivos permiten agregar fácilmente nuevos archivos a discos nuevos.

Todos los archivos de datos se almacenan en los grupos de archivos que se indican en la tabla siguiente.

sábado, 27 de junio de 2015

SQL script

Funciones de SQL
DDL - Data Definition Language

  • Creación de estructura de base de datos.
  • Integridad de los datos.

DML - Data Manipulation Language

  • Recuperación de datos.
  • Manipulación de datos.
DCL - Data Control Language
  • Control Acceso.
  • Compartición de datos.

Tipos de datos

CHARACTER (n)              CHARACTER VARYING(n)

BIT(n)                                 BIT VARYING(n)
INTEGER                           SMALLINT
NUMERIC(p, q)                 DECIMAL(p, q)
FLOAT(p)                           Date: YYYY-MM-DD
Time: HH:MM:SS
Interval: un intervalo que se puede usar para incrementar o decremento de valores.

 Operadores
Comparación
  • =, <>, <, >, <=, >=, IS NuLL
Lógicos
  • AND, OR, NOT
Intervalos
  • BETWEEN ..... AND
Cadenas de texto
  • LIKE ---> nombre LIKE '%m%' todos lo que empiezan con "m"
Conjuntos
  • IN ---> color IN ('Red', 'Blue')

Creación de Tablas
  • Se usa comando CREATE TABLE.
  • Se especifica la clave Primaria.
  • Se especifica restricciones de integridad.
  • Se especifica la integridad de referencia.
  • Se especifican los atributos de la relación y sus tipos.
Ejemplo:
CREATE TABLE NombreDeLaTabla(
nombre_columna tipo_Columna restricciones_Columna,.....
restricciones_tabla)

Restricciones de tabla
  • UNIQUE(nombre_Atributo,...)
  • PRIMARY KEY(nombre_Atributo,...)
  • FOREIGN KEY(nombre_Atributo,...) REFERENCES nombre_tabla(nombre_Atributo) accion_referencial
  • CHECK(condición)

Acciones Referenciales

ON UPDATE acción (CASCADE | SET NULL SET | DEFAULT valor)
ON DELETE acción (CASCADE | SET NULL SET | DEFAULT valor)
RESTRIC si no se especifica nadam se considera RESTRICT

Borrar Tabla

DROP TABLE nombre_tabla[CASCADE CONSTRAINT]

  • Si se utiliza CASCADE CONSTRAINT se elimina la tabla y todas sus restricciones.
  • Sino se utiliza CASCADE CONSTRAINT, si la tabla tiene restricciones asociadas no se elimina, hasta que no se eliminen las restricciones.
  • Al eliminar una tabla de la base de datos, también se eliminan los datos que tuviera almacenados.

Modificar una  Tabla

Acciones de modificación
  • Añadir atributos.
  1. ADD nuevo_atributo tipo restricciones.
  2. Las restricciones sólo pueden ser NOT NULL, CHECK y DEFAULT.
  3. Un atrivuto NOT NULL sólo se puede añadir a una tabla si esta vacía.
  • Borrar atributos
  1. DROP (nombre_atributo,...).
  2. DROP COLUMN nombre_atributo[CASCADE CONSTRAINT].
  • Modificar atributos
  1. MODIFY nombre_atributo nuevo_tipo restricciones.
  2. Se puede cambiar el tipo o disminuir el tamaño de un atrivuto si todas las tuplas tienen ese campo vacío.
  3. Un atrivuto existente se puede hacer NOT NULL si todas las tuplas tienen valor en ese atributo.
  4. Si no se especifica algo en la modificación, permanece como estaba.

Inserción de datos
INSERT INTO nombre_tabla(lista_atributos)
VALUES(lista_valores);

  • Introduce información en la tabla y atributos indicados.
  • El orden y el tipo de los atributos debe coincidir con el orden y tipo de los valores.
  • Los valores se pueden obtener mediante una consulta.
  • Si un atributo no se indica, toma valor NULL
  • Si se omite la lista de atributos, los valores se almacenan de acuerdo al orden de definición de los mismos en el CREATE TABLE.
  • Los tipos de la lista de valores deben coincidir con los tipos de definición en el CREATE TABLE.

Modificación de datos

UPDATE nombre_tabla
SET nombre_atributo = nuevo_valor, ...
WHERE condicion;


  • Actualiza en la tabla indicada los valores del atributo siempre y cuando se cumpla la condición especificada.
  • Los valores se pueden obtener mediante una subconsulta o mediante fórmulas matemáticas.
  • Si no has condición, se actualizan todas las filas de la tabla (PELIGRO).

Borrado de datos

DELETE nombre_tabla
WHERE condición

  • Borra de la tabla las tuplas que cumplen cierta condición.
  • Si no hay condición se borran todas las filas de la tabla (PELIGRO).
  • A diferencia de DROP TABLE no borra la estructura de la tabla si no los datos.

Consulta de datos 

SELECT lista_atributos
FROM lista_tablas
WHERE condición
GROUP BY lista_atributos
HAVING condición 
ORDER BY lista_atributos [ASC/DESC]

  • Consulta valores de una o varias talas de acuerdo a las condiciones impuestas en la sentencias.
  • Las únicas partes obligatorias son SELECT y FROM, el resto son opcionales. Si aparecen deben ir en orden como aparecen en la sentencia.
  • Having sólo puede aparecer si hay GROU BY.
  • En SELECT se indican los atributos que se quieren obtener como respuesta a la consulta.
  • La cláusula FROM indica la tabla(s) que son necesarias para obtener la información.
  • En la cláusula WHERE se indican las condiciones que deben cumplir las tuplas obtenidas como resultado de la consulta.
  • GROUP BY se utiliza para formar grupos de datos en función de algún tributo
  • HAVING establece condiciones sobre los grupos que se formen.
  • ORDER BY indica si se muestra el resultado ordenado en función de algún atributo.

GRANT y REVOKE

  • La sentencia GRANT es usada para otorgar permisos a un usuario o rol.
GRANT SELECT ON authors TO alex
  • La Sentencia REVOKE es usada para remover un permiso otorgado previamente para un usuario en la base de datos
REVOKE SELECT ON authors TO alex

David Martínez 702609





Álgebra Relacional

El álgebra relacional es un conjunto de operaciones que describen paso a paso cómo computar una respuesta sobre las relaciones, tal y como éstas son definidas en el modelo relacional. Denominada de tipo procedimental, a diferencia del Cálculo relacional que es de tipo declarativo.
Tupla
Una tupla se define como una función finita que asocia unívoca mente los nombres de los atributos de una relación con los valores de una instanciación de la misma. En términos simplistas, es una fila de una tabla relacional.

Operaciones
  • Selección - Restricción (σEsta operación selecciona un subconjunto de tuplas de una relación, todas aquellas que tengan las condiciones. Ejemplo 

   \sigma_{Apellido=Gomez}(Alumnos) \!

  • Proyección (Π) Extrae columnas de una relación, dando como resultado un subconjunto vertical de atributos de la relación. Ejemplo

   \Pi_{Apellido,Semestre,NumeroControl}(Alumnos) \!

  • Producto Cartesiano(x) Entrega una relación, cuyo esquema contiene cada tupla de la relación A junto con la tupla de la relación B, mostrando primeramente los atributos de la relación A seguido por las tuplas de la relación B.

   Alumnos \times Maestros

  • Unión(U) es de la forma AUB Retorna el conjunto de tuplas que esten en A, o en B, o en ambas. R y S deben ser uniones compatibles(deben tener el mismo numero de columnas y el mismo tipo de dato por columna).

  • Diferencia(-) es de la forma A - B Entrega todas aquellas tuplas que esten en A, pero no en B. A y B  deben ser uniones compatibles.

  • División(/) Suponiendo que tenemos dos relaciones A(x,y) y B(y) donde el dominio de y en A y B, es el mismo de los dos. El operador de división A/B retorna todos los distintos valores de x tales que para todo valor y en B existe una tupla {x,y} en A.

  • Agrupación (
    Ģ
    )
     Permite agrupar conjuntos de valores en función de un campo determinado y hacer operaciones con otros campos. Ejemplo
Ģ sum(puntos) as Total Equipo (PARTIDOS).

martes, 2 de junio de 2015

Intalación de PostgresSQL

Descargar Postgresql-9.2.2.1-Windowsx64

Ejecutar PostgreSql


Elegir la ruta de Instalación


Elegir la ruta de datos



Poner el puerto que se pide y dar a siguiente



Elegir idioma y País Origen



Dar siguiente y comenzara la instalación



Al terminar saldrá la venta de notificación diciendo que se instaló satisfactoriamente y solo le damos a terminar y queda instalado el PostgreSQL




Tipos de datos MS SQL Server

Numéricos Exactos
Decimal y Numeric
Números de precisión y escala fijas. Cuando se utiliza la precisión máxima, los valores válidos se sitúan entre - 10^38 +1 y 10^38 - 1. 






Money y small money
Tipos de datos que representan valores monetarios o de moneda.

int, bigint, smallint y tinyint

Tipos de datos numéricos exactos que utilizan datos enteros.

                                                                 Numéricos aproximados
Float y Real
Tipos de datos numéricos y aproximados que se utilizan con datos numéricos de coma flotante. Los datos de coma flotante son aproximados; por tanto, no todos los valores del rango del tipo de datos se pueden representar con exactitud. El sinónimo ISO de real es el tipofloat(24).


                                                                Fecha y Hora
Datetime
Define una fecha que se combina con una hora del día con fracciones de segundos basada en un reloj de 24 horas.
                                                              Cadena de Caracteres

Char y Varchar
Son tipos de datos de cadena de longitud fija o de longitud variable.
char [ ( n ) ] 
Datos de cadena no Unicode de longitud fija. n define la longitud de la cadena y debe ser un valor entre 1 y 8.000. El tamaño de almacenamiento es de n bytes. El sinónimo de char en ISO es character.

varchar [ ( n | max ) ]
Datos de cadena no Unicode de longitud variable. n define la longitud de la cadena y puede ser un valor entre 1 y 8.000. max indica que el tamaño máximo de almacenamiento es de 2^31-1 bytes (2 GB). El tamaño de almacenamiento es la longitud real de los datos especificados + 2 bytes. Los sinónimos ISO de varchar son char varying o character varying.


msdn Microsoft(2014).Tipos de datos (Transact-SQL). Recuperado el 1/06/2015 de:
https://msdn.microsoft.com/es-es/library/ms187752.aspx

lunes, 1 de junio de 2015

Proceso de instalación para SQL Server

  • Requerimientos de sw y hw mínimos
Por la parte de software se necesita los programas:
.NET Framework, windows PowerShell, Software de red, Virtualización
Por la Parte de Hardware:
  • Memoria: Ediciones Express 512mb, Todas las demás ediciones: 1GB
  • Velocidad de procesador: Procesador x86:1.0 GHz, Procesador x64: 1.4GHz
  • Tipo Procesador: Procesador x64 AMD Opteron, AMD  Athlon 64, Intel Xeon; Procesador x86 compatible Pentium III o superior.
  • Disco Duro: 6 GB 
  • Monitor.
  • Descripción de proceso y captura de imágenes de instalación
Se ejecuta el instalador de SQL Server Express, para Llegar al Centro de instalacion sql server.

Como instalar SQL Server Express
Continuamos con un par de siguientes . A continuacion se copian los archivos del programa de instalación.
Elegir características en la instalación de SQL Server Express
Se necesitan los programas mencionados anterior mente para la instalación, y se da a siguiente
Especificar nombre de instancia en la instalación de Sql Server Express
En este Paso debemos especificar el nombre y directorio raíz
Elección de las cuentas de ejecución para los servicios en la instalación de SQL Server Express
Seguimos con la configuración de las cuentas que ejecutaran los distintos servicios.
Elección de cuentas con derechos de administración en la instalación de SQL SERVER Express
En este paso se elige el modo de autentificación y los administradores de la base de datos.
Configuración de reporting services en la instalación de Sql Server Express
En estos últimos pasos será la configuración de Reporting Services. Para esta instalación simple basta dejar la primera opción seleccionada.
Finalización correcta en la instalación de SQL Server Express
El ultimo paso es la notificación de errores de microsoft, si no existe error alguno tendremos el SQL Server Instalado.