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