Está en la página 1de 29

Programa 5 Estrellas

SQL Server 2005 Estrella 1 Unidad 1 Introduccin a las bases de datos

2007

Contenido del curso


Contenido del curso...........................................................................................2 Unidad 1: Introduccin a las bases de datos.....................................................3 Objetivos.........................................................................................................3 Concepto de Bases de Datos............................................................................4 Algunos conceptos de bases de datos:.........................................................4 Tipos de bases de datos................................................................................4 Sistema de gestin de base de datos................................................................8 Propsito........................................................................................................8 Objetivos.........................................................................................................8 Ventajas..........................................................................................................9 Base de datos OLTP......................................................................................9 Objetos de la base de datos............................................................................11 Tablas...........................................................................................................11 .........................................................................................................................13 Vistas............................................................................................................13 ndices..........................................................................................................16 Procedimientos Almacenados......................................................................17 Funciones definidas por el Usuario..............................................................20 Sinnimos.....................................................................................................22 Transaccin..................................................................................................22 Tipos de datos..................................................................................................24 Precisin, escala y longitud..........................................................................26 Constantes...................................................................................................27

Pgina 2 de 29

Unidad 1: Introduccin a las bases de datos


Objetivos
Dar una visin acerca de los conceptos bsicos de una base de datos: Qu es una base de datos? Objetos de una base de datos Tipo de datos

Pgina 3 de 29

Concepto de Bases de Datos


Una base de datos se puede definir como un conjunto de informacin que pertenece al mismo contexto, que se encuentra agrupada almacenada para su uso posterior. En este sentido, una biblioteca puede considerarse una base de datos compuesta en su mayora por documentos y textos impresos en papel e indexados para su consulta. En la actualidad, y gracias al desarrollo tecnolgico de campos como la informtica y la electrnica, la mayora de las bases de datos tienen formato electrnico, que ofrece un amplio rango de soluciones al problema de almacenar datos. Las aplicaciones ms usuales de bases de datos, son para la gestin de empresas e instituciones pblicas. Tambin son ampliamente utilizadas en entornos cientficos con el objeto de almacenar la informacin experimental.

Algunos conceptos de bases de datos:


Base de Datos: es la coleccin de datos usados por el sistema de aplicaciones de una determinada empresa. Base de Datos: es un conjunto de informacin relacionada que se encuentra agrupada o estructurada. Un archivo por s mismo no constituye una base de datos, sino ms bien la forma en que est organizada la informacin es la que da origen a la base de datos. Base de Datos: coleccin de datos organizada para dar servicio a muchas aplicaciones al mismo tiempo al combinar los datos de manera que parezcan estar en una sola ubicacin

Tipos de bases de datos


Las bases de datos pueden clasificarse de varias maneras, de acuerdo al criterio elegido para su clasificacin: Segn la variabilidad de los datos almacenados Bases de datos estticas. stas son bases de datos de slo lectura, utilizadas primordialmente para almacenar datos histricos que posteriormente se pueden utilizar para estudiar el comportamiento de un conjunto de datos a travs del tiempo, realizar proyecciones y tomar decisiones. Bases de datos dinmicas. stas son bases de datos donde la informacin almacenada se modifica con el tiempo, permitiendo operaciones como actualizacin y adicin de datos, adems de las
Pgina 4 de 29

operaciones fundamentales de consulta. Un ejemplo de esto puede ser la base de datos utilizada en un sistema de informacin de una tienda de abarrotes, una farmacia, un videoclub, etc. Segn el contenido Bases de datos bibliogrficas. Solo contienen un surrogante (representante) de la fuente primaria, que permite localizarla. Un registro tpico de una base de datos bibliogrfica contiene informacin sobre el autor, fecha de publicacin, editorial, ttulo, edicin, de una determinada publicacin, etc. Puede contener un resumen o extracto de la publicacin original, pero nunca el texto completo, porque sino estaramos en presencia de una base de datos a texto completo (o de fuentes primarias) [ver ms abajo]. Como su nombre lo indica, el contenido son cifras o nmeros. Por ejemplo, una coleccin de resultados de anlisis de laboratorio, entre otras. Bases de datos de texto completo. Almacenan las fuentes primarias, como por ejemplo, todo el contenido de todas las ediciones de una coleccin de revistas cientficas. Directorios. Un ejemplo son las guas telefnicas en formato electrnico. Banco de imgenes, audio, video, multimedia, etc. Bases de datos o "bibliotecas" de informacin Biolgica. Son bases de datos que almacenan diferentes tipos de informacin proveniente de las ciencias de la vida o mdicas.

Modelos de bases de datos Adems de la clasificacin por la funcin de las bases de datos, stas tambin se pueden clasificar de acuerdo a su modelo de administracin de datos. Un modelo de datos es bsicamente una "descripcin" de algo conocido como contenedor de datos (algo en donde se guarda la informacin), as como de los mtodos para almacenar y recuperar informacin de esos contenedores. Los modelos de datos no son cosas fsicas: son abstracciones que permiten la implementacin de un sistema eficiente de base de datos; por lo general se refieren a algoritmos, y conceptos matemticos. Algunos modelos con frecuencia utilizados en las bases de datos son: Bases de datos jerrquicas. stas son bases de datos que, como su nombre indica, almacenan su informacin en una estructura jerrquica. En este modelo los datos se organizan en una forma similar a un rbol (visto al revs), en donde un nodo padre de informacin puede tener varios hijos. El nodo que no tiene padres es llamado raz, y a los nodos que no tienen hijos se los conoce como hojas.

Pgina 5 de 29

Las bases de datos jerrquicas son especialmente tiles en el caso de aplicaciones que manejan un gran volumen de informacin y datos muy compartidos permitiendo crear estructuras estables y de gran rendimiento. Una de las principales limitaciones de este modelo es su incapacidad de representar eficientemente la redundancia de datos.

Base de datos de red. ste es un modelo ligeramente distinto del jerrquico; su diferencia fundamental es la modificacin del concepto de nodo: se permite que un mismo nodo tenga varios padres (posibilidad no permitida en el modelo jerrquico).

Fue una gran mejora con respecto al modelo jerrquico, ya que ofreca una solucin eficiente al problema de redundancia de datos; pero, aun as, la dificultad que significa administrar la informacin en una base de datos de red ha significado que sea un modelo utilizado en su mayora por programadores ms que por usuarios finales.

