sql server - inicios

43
Teoría de Base de Datos Introducción Desde el inicio de la historia humana, el conocimiento ha sido un sinónimo de poder. El éxito o fracaso de personas individuales, profesionales, empresas y países depende de la cantidad y calidad de conocimiento que tienen acerca de su entorno. El conocimiento está basado en hechos. En algunos casos, los hechos son creados en base a información abstracta, difícil de representar en términos matemáticos con precisión. Sin embargo, la vida económica de cada empresa yace en la precisión de la información obtenida desde fuentes externas o internas. La administración del conocimiento está basada en la habilidad de usar esta información absoluta para interpretar la realidad y llegar a sacar conclusiones acerca de cómo su entorno reacciona a condiciones específicas. La información tiene valor si es lo suficientemente detallada y comprensiva para soportar necesidades específicas de un negocio. Sin embargo, la forma en que la información se almacena y los mecanismos disponibles para recuperarla son los factores importantes que se deben considerar. Los sistemas de administración de base de datos proporcionan herramientas de almacenamiento y recuperación confiable y flexible.

Upload: felix-ricardo-montes-rojas

Post on 21-Nov-2015

241 views

Category:

Documents


0 download

DESCRIPTION

Inicios en SQL Server

TRANSCRIPT

Descripcin del Caso

Captulo I

Introduccin a SQL Server

Teora de Base de DatosIntroduccin

Desde el inicio de la historia humana, el conocimiento ha sido un sinnimo de poder. El xito o fracaso de personas individuales, profesionales, empresas y pases depende de la cantidad y calidad de conocimiento que tienen acerca de su entorno.

El conocimiento est basado en hechos. En algunos casos, los hechos son creados en base a informacin abstracta, difcil de representar en trminos matemticos con precisin. Sin embargo, la vida econmica de cada empresa yace en la precisin de la informacin obtenida desde fuentes externas o internas. La administracin del conocimiento est basada en la habilidad de usar esta informacin absoluta para interpretar la realidad y llegar a sacar conclusiones acerca de cmo su entorno reacciona a condiciones especficas.

La informacin tiene valor si es lo suficientemente detallada y comprensiva para soportar necesidades especficas de un negocio. Sin embargo, la forma en que la informacin se almacena y los mecanismos disponibles para recuperarla son los factores importantes que se deben considerar. Los sistemas de administracin de base de datos proporcionan herramientas de almacenamiento y recuperacin confiable y flexible.

En el presente libro, aprender la programacin de una Base de datos para el desarrollo aplicaciones comerciales, usando una de las herramientas ms poderosas para este propsito: Microsoft SQL Server.

Por qu SQL Server?

Aunque hubiese podido elegir una plataforma de base de datos genrica para escribir este libro, hubiera perdido uno de mis principales puntos de vista, que: es importante usar las capacidades especficas de una base de datos puntual si se quiere obtener la ms alta escalabilidad y rendimiento. He elegido escribir sobre SQL Server 2005 (lanzada recientemente 7 Nov de 2005) porque ha sido mi plataforma de desarrollo de base de datos favorita por muchos aos (en sus versiones anteriores). Es competente, adems comparativamente barato, de dominio pblico y bastante comercial. Sin embargo, muchas de las ideas plasmadas aqu pueden ser convertidas, por ejemplo a Oracle, DB2 o cualquier sistema de base de datos de software libre como MySQL o PostgreSQL.

Qu es un Sistema de Base de Datos?

Un sistema de Base de Datos es bsicamente un sistema para archivar datos en una computadora, es decir, es un sistema computarizado cuyo propsito general es mantener informacin y hacer que est disponible cuando se solicite.

La informacin en cuestin puede ser cualquier cosa que se considere importante para el individuo o la organizacin a la cual debe servir el sistema; dicho de otro modo, cualquier cosa necesaria para apoyar el proceso general de atender los asuntos de esa organizacin.

Es fundamental para el xito de un proyecto implementar un sistema de base de datos, a un especfico y bien definido conjunto de objetos e interacciones; lo que le permitir definir el alcance del sistema. Como veremos mas adelante no se trata de modelizar "todo" el mundo sino solo la parte "importante" y "pertinente" para alcanzar los objetivos funcionales del sistema. Esa parte del mundo que nos interesa la llamaremos el espacio del problema.

El trmino modelo de datos lo usaremos para hacer referencia a una descripcin conceptual del espacio del problema, esto incluye la definicin de sus entidades, que son clases de objetos que comparten determinadas caractersticas (por ejemplo un "cliente" es una entidad), dichas caractersticas se las denomina atributos (por ejemplo el "nombre" del cliente es un atributo de un cliente).

