Muy Bueno Curso SQL Server 2005

Embed Size (px)

Citation preview

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    1/101

    Curso SQL Server 2005

    Nº- 1 Presentación del curso.............................................................................22 Microsoft SQL Server 2005..................................................................................5

    2.1 Versiones de SQL Server 2005.......................................................................5

    3 Requisitos............................................................................................................. 7

    3.1 Requisitos de Software................................................................................... 7

    3.2 Requisitos de Hardware..................................................................................8

    !asos !revios........................................................................................................8

    5 Instalación.......................................................................................................12" SQL Server #on$%uration Mana%er....................................................................23

    ".1 Modi$car e& estado de &os servicios..............................................................2

    '(ercicios.................................................................................................................. 25'(ercicio 1.............................................................................................................. 25

    )*+ 2 ,ntroducci-n a &as ases de datos...................................................................2"1 /e$nici-n........................................................................................................... 2"

    2 'structuraci-n de una ase de datos.................................................................282.1 'structura fsica...........................................................................................28

    2.2 'structura &-%ica.......................................................................................... 2

    3 !&ani$caci-n + /iseo.........................................................................................33

    3.1 ,ntroducci-n................................................................................................. 33

    3.2 'studio de necesidades................................................................................33

    3.1.2 !&ani$caci-n.............................................................................................. 3

    3.1. /eendencias...........................................................................................37

    )or4a&iaci-n.....................................................................................................3

    .1 /e$nici-n..................................................................................................... 3

    .2 ,nte%ridad de entidad...................................................................................3

    .3 ,nte%ridad de do4inio..................................................................................1

    . ,nte%ridad referencia&................................................................................... 1

    .5 ,nte%ridad $(ada or usuario........................................................................2

    ." 6or4as de nor4a&iaci-n.............................................................................2

    .".1 6or4a )or4a& ........................................................................................ 3

    .".2 6or4a )or4a& ........................................................................................ "

    .".3 6or4a )or4a& #........................................................................................

    .". #onc&usi-n de& roceso de nor4a&iaci-n..................................................

    .".5 /esnor4a&iaci-n......................................................................................

    5 Herra4ientas ara &a nor4a&iaci-n...................................................................50

    5.1 ,dentidad...................................................................................................... 505.2 Restricciones................................................................................................ 50

    5.3 ,nte%ridad en re&aciones...............................................................................51

    5. /esencadenadores.......................................................................................53

    '(ercicios.................................................................................................................. 53'(ercicio 1.............................................................................................................. 53

    '(ercicio 2.............................................................................................................. 53

    )*+ 3 ,niciaci-n a &a d4inistraci-n..........................................................................51 ,ntroducci-n....................................................................................................... 5

    1

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    2/101

    1.1 SQL Server Mana%e4ent Studio...................................................................5

    2 Servidores registrados..................................................................................52.1 %ruar servidores......................................................................................."3

    3 '9&orador de o(etos........................................................................................"5

    3.1 #onectar a un servidor................................................................................. ""

    3.2 #aretas de& e9&orador de o(etos............................................................."7

    3.3 !estaa Resu4en........................................................................................."83. #aretas rincia&es....................................................................................70

    3.5 #areta de ases de datos...........................................................................70

    '(ercicios.................................................................................................................. 71'(ercicio 1.............................................................................................................. 71

    2

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    3/101

    Nº- 1 Presentación del curso

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

    1. Dominio del lenuaje SQL.2. !dministraci"n de bases de datos.

    #anto para aprender $ practicar con el lenuaje SQL% como para administrar $ mantener una base dedatos nos apo$aremos en el servidor de base de datos &icrosoft SQL Server 2005.

    !l finali'ar el curso% el almuno ser( capa' de implementar sentencias SQL para reali'ar las m(scomplejas consultas $ sentencias de manipulaci"n de datos. )or otro lado% tendr( los conocimientosnecesarios para comen'ar a administrar $ mantener una base de datos empresarial mediante SQL

    Server 2005.

    Como iremos viendo% SQL Server 2005 tiene una cantidad enorme de *erramientas% tanto de clientecomo de servidor% que nos permiten un control absoluto sobre nuestros datos. )ara seuir este cursocon eficacia no es necesario unos conocimientos previos en bases de datos% ni en proramaci"nSQL% $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 el lenuaje #,SQL%lenuaje basado en SQL pero espec-fico de &icrosoft que nos permitir( disear c"dio con ma$ores

    3

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    4/101

     posibilidades de lo que ofrece SQL. De iual modo% tampoco es necesario conocimientos de proramaci"n $a que iremos viendo todo desde un principio.

    )or lo tanto este curso pretende que los alumnos que se inician en el mundo de las bases de datossean capaces de disear $ administrar una base de datos $ desenvolverse con soltura en estosentornos. )ara aquellos alumnos que $a tenan nociones de bases de datos o lenuaje SQL% afiancen

    $ ampl-en esos conocimientos $ puedan reali'ar las principales tareas de administraci"n de uno delos servidores preferidos por muc*as empresas% SQL Server 2005. )or otro lado% este curso estaorientado tambi+n a aquellas personas que se dedican al desarrollo de aplicaciones inform(ticas%tanto p(inas /eb% intranets $ proramas de escritorio% con el aprendi'aje de SQL $ laadministraci"n de servidores de datos% comprender(n mejor el enlace de sus aplicaciones con las bases de datos $ ser(n capaces de separar el desarrollo de sus aplicaciones de la capa de neocio quesupone la parte de la base de datos% mediante el lenuaje #,SQL podr(n incluir objetos que realicentareas que solucionan cantidad de problemas que se plantean durante el desarrollo de aplicaciones%mejorando enormemente la eficacia $ la seuridad de las aplicaciones.

    Seuro que *abr( proramadores que desarrollan las coneiones a sus bases de datos mediante unnico usuarios% otro que las reali'an mediante el usuario sa...#odos estos casos ponen en peliro laseuridad de los datos vitales de una empresa% $ es motivo suficiente para animar a los alumnos aque realicen este curso.

    Con la aparici"n de la inform(tica% las empresas son capaces de estionar los mismos datos en unas*oras que lo que antes estionaban durante meses. Sen se *an ido moderni'ando lascaracter-sticas de *ard/are $ soft/are% cualquier empresa puede cubrir la necesidad del control deinformaci"n de ran valor para su desarrollo $ crecimiento de un modo sencillo $ rentable para elresultado que obtienen.

    3l propio sistema de control de datos *a ido mejorando con el tiempo% desde las primerasaplicaciones que estionaban su propia informaci"n aloj(ndolas en unidades de almacenamientoeternas 4discos duros% disquetes% cintas... con el problema de que s"lo esa aplicaci"n era capa' deinterpretar $ utili'ar esa informaci"n. &(s adelante comen'aron a imponerse unos sistemas dealmacenamiento est(ndar que facilitaba la tarea de compartir esa informaci"n entre diferentesaplicaciones.

    )or fin aparecieron los servidores de bases de datos% *erramientas cu$a nica $ principal funci"nera la administraci"n de informaci"n. &ediante diferentes protocolos de comunicaci"n lasdiferentes aplicaciones pueden enla'arse con estos servidores% ordenar las tareas que necesiten paraque el servidor se encarue de operar esas tareas $ devolver los resultados deseados. )odemos tener nuestra *erramienta de administraci"n de datos en un ordenar 4Servidor $ que el resto deordenadores 4Clientes se conecten a este servidor mediante sus aplicaciones para trabajar con estosdatos% esta estructura Servidor6Cliente es la que se *a terminado de imponer pudiendo distinuir claramente tres niveles o capas de trabajo:

    Capa Descripción

    !plicaciones inform(ticas. 3stas aplicaciones pueden ser desde p(inas /eba aplicaciones de escritorio% encaradas de ofreceinterfa' de usuario para presentar la informaci"n

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    5/101

    $ ofrecer la posibilidad de reali'ar operaciones alusuario.

    L"ica de neocio.Diferentes objetos diseados 4que m(s adelanteaprenderemos a crear $ utili'ar para operar connuestros datos.

    !dministrador de bases de datos.

    Servidor que se encarar( de administrar $ejecutar las tareas que se le encaruen paraestionar esos datos. De este modo el proramador puede dedicarse a su propiaaplicaci"n% encarando las tareas deadministraci"n al servidor de datos. 3l servidor recibir( esas ordenes o tareas en forma deinstrucciones en lenuaje SQL eneralmente% ode un modo m(s avan'ado $ con ma$ores posibilidades con lenuaje #SQL de &icrosoft para servidores SQL Server. 3n este curso

    aprendermos ambos lenuajes% abriendo un(banico de posibilidades que cumplan concualquier necesidad que se plantee aadministradores $ desarroladores.

    3s comn referirse a los servidores de datos como 7D8&S% silas de 7elational Data8ase&anaement S$stem. 3s el modo m(s comn $ tambi+n mas correcto de nombrarlos.

    9na persona encara de la administrar una base de datos tiene como misi"n no s"lo controlar la basede datos empresarial% sino tambi+n de aconsejar% asesorar a los desarrolladores% usuarios $ directiva

    de la empresa. )or normal eneral una empresa cuenta con una o varias personas encaradas decontrolar el sistema de base de datos% proramaci"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% tiene las siuientesfunciones:

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

    • Controlar la eficacia de la base de datos.

    • )reocuparse de la seuridad de los datos.

    • Supervisar el estado del sistema.

    • !tender 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 del sistema.

    • Supervisar $ conocer en todo momento la actividad que reali'an los usuarios sobre los datos.

    5

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    6/101

    • )reocuparse de las nuevas actuali'aciones que salen al mercado $ en caso de ser necesario%estudiar el momento apropiado de actuali'ar el sistema% o de reali'ar miraciones deestructuras $ datos *acia nuevos sistemas.

    "

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    7/101

    2 Microsoft SQL Server 2005

    !ctualmente podemos encontrarnos con varios servidores de base de datos 47D8&S:

    • :rac&e• /2

    • M;SQL

    • SQL Server

    • ...

    #odos ellos desempean la misma funci"n% pero tienen diferentes propiedades $ *erramientas quedistinuen claramente unos de otros.

    SQL Server 2005 es la siuiente edici"n de su predecesor en el mercado% SQL Server 2000% el cualtuvo mu$ buena aceptaci"n en las empresas por su alta calidad.

    Con esta ltima versi"n se *a conseuido mejorar an mas SQL Server 2000% mejorando lafiabilidad% escalabilidad% rendimiento $ manejo. &uc*as de las empresas controlan sus redes localescon el conocido sistema operativo ;indo/s Server 200

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    8/101

    • #o4unicaci-n erfecta con otras a&icaciones Microsoft< udiendo resentarinfor4aci-n en Ao(as de '9ce&< or citar un e(e4&o.

    • ,nte%raci-n erfecta con Aerra4ientas de desarro&&o de software co4o Visua&Studio 2005.

    • Len%ua(e B+SQL ara a4&iar &as osii&idades de &as tareas a rea&iar.

    • #aacidad ara interretar funciones rea&iadas con #LR C#o44on Lan%ua%eRunti4eD de &atafor4as .)'B< esto nos er4ite rea&iar funciones en &en%ua(es4u; conocidos co4o Visua& asic o #E.

    2.1 Versiones de SQL Server 2005

    Como acabamos de ver SQL Server 2005 tiene una serie de propiedades comunes a las cuales se leaaden una serie de *erramientas para ir formando diferentes versiones orientadas a diferentes tiposde empresas $ funciones.

    3stas ediciones las presentamos a continuaci"n comen'ando con la que menos posibilidades ofrece*asta llear a la m(s completa:

    Versión Descrición

    SQL Server 2005 '9ress 'dition

    Versi-n ?sica de& servidor< &4itada en e&

    n@4ero de usuarios ; en cuanto a&

    vo&u4en de datos a %estionar. 's &a

    versi-n que Microsoft nos ofrece

    %ratuita4ente ; sin duda es &a versi-n

    idea& ara co4enar a traa(ar ; desde &a

    cua& ode4os ir a4&iando a versionessueriores si nos fuese necesario. !er4ite

    ser distriuida con ro%ra4as de

    desarro&&o roios con su corresondiente

    &icencia.

    SQL Server 2005 =orF%rou 'dition

    :rientada a equeas e4resas< no tiene

    &4ite de n@4eros de usuarios ; ni de

    caacidad de a&4acena4iento en cuanto

    a& ta4ao de &a ase de dato. )o inc&u;e

    &as Aerra4ientas avanadas de &asversiones sueriores.

    SQL Server 2005 Standard 'dition

    !ensada ara e4resas de 4ediano

    ta4ao< cuenta con Aerra4ientas

    avanadas ara &a ad4inistraci-n ;

    an?&isis de datos.

    8

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    9/101

    SQL Server 2005 'nterrise 'dition

    'sta edici-n est? rearada ara %estionar

    &as e4resas de 4a;or ta4ao< ;a que

    ofrece 4a;or otencia que &as anteriores.

     G ade4?s de aadir servicios avanados ;

    estar rearada ara traa(ar con

    4u&tirocesadores de " its< a4&ias

    4e4orias RM. !ode4os Aa&ar de asesde datos con ta4aos dados en Bera;tes<

    ara que uedas Aacer una idea de &a

    cantidad de infor4aci-n que uede &&e%ar

    a %estionar con $ai&idad. Biene &a

    caacidad de traa(ar con #&@sters de

    ordenadores< de 4odo que e& fa&&o de uno

    de e&&os active otro ordenador que se

    encontraa asivo Aasta e& 4o4ento de&

    error.

    SQL Server 2005 /eve&oer 'dition

    Se trata de una versi-n que cuenta con &as

    4is4as caractersticas que su versi-n

    anterior< con &a diferencia de que va

    diri%ida a desarro&&adores. !orque si

    tienen &as 4is4as caractersticas< no se

    trata de &a 4is4a edici-nI 'sta versi-n

    esecia& est? &i4itada or su &icencia que

    no er4ite que se e(ecute en entornos de

    e9&otaci-n ; s-&o se er4ite ara

    desarro&&o. :tra diferencia i4ortante< esque er4ite ser insta&ada en Siste4as

    :erativos =indows >! !rofessiona&

    'dition.

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    10/101

    !e"uisitos

    3n funci"n de la edici"n con la que va$amos a trabajar tendremos unos requisitos m-nimos que

    nuestras m(quinas deber(n cumplir $ del mismo modo nuestro soft/are% $ especialmente el sistemaoperativo sobre el que va a trabajar. Debes pensar que no estamos instalando un prorama deescritorio% se trata de un potente 7D8&S que cuenta con una serie de servicios avan'ados% adem(sde accesos desde =nternet etc...

    !.1 "e#uisitos de So$t%are

    3l principal requisito $ el m(s importante que debemos cumplir% es el sistema operativo sobre el quevamos a trabajar. ?aturalmente este requisito depender( de la versi"n de SQL Server 2005 quequeramos instalar. 3s l"ico pensar que aquellas versiones que est(n orientadas a trabajar en unentorno empresarial no se podr(n instalar sobre versiones de sistema operativo diriidas a

    ordenadores personales% como ;indo/s >) @ome 3dition.

     

    Sin luar a duda% para un entorno empresarial% con informaci"n de untamao mu$ importante% el mejor entorno de trabajo para SQLServer 2005% es ;indo/s Server 200

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    11/101

    Si tenemos como sistema operativo ;indo/s 2000 ser( imprescindible instalar el S)A o superior.

    3s imposible que podamos instalar SQL Server 2005 sobre versiones anteriores a ;indo/s >) 4B%&e... $ en ;indo/s ?#.

    )or lo tanto en cuanto a soft/are los requisitos son bastante l"ico% tanto que ser-a mu$ dif-cil

    encontrar una empresa que no los cumpla por pequea que sea.3n cuanto a poder reali'ar $ seuir el curso% no tendr(s ninn problema% $a que es m(s que seuroque tendr(s ;indo/s >) 4a ser posible la edici"n )rofessional% con S)2. 3n cuanto a la versi"n deSQL Server 2005 con la que vamos a seuir el curso% l"icamente ser( la versi"n 3press% $a que podemos decir que es la versi"n acad+mica que &icrosoft *a decidido ofrecer al pblico de unmodo ratuito.

    Con esta versi"n tendremos todo lo necesario para el objetivo de este curso% nos permitir( reali'ar todas las pr(cticas que iremos viendo a lo laro del curso. ?o pienses que por ser la edici"n menoscompleta $ ser ratuita% esta mu$ limitada% $ nos encontramos antes una especie de demo de prueba

    del verdadero SQL Server 2005% la versi"n 3press es posible instalarla para trabajar con pequeasempresas con una licencia de eplotaci"n 4lo mejor ser-a aconsejar a la empresa para que invirtieradinero en una versi"n superior% lo que trato de decirte es que con esta versi"n contamos con una*erramienta suficientemente potente% que supera con creces las bases de datos de escritorio.

    !.2 "e#uisitos de &ard%are

    )odemos *ablar de unos requisitos m-nimos o recomendables de @ard/are% *o$ en d-a lo m(sseuro es que esto requisitos se cumplan con creces en cualquier empresa o incluso en ordenadores personales.

     

    3l procesador recomendado% es como m-nimo un )entium ===% o decualquier otro fabricante pero con al menos 1 @'. 3n el mercado *o$en d-a% los )C vienen con )entium =E como procesador m-nimo $ !&D!t*lon supera las velocidad de estos.

     

    3n cuanto a la memoria 7!& que debemos disponer% depender( de la versi"n que va$amos ainstalar. Con la que nosotros trabajaremos 4SQL Server 2005 3press 3dition es suficiente con 12&b% en cambio para el resto de ediciones como m-nimo tendremos 512 &b% aunque para las

    versiones est(ndar $ empresarial es m(s recomendable disponer de 1b.

     

    11

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    12/101

    3stos son los requisitos m-nimos% pero cuanta ma$or memoria tenamos% mejor se aprovec*ar(n lascaracter-sticas de SQL Server 2005% sobretodo para ediciones que trabajen con FA bits $ bases dedatos de ran tamao.

     

    La memoria en disco m-nima que tenemos que tener var-a con las caracter-sticas que va$amos ainstalar% $a que como veremos en este mismo cap-tulo% podremos eleir las *erramientas quedeseamos instalar.

    !unque no es un requisito obliatorio% el entorno de trabajo de SQL Server 2005 se trabaja de unmodo m(s c"modo con una resoluci"n de 102AGF.

    # Pasos Previos

    !ntes de comen'ar con la instalaci"n de SQL Server 2005 debemos tener en cuenta una seria derequisitos previos a cumplir. !luno de estos requisitos debemos cumpliros por seuridad $ otrosson obliatorios para poder finali'ar la instalaci"n correctamente.

    Con versiones anteriores a SQL Server 2005% no ten-amos la posibilidad de tener varias instanciasdel servidor de base de datos conviviendo en un mismo )C. =ncluso podemos tener en el mismoequipo varias versiones de SQL Server.

    !l *acer una instalaci"n tenemos la posibilidad de sobrescribir sobre una instalaci"n anterior.#ambi+n tenemos la posibilidad de instalar SQL Server 2005% actuali'ando una versi"n anterior. Sivamos a actuali'ar una versi"n de SQL Server 2000 tenemos que tener instalado el Service )acH < $

    si es an m(s antiua% SQL Server G% debemos de tener instalado previamente el Service )acH G deesta versi"n. )or lo tanto% revisaremos antes de instalar SQL Server 2005 sobre cualquiera de estasversiones si tenemos estos paquetes $ sino es as- adquirirlos desde la p(ina de &icrosoft.

    3n cualquier caso% si vamos a reali'ar una instalaci"n sobre otra versi"n es m(s que recomendablereali'ar una copia de seuridad de toda la informaci"n% $ sobre todo de nuestras bases de datos% paraevitar problemas $ sorpresas.

    Si vamos a reali'ar la instalaci"n en un servidor con ;indo/s 2000 Server o ;indo/s 200< Server%es mu$ probable que tenamos instalado $ en funcionamiento el Servidor de p(inas /eb% ==S4=nternet =nformation Server. 3n ese caso debemos parar este servicio antes de proseuir con la

    instalaci"n. )ara llevar a cabo esta tarea% abrimos el panel de control:

    12

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    13/101

    3ntre los iconos del panel de *erramientas seleccionamos I@erramientas !dministrativasI:

    13

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    14/101

    3sto nos abre una ventana con las *erramientas administrativas que tenemos instaladas en nuestroequipo% siempre $ cuando tenamos instalado los servicios de ==S encontraremos el icono:

    1

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    15/101

    3jecutamos la *erramienta $ se nos presenta el panel de =nternet =nforamtion Server% despleamos elicono de nuestro servidor o pc% *asta encontrarnos con los sitios /eb que tenemos ejecutando en elservidor dentro de ISitio ;eb predeterminadoI% con este seleccionado pulsamos en el bot"ndestinado a parar el servicio como puedes ver en la siuiente fiura:

    15

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    16/101

    !dem(s de para el servicio de servidor de p(inas /eb debemos parar tambi+n el visor de sucesos $el editor de reistros de ;indo/s:

    1"

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    17/101

    )ara concluir% si no estamos instalando SQL Server 2005 como una copia personal para reali'ar  pruebas o desarrollar% $ lo estamos *aciendo para eplotar la base de datos en un servidor al quetendr(n acceso clientes $ usuarios% deberemos lo primero iniciar sesi"n en el servidor como!dministrador para instalar SQL Server. 3l siuiente paso ser( crear las correspondientes cuentas deusuario para los clientes de SQL Server.

    5 $nstalación

    3plicaremos la instalaci"n de la versi"n ratuita que ser( con la que trabajaremos en este curso%desde que se lan'" al mercado SQL Server 2005% *an aadido una versi"n m(s avan'ada a SQLServer 2005 3press 3dition% que por suerte inclu$e aluna *erramienta m(s avan'ada que la que enun principio publicaron. La versi"n se denomina &icrosoft SQL Server 2005 3press 3dition ;it*!dvanced Services. )ara descararte esta versi"n pinc*a en el siuiente enlace:

    &icrosoft SQL Server 2005 3press 3dition /it* !dvanced Services

    3jecutamos el prorama de instalaci"n $ tras descomprimir en nuestro equipo los paquetesnecesarios para llevar a cabo la instalaci"n% lo primero que tenemos es el contrato de licencia.

    17

    http://www.microsoft.com/downloads/details.aspx?FamilyID=4c6ba9fd-319a-4887-bc75-3b02b5e48a40&displaylang=eshttp://www.microsoft.com/downloads/details.aspx?FamilyID=4c6ba9fd-319a-4887-bc75-3b02b5e48a40&displaylang=es

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    18/101

    !ceptamos las condiciones $ proseuimos con el asistente. 3n la siuiente ventana nos indica loscomponentes que se van a instalar:

    18

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    19/101

    )inc*amos en instalar% $ comien'a el proceso de instalaci"n de los componentes auiliares que SQLServer 2005 necesita para instalar el producto final:

    1

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    20/101

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

    20

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    21/101

    9na ve' finali'ado% pulsamos en siuiente% $ el asistente comprobar( la confiuraci"n de nuestroequipo para comprobar que cumplimos con unas caracter-sticas m-nimas:

    21

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    22/101

    9na ve' comprobada la confiurada% comien'a el asisitente de instalaci"n real de SQL Server 2005:

    22

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    23/101

    )ulsamos en siuiente% $ vuelve a reali'ar una nueva confiuraci"n% esta ve' de la confiuraci"n delsistema:

    23

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    24/101

    9na ve' que el asistente comprueba que todo est( correcto% pulsamos en siuiente% donde elasistente siue recoiendo los paquetes necesarios para la instalaci"n:

    2

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    25/101

    Cuando finali'a la etracci"n de fic*eros% nos pide la informaci"n de reistro de nuestro equipo%concretamente nuestro nombre $ compa-a.

    25

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    26/101

    =ntroducimos estos valores personales $ continuamos. 3n la siuiente pantalla debemos seleccionar los elementos que deseamos instalar% debemos marcar todas las opciones% incluidos los componentesde clientes que inclu$en las *erramientas que utili'aremos para administrar las bases de datos

    mediante SQL Server &anaement Studio 3press:

    2"

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    27/101

    Seuimos con el asistente% $ nos pide el modo de autenticaci"n para conectar con SQL Server.#enemos dos modos de autenticaci"n:

    • &odo /indo/s.• &odo mio 4;indo/s $ SQL Server

    De estas dos opciones% como veremos m(s adelante% la m(s seura de toda es utili'ar autenticaci"n/indo/s% $a que de este modo en proramas clientes que conecten con nuestro servidor evitamos elenv-o de informaci"n privada por la red% que puede ser interceptada $ utili'ada para daar nuestrosistema. De todos modos veremos m(s adelante que podemos aadir diferentes modos de reistro para la conei"n con el servidor de base de datos. )or lo tanto seleccionamos I&odo deautenticaci"n de ;indo/sI $ continuamos.

    27

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    28/101

    Continuando con el asistente nos pide IpermisoI para enviar a &icrosoft los errores que puedandarse sobre el servidor de base de datos% e informes del uso que *acemos de las *erramientas% todoesto para que &icrosoft tena datos para llevar a cabo actuali'aciones para solucionar errores o

    mejoras para el rendimiento.

    28

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    29/101

    3n nuestro caso% no queremos que nuestro servidor dedique recursos al env-o de esta informaci"n.!dem(s de que seuramente a nuestra empresa no le interese que eista la posibilidad de enviar informaci"n personal por error% por lo tanto desmarcamos estas casillas $ continuamos.

    3n la siuiente venta% nos muestra los componentes $ las *erramientas que se van a instalar acontinuaci"n.

    2

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    30/101

    )ulsamos en instalar $ comien'a el proceso de instalaci"n% mostrando informaci"n del estado en quese encuentra cada uno de los productos que se est(n instalando.

    30

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    31/101

    Cuando finali'a la instalaci"n para cada uno de los productos% podemos continuar con el asistente:

    31

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    32/101

    )ulsamos en siuiente% $ nos muestra la pantalla de finali'aci"n donde tenemos la posibilidad de ver informes sobre el proceso de instalaci"n. !dem(s nos informa de confiuraciones e instalacionesque se *an producido en el proceso:

    32

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    33/101

    )ulsamos en finali'ar $ el proceso *abr( finali'ado correctamente.

    )ara reali'ar la primera prueba% vamos a inicio proramas $ ejecutaremos ISQL Server &anaement

    Studio 3pressI:

    La primera ve' que se ejecuta reali'a una confiuraci"n previa del entorno de trabajo:

    9na ve' finali'ada esta confiuranci"n% nos muestra la pantalla de presentaci"n mientras que trabajaen seundo plano para lan'ar la *erramienta:

    33

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    34/101

    Lo primero que nos muestra cuando arrancamos SQL Server 2005% es una ventana para seleccionar el modo de autori'aci"n con el que vamos a conectar al servidor:

    3

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    35/101

     

    )ara terminar de comprobar que SQL Server se *a instalado $ confiurado correctamente en elequipo% podemos mostrar el administrador de tareas de ;indo/s $ comprobar en la pestaa de procesos que tenemos los servicios de SQL Server en funcionamiento. !lunos de los procesos deSQL Server se confiuran para ejecutarse autom(ticamente con el sistema operativo al iniciarse;indo/s% de este modo el servidor queda preparado para que los proramas clientes% p(inas ;eb%etc...est+n completamente funcionales para llevar cualquier actividad sobre nuestras bases de datos.

    35

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    36/101

    =ncluso las tareas que tenamos desarrolladas sobre el servidor estar(n disponibles% como pueden ser los planes de mantenimiento% $ copias de seuridad.

    Si *as lleado *asta este punto% en*orabuena% *emos conseuido instalar correctamente SQL Server 2005 en nuestro equipo $ $a tenemos todo lo necesario para comen'ar a practicar con lascaracter-sticas de este servidor de base de datos.

    3"

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    37/101

    % SQL Server Confi&uration Mana&er

    Con la instalaci"n de SQL Server% *emos instalado dos *erramientas:

    • SQL Server Mana%e4ent Studio.• SQL Server #on$%uration Mana%er.

    SQL Server &anaement Studio es una una potente *erramienta utili'ada por desarrolladores $administradores para trabajar $ estionar bases de datos. 3sta *erramienta la iremos estudiando a lolaro de todo el curso.

    SQL Server Confiuration &anaer es una *erramienta mu$ til para trabajar con los servicios deSQL Server.

    Como $a *as visto% SQL Server se ejecuta como si fuese un servicio% que puede ponerse en marc*ade modo autom(tico junto con el sistema operativo en caso de que lo indiquemos as- en el momentode la instalaci"n.

    3l servicio recibe el nombre de &SSQLServer por defecto% este nombre puede variar si instalamosdiversas instancias con diferente nombre.

     ?o s"lo tenemos el servicio &SSQLServer% tenemos otros como puede ser el &SD#C 4&icrosoftDistributed #ransaction Coordinator o coordinador de transacciones distribuidas% tambi+n tenemosel !ente de SQL Server o SQL , Server!ent% entre otros...

    )ara acceder a la *erramienta de confiuraci"n% lo tenemos disponible en el rupo de proramas de&icrosoft SQL Server 2005% dentro del rupo @erramientas de confiuraci"n% encontramos laopci"n SQL Server Confiuration &anaer:

    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(s subelementos. )or defecto aparece seleccionado IServicios de SQL Server 2005I.

    !l tener seleccionado este elemento% en el panel de la derec*a% aparecen como una lista todos losservicios que *a$ instalados% el estado $ una serie de caracter-sticas.

    37

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    38/101

    3l estado podemos comprobarlo tambi+n racias al icono que aparece junto al nombre del servicio%un cuadradillo rojo indica que el servicio se encuentra detenido% mientras que un trianulillo verdeindica que el servicio est( activo.

    &ediante la barra de tareas que aparece sobre este panel% podemos reali'ar cambios sobre el estadode los servicios% entre otras cosas.

    3n funci"n de la edici"n de SQL Server instalada tendremos una lista de servicios ma$or o menor%adem(s estos servicios se pueden eleir en el momento de la instalaci"n 4servicios de informes%an(lisis% interaci"n% etc...

    '.1 (odi)car el estado de los servicios.

    #enemos tres diferentes estados para cada uno de los servicios:

    • iniciadoJ '& servicio est? en funciona4iento< &os c&ientes odr?n acceder a &ainfor4aci-n.

    • ausadoJ '& servicio arece estar arado< no resonde a &as eticiones< seencuentra con%e&ado ; no arado< ;a que a& reanudar&o< continuar? en e& 4is4oestado que se encontraa en e& 4o4ento de ausar&o.

    • detenidoJ '& estado se ara< ; se desa&o(a de(a de ocuar esacio de 4e4oria.

    #uando se reinicie< to4ar? &os va&ores que se indiquen or defecto.

    )ara variar de un estado en otro% podemos reali'arlo con la barra de *erramientas que encontramosen la parte superior.

    38

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    39/101

    bien% mediante el men emerente que se muestra al pulsar con el bot"n derec*o sobre el serviciodel cual queremos variar su estado.

    3n este men tendremos unas opciones u otras en funci"n del estado en el que se encuentreactualmente.

    3s mu$ probable que nos interese que un servicio arranque de modo autom(tico junto con el sistemaoperativo% de este modo no tendremos que ponerlo en funcionamiento cada ve' que se reinicie elservidor% por citar aluna de la ventajas.

    )ara modificar el modo en el que se inician los servicios debemos pulsar con el bot"n derec*o enuno de los servicios $ seleccionar la opci"n I)ropiedadesI.

    3n la pestaa servicio% tenemos la opci"n I&odo de inicioI% donde podemos seleccionar los tresmodos:

    • uto4?tico. ,nicia de 4odo auto4?tico e& servicio C no es necesario iniciar

    sesi-n en e& siste4a< &o que suone una %ran venta(aD.• /esAai&itado. )o uede entrar en funciona4iento< ni de 4odo 4anua& ni

    auto4?tico.

    • Manua&. '& servicio uede onerse en 4arcAa ta& ; co4o Ae4os e9&icado eneste caitu&o< 4ediante otones o 4en@ e4er%ente desde esta Aerra4ienta.

    3

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    40/101

    *+ercicios

    '(ercicio 1

    9na ve' instalado SQL Server 2005 comprobar el estado de todos los servicios SQL Server $ elmodo de ejecuci"n de cada uno de ellos% dejando todos los servicios en funcionamiento $ el modode inicio en autom(tico.

    7ecuerda que para este tipo de confiuraciones% utili'aremos SQL Server Confiuration &anaer.

    0

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    41/101

    Nº- 2 Introducción a las ,ases de datos

    1 Definición

    3l concepto m(s eneral de una base de datos es el luar donde se uardan los datos. Eamos asuponer que somos los dueos de una librer-a $ deseamos tener almacenados todos los datos posibles de nuestro neocio. )ara poder llevar cierta orani'aci"n de estos datos% no queremos queestos datos sean un mont"n de informaci"n almacenada sin seuir ninn orden. Deberemos seuir una estructura que permita que esa informaci"n est+ enla'ada% de modo que tenamos conectadosunos datos con otros% para que por ejemplo no nos volvamos locos% buscando un libro que nos *a pedido un cliente.

    Siuiendo con el ejemplo de la librer-a% podemos orani'ar nuestras necesidad en los siuientes puntos:

    • secto articu&ar de un deter4inado &iro< or e(e4&o e& recio.• sectos i4ortantes de un &iro< or e(e4&o Btu&o< utor< ,S)< !?%inas<

    Knero< etc...

    • sectos i4ortantes de todos &os &iros.

    • sectos i4ortantes de &a &irera a& co4&eto.

    3n este caso% *emos deslosado a primera vista% los cuatro puntos m(s importantes en cuanto ainformaci"n se refiere de nuestra librer-a% pod-amos *aber entrado en niveles m(s complejos% como pueden ser clientes% proveedores% empleados% pero no es lo que deseamos para empe'ar a eplicar los fundamentos de las bases de datos.

    Como estamos diciendo% *emos separado en cuatro puntos% las necesidades que podemos tener encuanto a informaci"n de un libro. 3stos cuatro puntos% nos dan una idea mu$ clara de la jerarqu-aque siue una base de datos% esta jerarqu-a la vamos a separa en cuatro niveles% $ ver(s la l"ica quetienen estos niveles respecto a los puntos de nuestra librer-a:

    • #a4oJ #ontiene un dato en articu&ar< co4o uede ser e& ri4er unto queAace referencia a& recio de un &iro.

    • Re%istroJ &4acena todos &os datos de un deter4inado o(eto de infor4aci-n<ve4os que e& se%undo unto de nuestras necesidades rec&a4a &os asectos 4?s

    i4ortantes de un &iro. 'n este caso< e& &iro es e& o(eto de infor4aci-n< ; susasectos CBtu&o< utor< ,S)< !?%inas

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    42/101

    anteriores nive&es< ode4os ase%urar que una ta&a a&4acena una serie dere%istros C&irosD.

    • ase de datosJ #uarto ; @&ti4o nive&< de nuestro ri4er vistao a &a idea de asede datos< re&acionada con e& cuarto unto de nuestra &irera e& cua& nos indicaque quere4os a&4acenar &os asectos de &a e4resa a& co4&eto< or &o tanto<este nive& %uarda infor4aci-n de varios asectos< no s-&o de &iros< sino de

    ventas< co4ras< c&ientes etc...!or &o tanto &a ase de datos< dicAo de un 4odo4u; si4&e ; 4u; %enrico< a&4acena &as ta&as.

    !cabamos de mencionar los cuatro conceptos b(sicos de toda base de datos% si es la primera ve' quete introduces en este mundillo deben quedarte mu$ claros estos cuatro pilares de informaci"n.

    #al $ como *emos avisado% esta definici"n de base de datos es demasiado simple% decir que la basede datos se encara de almacenar la informaci"n estructurada en esos cuatro niveles es decir demasiado poco. &uc*os fabricantes ofrecen en sus servidores la posibilidad de almacenar muc*asmas funcionalidades que estas cuatro.

    &icrosoft SQL Server 2005 ofrece una cantidad enorme de objetos% que al iual que los datos sealmacenan en la base de datos% pero cu$a funci"n no es uardar informaci"n% sino trabajar con ella.!s- a primera vista% puede parecer complicado% J9na base de datos almacena alo m(s que datosKEeremos que as- es% $ que son de una importancia rand-sima% $a que tienen tareas tan importantescomo aseurar que esos datos se almacenan correctamente% de la seuridad% del rendimiento queobtenemos de esos datos% etc...)ero como te dio% los iremos viendo a lo laro del curso.

    2

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    43/101

    2 'structuración de una )ase de datos

    2.1 *structura $sica

    9na base de datos se almacena en varios fic*eros o arc*ivos en disco. Como m-nimo tendremos dosfic*eros que eplicaremos m(s adelante.

    #enemos la posibilidad de almacenar estos fic*eros en discos que no est+n ni tan siquieraformateados o que no tenan una partici"n *ec*a% pero este m+todo no es el m(s aconsejable. 3sm(s ra'onable almacenar estos arc*ivos en un disco $a formateado% con formato ?#S.

    3n empresas cu$o volumen de datos es alt-simo $ el trabajo que se reali'a sobre la base de datossoporta una actividad elevada% se almacenan los arc*ivos en rupos de discos denominados 7!=D por *ard/are. 3ste m+todo mejora considerablemente el rendimiento% $ nos aseura que en caso de

    fallos inesperados no perdamos esa valiosa informaci"n.

    Como es l"ico% nosotros para reali'ar nuestros ejemplos% no vamos a basarnos en esta tipo deestructuras de *ard/are% lo almacenaremos en nuestro disco duro% aunque veremos como aseurar nuestros datos mediante planes de mantenimiento con copias de seuridad autom(ticas.

    Como *emos mencionado% como m-nimo tendremos dos arc*ivos donde almacenar la base de datos:

    • rcAivo de datos.• rcAivo de re%istro de transacciones.

    )ero debes saber que tenemos otras posibilidades $ podemos utili'ar arc*ivos etras para mejorar elrendimiento de nuestra base de datos% podemos usar varios arc*ivos% si pensamos que nuestra basede datos va a alcan'ar un tamao rande. si deseamos que nuestros datos se almacenen endiferentes dispositivos de almacenamiento u ordenadores% $ de este modo permitir un trabajo m(sr(pido al poder acceder a la informaci"n en paralelo.

    Centr(ndonos en lo principal:

    • '& arcAivo de datos< o aque&&os que aadi4os co4o e9tras< son &os arcAivos quetendr?n a&4acenada &a infor4aci-n< &os datos. !ero recuerda que Ae4os dicAoque SQL Server 2005 nos er4ite ta4in crear en nuestras ases de datos< nos-&o infor4aci-n< sino ta4in una serie de o(etos que traa(an con &ainfor4aci-n. !ues ien< esta serie de o(etos ta4in se a&4acena en e& arcAivode datos.

    • !or otro &ado< tene4os e& arcAivo de re%istro de transacciones. 'ste $cAero estan i4ortante co4o e& anterior. Su i4ortante tarea es %arantiar que esa asede datos er4anece inte%ra. Kracias a estos arcAivos de re%istros Cuede Aaer4?s de unoD< en caso de ser necesario< odre4os recuerar &a ase de datos< ;aque a&4acena &as 4odi$caciones que se roducen deido a &a actividad o &ae9&otaci-n de &a ase de datos.

    3

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    44/101

    2.1.1 Nombres de archivos.

    3l modo de nombrar una base de datos% parte de una base fija% de un nombre principal queeneralmente entrea el administrador de la base de datos. 9na ve' que tenemos este nombre principal% SQL Server 2005 se encara de aadir terminaciones $ unas determinadas etensiones% aese nombre principal. 3l administrador adem(s de seleccionar el nombre principal% puede eleir el

    destino donde se almacenar(n los fic*eros que forman la base de datos.Eamos a suponer que estamos en una empresa como administradores% $ estamos creando su base dedatos. ?osotros como administradores le damos el nombre principal I mi3mpresa I. 3se ser( elnombre de la base de datos% pero los fic*eros donde se almacenar( su informaci"n $ el reistro detransacciones% ser(n:

    • rcAivo de datosJ 4i'4resa/ata.M/6• rcAivo de re%istro de tranasaccionesJ 4i'4resaLo%.L/6

    3n caso de tener arc*ivos etras% nosotros como administradores tambi+n podremos darles sunombre principal% $ la etensi"n que suele utili'arse es .?D

    Siuiendo con nuestra tarea de administrador% a*ora ser-a el momento de seleccionar el luar dealmacenamiento% como $a sabes podemos seleccionar una determinada carpeta o directorio% inclusodiferentes unidades f-sicas. Lo m(s aconsejable es uardar en diferentes unidades% por un lado elarc*ivo de datos% $ por otro el arc*ivo de reistro de transacciones. De modo que en caso de fallo% por lo menos tenamos uno de ellos.

    ! continuaci"n puedes ver una fiura que representa la estructura f-sica de la base de datos%tomando como ejemplo el nombre principal I&i3mpresaI.

     ?o debes quedarte con la idea de que una base de datos% se compone sencillamente de dos arc*ivos%es alo muc*o m(s completo que todo eso lo que representa una base 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 de memoria quenecesitar( para almacenar toda la informaci"n. 3s cierto que *a$ ciertas t+cnicas que nos permitencalcular el tamao que podr( alcan'ar la base de datos% pero estas estimaciones pueden venirse a bajo% por modificaciones imprevistas% como puede ser el crecimiento de la empresa $ que seintensifique la actividad reali'ada sobre la informaci"n% por citar un ejemplo.

    #ampoco es nada aconsejable pecar de precavidos $ reservar una cantidad de memoria eaerada% $ pensar que con esta cantidad casi infinita no tendremos problemas de espacio para nuestros datos.De acuerdo% puede que no *a$a problemas de espacio 4o qui'( si% pero lo que es seuro es quetendremos muc*-simos problemas de rendimiento% de framentaci"n etc...

    SQL Server 2005 nos permite olvidarnos *asta cierto punto de este problema. Los arc*ivos de datos$ de reistro% crecen autom(ticamente. ?o crecen con cada dato que se aade. ?osotros comoadministradores% le daremos un tamao inicial sencillo de estimar 4 una cantidad mu$ pequea% unos&eab$tes % en ese momento SQL Server 2005 crea la estructura correcta para la base de datos% $

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    45/101

    una ve' que nuestra base de datos est( en eplotaci"n cuando alcan'a el tamao limite% loincrementa una cantidad dada por un factor predeterminado.

    Eisto de modo te"rico puede asustar un poco% s"lo estamos comen'ando a crear la base de datos% $estamos mencionando varias caracter-sticas a tener en cuenta. ?o tenemos porque asustarnos%veremos como estos par(metros se pueden dar de un modo altamente sencillo mediante el interfa'

    de SQL Server 2005% $ como con pocos clicHs% todos estos aspectos los reali'a SQL Server por nosotros% asi que no te preocupes $ siue le$endo.

    2.2 *structura lógica

    )ara entender que es la estructura l"ica de una base de datos vamos a poner un sencillo ejemplo.

    Cuando nosotros nos compramos un equipo de msica% poco nos importa como funcionan loscircuitos interados% los elementos electr"nicos que componen nuestro equipo. 3n este caso% esoscircuitos% esos dispositivos electr"nicos% ser-a la estructura f-sica del equipo de msica% al iual que*emos visto la estructura f-sica de nuestra base de datos.

    ! lo que nosotros como usuarios vamos a dar importancia es al manejo del equipo de msica: comosubir el volumen% encenderlo% cambiar de emisoras% introducir un CD. De iual modo% comousuarios de la base datos% debemos conocer la estructura l"ica de la base de datos para poder estionar o trabajar con los datos.

    9na estructura l"ica m-nima puede ser el ejemplo de la librer-a que *emos visto a modo deintroducci"n en esta lecci"n.

    Lo que vamos a eponer a continuaci"n a modo de introducci"n son los elementos principales quecomponen la estructura l"ica de una base de datos% de modo que sepas de que estamos *ablando en

    caso de que se mencionen en las diferentes lecciones. Sin embaro% los iremos viendo con m(sdetenimiento m(s adelante% de momento es suficiente con que te suenen $ las va$as conociendo.

    2.2.1 Tablas

    Las tablas son las unidades que almacenan los datos. Como norma eneral se suele imponer quecada tabla% almacena informaci"n comn sobre una entidad en particular 4recuerda los libros. 3stanorma se conoce como nor*ali+ación.

    5

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    46/101

    La ma$or parte de la actividad producida en una base de datos se produce sobre las tablas% siendolas principales tareas las siuientes:

    • adir infor4aci-n.• '&i4inar infor4aci-n.

    • Modi$car ; actua&iar infor4aci-n.

    • Reco%er infor4aci-n ; 4ostrar&a.

    Comnmente estas cuatro tareas se reali'an mediante el lenuaje SQL 4Structured Quer$ Lanuae

    que sinifica Lenuaje de consultas estructurado% que como $a sabr(s es el lenuaje est(ndar paraestionar bases de datos.

    2.2.2 Campos y Registros.

    Las tablas est(n compuestas de reistros $ campos. Si imainamos el diseo de una tabla% como side una cuadr-cula se tratase% sabemos que est( compuesta por varias filas $ columnas. Las filascorresponden a los reistros% mientras que las columnas ser-an los campos. M cada una de las celdasque se forman de enla'ar un reistro 4fila con un campo 4columna formar-a una celda% la cualalmacena un valor.

    )or lo tanto% un reistro esta formado por varios campos% $ cada campo almacena un determinadovalor.

    "

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    47/101

    !cabamos de mencionar que en cada celda se almacena un valor. )ero Jsiempre debe almacenar unvalorK% que sucede si estamos almacenando informaci"n de un determinado producto% $ en elmomento de almacenarlo desconocemos una de sus caracter-sticas 4un valor. 3n ese caso Jno podr-amos almacenarloK. L"icamente la respuesta a esta preunta 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 ?9LL% pero aunque se conoce como valor nulo% no debes pensar que se almacena un valor% el concepto de ?9LL podr-a ser un marcador que informa que *a$que pasar por alto los datos de esa celda% son datos que se inoran. Como veremos% *a$ que tener muc*o cuidado con el uso de esta IausenciaI de informaci"n% $a que si tenemos aln despiste puede ser el causante de que no recibamos la informaci"n que realmente estamos reclamando en unaconsulta. Si reali'amos operaciones matem(ticas con varios valores de nuestra base de datos $ unode estos es ?9LL% el resultado siempre ser( ?9LL.

    2.2.3 Índices

    Seuimos *ablando de la unidad o entidad principal de la base de datos% las tablas. )odemos tener tablas con millones de reistros% si reali'amos una consulta para recuperar informaci"n de un rupode estos reistros% podemos tener un rendimiento bajo debido a la ran cantidad de informaci"n quealmacena esa tabla.

    Sitate en una tabla que almacena las ventas de productos que se *an producido durante d+cadas enuna ran empresa% $ queremos recoer la informaci"n de una determinada venta. 3l proceso de bsqueda recorriendo cada uno de esos reistros 4ventas de la tabla de principio a fin% puedenecesitar un tiempo considerable *asta que encuentra la informaci"n deseada.

    )ara acelerar este tipo de consultas contamos con la a$uda de los ,ndices. 9n -ndice es unacaracter-stica m(s de las tablas% el cual es una conjunto de valores clave. 3ste conjunto tiene unaestructura estudiada para que el servidor pueda reali'ar las consultas con un rendimiento muc*oma$or.

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

    7

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    48/101

    !dem(s de mejorar el rendimiento% eisten -ndices que pueden aseurar la interidad de los datos%indicando en que orden deben almacenarse los datos en un tabla. &(s adelante veremos comotrabajar con los -ndices.

    )or lo tanto podemos decir que te"ricamente nuestras tablas deber-an todas incluir al menos un-ndice que aseure un mejor rendimiento. M en la pr(ctica% suele ser lo m(s comn% pero debes tener 

    en cuenta que cada ve' que reali'amos una tarea sobre una tabla que est( relacionada con -ndices% elservidor% no s"lo opera sobre la tabla para reali'ar las modificaciones que se le demanden% sino quetambi+n debe reali'ar operaciones sobre los -ndices para aseurar que la labor de estos siue siendola adecuado para las modificaciones reali'adas sobre la informaci"n de la tabla. )or lo tanto la relade tres es sencilla% a ma$or nmero de -ndices% mas tiempo dedicar( a las tareas pedidas.

    2.2.4 Restricciones

    Las restricciones son normas que imponemos a la informaci"n que pude ser almacenada% de modoque si no se cumple una de estas condiciones no permitamos que inclu$a ese valor en nuestra basede datos.

    Si tenemos una tabla de clientes% podr-amos poner como restricci"n que no se pueda almacenar uncliente cu$a edad no supere los 1 aos. 3l servidor se encarar( de no permitir que se inclu$aninn reistro que incumpla nuestra condici"n.

    3stas restricciones adem(s de permitir controlar que valores pueden ser almacenados% con esta tareaaseuramos tambi+n la interidad de nuestros datos. )iensa que por descuido un usuario introduce por error un cero como el nmero de unidades que se *an vendido a un minorista. !l calcular el precio de la venta $ multiplicarlo por cero unidades% tendremos como precio de facturaci"n cero.

    )ero no s"lo debemos pensar en que es el usuario quien comete el error% puede que el proramador 

    que *a desarrollado un soft/are de facturaci"n *a$a cometido un error al escribir el c"dio. 3l prorama por s- s"lo% si no *a tenido en cuenta esta posibilidad% no lan'ar( ninn error% $ todo parecer( ir correctamente $ emitir( la factura al minorista. )ero racias al servidor de base de datos% podemos tener controlado que uso *ace el soft/are que trabaja con nuestros datos.

    2.2.5 istas

    Las consultas que se reali'an sobre alunas de las tablas de la base de datos pueden ser repetitivas%de modo que d-a tras d-a cientos de usuarios reali'an las mismas consultas sobre la tabla. #odas esasconsultas repetitivas reciben el mismo rupo de datos.

    )ara evitar la repetici"n de este tipo de consultas tenemos las vistas.)odemos pensar que una vista es un conjunto de reistros determinados de una o varias tablas. De*ec*o se trabaja sobre ella como una tabla% pero no es una tabla. Lo que almacena en realidad es unaconsulta. )ero debes tener claro que no almacena datos sino que los etrae.

    9na vista puede crear los enlaces necesarios para obtener informaci"n de varias tablas como si fueseuna nica tabla. 3sto puede facilitar muc*o la tarea al desarrollador de soft/are que no tiene que preocuparse de las tablas donde se almacena la informaci"n que quiere recoer% $a que lo tiene todo

    8

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    49/101

    en una vista sobre la que puede operar como si fuese una tabla. )or lo tanto se olvida de construir complicadas sentencias de SQL que recoja esa informaci"n de mltiples tablas% con diferentesenlaces entre ellas.

    2.2.! "#$

    Las consultas $ las tareas de esti"n que se reali'an durante la eplotaci"n de una base de datosvienen escritas en lenuaje SQL% Structured Quer$ Lanuae% que como $a *emos mencionadosinifica Lenuaje de Consulta 3structurado.

    3l !?=S 4=nstituto ?acional de ?ormali'aci"n 3stadounidense ideo este lenuaje est(ndar%denominado !S?= SQL% o tambi+n SQL,B2% por el ltimo ao en el que !?S= acept"modificaciones sobre el est(ndar.

    Como suele ocurrir en tantas ocasiones en el mundo del mercado inform(tico. 3ste est(ndar fuerecoido por los fabricantes para personali'arlos $ crear sus propias etensiones para sus productos.&icrosoft as- lo *i'o% para crear #ransact,SQL% o m(s comnmente conocido por su abreviatura #,

    SQL para sus servidores de base de datos SQL Server.Como veremos% SQL Server 2005 $ sus antecesores% pueden trabajar con SQL% pero racias a #,SQL podemos reali'ar sentencias m(s completas que solventar(n f(cilmente problemas. )or lo tanto #,SQL no es un sucesor de SQL para nosotros% sino una ampliaci"n% una *erramienta etra queutili'aremos para fines m(s avan'ados.

    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"dio escrito -nteramente en SQL o con

    la a$uda etra 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% $a que como lenuajes de proramaci"n que son% pueden contener sentencias condicionales% bucles% etc... Si nunca te *as introducido en ninnlenuaje de proramaci"n% no te preocupes porque veremos estos conocimientos con detenimiento%$ si $a conoces otros lenuajes de proramaci"n% aprender(s la sintais espec-fica de este lenuaje.

    Los procedimientos almacenados% como cualquier funci"n de otro lenuaje% pueden recibir  par(metros de entrada $ de salida% o no recibir ni devolver nada. !dem(s de devolver par(metros% pueden devolver incluso tablas virtuales% vistas% etc...

    Los procedimientos almacenados los almacena SQL Server 2005 del modo m(s optimo para

    sacarles el mejor rendimiento posible. De este modo las instrucciones quedan almacenadas en la propia base de datos. 3sto es una ran ventaja% en cuanto a seuridad $ rendimiento% $a que los proramas desarrollados por los proramadores no necesitan tener estas sentencias SQL en elc"dio de su soft/are% $ por lo tanto esta informaci"n que supone el propio c"dio SQL% no tieneque IviajarI del prorama a la base de datos. M como es l"ico pensar% cuanta menos informaci"nIviajeI del prorama del cliente al servidor% anaremos en seuridad $ en rendimiento.

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    50/101

    2.2.& arios

    !dem(s de los elementos que *emos ido numerando de la estructura l"ica de una base de datos%tenemos otros muc*os que como siempre se almacenan en nuestra base de datos $ que sirven parareali'ar diversas tareas. !lunos de estos elemenos los iremos estudiando% pero para poder continuar con la lecci"n sin problemas $a tenemos los conocimientos b(sicos% que ampliaremos m(s adelante.

    Planificación - Diseo

    !.1 Introducción

    )ara aquellas personas que *an trabajado con desarrollo de soft/are% entender(n que la planificaci"nde un prorama en uno de los aspectos m(s importantes para un buen prorama.

    Cuando vamos a comen'ar a crear una base de datos% el principio de todo no es arrancar nuestra*erramienta de SQL Server 2005% &anaement Studio% $ mediante sus asistentes ponernosdirectamente a crear nuestra base de datos% con sus tablas% etc...

    Siempre debemos comen'ar reali'ando un an(lisis de las necesidades que tenemos. 9na ve' queconocemos las necesidades $ partiendo de estas% definimos la estructura l"ica de nuestra base dedatos% $ por ltimo pasamos a disearla% bien sea en papel% o mediante las *erramientas de diseoque nos ofrece SQL Server 2005.

    )or lo tanto tenemos diferenciados claramente tres pasos previos a la *ora de planificar la creaci"nde una base de datos:

    • 'studio ; an?&isis de &as necesidades.• /e$nici-n de &os e&e4entos que co4onen &as estructura &-%ica de &a ase de

    datos.

    • /isear o &as4ar esa estructura con dia%ra4as en ae&< o con SQL Server2005.

    3stos pasos son important-simos% en este tipo de desarrollos no podemos utili'ar el m+todo de ir  probando estructuras *asta que funcionen% $ una ve' que que funciona dar por sentado% que nuestra base de datos est( bien diseada $ $a podemos instalarla en un servidor para que se comience atrabajar con ella.

    La planificaci"n debe prevenirnos de imprevistos que pueden surir% $ $a no s"lo imprevistos del

    tipo que si tenemos ma$or o menor actividad en la base de datos% *ablamos de imprevistos que provocan que tenamos que redisear nuestras estructuras. 9na ve' que tenemos la base de datos eneplotaci"n% nos encontraremos con el problema de que ser( mu$ dif-cil reali'ar modificacionessobre ella% $a que el m+todo de trabajo que marcamos al definir nuestras estructuras% limita las posibles modificaciones futuras.

    Con esto puedes *acerte una idea de lo que supone la planificaci"n% invertir tiempo en estos primeros pasos% sinifica a*orrarnos tiempo en un futuro de posibles modificaciones.

    50

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    51/101

    !.2 *studio de necesidades.

    Como *emos dic*o% se trata del primer paso que debemos anali'ar.

    3n este paso% tendremos que estudiar detenidamente que tipo de necesidad tiene nuestro cliente.Ser(n necesarias tantas reuniones como creamos oportunas para que el cliente nos eplique cual es

    la informaci"n desea almacenar en nuestra base de datos. 9na ve' tenemos claro la informaci"nfundamental para el trabajo cotidiano de la empresa de nuestro cliente% tendremos que tener plenoconocimiento% de que trabajo quiere *acer con esa informaci"n% es decir JCu(les son los resultadosque va a requerir de esa informaci"nK.

    9na ve'% que tenemos todo lo necesario para conocer que necesidades tenemos que cubrir connuestra base de datos% procedemos a identificar todos los objetos que necesitamos% con sus atributos$ propiedades% $ tambi+n como estar(n relacionados unos con otros. 3stos objetos se convertir(nm(s adelante en tablas% vistas% -ndices% procedimientos almacenados% etc...

    3s l"ico penar que estos objetos que *emos planificados no ser(n los definitivos ni muc*o menos%

    durante la etapa de diseo $ normali'aci"n que eplicaremos m(s adelante nos ir(n suriendonuestras propias necesidades para cumplir con los objetivos que nos *emos marcado con nuestrocliente% o los encarados de informarnos en la empresa que estamos contratados.

    Lo que si debe ser definitivo 4en la medida de lo posible son los elementos que interan la base dedatos% las entidades de informaci"n que debemos almacenar. Deberemos identificar estos elementos%de modo que podamos distinuir f(cilmente unos de otros. M m(s adelante% durante la planificaci"niremos encontrando las relaciones $ dependencias que tienen unos con otros. )ara entender mejor esta definici"n vamos a poner un ejemplo.

    Eamos a suponer que tenemos como cliente a una empresa que se dedica a la venta de refrescos.

    3l primer paso es definir las necesidades que suren de estudiar el funcionamiento de esta empresa.)or lo tanto comen'amos describiendo el funcionamiento de la empresa.

     ?uestra empresa se dedica principalmente a la venta de )e)idas% estas bebidas las producen lasfa)ricante $ las recibimos de estas a trav+s de unas distri)uidoras a las que previamente *abremosreali'ado unos pedidos.

    9na ve' que *emos recibido los pedidos% estos permanecen en nuestro al*ac.n% para que podamosreali'ar las ventas a nuestros clientes/

    3st( claro que una empresa de bebidas tiene un funcionamiento muc*o m(s complejo que lo queacabamos de definir% pero para el objetivo que buscamos% nos es suficiente.

    @emos subra$ado las entidades de informaci"n que *an ido suriendo en la descripci"n de lasnecesidades de la empresa que *emos tomado como ejemplo. #odas estas entidades forman unconjunto de entidades% como puedes ver en la siuiente fiura:

     

    51

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    52/101

     

    !.1.2 Plani)cación

    9na ve' que tenemos descrita $ definida la informaci"n de la etapa de an(lisis de necesidades $ delas indicaciones del trabajo que se desea reali'ar sobre esas entidades marcadas% comen'amos con laetapa de planificaci"n de la base de datos.

    La etapa de planificaci"n tiene el objetivo de definir las diferentes propiedades de cada entidad $anali'ar que relaciones ser(n necesarias entre ellas o con m(s elementos o entidades.

    ! primera vista% parece claro que cada una de las entidades de nuestro conjunto puede ser 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 o campos que la vana 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. J! qu+ clienteestmos reali'ando una ventaK JQue fabricante a producido una determinada bebidaK.

    9na ve' reali'ado este estudio% continuamos con un proceso de nor*ali+ación% el cual modificar(el nmero de entidades o tablas% de tal manera que puede aumentar el nmero de tablas perodisminuir la cantidad de informaci"n que almacena en cada una. 3ste proceso de normali'aci"n esde vital importancia% $ lo estudiaremos con detenemiento en este mismo cap-tulo.

    52

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    53/101

    3.1.3 %ropiedades

    )artiendo de las entidades que *emos definido en nuestro conjunto como resultado del estudio denecesidades% vamos a anali'ar las propiedades de cada una de estas entidades.

    Comen'amos con la m(s l"ica% 8ebidas. JCu(les podr-an ser las propiedades fundamentalesK

    )iensa por ejemplo que dato te interesar-a para reali'ar una bsqueda: el no*)re de la bebida% $ elfa)ricante.

    #ambi+n necesitaremos saber que distri)uidora nos *a entreado esa bebida. 3stas propiedades ocampos $ los anteriores% son los esenciales para cada bebida% por ltimo podremos aadir otroscampos que nos interesen% precio% el envase% cantidad% fec*a de caducidad% si es alco*"lica o no% encaso de ser alco*"lica los rados $ el nmero de lote.

    Con estas propiedades $a podemos definir las columnas o campos de nuestra tabla 8ebidas.

    e,idas

    no4re

    faricante

    distriuidora

    recio

    envase

    cantidad

    fecAacaducidad

    a&coA-&ica

    %rados

    &ote

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

    /lientes

    53

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    54/101

    no4re

    direcci-n

    te&fono

     

    a,ricantes

    no4re

    distriuidora

    direcci-n

    te&fono

    e4ai&

     

    Distri,uidoras

    no4re

    faricantes

    direcci-n

    te&fono

    e4ai&

     

    Pedidos

    fecAa

    5

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    55/101

    distriuidora

    eidas

    unidades

     

    lac3n

    eida

    unidades

    situaci-n

     

    Ventas

    fecAa

    eida

    unidades

    c&iente

    #odas estas propiedades definidas para cada tabla% son de car(cter temporal $ no son definitivas%veremos como en el proceso de normali'aci"n% tendremos que reali'ar modificaciones como $a*emos comentado.

    !.1.4 Deendencias

    @emos visto como las tablas formaban un conjunto de entidades. ?unca debes pensar en una tablacomo un elemento aislado% cada una de las tablas forma parte de nuestro conjunto% $ el conjuntovendr-a a ser la base de datos. )or lo tanto% cada tabla es la parte de un nivel superior $ no puede ser tratada individualmente% $a que como parte de un todo% tendr( dependencias con el resto de tablas dela base de datos.

    55

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    56/101

    3se es precisamente el trabajo que debemos llevar a cabo a*ora% anali'ar las dependencias que tienecada tabla con el resto para poder representarla la estructura l"ica de la base de datos.

    3stas dependencias reciben el nombre de relaciones% $ estudiaremos que tipo de relaciones podemostener% de momento% para nuestro ejemplo las veremos de un modo mu$ sencillo. )odemosencontrarnos tablas que dependen nicamente de una seunda tabla% mientras que *abr( otras que

    depender(n de varias. tro caso que nos podemos encontrar son tablas que tienen una relaci"nnica% como iremos viendo.

    Cojamos el ejemplo de la tablas 8ebidas $ Distribuidoras% estas tablas tendr(n una relaci"n entreellas de Iuno a muc*osI. La ra'"n de porque tendr(n esta relaci"n $ porque recibe esa descripci"nde Iuno a muc*osI es la siuiente. 3sta claro% que en la tabla distribuidoras almacenamos los datosde cada una de las distribuidoras que tenemos% $ que l"icamente una distribuidora% aparecer( s"louna ve' en esta tabla% es absurdo tener repetida la misma informaci"n. 3n cambio% si vamos a latabla bebidas% donde almacenamos cada bebida% sabemos que una distribuidora no nos entrear( unanica bebida% sino varias. )or lo tanto% tendremos varias bebidas que *an sido entreadas por lamisma distribuidora.

    7esumiendo% una distribuidora s"lo aparece una ve' en la tabla distribuidoras% mientras que en latabla bebidas aparecer( muc*as veces 4no sabemos cuantas. )or eso afirmamos que la relaci"nentre estas tablas es de una 4bebidas a *ucas 4distribuidora. Si representamos de modo r(ficoesta relaci"n podr-a ser como ves en la siuiente fiura:

     

    #omemos a*ora como ejemplo la relaci"n entre las tablas 8ebidas $ !lmac+n.

    La dependencia entre estas tablas es una relaci"n Iuno a unoI% el motivo es el siuiente. Cada una de

    las bebidas que tenemos en nuestra tabla bebidas% tiene una situaci"n determinada en el almac+n% por lo tanto% eistir(n las mismas filas en la tabla almac+n como tenemos en la tabla bebidas. !s- pues a un reistro de la tabla bebida le corresponde un reistro en la tabla almac+n. De a*- ladefinici"n de relaci"n uno a uno.

    )odemos representar esta relaci"n r(ficamente de la siuiente forma:

    5"

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    57/101

     

    Si continuamos con el mismo estudio de dependencias con el resto de la tabla de nuestra base dedatos% veremos que la tabla ventas depende de los clientes con relaci"n uno a muc*os $ a su ve'depende de la tabla bebidas% $ la tabla almac+n teniendo dependencias de varias tablas. Sirepresentamos todas estas relaciones tendremos:

     

    3studia con detenimiento la fiura anterior% $ trata de entender las dependencias que *emosrepresentado% $ el motivo de estas relaciones a partir de los ejemplos de relaciones uno a uno $ unoa muc*o que *emos descrito anteriormente.

    # Nor*ali+ación

    57

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    58/101

    4.1 De)nición

    La normali'aci"n es el mecanismo de toma de decisiones con el objetivo de recoer todos los datosde la informaci"n que se almacenar( en una base de datos $ distribuirlos en tablas.

    )ara tomar estas decisiones tenemos un nmero de for*as nor*ales que nos a$udar( a disear la

    mejor estructura l"ica con el ma$or rendimiento posible.Las formas normales% son los modelos o maneras en que se pueden representar la estructura detablas. racias a estos modelos conseuiremos ma$or eficacia. )ero no entiendas por eficacia comouna reducci"n del tamaa% nos estamos refiriendo a que obtendremos una estructura mu$ bienorani'ada% de tal modo que ser( escalable f(cilmente% permitiendo reali'ar modificaciones en unfuturo sin muc*os problemas. !unque *abr( veces donde racias a la normali'aci"n tambi+n seredu'ca el tamao% este no es el objetivo que buscamos.

    La funci"n de la normali'aci"n es favorecer la interidad de los datos% sin importar la actividad quese desarrolle sobre la base de datos. #rata de evitar lo m(imo posible la posibilidad de introducir 

    datos que no sean ra'onables. Dentro del proceso de normali'aci"n podemos distinuir cuatro tipode interidades:

    • ,nte%ridad de entidad.• ,nte%ridad de do4inio.

    • ,nte%ridad referencia&.

    • ,nte%ridad de$nida or e& usuario.

    Eamos a eplicar cada una de estas interidades $ al final de cada una nombraremos que*erramientas nos ofrece SQL Server 2005 para cumplir con estas interidades% si desconoces estas

    *erramientas% tranquilo porque las veremos con m(s detenimiento en las siuientes lecciones% tans"lo que te suene para cuando lleuemos a verlas con m(s detenimiento.

    4.2 Integridad de entidad

    @asta a*ora *emos utili'ado en varias ocasiones la palabra entidad. 9na entidad se define como unconcepto del mundo real% de modo que nuestras bases de datos uardan informaci"n sobreentidades. 3stas entidades puede ser de diferente car(cter:

    • 'ntidades fsicasJ un &iro< una eida< un e4&eado• 'ntidades concetua&esJ una e4resa

    • 'ntidades co4o eventosJ una a&erta de nuestra a%enda que nos recuerda unatarea.

    9no de los pasos de nuestro proceso de planificaci"n es detectar estas entidades que est(nrelacionadas con la base de datos.

    La interidad de entidad pretende que cada entidad que se uarda en la base de datos seaidentificable de un modo nico% es decir% que evitemos la informaci"n redundante.

    58

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    59/101

    !*ora bien% la identificaci"n de entidades no es nica% podemos tener varios modos de entidad paraun mismo objeto real. )or ejemplo% seuimos con el ejemplo de nuestra empresa dedicada a la ventade bebidas% podr-amos identificar las bebidas de un modo eneral% a un modo m(s individual:

    •  Bodas &as eidas en un s-&o %ruo.•  Bodas &as eidas de &a 4is4a 4arca en un %ruo.

    • %ruar &as eidas en funci-n de si son a&coA-&icas o no.

    • #ada eida de 4odo individua&.

    • Nn AecAo sore una deter4inada eida< co4o uede ser e& saor de unrefresco.

    JQu+ criterio debemos seuir entonces para identificar que es una entidad en nuestra base de datosK

    La respuesta a esta preunta depender( de lo que deseemos *acer con estos datos. Lo m(s ra'onablees 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 se almacena unida 4de modo unitario es m(sc"modo trabajar con ella% o recuperar esa informaci"n en una nica operaci"n.

    )ara tomar estas decisiones% simplemente debes reali'arte las preuntas de la funci"n que deseasreali'ar sobre los datos. )or ejemplo% JCu(ntas bebidas tenemos de un determinado fabricanteK% se puede decir que nuestra entidad ser( todas las bebidas que provienen de un determinado fabricante.

    3n cambio% si nos reali'amos preuntas como J3n que fec*a lle" al almac+n una determinada bebidaK 3stamos requiriendo que le entidad sea cada bebida de modo individual.

    Con las entidades $a identificadas% a*ora debemos identificar los *ec*os que nos dan la descripci"nde cada entidad% en el ejemplo de las bebidas $a los *emos descrito% $a que estamos *ablando de loscampos:

    • no4re• faricante

    • distriuidora

    • ...

    Como siuiente paso% tenemos que identificar la entidad o rupo de entidades que en cierta medida%comparten este rupo de *ec*os que acabamos de describir. )ara nuestro ejemplo est( claro que

    ser-a las bebidas que vendemos en la empresa.9na ve' vistos estos pasaos de la interidad de entidad% veamos como se relacionan o se representanen una base de datos:

    • Nna entidad se reresenta co4o e& re%istro de una ta&a.• Nn AecAo Cco4o ;a Ae4os dicAoD sera e& ca4o o co&u4na de &a ta&a.

    • Nn %ruo de entidades que co4arten unos AecAos< reresentara una ta&a.

    5

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    60/101

    •  G co4o es &-%ico< &a ta&a est? for4ada or &a cuadricu&a que se crea a& unir &asentidades con &os AecAos< or &o que cada entidad tiene un va&or ara cadaAecAo deter4inado.

    • '& con(unto de todos estos va&ores< reresenta todo &o que ode4os saer deuna entidad.

    )resta atenci"n a lo que vamos a eplicar a continuaci"n% es mu$ importante. Cada entidadalmacenada debe tener una clave principal. 9na clave principal es un *ec*o% o rupo de *ec*os%que distinuen esa entidad del resto de entidades que compartes unos mismos *ec*os. 8ueno% vistoas- puede parecer un poco complicado% simplemente estamos eplicando que cada reistro de unatabla% debe tener un campo que identifique de modo eclusivo ese reistro respecto al resto dereistros de esa tabla.

    )ara el ejemplo de nuestra empresa de bebidas% los fabricantes que producen las bebidas que acabanen nuestro almac+n% pueden ser muc*-simas empresas% para identificar cada empresa del resto%tenemos el ?= de la empresa% sabemos que ese c"dio es nico $ eclusivo para cada empresa $que no estar( repetido en ninuna otra. )ues perfectamente el ?= ser-a nuestra clave principal. 3n

    caso de no encontrar un *ec*o o campo que pueda ser clave principal% lo que demos *acer nosotroses quedar un c"dio que identifique eclusivamente cada reistro. 3n caso de vernos obliados aaadir nosotros mismos un campo que *aa las funciones de clave principal% estamos utili'ando loque se denomina una clave principal suplente. &ientras que si utili'amos un campo que $a eistecomo un *ec*o de la entidad% se denomina clave principal natural.

    tra posibilidad% es utili'ar claves principales compuestas% estas claves principales son el resultadode unir dos columnas de nuestra tabla para formar una clave principal.

    )ara eleir una clave principal debemos valorar tanto los datos actuales como los datos futuros% $aque podemos seleccionar una columna como clave principal% porque actualmente nos sirve como tal

    $a que identifica cada reistro% pero en un futuro pueden aadirse valores que se repiten para esecampo% siendo necesario utili'ar otra columna como clave principal% o crear una compuesta.

    3s de una ran importancia que definamos correctamente cada reistro% $a que es la principalI*erramientaI de la que se sirve el servidor de base de datos% para seleccionar la informaci"n quenecesitamos. &ediante una clave principal el servidor conoce con que informaci"n queremostrabajar en cada momento. 3n caso de cometer errores $ no tener claves principales que identifiquede manera nica cada entidad% tendr-amos problemas con reistros repetidos% $a que el servidor nosabr-a a que reistro o entidad nos estamos refiriendo en nuestra actividad% $ nos lan'ar-a continuasecepciones.

    Con las claves principales identificadas% SQL Server nos ofrece unas caracter-sticas que nos a$udana for'ar la interidad de entidad:

    • ,ntroducir ndices @nicos en un ca4o ara evitar &a du&icaci-n de datos orarte de &os usuarios.

    • Restrcciones !R,MRG O'G o N),QN' O'G

    • !roiedad ,dentidad.

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

    "0

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    61/101

    4.! Integridad de doinio

    Ma *emos visto que la interidad de identidad permite obtener los datos almacenados en una base dedatos. Con la interidad de dominio conseuimos controlar la informaci"n que uardamos en la base de datos. Como dominio% podemos entender como un conjunto de normas de neocio queestionan la disponibilidad de datos en una determinada columna de una tabla. )or ejemplo que s"lo

     podamos introducir nombres de fabricantes validados por un dominio de valores.#enemos una interidad de dominio b(sica% como no poder introducir letras en campos destinados para almacenar nmeros. ! ma$or nmero de limitaciones% mejor aseuraremos el correctofuncionamiento de nuestra base de datos.

    3stas normas o relas de interidad de dominio pueden indicar que campos son necesarios tener obliatoriamente con valores 4no se pueden dejar vac-os% ?9LL para que la base de datos no tenadatos sin conectar en el caso de tener relaciones o dependencias entre tablas.

    Las *erramientas que nos ofrece SQL Server para aseurar la interidad de dominio $ que iremos

    estudiando son:•  Bios de datos•  Bios de datos de$nidos or e& usuario.

    • RestriccionesJ

    • #H'#O 

    • /'6NLB

    • 6:R',K) O'G

    Re%&as

    • ):B )NLL

    4.4 Integridad re$erencial.

    )ara ver este tipo de interidad tienes que pensar en las dependencias de tablas que *emos visto enla base de datos que *emos puesto como ejemplo de la empresa de venta de bebidas.

    @emos visto por ejemplo que para cada reistro de la tabla 8ebidas% ten-amos un reistro en la tabla!lmac+n. M otro tipo de dependencias o relaciones que *ab-amos denominado relaciones Iuno a

    muc*osI.3stas relaciones se producen entre columnas comunes de las tablas que se relacionan. Como pudeser el nombre de una bebida% el de una distribuidora etc...

    Con la interidad referencial tratamos de aseurar que las filas relacionadas entre tablas% no dejen deestarlo% o var-en esta relaci"n cuando llevemos modificaciones a los datos. Con esta interidadlimitaremos la actividad que puede reali'a un usuario sobre la base de datos.

    "1

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    62/101

    Eamos a ponernos en un ejemplo sencillo% nuestra tabla bebidas tiene una columna llamadaIDistribuidorasI% que se relaciona con nuestra tabla IDistribuidoraI mediante esta misma columna.Ma *emos comentado este tipo de dependencia en este mismo tema. Llevando a cabo una interidadreferencial% limitaremos las siuientes tareas a un usuario:

    • '& usuario no odr? ca4iar e& no4re de una distriuidora en una de &asta&as< ;a que si as &o Aace< este va&or no ser? e& 4is4o en &as dos ta&as< ;rovoca que &a re&aci-n quede rota. Nn re%istro o varios Cdeendiendo de en queta&a rea&ice esa 4odi$caci-nD se quedar? sin su are(a ; no odr? encontrar &are&aci-n.

    • )o odr? e&i4inar re%istros de &a ta&a distriuidora que se encuentren en &ata&a eidas. Ga que todos aque&&os re%istros de &a ta&a eidas queestuviesen vincu&ados a &a /istriuidora e&i4inada se quedar?n sin re&aci-n.

    • )o uede aadir re%istros nuevos en &a ta&a eida cu;o ca4o /istriuidorano coincida con nin%una de &as distriuidoras aadidos en &a ta&a/istriuidoras.

    )or lo tanto% lo que debemos comprender de la interidad referencial es que eisten relaciones entretablas que deben permanecer invariables sea cual sea la actividad sobre ellas.

    )ara mantener esta interidad SQL Server nos ofrece:

    • Restricciones 6:R',K) O'G.• Restricciones #H'#O.

    • /esencadenadores ; rocedi4ientos a&4acenados.

    4.5 Integridad )+ada or usuario.

    Las tres interidades que acabamos de ver% est(n todas interadas en las bases de datos. !dem(s noson eclusivas para SQL Server 2005% sino que las encontrar(s en cualquier base de datos. Si bien puede que no est+n completamente interadas $ funcionales% son compatibles en cualquier (mbito.

    La interidad que vamos a ver en este apartado% recoe todas las relas que no est(n incluidas enninuna de las interidades anteriores.

    9n ejemplo de este tipo de interidad de usuario% ser-a obliar a que una determinada bebidasiempre tena dos tipos de envases. 3ste tipo de interidad no la cubre ni la de entidad% ni dedominio% ni referencial. Nnicamente podemos controlarla mediante procedimientos almacenados%desencadenadores o relas que se almacenen en la base de datos.

    3sta interidad puede ser controlada tambi+n desde los proramas clientes que conectan a la base dedatos. &ediante el c"dio de proramaci"n estos proramas pueden comprobar antes de enviar losdatos al servidor% si estos cumplen con un determinado jueo de normas. De este modo el usuarioestar( limitado al utili'ar el interface del prorama% recibiendo los pertinentes avisos del modo deintroducir los datos.

    !*ora bien% aunque es completamente v(lido implementar esta interidad en el prorama de cliente%lo m(s efica' es colocarlo en el servidor% en la propia base de datos. Ma que no sabemos ni el nmero

    "2

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    63/101

    ni el tipo de proramas que se conectar( a la base de datos% $ nosotros como desarrolladorestendr-amos que incluir este tipo de restricciones en cada uno de los proramas desarrollados% a partedel peliro que supondr-a aquellos proramas clientes% que nuestra empresa a adquirido $ a los queno tenemos acceso para modificar e incluir estas relas.

    4.' oras de noraliación

    Las formas normales definen una serie de normas o relas que a$udan a orani'ar los datos en laestructura l"ica de una base de datos.

    Cada una de las formas que vamos a ir eplicando *eredan las relas de su antecesora% as- la formanormal C% inclu$e las relas de las formas ! $ 8. )ara entender desde un sentido practico losdiferentes modos de normali'aci"n% vamos a tomar como ejemplo la base de datos de la empresavendedora de bebidas.

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

    e,idas

    no4re

    faricante

    distriuidora

    recio

    envase

    cantidad

    fecAacaducidad

    a&coA-&ica

    %rados

    &ote

    Eamos a suponer que tenemos esta tabla con los siuientes datos:

    "3

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    64/101

    no,re

    $a,ricante

    distri,uidora

    recio

    envase

    cantidad

    $ec6a7caducidad

    alc6ólica

    grados

    lote

    Oas

    )aran(

    a

    Oas !ardo 0.30 &ata 0

  • 8/19/2019 Muy Bueno Curso SQL Server 2005

    65/101

    tra manera de no cumplir la rela que estamos viendo es la repetici"n de un campo. 3sta t+cnica esmu$ comn en administradores que se est(n iniciando en el desarrollo de bases de datos.

    Eamos a poner un ejemplo de este error tan comn. ?os situamos de nuevo en nuestra tabla% a*oraimainamos que una bebida puede ser recibida en diferentes envases: lata% vidrio... 3l desarrollador  puede pensar% como tenemos varias opciones de envase para una misma bebida% la forma m(s

    sencilla de cubrir esta informaci"n es tener los siuientes campos en la tabla: envaseO! $ envaseO8.De este modo parece l"ico que podemos uardar dos tipos de envases para cada bebida.

    3ste tipo de soluciones provoca bastantes problemas% el principal causante de estos problemas es la poca fleibilidad que nos ofrece esta estructura. ?uestra tabla dejar( de cumplir con nuestrasnecesidades en el momento en que una bebida nos lleue con m(s de un tipo de envase% *emosnombrado como