Base de datos relacional. ste es el modelo ms utilizado en la actualidad para modelar problemas reales y administrar datos dinmicamente. Este tipo de base se detalla en la unidad 2. Bases de datos orientadas a objetos. Este modelo, bastante reciente, y propio de los modelos informticos orientados a objetos, trata de almacenar en la base de datos los objetos completos (estado y comportamiento). Bases de datos documentales. Permiten la indexacin a texto completo, y en lneas generales realizar bsquedas ms potentes. Tesaurus es un sistema de ndices optimizado para este tipo de bases de datos. Base de datos deductivas. Un sistema de base de datos deductivas, es un sistema de base de datos pero con la diferencia que permite hacer deducciones a travs de inferencias. Se basa principalmente en reglas y hechos que son almacenados en la base de datos. Tambin las bases de datos deductivas son llamadas base de datos lgicas, a raz de que se basan en lgica matemtica. Bases de datos distribuidas. La base de datos est almacenada en varias computadoras conectadas en red. Surgen debido a la existencia fsica de organismos descentralizados. Esto les da la capacidad de unir las bases de datos de cada localidad y acceder as, por ejemplo a distintas universidades, sucursales de tiendas, etctera.

Pgina 6 de 29

Definicin de Base de datos Almacn de datos relacionados con diferentes modos de organizacin. Una base de datos representa algunos aspectos del mundo real, aquellos que le interesan al diseador. Se disea y almacena datos con un propsito especfico. De forma sencilla podemos indicar que una base de datos no es ms que un conjunto de informacin relacionada que se encuentra agrupada o estructurada. El archivo por s mismo, no constituye una base de datos, sino ms bien la forma en que est organizada la informacin es la que da origen a la base de datos. Las bases de datos manuales, pueden ser difciles de gestionar y modificar. Por ejemplo, en una gua de telfonos no es posible encontrar el nmero de una persona si no sabemos su apellido, aunque conozcamos su domicilio. Del mismo modo, en un archivo de pacientes en el que la informacin est ordenada por el nombre de los mismos, ser una tarea bastante engorrosa encontrar todos los pacientes que viven en una zona determinada. Los problemas expuestos anteriormente se pueden resolver creando una base de datos informatizada. Desde el punto de vista informtico, una base de datos es un sistema formado por un conjunto de datos almacenados en discos que permiten el acceso directo a ellos y un conjunto de programas que manipulan ese conjunto de datos. Desde el punto de vista ms formal, podramos definir una base de datos como un conjunto de datos estructurados, fiables y homogneos, organizados independientemente en mquina, accesibles a tiempo real, compartibles por usuarios concurrentes que tienen necesidades de informacin diferente y no predecible en el tiempo. La idea general es que estamos tratando con una coleccin de datos que cumplen las siguientes propiedades: Estn estructurados independientemente de las aplicaciones y del soporte de almacenamiento que los contiene. Presentan la menor redundancia posible. Son compartidos por varios usuarios y/o aplicaciones.

Pgina 7 de 29

Sistema de gestin de base de datos


Los Sistemas de gestin de base de datos son un tipo de software muy especfico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. Se compone de un lenguaje de definicin de datos, de un lenguaje de manipulacin de datos y de un lenguaje de consulta. En los textos que tratan este tema, o temas relacionados, se mencionan los trminos SGBD y DBMS, siendo ambos equivalentes, y acrnimos, respectivamente, de Sistema Gestor de Bases de Datos y DataBase Management System, su expresin inglesa.

Propsito
El propsito general de los sistemas de gestin de base de datos es el de manejar de manera clara, sencilla y ordenada un conjunto de datos.

Objetivos
Existen distintos objetivos que deben cumplir los DBMS: Abstraccin de la informacin. Los DBMS ahorran a los usuarios detalles acerca del almacenamiento fsico de los datos. Da lo mismo si una base de datos ocupa uno o cientos de archivos, este hecho se hace transparente al usuario. As, se definen varios niveles de abstraccin. Independencia. La independencia de los datos consiste en la capacidad de modificar el esquema (fsico o lgico) de una base de datos sin tener que realizar cambios en las aplicaciones que se sirven de ella. Redundancia mnima. Un buen diseo de una base de datos lograr evitar la aparicin de informacin repetida o redundante. Lo ideal es lograr una redundancia nula; no obstante, en algunos casos la complejidad de los clculos hace necesaria la aparicin de redundancias. Consistencia. En aquellos casos en los que no se ha logrado esta redundancia nula, ser necesario vigilar que aquella informacin que aparece repetida se actualice de forma coherente, es decir, que todos los datos repetidos se actualicen de forma simultnea. Seguridad. La informacin almacenada en una base de datos puede llegar a tener un gran valor. Los DBMS deben garantizar que esta informacin se encuentra asegurada frente a usuarios malintencionados, que intenten leer informacin privilegiada; frente a ataques que deseen manipular o destruir la informacin; o simplemente ante las torpezas de algn usuario autorizado pero
Pgina 8 de 29

despistado. Normalmente, los DBMS disponen de un complejo sistema de permisos a usuarios y grupos de usuarios, que permiten otorgar diversas categoras de permisos. Integridad. Se trata de adoptar las medidas necesarias para garantizar la validez de los datos almacenados. Es decir, se trata de proteger los datos ante fallos de hardware, datos introducidos por usuarios descuidados, o cualquier otra circunstancia capaz de corromper la informacin almacenada. Respaldo y recuperacin. Los DBMS deben proporcionar una forma eficiente de realizar copias de seguridad de la informacin almacenada en ellos, y de restaurar a partir de estas copias los datos. Control de la concurrencia. En la mayora de entornos (excepto quizs el domstico), lo ms habitual es que sean muchas las personas que acceden a una base de datos, bien para recuperar informacin, bien para almacenarla. Y es tambin frecuente que dichos accesos se realicen de forma simultnea. As pues, un DBMS debe controlar este acceso concurrente a la informacin, que podra derivar en inconsistencias. Tiempo de respuesta. Lgicamente, es deseable minimizar el tiempo que el DBMS tarda en darnos la informacin solicitada y en almacenar los cambios realizados.

