SQL Server - Inicios

  • Published on
    21-Nov-2015

  • View
    213

  • Download
    0

Embed Size (px)

DESCRIPTION

Inicios en SQL Server

Transcript

<p>Descripcin del Caso</p> <p>Captulo I</p> <p>Introduccin a SQL Server</p> <p>Teora de Base de DatosIntroduccin</p> <p>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.</p> <p>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.</p> <p>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.</p> <p>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. </p> <p>Por qu SQL Server?</p> <p>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.</p> <p>Qu es un Sistema de Base de Datos?</p> <p>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.</p> <p>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.</p> <p>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.</p> <p>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).</p> <p>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.</p> <p>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.</p> <p>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.</p> <p>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.</p> <p>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.</p> <p>Figura 1.1 Esquema de un Sistema de Base de Datos</p> <p>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.</p> <p> Figura 1.2 Modelo de Tres CapasEl modelo relacional</p> <p>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.</p> <p>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).</p> <p>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:</p> <p> Todos los datos estn conceptualmente representados como un arreglo ordenado de datos en filas y columnas, llamado relacin.</p> <p> Todos los valores son escalares, esto es, que dada cualquier posicin fila/columa dentro de la relacin hay uno y solo un valor.</p> <p> Todas las relaciones son realizadas sobre la relacin completa y dan como resultado otra relacin, concepto conocido como clausura.</p> <p>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.</p> <p>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</p> <p>La siguiente figura muestra una relacin con los nombres formales de sus componentes principales:</p> <p>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.</p> <p>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).</p> <p>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.</p> <p>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:</p> <p> Una relacin puede ser una tabla (debido a que tiene filas y columnas).</p> <p> Una tupla puede ser una fila (row) o un registro (record).</p> <p> Un atributo puede ser una columna (column) o un campo (field).</p> <p>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</p> <p>Sistema de Administracin de Base de Datos Relacionales (RDBMS)</p> <p>Para que un producto en particular sea llamado Sistema de Administracin de Base de Datos Relacionales debe cumplir con las siguientes caractersticas:</p> <p> Mantener las relaciones entre las entidades (tablas) de una base de datos.</p> <p> Asegurar que la informacin sea almacenada correctamente y que no se violen las reglas que definen las relaciones (integridad referencial).</p> <p> Recuperar todos los datos hasta cierto punto de consistencia, en el caso de que haya una falla en el sistema.</p> <p>Qu es Microsoft SQL Server?</p> <p>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.</p> <p>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.</p> <p>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.</p> <p>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: </p> <p> Administra el almacenamiento de la informacin para transacciones y anlisis.</p> <p> Responde a los requerimientos y solicitudes de aplicaciones cliente.</p> <p> 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.</p> <p>( 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. </p> <p>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. </p> <p>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:</p> <p> 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</p> <p>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.</p> <p>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 dis...</p>