Você está na página 1de 36

Bases de datos.

ADR Infor SL

Bases de datos.

Indice
N-1 Bases de datos.............................................................................................................................................1 1.- Introduccin........................................................................................................................................1 2.- Estructura de las bases de datos. .........................................................................................................1 Definicin..........................................................................................................................................1 Trminos y conceptos. .......................................................................................................................2 3.- SQL Server 2005................................................................................................................................4 Configuracin de SQL Server 2005..................................................................................................5 Herramienta de administracin y gestin de SQL Server 2005......................................................10 Administracin de bases de datos...................................................................................................18 Creacin de tablas...........................................................................................................................21 Restricciones y valores permitidos..................................................................................................24 Relaciones.......................................................................................................................................29 Ejercicios............................................................................................................................................................34 Ejercicio 1..............................................................................................................................................34

N-1 Bases de datos.


1.- Introduccin.
En cualquier aplicacin de software (o al menos su mayora) es requisito imprescindible el almacenamiento de informacin para posteriormente ser mostrada, manipulada o eliminada. Visual Studio 2005 nos ofrece todas las herramientas necesarias para el trabajo con bases de datos. Por lo tanto podemos trabajar, con cualquier tipo de base de datos, sean de nivel usuario, como Access o se alojen en servidores, como puede ser SQL SERVER, Oracle, MySql, etc. Las bases de datos locales, como Access son bases de datos orientadas a un uso ms bien domstico, o de oficinas muy pequeas. Su uso se recomienda para un trabajo personal. Si tenemos pensado un desarrollo multiusuario sobre bases de datos, es ms que recomendable descartar Access como almacn de nuestros datos. Una base de datos local, no nos ofrece ni la estabilidad, ni la eficacia, ni la seguridad necesarias para un proyecto empresarial, donde la velocidad y la seguridad de datos son factores primordiales. En cambio con un servidor de base de datos como SQL SERVER, todos los factores se cumplen. Y tenemos aadidas muchas ms funciones para realizar determinadas tareas, que Access sera incapaz de realizar. Adems Visual Studio 2005, nos ofrece es su edicin Express, la posibilidad de de descargar gratuitamente la versin de SQL SERVER 2005 Express Edition, ofrecindonos la posibilidad de aprender a utilizar un servidor de bases de datos potente y fiable. El nico lmite de la edicin gratuita frente a ediciones de pago, es que nos limitan la cantidad de informacin a gestionar y el nmero de usuarios conectados a la base de datos (adems de otras funciones avanazadas). La finalidad de este curso, es capacitar al alumno para conseguir los mejores resultados en sus aplicaciones. De este modo, en cada una de las unidades, se explica como sacar el mximo partido a .NET, explicando slo las caractersticas ms importantes para conseguir resultados profesionales. Por este motivo, suponemos que trabajaremos con la versin gratuita de SQL SERVER 2005 y nos centraremos en estas bases de datos, sin entrar a conocer el resto. No sera lgico, que teniendo acceso gratuito a una de los servidores de bases de datos ms potente del mercado, limitsemos este curso al trabajo con bases de datos locales.

2.- Estructura de las bases de datos.


Definicin.
Una base de datos es un sistema de almacenamiento de informacin. Esta definicin es vlida, sin embargo no se ajusta a la realidad, una base de datos es algo ms que el "lugar" donde se almacenan nuestros datos. En ellas, almacenamos no slo informacin, sino tambin una serie de objetos, procedimientos y reglas, que garantizan la integridad y la fiabilidad de los datos, para cubrir las necesidades requeridas por una empresa. Es muy importante y obligatorio, que en el momento de disear una base de datos, se estudie de que modo se va a obtener el mximo rendimiento al hora de procesar la informacin. Para ello, contamos con una serie de 1

Bases de datos. estructuras y herramientas que garantizan la velocidad de acceso a datos, como por ejemplo los ndices. Del mismo modo, las operaciones de acceso a datos ms frecuentes pueden ser almacenadas en las bases de datos, en forma de Procedimientos almacenados, de esta forma, almacenamos no slo los datos, sino tambin los mecanismos requeridos para trabajar esta informacin. En SQL SERVER, se almacena en la propia base de datos los credenciales de usuarios, donde se gestionan los permisos de acceso. Para limitar el uso que pueda hacer un determinado usuario sobre nuestros datos. Nuestras aplicaciones no trabajan directamente con nuestros datos, necesitan de un enlace, que se encargue de recibir las ordenes de la aplicacin y en funcin de estas, trabaje sobre los datos. Este enlace recibe el nombre de Servidor de datos, (RDBMS, Relational DataBase Management System). As pues, nuestro RDBMS ser SQL SERVER 2005 encargado de trabajar con las bases de datos en funcin de las peticiones que le realizar nuestras aplicaciones. Para que entiendas mejor este concepto, piensa en Internet Information Server. Como ya sabes el IIS es nuestro servidor de pginas web, y al igual que un RDBMS trabaja con los datos, el IIS es el encargado de gestionar nuestras pginas, asignar permisos, etc...

Trminos y conceptos.
Para poder comenzar a trabajar con las bases de datos, es necesario conocer primero una serie de conceptos que nos ayude a entender como funcionan.

Archivos. En la creacin de la base de datos, el diseador puede nombrar esa base de datos con el nombre que desee y su lugar de destino., el propio SQL SERVER, crear la estructura lgica con los archivos necesarios. Estos archivos seran el archivo principal de datos, y el archivo de registros. Si por ejemplo, creamos una base de datos con el nombre "Empresa", SQL SERVER crear dos archivos con los siguientes nombres y extensiones: Empresa_Data.MDF (Archivo principal de datos) Empresa_Log.LDF (Archivo de registros) Por lo tanto nuestra base de datos queda almacenada en estos dos archivos, pudiendo elegir el destino de ambos. Es frecuente encontrarse, con que estos dos archivos se encuentran en unidades de almacenamiento distintas. Tanto por seguridad, como por rendimiento, de modo que si falla una de las unidades no perdamos todos los archivos.

