1.- Arquitectura Cliente/Servidor
Los sistemas cliente/servidor están construidos de tal modo que la base de datos puede residir en un equipo central, llamado servidor y ser compartida entre varios usuarios. Los usuarios tienen acceso al servidor a través de una aplicación de cliente o de servidor:
- En un sistema cliente/servidor de dos capas, los usuarios ejecutan una aplicación en su equipo local, llamado cliente, que se conecta a través de la red con el servidor que ejecuta SQL Server.
- La aplicación de cliente ejecuta las reglas de la compañía y el código necesario para presentar el resultado al usuario; también se conoce como cliente amplio.
- En un sistema cliente/servidor de varios componentes, la lógica de la aplicación de cliente se ejecuta en dos capas:
- El cliente reducido se ejecuta en el equipo local del usuario y se encarga de presentar los resultados al usuario.
- La lógica de la compañía se encuentra en aplicaciones de servidor que se ejecutan en un servidor. Los clientes reducidos solicitan funciones a la aplicación de servidor, que, a su vez, es una aplicación multiproceso capaz de operar con varios usuarios simultáneos. La aplicación de servidor es la que abre las conexiones con el servidor de la base de datos y se puede ejecutar en el mismo servidor que la base de datos, o se puede conectar a través de la red con otro servidor que opere como servidor de base de datos. Éste es el escenario típico de las aplicaciones de Internet. Por ejemplo, una aplicación de servidor se puede ejecutar en un equipo con Microsoft Internet Information Services (IIS) y dar servicio a miles de clientes reducidos que se ejecuten en Internet o en una Intranet. La aplicación de servidor utiliza un grupo de conexiones para comunicarse con una copia de SQL Server. SQL Server puede estar instalado en el mismo equipo que el IIS o en otro servidor de la red.
El tener los datos almacenados y administrados en una ubicación central ofrece varias ventajas:
- No se almacenan copias separadas del elemento en cada cliente, lo que elimina los problemas de hacer que todos los usuarios trabajen con la misma información actualizada.
- Las reglas de la organización y las reglas de seguridad se pueden definir una sola vez en el servidor para todos los usuarios. Esto se puede hacer en una base de datos mediante el uso de restricciones, procedimientos almacenados y desencadenadores. También se puede hacer en una aplicación de servidor.
- Los servidores de base de datos relacionales optimizan el tráfico de la red al devolver sólo los datos que la aplicación necesita.
- Los gastos en hardware se pueden minimizar. Como los datos no están almacenados en los clientes, éstos no tienen que dedicar espacio de disco a almacenarlos. Los clientes tampoco necesitan la capacidad de proceso para administrar los datos localmente y el servidor no tiene que dedicar capacidad de proceso para presentar los datos. El servidor se puede configurar para optimizar la capacidad de E/S de disco necesaria para obtener los datos y los clientes se pueden configurar para optimizar el formato y presentación de los datos obtenidos desde el servidor.
- El servidor puede estar situado en una ubicación relativamente segura y estar equipado con dispositivos como Sistemas de alimentación ininterrumpida (SAI), lo que resulta más económico que si se protegieran todos los clientes.
- Las tareas de mantenimiento como las copias de seguridad y restauración de los datos son más sencillas porque están concentradas en el servidor central