El modelo de datos incluye la descripcin de las interrelaciones entre las entidades y las restricciones sobre dichas relaciones (por ejemplo las "facturas de venta" se emiten a nombre de un "cliente" y esta relacin no puede faltar, es decir, no puede haber una factura que no tenga asignada un cliente.

La capa fsica o esquema fsico del diseo, est constituida por las tablas, vistas y dems objetos necesarios (que sern creados al construir una base de datos), y constituye la traslacin del modelo conceptual en una representacin fsica que pueda ser implementada utilizando el Sistema de Gestin de Bases de Datos Relacional (RDBMS), en nuestro caso ser Microsoft SQL Server 2000. Este esquema no es ms que la representacin del modelo conceptual o lgico expresado en trminos que puedan ser usados para describirlo al RDBMS.

A medida que se le va explicando al RDBMS como quiere que almacene los datos, el RDBMS crear los objetos necesarios para gestionarlos (tablas, vistas, ndices, relaciones, etc). Lo que dar origen a la estructura la base de datos.

Por ltimo, llamaremos base de datos a la combinacin de los datos y su estructura, es decir una coleccin de informacin debidamente organizada. La base de datos incluye, entonces, a los datos ms las tablas, vistas, procedimientos almacenados, consultas, y a las reglas que el motor de base datos utilizar para asegurar el resguardo de los datos.

El trmino base de datos no incluye a la aplicacin cliente, la cual consiste de los formularios y los reportes con los que interactuarn los usuarios, ni incluye la piezas de cdigo usadas para unir las partes de la aplicacin cliente.

Figura 1.1 Esquema de un Sistema de Base de Datos

En un modelo de tres capas, la aplicacin cliente que accede a los datos almacenados en una base de datos y que a la vez interacta con el usuario se divide en dos partes: la llamada capa intermedia que contiene todas las validaciones y las reglas del negocio y es la que interacta con la base de datos y el frontend que es la que contiene los formularios (de mantenimiento y control), la que realiza la presentacin de los reportes y la que contiene las dems interfases necesarias para interactuar con el usuario final.

Figura 1.2 Modelo de Tres CapasEl modelo relacional

El modelo relacional est basado en una coleccin de principios matemticos desarrollados inicialmente sobre un conjunto de conceptos tericos y predicados lgicos. Esto principios fueron aplicados al campo de los modelos de datos a finales de los aos 60 por el Dr. E. F. Codd, investigador de IBM, y publicados por primera vez en 1970.

El modelo relacional define el modo en que los datos van a ser representados (estructura de datos), la forma en que van ser protegidos (integridad de los datos) y las operaciones que pueden ser aplicadas sobre ellos (manipulacin de datos).

Microsoft SQL Server implementa un modelo relacional de base de datos. En trminos generales un sistema de base de datos relacional tiene las siguientes caractersticas:

Todos los datos estn conceptualmente representados como un arreglo ordenado de datos en filas y columnas, llamado relacin.

Todos los valores son escalares, esto es, que dada cualquier posicin fila/columa dentro de la relacin hay uno y solo un valor.

Todas las relaciones son realizadas sobre la relacin completa y dan como resultado otra relacin, concepto conocido como clausura.

A los fines prcticos una relacin puede ser considerada como una tabla, an cuando al momento de formularse la teora intencionalmente se excluy el trmino tabla por tener connotaciones de ordenamiento que no se deben aplicar al concepto de relacin que es mas un conjunto, que una tabla ordenada. De todos modos para los fines de la presente publicacin utilizaremos en forma indistinta la denominacin de relacin o de tabla.

Es importante destacar que el concepto de clausura permite que el resultado de una operacin sobre una relacin sea el dato para otra operacin. Por lo que como veremos mas adelante al resultado de una orden select se le puede aplicar otro select.Terminologa Relacional

La siguiente figura muestra una relacin con los nombres formales de sus componentes principales:

Figura 1.3 Terminologa relacionalLa estructura de la figura constituye una relacin, donde cada fila constituye una tupla (registro). La cantidad de tuplas en una relacin indica la cardinalidad de la relacin. Cada columna en la relacin es un atributo, y la cantidad de atributos indica el grado de la relacin.

La relacin se divide en dos secciones el encabezado y el cuerpo, donde el encabezado contiene las etiquetas de los atributos. Estas etiquetas constan de dos partes separadas por dos puntos ":" la parte izquierda es la denominacin propiamente dicha del atributo, mientras que la parte derecha configura el dominio del atributo, que es el conjunto de todos los valores posibles y legales que puede tomar el atributo en las tuplas (por ejemplo: el primer atributo de la relacin de la figura tiene como dominio a todas las compaas que existen, mientras que solo algunas son valores efectivamente incorporados a la relacin).

El cuerpo consiste en un conjunto desordenado de cero o ms tuplas, esto indica que las tuplas no tienen un orden intrnseco, el nmero de registro no es tenido en cuenta en el modelo relacional. Por otro lado las relaciones sin tuplas siguen siendo relaciones. Por ltimo las relaciones son conjuntos donde cualquier elemento puede ser inequvocamente identificado, por lo que la relacin no permite tuplas duplicadas.

En cuanto a la terminologa, en esta parte se utiliz un lenguaje formal (en trminos de ingeniera de informacin) para la definicin de los elementos abordados, a partir de ahora se utilizarn las siguientes equivalencias de significado:

Una relacin puede ser una tabla (debido a que tiene filas y columnas).

Una tupla puede ser una fila (row) o un registro (record).

Un atributo puede ser una columna (column) o un campo (field).

Dichas equivalencias se generan porque al instanciar en la implementacin fsica el modelo conceptual, se utilizan trminos que corresponden precisamente al modelo fsico de implementacin en el RDBMS, en este caso SQL Server, que utiliza la terminologa Microsoft

Sistema de Administracin de Base de Datos Relacionales (RDBMS)

Para que un producto en particular sea llamado Sistema de Administracin de Base de Datos Relacionales debe cumplir con las siguientes caractersticas:

Mantener las relaciones entre las entidades (tablas) de una base de datos.

Asegurar que la informacin sea almacenada correctamente y que no se violen las reglas que definen las relaciones (integridad referencial).

Recuperar todos los datos hasta cierto punto de consistencia, en el caso de que haya una falla en el sistema.

Qu es Microsoft SQL Server?

Microsoft SQL Server es un Sistema de Administracin de Base de Datos Relacional (RDBMS Relational Database Management System), como tal cumple con las caractersticas bsicas mencionadas en el punto anterior.SQL Server es usado para administrar dos tipos de base de datos: OLTP (Online Transaction Processing) y OLAP (Online Analitic processing). Tpicamente, los clientes acceden a la base de datos comunicndose a travs de una red.

Se pueden tener base de datos de mas de un terabyte de tamao, en SQL Server as tambin pueden existir servidores para pequeos negocios y para computadoras porttiles. Adems se puede tener mltiples servidores SQL Server usando la caracterstica de Windows Clustering en Windows 2000 o Windows 2003 Server.

Por otro lado, SQL Server es usado para desarrollar procesos transaccionales, tambin para almacenar y analizar informacin y para construir aplicaciones modernas en un entorno computacional distribuido.

Figura 1.4 Modo de trabajo de SQL ServerSQL Server es una familia de productos y tecnologas que rene todos los requisitos para el almacenamiento de datos en entornos OLTP y OLAP, y como se dijo anteriormente SQL Server es un Sistema de Administracin de Base de Datos Relacionales (RDBMS) que:

Administra el almacenamiento de la informacin para transacciones y anlisis.

Responde a los requerimientos y solicitudes de aplicaciones cliente.

Usa el lenguaje TransactSQL, XML (eXtensible Markup Language), MDX (Multidimensional expressions), o SQLDMO (SQL Distributed Management Objects) para enviar informacin entre un cliente y SQL Server.

( La presente publicacin se enfoca en el trabajo con TransactSQL y con base de datos OLTP.Descripcin general de Microsoft SQL Server 2005Las empresas de hoy se enfrentan a varios desafos de informacin inditos: la proliferacin de sistemas y datos en el seno de sus empresas; la necesidad de proporcionar a sus empleados, clientes y partners acceso coherente a dichos datos; el deseo de ofrecer informacin plena de sentido a quienes trabajan con sta para que puedan tomar decisiones fundamentadas y el imperativo de controlar los costes sin sacrificar por ello la disponibilidad de las aplicaciones, la seguridad o la fiabilidad.

La presente versin de servidor SQL Server 2005, ha sido diseada para ayudar a las empresas a enfrentarse a estos retos. SQL Server 2005 es la solucin de gestin de la informacin de Microsoft para la prxima generacin, que procurar mayor escalabilidad, disponibilidad y seguridad a la informacin empresarial y las aplicaciones de anlisis al tiempo que simplificar su creacin, implantacin y gestin.

Esta solucin, erigida sobre la fortaleza de SQL Server 2000, proporcionar una solucin integrada de gestin de la informacin que ayudar a empresas de cualquier tamao a:

Desarrollar e implantar aplicaciones empresariales ms escalables, fiables y seguras. Optimizar la productividad del sector de Tecnologa de Informacin (TI) reduciendo la complejidad en la creacin, implantacin y administracin de las aplicaciones de bases de datos. Aumentar las capacidades de los desarrolladores con un entorno de desarrollo valioso, flexible y actual para que creen bases de datos ms seguras. Compartir datos a travs de mltiples plataformas, aplicaciones y dispositivos para facilitar la interconexin entre sistemas internos y externos. Ofrecer soluciones de inteligencia empresarial que ayuden a tomar decisiones con fundamento y aumentar la productividad por toda la empresa. Controlar los costos sin sacrificar el rendimiento, la disponibilidad ni la fiabilidad.Contine leyendo para descubrir ms aspectos sobre los avances que SQL Server 2005 har posible en tres mbitos clave: gestin de informacin empresarial, productividad de los desarrolladores e inteligencia empresarial.Gestin de la informacin empresarial

En el mundo conectado de hoy, la informacin y los sistemas que la gestionan deben estar siempre disponibles para los usuarios. Con SQL Server 2005 los usuarios y los profesionales de TI de su empresa disfrutarn de las ventajas una reduccin de los tiempos de inactividad de las aplicaciones, mayor escalabilidad y rendimiento y estrictos controles de seguridad. SQL Server 2005 tambin incluye funciones novedosas y mejoradas que contribuirn a aumentar la productividad de su empresa y de su departamento de TI.

SQL Server 2005, basado en el mismo enfoque flexible de SQL Server 2000, admitir la implantacin de mltiples utilidades, desde centros de datos de ms de un terabyte de tamao hasta dispositivos mviles que se ejecuten en Microsoft SQL Server Windows CE Edition (SQL Server CE). SQL Server 2005 comprende tambin mejoras significativas de gestin de la informacin empresarial en los siguientes aspectos:DisponibilidadLas inversiones en tecnologas de alta disponibilidad, las soluciones de copia de seguridad y recuperacin adicionales y las mejoras en los sistemas de rplica permitirn a las empresas desarrollar e implantar aplicaciones de gran fiabilidad. Algunas caractersticas innovadoras que aumentan la disponibilidad, como las operaciones de reflejo (mirroring) de bases de datos, la configuracin en clster de conmutacin tras error (failover) y las mejoras en las operaciones en lnea minimizarn los tiempos de inactividad y ayudarn a garantizar que los sistemas ms importantes de la empresa se mantienen accesibles.EscalabilidadLos adelantos a este respecto, como la visin de particin de tablas, el aislamiento de instantneas y el soporte de 64-bit le permitirn desarrollar e implementar las aplicaciones ms demandadas mediante SQL Server 2005 La particin de tablas e ndices mejoran sensiblemente el resultado de las consultas, al contrario de lo que ocurre con bases de datos muy extensas.SeguridadCon mejoras tales como ajustes de configuracin predeterminados de seguridad y un modelo de seguridad mejorado, se facilitar el logro de ms altos niveles de seguridad de la informacin empresarial.Facilidad de gestinUn nuevo conjunto de herramientas, funciones de auto sintonizacin ampliada y un potente modelo de programacin facilitarn a los administradores de datos llevar un control flexible de las operaciones diarias de bases de datos. Las mejoras incorporadas a herramientas como SQL Profiler y otras ayudaran tambin a los administradores de datos a poner a punto sus servidores en situacin de ptimo rendimiento. Con estas mejoras, a los administradores de bases de datos les resultar ms fcil centrarse en las tareas importantes ya que perdern menos tiempo en operaciones rutinarias de bases de datos.InteroperabilidadLos adelantos tecnolgicos que se incorporan en SQL Server 2005 le permitirn optimizar su inversin tanto en nuevos sistemas como en los existentes a travs de la integracin y conexin de aplicaciones y bases de datos descentralizadas dentro de su empresa extendida. Mediante un fuerte apoyo a los estndares del sector, los servicios Web y la plataforma Microsoft .NET Framework, SQL Server 2005 admitir la interoperabilidad con mltiples plataformas, aplicaciones y dispositivos. SQL Server tambin est estrechamente vinculado con otros productos de Microsoft, desde Microsoft Windows Server o Microsoft Visual Studio hasta Microsoft Office, lo que permitir a su empresa ahorrar tiempo y dinero al poder utilizar una tecnologa que funciona bien de forma integrada.Productividad de los desarrolladoresUno de los principales obstculos a la productividad de los desarrolladores ha consistido en la falta de herramientas integradas para el desarrollo de bases de datos y la depuracin. SQL Server 2000 ayud a salvar este escollo al proporcionar una estrecha integracin con Microsoft Visual Studio. La solucin SQL Server 2005 tiene avances adicionales que cambian de forma esencial la manera en que se desarrollan e implantan las bases de datos. A travs de soporte para XML (Extensible Markup Language) y de una mayor integracin con las tecnologas .NET y las herramientas de desarrollo de Microsoft, SQL Server 2005 aumentar de forma significativa la productividad y flexibilidad de los desarrolladores.Entre las mejoras que aportar a la productividad de los desarrolladores se incluyen las siguientes:Herramientas mejoradasLos desarrolladores podrn utilizar una herramienta de desarrollo para Transact-SQL, XML, MDX (Multidimensional Expresin) y XML/A (XML for Analysis). La posibilidad de integracin con el entorno de desarrollo de Visual Studio resultar en un desarrollo y depuracin de errores ms eficientes de las aplicaciones de lnea de negocio y de inteligencia empresarial.Soporte ampliado de lenguajes de programacinCon el CLR (Common Language Runtime) alojado en el motor de la base da datos, los desarrolladores tendrn la opcin de escoger entre una variedad de lenguajes familiares para desarrollar aplicaciones de bases de datos, incluyendo Transact-SQL, Microsoft Visual Basic .NET y Microsoft Visual C# .NET. Adems, el almacenamiento de CLR proporcionar a los desarrolladores ms flexibilidad mediante el uso de tipos y funciones definidos por el usuario. El CLR tambin procurar oportunidades de usar el cdigo de terceros para el desarrollo rpido de aplicaciones de bases de datos.XML y Servicios WebLos adelantos como XQuery y datos XML nativos ayudarn a las empresas a interconectar sin complicaciones los sistemas internos y externos. SQL Server 2005 admitir tanto datos relacionales como XML de forma nativa, con lo que las empresas podrn almacenar, gestionar y analizar la informacin de la manera que ms se ajuste a sus necesidades. El soporte para los estndares existentes o los que estn surgiendo, tales como el HTTP, XML, SOAP (Simple Object Access Protocol), Xquery o XSD (XML Schema Definition) tambin facilitarn la comunicacin a travs de los sistemas empresariales extendidos.Inteligencia empresarialLa inteligencia empresarial representa al mismo tiempo un reto y una promesa que radican en proporcionar a los empleados la informacin apropiada en el momento oportuno. Para hacer frente a este reto se requiere una solucin de inteligencia empresarial integral, segura, integrada como los sistemas operativos y disponibles en cualquier momento del da todos los das. SQL Server 2005 ayudar a las empresas a alcanzar este objetivo.

Los adelantos de inteligencia empresarial comprenden lo siguiente:Plataforma integradaDesarrollado sobre la base de SQL Server 7.0 y SQL Server 2000, SQL Server 2005 facilitar una plataforma integral de inteligencia empresarial con procedimientos analticos integrados, entre los que se incluyen el procesamiento analtico en lnea (OLAP), minera de datos (data mining); las herramientas ETL de gestin, administracin y carga, el almacenamiento de datos y las funciones relacionadas con informes. Este enfoque global e integrado contribuir a que las empresas construyan y desarrollen sin complicaciones aplicaciones de inteligencia empresarial robustas y controlen al mismo tiempo los costes.Mejoras en la toma de decisionesLas mejoras en los principales utilidades de inteligencia empresarial existentes, tales como OLAP, Data Mining y la introduccin de un nuevo servidor de informes procurarn a las empresas la capacidad de transformar la informacin en decisiones ms acertadas en todos los niveles de la empresa, desde el profesional de la informacin hasta al consejero delegado.Seguridad y disponibilidadLas mejoras en la escalabilidad, disponibilidad y seguridad ayudarn a proporcionar a los usuarios acceso sin interrupciones a las aplicaciones e informes de inteligencia empresarial.Capacidades de anlisis de alcance empresarial globalUna herramienta ETL ms completa permitir a las empresas integrar y analizar la informacin con ms facilidad desde mltiples fuentes de informacin heterogneas. Dado que ser posible analizar datos a travs de una amplia serie de sistemas operativos, las empresas lograrn colocarse en una posicin de ventaja competitiva gracias a una comprensin global de su negocio.Tipos de almacenamiento de datos

Como se mencion anteriormente SQL Server administra bases de datos de tipo OLTP y OLAP, los cuales se define a continuacin.

Base de Datos OLTP

La informacin almacenada en este tipo de base de datos se organiza generalmente en tablas relacionadas para reducir la redundancia de informacin y para incrementar la velocidad de las actualizaciones. SQL Server da la posibilidad de que un gran nmero de usuarios realicen transacciones y que simultneamente cambien la informacin en tiempo real. Por ejemplo este tipo de casos se da en entornos como las transacciones que hace una aerolnea al vender pasajes de avin, o las transacciones que hace cualquier entidad bancaria.

Base de Datos OLAP

Esta tecnologa organiza y resume gran cantidad de informacin de manera tal que un analista pueda evaluar dicha informacin rpidamente y en tiempo real. El servicio de anlisis de SQL Server organiza esta informacin para dar soporte a una amplia gama de soluciones empresariales, desde reportes y anlisis corporativos hasta el soporte para el modelado de la informacin y la toma de decisiones.Aplicaciones Cliente

Los usuarios no accedemos a SQL Server ni a los Servicios de Anlisis directamente; pues se tiene que usar aplicaciones cliente por separado para acceder a dicha informacin. Estas aplicaciones acceden al servidor SQL usando:

Transact-SQL

Este lenguaje de consultas, versin de SQL (Structured Query Language), es el lenguaje primario de programacin y consultas que usa SQL Server.XML

Este formato retorna informacin desde consultas o procedimientos almacenados usando URLs (direcciones de recursos en Internet) o plantillas sobre el protocolo http. Tambin se puede usar XML para insertar, eliminar y actualizar informacin en una base de datos.

MDX

La sintaxis MDX define consultas y objetos multidimensionales y manipula informacin multidimensional en base de datos OLAP.

OLE DB y APIs ODBC

Las aplicaciones cliente usan la tecnologa de conectividad OLE DB, OCBC y APIs para enviar comandos a la base de datos. Los comandos que se envan a travs de APIs usan el lenguaje Transact-SQL.

ActiveX Data Objects y ActiveX Data Objects (Multidimensional)

Microsoft ActiveX Data Objects (ADO) y ActiveX Data Objects (Multidimensional) (ADO MD) encapsulan OLE DB para que sta se pueda usar en lenguajes tales como Microsoft Visual Basic, Visual Basic for Applications, ASP.NET, etc. Se usa ADO para acceder a base de datos OLTP. Se usa ADO MD para acceder a informacin en Servicios de Anlisis que posee informacin en cubos.

English Query

Esta aplicacin proporciona una automatizacin API que permite a los usuarios resolver preguntas en un leguaje natural (humano), en vez de escribir sentencias complejas con Transact-SQL o MDX. Componentes

SQL Server contiene componentes de servidor y cliente que almacenan y recuperan datos. SQL Server usa una arquitectura de comunicacin en capas a fin de lograr que las aplicaciones se comuniquen a travs de la red y sus protocolos. Esta arquitectura nos permite desplegar una misma aplicacin en diferentes entornos de red.

Figura 1.5 Componentes de SQL Server

Arquitectura Cliente/Servidor

SQL Server usa esta arquitectura para separar la carga de trabajo en tareas que corren sobre los servidores y las que corren en las computadoras cliente, es decir que parte de los procesos los haga el servidor y la otra parte las haga el cliente:

El cliente es responsable de la lgica de negocios y la interfase de usuario. El cliente tpicamente se ejecuta en una o ms computadoras, pero adems tambin puede ejecutarse en la computadora que acta como servidor.

SQL Server administra las bases de datos y los recursos disponibles del servidor tales como la memoria, ancho de banda de la red y las operaciones del disco duro a lo largo de mltiples pedidos.La arquitectura Cliente/Servidor nos permite disear y desplegar aplicaciones en una gran variedad de entornos. Las interfases de un programa cliente proporcionan lo necesario para que las aplicaciones se ejecuten en computadoras cliente por separado y se comuniquen con el Servidor mediante la red.( De ahora en adelante al hablar del Cliente nos estamos refiriendo a una aplicacin cliente (solucin informtica) que puede ser una aplicacin Windows, Web o Mvil.

Componentes del Cliente

Los componentes del cliente en la arquitectura de comunicacin estn compuestos por:

Aplicacin Cliente

Una aplicacin cliente enva sentencias Transact-SQL y recibe los resultados. Se desarrolla una aplicacin usando APIs de una base de datos. La aplicacin desconoce los protocolos de red que se usan para comunicarse con el servidor SQL Server.

API de una Base de Datos (OLE DB, ODBC)Estos son comnmente conocidos como controladores que usan un proveedor, driver, o DLL para pasar las sentencias Transact-SQL y recibir los resultados. Esta es una interfase que una aplicacin usa para enviar solicitudes a SQL Server y procesar los resultados que SQL Server retorna.

Libreras del Cliente de RedLas libreras del cliente de red administran las conexiones del cliente respectivamente en su comunicacin con el servidor. Este es un software de comunicaciones que empaqueta las solicitudes de la base de datos y los resultados para la transmisin usando el protocolo de red apropiado.

Plataforma de datos de SQL Server

SQL Server es una solucin de datos globales, integrados y de extremo a extremo que habilita a los usuarios en toda su organizacin mediante una plataforma ms segura, confiable y productiva para datos empresariales y aplicaciones de inteligencia de negocios (Business Inteligence). SQL Server 2005 provee herramientas slidas y conocidas a los profesionales de IT, as como tambin a trabajadores de la informacin, reduciendo la complejidad de la creacin, despliegue, administracin y uso de aplicaciones analticas y de datos empresariales en plataformas que van desde los dispositivos mviles hasta los sistemas de datos empresariales. A travs de un conjunto global de caractersticas, la interoperabilidad con sistemas existentes y la automatizacin de tareas rutinarias, SQL Server 2005 ofrece una solucin completa de datos para empresas de todos los tamaos. La figura a continuacin muestra el diseo de la plataforma de datos SQL Server 2005.

Figura 1.6 Diseo de la plataforma de datos SQL Server 2005La plataforma de datos SQL Server incluye las siguientes herramientas: Base de datos relacional.- Un motor de base de datos relacional ms segura, confiable, escalable y altamente disponible con mejor rendimiento y compatible para datos estructurados y sin estructura (XML). Servicios de rplica.- Rplica de datos para aplicaciones de procesamiento de datos distribuidas o mviles, alta disponibilidad de los sistemas, concurrencia escalable con almacenes de datos secundarios para soluciones de informacin empresarial e integracin con sistemas heterogneos, incluidas las bases de datos Oracle existentes. Servicios de Notificacin.- Capacidades avanzadas de notificacin para el desarrollo y el despliegue de aplicaciones escalables que pueden entregar actualizaciones de informacin personalizadas y oportunas a una diversidad de dispositivos conectados y mviles.

Servicios de Integracin.- Capacidades de extraccin, transformacin y carga (ELT) de datos para almacenamiento e integracin de datos en toda la empresa.

Servicios de Anlisis.- Capacidades de procesamiento analtico en lnea (OLAP) para el anlisis rpido y sofisticado de conjuntos de datos grandes y complejos, utilizando almacenamiento multidimensional.

Servicios de Reporte.- Una solucin global para crear, administrar y proporcionar tanto informes tradicionales orientados al papel como informes interactivos basados en la Web.

Herramientas de administracin.- SQL Server incluye herramientas integradas de administracin para administracin y optimizacin avanzadas de bases de datos, as como tambin integracin directa con herramientas tales como Microsoft Operations Manager (MOM) y Microsoft Systems Management Server (SMS). Los protocolos de acceso de datos estndar reducen drsticamente el tiempo que demanda integrar los datos en SQL Server con los sistemas existentes. Asimismo, el soporte del servicio Web nativo est incorporado en SQL Server para garantizar la interoperabilidad con otras aplicaciones y plataformas.

Herramientas de desarrollo.- SQL Server ofrece herramientas integradas de desarrollo para el motor de base de datos, extraccin, transformacin y carga de datos, minera de datos, OLAP e informes que estn directamente integrados con Microsoft Visual Studio para ofrecer capacidades de desarrollo de aplicacin de extremo a extremo. Cada subsistema principal en SQL Server se entrega con su propio modelo de objeto y conjunto de interfaces del programa de aplicacin (API) para ampliar el sistema de datos en cualquier direccin que sea especfica de su negocio.

La plataforma de datos SQL Server 2005 ofrece los siguientes beneficios a las organizaciones de todas las magnitudes:

Aprovechamiento de activos de datos.- Adems de brindar una base de datos segura y confiable para aplicaciones analticas y del rubro, SQL Server 2005 permite que los clientes obtengan ms valor de sus datos al incluir una funcionalidad incorporada tal como informe, anlisis y minera de datos. Puede aprovechar esta potencia y flexibilidad para entregar datos a cada rincn de su organizacin a una fraccin del costo de algunos otros sistemas.

Aumento de la productividad.- A travs de las capacidades globales de inteligencia de negocios y la integracin con herramientas conocidas como Microsoft Office System, SQL Server 2005 brinda a los trabajadores de la informacin en toda su organizacin informacin empresarial crtica y oportuna adaptada a sus necesidades especficas. El objetivo es ampliar la inteligencia de negocios a todos los usuarios en una organizacin y, en ltima instancia, ayudar a los usuarios en todos los niveles de la organizacin a tomar mejores decisiones empresariales segn uno de sus activos ms valiosos: sus datos.

Reduccin de la complejidad de IT.- SQL Server 2005 simplifica el desarrollo, el despliegue y la administracin de aplicaciones de unidad de negocios y analticas al ofrecer un entorno de desarrollo flexible para los encargados del desarrollo y herramientas integradas y automatizadas de administracin para los administradores de bases de datos.

Menor costo total de propiedad (TCO).- El enfoque y la atencin integrados sobre la facilidad de uso y despliegue en SQL Server 2005 ofrece los costos directos, de implementacin y mantenimiento ms bajos de la industria para obtener un rpido rendimiento de su inversin en la base de datos.

Ediciones SQL Server 2005Microsoft ha rediseado la familia de productos SQL Server 2005 para satisfacer mejor las necesidades de cada empresa que comprender las siguientes ediciones: SQL Server Enterprise Edition.- sta edicin escala a los niveles de desempeo requeridos para soportar los requerimientos corporativos ms amplios de Procesamiento de Transacciones En Lnea (OLTP: On Line Transaction Processing), anlisis de datos de alta complejidad, sistemas de almacenamiento de datos, y pginas de Internet. Las comprensivas capacidades de inteligencia de negocios y anlisis de Enterprise Edition, y sus caractersticas de alta disponibilidad como clusterizacin de daos y redundancia de base de datos, le permiten manejar las cargas de trabajo corporativas de misin crtica. SQL Server Standard Edition.- Edicin estndar es la plataforma de manejo y administracin de datos y anlisis para la pequea y mediana industria. Incluye las funcionalidades esenciales necesarias para el comercio electrnico, el almacenamiento de datos y las soluciones de negocio. Las caractersticas de inteligencia de negocios y alta disponibilidad que vienen integradas en Standard Edition, suministran a las organizaciones las capacidades esenciales y necesarias para soportar sus operaciones. SQL Server Workgroup Edition.- Workgroup Edition es la solucin de manejo y administracin de datos para la pequea industria o para reas/departamentos en grandes organizaciones. Workgroup Edition puede servir como un servidor parapginas de Internet o para operaciones de reas / departamentos o sucursales. Incluye las caractersticas principales de la base de datos de la lnea de productos SQL Server, y es fcilmente escalable hacia el Standard o Enterprise Edition. Workgroup Edition es una base de datos ideal para la entrada por niveles ya que es confiable, robusta y fcil de administrar.

SQL Server 2005 Express Edition.- Una versin gratuita y redistribuible de SQL Server 2005. Ofrece el camino ms rpido para desarrolladores principiantes permitindoles aprender, desarrollar y poner en produccin pequeas aplicaciones. Est disponible para ser descargada por Internet.

Instalacin de SQL Server

Aunque la instalacin de SQL Server est ms all del alcance de esta publicacin, siempre se debe tener en cuenta lo siguiente antes de realizar una instalacin:

Est seguro que la computadora rene los requisitos de sistema para SQL Server.

Haga copias de respaldo de la instalacin actual de Microsoft SQL Server si se va a instalar SQL Server en la misma computadora.

Repase todas las opciones de instalacin de SQL Server y este preparado para hacer las selecciones apropiadas cuando ejecute el instalador.

Si se est usando un sistema operativo que tiene configuraciones regionales diferentes a ingls (Estados Unidos), o si usted est personalizando el juego de caracteres o la configuracin del ordenamiento de los caracteres, revise los temas referidos a la configuracin de colecciones.

Antes de ejecutar el instalador de SQL Server, cree uno o ms cuentas de usuario del dominio si se est instalando SQL Server en una computadora con Windows NT, Windows Sever 2000 o Windows 2003 Server y necesita que SQL Server se comunique con otros clientes y servidores.

Se debe iniciar el sistema operativo bajo una cuenta de usuario que tiene permisos locales de administrador; por otra parte, se debe asignar los permisos apropiados a la cuenta de usuario de dominio de acuerdo al plan de seguridad establecido por la organizacin.

Est seguro de cerrar todos los servicios dependientes sobre SQL Server (incluso cualquier servicio que usa ODBC, como el Internet Information Server o IIS). Adems, cierre al Windows NT Event Viewer y a los visualizadores de la registry (Regedit.exe o Regedt32.exe).

Definitivamente el proceso de instalacin no es complejo, gracias al asistente que tiene SQL Server 2005, solo basta con seguir los pasos, y establecer las opciones de configuracin de acuerdo a sus necesidades.

Requisitos de hardware y software (32 bits y 64 bits)MonitorLas herramientas grficas de SQL Server requieren VGA o una resolucin mayor: resolucin mnima de 1024 x 768 pxeles.

Dispositivo sealador

Se requiere Microsoft Mouse o un dispositivo sealador compatible.

Unidad de CD o DVD

Se requiere una unidad de CD o DVD, segn proceda, para instalar desde un CD o DVD.

Requisitos de hardware de clster

En las plataformas de 32 y 64 bits, se admiten las instalaciones de clsteres de ocho nodos (es decir, el nmero mximo de nodos que admite Microsoft WindowsServer2003). Para obtener ms informacin acerca de las soluciones de alta disponibilidad, vea los temas "Configurar una alta disponibilidad" y "Antes de instalar un clster de conmutacin por error" en los Libros en pantalla de SQL Server 2005.

Requisitos de software de red

Los requisitos de software de red para las versiones de 64 bits de SQL Server 2005 son los mismos que para las versiones de 32 bits. Windows 2003 Server, Windows XP y Windows 2000 (en general cualquier producto de sistemas operativos de la familia Windows) tienen software de red integrado.(SQL Server 2005 no es compatible con los protocolos de red SPP (Protocolo de paquetes secuenciados) de Banyan VINES, Multiprotocolo, AppleTalk o NWLink IPX/SPX. Los clientes anteriormente conectados con estos protocolos deben seleccionar uno distinto para conectarse a SQL Server 2005.Las instancias predeterminadas y con nombre independientes admiten los siguientes protocolos de red:

Memoria compartida Canalizaciones con nombre TCP/IP

VIA( Los clsteres de conmutacin por error no son compatibles con la memoria compartida.

Requisitos de Internet

Los requisitos de Internet son los mismos para las versiones de 32 y 64 bits de SQL Server 2005. La tabla siguiente indica los requisitos de Internet para SQL Server 2005.

ComponenteRequisito

Software de Internet1

Se requiere SP1 de Microsoft Internet Explorer 6.0 o posterior para todas las instalaciones de SQL Server 2005, ya que se necesita para Microsoft Management Console (MMC) y la Ayuda en HTML. Es suficiente una instalacin mnima de Internet Explorer, pero no es necesario que sea el explorador predeterminado.

Sin embargo, si slo instala componentes de cliente y no se conecta a un servidor que requiere cifrado, es suficiente Internet Explorer 4.01 con Service Pack 2.

Servicios de Internet Information Server (IIS)

Se necesita IIS 5.0 o posterior para las instalaciones de Microsoft SQL Server 2005 Reporting Services (SSRS).

Para obtener ms informacin acerca de cmo instalar IIS, vea el tema "Cmo instalar los Servicios de Microsoft Internet Information Server (IIS)" en los Libros en pantalla de SQL Server 2005.

ASP.NET 2.02

Se requiere ASP.NET 2.0 para Reporting Services. Durante la instalacin de Reporting Services, el programa de instalacin de SQL Server habilitar ASP.NET en el caso de que no se encuentre habilitado.

1Se requiere SP1 de Microsoft Internet Explorer 6.0 o posterior para SQL Server Management Studio, Business Intelligence Development Studio y el componente Diseador de informes de Reporting Services.

2Para instalar Reporting Services (de 64 bits) en servidores de 64 bits, es necesario instalar la versin de 64 bits de ASP.NET. Para instalar Reporting Services (de 32 bits) en el subsistema de 32 bits (WOW64) de un servidor de 64 bits, es necesario instalar la versin de 32 bits de ASP.NET. Reporting Services no admite configuraciones simultneas en la plataforma de 64 bits y en el subsistema de 32 bits (WOW64) de un servidor de 64 bits. Para obtener ms informacin, consulte el tema sobre cmo configurar IIS para ejecutar Reporting Services de 32 bits en modo WOW64 en los Libros en pantalla de SQL Server 2005.Requisitos de software

El programa de instalacin de SQL Server requiere Microsoft Windows Installer 3.1 o posterior, y SP1 de Microsoft Data Access Components (MDAC) 2.8 o posterior. Puede descargar SP1 de MDAC 2.8 de este sitio Web de Microsoft.El programa de instalacin de SQL Server instala los siguientes componentes de software requeridos por el producto:

Microsoft Windows .NET Framework 2.0

Microsoft SQL Server Native Client

Archivos auxiliares de instalacin de Microsoft SQL Server( SQL Server 2005 Express Edition no instala .NET Framework 2.0. Antes de instalar SQL Server 2005 Express Edition, debe descargar e instalar .NET Framework 2.0 de este sitio Web de Microsoft.

Cada uno de estos componentes se instala por separado; slo los archivos auxiliares del programa de instalacin de Microsoft SQL Server se quitan automticamente al desinstalar SQL Server 2005. Para obtener ms informacin acerca de cmo desinstalar esta versin, vea el tema sobre cmo desinstalar una instancia existente de SQL Server 2005 (programa de instalacin) en los Libros en pantalla de SQL Server 2005.( SQL Server 2005 no instala el kit de desarrollo de software (SDK) de .NET Framework 2.0. El SDK contiene documentacin, un compilador C++ y otras herramientas tiles para utilizar .NET Framework para el desarrollo de SQL Server. Puede descargar el SDK de .NET Framework desde el sitio Web de Microsoft.

Una vez instalados los componentes requeridos, el programa de instalacin de SQL Server comprobar que el equipo en el que se ha instalado SQL Server tambin cumple los dems requisitos para su correcta instalacin. Para obtener ms informacin, vea el tema "Comprobar los parmetros del Comprobador de configuracin del sistema" en los Libros en pantalla de SQL Server 2005.Verificando la instalacin de SQL Server 2005Una vez finalizada la instalacin, ingrese al botn inicio, programas, y ver el grupo de aplicaciones de SQL Server 2005 como se muestra en la siguiente figura.

Figura 1.7 SQL Server 2005Ah se muestran las principales herramientas de SQL Server 2005 (que sern descritas mas adelante en los siguientes captulos). Puede abrir SQL Server Management Studio para comprobar la conexin a su servidor de base de datos.

Otra de las formas de verificar el estado de la instalacin es haciendo pruebas con las sentencias a nivel del smbolo del sistema que ofrece SQL Server como es el caso del utilitario SQLCMD, para comprobar su funcionamiento abra una ventana del Smbolo del sistema y digite el siguiente comando:

Listando datos con el Comando SQLCMD

Sqlcmd S . E Q select @@version

Este comando en realidad permite, realizar todo tipo de consultas SQL con bastante facilidad. Sobretodo es bastante usado para ejecutar scripts de instalacin y configuracin de bases de datos.

El resultado de la ejecucin del comando anterior ser como se muestra en la siguiente figura. La sentencia est retornando la versin del SQL Server que ha instalado.

Figura 1.8 Resultados del comando SQLCMDNote el uso de las maysculas en los parmetros S,-E y Q. Si desea una ayuda ms detallada de los parmetros que puede usar con este comando puede escribir lo siguiente en el smbolo del sistema:

Ayuda del Comando SQLCMD

sqlcmd ?

Ahora que ya ha comprado que su instalacin est en marcha es hora de empezar con los primeros pasos de administracin de SQL Server, como lo veremos en los siguientes captulos a lo largo de todo el presente libro.

ResumenEn este captulo de introduccin a la teora de base de datos y SQL Server 2005 se ha visto que la informacin tiene valor si es lo suficientemente detallada y comprensiva para soportar necesidades especficas de un negocio. Los sistemas de administracin de base de datos proporcionan herramientas de almacenamiento y recuperacin confiable y flexible. Se entiende que una base de datos es un conjunto de informacin debidamente organizada mediante entidades compuestas de campos y registros y estas entidades se encuentran relacionadas unas y otras. Los entornos Cliente/Servidor, estn implementados de tal forma que la informacin se guarde de forma centralizada en un computador central (servidor), siendo el servidor responsable del mantenimiento de la relacin entre los datos, asegurarse del correcto almacenamiento de los datos, establecer restricciones que controlen la integridad de datos, etc. Del lado cliente, este corre tpicamente en distintas computadoras las cuales acceden al servidor a travs de una aplicacin, para realizar la solicitud de datos los clientes emplean el Structured Query Language (SQL), este lenguaje tiene un conjunto de comandos que permiten especificar la informacin que se desea recuperar, modificar, eliminar, agregar o simplemente procesar. Para el desarrollo de un sistema de base de datos se trabaja bajo un modelo de capas. La presente publicacin se centrar especficamente en la programacin de la capa de datos. Pues vamos al siguiente captulo para ver como podemos usar Microsoft SQL Server para lograr este propsito.

3029