Tablas, registros y campos. Las bases de datos estn formadas por bloques de informacin bsicos, estos bloques reciben el nombre de tablas, lo que antiguamente se denominaban ficheros o archivos.

Bases de datos. Una tabla, es un conjunto de informacin con caractersticas comunes. Es decir, almacena informacin sobre un concepto en comn. Por ejemplo en la base de datos de un video club, existir una tabla que guarde informacin de las pelculas, otra que almacene los datos de los socios, etc... Estas tablas, estn compuestas de registros. Un registro es cada uno de los elementos de informacin de la tabla. En el ejemplo de la base de datos del video club, un registro es cada uno de los socios almacenados en la tabla socios. A su vez, cada registro esta formado por una unidades fundamentales denominadas campos. Un campo es la unidad de informacin que interesa almacenar para cada registro. En nuestro ejemplo, nuestros registros estaran formados por los siguientes campos, nombre de socio, apellidos, nmero de socio, dni, etc...

ndices. Es fcil encontrar bases de datos con tablas cuyo tamao aumenta con facilidad pudiendo contener hasta millones de registros. En estos casos el acceso a determinada informacin, puede ser lento y costoso. Habr operaciones de consulta que obligue a recorrer la tabla entera, desde su primer registro hasta el ltimo, esto repercute directamente en nuestra aplicacin, convirtindola en una aplicacin lenta y pesada. De ah la importancia del diseo de la base de datos. Para acelerar el acceso a la informacin contamos con los ndices, un ndice almacena una serie de claves que permite al servidor acelerar sus consultas. El ndice no slo sirve para aumentar la velocidad, sirve adems para fijar un orden en nuestro registros, tener registros nicos, etc, de modo que cuando se modifica el contenido de una tabla en la cual afecta algn ndice, SQL SERVER debe modificar los datos de la tabla y los ndices que afectan a la misma.

Procedimientos Almacenados. Un servidor de base de datos no slo puede manipular informacin de sus tablas, sino que tiene la capacidad de interpretar cdigo en un lenguaje SQL para la realizacin de una serie de funciones u operaciones. Este cdigo SQL se puede encapsular en un procedimiento o varios y se almacena en la propia base de datos. Por lo tanto podemos escribir procedimientos en SQL para realizar las tareas deseadas sobre nuestra base de datos y almacenarlos, para ms adelante con una sencilla llamada se ejecuten nuestras instrucciones. Estos procedimientos reciben el nombre de procedimientos almacenados y puedes encontrrtelos como stored procedures, o tambin se les suele denominar simplemente como sp. A lo largo de las distintas unidades de este curso aprenderemos a trabajar desde ASP.NET 2.0 y procedimientos almacenados, viendo sus principales caractersticas y ventajas.

Vistas. Trabajando con una base de datos, nos encontramos con tareas habituales, que se repiten constantemente. De este modo es muy frecuente realizar de peticiones de datos muy similares que requieres consultas SQL semejantes. Gracias a las Vistas podemos crear en nuestras bases de datos una consultas para su uso habitual. El modo de trabajo es relativamente sencillo, se trata de unas tablas especiales donde sus datos provienen de una o mas tablas en funcin de la consulta SQL creada. Por ejemplo, podramos crear una vista para que 3

Bases de datos. simplemente mediante un nmero de socio nos devuelva toda la informacin necesitada (alquileres pendientes, alquileres realizados, etc...)

Triggers. Un trigger es un suceso que se dispara cuando se provoca un determinado evento. Es habitual vincular un trigger a un procedimiento almacenado, de modo que cuando se provoque el trigger, se ejecute el procedimiento almacenado.

Diagramas de bases de datos. Una de las herramientas que sirven de ms ayuda al diseador de bases de datos es el diagrama de bases de datos. Se trata de una herramienta grfica donde podemos situar nuestras tablas y establecer las relaciones existentes entre ellas. De este modo podemos tener una vista de la estructura genrica de nuestra base de datos.

Usuarios. En las bases de datos podemos aadir tantos usuarios como necesitemos. Y otorgarle los permisos que deseemos. De este modo, podemos limitar a un usuario para que slo tenga acceso a unas determinadas tablas, y fijar las operaciones que puede realizar sobre las mismas. SQL SERVER crea siempre un usuario por defecto, se trata del usuario dbo (database owner) que es el propietario o creador de la base de datos.

3.- SQL Server 2005.


En este apartado aprenderemos los aspectos fundamentales de SQL SERVER 2005 Express Edition que nos permitan disear nuestras bases de datos y utilizarlas ms adelanta en ASP.NET con su conjunto de objetos ADO.NET que explicaremos en las unidades 3 y 4. Por lo tanto, nos centraremos en explicar nicamente lo necesario para el desarrollo de aplicaciones web vinculadas a datos, sin profundizar excesivamente en todos los aspectos que nos ofrece SQL Server 2005, que puedo asegurarte que son suficientes como para dedicar un nico curso a este objetivo. La finalidad de este curso es programar proyectos web avanzados con bases de datos distribuidas con SQL Server 2005, veremos como incluir todas las funcionalidades que nos ofrece ASP.NET 2.0, de modo que cumplan con las necesidades que demandan hoy en da las empresas, tanto para el desarrollo de pginas web, como la gestin de la propia empresa mediante intranets (por este motivo, veremos incluso como desarrollar informes y listados, que se puedan exportar a formato word, pdf, excel, etc...). , sin embargo, la administracin de bases de datos es una tarea indispensable para convertirnos en verdaderos administradores profesionales de nuestra Intranet. De este modo podemos ejercer un completo control sobre todas las herramientas que repercuten en la intranet que hemos creado. Por este motivo, te animo desde aqu a que mejores tus conocimientos con el curso Windows Server 2003 ofrecido en el mismo catlogo de cursos, ya que es el sistema operativo de servidores ms adecuado para nuestras intranets desarrolladas con Visual Studio 2005. Del mismo modo, y para completar tu formacin, sera muy recomendable un curso de 4