Las aplicaciones SQL Server se pueden ejecutar en el mismo equipo que SQL Server.
La aplicación conecta con SQL Server utilizando componentes de comunicación entre procesos (IPC, Interprocess Communications) de Windows, como la memoria compartida, en lugar de la red. Esto permite que SQL Server se utilice en sistemas pequeños en los que las aplicaciones tienen que almacenar los datos localmente.
En los sistemas cliente/servidor grandes, miles de usuarios pueden estar conectados con una instalación de SQL Server al mismo tiempo.
SQL Server tiene una protección completa para dichos entornos, con barreras de seguridad que impiden problemas como tener varios usuarios intentando actualizar el mismo elemento de datos a la vez.
SQL Server también asigna eficazmente los recursos disponibles entre los distintos usuarios, como la memoria, el ancho de banda de la red y la E/S de disco.
Sistemas de bases de datos de escritorio
Aunque SQL Server funciona muy eficientemente como servidor, también se puede utilizar en aplicaciones que necesiten bases de datos independientes almacenadas de forma local en el cliente.
SQL Server se puede autoconfigurar dinámicamente para que se ejecute más eficientemente con los recursos disponibles en el cliente, sin tener que dedicar un administrador de bases de datos a cada cliente. Los fabricantes de aplicaciones también pueden incrustar SQL Server como componente de almacenamiento de datos en su aplicativo.
Cuando los clientes utilizan bases de datos SQL Server locales, una copia del motor de bases de datos de SQL Server se ejecuta en el cliente y administra todas las bases de datos de SQL Server de dicho cliente. Las aplicaciones conectan con el motor de la base de datos casi de la misma forma en que se conectan a través de la red con un motor de base de datos que se ejecuta en un servidor remoto.
SQL Server se encarga de administrar bases de datos relacionales basadas en la arquitectura Cliente / Servidor (RDBMS: Relational Database Management System).
SQL Server utiliza la arquitectura Cliente / Servidor para coordinar el trabajo entre el equipo cliente y el equipo servidor; dependiendo del tipo de aplicación que se quiera programar la repartición de la carga de trabajo entre el cliente y el servidor.
El
equipo cliente se suele encargar de la parte lógica y de mostrar la información al usuario que realiza una petición.
El
equipo servidor SQL Server, se encarga de administrar la base de datos, de gestionar los recursos del servidor (CPU, memoria, etc) y por supuesto de resolver y devolver el resultado de la petición realizada por el cliente.
El sistema
RDBMS se encarga de:
- Crear una estrategia de copias de seguridad
- Crear planes de mantenimiento para el buen funcionamiento de la base de datos (Chequeo de todos los objetos que componen una base de datos)
2.- Componentes del SQL Server 2005
SQL Server 2005 se compone de:
Componente |
Descripción |
Motor de Base de datos Relacional |
El motor de base de datos relacional de SQL Server es el corazón de
SQL Server 2005 y proporciona un ambiente de alto rendimiento,
escalable, seguro para almacenar y recuperar datos de modificación
relacional o formato Extensible Markup Language (XML) |
Analysis Services |
Proporciona la base de una solución Business Intelligence para soporte
de Aplicaciones Online Analytical Processing (OLAP) y Data Miining. |
SQL Server Integration Services (SSIS) |
Un motor que se utiliza para: Importar, Exportar datos y
transformaciones de datos mientras que se transfieren. |
Notification Services |
Un Framework para las soluciones en las cuales se envían a los
suscriptores las notificaciones cuando ocurren los acontecimientos
específicos. Las notificaciones se pueden generar eficientemente y
enviar a dispositivos múltiples de diferentes tipos. |
Reporting Services |
Se utiliza para extraer datos desde SQL Server y generar reportes. |
Service Broker |
Un mecanismo confiable de Queuing, y Comunicación Transaccional basada
en mensajes entre los servicios de software. |
.NET common language runtime(CLR) |
Incluido dentro del SQL Server, permitiendo poner soluciones de base de
datos en ejecución usando el código manejado escrito en lenguage .NET
por ejemplo Microsoft Visual C#® .NET o Microsoft Visual Basic® .NET. |
Native HTTP Support |
Permite a programas de cliente conectarse con HTTP endpoints dentro de
SQL Server sin requerir Internet Information Services (IIS). |
Replicación |
Un sistema de tecnologías para el copiado de datos y distribución de
base de datos a partir de una base de datos o de un servidor a otro,
sincronizando la información entre las bases de datos para asegurar
consistencia. |
Full-text search |
Permite la indexación rápida y flexible basada en keyword queries de
texto sobre datos almacenados en una base de datos en SQL Server. |
3.- El Motor de Base de Datos
Introducción
El motor de base de datos es el componente principal de SQL Server. Proporciona almacenaje de datos, recuperación, y servicios de modificación que pueden escalar desde soluciones personales hasta el nivel empresa.
Mejoras al Motor de Base de Datos con respecto a versiones anteriores
SQL Server 2005 incluye un número de mejoras significativas al motor de base de datos, según lo descrito en la tabla siguiente.
Característica / Mejora |
Descripción |
Partitioning |
Las tablas y los índices se pueden repartir a través de grupos
múltiples de archivo. Esto puede mejorar el funcionamiento y la
capacidad de mantenimiento. |
DDL triggers y event notifications |
DDL triggers pueden ser utilizados para ejecutar stored procedures
mientras DDL statements (por ejemplo CREATE) se ejecutan. Event
notifications pueden ser utilizados para disparar eventos para el
servicio Service Broker cuando se modifica la base de datos. |
New data types |
Un número de nuevos tipos de datos se han incluido en esta versión, por
ejemplo xml y un máximo modificable para los tipos de datos nvarchar,
varchar, y varbinary types. |
Multiple Active Result Sets (MARS) |
MARS permite que los clientes tengan más de una petición por conexión. |
Transact-SQL |
Transact-SQL ahora incluye palabras claves estructuradas de dirección de
excepción (por ejemplo, TRY y CATCH), soporte para expresiones comunes
de tabla, y nuevas funciones de graduación y operadores relacionales.
Los DDL statements se han mejorado. |
Seguridad |
Una nueva arquitectura de seguridad proporciona la protección mejorada
de base de datos a través de reglas y permisos. |
XML |
El soporte para XML ha sido mejorado notablemente, siendo mas flexible. |
The .NET Framework |
El .NET Framework CLR es integrado en el motor de SQL Server, haciendo
posible construir soluciones de base de datos con código administrado. |
Replicación |
La funcionalidad de replicación ha sido mejorada para hacer mas sencilla
la configuración y proveer soporte de replicación transaccional para
peer-to-peer, replicación sobre HTTP, y considerables mejoras para
replicación heterogénea. |
Mantenimiento de base de datos |
Las tareas de mantenimiento fueron mejoradas, con online restore y
online
index operations. |
4.- Analysis Services
Introducción
Analysis Services otorga un gran alcance a la plataforma Business Intelligence para SQL Server, permitiendo poner en ejecución OLAP Data Warehouses y usar técnicas de Data Mining para analizar datos de negocio y tomar decisiones apropiadas.
Mejoras en Analysis Services con respecto a versiones anteriores:
Algunas de las mejoras de Analysis Services en SQL Server 2005 se describen en la siguiente tabla:
Característica / Mejora |
Descripción |
Interfaz de usuario |
Las soluciones Analysis Services son más fáciles de crear con el nuevo
Business Intelligence Development Studio. |
Analysis Services Engine |
Usted puede ahora instalar múltiples instancias de Analysis Services en
una sola computadora.
Cubos |
Los cubos se pueden ahora basar en las tablas múltiples de hecho, por ejemplo en Key Performance Indicators (KPI) y Business Intelligence las mejoras favorecen la toma de decisión, y el soporte para los procedimientos almacenados, ampliando la funcionalidad de los cubos.
5.- SQL Server Integration Services
Introducción
SQL Server Integration Services (antes Data Transformation Services) proporciona una solución comprensiva para la transferencia y transformación de datos entre fuentes de datos diversas.
SSIS mejoras con respecto a versiones anteriores:
SQL Server Integration Services (SSIS) se ha mejorado considerablemente en SQL Server 2005. Algunas de las mejoras principales se describen en
tabla siguiente:
Característica /Mejora |
Descripción |
SSIS arquitectura |
La arquitectura de SSIS se ha reajustado para separar flujo de paquete
de control de flujo de datos. Dos motores se han introducido para
manejar estos aspectos de la transformación de los datos: el SSIS
Run-time engine y el SSIS Data-Flow engine. |
SSIS Designer |
El SSIS Designer es parte del Business Intelligence Development Studio,
permitiendo convertir los proyectos SSIS mientras que está desconectado
del servidor. Usted puede también convertir soluciones SSIS usando SQL
Server Management Studio. |
Transformaciones |
SSIS provee las siguientes transformaciones:
- Partición de
condiciones (Conditional Split )
- Union-All,
Merge, and Merge
- Percentage Sampling and Row Sampling
- Copy/Map, Data Conversion, and Derived Column
- Aggregacion
(Aggregation)
- Data Mining Model Training, Data Mining Query,
- Partition Processing, and Dimension Processing
|
6.- Notification Services
Introducción
Notification Services proporciona un Framework para el desarrollo de aplicaciones basadas en subscripciones a través de las cuales se notifica a los usuarios acerca de eventos.
Nota Importante:
Notification Services 2.0 está disponible en forma separada para SQL Server 2000. SQL Server 2005 Notification Services incluye un número de mejoras sobre Notification Services 2.0.
Características de Notification Services
Las características principales de Notification Services en SQL Server 2005 se describen en la tabla siguiente:
Característica
|
Descripción |
Subscription Management Objects |
Una API para construir la administración de suscripción de aplicaciones a
través de la cual los usuarios pueden suscribirse a eventos. |
Event APIs |
Existen cuatro maneras para incorporar la información del evento en el
sistema. |
7.- Full-Text Search
Introducción
Búsqueda Full-Text permite indexar rápida y flexiblemente consultas keyword-based de datos.
Perfeccionamientos de Búsqueda Full-text
SQL Server 2005 incluye un numero significativo de perfeccionamientos para Búsqueda de full-text, descrito en la siguiente tabla:
Perfeccionamiento |
Descripción |
Servidores enlazados |
Se pueden ejecutar consultas full-text contra servidores enlazados. |
Columnas Múltiples |
Ya no esta limitado el uso de una o todas las columnas en una tabla,
ahora se puede especificar que columnas se quieren colocar en el
argumento column_list. |
Especificar LocaleID |
Se puede ejecutar consultas full-text usando un idioma diferente del
idioma por defecto. |
Backup y Restauración |
Los catálogos Full-text ahora pueden ser backapeados y restaurados con o
sin los datos de la base de datos. |
Attach y Detach |
Los catálogos Full-text están incluidos en las operaciones de attach y
detach. |
Datos XML |
Full-text indexes pueden ser creados en datos XML. |
Performance |
La Performance de index populares fue mejorada. |
8.- Relational Database Engine .NET CLR, Lenguaje común de los Tiempos de Ejecución
Introducción
El Lenguaje Común de Tiempos de Ejecución de .NET (CLR) provee un ambiente de administración para código escrito en lenguaje .NET como Visual C# o Visual Basic .NET.
Integración de .NET CLR en SQL Server
El motor de la base de datos SQL Server 2005 tiene alojado el .NET CLR,
haciendo posible desarrollar objetos de base de datos usando códigos escritos en un lenguaje de programación .NET.
La habilidad de desarrollar objetos de base de datos en código .NET
provee varias ventajas, incluyendo un modelo de administración de
seguridad (funcionalidad que no esta disponible o es difícil de implementar
en Transact-SQL) y es una mejor elección para realizar desarrollos.
Se pueden desarrollar las siguientes clases de objetos de base de datos
en código administrado:
- Procesos Almacenados (Store Procedures)
- Tipos de datos User-defined
- Funciones User-defined
- Triggers
- Agregar funciones User-defined
Definir objetos de base de datos con código administrado
La unidad de despliegue de aplicaciones para .NET Framework es la Assembly. Una Assembly es un archivo DLL o EXE compilado que contiene clase de definiciones y código.
Se puede importar una assembly a una base de datos usando el documento CREATE ASSEMBLY, y use mejoras para el CREATE PROCEDURE, CREATE TRIGGER, CREATE FUNCTION, CREATE AGGREGATE, y el documento CREATE TYPE para implementar un objeto de base de datos usando el código dentro del assembly.
Los desarrolladores pueden crear objetos de base de datos en el entorno de Visual Studio .NET y desplegarlos directamente en la base de datos.
9.- Reporting Services
Introducción
Reporting Services permite la creación de informes de datos de SQL Server.
Los informes pueden ser diseñados usando Visual Studio .NET–based Report Designer y pueden ser accedidos usando un IIS Web site.
Nota Importante:
Reporting Services está disponible para descargar en forma directa separada para SQL Server 2000.
Caracteristicas Reporting Services
Las características principales de Reporting Services se describen en la tabla siguiente.
Característica |
Descripción |
Report authoring |
Se puede utilizar Report Designer en Business Intelligence Development
Studio para crear un informe. |
Report management |
Se utiliza para administrar la seguridad del informe, generación y
distribución del informe según la agenda, y de esta forma administrar la
historia del informe. |
Report execution |
Los reportes son ejecutados en forma conjunta, aprovechando procesos de
consultas paralelas para mejoras en la performance. Los reportes son
compilados mientras .NET los ensambla. |
Report access |
Los usuarios pueden acceder a los reportes por un IIS Web Site especial,
donde puede exportar los reportes en los formatos más comunes como HTML
y PDF. También los reportes pueden ser enviados a los usuarios vía
e-mail a través de una suscripción. |
10.- Replicación
Introducción
La replicación permite copiar y distribuir datos y objetos de las bases de datos, de una base de datos o servidor a otro, y luego opcionalmente sincronizar entre las bases de datos para asegurar consistencia.
Perfeccionamientos de Replicación
La siguiente tabla describe un numero de perfeccionamientos significativos para la replicación en SQL Server 2005.
Perfeccionamiento |
Descripción |
Seguridad |
El modelo de replicación de seguridad ha sido actualizado para permitir
más control sobre las cuentas, bajo las cuales se ejecuta la
replicación. |
Administración
|
La interface de replicación de usuario ha sido mejorada e incluye un
nuevo Replication Monitor. |
Disponibilidad |
Cambios en los esquemas pueden realizarse en tablas publicadas. |
Programabilidad |
Un nuevo modelo de administración de programación, Replication
Management Objects (RMO), permite incluir lógicas de trabajo dentro de
los procesos de sincronización. |
Replicación Transaccional
|
La Replicación Transaccional ahora puede ser iniciada desde un backup |
Replicación Heterogénea |
Los datos pueden ser publicados desde una base de datos Oracle a una
base de datos SQL Server usando replicación transaccional o instantánea.
|
Replicación Peer-to-peer |
Los datos pueden ser replicados entre múltiples peer servers. Datos a
todos los servidores pueden ser actualizados y todos los servidores
reciben los cambios hechos a los otros servidores. |
Replicación HTTP |
Para simplificar las replicaciones a través de un firewall o para
usuarios moviles, ha sido introducida la replicación sobre HTTP o HTTPS.
Esto transmite datos en formato XML entre un suscriptor y el IIS, y usa
formato binario sobre TCP/IP entre IIS y el publicador. |
11.- Native HTTP Support
Introducción
Cuando usamos Microsoft Windows Server™ 2003, SQL Server 2005 responde de manera innata a los requerimientos HTTP sin la ayuda de software Web Server como IIS. Esto hace más fácil implementar Web Services basados en una base de datos SQL Server.
Administrar HTTP endpoints
Para habilitar que los requerimientos HTTP sean manejados innatamente por SQL Server, se debe crear uno o mas HTTP endpoints usando los documentos
CREATE ENDPOINT. El documento
CREATE ENDPOINT es usado para:
- Registrar una URL con http.sys, así los requerimientos a esa URL son redireccionados al SQL Server.
- Especificar los puertos TCP en los cuales los requerimientos van a ser aceptados.
- Especificar un mecanismo de autenticación para el endpoint. Se puede autenticar un cliente usando métodos de autenticación básicos, integrados o resumidos. La autenticación anónima ha sido borrada.
- Setear el estado inicial (stopped o started) del endpoint. Por defecto, los endpoint son creados en un estado stopped. Para iniciar un endpoint luego de que este ha sido creado, se debe usar el documento ALTER ENDPOINT para cambiar al estado a started.
- Especificar las limitaciones del protocolo de Internet (IP) para controlar el acceso al endpoint.
- Crear uno o más métodos Web que los usuarios puedan llamar a través del endpoint. Métodos Web pueden ser procesos almacenados o funciones user-defined.
- Una vez que un endpoint HTTP fue creado, se puede dar, revocar o negar permisos de conexión para controlar el acceso al endpoint.
12.- Service Broker
Introducción
Service Broker habilita la creación de colas para comunicación de transacciones basadas en mensajes (message-based), para que sean confiables entre los servicios de software. Esto hace a SQL Server 2005 una mejor plataforma para soluciones basada en Servicios (service-based).
Mejoras del Service Broker con respecto a versiones anteriores:
Las principales mejoras del Service Broker son descriptas en la siguiente tabla:
Mejora |
Descripción |
Coordinación y orden de Mensajes |
Service Broker asegura que los mensajes sean recibidos en el orden
correcto y sean enviados solo una vez. Utiliza un único identificador
para rastrear mensajes que pertenecen a la misma conversación, haciendo
mas fácil implementar operaciones distribuidas, asincrónicas y de largo
proceso. |
Disponibilidad desincronizada |
Service Broker usa colas para enviar mensajes asincrónicos; los mensajes
pueden ser enviados a un servicio incluso cuando este no esta
disponible. |
Flexibilidad de Trabajo |
El conjunto que desincroniza la comunicación message-based hace posible
para los sistemas que puedan distribuir sus procesos de trabajo de
forma continua. |
Mensajes de Bloqueo Relacionados |
Cuando hay en cola muchos mensajes relacionados con la misma tarea,
Service Broker asegura que los mensajes sean procesados como una unidad
bloqueando todos los mensajes relacionados cuando el primero de la cola
es leído. |
Programa de activación automática de Servicio |
Service Broker puede activar automáticamente una instancia de un
servicio de programa cuando un mensaje llega a su cola. Mientras
aumenta el volumen de los mensajes recibidos, Service Broker puede
activar más de una instancia de servicio de programa hasta llegar un
número máximo configurado, y desactivarlos cuando el trabajo disminuye. |
Integración de Base de Datos |
Service Broker esta totalmente integrado con el motor de base de datos
SQL Server, dando soporte para procesamiento de mensaje transaccional y
simplificando así la administración. Por ejemplo, las colas de Service
Broker están implementadas como tablas de base de datos, y por lo tanto
se les puede hacer back up durante el proceso normal de back up de la
base de datos. |
13.- Mejoras
Mejoras del Sistema
Introducción
SQL Server 2005 introduce un numero de perfeccionamientos que impactan en la manera en que el sistema de SQL Server puede ser administrado. Las mejoras incluyen:
- Soporte de memoria de Dynamic Address Windowing Extensions (AWE)
- Memoria Hot-add
- Afinidad Dinámica de CPU
Memoria Dinámica AWE
Soporte AWE permite aplicaciones 32-bit aplicaciones que puedan direccionar memoria física mas allá de los límites de su memoria virtual configurada. La edición Windows Server 2003 puede soportar el máximo de memoria mostrados en la siguiente tabla:
Edición Windows Server 2003 |
Máximo de Memoria física |
Standard |
4 GB |
Enterprise |
32 GB |
Datacenter |
64 GB |
Se puede configurar SQL Server 2005 para usar AWE, usando la opción de configuración awe enabled. Después podes setear las opciones min server memory y max server memory para que el SQL Server use memoria AWE dinámicamente según lo requerido. El siguiente ejemplo, muestra como usar la memoria AWE: