Base de Datos

36
Bases de datos. © ADR Infor SL

Transcript of Base de Datos

  • Bases de datos. ADR Infor SL

  • IndiceN-1 Bases de datos.............................................................................................................................................1

    1.- Introduccin........................................................................................................................................12.- Estructura de las bases de datos..........................................................................................................1

    Definicin..........................................................................................................................................1Trminos y conceptos........................................................................................................................2

    3.- SQL Server 2005................................................................................................................................4Configuracin de SQL Server 2005..................................................................................................5Herramienta de administracin y gestin de SQL Server 2005......................................................10Administracin de bases de datos...................................................................................................18Creacin de tablas...........................................................................................................................21Restricciones y valores permitidos..................................................................................................24Relaciones.......................................................................................................................................29

    Ejercicios............................................................................................................................................................34Ejercicio 1..............................................................................................................................................34

    Bases de datos.

    i

  • N-1 Bases de datos.

    1.- Introduccin.En cualquier aplicacin de software (o al menos su mayora) es requisito imprescindible el almacenamiento deinformacin para posteriormente ser mostrada, manipulada o eliminada.

    Visual Studio 2005 nos ofrece todas las herramientas necesarias para el trabajo con bases de datos. Por lotanto podemos trabajar, con cualquier tipo de base de datos, sean de nivel usuario, como Access o se alojen enservidores, 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 deoficinas muy pequeas. Su uso se recomienda para un trabajo personal. Si tenemos pensado un desarrollomultiusuario sobre bases de datos, es ms que recomendable descartar Access como almacn de nuestrosdatos. Una base de datos local, no nos ofrece ni la estabilidad, ni la eficacia, ni la seguridad necesarias para unproyecto 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 tenemosaadidas 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 laversin de SQL SERVER 2005 Express Edition, ofrecindonos la posibilidad de aprender a utilizar unservidor de bases de datos potente y fiable. El nico lmite de la edicin gratuita frente a ediciones de pago, esque 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 slolas caractersticas ms importantes para conseguir resultados profesionales.

    Por este motivo, suponemos que trabajaremos con la versin gratuita de SQL SERVER 2005 y noscentraremos en estas bases de datos, sin entrar a conocer el resto. No sera lgico, que teniendo accesogratuito a una de los servidores de bases de datos ms potente del mercado, limitsemos este curso al trabajocon 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 nose ajusta a la realidad, una base de datos es algo ms que el "lugar" donde se almacenan nuestros datos. Enellas, almacenamos no slo informacin, sino tambin una serie de objetos, procedimientos y reglas, quegarantizan 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 seva a obtener el mximo rendimiento al hora de procesar la informacin. Para ello, contamos con una serie de

    1

  • 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 dedatos, en forma de Procedimientos almacenados, de esta forma, almacenamos no slo los datos, sinotambin 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 lospermisos 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 derecibir 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 funcinde las peticiones que le realizar nuestras aplicaciones.

    Para que entiendas mejor este concepto, piensa en Internet Information Server. Como ya sabes el IIS esnuestro servidor de pginas web, y al igual que un RDBMS trabaja con los datos, el IIS es el encargado degestionar 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 conceptosque 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 sulugar de destino., el propio SQL SERVER, crear la estructura lgica con los archivos necesarios. Estosarchivos 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 conlos 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 deambos. Es frecuente encontrarse, con que estos dos archivos se encuentran en unidades de almacenamientodistintas. Tanto por seguridad, como por rendimiento, de modo que si falla una de las unidades no perdamostodos los archivos.

    Tablas, registros y campos.

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

    Bases de datos.

    2

  • Una tabla, es un conjunto de informacin con caractersticas comunes. Es decir, almacena informacin sobreun concepto en comn. Por ejemplo en la base de datos de un video club, existir una tabla que guardeinformacin 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 latabla. En el ejemplo de la base de datos del video club, un registro es cada uno de los socios almacenados enla tabla socios.

    A su vez, cada registro esta formado por una unidades fundamentales denominadas campos. Un campo es launidad de informacin que interesa almacenar para cada registro. En nuestro ejemplo, nuestros registrosestaran 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 hastamillones de registros. En estos casos el acceso a determinada informacin, puede ser lento y costoso. Habroperaciones de consulta que obligue a recorrer la tabla entera, desde su primer registro hasta el ltimo, estorepercute directamente en nuestra aplicacin, convirtindola en una aplicacin lenta y pesada. De ah laimportancia 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 quepermite al servidor acelerar sus consultas. El ndice no slo sirve para aumentar la velocidad, sirve ademspara fijar un orden en nuestro registros, tener registros nicos, etc, de modo que cuando se modifica elcontenido de una tabla en la cual afecta algn ndice, SQL SERVER debe modificar los datos de la tabla y losndices 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 capacidadde interpretar cdigo en un lenguaje SQL para la realizacin de una serie de funciones u operaciones. Estecdigo SQL se puede encapsular en un procedimiento o varios y se almacena en la propia base de datos. Porlo tanto podemos escribir procedimientos en SQL para realizar las tareas deseadas sobre nuestra base de datosy almacenarlos, para ms adelante con una sencilla llamada se ejecuten nuestras instrucciones.

    Estos procedimientos reciben el nombre de procedimientos almacenados y puedes encontrrtelos comostored 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 yprocedimientos almacenados, viendo sus principales caractersticas y ventajas.

    Vistas.

    Trabajando con una base de datos, nos encontramos con tareas habituales, que se repiten constantemente. Deeste modo es muy frecuente realizar de peticiones de datos muy similares que requieres consultas SQLsemejantes. 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 deuna o mas tablas en funcin de la consulta SQL creada. Por ejemplo, podramos crear una vista para que

    Bases de datos.

    3

  • simplemente mediante un nmero de socio nos devuelva toda la informacin necesitada (alquilerespendientes, alquileres realizados, etc...)

    Triggers.

    Un trigger es un suceso que se dispara cuando se provoca un determinado evento. Es habitual vincular untrigger a un procedimiento almacenado, de modo que cuando se provoque el trigger, se ejecute elprocedimiento 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 dedatos.

    Se trata de una herramienta grfica donde podemos situar nuestras tablas y establecer las relaciones existentesentre 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 quedeseemos. 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 elpropietario 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 nospermitan disear nuestras bases de datos y utilizarlas ms adelanta en ASP.NET con su conjunto de objetosADO.NET que explicaremos en las unidades 3 y 4. Por lo tanto, nos centraremos en explicar nicamente lonecesario para el desarrollo de aplicaciones web vinculadas a datos, sin profundizar excesivamente en todoslos aspectos que nos ofrece SQL Server 2005, que puedo asegurarte que son suficientes como para dedicar unnico curso a este objetivo.

    La finalidad de este curso es programar proyectos web avanzados con bases de datos distribuidas con SQLServer 2005, veremos como incluir todas las funcionalidades que nos ofrece ASP.NET 2.0, de modo quecumplan con las necesidades que demandan hoy en da las empresas, tanto para el desarrollo de pginasweb, como la gestin de la propia empresa mediante intranets (por este motivo, veremos incluso comodesarrollar informes y listados, que se puedan exportar a formato word, pdf, excel, etc...). , sin embargo, laadministracin de bases de datos es una tarea indispensable para convertirnos en verdaderos administradoresprofesionales de nuestra Intranet. De este modo podemos ejercer un completo control sobre todas lasherramientas que repercuten en la intranet que hemos creado. Por este motivo, te animo desde aqu a quemejores tus conocimientos con el curso Windows Server 2003 ofrecido en el mismo catlogo de cursos, yaque es el sistema operativo de servidores ms adecuado para nuestras intranets desarrolladas con VisualStudio 2005. Del mismo modo, y para completar tu formacin, sera muy recomendable un curso de

    Bases de datos.

    4

  • Administracin y mantenimiento de bases de datos con SQL Server 2005, as que aqu tienes una buenaidea 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 lahora de disear una intranet completa, es procurar en la medida de lo posible no mezclar tecnologas dediferentes fabricantes. Puesto que elegimos Microsoft .NET para el desarrollo de nuestras aplicaciones, lolgico 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 haconvertido en el sistema operativo para servidores ms fiable y seguro del mercado, siendo el servidorpreferido por la mayora de empresas, sin tener nada que envidiar a Linux, que puede llegar a ser mstransparente que los sistemas Microsoft, pero tambin ms complejos y duros de configurar. En cambio con elsistema windows, podemos conseguir los mismos efectos, con la ayuda de asistentes que garantizan la mismafiabilidad que cualquier otro sistema.

    Al elegir nuestro servidor de base de datos, es an ms aconsejable el uso de SQL Server 2005, ya que seencuentra completamente integrado en Visual Studio 2005, hasta el punto que desde el propio interfacegrfico 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 datosdesde Visual Studio 2005 y basta con instalar las herramientas de configuracin de SQL Server 2005, quepodemos encontrar en la pgina de Microsoft desde la cual descargamos las versiones Express de VisualStudio. Supongo que si te has interesado por este curso, sabrs ya como instalar Visual Web DeveloperExpress Edition y SQL Server 2005 Express Edition sino es as no dudes en usar las tutoras para consultarcualquier duda sobre la instalacin y configuracin de estas dos herramientas. De todos modos os dejo aqulos 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 ManagementStudio Express. Una herramienta de administracin de bases de datos que utilizaremos en este curso, en laltima 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 nuestrainstalacin:

    Bases de datos.

    5

  • Vemos que dentro del paquete Microsoft SQL Server 2005, accedemos a un men con unas herramientas deconfiguracin, estas herramientas son:

    De estas herramientas, para nuestros intereses nos basta con conocer la primera de todas (SQL ServerConfiguration Manager). Desde ella podremos configurar el acceso y el modo de arranque de nuestro servidorde 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 laprimera de todas, SQL Server 2005 Services, desde la cual podremos configurar dos de los aspectos msimportantes de nuestro servidor.

    Por lo tanto hacemos doble click en el icono correspondiente y accedemos a los servidores de bases de datosinstalados en nuestro pc. Teniendo que configurar el primero de todos:

    Bases de datos.

    6

  • Haciendo click con el botn derecho accedemos al men desde el cual vemos que tenemos habilitadas unaserie de opciones.

    El primer bloque de opciones hace referencia al estado de nuestro servidor, la opcin propiedades paraconfiguracin y la ltima una pequea ayuda que nos ofrecen en la instalacin. De nuevo, podemos compararel 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 estadodel servidor de pginas web. De igual manera desde SQL Server Configuration Manager, podemos realizarestas mismas tareas sobre los servicios de base de datos.

    Opcin: Funcin:

    start

    Para activar nuestroservidor de modomanual. Si el servidorse encuentra enfuncionamiento,lgicamente estafuncin aparecerdeshabilitada, lomismo suceder conel resto de opciones.

    stop Detiene el servidor.

    pause Detiene el servidormomentneamente.

    resume

    Bases de datos.

    7

  • Una vez detenido elservidor mediante"pause", lo vuelve aponer en marcha.

    restartDetiene el servidor, einmediatamentevuelve a activarlo.

    propiedades

    Accedemos a unaventana para llevar acabo variasconfiguraciones.

    ayuda Pequea ayuda sobreeste servicio.

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

    La ventana aparece con la pestaa Log on, activada, desde esta ventana configuramos los permisos de accesoal 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 nuestroservidor. En nuestro caso lo configuraremos para que el administrador de nuestro pc sea el usuariopredeterminado para tener permisos de administracin.

    Bases de datos.

    8

  • 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 usuariopara esta tarea, ya que es posible que modifiquemos las caractersticas de usuarios para otras tareas y para queestos 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 nuestroservidor:

    Opcin: Funcin:

    Automatic

    Con esta opcin, el servidorarrancar conjuntamente con elsistema, es decir, cuandonuestro sistema operativoarranque, el servidor de basede datos se activarautomticamente, esta es laopcin ms habitual yrecomendad, ya que nuestroservidor estarpermanentemente ofreciendosus servcios.

    Bases de datos.

    9

  • Disabled Deshabilitamos el arranque delservidor.

    Manual

    El modo de gestionar el estadodel servidor ser manual porparte del desarrolladormediante las opciones quevimos anteriormente.

    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 atodos los aspectos explicados.

    Configuracin de SQL Server 2005

    Herramienta de administracin y gestin de SQL Server 2005Con la instalacin y la configuracin que acabamos de ver ya podramos comenzar a trabajar con las bases dedatos. Para crear y gestionar nuestras tablas, procedimientos almacenados, etc nos veramos obligados ahacerlo desde Visual Studio.

    Pero, como ya sabes, el objetivo final del curso es el desarrollo de una aplicacin profesional, para la cualnuestra base de datos estar integrada de una gran cantidad de tablas y procedimientos almacenados. Por estemotivo, 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 laherramientas de configuracin y debemos descargarla por separado desde la pgina de Microsoft. Por si nuncala has descargado o instalado te dejo el enlace para descargarla, basta con descargar y seguir el asistente deinstalacin, 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 estaherramienta de administracin, ya que en el entorno de Visual Studio 2005, tenemos acceso a un panel para laexploracin de base de datos. Nosotros utilizaremos a lo largo del curso la herramienta de administracinespecfica e independiente de SQL Server 2005 para introducir al alumno a este servidor de base de datos. Detodos modos, en alguna ocasin, nos ayudaremos de Visual Studio 2005 y su explorador de base de datos paraacceder a las bases de datos.

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

    Bases de datos.

    10

  • Con SQL Server Management Studio hemos instalado un conjunto de herramientas para realizar todas lastareas necesarias.

    Nota: Si has desarrollado bases de datos con SQL Server 2000, debes saber que con SQL ServerManagement 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 sustablas bien estructuradas, etc... Por lo tanto combinaremos explicaciones sobre SQL Server MangementStudio 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 conuna ventana de conexin.

    Desde esta ventana, te debe recordar a lo explicado en las herramientas de configuracin. Antes de comenzara trabajar con el administrador, debemos indicar a que servidor y con que usuario queremos conectar y entraral administrador.

    Propiedad: Opciones: Funcin:

    Server name: Elegimos el servidor con el queconectaremos.

    El nombre del servidor, que elijamospara conectar con el administrador.Debes recordar este nombre, porqueser el que tengas que utilizar en lascadenas de conexin desde .NET.

    Authentication:Windows Authentication SQL Server Authentication

    Si elegimos la opcin "WindowsAuthentication" estaremos conectandocon la misma cuenta de usuario con laque in ic iamos nues t ro s i s t ema .Trabajaremos con esta opcin a lolargo del curso.

    Bases de datos.

    11

  • Si seleccionamos "SQL ServerAuthentication" deberemos indicarcon que cuenta vamos a conectar eintroducir la contrasea especficapara conectar con SQL Server. Con laversin SQL Server 2005 Express esms recomendable trabjar con"Windows Authentication" ya que deotro modo podemos encontrarproblemas por la limitacin de laversin gratuita.

    Elegidas nuestras opciones adecuadas pulsaremos en conectar, en ese momento nos muestra una ventana conel 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 yejecutar 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 conSQL Server 2005. Por lo tanto no te preocupes al observar que no se explican todas las caractersticas, yaque las tareas que vamos a aprender, son las necesarias para desarrollar nuestras aplicaciones web avanzadas.

    Iniciar SQL Server Management Studio

    Bases de datos.

    12

  • Usuarios de SQL Server 2005.

    En el momento de configurar la conexin con SQL Server 2005, indicamos que comenzaramos la sesin conuna cuenta del sistema local. Lo cual quiere decir, que utilizamos la misma cuenta de inicio de sesin deWindows para conectarnos a nuestro servidor de datos.

    A lo largo de este curso, utilizaremos este modo de autenticacin, no obstante, vamos a explicar como crearcuentas 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 elrbol de navegacin del explorador de objetos. Dentro de esta carpeta, se almacena la carpeta Logins, la cualmuestra en la pestaa principal, las cuentas de usuario que se crean automticamente por defecto al instalarSQL Server y las creadas por nosotros.

    Para crear una nueva cuenta, pulsamos el botn derecho del ratn sobre la carpeta Logins, y seleccionamosNew.

    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 autenticacinSQL Server. Si seleccionamos autenticacin Windows, mediante el boton "Search" podemos buscarentre 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 elnombre de usuario y su contrasea. Vemos que tenemos la posibilidad de forzar las polticas de

    Bases de datos.

    13

  • contraseas, las cuales se aseguran que las contraseas cumplan unas determinadas condiciones deformato, de caducidad, y la posibilidad de que el usuario cambie su contrasea en el momento deiniciar por primera vez su sesin. Estas polticas se encuentras deshabilitadas en la versin Express deSql 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 paraadministracin de procesos, creacin de bases de datos, administracin de seguridad (crear nuevos usuarios...)etc.

    Bases de datos.

    14

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

    Bases de datos.

    15

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

    Bases de datos.

    16

  • 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 lacuenta 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

    Bases de datos.

    17

  • Administracin de bases de datos.

    Una vez que hemos visto como realizar instancias de usuarios mediante el administrador, nos pondremos atrabajar 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 datosestructurados mediante registros (filas) y campos (columnas). Cada campo almacena un tipo de informacincomo fechas, nmeros enteros, decimales, texto, etc...

    Al crear una base de datos es primordial la configuracin de la estructura de almacenamiento de datos. SQLServer 2005 administra la base de datos en varios archivos de datos y registros de transacciones. Toda lainformacin y los objetos (tablas, procedimientos almacenados, triggers, vistas, etc... se almacena en estajerarqua 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 elusuario creador de la base de datos debe tener permiso sobre la base de datos "master". Esta base de datos esla que utiliza SQL Server por defecto, y al crear una base de datos cualquiera, se modifican tablas que guardaninformacin 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 fsicade los archivos que la componen.

    Para iniciar el proceso de creacin, se despliegan las carpetas y se pulsa con el botn derecho sobre la carpetade las bases de datos. Y seleccionamos la opcin "New database"

    El resto de opciones de este men son los siguientes:

    Bases de datos.

    18

  • Opcin: Funcin:

    Attach

    Creamos una base ya existente,es decir incluimos en nuestroadministrador una base ded a t o s p a r a p o d e r s e radministrada.

    RestoreDatabase

    Restaurar una base de datos, apartir de su copia de seguridad.

    RestoreFiles andFilegroups

    Restaurar archivos y grupos dearchivos. Los grupos dearchivos son definidos por elusuarios en el momento de lacreacin o de la modificacinde una base de datos.

    Una vez abierta la ventana para la creacin de la base de datos podemos asignar las siguientes propiedades:

    Bases de datos.

    19

  • Opcin: Funcin:

    DatbaseName Nombre de la base de datos.

    Owner Propietario de la base de datos.

    LogicalName

    Nombre lgico para losarchivos que se generan juntocon la base de datos.

    File Type Tipo de archivo.Anteriormente hemosmencionado que en la creacinde una base de datos segeneran dos tipos de archvios:el archivo principal y el de

    Bases de datos.

    20

  • transacciones.

    FilegroupGrupo de archivos a los quepertenecen cada uno de lostipos de archivo.

    Initial Size Tamao inicial que se reservapara la base de datos.

    Autogrowth

    Autocrecimiento. Los archivosde datos aumentanautomticamente de tamao dedos modos posibles: enmegabytes o en porcentaje.Adems podemos restringir ono el crecimiento a unacantidad fija de megabytes.

    PathRuta fsica del directorio dondese almacenarn los dos tipos deficheros.

    File Name Nombre de esos ficheros.La configuracin de estas propiedades son suficientes para la creacin de la base de datos. Una vez pulsado yaceptados los cambios, nuestra base de datos ya ha sido creada y preparada para se gestionada mediante eladministrador.

    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 latabla es obligatorio evaluar las columnas que vamos a aadir, el tipo de dato para cada columna, y la longitudmxima 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 dedato: Descripcin

    binarios Nmeros hexadecimales.

    Bases de datos.

    21

  • carcter Combinaciones de letras,smbolos y nmeros.

    Unicode Cualquier carcter que cumplael estndar unicode

    fecha yhora Fechas, horas...

    numricosPermiten positivos, negativos,enteros, decimales yfraccionales.

    moneda Valores monetarios positivos ynegativos.

    usuario Tipos de datos definidos por elusuario.

    especialesCualquiera que no se puedaubicar en los tiposmencionados.

    Datos binarios.

    Dentro de este grupo fundamental encontramos los siguientes tipos.

    Tipo dedato: Caractersticas.

    binary Tamao mximo de 8 KB parasus filas.

    varbinary Los datos varan sus dgitoshexadecimales hasta 8 KB

    image

    Datos binarios de cualquierlongitud superior a 8 KB, entreestos datos podemos encontrardocumentos de Word,imgenes (jpeg, bmp, gif). Hayque ser muy precavidos alutilizarlo para no incrementarinnecesariamente el tamao dela base de datos.

    Datos caracter.

    Tipos de datos disponibles para este grupo:

    Tipo dedato: Caractersticas.

    char Longitud fija no superior a 8Kb

    Bases de datos.

    22

  • varchar Longitud variable no superior a8 Kb.

    textCaracteres ASCII con longitudsuperior a 8 Kb.

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

    Datos de fecha y hora.

    En este grupo podemos utilizar los siguientes tipos:

    Tipo dedato: Caractersticas.

    datetime

    I n t e r v a l o : 0 1 / 0 1 / 1 7 5 3 -31/12/9999, se necesitan 8Kbpara almacenar este tipo dedato.

    smalldatetimeIntervalo: 01/01/1900 -06/06/2079, se necesitan 4 Kbde capacidad para este tipo.

    Datos Numricos.

    Tipos de utilizados:

    Tipo dedato: Caractersticas.

    bigint Intervalo: -2^63 y 2^63-1.Capacidad: 8 bytes.

    intIntervalo: -2.147.483.648 y2.147.483.647. Capacidad: 4bytes.

    smallint Intervalo: -32.768 a 32.767.Capacidad: 2 bytes.

    tinyint Intervalo: 0 a 255: Capacidad:1 byte

    decimal onumeric

    Datos que almacenan hasta eldgito menos significativo delos decimales.

    float yreal

    Conocidos como numricosaproximados o de comaflotante, almacenan tantosdecimales como permita el

    Bases de datos.

    23

  • sistema binario.

    Datos monetarios.

    Los datos monetarios almacenan hasta un mximos de 4 decimales.

    Tipo dedato: Caractersticas.

    money

    I n t e r v a l o :-922.337.203.685.477,5808 y922.337.203.685.477,5807.Capacidad: 8 bytes.

    smallmoneyIntervalo: -214.748,3648 y21.748,3647 Capacidad: 4bytes.

    Tipos de datos especiales.

    En SQL Server podemos encontrar una serie de datos especiales.

    Tipo de dato: Caractersticas.

    timestamp orowversion

    Nmero creciente en binarioque almacena

    bit Representa valores TRUE oFALSE, YES o NO, 1 0

    uniqueidentifierNmero hexadecimal de 16Bytes que identifica comonica una fila entre muchas.

    sql_variantCualquier tipo de datospermitido, excepto txt, ntext,timestamp)

    table Almacena resultados para msadelante procesarlos.

    Restricciones y valores permitidos.

    Uno de los aspectos ms esenciales a cuidar al disear las tablas de datos son las restricciones, valorespredeterminados 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 medianterestricciones:

    Restriccin: Funciones:

    Bases de datos.

    24

  • PRIMARYKEY

    Esta restriccin en una de lascolumnas (o varias) aseguraque gracias a ella la fila seanica. Recibe el nombre declave principal o primaria.

    FOREIGNKEY

    Aseguran y establecen unvnculo entre los datos de dostablas relacionadas. Reciben elnombre de clave externa ofornea.

    UNIQUEAseguramos que no tengamosvalores duplicados encolumnas que no sean clavesprimarias.

    CHECK Limita los valores permitidos.

    DEFAULTLas columnas deben contenerun valor, aunque sea nulo(NULL)

    NULL La columna acepta valoresNULL.Para usar las restricciones se debe hacer siguiendo una lgica de trabajo para no caer en errores inesperados ycumplir las reglas marcadas. No te preocupes si no entiendes ciertos conceptos, ms adelante con lasrelaciones 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, SQLServer genera un ndice nico para esta columna, y el acceso o bsquedas a esta columna ser notablementems rpido.

    Si se decide situar una restriccin PRIMARY KEY en ms de una columna, este caso es especial, ya quepuede haber valores repetidos en una columna de clave primaria, siempre que la combinacin de valores decolumnas de clave primaria aseguren filas nicas y diferentes. Es decir, el conjunto de valores asignados a loscampos de clave primaria aseguran la identidad de un fila.

    Por norma general una columna FOREIGN KEY o varias suelen estar vinculadas a columnas PRIMARYKEY 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 restriccionesCHECK 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 unblanco, ni tan siquiera una cadena de caracteres de longitud cero (""). Hace referencia a un valor desconocidoo inexistente. No es aconsejable permitir valores NULL porque aaden complejidad a las estructuras de lastablas y complica las consultas.

    Bases de datos.

    25

  • Si no permitimos valores NULL, se garantiza mejor la integridad de datos, si utilizamos claves primarias, nopermite 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 vezdesplegadas vemos diferentes carpetas que almacenan distintos tipos de objetos. Una de estas carpetas es lacarpeta 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 todaslas propiedades de la tabla.

    Bases de datos.

    26

  • 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 queaumenta su valor automticamente. El valor se va incrementando segn se vayan aadiendo registros a latabla, el valor de incremento y el valor de inicio puede ser indicado mediante las propiedades IdentityIncrement e Identity Seed.

    Si pulsamos con el botn derecho sobre una de las columnas, nos muestran un men para poder configurar lasrestricciones de cada columna:

    Bases de datos.

    27

  • Punto 4)

    Set primary key: Asigna la restriccin clave primaria a la columna seleccionada. Podemos reconocer unacolumna 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 FOREIGNKEY. 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 paraidentificar la tabla.

    Para realizar cualquier modificacin de una tabla una vez almacenada, debemos seleccionar la tabla con elbotn derecho y pulsar la opcin Modify del men emergen. Esto nos llevar de nuevo a la misma ventana decreacin 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 elbotn 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.

    Bases de datos.

    28

  • Lgicamente nosotros no operaremos de este modo. Nuestro objetivo es programar y desarrollar los interfacegrficos 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 lastablas 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 quellamaremos 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 loscampos ISBN, Titulo y nmero de pginas son especficas para un libro, en cambio habr muchos libros quehayan sido escritos por el mismo autor y publicados por la misma editorial. Supongamos que slo trabajamoscon libros de dos editoriales y de dos autores. Si tenemos 1000 libros en nuestra biblioteca, los camposNombre_Autor, Fecha_Nacimiento_Autor, Nacionalidad_Autor, Nombre_Editorial y Nacionalidad_Editorialaparecern repetidos, ya que son campos compartidos por muchos de los libros que son creados por el mismoautor 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 otratabla. De este modo, y siguiendo con las suposiciones de nuestro ejemplo, si nicamente trabajamos con dosautores y con dos editoriales, estas tablas nuevas slo tendrn dos registros. Y bastara con buscar el modo derelacionar a cada libro con su correspondiente autor y su correspondiente editorial.

    tabla_libros tabla_autores tabla_editoriales

    ISBN Nombre_Autor Nombre_Editorial

    Titulo Apellidos_Autor Nacionalidad_Editorial

    Numero_Paginas Fecha_Nacimientos_Autor codigo_editorial

    codig_autor Nacionalidad_Autor

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

    Bases de datos.

    29

  • campo a cada tabla, para que sirva de vnculo entre ellas (codigo_autor y codigo_editorial). Veremos comohacerlo ms adelante, de momento qudate con la idea los problemas planteados y las soluciones que vamosadoptando y explicando.

    En el momento de relacionar las tablas podemos obligar a que se sincronicen mediante relaciones deintegridad, de modo que por ejemplo un libro siempre apunte a una editorial que exista en nuestra tabla deeditoriales.

    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 aseguraque 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 aparecevarias veces vinculado en otra tabla y que sin embargo asegura que el registro de la tabla destino slo apareceuna vez. No es tan complicado como parece, en nuestro ejemplo, sabemos que una editorial aparece vinculadapara 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 latabla2 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 columnadeseada y seleccionar la opcin RelationShips:

    Bases de datos.

    30

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

    Propiedad Funcin

    Check Exisitng Data On CreationOr Re-Enabling

    Comprueba los datos existentes en elmomento de la creacin. Garantiza larestriccin de los datos que ya existencuando se crea la clave externa en la

    tabla.

    Enforce For ReplicationExige relacin para la duplicacin. Aplica

    esta restriccin cuando copiemos estatabla en otra base de datos.

    Enforce Foreign Key Constraint Exige la restriccin de clave externa.

    INSERT And UPDATESepecification

    Permite colocar reglas para laactualizacin y la eliminacin de datos encascada. Es decir, una modificacin en laclave principal provoca la modificacin

    automtica en las claves forneas.

    Diagramas de bases de datos.

    Los diagramas de bases de datos permiten obtener una vista de la estructura de la base de datos que hemoscreado. 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

    Bases de datos.

    31

  • 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 seaconseja 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 lasrelaciones entre tablas de un modo visual, lo cual ofrece una informacin muy clara de cual es la estructura delas relaciones creadas. De este modo, podemos identificar rpidamente el tipo de relacin existente entre dostablas. Dos tablas relacionadas aparecen unidas por lneas y en el extremo de estas lneas tenemos unos iconosque nos indican el tipo de relacin. Adems, el estilo de estas lneas ofrece informacin sobre el tipo desincronizacin 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 ventanapara 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. Funcin.

    New Table... Crear una nueva tabla en la base de datos.

    Add Table... Aadir una tabla existente al diagrama.

    New Text Annotation Permite explicar "notas" o comentarios detexto en el diagrama.

    Bases de datos.

    32

  • Select All Selecciona todos los objetos de las tablas.

    Show Relationship Labels Muestra etiquetas con los identificadoresde las relaciones.

    Arrange Tables

    Reordena nuestras tablas de modoautomtico de forma que las lneas derelaciones no se entrecrucen para ofrecermayor claridad.

    Zoom Zoom de la vista, permite alejar o acercarlas vistas.

    View Page BreaksMuestra el diagrama dividido por pginas

    para ofrecer una vista previa de comoquedara una impresin de las pginas.

    Recalculate Page Breaks Actualiza la divisin de pginas.

    Copy Diagram to Clipboard Copia el diagrama de base de datos en elportapales.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 columnasSQL 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 yeditoriales, 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

    Bases de datos.

    33

  • Ejercicios

    Ejercicio 1Disea 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 porun slo profesor, pero un profesor puede impartir diferentes cursos. Un alumno, slo puede estar matriculadoa un nico curso a la vez.

    Crea las tablas que creas suficientes (no es necesario controlar todo tipo de informacin), el objetivo espracticar con las relaciones entre tablas. El ejercicio tiene varias soluciones, en funcin del uso que se vaya arealizar con las tablas. Simplemente debes ser capaz de aplicar tu idea de funcionamiento, en una base dedatos. Por este motivo es posible que la administracin de tu base de datos, sea diferente a la que tedescargues de la leccin.

    34

    IndiceN-1 Bases de datos.1.- Introduccin.2.- Estructura de las bases de datos.Definicin.Trminos y conceptos.

    3.- SQL Server 2005.Configuracin de SQL Server 2005.Herramienta de administracin y gestin de SQL Server 2005Administracin de bases de datos.Creacin de tablas.Restricciones y valores permitidos.Relaciones.

    EjerciciosEjercicio 1