Bases de datos. Administracin y mantenimiento de bases de datos con SQL Server 2005, as que aqu tienes una buena idea para sugerir un curso nuevo para esta plataforma de teleformacin. SQL Server 2005 es el servidor ms adecuado para trabajar con Visual Studio 2005, lo ms aconsejable a la hora de disear una intranet completa, es procurar en la medida de lo posible no mezclar tecnologas de diferentes fabricantes. Puesto que elegimos Microsoft .NET para el desarrollo de nuestras aplicaciones, lo lgico y recomendable es optar por Microsoft como tecnologa principal de nuestras redes. Windows Server 2003 ha evolucionado desde su versin Windows Server 2000 de tal manera que se ha convertido en el sistema operativo para servidores ms fiable y seguro del mercado, siendo el servidor preferido por la mayora de empresas, sin tener nada que envidiar a Linux, que puede llegar a ser ms transparente que los sistemas Microsoft, pero tambin ms complejos y duros de configurar. En cambio con el sistema windows, podemos conseguir los mismos efectos, con la ayuda de asistentes que garantizan la misma fiabilidad que cualquier otro sistema. Al elegir nuestro servidor de base de datos, es an ms aconsejable el uso de SQL Server 2005, ya que se encuentra completamente integrado en Visual Studio 2005, hasta el punto que desde el propio interface grfico de Visual Studio podemos realizar la mayora de las tareas de administracin de la base de datos. Gracias a esta completa integracin que nos ofrece Visual Studio, podemos administrar nuestra base de datos desde Visual Studio 2005 y basta con instalar las herramientas de configuracin de SQL Server 2005, que podemos encontrar en la pgina de Microsoft desde la cual descargamos las versiones Express de Visual Studio. Supongo que si te has interesado por este curso, sabrs ya como instalar Visual Web Developer Express Edition y SQL Server 2005 Express Edition sino es as no dudes en usar las tutoras para consultar cualquier duda sobre la instalacin y configuracin de estas dos herramientas. De todos modos os dejo aqu los dos enlaces para la descarga de las dos herramientas: Microsoft Visual Web Developer Express Edition: http://www.microsoft.com/spanish/msdn/vstudio/express/VWD/default.mspx Microsoft SQL Server 2005 Express Edition: http://www.microsoft.com/spanish/msdn/vstudio/express/SQL/default.mspx En esta ltima pgina tienes un enlace para la descarga de la herramienta SQL Server 2005 Management Studio Express. Una herramienta de administracin de bases de datos que utilizaremos en este curso, en la ltima verisn publicada, con menos limitaciones y ms avanzada: Microsoft SQL Server 2005 Express Edition with Advanced Services

Configuracin de SQL Server 2005.


Una vez instalado la versin Express de SQL Server 2005 veamos que ha quedado instalado en nuestro pc, para ello acudimos al men de inicio, todos los programas y localizamos el paquete aadido por nuestra instalacin:

Bases de datos. Vemos que dentro del paquete Microsoft SQL Server 2005, accedemos a un men con unas herramientas de configuracin, estas herramientas son:

De estas herramientas, para nuestros intereses nos basta con conocer la primera de todas (SQL Server Configuration Manager). Desde ella podremos configurar el acceso y el modo de arranque de nuestro servidor de datos. Arrancamos la aplicacin y nos encontramos la siguiente pantalla:

De todas las posibles herramientas de configuracin a las que podemos optar nosotros tenemos que destacar la primera de todas, SQL Server 2005 Services, desde la cual podremos configurar dos de los aspectos ms importantes de nuestro servidor. Por lo tanto hacemos doble click en el icono correspondiente y accedemos a los servidores de bases de datos instalados en nuestro pc. Teniendo que configurar el primero de todos:

Bases de datos.

Haciendo click con el botn derecho accedemos al men desde el cual vemos que tenemos habilitadas una serie de opciones. El primer bloque de opciones hace referencia al estado de nuestro servidor, la opcin propiedades para configuracin y la ltima una pequea ayuda que nos ofrecen en la instalacin. De nuevo, podemos comparar el servicio de base de datos de SQL Server 2005, con el servicio de pginas Web de IIS, como ya conoces, desde la configuracin de IIS tenemos la opcin de configurar una serie de propiedades, y establecer el estado del servidor de pginas web. De igual manera desde SQL Server Configuration Manager, podemos realizar estas mismas tareas sobre los servicios de base de datos. Opcin: Funcin: Para activar nuestro servidor de modo manual. Si el servidor se encuentra en funcionamiento, lgicamente esta funcin aparecer deshabilitada, lo mismo suceder con el resto de opciones. Detiene el servidor. Detiene el servidor momentneamente.

start

stop pause resume

Bases de datos. Una vez detenido el servidor mediante "pause", lo vuelve a poner en marcha. restart Detiene el servidor, e inmediatamente vuelve a activarlo.

Accedemos a una ventana para llevar a propiedades cabo varias configuraciones. ayuda Pequea ayuda sobre este servicio.

Veamos ahora como configurar ciertos aspectos del servidor desde la ventana de configuracin que aparece pulsando sobre propiedades:

La ventana aparece con la pestaa Log on, activada, desde esta ventana configuramos los permisos de acceso al servidor. Es muy importante configurar debidamente estos accesos. Primero podemos indicar el modo de la cuenta, o bien indicar que la cuenta ser la activada en nuestro servidor. En nuestro caso lo configuraremos para que el administrador de nuestro pc sea el usuario predeterminado para tener permisos de administracin.

Bases de datos. Cuando instalamos nuestros servicios en el servidor de una empresa debemos operar de diferente mtodo, creando un usuario especfico para la administracin de la base de datos, es bastante lgico crear un usuario para esta tarea, ya que es posible que modifiquemos las caractersticas de usuarios para otras tareas y para que estos cambios no afecten a SQL Server es mejor que tenga un nico usuario fijo para esta tarea. Y por ltimo tenemos a nuestra disposicin una serie de botones para actuar sobre el estado del servidor. Sigamos con la configuracin pinchando en la pestaa Service.