Ventajas
1. 2. 3. 4. Facilidad de manejo de grandes volumen de informacin. Gran velocidad en muy poco tiempo. Independencia del tratamiento de informacin. Seguridad de la informacin (acceso a usuarios autorizados), proteccin de informacin, de modificaciones, inclusiones, consulta. 5. No hay duplicidad de informacin, comprobacin de informacin en el momento de introducir la misma. 6. Integridad referencial el terminar los registros.

Base de datos OLTP


Las bases de datos relacionales de procesamiento de transacciones en lnea (OLTP) son ptimas para administrar datos que cambian. Suelen tener varios usuarios que realizan transacciones al mismo tiempo que cambian los datos en tiempo real. Aunque las solicitudes de datos realizadas individualmente por los usuarios suelen hacer referencia a pocos registros, muchas de estas solicitudes se producen al mismo tiempo. Las bases de datos OLTP estn diseadas para permitir que las aplicaciones transaccionales escriban slo los datos necesarios para controlar una sola transaccin lo antes posible. Las bases de datos OLTP se caracterizan en general por lo siguiente:
Pgina 9 de 29

Admiten el acceso simultneo de muchos usuarios que agregan y modifican datos con regularidad. Representan el estado en cambio constante de una organizacin, pero no guardan su historial. Contienen muchos datos, incluidos todos los datos utilizados para comprobar transacciones. Tienen estructuras complejas. Se ajustan para dar respuesta a la actividad transaccional. Proporcionan la infraestructura tecnolgica necesaria para admitir las operaciones diarias de la empresa. Las transacciones individuales se completan rpidamente y se tiene acceso a cantidades de datos relativamente pequeas. Los sistemas OLTP estn diseados y ajustados para procesar cientos o miles de transacciones que se indican al mismo tiempo. Los datos en los sistemas OLTP estn organizados bsicamente para admitir transacciones, como por ejemplo: Registrar un pedido de una terminal punto de venta o especificado a travs de un sitio Web. Realizar un pedido de ms provisiones cuando las cantidades de inventario descienden hasta determinado nivel. Hacer un seguimiento de componentes desde su ensamblaje hasta un producto final en un proceso de fabricacin. Registrar datos de empleados.

Pgina 10 de 29

Objetos de la base de datos


Tablas
En una base de datos la informacin se organiza en tablas, que son filas y columnas similares a las de los libros contables o a las de las hojas de clculo. Una base de datos simple puede que slo contenga una tabla, pero generalmente las bases de datos necesitan varias tablas. Por ejemplo, podra existir una base de datos con las siguientes tablas: una tabla con informacin sobre productos, otra con informacin sobre pedidos y una tercera con informacin sobre clientes.

Cada fila de la tabla recibe tambin el nombre de registro (o tupla) y cada columna se denomina tambin campo. Un registro es una forma lgica y coherente de combinar informacin sobre algn tema. Un campo es un elemento nico de informacin: un tipo de elemento que aparece en cada registro. En la tabla Productos, por ejemplo, cada fila o registro contendra informacin sobre un producto, y cada columna contendra algn dato sobre ese producto, como su nombre o el precio.

Pgina 11 de 29

Adems de la funcin estndar de las tablas bsicas definidas por el usuario, SQL Server 2005 proporciona los siguientes tipos de tabla que permiten llevar a cabo objetivos especiales en una base de datos: Tablas con particiones Tablas temporales Tablas del sistema Tablas con particiones Las tablas con particiones son tablas cuyos datos se han dividido horizontalmente entre unidades que pueden repartirse por ms de un grupo de archivos de una base de datos. Las particiones facilitan la administracin de las tablas y los ndices grandes porque permiten obtener acceso y administrar subconjuntos de datos con rapidez y eficacia al mismo tiempo que mantienen la integridad del conjunto. En un escenario con particiones, las operaciones como, por ejemplo, la carga de datos de un sistema OLTP a un sistema OLAP, pueden realizarse en cuestin de segundos en lugar de minutos u horas en otras versiones. Las operaciones de mantenimiento que se realizan en los subconjuntos de datos tambin se realizan de forma ms eficaz porque slo afectan a los datos necesarios en lugar de a toda la tabla. Tiene sentido crear una tabla con particiones si la tabla es muy grande o se espera que crezca mucho, y si alguna de las dos condiciones siguientes es verdadera: La tabla contiene, o se espera que contenga, muchos datos que se utilizan de manera diferente. Las consultas o las actualizaciones de la tabla no se realizan como se esperaba o los costos de mantenimiento son superiores a los perodos de mantenimiento predefinidos. Las tablas con particiones admiten todas las propiedades y caractersticas asociadas con el diseo y consulta de tablas estndar, incluidas las restricciones, los valores predeterminados, los valores de identidad y marca de hora, los desencadenadores y los ndices. Por lo tanto, si desea implementar una vista con particiones que sea local respecto a un servidor, debe implementar una tabla con particiones. Tablas temporales Hay dos tipos de tablas temporales: locales y globales. Las tablas temporales locales son visibles slo para sus creadores durante la misma conexin a una instancia de SQL Server como cuando se crearon o cuando se hizo referencia a ellas por primera vez. Las tablas temporales locales se eliminan cuando el usuario se desconecta de la instancia de SQL Server. Las tablas temporales globales estn visibles para cualquier usuario y conexin una vez creadas, y se eliminan cuando todos los usuarios que hacen referencia a la tabla se desconectan de la instancia de SQL Server.
Pgina 12 de 29

Tablas del sistema SQL Server almacena los datos que definen la configuracin del servidor y de todas sus tablas en un conjunto de tablas especial, conocido como tablas del sistema. Los usuarios no pueden consultar ni actualizar directamente las tablas del sistema si no es a travs de una conexin de administrador dedicada (DAC) que slo debera utilizarse bajo la supervisin de los servicios de atencin al cliente de Microsoft. Las tablas de sistema se cambian normalmente en cada versin nueva de SQL Server. Puede que las aplicaciones que hacen referencia directamente a las tablas del sistema tengan que escribirse de nuevo para poder actualizarlas a una versin nueva de SQL Server con una versin diferente de las tablas de sistema. La informacin de las tablas del sistema est disponible a travs de las vistas de catlogo. Importante Las tablas del sistema de SQL Server 2005 Database Engine (Motor de base de datos de SQL Server 2005) se han implementado como vistas de slo lectura para ofrecer compatibilidad con versiones anteriores a SQL Server 2005. No puede trabajar directamente con los datos de estas tablas del sistema. Recomendamos obtener acceso a los metadatos de SQL Server mediante las vistas de catlogo.

