Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente...

download Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de servidor, que nos permiten un control absoluto sobre nuestros datos

of 103

Transcript of Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente...

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    1/103

    Curso SQL Server 2005

    Nº- 1 Presentación del curso

    La finalidad que buscamos en este curso podemos dividirla en dos objetivos:

    1. Dominio del lenguaje SQL.2. Administración de bases de datos.

    anto para aprender ! practicar con el lenguaje SQL" como para administrar ! mantener una base de datos nos apo!aremos en el servidor de base de datos #icrosoft SQLServer 2$$%.

     Al finali&ar el curso" el alumno ser' capa& de implementar sentencias SQL para reali&ar las m's complejas consultas ! sentencias de manipulación de datos. (or otro lado"tendr' los conocimientos necesarios para comen&ar a administrar ! mantener una basede datos empresarial mediante SQL Server 2$$%.

    )omo iremos viendo" SQL Server 2$$% tiene una cantidad enorme de *erramientas"

    tanto de cliente como de servidor" que nos permiten un control absoluto sobre nuestrosdatos. (ara seguir este curso con eficacia no es necesario unos conocimientos previosen bases de datos" ni en programación SQL" !a que el curso comien&a desde cero*asta alcan&ar un nivel suficiente.

    al ! como *abr's visto en la presentación previa del curso" veremos tambi+n ellenguaje ,SQL" lenguaje basado en SQL pero espec-fico de #icrosoft que nospermitir' disear código con ma!ores posibilidades de lo que ofrece SQL. De igualmodo" tampoco es necesario conocimientos de programación !a que iremos viendotodo desde un principio.

    (or lo tanto este curso pretende que los alumnos que se inician en el mundo de lasbases de datos sean capaces de disear ! administrar una base de datos !desenvolverse con soltura en estos entornos. (ara aquellos alumnos que !a tengannociones de bases de datos o lenguaje SQL" afiancen ! ampl-en esos conocimientos !puedan reali&ar las principales tareas de administración de uno de los servidorespreferidos por muc*as empresas" SQL Server 2$$%. (or otro lado" este curso estaorientado tambi+n a aquellas personas que se dedican al desarrollo de aplicacionesinform'ticas" tanto p'ginas /eb" intranets ! programas de escritorio" con el aprendi&aje

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    2/103

    de SQL ! la administración de servidores de datos" comprender'n mejor el enlace desus aplicaciones con las bases de datos ! ser'n capaces de separar el desarrollo desus aplicaciones de la capa de negocio que supone la parte de la base de datos"mediante el lenguaje ,SQL podr'n incluir objetos que realicen tareas que solucionancantidad de problemas que se plantean durante el desarrollo de aplicaciones"

    mejorando enormemente la eficacia ! la seguridad de las aplicaciones.Seguro que *abr' programadores que desarrollan las cone0iones a sus bases de datosmediante un nico usuarios" otro que las reali&an mediante el usuario sa...odos estoscasos ponen en peligro la seguridad de los datos vitales de una empresa" ! es motivosuficiente para animar a los alumnos a que realicen este curso.

    )on la aparición de la inform'tica" las empresas son capaces de gestionar los mismosdatos en unas *oras que lo que antes gestionaban durante meses. Segn se *an idomoderni&ando las caracter-sticas de *ard/are ! soft/are" cualquier empresa puedecubrir la necesidad del control de información de gran valor para su desarrollo !

    crecimiento de un modo sencillo ! rentable para el resultado que obtienen.3l propio sistema de control de datos *a ido mejorando con el tiempo" desde lasprimeras aplicaciones que gestionaban su propia información aloj'ndolas en unidadesde almacenamiento e0ternas 4discos duros" disquetes" cintas...5 con el problema de quesólo esa aplicación era capa& de interpretar ! utili&ar esa información. #'s adelantecomen&aron a imponerse unos sistemas de almacenamiento est'ndar que facilitaba latarea de compartir esa información entre diferentes aplicaciones.

    (or fin aparecieron los servidores de bases de datos" *erramientas cu!a nica !principal función era la administración de información. #ediante diferentes protocolosde comunicación las diferentes aplicaciones pueden enla&arse con estos servidores"ordenar las tareas que necesiten para que el servidor se encargue de operar esastareas ! devolver los resultados deseados. (odemos tener nuestra *erramienta deadministración de datos en un ordenar 4Servidor5 ! que el resto de ordenadores4)lientes5 se conecten a este servidor mediante sus aplicaciones para trabajar conestos datos" esta estructura Servidor6)liente es la que se *a terminado de imponer pudiendo distinguir claramente tres niveles o capas de trabajo:

    CAPA DESCRPC!N

    A"licacionesin#or$%ticas&

    3stas aplicaciones pueden ser desde p'ginas /eb a

    aplicaciones de escritorio" encargadas de ofrece interfa& deusuario para presentar la información ! ofrecer la posibilidad dereali&ar operaciones al usuario.

    Ló'ia de ne'ocio&Diferentes objetos diseados 4que m's adelante aprenderemosa crear ! utili&ar5 para operar con nuestros datos.

    Ad$inistrador de(ases de datos&

    Servidor que se encargar' de administrar ! ejecutar las tareasque se le encarguen para gestionar esos datos. De este modo

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    3/103

    el programador puede dedicarse a su propia aplicación"encargando las tareas de administración al servidor de datos. 3lservidor recibir' esas órdenes o tareas en forma deinstrucciones en lenguaje SQL generalmente" o de un modom's avan&ado ! con ma!ores posibilidades con lenguaje SQL

    de #icrosoft para servidores SQL Server. 3n este cursoaprendermos ambos lenguajes" abriendo un 'banico deposibilidades que cumplan con cualquier necesidad que seplantee a administradores ! desarroladores.

    3s comn referirse a los servidores de datos como 7D8#S" siglas de 7elationalData8ase #anagement S!stem. 3s el modo m's comn ! tambi+n mas correcto denombrarlos.

    9na persona encarga de la administrar una base de datos tiene como misión no sólocontrolar la base de datos empresarial" sino tambi+n de aconsejar" asesorar a losdesarrolladores" usuarios ! directiva de la empresa. (or normal general una empresacuenta con una o varias personas encargadas de controlar el sistema de base dedatos" programación" control de sistema operativos" *ard/are" comunicación" redes"etc...

    (odemos decir que la persona que controla la administración de base de datos" tienelas siguientes funciones:AL;

    • Disear ! controlar la estructura de la base de datos.• Supervisar la actividad sobre los datos.

    • )ontrolar la eficacia de la base de datos.

    • (reocuparse de la seguridad de los datos.

    • Supervisar el estado del sistema.

    •  Atender las quejas de usuarios sobre la información que obtienen ! la velocidad"! poner remedio a esos problemas.

    • ;btener ! estudiar las estad-sticas del funcionamiento ! el rendimiento delsistema.

    • Supervisar ! conocer en todo momento la actividad que reali&an los usuariossobre los datos.

    • (reocuparse de las nuevas actuali&aciones que salen al mercado ! en caso deser necesario" estudiar el momento apropiado de actuali&ar el sistema" o dereali&ar migraciones de estructuras ! datos *acia nuevos sistemas.

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    4/103

    2 )icroso#t SQL Server 2005

     Actualmente podemos encontrarnos con varios servidores de base de datos 47D8#S5:

    • ;racle• D82

    • #!SQL

    • SQL Server 

    • ...

    odos ellos desempean la misma función" pero tienen diferentes propiedades !*erramientas que distinguen claramente unos de otros.

    SQL Server 2$$% es la siguiente edición de su predecesor en el mercado" SQL Server

    2$$$" el cual tuvo mu! buena aceptación en las empresas por su alta calidad.

    )on esta ltima versión se *a conseguido mejorar an mas SQL Server 2$$$"mejorando la fiabilidad" escalabilidad" rendimiento ! manejo. #uc*as de las empresascontrolan sus redes locales con el conocido sistema operativo

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    5/103

    • (osibilidades de data /are*ousing ! data mining" para almacenar ! anali&ar datos"funcionando como ;nline ransaction (rocessing 4;L(5 ! con servicios ;nline

     Anal!tical (rocessing 4;LA(5.

    • )omunicación perfecta con otras aplicaciones #icrosoft" pudiendo presentarinformación en *ojas de 30cel" por citar un ejemplo.

    • >ntegración perfecta con *erramientas de desarrollo de soft/are como Bisual Studio2$$%.

    • Lenguaje ,SQL para ampliar las posibilidades de las tareas a reali&ar.

    • )apacidad para interpretar funciones reali&adas con )L7 4)ommon Language 7untime5de plataformas .C3" esto nos permite reali&ar funciones en lenguajes mu! conocidoscomo Bisual 8asic o ).

    2&1 *ersiones de SQL Server 2005

    )omo acabamos de ver SQL Server 2$$% tiene una serie de propiedades comunes alas cuales se le aaden una serie de *erramientas para ir formando diferentesversiones orientadas a diferentes tipos de empresas ! funciones.

    3stas ediciones las presentamos a continuación comen&ando con la que menosposibilidades ofrece *asta llegar a la m's completa:

    *ersión Descri"ción

    SQL Server 2$$% 30press 3dition

    Bersión b'sica del servidor" l-mitada en elnmero de usuarios ! en cuanto al volumen dedatos a gestionar. 3s la versión que #icrosoft

    nos ofrece gratuitamente ! sin duda es laversión ideal para comen&ar a trabajar !

    desde la cual podemos ir ampliando aversiones superiores si nos fuese necesario.

    (ermite ser distribuida con programas dedesarrollo propios con su correspondiente

    licencia.

    SQL Server 2$$%

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    6/103

    cuenta con *erramientas avan&adas para laadministración ! an'lisis de datos.

    SQL Server 2$$% 3nterprise 3dition

    3sta edición est' preparada para gestionar lasempresas de ma!or tamao" !a que ofrece

    ma!or potencia que las anteriores. F adem'sde aadir servicios avan&ados ! estar 

    preparada para trabajar con multiprocesadoresde @ 8its" amplias memorias 7A#. (odemos*ablar de bases de datos con tamaos dadosen erab!tes" para que puedas *acer una ideade la cantidad de información que puede llegar a gestionar con fiabilidad. iene la capacidadde trabajar con )lsters de ordenadores" demodo que el fallo de uno de ellos active otro

    ordenador que se encontraba pasivo *asta elmomento del error.

    SQL Server 2$$% Developer 3dition

    Se trata de una versión que cuenta con lasmismas caracter-sticas que su versión anterior"

    con la diferencia de que va dirigida adesarrolladores. G(orque si tienen las mismas

    caracter-sticas" no se trata de la mismaediciónH 3sta versión especial est' limitada por 

    su licencia que no permite que se ejecute enentornos de e0plotación ! sólo se permite paradesarrollo. ;tra diferencia importante" es quepermite ser instalada en Sistemas ;perativos

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    7/103

    + Re,uisitos

    3n función de la edición con la que va!amos a trabajar tendremos unos requisitosm-nimos que nuestras m'quinas deber'n cumplir ! del mismo modo nuestro soft/are"! especialmente el sistema operativo sobre el que va a trabajar. Debes pensar que noestamos instalando un programa de escritorio" se trata de un potente 7D8#S quecuenta con una serie de servicios avan&ados" adem's de accesos desde >nternet etc...

    +&1 Re,uisitos de So#tare

    3l principal requisito ! el m's importante que debemos cumplir" es el sistema operativosobre el que vamos a trabajar. Caturalmente este requisito depender' de la versión deSQL Server 2$$% que queramos instalar. 3s lógico pensar que aquellas versiones que

    est'n orientadas a trabajar en un entorno empresarial no se podr'n instalar sobreversiones de sistema operativo dirigidas a ordenadores personales" como

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    8/103

     

    Si tenemos como sistema operativo >>"o de cualquier otro fabricante pero con al menos 1 I&. 3n elmercado *o! en d-a" los () vienen con (entium >B comoprocesador m-nimo ! A#D At*lon supera las velocidad deestos.

     

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    9/103

     

    3n cuanto a la memoria 7A# que debemos disponer" depender' de la versión queva!amos a instalar. )on la que nosotros trabajaremos 4SQL Server 2$$% 30press3dition5 es suficiente con 12K #b" en cambio para el resto de ediciones como m-nimo

    tendremos %12 #b" aunque para las versiones est'ndar ! empresarial es m'srecomendable disponer de 1b.

     

    3stos son los requisitos m-nimos" pero cuanta ma!or memoriatengamos" mejor se aprovec*ar'n las caracter-sticas de SQLServer 2$$%" sobretodo para ediciones que trabajen con @bits ! bases de datos de gran tamao.

     

    La memoria en disco m-nima que tenemos que tener var-a con las caracter-sticas queva!amos a instalar" !a que como veremos en este mismo cap-tulo" podremos elegir las*erramientas que deseamos instalar.

     Aunque no es un requisito obligatorio" el entorno de trabajo de SQL Server 2$$% setrabaja de un modo m's cómodo con una resolución de 1$20@K.

    / Pasos Previos

     Antes de comen&ar con la instalación de SQL Server 2$$% debemos tener en cuentauna seria de requisitos previos a cumplir. Alguno de estos requisitos debemoscumpliros por seguridad ! otros son obligatorios para poder finali&ar la instalacióncorrectamente.

    )on versiones anteriores a SQL Server 2$$%" no ten-amos la posibilidad de tener variasinstancias del servidor de base de datos conviviendo en un mismo (). >nclusopodemos tener en el mismo equipo varias versiones de SQL Server.

     Al *acer una instalación tenemos la posibilidad de sobrescribir sobre una instalación

    anterior. ambi+n tenemos la posibilidad de instalar SQL Server 2$$%" actuali&ando unaversión anterior. Si vamos a actuali&ar una versión de SQL Server 2$$$ tenemos quetener instalado el Service (acE = ! si es an m's antigua" SQL Server " debemos detener instalado previamente el Service (acE de esta versión. (or lo tanto"revisaremos antes de instalar SQL Server 2$$% sobre cualquiera de estas versiones sitenemos estos paquetes ! sino es as- adquirirlos desde la p'gina de #icrosoft.

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    10/103

    3n cualquier caso" si vamos a reali&ar una instalación sobre otra versión es m's querecomendable reali&ar una copia de seguridad de toda la información" ! sobre todo denuestras bases de datos" para evitar problemas ! sorpresas.

    Si vamos a reali&ar la instalación en un servidor con S 4>nternet >nformation Server5. 3n ese caso debemos parar esteservicio antes de proseguir con la instalación. (ara llevar a cabo esta tarea" abrimos elpanel de control:

    3ntre los iconos del panel de *erramientas seleccionamos MIerramientas AdministrativasM:

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    11/103

    3sto nos abre una ventana con las *erramientas administrativas que tenemosinstaladas en nuestro equipo" siempre ! cuando tengamos instalado los servicios de >>Sencontraremos el icono:

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    12/103

    3jecutamos la *erramienta ! se nos presenta el panel de >nternet >nforamtion Server"desplegamos el icono de nuestro servidor o pc" *asta encontrarnos con los sitios /ebque tenemos ejecutando en el servidor dentro de MSitio

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    13/103

     Adem's de para el servicio de servidor de p'ginas /eb debemos parar tambi+n el visor de sucesos ! el editor de registros de

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    14/103

    (ara concluir" si no estamos instalando SQL Server 2$$% como una copia personalpara reali&ar pruebas o desarrollar" ! lo estamos *aciendo para e0plotar la base dedatos en un servidor al que tendr'n acceso clientes ! usuarios" deberemos lo primeroiniciar sesión en el servidor como Administrador para instalar SQL Server. 3l siguientepaso ser' crear las correspondientes cuentas de usuario para los clientes de SQLServer.

    5 nstalación

    30plicaremos la instalación de la versión gratuita que ser' con la que trabajaremos eneste curso" desde que se lan&ó al mercado SQL Server 2$$%" *an aadido una versiónm's avan&ada a SQL Server 2$$% 30press 3dition" que por suerte inclu!e alguna*erramienta m's avan&ada que la que en un principio publicaron. La versión sedenomina #icrosoft SQL Server 2$$% 30press 3dition

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    15/103

     Aceptamos las condiciones ! proseguimos con el asistente. 3n la siguiente ventana nosindica los componentes que se van a instalar:

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    16/103

    (inc*amos en instalar" ! comien&a el proceso de instalación de los componentesau0iliares que SQL Server 2$$% necesita para instalar el producto final:

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    17/103

    3speramos unos minutos *asta que el proceso de instalación previo finali&a:

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    18/103

    9na ve& finali&ado" pulsamos en siguiente" ! el asistente comprobar' la configuraciónde nuestro equipo para comprobar que cumplimos con unas caracter-sticas m-nimas:

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    19/103

    9na ve& comprobada la configurada" comien&a el asisitente de instalación real de SQLServer 2$$%:

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    20/103

    (ulsamos en siguiente" ! vuelve a reali&ar una nueva configuración" esta ve& de laconfiguración del sistema:

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    21/103

    9na ve& que el asistente comprueba que todo est' correcto" pulsamos en siguiente"donde el asistente sigue recogiendo los paquetes necesarios para la instalación:

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    22/103

    )uando finali&a la e0tracción de fic*eros" nos pide la información de registro de nuestroequipo" concretamente nuestro nombre ! compa-a.

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    23/103

    >ntroducimos estos valores personales ! continuamos. 3n la siguiente pantalladebemos seleccionar los elementos que deseamos instalar" debemos marcar todas las

    opciones" incluidos los componentes de clientes que inclu!en las *erramientas queutili&aremos para administrar las bases de datos mediante SQL Server #anagementStudio 30press:

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    24/103

    Seguimos con el asistente" ! nos pide el modo de autenticación para conectar con SQLServer. enemos dos modos de autenticación:

    • #odo /indo/s.• #odo mi0o 4

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    25/103

    )ontinuando con el asistente nos pide MpermisoM para enviar a #icrosoft los errores quepuedan darse sobre el servidor de base de datos" e informes del uso que *acemos de

    las *erramientas" todo esto para que #icrosoft tenga datos para llevar a caboactuali&aciones para solucionar errores o mejoras para el rendimiento.

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    26/103

    3n nuestro caso" no queremos que nuestro servidor dedique recursos al env-o de estainformación. Adem's de que seguramente a nuestra empresa no le interese que e0ista

    la posibilidad de enviar información personal por error" por lo tanto desmarcamos estascasillas ! continuamos.

    3n la siguiente venta" nos muestra los componentes ! las *erramientas que se van ainstalar a continuación.

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    27/103

    (ulsamos en instalar ! comien&a el proceso de instalación" mostrando información delestado en que se encuentra cada uno de los productos que se est'n instalando.

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    28/103

    )uando finali&a la instalación para cada uno de los productos" podemos continuar conel asistente:

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    29/103

    (ulsamos en siguiente" ! nos muestra la pantalla de finali&ación donde tenemos laposibilidad de ver informes sobre el proceso de instalación. Adem's nos informa de

    configuraciones e instalaciones que se *an producido en el proceso:

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    30/103

    (ulsamos en finali&ar ! el proceso *abr' finali&ado correctamente.

    (ara reali&ar la primera prueba" vamos a inicio programas ! ejecutaremos MSQL Server#anagement Studio 30pressM:

    La primera ve& que se ejecuta reali&a una configuración previa del entorno de trabajo:

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    31/103

    9na ve& finali&ada esta configuranción" nos muestra la pantalla de presentaciónmientras que trabaja en segundo plano para lan&ar la *erramienta:

    Lo primero que nos muestra cuando arrancamos SQL Server 2$$%" es una ventanapara seleccionar el modo de autori&ación con el que vamos a conectar al servidor:

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    32/103

     

    (ara terminar de comprobar que SQL Server se *a instalado ! configuradocorrectamente en el equipo" podemos mostrar el administrador de tareas de

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    33/103

    servidor queda preparado para que los programas clientes" p'ginas

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    34/103

    SQL Server Con#i'uration )ana'er 

    )on la instalación de SQL Server" *emos instalado dos *erramientas:

    • SQL Server #anagement Studio.• SQL Server )onfiguration #anager.

    SQL Server #anagement Studio es una una potente *erramienta utili&ada pordesarrolladores ! administradores para trabajar ! gestionar bases de datos. 3sta*erramienta la iremos estudiando a lo largo de todo el curso.

    SQL Server )onfiguration #anager es una *erramienta mu! til para trabajar con losservicios de SQL Server.

    )omo !a *as visto" SQL Server se ejecuta como si fuese un servicio" que puedeponerse en marc*a de modo autom'tico junto con el sistema operativo en caso de quelo indiquemos as- en el momento de la instalación.

    3l servicio recibe el nombre de #SSQLServer por defecto" este nombre puede variar siinstalamos diversas instancias con diferente nombre.

    Co sólo tenemos el servicio #SSQLServer" tenemos otros como puede ser el #SD)4#icrosoft Distributed ransaction )oordinator5 o coordinador de transaccionesdistribuidas" tambi+n tenemos el Agente de SQL Server o SQL , ServerAgent" entre

    otros...

    (ara acceder a la *erramienta de configuración" lo tenemos disponible en el grupo deprogramas de #icrosoft SQL Server 2$$%" dentro del grupo Ierramientas deconfiguración" encontramos la opción SQL Server )onfiguration #anager:

    La ventana que nos muestra esta *erramienta podemos dividirla en diferentes &onas.

    3n el panel i&quierdo" encontramos varios elementos" que a su ve& contienen m'ssubelementos. (or defecto aparece seleccionado MServicios de SQL Server 2$$%M.

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    35/103

     Al tener seleccionado este elemento" en el panel de la derec*a" aparecen como unalista todos los servicios que *a! instalados" el estado ! una serie de caracter-sticas.

    3l estado podemos comprobarlo tambi+n gracias al icono que aparece junto al nombredel servicio" un cuadradillo rojo indica que el servicio se encuentra detenido" mientras

    que un triangulillo verde indica que el servicio est' activo.

    #ediante la barra de tareas que aparece sobre este panel" podemos reali&ar cambiossobre el estado de los servicios" entre otras cosas.

    3n función de la edición de SQL Server instalada tendremos una lista de serviciosma!or o menor" adem's estos servicios se pueden elegir en el momento de lainstalación 4servicios de informes" an'lisis" integración" etc...5

    &1 )odi#icar el estado de los servicios&

    enemos tres diferentes estados para cada uno de los servicios:

    • iniciado: 3l servicio est' en funcionamiento" los clientes podr'n acceder a lainformación.

    pausado: 3l servicio parece estar parado" no responde a las peticiones" se encuentracongelado ! no parado" !a que al reanudarlo" continuar' en el mismo estado que seencontraba en el momento de pausarlo.

    • detenido: 3l estado se para" ! se desaloja deja de ocupar espacio de memoria. )uandose reinicie" tomar' los valores que se indiquen por defecto.

    (ara variar de un estado en otro" podemos reali&arlo con la barra de *erramientas queencontramos en la parte superior.

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    36/103

    ; bien" mediante el men emergente que se muestra al pulsar con el botón derec*osobre el servicio del cual queremos variar su estado.

    3n este men tendremos unas opciones u otras en función del estado en el que seencuentre actualmente.

    3s mu! probable que nos interese que un servicio arranque de modo autom'tico juntocon el sistema operativo" de este modo no tendremos que ponerlo en funcionamientocada ve& que se reinicie el servidor" por citar alguna de la ventajas.

    (ara modificar el modo en el que se inician los servicios debemos pulsar con el botónderec*o en uno de los servicios ! seleccionar la opción M(ropiedadesM.

    3n la pestaa servicio" tenemos la opción M#odo de inicioM" donde podemos seleccionar los tres modos:

    •  Autom'tico. >nicia de modo autom'tico el servicio 4 no es necesario iniciar sesión en elsistema" lo que supone una gran ventaja5.

    • Des*abilitado. Co puede entrar en funcionamiento" ni de modo manual ni autom'tico.

    • #anual. 3l servicio puede ponerse en marc*a tal ! como *emos e0plicado en estecapitulo" mediante botones o men emergente desde esta *erramienta.

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    37/103

    Eercicios

    Eercicio 1

    9na ve& instalado SQL Server 2$$% comprobar el estado de todos los servicios SQLServer ! el modo de ejecución de cada uno de ellos" dejando todos los servicios enfuncionamiento ! el modo de inicio en autom'tico.

    7ecuerda que para este tipo de configuraciones" utili&aremos SQL Server )onfiguration#anager.

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    38/103

    Nº- 2 ntroducción a las (ases de datos

    1 De#inición3l concepto m's general de una base de datos es el lugar donde se guardan los datos.Bamos a suponer que somos los dueos de una librer-a ! deseamos teneralmacenados todos los datos posibles de nuestro negocio. (ara poder llevar ciertaorgani&ación de estos datos" no queremos que estos datos sean un montón deinformación almacenada sin seguir ningn orden. Deberemos seguir una estructura quepermita que esa información est+ enla&ada" de modo que tengamos conectados unosdatos con otros" para que por ejemplo no nos volvamos locos" buscando un libro quenos *a pedido un cliente.

    Siguiendo con el ejemplo de la librer-a" podemos organi&ar nuestras necesidad en lossiguientes puntos:

    •  Aspecto particular de un determinado libro" por ejemplo el precio.•  Aspectos importantes de un libro" por ejemplo -tulo" Autor" >S8C" ('ginas" +nero"

    etc...

    •  Aspectos importantes de todos los libros.

    •  Aspectos importantes de la librer-a al completo.

    3n este caso" *emos desglosado a primera vista" los cuatro puntos m's importantes encuanto a información se refiere de nuestra librer-a" pod-amos *aber entrado en nivelesm's complejos" como pueden ser clientes" proveedores" empleados" pero no es lo quedeseamos para empe&ar a e0plicar los fundamentos de las bases de datos.

    )omo estamos diciendo" *emos separado en cuatro puntos" las necesidades quepodemos tener en cuanto a información de un libro. 3stos cuatro puntos" nos dan unaidea mu! clara de la jerarqu-a que sigue una base de datos" esta jerarqu-a la vamos asepara en cuatro niveles" ! ver's la lógica que tienen estos niveles respecto a lospuntos de nuestra librer-a:

    • )ampo: )ontiene un dato en particular" como puede ser el primer punto que *acereferencia al precio de un libro.

    • 7egistro: Almacena todos los datos de un determinado objeto de información" vemosque el segundo punto de nuestras necesidades reclama los aspectos m's importantesde un libro. 3n este caso" el libro es el objeto de información" ! sus aspectos 4-tulo"

     Autor" >S8C" ('ginas"...5 de ese objeto de información ser-an un grupo de campos" aligual que sucede con el precio.

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    39/103

    • abla: Almacena información de varios objetos de información que comparten aspectossimilares. 3stamos mencionando el tercer punto de nuestra librer-a" donde queremosalmacenar la información de todos los libro" podemos pensar" pero cada libro esdiferente al resto" ! es cierto" pero todos los libros tienen en comn que cada uno deellos tiene un determinado -tulo" Autor" >S8C" ('ginas" +nero" etc... (or lo tanto" si*emos entendido bien" los conceptos de los dos anteriores niveles" podemos asegurar

    que una tabla almacena una serie de registros 4libros5.

    • 8ase de datos: )uarto ! ltimo nivel" de nuestro primer vista&o a la idea de base dedatos" relacionada con el cuarto punto de nuestra librer-a el cual nos indica quequeremos almacenar los aspectos de la empresa al completo" por lo tanto" este nivelguarda información de varios aspectos" no sólo de libros" sino de ventas" compras"clientes etc...(or lo tanto la base de datos" dic*o de un modo mu! simple ! mu!gen+rico" almacena las tablas.

     Acabamos de mencionar los cuatro conceptos b'sicos de toda base de datos" si es laprimera ve& que te introduces en este mundillo deben quedarte mu! claros estos cuatropilares de información.

    al ! como *emos avisado" esta definición de base de datos es demasiado simple"decir que la base de datos se encarga de almacenar la información estructurada enesos cuatro niveles es decir demasiado poco. #uc*os fabricantes ofrecen en susservidores la posibilidad de almacenar muc*as mas funcionalidades que estas cuatro.

    #icrosoft SQL Server 2$$% ofrece una cantidad enorme de objetos" que al igual que losdatos se almacenan en la base de datos" pero cu!a función no es guardar información"sino trabajar con ella. As- a primera vista" puede parecer complicado" G9na base dedatos almacena algo m's que datosH Beremos que as- es" ! que son de unaimportancia grand-sima" !a que tienen tareas tan importantes como asegurar que esosdatos se almacenan correctamente" de la seguridad" del rendimiento que obtenemos deesos datos" etc...(ero como te digo" los iremos viendo a lo largo del curso.

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    40/103

    2 Estructuración de una (ase de datos

    2&1 Estructura #sica

    9na base de datos se almacena en varios fic*eros o arc*ivos en disco. )omo m-nimotendremos dos fic*eros que e0plicaremos m's adelante.

    enemos la posibilidad de almacenar estos fic*eros en discos que no est+n ni tansiquiera formateados o que no tengan una partición *ec*a" pero este m+todo no es elm's aconsejable. 3s m's ra&onable almacenar estos arc*ivos en un disco !aformateado" con formato CNS.

    3n empresas cu!o volumen de datos es alt-simo ! el trabajo que se reali&a sobre la

    base de datos soporta una actividad elevada" se almacenan los arc*ivos en grupos dediscos denominados 7A>D por *ard/are. 3ste m+todo mejora considerablemente elrendimiento" ! nos asegura que en caso de fallos inesperados no perdamos esa valiosainformación.

    )omo es lógico" nosotros para reali&ar nuestros ejemplos" no vamos a basarnos enesta tipo de estructuras de *ard/are" lo almacenaremos en nuestro disco duro" aunqueveremos como asegurar nuestros datos mediante planes de mantenimiento con copiasde seguridad autom'ticas.

    )omo *emos mencionado" como m-nimo tendremos dos arc*ivos donde almacenar la

    base de datos:

    •  Arc*ivo de datos.•  Arc*ivo de registro de transacciones.

    (ero debes saber que tenemos otras posibilidades ! podemos utili&ar arc*ivos e0traspara mejorar el rendimiento de nuestra base de datos" podemos usar varios arc*ivos" sipensamos que nuestra base de datos va a alcan&ar un tamao grande. ; si deseamosque nuestros datos se almacenen en diferentes dispositivos de almacenamiento uordenadores" ! de este modo permitir un trabajo m's r'pido al poder acceder a lainformación en paralelo.

    )entr'ndonos en lo principal:

    • 3l arc*ivo de datos" o aquellos que aadimos como e0tras" son los arc*ivos que tendr'nalmacenada la información" los datos. (ero recuerda que *emos dic*o que SQL Server2$$% nos permite tambi+n crear en nuestras bases de datos" no sólo información" sinotambi+n una serie de objetos que trabajan con la información. (ues bien" esta serie deobjetos tambi+n se almacena en el arc*ivo de datos.

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    41/103

    • (or otro lado" tenemos el arc*ivo de registro de transacciones. 3ste fic*ero es tanimportante como el anterior. Su importante tarea es garanti&ar que esa base de datospermanece integra. racias a estos arc*ivos de registros 4puede *aber m's de uno5" encaso de ser necesario" podremos recuperar la base de datos" !a que almacena lasmodificaciones que se producen debido a la actividad o la e0plotación de la base dedatos.

    2.1.1 Nombres de archivos.

    3l modo de nombrar una base de datos" parte de una base fija" de un nombre principalque generalmente entrega el administrador de la base de datos. 9na ve& que tenemoseste nombre principal" SQL Server 2$$% se encarga de aadir terminaciones ! unasdeterminadas e0tensiones" a ese nombre principal. 3l administrador adem's deseleccionar el nombre principal" puede elegir el destino donde se almacenar'n losfic*eros que forman la base de datos.

    Bamos a suponer que estamos en una empresa como administradores" ! estamos

    creando su base de datos. Cosotros como administradores le damos el nombreprincipal M mi3mpresa M. 3se ser' el nombre de la base de datos" pero los fic*erosdonde se almacenar' su información ! el registro de transacciones" ser'n:

    •  Arc*ivo de datos: mi3mpresaOData.#DN•  Arc*ivo de registro de tranasacciones: mi3mpresaOLog.LDN

    3n caso de tener arc*ivos e0tras" nosotros como administradores tambi+n podremosdarles su nombre principal" ! la e0tensión que suele utili&arse es .CDN

    Siguiendo con nuestra tarea de administrador" a*ora ser-a el momento de seleccionar

    el lugar de almacenamiento" como !a sabes podemos seleccionar una determinadacarpeta o directorio" incluso diferentes unidades f-sicas. Lo m's aconsejable es guardar en diferentes unidades" por un lado el arc*ivo de datos" ! por otro el arc*ivo de registrode transacciones. De modo que en caso de fallo" por lo menos tengamos uno de ellos.

     A continuación puedes ver una figura que representa la estructura f-sica de la base dedatos" tomando como ejemplo el nombre principal M#i3mpresaM.

    Co debes quedarte con la idea de que una base de datos" se compone sencillamentede dos arc*ivos" es algo muc*o m's completo que todo eso lo que representa unabase de datos como entidad.

    2.1.2 Tamaño de la base de datos.

    3n el momento de crear la base de datos" es casi imposible conocer la cantidad dememoria que necesitar' para almacenar toda la información. 3s cierto que *a! ciertast+cnicas que nos permiten calcular el tamao que podr' alcan&ar la base de datos"pero estas estimaciones pueden venirse a bajo" por modificaciones imprevistas" como

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    42/103

    puede ser el crecimiento de la empresa ! que se intensifique la actividad reali&adasobre la información" por citar un ejemplo.

    ampoco es nada aconsejable pecar de precavidos ! reservar una cantidad dememoria e0agerada" ! pensar que con esta cantidad casi infinita no tendremos

    problemas de espacio para nuestros datos. De acuerdo" puede que no *a!a problemasde espacio 4o qui&' si5" pero lo que es seguro es que tendremos muc*-simosproblemas de rendimiento" de fragmentación etc...

    SQL Server 2$$% nos permite olvidarnos *asta cierto punto de este problema. Losarc*ivos de datos ! de registro" crecen autom'ticamente. Co crecen con cada dato quese aade. Cosotros como administradores" le daremos un tamao inicial sencillo deestimar 4 una cantidad mu! pequea" unos #egab!tes 5" en ese momento SQL Server2$$% crea la estructura correcta para la base de datos" ! una ve& que nuestra base dedatos est' en e0plotación cuando alcan&a el tamao limite" lo incrementa una cantidaddada por un factor predeterminado.

    Bisto de modo teórico puede asustar un poco" sólo estamos comen&ando a crear labase de datos" ! estamos mencionando varias caracter-sticas a tener en cuenta. Cotenemos porque asustarnos" veremos como estos par'metros se pueden dar de unmodo altamente sencillo mediante el interfa& de SQL Server 2$$%" ! como con pocosclicEs" todos estos aspectos los reali&a SQL Server por nosotros" asi que no tepreocupes ! sigue le!endo.

    2&2 Estructura ló'ica

    (ara entender que es la estructura lógica de una base de datos vamos a poner un

    sencillo ejemplo.)uando nosotros nos compramos un equipo de msica" poco nos importa comofuncionan los circuitos integrados" los elementos electrónicos que componen nuestroequipo. 3n este caso" esos circuitos" esos dispositivos electrónicos" ser-a la estructuraf-sica del equipo de msica" al igual que *emos visto la estructura f-sica de nuestrabase de datos.

     A lo que nosotros como usuarios vamos a dar importancia es al manejo del equipo demsica: como subir el volumen" encenderlo" cambiar de emisoras" introducir un )D. Deigual modo" como usuarios de la base datos" debemos conocer la estructura lógica de

    la base de datos para poder gestionar o trabajar con los datos.9na estructura lógica m-nima puede ser el ejemplo de la librer-a que *emos visto amodo de introducción en esta lección.

    Lo que vamos a e0poner a continuación a modo de introducción son los elementosprincipales que componen la estructura lógica de una base de datos" de modo quesepas de que estamos *ablando en caso de que se mencionen en las diferentes

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    43/103

    lecciones. Sin embargo" los iremos viendo con m's detenimiento m's adelante" demomento es suficiente con que te suenen ! las va!as conociendo.

    2.2.1 Tablas

    Las tablas son las unidades que almacenan los datos. )omo norma general se sueleimponer que cada tabla" almacena información comn sobre una entidad en particular4recuerda los libros5. 3sta norma se conoce como nor$ali3ación.

    La ma!or parte de la actividad producida en una base de datos se produce sobre lastablas" siendo las principales tareas las siguientes:

    •  Aadir información.• 3liminar información.

    • #odificar ! actuali&ar información.

    • 7ecoger información ! mostrarla.

    )omnmente estas cuatro tareas se reali&an mediante el lenguaje SQL 4StructuredQuer! Language5 que significa Lenguaje de consultas estructurado" que como !a

    sabr's es el lenguaje est'ndar para gestionar bases de datos.2.2.2 Campos y Registros.

    Las tablas est'n compuestas de registros ! campos. Si imaginamos el diseo de unatabla" como si de una cuadr-cula se tratase" sabemos que est' compuesta por variasfilas ! columnas. Las filas corresponden a los registros" mientras que las columnas

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    44/103

    ser-an los campos. F cada una de las celdas que se forman de enla&ar un registro 4fila5con un campo 4columna5 formar-a una celda" la cual almacena un valor.

    (or lo tanto" un registro esta formado por varios campos" ! cada campo almacena undeterminado valor.

     Acabamos de mencionar que en cada celda se almacena un valor. (ero Gsiempre debealmacenar un valorH" que sucede si estamos almacenando información de undeterminado producto" ! en el momento de almacenarlo desconocemos una de suscaracter-sticas 4un valor5. 3n ese caso Gno podr-amos almacenarloH. Lógicamente larespuesta a esta pregunta es que s-" por supuesto que podr-amos almacenarlo.enemos la posibilidad de almacenar valores nulos para este caso que *emos visto !muc*os otros.

    Los valores nulos se conocen como C9LL" pero aunque se conoce como valor nulo" no

    debes pensar que se almacena un valor" el concepto de C9LL podr-a ser un marcadorque informa que *a! que pasar por alto los datos de esa celda" son datos que seignoran. )omo veremos" *a! que tener muc*o cuidado con el uso de esta MausenciaMde información" !a que si tenemos algn despiste puede ser el causante de que norecibamos la información que realmente estamos reclamando en una consulta. Sireali&amos operaciones matem'ticas con varios valores de nuestra base de datos !uno de estos es C9LL" el resultado siempre ser' C9LL.

    2.2.3 Índices

    Seguimos *ablando de la unidad o entidad principal de la base de datos" las tablas.

    (odemos tener tablas con millones de registros" si reali&amos una consulta pararecuperar información de un grupo de estos registros" podemos tener un rendimientobajo debido a la gran cantidad de información que almacena esa tabla.

    Sitate en una tabla que almacena las ventas de productos que se *an producidodurante d+cadas en una gran empresa" ! queremos recoger la información de unadeterminada venta. 3l proceso de bsqueda recorriendo cada uno de esos registros

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    45/103

    4ventas5 de la tabla de principio a fin" puede necesitar un tiempo considerable *astaque encuentra la información deseada.

    (ara acelerar este tipo de consultas contamos con la a!uda de los ndices. 9n -ndicees una caracter-stica m's de las tablas" el cual es una conjunto de valores clave. 3ste

    conjunto tiene una estructura estudiada para que el servidor pueda reali&ar lasconsultas con un rendimiento muc*o ma!or.

    3stos valores claves pueden almacenar el contenido de una o varias columnas de latabla sobre la que operan.

     Adem's de mejorar el rendimiento" e0isten -ndices que pueden asegurar la integridadde los datos" indicando en que orden deben almacenarse los datos en un tabla. #'sadelante veremos como trabajar con los -ndices.

    (or lo tanto podemos decir que teóricamente nuestras tablas deber-an todas incluir al

    menos un -ndice que asegure un mejor rendimiento. F en la pr'ctica" suele ser lo m'scomn" pero debes tener en cuenta que cada ve& que reali&amos una tarea sobre unatabla que est' relacionada con -ndices" el servidor" no sólo opera sobre la tabla parareali&ar las modificaciones que se le demanden" sino que tambi+n debe reali&aroperaciones sobre los -ndices para asegurar que la labor de estos sigue siendo laadecuado para las modificaciones reali&adas sobre la información de la tabla. (or lotanto la regla de tres es sencilla" a ma!or nmero de -ndices" mas tiempo dedicar' a lastareas pedidas.

    2.2.4 Restricciones

    Las restricciones son normas que imponemos a la información que pude seralmacenada" de modo que si no se cumple una de estas condiciones no permitamosque inclu!a ese valor en nuestra base de datos.

    Si tenemos una tabla de clientes" podr-amos poner como restricción que no se puedaalmacenar un cliente cu!a edad no supere los 1K aos. 3l servidor se encargar' de nopermitir que se inclu!a ningn registro que incumpla nuestra condición.

    3stas restricciones adem's de permitir controlar que valores pueden ser almacenados"con esta tarea aseguramos tambi+n la integridad de nuestros datos. (iensa que pordescuido un usuario introduce por error un cero como el nmero de unidades que se

    *an vendido a un minorista. Al calcular el precio de la venta ! multiplicarlo por cerounidades" tendremos como precio de facturación cero.

    (ero no sólo debemos pensar en que es el usuario quien comete el error" puede que elprogramador que *a desarrollado un soft/are de facturación *a!a cometido un error alescribir el código. 3l programa por s- sólo" si no *a tenido en cuenta esta posibilidad" nolan&ar' ningn error" ! todo parecer' ir correctamente ! emitir' la factura al minorista.

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    46/103

    (ero gracias al servidor de base de datos" podemos tener controlado que uso *ace elsoft/are que trabaja con nuestros datos.

    2.2.5 istas

    Las consultas que se reali&an sobre algunas de las tablas de la base de datos puedenser repetitivas" de modo que d-a tras d-a cientos de usuarios reali&an las mismasconsultas sobre la tabla. odas esas consultas repetitivas reciben el mismo grupo dedatos.

    (ara evitar la repetición de este tipo de consultas tenemos las vistas.

    (odemos pensar que una vista es un conjunto de registros determinados de una ovarias tablas. De *ec*o se trabaja sobre ella como una tabla" pero no es una tabla. Loque almacena en realidad es una consulta. (ero debes tener claro que no almacenadatos sino que los e0trae.

    9na vista puede crear los enlaces necesarios para obtener información de varias tablascomo si fuese una nica tabla. 3sto puede facilitar muc*o la tarea al desarrollador desoft/are que no tiene que preocuparse de las tablas donde se almacena la informaciónque quiere recoger" !a que lo tiene todo en una vista sobre la que puede operar comosi fuese una tabla. (or lo tanto se olvida de construir complicadas sentencias de SQLque recoja esa información de mltiples tablas" con diferentes enlaces entre ellas.

    2.2.! "#$

    Las consultas ! las tareas de gestión que se reali&an durante la e0plotación de una

    base de datos vienen escritas en lenguaje SQL" Structured Quer! Language" que como!a *emos mencionado significa Lenguaje de )onsulta 3structurado.

    3l AC>S 4>nstituto Cacional de Cormali&ación 3stadounidense5 ideo este lenguajeest'ndar" denominado ASC> SQL" o tambi+n SQL,J2" por el ltimo ao en el que ACS>aceptó modificaciones sobre el est'ndar.

    )omo suele ocurrir en tantas ocasiones en el mundo del mercado inform'tico. 3steest'ndar fue recogido por los fabricantes para personali&arlos ! crear sus propiase0tensiones para sus productos. #icrosoft as- lo *i&o" para crear ransact,SQL" o m'scomnmente conocido por su abreviatura ,SQL para sus servidores de base de datos

    SQL Server.

    )omo veremos" SQL Server 2$$% ! sus antecesores" pueden trabajar con SQL" perogracias a ,SQL podemos reali&ar sentencias m's completas que solventar'nf'cilmente problemas. (or lo tanto ,SQL no es un sucesor de SQL para nosotros" sinouna ampliación" una *erramienta e0tra que utili&aremos para fines m's avan&ados.

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    47/103

    2.2.! %rocedimientos almacenados

    SQL Server no sólo puede ejecutar las consultas de las tablas" o las vistas que !a*emos visto. ambi+n permite que desarrollemos procedimientos con código escrito-ntegramente en SQL o con la a!uda e0tra de ,SQL. anto con el est'ndar como con

    la versión de #icrosoft" podemos crear sentencias que va!an m's all' de consultas" !aque como lenguajes de programación que son" pueden contener sentenciascondicionales" bucles" etc... Si nunca te *as introducido en ningn lenguaje deprogramación" no te preocupes porque veremos estos conocimientos con detenimiento"! si !a conoces otros lenguajes de programación" aprender's la sinta0is espec-fica deeste lenguaje.

    Los procedimientos almacenados" como cualquier función de otro lenguaje" puedenrecibir par'metros de entrada ! de salida" o no recibir ni devolver nada. Adem's dedevolver par'metros" pueden devolver incluso tablas virtuales" vistas" etc...

    Los procedimientos almacenados los almacena SQL Server 2$$% del modo m's optimopara sacarles el mejor rendimiento posible. De este modo las instrucciones quedanalmacenadas en la propia base de datos. 3sto es una gran ventaja" en cuanto aseguridad ! rendimiento" !a que los programas desarrollados por los programadores nonecesitan tener estas sentencias SQL en el código de su soft/are" ! por lo tanto estainformación que supone el propio código SQL" no tiene que MviajarM del programa a labase de datos. F como es lógico pensar" cuanta menos información MviajeM delprograma del cliente al servidor" ganaremos en seguridad ! en rendimiento.

    2.2.& arios

     Adem's de los elementos que *emos ido numerando de la estructura lógica de unabase de datos" tenemos otros muc*os que como siempre se almacenan en nuestrabase de datos ! que sirven para reali&ar diversas tareas. Algunos de estos elemenoslos iremos estudiando" pero para poder continuar con la lección sin problemas !atenemos los conocimientos b'sicos" que ampliaremos m's adelante.

    + Plani#icación - Dise4o

    +&1 ntroducción

    (ara aquellas personas que *an trabajado con desarrollo de soft/are" entender'n que

    la planificación de un programa en uno de los aspectos m's importantes para un buenprograma.

    )uando vamos a comen&ar a crear una base de datos" el principio de todo no esarrancar nuestra *erramienta de SQL Server 2$$%" #anagement Studio" ! mediantesus asistentes ponernos directamente a crear nuestra base de datos" con sus tablas"etc...

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    48/103

    Siempre debemos comen&ar reali&ando un an'lisis de las necesidades que tenemos.9na ve& que conocemos las necesidades ! partiendo de estas" definimos la estructuralógica de nuestra base de datos" ! por ltimo pasamos a disearla" bien sea en papel" omediante las *erramientas de diseo que nos ofrece SQL Server 2$$%.

    (or lo tanto tenemos diferenciados claramente tres pasos previos a la *ora de planificar la creación de una base de datos:

    • 3studio ! an'lisis de las necesidades.• Definición de los elementos que componen las estructura lógica de la base de datos.

    • Disear o plasmar esa estructura con diagramas en papel" o con SQL Server 2$$%.

    3stos pasos son important-simos" en este tipo de desarrollos no podemos utili&ar elm+todo de ir probando estructuras *asta que funcionen" ! una ve& que que funcionadar por sentado" que nuestra base de datos est' bien diseada ! !a podemos instalarlaen un servidor para que se comience a trabajar con ella.

    La planificación debe prevenirnos de imprevistos que pueden surgir" ! !a no sóloimprevistos del tipo que si tenemos ma!or o menor actividad en la base de datos"*ablamos de imprevistos que provocan que tengamos que redisear nuestrasestructuras. 9na ve& que tenemos la base de datos en e0plotación" nos encontraremoscon el problema de que ser' mu! dif-cil reali&ar modificaciones sobre ella" !a que elm+todo de trabajo que marcamos al definir nuestras estructuras" limita las posiblesmodificaciones futuras.

    )on esto puedes *acerte una idea de lo que supone la planificación" invertir tiempo enestos primeros pasos" significa a*orrarnos tiempo en un futuro de posibles

    modificaciones.

    +&2 Estudio de necesidades&

    )omo *emos dic*o" se trata del primer paso que debemos anali&ar.

    3n este paso" tendremos que estudiar detenidamente que tipo de necesidad tienenuestro cliente. Ser'n necesarias tantas reuniones como creamos oportunas para queel cliente nos e0plique cual es la información desea almacenar en nuestra base dedatos. 9na ve& tenemos claro la información fundamental para el trabajo cotidiano de laempresa de nuestro cliente" tendremos que tener pleno conocimiento" de que trabajo

    quiere *acer con esa información" es decir G)u'les son los resultados que va arequerir de esa informaciónH.

    9na ve&" que tenemos todo lo necesario para conocer que necesidades tenemos quecubrir con nuestra base de datos" procedemos a identificar todos los objetos quenecesitamos" con sus atributos ! propiedades" ! tambi+n como estar'n relacionadosunos con otros. 3stos objetos se convertir'n m's adelante en tablas" vistas" -ndices"procedimientos almacenados" etc...

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    49/103

    3s lógico penar que estos objetos que *emos planificados no ser'n los definitivos nimuc*o menos" durante la etapa de diseo ! normali&ación que e0plicaremos m'sadelante nos ir'n surgiendo nuestras propias necesidades para cumplir con losobjetivos que nos *emos marcado con nuestro cliente" o los encargados deinformarnos en la empresa que estamos contratados.

    Lo que si debe ser definitivo 4en la medida de lo posible5 son los elementos queintegran la base de datos" las entidades de información que debemos almacenar.Deberemos identificar estos elementos" de modo que podamos distinguir f'cilmenteunos de otros. F m's adelante" durante la planificación iremos encontrando lasrelaciones ! dependencias que tienen unos con otros. (ara entender mejor estadefinición vamos a poner un ejemplo.

    Bamos a suponer que tenemos como cliente a una empresa que se dedica a la ventade refrescos.

    3l primer paso es definir las necesidades que surgen de estudiar el funcionamiento deesta empresa. (or lo tanto comen&amos describiendo el funcionamiento de la empresa.

    Cuestra empresa se dedica principalmente a la venta de (e(idas" estas bebidas lasproducen las #a(ricante ! las recibimos de estas a trav+s de unas distri(uidoras a lasque previamente *abremos reali&ado unos "edidos.

    9na ve& que *emos recibido los pedidos" estos permanecen en nuestro al$acn" paraque podamos reali&ar las ventas a nuestros clientes&

    3st' claro que una empresa de bebidas tiene un funcionamiento muc*o m's complejo

    que lo que acabamos de definir" pero para el objetivo que buscamos" nos es suficiente.Iemos subra!ado las entidades de información que *an ido surgiendo en ladescripción de las necesidades de la empresa que *emos tomado como ejemplo.odas estas entidades forman un conjunto de entidades" como puedes ver en lasiguiente figura:

     

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    50/103

     

    +&1&2 Plani#icación

    9na ve& que tenemos descrita ! definida la información de la etapa de an'lisis denecesidades ! de las indicaciones del trabajo que se desea reali&ar sobre esas

    entidades marcadas" comen&amos con la etapa de planificación de la base de datos.

    La etapa de planificación tiene el objetivo de definir las diferentes propiedades de cadaentidad ! anali&ar que relaciones ser'n necesarias entre ellas o con m's elementos oentidades.

     A primera vista" parece claro que cada una de las entidades de nuestro conjunto puedeser representada en una tabla en nuestra base de datos final.

    Las propiedades de cada una de estas tablas" no son otra cosa que las columnas ocampos que la van a formar. 3s decir" los datos que nos interesa almacenar para las

    bebidas" pedidos" clientes" fabricantes etc...

    ;tra caracter-stica a definir en esta etapa son las dependencias que tendr'n las tablas.GA qu+ cliente estmos reali&ando una ventaH GQue fabricante a producido unadeterminada bebidaH.

    9na ve& reali&ado este estudio" continuamos con un proceso de nor$ali3ación" el cualmodificar' el nmero de entidades o tablas" de tal manera que puede aumentar el

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    51/103

    nmero de tablas pero disminuir la cantidad de información que almacena en cada una.3ste proceso de normali&ación es de vital importancia" ! lo estudiaremos condetenemiento en este mismo cap-tulo.

    3.1.3 %ropiedades

    (artiendo de las entidades que *emos definido en nuestro conjunto como resultado delestudio de necesidades" vamos a anali&ar las propiedades de cada una de estasentidades.

    )omen&amos con la m's lógica" 8ebidas. G)u'les podr-an ser las propiedadesfundamentalesH (iensa por ejemplo que dato te interesar-a para reali&ar una bsqueda:el no$(re de la bebida" ! el #a(ricante.

    ambi+n necesitaremos saber que distri(uidora nos *a entregado esa bebida. 3staspropiedades o campos ! los anteriores" son los esenciales para cada bebida" por ltimo

    podremos aadir otros campos que nos interesen" precio" el envase" cantidad" fec*a decaducidad" si es alco*ólica o no" en caso de ser alco*ólica los grados ! el nmero delote.

    )on estas propiedades !a podemos definir las columnas o campos de nuestra tabla8ebidas.

    6e(idas

    nombre

    fabricante

    distribuidora

    precio

    envase

    cantidad

    fec*aOcaducidad

    alco*ólica

    grados

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    52/103

    lote

    Del mismo modo podemos ir definiendo las propiedades del resto de las tablas querepresentan nuestras entidades en la base de datos:

    Clientes

    nombre

    dirección

    tel+fono

     

    7a(ricantes

    nombre

    distribuidora

    dirección

    tel+fono

    email

     

    Distri(uidoras

    nombre

    fabricantes

    dirección

    tel+fono

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    53/103

    email

     

    Pedidos

    fec*a

    distribuidora

    bebidas

    unidades

     

    Al$acn

    bebida

    unidades

    situación

     

    *entas

    fec*a

    bebida

    unidades

    cliente

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    54/103

    odas estas propiedades definidas para cada tabla" son de car'cter temporal ! no sondefinitivas" veremos como en el proceso de normali&ación" tendremos que reali&armodificaciones como !a *emos comentado.

    +&1&/ De"endencias

    Iemos visto como las tablas formaban un conjunto de entidades. Cunca debes pensaren una tabla como un elemento aislado" cada una de las tablas forma parte de nuestroconjunto" ! el conjunto vendr-a a ser la base de datos. (or lo tanto" cada tabla es laparte de un nivel superior ! no puede ser tratada individualmente" !a que como partede un todo" tendr' dependencias con el resto de tablas de la base de datos.

    3se es precisamente el trabajo que debemos llevar a cabo a*ora" anali&ar lasdependencias que tiene cada tabla con el resto para poder representarla la estructuralógica de la base de datos.

    3stas dependencias reciben el nombre de relaciones" ! estudiaremos que tipo derelaciones podemos tener" de momento" para nuestro ejemplo las veremos de un modomu! sencillo. (odemos encontrarnos tablas que dependen nicamente de una segundatabla" mientras que *abr' otras que depender'n de varias. ;tro caso que nos podemosencontrar son tablas que tienen una relación nica" como iremos viendo.

    )ojamos el ejemplo de la tablas 8ebidas ! Distribuidoras" estas tablas tendr'n unarelación entre ellas de Muno a muc*osM. La ra&ón de porque tendr'n esta relación !porque recibe esa descripción de Muno a muc*osM es la siguiente. 3sta claro" que en latabla distribuidoras almacenamos los datos de cada una de las distribuidoras quetenemos" ! que lógicamente una distribuidora" aparecer' sólo una ve& en esta tabla" es

    absurdo tener repetida la misma información. 3n cambio" si vamos a la tabla bebidas"donde almacenamos cada bebida" sabemos que una distribuidora no nos entregar'una nica bebida" sino varias. (or lo tanto" tendremos varias bebidas que *an sidoentregadas por la misma distribuidora.

    7esumiendo" una distribuidora sólo aparece una ve& en la tabla distribuidoras" mientrasque en la tabla bebidas aparecer' muc*as veces 4no sabemos cuantas5. (or esoafirmamos que la relación entre estas tablas es de una 4bebidas5 a $uc8as 4distribuidora5. Si representamos de modo gr'fico esta relación podr-a ser como ves enla siguiente figura:

     

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    55/103

     

    omemos a*ora como ejemplo la relación entre las tablas 8ebidas ! Almac+n.

    La dependencia entre estas tablas es una relación Muno a unoM" el motivo es elsiguiente. )ada una de las bebidas que tenemos en nuestra tabla bebidas" tiene unasituación determinada en el almac+n" por lo tanto" e0istir'n las mismas filas en la tablaalmac+n como tenemos en la tabla bebidas. As- pues a un registro de la tabla bebida lecorresponde un registro en la tabla almac+n. De a*- la definición de relación uno auno.

    (odemos representar esta relación gr'ficamente de la siguiente forma:

     

    Si continuamos con el mismo estudio de dependencias con el resto de la tabla denuestra base de datos" veremos que la tabla ventas depende de los clientes conrelación uno a muc*os ! a su ve& depende de la tabla bebidas" ! la tabla almac+nteniendo dependencias de varias tablas. Si representamos todas estas relaciones

    tendremos:

     

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    56/103

     

    3studia con detenimiento la figura anterior" ! trata de entender las dependencias que*emos representado" ! el motivo de estas relaciones a partir de los ejemplos derelaciones uno a uno ! uno a muc*o que *emos descrito anteriormente.

    / Nor$ali3ación

    /&1 De#inición

    La normali&ación es el mecanismo de toma de decisiones con el objetivo de recogertodos los datos de la información que se almacenar' en una base de datos !distribuirlos en tablas.

    (ara tomar estas decisiones tenemos un nmero de #or$as nor$ales que nosa!udar' a disear la mejor estructura lógica con el ma!or rendimiento posible.

    Las formas normales" son los modelos o maneras en que se pueden representar laestructura de tablas. racias a estos modelos conseguiremos ma!or eficacia. (ero noentiendas por eficacia como una reducción del tamaa" nos estamos refiriendo a queobtendremos una estructura mu! bien organi&ada" de tal modo que ser' escalablef'cilmente" permitiendo reali&ar modificaciones en un futuro sin muc*os problemas.

     Aunque *abr' veces donde gracias a la normali&ación tambi+n se redu&ca el tamao"este no es el objetivo que buscamos.

    La función de la normali&ación es favorecer la integridad de los datos" sin importar laactividad que se desarrolle sobre la base de datos. rata de evitar lo m'0imo posible la

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    57/103

    posibilidad de introducir datos que no sean ra&onables. Dentro del proceso denormali&ación podemos distinguir cuatro tipo de integridades:

    • >ntegridad de entidad.• >ntegridad de dominio.

    • >ntegridad referencial.

    • >ntegridad definida por el usuario.

    Bamos a e0plicar cada una de estas integridades ! al final de cada una nombraremosque *erramientas nos ofrece SQL Server 2$$% para cumplir con estas integridades" sidesconoces estas *erramientas" tranquilo porque las veremos con m's detenimientoen las siguientes lecciones" tan sólo que te suene para cuando lleguemos a verlas conm's detenimiento.

    /&2 nte'ridad de entidad

    Iasta a*ora *emos utili&ado en varias ocasiones la palabra entidad. 9na entidad sedefine como un concepto del mundo real" de modo que nuestras bases de datosguardan información sobre entidades. 3stas entidades puede ser de diferente car'cter:

    • 3ntidades f-sicas: un libro" una bebida" un empleado• 3ntidades conceptuales: una empresa

    • 3ntidades como eventos: una alerta de nuestra agenda que nos recuerda una tarea.

    9no de los pasos de nuestro proceso de planificación es detectar estas entidades que

    est'n relacionadas con la base de datos.La integridad de entidad pretende que cada entidad que se guarda en la base de datossea identificable de un modo nico" es decir" que evitemos la información redundante.

     A*ora bien" la identificación de entidades no es nica" podemos tener varios modos deentidad para un mismo objeto real. (or ejemplo" seguimos con el ejemplo de nuestraempresa dedicada a la venta de bebidas" podr-amos identificar las bebidas de un modogeneral" a un modo m's individual:

    • odas las bebidas en un sólo grupo.• odas las bebidas de la misma marca en un grupo.

    •  Agrupar las bebidas en función de si son alco*ólicas o no.

    • )ada bebida de modo individual.

    • 9n *ec*o sobre una determinada bebida" como puede ser el sabor de un refresco.

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    58/103

    GQu+ criterio debemos seguir entonces para identificar que es una entidad en nuestrabase de datosH

    La respuesta a esta pregunta depender' de lo que deseemos *acer con estos datos.Lo m's ra&onable es que se identifique como identidad aquellas cosas con las que vas

    a trabajar de modo unitario. Dic*o de un modo m's claro" la información que sealmacena unida 4de modo unitario5 es m's cómodo trabajar con ella" o recuperar esainformación en una nica operación.

    (ara tomar estas decisiones" simplemente debes reali&arte las preguntas de la funciónque deseas reali&ar sobre los datos. (or ejemplo" G)u'ntas bebidas tenemos de undeterminado fabricanteH" se puede decir que nuestra entidad ser' todas las bebidasque provienen de un determinado fabricante.

    3n cambio" si nos reali&amos preguntas como G3n que fec*a llegó al almac+n unadeterminada bebidaH 3stamos requiriendo que le entidad sea cada bebida de modo

    individual.)on las entidades !a identificadas" a*ora debemos identificar los *ec*os que nos danla descripción de cada entidad" en el ejemplo de las bebidas !a los *emos descrito" !aque estamos *ablando de los campos:

    • nombre• fabricante

    • distribuidora

    • ...

    )omo siguiente paso" tenemos que identificar la entidad o grupo de entidades que encierta medida" comparten este grupo de *ec*os que acabamos de describir. (aranuestro ejemplo est' claro que ser-a las bebidas que vendemos en la empresa.

    9na ve& vistos estos pasaos de la integridad de entidad" veamos como se relacionan ose representan en una base de datos:

    • 9na entidad se representa como el registro de una tabla.• 9n *ec*o 4como !a *emos dic*o5 ser-a el campo o columna de la tabla.

    • 9n grupo de entidades que comparten unos *ec*os" representar-a una tabla.

    • F como es lógico" la tabla est' formada por la cuadricula que se crea al unir lasentidades con los *ec*os" por lo que cada entidad tiene un valor para cada *ec*odeterminado.

    • 3l conjunto de todos estos valores" representa todo lo que podemos saber de unaentidad.

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    59/103

    (resta atención a lo que vamos a e0plicar a continuación" es mu! importante. )adaentidad almacenada debe tener una clave "rinci"al. 9na clave principal es un *ec*o"o grupo de *ec*os" que distinguen esa entidad del resto de entidades que compartesunos mismos *ec*os. 8ueno" visto as- puede parecer un poco complicado"simplemente estamos e0plicando que cada registro de una tabla" debe tener un campo

    que identifique de modo e0clusivo ese registro respecto al resto de registros de esatabla.

    (ara el ejemplo de nuestra empresa de bebidas" los fabricantes que producen lasbebidas que acaban en nuestro almac+n" pueden ser muc*-simas empresas" paraidentificar cada empresa del resto" tenemos el C>N de la empresa" sabemos que esecódigo es nico ! e0clusivo para cada empresa ! que no estar' repetido en ningunaotra. (ues perfectamente el C>N ser-a nuestra clave principal. 3n caso de no encontrarun *ec*o o campo que pueda ser clave principal" lo que demos *acer nosotros esquedar un código que identifique e0clusivamente cada registro. 3n caso de vernosobligados a aadir nosotros mismos un campo que *aga las funciones de clave

    principal" estamos utili&ando lo que se denomina una clave principal suplente. #ientrasque si utili&amos un campo que !a e0iste como un *ec*o de la entidad" se denominaclave principal natural.

    ;tra posibilidad" es utili&ar claves principales compuestas" estas claves principales sonel resultado de unir dos columnas de nuestra tabla para formar una clave principal.

    (ara elegir una clave principal debemos valorar tanto los datos actuales como los datosfuturos" !a que podemos seleccionar una columna como clave principal" porqueactualmente nos sirve como tal !a que identifica cada registro" pero en un futuropueden aadirse valores que se repiten para ese campo" siendo necesario utili&ar otra

    columna como clave principal" o crear una compuesta.3s de una gran importancia que definamos correctamente cada registro" !a que es laprincipal M*erramientaM de la que se sirve el servidor de base de datos" para seleccionar la información que necesitamos. #ediante una clave principal el servidor conoce conque información queremos trabajar en cada momento. 3n caso de cometer errores ! notener claves principales que identifique de manera nica cada entidad" tendr-amosproblemas con registros repetidos" !a que el servidor no sabr-a a que registro o entidadnos estamos refiriendo en nuestra actividad" ! nos lan&ar-a continuas e0cepciones.

    )on las claves principales identificadas" SQL Server nos ofrece unas caracter-sticasque nos a!udan a for&ar la integridad de entidad:

    • >ntroducir -ndices nicos en un campo para evitar la duplicación de datos por parte delos usuarios.

    • 7estrcciones (7>#A7F P3F o 9C>Q93 P3F

    • (ropiedad >dentidad.

    odas estas caracter-sticas las iremos viendo m's adelante.

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    60/103

    /&+ nte'ridad de do$inio

    Fa *emos visto que la integridad de identidad permite obtener los datos almacenadosen una base de datos. )on la integridad de dominio conseguimos controlar lainformación que guardamos en la base de datos. )omo dominio" podemos entender

    como un conjunto de normas de negocio que gestionan la disponibilidad de datos enuna determinada columna de una tabla. (or ejemplo que sólo podamos introducirnombres de fabricantes validados por un dominio de valores.

    enemos una integridad de dominio b'sica" como no poder introducir letras en camposdestinados para almacenar nmeros. A ma!or nmero de limitaciones" mejoraseguraremos el correcto funcionamiento de nuestra base de datos.

    3stas normas o reglas de integridad de dominio pueden indicar que campos sonnecesarios tener obligatoriamente con valores 4no se pueden dejar vac-os" C9LL5 paraque la base de datos no tenga datos sin conectar en el caso de tener relaciones o

    dependencias entre tablas.

    Las *erramientas que nos ofrece SQL Server para asegurar la integridad de dominio !que iremos estudiando son:

    • ipos de datos• ipos de datos definidos por el usuario.

    • 7estricciones:

    • )I3)P

    D3NA9L• N;73>C P3F

    • 7eglas

    • C; C9LL

    /&/ nte'ridad re#erencial&

    (ara ver este tipo de integridad tienes que pensar en las dependencias de tablas que*emos visto en la base de datos que *emos puesto como ejemplo de la empresa de

    venta de bebidas.

    Iemos visto por ejemplo que para cada registro de la tabla 8ebidas" ten-amos unregistro en la tabla Almac+n. F otro tipo de dependencias o relaciones que *ab-amosdenominado relaciones Muno a muc*osM.

    3stas relaciones se producen entre columnas comunes de las tablas que se relacionan.)omo pude ser el nombre de una bebida" el de una distribuidora etc...

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    61/103

    )on la integridad referencial tratamos de asegurar que las filas relacionadas entretablas" no dejen de estarlo" o var-en esta relación cuando llevemos modificaciones a losdatos. )on esta integridad limitaremos la actividad que puede reali&a un usuario sobrela base de datos.

    Bamos a ponernos en un ejemplo sencillo" nuestra tabla bebidas tiene una columnallamada MDistribuidorasM" que se relaciona con nuestra tabla MDistribuidoraM medianteesta misma columna. Fa *emos comentado este tipo de dependencia en este mismotema. Llevando a cabo una integridad referencial" limitaremos las siguientes tareas a unusuario:

    • 3l usuario no podr' cambiar el nombre de una distribuidora en una de las tablas" !a quesi as- lo *ace" este valor no ser' el mismo en las dos tablas" ! provoca que la relaciónquede rota. 9n registro o varios 4dependiendo de en que tabla realice esa modificación5se quedar' sin su pareja ! no podr' encontrar la relación.

    • Co podr' eliminar registros de la tabla distribuidora que se encuentren en la tabla8ebidas. Fa que todos aquellos registros de la tabla 8ebidas que estuviesen vinculados

    a la Distribuidora eliminada se quedar'n sin relación.

    • Co puede aadir registros nuevos en la tabla bebida cu!o campo Distribuidora nocoincida con ninguna de las distribuidoras aadidos en la tabla Distribuidoras.

    (or lo tanto" lo que debemos comprender de la integridad referencial es que e0istenrelaciones entre tablas que deben permanecer invariables sea cual sea la actividadsobre ellas.

    (ara mantener esta integridad SQL Server nos ofrece:

    7estricciones N;73>C P3F.• 7estricciones )I3)P.

    • Desencadenadores ! procedimientos almacenados.

    /&5 nte'ridad #iada "or usuario&

    Las tres integridades que acabamos de ver" est'n todas integradas en las bases dedatos. Adem's no son e0clusivas para SQL Server 2$$%" sino que las encontrar's encualquier base de datos. Si bien puede que no est+n completamente integradas !funcionales" son compatibles en cualquier 'mbito.

    La integridad que vamos a ver en este apartado" recoge todas las reglas que no est'nincluidas en ninguna de las integridades anteriores.

    9n ejemplo de este tipo de integridad de usuario" ser-a obligar a que una determinadabebida siempre tenga dos tipos de envases. 3ste tipo de integridad no la cubre ni la deentidad" ni de dominio" ni referencial. nicamente podemos controlarla medianteprocedimientos almacenados" desencadenadores o reglas que se almacenen en labase de datos.

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    62/103

    3sta integridad puede ser controlada tambi+n desde los programas clientes queconectan a la base de datos. #ediante el código de programación estos programaspueden comprobar antes de enviar los datos al servidor" si estos cumplen con undeterminado juego de normas. De este modo el usuario estar' limitado al utili&ar elinterface del programa" recibiendo los pertinentes avisos del modo de introducir los

    datos. A*ora bien" aunque es completamente v'lido implementar esta integridad en elprograma de cliente" lo m's efica& es colocarlo en el servidor" en la propia base dedatos. Fa que no sabemos ni el nmero ni el tipo de programas que se conectar' a labase de datos" ! nosotros como desarrolladores tendr-amos que incluir este tipo derestricciones en cada uno de los programas desarrollados" a parte del peligro quesupondr-a aquellos programas clientes" que nuestra empresa a adquirido ! a los que notenemos acceso para modificar e incluir estas reglas.

    /& 7or$as de nor$ali3ación

    Las formas normales definen una serie de normas o reglas que a!udan a organi&ar losdatos en la estructura lógica de una base de datos.

    )ada una de las formas que vamos a ir e0plicando *eredan las reglas de suantecesora" as- la forma normal )" inclu!e las reglas de las formas A ! 8. (araentender desde un sentido practico los diferentes modos de normali&ación" vamos atomar como ejemplo la base de datos de la empresa vendedora de bebidas.

    7ecordamos la tabla 8ebidas de esta base de datos:

    6e(idas

    nombre

    fabricante

    distribuidora

    precio

    envase

    cantidad

    fec*aOcaducidad

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    63/103

    alco*ólica

    grados

    lote

    Bamos a suponer que tenemos esta tabla con los siguientes datos:

    no$(re#a(rican

    tedistri(uido

    ra"reci

    oenvas

    ecantida

    d#ec8a9caducid

    adalc8ólic

    a'rado

    slote

    PasCaranja

    Pas (ardo $.=$ lata $"== 226$62$$K Nalso $$$1

    )oca,)ola

    )oca)ola

     Arros $"% vidrio $"== 126$J62$$J Nalso $$$2

    LaCavarra3tiquetaBerde

    LaCavarra

    3nterlin 2"% vidrio 1Berdade

    ro2%

    $%

    (ac*ar 

    an3ndrinas

    Las3ndrinas 3nterlin ="$$ vidrio $"$ Berdadero =$ $21

    Debes tener claro que esta tabla contiene los datos sin ser normali&ados" si bien sonlos datos que deseamos gestionar. A continuación" nos basaremos en esta tabla paraver como aplicar sobre ella el proceso de normali&ación. (or supuesto" sólo es unatabla de prueba" los campos que en un caso deber-amos controlar ser-an muc*os m's.

    /&&1 7or$a Nor$al A

    Las normas que debemos aplicar en la primera forma normal son mu! b'sica !sencillas.

    Re'la: )ada uno de los campos de la tabla solo puede almacenarun tipo de datos" ! adem's cada dato sólo se almacenar porseparado" es decir individualmente.

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    64/103

    3sta regla que *emos anunciado puedes encontrarla con la definición de la regla dedatos atómicos o indivisibles.

    (ara entender mejor el significado de esta regla" vamos a e0plicar como podr-amosquebrantarla. 3n la tabla que acabamos de presentar" vemos que estamos guardando

    los datos del fabricante ! de la distribuidora en dos campos diferentes. 9n modo desaltarnos la regla de la forma normal A" es guardar el nombre del fabricante ! el nombrede la distribuidora en un nico campo. De este modo no estamos cumpliendo la norma"!a que estamos guardando información de diferentes caracter-sticas en un nicocampo.

    ;tra manera de no cumplir la regla que estamos viendo es la repetición de un campo.3sta t+cnica es mu! comn en administradores que se est'n iniciando en el desarrollode bases de datos.

    Bamos a poner un ejemplo de este error tan comn. Cos situamos de nuevo en nuestra

    tabla" a*ora imaginamos que una bebida puede ser recibida en diferentes envases:lata" vidrio... 3l desarrollador puede pensar" como tenemos varias opciones de envasepara una misma bebida" la forma m's sencilla de cubrir esta información es tener lossiguientes campos en la tabla: envaseOA ! envaseO8. De este modo parece lógico quepodemos guardar dos tipos de envases para cada bebida.

    3ste tipo de soluciones provoca bastantes problemas" el principal causante de estosproblemas es la poca fle0ibilidad que nos ofrece esta estructura. Cuestra tabla dejar'de cumplir con nuestras necesidades en el momento en que una bebida nos llegue conm's de un tipo de envase" *emos nombrado como posibles envases lata ! vidrio" perotambi+n podr-an llegar como pl'stico" por citar un ejemplo. (or lo tanto esta estructura

    lejos de ser sencilla es mu! compleja" es imposible definir en un principio los diferentestipos de envases que debemos controlar. A*ora podemos pensar" pues vamos a ponersuficientes campos de modo que nuestras necesidades nunca superen ese nmero decampos. )omo !a imaginar's" tomar este tipo de soluciones es una error enorme.3steremos reservando memoria sin ninguna necesidad" muc*as bebidas vendr'n en unsólo tipo de envase ! tendremos campos vac-os que resultar'n completamente intiles.

    (ara solucionar el problema que *emos planteado como ejemplo" tenemos variassoluciones" como almacenar la misma bebida en diferentes registros de nuestra tabla"un registro por cada tipo de envase. 3sta es una solución v'lida" pero mu! poco o nadaefica& desde el punto de vista del rendimiento. La mejor solución es sacar MfueraM unatabla con los tipos de envase llamada iposO3nvase por ejemplo ! utili&ar la integridadreferencial para relacionarla con la tabla 8ebidas.

    (ara aplicar la forma normal A" debemos pensar en que actividad vamos a reali&ar enla tabla" campos por los que vamos a ordenar" como vamos a recoger sus registros" silos vamos a agrupar" etc...

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    65/103

    La tabla que *emos presentado al principio podemos decir que cumple la primera formanormal" *a e0cepción del caso que tengamos varios tipos de envases. Bamos asuponer que sólo nos llegan las bebidas en un nico tipo de envase.

    Si nos fijamos en los registros" vemos que tenemos información que se repite:

    no$(re#a(rican

    tedistri(uido

    ra"reci

    oenvas

    ecantida

    d#ec8a9caducid

    adalc8ólic

    a'rado

    slote

    PasCaranja

    Pas (ardo $.=$ lata $"== 226$62$$K Nalso $$$1

    )oca,)ola

    )oca)ola

     Arros $"% vidrio $"== 126$J62$$J Nalso $$$2

    (ac*ar an La

    Cavarra3tiquetaBerde

    LaCavarra

    3nterlin 2"% vidrio 1Berdade

    ro2%

    $%

    (ac*ar an

    3ndrinas

    Las3ndrinas

    3nterlin ="$$ vidrio $"$Berdade

    ro=$

    $21

    Iemos resaltado en naranja algunos de los datos que se repiten. Bemos que ladistribuidora 3nterlin se repiten para las bebidas (ac*ar'n La Cavarra 3tiqueta Berde !para (ac*ar'n 3ndrinas. Si se diese el caso de que la empresa contrata otradistribuidora para la entrega de pac*ar'n" tendr-amos que actuali&ar los dos registros.3sto puede provocar un fallo al reali&ar las actuali&aciones si pasamos por alto uno delos registros" !a que tendr-amos datos inco*erentes. (or lo tanto tendremos quemejorar nuestra normali&ación.

    4.!.1.1 'e(inici)n de claves principales.

    9na clave principal contiene información de un registro de tal modo que gracias a esainformación podamos distinguir ese registro de todos los dem's" visto de otro forma" lainformación de la clave principal *ace a un registro nico e irrepetible en una tabla.

    9n clave principal puede estar compuueta por una o varias columnas. 3n caso de estar formada por varias columnas es requisito indispensable que ninguna de esas columnastenga información repetida en un mismo registro.

  • 8/18/2019 Curso SQL Server 2005. SQL Server 2005 tiene una cantidad enorme de herramientas, tanto de cliente como de s…

    66/103

    )omo !a *emos visto" la clave principal garanti&a la integridad de entidad en una tabla.

    3n una tabla podemos tener varias columnas que puedan formar parte de una claveprincipal" estas columnas reciben el nombre de claves candidatas. La función deladministrador de la base de datos es definir estas claves candidatas como primer paso"

    para m's