Destacamos la propiedad Start Mode, desde ella podemos habilitar 3 modos diferentes de activar nuestro servidor: Opcin: Funcin:

Con esta opcin, el servidor arrancar conjuntamente con el sistema, es decir, cuando nuestro sistema operativo arranque, el servidor de base de datos se activar Automatic automticamente, esta es la opcin ms habitual y recomendad, ya que nuestro servidor estar permanentemente ofreciendo sus servcios. 9

Bases de datos. Disabled Deshabilitamos el arranque del servidor. El modo de gestionar el estado del servidor ser manual por parte del desarrollador mediante las opciones que vimos anteriormente.

Manual

No entraremos a explicar las opciones avanzadas ya que no entrara dentro de los objetivos de este curso. En el siguiente video se explica detenidamente como dejar configurado nuestro servidor, presta atencin a todos los aspectos explicados.

Configuracin de SQL Server 2005

Herramienta de administracin y gestin de SQL Server 2005


Con la instalacin y la configuracin que acabamos de ver ya podramos comenzar a trabajar con las bases de datos. Para crear y gestionar nuestras tablas, procedimientos almacenados, etc nos veramos obligados a hacerlo desde Visual Studio. Pero, como ya sabes, el objetivo final del curso es el desarrollo de una aplicacin profesional, para la cual nuestra base de datos estar integrada de una gran cantidad de tablas y procedimientos almacenados. Por este motivo, nos ayudaremos de una segunda herramienta que nos permita administrar nuestra base de datos, realizar comprobaciones, y otro tipo de tareas. Esta segunda herramienta es Sql Server Management Studio Express CTP, la cual no se instala con la herramientas de configuracin y debemos descargarla por separado desde la pgina de Microsoft. Por si nunca la has descargado o instalado te dejo el enlace para descargarla, basta con descargar y seguir el asistente de instalacin, es el mismo enlace que has encontrado en el anterior capitulo. Microsoft SQL Server 2005 Express Edition with Advanced Services Para administrar las bases de datos, tenemos la posibilidad de instalar SQL Server 2005 sin aadir esta herramienta de administracin, ya que en el entorno de Visual Studio 2005, tenemos acceso a un panel para la exploracin de base de datos. Nosotros utilizaremos a lo largo del curso la herramienta de administracin especfica e independiente de SQL Server 2005 para introducir al alumno a este servidor de base de datos. De todos modos, en alguna ocasin, nos ayudaremos de Visual Studio 2005 y su explorador de base de datos para acceder a las bases de datos.

Una vez instalada esta herramienta, vemos que ha sido aadida a nuestro paquete de software de SQL Server 2005:

10

Bases de datos. Con SQL Server Management Studio hemos instalado un conjunto de herramientas para realizar todas las tareas necesarias. Nota: Si has desarrollado bases de datos con SQL Server 2000, debes saber que con SQL Server Management Studio se instalan todas las herramientas en una sla, y no en paquetes separados. Vamos a ir viendo paso a paso, como trabajar con esta herramienta. De modo que al finalizar este captulo, tengamos creada una base de datos y seas capaz ms adelante de crear tus propias bases de datos, con sus tablas bien estructuradas, etc... Por lo tanto combinaremos explicaciones sobre SQL Server Mangement Studio con otros aspectos importantes del diseo de base de datos. Comencemos con la herramienta, desde el men de inicio arrancamos la aplicacin y nos encontramos con una ventana de conexin.

Desde esta ventana, te debe recordar a lo explicado en las herramientas de configuracin. Antes de comenzar a trabajar con el administrador, debemos indicar a que servidor y con que usuario queremos conectar y entrar al administrador. Propiedad: Opciones: Funcin: El nombre del servidor, que elijamos para conectar con el administrador. Debes recordar este nombre, porque ser el que tengas que utilizar en las cadenas de conexin desde .NET. Si elegimos la opcin "Windows Authentication" estaremos conectando con la misma cuenta de usuario con la que iniciamos nuestro sistema. Trabajaremos con esta opcin a lo largo del curso.

Server name:

Elegimos el servidor con el que conectaremos.

Authentication: Windows Authentication SQL Server Authentication

11

Bases de datos. Si seleccionamos "SQL Server Authentication" deberemos indicar con que cuenta vamos a conectar e introducir la contrasea especfica para conectar con SQL Server. Con la versin SQL Server 2005 Express es ms recomendable trabjar con "Windows Authentication" ya que de otro modo podemos encontrar problemas por la limitacin de la versin gratuita. Elegidas nuestras opciones adecuadas pulsaremos en conectar, en ese momento nos muestra una ventana con el proceso de conexin y si todo ha resultado correcto, arranca nuestra herramienta de administracin.

Nota: En este curso utilizaremos esta herramienta para disear bases de datos, crear cuentas de usuario y ejecutar nuestras sentencias SQL, necesarias para la gestin de datos, mediante el administrador de consultas. Todo lo dems quedara para un curso especfico de administracin y mantenimiento de bases de datos con SQL Server 2005. Por lo tanto no te preocupes al observar que no se explican todas las caractersticas, ya que las tareas que vamos a aprender, son las necesarias para desarrollar nuestras aplicaciones web avanzadas.

Iniciar SQL Server Management Studio

12

Bases de datos. Usuarios de SQL Server 2005. En el momento de configurar la conexin con SQL Server 2005, indicamos que comenzaramos la sesin con una cuenta del sistema local. Lo cual quiere decir, que utilizamos la misma cuenta de inicio de sesin de Windows para conectarnos a nuestro servidor de datos. A lo largo de este curso, utilizaremos este modo de autenticacin, no obstante, vamos a explicar como crear cuentas de usuario de SQL Server, puesto que se trata del modo de trabajo ms seguro. Para crear cuentas de usuario, tenemos habilitada la carpeta Security, que podemos encontrar desplegando el rbol de navegacin del explorador de objetos. Dentro de esta carpeta, se almacena la carpeta Logins, la cual muestra en la pestaa principal, las cuentas de usuario que se crean automticamente por defecto al instalar SQL Server y las creadas por nosotros. Para crear una nueva cuenta, pulsamos el botn derecho del ratn sobre la carpeta Logins, y seleccionamos New.