Vistas
Una vista es una tabla virtual cuyo contenido est definido por una consulta. Al igual que una tabla real, una vista consta de un conjunto de columnas y filas de datos con un nombre. Sin embargo, a menos que est indizada, una vista no existe como conjunto de valores de datos almacenados en una base de datos. Las filas y las columnas de datos proceden de tablas a las que se hace referencia en la consulta que define la vista y se producen de forma dinmica cuando se hace referencia a la vista. Una vista acta como filtro de las tablas subyacentes a las que se hace referencia en ella. La consulta que define la vista puede provenir de una o de varias tablas, o bien de otras vistas de la base de datos actual u otras bases de datos. Asimismo, es posible utilizar las consultas distribuidas para definir vistas que utilicen datos de orgenes heterogneos. Esto puede resultar de utilidad, por ejemplo, si se desea combinar datos de estructura similar que proceden de distintos servidores, cada uno de los cuales almacena los datos para una regin distinta de la organizacin. No existe ninguna restriccin a la hora de consultar vistas y muy pocas restricciones a la hora de modificar los datos de stas. En esta ilustracin se muestra una vista basada en dos tablas:

Pgina 13 de 29

Tipos de vistas En SQL Server 2005, se pueden crear vistas estndar, vistas indizadas y vistas con particiones. Vistas estndar La combinacin de datos de una o ms tablas mediante una vista estndar permite satisfacer la mayor parte de las ventajas de utilizar vistas. stas incluyen centrarse en datos especficos y simplificar la manipulacin de datos. Vistas indizadas Una vista indizada es una vista que se ha materializado. Esto significa que se ha calculado y almacenado. Se puede indizar una vista creando un ndice agrupado nico en ella. Las vistas indizadas mejoran de forma considerable el rendimiento de algunos tipos de consultas. Las vistas indizadas funcionan mejor para consultas que agregan muchas filas. No son adecuadas para conjuntos de datos subyacentes que se actualizan frecuentemente Vistas con particiones Una vista con particiones rene datos horizontales con particiones de un conjunto de tablas miembro en uno o ms servidores. Esto hace que los datos aparezcan como si fueran de una tabla. Una vista que rene tablas miembro en la misma instancia de SQL Server es una vista con particiones local. Escenarios de utilizacin de vistas Las vistas suelen utilizarse para centrar, simplificar y personalizar la percepcin de la base de datos para cada usuario. Las vistas pueden emplearse como mecanismos de seguridad, que permiten a los usuarios obtener acceso a los datos por medio de la vista, pero no les conceden el
Pgina 14 de 29

permiso de obtener acceso directo a las tablas base subyacentes a la vista. Las vistas pueden utilizarse para proporcionar una interfaz compatible con versiones anteriores con el fin de emular una tabla que exista pero cuyo esquema ha cambiado. Para centrarse en datos especficos Las vistas permiten a los usuarios centrarse en datos de su inters y en tareas especficas de las que son responsables. Los datos innecesarios o sensibles pueden quedar fuera de la vista. Para simplificar la manipulacin de datos Las vistas permiten simplificar la forma en que los usuarios trabajan con los datos. Las combinaciones, proyecciones, consultas UNION y consultas SELECT que se utilizan con frecuencia pueden definirse como vistas para que los usuarios no tengan que especificar todas las condiciones y calificaciones cada vez que realicen una operacin adicional en los datos. Por ejemplo, es posible crear como vista una consulta compleja que se utilice para la elaboracin de informes y que realice subconsultas, combinaciones externas y agregaciones para recuperar datos de un grupo de tablas. La vista simplifica el acceso a los datos ya que evita la necesidad de escribir o enviar la consulta subyacente cada vez que se genera el informe; en lugar de eso, se realiza una consulta en la vista. Tambin puede crear funciones en lnea definidas por el usuario que funcionen de manera lgica como vistas con parmetros o como vistas con parmetros de condiciones de bsqueda de clusulas WHERE u otras partes de la consulta. Para proporcionar compatibilidad con versiones anteriores Las vistas permiten crear una interfaz compatible con versiones anteriores para una tabla cuando su esquema cambia. Por ejemplo, una aplicacin puede haber hecho referencia a una tabla no normalizada que tiene el siguiente esquema: Empleados(Nombre, FechaNacimiento, Sueldo, Departamento, Edificio) Para evitar el almacenamiento redundante de datos en la base de datos, puede normalizar la tabla dividindola en las dos siguientes tablas: Empleados2(Nombre, FechaNacimiento, Sueldo, Id_Dep) Departamento(Id_Dep, Edificio) Para proporcionar una interfaz compatible con versiones anteriores que siga haciendo referencia a los datos de Empleados, puede eliminar la tabla Empleados antigua y reemplazarla por la siguiente vista: CREATE VIEW Employee AS SELECT Name, BirthDate, Salary, BuildingName FROM Employee2 e, Department d WHERE e.DeptId = d.DeptId

Pgina 15 de 29

Las aplicaciones que realizaban consultas en la tabla Empleados, ahora pueden obtener sus datos desde la vista Empleados. No es necesario cambiar la aplicacin si slo lee desde Empleados. A veces, las aplicaciones que actualizan Empleados tambin pueden admitirse agregando desencadenadores INSTEAD OF a la nueva vista para asignar operaciones INSERT, DELETE y UPDATE en la vista a las tablas subyacentes. Para personalizar datos Las vistas permiten que varios usuarios puedan ver los datos de modo distinto, aunque estn utilizando los mismos simultneamente. Esto resulta de gran utilidad cuando usuarios que tienen distintos intereses y calificaciones trabajan con la misma base de datos. Por ejemplo, es posible crear una vista que recupere nicamente los datos para los clientes con los que trabaja el responsable comercial de una cuenta. La vista puede determinar qu datos deben recuperarse en funcin del identificador de inicio de sesin del responsable comercial que utilice la vista. Para exportar e importar datos Es posible utilizar vistas para exportar datos a otras aplicaciones. Por ejemplo, es posible que quiera utilizar la informacin de varias tablas para analizar los datos mediante Microsoft Excel. Para ello, puede crear una vista a partir de las tablas. A continuacin, puede utilizar la herramienta bcp para exportar los datos definidos por la vista. Para combinar datos de particiones entre servidores El operador de conjuntos UNION de Transact-SQL puede utilizarse dentro de una vista para combinar los resultados de dos o ms consultas de tablas distintas en un solo conjunto. Esta combinacin se muestra al usuario como una tabla nica denominada vista con particiones. Por ejemplo, si una tabla contiene datos de ventas de Washington y otra tabla contiene datos de ventas de California, podra crearse una vista a partir de la UNION de ambas tablas. La vista representada incluye los datos de ventas de ambas zonas.