En la siguiente ventana comienza el proceso de creacin de la cuenta. En el primer paso (General) indicamos: El nombre o Login de la cuenta. El tipo de autenticacin para esta cuenta, pudiendo elegir entre autenticacin windows o autenticacin SQL Server. Si seleccionamos autenticacin Windows, mediante el boton "Search" podemos buscar entre las cuentas de Windows que existen en nuestro sistema y seleccionar una de ellas. En este caso, vamos a crear una cuenta de SQL Server, por lo tanto la seleccionamos y le indicamos el nombre de usuario y su contrasea. Vemos que tenemos la posibilidad de forzar las polticas de 13

Bases de datos. contraseas, las cuales se aseguran que las contraseas cumplan unas determinadas condiciones de formato, de caducidad, y la posibilidad de que el usuario cambie su contrasea en el momento de iniciar por primera vez su sesin. Estas polticas se encuentras deshabilitadas en la versin Express de Sql Server 2005. Base de datos por defecto con la que trabajar el usuario, y el lenguaje por defecto.

Una vez indicadas estas propiedades, vamos a configurar los permisos de acceso de este usuario, para ello, vamos al panel que tenemos a la izquierda y seleccionamos Server Roles. Desde esta pestaa, indicamos las reglas de acceso sobre el servidor, pudiendo elegir entre permisos para administracin de procesos, creacin de bases de datos, administracin de seguridad (crear nuevos usuarios...) etc.

14

Bases de datos.

A continuacin, le indicamos los permisos especficos que tendr el usuario para cada base de datos. Para ello le indicamos a que grupo de usuarios pertenecer el usuario en una base de datos concreta.

15

Bases de datos.

Y por ltimo, podemos como administradores del servidor habilitar o deshabilitar la cuenta de usuario que estamos creando, mediante la opcin del panel izquierdo Status:

16

Bases de datos.

Una vez configuradas todas las propiedades de esta cuenta pulsamos OK para almacenar todos los cambios. Ahora podramos pulsar sobre el botn para conectarnos al servidor e introducir el login y contrasea de la cuenta SQL Server que hemos creado. Y comprobar los permisos de cuenta que hemos indicado. En el siguiente video se explica el proceso de la creacin de cuentas o instancias con SQL Server 2005.

Administrar usuarios

17

Bases de datos.

Administracin de bases de datos.


Una vez que hemos visto como realizar instancias de usuarios mediante el administrador, nos pondremos a trabajar en la creacin de bases de datos mediante esta herramienta. Ya hemos explicado que una base de datos est formada por un grupo de tablas que almacenan datos estructurados mediante registros (filas) y campos (columnas). Cada campo almacena un tipo de informacin como fechas, nmeros enteros, decimales, texto, etc... Al crear una base de datos es primordial la configuracin de la estructura de almacenamiento de datos. SQL Server 2005 administra la base de datos en varios archivos de datos y registros de transacciones. Toda la informacin y los objetos (tablas, procedimientos almacenados, triggers, vistas, etc... se almacena en esta jerarqua de archivos.

Crear bases de datos con el administrador. Lo primero que debemos tener en cuenta en el momento de crear nuestra base de datos, es verificar que el usuario creador de la base de datos debe tener permiso sobre la base de datos "master". Esta base de datos es la que utiliza SQL Server por defecto, y al crear una base de datos cualquiera, se modifican tablas que guardan informacin sobre la nueva base de datos. Durante la tarea de creacin de nuevas bases de datos, se fija el nombre, sus propiedades, y la ubicacin fsica de los archivos que la componen. Para iniciar el proceso de creacin, se despliegan las carpetas y se pulsa con el botn derecho sobre la carpeta de las bases de datos. Y seleccionamos la opcin "New database"

El resto de opciones de este men son los siguientes: 18

Bases de datos. Opcin: Funcin: Creamos una base ya existente, es decir incluimos en nuestro administrador una base de datos para poder ser administrada. Restaurar una base de datos, a partir de su copia de seguridad.

Attach

Restore Database

Restaurar archivos y grupos de archivos. Los grupos de Restore archivos son definidos por el Files and usuarios en el momento de la Filegroups creacin o de la modificacin de una base de datos. Una vez abierta la ventana para la creacin de la base de datos podemos asignar las siguientes propiedades:

19

Bases de datos.

Opcin: Datbase Name Owner Logical Name File Type

Funcin: Nombre de la base de datos. Propietario de la base de datos. Nombre lgico para los archivos que se generan junto con la base de datos. Tipo de archivo. Anteriormente hemos mencionado que en la creacin de una base de datos se generan dos tipos de archvios: el archivo principal y el de 20

Bases de datos. transacciones. Filegroup Grupo de archivos a los que pertenecen cada uno de los tipos de archivo. Tamao inicial que se reserva para la base de datos.

Initial Size

Autocrecimiento. Los archivos de datos aumentan automticamente de tamao de dos modos posibles: en Autogrowth megabytes o en porcentaje. Adems podemos restringir o no el crecimiento a una cantidad fija de megabytes. Path File Name Ruta fsica del directorio donde se almacenarn los dos tipos de ficheros. Nombre de esos ficheros.

La configuracin de estas propiedades son suficientes para la creacin de la base de datos. Una vez pulsado y aceptados los cambios, nuestra base de datos ya ha sido creada y preparada para se gestionada mediante el administrador.

Proceso de creacin de una base de datos.

Creacin de tablas.
Como ya sabemos las tablas son los objetos que almacenan los datos. A la hora de disear una base de datos, se debe hacer un estudio de que tablas sern necesarias y que tipo de datos van a almacenar. Al disear la tabla es obligatorio evaluar las columnas que vamos a aadir, el tipo de dato para cada columna, y la longitud mxima si es necesaria.

Tipos de datos. Los tipos de datos indican que valores se pueden almacenar en una determinada columna. En Sql Server tenemos los siguientes tipos de datos fundamentales: Tipo de dato: binarios Descripcin Nmeros hexadecimales.

21

Bases de datos. carcter Unicode fecha y hora Combinaciones de letras, smbolos y nmeros. Cualquier carcter que cumpla el estndar unicode Fechas, horas...

Permiten positivos, negativos, numricos enteros, decimales y fraccionales. moneda usuario Valores monetarios positivos y negativos. Tipos de datos definidos por el usuario.

Cualquiera que no se pueda especiales ubicar en los tipos mencionados.


Datos binarios.

Dentro de este grupo fundamental encontramos los siguientes tipos. Tipo de dato: binary varbinary Caractersticas. Tamao mximo de 8 KB para sus filas. Los datos varan sus dgitos hexadecimales hasta 8 KB Datos binarios de cualquier longitud superior a 8 KB, entre estos datos podemos encontrar documentos de Word, imgenes (jpeg, bmp, gif). Hay que ser muy precavidos al utilizarlo para no incrementar innecesariamente el tamao de la base de datos.

image

Datos caracter. Tipos de datos disponibles para este grupo: Tipo de dato: char Caractersticas. Longitud fija no superior a 8 Kb 22

Bases de datos. varchar text Longitud variable no superior a 8 Kb. Caracteres ASCII con longitud superior a 8 Kb.

En este mismo grupo se pueden situar los tipos de datos para caracteres unicode. Que seran nchar, nvarchar y ntext.

Datos de fecha y hora. En este grupo podemos utilizar los siguientes tipos: Tipo de dato: Caractersticas. Intervalo: 01/01/1753 31/12/9999, se necesitan 8Kb para almacenar este tipo de dato.

datetime

Intervalo: 01/01/1900 smalldatetime 06/06/2079, se necesitan 4 Kb de capacidad para este tipo. Datos Numricos. Tipos de utilizados: Tipo de dato: bigint Caractersticas. Intervalo: -2^63 y 2^63-1. Capacidad: 8 bytes. Intervalo: -2.147.483.648 y 2.147.483.647. Capacidad: 4 bytes. Intervalo: -32.768 a 32.767. Capacidad: 2 bytes. Intervalo: 0 a 255: Capacidad: 1 byte

int

smallint tinyint

Datos que almacenan hasta el decimal o dgito menos significativo de numeric los decimales. float y real Conocidos como numricos aproximados o de coma flotante, almacenan tantos decimales como permita el 23

Bases de datos. sistema binario. Datos monetarios. Los datos monetarios almacenan hasta un mximos de 4 decimales. Tipo de dato: Caractersticas. I n t e r v a l o : -922.337.203.685.477,5808 y 922.337.203.685.477,5807. Capacidad: 8 bytes.

money

Intervalo: -214.748,3648 y smallmoney 21.748,3647 Capacidad: 4 bytes. Tipos de datos especiales. En SQL Server podemos encontrar una serie de datos especiales. Tipo de dato: timestamp o rowversion bit Caractersticas. Nmero creciente en binario que almacena Representa valores TRUE o FALSE, YES o NO, 1 0

Nmero hexadecimal de 16 uniqueidentifier Bytes que identifica como nica una fila entre muchas. sql_variant Cualquier tipo de datos permitido, excepto txt, ntext, timestamp) Almacena resultados para ms adelante procesarlos.

table

Restricciones y valores permitidos.


Uno de los aspectos ms esenciales a cuidar al disear las tablas de datos son las restricciones, valores predeterminados y valores nulos. Por lo tanto, al crear nuestras tablas debemos evaluar los valores vlidos y asegurar la integridad de los datos. Para garantizar la integridad de los datos SQL Server nos ofrece los siguientes mtodos mediante restricciones: Restriccin: Funciones:

24

Bases de datos. Esta restriccin en una de las columnas (o varias) asegura que gracias a ella la fila sea nica. Recibe el nombre de clave principal o primaria. Aseguran y establecen un vnculo entre los datos de dos tablas relacionadas. Reciben el nombre de clave externa o fornea. Aseguramos que no tengamos valores duplicados en columnas que no sean claves primarias. Limita los valores permitidos. Las columnas deben contener un valor, aunque sea nulo (NULL) La columna acepta valores NULL.

PRIMARY KEY

FOREIGN KEY

UNIQUE

CHECK DEFAULT

NULL

Para usar las restricciones se debe hacer siguiendo una lgica de trabajo para no caer en errores inesperados y cumplir las reglas marcadas. No te preocupes si no entiendes ciertos conceptos, ms adelante con las relaciones entre tablas y los ejercicios prcticos terminars de comprender la teora y su utilidad. En una tabla slo est permitido colocar una columna con clave primaria (PRIMARY KEY) y lgicamente, no aceptar valores NULL. En el momento de asignar a una columna la restriccin de clave primaria, SQL Server genera un ndice nico para esta columna, y el acceso o bsquedas a esta columna ser notablemente ms rpido. Si se decide situar una restriccin PRIMARY KEY en ms de una columna, este caso es especial, ya que puede haber valores repetidos en una columna de clave primaria, siempre que la combinacin de valores de columnas de clave primaria aseguren filas nicas y diferentes. Es decir, el conjunto de valores asignados a los campos de clave primaria aseguran la identidad de un fila. Por norma general una columna FOREIGN KEY o varias suelen estar vinculadas a columnas PRIMARY KEY de otra tabla. Aunque tambin es posible vincularlas con columnas UNIQUE de otras tablas. Las restricciones UNIQUE pueden almacenar valores NULL, pero no as las claves primarias. Para controlar los valores de una columna podemos hacerlo con restricciones CHECK y FOREIGN KEY, aunque actan de diferente modo, obtenemos resultados parecidos. Podemos indicar varias restricciones CHECK a una misma columna, el orden en el que sern evaluadas, ser el mismo en el que fueron creadas. Debes tener muy claro que un valor NULL significa que no hay una entrada de dato. No es ni un cero, ni un blanco, ni tan siquiera una cadena de caracteres de longitud cero (""). Hace referencia a un valor desconocido o inexistente. No es aconsejable permitir valores NULL porque aaden complejidad a las estructuras de las tablas y complica las consultas. 25