ndices
Al igual que el ndice de un libro, el ndice de una base de datos permite encontrar rpidamente informacin especfica en una tabla o vista indizada. Un ndice contiene claves generadas a partir de una o varias columnas de la tabla o la vista y punteros que asignan la ubicacin de almacenamiento de los datos especificados. Puede mejorar notablemente el rendimiento de las aplicaciones y consultas de bases de datos creando ndices correctamente diseados para que sean compatibles con las consultas. Los ndices pueden reducir la cantidad de datos que se deben leer para devolver el conjunto de resultados de la consulta. Los ndices tambin pueden exigir la unicidad en las filas de una tabla, lo que se garantiza la integridad de los datos de la tabla.

Pgina 16 de 29

Tipo de ndices Tipo de ndice Agrupado Descripcin Un ndice agrupado ordena y almacena las filas de datos de la tabla o vista por orden en funcin de la clave del ndice agrupado. El ndice agrupado se implementa como una estructura de rbol b que admite la recuperacin rpida de las filas a partir de los valores de las claves del ndice agrupado. Los ndices no agrupados se pueden definir en una tabla o vista con un ndice agrupado o en un montn. Cada fila del ndice no agrupado contiene un valor de clave no agrupada y un localizador de fila. Este localizador apunta a la fila de datos del ndice agrupado o el montn que contiene el valor de clave. Las filas del ndice se almacenan en el mismo orden que los valores de la clave del ndice, pero no se garantiza que las filas de datos estn en un determinado orden a menos que se cree un ndice agrupado en la tabla. Un ndice nico garantiza que la clave de ndice no contenga valores duplicados y, por tanto, cada fila de la tabla o vista es en cierta forma nica. Tanto los ndices agrupados como los no agrupados pueden ser nicos. ndice no agrupado que se extiende para incluir columnas sin clave adems de las columnas de clave. Un ndice en una vista materializa (ejecuta) la vista, y el conjunto de resultados se almacena de forma permanente en un ndice agrupado nico, del mismo modo que se almacena una tabla con un ndice agrupado. Los ndices no agrupados de la vista se pueden agregar una vez creado el ndice agrupado. Tipo especial de ndice funcional basado en smbolos (token) que crea y mantiene el servicio del Motor de texto completo de Microsoft para SQL Server (MSFTESQL). Proporciona la compatibilidad adecuada para bsquedas de texto complejas en datos de cadenas de caracteres. Representacin dividida y permanente de los objetos XML binarios grandes (BLOB) de la columna de tipo de datos xml.

No agrupado

nico

ndice con columnas incluidas Vistas indizadas

Texto

XML

Procedimientos Almacenados
Cuando crea una aplicacin con Microsoft SQL Server 2005, el lenguaje de programacin Transact-SQL es la principal interfaz de programacin entre las aplicaciones y la base de datos de Microsoft SQL Server. Cuando utiliza

Pgina 17 de 29

programas Transact-SQL, dispone de dos mtodos para almacenar y ejecutar los programas. Puede almacenar los programas localmente y crear aplicaciones que envan los comandos a SQL Server y procesan los resultados. Puede almacenar los programas como procedimientos almacenados en SQL Server y crear aplicaciones que ejecutan los procedimientos almacenados y procesan los resultados. Los procedimientos almacenados de Microsoft SQL Server son similares a los procedimientos de otros lenguajes de programacin en el sentido en que pueden: Aceptar parmetros de entrada y devolver varios valores en forma de parmetros de salida al lote o al procedimiento que realiza la llamada. Contener instrucciones de programacin que realicen operaciones en la base de datos, incluidas las llamadas a otros procedimientos. Devolver un valor de estado a un lote o a un procedimiento que realiza una llamada para indicar si la operacin se ha realizado correctamente o se han producido errores (y el motivo de stos). Puede utilizar la instruccin EXECUTE de Transact-SQL para ejecutar un procedimiento almacenado. Los procedimientos almacenados difieren de las funciones en que no devuelven valores en lugar de sus nombres ni pueden utilizarse directamente en una expresin. Utilizar procedimientos almacenados en SQL Server en vez de programas Transact-SQL almacenados localmente en equipos cliente presenta las siguientes ventajas: Se registran en el servidor. Pueden incluir atributos de seguridad (como permisos) y cadenas de propiedad; adems se les pueden asociar certificados. Los usuarios pueden disponer de permiso para ejecutar un procedimiento almacenado sin necesidad de contar con permisos directos en los objetos a los que se hace referencia en el procedimiento. Mejoran la seguridad de la aplicacin. Los procedimientos almacenados con parmetros pueden ayudar a proteger la aplicacin ante ataques por inyeccin de cdigo SQL. Permiten una programacin modular. Puede crear el procedimiento una vez y llamarlo desde el programa tantas veces como desee. As, puede mejorar el mantenimiento de la aplicacin y permitir que las aplicaciones tengan acceso a la base de datos de manera uniforme. Constituyen cdigo con nombre que permite el enlace diferido. Esto proporciona un nivel de direccionamiento indirecto que facilita la evolucin del cdigo.

Pgina 18 de 29

Pueden reducir el trfico de red. Una operacin que necesite centenares de lneas de cdigo Transact-SQL puede realizarse mediante una sola instruccin que ejecute el cdigo en un procedimiento, en vez de enviar cientos de lneas de cdigo por la red.