Bases de datos. Si no permitimos valores NULL, se garantiza mejor la integridad de datos, si utilizamos claves primarias, no permite por defecto valores NULL.

Crear tablas con el administrador. Lo primero que debemos hacer es desplegar la base de datos sobre la que vamos a crear las tablas, una vez desplegadas vemos diferentes carpetas que almacenan distintos tipos de objetos. Una de estas carpetas es la carpeta Tables, pulsando con el botn derecho y seleccionando la opcin New Table.

Al seleccionar new table, se abre una nueva pestaa con la siguiente ventana, donde podemos configurar todas las propiedades de la tabla.

26

Bases de datos.

Punto 1) En esa zona podemos indicar las caractersticas fundamentales de una columna, su nombre, tipo de dato, longitud y si permite o no almacenar valores nulos. Punto 2) Es un punto ms donde configurar la posibilidad de almacenar valores nulos. Punto 3) Asigna una columna con la propiedad IDENTITY. Con esta propiedad, el campo ser un tipo numrico que aumenta su valor automticamente. El valor se va incrementando segn se vayan aadiendo registros a la tabla, el valor de incremento y el valor de inicio puede ser indicado mediante las propiedades Identity Increment e Identity Seed. Si pulsamos con el botn derecho sobre una de las columnas, nos muestran un men para poder configurar las restricciones de cada columna: 27

Bases de datos. Punto 4) Set primary key: Asigna la restriccin clave primaria a la columna seleccionada. Podemos reconocer una columna como clave primaria si aparece un pequeo icono con forma de llave a su izquierda.

Punto 5) Relationships: Establece las relaciones entre tablas, creando la columna como clave fornea o FOREIGN KEY. En el captulo Relaciones, veremos como configurar estas relaciones. Punto 6) Indexes/Keys: Configuramos la columna con la restriccin UNIQUE. Punto 7) Restricciones CHECK. Una vez definidas las columnas de la tabla, almacenamos los cambios e introducimos un nombre para identificar la tabla. Para realizar cualquier modificacin de una tabla una vez almacenada, debemos seleccionar la tabla con el botn derecho y pulsar la opcin Modify del men emergen. Esto nos llevar de nuevo a la misma ventana de creacin de tablas, para modificar las propiedades que estimemos necesarias. Por ltimo, tenemos que ver como introducir datos directamente a nuestras tablas, para ello pulsando con el botn derecho sobre la tabla en cuestin elegimos la opcin Open Table.

Al seleccionar Open Table, nos aparece una ventana para ir ingresando los datos y creando nuestras filas.

28

Bases de datos. Lgicamente nosotros no operaremos de este modo. Nuestro objetivo es programar y desarrollar los interface grficos que permitan la introduccin automtica de datos en las tablas con ASP.NET 2.0 y ADO.NET 2.0. Pero habr veces que tendremos que recurrir a la introduccin de datos en SQL Server obligatoriamente.

Relaciones.
El objetivo principal que se busca al relacionar tablas es el conseguir no tener datos repetidos o redundantes. Las relaciones entre tablas se consiguen a travs de vnculos establecidos entre una columna o varias de las tablas a relacionar. Vamos a ver un ejemplo, con el que entenders mejor la finalidad de las relaciones. Piensa en la gestin de una biblioteca, para almacenar los datos de los libros, nos creamos una tabla a la que llamaremos tabla_libros. Esta tabla debe almacenar los siguientes campos: ISBN. Titulo. Numero_pginas. Fecha_Publicacin. Nombre_Autor. Apellidos_Autor. Fecha_Nacimiento_Autor. Nacionalidad_Autor. Nombre_Editorial. Nacionalidad_Editorial. Estudiando un poco el tipo de informacin que va a almacenar nuestra tabla, vemos con claridad que los campos ISBN, Titulo y nmero de pginas son especficas para un libro, en cambio habr muchos libros que hayan sido escritos por el mismo autor y publicados por la misma editorial. Supongamos que slo trabajamos con libros de dos editoriales y de dos autores. Si tenemos 1000 libros en nuestra biblioteca, los campos Nombre_Autor, Fecha_Nacimiento_Autor, Nacionalidad_Autor, Nombre_Editorial y Nacionalidad_Editorial aparecern repetidos, ya que son campos compartidos por muchos de los libros que son creados por el mismo autor y editados por la misa editorial. Estamos duplicando informacin de un modo innecesario. La solucin ms eficaz es situar a los autores en una tabla independiente para ellos y a las editoriales en otra tabla. De este modo, y siguiendo con las suposiciones de nuestro ejemplo, si nicamente trabajamos con dos autores y con dos editoriales, estas tablas nuevas slo tendrn dos registros. Y bastara con buscar el modo de relacionar a cada libro con su correspondiente autor y su correspondiente editorial. tabla_libros ISBN Titulo Numero_Paginas codig_autor codigo_editorial tabla_autores Nombre_Autor Apellidos_Autor Fecha_Nacimientos_Autor Nacionalidad_Autor codigo_autor tabla_editoriales Nombre_Editorial Nacionalidad_Editorial codigo_editorial

Por lo tanto debemos crear de algn modo unos punteros que apunten a la tabla autores y otro para la tabla editoriales, para conocer en todo momento el autor y la editorial de cada libro. De este modo, aadimos un 29