Tipos de Procedimientos Almacendos En Microsoft SQL Server 2005 hay disponibles varios tipos de procedimientos almacenados. En este tema se describen de forma resumida los tipos de procedimientos almacenados y se incluyen ejemplos de cada uno de ellos. Procedimientos almacenados definidos por el usuario Los procedimientos almacenados son mdulos o rutinas que encapsulan cdigo para su reutilizacin. Un procedimiento almacenado puede incluir parmetros de entrada, devolver resultados tabulares o escalares y mensajes para el cliente, invocar instrucciones de lenguaje de definicin de datos (DDL) e instrucciones de lenguaje de manipulacin de datos (DML), as como devolver parmetros de salida. En SQL Server 2005 existen dos tipos de procedimientos almacenados: Transact-SQL o CLR. Transact-SQL Un procedimiento almacenado Transact-SQL es una coleccin guardada de instrucciones Transact-SQL que puede tomar y devolver los parmetros proporcionados por el usuario. Por ejemplo, un procedimiento almacenado puede contener las instrucciones necesarias para insertar una nueva fila en una o ms tablas segn la informacin suministrada por la aplicacin cliente o es posible que el procedimiento almacenado devuelva datos de la base de datos a la aplicacin cliente. Por ejemplo, una aplicacin Web de comercio electrnico puede utilizar un procedimiento almacenado para devolver informacin acerca de determinados productos en funcin de los criterios de bsqueda especificados por el usuario en lnea. CLR Un procedimiento almacenado CLR es una referencia a un mtodo Common Language Runtime (CLR) de Microsoft .NET Framework que puede aceptar y devolver parmetros suministrados por el usuario. Se implementan como mtodos pblicos y estticos en una clase de un ensamblado de .NET Framework. Para obtener ms informacin, vea Procedimientos almacenados CLR (en ingls). Procedimientos almacenados del sistema Muchas de las actividades administrativas en SQL Server 2005 se realizan mediante un tipo especial de procedimiento conocido como procedimiento almacenado del sistema. Por ejemplo, sys.sp_changedbowner es un procedimiento almacenado del sistema. Los procedimientos almacenados del sistema se almacenan fsicamente en la base de datos Resource e incluyen el prefijo sp_.
Pgina 19 de 29

Los procedimientos almacenados del sistema aparecen de forma lgica en el esquema sys de cada base de datos definida por el usuario y el sistema. En SQL Server 2005, los permisos GRANT, DENY y REVOKE se pueden aplicar a los procedimientos almacenados del sistema. Para obtener una lista completa de los procedimientos almacenados del sistema, vea Procedimientos almacenados del sistema (Transact-SQL). SQL Server admite los procedimientos almacenados del sistema que proporcionan una interfaz desde SQL Server a los programas externos para varias actividades de mantenimiento. Estos procedimientos almacenados extendidos utilizan el prefijo xp_.

Funciones definidas por el Usuario


Al igual que las funciones en los lenguajes de programacin, las funciones definidas por el usuario de Microsoft SQL Server 2005 son rutinas que aceptan parmetros, realizan una accin, como un clculo complejo, y devuelven el resultado de esa accin como un valor. El valor devuelto puede ser un valor escalar nico o un conjunto de resultados. Ventajas de las funciones definidas por el usuario Las ventajas de utilizar las funciones definidas por el usuario en SQL Server son: Permiten una programacin modular. Puede crear la funcin una vez, almacenarla en la base de datos y llamarla desde el programa tantas veces como desee. Las funciones definidas por el usuario se pueden modificar, independientemente del cdigo de origen del programa. Permiten una ejecucin ms rpida. Al igual que los procedimientos almacenados, las funciones definidas por el usuario Transact-SQL reducen el costo de compilacin del cdigo Transact-SQL almacenando los planes en la cach y reutilizndolos para ejecuciones repetidas. Esto significa que no es necesario volver a analizar y optimizar la funcin definida por el usuario con cada uso, lo que permite obtener tiempos de ejecucin mucho ms rpidos. Las funciones CLR ofrecen una ventaja de rendimiento importante sobre las funciones Transact-SQL para tareas de clculo, manipulacin de cadenas y lgica empresarial. Las funciones Transact-SQL se adecuan mejor a la lgica intensiva del acceso a datos. Pueden reducir el trfico de red. Una operacin que filtra datos basndose en restricciones complejas que no se puede expresar en una sola expresin escalar se puede expresar como una funcin. La funcin se puede invocar en la clusula WHERE para reducir el nmero de filas que se envan al cliente. Componentes de una funcin definida por el usuario En SQL Server 2005, las funciones definidas por el usuario se pueden escribir en Transact-SQL, o en cualquier lenguaje de programacin .NET.
Pgina 20 de 29

Para obtener ms informacin acerca del uso de lenguajes .NET en funciones, vea CLR User-Defined Functions. Todas las funciones definidas por el usuario tienen la misma estructura de dos partes: un encabezado y un cuerpo. La funcin toma cero o ms parmetros de entrada y devuelve un valor escalar o una tabla. El encabezado define: Nombre de funcin con nombre de propietario o esquema opcional Nombre del parmetro de entrada y tipo de datos Opciones aplicables al parmetro de entrada Tipo de datos de parmetro devueltos y nombre opcional Opciones aplicables al parmetro devuelto El cuerpo define la accin o la lgica que la funcin va a realizar. Contiene: Una o ms instrucciones Transact-SQL que ejecutan la lgica de la funcin Una referencia a un ensamblado .NET

Tipos de funciones SQL Server 2005 admite funciones definidas por el usuario y funciones del sistema integradas. Funciones escalares Las funciones escalares definidas por el usuario devuelven un nico valor de datos del tipo definido. Las funciones escalares en lnea no tienen cuerpo; el valor escalar es el resultado de una sola instruccin. Para una funcin escalar de mltiples instrucciones, el cuerpo de la funcin, definido en un bloque BEGIN...END, contiene una serie de instrucciones Transact-SQL que devuelven el valor nico. El tipo devuelto puede ser de cualquier tipo de datos excepto text, ntext, image, cursor y timestamp. Funciones con valores de tabla Las funciones con valores de tabla definidas por el usuario devuelven un tipo de datos table. Las funciones con valores de tabla en lnea no tienen cuerpo; la tabla es el conjunto de resultados de una sola instruccin SELECT. Funciones integradas SQL Server proporciona las funciones integradas para ayudarle a realizar diversas operaciones. No se pueden modificar. Puede utilizar funciones integradas en instrucciones Transact-SQL para: Tener acceso a informacin de las tablas del sistema de SQL Server sin tener acceso a las tablas del sistema directamente. Realizar tareas habituales como SUM, GETDATE o IDENTITY.
Pgina 21 de 29

Las funciones integradas devuelven tipos de datos escalares o table. Por ejemplo, @@ERROR devuelve 0 si la ltima instruccin Transact-SQL se ejecut correctamente. Si la instruccin gener un error, @@ERROR devuelve el nmero de error. Y la funcin SUM(parameter) devuelve la suma de todos los valores del parmetro.

Sinnimos
Microsoft SQL Server 2005 incorpora el concepto de sinnimo. Un sinnimo es un nombre alternativo para un objeto de mbito de esquema. Las aplicaciones cliente pueden utilizar un nombre de una sola parte para hacer referencia a un objeto base utilizando un sinnimo en lugar de utilizar un nombre de dos, tres o cuatro partes para hacer referencia al objeto base. Un sinnimo es un objeto de base de datos que sirve para los siguientes objetivos: Proporciona un nombre alternativo para otro objeto de base de datos, denominado objeto base, que puede existir en un servidor local o remoto. Proporciona una capa de abstraccin que protege una aplicacin cliente de cambios realizados en el nombre o la ubicacin del objeto base.

Transaccin
Una transaccin es una secuencia de operaciones realizadas como una sola unidad lgica de trabajo. Una unidad lgica de trabajo debe exhibir cuatro propiedades, conocidas como propiedades de atomicidad, coherencia, aislamiento y durabilidad (ACID), para ser calificada como transaccin. Atomicidad. Una transaccin debe ser una unidad atmica de trabajo, tanto si se realizan todas sus modificaciones en los datos, como si no se realiza ninguna de ellas. Coherencia. Cuando finaliza, una transaccin debe dejar todos los datos en un estado coherente. En una base de datos relacional, se deben aplicar todas las reglas a las modificaciones de la transaccin para mantener la integridad de todos los datos. Todas las estructuras internas de datos, como ndices de rbol b o listas doblemente vinculadas, deben estar correctas al final de la transaccin. Aislamiento. Las modificaciones realizadas por transacciones simultneas se deben aislar de las modificaciones llevadas a cabo por otras transacciones simultneas. Una transaccin reconoce los datos en el estado en que estaban antes de que otra transaccin simultnea los modificara o despus de que la segunda transaccin haya concluido, pero no reconoce un estado intermedio. Esto se conoce como seriabilidad, ya que deriva en la capacidad de volver a cargar los datos iniciales y reproducir una serie de transacciones para finalizar
Pgina 22 de 29

con los datos en el mismo estado en que estaban despus de realizar las transacciones originales. Durabilidad. Una vez concluida una transaccin, sus efectos son permanentes en el sistema. Las modificaciones persisten an en el caso de producirse un error del sistema. Especificar y exigir transacciones Los programadores de SQL son los responsables de iniciar y finalizar las transacciones en puntos que exijan la coherencia lgica de los datos. El programador debe definir la secuencia de modificaciones de datos que los dejan en un estado coherente en relacin con las reglas corporativas de la organizacin. El programador incluye estas instrucciones de modificacin en una sola transaccin de forma que SQL Server 2005 Database Engine (Motor de base de datos de SQL Server 2005) puede exigir la integridad fsica de la misma. Es responsabilidad de un sistema de base de datos corporativo, como una instancia de Database Engine (Motor de base de datos), proporcionar los mecanismos que aseguren la integridad fsica de cada transaccin. Database Engine (Motor de base de datos) proporciona: Servicios de bloqueo que preserven el aislamiento de la transaccin. Servicios de registro que aseguren la durabilidad de la transaccin. Aunque se produzca un error en el hardware del servidor, el sistema operativo o la instancia de Database Engine (Motor de base de datos), la instancia utiliza registros de transacciones, al reiniciar, para revertir automticamente las transacciones incompletas al punto en que se produjo el error del sistema. Caractersticas de administracin de transacciones que exigen la atomicidad y coherencia de la transaccin. Una vez iniciada una transaccin, debe concluirse correctamente; en caso contrario, la instancia de Database Engine (Motor de base de datos) deshar todas las modificaciones de datos realizadas desde que se inici la transaccin.

Pgina 23 de 29

Tipos de datos
Los objetos que contienen datos tienen asociado un tipo de datos que define la clase de datos, por ejemplo, carcter, entero o binario, que puede contener el objeto. Los siguientes objetos tienen tipos de datos: Columnas de tablas y vistas. Parmetros de procedimientos almacenados. Variables. Funciones de Transact-SQL que devuelven uno o ms valores de datos de un tipo de datos especfico. Procedimientos almacenados que devuelven un cdigo, que siempre es de tipo integer. Al asignar un tipo de datos a un objeto se definen cuatro atributos del objeto: El tipo de datos que contiene el objeto. La longitud o tamao del valor almacenado. La precisin del nmero (slo tipos de datos numricos). La escala del nmero (slo tipos de datos numricos). Todos los datos almacenados en Microsoft SQL Server 2005 deben ser compatibles con uno de estos tipos de datos bsicos. Tambin pueden crearse dos tipos de datos definidos por el usuario: Los tipos de datos de alias se crean a partir de tipos de datos bsicos. Proporcionan un mecanismo para aplicar un nombre a un tipo de datos que sea ms descriptivo que los tipos de valores que va a contener el objeto. Esto puede facilitar al administrador de la base de datos o al programador entender el uso que se piensa de cualquier objeto que se defina con el tipo de datos. Los tipos de datos definidos por el usuario CLR se basan en tipos de datos creados en cdigo administrado y cargados en un ensamblado de SQL Server. Los tipos de datos de SQL Server 2005 se organizan en las siguientes categoras: Numricos exactos o bigint o decimal o int
Pgina 24 de 29

o o o o o o

numeric smallint money tinyint smallmoney bit

Cadenas de caracteres Unicode o nchar o ntext o nvarchar Numricos aproximados o float o real Cadenas binarias o binary o image o varbinary Fecha y hora o datetime o smalldatetime Otros tipos de datos o o o o o o cursor timestamp sql_variant uniqueidentifier table xml