Bases de datos. campo a cada tabla, para que sirva de vnculo entre ellas (codigo_autor y codigo_editorial). Veremos como hacerlo ms adelante, de momento qudate con la idea los problemas planteados y las soluciones que vamos adoptando y explicando. En el momento de relacionar las tablas podemos obligar a que se sincronicen mediante relaciones de integridad, de modo que por ejemplo un libro siempre apunte a una editorial que exista en nuestra tabla de editoriales. Las relaciones se asocian a columnas clave y suelen identificarse con el mismo nombre. Por norma general (no siempre es as), la relacin vincula la clave principal de una tabla (recuerda que la clave principal asegura que un registro sea nico) con la clave externa (FOREIGN KEY) de la otra tabla. Existen los siguientes tipos de relacin: Relacin uno a varios. Relacin varios a varios. Relacin uno a uno. La ms utilizada es la primera de ellas, Relacin uno a varios. Que indica que un mismo registro aparece varias veces vinculado en otra tabla y que sin embargo asegura que el registro de la tabla destino slo aparece una vez. No es tan complicado como parece, en nuestro ejemplo, sabemos que una editorial aparece vinculada para varios libros, este es un buen ejemplo de relacin uno a varios. La relacin varios a varios, permite que la tabla1 tenga varios registros que coincidan en la tabla2 y viceversa. Para estas relaciones se utilizan tablas auxiliares "puente" entre las relaciones de las tablas. Y por ltimo la relacin uno a uno, exige que una fila de la tabla1 slo pueda coincidir con una fila de la tabla2 y viceversa. Este tipo de relacin a penas es utilizado. Para configurar las relaciones con SQL Server 2005, debemos pinchar con el botn derecho sobre la columna deseada y seleccionar la opcin RelationShips:

30

Bases de datos.

Pulsamos sobre el botn Add para aadir una nueva relacin. Las propiedades que podemos configurar desde esta ventana son las siguientes:

Propiedad

Funcin Comprueba los datos existentes en el momento de la creacin. Garantiza la restriccin de los datos que ya existen cuando se crea la clave externa en la tabla. Exige relacin para la duplicacin. Aplica esta restriccin cuando copiemos esta tabla en otra base de datos. Exige la restriccin de clave externa. Permite colocar reglas para la actualizacin y la eliminacin de datos en cascada. Es decir, una modificacin en la clave principal provoca la modificacin automtica en las claves forneas.

Check Exisitng Data On Creation Or Re-Enabling

Enforce For Replication Enforce Foreign Key Constraint

INSERT And UPDATE Sepecification

Diagramas de bases de datos. Los diagramas de bases de datos permiten obtener una vista de la estructura de la base de datos que hemos creado. De este modo podremos visualizar las tablas creadas y sus relaciones. Podemos tener todos los diagramas de bases de datos que deseemos, en cada diagrama podemos mostrar la 31

Bases de datos. totalidad de las tablas o bien un determinado nmero. Una misma tabla puede aparecer en varios diagramas. Desde los diagramas podemos crear nuevas tablas y realizar modificaciones en ellas. Pero para esta tarea se aconseja utilizar los mtodos que hemos explicado hasta ahora por ser ms claros y extensos. La principal ventaja que nos ofrecen los diagramas es el la comodidad de poder realizar y estudiar las relaciones entre tablas de un modo visual, lo cual ofrece una informacin muy clara de cual es la estructura de las relaciones creadas. De este modo, podemos identificar rpidamente el tipo de relacin existente entre dos tablas. Dos tablas relacionadas aparecen unidas por lneas y en el extremo de estas lneas tenemos unos iconos que nos indican el tipo de relacin. Adems, el estilo de estas lneas ofrece informacin sobre el tipo de sincronizacin o de las restricciones establecidas en la relacin. Iconos. ----------------------------------------Tipo de relacin. Relacin uno a varios. Relacin varios a varios. Relacin uno a uno.

Los diagramas de bases de datos se almacenan en la carpeta DataBase Diagram, para crear un nuevo diagrama pulsamos con el botn derecho y seleccionamos New DataBase Diagram. Una vez abierta la ventana para los diagramas, podemos pulsar con el botn derecho en una zona libre de la ventana y se nos muestra un men para realizar la mayora de operaciones posibles:

Opciones. New Table... Add Table... New Text Annotation

Funcin. Crear una nueva tabla en la base de datos. Aadir una tabla existente al diagrama. Permite explicar "notas" o comentarios de texto en el diagrama. 32

Bases de datos. Select All Show Relationship Labels Selecciona todos los objetos de las tablas. Muestra etiquetas con los identificadores de las relaciones. Reordena nuestras tablas de modo automtico de forma que las lneas de relaciones no se entrecrucen para ofrecer mayor claridad. Zoom de la vista, permite alejar o acercar las vistas. Muestra el diagrama dividido por pginas para ofrecer una vista previa de como quedara una impresin de las pginas. Actualiza la divisin de pginas. Copia el diagrama de base de datos en el portapales.

Arrange Tables

Zoom

View Page Breaks Recalculate Page Breaks Copy Diagram to Clipboard

Para establecer una relacin en el diagrama, es tan sencillo como seleccionar la columna de una tabla y arrastrar el ratn hasta la tabla con la que se desea vincular, en funcin de la restriccin de estas columnas SQL Server nos ofrece por defecto el tipo de relacin ms comn para esas columnas. En los siguientes videos se toma como base el ejemplo de la biblioteca con las tablas libros, autores y editoriales, en ellos podrs aprender el proceso completo de creacin de tablas, relaciones, diagramas de bases de datos e insercin de registros,

Crear Tablas

Diseo de Diagramas de Bases de Datos

Insertar Registros en las Tablas

33

Ejercicios
Ejercicio 1
Disea una base de datos que puede administrar los alumnos matriculados a una serie de cursos programacin. Esta base de datos debe ser capaz de organizar los siguientes conceptos: Alumnos. Tutores. Cursos. Unidades. Notas. Cada curso esta organizado por un nmero sin determinar de unidades. Un curso, nicamente es impartido por un slo profesor, pero un profesor puede impartir diferentes cursos. Un alumno, slo puede estar matriculado a un nico curso a la vez. Crea las tablas que creas suficientes (no es necesario controlar todo tipo de informacin), el objetivo es practicar con las relaciones entre tablas. El ejercicio tiene varias soluciones, en funcin del uso que se vaya a realizar con las tablas. Simplemente debes ser capaz de aplicar tu idea de funcionamiento, en una base de datos. Por este motivo es posible que la administracin de tu base de datos, sea diferente a la que te descargues de la leccin.

34

Você também pode gostar