Cadenas de caracteres o char o text o varchar En SQL Server 2005, segn las caractersticas de almacenamiento, algunos tipos de datos estn designados como pertenecientes a los siguientes grupos: Tipos de datos de valores grandes: varchar(max), nvarchar(max) y varbinary(max) Tipos de datos de objetos grandes: text, ntext, image, varchar(max), nvarchar(max), varbinary(max) y xml

Pgina 25 de 29

Precisin, escala y longitud


La precisin es el nmero de dgitos de un nmero. La escala es el nmero de dgitos situados a la derecha de la coma decimal de un nmero. Por ejemplo, el nmero 123,45 tiene una precisin de 5 y una escala de 2. En SQL Server 2005, la precisin mxima predeterminada de los tipos de datos numeric y decimal es 38. En versiones anteriores de SQL Server, el valor predeterminado mximo es 28. La longitud de un tipo de datos numrico es el nmero de bytes utilizados para almacenar el nmero. La longitud para una cadena de caracteres o tipo de datos Unicode es el nmero de caracteres. La longitud para los tipos de datos binary, varbinary y image es el nmero de bytes. Por ejemplo, un tipo de datos int que puede contener 10 dgitos se almacena en 4 bytes y no acepta coma decimal. El tipo de datos int tiene una precisin de 10, una longitud de 4 y una escala de 0. Cuando se concatenan dos expresiones char, varchar, binary o varbinary, la longitud de la expresin resultante es la suma de las longitudes de las dos expresiones de origen u 8.000 caracteres, lo que sea menor. Cuando se concatenan dos expresiones nchar o nvarchar, la longitud de la expresin resultante es la suma de las longitudes de las dos expresiones de origen o 4.000 caracteres, lo que sea menor. Cuando se comparan dos expresiones del mismo tipo de datos pero de distintas longitudes mediante UNION, EXCEPT o INTERSECT, la longitud resultante es la longitud mxima de las dos expresiones. La precisin y la escala de los tipos de datos numricos, excepto decimal, son fijas. Si un operador aritmtico tiene dos expresiones del mismo tipo, el resultado tiene el mismo tipo de datos con la precisin y la escala definidas para ese tipo de datos. Si un operador tiene dos expresiones con tipos de datos numricos diferentes, las reglas de prioridad de tipos de datos definen el tipo de datos del resultado. El resultado tiene la precisin y la escala definidas para el tipo de datos que le corresponde. Esta tabla define cmo se calculan la precisin y la escala del resultado de la operacin cuando ste es de tipo decimal. El resultado es decimal cuando se cumple alguna de las siguientes condiciones: Ambas expresiones son de tipo decimal. Una expresin es decimal y la otra es de un tipo de datos con una prioridad menor que decimal. Las expresiones de operando se denotan como expresin e1, con precisin p1 y escala s1, y expresin e2, con precisin p2 y escala s2. La precisin y la

Pgina 26 de 29

escala de cualquier expresin que no sea decimal es la precisin y la escala definidas para el tipo de datos de la expresin. Operacin e1 + e2 e1 - e2 e1 * e2 e1 / e2 e1 { UNION | EXCEPT | INTERSECT } e2 Precisin del resultado mx(s1, s2) + mx(p1-s1, p2-s2) + 1 mx(s1, s2) + mx(p1-s1, p2-s2) + 1 p1 + p2 + 1 p1 - s1 + s2 + mx(6, s1 + p2 + 1) mx(s1, s2) + mx(p1-s1, p2-s2) Escala del resultado * mx(s1, s2) mx(s1, s2) s1 + s2 mx(6, s1 + p2 + 1) mx(s1, s2)

* La precisin y la escala del resultado tienen un valor mximo absoluto igual a 38. Cuando la precisin de un resultado es mayor que 38, la escala correspondiente se reduce para evitar que la parte entera del resultado se trunque.

Constantes
Una constante es un smbolo que representa el valor especfico de un dato. El formato de las constantes depende del tipo de datos del valor que representa. Las constantes se llaman tambin literales. En las siguientes tablas se muestran algunos ejemplos del uso de las constantes. Constantes usadas en Cadenas de caracteres Cadenas Unicode Constantes de cadenas binarias Constantes bit Constantes datetime Ejemplo 'O''Brien' 'The level for job_id: %d should be between %d and %d.' N'Michl' 0x12Ef 0x69048AEFDD010E 0o1 'April 15, 1998' '04/15/98' '14:30:24' '04:24 PM' 1894 2 1894.1204 2.0 101.5E5 0.5E-2 $12 $542023.14 0xff19966f868b11d0b42d00c04fc964ff
Pgina 27 de 29

Constantes integer Constantes decimal Constantes float y real Constantes money Constantes

uniqueidentifier

'6F9619FF-8B86-D011-B42D-00C04FC964FF'

Para las constantes numricas, use los operadores unarios + y - cuando sea necesario especificar el signo del valor numrico: +$156.45 -73.52E8 -129.42 +442 Las constantes de carcter y Unicode se asignan a la intercalacin predeterminada de la base de datos actual, a menos que asigne una intercalacin especfica mediante la clusula COLLATE, por ejemplo: 'abc' COLLATE French_CI_AI N'lustig' COLLATE German_Phonebook_CS_AS Las constantes se pueden usar de muchas formas en Transact-SQL. A continuacin se muestran algunos ejemplos: Como un valor constante en una expresin aritmtica: SELECT Price + $.10 FROM MyTable Como el valor de datos con el que se compara una columna en una clusula WHERE: SELECT * FROM MyTable WHERE LastName = 'O''Brien' Como el valor de datos que se va a colocar en una variable: SET @DecimalVar = -1200.02 Como el valor de datos que debe colocarse en una columna de la fila actual. Esto se especifica con la clusula SET de la instruccin UPDATE o la clusula VALUES de una instruccin INSERT: UPDATE MyTable SET Price = $99.99 WHERE PartNmbr = 1234 INSERT INTO MyTable VALUES (1235, $88.88) Como la cadena de caracteres que especifica el texto del mensaje emitido por una instruccin PRINT o RAISERROR: PRINT 'This is a message.'
Pgina 28 de 29

Como el valor que se va a probar en una instruccin condicional, como, por ejemplo, una instruccin IF o funciones CASE: IF (@@SALESTOTAL > $100000.00) EXECUTE Give_Bonus_Procedure

Pgina 29 de 29

También podría gustarte