CONTENIDO
Prdop
............................................................................................ XV
P r d u g o a la cdici6n e n espaiiol
.............................................................. YIX
1 Los sistelnas d e bases d e datos y la evoluci6n d e la tccnologia d e bases
dv datos ................................................................................ La evoluci6n dr la trcnologia dr bases dr datos ............................ Un c a w : La wmpaiiia International Product Distribution .............. Sistrn~asorientaclos a 10s archivos ............................................ Necrsidad del procarsod e accrso direc:to a tlatos ....................... La i n f o r m a c i h romo u n rccurso .......................................... Otras limitaciones de los sistrmas dr archivo tradirionales .......... Los sistrmas dr hasrs d e datos ................................................. Sistrmas d r 10s modrlos jerircpicw y en red ............................ Sisten~asd r bases tlc datos relacioualrs .................................. Dirkcionrs actualrs-platai'ormas clirntelsrrvidor ......................... Los sistrmas tle base de datos: el hardware. el software. 10s datos. las personas ......................................................................... El hardware .............................. ..................................... El software ..................................................................... Los datos ....................................................................... Las personas ................................................................... Interrelacii, 11 (rrlacibn) rntre los t w ~ t r ocomponentrs drl sistrma . Rrsumen ............................................................................ Preguntas tie comprobacihn .................................................... Problemas y ejrrcicios ................................. ........................ Prnyrctos y curstiours profrsionalrs .........................................
2 Servicios d e celebraciones: u n ejemplo d e u t i l i z a c i h d e base d e
datos ..................................................................................... El raso clr Servicios p a r a Celebraciones (Catering) ....................... Antecrtlrntes ...................................................................
CONTENIDO
Operaci6n tlr los ~ ~ t ~ g o c................................................... ios Srrvicios d r rnll)lt.atlos ...................................................... Atlt~uisicicin .................................................................... Planific.~c.ihnd r tarras ......................................................
Promotion ......................................................................
............................................................ dl datos ............................... Descripc:ibn del rit.10 dt: ret:el)tiOn vt.nta/efreti\c~ ...................... De las entidades a las tahlas ................................................ Creacibn tle urla tallla ....................................................... Diagrarna rc~visatlodel rnotlrlo tle tlatos .................................. E s t a h l r t w las cornpro1)aciones tlr validacihn ........................... Caracteristit*asatlicionale.~tlc 10s SGBD .................................... 1ntroduc:cihn tlr tlatos ;I tr;rvbs d e forinularios siinples ............... Un forn~ularionlnlti-tahla: rl forn~ulariosolicitud .................... Ohtener inforinaci6n p a r a la grstiOn a partir d e la h a w dt . tlatos ...... Rrsulnrn ............................................................................ Preguntas de coml)rol)aci6n .................................................... Prohlernas y rjtwicios ........................................................... Pro!.rt.tos y cuestionrs 1)rofrsionales ......................................... Estado financirro
r Diseiio e irnplrrnentatihn de la hast.
.
3 Sisterr~asd e 1)ases cle tlatos e n las o r g a n i z a c i o ~ ~ e......................... s C o n ~ ~ a r tdatos ir y hases tlr d;rtos .............................................
Compartir datos tmtre unid;rdt:s fiinrionales ............................ C o ~ n p a r t i datos r e n t r r difwentes nivrlrs de usuarios ................. C o n ~ p a r t i datos r tmtre difrrentt-s lot~alidadrs........................... 4 El papel dt. la hasr d r datos ................................................ Planific:at:i6n estratbgica tlr h a w s tlr datos ................................. La necesitlatl tlr l~lanificai-la base de tlatos ............................. El proyrcto de planifit:ati6n tlr la h s r d r datos ....................... El c i d o d e vida d r l drsarrollo d r la hase d e datos (CVDBU) ........ Bases tle datos y gesti6n tlr control ........................................... r Diseiicr de la hasr de tlatos ................................................. Fornlacibn drl usuario ....................................................... Srguridad e intrgridatl d r 10s tlatos ....................................... Rendirniento drl sistrma tlr h a w de datos ............................... Riesgos y costos tie las hases de tlatos ........................................ Conflietos en las organizacionrs .......................................... Fracasos en el desarrollo de proyrctos ................................... Malfuncionarnirnto d r l sisterna ............................................ Costrs imprevistos ............................................................ Nrcesitlatl de personal cualifit:atlo ........................................ S r p a r a r la reprrsrntacibn Ihgica y fisiva tlr 10s tlatos ..................... Arquitrctura tlr tres-nivelrs tle una base d r tlatos ..................... Uso tlr la arquitrctura tres-nivrlrs cn este libro ....................... Drsarrollo d r la base lie tlatos ................................................. Disriio (le 1)ase (Ie datos y el CVDS tratlicional ......................... El ciclo de vitla del desarrollo de la hasr tic tlatos (CVDBD) ........ El caso tle la Corporacibn Zeus ............................................ Planific-aribn prrlirninar ................................................... Estutlio tlr viabilitlatl ........................................................ Definicibn de requisites ..................................................... Diseiio conceptual ............................................................ ............................................................... In~plrn~entacibn Evaluacihn y perfrt:t:ionarniento tlrl r q u e r n a tle hasr tlr datos .....
CONTENIDO
.
Construir c*al~acitlatles en el tlesarrollo tlt h a w s tlr tlatos ................ K e s ~ n e n............................................................................ I'reguntas tlr repaso .............................................................. Prohlemas !ejercicios ........................................................... Proyectos y cnestiones prof'c.sionales ..........................................
11 DISENO DE BASE DE DATOS 4 Prirrcipios del diseiio cor~ceptuald e base d e clatos .........................
Realidatl. tlefinitihn cle rrquisitos y modelado cwnccyt~~al tle tlatos ... Realitlad y moclelos ........................................................... Moclelos conceptnalrs tle datos ............................................. Fnntlamentos ...................................................................... Objetos .......................................................................... Esp~ia1izat:iSny generalixacibn ........................................... 1nterrelac:iones ................................................................. Carclinalitlad ................................................................... Atrihntos ........................................................................ Ejemplos ........................................................................... Ejemplo 1: El motlelo d e datos clc un 1)anc:o ............................. Ejemplo 2: Hnerto f'ruticola de Stratton ................................. Ejemplo 3: IJn problema de 1hgit.a ......................................... Constri~irmodelos conceptuales cle clatos a partir clc 10s informes existentes ............................................................................ Cam: Servicios dr Consultoria Manwaring .............................. [In motlrlo de tlatos p a r a las compras .................................... l l n motlelo de datos p a r a la facturacihn d r proyectos ................. . Agrepac~on ......................................................................... Ejemplo 4: Compaiiia Constructora Prrmicr ........................... E j e ~ n p l o5: Huerto fruticola de Stratton (twntinuaciirn) .............. Ejeniplo 6: Srrvicios de Consultoria Manwaring (ctrntinnacihn) .... Moclelaclo concy)ti~ald e objetos contra ohjetos fisic-os ................... El pro1)lema tlc ilna 1)il)lioteca .............................................. C r r a r el modelo tlr datos de la hihliotcca ................................ FabricaciOn tle piezas ........................................................ Ohjetos conrepti~alespara 10s servicios de consulta Manwaring .... Intcgracibn tle vistas: Un ejemplo ............................................. Resumen ............................................................................ Prtbguntas cie t:omprol)acibn .................................................... Pro1)lernas y ejercicios ........................................................... Proyectos y cuestiones profesionales .........................................
.
.
5 El ~noclelod e datos relacional ...................................................
El motlelo d e datos relational y el desarrollo tlr sisttm~as................ El moclt.lo d r datos rrlacional: Conceptos funtlarnentales ................ Relaciones ...................................................................... Valores Nillos .................................................................. Clavrs ............................................................................ Clavrs t-strrnas (ajenas. foreing) ........................................... Restric:t:ionrs de integridad ................................................. El prowso de normalizacibn ................................................... Primera forrna normal ....................................................... Dtpentlencias func:ionales ...................................................
70
.. 1 1
78 79 82
Seguntla forrna normal ....................................................... Tert*eraf o r n ~ anormal ........................................................ Cuarta forma normal ......................................................... Otras formas normales ....................................................... Trausformando (4 moclelo ronceptnal en un motlrlo relacioual ......... ~ r a ~ l ~ f o r i itwnj~~iitos iar d e ot!jetos y a t r i h t o s .......................... Transfornlar mo(lrIoi sin (,laves e\tcbrnas ................................ Transforii~arId c~sl~ec~ializat~iOi~ y la generalizacihn d e conjunto- tlr ohjetos ....................................................................... Transformer intt~rrelaciones................................................ Transformar conjuntos d e o1)jetos agregedos ........................... Transforniar intcrrelaciones recursivas .................................. Ejeniplos de transformac.iones: Servicios tlc Consultoria Maiiwaring . Coinparacibn del morlrlatlo d r datos c~oncrptnaly relational ........... Resullieu ............................................................................ Prt.guntaude repaso ............................................................. l'rohlemas y ejercicioa ........................................................... Proyect~bsy corstiont.~proft~siouales .........................................
6 El i l g e h r a y el cilculo relac.io11a1 ............................................... Una ventaja rrvolurionaria en la manipulacihn de clatos ................
Algrlwa relacional ................................................................ Unibn ............................................................................ IntrrsecciOn .................................................................... Difermtia ......................................................................
Reunicin ......................................................................... Divisi6n ......................................................................... Asignacih ...................................................................... Un Ejemplo Adicional ........................................................ Chlculo relacional ................................................................ La lista resultado y sentencia de califit*acibn............................ El cuantificador existencial ................................................. El cuantificador universal ................................................... La dificultad relativa del ilgebra relacional y cl c i l m l o relational .... Resumen ............................................................................ Preguntas de repaso .............................................................. Problemas y ejercicios ........................................................... Proyectos y cuestiones prof~sionales ......................................... Implen1entaci6n relacional con SQL ........................................... Implementacihn relacional: introduccihn ................................... Drfinicihn de tablas y esquemas ............................................... Definicicin de esquemas ...................................................... T i p s d e clatos y dominios ................................................... Drfiniendo tablas ............................................................. Manipulacihn de datos ........................................................... Consultas simples ...................... .................................... Consultas multi-tablas ...................................................... Subconsultas ...................................................................
..
CONTENIDO
EXISTS y NOT EXISTS .................................................... Funciones intty-adas (Built-in functions) ................................ CROUP BY !I1.4VING ...................................................... Funciones integradas cwn sul~consultas .................................. Olwraciones del iilgth-a relational ........................................ Operwiones de modificaribn d e la 1)ase tle datos ....................... Usar SOL con lenguajcs de procesaulitmto d e datos ................... Tlefinicihn de vistas ............................................................... R r s t t i w i o n ~ s o l ~ r econsultas y actualizacionrs sol)re vistas ........ El t w p w a de inforlnaci6n ..................................................... Rtwirne~t............................................................................ Pwguntas tlr rt:l)ascr .............................................................. Pro1)lemas y ejrrticios ........................................................... Proyectos y c.nt.stiones profesionalcs .........................................
8 1111ple1ne11taci611relaeiollal c o n lengtiajes tle consulta grbficos .........
Introduc.tsii,n ....................................................................... Manipulaci6n d e tlatos .......................................................... Consultas simples ............................................................. Consultas de m6ltiples taldas ............................................... Yunciones integradas (Built-111 Functions) ............................... GKOUP BY .................................................................... Operacicrnes clue modifican la hast: de datos ............................ Paradox para Windows ......................................................... Definicihn y entratla de datos .................................................. Manipulaciih de datcrs ....................................................... Srlercionar atributos y filas ................................................ Consultas conjuntivas y disyuntivas ...................................... 1, enguaje tle aplic-aci6n ....................................................... Rvsumen ............................................................................ Preguntas d e repaso .............................................................. Problemas y ejercicios ........................................................... Proyectos y cnestiones profesionales ........................................
9 Sisten~asd e bases d e datos rlientelserviclor
..................................
Introtlwci6n: un resumm tle 10s conceptos clientelsel~vidor ............ DefiniciOn d e las tablas d e la base de datos en el sistema de base tle tlatos servidor ................................................................. C r e a c i h de t i p s de datos definidos por el usuario ................... Definiendo tablas individuales ............................................. Lenguaje de definicih tle datos: Sumario y ejemplo final ........... ManipulaciOn y programati6n del servidor de datos ...................... Lenguaje flujo-de-control ................................................... Procedimientos almacenados ............................................... Una i n t r o d u c c i h a 10s disparadores ...................................... Desarrollando aplieaciones cliente ............................................ El enfoque de PowerBuilder ................................................ Usando PowerBuilder ........................................................ Construir una a p l i c a c i h .................................................... Crear Data Windows ......................................................... Crear Windows ............................................................... Algunos comentarios finales .................................................... Resumen ............................................................................ Preguntas de repaso ..............................................................
CONTENIDO
Prol~lemasy ejercicios .......................................................... Proyertos y cuestiones profesionalcs .........................................
10 Organization fisica d e 10s sistenlas de base dr clatos
......................
Intrc1tlucei6n ....................................................................... Acceso fisico a la 1)ase de datos ................................................ Formas de ulmacwmmiento Gsicw ............................................ ,Ilmac.enamientt, set.nndario ............................................... Blotp's dc n l ~ ~ ~ n t ~ e n u r n ifisico e n t o ......................................... Fartorcs dv rt.ntlin~ientotlel tliscw ............................................. Ticwq)o dt lwsicionamiento ................................................. Ticmpo dti at-tivac-ihntlr la c.al)rza ......................................... Rctraso tlc rotacihn ........................................................... Vrloc~iclacltle translerencia tle datos ....................................... 'Tiernpo tle transl'erencia tle datos ......................................... Formatos d e almaceuamiellto d e clatos cn disro ............................ Formatos dc pistas ............................................................ Formatos de rrgistros ........................................................ Gestibn d e entradalsalida .................................................. Organizaci6n d e archivos y mltodos de dirc.cc.ioniln~iento............... OrganizaciOn secuencial d e un arehiuo ................................... Organizaci6n secuencial-inrlexacla de u n archive ...................... Organizacibn directa d e nn arvhivo ....................................... Funciones Hash esthtica ..................................................... Fnnciones Hash clinhnliras .................................................. In~~)lrmrnt:rc*ihn tle interrelaciones Ihpicas .................................. Listas enlazatlns .............................................................. Listas invertidas ............................................................... Arlbol-etltlilil)ra(Ioindexado (B+-irl)ol) .................................. Implementac.i6n clientelservidor tie la inclexaci6n hrl)ol-I)alanc-ea(10 (irhcrl-ecf~lilik)ra(io)........................................................... ( h r r e s p ~ u k n ( i aentre estrurtuvas d e datos 1bgic.a~\ c.strnt-turas tle clatos fisicas .................................................................... Correspontlenc.ia en las h e s tle datos relacionales ................... Correspondencia en las bases de datos cn red .......................... Corresponclencia en las hases dc datos jerhrcluicas .................... lZeceso por la clavc-scc.nnd:rrie ................................................ Optirnizaribn d e las consnltas ................................................. Comhinar las operaciones de seleeei6n y rcnni6n ........:............. Comhinar las operaciones proyc.c.ci6n. selecxihn y reunibn .......... Resumm ............................................................................ Preguntas de comprol~acibn.................................................... Ejercicios y prohlemas .......................................................... Proyectos y cuestiones profesionales .........................................
.
IV ADMINISTRACION DEL ENTORNO
DE BASES DE DATOS
11 La atllninistraci6n y el control d e l a base d e datos ......................... 362 Gest16n cle la base de datos: Una v i s i h p a n o r i n ~ l c n...................... F~tncionesdel ABD ............................................................... Conntnicacibn con 10s usnarios ............................................. Establecimiento de normas y procedirnientos ........................... Ohjetivos rlel 4BD ................................................................
363 364 364 366 367
CONTENIDO
Integridad de la hasr d r datos ................................................. Rrstriccioiies de integridad en SQl, ....................................... R(:stricc*ioncsde intrgridad en Query-IyExample .................... Procesamiento d r transaeciones ........................................... Control de la c:onrurrrnc*ia .................................................. Seguriclad de la h e de datos .................................................. Autrntificaci6n (Autenticaci6n) ............................................ Autorizaci6n y vistas ......................................................... Encriptacihn ................................................................... KrcuperaciOn de la h e d r datos ............................................. Puentes d r lallos ............................................................... Procedimirntos d r reci11wraci6n ........................................... Resumen ............................................................................ Preguntas de comprohaci6n .................................................... Prohlrmas y rjrrcicios ........................................................... Proyrctos y c*i~estiones profrsionales .........................................
12 Sistenias de bases d e datos distrihuidas ....................................... 2. Por qui.sistema d r l m r s de datos distrilndas? .......................... Un modelo general de SBDD (DDS) ..........................................
Diseiio de sistemas de 1)ases de datos distrilmida .......................... Estrategias y objetivos ...................................................... Distribuci6n de archivos no fragmentados .................................. Procrsamiento distrilmido de las consultas ................................. Se~nirreuniones(semijoins) ................................................. Intvgridad de 10s datos en 10s sistemas de hases de datos distribuidas . P r o t o d o de cierre de dos-fases ........................................... Bloqueo distrihuido .......................................................... Bloqueo distrilndo de dos-fases .......................................... Marcas de tiempo ............................................................. Recuperac:i6n de la base de datos ............................................. Sistemas cliente/servidor ....................................................... Conceptos genrrales .......................................................... Aplicacionrs de l m e s d r datos ............................................. SOL Server para Windows NT ........................................... Rrsumen ............................................................................ Preguntas de comprohaci6n .................................................... Ejercicios y proble~nas .......................................................... Proyectos y cuestiones profrsionalrs ......................................
13 Selecci6n e implementacih d e un SGBD .................................... Anlilisis de las necesidades de informaci6n para la gestibn .............. Determinar los requisitos de la aplicacihn ............................... Mantener la consistencia de los datos ..................................... Requisites de 10s tiempos de respuesta .................................. Funciones v cauacidades de 10s SGBD ....................................... El diccionarioldirectorio de datos ......................................... Seguridad e integridad de 10s datos ....................................... Capacidades de consults, de manipulaci6n de datos y de informes . Soporte a 10s requisitos de progra1naci6n especializada .............. Opciones de organizaci6n fisica de los datos ............................ Clasificaci6n de los requisitos de las propiedades de un SGBD ......... Reunir datos sobre la disponibilidad de propiedades y sohre el rendi-
.
x
Adquirir datos de 10s vendedores
.......................................... 425
CONTENIDO
Prut:l)as de rvaluati6n (Bc?rtchrnc~rh-) ..................................... Modelos de cvalnacihn ........................................................... Modelo de puntnaci6n ........................................................ .inilisis de la envoltnra de datos .............................................. Cucstionrs de implernt:ntac.ibn ................................................. _lclrninistracibn de la l w w de datos ........................................ Probar la hase tle tlatos ...................................................... P r r p a r a r a 10s nsuarios p a r a 1:1 can11)io .................................. Carpar la base de datos ...................................................... \.lantenimiento de la I m e tlr clntos ........................................ R w n n e n ........................................................................... Prrguntas d r t.o~nprohaciOn.................................................... Prol)lcn~asy rjert.ic.ios ........................................................... I'royc~tos y ruestionc.s profrsionales ........................................
14 Sistelnas avanzados: sistrmas d e has(-s cie datos oritxntaclos a o l ~ j e t o sy
siste~nasbasados e n el c o r ~ o c i n i i e ~ ~......................................... tos ITna rvoluciim hacia 10s sistemas tltb I m e s de datos orientados a 01)(?to ................................................................................ Intentos de proporc.ionar m a representatiim dr los datos nliis poderosa ........................................................................... La contrihnci6n tle la 1)rogramacicin orientad; a o1)jrtos (OOP) ....... .-\I,s t r a t ~ i 6 nd e clast. .......................................................... Clases derivadas y herencia simple ........................................ . Agregaclon ...................................................................... IJn ejemplo rxttwlich que den~uestrala hrrencia multiple .......... Desi~rrollosde 10s sistemas de Ijases ile tlatos orientaclos a o h j t ~ ...... Gemstone ....................................................................... \;l)ast ............................................................................. Orion ............................................................................ PDM ............................................................................. IRIS ..............................................................................
.
0, .................................................................................
Un lenguaje gen6ric.o de hase dr tlatos d r o1)jetos .......................... El modelo de tlatos del Lernrr College .................................... Formnlar consultas con TextQurry ........................................... El formato Irhsico tie las solnciones de consnlta e n TextQuery ...... Definir las direcciones tle las interrclationes ............................ Navegar sohre atrihutos e interrelationes ............................... Asignar nornhres a 10s ronjuntos d e r i v d o s ............................. Ex1)resiones calificadas de cornpararihn de conjuntos ................ Conrctores lwoleanos ....................................................... Introclucci6n a 10s sistemas hasados en el conocimierito .................. Conocirniento y bases de datos ................................................. Representacih del conocimiento can reglas ............................... Formacicin de reglas .......................................................... Keglas en PROLOG ......................................................... Una aplicaci6n simple d e base d e datos en PROLOG ..................... Aspectos fundamentales de PROLOG .................................... La estructura de una a p l i r a c i h en PROLOG ......................... Aplicaci6n de base d e tlatos ................................................. Datalog ..............................................................................
CONTENIDO
L t w p ~ a j rde datos lhgicos (I. DL) ............................................... Rcsunwn ............................................................................ Prrgnntah tlr repaso .............................................................. Prohlenlas y cjercicios ........................................................... Proyrctos y wrstionrs profcsionales .........................................
15 El ~ n o t l d od e datos e n red ........................................................ Estrwtnras trrs-nivelrs ..................................................... Rrgistroz y cwnjlintos ......................................................... Intwrelacibn drl motlrloen red con la srmLntica drl modrladcr conTransformacibn de c.onjnntos d e ohjrtos r interrelacioneb nnon ~ n c h o s.......................................................................... Transforinacihn dt. intrrrrlacionrs IL-arias .............................. Transformacihn tlr intrrrrlacionrs muchos-muchos .................. Ltmgnajr de cirfinirihn dr lob datos (DDT. ) de DHTG ..................... Drl nlotlrlo tle ciatos a1 esqurma ........................................... Drl rsqutma a1 subesqurnu ................................................ 1.rnguajr tlr manipulacibn d r 10s tlatos (DML) tlrl DBTG ............... Facilidadrs d r recuperacibn y actualizacibn d r l DBTC; .............. Pacilidatlrs tlt.1 DBTG p a r a r l procrsamirnto d r conjuntob .......... Oprracionrs d r conjuntos ................................................... Clasificacibn de la asoc-iaci6n tlr conjuntos ................................. IDMSIR .1Jn SGRD ciel DBTG ................................................ E\aluacihn tlr CODASYT. drl DBTG ......................................... Revresentacihn d r 10s datos ................................................ Lrngnaje de manipnlacihn tlr 10s datos ................................... Rrstricciones de intrgridad ................................................. 1mplrmc:ntacibn ............................................................... Hesunirn ............................................................................ Preguntas dr rrpaso .............................................................. Problemas \ rjrrcicios ........................................................... Proyrctos y curstionrs profesionales .........................................
16 El modelo d e datos jcrarquico
...................................................
Introcluccibn ...................................................................... Concrptos hisicos y drfinicionrs .............................................. Las interrrlac+mrs drl modelo jrrhrcjuico para la scmantica tlrl modelado conceptual ................................................................ Tramformar interrelacionrs uno-muchos ............................... Transfor~narinterrelaciones muchos-muchos ........................... La arquitectnra IMS .............................................................. Drfinir la hasr d r tlatos fisica .El DBD .................................. Drfinir la base d r datos Ihgica .El B E P .................................. MCtodos tlr acceso d e 1MS ...................................................... HSAM ........................................................................... HISAM .........................................................................
'
481 481
482 482 485
XIV
CONTENIDO
HDAM ........................................................................... HIDAM .......................................................................... El lenguaje de la manipulac.i6ii de datos del I MS .......................... El rirea d r trabajo del progrania ........................................... DL11 : Una panorhmica ...................................................... Get Unique (GU) .............................................................. Get Next (GN) .................................................................. Get Next Within Parent (GNP) ............................................ Get Hold ........................................................................ Replacc: (REPL) ............................................................... Delrtr (DLET) ................................................................. Insert (INSRT) .............................................................. La rvaluacihn del modelo de datos jrrhrqi1ic:o .............................. La representaci6n tie 10s datos ............................................. El lenguaje de manipulaci6n de datos .................................... Resumrn ........................... . ............................................. Preguntas de rrpaso .............................................................. Ejercicios y prohlemas .......................................................... Proyrctos y cuestiones profesionales ....................................... Glosario
........................... . . .....................................................
Bibliografia
.................................................................................
E
ate lihro eith (.oncehido para 5er ntilizado como texto en curioi inicialcs tllrigidos a estndiantes d r blbtemas de informaciAn, tanto de nitel cle pregrado como d e posgratio. Como tal pnede intrgrarsr ficilmente dentro tie n n amplio c n r r i t . ~ d ~ ntle n 5istemas cle informacibn qne incluye l)rogranlacli~n,analisis de sistema. diseiin tle sistenia5. comnnicaci6n de tlatos. ctc. El l i l ~ r oI~rindauna comprensiva cwhertura cle 10s bistemas tle 1)ases de datos en 10s negocios. E s t i organizddo ;~lretletltrrtiel ciclo cle ticla del tlesarrollo de la has(, clc, datos. lo que nos ofrrre n n marco ddet-uado para la discusihn del diseiio conceptnal. ld implcmrwtaciirn tle la h a w dc. datos ! la gestihn drl entorno. A lo largo del l i l ~ r ose usara el n~odelaclo cwt~ceptnald r tlatos. prilnero como I ~ a s rpara el diseiio c o n c q t u a l \. lnego. p t t ~ r i meno~ tcb.como medio para la ilnplementacihn, usantlo 10s motlelos relational. jerirquico \. en red. T a n h b n se clil~ren10s lenguajes cle totlos 10s ~nodeloa.asi como las implemmtaclones de ]lases tlr tlatof c.l1rntr/5erviclory 105 iistemas I)asados en el conocimiento. Todos estos tcmas se enmarcan clentro tle caracteristiras tacticas y estrat6glcas cle gesti6n q u r incluyen la planificaci6n tle la I ~ a s ede clatos. la srlerciibn del SGHD. la administreedl1 d e la hase de datos. la sepliridi~tly la mtrgritlad v l a i Ijases clc datos clistrib~lidas.
El lihro tiene una organizaci6n simple ! dirrrta cle 10s temas basacla en el clrlo cie t u l a clel drsarrollo d r la h a w de clatos. Esto facilita que 10s estndiantes puedan t c r c0mo loi conc.eptos se relacionan entrt, si y dhnde el material c p e esta siendo estndiado encaja dentro de las actitidadrs generales dcl drsarrollo t k l sistema de nna organizirc16n. I,w capitnlos inicialrs presentan 10s cwnt-eptos tle planificaci6n estrat6girir de rlatos, cirmo c o n q ~ a r t i r10s datos y la arquitectr~rade tre5 niteles, haciendo h f a s i s en el conrepto tlr que 10s aspectos tkcnicos de 10s sistrmas d e hases de datos se determinan por lrlh necesidades de informacibn genuinas d e los negocios. En el Capitulo 4 se proporciona una amplia c>oberturadel diseiio conceptual. Esta inclu!e la cobertura tradicional basica de ohjetos, interrelaciones y atrihu-
XVI
DISENOY ADMINISTRAC~ONDE BASES DE DATOS
tos, asi t:omo tam1)iC.n nn estudio en profundidad d r trnlas m i s avanzados. tales wnlo la agregaci6n. El disrfio c.onceptnal d r datos twXalas I ~ a s r ds e nnrbstrornfoque para el diseiio tIt1 base d e datos en los motlrlos relacional (Capitnlos 5 ! 0). tw red (Capitulo 15) y jerirquico (Cal~itulo16). Debido a la t.strucatnra modular de 10s rapitnlos. el diseiio d e estos model(~sp ~ e d rensriiarsr sin hacer rt.ferrnc.ias a1 modrlatlt~ orientado a ok)jetos. A lo largo del l i l ~ r ose estudian cuatro taasos dc negotios qne tw-acterizan a una rompaiiia d i s t r i h i d o r a , una manufavturrra. nna t.om1)aiiia ronstrwtora \- una firma tle consultoria. Se incluyrn diilogos clue st: relacionan direc*tainente ron pro1)lrmas reales d e 1)ast:s d e datos en 10s nrgorios. Se proporciona flexihilidad para los difrre1itt.s enfoques c p e puedan w a r difrrentes profrsores o instructorrs. Los capitulos son mtorontrnidos. lo clue pwmite que pnrdan seleccionarse s e g h st. h e r . El libro incluye un tratamirnto completo tlr 10s lenguajes rrlarionales: SOL (Capitulo 71, Query-l~y-Exatnplr(Capitulo 8) y el ilgehra y el c&nlo relacional (Capitulo 6), asi romo 10s lenguajcs estindares para las 1)ases de datos jerirqoicas >. r n red. Tam1)ii.n se incluym nuevos aspertos. conio los relativos a los SGBDs c1it:ntelservidor (Capitulo 9). El rapitulo de SOL int.luye m a extensa cohcrtnra tlel SQL-92 ANSI esthndar y el capitulo sobre OBR disrute 10s aspertos genrralrs tlrl lenguaje, asi romo su implenlentariOn m un sisteina comerrial en particnlar. A lo largo de estos taapitulos sobre 10s lenguajes. sr presentan de forma tutorial inuchos qjrnlplos y s r dan rxpliraciones detalladas de t w l a asperto tlel Icnguaje.
Nuevo material en esta edicih Esta edicihn inclnye un tratamiento sutant:ial de los sisternas clientelsrrvidor, con u n capitulo completo dedicado a SGBDs c~lientelservidory a entornos d r tltbsarrollo de ap1it:aeionrs. Especifit:amrnte se examinan 10s sistemas de gestihn d r bases de datos Oracle y SQI, Server y el entorno d e desarrollo d r aplicaciones PowerBuilder. S r exploran 10s principios clue introducen rstos sistrmas, lo q n r 1)rinda u n complrmrnto podrroso a las bases tebriras q u e s r rncuentran a lo largo del lil~ro. S r ha mrjorado el capitulo sohre SQL, clue ahora incluyr una twbertura significativa del estindar SOL-92. Los aspectos relativos a1 lenguaje de definirihll de datos, claves forineas y otras definiciones d r restricciones, nuevos t i p s de datos y las operacionrs del ilgrbra relacional s r exploran con algGn detallr. El Capitulo 2 ofrece tl caso tle Servicios para ~ e l r h r a c i o n r s que , f u r prrviamrnt r inrluido como un suplrmento. Esto prrmite a1 rstudiante de fornia innlrdiata ponrr "las manos encima" de u n sistema de hase d e tlatos. a la vez q n r rerihe una visihn d r l proceso d e desarrollo del sistrma. Los capitulos existrntes s r han reelahorado y rnejorado. Esto ha dado romo rrsultado, por ejemplo, clue se haya inc:orporatlo nuevo lnaterial s o h la implrmentaci6n fisira (hashing tlinimico), sistemas de bases d e datos distrihuidas (asignari6n ciptima d r archivos) y una nueva s r c c i h twrnplrta dedicada a 10s sistrmas d e bases tle datos orirntadas a objeto.
Enseiiar y aprender con el texto Cada capitulo comienza con u n escenario clue proviene de uno de 10s cuatro casos a 10s clue se les va dando continuidad. Catla escenario presrnta una situacihn realista que tiene que ver con el tema del capitulo y destaca 10s temas claves del capitulo. Este rscenario es seguido inmediatamente por nna lista de 10s objetivos del
c a p i t d o . q11r esta1)lrt.t. 10s ronoriniirntos q u r d t h alt.anzar t.1 cbstudiantr. El llalanre d r ratla t.q)itulo inrluye otros numrrosos e6enil)los 1)asatlos en la t
rcatosy r11t4o11e> profrsionalrs para un trahajo mas avanzatlo. 1711 glosario tlr 10s t h n i n o s c l a w s s r va disponirndo en los niLrgent.s tlrl trxto. tlr niodo q n r rstb disponihle 11aranna fhtil rt.ftwritia. I 1 final d r l tttxto s r I)rintla tanihibn un rxtenso glosario general.
Aclaraciones sobre la notaci6n I lo largo ttrl lihro s r presentan inuc*hosrjernplos para ilustrar twnt7rptos r n el niotlelatlo de datos. 10s Irnguajes. etc*.A4nirnudo en estos rjeniplos st. usan n o ~ n l ) r r stlc datos c o w puestos. Alguiias v r t w ;ipiirrwii ronectados con guionrs y otras \rt*es roil sn1)rayatlos. Ekta selrwihn esta contlicionada p o r la industria. P o r rjrmplo. los nonihres tlr datos r n rl capitulo del modelo en rrtl nsan guiones porqur eso es lo que emplea el modrlo C O 1 ) I S I ~ L rsthndai-, mientras q u r 10s capitulos sohre SQL y QBE w a n su1)rayatlo. El estndiante que desarrollr un proyecto o el teasopal-ticnlar tlr un sistcnia real tlrber i detrrminar quC convrnio r r t p i e r r el sistema. Una iniplcmentacih con 6xitc1tle algnno de nurstros t~jcrnplospudirra rrquwii- convrrtir guiones a suhrayados, o a1 rontriuio. Kn cualquirr t w o esta conversihn no r s dificil y c i d q u i r r c~1mparaci6nd r nurstros rrsultados con 10s d r l estndiante no tle1)irra causar confnsihn.
A1 instructor Nnrstro ohjrtivo a lo largo tlrl libro r s ofrerer nn material que sirva lo mismo a1 estudiant r q u r s r inicia cotno a1 rstudiaiitt: avanzatlo, prrsrnthntlolo en una forma c l a m . Tarn1)iPn se h a n drstarado difrrrntrs p n t o s de vista. P o r tanto, si tlesea presrntar cl trma desdr el punto tlr vista de la grstihn o clrsde el punto d r vista tknictr, pneclr srlecxionar 10s capitu10s s r g h l r convrnga para su rnfoque. Si su intrrks r s rnfatizar el disriio (lr hases dr datos o 10s lrngilajrs d r nianipulatihn tlc tlatos, el l i l m 1r 1)rintla nn fuertr soportc en a m l ~ a s ireas. Finalmrntr se pnedrn tam1)ii.n seleccionar los capitulos para seguir un rnfocpr ti-adicional a1 trma, o pnetlr tomar trmas m i s avanzatlos, hat:icntlo Cnfasis rn las linras actuales d r invrstigaci6n. Puedr usarsr la siguirnte lista de capitulos por areas tlifrrrntrs p a r a orientar el curso st@n sus rrquisitos.
Cupitulos TCcnicos 2.4.5,6,7,8,9.10,14,15.16 Copitulos dp Dispio de Bows de Dotos 4 , 6 , 10, 15,16 Copitulos Avunzcidos.. . 4. 7,9, 14
Copitulos de Lenguaj~s 6, 7 . 8 , 9 , 14. 13. 16
DISENOY ADMINISTRACION DE BASES DE DATOS
Suplementos
Agradecimientos LIn g r u p de revisores nos h a 1)rindatlo ideas p sugercmias I ~ I U J .iltiles clue han ayutlatlo a p r e p - a r 1:) vrrsiOu final de (.st(: 1il)ro. Ellos son: Kirk f? :lr.llett. Mississipi Statt. I!ni\crsit?; U a ~ i t J. l Auw. Western %ashii~gtouU~iiversitj;Elin B. Cohen, Wichita State U n i ~ c r s i t ? ;Orlirnclo E. k a t t r r . Jr.. P i n g a t e Collage; l{ajrt:v Iiaula, Sol~thwt*st Missoori 5. I
A LA EDICION
ESPANOLA
El estado del arte de 10s SGBD Enero de 1997, la prestigiosa revista americ-ana clc. haws d r datos RMS pul)lic.al)a un rciitorial recordando sn dbcimo aniver5ario y el odo en q u r el a(-tual clirrrtor acredi6 a1 ejemplai- niunero uno (1e "De modo cnsunl", romo s ~ i r l rsu(-r(lercon 10s grandes aconteciniientos relacionados (.on r l mundo cle la rultura inform5tic.a. E n ese primcr niimero cie otoiio de 1988 el rciitorial vuaminal~a10s servidores de basrs cie ciatos y su rol en (11modelo emei-gente c-lir~~tr/srrviclor. La majoria de 10s restantes artici~loss r w n t r a l ~ a nen el desarrollo d r ap1ic.aciont.s nudtiusuario Xhase. En r l n i ~ m r r ocitacio cie 1997. que inic.ial,a r l 10." aiio cie su puhlicaribn, avcntural~asu dirrrtor clue r r a difivil predecir cpb h a l ~ r i am el editorial clrl2007. Clirntc/5crvidor fue una nneva itlea cic hacr diez aiios. Hov existen numerosas \ores clue wiialan o preronizan "su muerte" y la sustitucii~npor el nuevo Cliente/Servitlor Univrrsal constituido por las rrdes pii1)liras Intrrnrt y privaclas ((.orporativas) Intranrt. Durantr el afio 1997 la ritacia revista DBMS r s t i rxaminando las tendencias actualrs m i s inno\ acioras, tales como drsarrollo cir aplicac+mc.s (11,haws cie clatoi para I n t r r n r t r Intranet, DBMS5 (SGBD) relacionalrs/objrtc,s, sistemas distrilbuic h . com~)onentes.etc. En rsrncia, se p o d r i decir clue 10s navegaciorrs dc la VCeh y las demis trcnologias VCrl) para u5o en Internet e Intranet r s t i n ram1)iancIo raciicalmente cl modo de desarrollo clr aplicav~onesde bases de datos cie 10s prhximos aiios y ciel t e r w r milenio. Si a ello i r u n r 10s niwvos proverdores y tam1)iCn r l advrnimiento de las nut\ as computadoras NetPC y NC, s c ~prrciso i trner presrntr que cada dia s e r i urcesario power 10s conocimientos tr6riros y prhcticos de tliseiio y construcci6n clr 1)ases cie datos. Si dichos conocimientos siempre han siclo necesarios para el desarrollo profesional cic software, hoy rlia es unn nec*esiciadvital, ya clue si I ~ i e n el inipacto de la Wrl) r n servidores DBMS es mu, ncusndo, las haws cle selrrcihn grstibn de u n SGBD no han ram1)iado c1r5sticamente.
DISENOY ADMINISTRACIONDE BASES DE DATOS
El iiltinio n u m r r o d(: Junio tlr 199: anuncia la implantaci6n tlr los srrvitlor r s n11ivr1-salrs,p r r o a travi'x d r u n procrso d r n~igracii'mlrnto. Acalja (I(: a n u w ciarsr Oracle 8. (jut su fabric-ante prrsrnta w m o la hasr tlr tlatos para la inforr ) prrn~itirliyrrstionar grantlrs cantitlacks nihtica t k retl (Nrtworli C o r i i ~ ~ u t r(IW (1r clatos sol)rr redrs de cwmpntadoras con srguriclacl, fia1)ilitlacl y cconornia. Adrmiis clr las c:arac'tt:risticas anteriorcs; y siguirndo las nrlrvas trndrncias, st, incorpora el rnodrlo ol~jvto,tlr nloclo ( ~ n vs r p~i(:(lrc.onsitlrrar qn(. Oraclca 8 r s u n ., ORDUXlS (Sistrma tlv grstton -;~(l~i~inistrac:iOn- clc I)nsrs cle tlatos rrlacionilllol)jctos), conio ha confirmatlo rrc:irntc:mrntr la 1)ropia revista oficial clr Orad v . Es t h i r . se cwnstruj-en tccmologias tlr objrtos s o h un f'lmtlamrnto rrlacional. Otra tic. las calxrtrristicas sohrrsalirntrs di: Oracle 8 (:s incluir la capacidad para ciw 10s programadores tlc Java puctlan acwcler a 1)asc:s d r datos. El rstatlo ac-tllal (lr las trcnologias t k 1)asrs tlr datos (.st5 soportado p o r sisten~asy o l ~ j r t o s tlistrilwitlos, ORRs, trc.nologia \Y'rh2 CIS, etr. Esto implira qu(: 10s nut:vos usuarios tle t)ascs tlr tlatos tlehrrlin cwntrniplar una f o r ~ n a c i h ei ~n cstus tc:c.nologias clchiclo esrnciahnrnte a cIrlr totlas las \ersiones dcl futr1r.o soportarAn rstas carat:trristic-as. P o r d l o s r newsitan li1)ros innovatlorcs r n t w r i a tl(. h s r s tlr datos cwmo es el qtte trncmos en nu(-stras manos.
Fundamentos tebricos del libro IJa inateria R a s ~ de s datos r s una asigniltura contt:mpIa(la tm totlos 10s (:tirriclilum cle las carrtsras d r Ingrnicria Inforniitica y tle Sistemas Coml~utacional(:so Cirnrias tlr la Computacihn: rso req~1ier.rtlrl rstudiantr o 1rc.tor avanzado disponrr clr 1)urnos lihros clue proporeionen fnndanientos trhricos rignrosos y m ~ ) r o f n n d i d a d , contrmplantlo toclas las tc.c*nologias mhs rrcientrs. Asi nn Imen libro tlv hase tlr datos delwrii c:onttmplar como rninin~o:FILIZdumentos teciricos, el moddo de datos. diserio cle las brrses de tlutos, 10s sisterncls de c~dministrc~cicin, sistemas clientel.servidor,lor,sisternas orientudos u o ~ j e t o ss, i s t e tnus distribuidos y sistenms bnsados en el cwtocimiento. P o r otra p a r t r , 11110 clr los grandes problemas q u r existrn e n la ac*t~ialitlatl son los sistrmas hcrrtlaclos (leg-clcy dutabuse systenrs); rs tlecir, acjuc:llos qrw 1-eprcwmta11a 10s primrros sistenlas tle I ~ a s r sdc. datos (motlelo d c tlatos r n red, mocklo tle datos jrriirquico y los 1)rimrros modrlos rrlacionales). A u r q r ~ eestos sistrmas no son tan d r g a n t r s conlo los actuales sistrrnas rrlacionalrs dc o1)jrtos y hasados r n el conocimiento, sigr~cnsirndo de gran uso y t i c n m toclavia una larga vitla. Es mu? importantr t[ur un profesional d r l software, ingrnirro, analista o progr;imador, st: acostuni1)rr a convivir con ellos mirntras s r protluw la transici6n u 10s moclrrnos sistrmas tlc hasrs clr ciatos. P o r rsta circunstancia cs muy intrrcsante que un lihro universitario tle h a w s tle datos contrnga una partca tlrdicatla a esos sistrmas antiguos o Iirrrdados, soportes todavia d e la informlitica tle gran rantidat1 tlr cmprrsas. Arlministrucicin y diserio rle bases de datos d r G.W. Hansen y J.V. Hansrn (.ontempla con rigor y profuntliclad totlos 10s temas funtlamrntalvs de hases tlr clatos citatlos antrriormrntr: fundamrntos trGricos y organizacicin tlr la base cie datos; tlisriio c k bases tlr tlatos (modrlo tlr clato conceptual, moilrlo d r (lato rrlacional); iniplrmentac-i6n d r la hase tlr datos rrlacionalrs (Algebra rclacional. SQL, sistrmas cie base d r datos clientrlservidor); adrni1iistraci611 y grstion drl rntorno de bases d r datos y sistrmas tlr bases de datos tlistribuidos y hasados e n el conocimirnto. P o r ultimo, contempla los sistemas heredados tlr hasrs de tlatos (modrlo d e datos e n red y jrrarquico), considerando 10s mktodos y arquitecturas tradicionalrs IDMS, IMS, etc.
XXI
PROLOG0 A LA EDICION ESPANOLA
El libro como elemento de ayuda a1 estudiante universitario y profesional
Epilogo T,a ol)l-a tle Gary W. Hansrn y J a ~ n r sV. Hailsen virnr a inc~orporarsta la alnplia 1~il)liografiat.n in$& rxistcmtt: tlr 1,nsc:s tle datos y a la no m ~ i ynwnrrosil. p r o excrlrntt: -en rs1)aiiol- pn1)lic:ada p o r clifrrcntes rditoriales rspaiiolas o latinoy amrriranas, 1)or 10 qiir s r compleinrntari pc-rfectarnetite con las ya rxistentt*~ atlt:niis ocupai-i (4 rspacio significative notable clue supone t r a t a r 10s temas innovadores ya c-itatlos. tle la teoria, (list*Crctmos (111~SII t r n ~ a r i oavtualizado p r n i i t i r a la d i f i ~ i h iio y t:onstr~iccihnd r las h a w s t l r datos tanto en Espaiia como en Latinoamtrica )I. constitiiirLi m a niagnifica noticia en el iinbito editorial hispano, siernpre nwesitatlo d c I)~ietiasohras de nivel nniversitario y profesional.
Luis Joyanes Aguilar Director del Departamento de Ler~guajes v Sistcvnas Znformaticos e Ingenieria d e Software Fncultnd d e lrtformcitica. Escuela Universitarin d e Informciticn Uiliversidad Pontificia de Salamanca. Cnncpis Madrid
P
A
R
T
E
UNO LAS BASES DE DATOS Y SUS CONTEXTOS
i,Qui. 1,s una base tlatos y (1116es o n sistema d r I)ast. dc datos? i,Chrno sc: originaron 10s sistrmas de 1)asc.s de datos? chino se tlvsarrollan los sistcinas tle bases dc datos? i,(:hinc~las orfanizaciones ntilizan y controlan las bases tle clatos? El capitulo 1 sc: rcfiere a las dos primeras p r t y ~ n t a santrriores. E n estc capitulo se re\ isa rl tlt.sarrollo histhricw de los sistcinas d e bases de datos. S r profnndiza r11 la m a n r r a en clue las necwitlatlc~sd r los negocios han conlorniado cl dcsarrollo clr la trc.nologia y c4mo la informatihn iinplirita en 10s datos ha Ilrgado a convertirse en un rrc-uiw corporative valioso. El estntlio c o n t h i r i con nna tlrscriptihn de 10s cwatro comp o n r n t r . ~principalrs cle u n sistema d r Imr de clatos: c.1 hardware, el software, los datos y las personas. Kl r a p i t d o 2 se refiere a l a tei-wra pregunta. Atlui s r examina una aplicaci6n t i p tna!sc presenta rl procseso tlr tlesarrollo tle nn sistc~inade base d e tlatos paso a paso. Se p ~ l r i o1)servar i chi110 puede tlesarrollarse nn sistema tle 11asede datos real sobre u n sistrma tipiro. Si el lector entra r n un sistema cle gesti6n tlr hasrs tle tlatos, p o d r i desarrollar pantallas p definicionrs tlr taldas para desarrollar este ejrmplo cle hase de datos. El rapitnlo 3 responcle a la illtima pregunta, analizando 10s sistrmas d e bases tle clatos en sn c ~ t i t r x t oorg;iniro e introducienclo y rstudiando el ciclo dr vida drl drsarroIlo de nna hase de datos. Se tliscute sohre la necesidacl d e compartir 10s datos a todos los ni\eles dc una organizacihn. se desc.ril)c el proceso d r planificaci6n de los datos rstratbgicos !s r eslwza el paprl t p L jnega el personal que administra la hase de datos en el control y la protecci6n de la niisma. Tanhibn s r muestra que el diseiio de una hase d e datos, aunque ejec*ntado a1 inismo tiempo que r l diseiio del sistrma, drberia ser considerado cwn u n alcance s q w r i o r a1 del clisriio cle cualquier otro sistema. Una base d r clatos bien conc.el)ida se ronvrrtiri entonces en el fundamento para rnwhos sistemas dr a p l i c a c i h .
LOS SISTEMAS DE BASES DE DATOS DE BASES DE DATOS Evolucion de la tecnologia de las bases de datos U n caso: La compatiia International Product Distribution Sistemas orientados a archivos Descubrimiento de la necesidad del procesamiento con acceso direct0 La informacion como un recurso Otras limitaciones de 10s sistemas de archivos tradicionales Redundancia de 10s datos Pobre control de 10s datos Capacidades inadecuadas de manipulacion de 10s datos Esfuerzo excesivo de programacion Sistemas de bases de datos Sistemas sobre el modelo jerarquico y sobre el modelo en red Sistemas de bases de datos relacionales Direcciones actuales-plataformas clientelservidor Sistemas de bases de datos: el hardware, el software, 10s datos, las personas
El hardware El software Diccionario/directorio de datos Mecanismos de seguridad e integridad de 10s datos Acceso concurrente a 10s datos para multiples usuarios Consultas e informes de 10s datos orientados al usuario Facilidades para el desarrollo de las aplicaciones Los datos Las personas Interrelacion entre 10s cuatro componentes del sistema Resumen Preguntas de comprobacion Problemas y ejercicios Proyectos y cuestiones profesionales
4
DISENOY ADMINISTRACION DE BASES DE DATOS "*am-
SILSU~L Broadbent, CEO. y Sarfird
Ilnllon, CIO (director tle aisteii~usrle infbrinttcicin), tlr lu compccliirc litteritcctiorral Prot1lit.t Distributioir, tliarliteil rcitimttdtcineittr sobrr lu t ~ c i i o logiu d r 10s sistemus. Suaurl. vieirdo lo oport~mitluddr hacer u i ~ ubroiim le prouocb: '.iStcndy, ~ I I ~ P que ~ P pas~iiros S (I r ~ i rsihtemu (lr buw de (11ctos t~lieritr/servitlo~'~~" " ~ E s&t(c uitu iihs ( 1 tu.s ~ idrus ( ~ t o l o ~ ~ d r u dSuiLJord ~ ~ ~ : ' " le respoizdib: " ~ A t o l o r ~ d r u d 24lguitu (~? re: he hecho yo u i ~ up r o p e s t u clue no h u b i ~ r usitlo con rebid(^ roil hrilluirtc~y qjecutudu con ubsolutu precisibn?" -'Bim. cecrinos. Cuuicdo tti l l e g u s t ~uqui. ~coh/IPC(IS~Pd e nuestro \istem(i inu1111u1 (I un l m. y o ~ i i t oel aisteinu d e buses de dutos en red, y despuGs lus sist~rilccorieiltudo (1 ( ~ r c k i ~ m relucionctl(~s.Ahoru p i e r r s ir hucicc IIJI(I plutujorina clieirte/serr.idor. Si estos esquemas fiieron concebidos hrillaictemrirte, i p o r quG hay que mmbiurlos (11 cubo r l ~ pocos ciiios:~" Suiford se rib. L a sonrisu d e Susun le decin que ellu e r n comciente de las razones t l cu+c ~ cunrbio y d e 10s benejiciou \ignijie(iticos c o s e r h u d o ~por 1u compuiiiu en cudu o c w sibir. El contestb: "Ha sido uit largo cc~nliiroirluiLtenerse (tvciitzccilclo (1 la p u r qur la tecirologicr. icierto o julso?" 51. Pero tli hus szdo excq)cioi~(ilulperrnui~ecer(11 t u i ~ t od e 105 destcrrollos y moverP einprzb tlr nos huciu ~110srr~ccr~tlo inus contribr~iriori(I iruestro iwgocio. Y peizsur ( ~ I todo rm ntodo tu 11 .\irnple. .. 6'
7 ,
"
nsan Broatllwnt ! Sanford Wirllon reflejan su satisfactihn sohrc. varias dCcadas de twtimiento d d negocio hasado tm la twnologia tle accrso a 10s tiatos. E n estr capitulo se analizan: ( I )el desarrollo dta tAstatet*iiologia en su inipat*to so11rcIt13 ncgotios \. rhmo ha cstatlo a k c t a d a ella miiina 11orlai net~iitladestwnerciales. ) (2) lo, cuatro roml~onentcsprincipalcs de un i i i t c n ~ atic h i e tlr datob n ~ o d r r n o-el hurdmutre. el soj'tuwre. 10s datos la, perionas-. 1)eipuC.~dc leer este t*apitnlo. el uiuario c1el)eria ser t-apaz tit.: Conocer los puntos fiwrtes y t1Pl)iles tlr los sisttm~astlc archivo tle accrso sccumrial y tie accrso diret.to. E x p l i t w chmo la infi)rmaci6u ha llrgatlo a considerarsc conio u n recurso valioso en las organizationes niodernas. Descrihir la evoluci6n histbrica d r 10s sisten~asde haws tlr datos jeriryuicos. en red y relacionalrs y las nec,esidatlrs de 10s negocios cpe condujeron a su desarrollo. Explicar chmo 10s cnatro componentes -el hardware. rl software, 10s datos y las prrsonab- se integran para ronstitnir 10s sistemas de hascs tle datos at-tuales.
La evoluci6n de la tecnologia de bases de datos La sofisticacihn d e la tecnologia modrrna de las I m c s tie tlatos es el resultado de la evoluci6n (4um lo largo de varias t1Gcatlas ha tenitlo Ingar en el procrsamiento d r 10s datos y en la gestihn d r la informaciOn. La trcnologia tie aeceso a 10s datos se ha desarrollatlo desde 10s niGtodos primitives tle 10s afios cint*uentahasta 10s potentes e integrados sistemas d r hoy en dia: arrastratlos de u n lado por la5 n t w d a t l e s y las denlandas de la administracihn y. de otro, restringids por las limitaciones de la tecncrlogia. Las expectativas d e la administraci6n han crecido paralrlamente a la evoluci6n de la tecnologia. Los primeros sistemas de prorcsamieiito tle datos ejecutaron las tareas administrati\as para reducir el paprleo. M i s rrcientementr, 10s sistemas se han expandido hacia la product:ihn y la gesti6n de la informat:i6n, la clue se ha t w n r r t i d o en un recurso vital para las compaiiias. Actualmente, la fnnt:i6n m i s importantc de 10s sistemas d e l m e s d e datos consiste en proporcionar el funtlamento a los sistelnas de i n f o r m a c i h para la gestihn corporativa.
LOS SISTEMAS DE BASES DE DATOS Y LA EVOLUCION DE LA TECNOLOG~A ...
5
Un caso: La compaiiia International Product Distribution Susccn Broutlbc~rites lcc j ~ n t l u d o r u .propietciriu y l)r(~.sidenttcde Interncctionrrl Pro(luel Distribution (IPI)), clue ~ w c l por e er~ciinrrcle 3.500 producto.\ de rricis de 300 Jirbricuntc~s en puises (1e todo el ntnntlo. Lu IPD tieno su sedt~en C:Itit~rgo,con ($rillus interncccionnle~ en Bruselus, B U P I L O rlires, . ~ Lupos, Sirevci Delhi, Tokio y Sydney. 4lrerletlor de 2.700 represeiituntes de i.ent(cs trubuju~tloccrlinente P I L ~ncisd~ 100 pcrisc~s,cccdu uno rle 10,s cuales i i ~ o r i mu una ojicincc r g i o n u l . La compaiiiu t i m e unus ventas uriuules rlc~ulredeclor de 500 millones cle di,lures y uno.s benejicios eri torno (1 50 inillones de di,lures. Despnhs de ventler ropn rle nilios rlurunte un cierto n h n e r o rle uiios prodticirln por un inismo fnbrictcnte (1 los grartdes ulrncrcenes de Chicugo, Susrcn tlecitlii, clue poclrici uiirnentar signijicutii~ument~ sus ingreso.~si r ( y r e s e n t t i h u vurios fhbric~intes.4si. J i u rli, Interi~ationcil Product l ) i s t r i b u t i o ~ ~S .u concepto eru sencillo. ( I ) Ideritijicwr 10s ,fubriccrntes en dii~c~rsos pirises cuyos protluctos rno.\trrrrun coitstarrterrleilte u i ~ aculidutl rc~conociclu.( 2 ) Identijcur rr los rninoristus qiicl upoyururr la ventu (le tules prod~cctos. (3) Estublecer .fuertes reluciones c.ornerciules. tunto con 10s Jibriccintes como con 10s minoristus, proporcionundo (L ehtos ultimos 10s protluctos de 10s ,fubricuntes crprol)iutlo.s. lnicinlinentc~,conttrbu con rnuy poco personu1 y se relucionubu hicornente colt ininoristus de Cl~icugov Ji~bricuiztesdel inedio oeste. Sin ernburgo. en poco tieinpo estrrvo ctbustecienclo productos u 10s comercinntes desde St. Louis Irastu C1e~elund.Sus primerus wiltus ~ n t ( ~ r n u c i o n 11,s u l ~hizo ~ ( I U I I O S ulnlucene~en Toronto. Desprds de tres uiios, lct contpcliiiu IPD tuvo re1)resentuntes e n Europu y (10s uiios incis turde en Tokio. Segltidurnente se abrieron oficirms el1 Buenos Aires, Syrlrre~Lupos y Vuevu Delhi. Cudn ojicinu en~plenbuconiprudores y representclntes de ventus. Los productos comprudos se I . P I L ( ~ ~ ( I ~ en el I)& de fcibricarii,n o se exportrrban para su veiltn en otro p i s . Lu Figurn 1.1 ilnstrtr la intcmdacicin existente entre lu conrpufiiu IPD y sus clientes, trmto 10s ininoristrrb ( ~ 1 m10s 0 suministrcdores. Conlo se puetle ver, 10s productos circulun desde el fubricaute ct 10s aliriucenes (le IPI) y tlesde u l ~ul i minoristu. &!principio, 10s registros de lus t.entus, tle las cornpras de 10s prorluctos y el incenturio de lu compur?iu se qfectr~ubanu inano. Y o obstunte, aljincrlizar el segundo ulio, el v o l ~ ~ n i e( n1 ~ 1negorio S P htchir~extendido tunto que file necesurio comprtrr zin rninicompzitndor puru ulnm-enur estu i1forrnuci6ny r o ~ f e c c i o n ~informes, r fucturas y p g o s , trrl y corr~ose mziestra en la Figuru 1.2. Sunford Mallon fue contrutaclo pura desurrollur este sisteincc orientado a urchivos y para dirigir u n gru110,formado por progrurnuclor~s. operudores prcc /ti entrudu de dutos y personu1 cle operuciorres.
DISENOY ADMINISTRACI~NDE BASES DE DATOS
International Product Distribution
I
I
EL MINORISTA
International Product Distribution
I
CONTROL DE
I
Sistemas or entados a 10s archivos Los sisteinas con~piitacionalrssr utilizaron inicialmente en 10s nrgocios para funciones dr contahilitlad: las curntas a cohrar, las cuentas a pagar, la nbmina 4 otras. Estas funciones rran impresrindihles para clue el negocio funcionara. Por collsig~iientr,(4 costo de 10s c o n putadores cjur podian ejecutar estas funciones era f a d tle justific.ar. Pcrr rjmlplo, rl
7
LOS SISTEMAS DE BASES DE DATOS Y LA EVOLUCION DE LA TECNOLOG~A ...
siste~nad r procesamiento d e datos. Un sistema automatizatlo p r ; r 1woc(wr 10s tlatos tle los rcgistros tic una orpnizaci6n.
e,sfuerzo nlanual rrquerido para la nhiiiina o las rurntas a c o h a r era tan grantle t p b . si u u sistema ;ruttrmati~adoputlitbra reemplazar a1 sistema manual. pagaria l)or si solo la i m e r sihn en corto tirnil)o. Estos sistemas s r Ilamaron sistemas d e p r o c e s a ~ n i e n t od e clatos de1)ido a q a e t.jecw t a h n las funciones 11al)itualrs de tr;rtainiento de 10s registros. Sin qnr chsto 1)urtla sorp r r t d e r a los programadorrs !. a 10s analistas clue diseiiaron estos sistemas. s r dejaron influir durante sn programaciih por la inclinaci6n riat~iralde iinitar 10s procetlimientos manuales rwistentes. Asi. los archivos en el computatlor se corrcspontlian con 10s archi\ os de papel y 10s rrgistros en 10s tircllivos del coinputador contenian la infomiacihn clue podia alniatwmr una carlwta individiial de u n archivo en tin sistrma manual. La Figura 1.3 muestra algunos arc:hivos y datos tlr prueba del sisten~aoriginal orie~itado a archivos dr la cwnpafiia International Prodiwt Distribution. Cada tabla relwesenta nn archivo del sistcma. Es decir. se tienc: tin archive CLIEhTE. u n archito REPKESENTLSNTE-DE-VENTrlS. un archivo PRODUCT0 y asi sncrsi\anwnte. Catla fila represriita 1111 registro en el archivo. De esta manera, el art-hivo PR0I)UCTO contienr tres .to INS registros. Cada uno (It. estos rc:gistros iwntienr los datos s o h e un ~ ) r o d ~ ~ ctlifereutc. c*onceptos o twnpos tlr 10s tlatos individuales en t.1 archivo I'KODUCTO son ID-PKO-
CLIENTE ID-CLIENTE
100 101 105 110
NOMB-CLIENTE Hnos. Watabe Matlzl Jefferson Gomez
-
-
-
DIRECCION Apdo. 241, T o k i o Salzburg B 918, C h i c a g o Santiago
-
PAIS
BALANCE INICIAL
PAGOS HASTA E L MES
Japon Austria EUA Chile
45.551 75.314 49.333 27.400
40.113 65.200 49.811 28.414
REPRESENTANTE DE VENTAS ID-REP
NOMB-REP
ID-DIRECTOR
Rodney J o n e s M a s a j i Matsu Franqois Moire E l e n a Hermana Goro Azuma
10 14 23 37 39
OFICINA
Chicago Tokio Bruselas B.A. Tokio
27 44 35 12 44
PRODUCT0 ID-PRODUCT0
DESC-PRODUCT0
Sueter Lampara de Mesa E s c u l t u r a de B r o n c e
1035 2241 251 8
ID-FABRICANTE
COST0
PRECIO
21 0 31 7 253
11.25 22.25 13.60
22.00 33.25 21.20
VENTA FECHA
ID-CLIENTE
02 I08 02/12 02/12 02/19 02 122 02/25 02/25
100 101 101 I00 101 105 110
ID-REP
CANTIDAD
14 23 23 39 23 10 37
200 300 150 200 200 100 150
FABRICANTE ID-FABRICANTE
21 0 253 31 7
'
WOMB-FABRICANTE
Confecciones K i w i O b r a s de B r o n c e Lamparas L l a n a
DIRECCION Aukland Lagos Lima
Nueva Z e l a n d a Nigeria Per12
Para rrsprlar rl srntido drl hul~lt~r tlrl autor. los i~oml~rrr dr pwsonas. or;aniaacionrs. luparrh ! dirrc:c:ionr>, u~ilizadorrn 10s tjrn~plosa lo largo (lr todo cl 1iI~r.o.sc. han n~antmidoigual quc rn rl oripinal ( R . dcl T.).
DISENOY ADMINIsTRACION DE BASES DE DATOS
programs dc aplicah'm
P o r el rnomento. supongarnos qne se t i m e accrso a totlos estos art'hivos secwntialt1espui.s qnt, totloa mvnte. Es decir. quc. ratla registro puetle leerse y prowsarse ilnicauw~~tc 10s registros q11t' lo precetlen en t.1 art-hivo huhieran sido Ieitlos. Kso t.ra lo tjue otxrria (111 la t ~ ~ n ~ p a iI iPiDa en 10s alios scbstbnta,cuando el allniirenanknto c.11 t1irt.o e r a totlavia relativa~uentec a m . La ~nayoriatit* 10s art.hivos se a h a t - e n a h a n t.11 tintil ~nagni.tit.ay se tenia . lo gcnrral. estos archivos s r p r o c ~ accrso y s r proresaban 10s registros rn s t ~ t w w i a Por sa1)an en lotrs. lo tjnts signifit-al)a quth 111dos10s registros tle u n a r t ~ l l i t tst'~ prot*esal)ana1 mislno t i e m l ~ onornlalnlrnte ~ cada noclw tlespuGs tlel rierre tlel negot.io. Los arel~ivossc. utilizalran para varias aplicacionrs diferrntt+. E'or ejrnlplo. el programa de las cuelitas a w h r a r general~a10s estados d r t.uentas para 10s t*lientes. Utilizaha 10s art*hivtrs CLIENTE !. \iENTA. Aml)os art-hivos se ordetlal)an sc.giln el c a m p ID-C:LIE&TE 1. se fusionahan para c w a r un ektatlo impreso. twmo se murstra en la Fip r a 1.4. El r a m p SL\LDO-Ih'TCIAL en r l archivo CLIENTE se at-tualizal~apara rcflej a r 10s nuevtrs cargos. Los pagos. qntBse rerihian y proc.t:sal~anprevialnente 1)trr otro programs, teniendo en cnenta el arvhivo CLIENTE. se registral)an en el tbaln1w P.i(;OS-H:\STL4-MES-.4CTUA4L tlel arcllivo CLIENTE y s r mostral)an en el cstatlo tle tauelitas. Un p r o p i n l a conlo Gste clue realiza una tarea espec3it:a tle valor p i t ~ t i t wen ulia e11i1)~csaes un programa tit: aplicaci6n ( I un elemento tlc un sqftwr~rede crplicctribr~.El conjunto tle programas clue trahajan t:olet*tisamentepara rt~alizrirun grupo d e tareas r d a tionatlas entrr si tLsun sisterno de aplicucibrl.
Necesidad del proceso de acceso directo a datos Las li~nitacionesde 10s sistemas orientados a arcl~ivos1)uramrnte secucnt.i;~lesno 10s p i varon tle s~ l~erramientast ~ f i t w r sp a r a protiucir p a p s , facturas y otros infor~nesulia o tlos vwes a1 mes. Sin cwd~argo,p a r a e j w u t a r lnurhas tarcas rutinarias r n 10s negocios st. n e t w i t a el a r r e s o directo a 10s datos -la capacidad d e t e n r r accwo y prtrcrsar tlirrrtamente un rrgistro dado sin ordenar primero el archivo o leer 10s registros en seeuencia. P a r a comprentler algunos d e 10s prol~lemastjue ocurren twando rlo existr el arrest) (lire(,to a ltrs datos. se v r r i n (10s ejemplos tlel pasado en IPD.
acceso clirerto a 10s datos
u
I (ordenado por CLINE-ID)
archivo VENTA
) I,
(no ordenado)
ORDENAR (por CLIEN-ID)
.)
archivo VENTA
(ordenado por CLINE-ID)
Programa de Cuentas por Cobrar
Ir
CLIENTE actualizado
(ordenado por CLINE-ID)
1
9
LOS SISTEMAS DE BASES DE DATOS Y LA EVOLUCION DE LA TECNOLOG~A...
@
Snndq; no comprendo por quG nuestros operccdorrs cle entrtctlu de clutos tienen cpe introducir- tanto la cuntidud rorno el precio totcil siempre que introduc~enU I M ~ti.~nse~ccicin rle bb vrntcl. .Yosotro,s teneinos el precio drl producto err el archico PRODI C7'0. i P o r qnC nuestr(I gentc' no puode introd~cirsol~mentelu ~(intidiidy el 11) (/el produeto. qzw en rlccclquier cwso introdurerr siempre, ) quc el s i s t ~ n wculcule el precio totell?" Estclmoa en la +ocu iniciul tld proc(~nurnientode dutos rn 1tc roinl)ul'iit~IPD y S Z Z S ( I I I Hroudbent estci preocrrpado por lu cuntidud tle trubujo innecesnrio clue hc~c~en 10s opertcdorc~s.Cuantos mcis daton tienen que introclucir, rnbs curo resultit. Su preguntu es iwt~cral, trniendo en cuentic pie la conq)ul'ii(~IPD ha iiwertido yu unii c o i i ~ i d e r ~ s11111(1 ~ b l ~ de dineropnru cornprclr tznu coinputrlclora, desurroll(~run puquete d e l ) r ~ g r ( ~ iypcig(cr n ~ s (11 persoizal qzw lo renliza. "Snsun, nosotros tenelnos t ~ sist(~ina n de (irchi~wssecnei~(~iul~s. Esto sipnijiru que el acceso a todos 10s rc$stros en [zit (irchico se tieiw ~ I I realiz(ir P en orden. C u ~ n d ejecnt(eo mos el progruinu cle cnentus u cobrclr, trc~b(ijumoscon 10s archiros C L I K i T E j. l/E\Tl. por tunto, 11otei~einos( I C C ( ~ S Oa1 rc~gistrodelprodtzcto." "Me tento q~zeno coinprwdo lo clue estics diciendo. '.Bien, q n i 11r1ya l g u ~ ~ odutos s de prueba de 10s (1rchico.s. ( I ltrse F i p r o 1.3.) Observa cciino el tirchiuo CLIE,YTE estti ordenrrclo sepiln el ID de1 Cliente. Antes (21' ejecutr~rel propru~nr~ de lus cucJntuscc cobrur, tc~mbiinordenainos el nrchiro 1 E; \TI segiln el ID del Cliei~te.Entonces, cuando ejecutuinos 1us cuent(is u twbr(cr, leen~ohclrnbos arckiuos. Czrrmdo 10s 11)s del Cliente coinriden en nmbos arc.hiros. cictncclizciinos c.1 silldo iniciul en ('1 arrhirio CLIEL\ T E e imprinliinos nn(~,factur(c.En 1r1 fucttzru list(einos 10s papos hastn el ines uctuu1 y detalluinos todos 10s encargos de escJ clientc~,clue s f J nluestrrin r n el urchirw VE,\TA. Haceinos eso inantenierzdo el nlisino repistro rlc~(;LIE1 T E rnientrr~sleernos, sucesicarnrnte, cudu uno cle 10s registros de 1 E\T4 que le corrcJsponden. Obaerua cciino, e n este ejelnplo, el urchiro V E Y T A inuestra (10s cw-clrpos del cliente 100, tres encargos del clientr 101 y u n encargo de ccldu uno de 10s rlientes 105 y 110. Conlo resultado. heinos n ~ i n i m i z ~ ~ludcantidud o de tien~poeinpleadu en lu lecturc~ de los datos de la cintu inapnitica, que es la purte incis lenta de lu ejeclrcicin d d progrunlu. "Ahorn mira q u i sucederia si el progrunlci tuuiern que culcular el precio totul. Lu prinzera venta en el arcltivo tieize el ID de Producto 2211. Fijate que iste se encuentru e n la n~itaddel urchivo PRODC'CTO. Por tc~nto,paru obtener el precio rle ese prorlucto, tendriarnos que leer husta lu n~itaddel archiro PRODC'CTO. El registro tlr ventcr siguiente corresponde a1 producto 2518. qlte es el pr6xirno registro en el urchivo PRODllCTO. Pero despuis. el registro rle VElITA que sigue corresponde ul pr-odurto que estic ol comirnzo del urchiro PRODCCTO. Para obtenc~rrl precio de ese producto. estariornos obligndos a regresur a1 con~ienzodel urchivo PRODC'CTO. 2 Ies cciino tendriamos que estar saltando rontinuurnente u trauik del ~ r c h i u oPRODC'CTO, leyendo haciu c~delr~nte u n gran n i m r r o de registros, rebobinundo la cinta despuls y m i S U C ~ S ~ U N mente?" "Si. Un p u n , consuino de tieinpo," contestci Susan. "Correcto. .4 largo p l u m es mas baruto trner a nuestros operadores introduciendo 10s dutos del precio totcil. '' "Yo no estoy tan seguru de que seu mris baruto, Sandy. Los representantes de tientus,frecuentemente ccrlculan mu1 el precio. entonces tenenlos importes incorrertos cJn /us ,facturas, cli~ntesdescontentos y una disminucicin de 10s beneficios. .KOpodemos viuir coil este problems. n'ecesitamos m a solucicin." "La rnejor solucion seriu cumbiar 10s archiuos CLIE Y T E , PRODUCT0 y otros mhs, n archiuos de acceso directo (secuencinl indexado). Por ejemplo, utilizc~riumosel ID del Producto conzo la rlci~~e del urchivo de 10s productos. Entonces, podriunlos curnbiar nuestro progrurnn de cumtits a cobrar, de mod0 qlie tenga ucceso a cualquier registro de ese archivo en el nlornento yue queramos. Lo inico que necesitamos suber es el ID del Prorlucto rorrespondiente d registro que deseurnos." "
DISENOY ADMINISTRACIONDE BASES DE DATOS
" i k s t o rios dtrriu d g ~ i r i uotru centuju?" "Por s u p u ~ s t o .P o r ejeriiplo. pliedes obter~erel strltlo nctualizado dr los clientes sirrnprc. rjue lo rwcesites. Tun~bibripodernos utilizur 10s u r c h i v o ~tie acceso directo par(1 rulidar los ID tle 10s Productos. 10s I D de 10s F'abricantes, 10s 11) tit. los R e l ~ r e s e r ~ t a n tdt ~e s Pentcis y otros. Eso nos uyuduru (1 ~ l i r n i n u r10s errortjs en l t ~ ~ , f u c t u r du es los clientes. c p e estun p r o r o c u r ~ d osus cpre,jci~." "Eso suenu fubuloso. ;Citurdo lo podrernos logrtxr?^'
h l v i r n d o 1i;rt.ia a t r i s por nn nio~nt:ntosr p r t l r n v r r miis d r w r r a 10s prol)lrn~ascon ltw sistrmas tlr art.hivos srrnentialrs. P a r e c p r s r p r w r w n las vrntas contra rl archivo CLIENTE en rl progralna d r t w r n t a ~a t d ) r a r , las vrntas d c l ~ r rstar ~ i ordrnadirs por el ID tlrl Clirntr. Como rs muy pro1)al)lr tlur las vtmtas se introdnzcan aleatoriamtwtt.. el archivo VENTA4drlw ordrnarse antes dt. q n r purda ntilizarse tao~no entratla a rste prograina Esto s r innt~straen la Figura 1.4. l u n cuantlo (31 archivo VENTA4esti. ordenatlo por el ID tlcl Clirntr, 1~rohal)lrmentrr s t a r i tlrsordrnado por t:on~plrtocon rrsprt.to a1 ID tlrl P r o d w t o . P o r rsta raz6n no se pnrtlr t*alcnlar rl 11rrtiototal d r una vrnta a partir del prrcio r n el a r c h i w PRODUCTO. Esto w n d n c r a tlnr 10s oprradorrs introtlnzt.an datos redundantrs. lo clue rtxtlniere un rsfnc~rzomanna1 irdirional r introdncr una 1)rol)crl)ilidadmayor de rrror. El rctluisito tlr (pit1t o d o d o s archives s r proersen srcnent:ialn~rntrconduw tam1)iSn. tle otra fornma. a rralizar t r a l ~ a j oaditional. P o r rjemplo: otra d r las a p l i t ~ w i o n t .d~e la roml~aiiiaI P D ca1t:nla las coniisionrs por vrntas y genera nn informe d r comisionrs. P a r a calcular la c o n ~ i s i hd r u n rrprrsrntante de ventas: hay que ordenar el archivo VENT.4 nuevainrntr. vsta vex para ponerlo en ort1t.n wgnn ID-REP. Ahora s r purtle procesar c1 archivo VENT.\ contra el arrhivo REPRESENTANTE-DE-VERirl'AS para c r r a r 10s informrs de comisionrs correspontlientcs a 10s r r p r r s m t a n t e s d r vrntas (Fignra 1.5). Estr ejemplo ilnstra algnnas d r las limitacionrs m i s serias d r 10s sistemas d r archivos puranirnte srcnencialrs. Estos lrrohlernas se resolvieron parcialmrntr con la introdut:cibn d r 10s archivos d r at-ceso tlirecto y. particularmrntr, de 10s arrhivos securnt:ialrs indexados ( I S _ 4 M ) ?clue s r utilizaron aml,liainmtr r n 10s aiios sesenta. Los archivos tlr at:t:cx) tlirecto permitrn la recuprratihn d e los rrgistros aleatoriamrntr, a difrrrncia d e los d r accrso sccuencial. El rcgistro tlrsrado r n u n archivn de acceso dirrcto pnedr r r c u p r r a r s r inmrdiatamente. Los archivos lSAM son 10s archivos de accrso directo m i s ntilizatlos r n
archivo REPRESENTANTE DEMNTAS
(
)h7
(ordenado
archivo VENTA
v (no ordenado)
(ordenado por el REP-ID)
I
Programa de Cdlculo de Comision
REPRESENTANTE DE VENTAS actualizado
I Estado de Comisiones
LOS SISTEMAS DE BASES DE DATOS Y LA EVOLUCION DE LA TECNOLOGIA ...
II
p r o c ~ ~ s oclrs t i p t ~ o u ~ t ~ r c iEstos a l . arrhivos prruiitcw ( f u r uno o m i s taanq)osd r datos -Ilamados co~~junitarnrntt. cxlarv- s r u t i l i w ~para ~ iclrntificar prrcisanlrnte club rtyistro st* r c c u p r r a r i . 1,os arcliivos lS_\M proporc.ionaron u n rnrdio potrntr y prictiro 1m-a tlotar d r p a n f1exil)ilitlatl a las al)licac.io~~t-s colilri-cialrs. ( E n r l Capitulo 10 s r disc.utcli m i s tlrtallatlan~riitclos aspcctos fisiros d r 10s sistrmas d r 1)asrs cle datos.) Sin r n ~ l ) a r g olos , archives d r a e t w o clirrcto solamcnte proporcional.on una solucihn partial. P a r a lograr una soluei61i mas co~nplrtaa rstos pro1)lemas fur nrcrsario iutroducir 10s sistrrnas dr grstihn dr 1)asrs (It: datos.
La informacih como un recurso
sistema tle informaci6n. Sistrina automatizado (111r organiza los datw 1)ara p r o t l ~ ~ c i r infor~naribn.
sisleina tlc infi)rmacicin para la gcsiion. Sistrlna qutxpro\ re iuformaciOn para la grstihn o la atln~inistrac~ihn.
E n c.1 dihlogo anterior. Sanford sugirih la pcrsihilidad de bus(-arel saldo d r u n cliriitr s i r u p r r que s r nrrrsitasr. La p~-rgunta"1Cuhl es el halancr actual d r 10s hrriiianos Watal~r?". rs una prrgunta a1 sistcma de infurmaci6n. Tales prrguntas ilustran la transivibn tan sig~iifieati\aclue tavo lugar a finales d r 10s aiios scsenta y principios d r 10s setrnta en rl srntido tle q u r 10s sistrnias c*olii~)utac~ionalcs comrrcialrs p s a r o n tiel procesurnien,to tle 10s dutos a1 pr-ocesnmicvtto d e lcr ir~J'ormu,cibn. Estr ranibio reflejh m a cwnciencia cwcientr I-onresprrto a q u r la inforrnacibn era rnucho inis que simples registros relacionados con el iicgocio. Cradualnlc.iite. en las enipresas coiiirnzaron a darse cuenta clrl valor de la inforrnaci6n y del rnolme potrncial clue 10s sistrnias ccrrnputacionalrs rrpreseiita1)an para organizar y adrninistrar rstv rrcwrso. rrcikn rrcouocido como tal. A finales d r los aiios srstwta, esto w n d u j o a uiia tlemanda rnuy fuertr de sisten~asde informaciou p a r a l a pestion. Estos sistrmas utilizarian 10s datos ya disponibles en el cornputador para brindar respursta a un aniplio esprrtro d r prrguntas d r gestibn o adrninistrac:ibn. E n t:ste contcxto s r hace una tlistincibn rntre datos r inform,ncicin. Cornilnrnente, 10s datos sr w n s i d r r a n corno hechos aislados. P o r ejernplo:
daios. IIrc hok aislados.
iiiforinacion. Uatos organizaclos o rvsulnidos.
rs uii hrcho. Estr hrcho e s t i vontenido en un unico registro en el archivo CLIENTE. Los archivos d r un sisterna contienen rnillares de tales hechos. Los archivos. por lo tauto. contirnen datos. P o r otra parte, la inforu1aci6n corrrsponde a los dntos procesados. E n estr scntido, s r quierr decir q u r la i n f o r m a c i h se puede ver como 10s datos organizados o resurnidos. Por vjernplo, s r podria querer conocer el saldo actual total d r la compaiiia Hnos. Watabe o, qiiizis, se podria prdir el saldo actual prcrrnedio de todos los clientes r n Europa. Las rrspuestas a tales prrguntas srrian informaciones. Por snpuesto, cada hecho o elemento de los datos puede recibir el nornhre tlr inforrnaci6n. P r r o se hace referencia, en primer lugar, a la inforrnaci6n cIue seria valiosa p a r a 10s distintos niveles d r tlireccihn tle una ernpresa, inc.luso a nivrl ejecutivo -especialrtiente para la torna de decisiones-. Esta inforrnaci6n es norn~alrnentrde alto nivrl, resitrnida a partir d e un conjunto mucho m i s grande de hechos. P o r eonsiguirnte, la inforniacihn rs difrrrnte d r loa datos. E n 10s aiios niis recirntrs, el impact0 signifirativo clue ha trnido la inforniaci6n sohrr la planificacihn y la tcrrna de decisiones en las organizaciones h a contlucido a un rrcbonocimiento sirmpre crrciente dr clue la informacihn es u n recurso que t i m e valor y, por lo tanto. nccesita rstar organizada y adrninistrada. Aun cuando m las ernpresas se acosturnbre a trabajar con artivos tangihles, tales corno el dinero, las instalaciones y el personal, cuyo valor purde evaluarse con cierta prrrisibn, h a sido rnuy dificil de medir el valor d e la inforniacibn. Sin embargo, e s t i claro clue si 10s directivos tienen buena informacibn, rs rnis probable que puedan tornar drcisiones prrtinentrs y crrteras con un mayor inq~acto positivo en su negocio. Y vicrversa, si su inforrnacibn es pobre, ellos deben trabajar con rnis incertidumbre y r s menos probable q u e tornen decisiones ccrnvenientes. El drsarrollo tle 10s sistemas de bases de datos se convirtib en crucial p a r a proporcionar informaci0n correcta y oportuna a 10s directivos.
I2
basr de datos. Una rolec.ribn th. tlatos ir~terrelarionatlost p e se puetlr utilizar por nno o mi, programas de a p l i c a r i h . sisteina de base d e tlatos. Una haw de ilatos, L L sistema ~ de g e s t i h tle haws de datot. ron el hardware y cl prrsonal apropiailos. sisteina d e gesticin d e bases d e datos (SGBD). UII tistenla coniputarional quc facilita la gestihn tle las bases d r datos.
DISENOY ADMINISTRACIONDE BASES DE DATOS
Una base d e datos es una coleccihn de elemtmtos tlr tlatos interrelacionatlos qur put'den prowsarsr por uno o m i s sistemas dr apliraci6n. Un sistema d e base d e datos rsta formado por una 1)ase de datos, por un sistema t:omputat:ional de propbsito general -llamado sistenia d e gestibn d e bases d e datos (SGBD)- que manipula la hasr cle datos, asi conlo por el hardware y el personal apropiatlos. Un SGBD normalmente se compra a u n vrnde(lor de sistemas computacionalrs y es el medio con el cual un proprama d r aplicacihn o un usuario final examina p manipula 10s datos a1mac:rnaclos en la basr tle clatos. Al finalizar rste capitulo sr estucfaran 10s componentes t k un sistema dr h e de datos con m i s detalle. Un sistema de 11ast. tle datos. adrc:uatlamente diseiiatlo. integra 10s datos comunt.s a varias uniclaclrs fnncionales cle la compaiiia y facilita su manipulatihn. ItlrniLs de simplifirar la insrrcibn, la rliminacihn y la motlificat~i6ncotidianas d e 10s registros. 10s sistcmas clr h e d r tlatos facilitan la it1entificat:ibn y la c.uantific:acibn cle las relaciones drrivadas rntre 10s elrmentos tle 10s datos, la rrt:opilacibn de la informacihn en resumenes estadisticos, la inferencia sohrt. las posihlrs trndencias del nrgocio y otras operaciones. Metliante tales facilidatles. el sistcma de base de clatos transforma los datos p r o s en informacihn.
Otras limitaciones de los sisteinas de archivo tradicionales A p t w r d r la introclut~i6nde 10s archivos d e acceso directo. pronto se hizo ohvio q n e a 10s sistnnas de archivo cle rualquier tipo era inhrrente u n conjunto de deficiencias: (1)redunclancia de 10s datos; (2) pohre control de lob tlatos; (3) capacidades i n a d r w a d a s clr manipnlatibn d e 10s datos. y (4) esfuerzo rucesivo de programacibn. Redundancia d e 10s Datos. Una dificultatl importante era que mnchas aplicaciones ntilizahan sus propios archivos especiales de datos. Asi, algunos rlementos d e 10s datos e r a n comunes a varias aplicaciones. E n u n banco, por ejemplo, el mismo nonibre de cliente podria aparecer en u n archivo de cuentas corrientes, en un archivo de cuentas d e ahorros y en u n archivo d e pri.stamos a plazos (Figura 1.6). Atlemis, si bien el nomhre tlel clientc. e r a siempre el mismo, el c a m p relacionado con 61 frecuentemente tenia u n nomhre diferente cn 10s diversos archivos de cuentas. Asi, CNOMBRE en el archivo d r cuentas corrientes e r a SNOMBRE en el archivo de curntas de ahorros e INOMBRE Pn el archivo dt. prGstamos a plazos. El mismo c a m p podria tam11ii.n tener una longitud tliferentr en 10s diversos archivos. P o r ~ j e m p l o ,CNOMBRE podria llegar a tener hasta 20 caracteres. pero SNOMBRE e INOMBRE podrian limitarse a 15 raracteres. Esta redunclancia aumen-
archivo de prhtamo
I
CNOMBRE
Carol T. Jones
20 caracteres Registro de cuentas corrientes
\
I
SNOMBRE
Carol T. Jones
\
I
I
INOMBRE Carol T. Jones
15 caracteres
Registro de cuentas de ahorro
Registro de prestamo a plazos
\
13
LOS SISTEMAS DE BASES DE DATOS Y LA EVOLUCION DE LA TECNOLOG~A ...
asi como el ti, 10s gastos tic. administracih para el mantrniiniento y el ah~iac*enan~iento, riesgo tle inronsistencia entre las diversas versiones cle 10s datos cwmunes. Suphngase q u r el nom1)re tle un cliente se motlifici, d r Carol T. Jones a C a r o l T. Smith. El ranlpo dt.1 uornbrr del clientc podria actualizarsr innwdiatamente en el archivo tle cuentas corrieutes, actualizarse la semana siguiente en el archive de cuentas tle ahorros y actualizarse inc*orrectaint~ntven el archivo tie pr6stamos a plazos (Carole T. Smith) (Fignra 1.7). Con el tiempo. tales difvrencias puedrn ocasionar una clcgradaciOn seria en la t*alidad d e la inf'ormacii'nl contrnida en 10s archivos d r 10s datos. Estos t i p s tle inconsistrncia tle 10s datos ~)uctlenafectar t a m l G n la exactitud de 10s infornies. Suponga clue sc tlesea protlucir tin informe para la grrencia mostrando todos 10s clientes que tienen una cuenta para chequeso tuna clienta d r ahorros y n n prirstarno a plazos. Carol T. Smith sr omitiria errhncamente r n el informe porcpe su nomhrr aparece como Carole T. Smith en el archivo d e prbstainos a plazos. Como s r mostrara, 10s sistemas d e base d r datos puetlcn c4iminal- la retluntltu~ciad e 10s datos, ya qne totlas las aplicaciones comparten tin fontlo coniiln clc datos. La informaci6n esencial conio el nomhre o la direcci6n del cliente aparec r r i solamente una vez en la hase de datos. De este modo, se pnrde introducir el cambio de 1111 n o n h - e o tle una dirrwi6n nna sola vez y sahcr clue las aplicacionrs tendran accrso a datos c.onsistrntes.
homonimo. Un tirmino que time diferentri significados en difrrentes contrxtos. si116ninio. T6riniiio clue significa lo misnio.
P o b r e coritrol d c 10s datos. En 10s sisternas de archivos, como se seiiali, antrriorment r , no ha1,ia control crntralizado a1 nivrl de 10s elementos de 10s datos. El niisrno rlemento de 10s datos s o h tener varios noml)res, dependirndo del arcliivo en que estuviera conttBnido. E n un nivel mas hiisico, siempre existr la posibilidad de que 10s diversos clrpartamentos tle una compaiiia w a n inconsistentrs en su terminologia. Un banco, por ejemplo, puede utilizar el tkrmino cuenta para significar una cosa cuando se aplica a 10s ahorros y algo bastante difrrente cuando se aplica a 10s prkstamos. El tkrmino que tienr significatlos diferentrs en contrxtos difrrentes se llama un hom6nimo. Por el contrario, las palahras difermtes pueden significar la misma cosa. Una compaiiia de segnros puede refrrirse a una p d i z u y a un caso y puede querer significar lo niisrno con amhas palabras. Dos tkrminos que significan la misma cosa se llaman sinbnimos. Un sistema de base d e datos soporta el control centralizado de 10s datos y contrihuye a eliminar la confusicin ocasionada por 10s hom6nimos y por 10s sinbnimos.
I I I I I
I
\
I
\
I I
6 archivo de cuentas de ahorro
archivo de cuentas corrientes
I
\
I
\
- I
\
I
\
CNOMBRE
Carol T. Smith
\
SNOMBRE
I
]I
I I
Carol T. Smith
\
I 1I I
I
I I
INOMBRE Carole T. Smith
20 caracteres
15 caracteres
15 caracteres
Registro de cuentas corrientes
Registro de cuentas de ahorro
Registro de prestamo a plazos
\
(
1
DISENOY ADMINISTRACION DE BASES DE DATOS
Capacidades inadecuadas d e 1nanipulaci6n d e 10s datos. Los archivos scc~~rnciales intlexados permitieron que las aplicaciones tuvieran aweso a un rvgistro particular rnetliaute una claw. como el ID drl Prodncto. Por rjcmplo, si sc conoeia el ID ( k l Prodl~rtopara las linlparas de rnrsa, se podia tener accrso directamentr a1 registro qne le c.orrespontlr tlrntro del archivo PRODUCTO. Esto fue suficiente mirntras solaniente sc cpiso un rc.gisti-o iuiitw. Sin embargo, supongarnos que sr quiso un conjunto c1r registros interrclarionatlos. Por ejemplo, se podia estar interesado en identificar toclas las ventas tle la conipaiiia 1PD a1 cliente Maltzl. Quizis se necesitaha conocrr el niinlero total de vcbnta.;.o el prrcio pronirdio, o 10s prcrductos que estahan sientlo c*omprados y clc cuiles fahrirantes. Dicha inforrnaci6n srria dificil. si no iniposil~le,tle obtrner con un +isterna tle archivos 1)orcjnc. estos sisteiuas son incapacrs de provrer conrxionrs furrtes entrr 10s datos t~oiiteuidosen archivos difrrrntes. Los sistemas ( 1 base ~ de datos se desarrollaron es~~ecifit*aiurntr para facilitar la interrelacih de 10s datos en archivos clifcrentes. Esfuerzo de programaci6n excesivu. U11 nuwo programa (1c al~licacii~n con frewcncia requcria un conjunto c.onipletamcnte nuevo cle drfiniciones de los archivos. bmiqur un archivo rxistrntr podia eontener algnrlos tlt, los datos necesarios, la aplitwi6n frecuentemente requeria otros elemeritos de 10s tlatos. Como rcsultado, el programador trnia qnt. recwtlifirw todas las tlefinicioncls de los elenientos de los detos nccrsarios ya existentes en el archivo, asi como toclos los elenientos tle los tlatos nilevos. De esta manera, en 10s sistemas orientados a archivos liahia una interdrpendmcia nluy fuerte entre 10s programas y los tlatos. Aiui inis importante, la inanipulaci6n de 10s datos en 10s lrnguajrs orientados a archivos. como el COBOL. era difitil para las aplicaciones colnplejas. Esto sigl1ific.0 clue amhos esfnrrzos en la programac*iirn de aplicaciones cle gestiiln. tanto inicial conio de niantenimirnto, fueran significativos. Las h s e s de datos brindan una srparacibn entre el Ilrograma y 10s clatos. cle motlo qur 10s programas puedm srr, en cierta metlida, independirntes de 10s detalles de definiciim de 10s datos. .51 garantizar el acceso a un fondo c:omrin de tlatos compartidos y a1 soportar lenguajrs podrrosos para la manipulaciirn de 10s datos. 10s sistemas de base tle datos eliminan una gran cantidad tie programaciirn inicial y de mantenimiento.
Los sistemas de bases de datos
modelo de datos. Un mktodo conceptual para estructurar 10s datos.
Los sistemas de bases de datos superan estas limitaciones dc 10s sistemas nrientados a 10s archivos. .A1 tolerar una estructura de datos centralizada, inteprada, 10s sistemas de 11ase de datos eliminan los problemas de recliindancia y de control tle 10s datos. Si una 11asedr datos centralizada esta disponihle para toda la compaiiia y, por ejemplo, t w o clue camIbiarsr el nombre de un cliente, dicho ramhio esti disponihlr para todos 10s usuarios. Los datos se controlan por mrdio tle tm diccionario de datoslt1irec:torio (DDID) dr 10s tlatos. que en si mismo esti ccrntrolado por un grupo de elnpleadoa tlr la wmpafiia. t:onot+ dos como 10s administradores d r la haw dc datos (ABDs):'. Los nuevos mktodos de at-reso a 10s datos simplifican mucho el proceso d r relacionar 10s ele~nentosde 10s datos, e la vrz qur mejcrran la manipulaci6n de los tlatos. Todas estas caracteristicas de 10s sistcinas d r base de datos simplifican el esfuerzo d r programaciirn y mantenirniento de los programas. En la actualidad. estan~osinmersos en varias dkcadas de largo esfurrzo por tlesarrollar sistemas de grsti6n tle bases d r datos catla vez mis poderosos. Este proreso ha d o trstigo drl desarrollo evolutivo d r los sistemas basados en trrs modelos d e datos fundamentales, y que no son m i s que mbtodos concrptuales para estructurar 10s datos. Estos trrs modelos tle datos son el jerirquico, en red y el rrlacional. En las tlos secciones siguientes se eshozari el desarrollo histirrit:~de 10s sistemas de l m e de datos, apoyado en rstos tres modelos.
' En in+
DRAY - Dntntlnse Arlrninistrators ( N . drl T.).
I5
LOS SISTEMAS DE BASES DE DATOS Y LA EVOLUCION DE LA TECNOLOGIA ...
Sistemas de 10s modelos jera'rquico y en red
Los arrhivos sewent.iales intlrxatlos r e d v i e r o n rl prol11t:nla tlel :it2t~t~so tlirwto a 1111 regist r o h i t w tlentro de un nrrhivo. P o r ejrmplo. al revisar m a vez m&sla Figura 1.3. Si tu\iC.ranlos el registro tle la prinlera vtmta mostrado en t:1 arrllivo VENI'A. p r o stLcpisirra t w w w r rl n o m l m y la dirrwihn del clientc invo1nt:raeltr en la v m t a . se podria utilizar simplemente t:1 ID d r l (:lientr (100) para 1)usc.ar el registro tlel 1.1ientr en el art-hivo CI,IESTE. Esto informa cjne el clirnte tlur emitih la orden fnt: W a t a l ~ eBros. Ahora suptrngamos q u r se qniere invertir rl prowso. En lugar tit. querer twnoew el t*litwteinvoliic~radoen una venta, se quieren ronoc-er todas las ventas realizatlas a IIII clie~ltea tleterrninado. Sc: cornienza a partir tie1 registro tie rlirnte corres!)onclie~~tta &atah Rros, y ahora se quierrn todos sus rcgistros tle venta. Esto no se purde h a t w e~irec~tamt~r te en 1111 sistelna de arcbhivo. Prrt.isamente, para tales aL,licacionrsse tltwrrollaron ori+ nalmente los sistemas ti(, base d r tlatos lies primeros sistemas tlr h e de ilatos, introd~~c:iclux a mediatios de los sesenta, esta1)an hasados on el modelo jertirquico, clue Ibresumt. qut: todas las i n t t w d i r i o n e s cmtre los datos pnet1t.n estructnrarsr cotno jerarqnias. P a r a ilustrar esto. stbmodifira ligeramente la base d e datos ele la Fignra 1.3. Ahora. en lngar cle vtSntasclue shlo (:ontienen u n produrto hnicw. se titmen las fa(-turas clue a su vrz cwntienen las lineas d e f'ac*tnra. Catla cliente tienchvarias facturas !- rada factura tienr variax lineas. Cada liura rrgistra la venta dt, un produrto i~nitw.La Figura 1.8 murstra algunos ejemplos. 1,os art.hivos F'ACTURA y L1AE.i I)E FAC'I'UKA ~ w r n p l a z a nel archivo VENTA en la Figura 1.3. La Figura I .9 ilnstra c6mo se lruetle construir una jrrarquia qut: nnlestra las interrelaciones cntre 10s I-lientes, las facturas y las lineas tie fartura. Se considera quc un clicnte es el "propietario" de las facturas, las que a su vez son "propietarias" d r las linras tle f'actura. E n un sistenla j e r i r q u i t : ~de base d e datos. rstos tres archivos se r o n w t a n cmtrr si mediante punteros f'isicos o campos de datos afiadieios a 10s registros intlividuales. L n punter0 (apuntador) es una direc:cicin fisica clue identifica tiGnde puede enrontrarse un registro sohre el disco. ( M a registro d r clientr vcrntendria un apuntador a1 primer rrgist r o de factura twrrespondirnte a rse rcgistro de c:licnte. Los registros tle factura contrntlrian a la vez puntt:ros a otros regiatros de factura y a 10s registros d r linea dr factura. De esta manera, el sistema seria cauaz d r recuuerar ficilmente todas las facturas v las lineas dr f a r t u r ; ~q u e se aplivan a1 clientt determinado. CLIENTE
ID-CLIENTE 100 101 105 110
NOMB-CLIENTE
Hnos. Watabe Matlzl Jefferson Gomez
FACTURA FACTURA-# 1012 1015 1020
FECHA 02/10 02/14 02 / 20
LINEA DE FACTURA FACTURA-# 1012 1012 1012 1015 1015 1020 1020
LINEA-# 01 02 03 01 02 01 02
DIRECCION
Box 241, Tokio Salzburg B 918, Chicago Santiago ID-CLIENTE 100 110 100 ID-PRODUCTO 1035 2241 251 8 1035 251 8 2241 2518
PAIS
Japon Austria USA Chile
BALANCE INICIAL 45.551 75.314 49.333 27.400
PAGOS HASTA E L MES ACTUAL 40.113 65.200 49.811 28.414
ID-REP 39 37 14 CANTIDAD 100 200 300 150 200 100 150
PRECIO TOTAL 2200,00 6650,00 6360,00 3300,00 4240,00 3325,00 3180,00
DISENOY ADMINISTRACION DE BASES DE DATOS
a CLIENTE
0 FACTURA
L~NEADE FACTURA
Suponga que estamos interrsados en agregar informaci6u sohre 10s clientrs a la base de datos jerirqi1ic.a. P o r e j m ~ p l ncomo , 10s clientrs son compaiiias de tiendas por departamentos, podriamos querer tenrr un listado de las tiendas para cada cliente. E n ese caso. expandiriamos el cliagrama de la Figiira 1.9 para que se bra cwmo el de la Figyra 1.10. CLIENTE todavia esti rrlacionado con FL4CTIJRA,la que e s t i relacionada con LINE.4 DE FACTURA. Sin embargo, CLIENTE tamhiin se relaciona con TIENDA y TIENDA estL relacionacla con CONTACTO. Se llama CONTACTO a un comprador a quien vrndemos la mereancia para una tienda en particular. Como se ve en este diagrams, CLIENTE e s t i en la raiz de una jerarquia de la ciial puede derivarse una gran canticlad de informacihn. Estas figuras muestran el tipo de intrrrtlaciones entre archivos qiie pueden realizarse ficilmmte iitilizando el n~odelojerirquico. Sin embargo, se c o m p r o l i ~miiy ripidamente que este modelo tenia algunas limitaciones importantes, ya que no todas las interrelaciones podrian expresarse ficilmente en una estructura jerirquica. P o r ejemplo, para tomar el caso actual un paso m i s alli. es obvio clue nos interesamos no solamentr por la relacihn entre 10s clientes v las facturas, sino a u e tamhikn nos intrresa la relacihn entre las facturas y 10s representantes de ventas. Es decir. queremos conorer todas las facturas que ha producido iin represmtante de ventas determinado, de modo clue se puedan emitir las instruccionrs para su comisihn. Esta nueva interrelaci~jnse muestra en la Figura 1.11.
7,Fl FACTURA
FACTURA
TIENDA
LOS SISTEMAS DE BASES DE DATOS Y LA EVOLUCION DE LA TECNOLOGIA ...
CLIENTE
REPVENTAS
FACTURA
hijo. Un re,'W Itro ~ --wl)ortlinado" en una interrrlaeih jerirqnica.
red. Ui~ainterrelacihn de datos en la cual un rrgistro puede estar subordinado a registros ~ arcliivo. tlc mis ( 1 iin
TIENDA
Sin embargo. este diagrama no es una jerarquia. En una jerarquia, un hijo puede tener solamente un padre. En la Figura 1.10, FACTURA -1s un hijo y CLIENTE es su p d r e . No ohstante, en la Figura 1.11 FACTURA tiene clos padres -REPVENTAS y CLIENTE-. Estas redes sr denominan diagramas. A causa de la newsidad ohvia dc manipular talrs interrelacionrs, a finales de 10s aiios srsenta se desarrollaron 10s sistemas ilc hase de datos en red. A1 igual que 10s sistemas de base d r datos jerirquicos, 10s sisten~as de base de tlatos en red emplearon punteros fisicos para rnlazar entre si 10s registros de diferrntes arehivos. El SGBD jer8rquieo domiriarite es el IMS de IBM, desarrollado a mediados de 10s sesenta. Entre mediados de 10s sesenta y principios d r 10s setenta se ilesarrollaron y se comercializaron exitosamente varios SGBD en redes y este modelo de datos se normaliz6, eventualmente. cortio el modelo CODASYL. En capitulos posteriores se estutliarin extensamente ambos rtiodelos tle datos y las facilidades que hrindan para la definicihn y la manipulaci6n de 10s datos.
Sistemas de bases de datos relacionales El i ~ s odc puntcros fisicos era simultiineamrnte una fortaleza y una debilidad tle 10s sistemas d r bases de datos jerirquicos y en red. Los punteros eran una fortaleza porque permitieron la recuperaci6n ripida de 10s datos que tuvieran interrelaciones predeterminadas. La dehilidad estaba en el hecho de que estas interrelaciones teriian que definirse antes de que el sistema fuera puesto en explotaci6n. Era dificil, si no imposihle, recuperar datos basados en otras interrelaciones. E n la meclida en our 10s usuarios se familiarizaron con 10s sistertias de base de datos y con su potencia para manipular 10s datos, ripidamente encontraron estas limitaciones inaceptahles, como lo muestra esta poltmica en la compaiiia IPD.
66
Cordelia, estamos cuda oez mas Jiustrados con la cantidad de preguntas que nuestro s i s t ~ m ade base de datos no puede responder Jacilmente. Cnarzdo Sandy y t i nos convencist~isd~ qne debiamos canzbiar hacia un sistema de base de datos en red, argumentast~ que t~ndriamosla posibilidad de obtener respuestas a la nzayoria de las preguntas que fiLdrurnos capaces de Jormular. " Susan Broadbent, presidenta ~ j ~ c n t i vde a la compaiiia IPD, y Dick Greenberg, gerente de ventas de IPD, estan hablando con la administradora de la base de datos de
DISENOY ADMINISTRACION DE BASES DE DATOS
IPD (ARD), Cordrlicr Vlolini, sobrr 10s drfrctos de su tcc.tiral nistwntc clr goatiti~ide hnsr\ tlt~ dvtos en red. Esto no es uncr quejtt I L U P I ~ Q . Con cud(i nueuo siste~na.10s directivos de 1PD se porccrtciba~rde qite c~omc~nzu0ur1 (1 h w r r pregulztns qur el sistemcr no rrnponditr como les huhiertt gu\tcrdo. 11111q11t1 ('1 hl.stem(~ l cdn en red les sirti5 durante vurios crGos. crhoru esttibu Ileg(rndo (11 mornrnto r r ~c ~ cprr vez es rrtcis y mics dijicil obterwr lu inforrnacicin qtre sr newsitti. (hrdelio conocitr birn e.sicrs jj.ustrnciones. "Rueno, tnl 1:ez nosotros drbirnos tlrcir m w h a s pregunttis clue 11.s ptrstcrr-it~htrcer. La experiencicr nos ha dernostrtido cpe exicte I L I W uirirdad muy extrns(r de pregunt(~s que 10s tisuario.s quisiernn forrnultrr. Cordeliu con tin^;(^: "El problern(r tJ\ ( p r el .\istrm(r en red dependr dr punteros fisitws clue c o n ~ c t ( ~rntrtJ n si 10s datos en cliferrntec crrchin(rtl~r(rlmentet.011 rsos p u n t r r o ~ .no vos. Si huces unu pregunt(i que no e~rrespondc~ podemos responder ( I ellu sin untr ccrntidrrd t.onsidercrbLe tle progrctmcrcion. Ihorcr tlimr. s rcJsi l ~ i r d e sd(rrrne I I I M L i&w rn(~jorde 10s tipos de preglintn~prro 1u.s e z ~ t i l ~nec(~sit(rs pue.\tns?" Dick respondi6 inrnedic~tcrrnrntr:"Corclelia. queremos responder a todo tipo clc prPgrintas. Realmente no podrmos ctmictrrizurlas por tipo, pues esto serin nrcry restringido. ldecilrnrnte. nos gustaritl t r n w la postbilirlntl rlr formulnr cualrpier preguntcr clue quisiirnrnos y, si la respwsta e.st(i en 10s tlutos. que el sisterna seer errpa: de tlarlu." "Lo que t i dices indiccr que necesitnn~osconsiderur seriamrntr rl cumbio hucicr l i l t sistema relrtciorral de bnsrs rle drrtos. Los purrtwos fisicos no S P usun en un sisternu rrlucionul. Los dntos se pueden rrlncionur si~rnpreque existcc, unn corwxibn l6pica, luego no trnemos que preocul)urno.s por drjinir curiles interrelnciones son 10s qur el sistemn utilizn con mayor probnbilidud. " Susanprepuntn: " ~ S i ~ ~ ~esto. i j kpor a ~jemplo,que Dickp~iedepregurztrir s i 10s productos hechos en G h m n .se ~lrndrnbirn t>nC,'orecr? 0 icon qu4 6xito un represerrtante (lr vrntas en Xio estil uendienrlo 10s rquipos rlectrbnicos de Amsterdam?" "Si. Ambas prrguntas son~fhcil~s de respondw r n un sisternu rdacional. Adcmcis, t~ prrcntcrrcis dr qur no tendrris que trclbajar cercn de un programndor tan n rn~nudo.Los directivos que estcin deseosos de nprentler un lengutlje de mc~nipulacicinde datos relativarnentr simple pueden responder a muchas de sus propias preguntns haci6ndolas directnmente nl sistema. Susan, i t i qub pienst1s?" " h t o surncr como trlgo p e rnrrece una investigncibn adicionr~l.Si la tecnologia es tentadorn, drberinmos pensur seriamente en movernos hncia ellu. i P o r quC no p r o j i ~ n d zas en esto y simultilnenmrntr kuces una prop~rrsta?" "
En 1'970, E. F. Cotld public6 u n articulo revolucionario (Cotld, 1970) qnr desafih fuertrmmte el juicio convencional de la "condiei6n" de las hases tle datos. Cod11argumrnt6 clue 10s datos tlehcrian relacionarsr mediante interrt.lacionrs naturales, 16b+as, inherentes a 10s datos, mas que mrtliante punteros fisicos. Es drcir, las personas tlehian ser capaces de comhinar 10s datos de fuentes diferentes, si la informacicin 16gira newsaria para hacrr la comhinacihn estaba presente en los datos. Esto ahri6 una nurva prrsprctiva para 10s sistemas de gesti6n de informaci6n, ya que l a s interrogaciones a las haws de tlatos no necesitarian, en adelante, limitarse a las interrelacionrs indicatlas por 10s punteros fisiros. Para ilustrar las deficiencias de 10s sistemas tle bases de datos que se fundamentan en punter05 fisicos, consid6rese la Figura 1.11. En ella se muestra qur CLIENTE, FACT U R A y LINEA DE FACTURA esthn conectados por punteros fisicos. FABRICANTE y PRODUCT0 tambiCn esthn conectados. La linea punteada entre PRODUCT0 y LINEA DE FACTUKA indica que estiin rrlacionatlos lbgicarnente, ya que cada linea tle factura se refiere a un producto esyerifico. A FACSin embargo, suponga . - que PRODUCT0 no ha sido conectado con L ~ N E DE T U R A mediante un puntero fisico. ;,C6mo se puede ohtener el informe siguiente!
LOS SISTEMAS DE BASES DE DATOS Y LA EVOLUCION DE LA TECNOLOG(A...
Ksto r r t p i c r c navepar tlrstle CLIENTE a trai-6s d r F.4CTlK4 y LINEA UK FA(:TURA, h a s t a , ~ ~ O ~ ) U y.( :tlr ~ oahi, subir liasta F.4HKIChNTE. Pursto qnc la t w n r x i h fisica r n t r e I,INE:I UE FACTUKd y PROUUCTO no rxistr en la base de tlatos. vsta n;t\rgaciOn no se pltrtlr hacrr mrdiante las facilidatlrs norinalrs tlr la l m r s tlr datoc. E n ~ I I Iugar. p a r a 01jtrwr la inforrnacicin prditla, tlrben utilizarsr las tkcnicas a n t i p a s y engorrosas tlrl prot:rsamimto dc archives. Ello nrcrsitaria una rantidatl t:onsidrrat~ltlde tsoniplcja programacihn. En contrastt. t.on rsto. 10s sisttmas d r h a w tit, datos t j w soportan la rc.c*tqwrac:ihn dr 10s datos. tornando en consi(11:racihn las intrrrtdationrs lbgicns, podrian rcsolvrr fAt:ilmrntr tales problcmas. E n su articnlo, (:odtl Ijropuso u n m o d d o si1n1)le d r datos r n rl q u r todos rlloh s r reprrwntarian r n t a l h t:onstitnidas por filas y t.olumnas. h rstas tahlas s r les dio r l nomhrt. matrmititw d r relacioiws, por eso el iticrtlrlo stxtlrnomin0 inodrlo rrlacional. Cotltl tam1)ii.n p r o p s o dos Irngnajcs 1)nra n ~ a n i p u l a r10s datos en las tahlas: rl Algrlra relatiorrlacional (st: vstutliarin en el Capitnlo 6). Ani1)os 1t.nguajrs soportan la nal y cl t*<:~~lo n~anipnlatii,nde 10s clatos s o l m la 11:isr rle ope1w1ort.s lhgitw r n lngar d r los puntcros fisitws ntilizados rn los nicrtlrlos jcrirtjuico y en red. d l inanipular los tlatos sohi-e una h a w conceptual rn vez dc una h e fisiva. (:odd introdujo otra innovwi6n rrvolut.ionaria. En 10s sistrmas d e 1)ast. tlr datos rrlwionalrs. 10s ;~rc.lii\os cornplrtos de datos s r pnrtlrn p r o w s a r (.on instrnccionrs sencillas. Sin emtlargo. 10s sistrmas tradicionalrs r r q u i r r r n quc 10s tlatos s r pi-occ:seii dr rrgistro cn rewistro. El C, t.i~fotluetlr Cotld mcjorh rnormrmentr la t:fit:ient:ia conceptual de la Iropraniatwm tlr la h e tlr tlatos. La n~anipulatihn10git.a tle 10s datos tamhi6n h a w fat.til)le la crracihn de lenguajes tlv i n t r r r o p t i h n nihs iwtwihles al nsuario no rspetialista tbnt.omp11taci611.Aunqur es hastarltta dificil crtbar1111 Itmgnajr qne purtla scr ntilizado pcrr todos las personas sin twnsiderar ~ L I t:xprrirnt.ia prvvia tm t~onq)iitat:i6n.10s Iriiguajrs relacicrnalcs d r t-onsulta h a w n posi1)lr rl a t w s o a las hases dtb tlatos p a r a un prupo tits nsnarios cada vvz mayor. 1,a puhlicaci6n (It. 10s articulw tle Codtl, a pripcipios tit. 10s aiios srtenta, provoci, nna t~on1noc:ihnr n la a c t i d a t 1 d r las coniunidades d r desarrtrllo tlr sisternas d c investigati011y d e sistrmas coinwcialrs. en la medida en q n r trabaja1)an para protlucir uu sirtenla dt. gcsti6n d r h a w s d r datos rrlacional. El rraultado fue la apariti6n d e sistrinas rrlnt.ionalcs tlar;inte la illtinla niitad d r 10s srtenta (l11c s o ~ ~ o r t a b lacnn p a j r s como el Strnt~tnrrtl Qnery Language (SQL), el Query 1,angnagc. (Qnel) y el Qucry-I))--Exan~plc(QBE). 4
DISENOY ADMINISTRACIONDE BASES DE DATOS
mrdida clue las computadoras personales s r hicirron popularrs durantt. los aiioa ochrnta. 10s sistrmas relat*ionales para ellas tai111)ii.n estnvieron disponil)l(.s. En 1086, el SQL sc adopt6 conlo la norma ANSI para 10s lenguajes relarimales de 1)asrs tlr tlatos. Esta norma sr actualizb en 1989 y en 1992. E n r l Capitulo 7 se discutrn clifrrrntrs aspetstos del
SOL-'$2. Todos estos tlesarrollos hit~irronavanzar tmoriutbinrnteel estado tlrl arte en 10s sistemas tle grstibn tlr bases tlr datos > aumrntaron la tlisponihilitlatl d r inforniaci6n tw las hases tlr datos rolectivas. El r n f o t p relational ha resultatlo hastantr ventajoso. Ademis. han rontinuado las promesas en ruanto a 10s resultados d r las investigat:ionrs con vistas a w r a n t i z a r cal)aritladrs cada vrz m i s potlrrosas a mrtlida que se alcanza una romprenD. , slon mhs completa d r las nrcesitladrs tlrl nsllario con rrsperto a 10s sistemas d r hases tlr datos. Actualmtmte. 10s sistemas rrlutionalrs son nn rstinclar cv1 el iurrcntlo, rsl)rcialmrnte en opcraciones comrrcialrs. Naturaln~entr,tanto 10s sistrmas orirntados a archives. romo tamhiin 10s sistemas tlr base tie tlatos jrrirquiros p en retlrs, son totlavia ahnntiantrs p, para cirrtas ap1icariont:s. t:onstituyrn la solncii~nm i s cfiriente t.11 funrihn d r 10s costos. Sin emhargo. durante a l g h tirmlm. la tendencia d a r a tlt: las rompaliias h a sido rnigrar a 10s sisternas rrlacionales siempre clue fuvra posi1)lr. Aun asi, srria un error asnmir clue los sistrmas tle bases de datos rrlationalcs. ahor a disporlihlcs, rrprrsentan la ultima p a l a l ~ r am el desarrollo tie 10s SGRD. Los sistrinas rr1ac:ionalrs d e hoy aun rsthn rvolurionando y, r n algnnos aspectos significativos. cainhiando su natliralrza suhpat.entr para permitir a 10s nsuarios plantear pro1)lemas nlis complejos. Drsde nuestro punto tle vista, uno tle 10s cnirihios m i s importantt.~e s t i ocurriendo en el Area de las bases de datos orirntadas a ohjetos. Eu t.1 Capitulo .I se estudiiiri un modelo conctytual de datos q u r contienr asprctos caracteristicos utilizados r n las h r s d r datos orirntadas a ohjrtos. Un drsarrollo aclicional de gran importancia rs la apariribn de la plataforma clirntelsrrvidor como la hase para 10s calcwlos y el accrso a las haws de datos en una organizat:i6n. En la srccibn siguientr se prrsenta una p a ~ r ~ r i m i tlr c a rste w n cept" La Figura 1.13 muestra la cronologia tlrl drsarrallo histbriw d r 10s mitotlos d e aweso a 10s datos, q u r ya sr ha discutido. La l'ahla 1.1 muestra una comparacihn entre algunas caracteristicas tle 10s divrrsos mCtodos de accrsrr a 10s datos.
Arrhivoi srruencia1t.s
Todos 10s rrgistros cn un archiko d c h proresarw cn srrucnc*ia
Arrhivos cwn aweso direrto
Soportan rl acreso direvto a un rrgi5tro rsperifiw. E5 difiril el aweso a varios registros relarionados con un registro s~mplr
Raws dr datos jerirquicas
Soportan el acceso a v;~riosregistros rrlarionados (.on un registro simple Sr restringen a las interrelacioncs jrrirtyuiras entre los datos Drprndientrs dr punteros fisicos prrdefinitios
Bases de datos m red
Soportan las interrelacione5 jrrirquicas y no-jerircyuiras en rrdes mtre 10s datos Ueprnilientes dr pnnteros fisicws pretlefinidos
Bases ile datos relarionalez
Soportan todas las interrrlaciones Ibgiras entre 10s rlatos El acrrso a 10s datos es 16gico. indeprndiente dr las tCrnicas d r 1nstrumentari6n fisira
LOS SISTEMAS DE BASES DE DATOS Y LA EVOLUCION DE LA TECNOLOG~A ... Publicaciones del modelo relational de Codd I
Archivos secuenciales
Archivos con acceso dil-ecto
Sistemas de bases de dams jerarquicos
Sistemas de bases de datos en red
; ;
I
Sisternas de bases de datos relacionales modelos orientados a objetos
Plataformas clientelservidor
Sistemas de bases de datos orientados a objetos
Direcciones actuales-plataformas clientelservidor 66
De ucuerdo, Sarldq; explicume por qu6 piensas que nos ayudariu hacer la conversibn a una plataforma cli~ntelseruidor.De cualquier modo, ~ q u es k clientelser~idor?~ Susun y Sanford corltiniarz la discusibn tecnolbgicu en p e 10s encontramos comenzundo a t e capitulo. La compaiiia IPD ha progresado mediante sist~masde archivos y de bases de datos y ahoru esta considerando el siguiente paso. Naturalnaente, antes de hacer un movimierzto ellos quieren saber hacia dbnde van y si esto sera eficiente enfuncibn de 10s costos. " I nu plataforn~aclientelser~idornormalrnente es una red local de area -LAN4a la qrie se enluzu u n conjunto de computadores personales y que contiene un computador especial que llamamos urt servidor. Los computadores personales son 10s clientes, que soliciton a1 servidor difererates servicios." ''k Por ejemplo?" "El servidor les puerle enciar programas tales conao procesadores de textos LL hojas de calculo o pziede e j ~ c u t u las r corzsultas a la base de datos y enviarles 10s resultados. La idea bhsica es que cada mtiquina ejecute lo que hugu mejor. El servidor recupera y actualiza 10s dritos, el cliente realiza 10s calculos especiales ypresenta 10s datos a1 usuario. ''2 Esto serci barato?" "NO raecesariamente." " ~ E ~ ~ ~ IqLu ci uentajas Ps. ofrece.7" "Nuestros sistemas serara rnucho mas potentes y faciks de utilizar. Cada usuurw Jinal tendra para trubajar urza lnterfaz grufica de usuario5. Asimismo, como hay u n computudor sobre cada escritorio, 10s sistemus tendran muchas funciones adicionales. Seremos capaces de aumentar tambi6n las capacidades con mayor facilidud y a menor costo, simplementr, incrementartdo el numero de mhquinas. Y estaremos e n m a posicibn rncisJlexible para sacar ventaja del hardware y del software nuevos." "Hasta aqui suena bien. Conforma u n grupo para estudiar las ventajus y 10s riesgos. Si t u informe es favorable, podemos seguir adelante."
La i n t r o d ~ c ~ i cdel i n PC IBM en 1981 establecih la estacihn de trabajo personal colno una norma en la oficina. El tratamiento de textos, las hojas de cilculo y otros software justificaron por si solos el uso de estas miquinas. Ademis, para ellos era natural estar enla-
' LAN, Loral Area Network ( N . del T . ) . ' In~rrfazGrhfirn de Usuario, Graphical User Interface (GUIJ ( N . dcl T . )
DISENOY ADMINISTRACION DE BASES DE DATOS
iuterfnz Grjfira de Usnnrio (GI'I). Pantallai y fuut.ionrs clue pruporc*io~lan a1 ~ ~ s u a rfinal i o un ~ncdio grkl'ieo para trnrr acrrso at sistclna dc vonq)i~tacihn. &ten~asahierios. El twnrrpto d r vonrctar m a raricdad d r t,o~nputadorrscwn dil'crrutrs htrrdware y snftwnr~para trahajar coordinadamrnte ron rl fin dr lograr los o1)jc.tivcrs drl usnario.
zados rntre si 11ai-apcwuitirle ;I 10s usnarios roniiinicarse por rnedio drl rorreo c.let.trhr~ieoy te11er ac*crsoa 10s recwrsos comunes, tales cwmo iml)rrsoras y tlisros. 1nicialrnc.ntr 10s s r n i dores st: inhtalaron para wntrolar la irnpresiOn y el artbesoa 10s arrhivos. Ellos c.onstituyrro11 los serciilores ile irrtpr~si611y 10s servidores de arch,iws. F'or rjrniplo, rl swvidor tlt*arrhi\ os. a1 rrsporldt:~a la soliritud tlt- un clirnte sohrr un irrt.1iivo rspxifico. enviaria el archivo romp l c a~ travbs de la red a1 r o m p t a d o r t*lientv(Figura 1.14). IIoy. sin rmhargo. la nuyoria tlr 10s srrvitlorrs son servidores d e hases d e datos -propamas clue sr rjrvutan (.II rl hurdwrrre srrvidor y proprcionan los srrvitios d r las I m r s d e datos a 10s rc)mputatlorc~~ ttlirntrs ntwsita (Figura 1.15)-. Isi. nn clirntr c p . vsti rjrcwtando Iin prowso d r una aplieat~i0n!una intrrrogacihti (twi~sulta)a m a hast: tlr datos, envia la 11ctiti6na1 servitlor d r la haw tlc datos y kstr l r drvolvrra 10s datos so1ic:itatlos. El 1)rogrania d r aplicacibn 1)urdr enviar tani1)ii.n datos a1 srrvidor roll la solicitud d r artualizar la h s r dc. clatos. El srrvidor r f t ~ t u a r i a vsta artuahzarii~n. La potencia d r la plutaforn~ac*lirntr/srrviclt,r drsransa en rl cwnetbptode tlivisihn tlt* funciones. El dientc. es rl csomjmtadorfrontal qile tienr intrrfaz dircctarnentt~con el usuario. Manil~ulala Iuterfaz Grifica d e I!suario (GUI) y realixa 10s t:ilrillos y otrc~sprogramas d r intrris p a r a r l ~lsuariofinal. El srrvidor rs el q u r gestiona f t ~ r ~ d a n ~ c ~ n t a l n t.i1r n t e arrrso a los datos atenclirntlo las diferrntrs prtirionrs de 10s rlirntrb., tau11)ih rraliza funriones cle twntrol y seguridad de acreso a los datos. (:onceptualrnente. las plataformas c:lientelst.rvidor son parta d r l concrl)to d r sistemas abiertos, en rl cwal todo t i p de cwnputadorrs, sisternas operatives. protocolos tlr redes y otros softwore y h,nrdware 1)urclrn interc:onrt:tarsc y trahajar coordinadarnrutr para lograr 10s ohjctivos drl usnario. Sin embargo. r n la 1)rictit.a. 10s prohlrnias de alcanxar tal varietlad de sistemas oper;~tivos,protocdos d r retles, sistrmas de 11;1srtlc tlatos y otros, q u r trahajen con~untarnentrpuedcn ser m extrerno peligrosos. El ot~jrtivode 10s sistrrnas ahiertos consistr en lograr la interoperabilidad, que es t.1 estailo tlr dos o m i s .;istc.-
interoperahilidad. El rstado qnr c*arat*trriza a nihltiplrs sistemas hrtvrogheoi qur sr romuniran y vontrihuyrn a la trrn~inaciOnde una tarra cwlnun
Cliente
Cliente
Cliente
Servldor Cliente
Cllente
DISCO
LOS SISTEMAS DE BASES DE DATOS Y LA EVOLUCION DE LA TECNOLOG~A...
23
mas h e t v r ~ g ~ n c comunicindose oi y contrihujendo cada nno a algnna parte del tral)ajo clue c~orrespoiich~ a una tarea coiniln. E n cierto sentitlo. el enfoqne c.lientciscrvidor c.5 la c~ulminaci6iidc una percepcihn teiiipi-ana de la potencia del c i l d o c1istril)nicla cwnjnntamente con el cwntrol d e y el acceso a los datos inherente5 a uii cmnputador centralizado. Los visionaries annnciaroii la inminencia de la conipntaci6n distrilmida hace m i s de doh cli.c.aclas, p r o 5610 rec.ienteiiiente esto se comirti6 en iina realidad. iunqiie mnchos prohlemas dificiles de la intero~)eral)ilitlatlestin por i~solvc~sc.. las perspectivas de aumentar continuamente la potencia de cilcnlo y el ac*cc.soa las haws de datos a1 nivel del usuario final n m c a han sido mas estimulantes.
Los sistemas de base de datos: el hardware, el software, 10s datos, las personas Hasta aqui, sc: hail discutido, e n tkrininos generales, los sistenias de hase de tlatos y sus ca1)aciidaclt.s. I h o r a vs cl moinento de acercarse a 10s componentes qiie constituyen tal t i p d e sistenia. Un sistema dc: base (it: clatos es algo m i s q n r simples clatos o qiie 10s datos en coinhinacih con un software de gestihn dt: 1)ases cle datos. E n nna organizaci6n. u n sistema de hase de datos completo esth compnesto p o r cnatro c:omponrntes: el hardware, cl software, 10s datos y las personas.
El hardware El hardware css (:1 conjunto de dispositivos fisicos sobre 10s que reside una I ~ a s ede datos. Consiste en iina o niis compntadoras. unidades de disco, video-terniinales. iinpresoras. unidatles tle cinta magnbtira, cd)les cle c.onvxi6n y otros eqiiipos auxiliarcs y d c conexibn ({el ecpipaniiento. Las coinputadoras. iitilizados p a r a procesar 10s datos en la hase de tlatos, pueden ser uii muinfrume, minicwinputadoras o compiitadoras pcrsonales. E n el ejemplo dado con anterioridad. la compaiiia I P D inic:ialinente coinenzh el prowsaniiento (*onnna minicompntadora y luego escal6 a un mainfrararnr. El muinframe y las miniconiputadoras sr han utilizado tradicionalniente de forma authnoma para soportar el acceso de varios usiiarios a una h e de datos coinun. 1,as coniputadoras personales se utilizan frecuentementr con 1)ases (it:datos antbnomas controladas y inanipiilatlas por u n iisuario unico. No ohstante. tam1)ii.n pueden cwnt:ctarstb a nna rcd clienteiservidor, garantizanclo el acceso de varios usuarios a una hasr cle clatos comun almacenada sobre uniclades d r disco y cwntrolada p o r u n coinputador servidor. El servidor en si mismo puede ser una conq)utadora personal m i s potente, una ininicomputadora, un mainframe o una computadora m i s potente con multiproc*rsaclor. La Figura 1.16 iliistra iina variedad de confignraciones d e hardware. Las unidades tle disco constituyen el inecanismo d e almac*enamientoprincipal para las hases de datos y son esenciales. pues ellas prrmiten el acceso directo, sin el cual el proc*rsainic:nto de las haws de datos seria iniposi1)le. Las computadoras personales, los videoterminales y las iinpresoras se utilizan para introtlucir y recnprrar informacihn (lc las hases de datos. Las unidades d r cinta magnbtica garantizan n n respaldo l ~ a r a t oy r i p i d o d e 10s datos que e s t i n aln~acenadosen las unidades d e disco. El &xitod e 10s sistenias de base de datos ha dependido fiiertemente d e los adelantos rn la tecnologia del hardware. P a r a mantener y controlar la cantidad enorme de datos almacrnados en una base d e datos se requierr iina niemoria principal y u n espacio d e almacenamiento en disco miiy grandes. Adicionalmente, s r newsitan compiitadoras r i p i das, redes y perif6ric:os para ejecutar el alto nilmrro d e accesos requerido p a r a recnprrar la iiiformaci6n en un tiempo aceptablr en nn ambiente que tenga iina cantidad g r a d e de usiiarios. Afortiinadamente, el hardware ha sido cada vez m i s potente y m i s barato durante 10s aiios de desarrollo d e la tecnologia de las bases d e datos. Esto ha hecho posiblr el iiso difundido de 10s sisteinas de bases de datos.
DISENOY ADMINISTRACION D E BASES D E DATOS
Mainframe minicomputadora
, 1,
I
lmpresora
-
Disco
Cinta magnetics (a) Mainframe o minicomputadora que permite el acceso desde varias terminales
(b) Computadora personal que usa una base de datos almacenada
Cliente
Cliente
Cliente
Cliente (c) Computadoras personales conectadas en una red clientelservidor, todas las cuales tienen acceso a la base de datos almacenada en un servidor
El software Un sistema de base de datos incluye dos tipos de software:
El software de prop6sito general para la gesti6n de bases d r datos, comunmente llamado sistrma tle grstiim de hases de datos (SGBD) (en inglks, DBMS). El software dr aplicac:ii,n, que usa las facilidades ilel SGBD para manipular la bases de datos con el fin de llevar a caho una funciirn esl)ecific:a tle la compallia, tal como la emisiirn de 10s estailos o el anilisis de las tendencias de las ventas. El software de aplicaciirn generalrnente se escribe por 10s empleados de una rompaiiia para resoher un problerna especifico. Puede estar escrito en un lenguaje de programacibn estindar, tal como COBOL o C, o puede escrihirse en un lenguaje (usualmente llamado lenguaje d r cuarta generacibn) buministrado con el sistema de gestiirn de bases de
25
LOS SISTEMAS DE BASES DE DATOS Y LA EVOLUCION DE LA TECNOLOG~A...
datos. El software de aplicacicin iisa las facilidades del SGBD p a r a r1 acceso a y la m a n pulaci6n (it. los datos en la bast. tlr tlatos, proporcionando 10s informrs o los tlot~nmentos nccesarios para 10s rrqnisitos tle infortnacicin y d e ~)rocesamirntotle la cwmpaiiia. El sistenln de gesticin d e bases tle dntos (SGBD) es nn softwcrre, 1)arecitlo a tin sistrma operative o a 1111 twmpilador, que hrintla u n conjunto dr srrvicios a 10s usuarios finales. 10s prograniatlores y otros (Figura 1.1;). Como su 11oml)reindica, el SGBD existt. p a r a facilitar la gtastihn tlr una 1)ase dv datos. Con rste fin, u n SGBI) tipicamente hrinda la inayoria de 10s srrvicios siguientcs: Herramienta para 1ci definicicin 4 el control centralizados tle 10s tlatos, conocida como diccionario d r datosldirectolit,itoldirectorio (DDl D) o catalogo Mecanismos de segiiritlatl e integridad d e 10s datos 4cceso concwrrente a 10s datos para 1arios usuarios Utilidadrs para la consnlta. la mani1)ulatii)n y la elahoracihn de informrs orientados a1 n s w r i o ITtilitlatles p a r a el desarrollo tit, iiitrmas de aplicacihn orirntados a1 progr amador tle Diccionario de tlatoJDirectorio (DDID). El subsistrma tlrl tlit~t~ionario/dire(~torio datos almawna lai definiciones de todoi los elementos de loi tlatos r n la hasr d e datoi. Eito i n ( h q c el nivel prilnario d r lo9 elementoi tle 10s datoi (campoi), las estructuras tle 10s tlatoi a nilel tie g r u p 4 a n k r l d e registro 4 10s archivos o t a h h relwionalei. El DD/1) no s61o mantiene rsta informacihn, sino clue, ademhs. cilmacena las intcrrelaciones que ruiiten entre las ( h e r s a s estructuras d e datos. Adit~ionelnientr,manticnc loi indices clue se utilizan para garantizar el acceso a los datos rhpitlarnentr. Asimiimo, almacrna las definiciones d r los formatoi cle las pantallas y dc loi informes. clue pucden ntilizarsr por 1arios progra~nabde aplic.ac.i6n.
Utiiitarios de ~nterrogaciony elaboracion de reportes para el usuario
Subsistema del D~rectorio/Diccionario de datos Subsistema de seguridad e integridad
Utilitarios para el desarrollo de programas de aplicacion
DATOS a la base de datos
DISENOY ADMINISTRACION DEBASES DE DATOS
Meranisnlos d e sepwidad (. intepridad de lo* datoa. Ida 11aw t l v tlatos rs 1111 Iwwril) villiow tpie ntwsita protet~i611.El SGHD garantiza la scyritlatl d t ~la I~ast.t l t t tlatoa lin~itando el acww) a la inisma a1 j~rrsonalat~torixatlo.1,os usn;uios a~ctorixados.; t . ~ ~ r ~ . i i l ~ n e ~ tr. estarin restringitlos en m a n t o a1 aweso a csiertos datos I W 11articwl:u. ! a a t p d l o s c1nr J ~ N ~ ~actllalizar. I I Tal ; ~ t ~ t : sse o twntrola f r r c * ~ ~ c ~ ~ ~ rnrcliantt~ t t . ~ n c ~ ~twntri~wlias ~tt~ ! rntv1ia11rn (I(' portiont~srt~strin~it1a.s t1tl la 11aw t r las vistas di. lor; daios. q w w n s t i t ~ ~ ?tIt4'initior1es d r tlatos. caornt~sth i111stra 1:i Figura 1 .18. l,a integridad y la c ~ t ~ r ~ s i s t r ~(11,i t ilaa I m e tle datos se protegen 1"". n d i o tie restricciorw~sol)rt~10s valort~st l ~ w1111rt1entoinar los el(,])or i~irritosrlr 10s tlatc~sy por. la?;c.al~at,itladesde rrt11perari6n> tlr rcyaltlo snrui~~istratlas dc los datos scba1111ac.enanvn cl tlictionario el SGBD. Las tlrfinicionc.~de las rest~it~ciones dt- tlatos. La rrtqc.rac.ihn y el rrspaltlo st, soportarl 11or (-1 software. (,I tjue anton~itit,arnrntr alrnawoa 10s t ~ ~ r n h i de o s la Imse de datos t.11 t.1 c-atilogo y hrintl:~I t ~ nwdios s pal-a rth+ tal)lrwr 1:1rstado actual tle la l)ase dr tlatos t.11 t.1 teasode nn fallo (114sisttwa.
-
-
Vista del usuario I
Vma del usuario 2 V~stadel usuarlo 3
Elemento de dato
27
LOS SISTEMAS DE BASES DE DATOS Y LA EVOLUCION DE LA TECNOLOGIA...
C o ~ ~ s u l t ea sinforn~c-sdirigiclos a1 ~ l s n a r i o . 1no tlc los aspcbc.tokmhs 1;~liosos(Ie 1111 SGLII) t.s ([ut' 1)riiida Ilerran~ic.otasd r ~ n a n i p ~ ~ l a cdi ei ~10s n datos tlirigidas al I I S I I ~ I E:stos ~ ~ . Irw ~ n a j e stle intc~i-rtyac.i6nf'ic-ilvs d e usar 1)t~rmitviia 11)s11s11ariost'orinular sus c.ons~tltns! l ) t d i r ini'ormw ~ ~ n i w ~ Isi r t ~ ( ~ t a ~(It, i i la c ~h~s ~t ,t t ~ tI;~tos.Esto ~ 1 ~ 1;I\- 1)erson;iI a I I V 1)rogr;tS ( w r i l ~ i lr~ ( 1 1 1 t ~tits tt~s 111aci0n(10 la c*otnl)al"liatlv la c a r p i (It. fi)rinnI;~rrstas C O I L S I ~ / ~ (o~ (It' twoyam" (l'le aplic~i~c.ihn tle ~ ) r ( ~ l ) i ) seist jo~ w i a l . 1 ~ 1gse i i ( ~ r a t I o i(11, ~ ~i~il'orn~eb s t ~ s t i i ai s o ( * i ~ ~ ~ a I10s o s l t ~ n g u a j t l~( ~c o ~ ~ , s ~ iF~-rtwtwtt*lt(~. mcbiitec.1 leng~ialt. cor~s~iltct w n t e n d r h f'ac.ilitlatlrs para t.strurlurar los rcsultatlos (I(. la. coi1szi1trr.s c.orno inlormes. 1,a c.o~~stilt(t lorm111atlal)n(vle a l i n a ( - e n a r ~pta r a s u 11so ~ l l t ( ~ i o r \. sms wsnltatlos l)~~c.tlen ~ ) r o t l ~ w i rrsnr I'o~ma(It. uii inlorme ortlinario. C n a ~ ~ t cste l o cbsel vase, r l l ( w p a j c (It, tw~istiIt(~ piw(le ~ ~ o i i s i ( I w ; (i ~ w ) i n nn o y n e r a ( l o r dv inlormes. Atlr~nhs. los generutlows d e int'ormt~s1)ucvlen t a m l ) i h I)i.intlar i'aci1itlatlt.s ~ i i w h oinh* p o ( l r ~ n i ; ~ s ([lie las tlisponil)lt.s en 1.1 l r n p a j e tlr ( Y ) I L S I I ~ ~ ( L .
Los datos
Las personas
U s u a l h : 1,os t.jtv.ilti\os. Ills yrrnttLk.10s i~tli~ii~~ihtratlorrs. (*I p r r s o ~ ~ a l ol'il.ina Profesiondt-s dc. la c ~ o n ~ l ~ ~ ~ ~ a1,os c . i ;~~In~i~ti.;tratlo~'rs ciu: tlr la I)aw (11%tlntoe. 10s anulistw. lo.; l n . ~ g ~ ~ ~ ~ ~10s a t ltlisc~iiatlort~s ~ ~ r , * h . tld * i s l r n ~y; ~(It. la haw tlr tlato.;. 10s :~tl~~linihtraclorrs tlv loi sistrmas 111. infi1r111ari011 (((1
DISENOY ADMINISTRACIONDE BASES DE DATOS
automatiza 11orcorupleto una t a w a tlrl 11s11ario. Es nccrsario drsarrollar protwlimientos n i a n ~ ~ a l para e s t)rindar una interfaz s u a w elitre 10s usuarios del sistema y el sistenia en si n~isino.CTn cjrrnl)lo de procrdi~nirntos r r h el control tie auditoria por parte tle 10s ~ ~ s u a r i o s con respecto a q n r la t*antidadtotal tle tlincro drpositada en rl I)ancw cwrrrspondic.ntr a un dia deterininado concuertk con la cantidad total tle ctfet.tivo rrcil)ido ii~ostradapor el siitcma ese n ~ i s n ~tlia. o Normalmelito, esistt.11 i n u t h s proc.ccliniirntos r n un sistenla J 1.1 bsito drl sistrrna. con frecurnvia. deprndc m w h o tle la I~abilidadcon q u r tales protwlimirutos sr clrsarrollen para artit~u1;rr(.on las funcionrs tlel sistrma, asi romo d r la r s t r u r t ~ i r atlrl aistrnia cn si ~liisnio.
Interrelaci6n (relacicin) entre 10s cuatro componentes del sistema La figura 1.19 rrsulne la i11trrrelaci611rntre 10s cwatro roniponrntrs clr 1111 sisten~ad r I ~ a s r (10s disriiadorrs tit, I)aw tlc tlatos j a i l a l k cle datos. Los prqfisior~crlestic? lcr cornp~rtctcicir~ tas) rli cwnsulta con los usicc~riositlrntifka~ilaa ~~et.esitiades dc dcctos y diseiian las e s t r ~ ~ c turas tle la basr de datos para r e s p o ~ ~ t l ae rrstaa nrt*rsid;rdrs. Entontsrs. las rstruc.tliras tlr la haw tle datos se especificai~al SGSD rnrtliantr el dic.cion;lrio tlr tlatos. 1,os usliurios t.sprc4'itws. I m s thtos il1~1.ointroducer1 10s datos c.n r l sistema siguientlo proc~diirii~ritos tlncidos se almacenan r n los medios de hartlwart,, tales t-omo cliscos y cintas. Los progrcrrnrrs cfe aplicucicin q u r ticncn avceso a la 1)aw d r datos sr rscrilwn por los profrsionalrs tlc la coniputacii~ny por 10s usuarios para rjrcutarlos soln-r 10s compctctdor~s.Estos prograih el1 mas utilizan el Irngilajt. d r hrdmes tlrl SGHD y liacrn uso d e la i n f o ~ ~ i n a c contenitla el diccionario tie datos. Estos programas grnrran informacihn, quc purtle i~tilizarsrpor 10s rjrcutivos y 10s gri-entcbspara tomar decisiones en el negocio. Los jwogranlas tle aplicat~iGn tmubibn p u r d m grncrar las notificaeiorirs d r factwas y ntros docuninitos ntilizatlos por 10s climtes del nrgocio. Dr rste motlo. pueclr verse clue en nn sistcrna adec~~atlanwnte tlisriiatlo y en funcionamimto. sus cuatro con~ponentes-el hardware, el softwarr. lox tlatos y las personas- conforman un sistrma hnico con el fin tlr alcanzar las mrtah tlr la trrganizaciOn.
LOS SISTEMAS DE BASES DE DATOS Y LA EVOLUCION DE LA TECNOLOGIA...
En este capitnlo se ha revisado t.1 d ~ s a r r o l l ode la trcnologia tle las 1)asc:s tle tlatos. romenzando tsonltrs m6todos ~)rirnarioscle accwo a archilos y rontinuando (.on los enfocjurh p i n c*ipalesen PI procesarniento (I(. las haws de datos. 'l'irm1)iin se hail identifirado y tlisrntido 10s cnatro componentc~sprincipalrs de u n sistema d r I)ascb tle clatos: rl h a r t h a r e . el software. 10s datos y 1;is personas. A1 cornienzo del prweso (I(: tlatos, dnrantr los cinci~entay- ~1roinienzo d e 10s sesenta. la regla era el tratamiento tle arrhivos sernencialrs. Todos los datoh se almac.enal~an(*ii arrhivos secuencialcs, cine esigian el tratarniento tle archivos cornpletos pol- 10s prograrnas el de apliraci6n. Durante 10s sesenta, dcl)itlo a c[ur rl a11iiac:eilaniirntoit cn disro ~ltilizaiicl~) acwso direrto llegi, a estar arnpliarnrnte disponil)le. el procesarnirnto d e arc>hivosde a c v so aleatolio Ilegh a ser factihle y popular. Este rnitoclo perrnitii, el aweso clirccto a datos especifircrs en un archivo. E n la ~ ~ w t l i della (pie 10s sistemas cwrnputacionales de procesaniiento dc datos se hi&roil m i s importantes, 10s negorios commzaron a reronocer clue la infor~naciOnera un recur~ tlatos necesarios so corporative de valor considera1)le. Estos perelbieron m i s y miis ( 1 1 los para rontestar niimwosas prrgt~ntastlel n t y ~ c i oestahan disponil)lvs tSnhlls archi\os tle procesarnirnto d r datos. Como ronsecwm~ia.cornenzaron a presional- a 10s sistemas tlr inforniaci6n para la gestibu en cuanto a la 11tilizaci6n de la potencia del r o m p t a d o r para protlucir informaci6n a partir de 10s datos rorporativos. Esto inicii, la demands de los sisternas d r I)ases d r datos. 10s qtw garantizarian mas efectivarnmte el acceso a 10s datos y su rnaniplarihn. A mediados de 10s srsenta se introdujeron los primeros sisternas de 1)ases de datos. 1.11yofundantento vra rina estructura jeriirquira d r 10s datos. Estos sistenias permitieron la recuperac:ii,n de ini~ltiplesregistros asociados con uri registro unico d r otro arrhilcr. Inmediatarnmte despuCs. se tlesarrollaron 10s sisternas de 1)asr d r datos en retles quc soportar o n interrelaciont~se i ~ t r eregistros de arrhivos diferentrs rnurho mas roniplejas. Aml)os rnodelos de base d r datos. el jerirquiro y el en red. requirieron el uso d r p n t r r o s fisiros predefinidos p a r a enlazar 10s registros relacionados. E n 1970, r l articulo d e E. F. Codd sohre el modelo d r datos relarional revolucioni, el pensarniento en la industria d e las hases d e datos. El enfoqne de Codd proponia el a c w w y la manipulacihn de 10s datos hnic:arnrnte desde el punto de vista d e sus caractrristicas l6giras. D ~ l r a n t e10s a h setrnta y ochenta se desarrollaron nurnerosos sisternas d e hase de datos rrlarionalrs y. en la actualidad, Cstos dorninan el rnerratlo comerrial. En aiios recirntes han prolifrrado 10s computadores I)ersonalesen 10s puestos d r trahajo, por lo clue s e h a n ~lrsarrolladolas redes cornyutacionales, perrnitientlo a ltrs osnarios d e estos cornputadorrs cornpartir recursos. Un cornputador, que funriona c:omo servi(lor de una red, garantiza el acceso a la base cle tlatos desde las estacionrs dc trahajo en estos purstos. permitiendo uua d i v i s i h potlerosa y eficientt. de la tarea: El servidor recupera 10s datos, 10s cjue la miquina cliente solicitante procesa y presenta r u pantalla p a r a su rnanipulaci6n por parte del usuario final. Las redes cornyutarionalrs en arnhiente rlirntelservidor han tlesarrollado u n grado alto de sofisticacihn y se encuentran cada vrz con rnis frecuenria en las empresas cornerc:iales. Desde el punto tie vista conceptual; u n sisterna d e base c1r dutos en rma organizacihn grande e s t i formatlo por el hardware, el software, 10s datos y las personas. I,a ronfiguracibn ciel hardware cornprmde uno o niis c-omputadores, unidades de disco, terminales. impresoras, unidades de cinta rna&tira. c-onexiones de red y otros dispositivos fisiros. El software 9, inchye un sisterna cie gestlon de bases de datos (SGBD) y 10s prograrnas de aplicavihn que utilizan el SGBD para tener arceso y rnanipular la base de datos. Los datos, q u r reyresentan 10s Iie(4ios importantes para la organizaci6n; radican fisicarnente en el disco, p r o se estrrirturan lO@-arnente d r forrna que se logre un arceso fiicil y eficiente. Las personas, tanto 10s usnarios corno 10s profesionales del sisterna de base de datos, trahajan juntas para definir las caracteristicas y la estructura del sisterna c1e hase de datos y para carear 10s programas de aplicaci61i clue garautizarin la inforrnacihn rsencial para el Cxito de la wmpaiiia.
DISENOY ADMINISTRAC~~N DE BASES DE DATOS
1. 1)t~fiuat-atla uno de 10s tbrniinos siguientes curl sus 1)ropias palal~ras: a.
sistcwa tlc p~.ot.csode tlatos
1). 1)roreso roll a t w w tlirerto r . sistrma de infonnat*ihnpara la g e s t i h cl. hasr (it* datos c. sistema de hase (It* tlatos f. ~iiotlelode datos g. niotlrlo j r r i r q u i w h. 1~11tt:ro i. retl j. p1;ttaforma rlientelservitlor li. sistt.mas al~iertos 1. intcropel-al)ilitl;~d 111. sistcma dn gestibn de 1)asrs tle datos 11. vista d r 10s datos o. prwxlinlirnto p. ~netadato
2. lC11ri1esson las carac.tcristit.as mis iml)ortautes d e 10s sistemas de archivos con acceso setwencia1 y (.on acreso direrto? ;(:uLles son las limitacicrnes dr 10s arcliivos con arreso seruencial c p r se reniedian con 10s mi.totlos d r a r w s o dirccto?
3. D i s r ~ ~ la t a importancia de la informatihri romo u n recurso orgiinico. 1COmo ha11 rollt r i h ~ ~ i t 10s l o sistemas tle hasrs d r datos a aulnentar el valor tle la inforu~ac-ihuen las organizaciones?
5 . Compar(~y rontraite las raracteriiticas d r los iibtemas d r hasei dc datoi jerlil-quiwi. en red y relacionalei. i.Cu&lesneresidades tle 10s negocios w n t h j c r o n a1 tlesarrollo de catla uno de ellos?
5 . Enuliiere y dewrib;~brrvernrnte los twatro t-ornponentes printipalri dt. un histerna dl. 1)ase 11cdatos moderno.
6. Descriha cada uno de estos corrrponmtes de un sistema d r gestibn tlr 1)ases dc datos (SGBD): a.
Diccionario11lirec.toriotle datos (DDID)
h. S e g ~ ~ r i t l ea dintegridad de 10s datos c.
.k.ceso t.onc11rrente a 10s tlatos Ijara varios usuarios
d. Consults, maniplacibn r itit'ormes d r los datos
.
Fat:ilidatles para
td
desarrollo de sistemas ile aplic*acihn
7. Enurnere t r r s ejemplos para catla uno de 10s t i p s de personas biguitmtes: a.
Usuarios
1). Proksionales tlr la computat-ihn
8. Defina catla nno de 10s elemrntoa siguientrs: a.
ISAM
h. IMS c.
ABD (DBA)
d. SQL e.
f.
Quel QBE
LOS SISTEMAS DE BASES DE DATOS Y LA EVOLUCION DE LA TECNOLOG~A ...
-dates -clo l Y J -sistcww tle irformtr~.icirt -sirr6rlimo,s -pdr~ -~r.sll~lrLo.s -progrumu d e t q ~ l i ~ ~ ~ ~ i c i r ~ -horr~cirrirno
-h ijo -irformucicin - p r c f ~ ~ i o r t c ~ ltle ~ s ltr cornputut-icin -srrl:idor
a.
d~ buscl d~ drjtos
El Mariscal Do111.y rc.td,ih liltis comisibn
~ I I Wrualquirr
otro r q ~ r r s e n t a n t etlr
F e w
4. Para la has(. de clatos d r un 11anc.o.organire Ios archivw sipuientt~sen una jerarquia: PAGO, CUENTA 1)E IHORROS. 1)EPOSITO. CLIENTE. CUEKT1 I)E PREST4MOS. RETlRO DE U E P ~ S I T O S .
5. P a r a una I ~ a s de r datos tle una cwn~paiiiade rmharque, organic? los arc-hivos signkntrs r n lina red: EMBARQUE. TR4NSPORTE, REMITENTE, PL4QUETE.RECEPTOR.
6. P a r a 10s prohlemab 4 y 5, identificIue lob canlpos que pudirran encontrarse en catla archivo. Identifique 10s c a m p s clavcb para cada archivo.
7. Explicpr chmo el proceso concurrrnte no controlado en un sistema de base de datos podria provocar daiios en 10s datos en las situacionrs siguientrs: a. La reserva d e vurlos en un sistrma d r rrservacibn de una arrolinea. 1 . La avtualizacihn de las cantidades d e un producto en nn sistema dt control d r inventario. c . La actualizacibn del halance d e las curntas para cheques en un 1)anco.
DISENOY ADMINISTRACION
DE BASES DE DATOS
1. Ksitr u n crntro de p r o t w o dt: tlatos en su zona y hablr con 10s ad~ninistradort.h,10s arialistas y 10s programatlores. Prt.gnntr sobre su exprrirneia (*onsisten~asd e art,hivos traditionales y t-on 10s sistcnias d r 1)aw d r tlatos. Si rllos r s t i n ~itilizandon u sistt.nia (11. h s e de datos ahora. iutiliza h e alguno dtl 10s t r r s tlr motlrlos diseutidos t.11 rl p r r s m t e t*apituloPi.Cuilrs son l a vrritajas y las drsventajas prrt-illidas por ellos en cnanto a 10s divrrsos enfoqurs qntl ptmiiitrn PI arct:so a 10s dates? ;,Con t[116 twnfigurati0n. drsdr rl pnnto tle vista drl hartlwarr. rurntan rllos? <.Nct~t~sitaron rst-alar 1.1 hardwai-r e n 1.1 pasado y prrvbn rllos algnna nrt:tlsitlad r n rstr srntido en rl futuro prhxiino? ,Guiles son las principalrs necrsidades tlr infortnacihn para la grstihn cjur garantiza r l sistoma?
2. Eshocr la lhgica tlt~( a ) u n p r o p a m a qur utilicr sistrmas tlr arvhivos srcnentialrz \. (1,) un programs q w nti1it.t. 10s arcliivtrs IS 4M para r r s o h t ~la drinanda siguitmtr: P a r a rada clientr, idrritifivar 10s fa1)ricantrs t'nyob protlnctos ha ortltmado rl cliente. Considere la rstrut.tura d r archivos presrntatla r n la Figura 1.3.
3. Estudir rl articnlo d e Codtl d r 1970 q u r proponr cl niotlelo de dattrs relacional. Investigut. los artitwlos sulrsiguirntes que arguinmtaron 10s mbritos relatives a1 modrlo t3n rrtl CODASYL con respecto a los del motlelo relational. Escriha un :~rticuloclue analice 10s mbritos d e aml)os enfotp.s l,a-a 10s sistrmas de bast-s cle tlatos.
SERVICIOS PARA CELEBRACIONES: DE BASE DE DATOS
El caso de Servicios para Celebraciones Antecedentes Operaciones de 10s negocios Servicios de empleados Adquisicion Planificacion de tareas Promocion Estado financier0 DiseAo e implementacion de la base de datos Descripcion del ciclo de recepcion VentaIEfectivo
Diagrama revisado del modelo de datos Establecer las comprobaciones de validacion Caracteristicas adicionales de 10s SGBD lntroduccion de datos a traves de formularios simples U n formulario multi-tabla: el formulario solicitud Obtener inforrnacion para la gestion a partir de la base de datos Resumen Preguntas de comprobacion
D e las entidades a las tablas
Problemas y ejercicios
Creacion de una tabla
Proyectos y cuestiones profesionales
El easo de Servicios para Celebraeiones (Catering) Antecedentes
SERVlClOS PARA CELEBRACIONES: UN EJEMPLO...
35
OperaciGn de 10s negocios
Servicios de ernpleados El vrinte p o r rirnto dr las gananc.ias de caatla t r a l ~ j os r tlrstina para roni1)rnsar a lo.; rn~plcwlos.Si m i s d r un rmplratto participa c.11 nn trahajo, este vrintc, [lor c-icwto sr clivitle r n t r e rllos. 4 10s emplt.ados se Ies p g a cads tlos stmanas. Diane \- Iiaren son las ITSpo1isal)lrs tlc: las twmpras de suministros y eqltipos. Diane Ileva la ruenta d e tpibn 1)artic.ipa en rada trahajo y tletrrmina la cxntidad a pagar a rada eml)lrado. 1iarc.n tient* la rrsponsabilicl;~tld r pagar totlos 10s otros gastos.
Totlas lab roml~i-asson rralizadas (.on c.wntas w n varioi vrntlrdores clr 1i1 zona. k a r r n paga los rrcihoi ;I los trrinta dias. a menos clue haya a l g h clrsrnento por pronto 11ugo
Planificacih de tareas Los rmplraclos stxasignan a cada tarea dc: a c w r d o a sns hahilidadrs y disponihilitlatl. 0c.asionalmrntr st- rrquicw alguna ayutla adirional tlurante partr drl tiempo: p r o rsas n e u sidatles por lo genrral sr sati4ac:rn ron miemhros d r la f'amiliu tle Karen y Dianr. Dianc, normalnientt. h a w las asipariones d r tareas tw11 una scnlana dc. a n t i r i p a r i h . Cnando sc. termina nn t r a l ~ a j o el , supervisor (que ~ ~ u t l i e ser r a Karen, Diane o algiln rtnpleaclo) tlrfin i r i y rellenarii un modelo run el listado tlr 10s e q u i p s utilizados, quiknes t r a l ~ a j a r o ny vnintas h a s .
DISENOY ADMINISTRACION DE BASES DE DATOS
Diane y d a r c n han sitlo ekctivas vtmdientlo estos servicios cle celehraciones a travhs de sits contactos I~tmonales.Tamhi6n innt~hostle los t r a l ~ a j o shan aparetido por recomrntlacion t de ~ clientes satihfrchos. No tlrjanclo nada a1 azar. Diane y Karen prcNparanot:asionalmente ~~ropagancla tjue s
Estado financier0 Puesto cjue Dianr )- K a r m operan los Servicios para Celebraciones drstle sns propias casas, ellas tienen pocos sohrccostos. Inieialnimte se compraron algunos ecjiiipos. y ticnen lo q u e necesitari p a r a el iiivel actnal ({el negocio. La mayoria tlr 10s costos provirne tle las cornidas y del personal. 1,as ganancias se dcterminan restantlo 10s salarios y los eostos tle las comitlas de los ingresos rrci1)idos por ratla trabajo.
Diseiio e implementacibn de la base de datos El l~ropbsitotle esta secciim cs b r i n t h r algunas ideas cont~ernirntesa 10s p a w s netwarios p a r a diseliar m a hasr d e datos sencilla de Servicios p a r a Cele1)racionrs. Se usara el SGBD PARADOX P.4K.4 WINDOWS para ilnstrar algunas tlt- las t*aractt4sticasd c a implemrntacibn tjne son comunes a machos SGBDs. Pucsto cjue no st. va r e n t r a r m 10s tlctallrs clel sistema PARADOX la prcsentacihn s e r i de tierto motlo gen6rit:a p fricil de entrnder.
.
Descripci6n del ciclo de recepci6n ventalefectivo El prinier paso p a r a desarrollar m a h a w de tlatos para los Ser\icios p a r a Celeln-ariones es crear u n motlelo de datos t ~ ) n e e p t i i ade ~ sub at'tiones (le ncgocios. Se necesitan las si!pientes entidades para ilustrar el ciclo de recepcibn ventalefec.tivo: CLIENTE. PROYECTO, EMPLE4DO. TIPO-COMIDA y P4GO. E n nnestro motlelo de datos se repres r n t a r i n estas mtidadeh (.on rectingnlos. P o r rjemplo. la cmtidatl PROYECTO es:
I
PROYECTO
I
La Figlira 2.1 rs 1111 cliagrama tlrl moclelo de datos qur: muestra chmo se rrlacionan e n t r r si laa entidades. iQuGrs lo cjue dice la Figura 2.1 sohre el r i c h de rrcepciones ventaslefectivo? Veamos la interrelacii~nr n t r e la entiilad PROYECTO y la entidad EMPLEADO.
I*
EMPLEA
SERVlClOS PARA CELEBRACIONES: UN EJEMPLO...
u TIP0 COMIDA
HECHO-POR PAGO
*
TlENE I
CLIENTE
PROYECTO I
I*
EMPLEA
La linea entre las entidatlrs signifira quc k t a i e s t h relacionadas. El "y'' > c1 " 1 " dicen chmo r s t i n relacionadas. La interrelaci6n entre PROYECTO j EMPLEADO se lee:
1. Cada PKOYECTO puede emplrar a r ~ n oo niis ( : ) EMPLEADOs. 2. Cada EMPLEADO puedc trahajar en uno o mas ( " ) PROYECTOs. E n otras j)alahras, cada empleatlo puedr trabajar r n barios proyectos > cn catla pro>rcbtopueden trahajar varios emplr,'I( 10s. Examinrmos otra interrclaci6ii. Vbase la interrelaci6n r n t r r la rutitlad CLIENTE > la rntidad PROYECTO. TlENE CLIENTE
"*"
I
PROYECTO
D r nurvo la linea rntre las dos entidadrs dirr c6mo e s t i n rrlacionadas. El "1"- > dicrn r6mo e s t i n rrlacionadas. Esta intrrrrlari6n se lee:
t.1
1. Cada CLIENTE pnrde tener uno o mas ( * ) PROYECTOs 2. Cada PROYECTO purcir t m e r s6lo u n CLIENTE. E n otras palalwas. cada proyrcto de celebrarihn puedr ser solicitado por u n solo vlimte, p r r o cada clirnte puedr solicitar varios proyrrtos. En la Figura 2.1 s r purcic.n v r r dos clasrs cir intrrrelaciones. Estas son:
1. buo-a-n~uchos(1 a * ), clue r s la que se murstra entre CLIENTE y PROYECTO. y eutre CLIENTE y PAGO.
* ) clue es la que se murstra entre PROYECTO y EMPLEADO, y entrr PROYECTO y T I P 0 COMIDA.
2. Murhos-a-murhos (* a
DISENOY ADMINISTRACION DE BASES DE DATOS
De las entidades a las tahlas
Chuck Brown D r l d ~ i!llc~~ Lrro? Browri
41 Franltrn
321 Sc.hultz\illr Srattlr. E 4 0?800 152.50 Hivrrsitlr L,aw S(-attle. W 4 08432 52000 Basltrthall St. S ~ a t t l e . \F \ 91130 5230 Wrslry i t r n u r Srattlv. a 4 93401
505-9980 055-2322 683-4.526 084-2388
T E cv)ntirnr cwatro rrgistros. oilo para c d a clicwtc., 4 trrs c.aml)os. Jombrr, Dirc.cririrt J Telt?folto. Los ( , a m p s drwrihen propirdades importantes de las rntitladrs. 411ora sr dc4inr mta tabla en un SGBJ). Se nwesita c w a r cinro tabla. para Ins Srrvicioh para Celrljracionrr. Estas son CLIENTE, PKOYECTO, EMPLE4DO. TIP0 COMIDL2) PL4G0.S r cwnirnzari con la t a l h CLIEN'I'E.
Creacih de una tabla Sapongatnos q ~ sc~ tlrsra c tlivitlir la inf'ormacihu s o l r e una direc*cii,n r n w a t r o rampos: Xalle.Xi~clatl.E s t i l d ~(lwovinc'ia)~~ O c t i g c s t a tSr . ti~iir~c.ntorkrs~untutal cle wis cwupos: Nombre, C&, Ciutlad, Estudo, C P ). Tekfono. Una v r z c p r w 11an rscogido 10s c a m p s , sr clisrkr la t a l h corrrspondirntr en el SGBD. Vbasr la Figura 2.2. Aqui sr pucdrn o b s c ~ v a r10s rrcpisitos tipic-os p a r a tlisriiar m a t a l h de una h a w de datos. Sc pneden ver 10s nom1)rc.s d r los cattipos ( p o r ejrinplo. Nombre, Cullp,rtc:.), una indic-acihn solbrr el tipo de clatos de cads c a m p iaqni la ''.Aq' significa alfanuniiricw), el t a m a h d r rada c a m p , y una intlic*;icii,n s o l r e (:nil c a m p va a hacw las vwrs dc. clavr ( a n c:ampo c:uyo valor rs i ~ n i c opara catla rrgistro. no hay dos rrgistros con r l n~isrilovalor para rscl rarnpo). Ha sido c v a d a la rstrnctnra d r la tabla CLIENTE, q u r rsth ahora lista para recihir datos. Dr forma similar sr ( w a n 121s otras cauatro tal~lasque scj ~ ~ ~ u r s t rrinl n1;i Figura 2.3. -
-
-
Diagrama revisado del modelo de datos Con vistas a potlrr represrntar nurstro modelo d r datos en sli totalidad. s r tlrlw asrgnrar que las tahlas se relacionan rntre si r n la forma q u r d r h r n . i,Rec.urrda las trvh (:lases de interrrlacionrs entre tahlas? Por conveniencia las volveremos a rrprtir aqni:
1
SERVlClOS PARA CELEBRACIONES: UN EJEMPLO...
Field -
Roster:
Table Properties.
Fleld Name-
2. -
Minimum
7 I
I
4. -
Default
I I I 5 . Picture
I[
Enter a field name up to 25 characters long
Nombre de campo
Tipo
Proyec#
N
Fecha
D
#Invitados
I
Tamaiio
N
Costo Est
$
Cant. cargada
$
*
I
Nombre de campo
1
1
Nombre
/ A 1 2 5 1
Nombrede tampo
I
Tipo
/
A
I
Nombre-Comida
I
( 1
Clave
I
I
Tipo
~
Tamaiio
I
=lave
I
Tamaiio
(
Clave
2
1
*
1
(
I
I
~
l
DISENOY ADMINISTRACI~N DE BASES DE DATOS
Nombre de campo
Tipo I
Proyec#
N
Cant. recibida
$
Clave
Tarnaiio I
I
1. Uno-a-uno ( 1 a 1) no cxiste en rl modelo de Scrbicios para Cele1)raciones. 2. Uno-a-murhos (1 a ') se muestra en lab interrelaciones HECHO-POR ? TIENE. 3. Muchos-a-muchos (* a +) se murstra eu las interrelaciones US4DO-POR EMPLE -1. Para rstar wgnros quc cstas interrelacioncs estan representadas rorrec.tammtc cn la tabla, se dclren seguir ciertas reglas, hasadas en la intcrrelaribn en particular. para vada tabla. Ech6mosle un segundo vistazo a1 (liagrama.
* PAG0
HECHO-POR
I
I
TlENE
*
I
CLIENTE
PROYECTO
I
rl EMPLEADO
Hay trcs reglas de tahlas clue gobiernan las interrclaciones entre cllas. Regla de Tabla 1 : Si dos tablas tienen una interrelacibn uno-a-uno ( 1 a l ) , entonccs el carnpo elale de una de las tahlas deb? aparecer en la otra tabla. Ninguna de las interrelaciones de nuestro ejemplo se avienrn a rsta regla 1. Reglu rle Tublu 2: Si dos tablas tienen una intrrrelacibn uno-a-muchos (1 a *), entoncrs rl r a m p claw de la tabla del(1) dehe aparecrr en la tabla del (*). En el diagrams. dos interrelac-iones adniiten esta regla 2 , la interrelac-iones TIENE y HECHO-POR. Para curnplir con la Regla de Tabla 2 para las tablas CLIENTE y PAGO. se pondra Nonibre, el campo clavr d r CLIENTE. en la tabla PAGO despuks del campo Proyec#. Pnesto que A'onibre es la claw de la tabla CLIENTE J se usa para conectarla a otras tablas. sr le conoce corno clave foranra.
SERVlClOS PARA CELEBRACIONES: UN EJEMPLO...
Si dos tahlas tienvn uua interrelari611 nluchos-a-murhos (* a "1. r n t o i i t ~tlrl~v ~ crvarse nna n i ~ e v ata1)la t j n ~tenga ~ 10s rauipos claws tle 1as (10s t a l h s . E n el tliagrama. tloi interrclariones cwmplen la Rtagla tle Tabla 3. IrS4DO-POR \ EMPLEA. P a r a satisfacer la r q l a se tlt+en r r r a r d o i nuelas taljlas. Priniero i r tliseiia co11 i \1)O_POK. la clue se r n l a z a r i n PROLECTO y TIPO-COMIDl. Ebta tahla se l l a ~ n a r ITS Tvndri trrs c a m l m : P r o j e r # (primera (*lave).Woinbre-Cornida (segnnda cla\e) Curttirid. Note cjue cntont*eila tallla ITS-1DO-POR tvntiene 10s ranilws r1alt.s de P R O 1 ECTO v TIPO-COMID 4. Nornbre de carnpo
I
Clave *
N
Proyec#
1
Tarnat'io
Tipo
Nombre-Comida
1
Cantidad
I
1
A
25
I
1
*
I
1
I
Ahora diseiiarcmos la tahla cjue enlaza PROYECTO y EMPLEA1)O. Esta tabla se llalnari EMPLEA. T r n d r i tres r a m p s : Proye& (primera claw). SS# (segunda rlave) Horns. Usando 10s n ~ i s ~ u po as w s q u e e n el c a m anterior, s r construye rsta tahla EMP1,E.l.
I
Nornbre de carnpo
I Horas
(
Tipo
I
N
(
/
Tarnaiio
(
I
Clave
I 1
Note rbmo lure ahora el diagrama del motlelo de datoi en su versihn motlifirada (Figura 2.4) y c6mo lab nuevas tahlas rumplen con la Regla de Tahla 2. Ya e d n diseiiadas todas las tahlas y se refieren entre si rorrertamente. P o r "se rrfieren entre si rorrectamrnte" se entiende que las tahlas se relacionan tit. fornia tjne representan con prerisi6n la estrurtura de los Serbirios p a r a Celel~rationes.
Establecer las comprobaciones de validaci6n La mejor manera tle garantizar que 10s datos que s r almacrnen sean vilidos es en primer lugar prevenir yue no se puedan introducir datos incorrertos. P o r esta raz6n r s tipico q u r los SGRDs permitan imponer restricciones (tests de valitlaci6n) p a r a rada campo en las tahlas dr una hasr d e datos. Los tipos de tests de validaciim rnis comunes son: Carnpo obligatorio: Se dehe introducir u n dato en este campo antes de poder guard a r rl registro. Minimo: El menor valor que este campo puede aceptar.
DISENOY ADMINISTRAC~ON D E BASES D E DATOS
I
I
PAGO
CLIENTE
PROYECTO I
EMPLEOS
EMPLEADO
C o ~vstos i c h r q u t w podrmos ?star seguros clue el c4tligo postal. los ni~merosde telbfono y 10s n i m r r o s (it, segi~ricladsocid sc ir~trotlncw~ en la forma c~u-r erta; q u r los valows d r t ~ p odinero ($) e s t i n dentro d r 1111 rango razonable. ) quc. lob camlws clue w a n c.l;i\e\ I La Figura 2.5 ejemplific-a cbmo aliatlir 10s c.h(yieos d e \ d i siemprv contendran ~ I I dato. dacihn ;I nuestras taljlas. Nombre de campo Campo obligatorio
Minimo
4
Proyec#
1
Costo Est. I
I
J
Cant. cargada
Nombre de campo Campo obligatorio
Formato
d
SS#
###_##~####
t - = Nombre de campo Campo obligatorio
Nornbre-Cornida
I
1
Nombre de campo Campo obligatorio Proyec# Cant. recibida
1
Minimo
d
0.00
I
SERVlClOS PARA CELEBRACIONES: UN EJEMPLO...
I
I
/
Nornbre de carnpo Carnpo obligatorio
/
Minirno
(
Mtuirno
I
Proyec# Nombre-Comida
/
Cantidad
Nombre de campo Proyec#
I
Carnpo obligatorio
0
999
Minirno
Forrnato
/
Horas
Caracteristicas adicionales de 10s SGBD Introducci6n de datos a trav6s de formularios simples Un f;)rrn~~lario (form) rs una nianrra de ver o dr entrar 10s datos m una tallla -nn registro tle catla vrz-. Los forrnularios pertrnrcvm a las tablas: rs decir, no se piic.tle tlisefiar un forrnulario a nienos qne ya se haya creatlo la tahla para la que se va a definir Cste. Los forniularios contienen todos o algunos de 10s c a m p d r la tabla rrspectiva. La raz6n por la clue sr drsea ilisriiar forrnularios es para f a d t a r la introducci6n tle tlatos. Cuantlo sc rrnpirza a ponrr inforrnacicin en las tahlas rs convrnirnte trner formularios clue nosfacilitrn el proceso d r entrada de datos. Aunque se puedrn introducir 10s datos direc.tarnentr en las tahlas, usando forrnularios es un modo a menudo mis ripido, rnis rfwtivo y mas prrciso de hacerlo. Sr han rrrado las tahlas para representar el ciclo de recrpci6n d r ventaslefectivo tlc 10s Servicios para Crlehraciones. Los forrnularios que se consitlerarin serin para registrar una wnta. registrar la recepcihn de un pago y registrar otras informaciones clue a h can las ventas. El ejernplo rnis simple es un formulario qur permite jmtarnente entrar iina tahla. Ln proyrcto de servicio irnplica la lahor de rmplrados. Cuando el proyecto terminr, el Servicio para Crlr1)racionc.s necesita conowr q u i h trabajh m el proyecto y por cuinto tirrnpo. Para cntrar rstos datos se purde crear el Formulario Trabajo. Note que estr forrnulario introduw informacihn r n la tahla EMPLEA, la cual contienr tres carnpos: Pi-oyec# (prinwra claw), SS# (segunda clave) y Horas. En la Figura 3.6 sr muestra tin ejemplo.
DISENOY ADMINISTRAC~ON DE BASES DE DATOS
Un formulario multi-tabla: ei formulario solicitud V11 fornnilario innlti-tabla rs u n modo elrgante d r introdncir 10s datos d r Iarlai t a l ~ l a sa la v w . S r harii una tlenlostraci6n con iina multi-tahla Forniulario Soliritud. El Forinnlario Solic*itud nos ayudarii a poi1c.r en \arias tablas i n f o r n ~ a c i hsobre las tentas. Cnantlo 1111 clientr solirita n n scr\icio para m a crlrl)raci6n, la informaci6n q n r Gqte (la afwta a t w s clt* n w s t r a s taldas. Cuando se recilw una soliritutl, sr reg+tra cicrta inforrnacibn (a) y se pone Gsta r n las tahlas rspec*ific.as (1)):
1. (a) El niirnrro (It*proyrcto d e srrvicio (1)) PROYECTO. IJSADO-POR
2. (a) El nomhrr dt.1 rlientt. (I)) PROYECTO, CLIENTE
3. (a) La frcha d e la celel~racibn,rl nilmero de invitados esprrados, rl costo estimado del servirio y el total cjne sr le c a r g a r i a1 clirnte (1)) PROYECTO
4. (a) La d r , cindad, Estado. c6tligo postal y nurnrro tc4rfOnicw del d i e n t r (1)) CLIENTE
5. (a) Los t i p de comida clue el clirntr tlrsra y la cantitlad clue drsra de cada nna (b) USADO-POR Conlo se puedr ohservar, la informaci6n va a p a r a r a tres tahlas. Crearitlo un formulario multi-tabla. se puede enviar la informaci6n correcta a1 c a m p y tabla deseatla en u n solo paso. Sin rnticho rnis detalle, en la Figura 2.7 se ve u n ejernplo del Formulario Soliritud final. La Figura 2.8 nos rnurstra ejrrnplos de datos que sr i n t r o d u c w ~usantlo forrnularios.
45
SERVlClOS PARA CELEBRACIONES: U N EJEMPLO... Nombre
1
I I I I
1
I
Baskerville, Eugene
Calle
1
120 Fir Lane
I
1
Smith. Carrie
~royec# I 2 3 4
I I 1
1
/
Ciudad Redmond 1
14 Elm 25 Alpine Dr.
lordan. Harry Smith. Carrie
1
WA
I
I
Everett.
Fecha 2 1/3/93 15/4/93
Telefono
CP
1
1
98204
I
WA
Winslow
1 / /
Nombre
Estado
I
123-4560
I
98223
245-9366
wA
I 1 1
#Invitados 100 50
I 1 1
$325,00
I 1 1
1
Cantidad
Costo Est $600.00
Cant. Cargada $850.00 $425.00
Baskerville, Eugene Smith. Carrie
I
Proyed
Nombre-Comida
I
mousse de chocolate
I
cerveza
I
I
I
ponche
I
I
I
bistec
I
2
1
I I I I
hamburguesa
75
I
150
1
1
75
I
gelatina
50
2
pastel
50
3 3 3
1 1 1 1
croquetas de carne c6ctel de frutas ensalada verde Sprite
1
125
2
3
1
I I I I
60 50 50 60
4
esparragos
45
4
patatas fritas
60
I I I I
I
4
(
jugo de arandanos
I
50
I
I
4
1
costillas barbacoa
1
40
I
I 1 1
DISENOY ADMINISTRACION DE BASES DE DATOS
Obtener informacidn para la gestidn a partir de la base de datos Ahora q u r ya ( I ) sr han drfiniclo las talrlas q n r s r nrcrsitan cn la base d r datos. ( 2 ) s r h a n definido las intcwdacionrs r n t r r las t a l h (diagrams d r tal~lasy modrlo d r datos), (3) s r han crrado 1as talllas, y (4) sc h a n introdwido los datos en las tahlas. r s t a n ~ o slistos para nsar la base dr datos para o b t r n r r i n f o r m a c i h qne nos ayutlr a grstionar 10s Srrvicios para Crlrtrracionrs. IJna consulta r s m a sinqrlr prrgunta qnr s r p w d r rrspondcr con la informaci6n tlr la 1)asr tlr datos. Sr ilustrari un lrngnajr cpw p r r n ~ i t ra1 nsuario hacrrlr prrgnutas a un;r l w c d r datos nsando plantillas visualrs r n l r ~ g a rd r hrdrnes en trxto. Tanto 10s l r n p a j e s visnalrs como 10s lrnguajrs tcxtualrs h a n vmanado dr la teoria dc 10s Irngnajrs rrlaciona1rs. Dr todos modos, rstos trnlas s r r i n a d a r a d o s r n los capitnlos postrriores. Caminemos a travGs tle nna ( w n s ~ ~ simlde. lt;~ Consulta 1. Esta consulta nos cla una lista clr 10s nomhrrs d r todos 10s clientes junto con la* ciudadrs r n las c~uvvivrn. Ha! que h a c ~ lo r siguientr: Srlrctionar File I IVrw I Qucry d r l mrnil principal '. E n rl cwadro d r dihlogo srleccionar archivo (Selrct File) que aparrcwh. d r l m n o ~ escoprr la tahla cjne e s t a r i impliracla r n la cwnsnlta. Se srlrrriona CLIENTE.I)B2 y se pulsa OK. -\parec*erirntoncbcsuna plantilla d r consnlta en blanco qrlr contirnc. todos 10s can11)os d r la tabla CLIENTE. St. p l s a r n las eajas de rhrqrwo (ch~ch-box) qnr. aparrcrn a1 lado d r 10s ( . a m p s Aorrrbrv y Ciudad. Esto significa tIue hemos srleccionado estob c a m p s j c1ur s r r i n por tanto 10s iinicos que a p a r e c w i n en la salida. La vrntana de consnlta l u c i r i como la d r la Fignra 2.9(a).
IQ.
tle la lrarra r i p i d a (Spetdbar) o se p d s a la tecla F8. S r p l b a en el hothn, Esto prokoca que s r Z u t e la ronsulta y nos d a la tahla de respuesta (E'ipur a 2.9(b)).
ak en Place
I
Everett
-
Archivo I Nurvo I Consl~lta(N. drl T.) Por uniformidad con lo c p = suponc rl SGBI) PARADOX. la rxtensiirn tlr loa archives, (lor son tabla. de la base de datos, se ha drjatlo rn in$& ('DB' provivnr dr Data Base) (N. drl T.) l
SERVICIOS PARA CELEBRACIONES: U N EJEMPLO...
47
S r ~ u w l he a w r m a gran nuinero tlr consultas htileh. Co~lsulta2. S u p o n p m o s q u r qurrrmos una list;^ de t o h 10s trahajos 1 1 1 s i r n i t i o qlle esthn 1)lanificaclos para el uirs de ahril tle 1093. 10s n o m l ~ r t ~tles 10s c.1irutc.s ! cuinto. in\ i t a h .sr eslwran en rada evento. SP t l e h prowtler dc la sigoirnte manrra:
1. Selrt*cionarFile I IVew I @wry d r l mrnh principal. 2. Pursto clue la c o h m n a comprendr infornlacihn tlr la tallla I'ROYECTO. sel(vcionainos PROYECTO.DB del cwatlro d r diilogo tle selrccionar a r r h i o~ ( S e l t ~ t cm I)lanc*o. Filr) !pulsainos en OK. Dr nurvo s r v c r i m a plantilla tlr cwns~~lta p r o I W estc vaso s e r i para la tallla PRO) ECTO. 3. S r p l s a en las cajas tle chequro cjne e s t i l ~a1 laclo de 10s c a m p s \orrrbre. Fcchu
e #111dndos.
4. Pulsanios dr nuta\o r n (*I cwnpo Fwhu
J trc4ramos "../4/93". Los dos 11untos intlic.an cualquier f w h a hlitla en ahril tlel 93. par lo clue cualquier pro!erto (*on f w h a cn a h i l a l ~ a r t v r hen la tabla tle rcbq~ursta.La c w ~ s u l t ese \ e t ~ ~ u ri no la
6. Ciclrre ambas ventanas y drcida si sc. tluirrt, salvar la ronsulta o no. Si tloeremos salvarla clel)rmos pnlsar en Yes r introtlwir nn nomhrt. para la cwnsulta. T,urgo stbp ~ d s a(w OK. Si no qnrrrmos salvav la consults. l~ulsarrmoscn No. Hasta ahora Ias consultas sblo han involucrado a una talda. V(wmos clue es c h w n tal rnlazar 10s datos clr vilrias tablas clifwentes usando elrmcntos rjtmplo. Esto se clcmll~rstra en la pr0xinii1 (wnsulta.
DISENOY ADMINIsTRACION DE BASES DE DATOS
Srlerrionar Filc I New I Query 111.1r n r n i ~l~rincipal. Stslerrionar PIIOyEC7'0.DB y pulsar en OK. No se prcwtwpe tpt, la tabla I S A 4 DO P O R i r srlec*cionaritit. otra manrra. Dr nurvo st. \ r r i la ~)lantillatlr consnlta en hlanro para la tallla PIIOYECTO.
--_a
y p l s a r t.11 OK. Se \erh a h t m nna plantilla r n 1)lanc.o para w n i u l t a r anihai tahlas. Martsar las rajas cle rhetluro l)r6xiniai a lo5 c a m p . # l r ~ ~ ~ i t o r l 1orrlbr~-Cotnios, rlu y Cart tidad.. . Pnlsar en rl twupo #Ilrritndos ) tcv.lrar -'>%5"'. S r drlw hacer ahora el enlaw w t r e l a i dos taldas. El enlace o l n w para cbstor i t.1 ranqw P r o y d t . P a r a h a r r r cb\tr r n l a w s r 11ulia el 1 1 0 t h ile rrunicin de tahlai (Join Ta-
1)lr. ) , q n r tarn1)iPn al)arrcr en la 1)arr.a r i p i d a . Despubs d r puliar rste 1 ) o t h i r drlw pulsar r n r l rampo P r o p - # tle lab plantillas (trmplntes) tlr a ~ n l ~ tahlai ai PROYECTO 1 lJS4DO-POR. P4RADOX t w a n n irnico rlemcnto rjrmplo (rncrinpl~e l r m ~ i i t ) j 1)onr Gstc en amhas plantilldi. La roniulta niulti-tahla i r pnrtle ahora coniplrtai con Gxito.
6. Pulsar en el 1)otOn
y luego harerlo en rl tSarnpoPro? PC#en cada una tle lab plantillaa d r l a i tahlai. A p a r r r e r i en rojo un E ( X I en a m l m rampos clut' intlira qne el enlace fue rxitoio. Esta twnsulta lucr ahora cwno la t p c w rnucstra r n la Figura Z.ll(a).
7. Pulsar r n c1 b o t h d r ejrcutar coninlta (Kun Qnery), tahla tle respnesta i e mnrstra r n la Fignra 2.11(1)).
IQ
- , o prrsionar F8. La
SERVlClOS PARA CELEBRACIONES: UN EJEMPLO...
50,00 hamburger 50,00 ]ello 50,00 shortcak 100,00 cl-locolate mousse 100,OU root beer 1 0 0 ~ ~ s p a r i l i npunch g 100,00 steak
1. 1)c~criha(.on sus propias palahras la difertwvia entre una tallla y un camlw. 2. , C h m o se represents nna tallla en ~1diagrama tle un sistrrna Oe informac.iiru?
1. ITsando u n rjemplo sent~illode un sistrma tle negocios, hosqurjr un diagrama similar al tjnr s r ha utilizatlo en este capitnlo. Idrntifiqur las interrelaciones entre las tahlas c~~111o uno-a-uno, uno-a-ttinchos y mnchos-a-machos. 2. Usando 10s r t d t a d o s tle (I)?crear las t a t h s corrrspondientrs. 3. Usantlo 10s resnltntlos de (%),w e a r fbrmdarios para la entrada tle datos y entre a l g ~ ~ n tlatos os c o ~ n orjritlplo.
1. Si el usnario rstli familiarizatlo con, o tiene acceso a otro SGBI), use el ejemplo d r estr rapitulo p a r a t-olnparar y contrastar 10s mbtodos tle creaci6n de tahlas, entrada tlr tlatos y formulaci6n dr consultas. 2. Encuentre algin nrgocio local ( o alterriativamente invkntese algnno) qne proporcione las lrasrs para desarrollar una pequeiia aplicaci6n d r I m e tlr datos. Ilisriie y realice d k h a aplicacibn.
SISTEMAS DE BASES DE DATOS EN LAS ORGANIZACIONES
C o m p a r t i r datos y bases de datos C o m p a r t i r datos entre unidades funcionales C o m p a r t i r datos entre diferentes niveles de usuarios C o m ~ a r t i rdatos entre diferentes localidades El papel de la base de datos Planificacion estrategica de bases de datos La necesidad de ~ l a n i f i c a rla base de datos El proyecto de planificacion de la base de datos El ciclo de vida del desarrollo de la base de datos (CVDBD) Bases de datos y gestion de control Diseho de la base de datos Forrnacion del usuario Seguridad de la base de datos e integridad ~ e n d i m i e n t odel sistema de base dedatos Riesgos y costos de las bases de datos Conflictos en las organizaciones Fracasos en el desakollo de proyectos Mal funcionamiento del sistema Costes imprevistos Necesidad de u n personal cualificado
Separar la representacion Iogica y fisica de 10s datos Arquitectura de tres-niveles de una base de datos Uso de la arquitectura tres-niveles en este libro Desarrollo de la base de datos Disetio de base de datos y el CVDS tradicional El ciclo de vida del desarrollo de la base de datos (CVDBD) El caso de la Corporacion Zeus Planificacion preliminar Estudio de viabilidad Definicion de requisitos Disetio conceptual Implementacion Evaluacion y perfeccionamiento del Esquema de base de datos Construir capacidades en el desarrollo de bases de datos Resumen Preguntas de repaso Problemas y ejercicios Proyectos y cuestiones profesionales
'
SISTEMAS DE BASES DE DATOS EN LAS ORGANIZACIONES
hase de datos. Una colecci6n dc tlatos intcrrelacio~latlos, co~n])artitlos! eontrolados.
5I
n tbytccapitulo ye w n t r a r i la atri~clhtien el eutoruo organizatiro, en el cual exlstrri las h a w s d e datos en c h n o estas bases de datos se intcrrclacionan con 511 entorno. Ildemis se examinari el proceso tlr tlrsarrollo dt. u n sistcma eslwificw tle has? de datos. P a r a f'acilitar la c l i srusi6n daremoi una siu~pledefiniri6n tlt. lo clue ei u11a l ) a w (It, clatos. Una base d e clatos es una organizae1611tle utia coleccihn de datos (pb se irlterrelacionan, 5e rcmparten ]v ye controlan. Despubs tlv 1tv.r t,zte capitdo. el usuario d e l ~ r r ser i capaz de: Eytodiar r6mo en una o r g a n i z a c i h se cwmparten 10s datos entre diferrnte5 ii.ec~y futicionalcs, niveles cle clirecri6n y localizaciones geogrificas. E x p l ~ c a rpor qu6 j chmo se hare la pla11ificac.16n eytratigka de una l m e de ctatos cn una orpanizacii~n. Comprender la func16n de cwntrol de la administracihn de base tle clatos. H a c r r 10s tliapr-anias rxplirar los filndarntmtoi estcinderrs tlr 1'1 rstructr~rad r m a base de datos, la arquitectura tres-niveles de ANSIISPARC. 1)esrrihir 10s pas05 en el &lo d e bids del de5arrollo de la h a w de datos y sus interrelaciones. Las 1~11neras ruatro sec.cioncs de este c a p i t d o tratan aspertos relativos a la gvstlhn clr compartir lo3 datos en una organizaci6n, la plailifieanhn e s t r a t i p r a tie 10s (lato,. la gesti6n drl control de 10s datos j lo5 riesgos y 10s costos tlr la5 11asrs tle datos. La segunda mitad d r l c a p i t d o tient. clue ver esl)ecifiramente con 10s temas tle gestihn relatiros a1 diseiio !la realizaci6n d e una h a w de tlatos. De modo clue se estucliarin la* preguntas d e r6mo separar la estructura fisiva J 16glca de 10s datos y d e rhmo desarrollar una base d e datos a trariks de una metodologia tlel ciclo de drsdrrollo.
Dii1ri1)rridoraIr~ternncionaldr Protlr~rlos(N. del 'l:).
DISENOY ADMINISTRACIONDE BASES DE DATOS
Compartir datos y bases de datos
Quizis la tliferrncia nias significxtiva entre nn sistema I m a t l o en archi\os !un sistema de hasr de datos es que 10s datos sr t80int~arten. Esto requierr un cunl)io iniportantt~( ~ la mentalitlad cle 10s usuarios. clue rstrin arostumbratlos a sentirsr "clneiios" cle lo5 clatos resultantes d e sus activitlatles coticf anas. Compartir 10s datos tam1)iin rrquiere 1111 ra111l)io importante en la f o r n ~ aen clue s r manejan y administr;~n10s datos dentro tle la orpanizarii'm Esto st: clelw en p r t e a1 vohumrn tle clatos clue es necwsario organizar r integrar. P a r a a!~ud a r a c~omprentlrrestc reto de ilsar una base cir datos para twnq~artirtlatos. ec*hi.moslr 1111 vistazo m i s de w r c a a la naturalrza dc 10s datos quc la organizacihn neresita cwmpartir. St' considerarin tres formas cle compartir 10s datos: (1) entre las ~~nitlaclcs funcionalrs: ( 2 ) rntre los nivelrs de dirrt:t:ihn; (3) entre localidadrs q u r estin geogrifiramrnte dispersas.
1
i
Compartir datos entre unidades funcionales El tPrniino corr~purtirdutos sugierr que personas r n Arras funcionalrs tlifrrrntes compartan u n grupo r o i n i n de datos. cacla (:rial para sus propias aplicacionrs. Si no se compartiesen 10s datos, la gente de Marketing putliera teller sus archivos de datos. 10s grupos tle adquisic:ihn 10s suyos, los grupos de t-ontaduria 10s suyos y asi sucesivamentr ( F i g ra 3.l(a)). (:?(la grnpo se hrneficia s d o rlr sus propios datos.
53
SISTEMAS DE BASES DE DATOS EN LAS ORGANIZACIONES
E n w n t r a s t r . r l rftlrto d r twml)inilr 10s datos r n nna 1)asr d r datos ~)rotlnt,rsint*rgiil: r s tlrrir. los tlatos coinl)inatlt~stirnrn m i s valor q u r la snina d e 10s datos en los art.liivos 111w s r l ) a r a ( l ( Esto ~ no shlo p t ' ~ x ~ i tjue t e cadi] grnpo contiuirt~tt~nirndoat8t.t.soa sns tlatos. sino t ~ n r .1)ujo liinitrs razonal)lt,s tle w n t r o l , tamhibn l ~ n t d atenrr acst*cw)a 105 otros clatos 1101-t.jt.nq)lo. s r I)t~nt.fi(Fig11r;r 3. I(]))).En rln entorno a 4 . el clcpartamento tlr Marlteti~~g. cia 1)twque t i w v aweso :I los tlatos tlr Atlquisicihn, r s p r c i a l n ~ r ~ i at e la t*vnluati'~n11rlos t ~ r o t l n t ~ o lo s . qntS10s pro\tvb tle informac:ihn invaluahlr para l;w t~arnpafiastlt. Markrting. E n conrl~ensaci~')n, Evaluatihn tle Protlwtos gana el acwso a Marlteting y tluetle r e ~ ~ l i n i t ~ n o cwml)inilr los tlatos 1):u.a tarse s o l ~ r la r satisf'accihn t l t - los consnmidolw. A estr t b o n c q ~ ttlr 1111 uso t.omiln se 1r llama inlegracicin d e dalos (dattr iuteprotiori).
Compartir datos entre diferentes niveles de usuarios Dif'twntes nivt:les tle usuarios necesitan cwmpartir datos. Normalmente stxtlistingurn t r t ~ ~~ i ~ i v t htlr usuarios: personal. ~nantlosintrrmeilios y rjrcwtivob. Estos n i \ ~ e l ttwrrrsl)oiitlen cw11 10s trrs tlif(~rrntestil~ostle automatizacion d e 10s sistt-mas d r nrgocios clnr I ~ a ne\oIwionndo tlurantts las trrs kltimns tlbcatlas: procesamicnto t h t r o n i c o do datos (PKI))". sistcmas d e informaricin cle gcstibn (MIS) y sistenias d c apoyo a la toma d c clecisiones (S'I'I))". E n Sl~l-agur(Sprague y Watson. 1989. p11-12) se ila una cltwripcibn tle bstos: Los PED s r aplitmwn por primrra vez a 10s nivrles oprracionalrs mas 1)ajos tle la organizatihn para antomntizar rl tratlajo en papt.1. Sms cararteristiras 1)isiea.; i~~t*lu!.en:
'
f'oc.o d r atentibn r n rl ni\ 1.1 operative clel almat.enamlrnto. c1 p r o w i a n ~ ~ t ~ )n telo flujo tlr lo5 datoi: prowiamirnto rf'it*~rnte de lab transarcionri.. . informes rrshrnenvs para loi clirigentes.. . F:l rnlotlut. tle 10s MIS c l r ~ a nrl lot^^ clr atencihn a l a i actividadei d r loi siitemas tlth inlormatihn. con 1111 Gnfasis adicional r n la integraci6n y planifitwiGn tle la lunci6n tle 10, i i s t e n ~ a (11. i informarihu. E n la p r i i r t l t ~ rsta, ~ , t*aravtvristicas de 10s MIS int*lu\e~l:
ARCHIVOS DE MARKETING
ARCHIVOS DE COMPRAS
ARCHIVOS DE CONTABILIDAD
DISENOY ADMINISTRAC~ONDE BASES DE DATOS
ARCHIVOS DE MARKETING
ARCHIVOS DE COMPRAS
ARCHIVOS DE CONTABILIDAD
fore en la informavihn orimtacla a 10s inandoi iiite~.~iic-clioi ... nna integracihn d r lai tartlai tle P E D por sus finirionc*ir n 10s negocioi. ti111.-(YIIIIO MIS de protlnccihn, MIS cle marketing. MIS tle pcrional, rtr.: generacihn de encueita5 e inforin(.-, usualmente con nna 1)ase ele ( I ~ t o s... t1ii STI) se eentra
4.11
un nitel aim m i i alto clentro (lea la organizaci611, con 6nfaiii en
hi raracteristicas siguientc.s: intrrbs w n t r a d o en la tlecisiOn, orientado a dirigentvs cir alto nivel y ejevutivos cpie toman deeisiones; p la r c y u e s t a rLpida .... bnfasis en la flexihiliciaci. la i~elal~tal)ilitlad a11oq.o a lor; estilos l)ersonales d r tonla d e tlwisibn cle 10s c l i rigcmte~. Las intrrrelaciones (ivrstos sistenlak a 10s dif'(~c:ntesnivrlrs tle tlirc.c.eibn pr ilustra en la Figrtra 3.2. Estos niveles de usrcarios y sistc~nasrrqriieren naturalmente ile tres t i p s tlif(~rc~ntcs clr datos. El usuario en nivrl oprraeional nrcesita datos para 10s procesos tie transac~iones. Esto l~ridierainrluir tlatos para las nuevas rucmtas o canibios en las cuentas existentcs. coinpras, pagos y otros. Estos clatos tlrtallados ~)otlrianluego rrsrimirsr para la inforinacibn q n r sr ncc.rsita en otros nivelrs m i s altos. Por ejenlplo, el nivel de MIS podria ntilizar resiimenrs para intlicar cuLles reprrsmtantes de vrntas fueron 10s mas prodnc:tivos. o r u i l m fncron 10s menos. Los ejecutivos en el nivel m i s alto usan 10s sistrmas de apoyo a la drcisi6n para tlescubrir las tmclrncias a largo plaza clue se pueden aplicar a su propia corl)oracihn, asi romo para identificar el rntorno econhmico, social y politico m el qilr deben oprrar. Los STD le ayutlan a tornar decisiones, comer la tle construir una nuevil fal)rira, comenzar o clausurar una linra d e produwibn y por el estilo. De rnodo q u r un STD usa 10s resirnenrs de datos d r su propia compaiiia, asi como datos dernogrLfic:os, de mercado y otros de fnrntes externas. (a1
SISTEMAS DE BASES DE DATOS EN LAS ORGANIZACIONES
Ejecutivo
4
lnforrnes Estrategicos Consultas Analisis
w
lnformes de direccion por areas funcionales
Operativos
-
Transaciones Mantenimiento de archivos Procesamiento de informes de control
Compartir datos entre diferentes localidades I n a t*oml~a"a t20n d i k r m t r s srlcursales distri1)uidas sol)rt. una p n i r e a geogr&fit-atitw. datos inlportantes. Compartir vstos datos rs un 11rol)leniasignifirativo. E n la nlrtlitla qne la5 ramas tle ofirinas de 11)P I-rrt-en.el intercanhio d r tlatos entre las oficinas locales !w t r e las ramas se \ a haticndo eada \ez lnis inadecuado. Rsto se ilustra ell la twnversaci611 siguiente.
"D6jume uer si entirndo bien lo que tu p i r i ~ s n s D , i ~ l iCon . oficiilus regeldus p o r todo el globo se 11(1 hnciendo c c ~ d aucJz mcis y mcis d$cil obtriwr los irrj'ormes u tieinpo. " "Exc~cto.P o r c~horcid o s estiin enuiunclo S I L d~ ( ~ t o su Chicugo y imestru geilte 10s introdzire en el sisternu. p r o yn entonces es turde p u r u q u potlornos ~ toiirar ~ u t ubueila decisii)n PII 10s negocios. Fs: mcis, lus oficinas internucionciles dese(111u.wr 10s h t o s cllli iizisirro cloitcle c~stcjiry no teller qzie estrrr hnciendo copias extrus de 6stos." P h o r a d e que cor~siderernosu n s i s t e i n ~d e bclse ( 1 (~l ~ t o s distribziid(~.ES "Creo ~ I L es p o ~ i b l con ~ , las tecnologias cictucrles. conserrclr 10s dntos en lus ojicinus donde Qstosse orig i n a n y luego poder accederlos clesde cucllquier p u r t e dc.1 murztlo cia lineus d e dutos. P datos que estcirl en Hrziselus y Ruerros Podrinmos hucer consultas en Sidney ~ L riseiz Aires. Esto seric~sofisticuclo, pero p i m s o cpe podri(r~nosh u c ~ r l o(1 u i ~costo efectivo."
Ijase tle tlatos centralizada. Una I~ase dl. tlatos t p e esti f i w dlllclltt' situada en ~nndi ~ n ~ tloc.~l17ari611. *a
[Jna hnse d e clatos c-entralizada (ceiltrulized dntcrbuse) es una base tlr tlatos quc3('stti fisicanie~itesituada en un h i c w Ingar, t ~ m t r o l a d opor m a sola twmputadol a (k i p r a 3 . 3 1. La mayoria de las funvionrs 1)ara las clue se crean las bases de datos se lie\ a n a caho n ~ i s ficilmente si la base de tldtos esti vmtralizada. Es tlecir, es m i s ficil a c t l ~ a l i ~ ahr .a t w twpias tle seguridad, t ~ m s u l t a ry controlar rl at-t.rso a una base d e datos. si sa1)emoi exactamentc tl6nde e s t i y t.uil es el software clue la controls. El tanlano de la base de datos y el cornputador s o l ~ r eel cual reside no tlenen relatihi1 con la base de tlatos donde e s t i c ~ n t r a l i n e n t rlocalizada. Una compafiia petluefia con 5u lrase de datos sol~rc.una computadora personal (PC)tiene una I ~ a s etle tlatob centralizada. de la r m m a forma clue una gran compafiia con muchos romputadorei, pero cuya base tie datos esti eomplet~mentecwntrolada por m a gran computadora (rrwinfrarne).
DISENOY ADMINISTRACIONDE BASES DE DATOS Usuario local
Usuario local
Usuario rernoto
Usuario local
Usuario local
Usuario rernoto
Sin twl)argo. c.n la rneditla en clue la t-oinpaiiia cret8r.tivnde a ahrir nueras ramas tle o h i n a s con sus propias nrresitladrs tl~stlatos. lrtternntior~cilProduct lhtributiort es u n Imen ejt.nil)ltr. Una vez tjnc 1111' t~iiipezba a l ~ r i rofitinas por todo t.1 innndo. 10s dirwti\ os t.ntpexai-on a d;lrst%curnta q u r uo podian c.ontar (*ontodos 10s iiiforiiies a tirnipo e1al)ora110s por el sisterna (I(. h a w de datos t.tmtral dt. las ofirinas de Chicago. Adriiihs. 10s dirwtivos locales tlrsealran twnservar los datos tle s n inter& tm sus propias Itases de tlatos t b i i Illgar dt. en un sistema de h a w de datos u1)it:atlo a rniles dt. liilbnietros de distancia. 1-na \ ez t p e las ttm~ologiastle las t*oniunitwiotieshan ~nejoratlo.I D P ha twinenxatlo uii serio e s t w tlio para iinplantar un sisteina de I ~ a s ede datos tlistril)rtitla. IJn sistema d e base dr clatos distribuitla (distribtrttd rlutcr buse systc~rrt)e s t i tson*istt-u~ade base cle pursto de varios sistrnias tle I~asestle dates oprrantlo en 10s sitios lot8alt.s y tmwt-ta(los1101. datos distri1)uirla. Cn sistc~matle t)aw de linras dt: roniunicacihn (Figura 3.4). Ijna consulta o m a artualizac~i61itleja tlr s r r un 1'1-0datos t w n q ) l ~ r ~dt or t w o simple twntrolado por 1111 iiniro 1u0dnlo de software, sino (jut: pasa a t*onvertirsr en \ ;i~.ios sistrmas t>nsitios varios t)l.ot:esos t:ooprrando r n t r r si y ejecutantlo en sitios tlikrentcs y cwntrolado por loc.;~les.twnrctatlw por ~nhdulostle software iiitlt.l)ri~tlientt.s.Claro r s t i , para qut. un sistema tlr I m c s de datos tlis1inc.a.; d r c.o111~111i('at'ii)l1. trihuida fumcione con rCet:tivitlad. d r l ~ e nestar dispoiii1)lrs ttwiologias atlrtmadas tlr t.olnuy 10s SGBDs drl sistcma c l e h i ser rapaces dt. t w l n u n i r a ~ we n t r r si con atlecnadas iiiri~(ii)n interfacrs con las fac:ilidadrs dt. romnnit~acii~n. Los sistrrnas d r hasrs de tlatos distril)~litlasson atractivos portjur hacen posihle la nt)icacihn local cle los tlatos: Los datos rrsitlirhn en 10s lugares tlonde st. necrsitan con inis frrruencia. Con la tlisptrnit~ilidadde potrntes software dc 1)ase d~ clatos t*lirnte/srrvitlor para r d r s 1oralt.s ( L 4 N ) " e incluso s o h e PCs, es razonahle crrar sisternas distrihuitlos r p e perniitan a 10s usuarios locales manipular los clatos locales, mirntras q n r a1 mismo tiempo s r dim 10s iiiedios para clue usuarios no locales y clirigentrs lot~alizatloswntralrnente puetlan arcaetlrr a 10s rnisrnos datos srgiln lo recjniei-an sns newsitlades. Este enfoque rnejora la rclacihn
"
1)rl ii#\
1,ocrrl Arcw \etrrork (N. drl 'I.).
57
SISTEMAS DE BASES DE DATOS EN LAS ORGANIZACIONES
BASEDE DATOS
-
COMPUTADOR
COMPUTADOR
LINEA DE COMUNICACION
\
COMPUTADOR
-
BASEDE DATOS
LINEA DE COMUNICACION
I---
------' BASE DE DATOS
El papel de la base de datos (:omo 11i1 tlrnlostratlo este anhlisis. lograr rl trl)jrtivo t k t.on111artir los clatos 1,s c*onq)lej~). (:on rsto ('11 ~nente.tlrdiqnbnloslr una s t y n l d a rrvisi6n a la tlrfiniciiln cle una Ilasv de tlat~w tlr datos i n t c ~ r e l a c % ~ n i ~ I-fwtira. ( h n o !-a sr ha t l i c h ) . lula 1)aw tle clatos es uria c.olrc*cii~n y cwntrolados. Tanto el t*t~nipartir como el controlirr 10s datos se fwilita tlos. cwnl~;~i-tidos nicdiantr lo intrgrcici611.I)r rsttLmoclo. esta clrfinici6n cwntirne tres vritt.rios lbara tlecir t - ~ ~ i n cnna l o 11asr de tlatos P S efwtiva. Primero. los tlatos tlrllen (.star cotnpartidos. Como sr ha visto. 10s tlatos 111reden rstar cwmpa~-titlosr n t r r ~ ~ n i t l a t lfuncionalrs. t.~ cmtw ni\rlrs de dirtwiim ! entre (lifrrcntc~h ,.. ~tnidi~tlrh gvc1graf1c.a~. Scytntlo. rl nso tle los datos c l c h estar controlatlo. El rontrol sc 11rol)orriona1)or 1111 sistc~n~a tle grstihn d r I)ascx (lc clatos (SGHI)) cn!.as fatilitladrs son aclniinistradas 1101. 1111 1~rrsm1;dtple sr le conow (.onlo atlministradortxs de I m e s tle clatos. En el Ca1)itnlo 1 s r hun 1.n el Callidrstacatlo las facilidatles d e los SGRl) y sv volverin a t r a t a r mlis rxtet~sainrntc~ s tulo 13. Las fnnciones tlr los administratlo~wd r l m e s tle datos serL11 diseutitlas n ~ i tartle en rstr capitnlo y dc nnc.vo en el C a p i t d o 11. Trrrrro. Iok tli~tossc integi-an cle una forma lhgica. de modo clue se eliininrn rcvIi111daiwias. cine se resnelvan las am1)igiiedarles r n la definici6n y qnts sr mantenga la c*onsist m c i a interna rntre 10s inismos. La estructnra l6gica de la i n t e g r a i ' ~ nrs lo q u r hare qnv 1.1 cw~npai-tirj twnttwlar los datos pueda ser prhrtieo w a n d o se t r a h j a a gran escala. Sin la intc,grac*ihn, srria e~trematlanwntcdificil administrar y mantrnrr la c*onsistenria rntrts grandcs rantidades d r archivos difrrentrs. Las t6cnic.a~p a r a lograr la intrgrac.iOn metliante la estructurari6n l6gira d r 10s datos sr presentarin m las Partes I1 y 111.
DISENOY ADMINISTRACION DE BASES DE DATOS
Planificaci6n estrattgica de bases de datos
La necesidad de planificar la base de datos I,a ~~lanific~acii'm tlr Lina l ~ s dv r tlatos rstii cwn(1icionacIa 1)or las nrcrs~tladvstlr informacihn tlr la organizacihn, q n r a $11 vrz r s t i n tlrtt~rn~irlad;ls 1""' r1 1)laii d r nrgorios (It, la c o n paliia. tal !wrno s r ilustra rn la Fignra 3.5. Por rjrinl)lo, la c.orl~oraciOnf o r ~ n u l aSII 1)lan rstratbgico tlr nrgocios para lo- prhximos r i n w aiios. C ~ n i p l cwn ~ r 10s ohjrti\oi d r rctr plan clq)rndt, tlv la disponi1)ilidad tlr cic,rto tilw (It. inl'ormaci6n clur ha sitlo itlrntific.;~tla. La i n f o r m a c ~ h4 1 0 sr p r d r o1)trnrr si lob tlatos. tal ) como scbidrntiliraron rn la 11l;rnificacihn tlv la base tlr datos. rstiin disponi1)lw. Fkto detrrmina la nrcrsidatl d r pro!rc8tos tlr drsarrollo q u r c r r r n n u r t a s 11asc.sd r datos. o rnrjorc.11 o intrgrrn haws d r clatos r\istrntt.s. La planificacihn tle las I m r s d r datos titmr trnt;ljas signil'iratixas. Jamrs ( ~ 1I1 mt)aug11. 198.5.1). 6) cita \aria5 vmtajai d r un plan iormal d r rrcbuiwsd r inforniacih: bstas inclii)rn: E x t ~ r r s ala romprrnsiihn qiir tirnrn lus tlirigcntrs d r los rrcwrsos informati\ 0 s . . . 1dc.ntifica y jnstifica los rcyuisitos d r rrc2ursos... ayutla a asrgnrar q u r 103 rrcursos vstin disponil)lr~.. . Idcntifira las oportunidades para una rfrrtiva gt:stihn d r los rrcursos. inrluyrntlo la c:olal)oraciim r n t r r los d r p a r t a n ~ r n t o sy divisionrs tlr la organizaciG11... Esprcifica los planrs d r acrihn para alcanzar 10s o1,jrtivos ... Purtlt-... srnsillilizar y srrvir tle gran rstimulo d r cbnlo dirigir a 10s rl~iplratlosr n todos 10s nivrlrs. p a r a q u r r r n t r r n sus rsinrrzos r n aunlc,ntar sn produrtividatl !hawrlos srntir q n r son parttl grnuina tlr la r l n p r t w .
El proyeeto de planifieaei6n de la base de datos La planifiraeicin estratbgica de la I m r d r datos r n ~ p i r z ap o r la dirrrtiva d r mayor raligo. Ellos asignan los rrcursos r identifican el personal q u r l)articil~arLr n rl pro!-rrto. Con las cwnisionrs tlr la d i r e c r i h , los mirnlhros d r lo$ rquipos tirnrn los rcrursos nrwsarios para llevar a ( : a h con bxito u n proyrc:to. El e q u i p drl proyecto dehr t r n r r una amplia rxprrienria en sistr~nastlr inlormaci6n y r n otras Arras funcionalcs d r la conq)aiiia. Martin (1983) rcvwmirnda un grnpo d r cnatro mienlhros a tirmpo conipl(:to, (10s de sistrmas de inforn~ac.iOny dos q u r rstti.n f a n ~ i liarizados con la mayoria de las i r c a s d r la cwmpaiiia. Totlos los mirml~rosdel r c p i l ~ o drlwn ser eml~lradoscualificados y r a p e r s , pursto q u r $11 trabajo t r n d r i 1111 gran i m p ( . -
NECESIDADES DE INFORMACION
PLAN DE LA BASE DE DATOS
PROYECTOS DE DESARROLLO DE BASES DE
t
59
SISTEMAS DE BASES DE DATOS EN LAS ORGANIZACIONES
Ntv.t.sitlatlrs tlr inforn~atihnd r las h r t m funtionalrs. I%rt*rsitlatlt~s tlr infol-lnatibn d r 10s difrrrlltrs nivrlrs tlr tlirtwibn. hrt*rsitlatlrs tlc inforlnat*ihntlr las 1ot.alitlatlrs gtwgrif'it.as. Un modrlo (11.(.stas nrwsitladrs d r informacibn. Vol13mrnrs antiripados tlr tlatos por 1ot.alidad gtvyrAfiva. l)ro!rrtatlo para cl prriodo hajo rstutlio. 1-11 rstin~atloI~rtxliminartlr 1 0 h costos aso(*iatlt,sa las actualixationrh t1t.l histrnla. R(.con~rndac.ionrs11ai-aun tlcsarrollo tlrtallatl(~tlr las nucvas o ~nrjoratlahI~asos tlt: datos junto con sns plants. Los usuarlos f~nalesrnb expermentados ~dent~fican 10s procesos, las activ~dades
/
El equlpo del proyecto sintetna el rnodelo del negocio y la estructura de ~nforrnacion
Fuente: James Martin, MANAGING THE DATA BASE ENVIRONMENT, @ 1983, p. 658. Adaptado con permiso de Prentice Hall. Englewood Cliffs, NJ.
DISENOY ADMINISTRACION DE BASES DE DATOS
El c.cliiil)o tlrl p r o y ~ t ono ( l r h liacw u n modclo tlr ii~forniatihr~ tlrtallado r n rstc. (1v disciio idan. Los niotlrlos tl(-tdlados s r d t h i tlrsarrollar c>n10s proyrctos snl~sigr~irntrs tlr la h s r d r tlatos. E n Ingar d r rsto. tal !conlo Janira rlrnota. r l cqnil)o d r l 1)royrt-tod ( h ria itlcntifirar los rlrnirntos t.stahlr.; tlr la t~strnt.tnrad r informacihn d r la orgarlizatih. c h w n t o s ( 1 1 no ~ se a l t r r r n (-ont.an111iosorganizacionalrs.. Dr atwrrdo (*onMartin. a1 final d r los sris nirsrs. rl modvlo d r informarihn tlrllr rstar a1 mrnos ril nn 90 por 100 finalizatrndrian ([llr h a h i - sitlo idell(lo. Esto implira tint' la nlayoria (11'10s rIr111rntos ~)rinril)alrs tific*ntlos.p o r lo q w ('1 n ~ t ~ t l rtlron d r i un pran valor p a r a una ~)lanific.acihnrstratbgira.
El ciclo de vida del desarrollo de la base de datos (CVDBD)
base de datos
Plan de la base de datos
Proyecto de desarrollo de una base de datos
Sisterna de base de datos
Sisterna de base de datos
Sisterna de base de datos
61
ida. l'na tlrl'i~~itihn tlr Iina 11o1.cihnrr-tringida clr la hast*tit, tlatoi: t a ~ i ~ l ) iIla~~intla j~i \iita tlr tlato-. e q u e n l a , Ina tl~.l'inic.ihn ill* I21 t~.trllt~tllriiI O p a tlc la ])a-r tlr clatos conlplcta.
DISENOY ADMINISTRACION DE BASES DE DATOS
AREA DE USUARIOI
1t 1A I
DISENO DE VISTAS
AREA DE USUARIO2
I
DISENADOR
DISENADOR
AREA DE USUARIO 3
I DISENADOR
Vista 3 de la base de datos
ESQUEMA DE INTEGRACION
BASE DE DATOS
naldrs 1)ar'l tlrfinir (1116 g r q w 1)ur(le1i ,~t.cwlrra quC tlatos. El 4K1) drtw \ I T t,al)az tlr nrp)ci,ir 111swnflic~tosclue purtlan s u i y r . Iln t~p111ode mienil)ros tb(micwntwtr orwntados thsr1 (pie drlw Ilr~ a r c*al)or l diitliio fisitw: 1)tm lo tanto. tlelwn ronocw twn preciiibn h n o (4 SGBD m a w l a rl a c w w a 10s datos \ cxi11.s mbttitlos de acceio s r r i ~ nmas eficientei. Su oI)jrti\o rs o l ~ t i m ~1,1 ~ ac rw m l i nacihn total ( 1 h~a r t l ~ a r r .softwar(* rosto de loi recurios hnmanos. Itlralmrntr tlrlwn Iniscar c4mo minimizar el tiernl~od r rcipuesta del siitema d r n t i o d r l a i rrhtr~t.cionrstlr lo+ cwstoi d r hardwarr > software. El diirfio y la nnplementac~ihninirial tle la I ~ a s rde datoi drlw rstar seguitltr cle un continno mantrnimic~ntod e la estruc*tnrd16gica y fisica de la h a i r d r datos. (:a~nl)iosen lor t ~ p i s i t o sde 10s nrgocios. 1.n las rapac~tliidrstlr softuare y hardware ? r n 10s \ o l i n n r n ~ (I(, s procrsanntmto protluren cam1)ioi tanto tanel di5rr7o fisico como lbgiro d e la h a i r ilr dato5. El \RD o c y a un lngar estratbgicw r n la dt~finit~~irn y esta1)lecirniento d r loi r i t i n d a r e i d r 1,i wmpaiiia. Pnesto clue el disrfio dt. la h a w de datos se controla c.rntralmrntr. r l 2KD p ~ i r d rtlrfinir e5tandares sol)re chmo sr d d w n poner los non11)rrs: iohre los formatos d e los datos; s o h r 10s formatos tle las pantallas, d c lo5 informrs y de los archivoi. Esto simpl~firala doc.nmrntaci6n y los rrquisitos de rntrenamiento > facilita la i n t e p r a c i h de loi sistrmas d r n t r o d e la compaiiia. Las derisiones tle disrfio sr tloc.umrntan en 10s diccionarios d r tlatos. El ABD (.ontrola el rontenido de este dwcionario d e datos y registra en Ctstr twmo mrtadatos 10s nomhrrs d e 10s elementos de drrtos, 10s arrhivos, las pantallas, las formas de lob informes y otroi. Como se sefiali, en el Cal~itnlo1.10s metadatos en el diccionario de datos purden ser ronsultados y manipulados. Sin emlm-go, su maniputacicin la controla con mucho (widado el U D , puesto que 10s datos de este diccionar~oson vitates para el funrionamirnto adccnado del sisterna de hase de datos como u n todo.
SISTEMAS DE BASES DE DATOS EN LAS ORGANIZACIONES
Formacih del usuario
Seguridad e integridad de 10s datos El c80nc.el)totlv c.onil~inar10s datos de u n ; ~organizaiicin en 1111 lngar t.onli~nat*resil)lea totlt~stiene sns vmtajas ! sns desventajas. La vtwtaja ohvia tlr cwnil~artir10s tlatos ~)ncvle tlrsl~lazarst.1)or la tlrs\entaja tle ([tte 10s tlatos se ~ ~ ~ t r ttrastocar lrn o tlaiiar 1)or wnarios i l i t l a t ls o l ~ r e10s mismos. t p e 110 t v ~ ~ uy ~n ~ w e s l ~ ) ~ ~ ~ l( I~autoridad la [lase tle tlatos a1 g r u l ~ ot111e El 1BI) asigna la 1)ropietlatl tlr 111stlatos en nna \ista lo originh. El gr1111opropir.tario p~letleentoncw o t o r p r el a t w s o a los tlatos cn la vista a otros mienil)i,~)s tlentro (11. la organizacihn. Estr aweso se I I I I I ~ ~restringir . a lwrviones tlr los tlatos. ptmnitir atbtwm st510 para r r r u p e r a r i i m ( r r t r i w e only arress). o lwrnlitir a w e so y at*tualizacihn.I,a inft~r~nacibn clue tirut. quthver con los dert~t~lios tle aweso a los tl;rtos I+ mantrnitla por el AKI) en el tlic.t~io~~ario tle ~ l a t o s . El a(-cesoa la hasr 11etlatos es finalmente twntrolatlo pnr un metm~ismode etrntrasriias ( p m s ~ c o r d )nn . nsnario clue inttmtv tener a t w s o a1 sistt~matlelw d a r una wiltraseha Ie ~ ~ e r n ~a1i t11~11ario e valitlado shlo los tlereclue """i valitlatla 1""' 1.1 "stenla. El sistc~ni:~ cahos tle a t w s o tlllr e s t h rvgistratlos en el tlic*tionariotle tlatos. El SGLII) controls el a w e so. a la \ez t111t~ ~nantietieinfor~natihnestatlistira s o l ~ r elos datos at~t~t~tlitlos e introtlutitlo.: 1"" el usuario. El AH11 es el i - ~ ~ s ~ ~ t ~ ~tlei slaa lasigii;~t.ih~~ )le tle contrast~iiasy tlel control t l t t los ~~rivilegios dv aweso. I)r rsta n i a n e r a ~el ABU r c d n t ~grandeniente ('1 riwgo (Ie clue 1111 grnpo tlaiie 10s tlatos (It. otro. La iiitegritiad de 10s clatos titwc qlle ver taon el pro1)lt:nia tlr mantrner la precisibn ! cwnsistenci;l tlr los \ a1ort.s tlr los datos. Los nitwnis~nostlr s r p r i d a d . tales conlo las twntraseiias y las vistas tlr los tlatos, ~ ~ r o t e g elan inttyridad d r los datos. .-idicional~nrntese putxtltw tnantener en (4 diwionario dt: tlatos rrstrit*tiones sohrr los valores. Desgrac.iatlamente. la tlef'inicibn tle las restric*t:ionrsde 10s valores y garcrntizar las nlismas es m a tle las & w a s tlr inayor de1)ilitlad de los sistc.inas avtuales d r grstihn d r I m e s d r datos. St, pnetlen identil'irar nlwhas 111isrcstricciones. tlllr stbpnetlen drfinir s o h los SGBD. Por lo tanto. p ~ ~ r t l r ser nc~:es;~rio h a w r Inwgramas t111t' wrifiq11t:n las restricciones para los nnevos datos t[ntLst. introdnzc.an. Tal t i p de progranias se Ir pnrtlt~encargar razonablenirntt~a1 equipo tlr ABD. Los ~net~anismos d r t-opias de seguriclatl y restanraci6n soportatlos por r l SGBD t l r l ~ e npreservar 10s tlatos tlt. t.naltpier fallo tlrl sistt~tna.Sin emhargo, el ABD tlelw clel'inir prtrt~rtlimientospara r e r u p r r a r datos perdidos. Los usuarios t l e h n saber quk hacer ante una caitla del sistema, para tener qne reintroducir sblo 10s tlatos necesarios. 11tb
Rendimiento del sistema de base de datos Un sistema de I m e d r datos a1 clue accedan simultaneamente muchos usuarios puctle responder a veces muy lentaintmte tlebido a clue Ins problemas fisicos asociatlos a 10s i~suarios
DISENOY ADMINISTRACION DE BASES DE DATOS
Riesgos y eostos de las bases de datos
Conflictos en las organizaciones
Fracasos en el desarrollo de proyectos Los ~ m n t ~ t ao~Irsarrollar i r n tin sistnna tlr 11asv(It. tlatos purtlr frac;l.ar por v,lrii~srazonrs. E n oc~isiont~s son los tlu-iprntrs 10s ttur no r s t i n r n p r i m t ~lngar cwn\ rncidos drl kdlor tlrl sistrma tlr h a w tlc tlatos. I n proyrrto (It' h a i r d r tlatos q n r partbzt-amu! largo putliera scr t.anc*rlado. lrn l ~ r o y w t o1nuy grantlr rii nlrancr purdr s r r imposihlc tit. twinplrtarse en un tiempo rwzonaldt~.Eli rste caso, loi dirigrntt~s1lo5 ~isnarioscomirnzan a tltwnt.antarse y el proyecto fravdsd. En rstr txso nna riirjor rstratrgia potlria w r t l i v d ~ rl r pro)rcatod r h t x t k datos t.11 \nrio5 p r o ~ w t o para s drsarrollar varias hairs d r datos o una I)aar tlr datos m varias rtapas. F i n a l n l t ~ ~ ttrl.w a n t r rl transtwrso tlrl tlesarrotlo drl IIr o!t.cato, t.1 11vrsonalc l a w pned r ahantlonar inc.sl~t.r:~tlamrntrla r o m p i i i a . Si no purtlr r n c o n t r , ~ ~prrsonal v p a r a rwnlplazarlo, rntonvrs rl 11ro~t.ctol d i r r a no trrminarir roil Lxito.
Malfuncionamiento del sistema Cuantlo cl sistrina d r c O n q ~ ~no t o (.st6 ~ q ~ r r a t i vtodos t ~ . 10s usnarios t l i r r t ~ ; ~ n i r n irnplicate dos r n t.1 i ~ t ~ a~las hoa w tlr datos dt.1)c.n r s p r r a r a q u r rl sistrrna vurlva a rstar tle nnrvo en funcionamirnto. Esto p u r d r implirar 1111i1 larga espera. Ademis. si el sistema o rl softwarp de aplicacihn falla, ~ s t pndiera o ot-nsionar nn daiio permanrnte en la base d r datos. P o r lo tanto, es muy importantt. w a h i a r cuidadosamrntr totlo (-1 softwarr (pie tenga n n rfecto dirrrto s o h r la h a w d r datos para rstar srguros que rstG totlo lo lihrr d r r r r o r r s q n r
1
1
I
I I
I
I
1
SISTEMAS DE BASES DE DATOS EN LAS ORGANIZACIONES
65
Costes imprevistos
Necesidad de personal cualificado ],a funrihn dtt atln~i~ii$trac-iO~i 111s la I n s r d r ddtos retpiei-e dt' ~ ) c r s o n acualificado l clue sea s tit. diicbliar las vistas, integrar cal1.17 tlr t*oordinarlas nrc.rsitladvs t l t a lo$ d ~ f r r r n t e grupos, las \ lstai r n nn h i t w ostlnrma. esta1)lcct.r 10s p r o ( - r t h i r n t t , s (pie rcstaurcn 10s d a t m j afiliar la vstructura fisira tlc la hasr tle datos para c11)tene~ criterios d r rrndimirnto accptaI)les. Esta cwml~inat.ihntle 1ial)ilitlatlrs reprrsrnta 1111sol)rccosto hlnnano r n la atlop-ihn ! uso tlr nna h a w tic* tlatos. Es dwir, una vez que las func-iones tie athnin1~traci6ntle la base tit. tlatos h a j a n sitlo c.st,~l~lrt~itlas. el t m t o tlrl grnpo d r 4BD rs un gasto Iwrrnnr. Ha! un rrrsgo atlitwmal involnt~atloen la itlentificacicin drl I~ersonalpara la \HI). ) a (pie si no ir nlcuentra gcnte con las tlestrezas rcqnrridas, la fl~nc*iOn tle la 1 B D p w t l r n o rralizarsc atlecnatlamentc. Esto l~otlriaprovot-ar problenias i~gnificatnosj ~cutlwra ~nc.lusoimplit.ar el fracaso tle la iniplen~ent~~citin tle una h e d r tlatos. Drhitlo al v alor critic.()de un sisten~ad r base tle tlatob. se delje tener muvho t*uid,~do en escogrr. para la atlniin1straci6n de 1)esc.s tlr datos, shlo a lwrional cualificatlo.
Separar la representacitin 16gica y fisica de 10s datos E n la prinirra mitad dv w t r cq)it111ohrmos tenido que ver con los asprctos tlr p t i h de alto nivel relarionados con t.oni11artir 10s tlatos, I)lanifiraci6n estratkgica j t-ontrol tle 10s datos.
DISENOY ADMINISTRACIONDE BASES DE DATOS
Arquitectura de tres-niveles de una base de datos
arquitectura d r trcs-ni\eles. Estr1wt11r.a t 4 n t l a r d r lmsc tit. tli~tc~ twnsistentc. s cbulo* nit(-lrscwncrptual. ~.\tt.rno intrrno.
~ i iel \ interno. h i \ el rstrnc.tnral tlc la I ~ a s r d r datos c1llr clrfine la kista fisicn t i t s la 11ase d r datos.
La tlistinti'm e n t w la r r p r r s r n t a t i i ~ n1bgit.a ! fisit.a tlc 10s datos f'ut. ~ w w ~ ~ o c *ol'icial111v11itla I S Orsql~rlr.togc.neralixatlo 1)al.a sistrt r en 1978. tmantlo el twuiti. _iSSI/SJ'iKC I I ~ ~ ~ I I nn rims d r 1)asc.s tlr tlatos (Tsithitzis I(lng. 1978). Estr esquc.lt~tt~ Ilrinda una a r q u i t r r t u r a d e tres-niveles; 10s t ~ nivtbles w tlr al)strat.cibn 1)alo 10s ~ I I pwlria V \-rrsr una 1 ~d r stlatos. ~ Los t r r s nirrlrs son t.1 twnt.t.pt~~al. el t.stcSrno!r l iutrrno. (It, la 1)asr de El nivel eonccptual t,s rl nivrl t.11 t.1 qn(>s r hat*v el tlisc%o t.t~nt'el~tual clatos. El diwiio twlt.q~l,tuald p 111 h s e cle dutos in1p1it.a (.I anilisis d r I;IS nrcwidatles dt. inf'orrnati'm tlr los usuarios y la dt4'inic%n de las t.1asc.s de tlatos t j ~ se ( ~nrrrsitan p a r a satisfacw estas nrcwidat1t.s. El rrsultado dcl disriio twncq)tnal PS el espeiitu ~ o i ~ c ~ p i d , una sinq)lt~y I0gic.a dest*ril)tiOnde totlos 10s c:lcmentt~stlr 10s tlatos y sns intrrrc.lacionrs. El nivel e x t e r n o t-ousistt, dv las vistas qutbtitwr r l ~lsnariosol)w la hast. dv clatos. Catla gr111)ot k nsuarios tcwtlrh SLI prol)ia vista d r la hasr dl: datos. Catla m a de estas \-i,itas nos tla n n a tlesc~il)c-itintlv 11,st,lrnwntos (11,10s tlatos sns intc~rrrlat~ionrs orirntatlas al 11s11ario!dt. las cualrs s r caompont~ la ~ i r t a Esta . sc p ~ i e d ed r r i l a r dirwtamrntr drl rsquema c o n c q ) t ~ l a lLa . t*olrc.cibndt. todas las \ h a s clr usuario f o r n ~ at.1 nivel esterno. El n i v d i n t e r t ~ onos da la vista fisicba tlr la base tle datos -10s tlispositi\os tlr cliscw. las direc:c*ionwfisi13as.10s intlicw, 10s pnntrros p demis-. Estr nivc.1 es responsa1)ilidad de 10s tlisrfiatlort~stle la h e tlr tlatos fisit-a, cjuic.ncs clrvidrn t.ui11.s tlispositivos fisicws runt e n d r i n 10s tlatos? c.uiles ~ n ~ t o t l otlrs a t w s o st, m a r i n p a r a r t v q , c r a r y actualizar 11)s t o la base de datos t - ~ ~ i ln~editlas es sr tomarin para m a n t m r r o mrjorar ( a 1 r ~ w l i n ~ i e n clr dato.. Ningi~nusnario tirnv tjne ver c80nrsta vista en caliclad dc usuario. Coma seiialan E l n ~ a s r iy Na\athr (1985)). la irnplemmtac~ihnde estos ires nivelrs a con el otro (Figura 3.9). P a r a e n t r n t l t ~ reqnirrr quc' (4 SGLII) haga t*orrt.sl)ontler I - a ~ lnivrl esto. rrt*ortlt.~nost p r la I w e dtx tlatos evistr r n rt:alit\atl s61o 21 nivel interno. Para rrprrsentar 10s tlatos en lo$ nivrlrs cwntq)tl~aly extrrno t l d usnario. r l sisterna tlrbe s r r capaz tlr trasladar las dircwit~nrsfisicas y apuntadorrs c:n sus rorrrspondientes nornhres l6gicos r i n t r r r e l a c h ~ r sEsta . traduc:ciOn talnl,iPn delw t r n r r lugar en el sentido invcrso -del 10gic:o al fisico-. El prccio tle este protwl) tlr traduwihn es u n sohrecosto mayor. El heneficio es la independencia tle la reprrsentacibn 10gic.a tlr los tlatos d e su represrntacibn fisica.
Uso de la arquitectura tres-niveles en este libro En r s t t lihro nos dedicarcmos con alguna an~plituda la arquitrctura d e tres nivelrs ANSIISP.4RC. E n este capitulo y en las Pirrtcs I1 v IJI (Capitulos tlrl4 a1 9) se estutliarin 10s ni\elrs wnreptual y externo y r h o se pueclm tlesarrollar 6stos conlo rsquemas que satisfa-
SISTEMAS DE BASES DE DATOS EN LAS ORGANIZACIONES
USUARIOS FINALES
LA BASE DE DATOS
1 1 VISTA DEL USUARIO
VlSTA USUARIO
CORRESPONDENCIA
CORRESPONDENCIA
0 0 0 VISTA USUARIO
NlVEL EXTERNO
NlVEL CONCEPTUAL
NlVEL INTERNO
gall las nrwsidatles tlr los nsuarios. E n la ineditla clue r n rstc rapitulo se revisr rl rirlo tle vitla drl tlesarrollo d r la hasr clr datos. sta w r i r0n1o las tistas clr usuario drl nirel rxtrrno p r t l e n tlrsarrollarsr r intcgrarse en nn h i r o nivrl c*onrcptualpara la b;lse tle tlatos romplrta. A1 estudiar 10s niveles c w n r c p t ~ ~.!a lrxtrrno en la Part? I1 sr e x a ~ r ~ i r ~laa rrnrtotloloi gia tlr disriio ronc:rptual y s r mostrari r6ni1)1111 c l i sriio creado ron rsta ~nrtodologiapurtlr realizarw cwn 10s sistrmas de gestiim romrrcialrs de haws de datos (Figura 3.10). Estos sist r ~ ~ comrrciales ~as (1,as;rtlos en 10s moddos relarional. jrrhrqiiico y en rtxl) son en si misn ~ o sparte d r l ramino entrr ~1 nivel p r a m r n t e fisico y el nivrl pnranlente 1hgic.o. Ellos r q w r s r n t a n r l rstaclo actual d r l artt: con resprcto a las implrmrntacionrs de 10s SGBD. E n rl C;~pitulo10 s r estudiari rl nivel intrrno. Nurstro examen clr rstr nivrl incluye la clcscriprihn dl: las estrurturas fisiras c p r sc. requieren p a r a manipiilar 10s datos (it. un 1noc1o rfirientt.. Tamhiin s r vrrh r0m0 estas rstrurturas fisiras l)urclt:n reflrjar Ins rstliirmas tlrfinidos en los nivclrs roncrptiial y externo.
ciclo d e vida tlel desarrollo d e la hase cie datos (CVDBD). I!n ~ m ~ t : r para s o el tlis&o. y rl la im~~lrmrntaricin mantr~iiii~irrito d r un sistm~;id r I ~ a wck tlatos.
Desarrollo de la base de datos Esta sewihn s r rriitl.ari en el procwlimiento de tlrsarrollo del esqnema c*oncrptual d e la h a w de tlatos, identificantlo 10s tlatos clue se incluirin rri la hase de tlatos y drsarrollando 10s programas para artnalizar p p r o w s a r 10s datos. Estr prorrso se denomina ciclo cle vida del clesarrollo d e la base d e datos (CVDBD). Comenzarrmos analizando 10s cit*los tle vicla tratlirionales p a r a el drsarrollo clr sistrnlas (CVDS).
DISENOY ADMINISTRACION DE BASES DE DATOS I
I MODEL0 CONCEPTUAL DE DATOS
I I
I
r MODEL0 REIACIONAL
MODEL0 EN RED
REIACIONAL
-
SGBD EN RED
I
Diseiio de la base de datos y el CVDS traditional ciclo tle vitla del tlrsarrollo d e sistrnlaa (CVDS). Un prcweso p a r a t ~ deiarrollo l tle sistemas.
enfoque orientado a funcionra. Fer a un ziitrma clcsde la ~ w r s p c c t i ~clea las fnnc.iones cjue t1el)c. rrali7ar.
enfoque orientado a datos. Centra la atcncibu en el anklisi5 tle los datos utilizados p r lab lunciones.
Nnrmalmente, los teatos tle anilisis cle sistemas c1escril)cm un procedimiento para el elesarrollo clr sistema dmominatlo ciclo d e vida dcl desarrollo tlc sistcmas (CVDS). Estr procetliniic*nto consistc, til~ic*a~nente de pasos tales cwlno el c.stnclio de vial~ilidatl,tlefinici6n cle recpisitos. tliseiio (id sistema, programaciim y llrueha, asi como revisihn y niantenimiento. Snrge nna pregunta ~ i a t n r a l~: C h n encajar ~o el clisriio tle base tlr clatos con todo esto? Meyrr (1988) argumenta qnc para inerementar sn efectividatl. 10s tlesarrolladorrs de sistemas necrsitan e r h a r una rniracla tle cerca a los 1)resupuestos clel CVDS traclic.ional. El CVDS h a w iinfasis en la iilrntificacih de las funciones tle negocios y en el tlrsarrollo tlr 10s sistemas tlr al1liraci6n para llevar a cabo wtas fi1nc.ioties. Corno M q e r tlrstara, 10s &totlos tlel CVDS estin hasaclas en n n enfoqoe orientado a fi~ncioncs.P:s tlccir, estos m6todos r e n a los sistemas clesdc rl punto cle vista d r las funciones clue ellos llcvahan a calm 4.n lugar cle 10s datos clue realizan a las funciones. P o r esta razbn, el anilisis estructuratlo enfatiza en 10s d i a g a m a s tle flujos, siguienclo cl rastro del1)rogrwo de 10s datos a travks d r unn serie dc niveles. Lo nna seruencia tle transformaciones y refinando a Gstas a travSs mismo es c-ierto para el tliseiio cstruc*turado, clue ve a u n sisterna cbonlonua filnc:iOn que se clescoml~onrsucesivamente en nivrlrs o sul~funcionrs. 1 (:on~entrindosr en las funcionrs, estos rnStoclos infravaloran 10s tlatos y ~ 1 especial la estructura d e 10s clatos clue son manipulados por las funciones. El resultado. dire Meyer? rs clue estos sistemas tienen valor tlurante poro tiempo r n relac*iOncon las nrcesidades a largo plazo de 10s usuarios. Esto sucetle dehitlo a qne, a1 p r o tiernpo tle haher instalado un sistema, las funciones se convierten en un su1w)njunto de las funciones clue 10s usuarios realmente clesean. Casi inmcdiatarnente 10s usuarios ven una gran variedatl d r servicios aclicionales que qnisieran en rl sistema. Estas nrt:rsidadr.s causan prohlrmas a los sistrmas orirntatlos a funciones, puesto clue su tlisefio purde r r q u r r i r d r una revisi6n importante p a r a poder acomoelar a las funciones adicionales. E n contrastc, el cnfoque orientado a datos crntra el foco cle atencicin en el anilisis tle 10s datos utilizados por las funciones. Esto time dos ventajas: (1)Los datos son una p a r t r considerahlemente m i s rstahlr de 10s sistemas clue las funciones. Esto es clehido a qne un conjunto tleterminaclo de elemrntos tlatos se p e c k comhinar en m a gran varirclatl de fhrmas para olltener las respurstas a varias posihlrs preguntas. Si vikramos cada posible p r e p n t a conlo una funcibn del sistrma, es ficil drmostrar clue el conjunto de posi1)les funciones srria siem-
69
SISTEMAS DE BASES DE DATOS EN LAS ORGANIZACIONES
Plan de la base de datos
Sistema de base de datos
desarrollo del
Sistema funcional
Sistema de base de datos
desarrollo del
1 F] funcional
desarrollo del
desarrollo del
Sistema funcional
Sistema funcional
El ciclo de vida del desarrollo de la base de datos (CVDBD) La Fignra 3.12 mueitra el ciclo de vida tiel desarrollo de nna h a w tie datob (CkDBD). qnt. ronsiste en sei- ?tapas:
1. 2. 3. 4. -5. 6.
Planifitwihn preliminar Estndio tle via1)ilidad D e f i n i G n de requisites Disefio ronrq~tual Imlhmentacih Evaluaci6n y mantenirniento tle la l m e de datos
DISENOY ADM~NISTRAC~ON DE BASES DE DATOS
El caso de la Corporaci6n Zeus
---
em.
Lu Corporucibi~Zeus be oripii16 coin0 u n proyecto qzcc.fue terininnrlo mi~rttrus10s hermrcnos Blue estr~hunpusando un curso d~ gc~stibnd~ adininistraci6r1 de negocios ell unu 11e las escuc~luscle negocios del mediooc~ste.El proyecto cerltro la atencibrl en la crmcibn cle unu cor~epaiiiupara fi~bricwry comerciulizar calzodo t l curreras. ~ T h t o Rill coino S t e w Blue fueroil corredorc.s cle fondo y hait continuuclo rorriendo cle.spu6s dc. haber terminado el bachillerato. Como purte del curso de estrategici de riegocios, c~llosdesurrollurorl u i ~ plan parn Jicbricar y clistribuir culzcido dr carreras. A meditla que empezaron 11 cvttrur en eletalles, sus deseos iniciales de simplemerite cumplir con 10s requisito.s tld clirso fi~eroil creciendo. En ese tiempo, m u ) pocccs compuiiius c.on~ercirrlizrcbai~gmuinos zuprctos de currera y ellos sentiur~qur el mercado serirr receptivo. Cuuilrlo sir instructor 10s incitb, decidieroil probar bus ideas creundo la Corporacibn Zeus. Los herinunos ulyliilaron un locul, comprarorl el eq~eipcirnientob6sico y unu reserva initial de muterias primus. Su primer gran reto -11mcer p c J las zapaterius accJpturanu n y no probarlo-fie vencido urnplicrrnente porque 1e rc.gc~luronzuputillus p r o d ~ ~ c trluevo o grutis n una serie cle corredores de elite, yue dierorl su testimonio gratuitamentr. DespuCs de (10s niios pobres, la calidarl ( 1 su ~ product0 comenzb u pugarse y 10s ingresos se rluplirurorl ell 10s dos uiios aiguientes y siguieron creciendo en 10s urios subsigliientes hastu alcanzar u n nivel de alrededor rle 10s $50 millones. Los sistcmus cle Zeus hurl ec~olucionadob6sicainente en lu mrdirlu que la propiu cornpaiiia fue creciendo, desarrollundose nuevas aplicaciones en tanto se iban identijicurrdo nuevus necesidadrs. Dos uiios utrhs, un consultor ayurlb a In compuiiiu a estublecer l i r l p l u i ~de negocios (1 largo pluzo y u n plan eorrespondiente puree le gestibn cle 10s sistemus l fue el desarrollo de u n sistema de buse de informaciorr (111s). Cnu parte central d ~ WIS dr dntos colectivo.
'
SISTEMAS DE BASES DE DATOS EN LAS ORGANIZACIONES
preliminar La planifiraribn p r e l i n ~ i ~ tlr ~ a un r histrm;] (It- hast. tle (lato+tw rsprcifiro tirnr l q a r t l w a ~ i t r el proyreto clr planificat%n rstrat6gic.n tlr In 1)ast.thb dates. 1 ) r s p P s cjur r n ~ p i r z ar l pro!reto clr implrn~rntacihntlr la 1)asr d r dntos. 1 x 1 modclo g t w t d d r informacihn protlwitlo dnrantr la planifitwihn tlr la 1)asc tit, dutos 1.3 l-cvisaclo 4 mrjorado si rs nrwsario. D u r a ~ l t r rstr protSrso.la firma rct80gri n f o r m a c i h 1ja1-a~ q w n ~ larlas r prrgnntas siguicntcs:
1. ;Cuintos p r o p m a s de aplicar16n r s t i n r n 11so ) qnb funrionrs r t d ~ z a n ! 2. kQ116 arclnros estin asociados con cada una dr rstas aplic.;rcionvs:' 3. iQu6 n w v a s aplicaeionrs v arrhivos r s t i n lbajo dtwrrollo:'
Estudio de viabilidad es~ucliocle l'actibilitlad. I'artr drl C\ 1)HD qnt, tlrtrrn~inaIn vial)ilitlatl t~wn6111ica. trcnolhgica ! ol)rr;lti\a dc la 1)asr tlr tlato,s.
Un estudio d e viabilidad implica la prrparati611 tlr iln inforn~t-t - o las ~ ~caractrristira- signitw t(+:
1. \ial)ilitlatl trc1lol6~ic.a.i I I a j ttwdogi;] ; ~ d t w d tl~s~ronildr a para tlar sopoi-tt. a1 drsarrollo d r la hasr tlr tlatos:'
2. Ciabilidatl oprracional. i,Tic.nc. la cwmpaiiia prr5onal. prrsupursto ! r q w r t i c i dad intrrna 1m-a haecr clue u n sistrma rlr h a w d r datoi trnga Cute! 3. \ iabiliclad rcwn61nit-a. 1Sr p u r d r n identifir;~r105 lwnrfie1o5l i,l,os 1)rnrfit.ios cwstrarian rl sistrma q n r sr drsra? i S r p u r d r n medir lob eostos y 10s I)rnefirios?
vialdidad tecnolbgica. Drtrrn~inacibnd r la di+ponihilitlatI tle h a r t l ~ a w!rl software para 1.1 sisterna tle })air tie tlatos. viabilidad operaciollal. Deternrinacibn d r la disponibilidad de expcrticidatl j tlel personal clue sr nrwbita para el sistema dc haw de datos. viabilidad econ61nica. Estuclio tle wsto beneficio tlel sistrrna tlr hase tle tlatos propncsto.
El rstndio d r viahilitlatl tlr Zrns f n r rralizado por u ~ctpipo i i n t r r t l r p a r t a n ~ r ~ l tforal n ~ a d opor u n anahsta tlr sistrma, un ingrnirro, un rs1wcialista dc Marlwting (Mercudottvnia), u n suprrvisor d r l ) r ~ d i ~ ~ ~uni 6analista n, financirro j u n rsprtialista d r hasr d r datoi. Ellos estuvieron condnr~dospor un c o n i d asesor corporative de MIS formado por 10s dirigentes d r alto nivel d r cads iina d r las i r e a s fnneionalrs. El (*omit6asrsor ap-ohal)a cada wirnte. fase antes de q n r i r wmrnzasr m a n w \ a fasr. El f o t ~en ) cads fast f n r el bin
1. La yrimrra file u n estudio de viabilidad t e r ~ ~ o l c i g i para c a tlcternlinar si el hartlwart- y (4 software r s t a h n r n tlispositi6n tlr tlar rl senicio clue r r q u w i a n las nrcrsidadvs d r infornlaci6n. Esto inrluyh rl anilisis tlr si las capacidatlei ? rcbcnrsosesta1)an ya presentes en la rompaiiia o si hahria tlnr co~nprarlo.? de si beria nrrrsario u n mtrcnamiento. Esto 1lr\ 6 a la cwnclnsii,n d r qne todo r1 hardb a r e ya estaha presente tan Zeus. pero qiie habia qne comprar r l SGBD. 2. Viabilidad operacional. Esta incluyr r l analisis de las hal,il~dadrsy 10s rrquisitos laborales nrcesarios p a r a drsarrollar (4 sistrma. IJn anal~sisprrliminar snpiri6 cjue aunque Zens tenia analistas j programatlorrs rxperimentados y competentes, se rrqueriria una buena c h i , de entrrnanliento. Las neerklatles tle entrenarniento alcanzaba a los usuarios y a algim personal de sistenias. El personal de la ABD f u r idrntificado y entrenado previamente del prrsonal d r s ~ i ternas. 3. El estiidio dr la viabilidad econ6mica se convirti6 en un reto. Los brnrfirios esperados d r instalar una hasr de datos fueron dificiles de cuantificar. Esta rs justamente lina r x ~ w r ~ r n c .tiiap ~ c a .El equip0 del proyecto ahord6 este r r t o buscando las respurstah a ]as preguntas siguirntes:
DISENOY ADMINISTRACION DE BASES DE DATOS
E n lo rvfwentr a1 tsosto, los favtorrs mtis simplrs tle nictlir son el tlirlero q u e titwt. tlnr salir tlrl I~olsillopara 1)api-el hardware. el softwarr y la prograniati01i. .\unque t1stos costos no e s t i n r n su totalitlad sujetos a la grstihu tlr twntrol. la firiiia pudirra disfrutar tle aliorrar p s t o s si se rsta1)lrcen estintlaws aiitcLsde q ~ i c1 r softwarr (Ir Lase tle datos sr instalasr. p . r o ~ i oinstalando un lt.llgnaje tle twnsulta hi aritrs no se t i ~ n r nclatos suficirntrs q u r garanticen $11 11so rfectivo. El e q u i p d r l proyec.to taid)iCn 1ntmtion0 costos ocultos asociatlos (*onla iuiplrn~rntaeihn tlr la hasr d r datos. Estr c1s 1111 rrsnltatlo ti11ic:od r 10s twnl)ios impt:rt:rptil)lrs tlr la foruia t:n tlnr fnntionan los sistr~nas.P o r rjrmplo. r s ficil snl)rstimw~c.1 tienipo 11nt' s(' rlecesita para i n t r p r sistemas d r aplic*atiOnintleprndieutrs. ddicionalmrnte. c*anhios r n (4 softwarc* purden r t y u r r i r nivjoras no prwistas r n el hartlwarr p a r a podcr asegurar el rrntlimicwto adrt*natlo.Talrs t.arn1)ios tuiinrntan ripidamrnte lo.
Definici6n de requisitos definicio~id r ~~equisitos. l)rtr1111i11aci611 dt. 1,)s ret~uisitostlr infornlat+m tlr la.; ireas atlministrativns y f~~ncionales.
La definici6n d e 10s requisitm involucra a la dcfinicibn dcl a1ranc.r dc la 1)ase tlr datos, la idrntificacii~n10s rrquisitos (I(, informatibn tlr las i r e a s funcionalrs y admiriistrativas y la drtrrininacihn dc 10s requisites d r software y r l hardware. Los requisites de informatibn se drtrrminan por las rrspurstas a eurstionarios, entret~irtascon los dirwtivos y usuarios tle ofitina y 10s informtxs y formularies clue e s t i n r n uso actualniente. El niodelo cle inforniacicin gt:neral qiw sa crea durante la planificaciirn d r la base dc datos s r rxpandr a motle10s para cads una tle las i r e a r funcionalrs. Estas son las bases para el tlisriio tlrtallatlo d r la base d r datos clue se llevari a cabo r n la etapa siguirnte. Los rrsultatlos de esta etapa se drsrrihen en las cuatro tareas siguientrs. Aunque no totlaa las firmas siguen pasos itlhticos, hay algunas nociones hisicas clue e s t i n idrntif'icadas con una definiticin exitosa d e 10s retpisitos. E n Zrlls sr complrtaron las tarras siguientes:
1. El alcancr d r l sistema d e hasr de datos se definici analizando los rcquisitos de informacicin d r 10s dirrt-tivos. El rquipo tam1)ii.n consider0 si la hasr dr datos drhcria ser tlistrihuida o t:tmtralizada y quC iircesidadrs d r teleprocrso s r necrsitan. Esto produjo una 1)rrve narracicin q u r drscribia r l aleance del sistema. Se drcidiir clue una base tle datos centralizada s r ajustaha mejor a la mayoria d r las Arras funcionalrs. 2. I m rrquisitos d r usuarios a n i w l administrative y operational s r documentaron con nn modrlo tlr informaci6n grneralizado para rada Area funcional. a la p a r q u e las definicionrs de 10s sistemas d r aplicacicin necesarios para satisfacrr tales retpisitos. I,os modelos de informacicin necesarios p a r a cada i r r a funcional furr o n motlelos cont:eptuales tie datos (qur se disruten en el Capitulo 4). TamhiPn fueron doeumentados 10s rrquisitos d r 10s usuarios a partir dr narraciones dr las entrrvistas con 10s usuarios, informes y forniularios ilriprrsos (Figura 3.13) y respuestas a encuestas (Figura 3.14)
SISTEMAS DE BASES DE DATOS EN LAS ORGANIZACIONES
Corporation Zeus
N ~ i m e r ode orden
Pez, 27 (Granada)
Fecha 21 106197
1848
Orden de compra Vendedor
Fecha
7/07/97 Codigo
1
Nornbre
Departamento
Agente
Inventario oartes
compras
I 1 215 1 z a o a t o s I I IN.O Parte I Description I Cantidad I Precio unidad I 1 4831 1 Cordones 1 5000 1 .17 1 1 4922 1 P l a n t i l l a s I 1000 1 2.30 1
I
I
I
I
Mackov
AS.
Precio final
850.00 2300.00
I
Total
1
3150.00
SUS FUNCIONES D e s c r i b a su a r e a de r e s p o n s a b i l i d a d . i C u a l e s son sus p r i n c i p a l e s o b l i g a c i o n e s que r e q u i e r e n i n f o r m a c i o n de a p l i c a c i o n e s computacionales?
i D e que a p l i c a c i o n e s r e c i b e i n f o r m a c i o n ? i c o n cuanta frecuencia r e c i b e l a informacion? i Q u e e s l o que se hace c o n e s t a i n f o r m a c i o n ? LQue p r e c a u c i o n e s de s e g u r i d a d debe t o m a r c o n r e s p e c t o a l a i n f o r macion? 5. i P a r a que a p l i c a c i o n e s r i n d e d a t o s ? 6. i E s t a n c o n t e m p l a d o s cambios p a r a a l g u n a s de s u s a c t i v i d a d e s a c t u a l e s que i n v o l u c r e n a a l g u n a de l a s i n f o r m a c i o n e s a n t e r i o r e s ? P o r f a v o r , d e s c r i b a l o s brevemente
1. 2. 3. 4.
DISENOY ADMINISTRACION DE BASES DE DATOS
Diseiio conceptual clivlio ronrrptual. (Awati6ntld t w l ~ ~ c w ~ a t l v i ~ iel \ cone-cl~tunl [MI la l)aw clr clatos. CI
I,a etapa tle diseiio conrcptual c w a el esqnema c.onc.c.ptna1tie la hase de datos. Se tlesarrollan las eilIec*if~t.;rt.ioi~eb hasta el punto en qiw pu1A1 conwnzar la in~plementacibn. Durante rsta etapa se t w a n motlelos tlrtallatlos tle las kistas d e 10s nsuarios j se integran en un ~notlrlot ~ o n t q ~ t i itlr a l tlatos qiw registi-a todos 10s rlenientos colectikos qne se tlehen n ~ a n t c ~ n (.ti c ~ rla Ib,rse tlr datos. En Zt'm el tlisello c.oncq)tiial se centl-6 en el tlesarrollo tle nn motlelo clue reflejase la r t d ~ t l a c cle l la f'i1.111~l. El tlesarrollo drl motlelo file gniado por la inforinat~ihncontenitla en 10s manu'11es tie politica j procetlimirnto, asi como e n las guias y niotlelos generalizados par'i la* Areas func~onalesa partir tle la tlefinicibn tie requisites. A trav6s tie ~ ~ r o f n n d a s twtre\ibtas con los usnarios y un cuitlatloso exalnen tle 10s forinnlarios 11e la twmpafiia. se ~ ~ e r f ; ~ t * c i o t ~ebtos : ~ ~ ~motlrlos. oti Lnrgo se integraron como parte del disrfio twnceptual y tsti la hase para la implementacihn. c.oii\ic~tit~roti La t'lrea clel tnodelado tie diseiio conceptual fue un coniponente (*lavepara las ret*ointwtlac.iotws clue Ilacian 10s consultores del CVDBD. A1 priqcipio. Steke Blue, el vicrprrsitlc~ntt~ rjtmiti\o de Zcus. rstaba esr6ptico con esta t k n i c a . Este intrrrogh twidadosamente a la t.onsnltor~rLitltla Kelly:
Linda, iquC es lo que no esta bien en la formu como hacemos lus cosa.7 ahora;' Steve, tus rnCtodos nctuales esturl rnuy ligudos u la formri tlr prrlscir orientatlo ( I circhivos. Has heredado este rn,foque dr 10s primeros tirrnpos, cuundo la trcrlologia rro dejubu otra opcibn que diseiiar Ins bases de dutos como archiuos. Pero r1 hrcho es que simplernente 10s problemas no esthn rstrueturudos de esu rnanera. Tu necesitus url enfoque que sea nmcho mas natural. En otrus pnlabras. necesitus pusur de u n en,foque orientcido a1 u s p c t o jhico a un enfoque orienttrdo (11 nspeeto lbgico. Crnametodologici de diserlo corlr t p d permitiria lograr esto." "iihort~,espera u n minuto. Tul y conlo yo lo eritier~do,u n sistema de buse de datos relacioncll nos moveria de la orientctcicirljisico a la lbpieo." Dnu base de datos relacionc~lnos uyudarh en prirrwr lupar corl la rnanipulacibn de 10s datos, que ahora seran estructuras de datos. El rr~odelorelueionul corrlo tal es orierltado (1 archivos, puesto que las tablas relacionrlks son justarnente corn0 archivos. El rrlodelo relncioncd esth bien para trabcrjar con problernas que Sean relutivumer~tesimples. Pero p r t i hacer un analisis riguroso de 10s problernr~seorr~plejosde ilegocios, se necesitri unrr rnetodologiu mas poderosu. Por el10 es que yo recorr~iendoel diseiio conceptual dr busr rle dutos." ''iQu6 quieres decir con conceptual? G6
'6
7
SISTEMAS DE BASES DE DATOS EN LAS ORGANIZACIONES
75
Linda explicd: "La metodologia de diseiio c.oraceptuu1 turnbidn es llumacla modrlado sernhntico. Semhntico qtri~re&(ir signijicado. En nrlestro nzodelado capturarnos el signijicudo rle lob datos y las interreltrcwraes. EIIesta metodologia de diseiio perrsamos en tdrrninos de objetos en lugur (le (rrchiros. LOSol~jetosson cosas corno 10s representanteb de uerztus, 10s productos, 10s directicos, lus rentus y usi. d u n mas importante, prnsarno., err tdrrninos d~ interrelacioraes con rlombrr entre 10s objetos. Por ejemplo, un directivo clirige a un reprpsentarate rle rentus. El directiuo y ~l representunt~de ventas son objetos. Dirige es ILILU interrelacibn eratre ellos. Err tnrrto 10s problenaas se v u n hacierado mas complejos, el diseiio conceptual ayuda n pensur corr mus cluridad y a tener con mas claridad en nuese s .esttr me to do logic^ rzuestro sistru merzte llrz gran rzirnero de c o m p l e j u ~ r ~ t e r r ~ l u c i o r zSin terrw se volveriu sin renzedio erz algo nluy complejo." "Hien, estoy de clcuertln en que necesitnmos manejar problemus mcis complejos. 2Esto significc~q11e no podenlos m a r ~ r nsistema de gestibn de base de datos relacional?'' ",lo, no (piere decir rso. Piensa en P I modelo conceptual corno m a herranlienta pie crea diseiios claros que rhpidam~ntese pueden convertir en modelos r e l ~ ~ c i o n a de k s altu ( d i d a d . Tendrbs mejores sisternus, p r o dstos continuaran corriendo encima del sofiware rrlncional rxistente en 10s SGBD." "Purece corno si tuuieras sentadus todus las bases. Sigamos adelante con esto."
Primero, a1 ejecutar Ztws el CVDBD, el paso del diseiio conceptual consistia en la twacibn de modelos t:onceptuales detallados de las vistas de 10s usuarios en diferentes iirras funcionales. Estos motlelos juntos constituyen el nivel rxtrrno en la arqnitectura tres-niveles. Srgundo, estas vistas de usuario se integraron en un unico modelo conceptual, danclo entonces el esqurma de la base de datos a nivel t:onceptual. Con todo esto terminado, la gentr tle Zeus estaba lista para p a r a la implrmentacibn.
Irnplerne~1taci611 de la hase de datos. Las etapas rtywridas para camhar un tliseiio cwnc~~ptual a una haw tlr datos funtionando.
Dnrante la iniplementaciiin d e la base de datos se selecciona y atlquiere un SGBD. Lurgo el modelo conceptual drtallado se convierte a1 modelo cle implrmentaci6n del SGBD, se construye el diccionario de datos, se puehla la hase de datos, se desarrollan 10s programas cle aplicacicin y se entrenan 10s usuarios (Figura 3.15). En Zeus, una implemuntacibn comienza con la selrccibn y adquisicibn de un SGBD. Por varias razones rllos esvogieron tin SGBD relacional. El prbximo paso fue hacer corresponder el modelo concrptnal de la firma con un modelo de implementacih relacional ~isanclolos procecfmientos qur se describen en el Capitulo 5. Luego se definirron las estructuras tie la tabla resultante para el SGBD. Esto se hizo usando el lenguaje de definicibn clr datos (LDD) suministrado por el SGBD para desarrollar el diccionario tie datos. La construcci6n del diccionario de rlatos (DD) es un paso crucial en la implementacibn porque el DD es un repositorio central de tiefiniciones de estructuras de datos en la base de tlatos. Ya que Gste contiene informat:i6n sobre la autoridad de acceso, las reglas de seguridad y 10s controles respectivos, el DD actfia romo un centro de control del sistema. Este se usa para imponer 10s estindarrs de datos y eliminar 10s problemas de coordinaci6n d r 10s datos compartidos entre las aplicaciones. El paso siguiente fue cargar la base de datos, introduciendo 10s archivos de datos que ya tenia Zeus. Esto se hizo con programas de conversih que usaron el lenguaje de manipulacibn de datos (LMD, DML en inglCs) suministrado con el SGBD. ~ u e g oel equipo revis6 las vistas de usuario y las aplicaciones que usarian la base de datos. Para algunos usuarios se decidib clue un programa especial tie aplicaci6n escrito por el equipo de programacibn brintiaria la forma m6s simple de acceso a la base de datos con la menor cantidad de prohlemas de seguridad. Esto la mayoria de las veces es cierto cuantio se trata de oficinistas y otros empleadoc; que registran 10s negocios diarios de la compa-
DISENOY ADMINISTRACION DE BASES DE DATOS
Selecionar y adquirir un
Convertir el modelo conceptual en un modelo de irnplementac~on
Constru~rel diccionario de datos
Poblar la base de datos
Desarrollar 10s program= de aplicacion
Formaci6n a 10s usuarios
iiia. El equipo consider6 clue a otros usuarios era mejor formarlos en el uso del lenguaje cle manipulacibn de datos para que acredieran directamente a la base de datos. El paso final fur desarrollar procedimientos para usar la base cle datos y estahlecer las sesiones de formaci6n en estos proc:etlimientos y las tlemis faciliclades ciel sistema.
Evaluaci6n y perfeeeionamiento del esquema de la base de datos La evaluaci6n implica entrevistas con 10s usuarios para determinar si se han omitido algunos datos necesarios. Se hacen 10s camhios que se necesiten. Con el tiempo el sistema se mantiene, introducitndole mejoras y aiiadiGntlole nuevos programas y elenlentus tle datos en la medida clue cambian y se amplian las necesidades del negocio.
Construir capacidades en el desarrollo de la base de datos Como muestra la Tabla 3.1, la mayor parte de este libro esti dedirada a ayudarle a desarrollar capacidades en la ejeruri6n del t i d o d r vida del desarrollo de la baqe de datos. Por tanto, la parte I1 cubre el diseiio de haw de datos. Los Capitulos 4 y 5 describen el prcrcescr y la metodologia del modelado conceptual de datos, que es esencial para una construcci6n exitosa de una base de datos con fundamento l6gico y muestran c6mo el modelo ronceptual se puede convertir a un modelo de implementaci6n relarional. La Partr I11 se
SISTEMAS DE BASES DE DATOS EN LAS ORGANIZACIONES
w n t r a en la ii~iplenientac.iOnd r 1)asrtle tlatos relacionales. Los Capitulos (1: 7 , 8 y 9 introclut ~ : n10s lrnguajes relariot~alrs.tri,rit.os y aplicatlos y analizan las faeilitlatles disponibles en 10s sistemas t~lirnteiwrvitlor.El Capitdo 10 t*oncluyecon una rxplicaribn del modelo fisico. La Parte IV amplia el trma de la i~nplemen~acibn d r I)asrs d e tlatos, tliscutirntlo la administrat~ihntlel entorno de la hasr d r datos. Esta trata con 10s trmas de grstihn. tales conlo la atlttiinistrat~ii,ntle la base d e datos, la segwitlad y la intrgridatl (Capitulo l l ) , las I~asesd e tlatos ciistribuitlas (Capitulo 12) q n r fuc-run ya mencionadas en este capitulo. La seleccibn tle u n SGBD sc. trata en el Capitulo 13. La Parte V coutirnc un t*apitulodetlicatlo a estudiar temas avanzat-los d r sistemas 1)asadcrs en r l c:onocimiento y sistrmas orientatlos a ohjrto (Capitulo 14). La parte final, la P a r t e VI, cubre 10s modelos de bast. tlr tlatos lega1t.s. r n rrtl (Capitulo 15) y el jeriirquiro (Capitulo 16). E n la metlitla rn clue se wtudir rstr material sr drsarrollarin nuevas t.apatiiLitles r n el diseiio tlr have de clatos y en la m a n i p u l a c i h d r 10s datos que serrin rsrnciales en u n rntorno d e lrase tle datos para 10s nrgocios. Tambikn sr comprentlerin 10s aspectos tle pestihn que afertan significativamcntr muchas de las dwisionrs que tienen clue tomarse con rrlatihn a los sistemas de bases d r datos. El material tlr apoyo que se d a en rstr lihro le i ~ y n d a r ia coniprender el contcxto de ltrs sistemas tlr bases d r datos en el muntlo clr 10s negotios de hoy. A1 adquirir estos conot~imientos,comprendirndo 10s asprctos claves tlr la g e s t i h y familiarizindose con el contrnto tle las hases de tlatos, el usuario e s t a r i rquipa(lo para t l r w n ~ o l v e r s een 10s entornos avanzados d e 10s sistemas d e g t ~ i h dn r informaci6n.
En este capitulo hemos rxaminado el contexto organizational en el cual funciona u n sistenla d r hase d e datos. E n la primera mitad del capitulo se vio clue el concepto Or comyartir los tlatos sr puede ver desde tres persyectivas -entre diferrntes i r e a s funcionalrs. entrr tlifrrrntrs niveles de direeci6n y m t r r diferentes localidades geogrificas-. S r diwutih el taonceptode planificacibn estratigica tle la ABD y se indich cbmo esto estahlece 10s fundamrntos p a r a todos 10s sistemas d r hases de datos a usar en la organizaci6n. Lue,go se examini, la funcibn de administracibn de la base de datos, destarando la responsabiliclatl tle rstr grupo en: (1) el diseiio fisico y lhgico d e la base de datos; (2) la formacibn a 10s usuarios en la rstructura y en 10s procedimientos requeridos p a r a accrtlerla y actualizarla; (3) la proteccihn d e la base de datos ante un ma1 uso, accescr inapropiado y daiios accidentales; (4) r l aseguramiento tle que el sistema ccrmo u n todo funcione a u n nivel aceptable. P o r ultimo se analizaron algunos de 10s riesgos y costos de u n enfoque de bases de datos en una organizacihn, incluyendo 10s conflietos organizacionales tle compartir 10s datos, 10s
DISENOY ADMINISTRACION DE BASES DE DATOS
fallos potencialrs en 61. desarrcrllo del proyrcto de base de datos, ma1 f'uncionamiento canel sistrma (11. 1)asc. de tlatos y rl daiio consiguiente en la base d r datos, el ineremento de 10s costos y la nrcrsidad d r tener un personal sofisticado para el tlesarrollo de la base tle tlatos y para su operacihn. La ultima mitad del c*apitulo sc dedicb a la disc:usihn del drsarrollo tlc la I ~ a s rtlc datos. Sr explich la arquitrctura de tres-nivrles dr ANSIISPARC. Taml~ibnsr contrast6 el enfoque orirntado a funcionrs drl ciclo de vida tradicional en el drsarrollo d r sistemas (CVDS) con el rnfoqur orientado a datos del ciclo d r vida drl drsarrollo d r la base dc tlatos (CVDBD). Sr tlestacaron 10s p s o s tlel CVDBI) y sr deseri1)irron las actividatlrs incluidas en cads paso. La arquitrctura de trrs-niveles tlescrilw nna hase de datos como consistente clr 10s nivelrs c:oneeptua17externo e intrrno. El nivrl concrl~tuales rl esquema 1hgic:o qur define a la hasr de datos twmpleta desdr la prrspectiva de la 01-ganizarihn, El nivrl rxterno twnsiste en las diferrntes vistas, mrtliantr las (wales 10s nsuarios a lo largo cle la organizaeihn entirndrn. accwkii y actnalizan la base d r datos. El nivrl intcrno es la definicih fisica d r la base de datos rnediante la c u d el SGBD controla y actualiza la l m r tlr datos. El CVDS traditional vr a 10s sistrmas destle el puuto de vista tle las funciones qur Pstos realizan. Puesto clue los rlrinentos tle datos tienden a ser m i s rstalrles qnr las funciones, la estrwtura d r la basr tle datos tleljeria drsarrollarse antes clue el drsarrollo d r sistrmas funcionales. Un sistema de basr tle datos desarrollado adrcuatlamentr sirve de 11aw para muchos sistelnas funrimales qur puedan hasarsr en PI. El CVDBD consta d r scis pasos: p1anific:acihn preliminar, rstudio de viahilidad? definicicin d r reqnisitos, disriio conceptual, implm~entaciGny rvaluacihn y mantenimiento d r la base de datos. La planificaci6n ~weliminartienr lugar durante la planificaciOn estratbgica de la l m e de tlatos. La informacihn del plan de la basr de datos sr rrvisa y sr presenta como partr del CVDBD. Se llrva a calw el estudio de via1)ilidad para drterminar la viahilidad tecnol6giea, operacional y eeonhmica. La definicihn de ret~uisitosdetrrmina los reqnisitos de informacihn para la direccihn, asi como para aquellas Arras funcionalrs qur se sirvrn de la base de datos. El diseiio cont.rptua1 trrmina en un comprrnsivo modrlo conceptual de datos, que nos (la un esqurma l6gico detallado de totla la base d r datos. Durante la implernentaciim puede adquirirsr un SGBD. el diseiio concxptual se conviertr a un diseiio de implementacihn, st. construye el diccionario de tlatos, sr carga la base de datos. se desarrollan 10s programas tie aplicaciGn y se entrena a 10s usuarios. DespuPs tle la implementacihn se evali~ala base de datos como tal para determinar si verdaderamente curnplr con las necesidades de 10s usuarios. Se llevau a cabo las mejoras necrsarias para perfrcacionar la f o r n ~ ade usar la base de datos y para atendrr las necesidades de 10s camhios qur se produzean en 10s negocios.
1. Defina con sus propias palabras cada uur) de 10s t6rininos siguientes: a.
Base de datos
b. Procesamiento electrhnico d r datos c.
Sistema de informacihn de grstihn
d. Base de datos centralizada e.
f. g.
h. i. j.
k. 1.
Ciclo de vicla del drsarrollo tlr la base tle datos Administracihn de la base dr datos Diseiio fisico de la hase de datos Restricci6n de valor Arquitectura tres-niveles Nivel interim Planificacihn preliminar Viabilidad tecnol6gica
SISTEMAS DE BASES DE DATOS EN LAS ORGANIZACIONES 111.
11.
Drfinicion tle recjuisitos Implmwntatihn d r la haw tle datos
2. Analice las \rntajas !tles\rntajas d r ronipartir 10s datob para: a. Difrrentes irvas fllncionales h. Difrrentrs locwiones grogrifit.a~
3. 1Chmo se usa el nivel de transaccionrs d r datos para soportar las nrc.esidades tlr informaci6n de 10s nivelcs d r gestibn y rjecutivos? ,QuC otras (.lases de informac*ibn p n t ~ d mser net:esarias para la toma tie dccisiones estratSgicas'?
4. t2nalit.r 10s asprrtos signirntc:~del proyrcto tle planificacihn vstratPgica d r la h e tle datos: a. Soportr para la direcc:ibn rxperimrntada h. Comf)osiic:i6ndrl ecjuipo tlel proyecto c. Longitnd drl proyrcto d. Alcancr tiel proyeato e. Rt~sultadoclrl proyccto f. 1ntc:rrrlac.iOn del1)royecto con el tic.lo de vida drl drsarrollo cic la hasr d r datos
5 . ~ C u ars l la rrsponsa1)iliclad de la administrarihn d r la 1)asc. de datos con resprcto a: a. Diseiio conc:eptual tle la base tle tlatos 1,. El centro tle 1nformac:ihn c. Integridad de 10s datos d. Rendimirnto dcl sistema de h e de datos
6. Indique todos 10s inconvenirntt:s potenrialrs que purdaiimaginar asot-iados a la implrnirntaci6n y utilizaci6n d r un sistrma d r hase d r datos. Clasifit1urlos en funcihn dt. s i son arrirsgados o caros. Expliqur por qni: los c1asific.b asi.
7. Explicjue las difermrias entrr 10s niveles conceptual
j
externo en la arquitec-tnra de
tres-niveles ANSIISPARC.
8. Expliqne el signifitwlo de la oracibn: "En realidad la hasr tle datos sblo rsiste a1 nivel interno [ANSI/SPARC]".
9. Analice las diferrncias entre el desarrollo de sistrmas orirntados a funcionrs y el desarre~lltrde sistrmas orirntados a datos. i P o r quP rs el sistrma orientado a datos m;i propicio para permitir tin amplio rango d r funcionrs?
10. Indiqnr y tlrscriha l)revemrnte ratla iino de 10s seis pasos en (4 drsarrollo drl eiclo de vitla d r la haw de datos.
1. Haga correspondrr 10s tCrminos siguientrs twn sms definiciones: -sisternu cle apoyo a la tonaa de decisiones a. Dondr 10s usuarios puetlrn encontrar facilidades de c0mputo. -ucceso sblo pccra recuperucicin h. P o r c i h restringida dr la base d r datos. -pla~uficaci6n de la base de dutos (.. Multiples sistrmas de hasrs d r datos eonectados por lineas de comunicaci6n. --viabilidad operucional d. Centrarsr en el anilisis de los datos usados por las funcionrs. -raizjel externo e. Creacicin de un esquema d r nivel conceptual. -diseiio conceptunl de base de drctos f. Actualizaciim no permitida.
DISENOY ADMINISTRAC~ONDE BASES DE DATOS
-z.istu -i~[tegrucibn de 10s datos -ciclo
d e vitlu del rlesurrollo del sisteinu
-c~nfoqw orientado u Jii11cione.5
~ de rlntos rlistrihuirlo -sistcvnc~ ( 1 I)(IP~J -esqmmu -rc~ntro dc~ii~formacihir
-estdio
rle viuhilidud
Esfuerzo estrat6gic.o para dvtcwninar las ~wcesidadesde informacihn a largo plazo. Colnl~inar10s tlatos para uso ctr~uhn. Ttler~tifica10s c h w n t o s , interrelariones y restricciol~es. Nivd c~strnrturalclue define el esquema lbgico. Nivel ehtrnt.tnral q u r drfinr \-istas tlr usuario. Prwisihn 4 1-onsistrncia tlr 10s \-alorrh. P r o v r r infornlacibn cstratkgica. Define la estructura 16gic.a d r la 1 ) a (lc ~ tlatos cwmplrta. Estudio costo-lwnrficio. Lin l m w e w p a r a rl dcsarrollo tlr sistr~nas. 1)etermina la dispo~~il)ilitlatI tle rxperticitlatl y lwrsonal. Vistas ( I t s lln hisirma tlrstlr la l ~ r r s l ~ e c t i v a tlr las fun(-ionrsclue t l r h realizar. Determina la factil)ilitlatl te(-nol6gica, operacioual y e c c ~ n i , ~ n i t ~ ~ .
2. Las Areas funtionales tle I P D iurlnytw In\ entario. luarheting. Ientas, conlpra, c o w talditlatl. in-owsamiento tle petlitlos y t.\aluaciOn tlel producttr. l t l r n t ~ f q u elas Arcas fnr~cionalesq a e (1)necesiten tlatos 0 (21 putlieran m a r 10s tlatos coutenitlos (.n ratla urlo de 10s sipuientes docmnentos. E\plique en cada c a w por (pi.w ntwsitan 10s datos o cbmo podria usarlos: a. ITn prtlltlo a un tlrpartan~rntoen C a r ~ a t l di e 100 vasos tlc cristal. 1). ~ T I I lnf or111vq w ~ ~ l u t ~ las s t l \t cntas ~ y dcvolucioncs tle protlurtos lm-a c.,itla uno tle 10s reprrsrntatikw tlr l r n t a s en la regihn de Anlbrica Latina. c. I n informe q u r muestre 10s canhios en la cantidad en mano dc catla protluc.to en 1111 peritdo d r trrs mrses. d. ITn infimnr que murstre la (*antitladen mano artual tle (satla produeto, junto con el t.osto pronwtlio y el precio artual por catla prodlieto.
3. Claslfique 10s tipos siguientes d e informacibn s e g h sea ruis significativa a1 nivel operational. tlireccibn intermedia o r~ivelejecutivo: a. La pol~lacii~n tle Clark County es tle 500.000 y sr h a duplirado en cada m a de las i~ltitnastlos tlbcatlas. b. La tleutla tle los Smith r s t i pasatla en (10s meses. r. Beck)- Daines se cash y ahora su segundo apellitlo es Martinez. (1. G~llen.... e. iEl cheque tle 'Kilson fur tle nurvo incol)ral)le! f. Los costos d e reparaciOn para el eqnipamiento viejo de la fibrica dc Charlesville estin p o r 10s aires, es imposible encontrar ni~evosempleatlos y 10s rostos d e transporte tlmtlr y hacia Charlrsville comienzan a ser exorl~itantes.
4. En nna organizaci6n geogrificamente distrihuitla. iqub tipo tle informacihn seria necesario centralizar y c u i l necesario localizar? a. Las leyes sobre impuestos salariales de nn pais. h. El pago total del salario mensual tle una filwica. c. Las vrntas ruensuales tlr una oficina tle ventas p r linea de produrto. d. La7 ventas semanalrs tlr una oficina tle ventas por representati\tr de Frntas.
5. Analice las estrategias siguientes de proyectos de planificacibn de bases t k datos: a. El equipo del producto gastb un aiio con~pletoentrekistando al menos a un oficinista por cada unidad tle procesamiento en la twmpaiiia.
81
SISTEMAS DE BASES DE DATOS EN LAS ORGANIZACIONES
1). El rclnipo tlrl proyrcto invcstigi) c~lidatloian~entr la iiiforniatihn q u r sr necrsita tlr la ofirina niatriz. p r o no gasth t i r n ~ p oen las ofitinas ran1alt.s porqur rstahan s i ~ l intrrrsaclcrs t~ r n la inforniati0n d e alto ni\ el.
6. Clasihrar r n catla uno tlc 10s piiiitos siguirntrs. tlriitro dt*las t a w a s d r atlministracih y 1-cwtlin~irrito. d r I)aars tlr clatos tle t l i 4 i o . forinaci6l1, srgi~ritlatlIintt~gritla(l a. hltrstral-le a 1 1 t h Blo~nquistchmo twnstri~irm a twiisnlta pard itlentifiwr PI porceiltajr ~ ~ r o n i r d (I(. i o tlrvolueionrs tlr catla prodlit.to. h. Rrtlucir r l tirmpo dt. rcipiwsta a la rntracla tlr n n ~ ) r o d n c t orii doi srgundos. c. R r h a c r r las twntrasctiias para eatla usnario dcl i i s t m ~ a . (1. Kelationar tlircctaint~ntecada \ r n t a t80nr l rcpresentantr tlr I r n t a i tpir la hizo.
7. Itlrntifirar las dif'ienltades potrntialrb en las iituacionei iipuirntri: a. 1111 hrra fnnrional r i t i r e a c h a clue otras areas ac*t*ettana i n i datos. 1 . 1111 t l i r r c t i ~ orul)rriinrntado inicia un ~)royectode 11aw tlc datos sin r s t a r eoni~ ~ l c t a n i n iet or n ~ r n c i t l ode i n valor. r . St, ha caido la conlputadora qnc controla liila 1)air tlr tlatoi tvitralizada. d. Un iiitcina r n linra necesita un titwipo tle respuesta m i i ripitlo tint. el q i ~ pi~rtle e 1xo\wr 1' SGBD. r. El iniico administratlor tlr hait&(16, datos d r lina twnpaiiia t.11 una prtpeiia ciutlatl ha pasado a t r a t ~ a j a rpara nna coinpaiiia en otro Estatlo.
8. I(lt~ntifiqnrloa nihrlrs 4NSIISPARC tle catla 11110 d r 10%11nntoi signirntei: a. Un indicr qur nos tla la tlirc.rc.ii,n en tlisco tlr cads rtyiitro m un arrhmo PEKSON 1L. h. Una versibn partial tIc.1 a r c h n o P E R S O h 4 L t1uc contitanr sOlo rl ntrnibrr y la tlirrcci6n tlr cada rml)lt.ado. c. Una conibinacihn tle 10%datos tlr las transaccionrs tit. \tSntas! 10s tlntos tle 10s clirntes clue niurstra rl nlimrro dc prodncto del produeto rnthtlo ! el niirnero de clirntr. a l l n o n h r r j sn dirrct*i6n,p r o no muestra el n1'11nrrtr tlrl rq)resentantr de ventai. d. 1Tn arrhivo que d a la tlirrc~*iOn e n tlisco del registro tlr nn empleatlo jnnto con la tliret.t.~ont- (TI disco d e 103 regiitroi tle todos los einpleadoi elepend~entei. r. Ilatos q n r n ~(Ian i 10s nomhres de totlos 10s arc.hi,os y campos en la h a i r d r datos jrlnto t80nlai dcfiniciones d r las interrelationei r n t r r 10s campos r n 10s diferriites arrhivos.
,
9. Itkiitifitpr las finitiones tlel iistnna d r informaci0n clue p a r a llevarse a cabo puetlrn nsar loi conjiintos signientes tlc clementos d r datos: a. P a r a m a tirncla por d e p r t a m r n t o s : nlimero del producto, prccio regnlar, precio de venta, costo, c.anticiat1 vendida, departamento. representativt~tir lentas. tarifa tlr coinisi6n, suprrvisor. (Ejtmplo: Uzando r l precio regnlar. el prvcio de venta y el costo, se piiede ealcnlar la ganancia y el prrcio de venta.) 1 . P a r a una firma consultante: consultante, rango dcl consultantr. la tarifa horaria por rango, cliente, t i p d r cliente, horas clue un t*onsultantr trabaja para nn t-lientc particular. fecha en lab clue se aplican las horas farturatla*, t i p de pro~ e c t olider . dc proyrcto. (Ejemplo: Usantlo consultante. rango, tarifa. horai trade el total facturado por el trahajo d e u n (-onbajatlas y fwhas, sr p ~ ~ e calcular sidtante para un t.licnttben u n nirs.)
10. i E n qui: paso(s) tlrl CYDBD podrian llevarsr a caho cada uno d e 10s puntos siguirntrs? a.
Ohtenrr un t4ltwlo razonal)le del costo tle operaci6n d r un sistema de base d r datos.
h. Determinar 10s art.hivos que se utilizan para el informe de ventas trimestral. c. Determinar si la o r g a n i z a c i h tiene gente que e s t i t6cnicamente calificada para cliseiiar y administrar una hase de datos. d. Drterminar las funciones qiir se llevan a cabo por el sistema d r curntas pagahles. e. Introducir 10s datos m la 1)asr de datos. f. Identificar la informaci6n cIue necesita el administrador del departamento de adquisicihn rrlativa a la calidad del servieio de los vendedores.
DISENOY ADMINISTRACION DE BASES DE DATOS
g. Ileterminar 10s camhios nccesarios para 11:rcer rnis efectiva la hast: tle tlatcrs. h. Especificar la estructura conceptual wmp1t:ta de la h e de clatos. i. j.
Escrihir y verifirar programas tle aplivacibn d r 1);rsc cle datos. Deterrninar (pi. funciones t:1 sistrma tie lmse cle datos realizari en c d a Area. k. Determinar t:uAndo la tet*nologia clr las t:omunirat:iones es sufitientemrntc poderosa para hacer que un sistrma tlistrihuido pot- todo el mundo sea pr&t*tico.
11. Expliqur rirmo la informaciOn t:onccrniente a las aplicaciones artuales y a 10s archivos t p r w han ronfornlado tlurantr la p1anific:acihn prcliminar plieden usarse para auxiliarnos a determinar 10s recpisitos fntnros de informatihn.
12. Indique ltrs formularies prrimpresos clue pudirran usarse en ratla uno d r 10s siguientes rasos: a. Una c:onipaiiia de scgnros. b. lJna compafiia tlr electritidatl. r. Una tienda por drpartamentos. cl. Una univrrsidad.
1. Entrevistr a un ejecutivo tle una gran organizarihn qut. haya rontlucido rt.t:irntenirntr un e s t u t h dc planificat:i6n rstratkgica d r una base d r datos. Determine las rt:spuestas a catla una d r las siguientrs preguntas: a. iCual fue la t:omposici6n drl e q u i p drl proyecto? 1Cuintos mirmbros tuvo t:l rquipo y cuil fue su experirntia prcrfksional? i F u r designado un twnsultante como asrsor del equipo? h. i C u i l fue la naturalrza dcl director general encarpado drl proyecto? ~ C r r i Gstc a en el kxito potrncial del proyrcto o estaha rst:+tico? i,Quk influrncias tuvo sn comrtido en la artitud d r otros empleados? r. ;,Cuil fur el resultado del proyec,to'? 1% comprb un SGBDY ;,Se diseiih r instal6 una nurva l m e de datos? 1A cuintas hrras funcionales y nivel(:s tle tlirecciirn da servicicr la l w e de datos y sus programas tle aplicaciirn? i,Fnrron consideradas 1)asrs tle datos distrilmidas? iCnilrs son 10s planes d r h s e s de elatos futnros de la orpanizaciirn?
2. Escriba un articulo de invrstigaciirn solwe la diferencia entre un administratlor d r tlatos y un administrador de hase de datos. Detrrrninr si en la pi-it:tira la mayoria de las organizacicrnrs distinguen entrr 10s dos.
3. Escriba un articulo d r investigaribn soLrr una haw clr datos que haya frat*asado.Trate de determinar por qu6 fracas6 el proyecto. iQuk rirt:unstantias existieron en este caso que putlieran no existir en otros casos? iQuk leccionrs se putden extraer d r la experirnria de la grnte en el proyrcto?
4. Escriba un articulo de investigaciirn de 10s aspectos que twnducm a1 infornie .ANSI/ SPARC sobre arquitertura de tres-niveles. ;Pol yuC el comitC ret:omentlir estos nivrlrs? i,Cuiil fue el contrxto Iiist6rico tle este informe? iSe tlrjaron algunos asprt*tossin resolver?
5. Examine 10s archivos y las funciones de un sistema d r aplicacibn instalado. Disruta el sistema con algunos de sus usuaricrs y determine si ellos qurrrian qur el sistema llevase a caho otras funciones. Identifique club, elementos de datos drl sistema actual y cuiilrs rlementos d r datos nuevos sr requeririan para las nuevas funciones.
6. Investigue sobre el concepto tie ciclo de vida drl tlesarrollo de la base d r datos en lihros y revistas actuales. Trate de identificar versiones del CVDBD clue sean diferentes a las que se han dado en este capitulo. ;Q& tienen estas versionrs en comun? Tratr de sintetizar las diferentes versionrs en un iinico !. genkrico CVDBD.
P
A
R
T
E
DISENO DE BASE DE DATOS
E
n la parte 11 se tratan 10s prohlemas de definicihn de requisitos, diseiio Ihgico y diseiio d r implemmtaci6n en el ciclo de vida del desarrollo de la haw dr datos. En la medida que se vaya avanzando en el material de esta parte, el usuario i r i desarrollando habilidades en el anilisis de requisitos, disfio conceptual de hase de datos, normalizacibn e implementaci6n del modelo relacional de datos. En el Capitulo 4 se introduciri el diseiio conc:eptual y se v e r i c6mo se pueden usar 10s ronreptos de interrelaciones entre ohjetos, atrihutos y generalizaci6n y especializarihn para crear modelos d r informacibn. Tamhiin se aplican estos principios para disriiar soluciones de prohlemas mis complejos. Se discuten y aplican ttcnicas sofistic:atlas d r anilisis y diseiio a una variedad d r ejemplos prirticos en una amplia gama cle situariones d r negocios. El Capitulo 5 introduce el modelo relacional y explira su significaci6n en la historia del proresamiento (it.base de datos. Este es el modelo predominante en los entornos d r negorios de hoy dia para la implementaci6n de nuevos sistemas. TamhiCn se define e ilustra rl proceso de normalizaci6n de la base de datos y la conversih drl modelo conceptual.
PRINCIPIOS DEL DISENO CONCEPTUAL DE BASE DE DATOS
Realidad, definicion de requisitos y modelado conceptual de datos Realidad y rnodelos Modelos conceptuales de datos Fundamentos Objetos Especializacion y generalizacion Relaciones Cardinalidad Atributos Claves Especializacion/Generalizacion y Atributos Ejernplos Ejernplo I: El modelo de datos de un banco Cardinalidades Especializacion de 10s clientes del banco Ejemplo 2: Huerto fruticola de Stratton Ejemplo 3: U n problerna de Iogica Construir modelos conceptuales de datos a partir de 10s informes existentes Caso: Servicios de Consultoria Manwaring Estimados Recepcion de efectivo
Desembolso de efectivo U n modelo de datos para las cornpras U n modelo de datos para facturacion de proyectos Agregacion Ejemplo 4: Cornpaiiia constructora Premier Ejemplo 5: Huerto fruticola de Stratton (continuacion) Ejemplo 6: Servicios de Consultoria Manwaring (continuacion) Modelado conceptual de objetos contra objetos fisicos El problema de una biblioteca Crear el modelo de datos de una Biblioteca Rastrear las piezas fabricadas Objetos conceptuales para 10s servicios de consulta Integracion de vistas: U n ejemplo Resumen Preguntas de comprobacion Problemas y ejercicios Proyectos y cuestiones profesionales
PRINCIPIOS DEL DISENOCONCEPTUAL DE BASE DE DATOS
85
laramentr c-atla nna de estas ncwsidadrs tle los usi~ariospnrtle satisfat*cwt* (*onIln .sistvma tle l m e cle tlatos. Taml)i(.n csth c l a m q n r c ~ o tres s ~isiiarios tienell newsitlades clifel-enttbs. Es Ihril ver qne hay hastante solapamicmto en los t i p d r tlatos clue los trvs ~isiiariosrequicrcn. La tarea tlnrante la tlefiniti6n tle lob rcXqnisitos y el clisefio conceptnal ibsidentificar las nece?;itlatlt.s 11Asiras tle clntt~sj crear los motlelos ronwptnales de low tlatos clue nos ascyirrn registrar 10s datos newsarios y las rcblationes entre 6stos. Despnbs tlc leer este c a p i t d o , el 11slial-iot l d w ser rapaz t l i ~ llsar las t6cmit*as basicas tle modelatlo concytiial tlr tlatos p a r a la c ; q ~ t i i rtle ; ~ los tlatos y las relariones entrcbrllos inherentrs u t w d t a s simples de los nsilarios y a 10s informt.~); formdarios existentes. Mostrar r0mo s r 1111edeiic.rclar ronjuntos d r o1)jetos agregaclos a partir tlv las relationes rxistcntes y rhino Gstas lunrionan wino ronjnntos tle ohjetos qut. t i e n r l ~ y q w partiripan m las rrlaciones. ati-il~ntt~s 1)einostrar cbmo las nwrsidades tie informacii~nclue ocurl-en con frrc.uencia vn 10s negocios se ~nicclensatisfarer nsando estos conceptos tle nioclrlatlo tle tlatos.
Realidad, definici6n de requisitos y modelado conceptual de datos IJos p r o r e ~ ) s &tltfinicihn cIe los rc.qniiitos tlel tliieiio concvytual euigen itlrntifit.ar la* cxigenrias de la iiiformaci6n d r 10s n s ~ ~ a r i yo sre1)reientar 6stos eri un motlrlo I ~ i r ntlefinido. P a r a Ilcvar a t - a h esto nt*resitan~os o h i c r ~ a cr d a t l o s a m e n t e la naturalezu tle lai coildicionrs d e los usnarios > el significatlo preciso rle la representari0n Ihgica tlr lo* miimos.
Realidad y modelos modelo. Una r c l w e w n t a ~ i i tle ~ ~la i ~wlitlaclquc r e t i e ~ ~ r sblo drtalles sclcccionotlos.
i.()nG cbsn n niodelo? Un modelo t+ una represrntnrihn cte la rcalidad q u e wnserva s61n los dctallrs relevantrs. P o r ejemplo, twnaidcrrmos una transawihn I)ancaria tal corno nn tlep6sito en una rnenta corriente. Ccrntatlnria d r s r a t:onservar eivrtos tlrtalles (niimero tle la clientn. nionto d r l ckphsito. tienipo, feeha? niinirro del sajero) e ignorar otros (la5 palaI ~ r a st ~ n vsr lian intrrcamhiado dnrantr la transaccihn. el njimcro tle gente en el hanco. el niirnero clr personas cjne t,stal)an esperando en la cola. la rnilsica q u r se e s t a l ~tocantlo en el aadio local. las condiriones d r l clima fuera del banco, etc.). La rralidad involurra UII sinn i m e r o tlq detalles. pero contaduria considerarii a la rnaytrria tle rllos irrelwantes para In transat:c:ihn. De motlo qne u n motlrlo, desde el punto de vista ck Contaduria, conservarh ' shlo aquellos drtalles que Gsta considere relevante.
DISENOY ADMINISTRACION DE BASES DE DATOS
awt-iar ( ~ n a p i isotiar . I ~ I I I ~ I I I ~n S n t
(.on t.l(wwtos tw otra t.~Ft~t.;~.
i
PIKsq)uesto, algunos detallcs consit1t:rados irrc.levantes [lor 1111 usuario puetlen s r r n ~ u yimporta11tt.s para otros usuarios. Iniaginemos, por ejemplo, clue se c s t i tles;~rrollando un sistrina tle base tle datos p a r a un restaurantr tie conlitla ripitla. Lns t:onclitiones d r l t.linia puetlt:n s r r asprrtos sipifirativos tle la r t d i d a t l tlvl aclministratlor tlel rtsstaurantt., pt:sto t p L U I I &a frio tlelw ofbrtar un c*onjuntotle ensaladas h a s t a r ~ t rtlifercwte tlel tle 1111 tliu rilitlo. Corno resultatlo, el aclministratlor drhe tltasear potler trner en rnchr~ta estos t.anI~iostk t.liina y las brtlrrw clue han sitlo surninistratlas tte at*uerdotaonrsto. El niimero de personas e q ) t v x d o en la t d a puetle scr otro asperto iniportante p a r a la realidad tlel athuinistratlor. pnesto clue bstv newsita esta inforrr~atihnpara poder 1dmifit.ar la (.antitlad . nsuarios d r t*;rjeros y rnininiizar el ticmpo tie vspera (It, nn t.lieiitt:. P o r lo t a n t t ~ tliferentt~s 11uedentrner tlifcrentrs motlelos tit: la realitlad. I!na h a w tle datos intwrpora un niodrlo tte la realitlatl. El SGBD atlministra 1,'I I lase ~nanipulnr10s tlatos clue tle dates de modo clue vada nsnario pnt~tlaregistrar. atwt1t.r !~ cvmstitu!eii s11 rnot1t:lo tle la rcalitlatl. Manipillando 10s tlatos en nna i11nl11iau r i e t l a t l (ItCormas. 10s usuarios pnetlm o l ~ t t w r rla informacii,n nrrcsaria p a r a twntlutir U I I e~ n i p r t w (.on bxito. P o r lo tanto, 10s niorlelos son herranlirntas potlerosas 1)ara eliminar los detalles y sc:onq)rentler la rralitlatl tle 10s nsnarios int1ividualt.s. irrt~le\antt~ a una hisMotlelar la realitlad re en mnchas maneras similar a reso1vt.r un p r o l h ~ tle torieta. Arnhos rrtluirren que nos tlesprentlamos de 10s tletalles para w e a r 1111rnotlelo .'twrret-rltw~entos to" tle m a portiOn de la realitlatl. Esto signifira qntLsr t l e h asotiar. o itlrl~tificat*. de la rcalitlatl con rlenic.ntos en t.1 n~otlelo.Si esta asot:iac.ihn st: hare t.orrtv.tamentr. t:ntont.rs el rnotlelo s r 1)urdr usar para rc-solver t.1 prol~lema.De lo twntrario. el modelo no 11nrtlepron ~las ; ~historietas rs (lifitlutir uria so1ut:ibn taorrerta.M u c h gmte rtit*ut.ntra tine (11I ) ~ ~ o l ) l etle tail 1)ort1ueno s r sivnten c.Omotlos (.on rl prot*twd r asotiacihn en si ~nisnio.De Ilt~.ho.1;1F i p r a 4.1 l m d e r r p r t w n t a r SII 1)ropio enCot1w tle 10s p ~ l ) l e n l a s( I t s historirtas. Si asi f'uose. eslwrarnos a y ~ t l a r l ar sentirsr niis t h n o d o (.on el rnotlthtlo e itlrntif'it~atihn(11,la rralitlatl. Se t ~ o n ~ e n z acon r i c o n r e p s tle rnotlelado si1111)lrsy 1)isitw y st* mostri~rht~')mobstos pnrtlen usarse para t.onstruir, paso a t w o l m a solut%n l ~ o t l t w ma lo t p e pnetle 1 w w . e r 1111l)rol~lerna t:omp!t.jh En la tnrtlitla qne se t.studien los rjrniplos. y se tra1)ajv a travbs t11' lob 4jerritios y 10s rasos, se podrin desarrollar hal~ilitlatlessignifit*ati\aspara el ~notleladotit. t1ato.i. EL L A D 0 LEJANO,p o r GARY LARSON
La Biblioteca del Diablo
Fuente: Copyright 1987 Universal Press Syndicate. Reirnpreso con perrniso. Todos 10s derechos reservados.
87
PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS
I
M O D E L O S E N L O S DIFERENTES NIVELES
I
A u n q u r puede no ser obvio, se ha estado usantlo el ttrmino modelo a tres niveles diferentes en nuestro examen. Estos niveles (no relativos a 10s tres niveles de la arquitectura ANSIISPARC) se ilustran en la Figura 4.1s. En el nivel nlis bajo se dice que el estado en curso de una base de datos en particular es un modelo de la realidad porque es un registro de hechos seleccionados sobre la rralidad clue son verdaderos. Por ejemplo, la base de datos puede registrar el hecho: "Marnaret Smith vive en el 845 Puente Avenue." Si Margaret cambia de " " direcci6n. rntonces el estado de la base de datos debe cambiar si quiere continuar como un modelo prwiso de la realidad. En el pr6ximo nivel, el esyuema se describe en la estructura de la base de datos t:omo un modelo de un conjunto de modelos (rsto es, es un modelo de un conjunto de estatlos de la base de datos). El escpema modela u n enormr rango de estados de la hasr de datos, tlefinientlo aquellas caracteristicas que todos estos estados tienen en comun. Asi, "Nombre" y "Direcci6n" sr registran en el modelo como caracteristicas que se aplican a diferentes personas y t p e dambian d r tiempo en tiempo. .LU nivel m i s alto, la metodologia de diseiio describe las construccionrs y redas yue pueden ser utilizaclas en la formulacihn de un esquema . Por lo tanto. este nivrl es tambikn un modelo de un conjunto de modelos (posibles esquemas de bases de datos). Una metodologia dada de diseiio, tal como el modelo conceptual de datos o el modelo relacional, es un modelo a1 nivel mis alto y describe en ttrminos generales un conjunto potencialmentr enorme de esquemas. En resumen, se habla del modelo conceptual de datos como de una metodolopia para la creaci6n de esquemas de bases de datos para situaciones yarticulares de aplicacihn. Estos esyuemas de bases de datos son en si mismos modelos qne proveen una estructura l6gica para capturar hechos sobre una porci6n particular de la realidad. Cuando estos hechos son capturatlos y registrados en un sistema dr base de tlatos, entonces la base cle datos en si misma es un modelo del estado actual de la realidad. Cada uno de 10s dos niveles superiores de la Figura 4.1s es un modelo del nivel clue tiene debajo. Nivel del medelo
Ejemplo de modelo
Construcciones tipicas
Metadologia de diseiio
Orientado a oljetos, relacional, etc.
Objetos, relacionrs, tablas, columnas
0
&.
5
a
gw 0
G
es Esquema tle base de datos Esqurma de base de datos Persona, nombre, direccibn, empleado-por I
Estado actual de la realidad
Base de datos
Margaret Smith 845 Puente Avenue
DISENOY ADMINISTRACIONDE BASES DE DATOS
Modelos conceptuales de datos
n~otlelosen~intico.I n lllotll~lo'I"" ""l'tnra lo5 sipnifiratlos tlc lai cmtitladcs tlcl nnindo r e d ? sns ~n~errelatione\.
I na nwtotlologia tit. m o t l t h l o tit. tlatos (lilt. sc. t.stntliari y i ~ t i l i z a rrn i rstr t.apitulo potlri;~ Ilan~arsr,inodelo orientado a ohjetos I)ortlue c*onsitlerala rrl~rrwntacitintv1 la cwnl~utadora tlt. las t~ntitlatlt~s tlel innntlo real w m o "ol)jetos" clue tienril 311 ~ ) r t q ) i aitlcwtitlatl !atri1)utos y ([III.partit*ipnn en las relationes. en lupar de la forma t ~ ~ ~ r l i r i otle n a twnsielt.l . generaln~rntertwmotitlo ([lit. rarlas t*oniort~gistrosen it11 sisteina orientatlo a a r r h i ~ o s Ks las rt-lu-ewntwiones orirntadas a ol~jetoson n ~ i 1)rrcisas s para espi-rsar la t w n t i a 1hgit.n tit* l w aplitwiones del mnudo real clue las rrpresentarionr.; Imaelas tsn rt-gistros. F o r rsta razhn. t.sta nietodolopia taml)ii.n pnedr llaunarsr s m ~ i n t i c l)c~'1111t~ a p r o ~ w r t i o n a1111 n ~ t ~ t l i o ~ ~ ~ l e r poasr ao asoriar los sig-r~ificutlostle las cosa:, en la rralitlatl (-onlas t-o~i~trttt.c*ioirt~s en el ~notlelo.l k s t l r prinripios tlr 10s srtrnta han sitlo p r o l ~ w s t w v a r i o sn i o t l c h t.ont*eptunles y semhnticos tlr tlatos. S r tisari nna metotlologia yn61ic.a tits inotldatlo. la twal tieoe aspet.tos en von~finron las inetodologias l)rol)ne.;tas. P o r ~ i i u l ~ l i t i tal dlo largo del 1il)i-ose le llamari a este modrlo motlrlo corlcrptuul tlr tlntos. ' Rn el Capitnlt) 2 st. intrt)dnjo un c~jtwiploqnt' 1oostral)a un inotlelo tIr elatos ~ o n e ~ q tltal srnc.illo. rihorri rstau~oslistos 1)iu.a tlelinir estas ideas d r niotlo 111is~ ~ l w i !.s oatlirionalmrnte introtlue.ir c ~ m c ~ p t oinis s potlerosos. 10s cwales nos l w m i t i r i n definir nroclrlos
iMODELAD0 SEMANTICO U ORIENTADO A OBJETOS? L a s haws d e datos orientadas a ohjetos son el resultado tlr la convergencia d t ~dos disciplinas de investigaciirn: el modelado s e n ~ i n t i c ode datos y 10s lenguajes orientados a ohjrto. Estas disciplinas se tlesarrollaron tle manera independiente, pero en 10s orhenta cwmenzaron a mezclarse con importantes iniplicaciones en el procesamiento cle bases de datos. El modeludo sernuntico de datos f u r originalmente desarrollado con el prop& sito d r incrementar la efectividad y la prrt-isitin tlel diseiio tle hases d e datos (Hull a n d King, 1987). Los mitodos de modelado srmintico fueron ronsiderados apropiados p a r a muchos prohlemas de nsuario y podrian ser conwrtidos cwn facilidad a modelos con realizaciones hasadas en registros tales como 10s modelos jerirqnico. d e redes y relacional. Abrial introdujo el modelo hinario semantico tle datos en 1974, y iste file continuado dnrante 10s aiios siguientes por el motlelo de entitlad-rrlari6n d c Chen (Chen, 1976), el modelo semintico d r datos (SMD ') tlc Haminer y McLeotl (1981) y el modelo de datos funcional (Shipman, 1981). Estos y otros niodelos d r datos, asi como extensiones de estos modelos, enlocan el prohlema del motlelac!o d e datos, con el propbsito de disriio de hasp de datos, desde varias perspertivas. Estas tienen en romhn el o1)jetivo de proporcionar u n niedio de capturar la semrintictr o sign i f i c d o tlrl area de aplicari6n q u r sr e s t i modelanth. El modelo d e rntitlad-relaciirn de Chen (E-R) h a sido el morlrlo semintico m i s popular y coinfinmentc se purtlt. tm:ontrar en lihros sobre mocielatlo t:ont:eptual de datos y diseiio tle hases de datos. Micwtras q u r aquellos dedicados a1 modelado semintico de datos tienrn q u r ver primariamentr con las estructuras de 10s datos, 10s que desarrollan 10s lenguujes d e progl-urnuci6n orientados a ol~jetose s t i n m i s interesados en el comportamiento de 10s ilatos ohjetos. Esto es, e s t i n buscando formas de manipular 10s datos q u r se centran en 10s datos y en las capacidades de manipulacihn del lenguaje (consults, cbmputo. a c t u a l i z a t ~ i h )La . estructura de 10s datos pasa a u n plano secundario.
89
PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS
La convergencia d e estas dos i r e a s surge cuando 10s investigadores conlienzan a aplicar conceptos de 10s lenguajes crrientados a objetos a las estructuras d e datos semhnticas. El rrsultatlo es la noci6n de una base de, datos orientada a objetos. E n esta mezcla de disciplinas, la terminologia orientada ;I objetos tiende a predominar y ~ m ello r se hahla nlhs de ohjetos que de entidades, que es lo que usariamos en la terminologia semintica. Adicionalmt:nte, 10s lenguajes orientadcrs a objeto enfatizan varios cont9rptosque no aparecrn en ~1modelo original E-R de Chen: identidad d e u n objeto, jrrarquia d e supraconjunto, suhconjunto d e ohjetos y herencia. Estos se estudian m i s adrlantr. Asi pnes, la metodologia q u e se utiliza combina el n1otlt.10 E-R tle Chen con conc:rptos del niodelado orientado a ohjetos. El rnodelo E-R constituye la base d e nuestro modelo conceptual de datos y el motl(:lado orientado a objetos contrihnye con varias mejoras significativas.
Fundamentos Los elemrntos principalrs clc un modelo c:oncelrtnal tle tlatos son 10s objetos )- las relacionrs. Los olljrtos se concilwn a menudo romo nornbrrs, ! las rclaciones se ven c~omotw-bos. .1unqne algunos inodelos ronceptualrs (it* datos proporcionan algnnas constrwriones atlicionales. 10s o1)jctos y las rrlaviones son suficicmtelnente potlrrosos p a r a 10s pro1)lcnias q u r se cwnsiderariin.
Objetos Los ol~jrtosrrbl)resrnt;inrosas q u r son importantes para 10s nsuarios en el sc~ginrl~to tlr 1;) realitlad tjur c[uthremosmoclelar. Ejemplos cle ol~jrttrsson las personas, los autoinh\~ilvs.10s irides. las mitluinas lavaplatos, las casas, los rnartillos, 10s lihros. Estos son ol)lrtos twncwtos. Ol)jvtos conc:rptualrs son compaiiias. ot'icios. organizaciones, tliseiios tit. protluc.tos, t r a n s a c ~ i o n ctlr~ nrgorios y clasificarionrs tle 10s traljajos. D r lo anterior purtlr no quedar claro c.ninc1o un crhjrto es nna w s a rn p a r t i c d a r (una p r r w n a intlivitlual. un antomhvil en particwl;w, un hanco en eslwc&w) o un c o ~ ~ j w to tle cosas (totlas las Iwrsonas. todos los autoin6viles, toclos 10s 1)anros).P a r a (,vital- alnl~iconjmito de o1)jetos. giicdatl se u s a r i rl tirrnino corijur~todt: objetos para referiruos a un c.or~junto(It. ( m a s tle l111twnjunto tit. cows la nlisma clase r iristaticia (ejemplar) de ohjeto para referirnos a 1111 simple elrnwnto ( o tle la niis~nac-lase. elelnrnto) tlc un c ~ m i n n t otle oljit~tos.Como mnrstra la Figura 4.2. se u s a r i n rc~rtingdo.; I I : I ~ ; I r q ) r r s e n t a r colljnntos tIv oljjetos y pnntos para reprrsrntar las instancaias. El non11m d r un w n j n n t o de ohjetos totlo en mayiisculas es la vvrsi6n singular tlel ohjeto. I)e esta instancia tle 1111 ohjeto. n l a n t m . "PERSONAI"es el nomhre tlel cwnjunto dt. oljjetos rel)l-rscmtantloa la gentt.. 1-na Un ~nitwlnwp a r t i c ~ ~ l a r "persona" (en nlini~s(~ula) es una iustantia del coiljnnto tle ol~jetosPERSOX-1. Se ewril)e tle un cwnjunto clr "prrsona IN PERSON 4" para intlicar cine persona es una instancaia tlr PERSOX.1 o q u r ohjetos. la instancia "persona" r s t i en el cwnjunto de ohjrtos "PERSOR.1".
--
- El coniunto de objetos
El nombre del conjunto de objetos
J,
Una instancia de objetos
persona
J
91
PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS
PERSONA
PERSONA HOMBRE
lymmq
(a) La interrelacion de
(b) Una representacion alternativa de especializacion
especial~zacion-generalization
George
George
Interrelaciones interrelarion. Un enlacc m t r e instanriac tlr tlos conjuntos tie ol)jt*tos.
Una interrelari6n rnlaza a (10s vonjnntos de ohjrtos. Considere t.1 conjunto,& o1,jrtos HOMBRE CASADO y MUJER (:AS-IDA. S r pnrde definir la intcrrrlarihn ESTA-(XS.il)O-CON entrr rstos dos conjuntos de olbjetos asociando cads hombre cawatjo con su esposa ( o inversanlrnte cacla mnjer casada twn su esposo). La intrrrrlacihn EST.4-C-ISADO-CON consistr de un ronjunto de parejas d r casados. rl marido q u r p o v i c n e del conjunto tlt. ohjetos HUMBRE CASADO y la mujer qilr provirne drl cwnjunto de ohjetos MlJJER CS.4DA. Griificamentr sr rrprrsenta una interrelacicin entrr (10s conjuntos de ohjrto inostrando una linra (con opcionalmrntr un diamantr incrustado) conet.tando 10s (10s conjuntos [Figura 4.5(a)]. Una intrrrelacicin rs m si misma un conjunto tle ohjetos consistentr dr pares d r instantias tomadas tie 10s dos conjuntos de objetos clue rrlaciona. Esto es: cada instanria de la interrrlacicin es un p a r d r instancias tomadas de 10s dos conjuntos de objrtos. Si HOMBRE CASADO = { Adam, D a v i d , John) Y MUJER CASADA = { J o a n , L i n d a , M i c h e l l e ) y Ad am esta-casado-con Joan David esta-casado-con Linda John esta-casado-con Michelle
DISENOY ADMINISTRACIONDE BASES DE DATOS
ESTA - CASADO - CON = { (Adam, J o a n ) , ( D a v i d , L i n d a ) , (John, M i c h e l l e ) }
Las cblabes ( ( ) ) se usan para intlirar 1111 (.onjunto. La Figora 4.5 (1)) ~ n o e s t r aesta inforn~ac-iongrifiran~ente.Se \(. (111(. la intc.rrc.lacihn es en ii n ~ i s ~ nuna cvn~iuntotle ohirtos cw! '1s initanriai son part.jai tle vasatlos. lln conjunto de olljetos c.on~oEST1-C 1 S \I)@ (:ON. el vual se tleri\d de un intrrrrlwihn entrv otroi doi ronjuntoi de ol)jctoi. i r l l a n ~ e
HOMBRE CASADO
MUJER CASADA
(a) La interrelacibn ESTA-CASADO-CON
HOMBRE CASADO
MUJER CASADA
Adam
Joan
David
Linda
John
Michelle
(b) Algunas instancias de ESTA-CASADO-CON
HOMBRE CASADO
I
MUJER CASADA MATRlMONlO I
1
(c) El conjunto de objetos agregado MATRlMONlO participando en interrelaciones
PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS
TMBAJADOR
SUPERVISOR
(a) La interrelacion SUPERVISA
SUPERVISOR
TRABAJADOR
Heidi Craig
Ralhp JoEllen
(b) lnstancias de la interrelacion SUPERVISA
rlrs ! 11' iuterrrlac~ihnINGRESOS las conrrta twn el total 1 1 1 x ingrrios t . o t ~ ~ l ~ i t ~tle ,~tlo aml~os. os Cot110 otro rjrinl)lo tle nna inttw-clacih cwniiderr~iios11), 110si ~ i l ~ t * o n j l ~S~li tPE1.I\ TSOR \ TKAUAJADOR tlr una con~pafiiade empleatlo.. Se tlt.fiiitm 1;1s instarwas tle TK\B~,~~DO t*oino R tw~pleados clue no super\isan a otros tml,leatloi. P:l con611nto SlII'EK\ ISOR twnslstt. tlr 10s enipleadoi que s r ~ p e ~ v i i a;I n10s tra1)ajatlorei. l,a ~ n t e r w l a t*iOti SLIPERVISA (ol)ii.rvese el uio del verho) asotiatla a ratla s u p w \ i i o r tv)n loi t r a l ~ d ~ d t lorei qiw &tr siil~cw isa (Figura 4. h(a)). l,a Figui-a 4. h(1)) ejrnip1ifit.a iiiitantiai clue purrlrn entbontrarwtm la interrelaci6n SU PK KVIS l. La ge~irralizac~ihn/c~sl,ecializaciOn rel~rrsetita rtn ti110 c.spwia1 tle ~nterrelatnihn. a la niiirna prrsona I.Iecr~Crelrseclue em la F i g ~ u a4.4 tlos p n t o s cliferetitrs ~-el)rt~sc.iital~an George. El pnnto q u r r n HOMKI.IE r r l ~ r e s r n t aa (;rorgr e s t i relacionado por niedio tle estd con rl I~llntoqne rti PERSONA rvprcsenta a George. En ekeinterrelatihn dv snl)twnj~~iito to. todo piinto tbn HOhlRRE rhti rrlat.ionatlo con c.ut.taintmte iin punto en PERSON \. Sin rinl)argo, a l p n o s I)untos r n PERSON4 rstrin relacionados con puntos en MCIJRK. Poi- tanto. todo punto r n PERSON4 r s t i 1-elationado con cero o con un punto r n HOhlBRE. Estr t i p de informatGn s o l w las intt~rrt.latioiwsse puede exprrsal diiatliCtitlolt. c*ardinalidada 10s tliagran~ds.
Cardinalidad c~a~-tli~lalitlacl. El i i h r r o niLwno tlr instancias tlr 1111coujunto tlc o h j ~ t w que p c t l c vital relationado rorl una 3ola initancia tlel otro c~)~ljlolto tle o1)jrtoi.
La rardinalitlatl tit. rina rvlacicin se refiere al uirinero ~nhuiinotle inst;lnt~iilstm 1111 t*oiijr~~ito tlr ol)irtos ( ~ u rstri r rt*larionatlo con una Gnica instancia en el otro t-oniunto (It* ol~ietos. POI.rjrml~lo.si se a-lun? tluc cada persona casatla tiene ihlo una rsl)os;l. la t~artlinalitlatl tle la intrrrrlatihn EST4-C\S 4DO-CON es 1 en catla diret.t*ihn(Figura 4.7).
DISENOY ADMINISTRACION DE BASES DE DATOS
4uncpie normalmrntr rstamos interesados $610 vn la mixima c~ardinaliclacl,a veces es h i 1 especificw la c-ardinalidwcl mimrna. Sulmngamos. por ejeniplo, que restarnos la interrelaciOi~EST1-C 1SiDO-(:ON a In i1iterrelaci6n clue existe entre 10s conjuntos IIOMBRE !MI JER [Figlira 4.8(a)]. Pnvsto (pS 1niic.1ioshonil)res y mujrrrs no r s t i n casados. la rartlinalidad miniilia rs t w o r u a n ~ l m s(111cwiontbs. Se ewri1)iri "0,l" m i s cerca d r l cwj ~ i n t otle ol)jrtos V l ' J E R para iiitlic.dr clur un honihrc. dado r s t i (.asado con cero o con una m ~ ~ j r In\rrsanirntr r. rl 0.1 wrc-dno dl coniunto d r o1)jrtos HOMBRE in&-a q u r ratla inujrr r s t i (.asatla con cero i, con un homljrr [Figoras 4.8(h.c)]. I l g u i a s interreliwiones no tirnrn un valor rsl)rclifico para la c.ardinalidat1 rniixima.
t t ,~~ s u i i ~t[11(~ c ~ tin t r i h j a d o r tirnr un y 4 1 0 u n s u p r r ~ i s o r . iiifira '~uiuc.1ios"'.I111 c ~ s a m t ~ istt ])or 10 (1ur la cartlinalitlatl ttn la otra tlirwci0n (.s 1,l (Figiira 4.9). [,as cartlindlitlatlrs d r la i n t r r r r l a c i h tlr rsprcializacihn o snl~cwnjiintoson sirrnprr las ~ n i s l n aCatla ~. instancia rn rl con junto tlr grnrralizaci6n r s t i rc,lacionada (.on r r r o o una ins! vatla iuitanria drl conjunto dv cy~cvializacihnr s t i tdncia drl ronjunto tlr rsprciali~ic%~n. rrlaciona(1a (*onraac8tauimtr una instanria rrl rl conjunto d r p n t d i z a c i h n (Figura k.10). La c*ardinalidadmiwima rs un c8oncq)tomuclio m i < imlrortantr q u r rl d r la rartlinalitlatl minima. P o r lo tanto, 1)ara sinil)lific*ar10s diagramas. la rartlinalidad miriima s d o sr
a.
b.
MUJER
HOMBRE
MUJER
Todo hombre esta casado con 0 o I muler
HOMBRE
MUJER
Todo muler esta casada con 0 o I hombre (Los d~agramasde mterrelac~onse pueden leer de izquierda a derecha y de derecha a izquierda)
SUPERVISOR
.
I"
111
Todo supervisor supervlsa I o
m k trabajadores
Cada trabaiador es supervisado por solo I supervisor
TRABAJADOR
PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS
r l HOMBRE
intlic~ari(wando sea necaesario. Excq)to en la iiitc~rrelatihnde s~iI)(-o~ijunto ( r ~ annninn~a c*artlinalitlatl lue disc.utitla anterioriiicmtr). las cardinalitlades uiiniinas 11ue +e O I I I I ~ ~ I I s t ~ h i as~niiitlas i coino wi-o, Uiia cai-tliiialitlatl iiiixima tlr I rii uiia tlirewi6n tle uiia iiitcrrelat~ihiit.01 rt.sl)olltlt. cwii el coiicq)to niatrinitico tlr f'uncihn cjue detrrniind nna coriwl)ondrii&i uno-uno I ) iii~~chos-a-uno entre dos cwnjuntos. 1'01- lo tanto. una interrelaciOn con uiid c.artl~nalitl,~tl iiiivir~iatlr 1 eri nnd direc&n es llaniatla funt*io~ialen esa direwihn. La interrrla1.1611 sul)er~isor/tral)ajatlortle la Figura 4.9 es fiincional tle trabajadoi- a suprr\isor. Es tletm-. i i se s a l clue ~ t.1 trahajatlor t.5 quiru hicamelite detrrniind S U sq)er\isor. Esta i i ~ t r r r e l ~ i tenel. I I I I I C ~ I O ~ cihii ILO txsf~iiiriondlen la otix tlirecciOii, pursto qutX1111 s ~ i p t m i s o r1)1it~lt, ti.al)ajadores. Si la cwdiiialidatl niixinia en amhas tlirecarionrs tle m a interrelac.ih11 e i 1. +I, tliw cine la interrclaci6n r5 uno-uno. Si el iiiixinio rs 1 r n una (IirtwiOii ? ni~i('hozc11 la t)tril si las cartlinalitldtlrs ~nhaitl~rcccihn,se tlicr cjue la relarihn es u n o - ~ ~ m c h oFinalmentr s. lliil* ion n~ucllosen a n h a s diret*cioiics. sr (lice q u r la interrelaci0n rs ~ ~ ~ n c h o s - ~ ~ ~ Lau e l ~ o T d ~ l a4.1 resurilr Ids tres cartliiia1itlatlt.s I ~ i s i c wtle las iriterrrlarionei.
.
Atributos
Cardinalitlad Uno-uno Uno-muchos lilnchoi-mnchoi
Uotat*iOn I : 1 15 1-1 1 6 1-
Un marido tiene UJLUesposa. Una esposa tiene un maritlo. (la interrelacihn de matrimonio es uno-uno. )
*:*
IJn empleado e s t i en un departamento. Un departamento tiene muchos empleados. (La interrelaci6n d e enipleo es uno-muchos.)
;*-*
Un estudiante sigw muchos curso.;. Un curso tiene muchos estudiantes. (La interrelacibn de matricula es muchos-muchos.)
DISENOY ADMINISTRACION DE BASES DE DATOS
Ljn a t r i h u t o tlr 111101)jt'to r " i - . ~ a l ~ n r i ~llna t t > intr1.relati011 t'l~ntionaltlr r s r c o ~ ~ j ~ tlr ~iito ol~jt-ttrstZono t r o ronjilnto ( I t . ol)jt.tos. Dos tlr 10s ; ~ t r i l ~ u t ovsn r ~ n ~ r r a iuitrriorinrntv th sc, m u r s t r a n ronio intrrrrlarionrs r n la F i p ~ r a4.1 1. Sin rmlmrgo. s r r i twn\~rnirntt*I-lbl)l'rs r n t a r t1l~1111ok a t r i l ~ r ~ t otlr s Ittanera m i s .siml)lr. tal rolllo ? r ninrstra r n la Figlira 4.12. IUOtesr t111t' r l 1i01nI)rr (1r la intrrrelac.ihn y clllr t.1 nonil~i-rdt.1 ol),jt~to sta c.oniJ)inan ril t i r r t o srntitlo p a r a iorniar r l n o l ~ ~ l tlrl ~ r ra t r i l ~ ~ !rbl)rc.ialnwntt. ~to F E C I J UE .V.i(~J~lI~~&'ITl l a r s t * r d ~ ilas r illEsc.ril)ir atri1)utos (It, r s t r notl lo no ths 111isqutSnna 11otat.ih11d ~ r c ~ i a t tlr ttw-vlacionrs. G r n r r a l ~ n r n t t , .esta iiotat.ihn ahrrviatla I ~ ~ l r ~t lr tt i~l i z a r w.;irnq)rr tlnr n o w i n t r n t r w a r rl a t r i l ~ t oconlo 1111 011jt'to r n otra intrrrrlaci6n. En (11 1 1 ~ 01io1.111;tl(t111res 6.1 t p t , se st.grlir& a c.ontinrtat.i6n) lo5 atr-i1)ntos son iiitt~i-rr~ atril)~ito.r s tlrcir. el v a l w tlrl atrilwto e s t i 1ac.ionrs J i ~ ~ l c i o i ~ r (Id c I ~tsw n j ~ l n t o(It. o 1 1 j t . t ~a1 drtrrwinatlo ~ l ~ i i v o c ~ a n l rllarn n t r ratla i r ~ s ~ a n c i Por a . c.jvn~plo.(*atlalwrsolia tirne ruat.tal ~ solo n i l n ~ r r otlr s r p mrnttXm a kc-ha tlr nacinlirnto y. r n rsta I~ast,tit. datos, t a ~ n l ) i i ' 1111 titlad sot'ial. La cartlinalitlatl m i u i n ~ a1 ~ 1 part(, tlrl atriltuto en rstas i~ittw-rlacionc+r s sirul~prrI. I'or vsta m z h o s i t m p r r s r oniitiri la t~artlinalitladtlr 10s atril)ntos r n 10s tlia~to r n l,artic*ular n o t i r n r valor rli a l p n o d r sus atri1)utos. s r gramas. Si 1111 o l ~ ~ r instancia tiiw q u r "1 a t r i l ) ~ i t otitwt. u n valor nulo p a r a r i a in.stant4a. Es importantr d a r s r t - u r r ~ t aclnr 10s atril)r~toslrnrdrn tbstar srl)arados c v n t q ) t u a l s tksc.ril~rn.Kt~t.~~Grtirsr la tlistwsiih inic~ialtlr tltrt. los valorrs tlr 10s ~ w n t tlr r los o l ~ j r t o tplr a t r i l ~ u t o sr a ~ n h i a nfi-rc.uc~iitr~nrntr. nlirntras tlur 10s ol),irtos asociitlos a 10s atri1,utos son SII peso. ~ I noml)rr I y 10s nlisnios. D r r s t r motlo. tula Iwrsorla 1111t~lv c ~ m l ~ isiu~rstatura. r el color 11rS I I 11~10.1)rros i g ~ wsirntlo la m i s n ~ ap r r w l i a . Esto uo signifira t[ur totlos 10s atriItr~tos11rl1~n c * a ~ i i l ~10s i a v;ilortbs. ~ D r h t d l o s i r m l ~ r rs r trata tlr itlrntificar c*uilvsatril~utcfi 110 c-ariil~ian tlv w l ~ ~ya r . clur Cstos 1)11r.cIc~n r t t i l i z a ~ wcwno vlavrs r x t r r n a s .
Claws. C-na claw cXsIin valor cllir sirmpre ~ ) ~ ~~r~ dt i lr i z a r tlc s r l o r ~ n ar ~ r ~ i v o pr aa r a idrntificar a u n o l ) j r ~ oi n s t a w i a . Ya i'i~c.ronn ~ r n r i o n a d a slas rlavrs sn1)rogatlas. las c.ualrs s r ~ ~ t i l i x ai n t r r n a m t ~ n t evn los sisttwas para idt.ntifirar r o n j ~ ~ n t o11e s ol!jetos a l ~ s t r a c t t ~ s
NUMERO DE SEGURIDAD
'
1
PERSONA
1
*
PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS
identificador. Una clak t. cxtvrna.
l~erenria.La p r o l ~ i d a t l dc un conjnnto tlr espec.1ali7arihn clue t w s a qrie Gste t e q a todo- 10s atrihirtos dcl conjunto tle gent~ralizac.16n.
97
(no 16xi('os). PERSO& 1.I)or ejenll)lo. e5 nn conjunto tle ohjet05 al)itractos. En una in111le~nentacibntle una base tle tlatos conreptual. rada periona en el ronjunto tle ohjetoi 1'EKSON \ tendria una clake s u h r o p t l a para itlentificar a tlicha persona tlentrn tle la I)a-e tle tlatos. l'ero puesto clue la (.lake sn1)ropatla oo paetle ser utllizatla fuera tlel ststcbinath I)aitb tle datos, 10s ttsuarios newsitan otra forina tle identific.ar n las instancias tlv PERSO\ 1. Esto sc. logra (*onlas (.la\ cs rxterna5. I n a clave externa (tamhibn llanlatla un iclentifirador) es L I I ~atril)uto 16-1i(wo rln co~ljuntotle atril)~itt~z Ibxicos c8~t:,oi \alores ilelnpre identifiran un i~nicwol~jeto.L 11 ntrihnto IGxico es n u atril)uto formado ntilizando un twnjunto tle ohjeto5 l6-1ic*o.Dc cbstcbinotlo. las (.lakes externas se pnetlrli iinprnnir y stx~ ) u c d c nlccr I)or los nsnarios I s i n e n tle nltdio 1)or ('1 w a l instaimas eslwcificas 1)uetlen identificarse externamente a la I)ase tle datoi. Usualmente nos referimos a la5 dabes externas snnplelnente c~)inor l a ~ e s P. o r ejtwq1111.tan la Figura 3.12. #SS podria ser m a (.lake para PERSOY 4 si se asume clue ratla n i n n c ~ otle seguritlad social cw-resl~ondvc~xac.taincnttba nna iiriit*a I)tmona. Esto es. lai cartlinal~tlades minima !n ~ i x i n i a(11.#SS a P E R S O N 4 $on 1,l. P o r otra parte. la feella tle nac~inientt~ 110 l ~ l r i a scbr nna davt.. 1)nesto clue m a tleterininada feeha 1)uetle ser la fecha tle nnc-Iinicmto tlv mnrhas Iwrsonas tliferente5. E n ocasiones se necesita niis de nn atrihuto lm-a forniar una c.la\e. S ~ ~ l ) o u g u ~ o o i qne PKlISOh 4 tie la F i p ~ r a4.12 esth siendo utilizada en nna Imie d e tlatos tle gc*nc*alogia. la cual expresa los arholei de lab jerarqnias familiares. Dado (pie i n w h a s dv las ~ w r sonas en l'EKSON.1 fallecieron a n t w de clue se introdnjera (a1 twnct~l)totle riiiinc~otlv segnridad social. net*esitenloi algo tlifervnte dc #SS p a r a la (slake. Poi- 5upnesto clue el n suficiente. E n eite noinl)rc*.la ft.t*ha dt. nat~iinientop el l n p r de nacinliento ~ ~ o t l r i azer r a w . la combinacicin de eitos tres atrihutos formarial1 la c l a ~ ep a r a PEKSON1. Si no fuese asi entonces i e necesitaria algo adicional. Si es neceiarlo iiempre se pnetle 1)oner u n nfimero tle itlentificacihn cwja imicitlad p w d a forzarse dentro del sisteina. Se tlenot& clue un a t r i l ~ n t oes nna (slave externa. iul)ra!ando el n o n h r e (It4 a t r i l ~ n t o( F i p r a 1.12). No todo twnjonto tle o1)jetos netwita tener lina (*lave.P o r ejeniplo. en una ]base tle clatos tine registre transac*c*ionestle \entas. el n s ~ ~ a rli o) d e eitar interesado solainente ell i Olniamente. inorhas \cmtas 1 ) ~ registrar el total de las v m t a i !10s l ~ r o d w t o vendidos. den teirer 10s nlisn~os\ alores tbntxntitlatl !en 1)rotlnc~to\endido. Seria 11oc.orazona1)lt. tbxigir que el usliario pro\ea una t.la~txiinit*a para cads ~ e n t a E. n eite c a w . la h a w tle tlatos shlo rcgistrarh la informaciOn qurL6.1 nsuario dcsca tle ratla transat~iOn.Iwro bita qurtl:~rh ~ g i s t r a d atwmo instantias sel)aradas para rada t r a n s a t G m . La Figura 4.13 m w i t r d o El dos l e n t a s tliferentes clue tienen la rnisnla cantidad dt. .5,95 y el mismo ~ ) ~ o t l u c . t123;. usuario \ e r a dos transacciones. p r o no tiene medios para distinguir 6stas cmtrtx si ! atltbrrriis no esta interesado en hacerlo. Por lo tanto. la anst~ntiadv una rla\v no titmc. twnscLwencia en eite vase.
E~perializaci6nlGe11eralizari6n y Atrihutos. Si un ohjeto es una especializaciOn tle otro objeto. entonces el ohjeto especializado h e r e d a totlos 10s atrihutos y las inttmdaciones tlrl ohjcto clue ~ s l ~ e t i a l i z PERSONA a. CAS ADA. por ejeniplo, es una espet~ializatihn
DISENOY ADMINISTRACION DE BASES DE DATOS
PERSON 4 . P o r lo tanto. una persona casada. por s11 rondici6n cle ser una persona. tienti iln noinhre, un n u m w o rle s c y r i d a d social. m a dirrecihn p otros. El ronjnnto tle ot~jetoi; PERSONA C.AS.iD;I hereda esos atrihntos tlel cwnjunto de ol)jetos PEliSON.4. .4tlenlhs. 1.1 ronjnnto d e olrjetos rspeei;~lizado pnrde t w e r sns propios atri1)utos. P o r ejcinplo. ESPOS.4 seri;i un atrihuto de PERSOIL"\ CASAD.4. 1)cbrcrno tlv PERSONA. En la F i p r a -1.14. se ilnstran estos roncvptos. lJna espeeializaeicin no scilo Iwreda 10s atrihutos. sino tjue tam1)ii.n hereda las-intrrrt~laeiones.La Figura -1.15 ninestra clur PERSONA esth relacknada con COMP_4Nl2 1 ~ )lar via de TKABAJA-PARA. PERSONA-CASADA a1 ser una especializacicin de PERSONr\. tarn1)ii.n e s t i relacionada con COMPANI.~por la via de TR:UL4JA1-PARA. Suponga que John Doe es una persona casada clue trahaja para la Compafiia XYZ. Hay acpi entc)l!ces u n punto en PEHSOiYl-CASA1).4 rrl)resentando a John Doe y nn punto en COMPARIA rrpresentantlo a la cwmpafiia XYZ. John Doe en PEKSONA-CASAD.4 e s t i relacionado con John Doe en PEKSON.4, cpien a su vez e s t i re1ac:ionado con la compaiiia X Y Z . Conscnwntemente entontw John Doe en PERSONA-CASADA esth relacionado con la compaiiia XYZ. La hrrencia d e atrilrutos e interrelacionrs es nn cbonceptoimportante, puruto q n r p r i n i t e definir suhconjuntos d r conjuntos tlr ohjrtos, 10s c.uales tienen atrihutos e interrelac.ionrs propias, p r o qne conservan todos los atrihutos e interrelacitrues dc su snperwnjunto. Esto hare posihle rnodelar la realitlad d r rnanera m u c h m i s preeisa clue si no tlispnsii.ramos d r l cwncepto tlr herencia.
I
PERSONA
I
PERSONA CASADA
.
CompariiaXYZ
John Doe
i
; i
PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS
Ejemplos -1 continnacihn i r t r a t a r i n tlr crear loi motlrloi cwnceptualei tlv datos para ,ll;nnoi prol~leniastlel mundo real.
Ejemplo 1: El modelo de datos de un banco El primer cjemplo 1)uede m a r s r para r e s p n t l e r a algnnas tle las p r t p n t a s clur sc l~icieron a1 wmienzo drl c.al~itnlo.Estainos intercsados r n w e a r el ~ n o d r l oconceptual clc datos tlel negovio hancario clue r r f l r j a r i la rr;llitlad d e Rolbrrt Goldthnml), presitlrntt. d r :\lchrnlical Bank and Trust (ABT). El 1)anco titwe curntas corrienttrs, cuentas d e ahorro y t k ~ t r [Fignra s 4.16(a)]. Las interrelaciones apropiadas entre tstas se mnrst~.anen la Fignra 4.16(11).Estanws ahora en poskiirn tle rrsponcler a las prrguntas sipuientes:
Las rc:spuestas a estas preguntas s r ohtienen simplementr cwntando [as instancias en cada uno tlr 10s tres conjuntos de ohjetos. Uisponiendo del software apropi;lclo. Goldthhumh podria llsar su cwmputadora personal para plantrar estas p r r p n t a s r n twalqnier lnomrnto, o podria rrrihir un informr peri6tlic.o. Ol1s6rvrsr la forma tan limpia en qlie la base cir datos manrja estas pregnntas tLn comp;wacii,n cwn un sistema traditional hasaclo en archivos. El1 nn sistcw~ahasado ell archivos, sin las conexiones interarchivos provistas por la h e tle datos, potlria prrfectamente haher shlo (10s archivos -uno para las curntas corrientrs y otro para las cuentas de ahorro-. E n cads uno tle estos archivos, la informaci6n d r 10s clientrs rstaria inmersa en un cierto numero de c a m p s (noml~redel cliente. tlirecci6n y otros). La trrcera pregnnta -"Cnintos c1irntt.s"- srria dificil dc: responder, pnesto c p r trndriamos clue extraer los tlatos de 10s clirntt-s tlr 10s dos archivos. ortlenarlos y ol~viar10s duplicatlos. Sin enibargo. en nna 11ased r datos: extos clirntes purden m a n t e n r ~ s eseparademente y preservantlo las conrxiones tleseadas con la informaciOn tie las curntas.
CUENTA CORRIENTE
I I
CUENTA DEAHORRO
(
1
CLIENTE
(a) Objetos de un Banco
CLIENTE
CUENTA CORRIENTE
CUENTA DE AHORRO
(b) lnterrelaciones simples entre 10s objetos de un Banco
DISENOY ADMINISTRACION DE BASES DE DATOS
Esta pregunta shlo 1)uede respoudersr mirando las intrrrelacioneb. Un clicntr tirne clwnte tle ahorlos shlo si esth I-rlationatlo rncdiante TIENE-CUENT4-DE-4HORRC) t8on una instaucia en W E N T \-DE-1IIORRO. Similnrmente. u n clicnte t i m e cnenta corricnte si eyt&relat.ionatlo mediante 'TIEAE-CCENT \-CORRIENTE con nna instancia tle CIJENTi-CORRIENTE. P o r ultimo. nn clirnte tiene ccmbos till05 tle cuenta i i e s t i rrlacionatlo metliantr cstns iutrrrclationes con instantias de CUEhT4-IIE- I H O R R O ) CI ENT4CORKIEITTE. P a r a responder a la prrgunta anterior simplementr hay clue cbontar a 10s clientey qne vsthn relacionados de las (10s maneras. Cardinalidadek. La C'lgura 4.16(1)) omite intencionalmentv lay cardinalidades. Estas se v e r i n a continuat.ihn. Snl)Ongase clue se indivan las c.cwc I'1na1'1t 1at1es como se m u e t r a en la Figura 4.17. Estas tmdinalitlat1c.i indican quc un clirnte puctle tenrr no mhi d r nna curnta d c ahorro y uua tSnentacorrientc. P a r a catla cuenta ha) n n diente. Ehtas eartlinalitlatirs putden no ser un reflejo preciso tle la rea1itl;itl. Consitl6resc la t-artlinalitlatl prbxima a CIJENT4-COKIUENTE. ;No puetlc 1111 t*limtrt c n ( ~mhs d e una cutbnta tw-rientv? 4BT. corno la maqoria tlr loi 1)alltws. permitr clue 1111 clicnte tenga mhs tle una twenta corriente. p r o las cardinal~tlatlesde la Figura 4.17 no 1)rrmiten esto. \/earnos las o t r a i cartiinalitladei. i E i realista suponer qne nna m e n t a no l ~ u r d eestar asignatla a m i s d e u n talirnte!. Esto tanqjoco es deiealde. ya clue l a i cnrntas comnnei. cwmo entrc eiposo \ t y o i a o entre padre e hijo. son muy frtvwentci. P a r a reflejar mhs precihamente la 1)ercel)cibntle la realitlad sc3actualiza la Figura 1.17 > i t - ohtime la Figw r ; 4.18. ~ El moclelo de la Fignra 4 . l i ey incorrecto porqur no rrfleja nuestra ~ ) t ~ r c ~ e p ctlel ihn 1)ant.o Ul'. Una p e r t q c ~ h ndifcrente d e la realidacl potlria hacer clue el modeltr tle la Figura 4.17 fnese corrt.t.to. Por rjemplo. un 1)crnc.o puede clecidir que ningiln cliente puetla tener m i 5 d e una cuenta de nn mismo tipo y clue no h a p cuentas comnney. E n este c a w . la
CLIENTE
CORRIENTE
I
DE AHORRO
CLIENTE
CORRIENTE
I
DE AHORRO
10 1
PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS
Vvamok la solutihn a la primera tle rstas 1)rtyultah. lln r l i m t r t r n t l r i ~nt'dtiples cuentas corrientrs si r s r rlientr ~ s t rt.lationado i nwtliantr TIEKE-(:UEYTA4-(:01iliIEhT E (*ona1 nient~s(10s instauci:rs dilerentrs r n CUEST.4-(:ORRIENTE. Sr puetlr rrsl~ontler a esta pregunta t.xaminantlo ratla instancia en CLIER'I'K para vvr si c-sti relationada e i r twntando las i~istant*ias van las t p r rstii. S r retwnit~ntli~ ill let'tor tratar d r v r r chmo respontler a las p r o g n n t ; ~a ~r n t r r i t ~ ~~w~ s a n cel l otliagralna tle la Fignrir 3.18. Esperializnndo 10s Clientes tlr nn Baiiro. iLos chrntcs tic. nn I ~ n t wsien1111.rticnen que ser 1~ersona5!Por supursto. algunos clientes d r 10s 1)ancos son organizat*iones: tle negorios, no I w r a t n a s , wligios:ts. ,rgenc*iasgu1)ernamentalt.s. 1Drsra Goltlthnil) t l ~ s t ~ n g u ~ r entre 10s tlifereutes t i p s tle t d i r ~ ~ t r Si. s ? lo d t v a . ) a cine 10s difrrrntes t i p s (It. clientes t w n r n atri1)ntos distintos. -itlemis las tmentas de 10s distintos t i p s tle t-lirntrb puetlrn tt.ncbr n ~ u e s t r a(10s esl)ec.ializ;rt~~o~~t~s tlr CLlENTE. tbfrrrntrs carartrristiras. L,I F I ~ I K4.19 I C L I E h T E HUMAN0 p a r a dtjnellos clientes clue son Iwrsonas ? CLlEh'I'E I N S T I T U ( J 0 h \I, p a r a aqut~llosc.1itmtt.s (jotbson 01-ganizationes o rmp-esas. Lila d r las vrntajas principalrs d r usar la gcneralizat*ii)n y la eslwt.~alizacx'mrs q u r 1~odenwstarcar tliferentes atribntos para las rspecializariones d r un t*onjuntc~tle ol~jrtos. mirntras q u r al ~nisrnotien~pomantentmos 10s atributos comunes ile 311 n n t.1 tnis grnrral. La Fignra 4.20 ninestra qne cadd clientr tlrnr rrn n h r r o de c,liente. el cnal p r ~ e d r5t.r ntilizado w i n o una c*la\t*,pero 10s c*lientrshumanos tlrnen atributos tliferentes clue ltrs c l ~ t w trs inititurionalrs. Revisrmos la Pigura 4.18 1)ara reflrj'lr las rspetializacionrs d r CLIENTE. E ~ t rev a isihn w mnestra en la Figura 4.21. clue ey nna coml~osici611d r las Figurai 3.18 1 4.20. (En esta 1 1 p - a w ha omititlo la intl~c.,~cihn clel w n t ~ t l or n las intcrrrlationes. lo t d sr 11d1-i niudlinrntr a partii tle ahora.) Se ha ,ui,~clicloLIII atri1)uto S iLDO a each nno tle 10s conjnntm tk ohjrtos c.nrnta. 4hora se puede re~ptrntlc-ra algunai prrguntas m i s :
La w ~ p ~ ~ easlat aseguntla pregunta tleprnde d r 111 q w 4gnifiqur - ' t i p s de clitwtrs".
KI d i s e h de la base de datos ~ w r m i t etlistinguir entre clientrb h u m a i i o ~r in5titucionales. Drntro d r CLIENTE-INSTITUCION4L se pueden hacer d i s t n ~ c ~ o iusantlo it~ rl atributo
r - 4 CLlENTE
CLlENTE INSTITUCJONAL
DISE~O Y ADMINISTRACION DE BASES DE DATOS
I
TIENE-CUENTACORRIENTE
CUENTA CORR~ENTE
CLIENTE TIENE-CUENTA-
INSTITUCIONAL
TIPO-DE-ORGANIZACI~N. Por ejelnplo. el TIPO-DE-ORG.ANIZACION podria s r r Negocios, No lucrativa, Religiosa. o -4grncia Gul)ernan~ental. Para responder a la segunda pregunta comenzamos ron CLIENTE-HITMANO y recwrrenios, por ser a su vez CLIENT E , CUENTA CORRIENTE por la via de TIENE-CUENTA-CORRIENTE. Esto se h a w para (:a& clirnte hurnano y sr rrgistra el saltlo. -41 terminar se vorr~putael saldo prometlio do los clientes humanos. Lurgo se signe el mismo procrdirniento con CLIENTE-INSTITUCIONAL. Para responder finalnirnte a la l ~ r r g u n t ase cornparan 10s (10s pronlrtiios.
Ejemplo 2: Huerto fruticola de Stratton Verri Stratton e5 un horticultor clue esta en el negocio de las frutas descle hare cincuenta s y pre\ieron que a1 aiios. Antes que 61, sn padre y su abuelo fileron dueiios de s i ~ huertns
103
PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS
nxnos uno d r 10s nirtos 10s lirretlaria. Ellos tirnrn rxc:t:lrritrs rrgistros tlr datos tlrstlc* rl siglo aIx clue lrodrian cwnstituir la base para iiii romprrnsivo sistriiia d r i n f o r m a r i ~ h\. w n r s t i ahora intrrrsado rii las rrspnestas a prrguntas cwno:
La Figui-a 4.22 niurstra o n simplt. n~otlrlod r datos q u r purde utilizaiw para rrsponder a rstas preguntas.,El wnjuiito d r ohjrtos HUERTO c:oiitiry m a instancia para catla hurrto. El atrihuto .AKEL4drsrl.ihr cl hurrto. Dr estr modo. _1REL4trntlria valurrs talrs cbonioSpringtown. Lrr"s Valley y otros. Catla huerto r s t i relacionado cwn,los ir1)olrs (instancias tlr A4RB01,)clue r s t i u eii c.1 hiirrtc). P o r lo tanto, las instanrias (lr ARBOL tic.1lt.n 10s irl)olrs fisicws t:n esprc-ifitso en lugar d r t i p s clr irho1t.s. Cada irl)ol f u r plantado en un drterminado aiio y pi~rdc.o no h r i h murrto ya. Si r l kdrol miiri0. cmtoncrs -1NO 1)E MUERTE rontirnc. iin valor: clr lo rontrario. rs nulo. Los irl)olcs tirnrn r s p r i e s y las rsprcirs tienen varirdadrs. F o r rjrniplo. uiauzaua rs irna esprc+ y Jonathan y Red Dc.licious soil varirilatles. Pursto qtie 10s hrholrs puc.tlri1 trrlrr ramas injrrtadus, una misrna esprcit- clr i r h l 1)utlirra soportar iiiis (I? iina r a r i r dad. Dr rsta manera, iin nianzano qiir fue originaliiientr Rwt Delicious podriir tamhi6ii tener Jonathan y Roman Beaut!;. Cada i r h o l tirnc. una sola cq)ecir. prro podria tcmer milltiplrs variedadrs. P a r a r r s p o n d r r u la p r i m r r a prrgunta romrncvnos cwn rl ronjunto tlr o1)jrtos HUERTO. Usando rl ntjihnto ARE.1 s r idrntifira r l h u r r t o Springtown. Rrcwrrir~ltlo r l conjnuto d e o1)jrtos AKBOL se identifiran totlos los hrholrs en (:I h n r r t o . Dr aqui srguinios a ESPE(3ES y drscartamos tcrdos aqurllos irholes clur no w a n nielorotones. Ahora desdr ARBOL rerorrrmos ron todos 10s mrlorotcrnrs de Springtowu r l cwnjunto d e objrtos VA4RIED.4D e idrntif'icamos las varirdades d r mrlcrrotonrs d r l h u r r t o Spriugtown.
Ejemplo 3: Un problema de 16gica El lector dehe d r haber vi,sto los prohlrmas d r IOgica q u r apareren r n la serrihn d e entrrtenimirutos de 10s prri6diros y revistas. Usualmrrite esos prohlenias no se puedrn resolver complrtamrntr con 10s principios clr este capitulo, p r o se pneden simplificar tlefinirndo
q , T p PLANTADO
HUERTO
ARBOL
ESPECIES
VmED(\D
DISENO Y ADMINISTRACION DE BASES DE DATOS
La Yignra 4.23 rel~resentaestc: pro1)leina grLficamente. Tenelnos cuatro ol~jrtos.! sns rnininla y miwinla para la correspondientrs interrelaciones. Note c p c u las cartlinalidatlc~~ interrelac*iOnentre 1'OSICION y EMPLEADO son 1,1 en arnl~asdirec*ciones.1 1 Ilacer las asignac-iones para cbstaintc~rrelati0nsr t e n d r i la solncihn a rstcs prol~lrina.Se trata dt- wigst1 puesto. EstLn listatlos 10s trcss puestos ! 10s t r r s ernl~leadoscwc-a n a r a vatla cw~l~ltutlo n ~ ahahlan d e la twnparacihn tlr sns twnjltiit~sctt, ol)jetos. i l g t ~ n o sinditios dr1 t ~ r o l ~ l e nos tle los i ~ ~ p r w tic, o s 10s cml)leatlos 5- tle t*tiintoshrrmanos Gstos ticmrn. Esta informacihn sf, inclica en el tliagrarnil. La Fignra 4.24 cia la solnci6n a rste prol)lcnla. Esta se drt111c.ren la f o r n ~ asiguientr: P t ~ e s t oI ~ Smith I ~ rs el clue mas g a i n 110 l~uecles r r ni el gcrentt. ni el (.ontador. P o r lo taila n a con Smith). por tanto. Smith es t.1 rajero. Bro~vnticne 1111 hermano (nna h v r ~ ~ ~ casada to no l ) ~ ~ e ser ~ l ( ~1 , contador porc111t: bstr no tirne h e ~ m a n o s .Lurgo Brown es enttmc*rs el e ~ i t ctlrlw ~ ~ her el contador. gcwnte. C o ~ l s t ~ c ~ ~ e n t e i i i.Jonc.i
t PUESTO
INGRESOS COMPARATIVOS
Contador
Smith
PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS
Construir modelos eonceptuales de datos a partir de informes existentes Los modrlos t~t:sarrollatlt~s r n tbstr rapitlllo r s t i n 1)asatlos en la inforn~ariOnimplkita qlw 10s cldrnir~istr(~dores 1)otlrian hacrr. Conset.~it~ntrmentr. rstos sisten~asforinan la hasr para 10s sisterntrs d e gestic511clt~irformaribra. Sin t:nihargo, taln1)ii.n hay iliterGs cn 10s inotlelo!. trur p t l r i a n lisarsr e n 10s sistemus tlr procesamier~totle datos. 10s t d c s procesali las transat.tioiies tlur trtSurrtwa diario r n la niayoria tle 10s negocios. En txsta srcci0n se esaiuinarin dos forni;is tlt~informes clue st, utilizan en las transarrionrs por mllt-ha grntc- (It* 10s ncgocios y mnrstran c6mo 10s motlrlos conrrptualrs rlr tlatos sr pueden tlrdutir d r t ~ t ; i b forn~as.Estas formas se w a n r n (11 Sistrnia tle Consultoria Manwaring. un t w o (It. estntlio s illistrar los t~ut:swi introtlucido ahora ?- q u r sr u s a r i cn varios cal)itiilos f ~ ~ t u r o1)ai-a pasos en r l tlisthiio r iniplementat.ihn d r 1)ast.s tlr tlatos.
Caso: Servicios de Consultoria Manwaring Joun Mur~wc7rir~g, CP4, hu operado 10s Swvicios de Consultoriu %Murircwringd u r m t e 10s ziltimos diez uiios. En~pleun(a seis c o r d t o r e s . que llelwn rr cubo p r o y t o s rle cor7sultoritc (1 10s clientes d e Mur~~ctrring. Cutla p r o w c t o incol~rcru(I u r ~ oo 1114sc.onsdtores y l)ut~tlr d u r a r varius semunus o mews, rlepc~ndiei~do del ulctrnce del prorecto. Estirnndos. Ptrru cudn contrccto que usurnen, Joun debe htrwr una proptestu d t ~ servicios. La propurstu incluye, entre otros cosas, alcunce, objrtivos, estructurtr de lu turea y konorurios. Los honorurios que Joun estublece pueden voriar m1rt.110 segrin 10s d[ferentes tipos d e cor~tratos.Los honorarios se busan e n las gur~anciusque se le proporcionen a1 cliente, y el7 el tiempo el ~sfuerzodedicados cc cornpletur el coi~trato.Todu lu inforn1trcic5r~que p e r t r w c e ul contruto se conserm p u r u rejerencius futuras. Cuulquier ujuste qur se le huga ul rstimudo se le rnostrarci ul clientc~y se registrnrci. Recepci6n d e efectivo. Aunque muchos de 10s contratos pequeiios se pugurl erl rfectivo, la muyoriu de 10s clientes p a g a n sobre cwenta. E l pugo debe hucerse crl terrrrinurse el cor~truto.u menos q u se ~ h u y u r ~hecho urreglos de cridito. Los clientea USILUImeitte pagun sus crkditos u tiempo. p r o Jotrn u veces les enviu r~otificucior~es u 10s c&ntes p u r a que realicen un pugo. Deseinbolsos d e efectivo. Aur~quemuchos sciministros se curgun rlirecturnente tr un contrato especifiro, algunos sumir~istrosy equipunzierrto se usociun con milltiples corltratos o gastos generales. Todos 10s sumir~istrosse comprun u cuentcc.
Un modelo de datos para compras La forma d e la orden d e compra d e Manwaring que se usa para ordenar 10s suministros se murstra en la Figura 4.25. Esta incluye el nomhre y direccibn drl vendedor, la frcha, el numrro de ordrn y el niimero drl vendedcrr. TambiSn d a el numrro de inventario, el producto y el precio d r cada producto. El total, incluyendcr impurstos, sr nluestra en la p a r t r d r ahajo de la fignra. A partir d r rstr formulario se pueden drdnrir 10s siguientrs twnjuntos de objrtos: VENDEDOR, OKDEN y PRODITCTO. Los atributos de estos tres twnjuntos, asi como las interrelaciones entrr Sstos, se muestran en la Figura 4.26. Note las cardinalidades de las
DISENOY ADMINISTRACION DE BASES DE DATOS
SERVlClO D E CONSULTOR~A MANWARING 950 M A I N E A S T O N , PA I I I I I ORDEN DE COMPRA Fecha
Nurnero de orden
#Inventario
3821 4919
Nurnero de vendedor
Descripcion del product0
C a j a de l a p i c e s #2 C a j a de b l o c s de p a p e l
Precio
4,00 8,90
Vendedor:
O f i c i n a C o n s o l i d a d a de S u m i n i s t r o s 414 S. Choctaw D r i v e F l a g s h i p , PA 12345
intrrrelacionrs. La interrelacih entre ORDEN y VENDEDOR tiene nna rardinalitlatl tino-murhos porcptr. rada ordrn se le hace a un vendedor, pero nn determinado vendedor puede recihir nluchas brdenes. La interrelacibn INCLUYE entre ORDEN y PRODUCTO es muchos-muchos porque una orden incluyr rnuchos productos y un producto pnrtle aparerrr rn rnuchas brdenes.
VENDEDOR
HECHO-A
I
PRODUCTO
107
PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS
E v e n t ~ d m e n t ese puede h a w r t.1 pago tle nrla orden. Para registrar esta informnriim be anmentari el n ~ o d d oal clue se m~?c.straen la Figura 4.27. Sr ha aiiaditlo el twnjunto de ohjetos P4GO con 10s atril)utos NI MERO DE CONTROL y FECHA. La cardinalidad nno-uno indira qur rada d e n sc. pagari con un cheque, ? qne cada cheque pagari nna sola orden.
CONTROL VENDEDOR I PAGADO CON
FECHA
HECHO-A DESCRIPCION
PRODUCT0
*
"ri
INCLUYE
*
PEDIDO
IMPUESTO TOTAL
Un modelo de datos para la faeturaci6n de proyectos Cuando st: completa un proyrcto, Manwaring a menudo envia una factura por 10s servicios prwtados y por 10s suministros ntilizados en el proyecto. En la Figura 4.28 se muestra un ejemplo tle factura. La factura incluye fecha, numero d r factura y titulo tlrl proyecto, asi cwmo una pormenorizacibn de 10s servicios y suministros cargados a1 propecto. En estr formulario sr pueden identificar 10s conjuntos de objetos CLIENTE, PROYECTO v CARGO con sus atrihutos. En la F ivm r a 4.29 se muestran 6stos iunto ccm sus interrelationrs. Nbtese qur hay dos tipos clifrrentes de cargos: 10s cargos por servicio de consultoria y 10s cargos por suministros. Puesto que 10s cargos por servicios de consulta inclnyen la identificaciim tlrl consultor, el conjunto de objetos CARGO se ha dividido en (10s sulwonjuntos: SERVlCIO y CARGO POR SUMINISTRO. El conjunto de objetos CARGO tienr (10s atrihutoq, CANTIDAD y DESCRIPCION, que son heredados por arnhos suhconjuntos. Ademis, la especializacibn SERVICIO del conjunto CARGO time el atrihuto CONSULTANTE. Una ordrn tle compra y 10s formularios tlr facturas ilustran el proceso de c6m0 usar 10s informes rxistentrs 1)ara definir el modelo conceptual de 10s datos. El analista de la base de datos obtiene 10s datos necesarios para el diseiio de la base de datos usando la amplia gama de informes existentes que contrilmyen a la creaci6n del modelo conceptual. Ademis, el analista utiliza un procrso de entrevistas para precisar 10s rrcjuisitos de informaci6n atlicional mediante la identificacibn de 10s tipos de preguntas que 10s administradores newsitan para responder a las preguntas. Los datos que se ohtienen de estos informes v d r las entrevistas se combinan en el disefio tle UII modelo conceptual comprensivo tle 10s datos. Este modelo s e r i implementado eventualrnente como un-estluema-de base de datos y s e r i la basr tanto para el procesamiento de 10s datos como p w a la gestibn del sistema de informaci6n.
DISENOY ADMINISTRACION DE BASES DE DATOS
MANWARING 950 MAIN EASTON, PA I I I I I FACTURA Fecha
Numero de factura
27110
342
Consultor
Proyecto
I Sistema
de c o n t r o l de I n v e n t a r i o
Descriocion de careo
Cantidad
Rodriguez
80 h o r a s de a n a l i s i s y d l s e n o
4.800,00
~ a r r i s
200 h o r a s de p r o g r a m a c l o n
8.000,00
F a r a s a ~ o u l o s 30 h o r a s de e n t r e n a m i e n t o a 1 u s u a r i o
I Suministros
900.00
(papel, f o t o c o p l a s , e t c . )
40,00
Total
1
l3.740,00
1
Cliente:
Sterohouse Markets 318 E l m S t r e e t Morgantown, PA 11222
( NOMBRE ) CLIEWE N )-(
REALIZADO-POR
* GRABADO-POR I
PRoyEcro
TOTAL^
CARGO POR SUMlNlSTRO
El modelo conceptual de datos desarrollado anteriormente aplica 10s conceptos hisicos del modelado conceptual de datos. En el resto de este capitulo se ampliaran estas tkcnicas, relativamente simples, para afrontar situaciones mas complejas, las cuales surgen natu-
109
PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS
agregado. llna interrelaci6n \ ista coma un twnjunto tle o1~jt.to.s. interrrlac~i6iid e alto n i ~ e l .Una intcrrclari611 entre trc.5 o miis conjuntos tle objetos.
interrelacicin biiiaria. Lna interrelacibn entre dos conjuntos d r objetos.
ralmentr en loi nt.gotblos. Kn rita iercihn i e reiitrari la atrnt.16t1 en los conjuntoi agregados d r o1)jetoi !tm la prbxuna r n los conjuntos cwnerlrtualcs d e 0l)jt.tos. Estos (10s r o n t q tos oenrrru a iiirnudo en las sitr~acionciprit~ic-ah.Comprender rstas t k n i r a s 1~c.riiilte incwmrntar la5 ha1)ilitlades p a r a llekar a calm 121 tlefm~ribnd e 10s requi5itos !10s pasoi tlt.1 tliseiio twt~t~eljtnal drl ticlo tlr \itla tlrl tlriarrollo dta una basr tle datoi. - h r ~ q u e10s inotlrlos clue' he11 s ~ t l ocreadoi con 10s concrptos 1hsic.w tle modrlado son rrlati\atiit-nte srnrillos, rs fhtd a1)retiar sii poder 1 ut~lidad.Sin emlbargo. la mayoria tlr loi pro1)lemas que rralmrntr stAtmtwentran en 10s nrgoeios son consitlrral~lemrnten ~ i s cornplrjos y a mrnudo i n ~ o l u c r a nr l nso d e un agregado, m a interrelacibn vista twnio 1111 ronjunto tlr ol)jrtos, o eomo iina interrelaribn d e alto nirel, q u r involucra a trr3 o m i s twnjuntoi de ol)jetos. l a sr ha \isto clue m a interrelacibn sr putdc usar romo u n conjunto d r objetos. P o r t.jewq)lo. twantlo se tlt.finirron y dist*utwronantrr~ormentelas intei-reletionrs, se piitlo albrptwr quc ratla homl)i-e 4 catla mujer c p r e,t&an relacionados por la m t e r r r l a c i h EST-\tjue es en si un objeto. Coma tal, el matrinionio C ISIDO-CON twnstitu!rn un mr~tr~monio, ~ ~ ~tencr r d sus e propios atri1)utos. tales como el aniversario de hodas. el total de ingrcsos. la tliret.c16n,. Es mis. purtlr p a r t ~ e i p a ren otras interrelacioneb, tale, c o y 0 DUENO-DE Illrl'OMO\/IL v SON-PWKES-DE. De rsta manera, la interrelacibn ESTA-CdS4DO-CON puetle verse como un wnjunto tle ohjetos cuyos ekmentos son 10s matrimon~os. Esto es tierto para t.ualquier interrelaci6n. La, interrelaciones purden ser v ~ s t a s t w n o o1)jetos 4 purden tener atrihutos y participar en otras interrelaciones. Como se dijo. talrs intrrrelnciones sr l l a n ~ a nagregadob. Grificamente se representari un agregatlo tlil)i~,jando una caja alrededor d e la i n t e r r e l a c i h y sus conjuntob tle ol~jetosparticipantes (Figura 4.30). 4lgunds veces. por cotirenirncia. se le darii a1 agregatlo un nombrr tlr ohjeto -un nomlm- atlemis del nombre tie la interrelacibn. P o r ejemplo, en la Figura 4.:3!). MXLRIMONIO es el nomln-e del conjunto d e ohjrtos que se le d a a la interrelacibn E S T & C4SADO-CON. Esto es razonahle si la interrrlarihn se usa como u n conjunto de 01)jetos. Todas las ititerrelationes que se h a n consideratlo hasta ahora i n ~ o l u c r a na dos cotijuntos d e ohjetos. Tales interrelaciones se llairian binarias. Sin embargo, las interrelaciones tamhikn pueden involucrar tres o m i s conjuntos de objetos. Estas interrelariones d e ulto-r~icelse d m o t a n como interrelaciones n-arias, donde n r s el nlimero de conjuntos de ohjetos cjue sr r s t i n relacionando. Una 3-aria interrelaci6n se llama ternaria. Sin embargo, p a r a utilizar una terminologia m i s romprensihle, a ~ n e n u d onos referirerrios a las interrelariones :%aria o 4-aria corno interrelaciones d e trrs-vias o de cuatro-vias. Estos twnt:rptos se ilustran con el ejemplo siguiente. Supongamos que Dick C;rwnl)rrg de International Protluct Distribution (IPD) desea revisar las ventas de una linea de protluctos por paises. Para auxiliarle se crea el conjunto de ohje~osPRODUCT0 y el conjunto tlr ohjetos PAIS y se esta1)lrcr una interrelacion SE-VENDIO-EN entre ellos [Figura 4.31(a)]. Una instancia en PRODtTCTO, digamos "detergentr lavaplatos #5", esti relacionada con una instancia de PAIS, digamos Inglaterra,,si el detergrnte lavaplatos #5 se vende en Inglaterra. Si se trata a la interrelacibn SE-VENDIO-EN como un conjunto d e objetos. entonces podemos ponerle el atributo CANTIDAD para indicar cuintos productos se h a n venditlo en cada pais. Nbtese que el atributo CANTIDAD depende tanto d e producto como de pais. Esto es, no se puede determinar el valor de cantidad a partir de producto p o r separado ni de pais p o r srparado -se necesitan amhos-. De ahi p o r quC CANTIDAD es un a t r i h t o d e
HOMBRE CASADO
MUJER CASADA
DISENOY ADMINISTRACION DE BASES DE DATOS
la ir~terreltrticinrntre producto y pais en lugar de un a t r i h t o d e produeto o cle p i s por separado. P o r esta raz6n. 10s modelos de las Figuras 4.31(b) y 4.31(e) son an11)os inwrrectos. En el caso (b), el moclelo no distingue entre cantidades vendidas en 10s dikrentrs ptri'ses. y en el caso (c ), el modelo no distingue entre las canticlades vmdidas d r diferentrs proclu~ctos. El modelo d e la Figura 4.31(a) le permite a Dick rec:orrer las ventas de productos por paises. Supongarnos. no ohstante, que iste desea m a infbrn~aciOnm i s refinatla tle las ventas que la que este modelo puecle clar. p e s quiere registrar tamhiin la cantitlatl tle cada prodncto vmclido en cads pais I; en cndn din. Se relaciona entonees SE-VENDIO-EN (*onFHCHA y se le (la a rsta nueva intrrrelac-i6n el atrihuto CANTIDAD [Figura 4.32(a)]. Una vez mis, el atributo se aplica a la interrrlati6n m i s extrrna porque las instancias de 10s tres conjuntos de ohjetos -PROI)UCTO, PAIS. FECHA- son necesarias para determinar la cantidad. La Fignra 4.32(a) da la s o l u c i h a este,problema en forma de dos interrelacioncs hinarias. la primera d e las cualrs (SE-VENDIO-EN) es un conjunto de ohjetos en la segunda intrrrelacihn (VENDID.4-EL). Podria consitlerarse que es n ~ i sconveniente expresar rste modclo corno nria h i c a interrelacihn d e tres-vias, como se muestra m la Fignra 4.32(1)). De nuevo potlemos ver qne CANTIDAD es un atribnto tlr la i n t e r r e l a c i h entre 10s tres coiljuntos de objetos. Cualquier interrelaci6n d e alto-nivel pnede dividirse en una serie d e interrelwiones binarias anidadas. Sin embargo, algunas de estas interre1acionr.s ])inarias pueden no tener sentido p a r a nosotros si tratanios d c rclacionarlas con algo del m u n t h real. P o r lo tanto. en ocasiones se nsan iuterrelariones para exprcsar 10s conceptos qne se tratan d r capturar en nn modelo particular de tlatos. ya que Gstas se pueden relacionar con el problems.
(a) Un modelo correct0 para el control de ventas
I
I
(b) Un modelo incorrecto para el control de ventas
I
I (c) Un modelo incorrecto para el control de ventas
PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS
1
1-
PRODUCTO
PA^
SE-VENDI~-EN
11
(a) Usando dos interrelaciones binarias
*
VENDlDA
*
PRODUCTO
PA~S
*
u FECHA
(b) Usando una interrelacion de tres-vias
Con respecto a1 niixirno de cardinalidades en las interrelacionrs clr alto-nivrl, sr asurniri quchtodas las interrelaciones hinarias que componrn la intrrrelacibn c k alto-nivel son interrelaciones binarias muchos-mu(-hoi. Este supuesto viene bien en la prictica la mayoria de las veces. El poder de estos cone-eptos sr ilustrarii a continuaci6n considerando otros ejemplos. todos ellos algo mis complejos qur aquellos que se han considerado hasta ahora.
Ejemplo 4: Compaiiia Constructora Premier La Constructora Premier c o n s t r n y rdificios m una gran variedad de sitios. Cada edificio requiere un nurnero de t i p s difrrrntes clr matrriales en cantidactes que varian por edificio. Diferentes cuadrillas Ilevan a caho difrrrntes partes del proyecto. Por ejemplo, puede haher una cuadrilla para la estructura. una para el techo, una para fontaneria, una para la alhafiileria y asi sucesivamente. A1 planificar la construccibn de un edificio Premier asigna diferentes cuadrillas a diferentes fechas. Los trabajadores se asignan a las diferentes cuadrillas segun su especialidad. De este modo, Hank Brigman pnede hacrr trabajo cte carpinteria y alljafiileria, por lo que es asignado a brigadas de estructura, techado y albafiileria. El tamafio ctr una cuadrilla varia de acuerdo a1 tamafio de 10s requisites drl edificio. Para una edificio r n particular las cuadrillas se i r i n formando segun sea necesario. TambiCn se asigna un capataz a cada cuadrilla de cada edificio. Un trabajador puede srr
DISENOY ADMINISTRACION DE BASES DE DATOS
ohjeto conceptual. L l r ~ ol)jrto q i ~ 1rrprrwnta IIII t l p o tlr t-osa. ohjrto fisiw. Un ol~jeto una
el capataz ern una twadrilla y u n simple trahajadcrr r u otra cuatlrilla. Marcws I l r m n . due;I tt~~atlrillas iio de Premier. desea conocrr cuilrs d r sub trahajadores fneron asig~~atlos para varios r d i f i c ~ o q~u, i materialcs r s t i n sientlo utilizatlos r n 10s etlifitios. ) lm-a t*uintlo estL planificado el trabajo en catla etlificio. A continuacihn se disefiari un motlelo t a o n c q tual d e d a t w que puetle ofrecer la i u f o r m a c i h q u r B r o ~ nesti 1)uscantlo. La Figura 1.33(a)modela la iuterrelacihu entrt. etlif'it.ios \ ~nateriales.El twnjnuto tlc ohjrtos EDIFICIO contiene una instancia p a r a catla rthficio tw la I ~ a s etle tlatos. El ronjunto d e ohjetos TIP0 DE MATERI4L represeuta los t i p s dt- material talrs conlo "~uatleros tle 2 x 4 x 10' ", "rla\os #lo". y otros. Las cartlinaliddei d r la i~lterrelacihnentre EDIFICIO y TIP0 D E MATERIAL indiran q u r cada e t l ~ f ~ c ti oy u i c r r muchos t i p s tle materialrs y tpir cada t ~ p od e material se usa cn mut.hos etlificjos. Ohsirvese que rl atrihuto DIRECCION es a~)licrrl)lr,610 a EDIFICIO. La DIRECCION 1)nede nsarse como rlav r 1 ) ~ -itlentifirar a a catla etlificio en particular. El rectingulo alrt.tletlor tle la interrelat*ih REQUIERE indiva clue sr desea considerar esta interrrlacihn twmo un conjunto agrrgado de ohjetos. A este conjiinto tle ohjetos sr le (la entonces el atrihuto CANTIDID. Las instancias de este conjunto agrrgatlo tlr o1)jetos w n siste d r pareb: etlificio y tipo cie rnatc-rial. Asi, por ejemplo, el p a r formatlo pol. 6.1 rclificio del 610 Fifth St. y maderos de 2 x 4 x 10' pnctlc s r r una instancia en la ~ntrrrrlacihnREQITIERE. A este p a r se le asigna tambiin una cantitlad --digamos 500 pirzas-. clue es la cantitlad de matleros de 2 x 4 x 10' qne se requieren para estr rtlificio [ver ~igura-4.3:3ih)]. Es importantr notar clue el conjunto d e ohjetos TIP0 DE MITEKI41, en estr ejemplo rcprvsrnta a u n objeto conceptual r n lugar tle un objeto fisico. E, tlrcir. cada instanc1a "1 T I P 0 DE MATERIAL represrnta un tipo d e ~naterialen lugar tlr una pirza especifica d e material. Esta nocibn tle ohjetos t ~ o n t q ~ t u a l een s lugar de ohjetos fisicos tienr aplicacihn frecuente en r l motlelatlo twncrlrtual tle tlatos. E n algnnos tbasos se necesita modelar conjuntos d e ohjetos separatlob para 10s o1)jetos fisicos.
~IIW relweienta
1I
EDlFlClO
MATERIAL
(a) La interrelacion de edificios y materiales
610 Fifth St.
I(
I
EDIFICIO
I
*
Cantidad 500
REQUIERE
*
TIP0 DE MATERIAL
(b) Cantidad de un tip0 de material usado en un edificio
113
PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS
Ahora se murstra chnio rrprrsentar la formaciim de I~rigadasJ In aslgnaci6n tle tra. Fignra 4.34 mnestra una intrrrrlacihn eutre los hajadores y c a p t a w s a la5 h r ~ g a d a s La twnjuntos tle ohjetos T I P 0 DE C b 4DRILLA y EDIFICTO. T I P 0 DE C t IDRILL 1es otro ejemplo d e n n conjunto dr oljjetos cont*rj)tuales.Esto rs, las iustancias d r T I P 0 DE C t 1DRILLA no representan ])rigadas p a r t i c u l c ~ r ~ sino s , tipos tlr I~rigadas,tales t*oiiio alhaliiIrria o techaclo. La intcrrelacibn e n t r r iin t i p tlr hrigada y n n rtlilicio represrmta a nna Iwigada rn partirular -la hrigada asignatla a rse edificio para rralizar la tarra asoriada twn rl t i p tle la Iwigada-. P o r lo tanto. sr pncde v r r a ebta intrrrelaci6n t*on~o iin ohjcto y darle entonrrs rl nomhrr CUADRILLA. Cada r~iatlrilla.w m o una instancia r n rl conjunto d e objrtos C U I D R I L L I . time planificado tra1)ajar r n un numrro tlr fwhas diferentes. P o r rjemplo. 10s fontanrros retpieren d r un cierto niirrirw d e dias para h a w r la fontaneria de un rdifitio dado. Poi- tanto. se tienr una intrrrelatibn PLANIFICADA-PARA niuchos-muchos r n t r r CUADRILLI I FECH 1. La Figura 4.35 mnestra la asignacih del capataz y tlr 10s trahajatloi-rs a las ] ) r i p tlas. Nhtesr clue la interrrlarihn ES-CAPATAZ-DE rs uno-murhos. Esto es d e l d o a clue una brigada tienr iin solo capataz, pero un t r a l ~ a j a d o pr u r d r ser csapataz de diferentes I w gadas. La Figura 4.36 nos ila un diagrania compuesto cjnr niurstra rl motlrdo conipleto d r 10s datos p a r a la Compaiiia Constructors Premier.
Ejemplo 5: Huerto fruticola de Stratton (continuaci6n) El ejrmplo 2 nos d a cierta informacibn sohre r l negotio fruticola d e \ern Stratton. A continuacibn sr d a r i informacibn adicional q u r Ye ~isdrlip a r a ohtener el modrlo d r datos corrrspondirntr. que s e r i m i s twmplrjo que rl motlelo initial. Este motlelo s e r i m i s podrroso \ p r r ~ n i t i r di a r la informacibn necebaria p a r a planifirar a 10s trahajadorrs 1 la plantacibn d r nnrkos irholes, y p a r a o h t m e r otras inforniacionrs tlr declsibn. nrcesarias para la rnarcha del nrgocio. 1,os Lirldrs en 10s huertos tlr kern se sieml~ranen filas y wlumnas. Las filas J las t*olumnase s t i n separadas entre si por 20 pies. Cuando u n hrl)ol m n r r r Gstr sr extirpa y otro i r l d se siembra en sn Ingar. RrcuGrdese que las rspecirs r e p r e w i t a n a una amplia categoria de frutas. conlo ~ n a n zanas. nielocotones o crrrzas. > vanedades tle suhtxtegorias d e Gstas, como Jonathan \ Rrtl Delicious (para las manzanas). Dependiendo de las condiciones climiticas durantr 10s meses inicialrs, las variedadrs rrtoiian en diferenteb momentas. La cosecha comienza una rirrta cantidad de dias a partir del florrrimiento ccrnipleto de m a t a r i d a d determinada. Ademis tlr podrr nianejar rsta nurva inforn~acibn,el moclelo de tlatoi dehe construirsr de modcr t'rl q u r sr pueda rrspondcr las siguientes preguntas: ~Cuintoharl)urtob tlr. manzanas Red Delic.ious se extrajeron del hnerto dr Paynrwille el aiio pasatlo? iCuil fur la ferha promrdio de c.osrcha en todos 10s huertos para m a tlrtrrminada varie-
CUADRILLA EDlFlClO
PLANIFICADA-PARA*
TIP0 DE CUADRILLA
FECHA
DISENOY ADMINISTRACION DE BASES DE DATOS
1*
ASIGNADO-A
CUADRILLA
*
ES-CA?ATAZ.DE
EDlFlClO
REWERE
*
F i MATERIAL
TIP0 DE CUADRILLA
dad tlc inrlorotont.h en los iiltimos dirz a h ? iC11intlo ticl~erlinrstar listas 11arala roset*ha tie rstr aiio las manzanas Jonathan dcl hwrto T,ee Valley? ~Cuintosrspacios hay libres en ratla hurrto para plantar nurvos irholes? 1Cuintos qucdarian lihrrb si taliramos a11uellosirboles ruyo pronmlio tlr produwi6n tie 10s hltinlos rinco aiios estin por debajo de un cirrto rentlimiento? La Figur? 4.37 murstra la ~ r r s i 6 nmejoratla d r la Figura 4.22. El ronjunto cle ohjetos LOCALIZACION es otro ejrmplo elr ohjrto concrptual. Este no represents una localizarihn esprcifica. sino clue no5 da la fila y la cqlumna que puede rstar en cualquier huerto. De rstr modo. una instancia tle LOCALIZACION como puedr ser (10, 17) reprrsrnta a la fila 10 y la cwlumna 17 de nn hurrto no especificado. Cuanclo una instancia como 6sta sc. relaciona con u n huerto en rspecifico --digamos por ejetnplo r l huerto Springtown-, rntoncrs el trip l e t ~(Springtown, 10, 17) nos d a la fila 10, la columna 17 d r l huerto Springtown. E n la Figura 4.22 s d o se relacionan 10s irholes con sus hurrtos. Ahora ir p u r d r n
PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS
m CRECIMIENTO
identifitear loh huertos y las locdizaciones espec.ificas (fila y colunina) tlentro del huerto dontle e s t i plantatlo un i r l d . Esto permite d a r respuesta a la pregunta sohre r l niimero tle espa(ios v a c h en cada huerto: La i~?trrrrl;~tibn I ~ I I I *liga 111si r l d r s co11sris localizarionc~srsprc-ifivas drntro dr rirl hnrrto sr llama EST.4-L0C:ILIZADO-EN. ~ P o (job r rs uno-muc.l~os?EstL rlaro qur rm k r l d purdr tenrr rina sola localizaciijn. pcro dpor club m a localizacihn pnede tenrr muchos arldrs'! Rrc.nbrdrse q w sr conserva el alio en clue un irl)ol mari6, la base d r ~latosronscrva el rastro dr todos los irl~olrsqur h;in estado rn una Ioc.alizari6n rspecifica en el transrurso dr 10s afios. Lo c p c b sr tirnr ahora qur hacrr rs idrntifirar todos 10s i r f d r s asoriatlos con un t.spacio rn partirrilar dentro dcl hurrto. Si todos han muerto, rntoncrs se purtlr asuniir I p e rl rspacio esti 1lisponi1)lrpara un nurvo irl)ol. Esta informacicin tamhiin se p u r d e u s a r p a r a determinar dOnde e s t i n las Areas m i s fbrtiles dentro de un huerto. Podemos r a s t r r a r el niimero tie florecimientos clue p r o d u w cada i r l ~ oen l el aiio. Con el paso d e 10s aiios, 10s irboles e n las areas m i s firtiles producir i n m i s frutas. P a r a determinar c u i n d o es la Cpoca d e cosecha p a r a una variedad dada e n u n huerto dado st: debe registrar c u i n d o h a tenido lugar un total florecimiento p a r a dicha varied a d e n el huerto. P o r lo tanto, se deben conectar HUERTO con VL4RIEDADe n una interrelaci6n Y, lueeo conectar estas dos con FECHA e n l a interrelacibn FLORECIO-EN. Esto nos dice c u i n d o h a ocurrido un florecimiento total p a r a cada variedad e n cada huerto. E l atributo FACTOR DE CRECIMIENTO d e VARIEDAD nos d a el numero d e dias desd e q u e termini, el florecimiento hasta el comienzo d e l a cosecha. Usando el atributo FACL.
DISENOY ADMINISTRACION DE BASES DE DATOS
TOR TIE CRECIMIENTO en comlrinac-iirn con la intrrrelaciirn FLORECIO-EY p o t l m o s ohtener cuando d e h e r i ic.r la cwsec.ha tle cada varirdad c,n ratla hnrrto. Esta informaci6n e i eiencial para planific*ar :I lo* tral)ajatlores d n r a n t r la 6poc.a de c,osrrha. (atla tii-l)ol, Para rrgistrnr el i olumm total ccrsec-haclod4 cwla karietlad cada alio ! tIel)rrno5 lignr ci~clainitancia de la interrc4aciirn (ARBOL, V4RIEDLlD) c*on 00 DE COSECH4. Esta intrrrelacibn dc trri-viai tendrri el atrihnto VOLUMEN DE COSECHA. clue noi cf re cwhnto se ha cosechado de cada varicdacl c d a Lrbol en catla a70 tle cwiec*ha.
Ejemplo 6: Servieios de Consultoria Manwaring (eontinuaeih) 41 principio ilel c a p i t d o i e crearon motlc.lo5 cle clatoi para hrdenei tic. cwnipra ) facturas cle loi Servicioi tlr Consultcrria Manwaring. Los formularies ntilizatloi i e iin~plifiraron 1)ai-a qnc' i t - ajnitaran a 10s motlelos conc8el)tualei 1)hiicwi clue eitaban di5ponihles. U.smtlo c o n c y t o i nihi a\anza(los i e l)ueclrn crear modelos tle datoi p a r a formatos d e infiwnies m i i ! tle lai sofisticados. Sc \ w h n aliora veriionei mas sofiiticadas cle las brdrnes ck (~11t11)ra favturas. y se c r c w h i tncrcleloi para lab miimas. La E'igrli-a 4.38 ~ n u e s t r auna o r d r n cle cwmpra mejoracla d e loi Senicios cle Coniultoria Manwaring. Si se conipara estr formulario con el cle la Figura 4.25 tlel)e notarse clue se inchyen nnevas colwnnas para Drscripcibn del Producto, Cnittidnd. P r ~ c i oC ilitcirio y P r w w Totcil, rnientrai clue el orig~nalsirlo tenia Dc.sc.ripc.ihn clel Protlucto y Precio. En el forninlario original, la c-anticlad c p e sr ordrnaha rstaha incluicla clentro d r la D r ~ c r i p c G i t d r l Prorlucto, mientrai quc ahora se sr1)aran. El Prrcio Ui~itoriono aparecia. El Prrcio del forn~ulariooriginal e i lo c p e ahora e i el Precio Totc~l. En rstr n w ~ formulario o ticw. (10s ventajai: (1) Pnesto quc. P r w i o I iritctrio cith ell func~ihnclel ~rroductoc p r i r ehti orcletiaticlo, el Prrcio Total se ptictlc. c~alcwlara u t o ~ n i t i c w nicbntc.a partir d r Culltirlnd y de Prrcio C'llitnrio. E n el antiguo fc)rninlar~osr ~ w l u r r i aqucb
SERVlClO DE CONSULTORIA MANWARING 950 MAIN EASTON, PA I I I I I ORDEN DE COMPRA Fecha
Mnventario
Numero de orden
Numero de vendedor
Descripcion del product0
Cantidad
Precio unitario
Cantidad
I
Cliente:
Consolidated Office Suplies 414 S. Choctaw Drive Flagship, PA 12345
I
117
PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS
s r hitiesr niannalmrnte. (2) Pnvsto q11e Curitidad s r lista por scyaratlo e i posi1)le Ilra r u t*alwt.ilcnlos twn ella tanto en la ortlen tlc c.orn1,r.a en 4. c.omo en la tlett~rniinacihn tlr la canticlad total ortlenatla para cnalquier 1)rotlucto a lo largo d r nn p r r i i d o tlc tienipo. 'I'ales c.ilc~ilosp u r d r n usarsr p a r a responder a prrgnntas como: vita
La F i g ~ ~ 4.39 r a murstra t.1 modelo de tlatos qne se ohtienr de rste formnlario para brtlmrs dc. t w n l ~ r a .Ol&rvrsr que se ha elietlitlo la intrrrclacibn r n t r r PROD[-CTO y ORDEN. CANTlDAD y PRECIO TOTAL son atrihutos d r l upregudo ~ ) n t ~clw t o tlepentlen tanto de PRECIO como tle ORDEN. Esto es, la carrtidnd es el niinirro tlr unitlatlcs t l ~ rrn prodlicto q u r estin sienclo ordenadas r n una orderi en particular. El PRE(:IO T O T I I , r s u n atri1)uto q n r sr t:alc.nla y q u r s r aplica a PRODUCTO y ORDEN en la niisn~aforme qne C:\NTID.ID. Ybtese tam1)iCn qne DESCRIPCION. NUMERO DE INVENTAIRIO y PRECIO UNITARIO son toclos atribntos de PRODUCTO, ya , q w clepeti(1en shlo tltPRODUCTO y no tle ORDEN. E n el nuevo niotlrlo. DESCRIPCION tienr 1111 signifitylo tiifrrrnte qnf~r n el moclelo tit. la Figura 4.26, I;a que en rste iiltinm la DESCRIPCION in(-lniala c*antidad(pie r s t h i ordeninclose. La Figura 4.40 muestra nna versi6n mejorada tlc las f'actnras. Si st* conipara esta f a r t n r ; ~laon la tle la Figura 4.28 se ~ n i t d rv r r que 10s taargos se han sel)araclo t>nCnrgos dc? ( : o r d t o r i u y Otros Curgos. E n la factnra tnqiorada se muestran A c t i d n d y Horus en lugar tle Descripcicin d e Corgo, como en la original. Descripcihrc d e Curgo era un t.ainl)o lihre t3n el twal el nsuario podia escrihir la informacihn que considerase apropiatla. Poi- el contrario, Actiuiducl )- Horas son muvho m i s precisas. .Actidad inchiye shlo u n ninnero rslwifit:o d r actividatles predrfinitlas. tales conio andisis de sistema, tliseiio d r sistrma. o , las clue 10s Consnltores cstarian a cargo. ~nwgrainacibny ~ntrcnainientoa1 ~ ~ s u a r i con Horas, por supuesto, drlw ser nnnrCrico. Este rnfoqnr hace miicho nihs f'icil q u e un sistema automatizatlo calcule el numero d e horas t p r catla consnltor ha tledicado a catla t i p dc actividad 1m-a cada clirntr. El modrlo tlr tlatos para tLstafactura s r muestra en la Fignra 4.41. Se han ahatlitlo las interrelaciones r n t r r CONSULTOR y ACTIVIDAD, asi t.on~ola interrelacihn entrcl t1ste agregatlo y PROYECTO. El nilis grantle tlr 10s agregados tienr, por lo tanto, 10s atri1,ntos HORLIy CANTIDAD. Esto es tlcbido a clue el valor del atrilmto HOR-IS tlepentle cle 10s
f
NOMBRE
VENDEDOR
DIRECCION HECHO-A
I
\
* *
INCLUYE
PRODUCTO
*
PEDIDO TOTAL FECHA
PRECIO
DISENOY ADMINISTRACION DE BASES DE DATOS
SERVlClO DE CONSULTORIA MANWARING 950 M A I N EASTON, PA I I I I I FACTURA Fecha
N~irnerode factura
Proyecto
271 12
349
S i s t e m a de c o n t r o l de g a s t o s
Consultor
. Rodriguez
Actividad
Horas
Tarifa
Cantidad
30
$60/hr
1.800,00 1.800,00
A n a l i s i s de s i s t e m a
Rodriguez
Diseno de s i s t e m a
30
$60/hr
Rodriguez
Programacion
20
$60/hr
1.200,00
Chatman
Programacion
60
$40/hr
2.400,00
1
Total de consulta
1
7.200,00
OTROS CARGOS Descripcion
Cantidad
Suminlstros (Papel, Fotocopias, e t c . )
35,00
I
I
Otro total
35,00
Factura total
7.235.00
Cliente: Robespierre Manufacturing 1 7 9 3 B o n a p a r t e Road B a s t i l l e , PA 10000
tres favtorcbs: t:onsultor. activitlatl y proyetBto.Es t1t:cir. el atriln~toHORAS nos dit*c,twinto tiempo ha eatatlo 1111 determinatlo consultor a cargo tle una actiziclcrd para rrn tleterminatlo proyecto. 0l)si.rvese que el atrihuto 'I'ARIFG m t i t*onectaclotlirectanirnte con t:1 conjunto tle ohjetos CONSULTOR , ya qut, s d o del~entledrl consultor. Esto es, Manwaring c-ohra la del tipo tle misrtia tarifa p r horas para un tleterminaclo consultor inde~)c:ndientt.n~e~~tts at.tividat1 de la qur rsti. a cargo. Esto se muestra r n la factlira nirjoratla de la Figwa 4.40, se puedr ver a t p i clue la tarifa tle Rotlrignrz siempre es tlc $60 por hora. C.4NTIDXD intlica el cargo por el trahajo cir nn consultor en un at.tividat1 y para un l~royecto.Esto se calcrda n~ultil~licantlo la tarifu (clue se toma tlel a t r i h t o TARlFA del consnltor) por las horas ( q w se toma tlrl atrihuto HORAS) para la activitlad d r dicho consultor en e] proyecto. A1 comienzo del capitulo se vio que Joan Manwaring estalla interesado en un sistema quc relacionase consr~ltores,actividades y clientes. cie modo qur pudirra ol~tenerseinformacibn sobre s r ~ interrrlaciones. s La Figura 4.41 nos da el modelo tle clatos necesario. Los datos soportados por este motlelo d r datos sr puetlen manipular para crrar un gran nilmero de informrs, dos de 10s cuales se muestran en las Figuras 4.42(a) y 4#.42(11). El informe tle la actividad tle consulta de la Figura 4.42(a) muestra cuiintas horas ha invertitlo cada consultor en cada actividad tir~ranteel pasado a h . Por ejemplo, Chatrnan
PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS
+
EJECUTADO-POR
CONSULTOR
OCUPADO-EN
ON
*
*I
PROYECTO
I
ACTlVl DAD
CONSULTOR
Harris
ACTIVID I D Pr~+ramac& Entrrnamirnto al usllario .,lnilisis d r oficina Entratla d r Datos Convrrsihn tlr arrhivos Entrrnamirnto a1 nsnario -Inilisis tlr ofitina Convrrsihn d r arrhivo.: Progralnarih Di&o (Ir sistrn~as l i ~ i i l i s i (Ir s ofivir~a Progranlacii~n Disriio tlr histrrnas Anilisis d r sistrrnas Entrmamiento al usuario -Inilisis tlr of'ivina (a) lTn informr q u r rrlariona consultorrs r o n artivicladrh
HORAS
DISENOY ADMINISTRACIONDE BASES DE DATOS
Para
INFORME (:ONSliI.'L'OR-CI.TEUTE aiio I ~ I I Ct r n n i ~ ~ tan a tlit~irrnl~w 3 I . 10(81
invirtih 950 h n r w en prograrnacihn, 600 horas r n entrrnamiento a 10s nsuarios y 450 horas en las at*tivitladestle ofitina clue no potlrian fat:tararse a los clientes. El infornle t~oimsultorclie~itetlr la Figura 4.4%(1))muestra c r ~ i n t a shoras ha gastatlo cads c*onsnltoren at-tivitlades f a c t n r a l h para cada cliente. El no tie lo de tlatos tle la Figura 1.41 podria llsarse para ohtenrr una varicclatl d e informrs sindares. Por rjrmj)lo, podria generarse nn inf'orme para mostrsr precisamente q n t artividatles llrva a calw catla consdtor para cada diente y sohrr crlil proyecto. Por snpuesto, tanlbibn podria mostrarse la cantidatl de horas clue ellos gastan en cads actividad. Otro informe podria ser el dcl porcrntaje metlio para rada proyecto tle las horas factural)les cmplradas en t:ada activitlatl. l'or ejmmplo, si el inforine nmestra clue. comtr promedio, los analistas de sistrma o t q a n sblo el 5 por 100 del tiempo del proyecto, rntonws potlrian planificarse entrenainicntos adicionalrs para clrserrollar en 10s consultores mejores hahilidatles df: anilisis de sistema. La agregaticin y las intrrrelationcs d r alto nivd son hrrraniientas poclerosas qne tienen aplicacibn frecuente en el motirlado de sistrnlas complejos e n 10s ncgot-ins. En vertiatl. pricticamente todos los pro1)lt:inas de negocios tienen suficiente t:omplejitlatl 11ar-arequcrir la aplicacii~nd e rstos conveptos. Los ejernplos tlados en este c a p i t d o ilustran el potlcr dr la agrrgaciim y la rica variedad tle situariones en la t:ual se puede aplical-.
Modelado conceptual de objetos contra objetos fisicos Aunqur la agregeci6n y las intrrrelaciones cle alto nivel son herramientas muy utiles en la solucibn de una amplia variedad cle prohlrmas de modrlatlo. hay ciertos prohlemas en 10s clue 10s aspectus m i s dificiles purden resolverse con herramientas m i s bisicas. E n esta scrcicin se verLn algmos prol)lrnlas q n r surgen del~idoa las amhigiiedades d r nnrstro lenguaje cotidiano. Como se p o d r i apreciar una vez que se t:omprmdan y se aislen 10s eonceptos
PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS
I 2I
~nrolricratlosr n talrs aml)igiietlades, se p o d r i n resolver 10s ~)rol)leniastlrl modrlado tlr tlatos sinlplemente drfinientlo 10s conjuntos tle ohjetos apropiados. Los agrrgatlos J otros conceptos se puetlen usar para introtlucir construcriones adirionale, en el niodrlo tle tlatos segilri sea necesario. cuujuuto d e objetos Eli la seccihn anterior sr putlicron notar varias instanrias de conjuntos d c ohjeto? conreptunles. lln conceptuales. P o r ejrinplo, TIP0 DE MITERIAL y T I P 0 UE CU4DRILL4, en rl 1iiotlt.conjunto tlr objrtos lo de t l d t ~ ~ tles la Conlpaiiia Constructors Premier. son conjuntos d e objetos cont*eptualcs. cu!,as ~ustanc~ws son p r s t o que ius instantias representan tipos d r rosas en lngar de elernplos especificos J t.011objt>twt ~ c ~ n t . r ~ ~ t ~ ~ a cLrrtos l r ~ . tle talrs tipos. LTn tipo tit' m a t r r ~ a l1,uetlr ser "madrros tle 2 x 4 x 10' " en lugar tit. un p r t l a ~ ode madero r n espediccr. IJn tipo d e b r i p d a podria ser "tlr trcho" o "elbc~ti-it-a". mientras tjur una brigadu m rsperifiro putlierd s r r " l ~q u r esth l,onirutlo el t t ~ h o(It4 tdificio en 320 ;Main Street". 4 mrnudo rs newsario distinguir entre 10s conjuntos tlr ohjetos twntq)tualcs \. 10s conjunto dr oljjrtos conjuntos d e ohjetos fisicos cjue correspondrn a istos. yi clue alnllos t i p s tlc coril~mtos fisicos. 1Tn ronlui~totlr tle oljjetos sr ntw.sitan reprrsentar en r l mismo motlrlo tlr tlatos. Esto se ilustra r u r l r l r u objrtw cu\as instantxis plo sig~~iente. sou ol)jctos iisicos.
El problema de una biblioteca IJn estudiantr llama a una l h l i o t c c a y pregunta: ESTITDI4NTE: iTienen The Pickwich Pupera tle Charlcs Dickcns? BIBLIOTEC 4RIO: (Introduce la consulta r n el t-athlogo en linea). No. no lo tenrruos. E: 1Y Bleak House? R: (Introduce la segnntla twnsuha). No. E: ~ C u i n t o 1il)ros s tieurn tle Dit.ltei~sP B: (Introtlure lula trrt*rrat-onsulta). Tenenios tlore. E: i,De vrrtlatl? i,Cuiles son:' R: Ttmvnws A T(1le of7ico Cities, ropia 1; A Tale of Two Citim, t.opia 2: A T u l ~of T ~ r oCities, ropia 3. ) asi hasta la ropia 12. E: iTotlos son r l mismo lil)ro! No tienen tioce lil~rostle Dirkrns, tirnen shlo uno. H: No. no son totlos el mismo. LTno es la Etliribn Clhsica, otro rs una trad~lccihnal alemin. otro es lina tratluccihn a1 franc&. uno es una wrsibn twndensatla. ! asi suresivamente. E: P ~ r rl o hecho cierto rs clue totlos son cerdaderumente el mismo l i h . No importa lo clue se puetla Ilaber hrcho para Iwnerlo en tiifrrentes cdit~iones.sigue sirndo 4 Tale of 'fko Cities. Rralmente timcm 5610 iin lihro de Diel\ens. Esta twnvrrsari6n, Ijasada r n Krnt (1978). nui1t.a potlria o t ~ ~ r rpi ur ~ ~ s (t op r iilngiln hil)liotet*ariotlacia 10s argumentos que el hihliotecario esta tlantlo. Sin rmhargo. sirvts para tlrstacar un prol)le~nasignifit*ati~o cpir trneiiios con el lenguaje natllral clue 10s liunianos usan tbnsus twu\ rrsationes twrrientes. E n cstc cjcmplo. ~ q u irs ' Iv t p ' rnteiitlemos por libro? potlcmios pensar clue Sin pruf'undi7ar tle~nasiatlo,J fnera tlel twntrxto tlc csta t*onvcrsac~bn. "1111 l i l m tLsnn liljro'". 1 que no d e h haher ninguna anil)ipiietlcitl en el uso tle esa pa1al)ra. t'rro aqui el estutliantc y rl hihlioterario estin usantlo la palahra lihro tle (10s maneras niu) difrrrntes. P o r un lado --para el rstudiante-, un liljro es algo c*ontq)tiialqiie piietle tcntLr mricl~as\rrsiones fisicas tliferentes. De este niodo, A Tale of 7 h o Cities es realmente el mismo lihro. indel)entlicntc~ncntcsi rs la ropia 1 o la 8, independientemrnte tlr si r s t i en inplbs o en franc&, r inde1)t~ntlientrinrnted e si es una versihn completa o iina versihn rontlensatla. Por otro la(lo, el 1)ihliottwrio r s t i utilizando (a1 menos inic~almente)el otro sentido: Un liljro e5 alga fisicw q n r potleinos tcnthrr n nurstras manos, q n r l~otlemoshojear y poner en un rstante. El hihliotecario tlet-esita Hevar la ruenta tlr 10s lit~rosfisicosq u r tiene, independientetle un l h r o conceptual. mrnte tle si es la primera o la tlerimosepntla t-o~)ia
DISENOY ADMINISTRACION DE BASES DE DATOS
-Ilgunas \etSessc. tlistingw entre vstas dos formas tlr uso. iniiitiendo en clue 10s lihroi ~ . rstr tnoclo. i e purcle tletir: -';Cuhntoi lisicos sran denominacloi copias o ~ ~ o l u i r t e n eI)r Pat ?w' twmo ol~servadoresde las (,on\ eriacionei entre loi v o l u m r n e ~contwne la l ~ i l ~ h o t t ~ t ~ uiuarios del)enioi 1-ecwnot-t.1-clot. la griitr frrt~urntementeno o l w r \ a talei t*onvenioi. Ellos dicen iimplemente "1il)ro". cwn lo tfltr algundsveecs estin cluerienclo clecir "li1)ro c o n t q tual" T otrai "lihro liiit-ow.P a r a diirliar uria base d e clatos se necwita i e r capaz de detect a r eitai diferenciai. En rrlgnnos raws. loi usuarios se referirio 4 un objeto coi~ceptual, qne es una \ e r s ~ h nal)itrat.ta o grnerahzada de tin ohjeto. En otros raioi. loi uiuarios se refwirlin a uii ob.jeto.fisico. o und Instancw t.slwc4ic.a de un o h p o conceptual. P o r lo tanto, hi i e ( p i e r e resl)onder Ids nec.esitlrid(- dv todoi los nsnarios tle h a w de datos. lob mocleloi dc datos deben capturar eita distinri6n entre conceptndl \. fiiicw. Ha! mnrhas otras distinciones iutilrs que (.alltar. En la distws~hnentre el estndiantt~ y el Iddiotetm-lo, ~1hihliotecario eventucrhnrnte aw11ta (1ntxI i q 111iad i f e r t ~ n ( wtmtrc nn 1il)ro fisico y uno conceptual. p r o iniiitr en tlnr. si son edicionez diferentes, 10s lihros son conceptualmente cfferentes. Eito es, la Eci1ri6n C l b s i c ~( ~ h n p l c t a tlc A Tr~lesof Two Citirs ei un lilwo t*ont*eptualnicntctlistiiito de la l e r s i h condrnsada. Sin emljargo, el eitiitliante insist? en qne la editihn e i irrt*lt.\ante y clue conceptnalmente el liljro e i el mlimo a travbi de sns diferentei etlicionei. Lo cierto e i clue amhai partei ticnm puntos de vista legitimoi. T'ueito t p e lo que noi interria es el d i s e h tle haiei de tiatos, uo tenemos clue determinar t*ulilde l a i partes "tiene la razhn"'. Lo qne se neceiita rs conocer a (pi.claw de preguntas desean 10s nsnarios que el iiiteina p u e d a d a r r e s f ~ u r s t a lltia . vez que se h a y identificado el tipo d e inforniatihn clue i e netBesita.se puetlen tomar deciiionei sohre el ciiseiio d e 10s tlatos. Tdealniente i e tluisirran satisfatw ttrtlos 10s p u t o s de iista, inc~liiyendotrmto el (id cstu(iiantc como el del I~il~liotecario.
Crear el modelo de datos de la biblioteca Durante la f a w de definicibn d r 10s requisitoz dcl eiclo de vida del desarrollo de la base tle datoi (C\ BDI. romo analistas tenemos clue r e a l ~ z a rentreviitai a loi uiuarioi para dctcrniinar sus netwidaclrs y sus rxprctativai con r e l a c i h a1 iiitema cle h i e tie datoi. Durant r esta fasr r s muy importante clue se iclmtifiqnen wrrectamente 10s objetos y las mterrrlationes tlur forman la actnitlad cotitliana de loi uinarioi. Dr rstr motlo. si hay tlifrrentias sutiles en el signific.aclo dc lob diferentes tbrminos que ot-urrm tlr manera natural en 14s transacciones de negocios, tenemoi que i e r capaces cie identifiearlas d e manera que podamoi modc4ar lab interrelaciones con preciiihn. P a r a w e a r el modelo a1 problema de la bibliotera li+ cine t w d e r a r la, siguienteb preguntas: ~Cuintos1il)ros tlr Charles Dic.1cc.n~tirnc. la I~il)liotrra?i,Caintos lil~robdifvrrntes tirnv la cm la Etliribn Clisira Con~plrta?~Cuintoslihros tirnt. la Id)li~)tc.ca qnc. estin rn srgunda I~ibliott~a ediribn? ~ C u i n t a scopias tirnr la I)il~liotrc.adr "Pridr and Prrjadiw" "? P a r a eitai preguntas se pueden identificar tres t i p s de "libros":
LJna e d i c i h de un l i l ~ r oconceptual LJn l i l ~ r ofisico
A partir de las dos primerai i e purtlen vonstruir nos conjuntos de objetos y una interrrlacicin (Figura 4.43). Fijese en las cartlinalitlacleh minima y mlixima p a r a LIBROCONCEPTUAL. Estas rardinalidades muestran (pie el conjunto de ohjetos EDICION-
' Orgullo
J.
Prejuicio ( N . drl T . ) .
PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS
LIBROCONCEPTUAL
TIENE-EDICION
J-j
EDICION-LIBROCONCEPTUAL
Oliver Twist Edicion Clisica Completa Oliver Twist Edicion Penguin Oliver Twist Edicion en aleman Oliver Twist Edicion de Simon & Schuster Oliver Twist Edicion Abridged
OLIVER TWIST
David Copperfield Edicion Clasica Completa
DAVID COPPERFIELD
David Copperfield Edicion aleman
IJBRO-CONCEPTI 1L (.h dependiente del twnjunto tle ol~jetosL I B R O - C 0 3 C E P T I T 1 L . Esto rs, catla rclici6n cle 1il)ro t.onc.rptna1 rs nna cdic.ihn de uno !sblo 1111 lihro conceptual. An11q11t~(la rril)ursta a alp^;^ (1r las pregnntai. r n tlrfinitiba falla p o r c p r no rs c-;lpaz tle rrspondrr a preguntai t a k s romo:
El prohlrma tiene clue vcr twn rl conjnnto tlc o l ~ j r t o sE D I C I ~ ~ Y - L I B K ~ - C O V ( : E P T U 4 L . Dado clue cada inbta~wiae i uila edici6n tlr u n libro part~cular.no w p ~ ~ e t l etwnn p a r a r rdiciones i d h t i c a s dc,lil)ros diferentes. Un prohlen~aadicional twn rsta soluci6n e i (111~rtquierr que la EDICION-LIBKO-CONCEPTUAL contenga c*onsitlrral)len~e~~tr n15instancias de ohjetos qur, las q u r son realmrntr nrt.eb;rrias. La Figura 4.44 (la una nlrjor solncihn. E n rste caw. EDICION es u n conjunto tle ohjetos,indrl)endielltr. P u r i t o que nn lihro concrptual puedr t r n r r muchas cdit*iones. EDICION no p u r d r st-r un atrilmto tlr LIBRO-CONCEPTUAL. P o r tanto. la intrrrrlac>iOn entrr LIBRO-CONCEPTUAL y EDICION r s innt~hos-nnic.hos.Con rstr moclt.lo i r pnrdrn responder lai p r e p m t a s s o l ~ r rrdicionrs y no ha? cluplicacionrs innrcrswias tlr lab edicionrs twncrptuales. P o r ejymplo. Edicihn Cliiitx Completa aparrce shlo m a vrz r n rl cotljuntc~tlr o1)jrtos EDICION, nlirntras que aparece dos veer* inc.rustado en "Editihn Clisica Complrta de Oliver Tw jit" y "Edicihn Clisit-a Complrta d r David CopprrficM" r n el conjunto d r ohjetos EDICION-LIBRO-CONCEPTU.41, d r la F i g i r a 4.43. Puesto q u e podrian h a h r r muchos libros en la Edicihn Cli5it.a Cornpleta, este nurbo enfoqur rlimina una gran cantitlad de rhplit*acionrspotenc.ialrs.
LIBROCONCEPTUAL OLIVER
DAVlD "IsT COPPERFIELD
TIENE-EDICION
x
EDICION
Edicion Clkica Cornpleta
Edicion alernan
DISENOY ADMINISTRACIONDE BASES DE DATOS
Csando la Figura 4.44 se p r d e afiadjr a nuestro modelo la norihn de '-lil~rosfisicos" (Figura 4.45). Una instanria de LIBRO-FISICO represrnta nn l o l u ~ n e ncwnrreto que i r pnecle m a r r a r con nn n i ~ m e r odv identidatl 01 cual se 1 1 u d r detet-tar con un solo 11atrhn tle ld11iotec.a a la t r 7 . El1 rstv rjrmplo sc asrlmr q u r t.1 ninnero dtl idrntidatl in(-lurr todu la r. informarihn nt.crsaria para ~drntificardr f'ornia i1nit.a a un 1il)ro fisitw r n l ~ a r t i t - ~ i l at'or lo tanto. la clave extc~rrwllara r a t h l i h o fisitw rs vstr numrro. o r~limerotle itlei~t$ccic.ii,n Jisicc~. nltdiantr rl t w d p u r d r s r r raitrratlo (.on prophsitos tlr control dt. inlrntarios. El n h r r o (10 identitlilt1 purde i n t h i r informati611 tal romo r~zirnerotic. twpicl. qrle tlistingnr nna twl~iatlr rln d r t c ~ m i n a t l ol i l ~ r ot.ontq)t~ialdado tlr otra copia tlrl !nisnio lillro. 01156rl rsr la rartlinalidatl ~ i n o - i u ~ ~ t ~dt'h olas intrrrrlarii,n EST1-(:ONTEhIDO-EK tlv la Figurn 4.45. Tal rantitlatl afirina t p r m a tlvtcwninada cwm1)inatihn l i l ~ r o - r d i t ~ h n os fisitws difrrrntrs. Esto rorrrspondr con nnrstra 1111rtlr rstar rontrnidn (-11n i ~ ~ t * h1il)ros t*om1wrnsihn d e la rtditlati. I'rro la rardinalitlatl tanhi611 aitbvera clue 1111l i l ~ r ofisitw (lado
LIBROF~.ICO
Consitlrrtl un lihro ( f u rrontiene o1)ras srlerrionadas d r Janr h s t c m . ITn tal lil~rotwiitirnv tlifbrrntrs lihroa ronrrl1tna1c.s. aunquv s r 11urtlr dtxir q u r totlos tivnrn la tnisina t d ti611. Totlos rstos lihros cont~rptualesr s t i n r o n t t ~ d o m s t:1 miamo lil~rofisiro. como sr murstra r n la Figura 4.46. Pnesto tpir Pita situatihn no rs inusual, para ganar rn prrt.isihn \ amos a t-orrrgir la twdinalidad dr la Figrrra -1.45de uno-muchos a murhos-n~uthos(Figura 4.17). Esto es. n n s t w d l o 1il)ro fisico purdr r i t a r relationado con nn'iltiplvs lihros rontq)tuales. N ~ ~ r s t modelo ro tlr datt15 uuede a h no i r sufic-irntementr lrios. Si 10s usuarios tle la I ~ i l ~ l i o t r nrwsitan ra idrntifirar los lihros por el idioma thnclue furron l ~ n l ~ l i r a d oisr. d c l w ria t r n r r a IDIOMA romo 1111 011jrto al~;n-tt'.El idioma p c d r ser un atril)nto d r una w n l hinaci6n lil~ro-edirii~n (asumimdo q u r una t-tliritin d r n n li1)ro purtlr ?star en nn $010 ~tlioma) ( I pudirra ser nn w n j u n t o d r o1)jetos a p a r t r clue time una i n t r r r r l a t i h m n t h s - m n r h o s twn etliri6n-lil~ro.Esto rs, m a rdicihn tlatla de un 1il)rtl pudiei-a r o n t r n r r porciones rn Italiano, Franc&, E y h l . InglCs y otros. La Figura 4.48 m y s t r a IDIOMA como nn conjnnto d e ohjetoi rela+natlo a travCs d r la interrelati611 EST 4-EN-IDIOM 1 (.on el agrrgatlo de TIENE-EDICION. ITn libro fisitw p e d e entonws twrrespundrr con un ohjeto instancia ronsispwte tle nu l i h ronreptual. una edirihn y un idiotna, r l cual esta en el agrrgado d e ESTA-EN-IDIOMA. La thstinrihn rntre libros I-onwptualrsy lihros fisicos rs crucial para la solucihn cle este prohlema. Lo clue es ahn mhs importante. rsta distinritin w n r p u a l - f i s i r a cas i t i l en la solucihn d e muchos prohlemas similares en el modrlado de datos. Estos s r rncuentrsn en
PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS
TIENE-EDICION
CONCEPTUAL
EDICION
Pride and Prejudice Sense and Sen;ibility
E D ~ C ~ ODE N OBRAS SELECTAS
Persuasion Northanger Abby
)
#identidad = l23.4SCW I LIBRO FlSlCO
LIBROCONCEPTUAL
I.*
TIENE-EDICION
I .*
EDICION
LIBROF~SICO
murhos t i p s tlr situariones de negorios. Catla t c z (pie m a pala1,ra se utilire ambiguamrnte. rl prot)lema potencia1 existe. Sin embargo. romo st, Ila tlemostratlo. la soluri6n es bastantr h ~ p l r Drfinicntlo . conjuntos de objetos p o r sel)wado. nno p a r a rada lino de los signifirados drl tbriiiino aint)iguo. y drfinirndo las interrrlacionrs apropiadas entre estos conjuntos tlr ol)jrtos, sr l ~ u e d eronstruir u n modelo cle datos clue projcw toda la informari6n que lob muarios requiereii. 4lgunos rjemploi aclirionales ayudarrin a a r l a r a r esto.
Fabricacih de piezas La Empresa Robespierre t i m e talleres de dlseiio. tallerr, tie fahriracihn y almacenri. Estos talleres d e diseiio procluc*eny almarriiari lriezas. [Tila pieza se disriia s d o en nn taller.
DISENOY ADMINISTRACION DE BASES DE DATOS
. / ESTA-EN-IDIOMA *
LIBROCONCEPTUAL
TIENE-EDICION
*
EDICION
~ ~ r puedr ro s r r daboratla y almat*en;rtla \)or varicrs tallerrs. DespnPs tle t~r~trt~vistarse con 10s cl~~riios. Louis y Mariv Rlatles. y con varios cle 10s ofirinistas y grrentcs dr Rolwspirrre. 10s analistac de sistrrnas tlt.tt.1-minaron clue las s i p i r n t e s son prrguntas ti1)ic.a~:
E s t i rlaro c p e la mayoria d r rstas I~rrguntastienell clue ver (.on seguir el rastro de piezas rsl)etd'ic.as t p r l'urron disriiadas en n n taller, conf'cwionaclab en otro p lurgo guartlatias r n un a l m a c h . La F i p r a t.49 rs rl rt.sultado d~ un primer intento tit. 1111 n ~ o d r l otlr datos p a r a estr proldema. Note la, t*arditialidadrb. Se pnede I-rq)ontler a la primrra prrgnnta -iQub piezas f w r o n t l i s r h l a s en q116 ~allrr?- porqne rada pieza st, tlisriia en
*
PIEZA
ALMACENADA-EN
/ X
DISENADA-EN
DEPENDENCIA DE DISENO
HECHA-EN
@ % !!@
DEPENDENCIA DE FABR~CAC~ON
*
ALMACEN
127
PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS
n n iinitw taller. Si una pivza falla. se pnede nsar el n u m t m de pieza para itlentiliwr Gsta y tleter~ninartl6ntlr flit, tliseiiada. Pero 110 potlemos decir d b n t l ~f w fahrivada. pntxito clue una pieza pnetle f'alwicarse en niuchos tallere5 tliferentrs. La tc.rt.tbra prepunta -iQnC cantitlad tle piezas 1235 hay en el almat*GnLeuington'L se pnetle ~ s p o n d ~put.sto r, t p el inodelo captnra la cantidatl tle piezas ali~iacenatlasen catla almacin para cada t~oni1)inarihn p i e ~ a ~ a l n i a c i nDe . este modo. el modelo de datos de la Figlira 4.49 p r m e e la mayoria t l v la informatihn tjne se ntwsita para rrsponder a las prepuntai. Un motlelo de tlatoi nitbjor. qnc rripondt' a todas l a i pregnntai. se tiinestra en la F ~ ~ I I r,~ 1.30. -Iqni se tlistingiie entrta piczas conct~ptnales\. piezas fiiit-as. L n a p i e ~ dt-oil(-eptual represents nn tipo tle pieza y tiene nn ninnero de picza. qne qc It, asigna a1 tliseiiarla. Esto es prwisaniente lo clue se entientle por PlEZA en la Fipura 4.49. I'na pezd fisicd es und 11i*tancia 1 ) a r t i t d a r tle sn t~orrt~sl)ontlit~~itt~ l!it.za cwnt.eptua1. I'or lo tanto. la interreldc.thn entre PIEZA CONCEPTUAL y PIEZ-I FISIC 4 tbs uno-niwhos: I na piwa Cisica taorrespontle a shlo una pieza conct~ptnal.p r o und pieza concrptnal t.orrt.sl)ontlc. a nint-has 1)lexas fisicai. Una pieza fisicd tieiic 1111 iiiiniero de serie qne la 1tlentifit.a. M i s aim. bsta fut. fahriratla en shlo un taller. y ell tin momento datlo estL g~lartlatlaen 1111 solo a1niat~Gn. Este motlelo de datos resl)ontle a todas las 1)reguntas listatlas anteriorniente. Se ha on~itido CANTIDAD twmo atri1)nto tle (.st(. motlelo de datos. La cant~tlatltle 1)iezas en un alnxt.611 11urt1,vtletrl~niinaisr1)ust.antlo 11' instancia tlrscada de almac+n r n el conjunto tlr ohjrtos ALM4CEN y lnego,cwntando el numero dt. piczas fisiras relationatlas con este alniacGn en la inttw-rlaciOn ESTA-ALMACENYD I - E h . Pnesto que la c*omputadora pnetle twntar l i t i tnente el ninnero tle tales instancias es innecesario crear Iin atribiito sul)erfluo C m T I D A D .
CONCEPTUAL
DISENADA-EN
HECHA-EN
Objetos conceptuales para 10s servicios de consulta Manwaring 1lo largo tie u n period0 tle varios aiios. Manwaring ha tlesarrollatlo m a serie tIe sistemas tle twnputarihn p a r a sub ciicntcs. DespuGs tle trahajar con ~nnchosclientes tliferentes. el rquipo tle Manwaring ha encontrado que twn frwuentia Gstos tienen necesitlatles sinnlar r s , por lo q u r ('1 mismo softwarp sc pnetle usar p a r a estas neces~dades.P o r ejemplo. Statten necrsita u n sistema de contahilitlad por cohrar. de contabilidatl por pagar, n n sistenia de ronta1)ilidatl de costos y u n sistema tie nhminas. Crear sistemas generales p a r a la contahilidatl por cohrar, 1)or pagar, de twstos, p a r a nhminas, p a r a control de inventarios y otros, Manwaring puede satisfacer las necesidades d e muchos clientes a u n costo retlncitlo. A partir de esta experiencia surge la d e c i s i h de crear sistemas bLsiros en cada m a de estas Areas. La Figura 4.5l(a) muestra u n modelo de datos que d a la interrelacihn entre 10s sistemas basicos y 10s sistemas de 10s clientes que usan 6stos. Los sistemas hisicos tienen numeros de versich para indicar las diferentes versiones del sistema. P o r ejemplo, la primera versi6n de u n sistema de contabilidad por pagar pudiera haber tenido el nhmero tle versi6n 1.0. La segnnda y la tercera versihn pudieran tener 10s n u n ~ e r o s1 . 1 y 2.0, respectiva-
DISENOY ADMINISTRACION DE BASES DE DATOS
mentt~.Puesto que rada sistenla Iiisiro purtlr tener murhos niin~rw)!,de versionrs y rada uiimero 11: versihn sr puede a p l i w r a i i i u ~ h o ssistemas hisit*t)s.la interrdacihn viitre SIST E M 4 BA4SIC0y NIIMERO DE VKKSION es la tle ~nurhos-nmrllos. Catla sisteu~atlel rlieutr r s t i rt~larionadoa1 sistrma(s) lrhsitw a partir tlrl (-11a1fue ronstituitlo. Sin e m h a r p . put.sto clue el clivnte s i e n ~ p r re c ~ t i l ~ iuua r i versihr~espet*if'it.atlel sisten~al)isit*o,el sistema drl I-lirntt,esth r d a c i o n a d t ~ t a n t ocon (4 histema l)isit*oI Y I I I ~ Ocon el uuii~erode ~ersi611.Esto txs. la interrt+t*ihn EST+-INCLUIDA-EN tbs,entrt. SIS'I'EMA CLIENTE !,el apreg!gctclo tle SISTEM.4 BASIC0 y NUMTCKO DE \'ERSIO;\(. Esta interrrlatihn EST.1-IK(:IJIJIDA-E;X cs mu(-huh- nur rhos p o r t p e u n sistt*ma tle clitwte tlatlo in> m ~ taw m l ~ i ~ ~ ; ~ t i r l u i r i n n ~ c h a stwnil)inwiones tle sistei~1a-l)hsico/n~111e1-o-tie-versii~i1. se i n r l n i r i t:n muc*hoss i s t e u m (1r rlitmte (lifetlatla de sistema-lrisi~~o/ni~n~t~ro-d~-versiOn rentre. I A Fignra 4.51(1)) iuuestra las instancias para este modelo tle tlatos. El sistenla para el cliente Stattrn se mur.sti-a twmo un pinto del ret*tinguloSISTEM.1 CLIEN'TK. Estv sist t m a inrluye las twentt~spor pagar. v t ~ s i h n2.0, y por ello IVI el diagrama e s t i ronet.tatlo al p a r (tmtwtas por pagar. 2.0). Si el sistema de Stattrn int:luyrse otras versionrs dtb sistemris I)risiros estal-iail ilustratlas otras instanciai; como k t a . s i tronjunto *t~. tle Estr modelo tlqdatos ilustra ademis la tliatincih~ic o n ~ - t - ~ ) t ~ ~ a l - f iEl el twi~junto11e oljjeohjetos SISTEMA-BASI(:O es un conjunto dv ohjetos c o n t y t u a l e s !tos SIS'I'EMA CLIENTE t:s un twnjunto d r ohjetos fisicos. I k het.110, rste ejeiuplo es mu) similar a1 ejenlplo anterior de la Iri1,lioteca. Si s r twmparan las Figuras 4.51(a) y 4.47 i e purtle v r r la correspondencia siguirnte:
SISTEMABASICO
(a) Un modelo de datos para 10s sistemas instalados
SISTEMABASICO
Cuentas a pagar
(b) Un modelo de datos con instancias
PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS LIBRO ,CONCEPTUAL EDICION LIBRO FISICO -
SISTEMA BASICO NUMERO DE VERSION SISTEMA CLIENTE
El prop6sito (It, cstv c.jeiiil~lo.asi conio el (It, totlos aquellos qnc 11. han l~recrtlitlo1.n esta scwihn. r s ilustrar las ainl~igiirclatlrs(pie acechan r n el lenguajc natural tlur se ntiliza p r ; l t l t w r i l ~ i rlos retluisitos (It. los nsrrarios tle las 1)asc.stlr clatos. P a r a cstar seguro t p e los niotlclos cle datos son prr~cisos c*ouil~lrtosse delwn analizar c~~~itlatlosanncilte Ias circmlso s sistenla tle tancias tlc twla al~lic.aci6ny la t*lascbtle inlormacicin quc clest.an los u s ~ ~ a r i tlel I~asetlc tlatos.
Integraci6n de vistas: Un ejemplo
tltb vista. U t ~ atlrfinic.ih~~ m a ~ w r t i b nwstrinpitla (It. la I ~ a w (It. tla~os.
Los ejenil~lostlur, stbhail c.it;telo usautlo en 10s iiltimos tres t'apit~~los tirntlen a nnificarsc 1.11 la c*reat.ihntle 1111h i t w nic~tleloclue satisfaga 10s recpisitos tle los usuarios con 10s qut. sta ha vstado tral~ajantlo.E n iina gran organizatihn un rnfotl~irtan sinil~leuo es posihlc. ! el tltwrrollo tlr Iin proyet-to de 11aw tle tlatos 1)i1c.de1-eclurrir la crcatihn tit, varies nlotlc.lo~ 11e tlatos d i k l w t t - s crtwlos por 10s eqnipos tlc analistas que trallajan t.on 1o.s nwarios en las diferentes i r t w . Estos inotlelos s r l ~ a r ; ~ t l oses llaman vistas. 1)uesto clue catla uno tle 1 4 0 s relwewuta la forina en clue 1111 11s11;lriove a la base tlr tlatos. P a r a carear m a i1nit.a e intrgrada I ~ a s etle tlatos. rstas diferentrs vistas dt.l)en integrarsv c.n un i~nitwu~otlelotlv
waving ) ver t4mo 6stos sth1111tdenintegrar en un ill1it.o motlelo. El tmfotpe s e r i preser\ ; ~ r catla \ista en sn estado original lo nlhs posil~le! t*ontatatarloi coiijuntoi cle ol~jetosni la. tlif'cwntvs \ i.ta6 metliantc~la t.rt~tti6nde nne\ as intc~rrt~lationes entrcbtbllos. (:onsitlrrr las Figurai 4.41 ? 4..il ( a ) . l,a Fiprrn 4.41 contitwc nn o l ~ j r t oCI,IE\TE (*onlln a t r i l ~ u t oNOMBRE, ! la Figlira 4.51(a) twntirne ml twnjunto tle ol)jrtos SISTEhl 1 CLIEh'l'E cwn nn atrihuto YORIBRE CLIENTE. Puesto clue el a t r i l ~ u t oVOMBRF, CI,lENTE tlv la Figura 4.5l(a) ! rl a t r i l ~ u t oNOMBRE la Figura 1 . 1 1 rvpresentan el ~nismoatrihnto. un inodelo integratlo harh retluntlante a ~unotlr ellos. lTna iolntihii 1104 I)le scria relationar SIS'l'EM4 CLIEhTE a CLIENTE > rliniinar NOMBRE C1,IEhTE conlo atril)uto d r SISTEMA CLIENTE [cwno se muritra en la Figura 2.52(a)]. Sin ernl~argo.esta solutihn falla al t.onsitlc~arotras 11artt.s tle la Figura 4.41. P o r rjt~mplo.10s sistemae clientr se tlesarrollan tlnrante 10s propectos. De esta manera llarwe niis razonahle relacionar el ronjunto de ohjetos SISTEMA CLIEKTE al cwnjunto (11. o l ~ j e tos P R O 1 KCTO. wrno se ml~estrar u la Fignra 4.52(1)). La interrrlaci611 INSTAIL_lDODCRAVTE indica q u r un sistrma cliente fne creado tlurante una serie tle proyc.ctos. totlos ellos para el nlismo rliente. De este ~iiodo?podernos recorrer u n sisternu cliente a traj6s tle 10s proyectos utilizatlos para instalarlo p pasar a 10s c1ientc.s p a r a lox cuales sc. llwaron a caho los proyecatus. Ekta soliicihn integra dos vistas p nos tla rl sirnplt. y unificatlo niotlth tic datos tine rstamos hiisc;undo. La integraci611 tlv vistas para m a h a w tlr datos de una gran organizacihn tbs1111 11roh l r n ~ acwnplejo (juts rxyuiere del anilisis tle 10s conjuntos tle chjetcrs. los atri1)ntos 4 las relacionrs de las vistas por parte de 10s analistas y de 10s usuarios clue rstkn rnis laoliliarizatlos con ellas. Aqui solamente se ha mostrado iin ejernplo sencillo clue ilustra algunos tlv 10s conceptos hisicos involucratlos. E n una situaci6n concreta de negocios, el proceso tleb intrgraribn de vistas p e t l e trahajar en algunos casos. p r o en otros no. Corno se h a tlirhcl antrrior~nrnte.debido a la cornplrjidad del desarrollo de u n proyrcto Or base d r datos algiinas organizaciones optan p o r no tener una hnica base d e datos para toda la informacihn qne necesitan. Escogiendo rstr rnfoqiie, estas organizacionrs han evitado algunos de 10s aspectos mas dificilrs de la integracicin d e vistas. P o r siipursto, las hases de datos mhs prcpriias son representativas de la variedad de vistas de 10s usuarios y cada una de estas hases de datos requerirh de iin procrso dr i n t e g r a c i h de vistas para su diseiio exitoso. 1112
DISENOY ADMINISTRACION DE BASES DE DATOS
SISTEMA-
TIENE-VERSI~N
*I
INCLUIDAEN
*
7
SISTEMA CLIENTE
I*
1 PERTENECEA *
rl~t
1
(a) Un primer intento de integracion de vistas
SISTEMAESTAINCLUIDATIENE-VERSION I
EJECUTADO-POR
NUMEROVERSION
I
(a) Una integracion de vistas mejorada
E n este capitulo se han estudiado los funtlammtos del niodelado conceptual de datos. Se ha definido el ccmcepto general d e un modelo de tlatos, se ha dtwrito una metodolob4a d e niodelado y se ha mostrado chmo esta metodologia se puede usar para 10s twnjuntos cle w n sultas de los usuarios y para los informes existentes. La p a l a l m modelo se usa a incmudo en tres nivrlrs dikrentes: como una metodologia para la creaci6n tlr modelos d e segundo nivel. como un esqnenia de h e de datos qnr define 10s t i p s de datos clue se delwn tenrr en una aplicaciOn en particular, p como una hase de datos i~npleineutada,que conticme hechos especificos rstructurados a1 esquema de segundo-nivel. Un mocirlo d e datos conceptual t a m b i h se denoinina semcintico, pursto qne captura el significado de las cosas en el mundo real. Los nlodelos d e tlatos conceptuales consisten de conjuntos d e ohjetos. interrelaciones y sus agrrgados, atributos, conjuntos de especializaci6n. indicadores d e cardinalidad y claves. Los conjuntos de ohjetos pueden ser lexicogrificos, clue contienen instancias clue se pueden imprimir, o abstractos, que contienen instancias que no sr pueden impriruir. Las instancias en conjuntos de ohjetos ahstractos estlin representadas por claves subrogadas, las cualrs son identificatlores internos sin n i n g h significado externo. Las interrelaciones estahlecen conexiones entre instancias de dos conjuntos de objetos. Los atributos son interrelaciones entre dos conjuntos de objetos que son funcionales en la direcci6n de uno d r 10s conjuntos de objetos. La especializaeibn de conjuntos de objetos, como su1)c:onjuntos de otro conjunto de ohjetos, nos dan un medio para definir atributos para algunas instancias sin necesidad de definir kstos para otras instancias.
PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS
13 1
Las cartliiialitlatlrs tlr una intrrrrlacii~nintlican cnhntas \rc8rs1111 c w n j u ~ ~tlr t o ol)jrtos r s t i rrlaciouatlo I ~ a j otlit.lia intc,rrrlacihn con uu rlrrnrnto s i n ~ l ~rlnr c.1 otro r o n j u ~ ~ t cl )m . t.artlinalitlatlcs son uno-IIII~I.no-niut.hos p ~ i i ~ ~ t . h o s - i n ~[,as ~ c claws ~ l ~ o ~itlrntific-an . tlr forma in~ic.aa 10s ohjrtos. 1,as clavrs s n l ~ r o g a d son : ~ ~idrntificailorrs intri-nos. Las c.la\~rsrxtcsrnas son s111)twnjuntos d r atrihutos li.xit*osq n r juntos idmtifican uii c~ltmirutorn nu c o n j ~ ~ n I'hantlo to tlr ol)jc.tos. 1711aprrpado rs una intcrrrlacihn vista twmo un conjunto tlr ol~jrtc~s. agrrgatlos rs ~ ) o s i l ~al~ortlar lr p ~ r o l ~ l t wtle a s inotlrlaclo rnis coniplejos. Los aprrgados puctlrn triicr atril)utos y participar 1\11otras intrrrrlacio~ws.Estas nurvas intrrrrlaciones tain1)iin puctltm s r r agrrpadas y s r 11ucvlcmnsar romo eoiijnntos d r ohjrtos r n otra intrrrclatii~n. Los t w n j ~ ~ n t otlrs ol)jctos c w n t q ~ t u a l r rrprrsrntan s rntitlatlrs q u r son t i p s tlc ( m a s . P o r rjrmplo. un lihro tw un c:onjnnto tlr ohjrtos t.onc.eptnalrs no r s u n 1il)ro fisicbo r n cwnc ~ c t o sino , clue rrtwrscwta a una rntitlad conceptual compleja tlcwrrollatla por t.1 autor. El 1il)ro c~ont:rptnal~ ~ n cttw:r ~ l c mnvhas rrlirioncs difrrrntes y cada r t l i c i h pncdt. ttbnrr tuna imprrsihn tle muc~hascopias fisivas d r l lil~ro.Las ropias fisicas son lil~rosfihicos, 10s c d r s potlrian rellrrsrntarstb tsn 1111 cwnjnnto propio tlr o1)jrtos. Existrn m w l ~ o sO ~ I - o s r j r n ~ p l o s tlr la distincihn rntrt. t*oncq,tualy Fisico. Conq~rendirntloc4mo una simplr 11alal)raconlo l i l ~ r os r p ~ w t l cw a r d r manrra anhigua. rl analista e s t i mrjor prrparatlo llara (*rear estructnras (11'niotlrlaclo para ~ u a n i p u l a r10s tlihrrntrs signilicados posi1)lrs. Mcvliantr r l anilisis d r las prrguntas q ~ los r usuarios t p i c r e n rrslmnclrr ! tlr 10s infornws tic- organizacibn cpir rstos nsuarios nrcesitan. s r pnrtlrn cwnstruir 10% motlrlos twnccptualrs. E n rl proyrcto tit. tlesarrollo d r una gran hasr tlr tlatos clifrrrntrs analistas t r a h a j a r i n con tlifrrrntcs grnlws clr ~ ~ s n a r i para o s c r r a r 10s tlif'crentrs motlrlos tlc tlatos o vistas: las c.oalrs rlrl)c~hnintrgrarsr. Estr procrso implira quitar shlo aqurllos cwnjnntos cle o1)jrtos. interrrlacionrs g a t r i h t o s tpir son rrduntlantes r n t r r las vistas y luego ronrct a r las vistas. tlcfinic:ntlo nuevas intrrrrlaciones. Estr proccso r r c p i r r r tlur 10s analistas !10s usuarios quc t r a l ~ a j a nen Arras tlilrrrntc-s s r t:omuniqucn para rntentlrr c4mo rs q u r d e h n integrarsr las vistas tlr nianrra prt-cisa.
1. Drfina con 511s propias palahras catla uno tic. 10s tirminos siguirntes: a. mnclrlo
h. ~notlrloorirntatlo a o l ) j ~ t o s c. t:onjunto d r objetos
d. t-onjunto d r ohjctos lbsitws e. c l a w snl~rogada f. grnrralizacihn g. ronjnnto tlr objetos agrrgados h. interrrlaci6n funcional i. c*artlinalitlad j. uno-ninchos k. atrihuto I. intrrrrlat,i6n n-aria
2. Itlrntifique ! esrriha sris construccionrs utilizaclas en el modelatlo t ~ ~ n e r p t u atlcl clatos.
3. Discuta chmo las rntrevistas y el i~nilisisde los infornirs se ntilizan con el modrlado coneeptiial de datos r n rl proeeso tlel diseiio conceptual d r I ~ a s etle datos.
4. Disc-uta c6mo se a n a l ~ z a nuna srrie de c o n s ~ ~ l t potencialrs as tle 10s usuarios para d r t r r minar las construccionrs siguirntes en nn motlrlo de datos concrptual: a. conjmtos d r ohjetob h. '~trihutos c. intrrrelacionrs d. rsprcializaciones
DISENOY ADMINISTRAC~ONDE BASES DE DATOS
5 . Discuta r6mo sr analiza nn inform. para ileterminar las signirntrs twnstr~~cciones en nn a. h. c.
modrlo cle datos conceptual: conjuntos clr d ~ j r t o s atrihntos intrrrrlachws d. rsprcializariones
6. 1En clui +ituacionrs s r nrrrsitan 10s agrrgado> en rl motlrlatlo tlr los clatos? i,Cnindo son apropiadas las interrrlacionrs dr niis alto nil el? D i r j r n i l h dr situanone* en r l c a m p d r 10s ntyorios.
Parte A
1. Conrcte raila tirnlino con su drfinici6n: -1nurhos-rilurhos a. l a l o r usatio para iilrntifirar univoc*amente a una instancia oljjrto. -interrelnribn binaria 1). Intcrrelacibn r n t r r tres o m i s conjuntos d e objetos. c. .4tril~utcrslixicos ('uyos \ alorrs itlrntific*an a una hni-(lprrgado ca instancia. -modelo semantico d . C o ~ ~ j u nde t o ohjetos clue consta tlr instancia* cpir no s r purdcn impri~nir. -conjunto de objetos ~ ~ b s t r a r t oe.s Un enlace entrr instancias cle tlos conjuntos d r ohjetoh. f. 'Mirmho particular clr un conjunto de o1)jctos. -especializaribn g. Cardinalidad d e interrrlacibn que es murho en -in terrelaci6n a n h a s dirrrricrnes. -UILO-(I llno h. Conjnnto tle oljjetos q u r rs un s u h o n j u n t o d e otro conjunto de ohjetos. i. Propiedail tie t r n r r todos 10s atribntos del conjunto -$~ncibn (map) de grnrralizacibn q u r eslwializa. --objeto instan& j. isoriar elcmrntos en nn hrea con elenientos d e otro irea. -rluve rxterna k. Una interrrlari6n vista conio nn cwnjunto de ohjetos. -valor nu10 1. Carclinalidatl d r intrrrclacibn q n r rs nno en ainhas direccioneh. -claw nl. Captura el significado d e las entidadrs del muntlo real y lab interrelaciones. -herenria 11. Valor de atributo clue no existt- para una instancia en especifico. o. Interrrlacihn r n t r c dos conjuntos cle ohjetos. -interrelacibn d e alto-nivel P a r t e B. P a r a rada uno d e 10s problrmas siguientes w e a r u n modelo d r datos conceptual consistrnte d e conjuntos d r ohjetos, interrrlaciones, atrihutos, y otros, qne puedan usarse para responder prrgnntas similares a las preguntas tiadas. Indiqne las cardinalidades. Asuma q u e rstos modelos son para n n entorno uniwrsitario:
2. ;,Cuintos mirmhros de la Facultad lian sido asignados a1 departamento de matemiticas? iCcimo s r llaman? iQni611 r s el encargado d r l departamento de ~ n i ~ s i c a ? (Nota: "matemiticas" y "musica" son s61o rjrmplos de departanirntos. El modelo dehe ser capaz de responder a las nlisnias pregnntas si fuesen, digamos, sociologia, ingenirria mecinica o cirncias politicas.)
3. ~ C u i l r son s 10s estndiantrs clue estin mrjor en historia? gY en espaiiol?
4. ~ Q L Imirmbros P de la Farnltad estin inipartiendo cnrsos d r sociologia? ;QuC cnrsos e d t i impartirndo?
133
PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS
6. ,Cnhnto, a1en1ant.s e s t i n registratlos forn~almenteen (4 lwograma tle honor? P a r a r 1)rogr:rnla tle honor! acll~t.llostllltbe'thn. i , t l u i h t+ 511 t ~ m i n l t c ~(11.1
8. iQ11i. vtwletlor ha vt.ntlitlo l ~ o d l l v t o staonprec'io ,,or t w t i ~ n ade 5200Y i,Cuhles .son las fet.has tle estas ventas? 1(:11h1 es el salario hahe para ~ s t o vt~ntletlores'.' s
10. i.Cnintos rajeros tienen twentas tle ahorro t.11 t.1 I~anco?i'k twhntos gt~rentes?i,Clllintos rajeros no timen:)
11. ;,Cliintoh gerentvs tine tienen t.uentas tle ahorro r n el 1)anco & r i p a r m p l t ~ ~ t l otprr s tain1)iin tienen cwentas tle ahorro en el I)antw? Parte C. Setiale (pi6 1)regllntas no se l)nt'~lenrt.spont1t.r por r a 4.21 y explitj~lrpor (1116no.
t.1
niotlelo tlv datos tle la F i p
12. kCuL1 es cl saltlo metlio tle las cuentas tle ahorro tit. lab fh1)ric.a~clue titwell niis tlr ,500 euq~leatlos?
13. i,Cl~intasmujereb ahrieron t3uentasrorrientes el 5 tic diciem1)re tle 1988? (Figlira 1.22). 14. i.Cnhntos vspacios e s t h tlisl)onil)lt+ para nnevos a r l d e s en rl Iluerto IIeher Cit!?
15. ,C115l es (4 pronlvtlio dtl bitla tit. lob manzanos Jonathan en el h ~ t e r t oPleasant\illt.:) ( r e t u m l v tjiw Jonathan es nna karitvlad y manzana es una cspecie). 16. i,CuLntos Brhtrlt*~tle rnt~locot0n(\el hnerttr Springtown tienen mLs tlt- tlos \ arietlatles? Parte
D.
SERF ICIOS 1)E C0hSIILT-I MAY\ 4RING INFORME l)EL PEHFIL Db: LOS CONSIrLTORES
I
N01nI)rr
NSS
Fwha dr cwntratacihil
ChdigoEsprt:ialitlad
Eslwcialitlatl Entrenamirnto a1 11s11ario Entrada de (lator Con\ rreicin tlr archi\ {I. I'ropmacihn G~nvc.rsihntle archivos Disc-iio de sisterr~as Entrenamiento al usuario Programacibn hiili& (lr sisten~as Disriio de sistrn~aa
DISENOY ADMINISTRACION DE BASES DE DATOS
P a r t e E. A4grryarihn. P a r a cada una tlr las st.nteneias siguirntes dihuje tin motlrlo de datos q u r nuwstrr la intrrrelatihn m t r r 10s conjuntos de o1)jvtos. una akq-t:gat:ihn d e la intrrrelaci6n y atrihntos drl agregatlo. a. Los rstudiantes rerihrn clases y otltienen t*cilificationesr n las clasrs. 1 Las seccionrs d r caila twrso sr ofi-rwn en horarios rsl)rt.ifit:os y en aulas y cdificios. c. Catla pt4otlo rseolar purde estar reprrsrntatio por una sesi6n (otofio? invirrno: primavrra y vrrano) y lun afio, y twmirnza y termina tm frehas rspecificas. d. Cada dia 10s e m l h d o s trahajan tin tierto n i ~ n i r r otle horas. e. 1,a gtmtr se snst~rihea pt.ri&lit*os ?- lah soscripcionrs tirneu frchas d r inicio y d r trrrninaci6n. f. Los pilotos timen ml t.it>rtonunicro d r horas tie mtrenaniirnto para catla t i p tlr avih. P a r a cada uno d r 10s pro1)lernas s i p ~ i r n t e s( w a r 1111motlrlo d r tiatos w n c e p tual. twnsistentr r n conjuntoh tlr ol)jt.tos. intrrrrlacitrnrs. atri1)utns. y asi sucrsivanwutr, q u r purtla utilizarsr para rrslwndrr a prrguntas similares a las preguntas t~atlcrs.Use agrrgatlos r intrrre1at:iones tlr alto nivrl s r g i ~ rnrcesitr. ~ Intliqur las carchalitlades. iCuhntos rstutliantes t&n twrsantlo Fisica 201? i,Cnil rs la srvci6n i p e Andrea Etlrus e s t i t o n ~ a n d o ?,Cnhntas veers ha cnrsatlo Jim Hartly Contabilidad 201. c u i n do. quiCnt.s fueron sus profvsores. t p d ca1ifit:at:iones obtuvo? Dustin Tonws. p r o f t w r tle historia, desra utilizar la habe tlr datos para elahor a r prrguntasso1)re la historia ruropra. C r r a r 1111 motirlo d r tlatos srparado para eatla uno d r los ~)rol)lvmassiguirmtes. iCuhntob r q r s d r Prusia tenian nombre Frrdericlt? i,C:tLindo vi\it.ron J cuhntlo reinaron? ;,Gohernarc111en algiln otro pais tlurante suh vitlas? i,Hul)o paises de Europa g o l ~ r n a d o pois n i ~ ~ j r rtlurantr rs el sigh 11:' i,Cualrs? #ur el ahurlo tle Maria Antonieta pol)rrnantr d r algfin pais? ID(. c u i l ) twiindo? ,QuiCn f u r sn inatlre? 1Qub go1)ernantrs tlr paisrs tlifrrrntes se c;lsaron entrr si? ~ C u h n t o shijos tlr Enriqur V1II fueron nionarcas d r Inglaterra? ,QuiCnes furron sus madrrs:' Brick Wall Communicatiorls tienr u n grupo tlr cstacionrs d r tele~isiOn.Estas rstacionrs trlrvisan serialrs, anuneios t*omercialrsy twmtos drportivos en tlirecto. C r r a r u n niotlelo separatlo p a r a cada pro1)lema a t:ontinnaci6n. ~QuC.cadrnas transmitrn srrirs tle Batmun? i H a retransmititlo el afio pasado la Brick Wall alguno tlr 10s episotlios del periotlo de 1988 tlrl Show de Cosby? , P a s a r o n el ( p i n t o episodio? iCuiint10 y t p C . cadmas? i C u i n t o s jurgos de 1)asrl)alltransmitieron el aiio pasatlo? , E n quC frchas transmitieron partidos r n t r e 10s Dodgers y 10s Mrts? iQuk e q u i p s fueron transmitidos m i s a mrnudo? iQub hay con los juegos de futhol? 1Y con 10s d r haloncesto? i Y 10s I)artidos d r ttmis? 1Torneos d r golf"? IY otros deportes? i H a jugado tenis Strffi Graf por algnna d e las cadrnas d r la Brick Wall? i,Qui. cadenas y cuindo? iQ11d ariuncios s r h a n niostrado m i s dr tres veers en una rnisrna hora en una misma catlena? iCuitldo ocurrih rsto? i A qub hora, q u t dia y en qnb cadena? iCu2into cobra la Brick Wall por la t r a n s m i s i h de cada uno de rstos anunt:ios? F r a n k Howe, director representante d e la firma d e ahogados D e w q . Meenem, Outt J Howe, ha drcidido que la firma se heneficiaria sustantialmente teiliendo una
I35
PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS
h a w d r datos que sea dirc.t*tamentraplicahle a asuntos 1egalt.s. Para vatla uno tle 10s proldrmas signientes w e a r 1111mocklo de dates separado.
25. ;.Qpih taasostienen opinitrnes vertidas solwe la Sec*t.ihn4 1 1 . 3 ~drl c 0 d i p f t d t u l ? ;Qnb ctrrtcs f'wron in\oluc*ratlas?1Cnindo sr a t c ~ n d i t ~ oestas n ol)iniones? ,C)ui'. stwiones tlel cbtligo fvderal f'ueron interpretatlas como rl t-;lbo de Bltrtk \.s. Ilill~tnls:'
26. iQu6 firma5 lian reprcwntatlo en la rorte a Grnrral Continental tlurante Ins illtinios diez aiios'? ;.Cuile,s fnei-on 10s raws: cm I * L I & el krrrdirto f'ne favorable: ! t*uilfue el importe de las rrtwl~qwnsas?1Cnilc- fneron las firmas opositora5? ;.QnC. otras gr'lndes cornpaiiias fnrron repreientnclas 11orestas firmas en la m i s n ~ aC.lwra! P a r t c F.
27. Como ~ ~ a rdtee u n ~ ~ r o y e r para t o Armc 1nsuranc.r Co~~~pan!. uno tle 10s analistas tlr hlanwaring creh un informe p a r a medir la l)rodnrti\idad del personal d e esta twmpaiiia cn la cntratla tle tlatos. Este informe da 1)al.a c-ad;~dia tlel me> el niln~ero( I t transactiont~stlt. ratlir ti110 que han sido introdntidas por rada en11)leado. 1)etlnzc.a el modelo d e datos t*onc*q)tualque potlria usarse tLon~o 1)ast. para el infornie cjw sr miestra en la Fignra 4.2E. P a r t e G. Use ronjnntos tie 01)jt,tos (wnc.q)tnales \ f i s i ~ wkbnra w e a r modelos d e tlatos para 10s 1)rol)leniassignientes:
28. Ilna ;lei-olinea dewa c.ontestar a prrguntas romo las signientrs sohre st15 aerona\es: cle asirntos del Boeing 72i? 1Cuintos motore5 t i m e 6ste! ;,Cuil r s la t*apac.~dad i C ~ ~esi lla nirtlia tlc cdad dc.1 parque de X s ? ;QuiCn es el met.&nicwjrfe responsaI ~ l etlel servirio tlel a\i6n numero 1388? iQuC rompaiiia fabric4 dirlio a\ 10n?
ACME INSURiW(:E (:OhIP.ih\ INFORME DE PRODUCTIF-IDAD MENSUM, Para v1 niry qnr trnnina rn nlarzo 31 Emplrado n h .
KO~II)IT
Frcha
213
l
392 1
S. Stallonr
r >
l i p tlr transaccihn
N u w a p6li7a Camlio dr phliza Rrclamacihn
a
3
Pago Can~hiodr pOliza Rrt.ta~nacicin
213
Nrrw a phliza Pa go Camhio tlr phliza
a * *
Cantidad trtminada
DISENOY ADMINISTRACION DE BASES DE DATOS
Parte
H. Integracihn tle listas.
2. I,wr 111sartic.ulos d r catla uno d r 10s siguientrs mcrtlrlos dt, tlatos y determinar 1-hmo rstos ~notlrlostratnn la agrcgacicin. I)etrrminm cuando esto* a r t i t d o s dan inforrnarihn suf'iriente para responder a cstas preguntas: iPuede un agregado t r n r r atri1,utos en el moclelo? i,Puede 6str particil~aren intrrrelacionrs? i,Purden agregarse tnnil)iPn estas interrelnt%mcs? a. El modelo tle entitlad-intrrrelaci6n (Chen 1976) h. El modelo de datos wmiiitic*o ( H a u m e r y McLrod, 1981) c . El modelo de tlatos fnnrional (Shipman, 1981).
EL MODEL0 DE DATOS RELACIONAL
El modelo de datos relacional y el desarrollo de sistemas El modelo de datos relacional: Conceptos fundamentales Relaciones Valores nulos Claves Claves externas (ajenas) Restricciones de integridad lntegridad de la entidad lntegridad referencial El proceso de normalizacion Primera forma normal Segunda forma normal Tercera forma normal Otras formas normales Quinta forma normal Forma normal dominio1Clave Transformar el modelo conceptual en modelo relacional
Transformar conjuntos de objetos y atributos Transformar modelos sin claves externas Transformar la especializacion y la generalizacion de 10s conjuntos de objetos Transformar interrelaciones lnterrelaciones Uno-Uno lnterrelaciones Uno-Muchos lnterrelaciones Muchos-Muchos Transformar conjuntos de objetos agregados Transformar relaciones recursivas Ejemplos de transformaciones: Servicios de Consultoria Manwaring Comparacion del modelado de datos conceptual y relacional Resumen Preguntas de repaso Problemas y ejercicios Proyectos y cuestiones profesionales
138
DISENOY ADMINISTRACION DE BASES DE DATOS
Mureus Rro~t*n. propieturio dcl In cwrnpniiic~tle construcci6n Premier, estci discutirn(1o la ~ ~~ilformucihntle iii~pleineiitocioi~ t l btr.w.+ ~ t l dcltos ~ corr Tony 1lelton. gereilte ( 1s~i s t c ~ m ctlr la coinpc~llic~. El tliwrio ( ~ o i i r ~ p t ~pr (urrl( ~el si~teinude 6asc.s &Jtlotos se hn terrninutlo y el ~ ~sis~ I L g r u p o tleprayrcto.\ listo prlru (1tleritr(~rseen el disello &J ~ I I L ~ ) ~ P I I L PpIaIr~u ~1111 t e r ~ de ~ (gestic511 ~ huwh (IP tlrrtos r~lrrcionules. "Eso no rstci c.luro pr[rr[ mi. Toily. 2Por quCfiiirnos ( I trrrubs tlel diseiio c o n c e p t ~ i ~ ~ l coillo p c ~ s op u r u protlr~cirun modelo de buses tle tlatos c o ~ ~ c r p t u t.si r l ronociumos desde el principio q l ~ eteidri(lmos que concertirlo (1 1~11modelo relacion(rl (10 todus formus P" "El tlis~rioconcc~ptucdes e s e n e i ( ~ ~ p (ki ~ rc(r~e t ~ c ~ i d~ ) n 1111 Pb(/ll('lnO de bases de dotos. PSO SILPII(Llbgico. Murrus, p r o en a t e inomento h u y p o ~ o sistem(rs s que r e ( ~ l r ~ i e i ~ t e ~ ) ~ i e d ~jecutctru11u base (le dutos d e modelo concept~lal.Ahorn qne herno.\ creudo un buen modelo logico p r n ~ ~ u e s t wgocio, ro n ~ e ~ i t u i n impleir~enturlo os sobre rrn .\isterrrcl crdaptcdo (1 rriiestrus n ~ c e ~ i d ~ r(d1e(iplic([cihn. s~ IIemos elegido in s i s t ~ ~til ~~ ug ~ h t i 6d en I)(ISPE ( 1 dutos ~ r ~ l u c i o r i u p1 ~r ~q w p a r u nuestros propbsitos PS lo mcis trtunzutlo d i ~ p o n i b l ~ . " "Eso pstir bie11, pero yo entiendo qne PS 11ecesurio normuliz(~ri ~ n o/)use (IP (lutes reIu(-iontrl t r n t ~ sd~ p e estk list([ p r ( 1 1~1implementu(-ibu. L O estoy seguro q u i signifircr r . ~p .r o 2110 t~ r ~ q n ~ r i r 11ucer ci ~ [ diwiio n de buws d e dutos adicionul?" .'Elproceso ~ ~ s c purtr d o c o n ~ o r t i 1111 r r n o d ~ l od e datos c o ~ ~ c e p t u(wd un motlelo relw cionul PS 11110 d e 10s c[spectos nrhs porl~rosout l d motlelado d e dutos conc.eptuu1. Siguiendo 1111 proreso d e con1wsi611meccini(.o v l i i i ~ u lcre(rrernos , 1111 diseI10 de ii1q)lementuci6n relacioi[d gue eat4 coinpletumente r~orrntrlizcldo.En esencia tei~dremoslo rnejor d e umbos 1111111(10h."
E
1 csentrotle a t e n c i h tle este c.apitnlo es el inodelo d r tlatos relacional ) s u nso t ~ ) i n no n inotlelo cle tliseiio tle implementac.iOn cle haws de tlatos. St. define la construc.c.ihn (It4 inotlelo, se discutiri el proceso dt, nor1nalizaci6n ! se most r a r i h m o c-ualquirr motlelo c~oncel)tnalpuede convertirse f i c i l n ~ r n t r n nn nodel lo relacional equi\ d r n t r . D('spn& de la lectnra cle este c y i t u l o debe ser rapaz de: E\phr;lr 10s conceptos funclamentales del modelo relacional. incluyendo rrlationrs. atri1)iitos. tlonunlos, clakes, claves forhneas, integridatl d e la entidad e integridad referential. Drmostrar c6nw las relationes pueden ser normalizadas. El prowso cle normaliz;lri;)n recjuiere un primer ententlimiento a travbs de la cuarta forma normal, tltyt~ncienciasfuncionales ? t l e p d e n c i n s multirvaluadas. Transformar u n modelo tle datos contq)tnal en u n modelo de datos relacional en la cuarta forina normal.
modelo de datos relacional y el desarrollo de sistemas E n 1970. la forma en que las personas veian las l m e s de datos cam1)ici totalmente twintlo F,. F.Codcl introdujo t.1 ~notlrlode datos relacional (Codd 1970). En ese tiempo, el enfoque existente nara 1;) rstrut.tura cle las haws de datos usaha m n t e r o s fisit-os o direcciones a disco para relacionar rrpistros tin cliferentes archivos. Suponga, por ejrmplo, que se necesita relacionar u n repistro A con un rrglstro B en uno de estos primrros sistemas. P a r a hacer esto. se adicionaria a1 registro 1 nn carnpo (jue contenga la direcci6n en disco del registro B. Este campo aiiaditlo, o puntero fislco. slrmpre seiiataria desde el registro A a1 registro B. Codd drmostri, cjue estas 1)asei cle datos limitahan significativamente 10s t i p s cle manipulacibn tle datos (pie pueden ser herhos fhcilmente por nn usuario. Ademis. estas bases de tlatos eran ficilmente vulneral~lesa los camhios tlel entorno fisico. Cada vez que
EL MODEL0 DE DATOS RELACIONAL
139
se aiiatlian los t.ontro1atlorc.s (It, nn nuevo disco a la eonfipuraciim tlel sistema tle t - i l ~ d yo Ios tlatos eran iiio\itlc~s(11. una localizatihn fisiea a otra, se r e t p e r i a nna conversihn extensa tle los art*hi,os ( I t - tlatos. Si 10s r a m p s f'neron aiiatlidos a nil forniato tle repistro en 1111 artahivo. todos Ios registros t*xisttmtt>sen el arehivo tendrian nna nneva localizat-ihn fisi1.a. retluirientlo una conversihn aclicional de los datos. Asi, 10s nsuarios y el software fneron rt.stri~lgitlospor t ~ o ~ ~ s i t l e r ~ ~fisicas c ~ i t ~ por ~ i c sestar nsando datos en una gran variedatl tie fornlas que la rstructnra 1hgit.a lial~riapt.rmitido. El ~notlrlorelacional. Imaclo tan las relaciontas lhgicas cntrc 10s tlatos, super6 estos l~ru1~1cmas. Esto pern1iti6 estar totalmentc en dcsacuerdo, sin s a l ) c ~ l ovxat-tamente, con la rstructnra fisica tlr tlato. _4clemhs. Codd propuso (10s lengnajes de manilmlaci6n tle datos I);~satlostw la Ibgitba, los wales 1,rolnt~tic:ronnihs poder en (4 at-crso y en el procesamiento tit. los h t o s . Estos I e n ~ u a j e s el , 6lgrl)ra rc1at:ional y t.1 t-rittdo relacional. se analixan en el t.al~itulo6. IIoy rstos Irnguajrs proportionan las 11ast.s para 10s Itwguajt~stie llases tle tlatos tle rrlationt~scwnrrtiales usatlos en 10s mhs populares sistvmas tle gestiibn tie llases d e tlatos t~o~~it~rc~ial~~s(S(;BI)). Se t1escd)irhn estos SGBD r n inis dctallr cbnla parte 111. En t.sttbrapitulo se repasarhn dos introtlnt*c:ioncsal disciio de 1)ast~scle tlatos relacional. El primer t*nfoqut.es nlis tradicional. E n este enfotIue el t1ist:iio t*ontq)tualno incluye el mode10 (It, tlatos conceptual, pero I ~ r o t w l etliret-tamente a la vrracihn t l t . un estpema tle I~asesd e datos rclacional consistente en definicihn tle t a l ~ l a srelationalrs. El tliseiio se twulpleta entows metliante la normalizacihn d e estas definiciones tle t a l h tle at*uerdoa n n 11roceso11,ientlefinido. El seguntlo asume la creacibn de nn niodelo tle tlatos conceptual d w a n t e el tlisefio conceptnal. Este niotlelo es entonces convertido mecinicamente a u n modelo relarional. El p r w r s n de conversidn garantizarh automiticamente la normalizacihn tle 10s resnltatlos clel inotlclo conceptual. El primer enfoque fue usatlo tratlicionalmente antes que el modelo conceptual se t w ~ v i r t i c r aen conocido y establecitlo. IIoy es todavia usado en situaciones que requieren un esquenia tle h a w s d e tlatos relativamente simple. En tales casos, r l analista dehe encontrarlo mLs fitail qne w e a r y normalizar definiciones de tablas relacionales t1iret:tamente tle la informaci6n del usuario. El segundo enfoque, usando modelos conceptuales, es vhlitlo en cl diseiio de grandes y complejos esquemas tie hases de datos necesarios p a r a 10s sistenias de hases (It: datos corporativas. DespuCs tle introducir los conceptos tlel motlelo relacional, discutiremos el proc*eso cle normalizacihn y el procrso d e conversi6n d e un modelo conceptual.
El modelo de datos relacional: Conceptos fundamentales Relaciones n~odelod e datos refacionaf. LTn motlelo tle (lato, tlonde 10s datos st. rt.presentan en fornla rlc tahla. relaci6n. llna tahla d r dos dimensiones clue contienc filas y colurnnas dc datos.
El modelo de datos relacional orpaniza y. representa 10s tlatos en forma d e tablas o rela* ciones. R e l a c i h es u n tkrmino que vienr tie la matemritica y representa una simple tahla cle (10s tlimrnsiones, consistente en filas y columnas d e datos. Ejemplos tle relaciones se encuentran en el drsarrollo d e hases de datos p a r a la compaiiia de construccihn Premier, una compaiiia mencionada anteriormente. 10s La Figura 5.1 muestra un modelo d e datos conceptual revisado que - -proporciona funtlamentos para la base d e datos relacional tle la compaiiia Premier. O t ~ s r r v eque este modelo d r datos eontiene ires conjuntos d e ohjetos. TRABAJADOR, EDIF'ICIO y OFICIO. y un conjunto de objetos agregado, ASIGNACION. Aunque el conjunto de ohjetos TRABAJADOR aparece (10s veces en el modelo, es el mismo conjunto tle objetos ambas veces. Asi, ambas copias tle TRABAJADOR tienen 10s mismos atrihutos y participan en las misulas relaciones. El conjunto tlr o1)jetos ASIGNACION es una agrrgacihn d e la relaci6n ES-AS1GN:IDO-A entre TRABAJADOR y EDIFICIO. Eso es, que catla asignaci6n con-
DISENOY ADMINISTRACION DE BASES DE DATOS
,
\
I TRABAJADOR
SUPERVISA
*
1
\ /
TRABAJADOR
*
*
iiltcrrclaci6n clue rrlaciona un objeto conhigo inismo. atrihuto de la rrlaci611. Una columna en inla relaci6n.
I
I
TIP0 ES-ASIGNADO-A
*
0
EDlFlClO
ASIGNACION
2
~CATEG~R~A]
sistv en u n p a r -un trahajador y 1111 tdif'ieio- y significa clue el t r a l ~ j a d o se r asipia a traIbnjar en el edifirio. Cads una de estas asignarionrs tiene dos a t r i l ~ i t o s :FECHJI-INICIO. la ferha en la tp!e el trahajador r s asignado a romrnzar a trahajar en el etlifith. y N~JMERO-DE-UI-6. q u e significa el nfimero d r rlias cjue el trahajador recp~ier?p w a ccrmpletar el trahajo en el edificio. Asi, pl cwnjunto de o+jetos agrcgado ASIGNACION ticne (10s atriImtos, FECHA-INICIO y NUMERO-DE-DIAS. Adrmhs de la rrlacihn ES-ASIGNADO-'4, el modrlo contienr la rchci6n TIENE-OFICIO y la relacihn SUPERVIS.4. La relaci6n TIENE-OFICIO asocia 1111 oficio. tales como fontanrro o all~aiiil,ron cada trahajaclor. El oficio t i m e m a desrrilwihn, una prima y el nkmero de horas por semana c p e n n trahajador de ese t i p d e oficio delw trah a j a r antes q o r sea efeetiva la prima. Pnesto q n r 10s trabajadores son s q ~ e r v i s a d o spor crtros trabajadores, la rrlarihn SUPERF'ISJI asigna a rada trahajatlor un s ~ ~ p e r v i s del or rcrnjnnto de ohjrtos TR.4KAJA4DOR. lJna relarihn como SUPERVISA. la cwal relaciona ohjetos del mismo conjunto. es rernrsiva. Usando nn proceso clue se discutiri posteriornltwte en este c.apitulo, este nicrdelo de datos 1)uedt. s r r convertido en un modelo de tfatos relarional. La Figura 5.2 niuestra m a relari6n con Iln ejemplo de los valores de los datos. la ma1 represents el (sonjunto de objetos TRABAJADOR, sus atrilmtos y dos de sus relaciones. Catla twlumna en la r$lariOn es un atributo de la relaciim. El n o m h tle la rolumna sc. llama rlombre clel citrilruto. Se usan l II& que 10s tkrminos COIILI~L~I(I 1; riorr~brede la 10s ttrminos utributo y i ~ o r r ~ db r~~c~trilmto columrtu por s r r twnsistrntes con los ronwnios cle hases de tlatos relacionalrs. Los nomhres de 10s atributos d r TR-BAJADOR son ID-TRABAJADOR, NOMKRE. TARIFA-HR. TWO-DE-OFICIO r ID-SUPV. Estos atrilbutos se corrrsponden con los atrilmtos y relariones en el modelo de datos conreptual. tal como se muestra a wntinuariim: Modelo corrceptuul
Itributo de la relacion
ID-TRABAJADOR (atril~oto)
ID-TRABAJADOR
NOMBRE (atribnto) TARIFA-HR (atri1)uto)
NOMBRE
TIENE-OFICIO (rrlari6n)
TIPO-DE-OFICIO
SUPERVISA (rc.lac.ibn)
ID-SUP\-
TARIFA-HR
141
EL MODEL0 DE DATOS RELACIONAL TRABAJADOR ID-TRABAJADOR
NOMBRE
1235 1 4 12 2920 3231 1520 1311 3001
M. C. R. P. H. C. J.
TAR IFA-HR
Faraday Nemo Garret Mason Rickover Coulomb
T I P 0 DE O F I C I O Electricista Fontanero Carpintero Albaiiil Fontanero Electricista Albatiil
Barrister
4
ID-SUPV fi l a s
3231
ZA 4
atributos
prado cle la rrlari6u. El nilo1n.o dc atrilmtos eu nua rt.lari6n. tupla. llna fila en n n a relaci6n.
30
tuplas
Kn la Fipura -5.3 se niuestra nna 1)aw cle datos relaeional, ecpivalente a1 moddo dc tlatos cwweptual para la cwmpaiiia Premier, jnnto cwn ejemplos d e valores. Como se in&ei). se explicari m i s atlelante. en este c-apitulo, el prowso d e e o n ~ e r s i h ncle u n mocklo dc, datos conceptual en un modelo relational. K1 nhrnero tle atril~utosen una relacihn se llama @ado d e la relacibn. El graclo cle TRAB4.141)OR es cinco. I)e este modo. el usuario no tiene clue recordar el orrlen de 10s atril~utos en una relaci611, se asurne que el orden en clue se relacionan 10s atributos no es signficativo. P o r eso se considera clue (10s atributos en una relacihn no pueden tener el mismo nomhre. Las filas de una relaciim t a m b i h se llaman tnplas. Se asume clue no hay un orclen p r w s t a l h i d o d e las filas o tuplas d e la r e l a c i h y que dos tuplas no tienen idbnticos coninntos cle valores. na anotac.ihn coniiln clue se nsa p a r a representar relaciones, tales como la relacihn (It, la Fignra 5.2. cxs TRABAJADOR (ID-TRABAJADOR,
NOMBRE, TARIFA-HR,
TIPO-DE-OFICIO,
ID-SUPV)
Es tlccir, el n o n h r e de la r e l a c i h va seguido d e 10s nombres de 10s atributos entre
dominie del atributo. El cw~juntotic. valorcs qntXp d r tornar 1111 at]-ibuto.
El cwnjunto cle todos 10s posi1)les valores que puecle tener u n a t r i l ~ u t oes 511 doniinio. 110s dominios son idbnticws sOlo si tienen el m i s n ~ o significado. 44. NOMBRE y 'I'lPO-I)K-OFICIO p e e n cliferentes clominios, aunque ambos doniinios consisten en cadenas cte cdracteres. No es necesario clue (10s atrihutos con el mismo dominie tengan el m i m o n o n h r e . Por ejemplo, 11)-SUPV tiene el m ~ s m od o m i n ~ oclue ID-TRAB4JAl)OK. E n amlws caws, el d o m ~ n i oconsiste en 10s numeros d e identificacibn del trahajador.
Valores nulos
alor nnlo. El lalor tlaclo a un atrihnto en rma t q d a si cl atrihnto c x i inaplira1)lc o su \ alor cs desronorido. \
Suyonga un atril~utoque no sea aplicahle en un caso especifico. P o r ejemplo, algunos empleatlos en la rt.laciOn TR4BAJADOR no tienen suyervisores. Conseruentemente. no existen valores para el atril~utoID-SUPV para estos empleados. Ademis, cuando se entran 10s clatos para una fila de la relacibn, es posible no conocer 10s valores de uno o m i s d e 10s atribntos para esa fila. En ambos caws, no se entra nada y esa fila es p a r d a d a en la base de datos con valores rlulos para esos atributos. Un valor nulo no es u n espaclo en blanco o cero, es simplemente u n valor desconocido o inaplicable que puede ser reemplazado m i s tarde.
Claves E s t i claro que las filas cle TRABAJADOR contienen informacihn sobre 10s empleados individuales. E n efecto, se espera clue cada empleado se representari por una y s6l0 una fila
DISENOY ADMINISTRACION DE BASES DE DATOS
TRABAJADOR ID- TRABAJADOR
NOMBRE
1235 1412 2920 3231 1520 1311 3001
M. C. R. P. H. C. J.
ASIGNACION ID- TRABAJADOR
ID-EDIFICIO
1235 1412 1235 1412 1412 1412 1311
312 31 2 515 460 435 515 435
TAR IFA-HR
Faraday Nemo Garret Mason Rickover Coulomb Barrister
12,50 13,75 10,00 17,40 11,75 15,50 8,20
T I P O DE O F I C I O
ID-SUPV
Electr i c i s t a Fontanero Carpintero Albaiiil Fontanero Electricista Albaiiil
FECHA-INICIO 10/10 01 110 17/10 08/12 15 / 10 11 105 08/10
EDIFICIO
ID-EDIFICIO
DIR-EDIFICIO
TIPO
31 2 435 51 5 21 0 111 460
123 E l m 456 Maple 789 Oak 101 1 B i r c h 1213 Aspen 1415 Beech
O ficina
Comercio Residencia O ficina O ficina Almacen
OFICIO
TIPO-DE-OFICIO Fontanero Electricista Carpintero Albaiiil
superclave. Un conjunto tle atributos que identifica univocamente cada fila en una relaci6n. clave. El conjunto minimo de atrihutos q u identifica ~ univocamente cada fila m una relacibn. deterrninante funcionalmente. Determina univocamente u n valor.
PRIMA 3,00 3,50 2,00 5,00
en T R A B A J A D O R . Asi, si a l g i n atributo itlrntifica univocamente u n empleado, se clrhr esprrar que ese misnio atrihuto identifiqur univocamente la fila para ese rmplrado r n T R A B A J A D O R . S r asumr que el atributo I D - T R A B A J A D O R identifica univocamrntr a u n empleado. Entoncrs, r l valor del atributo I D - T R A B A J A D O R identifica univoramvntc a una fila en T R A B A J A D O R y decimos que I D - T R A B A J A D O R es nna d a v r en la rrlacibn TRABATADOR. A cualquier conjunto d e atributos clue identificpr univocamente a cada tupla r n la relacibn se le llama superclave. Una clave d e una relacicin r s u n conjunto minimal de tales atributos, es decir, una clave es una superclave minimal. P o r minimal se entiende q11e ningiin s u b ~ o n j u n t odel conjunto dv atrihutos claves identificara univocamente tuplas en una relacibn. Una clave puede ser tambiin d r w r i t a conlo nn conjunto minimal d e atributos que determina univocamente, o determina funcionallnente, cada valor del atributo en una tupla. En la discusibn del niodelo conceptual en el capitulo 4 nos refrrlmos a claves subrogadas, las cuales son identificaclorcs internos del ohjeto que no tienen significado fuera d r l sistema de cilculo, \. rlaves externas. las cuales son atrihutos l6xicos que tienen significad o fuera del sistema. Las claves en el modelo relational son claves externas en el sentido explicado en el capitulo 4. Es dccir, son atributos significativamente externos y sus valorrs 10s asignan 10s usuarios.
EL MODEL0 DE DATOS RELACIONAL
143
P a r a ilustrar 10s twnceptos tle (.lave y superclave dcl modelo relacional. cwnsidrraremos la lmsc tle datob d e la Figura 5 . 3 . En la r e l a c i h TRABAJADOR, 10s valores del conjunto de atributos {ID-TRABAJADOR, NOMBRE)
c h v e conipuesta. [JIM clave wrnpucsta de mlis de 1111 atrihnto. clave candida~a. (h~alquierconjunto de atrihutos qne pucdt. her elcgitlo wrno una clavc de nna rc*lat.iOn. clave primaria. La claw c*anctidataclcgida rorno la chve tie la relacihn.
identifican univocamente a cualquier trrpla de la relacibn. P o r tanto, este t:onjunto rs una superclavr para TRABAJADOR. Sin einl)argo, cste conjunto tic atributos no tXsminimal p por tanto no es una clave. E n este cjemplo, ID-TRABAJADOR por si solo t:s una clake. puesto que cualtpier fila en la rt:lacibn e s t i idmtificada univocamente por ID-TRABAJADOR. E n la relacibn A S I G N A C I ~ Nla , clave c s t i compuesta de los atributos 11)-TRABAJADOR e ID-EDIFICIO. Ni ID-TRARAJADOR ni 11)-EDIFICIO por s q ~ a r a d o identifis can univocammtt: cada fila,. pcro . 10s dos atributos unidos nos d a n la idcntificacih unica requcrida para una d a v r . Una c l a w compuesta d e m i s clt. un a t r i h t o sc. llama clave cumpuesta. En una relat:i6n dada, puedr que mis d r un conjunto tie atril~utospncdan ser elegdos twmo clave. Estos atributos s r llaman d a v e s candidatas. Es posil~le,por cjemplo: q u t ~ NOMBRE sea una d a v e canditiata d e la relaribn TRABAJADOR. Esto srria posible si sr asumiesr que el nombre skmpre fuera unico. Si no se puede hact:r esa suposicibn, entontw NOMBRE no es una c l a w cantlidata. Cuando una d e las clavcs candidatas st: selecciona como la clave tle la rclacihn, pietlc ser llamada clave primaria. La clave cantlidata qrrr sea niis fiicil d e usar tliariamente en la entratla tle 10s datos es normalmente se1cc:cionada conlo la t-lavc primaria. Generalmente se usa el tGrmino clave para nombrar a la (*laveprimaria. Dcspnbs d e introtl~ieirel concepto tle t:lavr, ampliaremos la notacibn usada para itientificar una relacibn, subrayando 10s atrilmtos d r la clave. La r e l a c i h d e la Figura 5 . 3 se disriia cwno sigue: TRABAJADOR (ID-TRABAJADOR, NOMBRE, TARIFA-HR, TIPO-DE-OFICIO, ID-SUPV) ASIGNACION (ID-TRABAJADOR, ID-EDIFICIO, FECHA-INICIO, NUM-DIAS) E D I F I C I O (ID-EDIFICIO, DIR-EDIFICIO, T I P O , NIVEL-CALIDAD,CATEGORIA) OFICIO (TIPO-DE-OFICIO, PRIMA, HORAS-POR-SEM) Puesto que ASIGNACION t i m e dos atributos claves, ambos castin subrayados. Eso significa que ID-TRABAJADOR e ID-EDIFICIO forman una clave para ASIGNACION. Eso no sipnifica que cada uno d e ellos por si solo sea una clave.
Claves externas (ajenas, foreign)
clave evterna (njerrn). Un corij~~nto dc atrihutos en m a relacihn que constitnyen una t.la\e en alguna otra (o posihlernente la rnisma) relaci6n; usatla para intlicar enlaces lbkiros cntre rc.1acionc.s.
El rsqutma d e base d&datos dado anteriormente tiene instancias en diferentes rrlaciones que usan el mismo n o m l ~ r een un a t r i h t o . Ejemplos d e mto son TIPO-DE-OFICIO en las relacionrs TRABAJADOR y OFICIO, e ID-EDIFICIO en las rrlaciones ASIGNACION y EDIFICIO. Ambos atrihutos hrindan ejemplos del concepto de una c l a w externu. Una c l a w externa (ajena) es un t:onjunto dc atributos en una relaeiim que es una (:lave en otra (o posi1)lemente la misma) relacihn. TIP()-DE-OFICIO en la rrlacibn TRABAJAPOR e ID-EDIFICIO en la relacihn ASIGNACION son rjemplos d e claves externas, pursto que TIPO-DE-OFICIO es la c l a w tie la relacibn OFICIO e ID-EDIFICIO es la (.lave dt: la relacibn EDIFICIO. Las claves externas son 10s enlaccs esenciales entre las relaciones. Se usan para vincular tlatos en m a relacibn con datos en otra relacibn. Asi, TIPO-DE-OFIClO enlaza la relaciim TRABAJADOR con l a relacibn OFICIO y 10s atributos ID-TRABAJADOR e ID-EDIFICIO en la relaci6n ASIGNACION muestran el enlace entre TRABAJADOR y EDIFICIO. Los atributos clue son claves eaternas no necesitan tener 10s mismos nombres clue 10s atributos de la clave con la cual ellos se corresponden. P o r ejemplo, ID-TRABAJADOR e
DISENOY ADMINISTRACION DE BASES DE DATOS
ID-SIJPV en la rrlacihn TR 4R \.I I D O R ticwen diferentvi non1l)rei. 1)ero ; ~ n d w toman s sui ;~lorestlel tlorninio tle loi niuneroi tlv itlentifit*atiOn tle 10s trahajatlorei. 14% 11)-Sl l'\ css lnta d a \ r forinea en la relavibn TR 4B \J l D O R cjucbrrf;rencia la (.la\(*(11,i l l p r o l ~ i ar d a rib. P a r a cwalquic*rtraha~atlor.t.1 atriljuto ID-SITPi intliva el inptbr\~ s o tle r ese tral)a,ji~dor. tjuc r' otro tra1)ajatlor. P o r lo tanto. ID-SI PV tlelw cwntcwr 1111 l a l o r (jne es llllil rla\ e en alguna otra tnpla de la rrlarihn T R 1 B 2 1 W O R . P o r t~jrrnplo.en la Fignra 5.3. el 5npwvisor del trabajador 1235 e i el tra1)ajador 1311. E n otras pa1al)rai. 1.1 '1111rr\isor tlr M. Faratlay t x i C. Col~loml).11)-SUP\ vi un r j e m j ~ l otlc una c l a \ c cutcwia r e c ~ i r s i ~ nna a. r l a \ r euterna tIue referrncia su 11rol)iarrlatihn. P o r la iml~ortanria\ital clt. la informacihu d r la t-la\? rxtvrna en la tlrfinitihn d r u n rst1wnia tlr h a w tit. datoi relational, ie rtb\i s a r i el eitpeina dt4inido nnterit~rnit.ntrpara mo-trar las tlvfinit.ionei tlv I-la\eexterna: \
TRABAJADOR (ID-TRABAJADOR, NOMBRE, TARIFA-HR, TIPO-DE-OFICIO, ID-SUPV) Claves Foraneas: TIPO-DE-OFICIO REFERENCIA A OFICIO ID-SUPV REFERENCIA A TRABAJADOR ASIGNACION (ID-TRABAJADOR,ID-EDIFICIO, FECHA-INICIO,NUM-DIAS) Claves Foraneas: ID-TRABAJADOR REFERENCIA A TRABAJADOR ID-EDIFICIO REFERENCIA A EDIFICIO E D I F I C I O (ID-EDIFICIO, DIR-EDIFICIO, TIPO, NIVEL-CALIDAD,CATEGORIA) OFICIO (TIPO-DE-OFICIO, PRIMA, HORAS-POR SEM) Fijrsr clue las cla\rs Sorinras tlr una rrlacihn son tlcfinidai inmrtliatan~cntrdrsl~ni.i tle 1'1 tlefinitihn d ~ nom1)rv l tle la rrlatihn. tlr loi atri1)nto- I, tle lai t*la\es. El rnnntiado TIPO-DE-OFICIO
REFERENCIA A OFICIO
PS n m drfinicihn tle clave r x t t ~ u apara la rrlavihn TRARAJAIIOK e int1it.a clue el atrihuto TIPO-DE-OFICIO en TR.AH.4J.4DOR cbsuna (:lave t x t r r n a clue ref'ermcia el atriljnto (,lave (rl rual puetic: tamhiin star llarnado TIPO-1)E-OFICIO) tsn la relacihn OFICIO. 1Jn listado w m o esr: clue murstre 10s noni1)rrs d r las relationes srguitlos por 10s n o n I r e s (it, sus atrilmtos con 10s a t r i h ~ t o s(.la\-t.s su1)rayatlos y con las rlaves forincas clrsignadas, s r llama un esquelna de hase de datos reIaciolta1. Esa tbsla primera respuesta del diseiio tlr itnplrmentaciirn en nn DDLC qne implemrnta nna hasc de datos relat.iona1. M e niis. st, t.crrresponcit. (*onel nivt4 twnreptual tlt.1 motlelo ANSI/SP.\RC.
Restricciones de integridad rrstricci6n. Vna regla qur restringr 10s talores en [ma 11asede datos.
1;na r e s t r i c c i h es m a regla clue lin~ita10s valorrs (juta pictlrn estar presentcs r n la hase d r datos. El motlelo tle clatos relarional tle Chid inrluye varias rrstrit*ciones tjur se usan para verifirar la validacihn tle 10s tlatos en una hase de datos. Sc wnsiderarhn las siguientes rcstricriones: Integridad de la entitlatl Integridad referencial Depcntlencias funtionales Ahora se ronsiderarin la intrgritlad tle la entidad y la integridad referenrial. L;ts dependencias funcionales se discutirbn m i s tar& en rste c a p i t d o . Las restricciones tle integridad proporcionan las bases lhgicas para mailtener la validari6n de 10s valores en la base de tiatos. Tal c-apacidad tiene u n valor evi~lente.puesto que uno de 10s principalrs propbsitos del proresamiento de Ilase d e datos es proporcionar informacibn w r r e r t a p a r a manejar y tomar decisiones.
145
EL MODEL0 DE DATOS RELACIONAL
regla tlr intrpritlatl tle la entitlatl. El t ~ (,la\t> atri1)uto t l i ~ t.5 tle m a Gla no putdt. svr ~ i d o .
Integridad rc4'ercncial. Las filas en nna relaci6n represcantan ~ n s t d n r ~ aell . la I)aw tle datos de olbjetos espec.ificos clel munch real o entidades (conio se l l a n ~ d r i naqui 1)ara ivr P o r r j r ~ n p l o .nna fila en TK I H \J IDOR c o n k t e n t v i (*on la t e i ~ n i n o l o ~ irelational). a io reprewnta un empleado esl)ec&*o. una fila en E1)lFTCJO r e l ~ r e v n t aMI e t l ~ f ~ t -eqrecifitit. un etnl)leatlo a 1111 co. una fila en 1SI(;NA(:ION i - e l ~ ~ r s r m ~ ~a t aiignaci6n a eslwc.if~c,~ etlificio j aii sucvsivamcntt.. La t lave d r nn,r rrltrci6n idrntifiea uni\oc.an~entrcatla fila !. tle aclui. catla instancia de la cnt~tlatl.Deb ,.sty niotlo. si loi usuarioi t p i c ~ c * rne c q w r a r o m a n i l d a r loi clatos alniac~natloscXnuna fila t.spet.ifira. c1el)en c,onoct,r el valor tie la cla\e tie esa fila. Eso significa quc no scLcluitw clue nna ent~tlatlsea reprtwmtacla en la Lase d r tlatos 51 no se tiene nna ider1tific.ac.h I otnl)lvta tlv los atri1)ntos clue son cla\cs tle la entlclad. De este 111ot10, no sr permltr qne Id clave, tr m a parte tie la niisnia sea uri \ a h nulo. Esto i e resitme en la regla d e integriclad cle la entidad:
Integridad referenrial. E n relarimes construt.tivas. las clavrs forineas se usan para vincnlar filas tan m a rvlarihn (*onfilas en otra relacihn. P o r r j r ~ n p l o .TIPO-DE-OPICIO se nsa en 1'1 relac1611TRABAJ 4DOR para tlerirnos el ofivio priric~ipaltit. ratla enqdeatlo 11ara ~ ~ c . ~ ~ t rclue (-1 c p e p d a calcnlarsc~el pago cle la prima. l'or tanto, es r \ t r r ~ ~ ~ a e l , r ~inq~ortante \ , ~ I o rtlr TIPO-DE-OFICIO en cwalquier fila cle un e~nplratlobe cwrrt~sponclatwn un valor r t d TIPO-I)E-OFICIO en la relarihn OFICIO. I)e otro notl lo. 1.1 TIPO-DE-OFICIO tlel enipleatlo no apuntaria a ninguna parte. Una base cle datos ell la t-nal totlai las t*la\esforaneai no nnlas rc.f(.rt*nc*ian\ a1orc.s reales tie (.la\ es en otra relac-10n t*nniplela intepridatl rekrerwial. 14. sc, tiem*la regla d e integridad refwcncial: Totla (.la\(. e w t c r ~pucdr ~ ; ~ tam1)ii.n srr n ~ ~ loasu . valor purdr srr rl valor real tlr olra rrlari511.
liiia
(.lave r11
El proeeso de normalizaei6n Consiclei-e la relac*~i~ti (17 la Figura 5.4. q u r coml~inaparcialmente los datos d r TR \B\J 4I)OR \ tlr -\SIGN 4CION. Se s n l ~ o n epara cAstastwibn (pie el eiqurrna tlr 1)asc. d r tlatos I rl,rc~onalno sr transformi, de nn modelo c w n t q t u a l , sino q u r sr disrii0 direc.tan~entra p r t i r tlr inforrnacii~nrc.c*ogiclacle usuarios potenciales de h a w s tie datos. T a m l G n sr a s w m r t p r el tl~seiiooriginal cle la hase cle clatos no incluyci la rrlacicin tlv la Fignra 5.3. pero s un clisrsi la rrlacicin tie la Fignra 3.4. Veremoi t ~ h pou r d r n surgir prohlernas a t t a ~ b cle r7o tle I ~ s tlta r tlatos irreflexivo j dm0 10s problrmas pnrtlrn e \ ~ t a r s t -signiendo n n conjunto tie p r ~ n t i t ~ i 1)ic.n o s clefiniclos Ilamado nor1nalizaci6n. Con nn ptyueiio analisis, se puedr v r r q u r la rrlati6n clt- la Figura 5.4 no r s t i hien tlisefiada. P o r ejemplo, las cuatro tuplas p a r a el trahajador 1412 repiten el mismo nomhrc y la informatibn drl t i p de oficio. Esta r e d u n d a t ~ c i ae n los d a t a o r r p r t i c i h , no sOlo reduntla~iciaen 10s datos. Kqrrtitihii tlr datos cn una 1)aw J e (lato.;.
TRABAJADOR ID- TRABAJADOR
NOMBRE
TIPO-DE-OFICIO
1235 1235 1412 1412 1412 1412 131 1
M . Faraday M . Faraday
Electricista Electricista Fontanero Fontanero Fontanero Fontanero Fontanero
C. Nemo C. Nemo C . Nemo C. Nemo C . Coulomb
ID-SUPV 131 1 131 1
ID-EDIFICIO 31 2 51 5 312 460 435 515 435
DISENOY ADMINISTRACIONDE BASES DE DATOS intepritlad cle 10s datos. (:o~~sistc,n~ia tle los tlatos en una haw dv tlatos. anonlaliac cle
actualization. Inconsistencia dt, 10s datos coma resultado tle datos rednndantes y at.tnal~zationrs partialc5. anomalias tle horrado. P6rtlida no intenrionada tie dales t1el)ido a qutb stxhau Iw-ratio otros datos. ano~ualiasd e insercion. 1mposil)ilitlad de adirionar tlatos en la base d r datos dehido a la ausenria de o t r w datos. deseonq~osici6nd e relaeiones. I)ivisihn tle lula relati611 en n~illtiplesrtdationrs. formas nornlales. Reglas para relaciones estrurturadas quc eliminan anomalias. priinera forma normal (1FN). Todos 10s balores dt. los atrihutos tleben ser a t h i r o s . alor athinico. Un baler que no es un ronjnnto de valores o un grupo repetitibo.
\
ocupa rspacio, sino clue purtle cwntlucir a p e r d r r la iiitcgridad d r los datos (pCrditla dt, la ctmsistencia) en la base dr datos. El prohlema surge por (4 h r r h o dr quc. tin individno p e tie rstar trahajando m m&sd r un rdificio al mismo tiempo. Suponga qut. el t i p de oficio tie C. Neino c s t i errhneo. y s d o la primera tupla r s t i corrects. Entonces se t m d r i a nna inconsistmc:ia rntre las tur)las t11w contirnen informarihn sohrr C. Nemo. Esto se llama nrla anomalia d e artualizaei6n. Suponga q u e Nrmo ha rstailo enft.rmo durantc. t r r s mescs y totios 10s dificios a lot; q u r ha sido asignado se trrminaron. Si sc: rieciclih h o r r a r todas las filas d r la rdacicin q u c contirnen infornlacihn s o h e 10s edifitios trrminados, rntont:cs la informari0n sohre rl ID trahajador, el n o m l ~ r yr el tipo (It: ofitio d r C. Nmmo s r 1)rrdt:ri. Esto s r drnomina una anoinalia d e horrado. A la invrrsa, p e d e tencrse rontratado un nurvo rmplrado Ilamado Spantiolf. a1 q u r a h n no se Ir hapa asignatlo rdifitio alguno. Esto sc: clenomina m a anomalia d e insereion. Las anomalias d r ac:tualizac*i6n.horrado r insrrricin son ohviamrntr int:onvenirntc.s. iCOmo s r prwitwen o se minimixan talrs prol)l(masY Claramrntr, dividienclo la rrlaci6n TRABAJADOR d r la Figura 5.4 en dos rr1at:ionrs. TRABAJADOR y ASIGNACION. q u r aparrcen en la Figura 5.3. se rliminan las anomalias. Esto r s una solut:i6n intnitiva. : Z h r a s r lnostrari u n mbtotlo rnis formal Ilamado drscomposicibn p a r a lograr el mismo rrsultado. La descomposiei6n rs el procrso d r tlividir rrlaciones en mhltiples rr1at:ionrs p a r a eliminar las anomalias v mantenw la integridad d r 10s datos. P a r a hacrr rsto, sc: usan las formas n o r n ~ a l e so reglas para relaciones c:structuratias.
Primera forma normal Una relacihn r s t i en primera forma normal (1FN) si 10s valores en la rrlacibn son atoniicos para cada atrihuto en la relaci6n. Ksto quiere d w i r sirnplrmrntr q u e 10s valorrs d e 10s atributos no puedrn ser un twnjunto d r valores o un g r u p o rqwtitivo. La tlrfinicibn dr Codd d e una relacihn inclnye la c:ontlicihn tic que la rrlacibn rstG t:n primera forma normal. P o r tanto, todos 10s rsqurmas rrlacionales que st: r n c o n t r a r i n vstarin en 1FN. Sin t:mhargo, p a r a aclarar t.1 concrpto, veremos u n rjemplo tle una tahla que no r s una relacibn en 1FN. En la Figura 5.5 t:onsitlere 10s valorrs introducidos p a r a el atrihuto ID-EDIFICIO. Alli se h a n comhinado 10s rdifitios asignados a catla trahajador m u n solo conjunto. El valor d r l atrihuto ID-EDIFICIO r s rl ronjunto d e edificios en 10s cualrs la persona e s t i trahajando. Suponga q u r se e s t i interrsaclo en sblo uno cle rsos edifitios. Esta informacibn puede ser tlificil d e rxtrarr, dehido a q u r el itlentificatlor p a r a el rtlificio dr inter& cstii oculto dentro d e u n conjunto, drntro d e una tupla. La relacibn r n la Figura 5.5 no e s t i en 1FN porque ID-EDIFICIO no es at6mica. Eso es, que m una tlrterininada tupla, ID-EDIFICIO purtle tenrr multiples valores. Sin embargo, la relacibn q u e se rnuestra en la Figura 5.4 rstaria en l F N , puesto que el valor q u e interesa, clue es el d r un edifitio individual, p w d r s r r identificatlo simplemente referenciando u n noiuhrr d r atrihuto. ID-EDIFICIO.
TRABAJADOR ID- TRABAJADOR
NOMBRE
TIPO-DE-OFICIO
1235 1412
M. Faraday
Electricista Fontanero
1311
C . Nemo C . Nerno C . Coulomb
Electricista
ID-SUPV
ID-EDIFICIO
131 1
(312, 515) (312, 460, 435, 515) 435
147
EL MODEL0 DE DATOS RELACIONAL
I Dehitlo a que la tlefinicibn ori@nalde Codd drl modelo rrlacional rrqurria q u r todas las relac*ionesestuvic-ran en IFN, la Fiplra 5.5 noes ni sitpiera una relaci6n propiamrntr tlicha. Se seguirli la tlefinici6n tlv Chltl y se asumiri clue todas las rrlacionrs tlrhrn rstar en 1FN. Las prhximas (10s formas normales, segunda forma normal y t r r c r r a forma normal. se apliran a las relaciones quc: estin restringitlas por depentlrncias funrionales. Antes de prosegnir ron estas formas normales se dehr rxplirar primrro las drpmdencias funcionalrs.
Dependencias funcionales Anteriormrntc., c.n estr capitulo se estudiaron las restricriones d r integridad d e la rntidad y las rvstrirtionc.~tle intrgridad referenrial. Las dependenrias funrionales (1)Fs) provrrn una manera p a r a definir rc.striccionrs atlieionales en un esquema relarional. I,a idea esenrial es clue r l valor tlv la tupla en un a t r i l ~ u t odetermina univoramentr el valor d r la tupla en otro atrihuto. P o r vjemplo, en la Figura 5.4, en cada tupla, 11)-TRAHAJADOR d r t r r mina. espec~ialmente.NOMBRE; ID-TRABAJADOR determina esperialmente TWO-DEOYlCIO. Se e s w i l ~ e nestas (10s tl(.pc.ntlencias funcionalrs de la sigiientr forma: FD: ID-TRABAJADOR FD: ID-TRABAJADOR
dependenria funcional El valor de un atrihoto cm una tupla determina cl valor de otro atrihuto m la tupla.
determinan~e.El atributo de la parte izquiercla de una Dl' determina el valor tle los otros atrihutos tSn una tupla.
segunda forrna norrnal (2FN). Los atrihutos no claves no pueclen ser funcionalmente tleprndientes tie una parte d e la clave.
+ NOMBRE + TIPO-DE-OFICIO
MAS formalmrnte se define una clcpcndcncia fimcional romo sigur: si A y H son atri1)utos r n la rvlaticin R . rntonces FD: A + B signifira q u r si t~ualestluierados tuplas c:n R t i m e n (~1niismo valor p a r a su atributo A. d r b r n t r n e r rl mismo valor para su atrilmto B. Esta dcfinicibn sc aplica t a m b i b si A 4-B son conjuntos d e columnas en lugar tle clue columnas siniplcs. La notacibn "+" s r Ire "determina funt:ionalmentr". P o r tanto, en estos ejemplos3 ID-TRABAJADOR tletrrmina funcionalmmte NOMBRE, ID-TRABAJADOR tletermina funrionalmente TIPO-DE-OFICIO y A determina funcionalmente B. E l atributo en la p a r t r izquierda dc una D F se llama determinante porquv c:se valor determina el valor del atributo d e la p a r t r tlerecha. La clave d r una relac-iOn es un tleterminante, tlehido a clue su valor determina univoramente el valor d e todos los atribntos en una tupla. 8
Segunda forma normal La segunda y terrera forma normal se ocupan d e la relacibn entre 10s atributos c:lavcs y no (:laves. 1Jna relaribn e s t i en s e g m d a f o r m a normal (2FN)si el a t r i h t o no (:lave no es funrionalmente tlependiente de una parte d e la rlave. P o r tanto, la 2FN purde violarse sblo cuando una rlave sea una clave t:ompuesta o, e n otras palabras, qne conste d r mas de u n atrihto. Examinemos el csquema relacional d e la Figura 5.6. La clave consiste en 10s atributos ID-TRABAJADOR e ID-EDIFICIO juntos. NOMBRE e s t i determinado por ID-TRABAJADOR y tamhiin es fnncionalmente dependiente d e una parte d e la clave. Eso signifi(:a clue, conociendo ID-TRABAJADOR, p a r a el trahajador es suficiente p a r a identificar su nombre. P o r tanto, la relacibn no e s t i en 2FN. Dejar esta relacihn en esta forma, que no es 2FN, puede conducir a 10s problemas siguientes:
1. El nombre del trahajador se repite en cada fila que se refiera a una a s i p a c i b n para ese trahajador.
2. Si el nomhre del trahajador cambia, cada fila que se refiera a una asignaci6n d e rse trahajador debe actualizarse. Esto, conio se recordari, es una anomalia de actualizaci6n.
DISENOY ADMINISTRACION DE BASES DE DATOS
ASIGNACION
(ID-TRABAJADOR,
TRABAJADOR ID- TRABA JADOR
ID-EDIFICIO,
ID-EDIFICIO
FECHA-INICIO,
NOMBRE)
FECHA-INICIO
NOMBRE FA. C. M. C. C.
Faraday Nemo Faraday Nemo Nemo
3. Det~idoa esta rednndancia, 10s datos 1)odrian c~iivc~tii-sc. cm inc.onsi~trnte.s.co11 distintas filas n~ostrantlotlifrwntes noml)res para el niismo tral)njntloi-.
4. Si al misnio tirrnl~ono hay a+nariones lm-a el trahajatlor. l)nc.tl~~ no halwr f'ilas c.11
las cnales guartlar su noml~re.
ASIGNACION (ID-TRABAJADOR, ID-EDIFICIO, FECHA-N IC IO I) C l a v e E x t e r n a : ID-TRABAJADOR REFERENCIA A TRABAJADOR TRABAJADOR (ID- TRABAJADOR, NOMBRE )
pro>ec(icinclr
LLII~
rclnciirn. Una ~.('ld('~i)u ('o11111~~estd de a t l h l t o s sc.11.c ( 1o1ld11o~ 1(' o t ~ . t ~ 1 d ~hn1
Estas dos rchciorws iniz pecjneiids ( I N ? la rel,~c.iOnoriginal se Ilanian proqeccionvs. E \ f h i l v r r que una l)ro!(wiOii s n n ~ ~ l r ~ t ~s r lnt twr i o n r ~riel-tos atril)ntoi (11' nna r ~ l d o i 0 n t w i t m t r j 105 re1)resenta !.onlo una nilcX\a rdac-ihn. Esto parece snficbientementesinil)lv. El c w ~ ~ t r n i dtl(. o -1SIGN4CIOU j tle T K 4B IJ4DOR scb mucstran en la Fignra 5.7. Ol,ie~\ e ~ I W HI ASIGY4CION sc. cwntiniia ternendo clncLofilas. dd)itlo e q ~ i r10s valores p a r a ID-TR \H ZJ \l)OK. ID-EDIFICIO \ FE(:H 2-1 1 lCI( ). tomados jnntos. f w r o ~i ~~l w o i . Sin cmil)argo. en la wlacihn 'rR-iB-l.J.1DOR ahora se tienen s0lo (10s fil'ls. \ a qoe huI)o shlo (111st'lniros c20njnntostlr \ alorei para 11)-TR-IB-IJ-IDOR NOMBRE. 4s1. la rcdnntlancia tlv Ios tlatos la l)osil~iliclalde anomalias han sido elimlnatl;i~.
ASIGNACION ID- TRABAJADOR
ID-EDIFICIO
FECHA-INICIO 10/10 01/10 17/10 08/12 15/10
TRABAJADOR ID- TRABAJADOR
NOMBRE M. F a r a d a y C. Nemo
149
EL MODEL0 DE DATOS RELACIONAL
El proceso ( 1 :lescompontv ~ uua r t h i b n (pie no e s t i r n 2E'Y (*ntlos relacione~q w estbu tan 2FN s i g w unos pocos p a w s simplvs, los dos primeros cle 10s cwa1t.s se i111straro11 h i csn rl ejemplo: (1)Crear m a nneva relacihn usantlo 10s a t r i h t o s de la tlt~prntIeiic*ia t i o r ~ a (DF) l culpal)le conlo 10s atributos en la n u w a relacibn. (2) I,os a t r i h t o s tle la part~ tlerccha tle la 1)E' se elimiuan entonres d r la relacibn original. (3) Si tiibs tlv nna 1)F i m l ) i ( l la ~ ~relacibn en 2FK, rrpita 10s pasos 1 2 ~ m - acads DF. (4) Si el mismo tlctcrmnante aparccc. en m i s tlr m a DF. tome totlos 10s atrilnitos fiincionalrne~itetlepentlicntes con ese clrtern~inantecoma atrilmtos no clavrs en la rrlacibn truirntlo a1 determinant(. como c l a w .
Tercera forma normal iercrra f o r i ~ ~ lao r m a l
(3FN). Odtl,i dete~r~ni~i:cnt(~ I I r l a ~c..
I ~ ~
ITna rc,lac~hnr9ti en tercera f o r m a normal (3FN) 31 para tod'i DF: X 'k. X es una d a t e . O l w r v e clue 9i se siguc la tlefinicibn tle tercera forma norm,il si una relacihn csti'i en " 31JN. vsti tan11)ibn en 2FN. Sin c d a r g o , cwmo se vera aliora. lo i ~ i \ e ~ - no s o es cierto. Consitlrre la relac.i011TR I B \J ZDOK' cle la Figura 5.8. Se t e q u r DF: ID-TRABAJADOR DF: ID-TRABAJADOR
--t --t
TIPO-DE-OFICIO PRIMA
son 11el)endenciasf~mcionalespara esta rclac16n tlel)iclo a qne ID-TR 211 2J \I)OK es una r l a ~ t . .Sin embargo. DF: TIPO-DE-OFICIO
--t
PRIMA
cbstam1)iC.n urla depentlcncia funrional. E9ti rlaro qne el criterio cle 3FN sr satiiface para las (10s prinic.ras depentlencias fuiieioiiale~,pero iqui. hay sohre la illtima tlept~ntlc~tic~a func~onal?Olniamente. TIPO-DE-OFICIO no es nna rla\e. por lo qne el rriterio tle 3FN falla. Por t m t o , T R I B A J 21)OR' no e s t i en 3FN: sin embargo. TRAB2J IDOR' estir en ZFN. (Ezo sr c l e h a q n r 5u elate consistc cn s61o u n atrihuto.) I s i , cs posihle para llna relat.ihii (.star en 2FY sin estar en 3FN. ,Par club se clehr estar preocupado si nna rel;ic.iOn no c ti ell 3FN:' I,os 1)rol)lemas son similares a los proldrrnas conwntatlos cn la violaciim del diseiio dr PFN.
1. La prima p a r a cada t i p dt- ol'ivio se repite e n las filai tle r a d a empleatlo que tiene el mismo tipo d e oficio. Ebta reclnndancia tie tlatos gasta cspacio d r ulrmoria. 2. Si la p r m a para ('1 tipo tie oficaio canilia, tales filas tlehen ser ac*tnalizadas. Si mi;^ fila es borracla sc. puede pertler el (lato clr la prima p a r a u n tipo cle ofirio. P o r tanto. la relacibn e s t i sujeta a anomalias d r artualizaci6n y d e horrado. 3. SI hay actualmente c,mpleados no permancntes para un t i p tle oficio dado. puedv no haber filas r n las w a l e s guardar la prima clrl t i p d e oficio. Esta e9 una anonialia cle inserricin.
TRABAJADOR ' ID- TRABAJADOR
TIPO-DE-OFICIO
PRIMA
1235 1412 131 1
Electricista Fontanero Electricista
3,50 3,00 3,50
DISENOY ADMINISTRAC~ONDE BASES DE DATOS
Afortunatlamentr, si se prueha q u r una relacihn e s t i en 3FN se puede rstar seguro qut: la relacihn e s t i en 2FN. Pt:rcr. iccimo se puedr convrrtir un tLsqurmarrlacional c~ucno r s t i en 3FN en un cwnjunto de relationes i p r satisfacrn la 3FN? La drsrcrmposit:ibn es el mbtotlo m i s ficil., Estr r s el mktodo usatlo para convertir una relacicin quc no e s t a l ~ ar n 2FN (ASIGNACION tlr la Figura 5.6) c:n dos rrlaciones en 2FN (Figura 5.7). Ahora se most r a r i chmo aplirar el p r o t w o d r tlrscomposiribn a rrlacionrs quc. no e s t i n en 3FN. S r wrnienxa con el rsquerna relarional tlr TRABAJADOK'. Forme m a r t h % ~ n ( R l ) moviendo tie TK-1BAJAl)OR' 10s atril~ntosd e la parte tlertdia d r cualcpiirr I)F que liaga fallar el critrrio (11: 3FN. En el rjenlplo. rso r s PKIM.4. Forme una nueva relacicin t:omput:sta de 10s atributos tlr la p a r t r drrrt:ha v tle la parte izquicrtla d r la DF que Iiacc fallar el critrrio tlr 3FN. En r l cjrniplo. cstos son PRIMA y TIPO-DE-OFICIO. El deterrninantr tle la UF, T11'O-DE-OFICIO. rs la clave. Si se llama rsta nurva rt:lacicin R2. entontw R1 (ID-TRABAJADOR, TIPO-DE-OFICIO) Clave Externa: TIPO-DE-OFICIO REFERENCIA A R2
R2 (TIPO-DE-OFICIO,
PRIMA)
son 10s rsquemas tlr las dos rr1at:ionrs que tienrn lugar tie TRABAJADOR'. Si R l o R2 no (:stin e n 3FN, s r twntinila aplirantlo t.1 procrso tlr clestmnposiricin tiasta clue totlas las relacionrs c.stbn e n 3FN. En castet w o , R1 y R2 t-stin amhas en 3FN y sc puedr parar. Se ha tlescompucsto TRABAJADOR' en dos rclacionrs R1 y R2, las males r s t i n r n 3FN. Dchrria t*onvrnct.rst: tlr (1111:R1 y R2 w t i n amhas en 3FN. 0l)st:rvr ademis clue TIPO-1)E-OFICIO rs nna clavt~rxterna tan R I . Drhido a q u r toda rrlacihn r s t i , por tlefinirihn, en 1FN y tlehitlo a t p : las relat-ioncs en 3FN t:stlin sirmpre en 2FN, la siguitmte radrna cle implicaciones es vilitla: 3FN i m p l i c a 2FN implica I F N
fortna ~ l o r ~ n aBoycrl. Cotltl (FNUC). Todo clvtrrt~~inantr es una d a \ I.. cleprndencia trattsitiva. Al~arrt-e rnando un atrihuto no clavc tBs Snntionalmrnte dvprntlirntt. d r uno o n ~ i atri1)ntos s n o claws.
P o r rsta razcin, poncr las rrlaciones en 3FN y en 2FN cts lo ilnico t p t : se necesita para usar el critrrio tlr 3FN. Si se vrrifica q u r vatla determinante en cada rclariirn es una (.lave de rsa relacicin -1:1 critrrio clc 3FN-. trntonres totlas las rrlaciones r s t i n r n primera, srgunda y t r r w r a forma normal. Esto simplifit-a grandrmcnte el prowso tle normalizacihn, drl~itloa que ahora se necrsita ccrmprohar shlo un criterio. Esta versi6n tit: tercrra fornia normal se llama a menudo F o r m a Normal BoycrCodd (FNBC). El criterio usado para la 3FN por muchos autorcs es 16git:amrnte un poco m i s tlbbil clue el critrrio tic FNBC quc se e s t i usando. Estr criterio m i s tlCbil esta11lrc:r clue m a rrlacibn c s t i en 3FN si no tirnc dependentias transitivas. Una d ~ p e n d e n c i atransitiva aparrcr m a n d o un atrihuto no clave es funcionalmente dependientt~de uno o m i s d r otros atrihutos no claves. Estr criterio no manrja dos rasos:
1. Un atrihuto no (:lave rs tlepcndientr tie un atrihnto clave en una c l a w compnesta (el criterio para relacionrs clue no estin en 2FN).
2. Un a t r i l ~ u t oclave en una clave compuesta cs dependiente d e un atrihuto no clave.
FNBC maneja amhos casos. Por tanto, si una relaricin e s t i en FNBC entcrnces rstli tam1)ibn en 3FN, en el sentitlo cle la dependencia transitiva, y e s t i taml~ibnen 2FN. Se ve entonces que esta definicicin d e 3FN simplifica murho el proceso de normalizacicin.
EL MODEL0 DE DATOS RELACIONAL
Cuarta forma normal La priinera forina norinal prohihe relacioncs dondc sr tengan atrilmtos no athmiros o n i u tievaluatloi. Sin eml~argo,existen milehas situaciones dc modclado clr clatos, r n (pie las relar i m e s reqnirren atrilmtos multievalnatlos. P o r ejemplo, m u n sistcma cdcctivo t k stynro sanitaria, las midtiplei depentlentias tle un empleado pnetlen ser rastrcaclas. E n u n eswnario cscolar, n n mic*nil)rod r la facmltael se asigna a multiples roinisiones y es responsalde tle miiltipl(.s cwrsos. Ejmiplos ronio estos podrian ot*urrir murhas veres. iCbmo se podrian m o d t h - m nna 1)aw d r datos relational clue no permitiese atrilwtos mnltievalnados:'lo~? La Fignra 5.9 in~iestracnatro posil)les aproximaciones para resolver eite prol)le~na p a r a loi rnrsos y las comisiones tle 10s miem1)ros tic la facnltad. Catla solnrihn paree*einsatisfatetoria en a l g h niotlo. Todas gaitan eipario, tanto p o r usar valores nulos como por introtlucir tlatos rednndantes. Aquellas clue usan valores nulos violan la intcgridad tlr la entidad, tle1)iclo a qne totlos 10s atrihutos juntos ronstituyen la rlave de la relaribn. A&m i s , suponga clue Jones file asignado a1 twuitC. tle P r o m o r i h . por lo que se requirib una actualizaci6n. dc.lm-ia aiiatlir una nnev? fila o actualizar una fila existente? Finalmente. no csth claro q n r 10s atriljutos COMITE y CURSO w a n independientes iino del otro. P o r ejmmplo, t>nla Fignra 5.4(a), it4 comiti. d c Atlmisibn se relationa con el w r s o IM101? La relacibn a p a r m t e entre atrihutos indt.ptdientes puetle eliminarse requirientlo clue rada valor de u n atrihuto aparezca en a1 menos una fila con w d a valor del otro atri1)nto. Esto se ilustra m la Figura 5.10, don& amhas Atlmisi6n y Beta apareren en l a i filas
FACULTAD
FNOMBRE
COMI TE
CURSO
Admision Beca Beca
IM101 IM102 IM103
L
Jones Jones Jones
a ) Numero minimo de r e g i s t r o s con r e p e t i c i o n e s FACULTAD
FNOMBRE
Jones Jones Jones
COMI TE
CURSO
Admision Beca
IM101 IM102 IM103
b ) Numero minimo de r e g i s t r o s con v a l o r e s nulos
FACUL TAD
FNOMBRE
Jones Jones Jones Jones Jones
COMI TE
CURSO
Admision Beca IM101 IM102 IM103
c ) Filas sin repeticiones FACULTAD
FNOMBR6
Jones Jones Jones Jones d ) No r e s t r i n g i d a
COMI TE
Admision Beca Beca
CURSO
DISENOY ADMINISTRACION DE BASES DE DATOS FACULTAD
FNOMBRE
Jones Jones Jones Jones Jones Jones
COMITE
CURSO
Admision Beca Admision Beca Admision Beca
IMl0l IMl0l IMl02 IMl02 IMl03 IM103
lTna conclirihn que h a w r u n ~ p l i rla intlelwntlencia d r los atril~ntosrccluirientlo csta clnpliracibn cle va1orc.s sr llama nna clepentleilria ilmltievaluada (DMV). 1,as DMVs son wstriccioncs exacatamentr cwn~olo son las DFs. Claranwnte. clel~idoa clue r e q n i c i w unn cmornle cluplicac+'m de valores de clatos, un aspecto importante tlel proeeso de normalizaci6n delwria ser e1in1in;rr las deI~rmtlenciasmultievaluatlas. Esto se 11ac.rcon la ruarta forma normal. Una relacicin e s t i en c m r t a forina nornial (4FN) si e s t i en :3FN ) no tiene atrilIntos mnltievaluados. Drt)itlo a clue el prol)lema de Ins drlwnt1t:ncias ~nnltievaluaclassllrge (1c 10s atril~utosmultic.valuac1os. se 11uede encwntrar nna sc~lncii,nI~c~nicmdo toclos 10s atiil~utos n~ultirvaluaclosen relaciones formadas por ellos mismos, jnnto con la clave a la cwal se al)lir a n 10s \alorrs de 10s atril~utos.La F i p ~ r a5.11 iliistra osto. FNOMBKE c.s nn valor (.lave en alguna otra relacihn que iclcntific:a el n ~ i e m l ~ tle r o la facultad p a r a el cual se aplica la infor1uaci0n. Sc listan las comisiones a las clue Jonrs e s t i asignaclo. incluyenclo una fila pcjr cada c-on~itb.El noml)rc~Jones se repitc, cada vvz. Lo misino suc*ctlecon los cursos qn(*.Jones tlicata. Las relaiioncs en la Fignra 3.11 r s t i n ell c w y t a forma normal (4FN) porclnr todos Ios atril~utosmnltit.valnadt,s (en rstc c a w , COMITE y CLRSO) han siclo pnestos (TI re1ac:iones formadas por ellos misnlos. Aclc.mis, estc enfocluv supera 10s I ~ r o l ~ l e m adsr varios clr 10s c d i q u r w p i e s r inostraron en la Figura ,5.9. Como nota final delw sc+ialarsr quc. las c.1avc.s de estas relaciones en 4FN son [email protected] atrit~utostle la relacihn. Es tlecir. la c h v r cle F:\C-COM es (FNOMBRE, CORIITE) y la (*laved r F;\C-CIJRSO es (FPiOMBRE. CURSO).
Otras formas normales S r han proput~stoalgunas otras f'ormas nc)rnialrs clin~inaranomalias adicionalrs. Se discw t i r i n t)rrvrmrnto tlos de rstas formas: la quinta forma normal (5FN) y la fornla nornlal dominiolclave (FNDLL). Qninta forma normal. Lab rt.\triccionc.s cle dependencia f ~ ~ n c i o n a ldel)enclencia ! mnltirvaluada resultan necwarias p a r a la seeuncla. t r r w r a y cwarta forma norinal. La quinta f o r m a n o r n ~ a l(.SFN) rlimina lab anomalias qur rrsultnn de u n t i p de restricciim llaFAC-COMI TE
FAC-CURS0
FNOMBRE
COMITE
Jones Jones
Admision Beca
FNOMBRE
CURSO
Jones Jones Jones
IMl0l IMl02 IMl03
EL MODEL0 DE DATOS RELACIONAL
1 S3
mado d r p i l d e i ~ c i n sde rr~cnibn(loin deprndencies, drpendencias dc- uni6n). Estas drprnd~.nt.iassou p r i n t i l d m r n t r d r inter& tri~rico4 dc. mu! dntloso valor pricticw. P o r rllo. la cpinta forma ~ i o r m a 1111 l titme \irtuaIinrntr aplicacibn priic*tica.
formn n o r ~ n a l tlominio rlavr (FNDLL). Kecluierc. cpe vada rc.htric~t.iOnscXa ~.t.sultatlodt. tlv tlrfinic~ioi~rs tlo~niniosj-c.l;~vrs.
F o r m a ~ l o l m a lt l o ~ ~ ~ i n i o l r l a vFagiu e. (1981) p r o p s o oiua fornia normal I ~ a s a d ar n las drfiniciolirs tlr clavc,s y dominios d r atril~utos.Mostri, q n r m a rrlacihn r s t i en f o r m a norma1 dominiolclnvt~(FNDLL) si y shlo si ratla rrstric~:ihnen la rrlaci6n es m a t.onsrt8ueuria tlr las drfinic-ionesdc. doniinios y c.1avc.s. Esto rs un rrsultado importantr. Sin eml~argo. IIO prolwrrioni~un mCtodo geueral para twrirrrtir m a rrlacibn q u r 110 r s t i en FNDLI, r n m a rrlariim c p r rst6 r n FNDLL.
Transformar un modelo conceptual en un modelo relacional Grncralmrntr sr ac8rpta q u r 10s niodelos coiic~.l~tualrs oh.rc.rn m a rrprcsrntacibn d r las c:omplejitlatles dc. un l ~ r o h l r m ad r al~lic-atihnm i s prcrisa clue la tlrl modrlo relai*ional \ otros nioclrlos d r datos a ~ i t r r i o r r s .l'or eso. r u r1 Capitulo 4 st. discutii, el modrlado r o w c r l ~ t u a ly se dr,mosti-h 1 4 m o m a gran varirclatl d r p r o l ~ l r ~ n da sr aplit*atihnp o d r i m rcbsolyerse con 10s rnotlrlos c.oucrptualrs. Sin rml~argo.c.11 la actualidad rxisten 1)oc8ossistrnlas r u 10s t-ualrs los motlt4os cwncq~tuales11wdtw implrmrntarsr. Drllido 21 c[ucbs r r s t i rstudiantlo rl modtdo relatio~lalell rstr t y ~ i t u l o .se c r n t r a r i la a t r n c i h ell 10s mCtoclos d r transformaciiln tlr u n moclc41 t*ontq)tualen un modrlo relaiional. 1111 modrlo d r clatos t*onrel~tual cwnsta tlr olljetos. interrrlacionrs, atril~utos.cX,sllrtializacionrs. agrrgaclos. etr. h o r a s r mostrarin 10s mCtodos dc. tra1lsformaii611 tlr c d a uno dtl rllos. l!na iml~ortantrt.aracatrristit.a clrl procrso c p r s r drsrri1)iri rs clue cla c80mo resultado la c*rc.acihrl tlr rr1ationt.s normalizadns para la c ~ i a r t aforma uormal. ( h n s r cwmtrmrntr. la siguitmtr t w n v r r s i h dv un modrlo c o n t q ~ t i i arl n un u~otlrlorrlacio~ialnt) iircrsita 1.1 l,rocbrsod r normalizacihn.
Transformar conjuntos de objetos y atributos ( h s i t l r r r rl siml~lt~ motlrlo eo~~c.c.l)t~ial d r la Pigura 5.1%.S r vr un t~oujuntod r ohjrtos ( ~ 1 1 1 dos atril~utos.1'KIiSONA t1s nn twnjunto d r ohjrtos ahstractos (110 16xic-0s). p r o #SS \. FECH A-N.1C son atrihutos ICxiws. Drllitlo a c11w 10s atril~utosr n rl n ~ o d r l orrlac.ic~i~al r ~ aiul~os l r ~ i atrilmtos rn m a wintlrl~c-11 svr a t r i l ~ ~ i t oli'xiroh. s #SS \ PI~:CHI1-N;lC l ~ ~ ~ stbr tihn. l'or tanto. st, transliw~uarsttxtliagrmia r u una relwihn coil ati-il)r~tosw m o sigur: PERSONA ( # S S , FECHA-NAC)
DISENOY ADMINISTRACIONDE BASES DE DATOS PERSONA ( # S S , FECHA-NAC)
Transformar modelos sin claves externas Conhitlcre la Figlira -5.13. Sr pnetle intentar transformar rste niodt4o tle la misma forma. resultantlo: VENTA (IMPORTE, #PRODUCTO)
l ' t ~ or n estt. c a w iio ha, rla\e. clc4ido a clue ~ ~ ~ ehalwr t l r mrit.has kentas t p e tengan el mihmo valor para 1MPOItTE E #PRODL CTO. ['or tanto. se tlehr afiadii- 1111 atrilmto (.lave, #VENTA: VENTA (#VENTA, IMPORTE, #PRODUCTO)
Se purdt: resumir este proreso (:ornosigue. 1111 conjunto de ohjetos (.on atrilmtos pued r transformarsc tw una relatihn usantlo el norn1)rc del twnjunto coino el n o m l w de la t o ohjetoh como 10s ati-iljutos dc la relatihn. Si p e d e rclacihn y 10s atriLutos tlel c o n j ~ ~ ndc usarse n n conj~intode estos atri1)ntos (:orno t:lavt~1mra la rrlaci6n. entonees esos atril~ntos se wnviertcn en la clave dc la relacihn. En raso contrario, se afiade 1111a t r i h t o a la r d a ei6n con el u c ~ ~ e r dtleo t p e ese valor itlentificjur ~ ~ n i v o r a n ~ einstantias ntr tlel ohjeto ell t.1 eon.junto dr ohjetos original y lmetla, por tanto. scrvir t:omo una (.lave para la rrlacihn. E n el ejeml~loanterior. st. afiadi6 #VENTA cwmo un a t r i h t o de la 1-t.lari01i que signifira qut. #\IENTA identifica univoramente una instanvia en t.1 conjnnto de oljjetos VENTA. Sc h a mostrado u n mbtodo simple y rlipido Ijara general una (.lave p a r a una relati611 en raso de clue no trtlga m a . .Ictualmc:nte, el tliseiiador d r Ilases de datos p u d e cwnsultar con el ~ i s u a r i ola srlecti6n de una c l a w para la relari6n. A mrnudo hahrli u n nfimero ile fartnras o a l g h otro valor que se registra y c p e pnedr srrvir w m o la t h e d r la relacihn. Esto wria la st-leccibn lhgica p a r a el atriljuto (.lave. Otra posihilidad es clue el ~ ~ s u a rrecoio miende afiatlir una cwmhinatih d e atriljutos cpr juntos twnstituirian una (*lave.El analista tient: la responsa1)ilidatl dr t r a l ~ a j a rcon 10s nsuarios p a r a determinar qui. atrihutos c o ~ n p o n t l r i nla clave.
Transformar la especializaci6n y la generalizaci6n de conjuntos de objetos ilhora twnsidert. la Figura 5.14. El conjmto tle ohjetos PERSONA se transforma f'icilmente:
VENTA
+==P
EL MODEL0 DE DATOS RELACIONAL
PERSONA
/
CASADA
/
PERSONA-CASADA ( #SS, NOMBRE, DIRECCION, CONYUGE) Clave Externa: #SS REFERENCIA A PERSONA
risi, m a espctializatibu tlr uu coojnnto tlr ol~jetost r n d r i totlos lo.; atri1)ntos tlel twnjnnto d r ol)jetos tple 61 espt.cializa nlis totlos arls atril~ntospro1)ios. J,as tlos r t h i o n e s tt,ut l r h la misnia rlavr. Es in~lwrtantclseiialar tine la (slave (#SS) tlr la rc.lacihn tle cy)ec.ializat:ihn (PERS0N.I-C.AS.41)4 en t.1 ejcmt)lo) rs tanhibn nna claw e x t t w u . (lacxintlica la I-elaci5n dy gencralizacihn (PERSONA en r l t.jenll~lo). Conseciicilteiile~~tt~. RJOVBRK !, I>IRECCION en PERSON-\-C -\S:\DA constituyen inforn~at*icin tlul)lit.ada. Para elinlinar e s t ; ~retluntlantia dt, tlatos. siu~plenwntese snprimen tie la relacihn tle t.spetializaci6n todos 10s atrihutos no claves t p e estin tluplicados. Finalmrnte. entonces la relaciim PERSONA-C4SADA es: PERSONA-CASADA ( #SS, C O N Y U G E ) Clave Externa: #SS REFERENCIA A PERSONA
Transformar interrelaciones Lab intei-relaciones se transforman cn ires formas tliferentcs del)endientlo tle la rardinalidad de lax interrelationrs. Se manejarin lab interrrlationes nno-nno. nno-mwhoi mut-hos-muchoi separadanientt.. 1ntc.rrelaciones Uno-lino. Se tom& un ejrmplo del B a n w 4lt*lle1ilic~al. La i n t e r r r l a c i h TlENE-C-CUENTA, mostratla en la Fignra 5.15, es nno-uno. Eso rs tpir un cliente t i m e a lo sumo un control de ruenta j un control tle t ~ ~ e nse t aasigna 4110 a un t'liente. Si se asumen 10s atril~ntost4aves #CLJE:NTE para CLIENTE j #C-CUENTA para C I J E Y T Lentonre:, se tienrn (10s relarionrs dc nna colu~nna: CLIENTE (#CLIENTE) CONTROL-CUENTA(#C-CUENTA)
P a r a rnostrar la conexihn entre las dos relaciones, st. purde atlicionar #C-CUENTA a CLIENTE y #CLJENTE a CUENTA4.Note q u r catla una de rstas columnas es nna clavr extrrna que irdica a la otra r e l a c i h :
DISENOY ADMINISTRAC~ONDE BASES DE DATOS C L I E N T E ( # C L I E N T E , #C-CUENTA) C l a v e E x t e r n a : #C-CUENTA REFERENCIA A CUENTA CUENTA (#C-CUENTA, # C L I E N T € ) C l a v e E x t e r n a : # C L I E N T E REFERENCIA A C L I E N T E
CLIENTE (#CLIENTE) CUENTA (#C-CUENTA, K L I E N T E ) C l a v e E x t e r n a : # C L I E N T E REFERENCIA A C L I E N T E
['or supnrsto. r n nn twjlirina wnq)lt.to tlr I ~ a s cd r datos para una ay)licacibn real. a n h a s rrlat2ionrs t r n d r i n mnt.hos nlis atri1)utos. .4tIni s r mostruron shlo 10.; a t r i h t o s ntw~sariospara transformas rl siniplr niotlth conc.cytual (It, la Figlira 5.15. Si 10s ~ O I I ~ L I I I tos tlr o l ~ j r t o cn s la Fignra 5.15 tuvirran atril~ntosaclicionalrs. has r s t a h n 111wstosr n 1as a rllos. P o r r j ~ w ~ p l (:LTF:NTE o. pudic-rn t r n r r w m o atril~litos rt*larionrs corrrsl)or~tljr~itc.s ROMBRR. D1RF:CCIOU ! #TET,KFONO. y CITENT.4 putlirra t r n r r ronw atril~ntusSALDO y FE(:H4-.4PEItrTLTR;!. Kstos atrilmtos aditionalrs txusarian r n rl cXst[urmatlr h a w d r datoti w t a aparitmtia: CLIENTE (WLE I NTE, NOMBRE, DIRECCION, #TELEFONO) CUENTA (#C-CUENTA, # C L I E N T E , SALDO, FECHA-APERTURA) C l a v e E x t e r n a : # C L I E N T E REFERENCIA A C L I E N T E
En rrsun1t.n. las iutc~rrrlat~ionri nno-nno ir tranifornian mostrantlo nno tlr 10s conj1111tostlr ol~jtbtoitwno uu atrilmto tlr la otra rc~lariim.La rrlatibn rlrgitla s r drtrrrniua por la ~irc.rsitlntld r la prol~iaaplic.ac.ihn. En 1n11c4wcsasoi. c ~ ~ a l t [ n ireluciOn rr p ~ ~ r trlrgirst,. lv
CUENTA (#C-CUENTA, K L I E N T E ) C l a v e E x t e r n a : # C L I E N T € REFERENCIA A C L I E N T E CLIENTE (#CLIENTE) I k i , r n una inttlrrrlat*ii,n nno-nn~rhos.la rrlatihn cjue tlt.scri11r PI ot!jrto t.11 la 11artt~ ".iin~cha'^d r la intt~rrrlati0nr r d w la colnn~nat.lavc cxtesnn clue indica a1 otro ohjrto. E:n
CLIENTE
157
EL MODEL0 DE DATOS RELACIONAL
CLIENTE ( K L I E N T E ) CUENTA (#C-CUENTA) TIENE-C-CUENTA ( # C L I E N T E , #C-CUENTA) C l a v e s F o r a n e a s : #CLIENTE REFERENCIA A CLIENTE #C-CUENTA REFERENCIA A CUENTA
LLICIY I C
L U C I Y lr\
CLIENTE #CL I E N T E 1111 2222 3333 CUENTAS #C CUENTA CA888 CA777 CA999 T I E N E C CONTROL # CLIENTE
# C CUENTA
2222 2222 3333 1111 1111
CA999 CA888 CA777 CA7 7 7 CA888
DISENOY ADMINISTRACION DE BASES DE DATOS
O l ) s c ~ ~a-der n ~ i sclue shlo las colnnlr~asrlaves d r CLIENTE !CUENTA se w a u 1.11 'I'IENE-C-CONTROI,. Es tlrcir. iuc.luro si CLIENTE y ClTENT.4 t n r i w a n otras tw1u111nas. TIEIVE-(:-CONTROL nsarie s0lo las c d n m n a s t:laves 11e estas do6 relacionvs. E:l signiente cxsclnen~a i h s t r a esto: C L I E N T E (#CLIENT€, N O M B R ED, I R E C C I O N#TELEFONO) , CUENTA (#C-CUENTA, KLIENTE, SALDO, FECHA-APERTURA) TIENE-C-CONTROL (#CLIENTE, #C-CUENTA) C l a v e s F o r a n e a s : #CLIENTE REFERENCIA A CLIENTE #C-CUENTA REFERENCIA A CUENTA
Transformar conjuntos de objetos agregados ConGtlere la Figura 5.18. la r n a l 1nur5tra n n nod el!) twnreptual p a r a el raitrtw tIr l e n t a s d r International I'rodn~bt I)istril)ntion. SE-1 ENDIO-EN. una intrrrrlatihn agregada ( ~ I I ( ~ *e ronsitlrra 1111 w n j u n t o tle ol)jtjto*. titmt, un atri1)nto C24YTID41). Sv transforme cbsttB n ~ o d e l od r a r n e r d o ron las rtylas tladas antrriornlrntr. Uel)ido a q n e vkta intrrrelati0n e* d e rn~lc*llcrs-~~iuc*lios. se t w a u tres relationrs: PRODUCTO (#PRODUCTO) PAIS ( NOMBRE-PAIS) SE-VENDIO-EN ( #PRODUCTO, NOMBRE-PAIS, CANTIDAD) Claves F o r a n e a s : #PRODUCT0 REFERENCIA A PRODUCTO NOMBRE-PAIS R E F E R E N C I A A PAIS Se h a n t w a t l o 10s a t r i l ~ u t o sclawa #I'RODUCTO )- NOMHKE-PAIS p a r a distinguirlor tlr 10s noml~re,sd e sus relaciones rvspec:tivas. Tam1)iC.ns r tiene CANT1I)AD r n la relaciby SE-\'ENDIO-EN 11ortlur r s un atrihiito clue se aplica a es;i r t k ~ i 6 1 1 .Si SE-\.E:\DIO-EK tienr otros atri1)utos clue se It: aylican, ellos serian aii ;I( 1'11I os. t 1e una manera similar. Las r e l a c i o ~ ~ rPRODIJCTO s y PA41Sse m u e s t l a l (.on un solo atri1)uto. p r o 1)or s i i p e s t o e h s lwdrian t r n w otros atri1)ntos. %ino s r neresitan otros a t r i h t o s p a r a estas rrlariones en la I ~ a s ede datos, entonces rllos purtlen ser eliminatlos del esquerna y el rscpcma twnsistiri solaniente d r la rt4wiiln SE-VENDIO-EN.
159
EL M O D E L 0 D E D A T O S R E L A C I O N A L
SE-VENDIO-EN VENDIDO-EL
(#PRODUCTO, NOMBRE-PAIS) (#PRODUCTO, NOMERE-PAIS,
FECHA, CANTIDAD)
(Sf, h a n omitidt~lai reIac.~onescle nna t d n m n e t l u ~ deflnen ~ loi cwnjn~;toitit- objeto.. ) Note. sin rm1)argo. IIIII, toda r s t i ~i n f o r m a v i h contrnida r n SE4 ENDIO-E\ ?st6 t a n 1)ii.n contenida en \ EUJ)IDO-El,. ['or tanto. it, l ~ n e d eelnninar SE-\ ENDIO-E:f tlrl riqtwma. Si SE-\/ENL)I(-EN tn\irra atriljntoi no vlaxei. entonces no I)oclria rli~nindrw. Elinlinando SE-PENDlO-KN tlt.1 c y u e n l a . ritanloi dicitmlo clue el nlotlrlo (It. la F i p ra 5.19 c i eiencial~nrntc.una interrelaciOn (11. t w s - \ h i . Por tanto. r s c'cpmalente a la FIgnra 5 . 2 0 . El ruotlrlo rrlacional1)ara la Fignra 5.20 st&: VENDIDO (#PRODUCTO, NOMERE-PAIS,
PRODUCTO
-t
FECHA, CANTIDAD)
SE-VENDIO-EN
i
PAIS
VENDIDO-EL
PRODUCT0
*
VENDIDO
* PA~S
DISENOY ADMINISTRAC~ONDE BASES DE DATOS
Transformar interrelaciones recursivas
se llam;~r r c ~ ~ r s i vportjur a exist(. r n t r r ol~jetosOel mismo r o n j ~ m t o .En estv ( ' ~ s I Ila . int ~ r r e l a c i 6 ncon s~ cartli~~alitl;d m o - a - n ~ ~ ~ r hsigoifiva os ~ I I N1111 ~ t r a l ~ a j i ~ t l osrq w r \ i s : ~
lo signirnte: TRABAJADOR (ID-TRABAJADOR, NOMBRE, TARIFA-HR, ID-TRABAJADOR)
TRABAJADOR (ID-TRABAJADOR, NOMBRE, TARIFA-HR, ID-SUPV) Clave Externa: ID-SUPV REFERENCIA A TRABAJADOR 0l)scwe que ID-SCPV rs w a (:lave c:xtrrna rec~irsi\a.tlel)itlo a t~nt'referrl~ciaa I[)-TlZABAJADOR, la t.ual rs la c l a w d r la r r l a t i i ~ nen la (lo(: 11)-SUPV t.sta. Las rlavrk forineas rcmmivas son el rc.s~lltatlotle la trmsformaribn tlr 1;1sintrrrclaciones rrrlwsivas. En la Fignra 5.22 se muestran rjemplos tlr datos para la relaci6n TRARA4J.4DOK. En res11111e11. se hail mostratlo Ias vias tlr tratlilrir las ronstrlwc:ionrs drl modrlo y agrcgados- a r d a c o n c r l ~ t i ~-ol,letos. al atril)utos, intvrrrlariones, esl~t~ializariones cionrs. Desl~iibstle conq~lrtarscla tratlnc.ciOn, cl escprma rrsultantr tlc.l)rria revisarsr 1wr las rrtlundancias. Las rr1acionc.s r e d ~ m d a n t r s ,(.s tlrtir, rrlncionrs cupa informati611 csta totalmtmtr wntenidn en otras relaciont.s en r1 esqurnla, dehrrian rliminarsr del est.pwna. A t h n i s . vra (jut: todas las rrlaciontls estin nornializatlas a la marts forma normal. La r a z h para esto es la siguiente: Las tlrl)rndenc:ias foncionalrs, tlrfiniclas para el mcrdrlo relational, son atril)utos, interrdarionrs ~ ~ I I O - Lo ~intrrrrlacionrs ~ O nno-mllchos. El pro-
v ID-TRABAIADOR
1
TRABAJADOR
1
I
SUPERVISA
*I
TRABAJADOR
1
EL MODEL0 DE DATOS RELACIONAL TRABAJADOR I c TRABAJADOR
TAR I FA
NOMBRE M. C. R. P. H. C. J.
ID-SUPV
Faraday Nemo Garret M ason Rickover Coulomb Barrister
Ejemplos de transformaciones: Servieios de Consultoria Manwaring
CLIENTE
CANTI DAD
(DESCRIPCION)
REALIZADO-POR
/ CARGO
vI I
*
GRABADO-POR
CONSULTOR
CARGO POR SUMlNlSTRO
1
I
(-. PROYECTO
T~TULO
DISENOY ADMINISTRAC~ONDE BASES DE DATOS CLIENTE (NOMBRE-CLIENTE, DIR-CLIENTE) PROYECTO ( #PROYECTO, NOMBRE-CLIENTE , TITULO-PROYECTO, TOTAL-CARGO, #FACTURA, FECHA-FACTURA) C l a v e E x t e r n a : NOMBRE-CLIENTE REFERENCIA A CLIENTE
CARGO (#CARGO, #PROYECTO , CANTIDAD, DESCRI PCION) C l a v e E x t e r n a : #PROYECTO REFERENCIA PROYECTO SERVICIO (#CARGO, #PROYECTO, CONSULTOR) C l a v e E x t e r n a : #CARGO, #PROYECTO REFERENCIA CARGO
E n la wnveriihn drl conjunto de o l ~ j e t ~C1I
El c ~ n i j u ~ cle ~ t ohjetos o OTHO-CAKGO en ebtc. niodelo cwrrrspondr a CARGO en el niotlth anterior: OTRO-CARGO (#CARGO, #PROYECTO, CANTIDAD, DESCRIPCION) C l a v e E x t e r n a : #PROYECTO REFERENCIA A PROYECTO
Tam1)ibn se neresita una relatibn para CONSULTOR: CONSULTOR (NOMBRE-CONSUL TOR, PAGO)
Finalniente, se nerrsita representar la i n t e r r e l a r i h en una gran caja. Debido a que la intrrrelaribu OCUPADO-EN no t i m e atrihutos propios. s r pnede empotrar en la relac%n rcpresentada por la interrelati6n EN. Esta relacihn es equivalente a una relacihn de trrs-vias, tam1)ii.n su clave consistr tie tres atrihutos. Adrmis rlla tione 10s atributos uo claves HORAS y CANTIDAD.
163
EL M O D E L 0 D E D A T O S R E L A C I O N A L
4 EJECUTADO-POR TARIFA r
\ CONSULTOR
*
1-
PROYECTO
T~TULO OTROSCARGOS
)
TOTAL
OCUPADO-EN-ACTIVIDAD-EN
(NOMBRE-CONSULTOR, ACTIVIDAD, #PROYECTO, HORAS, CANTIDAD) C l a v e s A j e n a s : NOMBRE-CONSULTOR REFERENCIA A CONSULTOR #PROYECTO REFERENCIA A PROYECTO
Dehido a qur "EN" no da una drsrripcibn n111y 1)uena del significado de In r e l a c i h . sr le ha dado este nnevo n o m h e , que r s miis drsrriptivo. Annque el proc:rso de conversihn d e u n modelo conceptual a un modelo rrlacional rs mecinico y lined, requiere alguna intrligencia humana. Se h a i1ustr;tdo rsto en 10s dos ejrn~plosanteriores. tlondr se selecrionaron rlaves de varias manrras y se c.atnl)iaron 10s nornhrrs tle a t r i h t o s y ~ d a c i o n mdondr se nrcesith. No ohstante. el proceso es romparativamrntr simple y totlas ]as relariones rrsultantrs e s t i n r n cnarta forma normal.
Comparaci6n del modelado de datos conceptual y relacional Los estudiantrs. partic:ularmente aquellos que han tenido rxprrienc:ias con los SGBD relacionales, algunas vrces se prrguntan por c p b nos prrorupamos con el mot11Mo d r tlatos conrrptual cuantlo finalmrntr se implementari el sistema d r base d r tlatos en el
EL MODEL0 DE DATOS RELACIONAL
I65
estas relationes tle la inisina inanrra clue 10s t~onjnntos11e ol)jrtt)s he (-oiitbt't;m(In la F i g relac.iona1. se hat^ int~ntaln~t~ntc. (4 trar a 5.24. Asi. para realrnc~iteentrntler IIII ~notlt~lo cLnurn modelo eont:el~tnal. 11ajot ~ u !a r ?st&h w h o grifican~riitt~ Atioru, si imagina qutb(.st(. modelo relational scl amplia. tle inaiiera (111~ en IIIF~II.1 1 1 s iiirlnir SI'IIO ciiico relationes inclriya 30. 40 6 .i0, ~~rictl(vtSrlo dificil tlrw seria c ~ n t t ~ n t l t ~ l o tosin una aynda g r i f i w . Eli la c~1~eat.i61i tlr 1111 csqneina de h e de tlatos cs cseiicial (111~ tlas las sutilrzas i n h ( ~ r r n t rrsn (ma s i t n a t i h tlel in1111doreal sean t.aptnratlos exatataniente. Sin el nso de un niotldo w u t q ~ t u a l el . tlist+atlor d r l)ase de datos ( - t ~ r rt.1( ~~.irsgo(1e t*oint>t r r errores t*riticwstlr diselio. Ahora sr conl'ronta la 1)rrbguiitao1)uesta: i,Por (1116 nos iiiolrstamo~r n cwnwrtiido a 1111mo(le10 relational? i,Por club no solamcntc~sc in~pleinerrtael ~notleloc~onc.q)tnal'! Ida re.*11nrsta a rstas prrgniitas rs que la gran i n a y r i a cle las SGBDs instalatlas son ~ ~ l a t ~ i o n a l e s . LO^ SGKDs orirntatlos a ol)jetos, 10s t.iialrh srrian t4al,at*estle iiiiplcniciitai- cliret.ta~neiitc~ r s c ~ u e n i ; ~ ~ ~ o ~ ~ t - c ~ se l ~ t-onsitlora t ~ ~ ; ~ l e s qlir . griieralmente no hail alcanzatlo la "iutlustrializac*ihn" r r c p ~ r i t l a1w.a grantlcs al)licat~iont*sy son 11or lo tanto opciones no r t d v s . Itlt.~ niLs. para 1)usrs tle tlatos siiiil~les.el nlodelo relational cs p r o l ~ a l ~ l r ~ n rtan n t e f & t d( 1 tlibrson viahles iiar dirc:t.t;mwnte I * ~ I ~ It.1I I iiiotlelo cont:et~tual.P o r tanto. a m h s prol~ositiont~s \. 1 ~ i t : d t ~stAr i nsatlas apropiatlanirntr.
Kite rapitnlo introtluc.r t.1 motlrlo tlr datoi relational. la5 formas norn~alesasoci,~dascon lo a un nmdrlo relwional. S r mostraron 61 nn p r o c e ~ opara w n \ e r t w 1111~ n ( ~ l etwncrptnal forrnas tlr tliieiiar una lmsr tle tlatoi i ~ l a c w n a tlireetamrnte l de la informaci6n tlel ~ ~ i u ; ~ r i o o transformando 1111 nlotlrlo twnt-eptual. h l r m i s 3e discut~hla vrntaja intrinwc.a tle Ilia1 nn inodelo t*ont*eptuala n t r i de la (*rvwt*i6udrl rnotlelo rrlat*ional. El niotlelo tle datoi rrlacional f u r intrrrduc~~dcr en 1970 por E. F. Cotld, quien moiti 0 qne 11" r n f o c p . lhgieo d r la definicihn \ inanq)nlat~ihnd r datos r i snperior a1 enfocpic fisi co q u r prrvalcc.i,i en vie t~enipo.El niotlelo relatwnal s(. hasa r n la n o c ~ h nn ~ a t c n ~ i t i ctlra a i clatoi. La. columnas i c llaman atrihuto. una rrlurihn. clue cwniiite en filas \. c o l ~ ~ m ndc \. las filus st. Ilarnan t q l l a i . Cads rrl,~t.iOntwnr nn conjunt o tlr dtril~ntoi,conocidos twnio nni~ ( I ( drnente catla fila. Lai refrrrncias d r ~ntt~rrclaciones son nria t.lave. t p x ~tlentilir~rn nianipnladai a trav6s de (*la\rs f o r h e d s , tintb son pilnteros li)git*osde una fila d r Ilnd r r h ci6n a nna fila tlr otra I-elar~hn.Par,( estar iepnros d r la valitldci6n tle 10s dntos en llna I ~ a w cle datoi rtblac~onal.Codtl forrniilb las reglas (It. lntegridad tle la r n t ~ d a t ly de intrgritlatl referenc~al.Estas rrglas eitat)lecm q u r rl baler tle unw clake no p n r t k ser nulo ! clue rl valor de nna t'l;~\rrxterna tlel~ccorrespontlrr t*onel \ a h actual de m a clake en otra relac16n. La5 rrl,it.iones t ~ n vion (liieiiadai twmo party d r un tlisefio tle h i t , tlr d a t o i cont*eptual purtlrn te1ic.r anon~aliastle ac*tualizaci6n.Estas n o r i i ~ ~ i l m e nocnrren tt~ drhitlo a l a i deptmdnicias iunt*ionalrs o interrrlaciontli funcionale. r n t r e a t r h n t o i . n i n g u i ~ otlr loi t*ualci r s nn d t r i l ~ n t ocl'ivr d e Id relacicin. Hacirndo Ins tlrpentlentias fnnciol~ales una twnst.cueneid natural tlr la. tlelinitionei d r claves tlr una rrlacihn, st. c l i ~ n i n ~ l n rnnt*has anonialiai t8omunt.s. Lds I-elationei q u e corresponden con esta reglu c s t i n en t r r w r a fortna normal. 4 d t w i s . la existent.ia d r a t r i t ~ u t o smultirkalnadoi y rrglas rlisrliirtlas p r a garantizar la inrlrpentlencia e n t w a t r ~ h n t o ireiultan necrsaria5 p a r a unu formn normal inpcrior. La warts forma normal se uia p a r a garantizar clue lai rrlationrs en t r r w r a forma nornial manipularin prcrhal~lenienteatrihutos n i u l t i e ~a h a (10s. La cpinta forma norrr~al1 la forma normal dcrnl~niolclavrson formas normales atlicwnalrs clue han iitlo tliwutitlas en la literatura y son deicritai t ~ r r \ r m e n t een estr (*apit ulo. El proreso d e transforniat~ibnd r un modelo conceptual a un motlrlo rrlacion,ll inipli-
DISENOY ADMINISTRACION DE BASES DE DATOS
(:a la crratii,ll tlr una rrlacihn para catla ronjnnto tlr ol)jrtos en estt. mo(le1o. Los a t r i l ~ ~ t o s tIr1 conjunto tlr o1)jrtos son atri1)iitos d r la rc1at:ihn. Si rxiste un atrihuto c l a w rutrrno. se purdv nsar conlo la rlavt. tlr la rrlatihn. Por oLra p a r t r , una t-law puctlr s r r crratla por (,1 analista. Sin rmhargo, rs nwjor si 1111 atrilmto surge rspontLneanirntr rn la aplicacihn q u r r s t i sicmdo motlrlada. Intrrrrlacionrs d r uno-nno y nno-mwhos st- twlvirrtrn a1 inotlrlo rrlacional h a c i h l o l a s atri1)ntos tle la relaticin apropiatla. Las intrrrrlacionrs inut*hosniut~hoscorrrspontlrn a atrihutos ~nnltirvalnatlosy sr convirrten a la tbnarta forma normal. crrantlo una rrlaciOn cnya (.lave sr toma tlr las t k r s d r 10s dos conjuntos d r ohjrtos q n r participan en la intt.rrelat.ihn, I,os twnjuntos especialixatlos s r t.onvirrtvn I-rrantlo relacioiies separadas. q n r toman sus t:lavc.s tlr la relaci6n twrrc.spondirntt, a1 conjnnto tit. g ~ ~ n r r d i z a c i h Las n . rrlaciones rrcnrsivas purdrn s r r motlrladas crrautlo un ullrvo non~lwr d r atri1)nto. qne rs tlrscriptivo tle 1;r intrrrrlacihn. Los motlclos tlr tlatos cwnc.eptiialt~sson i n h t ~ r r n t r m m t rmiis ficilrs d r twmprrntlrr ( p t - los ii~otlrlosrdationalrs, p o r t p r se ajnstan mas a la manrra r n q n r naturalmrntr se ol)ser\-an las ( m a s , y sr rrilrjan en el lengiiaje a travks dal nso de snstantivos y vrrhos. Esto rnl~t-stracpr el p r w r s o tlr t l c ~ r r o l l otlr un inodt4o t*onc*rptnaly la couvrrsihn a nn ~nodt*lo rrlat*ionaluormalizatlo tnrrrcr 1.1rsfnrrzo drsarrollatlo porcpr en las situ;ltiours tlt. inotlrlado conlplrjas se purtlen comctrr rrrores crititw. Dehitlo a q u r la implrmrntarihn tlrlw scr normalnientr rctalizada r n el modrlo rrlacional. rl paso tle couwrtir rl modelo t.ontq)tual a1 rc4at~ion;llc-~)ntini~a sicmdo rscnrial.
1. Ilefina catla uno tle 10s siguirntrs t6rmii1os con
SIIS
niodrlo tlr datos relacaional intrrrrlecihn r v c ~ ~ r s i v o p a t i o tle m a rrlatihn clominio de atri1)uto snpercla*e t l ~ t r r i n i n af ' i ~ n t ~ i o n a l m t ~ ~ ~ t t ~ t*lavrcantlidata elale externa rsqurma tie I)aw tir datos rrlacional rt~glatir intrgritlad tle la rntidacl ncrrmalizat~ii'm rrdunclancia d r datok ailomalias d r actualizaci6n anomalias clr insrrtiim formas normalrs valor athmico drtrrininantr proyrccihn (le una rrlacibn forma normal Boj t d : o t l d drpendrncia multievaluada quinta forma normal relacihn d r intrrsrccibn
2. Compare y contrastr: a. c4ahrs y suyrrclavrs b. cia* rs f o r h e a s y clavrs c. claves foraneas y clavrs foranras recursivas. d. atribntos y dominios
propias p a l a h a s :
EL MODEL0 DE DATOS RELACIONAL
e. f.
g.
h.
atrihutos y cohnlnas t~tplasj filas intrgridad d r la w t i d a d e integritlad rc-ft*rrurial c.1avt.s c.anelidatas ! c.1a~c.sprimarias
3. Keaccionc a la sipuientr a f i r u ~ a c i i , l~~~a,r a f r a s r a d ade Krnt ( 1983): Uua r e l a c i i , ~e s t i r n t r r c r r a forula normal si toelo atrihuto no talalr rs deprndirutc. (lo la rlale. de la c.la\cb rntrra y (1' nada m i * c p r la d a l e . ;,()uG parte d r la a f i r m a c i h correslwnde a la scyunda forrna normal ! c u i l a la t r r r w a forma uormal?
5. I ) r s c ~ i l ~ela procrso de t r i ~ n s f ~ r u ~ a c idOr nun mod14o ronceptual a uu n ~ o d r l orelacional para: a. ronjunto dc. ol)jt,tos !atrihutos con !sin utla c n h e extrrna b. interrrlacibn uno-uno C. iuterrrlacibn uuo-n~uchos d. intrrrelacihn rnnt~l~os-muc*hos e . interrrlacionrs tle esl)t.t.ializacihn f. agrcgados p. intei-relaciorlrs rrcursivas
6. Comparr !c.ontra5tr rstos doh e n f ~ q u r para s r l motlrlado d r datos: ( I ) P r i n ~ c mtlrsarrollar un modrlo c*oncytual y entoncw cwmrrtirlo nlrciniramrntc a nn esquerua relarional normalizado. ( 2 ) Saltar r1 paso del ~nocleloronceptual ! desarrollar ~ I modelo relarional. manelo las teorias d r normalizacibn para eliminar las anonlalias. ;,()uG vrntajas 5. drsventajas t i m e cada rnfocpc?
1. Marque cada t6rmino con h u defitiic~i6n: -formu normal dominiolclnvr Un a t r i l ~ u t ono clave r s I'uncioualmrnte tlrprnclirnte d e nno o m i s atrihutos no claws. -sc.gui~dn forrnn normal Cada determinante es una rlave. -atributos d e la relaci6il Valor de u n atrihuto si el atrilmto es inaplic a l k o su valor es c1rsc:onorido. Consistencia de los clatos en una I x s r tle -integridad refereenck~l clatos. Tabla de dos dirnrnsionrs clue rontitmr filas >-tupla rolumnas cle datos. Conjunto de atrilmtos mininlos clue identifi-valor nulo can univoc-arnentr cada fila. E n terrrra forma normal sin deprndencias - t ~ r c e r a forrnu normal multirvaluaclas. Clavr externa que referencia su propia re-clave primaria lati6n. Una columna en una relacihn. -relaci6n El valor de una c l a w rxterna no nula dehe -(-lave extrrna recursivcc s r r un valor actual d r una clave en alguna relacih.
I
DISENOY ADMINISTRACION DE BASES DE DATOS
2. (:onsitlert~ la signirntv relac.ih11 (las 1rtr;ts ma!i~sculas son uornhrrs tlc atri1)utos !las y los nilnwros son w1orc.s): lrtras n~ini~stwles
Entit.rre en nn c*irculolas tle1wnclentias fnncionales clue sc el~lic-ana Y: 3.
A+ C
r.E+I
11. D+E f'. C+B
t*.
C+4
g.R+D
tl. E+B h. B+4
Itlrntificpw una posihle (.la\ r para X.
3. Considrrr la siguientr relacicin (lab letras mayusculas son nornhres dt* atribrrtos y las lrtras inini~sculasy 10s n h e r o s son valorrs):
Enrierrr en un c i r c d o las rlrpendrncias f'nncionalr'i que no
lclentifique una posihle (>lavepara Y
br
aplican a l'
169
EL MODEL0 DE DATOS RELACIONAL
4. Consitlrrr la siguimtr rrlac.ii,n (lab Irtras mayuscnlas son noin11rc.s tlv at~il)utos!. las Irtras rniniist*ulasy los nilu~rrosson \alorrs):
Idrntifiqur una posil,lc. clabr para Z: 5 . Para catla uua tlr Ias siguirntrs rrlac-ioi1c.s. indiqur a (1116f'ormas n o r n d r s .;r ajustan las rrlacionrs ( h i Iia! irlguna) y inurstrr &lo las relac-iows 11ucdmclc~sc~oiiil)oiir~.~r rll niiiltiplrs I-rlac.ionrs. cwla una dv las w a l r s sr ajlistan a la forma nornial siq)c.rior.
.
\ ENTA ( F E C H 4 , C L I E b T E , P R O D C C T O , VENDEDOR. CIUDAD-VENDEDOII. \ EYTASKtCI')
DF: CLIENTK
+ VENTASREP
E. TRARAJADOR (ID-TR4B. NOMBRE-TR4R, NOMHRE-C~YYUGE.HIJOS) F. VENT4 (FECH4, (,'LIE1 T E , PRODUCTO. F EN1)El)OK. CIUD AD-J EhDEDOR. VENTASKEI') DF: VENIIEUOR + CIIJDAD-VENDEDOK. T)F: PKODIICTO " \ENDEDOR
.
ESTIII)] AhTE ( # E S T , NOMBRE. EDIFICIO. PISO, KESIDERCIA-EST) DF: EDIFICIO, PISO ' RESIDEITCIA-EST
11. MATRICCLA (#CURSO, # E S T , G R 4 D 0 , INSTRUCTOR, #H.~BI'I'-\cI~)N) DF: #CURSO + INSTRUCTOR.DF: CURSO + # H A B I T A C I ~ N
I. ACTIVIDAI) (#EST, D E S C R I P C I ~ S . FECHA, EIIIFICIO. HABITACI(?Y. COSTO) DF: DESCRIPCION + EDIFICIO, DF: DESCRIPCIOIL + HABITACION. DF: EDIFICIO + COSTO 6. Cree un escprma rrlacional. con todaz las tdacionrs en 4FN. para la iignirntc informaciim sohi-r una conip;~iiiade segnroi de bitla. La wmpaiiia tienr una gran cantidad clr phlizai, sr quirrr conocer el ninnero de seguriclatl social drl asrgurado. el nombrr. la clirrwiim y 121 frcha d r nacimiento.
DISENOY ADMINISTRACION DE BASES DE DATOS
NUMERO DE
VENDEDOR DIRECCION
PAGADO CON HECHO-A
PRODUCT0
/
ORDEN
FECHA 1 NVENTARIO
PRECIO
VENDEDOR I HECHO-A
(DESCRIPCION)
\ *
INCLUYE
*
PRODUCTO \
TOTAL
~RECIO EXTENDIDO)
EL M O D E L 0 DE DATOS RELACIONAL
1. Sin usar
1111 modelo c o n c ~ p t u a lpara t.1 tliseiio conceptual, cree u n estjuema d e base de tlatos relacional para una organizec*ihcon la clue trnga csontactoo experiencia. Constru!a a1 menoi oc.11o rrlacionc.~q u r estin en 4FN.
2. Kea1ic.c: cl pro)-rvto 1 nuel-anlrnttS,rsta vrz p r i n ~ r r odiseiiando u n modelo conceptual y convirti6ntlolo a u n nodel lo rrlarional, usantlo 10s mGtodos d e este t:apitnlo. Compare sus e s p r r i c w * i aen ~ an11)os l)royrtBtos.
P
A
R
T
E
DE BASE DE DATOS RELACIONALES
E
n la partr 111 se rxploran 10s lenguajrs y sistrmas usados para la implemrntaci6n d r sistrmas de base d r datos en el modelo relacional. Esto incluye el ilgrhra y el cilculo relacional, asi como tam1)ii.n 10s lenguajes comer(-ialesSQL y Query-hy-Example. Ademis se examinan los principios relacionados con 10s problemas de implemrntaci6n fisica. En la discusi6n del ilgehra y el cilculo relacional, en el Capitulo 6 se examinan cuidadosamente estos lenguajes, que son las hases para todos 10s otros lenguajes relacionalrs. Sr usan numrrosos ejemplos para esclarecer amhos lenguajes. El capitulo 7 rxamina el SQL, lenguaje relacional ANSI estindar. Ademis se presentan sus aspectos esenciales dados en el SQL-89 estindar y tambiCn se analizan un niimero importante de aspectos dados por el SQL-1992 estindar. El capitulo 8 presenta el lenguaje Query-hy-Example, un lenguaje relacional grifiro. el w a l tiene varias implementaciones comerciales. E n la discusi6n se examina una de rstas implrmrntacionrs comerciales, PARADOX. El capitulo 9 se acrrca a1 nuevo Lrea de sistemas clientelservidor. Se ven dos sistrmas de hase de datos servidores, SQL server y ORACLE. TambiCn se analiza un entorno de desarrollo para aplicaciones clientelservidor, PowerBuildrr. El capitulo 10 examina las tkcnicas de implementaci6n fisica. Se examinan 10s dispositivos de almacenamiento de acceso-directo, 10s formatos de datos y la organizaci6n tradicional de archivos. Ademis se definen tCcnicas de correspondencia usando punteros; cadenas, anillos, listas invertidas y Lrboles B+ y se muestra c6mo Cstas pueden usarse para representar estructuras de datos l6gicas. Tambikn se estudia la estructura de la clave secundaria y las tCcnicas de optimizaci6n de consultas.
Y EL CALCULO RELACIONAL
Una ventaja revolucionaria en la manipulacion de
Asignacion U n ejemplo adicional
datos
Calculo relacional
Algebra relacional
La lista resultado y la sentencia de cualifi-
Union
cacion.
lnterseccion Diferencia
El cuantificador existencial
Producto
El cuantificador universal La dificultad relativa del algebra relacional y el
Selection
calculo relacional.
Proteccion Reunion (join)
'
Resumen
Reunion natural
Preguntas de repaso
Reunion theta
Problemas y ejercicios
Reunion externa
Proyectos y cuestiones profesionales
Division
Cordelic~Molini ,Y Reggie Townsend, usuorios d e sisteinrl~de infbrinaci6n dc~1~ Interiwtional Product Distribution ( I P D ) , rstcin discutiendo lrls diferen(i(~sr n 10s lengu(rjes de basc~sd e dntos relorionrrles. Reggie h a sido introducirlo recientemc~ntetr las base7 rle dntos relacionales y estri eqforz6ndose p o r comprender sus bosc~sconceptuales. Sill einbcirpo. no entiende las d{ferei~oio.sestructurcrles sign$cntir.ti\ cwtre algui~osd e 10s lengrrnje~comcvr i d e s . Cordelin le explicu: "Cuando Cotld originalmente propuso el inodelo rlr rlutos r d n cionnl, recoinend6 un leng~~c~jeproct~tliiirer~tc~l, el algebra relacional v 1111 l t w g w ~ j e110proredimcwtnl. d c4lculo relacionc~l." "Estoy confi~ndido,no entiendo esos tdrminos, Cor$rlicl. 2QuP entiendes p o r procedinrental " no ~. r o c r d i r n e n t d ? " "En uir Impuaje no procedimental. le decirnos a1 c o i n p ~ ~ t u d el14 o r tirne que hater y no tGmo hucerlo. En el lenguuje procediinental le decimos a1 ronyutc~clorcbmo se ejecuta ce~dnpaso. Los lengucrjes truclicionales d e 10s compr~tndore\son proredimentales. El inodelo relacional h a h ~ r h oin& pr6ctico el desnrrollo d e 10s lenguujes no procediinentrr-
IPS. " "Parc~ceriaentonres yue los I~rrgu(~jes no procedin~entalesson suzperiores (I 10s 1r11kEntonces p o r q u i toclos 10s l ~ i r g r ~ ( lr(hcion01es j~s 110 son i n o d ~ lados a p a r t i r del calculo relacional?" "Los lenguccj~sincis populares, tales conro el SOL. el QRL y el QL EL, tic~nrlrnm serlo. Purrr comprendcv completumente el modelo rele~cionnly 10s lenguc~jesuti1i:udo.s p r a manipnlorlo. es importante entender clmbos enfoyues."
~ I L ~ L J procedimentales. PS
st? capitulo hrinda una amplia introducri6n a1 ilpel)ra rt~lational! a1 cilrulo relarional, 10s t-na1t.s forruan las hases p a r a 10s lt~nguajescomerciales usa(10s con las h s r s d r tlatoz relacionales. D11spui.s de comenzar a familiarizarse twn estos lenguajes, e s t a r i preparado p a r a e n t e n t h y usar algunos tle los m w h o s lenguajrs de base (le datos q u r se hasan en ellos. Des1)ui.s tle leer este capitulo delw scar capaz zlc: Listar las operaclones (lrl ilgrln-a relacional y mostrar c6mo p u r t k n usarse para crear n n o a s relac~onrsa partir tlr relaclones exidentrs. Drmostrar la eztructura (lr las soluriones de consulta r n el t d ( * u l orelarional. m i s espet~ialnit~nte las instrut*cionrs condirionales q u r drlwn formarst. para tlefinir una soluri6n clr consulta. Formular soluciones para tipos especifiros de consultas de aiiihos lenguajes.
Una ventaja revolueionaria en la manipulaei6n de datos E n 1970-1971, E. F. Codd puhlic6 tlos artirulos introdrlciendo el modrlo tlr tlatos r r l a c ~ o nal y 10s lenguajrs d r iiianil)uldciOn clr clatos relarionales, el ilgehra rrlat-ional j el cilcrilo rrlacional. Aunque el modrlo tlr datos relacional era importante r n si iiii~iiio.10s lenguajrs rrlarionales eran m i s signifirativos en cuanto a la revoluci6n de las bases de ddtos rrlarionales. DespuCs d r todo, el modelo relacional, en el cual 10s datos se representan m tablas, es muy similar a 10s modelos orient ado^ a archivos que ya existian. Reconocidamente. 10s cambios en la terminologia: de orchivo a relaci6n, d e campo a atributo y otros se debieron a q u r rllos enfatizaban el significado l6gic0 d e 10s datos mucho m i s que sus estrurturas fisicas. Pero, retrospecxtivamente, parece que el aspecto niis importante del nuevo modelo r r a n sus lenguajes d e clatos concretos, que permiten la m a n i p u l a c i b de
DISENOY ADMINISTRACION DE BASES DE DATOS
t.ilculo rrlacional. Un Iengnaje no procrdin~ental1)ara la dt.GnieiOn tle ,olut*ione~ a voninltah.
datos t'micammte hasatla en sus carat*teristicas16gicas. E n rste capitnlo se estiitliarin 10s (10s lenguajes q u r Cotld p r o p s o ? rl Blgehra rrlacional y el c:iilculo relacional. E n su articulo original, Codtl introtlujo el modelo tle datos relacional y r l ilgel)ra relational (Codd, 1970). El ilgtbbra relacional es u n lrnguaje procrdiniental para la manipulaciOn de relaciones. Esto siwific*aque el i l g e h a relacional usa nna aproximac:iOn 7, paso-por-paso para erear nna relac1011 qne tsontenga 10s tlatos qne rrspontlen a la twnsnlta. E n t'l siguiente articulo, Cotld introtlnjo el rilt-ulo relacional (Cotld, l 9 7 l a . 19711)). El ciilculo relac-ional es IIO procetliniental. E n el c:&lculorelacional, una cwnsnlta se resneltlefinientlo nna rrlacihn en un simple paso. Cotltl inostrh q n r el i l g e l ~ r arelational y (4 cilt*ulorelacional son lhgitmncnte e q n valentes -nn hecho tlc consit1rral)lc importancia-. Eso signifin') clue cnalquirr t w d t a que potlria ser formulatla m el cilculo relacional podrin s r r formulada en t:1 i l g e l m relacional, y viceversa. Esto proporeion6 una nleditla del 11odrr 10gic.o de n n Icnguaje tle consulta. Si un lrngnaje era al menos tan poderoso como el ilgcbra relacional. cbra Ilaniado relacional~nentec o n ~ p l e t o Eso . significa clue nna c:onsnlta clue puede s r r formulacla en el i1gel)ra rrlacional tlelw ser formulal)lr r n el lrngnaje "rclacionalniente complete". l'or tanto, con el desarrollo tle 10s lenguajes wlacionales comerciales, su pocler lhgiro .;r pnedc prohar t ~ o n i p a r i n l t l t ~con s el i l g e l ~ r arrlacional o el cilculo rrlacional. Si n n lenguajr es menos poderoso clue rllos. rntonces 11al)i-acirrtas ronsultas clue no podriin formnlarsc en el lrnguaje comcrcial. El ilgel)ra re1at:ional es taml)ibn importante porqne aporta muchcr tlel vocat)ulario y nluc-hos d r lo* cont*eptob1)isicos de nianil~ulacihnde tlatos re1at:ionales quv se encuentran comi~nmenteen los lengnajes de h e s de datos comrrciales. TCrminos tales como select, project, joiu zmion co~npcctibl~ se originan en cl ilgehra rrlacional. Ademis. algunos Icnguajes d e haws tle tlatos comerciales se basan en el Llgehra relacional. El cilculo relational es importante por dos razonrs: (1) E s t i I ~ a s a d oen la lhgica formal tlrl cilculo tle predicados. clue es u n m h d o poderoso d r determinaciOn cle la vertlad de una i n s t r u c c i h n partir de la vertlad d e sns componentes. Consecnrntenwnt r , el cilculo relational t i r n r nna fnndamt~ntacihnlhgicu tan firme como cualqnier lenguaje d e programacihn rsistente. (2) Varios lengnajes relacionales comrrciales e s t i n conceptualniente cw-canos a 61. St. rstutliarin algunos d e estos lengnajes en capitulos posteriores. .-lml)os: el ilgehra rrlacional y rl riilculo rrlarional, en la manera en que rstlin formnlados por Cotltl y en la que se analizan en estr capitnlo, son lrnguajes trhricos. Esto significa clue estamos intert*satlos s d o en 10s asprctos conceptualrs del ilgehra y el c i l t d o rrlacional, no r n las im1)lementaciones rspecificas d e rllos. P o r tanto, s r r i hastante lihre e informal la drfiniciim y el uso tle la sintaxis. Si kstos fneran r r a l n ~ e n t elenguajes comerciales. como 10s que se rstudiarin postrriormrnte en este lihro, se necesitaria ser m i s preciso. P a r a ilnstrar 10s ejemplos a lo largo c k rste capitulcr se u s a r i la base de datos de la Figur a 6.1. Esta hasr d r datos s r toma d e la International Product Distribution, caso clue es el introducido en el Cayitulo 1.
~ l ~ e b relaeional ra Las operaciones del iilgehra rrlacional manipulan relaciones. Esto significa q u e rstas operacicrnes usan una o dos relaciones existentea p a r a c r e a r una nueva rrlacihn. Esta nueva relaciirn p u r d e entonces usarse como entrada p a r a una nueva operaciijn. Este poderoso conceptcr -la creacihn d e una nueva r e l a c i h a partir d e rrlaciones rxistentrs- hace posible una variedad infinita cle manipulaciones soln-e 10s datos. Eso t a m h i h hace considerahlemente m i s ficil la snlucihn d e las consultas, dehitlo a q u e se p u r d e experirnentar con soluciones parcialrs hasta encontrar nna proposicihn con la que se trabajari.
EL ALGEBRAY EL CALCULO RELACIONAL
177
CL IENTE ID-CLIENTE
Watabe B r o s Matlzl Jefferson Gomez
PAIS
SALDO INICIAL
SALDO ACTUAL
Japon Austria USA Chile
45.551 75.314 49.333 27.400
52.113 77.200 57.811 35.414
DIRECCION
NOMB-CL IENTE
Box 241, Tokyo Salzburg B 918, Chi c a g o Santiago
VENDEDOR ID- VENDEDOR
NOMB- VENDEDOR
Rodney J o n e s M a s a j i Matsu F r a n ~ o i sM o i r e E l e n a Hermana Goro Azuma T e r r y Cardon Albert Ige B r i g i t Bovary B u s t e r Sanchez
OFICINA
ID-JEFE
Chicago Tokyo Brussels B.A. Tokyo Chicago Tokyo Brussels B.A.
27 44 35 12 44 27 27 27
PRODUCTO COS TO
PRECIO
21 0 31 7 31 7 253
1,25 2,25 3,55 0,60
2,00 3,25 4,80 1,20
ID-CL IENTE
ID- VENDEDOR
ID- PROD
CANTIDAD
100 101 101 100 101 105 110 105 101 101
10 23 23 39 23 10 37 10 23 23
2241 251 8 1035 251 8 1035 2241 251 8 2249 2249 2241
2 00 300 150 200 200 100 150 50 75 250
DESC- PRODUCTO
abrigo l a m p a r a de mesa l a m p a r a de mesa escultura
ID-FABRICANTE
VENTA FECHA
FABRICANTE
ID-FABRICANTE 21 0 253 31 7
NOMB- FABRICANTE
K i w i Klothes B r a s s Works Llama Llamps
DIRECCION
Aukland Lagos Lima
Nueva Z e l a n d a Nigeria Pert)
El ilgehra rrlacional ronsta d r las siguientes nurvr operaciones: uni6n. intersecc i h , difrrencia, producto, seleccih, proyectar, reuni6n. divisiirn y asignaci6n. Las cuatro primeras de estas operacionrs sr toman cie la teoria de conjuntos de la Matemitica y que son considerahlrmente parrcidas a las operaciones encontradas alli. Esto es razonahlr, debido a qnr las relaciones son en si misma conjuntos, de esta manrra se le pueden aplicar las operaciones de conjunto. Las cuatro siguientes son operaciones nuevas que se aplic:an especificamente a1 modelo de datos relacional. La idtima operaciirn (asignacih) es la o p e r a r i b estindar de 10s lenguajes de computaci6n, de dar un valor a un nombre. En
za43ugs J a j s n g A ~ e ~ o~ gr 6 r ~ g 361 J J a q I V UOpJe3 A J J ~ ~
8 CSZ 6PZZ LPZZ SE@C
. ~ ' e~nS!d 9 el ~11pqa.1e1 % :)I) ~ s ~ u o ! a e pseqwe ~ ua ua zaa e m 010s a . ) a ~ e dse q g selsa al) eun epe,) o ~ a d'ZY) ~ J I I el 'pp x ~ a g a ~ g hJ- Oa s~ ~ e ~ ~ ~ ~ g ! l r r' saep~ ! gs a 'c.9 ~ d~Z"S WJIIS!~ u e ~ l u a n m aas 'ZI d
EL ALGEBRAY EL CALCULO RELACIONAL
179
VENDEDOR ID- VENDEDOR
ID-JEFE
NOML VENDEDOR Rodney J o n e s M a s a j i Matsu Franqois Moire E l e n a Herrnana Goro Azurna T e r r y Cardon Albert Ige B r i g i t Bovary B u s t e r Sanchez
27 44 35 12 44 27 27 27
OFICINA Chicago Tokyo Brussels B.A. Tokyo Chicago Tokyo Brussels B.A.
lab colunmas. Si rstr PS el raso, sr dice clue las dos relaeioncs son unicin compatible. Olwiamente, VEN1)EDOR-SUBOR1)INAUO !VEKDEDOR-JEFE son unihn compatihle. Se requiere la compatihilidad de la u n i h p a r a qlw el resultatlo tle la nni6n sea una r e l a r i h . Si se toma la uni6n de CIJENTE y PRODIJCTO, se obtentlria un ronjunto. p r o no una r e l a c i h . Las filas en el ronjunto resultantr no tendrian columnas twmunes. d r este modo ellas no se agruparian en una tabla relacional. La compatihilitlatl tle la unihn es rlaramente esencial p a r a la o p e r a r i h d r uni6n. P o r la misma r a z h , es esencial para las operaciones d r interseccibn y diferencia.
interserri6n. Operacihn del iilgcbra rrlacional que crea un ronjunto interseccih tie tios rclacioncs uni6ncompatible.
La o p e r a c i h d e interserci6n (n)permite identificar las filas que son comunes a dos relar i m e s . P o r ejemplo, si sr quiere identificar 10s vendedores que son suhordinados a alghn jefe y que son jefes, se toma la i n t ~ r s ~ c c i bde n VENDEDOR-SUBORDINADO j VEVDEDOR-JEFE, llamando a1 rrsultado VENDEDOR-SUBORDINADCJEFE: VENDEDOR-SUBORDINADO-JEFE
: = VENDEDOR-SUBORDINADO VENDEDOR-JEFE
Esto produce la siguiente relatihn: VENDEDOR-SUBORDINADO-JEFE D I-
VENDEDOR
N O M VENDEDOR ~
ID-JEFE
OFC IN IA
% COMISION
Albert Ige B r i g i t Bovary B u s t e r Sanchez
27 27 27
Tokyo Brussels B. A .
12 11 10
El resultado d e una operacibn d e interseccih es la r e l a c i h ronsistente e n todas las filas clue e s t i n en amhas relaciones. Esto significa que, si C es la i n t e r s e c c i h de A y B,
entonces C consta de aquellas filas que e s t i n en A y en B. A1 igual que antes, A y B deben ser unihn compatible.
DISENOY ADMINISTRAC~ONDE BASES DE DATOS
Diferencia La operacibn de diferenria (indirada por un signo menos) permite identifirar filas clue estin en nna relaci6n y no en otra. Suponga que es de lnteris identificar 10s jefes que no son subordinatlos tlc otros jefes. Entonces, se toma la tliferencia entre VENDE1)OR-JEFE \ENDEDOR-SUBORDINL4D0, en rse orden. VENDEDOR-JEFE-JEFE
: = VENDEDOR-JEFE
- VENDEDOR-SUBORDINADO
Esto protlure la siguiente relatibn: VENDEDOR-JEFE-JEFE ID- VENDEDOR
NOME- VENDEDOR
27
T e r r y Cardon
ID- JEFE
OFICINA
% COMISION
Chicago
15
La diferrncia entre (10s relaciones se define como la rt4aci6n consistentt (le todas lab filas clue estiu en la primera relacihn y no eitin tanla segunda relacibn. Asi. si
entonces m a fila r s t i cn C si y s61o si esti en A y no esti en B. Ohservr qne A - B
Si se inlierte el orclen tie las r t h i o n e s usadas en el ejemplo anterior. VENDEDOR-SUBORDINADO - VENDEDOR-JEFE
sustrarri6n. La operacibn diferencia tlel ilgel~rarelacional.
la relatihn resultante comistiria tle todos acjuellos vrnciedores q u t no son jefes de nadir. lo cual es jnstanientc lo opuesto tle 10s vendrdores qnr no son tiirigiclos por nadie. Asi es qnr el orden de lad relaciones t:n m a operation tle diferencia ~s mny importante. Uua vez mis, a m l m rrlaciontas t1el)en ser unibn con~patil)le. La operacihn dr diferentia p e d r tamhiin srr llamada operacihn tle sustracci6n. Esta operaciim particular rs muy valiosa en la solucibn de algunos problemas dificilrs, t p e dr otro motlo no se solucionarian. Se tlari un ejemplo a1 final de la disrusihn del Algebra relational.
Producto producto. Operarih tlel ilgehra relacional t p crea el producto cartesiano tle (10s relaciones.
La operacibn producto, qne ae indica por el simholo ", es valiosa como un l~loqurpara la construccibn de una reunibn (join), qur es probahlemrnte la operacibn lnis importante en el Algebra relational. Es idhtica a la operacibn en matemiticas que crea el producto cartesiano de dos conjuntos. ilhora se rxplicari q u i sipifica esto, ilustrrindolo con la operacicin d r producto en un ejemplo ahstracto muy simple. Considerr las relaciones de la Figura 6.4(a). A )- B son relaciones de dos columnas que tienen 10s atrib~itosX, Y y W, Z, resprctivamente. El producto de A y B es C, que se mwstra rn la Figura 6.4(h).
EL ALGEBRA Y EL CALCULO RELACIONAL
( a ) La r e l a c i o n A y B
(b) E l
producto de A y B
1. Concatenando los atrihutos d r las dos relacxiones. 2. Unirndo cada fila en A, con cada una d r las filas en B . Esto siguifica clue 10s atrilbutos de C son todos 10s atrihutos de A y B juntos. Deljid o a clue A y B tirnen dos atrihutos cada uno, C tirnr cuatro atrihutos. Las filas d r C se
w e a n ensartendo filas de -4 y B juntas. Cada fila de A se corrrsponde con c-ada fila tle B . Asi. de1)ido a que hay t r ~ filas s en B, cada fila de A se corrrsponde trrs vrces con B y rntonces aparece en t r r s diferentrs filas de C . Es facil v r r clue el n u m r r o de filas d e C siernpre sera el n u n ~ e r od e filas en A por el nnmero de filas en B. Otro ejemplo usando la hasr de datos de la Figura 6.1 es si tomamos el producto d e PRODUCTO y VENTA. P-V
: = PRODUCTO
* VENTA
P-V tendria 10 columnas y 40 filas. Hay tin pequeiio pro1)lema en este caso, debido a que una columna en PRODUCT0 y una colunina en VENTA (ID-PRODUCTO) tienen el misrno nombre. Esto se resuelve rriodificando el nombre de la columna en cada caso, aiiadiendo el nombre de la relacicin original. Asi, en P-V be tienen columnas llarnadas PRODUCTO.ID-PRODUCT0 y VENTA.ID-PRODUCTO. Esto parecr ser una aplicaci6n no natural p a r a la operaciim producto. Eso significa clue 110 e s t i claro quC t i p de consulta se responde tomando el producto d r dos relacionrs.
DISENOY ADMINISTRACION DE BASES DE DATOS
No d)st;mtr, cwnlo sc krr.6. el protlurto sr usa twmo In oprraci6n tlc eonstrnrcihn dr un hlot p e par:^ la w ~ l n i h n(joii~). Esto rs cc~ntq)tualmrntrim~lortantr;por tanto. t r n d r i m a ;1111pliaaplitwi6n inas ;~tlelantrr n cl ca1)itulo. 1 a n l l ) i h sc usa en rl lrnguajc tle rollsulta SQL. qut. rs ('1 ler~guajrwnlrrrial relational m i s inq)ort;~nte.
riclecci6n. 0prrac.iOn tlel Algrl)lx rrlac.io~~al I a I totliti Ijara srlrcriol~arf'ilas t k una r e l a c i h ~ ~ .
La o11rrac:ihn clr seleccihr~s r usa para ( w a r una rrlncihn a partir d r otra rrlacihn. selrcc.ionantlo shlo aqurllas filas q u r satisfacrn una c.ontlici6n esI)ecifica. Por rjrmplo, t:onsidrr r la siguirntt. consults:
Consulta: Dar toda l a informacidn de 10s vendedores en l a o f i c i n a de Tokyo. rst~ las filas tlr la rrlaciim VENDEDOR d r la Esto puetle s o l ~ ~ t * i o n a selrt~cionantlo Figura 6.1. sujrtas a la twndit:ibn dtb cjnr m a fill s r seleccio~lashlo si el atrihuto OFICINA rs i g ~ ~aa '"l'okp". l Esto sr hare r n el algebra rdacional como siguc: VEND-TOKYO
:=
SELECT ( V E N D E D O R : OFICINA
=
'Tokyo'
El nomlwr "VEND-TOlCI-0" st3h a dtlfinido para identificar la rrlariim. La 11alaI,ra (:lave "SELECT" sr nsa para intlicar q u r s r r s t i rcalizando una q1rraci6n d r srlccvi6n. A continuwi6n clr "SELECT" sr pone cmtrr parbntrsis r l n o n ~ h r ed r la rrlacibn dt. la m a 1 son srlrccionadas las filas. scguido por dos puntos (:), srguido par u n a condici6n dc s e l r t ~ i 6 n .Esas filas q u r satisfacen la condici6n tlr srlcccihn s r r h srlrt.t:ionatlm y put:stast(:~~ la rt~lacibnrrsdtantc:. El rcsultado d r csta operaciOn d r srlrrcihn rs la siguicnt r rrlacihn: VEND-TOKYO
ID- VENDEDOR
NOME- VENDEDOR
ID-JEFE
OFICINA
% COMISION
14 39 44
Masaji Matsu Goro Azurna A l b e r t Ige
44 44
Tokyo Tokyo Tokyo
11 10 12
27
Las twndiciones d r srlrt-ci6n son esencialrnentr las rnismas c:ondicionrs usadas en las instrut:ciones I F en los lrnguajrs tradicio~lalesde programaci6n. Sin rrnl)argo, 10s nomhres de columnas nsados en una condicihn de srlecci6n dada de1)rn ent:ontrarsr en la relatiOn nomhrada rn la operaci6n d r selerci6n. Ngunos ejemplos de condiciones tie srleccibn q u r podrian usarsr con la relacihn VENDEDOR son: ID-VENDEDOR
=
23
= ' B r i g i t Bovary' ID-JEFE >= 20 not OFICINA = ' B . A . ' %COMISION < 11
NOMB-VENDEDOR
Obberve que pueden usarse operadorrs de romparaci6n tales como "<" J. ">". Hay cinco operadores de comparaci6n: =. <, >,<=, >=. P a r a rada uno de 6stos hay u n operador rorrespondiente que usa el operador booleano "not". Asi, se tienr "=" y "not =", "<" y "not <" J. asi sucesik arnente. Tarnhi6n s r pueden usar 10s cwnectores hooleauos "andny "or". El oprrador "not" se p w d e usar para negar una condici6n entera. Estoh conceptos se ilustran en las consultas siguientrs.
EL ALGEBRAY EL CALCULO RELACIONAL
Consulta: iQue vendedores t i e n e n I D 23? Solucion: SELECT (VENDEDOR: ID-VENDEDOR
= 23)
Resultado: ID- VENDEDOR
N O M B VENDEDOR
ID- JEFE
OFICINA
% COMISION
23
Franqois Moire
35
Brussels
9
Consulta: Dar t o d a l a i n f o r m a c i o n s o b r e e l vendedor B r i g i t Bovary Solucion: SELECT (VENDEDOR: NOMB-VENDEDOR
= ' B r i g i t Bovary')
Resultado: ID- VENDEDOR
N O M B VENDEDOR
ID- JEFE
OFICINA
% COMISION
35
B r i g i t Bovary
27
Brussels
11
Consulta: i Q u i e n e s son 1 0 s vendedores con un j e f e con I D mayor o i g u a l que 20?
Solucion: SELECT (VENDEDOR: ID-JEFE >= 2 0 ) Resultado: ID- VENDEDOR
NOMB- VENDEDOR
ID- JEFE
OFICINA
10 14 23 39 44 35
Rodney Jones M a s a j i Matsu Franqois Moire Goro Azuma Albert Ige B r i g i t Bovary B u s t e r Sanchez
27
Chicago Tokyo Brussels Tokyo Tokyo Brussels B . A.
12
44 35 44
27 27 27
Consulta: Dar t o d a l a i n f o r m a c i o n s o b r e 1 0 s vendedores, e x c e p t 0 aque110s de l a o f i c i n a de Buenos A i r e s . Solucion: SELECT (VENDEDOR: OFICINA
= 'B. A . ' )
Resultado: ID- VENDEDOR
NOMB- VENDEDOR
ID-JEFE
OFICINA
Rodney Jones M a s a j i Matsu Franqois Moire Goro Azuma T e r r y Cardon Albert Ige B r i g i t Bovary
27
Chicago Tokyo Brussels Tokyo Chicago Tokyo Brussels
44 35 44
27 27
Consulta: iQue vendedores t i e n e n una c o m i s i o n menor que 11%? Solucion: SELECT (VENDEDOR : % COMISION < 11 ) Resultado: I D VENDEDOR
N O M B VENDEDOR
ID- JEFE
OFICINA
% COMISION
Rodney Jones Franqois Moire Goro Azuma B u s t e r Sanchez
27 35
Chicago Brussels Tokyo B. A .
10 9 10 10
44
27
DISENOY ADMINISTRACION DE BASES DE DATOS
Consulta: i Q u i e n e s son 1 0 s vendedores en l a o f i c i n a de Tokyo que t i e nen una c o m i s i o n mayor que 11%?
Solution:
> 11 )
SELECT (VENDEDOR: OFICINA = ' Tokyo' and %-COMISION
Resultado: ID- VENDEDOR
N O M B VENDEDOR
ID- JEFE
OFICINA
% COMISION
M a s a j i Matsu Albert Ige
44 27
Tokyo Tokyo
11 12
Consulta: i Q u i e n e s son 1 0 s vendedores cuyo l e f e t i e n e i d e n t i f i c a d o r 27 o una c o m i s i o n mayor que 10%?
Soluci6n: SELECT (VENDEDOR: ID-JEFE
= 27 and %-COMISION
> 10)
Resultado: ID- VENDEDOR
NOMB- VENDEDOR
ID-JEFE
OFICINA
10 14 37 27
Rodney Jones M a s a j i Matsu Elena Hermana T e r r y Cardon Albert Ige B r i g i t Bovary B u s t e r Sanchez
27
Chicago Tokyo B. A. Chicago Tokyo Brussels B. A.
44 35
12
prott~cri611.Ol1rrari6n del B1gel)ra rrlacional cpir crra una rrlaciirn 1)orranclo rolurnnas d r m a rdarihn rxistrntr.
44
12 27 27 27
Algunas d r las consultas usatlas para ilustrar la operacihn de se1rt:cihn prrgunta1,an "QuiPnt~s...", lo cual sugiere que 10s usuarios querian shlo los nomhres tle 10s wntletlorrs quc satisfarian la condic.ihn tie la consults. Sin emhargo, la respuesta a cada t-onsulta inclnia filas enteras tle datos toniatlas tle la relacibn \l:NDEDOR. tlelklo a qur la oprraci6n tle srlrccibn sirmprr s e l t ~ c i o n afilas rnteras. E s t i claro qne sr necesita alguna inant.r a de eliininar las c:olninnas no tlrseatlas. Si la operacibn de selecc:ibn pueclr prnsarsr como la rliniinari6n de 1;rs filas no drseat1;rs. la ol)rracihn tlr proyectar [)urde pensarse coino la eliminaci6n tle las columnas no tlesradas. La relaci6n resultante tlr uua ol~eracibntle proyectar se 1l;lnia m a proyeccicin tlr la relacihn original. A diferrucia tie otras oprrariones tlel Algebra relarional, la oprracibn d r proyrctar no rrquirre una palalwa t-law especial o sinholo. M&s hien, para t.rear una proyrceihn -una rrlarihn consistente sblo de ciertas columnas iclcntificadas de otra relacihn- sr lista simplrmentr la relacibn original seguida tle 1as colnmnas q u r se cjuierm conservar encrrradas r n t r r corchetes. P o r rjemplo, si se desea idrntificar 10s ventledores t k la oficina de Tokyo, se proyrctaria la rolulnna nombrr de la relacihn \XNDEDOR-TOKYO niostrada en la pigina 182. VENDEDOR-TOKYO
[NOMB-VENDEDOR]
Esto da la signirnte rrlacihn: NOMB- VENDEDOR
M a s a j i Matsu Goro Azuma Albert Ige
Se podria hailer escogido mas d e una columna. Asi, si se quirre el ID, el Nombre y el Jefr d e eyos tentledorrs se introduct.:
VENDEDOR-TOKYO
(ID-VENDEDOR,
NOMB-VENDEDOR,
ID-JEFE)
Esto (la el siguirntr resultado: ID- VENDEDOR
NOMB- VENDEDOR
ID-JEFE
M a s a j i Matsu Goro Azuma Albert Ige
44 44 27
Suponga que es de interks conocer todos 10s difrrentes porcrntajrs de comisi6n pagados a 10s vpdedores. Se puede ohtener esto proyrctando simplemente la rolumna Ti-COMISION d r la rrlaci6n VENDEDOR: VENDEDOR [ % COMS IO I N]
Esto da (11siguiente resultado:
Observe qur cada tasa de comisih aparrcr s d o una vez, aun cuando distintos vendedores tienrn la misma tasa de comisi6n. D e l d o a clue una relacibn es un conjunto, llna tasa dada aparece s6lo una vez. Esto es una caracteristica importantr de la operacibn de proyectar. Eso automitic~amenteeliniina filas duplicadas de la oprracibn resultante. Esto ademis ocurre cuando la relacibn resultantr consistr dr m i s de una columna. Si cnalrsquiera dos filas enteras en una rrlaci6n son idkntiras columns por columna, la fila aparrce s d o una vez en la relaribn. La operaribn de proyectar presrnta una oportunidad mliy convrnirntr para mostrar rl anidamiento de operaciones en el ilgrhra rrlacional. Por unldumiento se rntiende la ejrcuci6n de m i s de una o p e r a c i h sin asignar explicitamente un nomhrr a las relacionrs intrrmedias resultantes. Por ejemplo, afiadamos una o p e r a c i h de proyectar a una de las ronsultas usadas para ilustrar la o p e r a c i h de selrcc:i6n: Consulta: i Q u i e n e s son 1 0 s vendedores que t i e n e n una c o m i s i o n menor que 1 l%?
Solution: SELECT (VENDEDOR:
% COMISION
< 11 ) [NOMB-VENDEDOR]
Resultado: NOMB VENDEDOR Rodney J o n e s Franqois Moire Goro Azuma B u s t e r Sanchez
En estr rjrmplo, la operaribn de selercibn se realiza primero seguitla por la proyeccihn s o l r e la cwlunina NOMB-VENDEDOR resultante. Esto es permisible para anidar olwraciones del ilgehra relacional como se quiera, usando parkntesis doncle se neresite mostrar el ordrn de las operaciones.
DISENOY ADMINISTRACIONDE BASES DE DATOS
reuni6n. 0pc.raciOn tlel i1get)r.a rclacional clue conrcta rc~laciones.
La o p e r a r i h tie r e m i o n (join) se usa para I-onetatartlatos a tra\bs de rc~lac.ioues-cpi7is la funcicin m i s i m p o r t a ~ ~ tbn t e twaltpier 11.1ipije de Imse (It, tlatos-. Existrn \ a r i a s \ e r sionvs: la rennicin n a t ~ ~ r(anl t l t w djoin). la rrui1i6n theta (tlretcl join) !la reuniim tbxternn (outer join). 1)e ;stas, la ieunicin natural es la m i s importantt..
Reuni6n natural. Consitirrr la reldeicin YEKT4 t1e la Figora 6.1. Esta rclac*ih~ialmawde en ti^ partiew n a c1 t'litmte, el vrndrdor y 1.1 l)rotlurto in\ olnt*ratloen una tra~~si~e'tiOn lar, i n r l ~ ~ y t ~ n10s t l o11)s de rstos t r r s e l e ~ n ~ e n tde t ~ stlatos. Esta inforn~arihnpermitr h a c ~ r ront.xiones Ibgiras rritre las rt.lat.iones CLIEltTE. VKNUEDOK ! I'RODI'CTO. Y o r rjemplo, suptmga que sta t p i t w n cwnowr 10s nomhrrs dt. los c.1ientc.s que ha11 h r r h o vonip r a r al ~ e n d r d o r10. I'rimero. sc. srlwrionan acjuc4as l e n t a s al)licadas 4 1 0 al vtwledor 10 j se pontbn entont.t'i en una relwihn cjue se llama VENTI-10. Esto (la la siguientc* relarihn:
FECHA
ID-CLIENTE
ID- VENDEDOR
ID-PRODUCT0
CANTIDAD
Entonwr se pueele ohtent-r la 1nhrmat.i6n deseatla reuniendo las relat*iont.s \ EATA-10 y CLIENTE. Esta operarihn procwlr romo qigue:
1. S r crea el produt.to tlv VENTA-10 CLIENTE. Se ohtirnt- m a relarihn con 11 c d u m n a s (5 d e VENTA-10 y 0 de CLIENTE) y 12 filas ( 3 en \'EN?'.\-10 * -3- en CLIENTE).
2. Tcrtias las filas d r esta relaci6n protlurto se eliminan, exrepto aquellas en las calla-
reuni6n natural. O p e r a c i h de reunlbn cpe ronerta relwiones ruando las rolumnas conlunes tienrm iguales valores.
les el ID-CLIENTE tlr VENTA-I0 es igual a1 ID-CLIENTE de CLIENTE. El resultatlo r s la relatihn mcrstrada en la Figura 6.5. Ohserve q u r hay dos columnas ID-CLIENTE en la relacibn y clue en ( : a h fila 10s valores r n rstas 110st:olumuas son idtnticos. 3. 1)ehido a clue las dos columnas ID-CLIENTE contienen idtntica informari0n. l uria dt: ellas purde eliminarse. Esto resulta en la reuni6n natural ( n a t r ~ r ujoin) de VENTA-I0 y CLIENTE; rnostrada en la Pigura 6.6. P o r suvuesto, se h a obtenido mucha m i s informaci6n clue shlo 10s nomhres de 10s rlientes. Si se quieren sblo 10s noml~res se tendria que proyertar la rolumna NOMB-CLlENTE d e la relaribn tie la Figura 6.6.
FECHA
IKCLIENTE
IcVENDEDOR
ID-PRODUCT0
CANTIDAD
SALDO ID-CLIENTE 100 105 105
NOMB-CLIENTE Watabe B r o s Jefferson Jefferson
DIRECCION Box 241, Tokyo B 918, Chicago B 918, Chicago
PAIS Japon USA USA
SALDO
INICIAL
ACTUAL
45.551 49.333 49.333
52.113 57.811 57.811
EL ALGEBRA Y EL CALCULO RELACIONAL
FECHA
187
ID-CLIENTE
ID-PRODUCT0
CANTIDAD
200 100 50
SALDO ID-CL IENTE
100 105 105
NOME-CL IENTE
Watabe Bros Jefferson Jefferson
DIRECCION
Box 241, Tokyo B 918, Chicago B 918, Chicago
PAIS
Japon USA USA
INICIAL
45.551 49.333 49.333
SALDO ACTUAL
52.113 57.811 57.811
Quizis una via m i s fLcil para ver qn6 sucede en m a reunihn es silnplemcmtc*mirav
c.1 prowso cromo una t a l h de cwnsulta (tc~blelookup). P a r a ratla fila en la r c h i 0 n \.-EsT:i-10, se busc*an las filas VII la rcblarihri CLIENTE clue tengari el mismo valor para 11)-CI,lEYTE. Drl)iclo a c p A 11)-CLIENTE c s la clavr tle CI,lKRIrI'E y conlo la h a w tle tlatos cwnple la i n t c y i d a d referenrial, hahrh siempre exactaniente m a fila tle ese tilw. Asi, dehido a (111~hay originalnlmte tres filas en la r e l a c i h \/EN'I'.4-10. reunirntlo la rcbl;rciOn (ILIENTE a VENTLA-10 se crea nna relacihn cjue tamhibn tienc trvs filas. St*ha e\.palldido simplemente racla fila cle VENTLA-10. aiiatlicwtlo toda la informaci6n tlisponil~lesol)re el cliente involucndo en la venta. La opera(& dc. reunibn natural e n este ejemplo se escritw cwmo sigt~e: JOIN (VENTA-10, CLIENTE) La definicibn general cle la reunibn n u t u r d es c.omo sipw: Se asume clue se qulere tomar la reunibn natural d e dos relaciones, A y B, las (wales tienen las c d u m n a s C l ....,Cn en romun. Entonres JOIN (A, B) se ohtic.ne a travC.5 de estos tres pasos:
1. Torrw el proclueto cle A y B. La relaci6n resultante tentlri clos columnas para cada C l , . ..,Cn.
2. Elimine todas las filas clel produc.to, exwpto acluc4las en las cuales 10s valores de las cdumiias C1, ....Cii cn A son iguales. respectivamente. a 10s valores de esas rolumnas en B.
3. Proywtc una copia de las columnas C l ,...,Cn. P a r a la mayoria de 10s ejemploi, las tlos relaciones que estin siendo re~miclast e n d r i n sblo una c d u m n a en c o n ~ u n Sin . rnitrargo, como muestra la definicibn general. si dos relaciones tienen mhs tle una cwlumna en corni'n. entonces la reunibn depentle d e la ignal(lad tle 10s valorvs en todas las columnas comunes. Se indira clue siA tiene k columnas y B tien? rn c d u m n a s , entonces la re~lnibrlnatural de A y R t e n d r i ( k t m - n ) columnas, doncle 11 es el n i ~ m e r otle (-olumnasque 4 ) R tienen en comun. 411ora be ilustrari el uso y el lrocler d e la reunibn (join) con varias cwusultas simplrs.
Consulta: A d j u n t e l a i n f o r m a c i o n d e l a s v e n t a s a l a i n f o r m a c i o n s o b r e 10s vendedores. Solucion: JOIN (VENDEDOR, VENTA) Resultado: Ver Figura 6.7
DISENOY ADMINISTRACION DE BASES DE DATOS
ID- VENDEDOR
NOME- VENDEDOR
Rodney Jones Rodney Jones Rodney Jones Franqois Moire Franqois Moire Franqois Moire FranFois Moire Franqois Moire Elena Hermana Goro Azuma
I0 I0 10 23 23 23 23 23 37 39 FECHA
ID-CL I E N T E
ID-PRODUCT0
ID-JEFE
27 27 27 35 35 35 35 35 12 44
OFICINA
%- COMISION
Chicago Chlcago Chicago Brussels Brussels Brussels Brussels Brussels B.A. Tokyo
CANTIDAD
28/02 05/ 02 14/02 12/02 15/02 02/ 02 01 102 04/ 02 22102 19/02
Es rsrnrial~nrntela misma ronsulta q u r en d r j r n ~ p l oantrrior. r a r r p t o t p r m rstv raso sc ha usaclo la rrlaciOti VEN1)EI)OK r n lugar tlr la rrlari6n CIJENTE. S r (la estr rjrmplo para ilustrar otra forma d r v r r la reunibn Cjoiu). En estr caso, la ronsulta indiva(la c:omiruza hasrantlo r n la rrlariOil VENDEDOK y pregunta pi.inforn~at.icinsohrr las s vrntas r s t i ligada a las filas de rsta rrlacihii. Como varios vrndrtlorrs purclrri tenrr n ~ i rlr una vrnta y otros ninguna, nos mcontramos (pie ]as filas para algunos vrntlrdorrs r s t i n r r ~ w t i d a svarias vrrrs, n ~ i r n t r a sq u r las filas para otros no ayarrcrn sirmpt-r. Murhas personas pimsan cIur algo st. pierdr r n un teasocomo kstr, dondr 10s vrndrdorrs q ~ l no r tirilen vrnt;is r n la h s e tlr tlatos no a p a r r w n r n el resultado de la rennicin natural. La relrni6r1 externo (outer join), q u r sr analiza postrriornlrntr, sr ha drfinido para tratar rstr prohlrma.
Solucion: A := CLIENTE [ID-CLIENTE, NOMBRE-CLIENTE] B : = JOIN (VENTA, A ) Resultado: 0 FECHA
ID- VENDEDOR
I D - PROD
CANTIDAD
ID-CLIENTE
NOMB-CL I E N T E
2241 2241 2249 2518 1035 1035 2249 2241 2518 2518
200 100 50 300 150 200 75 250 150 200
100 105 105 101 101 101 101 101 110 100
Watabe Bros Maltzl Maltzl Watabe Bros Maltzl Jefferson Gomez Jefferson Maltzl Maltzl
EL ALGEBRAY EL CALCULO RELACIONAL
189
E n estv cbjemplo no se proqwt0 la infornlircihn no drseada tlr C L I E h T E ant(,. tle hat-el- la rcwnidn (.joirt). La rrspnclsta a la twnsnlta se encnentra en la r e l a t i h qu(, ~ l rha n o n i l m ~ d oR. Ohserve q n r la colunma ID-(:LIENTE de la relacihu \I EADEDOR sr twuiitlera nna coluimna rc~tl~ul(lantese ha t4iininado. Consulta: D e 1 0 s nombres de 1 0 s c l i e n t e s q u e han comprado e l p r o d u c t o 25 18
Solucion: A : = SELECT (VENTA: ID-PROD
= 2518) B : = J O I N ( A , C L I E N T E ) [NOMB-CLIENTE]
Resultado: B NOMB- CL I E N T E Maltzl Watabe B r o s Gornez
La solwihn ( ~ rstr 1 ejemplo primcw c r r a m a rrlac.1611 VENT4 rrtluvitla, ponicmtlo en la rt4acicin A shlo aquellas tentas t j w intolut*r;rnr l produeto 2,518. Entonces i e hare la reuni6n de rsta rrlati6n con la relaci6n CLIENTE I, se p r q e t ' t a NOMB-CLIENTE. tlejando d rt.sultado tleseado rn la relacihn B. La operaci6n (It. s r l r t ~ i h npodria halwr sido especifit-ada tlc s r g u n d ~en lugar tit. p i i n r r ~ En . ese c a w la solwihn hallria sido: A : = J O I N (VENTA, C L I E N T E ) B : = SELECT ( A : ID-PROD = 2 5 1 8 ) [NOMB-CLIENTE]
Esta solucihn es IOgican~rntreqi~ivalrntea la priinrra soluci6n. Eso significa tlne amllas solucionrs d a n el m i m o resultatlo. Sin embargo: normaltiientr sc prefierr la primer a soluci6n porqnr s r t:jccuta inucho inis ripido. Esto es dehitlo a q u r la rrlaciim A en la prinirra soluci6n rs mucho inis pequeiia que la relaci6n VENTA4.P o r lo tanto se requrrir i m unas p c a s comparaciones m i s para completar la renni6n. Coino rc>gla. es m i s efiticwte realizar oprrat+mrs tales como la reuni6n. la cual requirrr nuinerosas coinparationes, despu6s tlr ol~rracionesqne rrtlucen el numero dr filas a comparar, tales conlo la seleccih. P o r silpursto. esto rs posihlr d o si hay m i s de una soluci6n vilitla 16gic.ainente. Consulta: L Q u i e n e s han comprado l a m p a r a s d e mesa? Solucion: A B C
=
SELECT (PRODUCTO: DESCRIPCION
= J O I N (A, VENTA) = J O I N ( 6 , CLIENTE)
= ' l a r n p a r a d e mesa ' )
[NOMB-CLIENTE]
Resultado:
NOMBCL IENTE Watabe B r o s Jefferson Maltzl
E n erte ejemplo se debe seguir u n camino l6gico d e d r "llimpara de mesa" en la relaci6n PRODUCT0 hasta NOMB-CLIENTE en la relacibn CLIENTE. P a r a hacer esto, w itlentifican totlos 10s productos 1Ainparas de mesa y se sigue entonee? el camino destle PRO-
DISENOY ADMINISTRACION DE BASES DE DATOS
DIJCTO a VENTA hasta CLIENTE. Esto retjuirre la reuniOn tle trcs relaciones. Se ha 11ccho rsto r j e t u t a n ~ l ola o1)eracih de reunibn tlos veers. Como d o r + de intcrts ot~tener el nonihre del vliente. eu el llaso final no se proyet-tan todas la- otras colunmas. Consulta: i Q u e v e n d e d o r e s h a n v e n d i d o p r o d u c t o s m a n u f a c t u r a d o s e n P e r u ?
Solution:
A := B := C := D :=
SELECT (FABRICANTE: PAIS = ' P e r u ' : ) J O I N (A, PRODUCTO) J O I N ( B , VENTA) J O I N ( C , VENDEDOR ) [NOMB-VENDEDOR]
Resultado:
NOMB- VENDEDOR
Rodney J o n e s Franqois Moire
Esta consnlta es escntialmente la ~nismaclue la consulta anterior, 5610 tluc el camino desde el j)aii tle fabricatihn a1 \endedor rs m a relaciirn mhs larga. Dt*estc moth, se delmi ejet.iitar trt.9 reuniones llara twnectar c-uatrorelaciones. Una de las relac-iones intcriiietlias tendrh 16 columnas. p r o del,icio a clue 10s atrilmtos dc inter& son pais J nomhre del \endedor. se pueden ignorar 10s otros a t r i h t o s . La relacihn final D tentlri. sin embargo. s61o m a colunina siniple. coma he muestra en la solnt*ihnanterior. Reunion theta: Consitlere la siguiente ronsulta.
Consulta: I d e n t i f i q u e 1 0 s v e n d e d o r e s c u y o s j e f e s o b t i e n e n u n a t a s a d e c o m i s i o n p o r e n c i m a d e l 11% Todos los datos necrsarios para resolver rsta ronsulta estin contenidos en la rrlacihn F7ENI)EDOR. debitlo a que tsontiene 10s datos sobre todos 10s vendedores -:rqnellos clue son jefes ! atjnellos que no lo scrn-. Sin emhargo, esta t-onsulta no purde resolverse con una simple operat.ihn de select*i6n,porque la tasa tle comisihn en 10s registros tle 10s vendedorcs se aplican e 10s vendrdorcs v no a los jefes de 10s \endeclores. P a r a obtener la tasa tlc comisiirn (11, u n vcndetlor jefr. se t l e h n reunir 10s rrgistros de 10s jefrs tm la rrlaeihu VENIIEDOK con 10s registros de vendrdores. Esto significa q u r se dt:l)e rrunir (joir~) la relacihn YENDEDOR con ella misuia. Entoncwl s r tendrii la tasa tle twmisi6n tlel ;eft. tm la rnisma fila qne t.1 n o m l r e del ventledor y puctle wmpletarse fhcilinentr la solucihn tle la twnsulta. P o r rjemplo, la primera fila de 1-ENIIEDOR contime informacihn s o l m Rodney .Jones. Como se puedr ver, el ID de sn jrfr r s 27. Este es el ID-VENDEDOR para Tvrry Cardon. l w r tanto es el jefe de Rodney. Dr1)ido a clue su tasa d e c o m i s i h r s el 15 por 100. el jefe tie Kotlney Jones rrtihe mhs del 11 por 100 de comisiim y Rod~ieyJoncs rs p r t e d e la solucihn tie la col~sulta.Haciendo la rrunihn d r IXNDEDOR con rlla misma. se r)nt.tle unir el registro tlel jefr a eatla registro de v d e d o r e s y br puede usar nna instrncri6n dc s c ~ l e t ~ i hen n esta rclarihn para resolver la ronsulta. Pero i.t.hn10 hacer la reunihn de uila relacihn con elia niisma? No se puede m a r la reunihn natural d e l i d o a qne Csta se hasa en la igualdad de todm las t:oluninas comunes en las tlos rrlaciones clue estan rrunibndose. Si amhas relaciones en la oprracihn tle reunibn son la misma relacihn. entoncrs totlas las colnmnas s e r i n 1:omunes a las dos r r l a t h n e s y la reunicin (join) careceria de sentido. P a r a resolver este prohlrma se define una nueva versihn d r la reuniirn. Esta versihn permitiri esperifivar una eondici6n para la reunihn tie filas. La siguiente soluciim ilustra esta uueva versihn tlr reunihn, despuCs d e la t3reaciGn d e dos copias d e FENDEDOR:
EL ALGEBRA Y EL CALCULO RELACIONAL VENDl : = VENDEDOR VEND2 : = VENDEDOR A : = JOIN (VENDl, VEND2 : VEND1.ID-JEFE
=
VEND2.ID-VENDEDOR)
La illtima iii5trnrri6n niueitro la n w \ a ~ e r s i 6 nde r e n n i h . Los tlos puntos seg~utlos tlr la cwndicihn derlaran que lai Mas s e r i n r t w n ~ t l , ~sis el ID-JEFE de la primera es i g ~ d a1 ID-IENDEDOR de la segnntla. Eu otrai palalwas. i e estrin unientlo a las filas tle lo\ \rntletlorc.s la fila (pie contieur inlormatihn sol~rcbsu jc4.. Esto se inue5tra en la Fignra 6.8. Note 11ne no tsxistt. m a f ~ l dt[ur niuritrr a Tt,rr? ('artlon (*on511 jefe. Esto 5e debe a qne Terr) (:artloll no tivnt. ~ r f r tirnr . un \ a l o r uulo en la t d n m n a ID-JEFE. Sin en~hargo.i n fila a ~ ) a r e w t'orno nil j c f i ('on t n ~ ~ c h ootroi s \t.ntlt~tlort-s. ,~ acjnellos l e u Ailn no sr ha trnnlnatlo con rsta c.onsulta. S r t l ( ~t lo~d ~a ~ i itlrntific.ar t p t Lt . x t ~ t l (.I ( ~11%. Se pnede terminar I d tledores w y o s jt4.s recibrn una tasn tlr t.t,n~~sihn wnsulta nsando simplenirntr lCio ~ ~ e r ~ i ttlr i 0 nseltw*iOnen la r d a t i 0 n I: B : = SELECT ( A :
VEND^ .%-COMISION
> 11 )
[VENDI . NOMB-VENDEDOR]
B VEND 1 . NOMB- VENDEDOR Rodney J o n e s M a s a j i Matsu Goro Azuma Albert Ige B r i g i t Bovary B u s t e r Sanchez
VEND 1 . I D VENDEDOR 10 14 23 37 39 44 35 12 VEND2. I D VENDEDOR 27 44 35 12 44 27 27 27
VEND 1 . N O M B VENDEDOR Rodney J o n e s Masa j i M a t s u Franqois Moire E l e n a Hermana Goro Azuma Albert Ige B r i g i t Bovary B u s t e r Sanchez VEND2. N O M B VENDEDOR T e r r y Cardon Albert Ige B r i g i t Bovary B u s t e r Sanchez Albert Ige T e r r y Cardon T e r r y Cardon T e r r y Cardon
VEND 1 . ID- JEFE 27 44 35 12 44 27 27 27 VEND2. ID- JEFE
VENDl . O F I C I N A Chicago Tokyo Brussels B. A. Tokyo Tokyo Brussels B.A. VEND2. O F I C I N A Chicago Tokyo Brussels B. A . Tokyo Chicago Chicago Chicago
VEND 1 . % COMISION 10 11 9 13 10 12 11 10
DISENOY ADMINISTRACIONDE BASES DE DATOS
t p e se t w o t p e eipecifirar \. E N D ~ . % - c O M ~ S yI no \/El\tUl.%-COMI, Ol~sei-+e SlOh. El p r i n ~ e r orontiene la tasa tle t~)inisihndv loi jefki, rnientras qne el i~ltiiuorontiew la tasa tlr con~isibnd r 10s ventledores. 1,a rell11i6n theta (thetcl joir~)rs una rt.nni6n ron una rondiri6n c*iperiSic~atpir inr olncra a nna cohnnna de vada rrlacihn. Esta t~ontliribnrspetifira c p e lab cios cwhimnas dehrrian twnpararie d r alguna f'orma. El oprrador dr twmparac.ihn prirtle icr cualqllir.ra tle 10s scis:
I,a manvra g t ~ ~ e rtle : ~ exprclsar l tbitoe i cjw la rtwnihn theta tointh la fornia JOIN ( A , 8 : X S Y )
don& il y R son las rt4u:iones tine srrhn r e ~ ~ n i t l aXs . y I- son las t:olnrniias tlc las tlos rrlaihi~ anteciontbs 5 1:' letra gi-icga 6 es 11110 dtb 10s iris operatlores cle t ~ o ~ n p r a t ~relarionatlos rionnente. El ejrnlplo illistra la r e n n i h theta. donde el o p r a d o r de romparaciOn es "=". Esta reiinibn tan11)ii.n st. llama eqnirremii6n (ecjuijoin). Las rtwniones usando 10s otros operatlores tan1l)ii.n son necrsarias para alg~inosprol)lemas. Posteriormeutt. en estr t q i t u l o sr ilustra un c a w . Como una nota final. sr intlica clue la r t m n i h theta no se 1);lrere a la r r u n i i ~ nnatural. portIw no inc*luyr la eliiiiinatihn tlr lina o 111lis t:olumnas (wmo paso final. Eu otras palabras. s i A tienr k c d ~ ~ m n ya sR t i m e rn rolumnas. entoncw la rtwnibn tlwta cle A y B t e n d r i k + m twll~rnnas. Reuui6u externa. Se +vri nuevanlentr una ronsulta distwtida anteriormrnte: Consults: A d j u n t e l a i n f o r m a c i d n de l a s v e n t a s a l a i n f o r m a c i d n s o b r e 1 0 s vendedores . JOIN (VENDEDOR, VENTA)
reuni611 extcrna. Expansi6n de la reuniOn natural qnc. inc*lr~!etodns las filade a n l l w relationes.
El r e s ~ d t a d otle esto se mostr0 en la Figura 6.7. Sin embargo, estv resnltatlo no (,s satisfat-torio, poi-que la intencibn d e esta ronsulta es rnostrar todos 10s vc~ntletloresjunto ron sns wntas. P o r tanto: no se puede usar la reunibn natural si se desea listar 10s wndedores cjue no han tenido \rritas junto con aquellob (jue han tenitlo. La re~inibnexterna rernedia este pro1)lema. La reoni6n externa extientle la r r n n i i ~ nnatural, asegurlindose clue vada registro d r amhas relaciones sea listado en la r r l a c i h reunida ( j o i n relutiou) a1 menos una vez. La r e n n i h i externa ronsistr tlr (10s pasos. Pi-imero se rjrruta iina reunibn natural. Entonctxs si nn registro en una relaribn no se corrrsponde con un registro de la otra relacihn en la remlibn natural, esc*rrgistro se aiiade a la rrlacibn que h a sido rennida y las columnas adicionales se 1lt:nan con valorrs nulos. Esto sr ilustra para el prohlema actual en la Figura 6.9. Esta relacibn c,s el resaltado de la siguiente operacibn: OUTERJOIN (VENDEDOR, VENTA)
Algunas veriiones dr SOL. tales como Oracle. pern~itenliacer nna reunibn externa. Alinque la nrcesidad de esto es menor, se ha visto que hay orasiones en que esto es deseahle.
EL ALGEBRAY EL CALCULO RELACIONAL
ID- VENDEDOR 10 10 10 14 23 23 23 23 23 37 39 27 44 35 12
FECHA
193
NOME- VENDEDOR
Rodney J o n e s Rodney J o n e s Rodney J o n e s Masaji Matsu FranGois Moire FranGois Moire FranGois Moire FranGois Moire FranGois Moire Elena Hermana Goro Azuma Terry Cardon A l b e r t Ige B r i g i t Bovary Buster Sanchez ID-CLIENTE
ID- PROD
ID-JEFE 27 27 27 44 35 35 35 35 35 12 44 27 27 27
OFICINA
%-COMI~ION
Chicago Chicago Chicago Tokyo Brussels Brussels Brussels Brussels Brussels B.A. Tokyo Chicago Tokyo Brussels B.A.
CANTIDAD
28 102 05 / 02 14/02 12/02 15/02 02/02 01 102 04/02 22/02 19/02
C o n s u l t a : L i s t e 10s vendedores que ban vendido todos 10s productos
Nuestra simple l m e clc datos rontiene ruatro produrtos diferentes con 11): 1035. 2241. 2249 y 2518. Un vencledor satisface la consnlta si Pl o ella h a n vencftlo r a d a uno de
tli\ isi6n. Operaciirn tlel relac~onalclue crea una nne\a rclacihn. srlecc~onantlolai filas en una relav~hnqur sr corrcspondcn con todas lai hlas cn otra rrlacibn.
~~~~~~~a
estos produrtos a1 nlenos una vez. E n otras palabras, p a r a cacla uno de estos protluctos tletw haher a1 rnenos tiua fila en VENTA clue wntenga el ID-VENDEDOR de este T rntlr(lor. Una consulta cwmo k t a pnede solurionarse usando la operaci6n d i v i s i h (divide) tlrl ilgehra relacional. La palahra clave en esta consulta es todos, debido a que se requiere qne para cada bendedor se examinen las filas de VENTA hasta que se haya encontrado si ese vendedor ha leudido todos los produrtos. El requisito aqui es diferente a aquefos desrritos anteriormente. clehido a que en aquellos c a w s se podia trabajar con una o dos filas a1 mismo t i e n LIOen la realizaci6n d e la o p e r a c i h . La operaci6n de tlivisih requiere mirar una relaribn entera de una vez. i,COmo resolver esta consulta? Se seguiri u n procedimiento rerrano a1 que se usaria lntuitivamente y se m o s t r a r i r6mo la operaci6n d e divisi6n se rorresponde con este procetllmiento.
Esta serrihn put& omitirse sin perder la continuidad.
DISENOY ADMINISTRACION DE BASES DE DATOS
Ohciamentc. si stbq u i t ~ eronowr si nu ventletlor ha vrntlido to(loh 10s p . o t l ~ t ~ osr s. delw o1)trut.r una relacihn ijntt listc. totlos lob protlnc-tos. La i-rlacii~nPR0DITC:TO rs tal rrlacihn. Sin r n ~ l ~ a r g ot.11. otras rrlationrs. un produrto sr itlentifica 5610 por la twl~uunn c l u w . no por una fila romplrtn tlr la rrlacihn PRODUCTO. ,lsi. la rlakr i r prrst.ntd twrno r l p r o t l ~ u ~ t El o . 11rinlt.r 11asoentontw tbso l ~ t r n e runa rrlacihu twnsistcnte tlel atrillnto (.lavc para totlos 10s 11rotlut.tosrti la hasr tlr tlatos. Sr h a r r ~ s t 11royrt.tantlo o PRODIrCTO en ID-PROI): PI : = PRODUCTO [ID-PROD] 4 4 , PI rs nna rrlatihn t p r contirnr totlos los \.;llorrs tle 11)-PROD. Srguitlamrritr sr dvhr o11trnt.r utia relatihn (lor conttbnga totias 121sinstanvias tlontlv . sc. h ; ~ wth-anirntt. proun vtwletlor J 1111 p r o t h t o r i t h jluitos r n una 6nic.a v r n t ; ~ Esto yrc-tando la rel;1ci6n \ ERT-1 tbn ID-PROD e ID-VENDEDOK: PI-VI
:=
VENTA [ID-PROD, ID-VENDEDOR]
Una instanria r n PI-VI twnsistv en u n 11)-PROD y un ID-VENDEDOK y signifira clue rl protlnc.to rrpresentadtr por ID-PROD fur \rntlitlo por el vrntlecior reprcwntatlo p r 11)-VENDEDOR. P o r tanto. PI-VI consiste tlr todas las coml~ii~acionrs 11roductoIcr11drdor, tlonde r l vrntlt.tlor ha \entlitlo rl protlurto. El rrsultatlo tlr ostas tlos pro~et.riones(-5 romo sigue:
ID-PROD
PI-VI ID- VENDEDOR
ID-PROD
10 23 23
2241 251 8 1035 251 8 251 8 2249 2249 2241
39 37 10 23 23
Ahora simplrmrnte 5e nwesita deterniinar si ratla vendrdor rrpresrntado r n PI-VI se asoria con rada ID drl produt.to en P I . Estcr sr h a w automiticamente con la operaciirn dr d i v i s i h : A : = PI-VI
1 PI
con el resultado: A
ID- VENDEDOR 23
Esto prohablemente parere migiro. Sin rmbargo. no r s asi. tltabido a (pie sr twrresponde simplemrnte con la definiciirn de d i v i s i h en el ilgehra relarional. Seguidamente se
EL ALGEBRAY EL CALCULO RELACIONAL
I95
(la una descripri611 general de la cye~~acii,n. St. asnmr clue A , divitlir B por C , dando i conlo reinhado.
B !. C soil rc.lwiones 4 se tlesea
1. Las colnmnas (lc (: tlc.l)c.11 ser un sut)cwnji~ntoclc las c~olunniastle 8.1,as colunnas dr A son todas ) d o q u e l l a s cotumnas de B (pie no son cdnrnnds de (;. \otv qne t+to sc ( * o r w ~ p n dcon e el rirniplo anterior. Lai columnas tle PI-1 I w n ID-PROD (, ID-VENDEDOR. mwntras (pie la c~olinnnatle PI es ID-PROD \ la t d u ~ n n atlr 4 es ID-1 EhDE1)Olt. 2. [Tna fila sr enc*nentra en 4 51 y s d o si r s t i asociada en B con catla fila tit. (,'. Lsto tanhibn se corresl)onde con el ejeinplo. t1cl)itlo a c p e una fila de I (11)-i E\DEDOR = 2 3 ) e s t i asociada en P I 4 1 con totlas las filas de PI ) c5 '1(1(&s el ii~llco ID-\ ENDEDOK asoriaclo.
~~~~~~~~~~to.
Es ficil ~ e r i f i c a (pie r La operari6n divisi6u es la opuesta clr la olwrati6n si una relac.ihn es el produrto tle dos re1aciont.i B ! C. et~tont-rssc pnetle ohteller B. ( h i clientlo el protlncto por C . IGto es:
c~)rriente.por qiii. sc ha llamado opeEsto explic-a, por 111 analogia con la aritnii.tic~~ raciOn de divisi6n. (:odd la incluy6 r n el ilgrhra relacional para yroporcionar la capaci(lad n e c ~ i a r i ap a r a el cuantificatlor universal clel t.ilrulo relacional. Esto se tliscutiri 1)o.strriormriite. En t h n i n o s 1)ricticos. la operaciim de divisi6n se prol~ortioni)para que se p ~ i d i r r a nsolucionar ronsnltas quc' involuc-raran "rada" o '.todo" cwno parte ile la ronclici6n. En r l ejeniplo quc sc ha cliswti~lo,la ronsulta fue: L i s t e 10s vendedores que han vendrdo todos 10s productos
Conlo se ha visto, la operaciOn tle tli\ihihn fur rsenrial para la solnri6n tle esta roilsulta.
asignaci6n. O p r r a c i h dcl algcln-a rclacional
A lo largo de e i t r c.apitulo se ha estaclo usando la operariim tle asignacibn para clar n o n l r e s a relacionea. Por eiemplo, en la instruccihn
el nomhre A se asigna a1 resultado cle la oprraci6n de selecci6n. Este simholo '-:=" significa "es el nomhre asignado a".
Un ejemplo adicional El ilgebra relacional es extraordil~ariamentepoderosa en su flexibilidad y rapacidad p a r a iolurionar u n gran numero tle problemas. En eqta serci6n se d a u n ejeniplo tle un problema clue puetle resolverse niarido el i l g r l ~ r drelacional, aunque es posible no \ e r firilmente la soluri6n a p n m e r a ~ i s t a La . soluciim implica el uso de operaciones tie1 Algebra relacional en formas cwativas.
Consulta: iCual es la maxima tasa de comision? La dif'icultad inmecliata con este prohlrma r s clue yarecr clue no se tiene uria forma d e cornparar todos lob valores en la columna ta.a de winisi6n p a r a determinar cwil es mayor. Es necesaria la romparari6n entrch filai; por tanto, la operac'iOn d e selerri6n no
DISENOY ADMINISTRACION DE BASES DE DATOS
funcionarii. clebido a que rlla se aplica a1 mismo tiempo a sblo m a fila. Sin embargo, la rruni6n thrta (join theta) permite a1 menos la c o m p a r a c i h d r dos filas. Se u s a r i en la reunibn de una relari6n con rlla misma. A : = VENDEDOR B := A C := JOIN ( A ,
[%-COMISION] B: A,%-COMISION
> B.%-COMISION)
El rrsultado d r rsta r e u n i h es como sigue:
~ C 6 m ose p e c k usar esta relaciim para resolver r l problema? Si se rxaminan las columnas separadarnente. se drscubre un h r c l ~ oimportante. La columna izcluierda, A. 96-COMISION contkne todas las tasas tle comisibn, excrpto la menor. y la c o h m n a derrcha. B. 9%-COMISlOK, contirne toclas las tasas de comisibn, excepto la mayor. Esto nos lleva a la solucibn del problenia. Restundo el conjunto de tasa d r comisibn en la rolumna d r r r r h a del conjunto d r todas las tasas de comisihn, se tiene la mayor tasa cle comisi6n7 conlo rrquiere la consulta.
Y la mayor , . A contiene todas las tasas de comisibn. Su difrrencia. E. contirne 410 la nlavor tasa cie comisibn y es por tanto la solucibn a la consulta. Del~eriaser claro ohtener la tasa cle comisi6n minim?, s6lo rs necesario sustituir la columna A . 70-COMISION por la columna B. '3- COMISION en la drfinicicin de D. El resto tle la soluci6n ea la misma. La soluci6n a esta consulta entrafia dos "truc:osX: (1)rrunir una relaci6n con ella misma, usando la reuni6n theta y (2) sustraer tlel conjunto de todos 10s posihles valores una relacibn que contenga todos 10s valores, excepto el que pregunta la consulta. Este segundo punto es i m p o r t a n ~ ey a m m u d o necrsario para la soluci6n tie las consultas m i s tlificiles en el Algebra relacional.
Cailculo relacional El cilculo relacional usa un enfoque c o m p l ~ t a m r n t rdiferrnte a1 ilgebra relacional. No obstante, 10s dos lenguajr? son lbgicamentr ecjuivalenteb. Esto signifira que rualquier con-
EL ALGEBRA Y EL CALCULO RELACIONAL
197
b I)rc.x(. snlta clue p r d a r r i o l \ r r i r r n un lrngnajt*p n c d t ~rriolxrrsr r n r l otro. St. s t ~ inis r n rl c i l w l o relacional. drhitlo ;I clue rl lrnguajr r n si niisnio tirnr mrnos c - o n s t r u c ~ i o m . C o n s u l t a : i Q u i e n e s s o n 1 0 s v e n d e d o r e s en l a o f i c i n a d e Tokyo?
{r.NOMB-VENDEDOR
: r I N VENDEDOR and r . O F I C I N A = ' T o k y o ' }
Loi parbntrsii r n w r r a n t l o la initruc.c.ihn indiran q u r la solucihn tlr la cwnsulta r< n n conjunto d r balorri. Prrciiamrntr lo clue ha! r n rstr conjunto r s lo q u r r s t i clrsrrin . solwihn tlada aqni ilustra la ~ n a j o r i ad r las c*arac*trristic~~s tlrl to par la i n s t r l ~ c ~ i O T,a cilrulo rrlarional. S r rrlacionan 10s cwnponrntrs d r la soll~cihn! sr r \ p l i w u sns signif[vados:
1. 2. 3. 4. 3.
r r.NOMB-VEILDEDOR 10s tlos puntos (:) r IN VENDEDOR r.OFICIN4 = 'Toli!o'
1. r r s una varialh. q n r int1ic.a una fila a r l ~ i t r a r i a La . rrlacibn tle don& birne r i e drfinr por -'r IN I ENDEDOR", clue 5ignifica q u r r rs una fila d e \IE!I>EI>OIZ. Sr u s a r i n bras minusrnlas ( w e a n a s a r r n r l alfalwto, tales con10 s. t. p j q, cwmo b arialdcs (I(. filas. 2. r.NOMB-VENDEDOR rs rl ~ a l o del r atrihuto NOMB-IEYDEDOR en la fila r. 3. Los (10s puntos (:) scparau la li5ta resnltado (target list) de la sentencia tlr cualificwihn (quulifjing statement). La lista rrsnltado r n (.st(. r a i o cs:
y la srntrncia d r rnalificacibn es r I N VENDEDOR and r . O F I C I N A = ' T o k y o '
S r explicari r l signifirado tie bstos 1)rrvrmrntr. Los dos puntos .:'purd(m leerse como LLtal clue". 4. "r IN VENDEDOR" sr rxplic6 r n el punto 1. 5. "r. OFICINA = 'Tol
La lista resultado y sentencia de cualificaci6n La solucibn p a r a toda consnlta en el cilculo relacional es nna relacibn que se define por nna lista resultado y iina sentencia de cualificacibn. La lista resultado define 10s atributos de la relacibn solucibn. La sentencia d e cualificacion es una condicibn usada p a r a determinar qui. valores de la base de datos actual van a la relacibn solucibn. Ahora explicaremos cbmo tralmja rsto. E n el rjemplo anterior, la lista resultado era r.NOMB-VENDEDOR. E n otras palah a s , la r r l a c i h solucibn tiene sblo u n atrihuto, el nombre del vcndedor. Los valorrs actuales que van a la r e l a c i h s o l u c i h son aquellos valores de las filas que satisfacen la srntencia de cualificacibn. E n rstr rjrmplo, el nombre de u n vendedor se toma de la fila r y se pone en la relacibn solucibn si la fila r satisface la condicibn
DISENOY ADMINISTRACION DE BASES DE DATOS r I N VENDEDOR and r . O F I C I N A = ' T o k y o '
R1 sistema examina las filas tle \.EP!DEl)OR, tal como se nmestran en la Figur a 6.1, una p o r una. Se le d a a la primera fila el nomlwc tle r tt:mporalmente y la sentrncia d r cualific:aci611 se w a l h a como v e r d a d r r a o falsa. E n rste caso. del)itlo a q n r r.OFICINA = 'Chicago'. la sentrncia d r c*ualific:aci6nrs f'alsa. por lo q u r r.NOMB-VENDEDOK iRtrtlnry Jonrs) no es 1)nesto r n la rrlacihn solnrihn. El sistrma s v muevt: rntone ~ as la srguntla fila, tlindolr rl nombrr r y vrrificando la sentencia d r c~ualifieari611nu?vamrnte. Esta w z la srntcnria es v r r d a d e r a , por lo el^(^ w lwnt, Miiwji e n la relacihn solncihn. Estr p r o w s o scl repit(. para catla fila r n VENDRDOR. Kl resultado cs romo slpr: N O M B VENDEDOR
M a s a j i Matsu Goro Azurna Albert Ige
P a r a las t h i s consultas. la lista resultado consi+tiri tlr u n atributo simple. Sin rm1)argo. la li,sta resnltatlo puede consistir de nlidtiplrh atri1)utos. P o r rjemplo. (wnsiderc' In cwnsulta: Consulta: D e t o d o s 1 0 s a t r i b u t o s de 1 0 s vendedores e n l a o f i c i n a de Tokyo.
Solucion: { r : r I N VENDEDOR and r . O F I C I N A
= 'Tokyo' }
Aqni se ha indieado q n r todos los atriln~toss r r i n incluidos simplrmrntr listando r. Esto significa q n r la fila entera dt:brria ser incluida. Tam1)ibn s r podria lograr esto listam do 10s atributos separatlos ])or comas: { ( r .ID-VENDEDOR, r.NOMB-VENDEDOR, r.ID-JEFE, r . O F I C I N A , r.%-COMISION) : r I N VENDEDOR and r.OFICINA = ' T o k y o ' }
Adrniis, s r purde mostrar la lista de cualquier subconjl~ntod r estos atril~utosquchs r dcwe. I)r la rxplic*aci6n anterior. seria f'icil ver c6mo las operacionrs tlr selrc-ci6n y (11. proyectar tlrl i l g r h r a relacional estin soportaclas en el c i l c d o rrlacional. 1,as operaciones d e uniOn, intrrsrccihn. tiiferrncia y producto p u r d r n ta1n1)iC.nser f&cilmentrdrrivadas de las cwnstrnc:ciones d r l cilculo re1ac:ional q u r se han discuticlo en estc: punto. Debid o a c p el rilculo no usa el procrdimirnto del i l g r b r a paso a paso. no s r necrsita la sentencia d e asignacihn. P o r tanto, las h i ( - a soperaciones d r l algebra relacional p a r a las c:nales aiin no s r h a n mostratlo rquivalencias en el cil(:ulo relacional son la rruniim y la divisiOn. Estas recjuirren los c~icrntijicadores:rxistencial p a r a la reunihn )- univcirsal p a r a la divisibn.
El cuantificador existencial cuautificador existenrial. Exprrsihn t k l c i l c d o rrlacional qur afirma la raistencia tlc a1 nlenos una filn a la
(In cwmtificatlor cuuntificn o indica la cantidad d r algo. El cuantificador existencial indi(*aque existe a1 mrnos una in,stancia tlr algo de un t i p partirular. En el cilculo relacional. el (wantifirador existencial s r usa para indic-ar q u r existe una fila de Irn t i p particwlar en una rclacibn. Considerrn~osun rjemplo para arlarar estr concrpto:
Consulta: L i s t e 1 0 s nombres de 1 0 s c l i e n t e s que h a n comprado e l p r o d u c t o 2518.
O h i a m e n t e , la solutiOn a rsta consulta es nna rrlatihn qiic~contiene los nonlln-es tle ciertos t.liente-. Esto es uua relatihn tle una iinica colulnna. p r tanto, la lista resnltatlo es claranlentr
'
r . NOMB-CLIENTE
tlonde r es nna fila en C I J E Y T E . Se tirnt- twtonces la lista resnltndo. pero ~ q u bes una senttmtia tie tdificati')n'! Para estar r n la soluci6n. el t-liente delw satisfacer la contlit.ihn cie liaher colnprado el protlucto 2518. En otras palahras. si u n ID tlel clicnte se encuentra r n nna fila dc \ KNT 1coli ID-PROD = 2518. entonces ese cliente esti cm la iolucihn. h i , la t~ontlicihntlehe i e r qtlr exista a1 menoi nna fila txnV E h T 4 que contenga el ID drl clirnte ! un ID-PROD tlr 2.518. Se establece esto como sigue: t h e r e e x i s t s s IN VENTA @.ID-CLIENTE = r.ID-CLIENTE and s.ID-PROD
=
2518)
Esto be l t ~c30nio: "Kxiite m a fila s en \ENTA. tal t p e s.ID-CLIEI'I'K = r.11)-CLIENTE y s.11)-PROD = 2318". (1,as p a l a l ~ r a there i exists constitn!en el t.i~antificador exiitt-nt-lal.) O b i e l \ e que ebta e i nna instrnccihn d ) r e la fila r. Si es kertladera para tin l a l o r dado r tal qut. eu5ta una fila s, entonces r.NOMR-CLIENTE vs p e s t a en la relatmh ioliic i h . Si la initrut&n es falia -eito t b i . si no existe tal 5 p r a tbsta r-. entontaei r.NOMB-CLIENTE no es puestd en la relatihn solucihn. La ioluci6n completa tlel cileulo relacional p a r a eita consulta e5: =
{
r.NOMB-CLIENTE
: r IN CLIENTE and t h e r e e x i s t s s IN VENTA
@.ID-CLIENTE and s.ID-PROD
= =
r.ID-CLIENTE 2518) }
La solucibn d e s c r ~ b euna relacihn que consiste en nna iinica columna y contiene nombrei d e clientes tomatlos tie las filas d e la relat.iOn CLIENTE. Un n o m l ~ r edado es pnesto en la relacihn soluc*lhn si su fila (r) satisface la t.ondicihn clue sigue 10s (10s puntos. Se v e r h m a s cnantas filas en CLIENTE p a r a ver cbmo sta apllrdria la (.ondicihn. Considere la Figura 6.10. La primera fila de CLIENTE (que se hci llalnatlo r ) tiene ID-CLIENTE = 100. El NOMB-CLIENTE (Qdtahe Bros) serA puesto en la relacibn s o h cihn h i existe una fila en VENT4 qiw tenga ID-CLIENTE = 100 e ID-PROD = 2518. Supongamosque existe tal fila y se ha marcado con s. P o r tanto. r satisface la sentencia dtcualificaci6n y r.NOMB-CLIENTE se pone en la solucihn. Se ~ e p i t este e proceso p a r a cada fila d e CLIENTE. Cuando se tlesigna la segunda fila r , rntoncrz se debe encontrar una correspondiente s en \ ENTA. En este c a w , la correspondiente s es la segunda fila d e \ ENTA. P o r tanto, Maltzl se pone en ld relacihn solucihn. Como se procede mas adelante, venios que el t-liente 105 (Jefferwn) no es puesto en la solucihn, p r o el cliente 110 (G6mez) si. La solucihn del conjunto seria: NOMB- CL IENTE Watabe Bros Maltzl Gomez E n el Llgel)ra relacional, la s o l u c i h d e esta consulta involutxiria la reunihn (join).
Ad, se ha mobtrado chmo el cuantificador existencial se nsa en el r i l t d o relacional p a r a lograr la funcihn d e la reunihn. Como 1111 ejernplo final. veamos m a consulta mas cornpleja que requiere dos reuniones.
DISENOY ADMINISTRACION DE BASES DE DATOS
CLIENTE SALDO ID-CLIENTE
NOMB-CL IENTE Watabe Bros Matlzl Jefferson Gomez
DIRECCION
PAIS
Box 241, Tokyo Salzburg B 918, Chicago Santiago
Japon Austria USA Chile
SALDO
INICIAL
ACTUAL
45.551 75.314 49.333 27.400
52.113 77.200 57.811 35.414
r
VENTA FECHA
ID-CLIENTE
I D VENDEDOR
ID- PROD
CANTIDAD
100 101 101 100 101 105 110 105 101 101
10 23 23 39 23 10 37 10 23 23
224 1 251 8 1835 251 8 1035 2241 251 8 2249 2249 224 1
200 300 150 200 200 100 150 50 75 250
,
Consulta: i Q u i e n e s han comprado lamparas de mesa? Ezta cwn\nlta ze us6 para ilustrar la rcanihn en la disrusihn tiel Algebra relacional. La relaci6n solucibn se (la r n la pigina 189. La solurihn en el c.ilculo relarional es: {
r.NOMB-CLIENTE
: r IN CLIENTE and t h e r e e x i s t s s IN VENTA and
t h e r e e x i s t s t IN PRODUCT (r.ID-CLIENTE = 's.ID-CLINTE and s.ID-PROD = t.ID-PROD and t . DESCRIPCION = ' lampara de mesa ' ) } Ohserve precisamentr chmo la soluciOn del Algebra relacional requirio (10s rruniones. la soluc>ihn del c.Alrulo rclacional requiere ruantificar euistencialmente do5 1 ariables filas, s j t . Un ejemplo de un ronjnnto de valoreq p a r a r. s > t se muestra en la Figur a 6.11. Este conjunto ejemplo nluestra que Jefferson se inrluy6 en la r e l a c i h solurihn porque existen filas en VENTA y en PRODUCT0 que pruehan yur Jefferson ha comprado lamparas de mesa.
El cuantificador universal * cuantificador universal. Expresihn drl r i l r ~ ~ l o relacional clue estahlere qne m a ricrta condici6n sr le a p h a a todtc fila de algun t i p .
El cuantificador umiwersal indica clue una rondicihn se aplica a todas o a coda fila d e algun tipo. Se usa p a r a hrindar la misma capacidad que la operari6n de diviii6n del Algebra relacional. Se ilustra su uso usanclo la misma consnlta yue se 1itiliz6 p a r a la divisihn. Consulta: L l s t e 10s vendedores que han vendldo todos 10s p r o d u c t o s . Ohserwr q u r la condicihn para selerrionar un vendedor incluye la palahra todos. Shlo 10s vendedores clue han vendido todos lob tinos de uroduc.tos son inc*luiilosen la relaci6n soluri6n. Si ohserva el rebultado siguiente. puede ver ficilmente que d o un vendetlor satisface la condiri6n de la ronsulta.
Esta stcricin purtlr omitirqe sin perder la rontinuidad.
20 1
EL ALGEBRA Y EL CALCULO RELACIONAL
CLIENTE ID-CLIENTE 100 101 105 110
NOMB- CL IENTE Watabe Bros Matlzl Jefferson Gomez
DIRECCION
PAIS
SALDO INICIAL
SALDO ACTUAL
Box 2 4 1 , T o k y o Salzburg B 918, Chicago Santiago
Japon Austria USA Chile
45.551 75.314 49.333 27.400
52.113 77.200 57.811 35.414
ID- VENDEDOR
ID-PROD
CANTIDAD
10 23 23 39 23 10 37 10 23 23
2241 251 8 1035 251 8 1035 2241 251 8 2249 2249 2241
200 300 150 200 200 100 150 50 75 250
r
VENTA ID-CLIENTE
FECHA 2 8 / 02 12/02 15/02 19/02 02 / 0 2 05/02 22/02 14/02 01 102 04/02
100 101 101 100 101 105 110 105 101 101
PRODUCTO ID-PROD
DESCRIPCION
1035 2241 2249 251 8
abrigo l a m p a r a d e mesa l a m p a r a d e mesa escultura
ID-FABRICANTE
21 0 31 7 31 7 253
COSTO
PRECIO
1,25 2,25 3,55 0,60
2,00 3,25 4,80 1,20
t
La solucibn del cilculo relacional para esta consulta es como sigur: { r.NOMB-VENDEDOR
: r I N VENDEDOR and f o r e v e r y p I N PRODUCTO t h e r e e x i s t s s I N VENTA (r.ID-VENDEDOR = s.ID-VENDEDOR and s.ID-PROD = p.ID-PROD) }
El resultado es: NOMB- VENDEDOR FranCois Moire
Un nombre del vendedor de una fila r en VENDEDOR se pone en la relacibn soluci6n si la sentencia de cualificacih es verdadera para la fila r. La Figura 6.12 muestra c6mo la sentencia de cualificaci6n es verdadera cuantlo r es la fila que contiene lo+ datos sobre Franqois Moire. Para cada fila p en PRODUCTO. debe haher una fila s en VENT'4 que satisface la condicih. La figura muestra la correspondencia entre las filas de PRODUCT0 y las filas de VENT1 en la satisfaccibn de la condicih. Esto es. s(1) s(2) s(3) s(4)
se se se se
corresponde corresponde corresponde corresponde
con con con con
p(1) p(2) p(3) p(4)
DISENOY ADMINISTRACION DE BASES DE DATOS
VENDEDOR ID- VENDEDOR
10 14 23 37 39 27 44 35 12
NOMB- VENDEDOR
ID-JEFE
Rodney Jones Masaj i Matsu F r a n ~ o i sM o i r e E l e n a Hermana Goro Azuma T e r r y Cardon Albert Ige B r i g i t Bovary B u s t e r Sanchez
27 44 35 12 44 27 27 27
OFICINA
Chicago Tokyo Brussels B.A. Tokyo Chicago Tokyo Brussels B.A.
PRODUCT0
ID- PROD
1035 2241 2249 251 8
DESCRIPCION
ID-FABRICANTE
abrigo lampara de mesa larnpara de mesa escultura
COST0
1,25 2,25 3,55 0,60
21 0 31 7 31 7 253
VENTA FECHA
ID-CLIENTE
ID- VENDEDOR
ID- PROD
CANTIDAD
10 23 23 39 23 10 37 10 23 23
P a r a cada m a de estas filas de \. ENTA, el ID-VENDEDOR es Franqois Moire (23) y cada una de las r u a t r o filas de ventas se corresponcie con uno de 10s cuatro posibles prociurtos. P o r tanto, Moire h a ventlido todos lob productos.
La dificultad relativa del ilgebra relacional y el eilculo relacional La sabiduria conrencional en 10s lenguajes cie base d e datos sostiene que 10s lenguajes no procedimentales dellen ser m i s firiles d e usar clue 10s lenguajes procedimentales. Sin embargo, esto no ha s ~ d corroborado o por la prictica. El resultado d e u n numero de experimentos (Welty y Stenlplr. 1981; Hansen, 1987, 1988) indican que las personas generalmente realizan la soluci6n d r lob pro1)lemas mucho n~ejcrrcon u n lenguaje procdimental que con u n lenguaje no procedimental. Esto es particularn~entecierto ruando 10s problemas son 16gicamente mhs complejos. E n el caso especifico del ilgebra relacional frente a1 cilculo relacional, 10s usuarios be inclinan a enrontrar el cumtifieador universal del c.ilculo relacional dificd tle romprender. Conseruentemente, ellos a inenndo son incapaces d r r e s o h e r las consultab q a e requiere este cuantificador. Aunque la oprracihn wrresponrlientr en el ilgebra relacional -tlivisibnes dificil d e dominar, el porrentaje d r personas
EL ALGEBRA Y EL CALCULO RELACIONAL
20 3
que la usan con Gxito es niuc*homayor cpe el porcentajr clr personas que aprenden a usar el wantifieador u n i v e r d euitosamentr. Yuestro punto de \ ista zohre el asunto es qne aun no se ha desarrollado una 11uenaalternativa para la solnci6ii ck las consu1t;rs mis dificiles qur involucran "every" (todo) en la condici6n. Como se discutiri en el Capitulo 7 , el enfoqne usado por el lenguajr SQL, el predkatlo NOT EXITS, no p r r c e ser mrjor que las alternativas que brindan el ilgebra y el cilculo. Con optiniismo, la investigaci0n futura fortaleceri 10s lenguajes de bases de datos en este irea.
En estr capitulo se ha presentado el ilgebra relacional y el cilculo relacional de Codd. Estos (10s lmguajes te6ricos ~nanipnlanrelaciones en una hase de datos relacional basindose en sus caracteristicas l6gicas y sin considrrar la estructura fisica usada para la iniplementaci6n. El ilgehra rrlacional es un lenguaje procrdimental qur usa soluciones paso-a-paso para 10s problernas de las consultas. Sin embargo, el cilculo relacional es no procedimental, lo que signifirs quela solucibn a la consulta se formula mas bien conlo una definicibn drl resultado desrado que conlo un procrso clue producirii el resultado deseado. Codd mostrci que el ilgehra relacional y el cilculo relacional son l6gicamentr quivalentes o, en otras palabras, clue cualquier consulta qnr purtla resolverse m un lenguaje puede resolversr en el otro. El ilgeln-a rrlacional consiste de nueve operaciones: unicin, interseccicin, diferencia. producto, srlecci6n: proyeetar, reunibn, divisihn y asignacicin. La unibn, la interseccibn, la sustracci6n y el producto son muy similares a las operaciones d r conjunto de 10s mismos nomhres. La srlecci6n se usa para aplicar una condici6n a una relaci6n y obtener una nueva rrlaci6n q u r e:onsiste d r aquellas filas que satisfacen la condicihn. La operaci6n de proyectar crra una nurva r e l a c i h , moviendo columnas a partir de una relaci6n existente. La oprraci6n de reuni6n cwnecta relaciones a travis de columnas que contienen informaci6n similar. La divisibn identifica las filas en una relaci6n que se corresponde con cada fila m la otra rrlaci6n. La asignaci6n (la un nomhre a una relacicin. El cilculo rrlacional define la soluci6n de una consulta corno un conjunto rrlacional. La definici6n de la relaci6n consiste en una lista resultado, definirndo 10s atributos en la relaciOn solucicin, y una sentencia de cualificaci6n, que es una condicicin q u r 10s elementos d r la lista resultado drhen satisfacer. El cilculo relacional toma su nombre del cilculo d r prrdicados en la l6gica simb6lica y usa 10s conectores booleanos (and, or, not) para enlazar condiciones que puecirn ser verdaderas o falsas. Ademis usa 10s cuantificadores enistencial y universal para indicar, respectivamentr, que existe una instancia de algun tipo. o qur una condici6n es verdadera para cada instancia de un tipo especifico. Aunque la sahiduria popular sostiene que es m i s ficil para las personas usar un lenguaje no procedimental que un lenguaje procedimental, las investigaciones indican que en el caso de 10s lenguajes relacionales esto puede que no siempre sea cierto. Para algunas consultas dificiles, el enfoque paso-por-paso de un lenguaje procedimental, como el ilgebra relacional, ofrece la flexihilidad necesaria para la formulaci6n de las soluciones de las consultas. Ademas las investigaciones en este Area quizis resulten en el desarrollo de lenguajrs que 10s usuarios puedan ficilmente aplicar a la solucibn de consultas que tengan un extenso rango de complejidad.
Las p r ~ p n t a smarcadas con un asterisco (*) estin relacionadas con las materias opcionales del capitulo.
1. Defina con sus propias palabras cada uno de 10s siguientes tirminos: a. Algebra relacional
b. no procedimental
DISENOY ADMINISTRACION DE BASES DE DATOS
c. completo relacionalmente d. uni6n compatible e . intersec~i6n f. sustracciim g. [woyectar h. reunion natural i. reunihn theta j. senttlncia cle cualificaci6n k. dilisi6n 1. cwantificatlor u n i ~ r r s a l
Dewriha las circunstancias en la5 q w usaria cada una de las oprrariones siguientes clel ilgebra rrlacional: a. selecciim b. proyectar c. rrunir (1. asignaci6n e. sustraccih f. intrrwcci6n p. divisihn
3. E x p l i c p la funci6n de cada uno de lob siguientes tPrminos en la ioluci6n clr vonsultas en el cilculo relacional: a. lista resultado b. srntencia de cualificaci6n c . conecstoresbooleanos cl. cuantificador existencial e . cuantificador universal
4. i P o r q u i el cilrulo relacional no necesita algo similar a la instruccihn dr asignacibn clel ilgrbra relacional?
5. Considere la siguiente sentencia: "Los lrnguajes no procedimentalt~sson m i s ficiles de usar por 10s usuarios novatos". Usando su experiencia, analice rsta frasr.
6. Estudie el significado de dwir que el ilgehra relacional y el cdculo rrlacional son complrtos relacionalmentr y qud significa eso para la evaluacih de 10s SGBDs comercialcs.
1. Enlace cada tdrmino con st1 definici6n. -di$erencia a. Dar un nonlbre a una relacibn. -mi& b. La reuni6n theta basada en la igualdad de eolumnas rspecificas. -procedimental c. Lista que define 10s atributos de una relaci6n soluci6n. - u n n t i f ~ a d o r existencial d. Lenguaje que brinda un mdtodo paso-por-paso para la soluci6n de problemas. -seleccibn e. Operacihn que conecta relaciones. f. Relaci6n que resulta de una operacibn de pro-reunibn (join) yectar. -producto g. Eupansi6n de la reuni6n natural que incluye todns las filas d r ambas relaciones.
EL ALGEBRAY EL CALCULO R E L A C I O N A L
-equirreuizi6n (equijoin) -reuni6il externn (onter join) -riilrulo
relarioizd
-nsigizclcGn -proyecciciil --listu resultado
h. Crea el protlncto c a i ~ s i a n o(I(. (10s rclaciones. Crea el conjunto (liferencia de dos relaciones 11nibn-rompatible. j. Afirn~ala existencia tle a1 menos una fila a la cual se le aplica una contlicibn. k. Crea el conjnnto unibn de dos relaciones unihncompatible. 1. Operaci6n del ilgebra relacional clue m a m a condicihn para mostrar las filas tle una relarihn. n ~ .IJn lrngnaje no proredimental para la dcfinicibn de soluciones a consultas. i.
2. Usantlo el signiente escpema relacional, indique cuiles operaciones del Algebra relacional podrian usarse para responder lab consultas dadas: CLIENTE (ID-CLIENTE, NOMB-CLIENTE, RENTA-ANUAL) EMBARQUE (EMBARQUE-#, ID-CL IENTE, PESO, CAMION-#,
DESTINO)
a. 1Qui. clientes tienen una renta anual que excede 10s cinco millones? 1). i C u i l es el n o m h del cliente 433? c.. i C u i l es la cintlad destino tlel t r a n s p r t e #3244? d. 1Qub ramiones han transportado paquetes con un peso por encima de las 100 libras? iCuiles son 10s nombres de 10s clientes qne han enviado paquetes a la ciudad de Sionx, Iowa? f. 4 ,; qub destinos han enviado paquetes 10s clientes con renta anual inferior a nn mill6n?
.
Use este esqnema relacional para el siguiente conjunto de consultas: CLIENTE (ID-CLIENTE, NOMB-CLIENTE, RENTA-ANUAL) EMBARQUE (EMBARQUE-#, ID-CLIENTE, PESO, CAMION-#, DESTINO) C l a v e F o r a n e a : DESTINO REFERENCIA A NOMB-CIUDAD EN CIUDAD CAMION ( CAMO I N#-, NOMB-CHOFER) CIUDAD (NOMB-CIUDAD, POBLACION)
3. Di. soluciones del ilgebra relacional a las siguientes consultas: Una lista con 1;s nbmeros de 10s embarques que pesan mis de 20 libras Los nombres de 10s clientes con mis de 10 millones de renta anual El chofer del camibn #45 Los nombres de las ciudades que han recibido envios que pesan mis de 100 libras Los nombres y la renta anual de 10s clientes que han enviado paquetes que pesan m i s de 100 libras El numero de 10s camiones que han transportado embarques que pesan m i s de 100 libras Los nombres de 10s chbferes que han distribuido envios que pesan m i s de 100 libras Las ciudades que han recibido embarques de clientes que tienen una renta anual por encima de 10s 15 millones Los clientes que tienen una renta anual por encima de 10s 15 millones que han enviado paquetes con peso menor de una libra Los clientes que tienen una renta anual por encima de 10s 15 millones que han enviado embarques con peso menor de una libra o han enviado embarques a la ciudad de San Francisco Los clientes cuyos envios han sido distribuidos por el chbfer Jensen
DISENOY ADMINISTRACION DE BASES DE DATOS
1.
Los conductores que han distrilmido rnvios de clientrs con renta anual por en(+ ma de 10s 20 millones a ciudades con pohlacibn superior a un nlillhn m. Clientes que han tenido rnvios distrihuidos por totlos 10s chbferes n. Ciudadrs que han reci1)ido embarques de todos 10s clientes o. Chbferes que han distrihuido envios a todas las ciudades p. Clientes que han mviado embarques a toda ciudad con poblacihn mayor de 500.000. (Sugerencia: Primero cree un conjunto de ciudades con pol)lac*ihn mayor de 500.000) q. 1)ar una lista tle los clientes y la 1-enta anual para esos rlientes cuya r m t a annal es el maximo para todos 10s clirntes de la h e de datos r. Di. una lista de los clientes qne envian todos sus emharques a una h i m ciudad (Nota: La ciudad puede o no puedr ser la misma para cada uno de estos clientes.) (Sugerencia: Primero encauentre10s clientes qur envian ernharques a luis de nna ciudad)
4. D i soluciones del cil(.nlo relacional para las wnsultas del pro1)lema 3.
1. Compare sus soluciones a las consultas en 10s problemas 3 y 4 de la seccihn anterior. 1Cuiles consultas le parecieron mas ficiles de resolver en el algebra relacional y cuales en el ciilculo relacional? En cada caso, ipor quC suponr que un lrnguaje fur mas ficd de w a r que otro? i C u i l de 10s dos lenguajes prefiere? i P o r qui?
2. Lea 10s artieulos de Codd del iilgehra y el cilculo relacional (Codd 1970. l07la. 1971h). Escriba un ensayo comparando 10s dos lenguajes y analice chmo Codd mostrh su equivalencia l6gica.
3. Escriba esbozos de programas rn lenguajes tales como COROL o Pascal para resolver las consultas 3 a, e, 111 y r. Compare la complejidad de estos programas con las soluriones a las consultas en el algehra relacional y el calculo relacional.
RELACIONAL CON SQL
Implernentacion relacional: introduccion Definicion de tablas y de esquernas Definicion de esquemas Tipos de datos y dorninios Tipos de detos Definicion de dorninios Definicion de tablas Definicion de colurnnas Otras instrucciones de rnanipulacion de esquernas Manipulacion de datos Consultas simples SELECT FROM
WHERE Consultas multi-tablas Subconsultas Subconsultas correlacionadas EXISTS y N O T EXISTS Funciones integradas GROUP BY y HAVING
Funciones integradas con subconsultas Operaciones del algebra relacional U N I O N , INTERSECT y EXCEPT Operadores El operador J O I N Operaciones de rnodificacion de la base de datos INSERT UPDATE DELETE Usar SQL con lenguajes de procesamiento de datos Definicion de vistas Restricciones sobre consultas y actualizaciones sobre vistas El esquerna de informacion Resurnen Preguntas de repaso Problernas y ejercicios Proyectos y cuestiones profesionales
208
DISENOY ADMINISTRACION DE BASES DE DATOS
T o n s lleltorl y 4nnette Chctng. usunrios de 10s sisternus tle inforinncibn tle la Cornpuiiiu Construetoru Premier. estcirl discutiendo sobre su sisternu degestibn de base tle tlntos relacioilc~linstularlo recienteir~ente. "Tony, iqud uentajus sfJtienen con SQL coino lengunje de nuestro sisternu en lugur de olguno de 10s otros lenguajes d~ buses de dutos relncionules que h a y di.sponible.s?" "Probublernente, lu ventuju prinripal. Anette, es que SQL es el lenguuje relacionnl estiindur rle ANSl y a su vez P S el estcindar tle facto e n 10s negocios. Esto significu clue estci nrnpliarnente soportudo y quc. nos podernos sentir cor!fiados rle rninirnizctr i1uestro.s riesgos si rurnbiarnos de hurdwure o de.fubricunte rle sqjit(wre." "Pero iqud hay con el 1eng.g-uujeen si rnisrno? iCcirrlo se erige SQL cwmo lengutrje relucional por derecho propio? "SQL es u n lenguaje poderoso. Tiene todu la poteneirr lbgicn del ccilculo relacioirctl de Codd, a la vez que tieile cccpcccitludc~sudicionules poru rrlrrnejcrr g r l q m ( kfilus y uplicurle.funciones estudisticas u dstos. Airn iuhs, podernos dqfinir nlwstro.\ rspernus de buses dc. datos, irlentificar las claves y las colurnnus no nulas con rolores por rlqficto, y ( w r i h i r iristrucciones SQL en prograinus escritos e n otros lenguajes. Aden~tisrle torlo eato, nupatro esquernu de sistema rle inforrnnci6il que contiene lu inforrnncibrl dr rlclfinicibn rle torlos 10s esquernas en una base rle rlatos es en si rnisrno una base dr drrtos relucionul a In yue potle~ es qur PI ~sturirlurSQL-92 aharnos ~ ~ n s ~ lcon t a SQL. r Quizcis lo rnus irnportunte r l torlo de unu serie de rnejoras a1 lenguuje que 1os.filbricuntes P S ~ ( ; I Lun4ioso.s d~ i~npkrnentcir.A travks de SQL porlreinos verdaderurneilte sacur ventuju del poder de la revoluricin relacional. "
E
n este t-apitulo se estutliarhn las partes de 10s sistemas de gestibn de bases tle datos relacionales clue tienen clue \er con el lenguaje SQL, incluyentlo tbpicos tlel estiintlar ANSl SOL-99. Despubs tlr leer rstr t'apitulo se estarh capacitatlo para:
Explirar lo+lwchos Ijisit-os tlel tlesarrollo hist6rico de 10s sistema de gestibn de haseb de datos relarionales. Definir un ebquema relational tle Lase tle tlatos cn SOL. Formular consultas SOL de variad'i conlplejidatl. Insertar, actnalizar > Iwrrar datoi tle una base tle datos relacional a travks de brdenes SOL. Estucliar algnnos aspertos de rbmo escr~hirinstrucciones SQL en u n lenguaje de programacibn tradieional o en nn lenguaje "anfitrim". Definir y consultar vlstas de datos en SQL. Explicar algunos rlementos bisicos de la estructura de u n esqurma tle informacibn SQL.
Implementacidn relacional: introduccidn El rfecto t k la puhlicacibn de 10s articulos de Codd en 10s que se introtlujo el modrlo relacional y 10s lrnguajes rrlacionales (ilgehra y cilculo) fne el gran impact0 qne significb en las comuniciades comerciales y tle investigatih para tirbarrollar vrrsionrs implrmrntadas tle 10s lenguajes relacionales. Los tres lenguajes m i s importantes qne resultaron dr rste eifuerzo son probahlrmrnte SQL1 (que se pronuncia "ess-cue-ell" o "sequel"). QBE
I
Del inglbs Structured Query Long~ruge(lenguaje de ronsulta estrurturado) (N. tie1 T.).
IMPLEMENTACION RELACIONAL C O N SQL
209
(Query-1)y-Examl~lr)', QUEL (Qurry Language):'. SOL y QBE furron c*rratlos por IBJI durante 10s srtenta y rralizan funcionrs muy similarrs, aunqur SQL r s 1111 lrnguajr trstual mirntras clue QBE rs grifico. QLIEL es el lenguaje original clr INGKES: 1111 sistmla d r prstihn cle basr d r tlatos r c h i o n a l drsarrollatlo r n 111ssctrnta por la Lnivc~rsidadtle Rerlirley, m California. SQL fur el rrsultatlo tlrl proyrcto cle invcstigaei6n S y t r n ~K d r TRM. Estr proyrcto incluy6 el clrsarrollo clr ti11 sistema d r base clr datos rrlacional y el lrnpuajr SEQIJEL (Structurrtl English Query Language). A1 final de 10s srtcntii. SC)L (camlio tlvl SEQUEL) pas6 a formar p a r t r tlel clominio public0 !rstuvo primrro disponi1)lr como lrnguajr para iin sistrma c:omc:rcial tlr Oraclc Corporation. En 1981 IBM lanz6 su SQLIDS. un sistrma d r gestibn d r hasc d r tlatos c*omcrcialq u r soporta SQI,. En 1983 IBM lanz6 SQL w m o partr d r l SGBD DBZ. En 1986 f'ue apro1)ado el primrr r s t i n d a r .4NSI para SQL. Estr r s t i n d a r file revisatlo m i s tartlr r n 1989 (motlrstamente) y en 1992 (significativanlc~~tr). SQIJ ha qnrclaclo twmo el i~nicolrnguaje relacional d r base d r datos qiir es .ANSI rstintlar. Es mis. SOL r s c k hrcho rl rstinclar en 10s nrgocios. porqur r s (-1lrnguaje rrlacional rscogitlo por 10s sistrnias comrrcialrs. Desde 1980 numerosos fahieantes han lanzatlo implenlrntacio~~rs d r SQL. Adic~ionalnirntr a las brrsiones para grandes cornputatlows d c SOT, nwncionatlas autc:riormrntr. hay,actualmrnte niuchas vrrsiones de SQL para c*omputatloresprrsonalcs y t~lirntelservidor,Estas incluyen Syhase SQL Server, Microsoft SQL Srrvrr. IBM OSP2 Extrnclrtl Edition Datahasr Manager. DEC RdhNMS y Oracle Srrvtxr para OSI2 (Khoshafian y otros) para sistemas c:lirnte/srrvitlor, y XDB y SQLBasr, asi colno vrrsionrs d r R:Hasr y (1BASE. para computadoi-rs personales. El sistema INGRES se desarrcrlli, originalmrntr c o n ~ oun sistrma de gesticin cle hasr tlr datos con su lrnguaje propio, QUEL, el qne, a1 igual q u r SQL. motlrlaha el cilculo rrlacional. E n 10s iiltinios afios, INGRES h a sido expandido para soportar tanto SQL como QUEL. Esto rs importante, ya q u r SQL h a sitlo acloptacio como el rstantlai- ANSI. Los sistrmas de gesti6n d e hasrs d r datos relacionales soportan una ~ a r i r c l a dtlr asprctos. adrmbs d r sus capacidades 1ingiiistic.a~.Estos aspectos incluyrn srguriclad. intrgridad. alto rendimirnto en acreso y actualizacibn d e 10s datos y control del dic.t:ionario d r datos o esquenia d r infhrmacihn. Algunos d e rstos aspectrrs sr t r a t a r i n en rste capitulo. otros s e r i n analizados n ~ i adelantr s (vrr. por ejemplo, 10s capitulos 11 y 12). En rste c a p tulo se rstnciiari el lrngiiajc SQL y los aspectos del sistrma de informacihn clr un SGBD rrlacional. En el Capitulo 9 sr cstudiarin los aspectos del lenguaje de (10s SGBD rrlacionalrs c:lic:nte/srrvitIor. Annqii(1 (4 nonlhrr SQL siigirre q u r Gste es un lenguaje d e "consulta", ademis rle las fariliciadrs de consulta, incluyr la clrfinici6n d r t a l h s , la actualizacibn d e la hase de dates: clefinici6n d r vistas, otorgamirnto de privilrgios. En este capitulo s e r i n estudiados las c:apacidades clr clefinici6n d r tal~las,de consultas, de actualizatibn y de definicibn de vistas q u r hay en SQL, en este ordrn. Sr incluirin aspectos del estinclar ANSI tle 1992, conocido ccrmo SOL-92. SQL-92 es una mejora significativa d r las primeras vrrsionrs del estinclar SQL y es drmasiatlo p a n & para poder cuhrirlo en este capitulo o incluso r n rste lihro. (Para m a rxposici011 m i s complrta, ver Melton y Simon. 1993 o Date y Darwrn, 1994.) No ohstante, sr mostrarin varias de sus caracteristicas, concrntrindonos en las clue se consideran m i s importantes. T a m h i h se examinarin sus caractrristicas d r esc[urma de informaci6n. P a r a ilustrar 10s rjrmplos se utilizari una hase d e datos relarional tomada del caso d r la Cornpuiiic~Con~structorclPremier. El qjrmplo d e hase d e datos se nluestra r n la Figura 7.1.
DISENOY ADMINISTRACION DE BASES DE DATOS
TRABAJADOR I D TRABAJADOR
NOMB- TRABAJADOR
M C R P H C J
I D TRABAJADOR
OFICI0
Faraday Nemo Garret Mason Rickover Coulomb Barrister
ID-EDIFICIO
312 31 2 515 460 460 435 21 0 11 1 435 515 312 51 5 435 21 0 11 1 11 1 460 31 2 210
Electricista Fontanero Albariil Carpintero Fontanero Electricista Carpintero
ID-SUPV
1311 1520 2920 3231 1520 131 1
NL~M-D IAS
FECHA- I N I C I O
18/18 01 110 17/10 05/10 08/12 28/10 16/11 10/10 15/10 05/11 24/10 09/10 08/10 15/11 01/12 08/10 23/10 30110 27/10
5 10 22 18 18 10 15 8 15 8 20 14 12 12 4 14 24 17 14
EDIFICIO ID-EDIFICIO
DIR-EDIFICIO
312 435 51 5 21 0 111 460
123 456 789 1011 1213 1415
Elm Maple Oak Birch Aspen Beech
TIP0
NIVEL-CAL IDAD
O ficina Comercio Residencia Of i c i n a Of i c i n a Almacen
2 1 3 3 4 3
Definicih de tablas y esquemas catilogo. En SOL-92, una colecci6n dr rsquewas con nomhre.
SQL-92, a diferencia de versiones anteriores, permite a 10s usuarios definir esquemas multiples. Los esquemas niultiples se pueden agrupar en catilogos (catalogs), que en SQL-92 son colecciones tie esquemas alas qur se les ha dado un nombre. Cada catalopo contiene un esquema especial, llamado INFORMATION-SCHEMA, que contiene metadatos y que se estudiarh posteriormente en rste capitulo. Todos 10s restantes esquemas en un catalogo 10s define el usuario. Para mayor claridad dehe notarse que el tkrmino catalogo, tal y como se usa en SQL-92, es derivado de la forma estandar y tradicional en que se usa el tkrmino en bases de datos. Un catilogo se concibe normalmente conm conteniendo 10s metadatos
clue definen la base d e datos. E n SQL-92, el esqiirma de informacibn lleva a ( * a hesta fnnci0n.
esquemas SQL-92 tlenomina cattilogo a una colecciim de esquemas q u e t i m e nombre. pero no intlica cbmo deheria drfiuirze un catilogo. Esto se deja a la implementacibn del SGBD. Sin emhargo, SQL-92 si especifica que rs una definicibn de esquema. Definir nn esqilema en SQJ, es elemental. S61o se necesita itlrntificar el comienzo dr la definicibn con una instruccibii CREATE SCHEMA (creur ~squerrtn)y una cliusula adicional 4UTHORIZZTION (autorizacibn) jr a c~ontinuacibndrfinir cada dominio, tahla, vista y den& en el esquenia. romo s r mnrstra a continuacibn: CREATE SCHEMA CONSTRUCTORA-PREMIER AUTHORIZATION TONY-MELTON d e f i n i c i o n de dominios d e f i n i c i o n de t a b l a s d e f i n i c i o n de v i s t a s etc.
propietario d e 1111 esquema. Persona q ~ i r tiene autoridad y responsa1)ilidad para o t o r p r acceso a tahlas, columnas ) vistas en UII csquema tle hase dc datos.
Cada instrucci6n CREATE SCHEMA intlica a1 SGBD clue lo qiir sigue rs u n esquenia tlr la h a w d r datos. El nomhre del rsqurma -CONSTRUCTORA-PREMIER e n el ejemplo anterior- tam1)iC.n se indica e n la instrucei6n. La cliusula AUTIIORIZ.4TION indica el non11)re dcl propietario dcl esquema. Esta persona se conoce entonces p o r el sistrma y puede otorgar a otros usuarios privilegios de aweso y actualizacibn dr la l m e de datos tlrfiriida en el esquema. Obviammte esta estructura implira cjur purden existir e n la misma instalacibn muchos esquemas de hases d r datos. Estos purden ser posesibn de individuos tliferentes, pero hajo el control tlrl SGBD cada esquema taml)i6n pudiera ser accedido p r usnarios que no w a n sus dueiios.
Tipos de datos y dominios Antes de mostrar chmo se definen las tahlas, veamos primero c6mo se definen o predefinen 10s dominios de 10s w a l e s toman valores las columnas. E n rl sentido del modelo rrlacional, como ha sido discutido en el C a p i t d o 5, u n dominio es un conjunto del cual toma sus valores una columna de una rrlat.i6n. E n este sentido, 10s tipos de datos predefinidos son dominios. Sin emlmrgo, SQL define 10s dominios dr forma ligeramentr diferente, s e r i analizada hrevemente. E n cualquirr caso, SQL proporciona tipos de datos predefinidos y prrmite dominios definidos por el usuario. S e g h la drfinici6n de SQL, tanto 10s t i p s dr datos predefinidos como 10s dominios definidos por el usuario son dominios r n el sentido del modelo rrlacional. Tipos d e datos. SQL-92 define 10s siguientes tipos d r datos: Nun16ricos exactos: Integer (enteros) Small integer (enteros ~ecrueiios) Numeric (p,e)(numCricos) Decimal (p,e)
-
\
P a r a 10s dos iltimos t i p s de datos (numirico y decimal) se indica una precisibn (p) y una escala (e). La precisibn indica el total de numeros o digitos en el n i m e r o y la escala indica cuintos de Cstos e s t i n a la derecha del punto decimal.
DISENOY ADMINISTRACION DE BASES DE DATOS
Real Doul~leprecision (dohle pret.isi0n) Float (flotante) Estos t i p s cle tlatos s r usan normalmente para cilculos cientificos y dc ingenieria. Catlenas de raracttLreh: Character ( n ) ( r a r i r t e r ) C h a r a r t r r varying (n) (carirter variallle)
IAIS ( ' ~ I I I P O S de character 4empre almawnau n carat.tcrcs. aun ruando tengan clue rrllenar (*onhlautws a la derec*hapara twmpletar la longititrtd rz. Los v a m p s c h a r u c t ~ cr a r ving 5610 almat~enanel numero real tle cararterrs quc, se introdujeron (hasta un ruiximo de n). Cadrnas tle hits: Bit (n) Bit varying (n) Estos c a m p be usan p a r a 1)antleras u otras inist.aras de hits p a r a el control. Fechas y horas: Datr Vechu) Time (horrr) Ti~nrstamp(sello dc riemnpo) Timc con t i e m p zonal Timestamp t.on tienipo zonal
El t i p DUIP& - h a ) se (la el1 el orden aiio, mes, dia con cuatro digitos para el aiio. El T i l n ~s r d a en horas (0 a 23). minutos, segundos y dbcimas de segundo. E l Timestamp tBsla Twha m i s la hora (date plus time). rrstriccion. (c-or~strmint) L'na regla clue restringe 10s valorcs cn m a haw tlc datt~s. alor por deferto. ITn clue se i n s t ~ t a auton~iticamentesi t.1 usuario no lo especifira c i ~m a entrath.
\
r alov
drfinici6n d r dominio. Un tqw tle datos esprrializado drfinido dentro tle un esqurma ! usado en las tlefiuiriones de columnas.
Un interlalo es la (liferencia entre tlos fechas (aiio-mrs) o entre dos horas (dia-hora). Ptrr ejrmplo. r n t r r diciemhre 1994 j enero 1996, el interval0 es tin aiio y u n tnes. Defu1ici611 d e doniinio. Los tipos de datos con r r ~ t r i c c i o n e s(constraints) y valores p o r defect0 (default values) s r pueden combinar en la tlefinicicin d e dominies. lTna d e f i n i c i h d e doininio r s un tipo d e datos esperializado q u r purde estar tlefinido d r n t r o d r u n rscluema y utilizado en la definicicin d r columnas. P o r ejrmplo. supongamos que se desea definir un tlominio d e idrntificadorrs para usar en la definicihn de columnas w m o ID-TRABAJ:IDOR e ID-EDIFICIO. Anticipamos q u r esta definicihn s e r i complrja, pues involucra u n t i p de tlato. u n valor por tlefecto y una restrict-iOll no nula. Pursto que se u s a r i 6sta una y otra vez r n el esquema de la base tle datos, se quiere simplificar el trahajo. P o r tanto, se crea u n dominio cle la forma siguirntr:
IMPLEMENTACION RELACIONAL CON SQL CREATE DOMAIN I D E N T I F I C A D O R NUMERIC ( 4 ) DEFAULT 0 CHECK (VALUE I S NOT N U L L )
Esta tlrhic:i6n dice cpe un tiominio llamado IDENTIFICADOR tiene las siguientrs propirdades: St1 tipo d e datos es numcriro tie ruatro cligitos, su valor por defrrto cs rero Jniinca puede s r r nulo. Una columns (pie tlrfina rste dominio cwmo su tipo d r dato trndrii estas propirdades. Ot&vesr clue no se puedc decir simplrnwntr "NOT NULL" en la definici6n. SQL rrquiere lo que se tlenomina una rrstricribn CHECK para lograr t:sto. Huhit.ntlo h e c h esto sr puedrn c1c:finir columnas en el rscperna clue tengan IDENTIFICA1)OR como su tipo d e dato.
Definiendo tablas Las tahlas se definen en t r r s pasos:
1. D a r el nomhrr (11%la tabla. 2. Drfinir cada c.olumna. posihlemente inrluyendo restrircior~esde rolumna. 3. Definir las restricrionrs de la tahla. A rtrntinuacibn se da una definiriim de esquema para la hase de datos rle la Fignr a 7.1. CREATE SCHEMA CONSTRUCTORA-PREMIER AUTHORIZATION TONY-MELTON domain d e f i n i t i o n s CREATE TABLE TRABAJADOR ( ID-TRABAJADOR IDENTIFICADOR PRIMARY KEY, NOMB-TRABAJDOR CHARACTER ( 1 2 ) , T A R I F A HR NUMERIC ( 5 , 2 ) , OFICIOCHARACTER ( 8 ) , ID-SUPV NUMERIC ( 4 ) , FOREIGN KEY ID-SUPV REFERENCES TRABAJADOR ON DELETE SET NULL ) CREATE TABLE ASIGNACION ( ID-TRABAJADOR IDENTIFICADOR, ID-EDIFICIO IDENTIFICADOR, FECHA71NICI0 DATE, NUM-DIAS I N T E R V A L DAY (3), PRIMARY KEY (ID-TRABAJADOR, I D - E D I F I C I O ) , FOREIGN KEY ID-TRABAJDOR REFERENCES TRABAJADOR ON DELETE CASCADE, FOREIGN KEY I D - E D I F I C I O REFERENCES E D I F I C I O ON DELETE CASCADE)
CREATE TABLE E D I F I C I O ( ID-EDIFICIO IDENTIFICADOR PRIMARY KEY, DIR-EDIFICIO CHAR ( 1 2 ) , TIPO CHAR ( 9 ) DEFAULT ' O f i c i n a ' CHECK ( T I P O I N ( ' O f i c i n a ' , ' A l m a c e n ' , ' C o m e r c i o ' , NIVEL-CALIDAD NUMERIC ( 1 ) , CATEGORIA NUMERIC ( 1 ) DEFAULT 1 CHECK (CATEGORIA > 0 AND CATEGORIA < 4 ) )
'Residencia')),
Des]~ui.sdel CREATE SCHEMA (crear esquema) y d e posiblemmte otras instrucciones como CREA4TEDOMAIN (crear dominio) estin tas instrucciones de ,CREATE TABLE (crear tabla). La instrucci6n CREATE TABLE identifica el nombre d e la tabla: qnt: debe ser Gnica dentro del esquema. DrspuCs de CREATE TA4BLEvan erlcerratlas
DISENOY ADMINISTRAC~ONDE BASES DE DATOS
entre parintesis y separatlas por coma las instrucciones tle tlefinir columnas y d e drfinir restriccione~solm. la tabla. D e f i n i c i h de colurnna. Veamos les tlef~nicionescle las tres primeras c.oluninas tit. T R IBAJ I D O R : ID-TRABAJADOR NOMB-TRABAJADOR TARIFA-HR
IDENTIFICADOR CHARACTER ( 1 2 ) NUMERIC ( 5 , 2 )
FECHA-INICIO NUM-DIAS
DATE INTERVAL DAY ( 3 )
PRIMARY KEY,
y dos d e EDIFICIO: TIP0 CHAR ( 9 ) DEFAULT ' O f i c i n a ' CHECK ( T I P O I N ( ' O f i c i n a ' , 'Almacen', 'Comercio', 'Residencia')), CATEGOR I A NUMERIC ( 1 ) DEFAULT 1 CHECK (CATEGORIA > 0 AND CATEGORIA < 4 )
Catla colutnna sr define dando sn nomhrr. sn t i p tle dato (que puede s r r un t i p prr~irfinitloo definido por el usuario), cnal rs su valor por defccto y cuintlo se le aplican rrstriwiones especifkas (por cjeniplo. NOT NULL (no nula), PRIMARY KEI- ( d a v r prini;rrie) y restricc.ionrs CHECK). Las t r r s primrras columnas d r este ejemplo s r Ilaman rrspcctivanlentr ID-TR-iBAJADOR, NOMB-TRAIBAJADOR y TARIFA-HR. Sus t i p tie dirtos son lDENTIFICA4DOR,CHARACTER y NUMERIC. Las (10s columnas q u r se tomaroil d e la tahla ASIGNACION (PECHL4-INICIO y NIJM-DIAS) ilustran otros dos t i p s tle datos: DA4TE(fecha) e 1NTERY;IL (intc,rvalo). Un tipo d e dato numiricw sigiiifiea clue 10s valores d r 10s datos d e las coluinnas tlehrn s r r nilmeros, posihlemcnte ron punto tlrcimal. El t i p (ic tlatos d c ID-TRABAJADOR cs IDENrI'IFICADOR, 1111 dominio definido p r r l usuario quc- fuc. tlcfinido conio NUMERIC (4). qne q u i r r r drcir clue tiene 4 digitos significativos y no titme digitos despubs d r l punto (no tirnr f r a c ~ i 6 n ) TARIFA-HR . tirnr 1111 t i p tlr dato NlTMERIC (,5, 2) que significa qiir tiene cinco digitos significativos, dos tie los cualrs estiti a la d r r r c h a tiel punto decimal. Iln tipo cle dato CHA4RACTER(caric*trr)significa que 10s valores tle las coluninas consisten en radrnas dc caractc--rs, formadas por caracttLrt.s alfanumi.ricos, posihlen~entr comhinados roil curacteres especialrs. La longitutl mixima de la cadena d e cararterrs se indica entre parintrsis. De este modo, NOMB-TRARAJADOR puede tener valorrs tlr cadenas de cara('tt:rrs d e longitnd no mayor d r 12. Un t i p tlr datos fecha (como el que tirue FECH.4-INICIO) significa q u r 10s valorrs de 10s datos tlr la columna s r r i n frrhas, dadas con fcrrmato d r aiio (cuatro digitos), 1nt.s ((10s digitos) y dia ((10s digitos). Un t i p de datos intervalo (como r l d r NUM-DIAS) rs t1;rtlo en aiios y/o meses o en dias, minutos, h a s ylo segnntlos. Se ha rscogido el intervalo w n i o tipo tlr dato DAY (3), lo que significa qne puede ser cualqnier cantidad de dias d r 0 a 999. Los t i p s dr datos fecha e interpalo ti,enen la ventaja que pueden sumarse o restarst.. D r modo clue st: le puede sumar NUM-DIAS a FECHA-INICIO y ohtrner la frcha r n la que termina la asignacibn de un trahajador a un etlificio (si st: asume que despuks d e la fecha de ccrmienzcr d e u n edificio el trahajador no toma vacacionrs ni fines d e semana y ncr trahaja en ningiin otro edificio). ID-TRABAJADOR e s t i sujeto a dos rrstricciones: NOT NULL (no nulo) y PRIMARY KEY (claw primaria). La r e s t r i c c i h NOT NULL se hereda d e su dominio d e defi-
IMPLEMENTACIONRELACIONAL C O N SQL
215
nici6n y zignifira que ID-TR-IBAJADOR no puede tener un \ a h nulo. PRIMARY KEY significa que dos filas en la tabla TRABAJADOR no pueden tener el mismo valor m ID-TRABAJADOR !que para prop6sitos d e referencias a clave externa ID-TRABAJADOR se considera una clave primaria. La r e s t r i c c i h NOT NULL refuerza la regla de integridad dc entidad que estah1ec.e que una columna clave no puede ser nula. Las columnas T I P 0 y CATEGORIA e n la tahla EDIFICIO tienen valores DEFAULT (por defecto) definidos. Si s r afiatle una tupla a la tabla EDTFICIO y p o r ejemplo no se introduce n i n g i n valor p a r a la eoluititia C ATEGORIA, el sistema pondrh automiticamente u n 1 como valor de rsa columna e n esa tupla. Similarmente T I P O se [lone automitic*amentea 'Oficina' si no se le introdlice nineim valor. Si e n el esuuema no se especifica u n valor por tlefecto p a r a una rolumna, se t o m a r i como valor p o r defecto el valor nulo. ObsCrvese que no se ha definido u n valor p o r defecto para ID-TR iBAJADOR puesto que Cste toma el valor p o r defecto (0) d e su dominio tle tlefinicibn. Las columnas T I P O y CATEGORIA tanibiPn tienen definidas restricciones CHECK. Estas restriwiones liinitan 10s posihles valores que pueden introducirse en estas cdumnas. En particular, T I P 0 dehe tener uno ct,v los valores del conjunto ('Oficina'. 'L41~nac*bn'. 'Comercio', 'Residencia') \ C.4TEGORIA debe estar entre 1 v 3. Ya clue se ha explicwlo la secci6n d e d e f i n i c i h de columnas del esquema queda s6lo p o r estudiar las restricciones sobre lab tahlas. E n este esquema, las restricciones de tablas son: FOREIGN KEY ID-SUPV REFERENCES TRABAJADOR ON DELETE SET NULL clue restringe la tabla TRABAJADOR y: PRIMARY KEY (ID-TRABAJADOR, ID-EDIFICIO), FOREIGN KEY ID-TRABAJADOR REFERENCES TRABAJADOR ON DELETE CASCADE, FOREIGN K E Y ID-EDIFICIO REFERENCES EDIFICIO ON DELETE CASCADE que restringe a la tabla ASTGNACION. Vramos cada una de Cstas. La restricci6n d e (.lave externa ile la tabla TRABAJADOR: FOREIGN KEY ID-SUPV REFERENCES TRABAJADOR ON DELETE SET NULL d a t e externa recursiva. Una clabr externa cpr refwcncia a s11 propia relacihn.
int1ic.a clue ID-SUPV es una c l a w e x t e r n a recursiva (ver Capitulo 5). Esto ez, m a clave externa que referencia a su propia relacibn. Observe q u e en rsta i n s t r u c ~ i 6 nlas palab r a s que e s t i n eneima tle "ON DELETE ..." son idCnticas a las que se usaron p a r a definir las claves forarieas en el C a p i t d o 5. Simplemente se identifica la(s) columna(s) d e la (*lavecxterna en la relacicin se estal~lecea c u i l r e l a c i h apuntan esta(s) columna(s). E n este c a m , la columna cla\e exterria e s t i en TRABAJADOR y apunta a la propia r e l a c i h TRABAJADOR. La cliusula ON DELETE S E T NULL le tlice a1 sistema que si se b o r r a la tupla a la que apunta la rlave externa entonces el valor de Psta se debe poner a cero. P o r ejemplo, supongamos que borramos la tupla con ID-TRABAJADOR 1311 en la relaci6n TRABAJADOR de la Figura 7.1. Entoncrs el ID-SUPV de la primera tupla (el que tiene ID-TRABAJADOR 1235) apuntaria a un trahajador inelistente, es decir, a una tupla que ya no eviste m i s en la base d e datos. Esto violaria la integridad referencial. P a r a evitar esto. la cliusula ON DELETE SET NlTLL instruye a1 SGBD p a r a que ponga el \ a h r tle la clave externa (ID-SUPV en la tupla 1235) a cero, si se borra la tupla a la q u r Gsta aputita (la tupla 1311). P o r tanto, antes de dicho b o r r a d o la tabla sr \ r en la forma:
DISENOY ADMINISTRACIONDE BASES DE DATOS TRABAJADOR ID- TRABAJADOR
NOMB-TRABAJADOR
TAR1 FA-HR
OFICIO
ID-SUPV
1235
M. F a r a d a y
12,50
Electricista
1311
131 1
b : 'coulomb
15,50
Electricista
1311
TRABAJADOR IDTRABAJADOR
NOMB-TRABAJADOR
TAR1 FA-HR
OFICIO
ID-SUPV
12,50
Electricista
[null]
...
1235
M Faraday
...
...
...
Las restricciones de la tabla ~ S T G N ~ C ~son: ON PRIMARY KEY (ID-TRABAJADOR, I D - E D I F I C I O ) , FOREIGN KEY ID-TRABAJADOR REFERENCES TRABAJADOR ON DELETE CASCADE, FOREIGN KEY ID-EDIFICIO REFERENCES E D I F I C I O ON DELETE CASCADE
Con la excepci6n de la rliusula ON DELETE C 4SCADE en las dos restnrciones d e elawes externas, clue se estidiaran en hreve, estas restricciones w n elementales. La restrit*ciOn tit. PRIMARY KEY (ID-TRABAJADOR. ID-EDIFICIO) le dice a1 sistema clue ID-TRABAJADOR e ID-EDIFICIO twnstitujen m a d a v r externa twmpnesta p a r a la tahla. P o r lo tanto, 10s valores twm1)inatlos d e estas doh t d u m n a s dehen ser ilnitws para r a d a tupla t1n la tahla. ON DELETE CASCADE es similar a ON DELETE SET NULL, ya clue la acciOn se emprende sien~preque se horra la tupla referida por la clave extrrna. Considbrensr las sigilientes tuplas en la base d e tlatos de la Figura 7.1:
TRABAJADOR ID-TRABAJADOR
NOMB-TRABAJADOR
TARIFA-HR
OFICIO
ID-SUPV
1235
M. F a r a d a y
12,50
Electricista
131 1
ID-TRABAJADOK en la tabla A S ~ G N A C I ~esNm a clave externa que apunta a la tabla TRABAJADOR. ON DELETE CASCADE significa clue si se horra la tupla referida m la relaci6n TRABAJADOR (1235 e n e l ejemplo), significa u n lwrrado en "cascada" tle todas las tuplas de la tahla ASIGNACION que hacian referencia a h e . En este rjemplo el ID-TRABAJADOR 1235 en la tahla TRABAJADOR se refiere por dos tuplas de la tabla ASIGNACION (tal como se niostri, anteriormente). Si se borra la tupla 1235 de TRABAJADOR, entonces el sistema h o r r a r i automiticamente las dos tuplas correspondientes en la tahla ASIGNACION. Este es el nianejo w r r e c t o tle est? clave extrrna, porque si se horra la tupla de TRABAJADOR, las tuplas de ASIGNACION carecen d e sentido y tanihitn dellen Imrrarse. La cliusiila ON DELETE es similar a la t:liusula ON UPDATE y amhas cliusulas tienen las opciones siguientes:
CASCADE SET NULL SET DEF.4ULT
217
IMPLEMENTACION RELACIONAL C O N SQL
multicolijunto. Uii conjunto qne pnecle tener entradas duplkadas.
definition d e esquelna. DrsrripriOn cle una hase d r datos para el SGRD.
Si la opcihn es SET DEFAULT, el sistrlna pone el valor de clave externa a1 valor por defrt*tod e la colunma. Naturalniente, como seiialan Date y Darwen (1994), la clave externa a p u n t a r i ahora a una tupla en la relacihn a la que hace referencia, tenirndo este valor par defecto: por lo que delje existir una tiipla tal en dicha relacibn. Si se omitvn tantcr ON DELETE como ON UPDA4TE,las acciones d e h o r r a r o actualizar s e r i n prohil)idas por el sisterria si tales at-cionrs putlic.ran violar la integridad referential. Antes de dcjar esta tlefiniciJn de escluenia se delw mrncionar que, a diferrncia de las relaciones en cl modelo rrlacional, no se requicrc que each tahla SQL tenga una clave p i maria. E n otras p a l a h a s . si no se indiva ninguna &we, mtonces dos filas de la t a l h p e den trner valores idinticos. Una t a l h SQL sr denomina multiconjunto (multiset) si purdc tener entradas duplicadas. De esta manera: SQL se aparta n n poco del modelo relacional. P o r supuesto, una tabla que no tenga clave primaria no put:dc ser referida mediante clave externa desde otra tahla (Date y Darwen, 1994). Esta definicibn d e esquema describe la hasr d e tlatos para cl SGBD, pero no causa clue se introtluzc~andatos concretos. Los valores se intrndncen y se manipulan mediante el lenguaje tle tiianipiilacibn de datos d e SQL, clue se drscri1)iri en detalle en la prhxima seccihn. Otras instruccionc.3 d e manipulacion d e esquemas. Junto con la i n s t r n c ~ i h nCREATE T i B L E clue define m a nueva tahla, SQL-92 ofrece otras instrucciones para cambiar las definiciones de la5 t J ) l a s (ALTER TABLE) o p a r a b o r r a r las tahlas clel esquenia (DROP T4BLE). ALTER TABLE puede usarse p a r a afiadir una columna a una tahla, camhiar la definicibn de m a coliimna rvlstente o eliminar nna columna de una tahla. D R O P TABLE l w r r a r i todas las filas de la taljla y quitar j. del e-qnema la definiciirn completa cle la talda. Un esqnema completo puedr eliminarse tiiediante la instrucciirn D R O P SCHEMA. Sin embargo, pnesto que Csta es una ol)eraciOn l)'~stantepeligrosa, o hien CASCADE o RESTRICT se clehcn especificar junto con ella. DROP SCHEMA nombre d e esquema CASCADE
significa elinlinar el esquenia con ese nomhre a1 igual que tcrdas las tahlas. datos rscluemas que a u n existan.
j
otros
DROP SCHEMA n o m b r e - d e - e s q u e m a RESTRICT
significa rliminar el esqnema shlo si todos 10s restantes objetos del esqnema ya h a n sido 1)orr;idoh.
Manipulacih de datos SQL contiene una gran variedad de cal)at:itlatles tie tii;unipulaci6n de datos, tanto p a r a consulta como p a r a actualizacihn de una hase d r datos. Estas capacidades dependen sirlo tle la estructura lhgica d e la base de datos, no d e sn estructura fisica, consistente con 10s requisites del modelo relacional. Inicialmente, la estructura sintictica tle SQL fue modelada sohre el cilculo rrlacional de Codd. La unica operacihn del algebra relacional que era soportada fue la unihn. Sin embargo, SQL-92 implementa dirrctamrnte la uni6tl. la intersrccihn. la diferencia y la reunibn (join) y ademhs t i m e una sintaxis similar a la del cilculo relacional que ya tenia desde antes. Las operaciones d e s r l r t ~ i h n(select), prtryectar ( p r o j w t ) y producto estahan y continuan estando soportadas d e una forma rlemental, mirntras clue la divisi6n y la asignacihn son soportadas, a n n c p r tle forma m i s engorrosa.
DISENOY ADMINISTRACIONDE BASES DE DATOS
Prirnrro s r descrihirii el lenguajr d e consulta d r SOL y luego las opcraciones para introdncir y carnhiar 10s datos. P o r irltimo sr describirin las operacionrs de camhiar 10s datos porque sn estructura deprnde d r alguna forma d r la estrnctura tlrl lenguajr d r twnsulta.
Consultas simples consulta simple. Una ronsnlta cjue irrvolut~a ulra sola tabla tlr la base d r datop.
Una consulta simple cs una ronsulta que a h t a a m a sola tallla dc la h a w tlr datos. Las consultas simples nos ayudan a ilustrar la rstrurtura hisica d r SQL. C o n s u l t a : i Q u i e n e s son 1 0 s f o n t a n e r o s ?
SELECT NOMB-TRABAJADOR FROM TRABAJADOR WHERE OFICIO = 'Fontanero' Resultado:
NOMB- TRABAJADOR C . Nemo H . Rickover
Esta consulta ilnstra las tres cliusulas rnis usadas del SQL: la c:liusula SEIXCT. la d i u s u l a FROM y la cliusula WHERE. Aunque en el rjcmplo anterior se han pnesto en linras srparadas, pueden colocarse r n la rnisma linra. TamhiPn s r lrs purde poner sangrias y los tkrminos d r n t r o d e las cliusulas pnetlen s r p a r a r s r por un nilrnrro arhitrario d r rspacios en hlantw. Acontinuaci6n s r analizan las caractrristicas tlr vada c l i u sula. clhusula SELECT. Srriala las columnas cjur sr desran en la conwlta.
Select. La cliusula SELECT lista las cohrrrncis que sr drsran en el resnltatlo dc la consulta. Siemprr tirnrn que s r r cdumnas d e una tahla relational. E n el ejrmplo anterior, la talda resultante tirnr una sola colurnna (NOMB-TRABAJ-ADOR), pero podria tenrr varias colurnnas, o incluir valores calculados o valorrs literalrs. Se mostrarin ejemplos cle cada uno d e Gstos. Si el rrsultado drsrado contiene m i s de una c:olumna Pstas se i n d i w r i n e n la cliusula SELECT srparadas por comas. Por rjrrnplo, SELECT 1D-TKABAJADOR, NOMB-TRABAJADOR causaria q u r ID-TRABAJADOR y NOMB-TRABAJADOR sean listados como columnas tlr la tahla resultantr.
c l h s u l a FROM. Lista las tablas que son referidas por la consnlta
From. La cliusula FROM lista una o m i s tublus q u r van a s r r referidas en la consulta. Tocias las columnas relacionadas en la clirrsula SELECT o WHERE se dehen m c o n t r a r m una d e las tahlas d e la cliusula FROM. En SQL-92 estas taldas pueden definirse tlirectamente m el esqurma d r la hase d r datos como tahlas base o como vistas, o pudirran s r r m si misma5 tahlas a n h i m a s que Sean el resultado d r consultas SQL. En rstr illtirno raso. la consulta se da rsplicitamrnte en la cliusula FROM.
cliusula WHERE. Nos da la condici6n para seleccionar las filas de las tablas indiradas.
Where. La cliusula WHERE contienr una rondici6n p a r a srlrccionar las filas d e las tahla(s) q u e se d a n en la cliusula FROM. E n el rjemplo, la c o n d i c i h ha sido q u r la colurnna OFICIO d r h r tener el valor literal 'Fontanrro', kste s r pone r n t r e comillas simples, q u r es como se denotan 10s valorrs literalrs e n SQL. La cliusula WHERE r s la 1116s versitil d r SQL y puedr c o n t m e r una gran variedad d r condicionrs. Gran p a r t e d r lo qne sigur s r dedica a ilustrar las difrrentrs construcciones q u e se perrnitrn en la cliusula WHERE. La consulta SQL antrrior se procrsa por el sistema en el ortlen FROM, WHERE, SELECT. Esto es, las filas d e la tahla a la q u r se liacr refrrrnria en la cliusula FROM (TRABAJADOR en este caso) se "ponen" en un Area de trahajo para su prowsamirnto. Luego se aplica la cliusula WHERE a cada fila, una por una. Las filas que no satisfagan la
IMPLEMENTACION RELACIONAL C O N SQL
219
d i u s u l a WHERE no se toman en 4-uenta. Aquellas filas qne satisfagan la rlinsnla PC HERE se proresan por la clhusula SELECT. En el ejemplo se selecciona el NO'MB-TKABIIJADOR p a r a cada una tle cbstasfilas y todos estos valores se milestran en pantalla como resultado de la consillta. C o n s u l t a : R e l a c i o n e t o d o s 1 0 s d a t o s d e 1 0 s e d i f i c i o s que Sean o f l c i n a s . SELECT * FROM E D I F I C I O WHERE TIPO = ' O f i c i n a '
Resultado: D I -EDF IC IO I
DIR-EDIFICIO
TIPO
NIVEL-CALIDAD
CATEGORIA
31 2 21 0 11 1
123 Elm 1011 B i r c h 1213 ASDen
Oficina Oficina Oficina
2 3 4
2 1 1
El "*" m la c*liusula SELECT significa "la fila roinpleta*'. Esta vs una forma a l m viada que se empleari con frernencia. C o n s u l t a : i C u a l e s l a t a r i f a semanal d e cada e l e c t r i c i s t a ? SELECT NOMB-TRABAJADOR, ' T a r i f a semanal = ' FROM TRABAJADOR WHERE TIPO = ' E l e c t r i c i s t a ' ORDER BY NOMB-TRABAJADOR
,
40
*
TARIFA-HR
Resultado: NOMB- TRABAJADOR C. Coulomb D. F a r a d a y
literal cadrna d e carartrres. Literales forniaclos por caracteres y por alfm~~mbricos caracteres "especiales".
T a r i f a semanal = 620,00 T a r i f a semanal = 500,00
Esta consulta ilustra r l uso de 10s literalc5 alfanumkricos y de lo5 literales cadenas d e caracteres (en este rjrmplo .Tarifa semanal =') y el rilcnlo tleutro tle la clinsnla SELECT. E n la cliiusula SELECT se pueden definir rilculos que i n v o l u c n n columnas cwnbinados con las operaciones aritmkticas e s t i n d a r (+, numkriras y literalcs n~~mGricos , *, I) agrupadas con parintesis cuando sea necesario. Se ha incluido aqui una nueva r l i u sula, la rliusula ORDER BY (ordenar por), que se uia para ordenar el resultado tie la consulta en ortlen alfanumCriro a s t w ~ d e n t ep o r la columna q a e se especifique. Si se drsea en ortlen descendente entoncrs esto drlw esperifirarse afiadientlo a la orden "DESC". Se pileden especificar miiltiples rolumnas en la cliusula ORDER BY. algunas pneden estar en orden ascendente y algunas en orden clescendente. La primera coliunna por la quc3se ( p i e r e ortlenar se esperifira primero. C o n s u l t a : i Q u i e n e s t i e n e n una t a r i f a p o r h o r a e n t r e $10 y $12? SELECT * FROM TRABAJADOR WHERE TARIFA-HR >= 10 AND TARIFA-HR
<= 12
Resultado:
operadores d~ comparaci6n =, 0 ,<. >, <=, >= conectores booleanos AND, OR, NOT.
ID- TRABAJADOR
NOMB-TRABAJADOR
TARIFA-HR
OFICIO
ID-SUPV
2920 1520
R. G a r r e t H. R i c k o v e r
10,00 11,75
Albaiiil Fontanero
2920 1520
Esta I-onsnlta ilustra algrinas caracteristicas adicionalrs d e la c.liusula WHERE: Los operatlores de comparari6n y el conrctor booleano AND. Los seis operadores d e conlparaci6n ( =, o [no igual], <, >, <=, >=) se pueden usar para cornparar columnas con otras columnas o con literales. Los conectores booleanos AND, OR y NOT pueden usarse para w e a r condiciones compurstas o para negar una contlici6n. Los parkntesis tamhibn pueden
DISENOY ADMINISTRACION DE BASES DE DATOS
iisarsr en la forina aroitunl1)rada tlr 10s lenguajrh de programaci6n para agrilpar eontliciones. Esta consnlta tamhibn huhiera podicio resolverse usantlo el operador RETWEEh (entre): SELECT * FROM TRABAJADOR WHERE TARIFA-HR BETWEEN 10 AND 12
BETWEEN purde ilsarie en la cwinparaci6n de algiln \ . a h coil otros tlos valores. el primero rnenor clue el segnntio, para iaher s~ el ~ a l o ar roniparar esti entrr estos (105 \ a lores. Consulta: I n d i q u e 1 0 s f o n t a n e r o s , a l b a r i i l e s y e l e c t r i c i s t a s . SELECT * FROM TRABAJADOR WHERE OFICIO I N ( ' F o n t a n e r o ' , ' A l b a t i i l ' ,
'Electricista')
Resultado: ID-TRABAJADOR
NOMB-TRABAJADOR
1235 1412 2920 1520 1311
M. C. R. H. C.
Faraday Nemo Garret Rickover Coulomb
TARIFA-HR
OFICIO
I D - SUPV
12,50 13,75 10,00 11,75 15,50
Electricista Fontanero Albanil Fontanero Electricista
1311 1520 2920 1520 1311
Esta consiilta introtlucr e ilustra el uso del operador d e comparacihn IN. La cliiis~lla WHERE ha rvalnarlo 'true' si el t i p del oficio de la fila se rnclientra en el conjunto indieatlo entre parhtesis. esto es, si el oficio es fontanero. alhaliil o rlertricista. Ya trndremos mlis ocasiones de utilizar el operador IN cwmdo veamos las su1)consultas. Sup6ngase clue no j)odemos r c w r d a r exactamrnte el nomhre c:xacStode u n oficio. Es caracteres c o ~ n o d i ~ ~ e s . decir. ,"Electi-icista", L'EISctricw" o 'LElectrhniro"'? Se pueden usar caracteres colnodines (wild c a r d churc~cter)que son simholos espciales que valen como cua1cpic.r catlma no SiiiiI)olos espec.iaIes clue especific.ada de caracteres, lo clue hace mas f k i l si no sal)emos el non1l)re exacto en una valrn por ciialqnier radena tle carartcres. cc~iisulta.
'
Consulta:
Encontrar
todos
10s
caracteres
cuyo
oficio
comience con
"Elec". SELECT * FROM TRABAJADOR WHERE OFICIO LIKE ' E l e c % '
Resultado: ID- TRABAJADOR
NOMB-TRABAJADOR
TARIFA-HR
OFICIO
I D -SUPV
1235 1311
M . Faraday C. Coulomb
12,50 15,50
Electricista Electricista
131 1 131 1
SQL tienr dos caracterrs comodines el 5% (tanto por ciento) y el - (su1)rayado). El suhrayado vale por rxactaniente urr carieter cnalquirra. El tanto por ciento vale poicero o rualqnier cantidad de caracteres no rspecificados. El operador LIKE se nsa p a r a c-omparar variables d e cSarac:terrscon literales cuando se utilizan coniodines. Otros cjemplos: NOMB-TRABAJADOR LIKE '-Coulomb' NOMB-TRABAJADOR LIKE '-C%'
En inglis in the set, dr a h i rl n o m h del oprrdor IN (N. tlel T.)
22 I
IMPLEMENTAC~ONRELACIONAL C O N SQL
El primer ejemplo e ~ a l i l a\ t d a d e r o si NOMB-TRABAJ4DOR ronsiste de tres caracteres segnido de 'Coulo~nh'. P o r eje~nplo,en la relacihn T R 4 B I J I D O R . todos 10s nomhres de trahajadores comienzan por m a inicial. seguida de un punto y luego u n e , p cio. P o r lo tanto. la condicihn encontrari a todos los tra1)ajadores cu!o apellitlo sea "'Coulomb". E n el seguntlo ejeniplo. la condicihn identifiearia a 10s tra1)ajadores cu!o apellido comience con "C'". C o n s u l t a : E n c u e n t r e t o d a s l a s a s i g n a c i o n e s que comiencen en l a s dos proximas semanas.
SELECT FROM ASIGNACION W H E R E FECHA-INICIO BETWEEN CURRENT-DATE ' 1 4 ' DAY Resultado:
(Suponiendo que CURRENT-DATE
ID-TRABAJADOR
ID-EDIFICIO
=
AND CURRENT-DATE
+ INTERVAL
10110)
FECHA-INICIO
NUM-DIAS
Esta consulta ilustra el nso del operador BETWEEN con x alores de f w h a y el t i p inter\ alo de datos. CIJRREN-DATE (fecha actnal) es una filncicin que siempre devuehe la f w h a de ho!. La exprvsihn CURRENT-DATE
+ INTERVAL ' 1 4 ' DAY
afiadv a la fecha actual u n intertalo de dos semanas. Dc cstc modo se sclccciona lina tupla (asnmirndo qnc la fkcha actnal es 10110) si su columna FECIIA-IVICIO rstii r n el rango 10110 a 24/10. De aqui se puede \ e r que se putden comhinar frrhas ron inter\ alos dc fecha mecliantr suina. Ta1nhii.n podria s r r nlrtliantr resta. Es m i s sr p u r d r n inultiplic~~r (*amps inter\ alos por \ alorrs entrros. P o r rjrmplo, snpongainos clue se qnirre idrntificar una feqha clue e s t i una cierta cantidad de semanas m i s adelante (dada por la \ariable NUM-SEM4NAS). se p e d e escrihir
Consultas multi-tablas La capacidad p a r a concctar datos s o h las frontrras de las tahlas es rsencxial en cnalquier lrnguajr d r Lase dc datos. E n r l i1grl)ra rrlacional rsto se lle\a a c a h con la reunihn (join). Aunqur una gran parte tle SQL se ha inodelado drspuis del cilculo rrlacional. iste conecta 10s datos rntre las tahlas de la misma manera que la reunicin (join) del Algebra relacional. A contini~acicinse inuestra ccinlo se hace esto. Conhiderr la consulta: C o n s u l t a : LCuales son 1 0 s o f i c i o s de 1 0 s t r a b a j a d o r e s asignados a1 e d i f i c i o 435?
Los datos necesarios par? responder a esta c o n s d t a se enc*uentranen dos relaciones: TRABAJADOR y ASIGNACION. La solncihn SQL r r q u i r r r poner ambas relaciones en la cliusula FROM junto con un tipo particular de condicicin de cliusula WHERE:
DISENOY ADMINISTRACION DE BASES DE DATOS
SELECT OFICIO
FROM TRABAJADOR , ASIGNACION W H E R E TRABAJADOR. ID-TRABAJADOR AND ID-EDIFICIO = 435
.
= ASIGNACION ID-TRABAJADOR
~ Q u rs b lo c p e e s t i p a w n d o aqui? Se tleben consitlerar do.; pasos en r l prowsatnirnto q u r ha(-(*el sistrma para la cwniulta:
1. Coino es usual. la rliusnla FROM s r procrsa primero. E n rste cauo. sin e m l ~ a r producto coartesiano. Krsnltatlo d r aparrar rada fila d r m a tahla cou totlas Ins filas tlr otra t a l h .
( ~ dos t a l ~ l a sen la clinsula, el sistrma r r c a r l p r o d u c t o cartego, pnesto ( ~ uhay siano d e las filas en rstas tahlas. Esto significa q u r se w r a (IOgicamrntr) una tabla rnorme q u r consistr tie todas las coh~rrrnasd e a m l ~ a staldas, emparrjando cacia~Jilr1d e una tabla con t.arlafila r n la otra tabla. E n estr rjernplo, pnrsto clue hay tincw t d u n ~ n a sr n TRABAJADOR y cuatro rolutunas en ASIGNACIOK. h a b r i rntonces tlnrvr c:olumnas en el protlucto rartrsiano erratlo p o r la t:liusnla FROM. El total d r filas cn estr produeto cartesiano r s rtt :+ n , donde m r s ql nilmrro d r filas d r TRABAJADOR y IL r s el nunlrro tie filas r n ASIGNACION: Puesto q u e TRABIJADOR tienr 7 filas y ASIGNACION t i m e 19 filas. (:I p r o d ~ t : t ocartrsiano ten(lr.6 7 * 19, o sea, 133 Silas. Una ilustraciirn tlr rsto s r (la en el Capitnlo h (Figuras h.h(a) y 6.6(b). Si hay m i s d e dos taljlas en la clinsula FROM. el prociurto cartrsiano s r crrarii con todas las tahlas en la cliusula. 2 . Despubs dc: crear esta relaciirn gigantr sc aplica la clinsnla WHERE, twino antes. Se exan~inacada fila d e la relacihn rreada por la cliusula FROM conforlilt: a la clius~ilaWIIERE. No s r twnsideran aqi~rllasq u r n o la satisfaren. La tdinsula SELECT s r ap1ic.a a las filas rrstantes. La cliusnla WHERE r n csta consulta contiene dos condiciones:
La primera de estas twndicipnrs rs la relini6n (join). O h s e n e q n r puesto que tanto TR IBAJ 4DOR como 4SIGNACION contirnen una columna llamada ID-TRAB4,JIDOR. el produeto tle ambas relaciontss t*ontendri rlos c d u m n a s con rste nombre. P a r a clistinguir r n t r r ellab be pone como prefijc) a1 nombre de la columna el nomhre d e la relacihn d e la cual provienr la colutnna. 1,a primera rontlitihn estahlew t1ut3. para clue una fila cualquiera sea srleccionada. rl valor de la rolunina ID_TRAB4JADOR, que yroviene d r la relari6n TRABA.JADOR, drbe ser igyal a1 \ a h de la colunina ID-TRAB IJADOR que proviene de la relac+h ISlGN1CION. En rfrcto, se ehti I~aciendouna rtwniirn d e tlos relationes sobre la colum-
1
TRABAJAD0R.ID-TRABAJADOR
1412 2920 131 1
NOMB-TRABAJADOR C . Nemo R . Garret C . Coulomb
TARIFA-HR
OFICIO
ID-SUPV
13,75 10,00 15,50
Fontanero Albanil Electricista
1520 2920 1311
IMPLEMENTACION RELACIONAL C O N SQL
223
na I[>-TRAB4JADOR. Todas las filas p a r a lab qut. estas (10s roluinnas no son iguales sc. t4iminan cle la relacion proi1uc.to. Esto es lo que pasa prrc.isanwnte (.n la reuiiion natnral (nccturul joirr) clrl iilgch-a relacional. (Sin em1)argo. rsto difiere de la relu1i6n natural. !a cpw r n SQT, la coll~ninarrclundante TD-TRGBAJADOR rLo stat h n i n a autoii~iticainentee n SQL.) E n la Fignra 7.2 se muestra la r m n i 0 n coniyleta de estas dos relac+)ntls (*onla (.ondiriirn adicional clr clue ID-EDIFICIO = 435. La aplic.ac.iirn tlr la c l i u s d a SELECT t~rotlttI T 1.1 resultado final siguientc. ( 1 la ~ conslilta: OFICIO Fontanero Albahil Electricista Ahora se niostrarii c h n o se pnede h a r r r e n SQL una reuni6n de una relaci6n consigo misma. C o n s u l t a : I n d i c a r 10s t r a b a j a d o r e s con 10s nombres de s u s s u p e r v i s o r e s .
SELECT A.NOMB-TRABAJADOR, B.NOMB-TRABAJADOR FROM TRABAJADOR A, TRABAJADOR B W H E R E B.ID-TRABAJADOR = A.ID-SUPV alias. tTn nom1)re ~ l t r r n a t l r oqnc s c 1c da a una relaci6n.
La c-16nsula FROM en este ejemplo clefin(. (10s "copias" d e la relacihn TR-IBAJ-1DOR 4 lrs tla 10s alias 1 1 H . LIn alias es tin noinhre alternativo clue se Ir tla a m a r t h i h n . Las ropias i ! B dr TR-IB-IJlDOR se conectan en la c~linsulaE I I E R E a1 hacer clue el ID-TR4KAJ 4DOR en B sra igual a1 ID-TRABAJADOR & A . De modo clue cada fila en 4 se asocia t ~ ) la n fila en H tine twnticmc. la informaci6n sohre clue la fila ile A t3s su supervisor (Figura 7.3). Selett~ionanclo10s dos nomhres de traljajatlor cle catla una de las filas se ohtiene la lista solicitada de pares de tra1)ajatlores con sus sqwrvisores: A . NOMB- TRABAJADOR
6 . NOMB- TRABAJADOR
M. C. R. P. H. C. J.
C . Coulomb H. Rickover R . Garret P. Mason H . Rickover C. Coulomb B a r r i s t e r P. Mason
Faraday Nemo Garret Mason Rickover Coulomb
A.NOMB-TR4BAJ4DOR representa a1 trallajatlor y B. NOMB-TR.IBLIJAI>OR representa a1 superribor. Ol,ser\r clue algunos trahajadores se suyervisan a si mismos. cwmo se refleja en el h r r h o de clue en esos casos ID-SUPV = ID-TR IBAJADOR. E n SQL s r p e d e haoer una rennihn de m i s tle dos relaciones a la vez: C o n s u l t a : I n d i q u e 10s nombres de 10s t r a b a j a d o r e s a s i g n a d o s a e d i f i c i o s que Sean o f i c i n a s .
Se necesita hacer una reunion de las tres rrlarioiies p a r a ohtener 10s datos. Esto se hacr e n la cwnsulta siguiente: SELECT NOMB-TRABAJADOR FROM TRABAJADOR, ASIGNACION, EDIFICIO W H E R E T R A B A ~ A D O R. ID-TRABAJADOR = ASIGNACION. ID-TRABAJADOR ASIGNACION.ID-EDIFICIO = EDIFICIO.ID~EDIFICI0AND TIP0 = ' O f i c i n a '
AND
DISENOY ADMINISTRACIONDE BASES DE DATOS
A . I D TRABAJADOR 1235 1412 2920 3231 1520 131 1 3001
A . NOMB TRABAJADOR M . Faraday C. Nemo R. G a r r e t P. Mason H. Rickover C. Coulomb J. Barrister
A . TARIFA-HR 12,50 13,75 10,00 17,40 11,75 15,50 8,20
Electricista Fontanero Albanil Carpintero Fontanero Electricista Carpintero
A . OFICIO
B . ID- TRABAJADOR 131 1 1520 2920 3231 1520 131 1 3231
B . NOMB- TRABAJADOR
C. Coulomb H . Rickover R. G a r r e t P . Mason H. Rickover C. Coulomb P. Mason
B . TARIFA-HR 15,50 11,75 10,00 17,40 11,75 15,50 17,40
Electricista Fontanero Albanil Carpintero Fontanero Electricista Carpintero
A . OFICIO
A . ID-SUPV 1311 1520 2920 3231 1520 131 1 3231 A . ID-SUPV 1311 1520 2920 3231 1520 131 1 3231
Resultado: NOMB- TRABAJADOR M . Faraday
C. R. P. H.
Nemo Garret Mason Rickover J. B a r r i s t e r
Ol,si.r\ese clue ii un nonlhre tle columna (por ejemplo. I T ) - T H A B A J A D O R o I D - E D I F I C I O ) aparere en ~ n i de s m a relwiOn se delw poner como prefijo tle la columna el nolnlrre de la relaci6n tlc dontle provienc. para mitar am1)igiiedatl. Pero si el nomhre de la collimna aparecr en una iola relaciim. cwno e5 el caio de T I P 0 en este ejemplo. entollc r i no hay anihigiiedatl y no tli necesario n i n g h prefijo. Eita i n i t r u w i h SQI,origina la c r t a c i h de una sola rrlacihn a partir de tre5 relaciones de la base de datos. Las dos pri~ncrasrelaciones i r reunen con 1 1 ) - T R A B A J A D O R , deipubs tle lo cr~alse hatee una rennibn aol)re I D - E 1 ) I F I C I O de la rrlacihn resultante con la tercera rrlacihn. La condirihn TIP0 = ' O fi c i n a '
en la cliusula WHERE have clue se clirninen todas las filas, excepto q u e l l a s que cumplen q11e LOB edifirios son oficinas. E s t o satisface 10s rrquisitos de la consulta.
Subconsultas snbconsulta. Una consulta dentro de nna cwnsulta.
Una subconsulta, o una cwnsnlta tlrntro de una consults, ~)uecle1)onerse dentro de la cliusula WHERE de una consulta. E s t o produce una e a p a n s i h tle las capacidades de una cliusula WHERE. Considi.rrsr el ejeruplo siguiente: Consulta: L C u a l e s s o n 1 0 s o f i c i o s d e 1 0 s t r a b a j a d o r e s a s i g n a d o s a 1 e d i f i c i o 435?
IMPLEMENTACI~N RELACIONAL C O N SQL
225
S r u i a r i vstr rjetnplo lm-a ilnstrar la renni6n (join). Las su1)c~onsultasnos clan una eqni\ alencia t~arcialcon m a reuni6n. SELECT O F I C I O FROM TRABAJADOR WHERE ID-TRABAJADOR I N (SELECT ID-TRABAJADOR FROM ASIGNACION WHERE I D - E D I F I C I O = 435)
En este ejemplo la su1)consulta es (SELECT ID-TRABAJADOR FROM ASIGNACION WHERE I D - E D I F I C I O = 435)
consulta e x t r r r ~ a 1,a . consulta 11rincil)alclue contienr a lai hul~c~c~ns~dtas.
La consnlta t l ~ ~~ntc~I u > ea r+ta suhcwnsnlta sc, denoniiua c o n s ~ d t acxterna (outer query) o c*onsultaprinvipal. La +ul~consulta proFoca clue se genrre el signientc conjnnto tle 1Ds d r tra1)ajadores: ID- TRABAJADOR 2920 1412 131 1
Estr conjunto d e IDs ocnpa el lugar tlr la s i ~ b t ~ o n s ~ iplat ar a la consulta m i s c ~ t c ~ n a . En estr pnnto la cwn~ultaexterna se ejwuta usando el coujnnto generado p o r la s n 1 ~ 1 1 i snlta. Esta tvmsulta e ~ t e r n apro\oc*a clue cada fila d e TRLZRiJAlIOR sea r\trlnatla con resperttr a la t~lbusula HEKE. Si en el ID-TR lBAJADOR de la fila e s t i (I\).el vonjunto generado tlor la sn1)consulta se srltwiona en el campo OFICIO d e la fila y se mnestra en pantalla conio resultado de la t-onb~~lta: OFICIO Fontanero Albaiiil Electricista
sul)cor~suItano correlarivnada. lTna snbconiulta c q w s valores no tlcpenden dc ningnna con5dta mis rxterna.
R+ mu) importantr clue la c.lbusula SELECT de la snlrconsulta contenga a ID-TRIB iJW O K ? sdlo a ID-TRAHIJ4DOR. Dta lo contrario, la claninla WHERE de la (.onsnlta externa qur t-stalllrce si 11)-TR4B4JADOR estii en (111,n n conjunto de IDs tlr tr'rhajatlores no tendrie sentdo. 0 l ) s C r ~ e s equt. la snlwonsulta puetle cjccntarse 16g1caniente antes d e qne cllgur~cl fila sea examinade IWI- la c o n i ~ ~ l principal. ta E n c i ~ r t osentido, la sulwoniulta t.s illdependiente tle la consulta principal. Esta ~ ~ o t l rejecutarse ia como una consulta proplamente &ha. Se (lire clue eita claw tle subconsulta n o e s t i correlacionada con la consulta principal. Como se v e r i en h r c ~ e .las subconsultas pudieran t a m l h e i t a r correlacionatlas. A continuaciim se d a un ejemplo d e una subcon~nltadentro de una snhconsulta. Consulta: I n d i c a r 1 0 s n o m b r e s d e 1 0 s t r a b a j a d o r e s a s i g n a d o s a e d i f i c i o s q u e Sean o f i c i n a s .
De n w v o v a m o ~a trahajar cwn la consulta que se ns6 p a r a estudiar la rruni6n (.join).
DISENOY ADMINISTRAC~ONDE BASES DE DATOS SELECT NOMB-TRABAJADOR FROM TRABAJADOR WHERE ID-TRABAJADOR I N (SELECT ID-TRABAJADOR FROM ASIGNACION WHERE I D - E D I F I C I O I N (SELECT I D - E D I F I C I O FROM E D I F I C I O WHERE T I P 0 = ' O f i c i n a ' ) )
Resultado: NOMB- TRABAJADOR M. F a r a d a y C . Nemo R. G a r r e t P . Mason H. R i c k o v e r J. B a r r i s t e r
0l)icrve que no scs han pueito prefijos a ningim u o m l ) ~tlv columna. Esto i c dehr a q u r cada subconsulta tiene clue vcr s6lo con una relaciim, [)or lo cjue no da lugar a a n h i giiedad. La evaluacihn de esta coniulta procede de adentro hacia afr~era.Por tanto. la snbconsulta nlis interna ( o la '-miis a1 fondo")' i e evalila primero. luego la su1)roninlta cjue contiene a Gsta y m i s tardc la coniulta externa.
suhronsidta correlarionada. 1Jna si~l~c~onsulta cuyos resultatios dcpendm tic la fila que sc estli e~atninantiopor una consulta miis rxterna.
Subconsultas correlacionadas. Las suhconsultas (11~.hemos estudiado hasta ahora son indrprndientrs tle la consulta m i s externa que las usa. Pol- c1sto entendemos que las s d consultas podrian existir como consultas por derecho p r o p i o Ahora vamos a ver una clase d e suhconsultas cuyos valorcs en ejecuciOn deprntlen d e la fila q u r r s t i siendo exarninada por la consi~ltaprincipal. Tales suhconsultas se llaman suhconsultas correlacionadas. Consulta: I n d i c a r 1 0 s t r a b a j a d o r e s q u e r e c i b e n u n a t a r i f a p o r h o r a mayor que l a de s u s u p e r v i s o r . La p a l a h a pivote en rsta ccrnsulta es st^. Esto rs, la fila drl supervisor a examinar d e p m d e directammte d e la fila d r l trahajatlor que estli sirndo examinada. Esta consulta puede resolverse usando una subconsulta ccrrrrlacionada. SELECT NOMB-TRABAJADOR FROM TRABAJADOR A WHERE A.TARIFA-HR > (SELECT B.TARIFA-HR FROM TRABAJADOR B WHERE B.ID-TRABAJADOR
=
A.ID-TRABAJADOR)
Resultado: NOMB- TRABAJADOR C . Nemo
Los pasos lhgiros involuwados en la rjecuci6n de esta consulta son 10s siguientes:
1. El sistema hace dos ccrpias d e la r r l a c i h TRABAJADOR, la copia A y la copia B. Corno ya se han definido, A se refiere a 10s trabajadores y B se refiere a 10s supervisores.
En ingljs. bottorn-rnost ( N . drlT.).
227
IMPLEMENTAC~ONRELACIONAL C O N SQL
2 . El sistema examina entonces ratla fila tle .-I. Se sclect*iona m a fila si satisface la contlicibn tle la cliusula WHERE. Esta c.ondicicin rstablrcr cjue catla fila s e r i seleccionada si su TARIF.4-HR es nlnyor que la TAKIF,4-HR generatla por la su1)t:onsulta. 3. La suhcousulta selecxiona la T.4RIF24-HR de las filas tle R cuyo ID-TR.ABBJ.41)OK sea igual a1 del TD-SIJPV de la fila tle A clue e s t i siendo c,xaminatla por la ronsulta principal. Esta es la TARIFA-HR tlel supervisor de la fila d e A . 0l)sirvese q u c puesto clue 4.TARIFA-IIR 5610 puedc compararsc con un valor simple. la s u h c o ~ ~ s d delw ta entonres neresariamente generar nn unico valor. Este valor rambia dependiendo de la jila de A que estii siendo exarninada. De este modo, la s d ctrnsulta e s t i correlac*ionadacon la ronsulta principal. Se v e r i n otras ap1ic.aciont.s tit. lab suhconsultas rorrelac*ionadas m i s atlelante cuando se estutlien lab funtiones inttxgratlas
(built-in).
EXISTS y NOT EXISTS Supongarnos quc sr qnierr tlrtet-tar a todos 10s tr'lhajadores que no estin asignatlos a un dcterminado edificio. Al~arentenit,ntruna consnlta como ista 1)arereria resolverse fic.11mente por la simple negac.ihn de la vrrsibn afirmativa tle la consulta. Supongamos. por ejemplo, que el etlificio tle inter65 es el que tiene ID-EDIFICIO 435. consitlirese esta solurihn: SELECT ID-TRABAJADOR FROM ASIGNACION WHERE ID-EDIFICIO < > 435 D~,graciadamet~te, ista es una mala formulaci6n tle la soluci6n. Esta soluricin simplemente d a 10s IDs de 10s tra1)ajadores que estin trahajando en otros edificios cjur no son el 435. Ohviamente dgunos de estos trabajadores pudieran tamhi6n estar abignados a1 edificio 435. Una ioluci611 correcta podria utilizar el operador NOT EXISTS: SELECT ID-TRABAJADOR FROM TRABAJADOR WHERE NOT EXISTS (SELECT * FROM ASIGNACION WHERE ASIGNACION . ID-TRABAJADOR
ID-EDIFICIO
=
.
= TRABAJADOR ID-TRABAJADOR
AND
435 )
Resultado: ID- TRABAJADOR
operador EXISTS. Evalia verdadero si el conjunto resnltante es no vacio. operador NOT EXISTS. Evalha vertlatlero si el ronjunto resultante es vath.
Los operadoresEXISTS y NOT EXISTS siemprta precedrn a una suhtwnsulta. EXITS evalia verdadero si el suhconjunto resultante de la suhconsulta no es vacio. Si el conjunto resultante es vacio, entonces el operador EXISTS da valor falso. El operador NOT EXISTS naturalmente trabaja de modo opuesto. Este r v a l i a verdadero si el conjunto resultante es vacio y falso en caso contrario. E n este ejemplo s e h a usado el NOT EXISTS. La suhconsulta selecciona todas aquellas filas en ASlGNACION que tienen el mismo ID-TRABAJADOR que la fila que estL siendo examinada por la consulta principal y clue ademis tienen ID-EDIFICIO igual a
DISENOY ADMINISTRACION DE BASES DE DATOS
435. Si este conjunto es vacio entonws sr ieleeeiona la fila tra1)ajaclor que se e s t i examinando en la c.on,rilta principal, puesto clue eqto significa clue el trahajador en cuesti6n no trahaia r n el etlificio 435. La soluci6n qne se tiene aqui i n ~ o l u c r aa m a su1)roniulta corrrlacionada. Si ye usa Ih en lugar cle NOT EXISTS. i e puetle usar una su1)cwnsulta no correlaeionatla: SELECT ID-TRABAJADOR FROM TRABAJADOR WHERE ID-TRABAJADOR NOT I N (SELECT ID-TRABAJADOR FROM ASIGNACION WHERE I D - E D I F I C I O = - 4 3 5 )
Esta solucihn tamhibn es miis simple que la soluci6n usantlo NOT EXISTS. Poi- lo tanto, parece natural 1,reguntarse por club tentlriamos que w a r EXISTS > NOT EXISTS. La respuesta es siinl)lt.incmte clue NOT EXISTS ofrece la ilnlt-a forma di,ponil)lc clc. resolbet. cc~nsultasclue cwntvngan el cuantifiraclor "'toclos" en , ~ I Ieonditihn. En c.1 Capitulo 6 se I i o clue tales wnsultas sc. r t s o h i a n con la tli1isi6n en el Llpehra relational y (.on el cuantifieador univc~rsalr u el vilcnlo I-rlarional. El siguiente ejrnlplo ihistra una ronsulta que rontiene el cnantific-atlor %dos" en su condici6n: C o n s u l t a : I n d i c a r 1 0 s t r a b a j a d o r e s que e s t a n a s i g n a d o s a t o d o s 1 0 s e d i ficios.
Esta ronsnlta purtle resolverw r n SOL asantlo una dohle negarihn. La ronsulta con esta dohle negacihn es: C o n s u l t a : I n d i c a r 1 0 s t r a b a j a d o r e s t a l e s que NO hay un e d i f i c i o a1 c u a l NO e s t e n a s i g n a d o s .
Se han enfatizado las (10s negacionts. Dehe estar claro q u r esta eonbulta es lbgicamente equivalente a la anterior. Formdemos ahora una solucihn en SQI,. P a r a arlarar esta illtinla soluri6n. p r i n ~ e r o tlaremos una soluci6n al prot~lrmapreliminar: el problema clr iclentificar 10s edificios a cjue u n trahajatlor hipotitico "1234" no ha ,itlo asignado. ( I ) SELECT I D - E D I F I C I O FROM E D I F I C I O WHERE NOT E X I S T S (SELECT * FROM ASIGNACION WHERE A S I G N A C I O N . I D ~ E D I F I C I 0 = E D I F I C I O . I D ~ E D I F I C I 0AND ASIGNACION.ID-TRABAJADOR = 1 2 3 4 )
Se ha etiquetatlo e9ta ronsulta con (I) porque mas atlelantc se harL referencia a la misma. Si no ha) ningkn edificio que satisfaga esta consnlta, entonces el trahajador 1234 dehe asignarbe a todo etlificio y satisface la consulta original. P a r a ohtener una solnci6n a la consulta original, el siguiente pas0 es generalizar la consulta (I) clel trahajador espeifico 1234 a una variahle ID-TKAB4JADOR y hacer que esta consulta con clicha modifivaci6n p a w a ser una su1)ronsulta de una consulta m i s grande. Esto se logra de la sipuiente forma: ( 1 1 ) SELECT ID-TRABAJADOR FROM TRABAJADOR WHERE NOT E X I S T S (SELECT I D - E D I F I C I O FROM E D I F I C I O
IMPLEMENTAC~ON RELACIONAL C O N SQL WHERE NOT EXISTS (SELECT * FROM ASIGNACION WHERE A S I G N A C I O N . I D ~ E D I F I C I 0 = E D I F I C I O . I D ~ E D I F I C I 0AND ASIGNACION.ID-TRABAJADOR = TRABAJADOR.ID-TRABAJADOR
) )
Resultado: ID- TRABA JADOR 141 2
0 1 ) 1 6 r \ 1 v que la iut)cwniult:~(1111' romienza en la rnarta linea tle la twnsulta (11) e5 ~tllntica a la cwninlta (I). rxcy)to que i e ha rwmplazatlo el "1234" twn TRAB4JAUOH.11)-TRABIJAUOR. La couiulta (11) ie puetle leer ronlo iigne: S e l e c c i o n e ID-TRABAJADOR de TRABAJADOR s i no e x i s t e un e d i f i c i o a1 c u a l ID-TRABAJADOR no e s t e a s i g n a d o .
Esto iatiifere el 1-tynsito tle la coniulta original. Se Te entoncei q n r el NOT EXISTS i e puetle nsar pr.1 fornlular reipueitas a tipoi tle w n i u l t a i para 10% cualei ie newiitaria la operacihn tle t l n l i i h tlel Llgchra relacional o el c*nantificatlo~unij erial tlel r i i l d o relational (Ca1)itnlo 0 ) . Sin eml)ar;o, en tCrminos tlr farllitlatlri tlr uso. el operatlor NOT EXISTS no parrce ofreerr nlnguna lentaja r n parti(81ildl. E i ( I w i ~IIO . parece true lai cwniultas SQL qne usen (lob j e w i el NOT EXISTS wan m i i fht-ilri d r r n t c d e r (pie lai iolucionei clue u i a n la tli~isi6nen el Llgehi-a rrlarional o rl cwantificatlol unlveridl en el cilculo relacional. Se ncwiitan imestigaciones ,~tlir~onalt.s 1)ara ( h ; w r c ~ l l acr o n i t r u t ~ i o nlingiiistieds ~~ q u r pet mitan m a ioluciim m i s natural d estos tilwi tle twninltas.
Funciones integradas (built-in functions) Coniidcrc preguntas como bstas: iCuales son lus turifus menores y muyores por horu? ~ C u r ies l el prornedio de dius que estcin usigncldos 10s trt~bujudoresul edificio 435? i C u d es el nunlero total de dios usignudo u fontunericl en el edjficio 3122 ~ C u a n t o tipos s diferentes de oficios hug?
funci6n integrada. LTna funci6n estatlistica que opera bohre un c o n j ~ n t o d r filas - SII,M, AVG , COUNT. MAX, M1N. funci6n de conjuntos. Una funci6n intrgrada.
Estas preguntai requleren tle fnnciones estadisticas clue examinen u n conjnnto tlr filai en una relaci6n > l~rotluzranu n solo v a l o ~ .SQL probee tales funcionei clue se denominan funciones integradas (built-in)o funci?nes d e conjuntos (setfunctions). Lai rintw funrionei ion SUM. AVG. COUNT. MAX y MIN. C o n s u l t a : i C u a l e s son l a t a r i f a p o r h o r a menor y mayor? SELECT MAX(TARIFA-HR) , MIN (TARIFA-HR) FROM TRABAJADOR
Resultado: 1 7 , 4 0 , 8 , 2 0
Las funciones MAX y MIN ope1 a n d r e nna sola colurnna de la 1 r l a t ~ 6 n Seleccio. nan rrypectivamente el valor ma>m el menor de 10s clue ie encuentran m la columna. La soluci6n a esta roniulta no incln>e nna t~liusulaWHERE. Este no rs necesariamente el caio en la mayoria tle lai cwniultas. romo se rnue5tra en el ejemplo iiguiente. C o n s u l t a : i C u a l es e l promedio d e d i a s que 1 0 s t r a b a j a d o r e s e s t a n a s i g nados a1 e d i f i c i o 435?
DISENOY ADMINISTRACI~N DE BASES DE DATOS SELECT AVG(NUM-DIAS) FROM ASIGNACION WHERE I D p E D I F I C I O = 4 3 5
Resultado: 1 2 , 3 3 Pard ralcular este promrctio s6lo se lian considerado la? filas tie 4SIGNACIORJ rorrrspontlientrs al ctlif~cio4 3 . 5 . Como es normal r n SQL. la t.liusnla F HERE restringtb las filaz se tlrbrn rousidrrar. Consulta: X u a l e s e l numero t o t a l de dias asignados a fontaneria en e l
edificio
312?
SELECT SUM (NUM-DIAS ) FROM ASIGNACION, TRABAJADOR WHERE TRABAJADOR . ID-TRABAJADOR O F I C I O = 'Fontanero' AND ID_EDIFICIO = 312
= ASIGNACION
. ID-TRABAJADOR
AND
Resultado: 27 Esta soluribn uia la relmi6n d r ,GIG\ACION y T R A R i J IDOR. Esto fur yrrrsdrio picsto y u r OFICIO rsth cn TRABAJADOH e ID-EDIFILIO r s t i en 4SIGh 4CIOh. Consulta: LCuantos t i p o s de o f i c i o s d i f e r e n t e s hay? SELECT COUNT ( D I S T I N C T O F I C I O ) FROM TRABAJADOR
Resultado: 4 Puesto q u r el misuio oficio sr rrpite vnrias vcccs C I dif'rrrntes ~ filas. es necesario usar la p a l a h a clavr "DISTINCT" en esta consulta. Dr rsta manera: cl sistrma no curnta el nlisnlo t i p de oficio miis dr una vrz. DISTINCT purde usarsr con cualt[i~ieradr las,funcitpcs intrgradas, aunqur rs un oprrador redundant? en el r a w cir las funciones M:4X y
DISTINCT. Operaclor tpr dimina las fitas tli~plicadas.
MIN.
SVM y AVG d r b r n eml~lrarsrcon columnas q n r son llur~~bricas. Las otras funcionrs purtlen usarse con tiatos nu1p6riyos 9 con _cadenas-& r a r w t r r r m Ttdas-las fun; - c i i ~ n ~ s . ~ e ~ c ~ ~ , t ~ (purden ~ O U Kaplicarsr T. a rsprrsiones quc cornputen un valor. P o r ej~mplo: -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Consulta: X u 6 1 e s e l s a l a r i o medio semanal? SELECT A V G ( 4 0 * TARIFA-HR) FROM TRABAJADOR
Resultado: 5 0 9 , l 4 COUNT i e puede rrferir a filas r o ~ n ~ l e m ~ alugar s de a una sola colurnna: Consulta: LCuantos e d i f i c i o s t i e n e n n i v e l de calidad 3 ? SELECT COUNT ( * ) FROM E D I F I C I O WHERE NIVEL-CALIDAD
Resultado: 3
= 3
23 1
IMPLEMENTACIONRELACIONAL C O N SQL
Como muestran totlos estos ejrmplos. si m a funci6n intrgrada aparrce en una (.law sula SELECT. rntonces nada m i s clue f~uirionesintrgradas pueden aparrt2er en dicha rliusula SELECT. La imira exc.rl,cibn orurre en c.onhinarii,n I-onla rliusnla GKOUP BY, q u r w rxaminari a rot~tinuacii,n.
GROUP BY y HAVING Lcrs dirigentes estin a mrnudo intercwdos rn conocer inf'ormaciOn estadistira clue w apliq u r a v a d a g r u p drntro de un ronj~intodc grnpos. P o r ejempln. considcremos la c~msulta siguirntr: C o n s u l t a : Para cada s u p e r v i s o r , i c u a l es l a t a r i f a p o r h o r a s mas a l t a que s e l e paga a un t r a b a j a d o r que i n f o r m e a e s t e s u p e r v i s o r ?
P a r a r r s o h r r csta r o n d t a se tlehen divitlii 10s trahajadorrs (-11 grupos. cbn10s que e n cada grupo rstbn 10s trahajador es q u r inforinen a un n~ismowprrcisor. 1,uego s r deterinina el papo n ~ i x i m oen d a grulw. Esto se hace en SOL de la manera siguirntr: SELECT ID-SUPV, MAX(TARIFA-HR)
FROM TRABAJADOR GROUP BY ID-SUPV Resultado:
cliusula GROUP BY. Indira cuaIrs filas d r b m agruparsc s o l ~ r un r valor comun d r las cnlumna(s) rspecificada(s).
ID-SUPV
MAX(TARIFA-HR)
1311 1520 2920 3231
15,50 13,75 10,00 17.40
P a r a procrsar rsta consnlta, el sistvma procrde dividirndo primrro en prnpos las filas de TRABAJADOR, usantlo la siguirnte regla: Las filas se ponrn r n nn mismo grupo si y sblo si tienen rl mismo ID-SUPV. Luego sc aplica la cliusula SELECT a r a d a grupo. Pursto que u n grupo dado sblo purtle t r n r r un valor p a r a ID-SIJPY. no hay amhigiirtlad con el valor de ID-SUPV para rse grupo. La clausula SELECT muestra ID-SUPV y ralcula y murstra MAX(TARIFL4-HR) para cada gru,po. El rrsultatlo q u r d a comtr se mostri, arriba. SOlo 10s n o ~ n l ~ r ede s columna que aparrzcan e n una clausda GKOUP BY purden aparrcer en una cliusula SELECT que trnga tamhibn una funcibn intrgrada. Notr que ID-SUPV puedr aparecer r n la cliusula SELECT puesto que a p a r r r r en la rliusula GKOUP B\-. La cliusula GROUP BY sugiere la posibilidad de h a c r r calculos sofisticados. P o r rjemplo, se puede querer conocer rl promedio de totlas estas tarifas miuimas. Los calculos dentro tle las funriones intvgradas s r restringen d r m o t h qlir ninguna f u n c i h intrgrada p u r d e contrnrr a su vrz crtra funcibn intrgrada. D r no do q u r lina exprrsi0n romo
es ilegal. Resolver una ronsulta romo t s t a rrquiere doh pasos. El primer p a w seria p m r r las tarifas horarias miximas r n una nueva rrlaribn y el seg~indopaso srria ralrular r l proniedio dr bstas. Es vilido usar una c l i ~ i s ~WHEKE ~la con u n GKOITP BY:
DISENOY ADMINISTRACION DE BASES DE DATOS
Consulta: P a r a c a d a t i p 0 d e e d i f i c i o , i c u a l medio p a r a 1 0 s e d i f i c i o s de c a t e g o r i a I ?
es e l n i v e l
de c a l i d a d
SELECT T I P O , AVG(N1VEL-CALIDAD) FROM EDIFICIO W H E R E CATEGORIA = 1 GROUP BY TIPO
Resultado: TIP0
AVG(N1VEL-CALIDAD)
Cornercio Residencia Of i c i n a
3 3,5
La c.liu*ula
1
\k H E R E st. t+cwta ante* tIe la rlinsnla GROlJP BY. Ue este motlo. nin-
Consulta: P a r a c a d a s u p e r v i s o r que d i r i g e a mas de u n t r a b a j a d o r , i c u a l e s l a t a r i f a p o r h o r a s mas a l t a que s e l e paga a u n t r a b a j a d o r q u e informe a dicho supervisor? Esta ronsulta se podria t ~ l ; u ~ t e usantlo ar la clinsnla H24VING: SELECT ID-SUPV, MAX(TARIFA-HR) FROM TRABAJADOR GROUP BY ID-SUPV HAVING COUNT( * ) > 1
,
Resultado: ID-SUPV
MAX ( TARIFA- HR)
La tliferenria r n t r r la rliusula WHEKE y la cliusula H24VING es que la r l i u d ~ WHERE se aplira a l a s j l a s , mientras que la rliusula HAVING se aplica a los grupos. Una ronsulta puede twntener amhas rliusulas, tanto una WHEKE como una HAVING. E n tal c a w , la rliusnla WHERE se aplira primero, puesto que se a p l k a antes cte que los prrlpos e s t h formados. Consideremos, por ejmmplo. la iiguiente rev~sihna nna (,onsulta formrdada previamente: Consulta: P a r a c a d a t i p 0 d e e d i f i c i o , i c u a l e s e l n i v e l d e c a l i d a d medio d e 1 0 s e d i f i c i o s c o n c a t e g o r i a I ? C o n s i d e r e s o l o a q u e l l o s t i p o s de e d i f i c i o s que t i e n e n un n i v e l d e c a l i d a d maximo no mayor d e 3 . SELECT T I P O , AVG(N1VEL-CALIDAD) FROM EDIFICIO W H E R E CATEGORIA = 1 GROUP BY,TIPO HAVING MAX(N1VEL-CALIDAD) <= 3
Resultado: TIPO Comercio Residencia
IMPLEMENTACION
233
R E L A C I O N A L C O N SQL
Ol)sbr\rse q n r . c~inl~emntlo p o r la rlriusula FROM. la, rliius~ilasr n la&~nstrnceion r s SQL se aplirdn r n orden y 1;1 clinsula SELECT scBaplira a1 final. P o r tanto. la rliiusula W H E R E es aplit-atla a,la rrlaricin EDTFICIO. I-onlo q u r stx desrartan todas las filas clue tiencn CATEGORIA tlifrrentr dc 1 . Lab filas q u r quedan st. agrupan por TIPO. qurclando todas las filah tle u n tilbo r n u n n ~ i s m ogrlllm. Esto t w a un n u n ~ e r od e grupos -uno por catla valor de TIl'O-. La c,liusula HAVING s r aplira rntonres a rada uno d e estos grnpos p aquellos clue tienen u n nivrl d r calidatl mhximo por c n c i n ~ a dt. 3 se elin~inan. F i n a l n ~ r n t e , la r l i i u s ~ ~ l SELECT a se aplira a 10s grupo5 rrstanks.
Funciones integradas con subconsultas Una funcicin integrada (built-in) I m r d r a p a r e t w s6lo r n una clLusula SELECT o r n nna t.liusula IIAiFING. Sin embargo. una clhnsula SELECT que rontenga una funtihn intrprada p u r d r her parte t l c m a ~ u l ~ c o n s u l tAa .continuacicin be \ e r a tin r j c n ~ p l od r una tal sullconsulta:
Consulta: i Q u e t r a b a j a d o r e s r e c i b e n una t a r i f a p o r h o r a mayor que l a d e l promedio? SELECT NOMB-TRABAJADOR FROM TRABAJADOR WHERE TARIFA-HR > ( SELECT AVG(TAR1FA-HR) FROM TRABAJADOR )
Resultado: NOMB- TRABAJADOR C. Nemo P . Mason C. C o u l o m b
Ohsrrve q u r rsta suhconsulta es una suhconsulta no correlacionada, clue 1)roduce prwisainentr u n valor, el p r o n ~ r d i ode las tarifas por hora. La consulta intipa pal selrc.riona u n trabajador s610 si su tarifa por hora es mayor que el pronletlio que ha sitlo calculado por la suhconsulta. Las suhconsultas corrrlationadas se p u r d r n usar junto con las funcionrs integradas:
Consulta: i Q u e t r a b a j a d o r e s r e c i b e n una t a r i f a p o r h o r a mayor de l a d e l promedio que e l ?
de
lm
trabajadores
que
dependen
del
mismo
supervisor
E n este raso, en lugar de ralcular u n solo proinedio p a r a todos 10s trahajadores, s r dehe calcular el promedio p a r a cada grupo dr trahajadorrs q u e inforn~ana u n rnismo supervisor. Es mhs, estr cilculo se delw llevar a caho de nuevo por rada trahajador q u e estG siendo rxaininado en la consulta principal ". SELECT A.NOMB-TRABAJADOR FROM TRABAJADOR A WHERE A.TARIFA-HR > (SELECT AVG(B.TARIFA-HR) FROM TRABAJADOR B WHERE B.ID-SUPV = A.ID-SUPV
"
)
Obsrrve t p r p r d r rstar e n u n grnpo a1 r111c!a alguna vrz sc le calruli, el promrrlm (N.tlcl T ).
DISENOY ADMINISTRACION DE BASES DE DATOS Resultado: A . NOME- TRABAJADOR C . Nemo P . Mason C . Coulomb
La clausula W H E W clt. la su1)ronsulta contienc la condic%n crucial cle la twrrelacibn. Esta contliribn garantiza clur el prornrdio 5e le ralculr 5610 a acjwllos tra1)ajadort.s (pie trngan el rnisrno s ~ ~ p e r v i s copr e el t r a l ~ j a t l o qr u r rsth siendo examinado por la consulta principal.
Operaciones del Algebra relacional Corno s r h a seiialatlo anteriorrnenttl y como d r h e prol)al)lr~nentebalm o l w r v a d o , SOL parecr tener r l sahor tlrl cilrulo rrlacional run una lista de salida (la c l h u s d a SELECT) y una instrnccihn tlr c~alificaci6n(la clhusula WHERE). Sin rmhargo, SOL-92 h a irnplrrnt.ntado un u i ~ m e r od e ol)c.raciones clel hlgehra relacional, q n e sc. rstudiarhu a contin u a c i h . Especifitwnmte, la unibn, la iuterseccibn, la tlifrrenria y la r e ~ l n i i ~ens t i n dis1wnil)les rorno operadores explicitos en SOL-92. Examinemc~spor orden cada uno d e ellos. nni6n colnpatihle. Dos o inis relacionri tlnr titmt.n twlnnmai rtpivalcntrs. tanto en niiinrro coino rn tlonlinios.
Opcradores UNION, IRTERSECT y EXCEPT. Conio en el algr1)i-a rdarional. la unibn, la intrrsec:rihu y la (liferenria son o1)erarioues clue se aplican a (10s rrlacioncs a la vez. que d r b r n st:r u n i h compatible. Este tCrrnino tiene u n significado ligeramente difrrente en SOL. Dos rrlacitrnes son m i i m cornl)atil)le si tirrirn el rnisrno nuinero d r c:olurnnas y las cc~lumnasrespectivas en cada relacibn tieurn tipos de datos compati1)lrs. Es decir, tipos tle tlatos qne se p i e d a n ronvertir d r manera diret,ta d e uno a otro. P o r rjeinlblo. dos t i p s numbricos no necesitan ser itlSntieos7 p r o lino d e h e r i ser converti1)le a1 otro. P a r a la disrnsi6n d e la nnihn. la intrrst.cci6n y la diferenria usareinos 10s mismos rjemplos utilizados r n a1 Capitulo 6 p a r a rstas oprracicrnrs e n el ilgehra relacional (E'ignr a 7.4). Esta ficura muestra (10s re1ariont.s d e vendrclores, una wnsistente en vrndrdores q n e tienen algun jefr y otra d e 10s vendedores que son jefes d r alguirn. u
VEND-SUBORDINADO ID- VENDEDOR 10 14 23 37 39 44 35 12
NOME- VENDEDOR Rodney J o n e s M a s a j i Matsu F r a n ~ o i sM o i r e E l e n a Hermana G o r o Azuma Albert Ige B r i g i t Bovary B u s t e r Sanchez
ID- JEFE 27 44 35 12 44 27 27 27
OFICINA Chicago Tokyo Brussels B.A. Tokyo Tokyo Brussels B.A.
VEND-JEFE ID- VENDEDOR 27 44 35 12
NOMB- VENDEDOR T e r r y Cardon Albert Ige B r i g i t Bovary B u s t e r Sanchez
ID- JEFE 27 27 27
OFICINA Chicago Tokyo Brussels B.A.
IMPLEMENTACION RELACIONAL C O N S Q L
235
VENDEDOR ID- VENDEDOR
NOME VENDEDOR
ID- JEFE
Chicago Tokyo Brussels B.A. Tokyo Chicago Tokyo Brussels B.A.
Rodney J o n e s M a s a j i Matsu F r a n ~ o i sM o i r e E l e n a Hermana Goro Azuma T e r r y Cardon Albert Ige B r i g i t Bovary B u s t e r Sanchez
UNION. Operacihn clnr crea rl cw~,juntounihn de (Ins rrlacinnrh.
OFICINA
UNION. Supongarnos que h r qnirre ohtenrr una unica relacihn con todos 10s vt,ndedores. S r llsa la i n s t r u c c i h SOT,. (SELECT UNION (SELECT
* FROM VEND-SUBORDINADO) * FROM VEND-JEFE)
o la forrna alternativa SELECT * FROM (TABLE VEND-SUBORDINADO U N I O N TABLE VEND-JEFE)
El resultado se murstra en la Figura 7.5. Como en el ilgebra relational, la unihn de dos relacionrs es una relacibn que contiene tocias las Mas q u r e s t i n en una relacihn o en la otra. E n rste ejemplo ninguna fila aparece m i s tie una vez, a u n cuando aparezca en amhas relaciones. Sin embargo, si se usa la forrna (SELECT * FROM VEND-SUBORDINADO) UNION ALL (SELECT * FROM VEND-JEFE)
SELECT * FROM (TABLE VEND-SUBORDINADO UNION ALL TABLE VEND-JEFE)
entonces aquellas filas que aparezcan en ambas relaciones aparecerin duplicadas en la relac% union.
INTERSECT. Oprracibn qur crea rl {'onjunto intrrsecci6n de dos relariones
INTERSECT (intersrcc%n). Supongarnos q u e se q u i r r e n detectar aquellos vendedores q u e son jefes. pero q u e a su vez tienen a l g h jefe. E n otras palabras, se q u i e r r
VEND-SUBORD-J EFE ID- VENDEDOR 44 35 12
NOMB- VENDEDOR Albert Ige B r i g i t Bovary B u s t e r Sanchez
ID- JEFE 27 27 27
OFICINA Tokyo Brussels B.A.
% C O -S M N II 12 11 10
DISENOY ADMINISTRACION DE BASES DE DATOS
la intrrwc*cihn tle las filas q u c cstiii e n amhas relaciones. Se utiliza la it~struc~ciOii SQL (SELECT * FROM VEND-SUBORDINADO) INTERSECT
(SELECT * FROM VEND-JEFE)
SELECT * FROM (TABLE VEND-SUBORDINADO INTERSECT TABLE VEND-JEFE) El resultado se da,en la Figura 7.6. Como en la UNION. ninguna fila aparece nlis de una vez en cl resultado de 1111 INTERSECT. Sin eniharpo. si ha) m t.opias dc una fila en m a relaciim 1. rl copias tle 14 1111sma fila en la otra relacihn y rn <= n. entonces la intersewibn de las (10s relaciones tend& ril copias si se nsa la sintaxis: ( SELECT * FROM VEND-SUBORDINADO) INTERSECT ALL (SELECT * FROM VEND-JEFE)
.41 igiial que w n UNION, la palabra c l a w ALL indica q u e las filas duplicadas t l e h n considerarse I-omosi fursen filas independientes.
EXCEPT. Operari6n clue rrea el conjunto difereneia entre tlos relaciones.
EXCEPT.
Supongamos que se qnieren idrntificar aquellos \endedores que no son subordinaclos d e nadie. Lo que se qnisiera es sustraer la r e l a c i h \'END-SUBORDINADO dc la relaci611 VEND-JEFE. E n SQL-92 esta diferencia se l l e ~ aa caho con la operacibn EXCEPT. E n el caso de este ejemplo habria que m a r la inatrncci6n (SELECT * FROM VEND-JEFE) EXCEPT
(SELECT * FROM VEND-SUBORDINADO) El resultado se muestra en la Figura 7.7. Si se usa la sintaxis (SELECT * FROM VEND-JEFE) EXCEPT ALL (SELECT * FROM VEND-SUBORDINADO) y hay rn copias d e una determinada fila en VEND-JEFE y n copias cle la misma fila en VEND-SUBORDIN-ADO, don& m > n , entoncrs h a h r i m - n copias d e la fila en el resultado. Si rn < = n, entonces no h a b r i copias de la fila en el resultatlo.
VEND-JEFE-JEFE ID- VENDEDOR 27
NOMB- VENDEDOR
T e r r y Cardon
ID- JEFE
OFICINA
Chicago
%-COMISION 15
237
IMPLEMENTACION RELACIONAL CON SQL
J'a quta w lian introtlucido las itlras l)isic:as dr los oprratlorrs tle SOL UNION, I S T E R S E C T ! EXCEPT, analicbnioslos un potw mas d r crrca. La rrsti-iccihn d r clue los tlos oprraiidw clel)en s r r nnihn c*ompatil)lrp a r r c r algo Snrrtc:. Drspnbs tle todo, j c u h a nirnudo t e n r n ~ o scllw ver (.on rrlarionrs q n r tirnvn c x w t a m r n t r las mismas t d n n nas? Echbrnoslr 1111 vistazo a algunas motlificacionrs einthcticas y a algunos rjrmplos r n dontlr las rebtriwionrs no son c x w t a m r n t r d r rsta nianwa. Coiisiilrrrmos la siguirntr cwnsulta: Consulta: iQue f o n t a n e r o s cornenzaron t r a b a j o s e l 9 de o c t u b r e ? (SELECT * FROM TRABAJADOR WHERE O F I C I O = ' F o n t a n e r o ' )
INTERSECT CORRESPONDING,BY (ID-TRABAJADOR) (SELECT * FROM ASIGNACION WHERE F E C H A - I N I C I O
= '09110'
)
Resultado: ID- TRABA JADOR 1520
St. ha tlrstacatlo la p a r t r d r la i n s t r i w i h n SOL. que es importante para esta ~lisc*w sihn. Las tlos instrwc.ionrs SELECT tirfinen dos rrlaciones q u r no son nni6n compati1)lcs. Sin r m l ~ a r g os, r ha tonlaclo la intrrsrccibn de estas dos ronsitlrrando s6l0 las coluninas q u r r s t i n r n c~rnbasrrlacionrs. Estas columnas s r rspccifican en la c l i u s d a CORRESPONDING BY (corrrspontlir~~tlo por). E n rstr rjrmplo s r h a considrraclo shlo la columna ID-TRABAJADOR. El sistrnia reducira el rrsultatlo d r amhos SELECT a los valores en la columna ID-TR:iH4.1.4DORI h a r i la intrrsrcci6n d e rstos dos conjuntos y Cste s e r i rl resultado tle la cwnsdta. Es tlccir, el resultado s r r i 10s ID-TRABA4,J.4DOR de aqurllos tra1)ajadores q u r son Sontanrros y que tienrn n n trabajo asignailo con frcha d e inirio rl 9 d r oc:tul)rr ( i p rs rxat.taniente lo q u e s r pedia). El mismo mfoqne s r usa para 10s operadorrs U N I ~ Ny EXCEPT. La c:liusula CORRESPONDING BY va a twntinuaci6n del oprraclor para indicar las colun~nasq u e son con111atil)lt.ar n anihas rrlacionrs y q u r son las que deben consiilerarsr r n la operacihn. lTwiiiosalgunos otros ejrmplos. Consulta: i Q u e e d i f i c i o s son o f i c i n a s o t i e n e n a1 t r a b a j a d o r 1412 a s i g nado a e l ? (SELECT * FROM E D I F I C I O WHERE T I P O = ' O f i c i n a ' ) UNION CORRESPONDING BY ( I D - E D I F I C I O ) (SELECT * FROM ASIGNACION WHERE ID-TRABAJADOR = 1412 )
Resultado: ID-EDIFICIO 31 2 21 0 11 1 460 435 51 5
Consulta: iQue e d i f i c i o s que son o f i c i n a s no t i e n e n a1 t r a b a j a d o r 1235 asignado a e l ? (SELECT * FROM E D I F I C I O WHERE T I P O = ' O f i c i n a ' ) EXCEPT CORRESPONDING B Y , ( I D - E D I F I C I O ) (SELECT * FROM ASIGNACION WHERE ID-TRABAJADOR = 1235 )
I
DISENOY ADMINISTRACION DE BASES DE DATOS Resultado: ID-EDIFICIO 21 0 11 1
Probahlemrnte. el lertor ya hahrli notado que estas consdtas son relativamente f i r i les d r formular. Se h a n identifirado 10s snhconjuntos apropjados de tuplas d r las dos relar i m e s y luego se ha aplicado el operador conveniente UNION, INTERSECT o EXCEPT. Ebto afiade u n poder prietiro c*on~lderd)le al lrngnajr. ya clue m w h a gente delw enront r a r mlis ficil d e formular ]as consultas usando rste rnfoquc. Considerr. por cjt.iiip1o. la c o n d t a anterior usando el "vlrjo" rnfoqur d e SQL: SELECT I D - E D I F I C I O FROM E D I F I C I O WHERE T I P 0 = ' O f i c i n a ' AND NOT EXISTS (SELECT * FROM ASIGNACION WHERE EDIFICIO. ID-EDIFICIO AND ID-TRABAJDOR = 1235)
= ASIGNACION.
ID-EDIFICIO
Esta soluc-ihn utiliza nna subconsnlta c-orrelacionada (.on r l operador NOT EXISTS. No hay q u r i r mliy lejos p a r a darse w r n t a d e q u r la mayoria d e la grnte encwntraria mu(-ha mayor dificultad en formular esta solucibn que en la que usa EXCEPT. Observe q u r la c*onsultapodria resolverse con la antigua sintaxis SQL. lo que no qiiierc decir que sea flied.
El o p e r a d o r JOIN. SQL-92 tienr 1111numero de operaciones explicitas de reunihn (jotn): la r e u n i h natural ( n a t u r a l join). la reriniirn interior (inner join), varias reunionrs externas (outer join), la reuni6n uni6n (union join) y la rruni6n cruzada (cross join). Se consid e r a r i n solamente la reuniirn natural y la interior. NATURAL JOIN. Operaci6n que c20necta lay relariones ruando la5 rolumnas conlunes tienen iguales valores.
Natural join (reunicin natural). Semintic,amente, la reunihn natural tiene el misnio significado en SQL que el lilgrhra relacional, Supongamos que se quiere h a w r una reuniirn tle las tablas TRABAJADOR y ASIGNACION. Esto se logra con TRABAJADOR NATURAL JOIN
ASIGNACION
El resultado d e esta instrucri6n s e r i la misma tabla que la que obtendriainos w m o resultado d e la i n s t r u c c i h SELECT T.ID-TRABAJADOR, NOMB-TRABAJADOR, TARIFA-HR, I D - E D I F I C I O , FECHA-INICIO, NUM-DIAS FROM TRABAJADOR T , ASIGNACION WHERE T . ID-TRABAJADOR = ASIGNACION. ID-TRABAJADOR
OFICIO,
ID-SUPV,
excepto que la primrra columna podria llarnarsr ID-TRABAJADOK en lugar d e T.ID-TRABAJADOR. E n general, la reuni6n natural causa que las dos tahlas hagan la reuniirn en todas las columnas comunes. pero esas columnas se incluyen en el resultado una sola vez. E n la relaciirn resultante. las columnas comunes aparecen primero seguidas d e las restantes columnas de la primrra relacibn y luego las restantes columnas d r la srgund a relaciirn.
IMPLEMENTACIONRELACIONAL CON SQL
JOIK USING. Oprrac*iOnque rontbc.ta las rclaciones (wando las rolunlnas romunes designadas t i r w n iguales valores
239
Join USING (reunibn usando). Supongarnos clue s r ticnen dos rrlaciones A y B y que Gstas tienen columnas comunw K, L, M y N. Supongamos tamhikn q u r no se quiere hacer una reunihn con todas las c:olumnas comunes, sino s61o con las columnas L y N. Esto se puedr hacer con las instruccihn A J O I N 6 USING ( L , N)
Esta instruccihn t i m e el mismo efecto clue la instrucci6n SELECT si en la clausula S E I X C T se listan L y N prirnero srguidos d e las rcstantes columnas de A y las restantes colnmnas de B. La cliusula WHERE tle esta instruwi6n tendria la forma W H E R E A . L = 6 . L AND A.N = B.N
JOIN OK. Oprraci6n que ronerta las relariones (wando ocwrrc una coudicicin.
Join ON (reunibn cuando). Si se desea usar una condici6n rnis gcneralizada para la reunicin de dos relaciones, se puede usar esta Eorma. P o r ejemplo, supongarnos que queremos hacer la rtrunicin d e TRABAJADOR consigo misma conectando ID-TKABAJADOR con ID-SUPV p a r a o h t r n w informaci6n sohre el supervisor d r cada trabajador. S r puede hacrr lo siguientr TRABAJADOR T J O I N TRABAJADOR SUPV ON T.ID-SUPV = SUPV.ID-TRABAJADOR E n estr vjemplo se h a n creado dos copias tle la relaci6n TRABAJADOK y s r lrs han dado 10s alias T y SUPV, r r s ~ ~ e c t i v a r n m t La c . cliusula O N contiene m a instr11cci6n de condicihn tle q u e el ID-SUPV tle la copia T dell(: ser igual a1 ID-TRAB.4J.4DOR dc la w p i a SIIPV. Se v e r i n ahora algunas variac-iones del ejemplo precedentr. E n lugar de usar tahlas cwncretas o nombres d e vistas d e tahla, en urla instruccicin d r rruni6n se p ~ l e d r n nsar tablas derivadas de otras operaciones. Ilustraremos este enfoqur con varias consultas C o n s u l t a : Obtener l a a s i g n a c i o n y 1 0 s d a t o s de 10s t r a b a j a d o r e s F o n t a n e r o s que comenzaron sus t r a b a j o s e l 9 de o c t u b r e .
(SELECT * FROM TRABAJADOR WHERE OFICIO
= 'Fontanero' )
NATURAL J O I N
(SELECT * FROM ASIGNACION WHERE FECHA-INICIO
= '09110' )
Se puede rrl)servar q u e esta consulta es casi idkntica a la que se us6 p a r a ilustrar el oprrador anterior d e INTERSECT. La diferencia aqui es que, en lugar d r tener una lista d e ID-TRAHAJADORs, ohtenemos toda la informaci6,n relrvante pcrrque las tuplas de TRABAJADOK se reunen con las tuplas de ASIGNACION. C o n s u l t a : Obtener 1 0 s d a t o s s o b r e a s i g n a c i o n e s , t r a b a j a d o r e s y e d i f i c i o s p a r a a q u e l l o s f o n t a n e r o s que comenzaron 1 0 s t r a b a j o s e l 9 de o c t u b r e en e d i f i c i o s p a r a r e s i d e n c i a s .
(SELECT * FROM TRABAJADOR WHERE OFICIO
= 'Fontanero'
)
NATURAL J O I N
(SELECT * FROM ASIGNACION WHERE FECHA-INICIO
= '09110' )
NATURAL J O I N
(SELECT * FROM EDIFICIO W H E R E TIP0
= 'Residencia' )
E n este caso, las columnas de la reuni6n ID-TRABAJADOR r ID-EDIFICIO aparec e r i n prirnero en el res~;ltado, seguidas dr las restantes columnas de las relaciones TRABAJADOR, ASIGNACION y EDIFICIO en ese orden. Si esto nos diese miis informaci6n q u e la desrada, entonces se puede escribir esta instrucci6n completa en la cliusula FROM tle una instrucci6n SELECT que especifique las columnas q u e se deseen:
DISENOY ADMINISTRACIONDE BASES DE DATOS SELECT NOMB-TRABAJADOR, FECHA-INICIO, I D - E D I F I C I O , D I R - E D I F I C I O FROM ( SELECT * FROM TRABAJADOR WHERE O F I C I O = ' F o n t a n e r o ' ) NATURAL J O I N ( SELECT * FROM ASIGNACION WHERE FECHA-INICIO = '09110' ) NATURAL J O I N ( SELECT * FROM E D I F I C I O WHERE T I P O = ' R e s i d e n c i a ' )
Operaciones de modificacih de la base de datos SQL Ibrinda t r r s olwracionrs para cwiihiar la hasr tlr datos, INSERT. llPD ITR > DELETE:. q u r permiten aiiailir filas. c.arnl)iar los ~ a l o r r sen las filas y 1)orrar filas. rr+lwc.ti\anicbntr.tlc nna tlrtrrlninada rc~lacihnr n la h a w tlr tlatos. S r rstndiari catla ana d e ellas por styaratlo.
I?tSERT. Oprracihn qucLV ~ L I clue + ~ 51%aiiaclan fils- a una wlaciOn.
INSERT. La oprrac*ihn lNSEKT (insertar) lwrrnite insrrtar r n una rrlacihn nna fila uiediantr la rslwrificatiOn dv lo&v;dorrs dv cada una d c las coluninas tlv la fila. o insrrtar un gr111~) de filas rspcific;~ntlonna conwlta cluv nos daria el grupo dv filas a insertar. INSERT INTO ASIGNACION ( ID-TRABAJADOR, VALUES ( 1 2 8 4 , 4 8 5 , 1 3 / 0 5 )
ID-EDIFICIO,
FECHAN I-C IO I)
Ehta instruec4m inserta una sol,^ fila en ISIGN4C:ION. Los noni1)res tle las columnas d r las q u r se tlarin 10s \alores r t ~ * l w t ios \ se dan entre parbntesis a c.ontinuacibn dc.1 nc,mhre i!e la tgl~laen la qne sc. a a I I ~ I I Y la ~insrrci6n. I. Pnesto clue sr ha oinititlo la colulnna NIIM-DI4S. w pontlri a n valor rit~lo( * o m )valor d e d i c . 1 ~cwllimna ri1 la fila a in+tartar. S ~ i p ~ n g a m o ~sr( ~hau creatlo c m a n w v a relacihn d r n o n d ~ r rEDIF'lCIO-2 roniistente en las columnas ID-EDlFlCIO. TIPO y NIVEL-C Q L I D U ) J q u r se drsea pohlar rsta relac-ibn con las filw provenirntc,s de EUIFICIO q n r tengan categoria 2. En rstr caso utilizarianms la wgnntla forina dtl la instrnccihii INSERT. INSERT INTO E D I F I C I O - 2 SELECT I D - E D I F I C I O , T I P O , NIVEL-CALIDAD FROM E D I F I C I O WHERE CATEGORIA = 2
UPDATE. 0prrac:icin quc r a r n l h 10s valorcs ck las roluninas en las filas.
UPDATE. Las operat*ionesUPDL$TE(actualizar) se aplicw~a t o d : ~las filai clue satisfa(*enla c.1iusula WHERE d r la instrucci6ri UPD.4TE. Si se quivre incwmrntar (31 n n 5 poi100 el salario d r todos los trahajadorrs clue trahajan para el suprr.&or 1520, s(, nrcrsitaria la instrucci6ri signirnte: UPDATE TRABAJADOR SET TARIFA-HR = 1 . 0 5 WHERE ID-SUPV = 1 5 2 0
TARIFA-HR
Si no huhiesr cliusula WHERE, rritontsr~la oprracihn 5r aplica a totlas lab filas de la rrlaci6n. Por ejemplo. si sr ipisiera incremrntar r n rl 5 por 100 el salario d r cuda traI)ajador, lo qut. habria clue hacer es on~itirla cliusula WHERE dr la instracc~ihnLPDATE anterior.
DELETE. Operacihn t p e ( p i t a filas de una wlari61i.
DELETE. Las operaciones d r DELETE sr aplican tarnhibn a totlas las filas q u r satisfawn la cliusula WHERE r n la instruccihn DELETE. Si no ha) cliusula WHERE, sr horran todab las filas d e la relacibn. Sup6ngasr que todos 10s trabajadores drl supervisor 1520 han sido desprtliclos y h r quirren entorires l w r r a r d t ~la base d r datos. La instrut*t.i6n iiguiriitr hace rste trabajo:
IMPLEMENTACION
R E L A C I O N A L CON SQL DELETE FROM TRABAJADOR WHERE ID-SUPV = 1520
Usar SQE con lenguajes de procesamiento de datos El rnl'oqor rc~latiotialde nsar una sinq)lr instruc*ciOnp a r a 1na11il)ularcwnjniitos tlt, filah rll m a rrlarihn (vi un a v a n w s o l ~ r rlos mC.todo?itie manipnlati6n tlr 1111 1.rgi8tro-de-('adil-vez tlr los lengnajrs trailic*ionalrs. Sin eiiil)argc), pursto q n r SOL intvnta s r r ntilizatlo en gram i r st- ~ ~ w d a n tlrs organizationrs q n r ilsan Irnguajcs tradic:ionalcs, r s nec.esario ~ ) e ~ i i i i tclue intc.grar instruc~ionrsSOL t.11 progranlas escritos en 1t.nguajes tratlicionalrs. Esto sr logra con 1:1 SQIJ empotrado (ernbedrlerl SQL). El SQL e n ~ p o t r a t l o(embedded SQL, tambibn se conow c o n ~ cSQL ~ c~mOebirlo)nos (la nn conjunto de instrut*tiones cine s r nsan para invluir instruc*ric)nrsSQL tlrntro d r programas esrritos en lrngnajrs c o n ~ oCOBOL, C ! Pascal (cjne son clenoniinatios lenguaje anfitribn). Estas instruccionrs int.lnyen instruc*cionesd r srfializaci6n qrte Ie notif'ican al 1rep1-ocewdorque lo qut, sigrrr se c1c:l)c rermplazar por llaniatlos a las I-utinas dcl SGRI). Tanhibn st: inrluyrn facilidacles especiales. Ilaniadas cursorc..s. las cwalrs perniitcw 1111 1)rotwsamiento t i p simple-rrgistro sol)rr 10s rrsultatlos clr una wnsnlta. El signirnte rs u n ejeml~lode c:htligo SOL enipotrado: EXEC SQL DECLARE TRAB-ASIG CURSOR FOR SELECT * FROM ASIGNACION WHERE ID-TRABAJADOR = ID-TRABAJADOR-SOLICITADO END - EXEC
Estv c4tligo podria rtupotrarse en un programs esrrito r n COBOL w m o l r n p a j e anfitriim. La primera linea (EXEC SQL) y la illtinla linea (END-EXEC) son iiistrl~rciones d e seiializari6n ('up statements) quc indican clue la5 lineas contenidas rntre rllas dos son c6digo SOL. El programa COHOL clue contienr c.bc1igo SQL srria p-ocesatlo 1)or u n prrprocesador antrs de srr c-ompilatlo. El preeomt~ilaclorreconore la insti-ucciiln cle sciializati0n ! rerniplaza 6stas con llan~adasa 10s s u l ~ p r o g r a ~ n adel s SGRD clue tlurante la ejtwrtibn tratan las instrnccionrs SOL. Cuando t.1 programa COBOL se co111~)ile.rl comldatlor ignora estas instrnc.c.ionrs d r llaniatlo y con~pilael resto drl programa. enrsor. Una farilitlatl El rrsto tlr.1 ejrniplo cwntienr nna initrnccihn SQL p a r a drclarar u n cursor. Un curdcl SQI, incrwstatlo en la s o r es c~oiiionn arrlii\o. c ~ ~ (wntmiclo j o se p n r r a en tiempo de vjrcuci6n. Ol~sclrvecjue la q11r sc ahnacemn los drf'inici6n cle a n crwsor inclujy rrna instrucci6n SELECT. La cliusula R HEKE referencia rcs~~ltatlos ( 1m ~a a rrna rolurnna de 4SIGNACION (la colunina ID-TR4RA.JiDOR) y rata11lec.e clue una ficonsulta SQI, Imra su la delwria srlrccionariv si 11)-TR4B 1.J4I)OR cs igual a una variahlr del programa ~dtcriorl)roresar~~itwto. COHOL (en vste caso, ID-TK4BAJ4DOR-SOLICITADO). No s r sc.lecciona ningirn dato 11asta clue el t w w r sr u0re por una instruwi6n intlepcndientr. La instrucci6n O P E N instruccici~rOPEN ( a l ~ r i el r cursor) cursor. Instrurt.iones SQL q u r caniall '1"' 1' OPEN TRAB-ASIG SGBD I)rocese una consulta 4 "aln~acrnc"el c a u s a r i cjue rl SGBD ejrcnte la instrut:c:ihn SELECT. Las f'ilas indivitluales cjur se ponrn rrsnltado en cl c.lu.sor. en rl cursor al e j r t x t a r el OPEN s r pnedrn rtvwperar rjrcntando instructciones FETCH, q u e es aniloga a nna instrnrcii,t~READ. Taln1)iC.ns r ])rindan otras instrnccionrs para perinstruccicir~FETCH. mitir artualixar y h o r r a r datos d r las tal~lasde la base d r datos. La instrncci6n CLOSE Una instrucribn clue quita 10s clatos clue "rstiin en rl rursor"'. cle modo clue dste puetlr s r r abirrto de nurvo asotonia una fila a partir ciatlo con nltrvos datos cpr reflejen otros contenidos de la base de datos. tle un r u r w r qlre ya ha sido abirrto.
'
DISENOY ADMINIsTRACION DE BASES DE DATOS
El SOL emptrtrado l ~ r i n d la a interfaz necrsaria p a r a un nso exitoso tlr SQL en (11prowsamiento por lotes clr gran (:seala o en programas m linea de grandrs organizacioncs tlr proc:c:samiento d e datos. Con el tirmpo rstas nrcesidades prohahlemrntr tlrcwzc-an cwn el surgimiento d r nurvos lenguajes clue sran t:apacrs d e h a c r r n n uso total (klas psihilitlaclrs d e prowsarnirnto d e u n a relacibn-a-la-uez d e SQL.
vistas talda base. ITna tahla q11r wntirnc inl'orniaciin 1)isic.a o rral. \ista. Una drfinicihn tlr m a porciin restrin$da de la hasr de datos.
A l principio de este capitulo s r mostrir c6mo s r tlrfinrn las tablas en nn esquerna tlr base dr datos. Estas tablas se llaman tablas base porqne (.ontienen 10s datos 1)hsit:os tlr la hase tlr datos. Partrs dc estas tablas, asi como informac*ih drrivada de las mismas, puetlrn tlrfinirsr en vistas dr la hasr de datos. Estas vistas tam1)iCn s r tlrfinrn w m o parte del esqurma dr la hase d e datos. Una vista (vipw) rs comn una 'Lv(mtana" e n una porciOn tlc la base d r datos. Las vistas son utiles p a r a mantener la confidcmcialidad a1 rrstrinpir el aweso a partes sr1ec:c:ionadas d e la hase tle datos y para simplificw tipos tle consultas q u r Sean utilizatlos con frecurnria. P o r c:jemplo, para p r r s r r v a r la confidencialidad, podrmos querer c r r a r una vista q u r murstrc la informacihn sol)rr los trahajatlorrs, exrepto su tarifa p o r horas. CREATE VIEW B-TRABAJADOR AS SELECT ID-TRABAJADOR, NOMB-TRABAJADOR, OFICIO, ID-SUPV FROM TRABAJADOR
especificacihn d c consulta. Drl'iniciir~de una consnlta qur ir usa en una definiri6n cle vista. declaraci6n de cursor u otra instrucci6n.
E n este ejcmplo, H-TRABAJADOR es el nornlm-e de vista clue se ha (*reatlo.El nomh e de la vista puedr rstar seguitlo tlr los nomhres de las columnas en la vista encrrrados r n t r c p a r h t e s i s . E n rste caso s r han omitido 10s nom1)res d e columnas, p o r lo clue las columnas cle la vista t o m a r i n 10s mismos nomhres de las columnas d e la relaciirn d e la m a 1 se forma la vista. La parte de esta instruc:c:iin d r vista clue sigue a la palabra "AS" se denomina especiiicaci6n de consulta (query specijication). Cualquirr consulta q u e sea legal p u r d e aparecrr en la definicicin de una vista. El sistema no genera realmente los valores d r 10s clatos p a r a B-TRABAJADOR hasta q u r no se haga acceso a bstr. E n ese mommto s r rjecuta la especificaciOn q u r define a B-TRABAJADOR, creindosr B-TRABAJADOR a partir d r los datos yue existen en TRABAJ.4DOR m el momento d r la ejrc:u&n. P o r tanto, 10s datos dr una vista camhian c h i micamente en la meclida que cambien los datos m su tabla hasr su1)yac:rntr. Supongarnos que con frrcurncia estanltrs interrsados en informaciirn sobre 10s rlrctricistas, 10s edificios a 10s que e s t i n asignados y las fechas de comienzo d r las asignaciones. Esta definiciirn d e vista serviri p a r a estos intrrrses: CREATE V I E W ELEC-ASIGNACION
AS
SELECT NOMB-TRABAJADOR, ID EDIFICIO, FECHA-INICIO FROM TRABAJADOR, ASIGNACION W H E R E OFICIO = ' E l e c t r i c i s t a ' AND TRABAJADOR. ID-TRABAJADOR
= ASIGNACION. ID-TRABAJADOR
Si se hicirse acceso a ELEC-ASIGNACION, el sistema primero generaria 10s valores d e sus datos a partir d e la definicih,anterior d e la vista. P a r a la hasr cle datos d e nuestro rjernplo, la vista ELEC-ASIGNACION se veria como sigue: ELEC-ASIGNACION
NOMB-TRABAJADOR
ID-EDIFICIO
FECHA-INICIO
M . Faraday M . Faraday C . Coulomb
312 515 435 460
10/10 17/10 08/10 23/10
C. Coulomb
IMPLEMENTACION RELACIONAL C O N SQL
243
Se pueden consultar las vistas. Supongamos que estamos interesados en conocer 10s electricistas asignados a1 edificio 435.
Consulta: i Q u i e n e s son 1 0 s e l e c t r i c i s t a s asignados a1 e d i f l c i o 435 y cuando comenzaron a t r a b a j a r ? SELECT NOMB-TRABAJADOR, FECHA-INICIO FROM ELECASIGNACION WHERE I D - E D I F I C I O = 435
Resultado: C. Coulomb 0 8 / 1 0 El sistrrna primero c r r a la relari0n como sr esplici, y liiego ap1ic.a la consiilta a la rrlaci6n. Tarnl)iin, p a r a definir una vista, se puede usar el rrsultado tlr una operacibn d r agrupacihn. Ech6mosle otro vistazo a la consulta tlefinida a1 principio q u r nos d a b a n 10s suprrvisores junto con la tarifa mixirna de 10s trabajadores que informaban a estos supervisorrs: CREATE VIEW SALARIO-MAX ( ID-SUPV SELECT ID-SUPV, MAX (TARIFA-HR) FROM TRABAJADOR GROUP BY ID-SUPV
,
MAX-TARIFA-HR
) AS
Observe que en este ejemplo se h a n incluido 10s nornbres de las columnas d q l a vista. Estos siguen inmediatarnente a c o n t i n u a c i h del noni1)re de la vista (SALARIO-MAX). Fue necesario incluir nornbres de columna en este caso p y i l u r una de las columnas rs el resultado de un cdculo usando una funcihn integrada (MAX) y no tiene nomhre. Se puedr consultar esta vista p a r a determinar, por ejemplo, quP supervisores tienen trabajadorrs clue reciben una tarifa por horas por encima d e una cierta cantidad.
Consulta: i Q u e s u p e r v i s o r e s t i e n e n t r a b a j a d o r e s que t i e n e n una t a r i f a p o r h o r a p o r encima de 1 0 s $12? SELECT ID-SUPV FROM SALARIO-MAX WHERE MAX-TARIFA-HR
> 12
Al procesar esta consulta, el sistema crea primero el resultado d e ejecutar la especificacibn d e la vista: SALARIO MAX ID-SUPV-
MAX-TAR IFA-HR
Luego le aplica la consulta como tal a este resultado: ID-SUPV 131 1 1520 3231
Restricciones sobre consultas y actualizaciones de vistas Una vista que sea definida con m a cliusula GROUP BY en la especificaci6n de la consulta se denomina una vista de grupos (grouped view). En SQL ANSI e s t i n d a r hay varias
DISENOY ADMINISTRACION DE BASES DE DATOS
li~nitacionesp a r a las cwiisultas sollrr vistas tlr grupos. Estas liiiiitacionrs son (Mdton y Sinion. 1993, 1). 196):
1. La eliusula SELECT d e nnu t-onsulta sohrr una vista d e grupos
110 piirtlr t m t ~ uiia funcihn intrgrada. 2. No sc. purtlr haerr una rtwnihi (join) tlr uiin lists (I(. gl-upos cwn riing~lliaotra ~ i s t ao t a j h . 3. I1ria eonsiilta s ~ h r runa \ista d c grupos 110 purtlr triiri- a 511 \cz t.lhui111as G l i O L P BY o H \\ ING. 4. Uua i u 1 ) c o n d t a n o 1)urdv rcd'rririr a una bista d r grupos.
Los usuarios drseali (.oil frtwicmcia a(-tualizarla IMW dc datos hacirndo rrfrrriic.ia a 1;is kistas. Una vista s r 11uedr artnalizar shlo si sii rsl~c~ificariciri d e c o n s d t a cuniplr cwii (Datr y Darwrn. 1904. p.174): 1 . Tirnr uiia rlhlislila SELECT q u r cwntienr shlo iioiiiI)~-t~s d r columnas ( r s drcir. ~ i tirnr o iiiiigiiri eilrulo ni ninghn valor literal) y 110 contielie la palal)ra cala\c 1)ISTINCT: 2. Tirnr 4 1 0 m a rrfrrrncia a t a l h cbnla elinsula FROM (r5ta rrfrrei1eia no purtlt* incluir uinguna d r las oprracionrs del ilgrljra rt~lacioiialIJNlOh, INTERSECT, KX(:EPT. J O l h ) . Dirha tabla r n la c-liiiisnla FROM tlrlw s r r o uua tallla h a w o una kista actnaliza1)lt.: 3. No ticnr sul)cousulta t.11 su elii~siilaWHERE r p r rrfirra a la tallla cri la cliusula FROM d r In c.oi~ii~lta ~~rincipal: 1. No (*onticmeuiia cliiusula GROUl' BY o HAVING. P t ~ siipi(:sto r cjur las tahlas hasr si piirclru actualizarsr sin rstas rrstricciorirs. Si una vista no prrinite actualizac.ionrs, rntoncrs s r purde accrder a las tahlas hasc propiainrntr tlichas p a r a logral la actua1izac:iOn tlrsrada.
esquema IJuo tlr los critrrios tlr Codd para clrrir q u r un SGBD sra completamrntr rrlacional (Cotltl. lOX5e) r s quti la informac.i6n tlrl sistrnia q u r tlrsc-rilw la hase de datos rstG iiioiitcwicia taml)ii!ii rn tahlas relacionalrs, a1 igual clue otros valorrs tlr datos. Ksta inforiiiaciim tlcwripnirtatlnto. Ir~l'c~riiiac*ii,n t i u . o metadato, s r niantirlir nornialmen~rrn url diwionario d r datos. CJna vrrsihn d r clrscriptir ;I so1)rr las rstr clit*ciouariod r datos sts Ir llania esqueula tle iltformaci611. El rsqurma cle inforn1aci6ii I)asrs tIc (lator. tlr SQL-92 cumplr, rii sus elementos rsrntialns, con rstr rrqnisito, pucsto cpie r s t i rstruc.turado ronio un conjuiito tlr vistas (posil)ltmt.iitr s6lo hipotGtic*;~s)tlv taldas, eatla fila tlr las twalrs nos d a informaci6n descriptiva s o h e 10s ohjrtos tlc In hasr d r tlatos. tales como escl~iri~ia tlc i11forluaci6n. I~squcnia utia tallla, una columna o nn dominio ( v r r Date y Darwrn, 1994). E n csta srcci611 s r darh ~ I 1111 I cathlogo tpr m a dt:seripcii,n 11rrvr tlcl rsqliema d r inforraaci6n tie SQL-92. cwtltirtw 111t.tadatos. Como s r sriiali, a1 principio dcl c*apitulo,SQL-92 tlt:finr 10s catilogos couio cwlrc.ciontxscon nonihrr tlc rsquemas tlr has(: tlr datos. Cada rsqurma en u n catilogo tirnr tin tierto "dueiio". q u i m posil)lrmrntr origin6 el esqurma. Si un catilogo drtrrminado tivnt. u n cicrto uilmrro tlr csquenias q u r a su vez estin drfinidos y son posesi6n d r una varirtlatl tlr nsuarios. rntonces el catilopo tauihiCn contirnr un rsqurlna eslwcial. el INFORMATION-SCHEMA, clue drscri1)r a t o h 10s esqurmas d r l catilogo, inclii~i!utloloa 61 mismo. Dr at.ucrdo a SQL-92 rstiindar. rstr rsqacma tle informacihn rralmentr necrsita no m i s qiir un cwijunto d r vistas tlc algunos dit:cioii;lrios de datos clue tlrprnclrn de la implrtnrntariim. Pursto que hay niuchos SGBD comrreialrs diferentes eu el mercado, cada uno tlr 10s cualrs usa diferrntrs enfoques p a r a tlrfinir metadatos, tirnr srntido (conio selialan Date y Darwen) q u r el r s t i n d a r requiera solamente que el INFORhfrZTION-SCHEMA sea un conjunto de vistas clr las tahlas tlr mrtadatos que rralmrntc: el SGBD tenga clrfiniclas.
IMPLEMENTACION RELACIONAL C O N SQL
245
Si nn SGBD intrnta twmplir ron r l rstintlar d r SOL-92 pnrtlt. tlrfiiiir los inrtadatos a su Inanrra .! garantizar solanitwtr tlrfinir rl INFORM,V~ION-SCHEM-11.n la forma (:stantlar. Pursto tints r1 11suario no p n c d ~ ,d r ninguna mancra. actualizar dirrc.tamcwtr las taldas d r mrtatlatos. shlo h a w falta q u r el esqurma dt. informatihn ofrrzca las vistas nrcrsarias para t p r el usuario puctla c o n s ~ ~ l t ya rvrr t*i)mor s t i rstrlit'tilrada la hasr d r datos. Las vistas en rl rsqutma tlr informatiibn tirnrn nomlwrs y fnncionrs prrdrfinitlas. Antes tlr tlar una Lista d r las vistas sriialrmos lo sipuirntr. Dado q n r el t w p : i n a rs m a t ~ l r c c i htlr jiistus. cualquirr usuario clue las a t w d a v r r i solamrntr rl rrsultado d r nna twnsulta sohrr 1111 grupo invisihlr tlr tal)las bast,. P o r lo tanto, para tlar nilis s r g ~ i r i t l a dla~ vista sit,mprr r s t a r i drfiiiida con rt:sprcto ol usuario atatnal tlrl sistrma, ruya itlrntidatl r s t i r n la variahlr CURRENT-USEK. d c o n t i n m ~ i 6 ns r d a r a una lista de rstas \ist:rs juiito con una rxplitwi6n h r v r tIr sus funtiones ( v w Date y Darwrn, 199~1,y Mrlton y Simon. 1993. para mas dt.talles).
IhFORM:47'10N-SCHEBIIA-CL4T_1LOG-NAME. Rralmrntt~rs una talda 1)asr formada por una sola fila y u m sola eolunma q u r contirne el nomhrr drl rsquenia. SCHEMATA. Contienr 10s n o m l m s d r todos 10s rsqummas crrados por r l usuario actnal. DOMAINS. Da todos 10s tlominios accrsihlrs por el usuario actual. TABLES. Da las talkis y las vistas accrsi1)Irs p o t el usuario actual. \.-IEwS. Lista las vistas accc~si1)lespor el usuario artual. COLUMNS. Itlrntifica las t:olun~nasd r las tahlas listadas en la vista TABLES. TABLE-PRIVILEGES COLLJMN-PRIVILEGES USAGE-PRIVILEGES 1)ORIAlN-CONSTRAINTS. Contienr las r r s t r i c t i c ~ ~tlr ~ t .todos 10s dominios t:rt:ados por el nsuario actual. TAKI.1-(:ONSTRAINTS. Dtr las restriccionrs solwe las tahlas I~asescrradas por el osuario artual. REFEKENCIAL-CONSTRAINTS. Lista las rrstricrionrs refrrencialrs propiedad dcl usuario actual. CHECK-CONSTRAINTS. Lista las rrstrit:t:iones d r chrquro propirdatl del usnario actual. KEY-COLUMN-LiSAGE. Lista todas las t d u m n a s clue se usan en (:laves cantlidatas o r n claves extrrnas en t a l h creatlas por el usuario actual. ASSEHTIONS CH.4K.4CTER-SETS COLLATIONS TRANSLATIONS VIEW-T.4BLE-USAGE. Idrntifica la tablas solwe las cualcs clrprndrn ]as vistas propiedad del usuario actual. VIEW--COLUMN-USAGE. 1dentifit.a las colurnnas de las que deprndrn las vistas propiedad tlrl usuario actual. CONSTRAIN'T-TABLE-USAGE. Lista las tablas, propiedad tlrl usuario actual. (pie e s t h referidas por rrstricciones. (:ONSTRA41NT-COLUMN-USAGE. Lista las columnas d e las tahlas, propirdad del usuario actual7 q u r estin rrfrridas r n las restrit:t:iones. COLUMN-DOMAIN-USAGE. Da las columnas q u e rsthn definidas en tCrminos de dominios clue son propirdad del usuario actual. SOL-LANGUAGES Las vrntajas d r la estructura relational del rsquema del sistema dr informacibn t1rl)en q u r d a r claras. Se puedr usar un lenguaje de consulta muy potentr p a r a formular uria gran variedad dr preguntas sohre la rstructura de las base d e datos d r l sistema. Los primeros sistemas q u r no eran rrlacionales no tenian automatica~r~ente rstas ventajas.
DISENOY ADMINISTRACION DE BASES DE DATOS
En este c y i t u l o sf, h a n estudiado aspec.tos de las implementaciones d e bases d e datos relacionales con cl lrngnaje de eonsulta SQL. St: revisi, de forma cwncisa el tlesarrollo hist6rico tle 10s sistemas SQL. Se mostri, c6mo se pueden tlefinir los esqwrnas de base de datos SQL. 'l'amhibn s r analizi, en detallr el lenguaje d r manil)rrlaci6n tle datos de SQL y se d t w taci, la tiefiniciim tle vistas. Por hltimo se vio una breve introduc~icina1 rsqurma de informcici6n t l d sistema. SOL fue creado por IBM tiurante 10s aiios setenta t-omo parte dt.1 proyrcto System K. Desdt. a t p e l tiempo ha sitio implementado por una gr;in varietlatl de elnpresas comerciales. twmo el lenguaje tle sns SGDB relacionales. E s t i clisponihlc tanto e n entornos d e grantles t.onip~~tadorrs conio en entornos d r microcom~)utatlorf.sy h a tlevcnitlo en el estintlar ANSI para Irnguajes relacionalrs. 1,os catilogos tle SOL son coiet-cioues con nornhre d e 10s esquemas, catla uno inrluyc on nirmero de csqurmas creados por el usuario, asi como un esquema tle informaci6n que cwutiene metadatos d e 10s rst~uernasen el catilogo. Los esqnemas de has? tle datos en SQI, scBtlcfinen con las 6rtlenes CRE.ZTE SCHEM.4. CREATE DOMAIN y CREATE TABLE. Fktas Ortlenes drfinen 10s esquemas rsl)ct.ifiros y sus dueiios, 10s dominios, las taljlas y las twlumnas. Los dominios se usan t-orno t i p s d r datos en las drfiniciones de las columnas. Tarnhibn se pueden tlefinir restriccionrs tanto para cwlumnas intlivitluales como p a r a tahlas. I,as restricciones i n c h y e n restricciones tle (:laves primarias y vlaves externas. 'l'amhibn se puetlen tlefinir rcstricciones CHECK m i s genrrales. I,a rnanipu1ac:ihn dr datos de SQL incluye todas las c*apatitladrstlel i l g h r a relacional tlvfinidas por Codd, aunque sn f'ormulacicin original e s t i hasada en la estruc.tura tld cilcalo s t l d Algebra rt.lacional. Sin embargo, SOL-02 inchye operaciones que son ~ n &tliret~tamentt~ relacional, triles twmo la reunii~n(join), la unicin, la intersec.ci6n y la tlikrenria. Atlicionalmente, SQL hrintla t:apwitlatles para agrupar las filas sohre valores tXncwmun de una determinatla t:olnmna y l)roportiona tam hibn funtiones clue prrmitcn hacer cilcalos estadistieos s o l r e estos grupos. La manipulacicin tle tlatos tamhibn permit? la insrrcibn, la actualizacibn y el horrado d r filas inilividuales, asi como tle grupos de f i a s . Por ultimo: se pueden escrihir instrucciones SQI, tlentro tle programas tratlicionales escritos en COHOI,, C o Pascal. Mediante los cursores, las instruc*c*ioncsSOL pueden general los resdtatlos de consultas, dv modo clue puedan ser procewtlos fila por fila por el progranla escrito en el lenguaje anfitrihn. Las vistas se definen en el rsquema d r la hase de datos nsando el lenguaje d r consulta tlv SOL. Las vistas pueden consnltarse !. Imjo detrrminadas restricciones, pnedrn tamLibn at*tualizarse. El esquema tle informaci6n del sistema en u n sistema verdatleramente relacional rlrlwria estar estrut:tura(lo como una hase d e datos relacional. H e ~ n o svisto (-6inoel c y n e ma d r informacibn d e SQL-92 satisface este requisito. Los sistern~c tienen 10s esqutbnias de infnrmacibn con esta estructura tienen distintas ventajas. E n partitwlar c1 h t ~ h de o cIue el esquema d e i n f o r m a c i h puetle ser c.onsultado usando el mismo lengucije clue se nsa para las consultas normales a la base tle datos. d;vt.
1. Defina con sus propiris palalwas cada uno de 10s tbrm~nossiguientes: a.
b. c.
d. e.
f. g.
ratilogo ~)rol)ietariod e esquema definitGn d e dominio literal caderia de caracteres operaciones d e comparaci6n conectores hooleanos eonsulta euterna
IMPLEMENTACION RELACIONAL C O N SQL
11. 1.
j. k.
1. 111.
n. 0.
I). 'I. r. S.
t. U.
V. W.
X.
Y. z.
c o n d t a cwrrclacionada fiincihn integrada DlSTINCT GROUP BY INSERT DELETE SOL empotrado (cn~bc&clo) lrnguajr anfitrihn curbor FETCH vista especificacihn de ronsulta csquema d r informaci6n valor [lor deferto clave rxterna recursiva unihy c~otupati1)le UNION EXCEPT NATUKAL JOIN
2. I)rsc*rihaI~revementr10s prinieros desarrollos d r SQL. iQuC fabric-antc fue el primero r n lanzar una versihn wmercial tle SQL? Drscriha varios sistemas en 10s cuales esti disponihle SQL.
3. a. ~ C u i l e sson las hrdenes de SQL-92 quc i e usan para definir un esquema d e una
hase de datos?
h. ;C6mo be I ) ~ I N I P (lefinir una rlavc- de una sola columna o de multi-columnas? iC6mo se ciefinv una clave externa? ~ C o m ose define un valor por defecto? iC11i1 rs la diferencia entre m a restrtcci6n de columna y una r e s t r i c c i h tie tabla? i,C61nose pueden definir rrstric.ciones m i s generalizacias:' c. Inciicpc diez t i p s tle ciatos d i f rentes disponihlrs r n SQL-92.
4. D c w ~ i h alo que p c d e aparecer en d a una de las cliurulas siguientes d e SQL: a.
h. c.
d. e.
f.
SELECT FROM WHERE GROUP BY IIAVING ORDERBY
5. Deswiha !a aceihn (I(.cada m a d r las operaciones: a.
llNION
h. INTERSECT c. tl. e.
f.
EXCEPT NATURAL JOIN JOINUSING .JOIN ON
6. ;Chmo se w a n las especificaciones de consulta r n cada una de las operaciones de motlificaci6n dr tlatos?
8. ~QuC:es una vista de una base de datos y chmo se puede usar? 9. Descriha chmo se puede usar SQL con el esquema de informaci6n para ohtener informaci6n sobre una base de datos.
DISENOY ADMINISTRACIONDE BASES DE DATOS
--alius -r~unicin O\ -c.l6usrrln FROW -produeto
cart~siano
-coi~sulto no correlucior~urlrr -01wrador EXISTS -dqJirticibrt do ~scluentn -rc.stric.c.ibn -cli(usulu
HAVlIVG
-reui&n
USIaC:
-consultu
simple
-operador R O T EXISTS -1YTERSECT -irtstrucei6n de seiializucibn -tuhla buse --curcicter 'ornodin (wild c l ~ n)r p. -cli(usulu If H E R E 'I. -ubrir c u r ~ o r -mr~lticonjtrirto -ji~ncihn d e conjunto
r.
-suhconsultu
w.
-cl6usulu
x.
SELECT
5.
t.
Cotitiene datos 1)isicos o rralrs Uonihrc~alternativo clue i e 1r da a una relac16n Lista las taldai exiitcntci clue ion I-rferidas 1)or la consulta K \ a l k t v e ~ - t l a ( l t ~sio el ( ~ o n j ~ ~rrs111ta11tr nto vs no vacio Da la t*ondiribnpara srlrt.twuar filas d r l a i tahlas idrntifiradas Una fnnt*ihn1nttbgratla Consolta (jlltb in\ olucr'~a s61o m a tabla dt, la base tlr tlatos Oprraci6n q11r t - ; m l ) ~ a l obalores s de las rolumnas r n las filas E\alt'~a a \ r r d a d r r o si rl ronjnnto irsultantt~t.5 vath Pro\oc.a clue el SGBD p r o w s r la r o n s d t a tlr un c-111 sol ! dlniatww el 1-(wiltado r n el cursor Rrsultndo d r parear rada fila en una tabla twn todas la? filas tan otra tallla Sn balor no deprndr de ningnna twninlta tXxtc~i-na D e s t ~ i p r i 6 nde nna hast. tlr datos a1 SGBD Pone rondirionrs s o h 10s grupos Seiial d r comirnzo o tin tle un ronjunto d r instrut*riones SQL. P u r d r t r n r r rntradas dupliraclas 1dentific.a las colnmnas cjlw se desean en la consulta Informari6n desrril)ti\a sohrr las bases de datos Una c o n s d t a dentro de una consulta Una regla que restring? 10s ~ a l o r e sen nna base d r ddt05 Siml~olosespecinles que \ alen por una catirna d r vararteres cualesquit.ra Operavibn q11e ronerta las relacmnes cuando las rolumnas w m u n r s drsignadas tienen iguales ~ a l o r e s Operatihn q u c conrrta las relaciones cuando ocur r e una rondiri6n Operatihn que crea rl conjunto intersercihn d e dos relaciones
2. Escriha 6rdenrs SOL para definir 10s dominios siguientes: a. Un dominio dr salario c ~ ~ y elementos os tengan twatro digitos con dos a la drrrc-ha del punto dwinlal. Su valor por deferto es $6.00, r1 valor dehe ser a1 mrnos
$5,00, pero no mayor que &30,00. b. Un dorriinio d r fechas con todaa lab fechas tlespu& dvl 1 rnero d e 1980, p r r o antes d e l l enero de 2000. c. Un dorninio de horario cuyos rlenirntoa estln entre las X a.m. y las 5 p.m., inclusive
3. Escriha laa 6rdenes SQL para crear un esquema de h e tle tlatos para el siguiente rsrpema relational:
IMPLEMENTACION RELACIONAL C O N SQL
249
CLIENTE (ID-CLIENTE, NOMB-CLIENTE, RENTA-ANUAL, TIPO-CLIENTE) ID-CLIENTE debe e s t a r e n t r e 100 y 10.000 RENTA-ANUAL t i e n e v a l o r p o r d e f e c t o $20.000 TIPO-CLIENTE debe s e r f a b r i c a n t e , m a y o r i s t a , o m i n o r i s t a EMBARQUE (EMBARQUE-#, ID-CLIENTE, PESO, CAMION-#, DESTINO, FECHA EMBARQUE ) C l a v e e x t e r n a : ID-CLIENTE REFERENCIA A CLIENTE, b o r r a en cascada C l a v e e x t e r n a : CAMION-# REFERENCIA A CAMION, a 1 b o r r a r pone a n u l o C l a v e e x t e r n a : OESTINO REFERENCIA A CIUDAD, a 1 b o r r a r pone a n u l o PESO debe e s t a r b a j o 1000 y con v a l o r p o r d e f e c t o 1 0
Use el esqucma siguientr. tonlaclo clel ejcrcicio 3. para rxpresar en SQL lab consultas clue stat y r r s a n a c o n t i n u a c i h . CLIENTE (ID-CLIENTE, NOMB-CLIENTE, RENTA-ANUAL, TIPO-CLIENTE) EMBARQUE (EMBARQUE-#, ID-CLIENTE, PESO, CAMION-#, OESTINO, FECHA EMBARQUE) CAMION (CAMO I N-#, NOMB-CHOFER ) CIUDAD (NOMB-CIUDAD, POBLACION)
4. Corlsdtrrs sirrrples
cull cs el nonibrr clel c.lieutr 433:' b. iCuL1 es la cwdad destino drl eml)arquc~#3244! a. t..
d. e.
f. ,a.
11. i.
j.
k. 1.
iCu'ilrs ,on 105 numeros clc 10s ramiones clue han lie\ atlo paquctes ( e n ~ h a ~ y n e ~ ) par vnciina de las 100 lihras'! Db toclos 10s tlatos de 10s rn11)arqnc~sde nibs cle 20 l i l ~ r a s . Lree una lista por ortlen alfahiticw dt. 10s c~lirntescon renta anual tie inis (11.510 millones. , C u i l es el ID ciel cliente Wilson Brothrrs? Tji 10s noml)ws la renta promedio mcnsual cie 10s rlientrs que tienen renta anual clue excccic, los 55 n~illonrs,p r o clue es menor (ic 10s $10 millonrs. Ub 10s 1Ds tlr loi c-lic-ntvsq u r han enviado paquetes a Chicago. St. 1,ouis o Baltimore. Di. loi nomhrrs tle los c-1irntt.s qne han en\ iado r m h a r q w s a las tiutlatlcs cu! o noinl~rt.cwq~irzaron '(1'. Db 10s non~lbresdta 10s t4entrs qrie h a n enpiado eml)artlnt~sa les rintlaclrs ell! o noml~rt.t c ~ m i n drun Tit! '. 116 los nom11rt.s d r 10s clientes que tirnrn nna 'D' taomot ~ ~ w1r ra t (Id ~ noml11-e. Di. 10s n o n ~ h r e di e totios 10s clientrs que wan mmori-tas.
5. R C ~ I I I ~ Oljoms IWY a.
.
iC61no i e Ilaruan 10s clirntes qnc h a n en\ lado paclurtri a Sioux Cit!? ; 4 t d e s tlrst~nosh a n herho envios las r o m p i i i a s con renta a n d nltwor
tld
millhn? i.Cuiles son 10s nombres y las poblaciones de las ciutladrs que h m retil~itlo nnharques clue p e m ~ in'is d e 100 l i h as? a !clur han d. (,Cu'ilrs son 10s clientes que tienen tnLs tie $5 millones ti(. r t ~ t anual en\iatio embarqnes d e men05 tle 1 hbra'? e. iQu16nc.s ion 10s clientes clue tirnen sohrr los $5 n~illonesen renta anual j t ~ n e han en\iaclo ernl)arqurs de Inrnos de 1 l i h a o h a n en\iacio cni1)arcjnes a San Francisco'! f. ~ Q u ~ S Ison I C ~10s chhfrrrs clue h a n condiicitlo eml)arques tle clientes clue tienen renta a n d sobrr 10s $20 milloncs a cindades con p o l d a c i i , ~por ~ entima tie1 millhn:) c.
DISENOY ADMINISTRAC~ONDE BASES DE DATOS
6. S~ibconsultus a. Intlicp~elas ciudades que han rec:ihiclo embarques de clientcs clue tienen mLs dc: $1 5 millones de renta anual. h. Inclique 10s non1l)res dc los rhbferes clue han transportado em1)arques clue pesan mLs de 100 lillras. c. Indique el nomhre y la renta anual tle 111sclientes que han enviado em1)arqucs que pesan m2is de 100 lihras.
7 . NOT E X l S T S a. Intlique 10s clientes clue han tenido em1)arques transportatlos por cada c-anli6n.
b. Indiepie las ciudades q u r han rrcihiclo emharques cle todos 10s clientes. c. Indique los chhf'eres que han transportado embarques a cada una de las ciuclades.
8. Fmciones integradas a. i C u i l es (4 peso promedio de 10s emharc~ues?
b. iCuLl es el peso promedio de 10s embarques que van para Atlanta? ~ C ~ I ~ emharques I I ~ O S ha enviado el cliente 433:' d. iCuLles ciudades de la base de datos tirnen la mrnor y la mayor pohlaciirn'! e. i C u i l es el peso total cle 10s paqurtrs (embarques) transportados en el carnihn X I ? f. Dk una lista de los clientes y de la renta anual para aquellos dientes que r s t h en la base de datos (Sugcrmcia: Usar una suhc.onsulta.) g. Dk una lista de 10s clientes para 10s que todos sus em1)arques han pesado por encima cle las 25 libras. h. Dk una lista de 10s dientes que 11ac:rn todos sus envios a una sola ciudad. (Notr que la ciudacl no tiene clue ser la misma para cada diente.) c.
9. GROUP BY y HAVING a. Para catla cliente, i(:uiil es el peso medio de 10s paquetes rnviados por 61:'
h. Para cada ciudad, jcutil rs el peso miximo de un paquetr que haya sido mviado a dicha ciudad? Para cada ciudad con poblaciirn por encinla del milkn, icuiil es el peso menor de un paquete enviado a dicha ciudad? d. Para cada ciudad que haya recibido a1 menos diez paquetes, jcuil es el peso mrdio de 10s paquetes enviados a dicha ciudad? c.
10. Operaciones del klgebra Relucional a. Los clientes que son fabricantes o que han enviado algun paquete a St. Louis. b. Las ciudades de poblaci6n por encinla del mill611 y (pie hayan recibido paquetes de 100 libras de parte del cliente 3 11. c. Camiones manej&s por Jake Stinson que nunca hayan transportado un rmharque hacia Denver. d. Clientes con una renta anual sohre los '$10 millones y que hayan enviado paquetes de menos de 1lihra a ciudades con poblacibn menor de 10.000.
11. Operariones de modificacidn de la base de datos a. Aiiada el cami6n 95 eon el ch6fer Winston. b. Borre de la base d r datos todas las ciudades con pol)laci6n por t1el)ajo de 5.000. No se olvide de actualizar tamhibn la relaci6n EMB4RQUE. c. Convierta el peso de cada envio a kilogramos, dividiendo el peso por 2.2.
12. Cursores Cree la declaraci6n de un cursor que identifique toda la informaci6n sobre clientes que hayan enviado embarques a una ciudad con pohlacibn mayor que 500.000.
IMPLEMENTACION RELACIONAL C O N SQL
Vistas 13. Cret. vistas 1)lrra cada uno d e 10s r a w s : a. Clientrs con renta a n d p r c1el)ajo del mill6n. Clientrs (.on renta anual entre $1 milli'm y $5 millotles. c.. (Iientes cwn renta anual por cncima tle 10s $5 millones.
.
14. 1Jse las vistas anteriores para rcspontler a las cwnsultas siguientes: a. ;,Q& chijfrres han t r a n s p o r t a h e m l ~ a r c ~ u ae sLos dngrlrs provrnientes clc clientrs con r r n t a sohrc. los $5 millones? 1. ;,Cuhl es la pol)lac*iijnd e las ciutlacles c p c han rrci1)ido em1)arqiies tie clirnttbs con renta e n t r r $1 mill6n y $5 rnillones? c. iQ11i. chhfrrc:~han transportado cmbarqurs tle clientes (:oil renta por debajo drl n1ill6n y c u l l IY la pol)laci6n d r las ciudades hacia las que se h a n rnviado dichos en~barques?
1. Escrilja un artic:ulo d r invrstigacihn sohrr el tlrsarrollo dr SQL drsde sus primeras catapas en IBM. Discuta sus primeras versiones c:omerciales en Oracle e IBM. su categoria conlo e s t i n d a r ANSI y las versionrs rnis reciriltes para mainframe y microcomputadorrs.
2. Esrriba un articulo dr investigaciirn que critique rl estindar ANSI de 1992 para SQL. Compare este esthndar (*ondos o trcs produrtos romerc*ialcs.
3. Estudie en detalle el SQL empotratlo. Determine r6mo es SII intrrfaz cwn uno o do* lenguajes anfit riones.
4. Estudie 10s esqurmas de i n f o r m a c i h de tlos sistemas difrrentes tlr g e s t i h de base dr datos rrlacionales. iC6mo podrian usarse con SQL p a r a hrintlar infornmaciOn a 10s usuarios?
IMPLEMENTACION RELACIONAL CON LENGUAJES
lntroduccion
Manipulacion de datos
Manipulacion de datos
Seleccionar atributos y filas
Consultas simples
Consultas conjuntivas y disyuntivas
Consultas de multiples tablas
Calculos
Funciones integradas o predefinidas
Enlazando tablas
GROUP BY
Lenguaje de aplicacion
Operaciones de modificacion de la base de
lnstrucciones condicionales
datos
lnstrucciones iterativas
lnsertar (Insert) Actualizar (Update) Borrar (Delete) PARADOX PARA W I N D O W S Definicion y entrada de datos
Resumen Preguntas de repaso Problemas y ejercicios Proyectos y cuestiones profesionales
254
DISENO Y ADMINIsTRACIONDE BASES DE DATOS ''lrr, icbmo quieres trccbnjar con r l sisterno (lhoru qur stJ h a olludido Query-by-Exornpl~?" 4nnette Chung ~ s t ui n t ~ r e s n d oen las reuc.ciones d r los usunrios con el nuevo lenguuje d e consulto de bnse dr tlutos rc41ciorrul clue ho irutalorlo rwientementr la Compuliiu Constructorci Prrmier. Estci hubltrndo coil l r v Bernstrin, inspector de lu coinpc&u. "-iilnc~tte,horwstoinente te digo p e n ~ r n c ohabici pensurlo qur un lenpuuje d e compitclcicii~fiwsetuit.fhcil tle usur. Cuundo comprcwdi c6mo se t l e s p l i t p n lo5 tablus de dutos j i ~ e f i t i lvrr c6inn ronstruir consu1ta.s. Por supucJsto, p o r uhoru scilo he t~stadoutilizondo consultus simples, p~~dicv-a que no lo encontrosc. tunficil u rnedidu quc' inis nwesidudes seun rncis sojisticc~dtrs." "Yo crew que tt' precw-ri p e p o r u Iu n~uyoriud r 1n.s cosm qur quieres hncer, el leuguuje es.ficil d e ~ n t e n d e r .To u y u d a r i con mucho gusto con cui~lquiertipo d e consultcts que creus qur rlo puedes resolvrr; p r o pienso que en cualquier caso en poco tiernpo potlrcis ~ w l e r t ep o r tu cl~entci."
'
Q
uery-by-Exnrnple es una versi0n grifica del lenguajr~d e datos relacional SQL. P a r t i d a ~ ~ m e n tencaja t: hien en las necrsitiadrs de 10s usuarios tipicos. En este 1.apitu1onos fauiiliarizartmos con la mayoria d r los aspcctos de estr lengnaje. asi conw twn nna iniplemcntaci6n d r l mismo para microcon~putatloras: PARADOX para Windows, l)ty)nbs tle leer estr t.apitulo se p o d r i :
Analizar algunos htvhoh l i i s t h r i t ~ ~relatives s a la teoria y las im~)le~~irntat:iont:s c:omcrcialt.s tlel Q~lery-by-Exoriy)le(QBE). Drsarrollar las solnciont:~en OBE para nna arr~pliavariedatl de t~onsultas. Hacer n~odificaciont:~ a nna l)ast~d r tiatos mediantc QBE. Evalnar los puntos furrtes y dbldes drl QBE conlo lenpuaje relacional. Star capaz de tltwrrollar aplicat*ionesnsantlo P,IRADOX para Wintlows.
'
Q u e r y - b y - n e (QHE) f'ne desarrollaclo t:n los afios setenta en el centro d e investigaciOn Thomas J. Watson tle IBM (%loof. 1975; Date, 1986). El t i e n i p de sn tlesarrollo transtSurret:n paralrlo con el tle SOL, y 10s dos Icnguajes son I6git:anlente similares. QRE fur lanzado wrno produvto coinercia1 tiescle h a w ya algin tirmpo y es t:omhmrnte utilizado como l~erramientatie consnlta por usuarios finales. l'ipicamente se soporta QHE twando se s o p r t a tar~ihiknSQL y las tahlas que st: acceden por QBE fueron definidas mediante las facilidades de drfinicihn tle tablas cle SQL. . h h o s lenguajes cstin soportatlos por el Query Manugement Fncility (Fucilidad p u r u Munip1iluci6n de C o n ~ u l t u ~(QMF) ) que ofrecr IBM. QMF tbs u n programa gni6n (shell) que (la nna interfaz de usnario a1 QHE y a1 SQL. Los usuarios interactiian con QMF a travks cle terminales en linea usantlo menhs en pantalla y t e c h de f u n c i h . El usuario selecciona uno tie 10s dos lenguajes y formatos y ejecuta las consultas en el Irnguaje escogido. QMF proporciona niedios para imprimir 10s resultados cle rstas consultas en informes con formatos que incluyen encahezamientos y otros aspertos estintiares. QBE tamhikn e s t i soportado p o r otras t:onipafiias. Borlantl, por ejemplo, ofrece P-4RADOX coma una versi6n con la funcionalidad con~plrtad r l QBE, quz incluyr la drfinicihn de tahlas. Aunque la sintaxis es ligeramente tliferente de la de IBM, el lenguaje es 1)isicamentr el ~nismo.Lotus 1-2-3 tambikn nos d a u n lmguaje simple de consnlta d e base de datos, qne usa u n enfoque similar a1 del QBE. Dehido a t p e el QBE prrrnitr clue 10s
'
P11dicr.a~saduvirwcomo C o n s ~ ~ l m i t d o - l , o r - ~ j ~ nPor ~ p fser o s .un nornl)scya eslahlrvido cn la industria y la li~rratora.sc drjari vI original en inglbs ( N . drl1:).
IMPLEMENTACION RELACIONAL C O N LENGUAJES DE CONSULTA GRAFICOS
255
usnarios no t k n i c o s formn1t.n fieilmrntr sus consnltas, t s t r tlel)t,rh forniar nna partt: importantr tlr 10s sistemas conicrciales d r hasr tlc tlatos por algt'm tiempo. E n estta t*apitnlosr estutliarin 10s rrcnrsos 111: rnanipulaci6n tlel QBE en alpin tlrta11t:. Se utilizari como ehtantlar la implrn~rntat~ihn c.ornercia1 tlr IBM. Tambibn s r \ts~.i P.4RAI)OX para Windows. qntbrs una imp1rn1t:ntat:ibn importantr tlt: QBE ampliamt~ntt~ utilizatla en 10s sistemas m i c r o t ~ o m ~ ) ~ ~ t a t i o r a s .
Manipulacih de datos lenguaje textual. I n lrnguajr dr eo~npntdtlorascuj as instruccionri consistrn d r vatlrnai dr caracttwi.
Los lmguajrs tratlit-ionalrs d r c.omf~utadorrs son textuales. t:s tlecir. la formulaciim d r las solncionrs stxt q w r s a r n trxtos f'ormados por t*atlcnastle taaractrrrs. Sin rmhargo. QBE tas Iin Irnguajr g r i f i c o q u r rstrnt.tnra las solucionrs a las consultas Ilor mtdio de rrprrsrntarionrs pict6ricas (It. las tahlas tlr las bases tlr tlatos. Uhicando siiii1)olos ( % t i10s lugarrs atlrcnatlos rll las t~ol~niiiias tle las tal)las7r l nsuario 1,nt.tlc csprcificar las t*ontlicionrsd r srlrt~tihn (11. la consulta, la agrupacibn, t.1 tlrspliegue tlr lo.; datos y las oprrationes de a v t ~ ~ a l i z a ti011 (It, la t ~ a s rd r tlatos. iZunqur QBE rs nn Ienguajr grifico, t i m e murhas similitutlrs c.structnralrs tvn SOL. ,Amhos lrngnajrs soportan similares exprrsionrs ctrndicionalrs. fnnciones intrgral e n p ~ a j egrifico. Un Irngna6r (last agrupat-ihn. t~onsultamulti-t;ll)las !. otras por el rstilo. T a m h i h hay i r r a s tlondr 10s dr col~~pntatloras tlos lcngnajes son tlifcrriitrs. E n l)artirl~lar.algunos rccursos del SQL no aparecen r n r l qur usa rt*~)rc*srntat~ion(~s QBE. E n la mrditla r n true la prrsrntaci6n a j ~ a n c rs r srfialarin las siniilitntlrs J- difrrrncias picti~rieaspara rrsolvrr u~Lsiniportantrs. Salvo q u r se sefialr rxplicitamrntr. s r u s a r i n las niismas t*onsultas para ilustrar QBE qut' las clur SP usilron p a r a SQL. Los valores rrs111tantc.s tlr 10s datos srrBn los prol~lrn~as. p r tanto 10s mismos. P w s t o q u r la niayoria tle los sistt:mas con QHE nsan I)astss tle tlatos qut' han sido drfinirlas ~lsantlolas 6rdrnrs dc definicihn tlr SOL, no s r analizarh la tlrfinicii~ntlr tlatos cn QHE.
Consultas simples
consnlta siniplr. Ina consdta tjur in\ olwra a una sola taljla de la base de tlatos. tabla ejen~plo.El QBE r s nna tabla esqurlrto que mucstra el nomllrr d r la t;ihla y 10s noml~rrs tlr las columnas arrilm dr rspacios m 1)lanco que sr usan para la entrada tlr Ins condiciones de consulta.
:\I igual qutLtaon SQI,. prinit:ro st. estnciiarin las consultas sinrplrs qucBafectan a una sola tahla d r la I ~ a s rtlc datos. Como lenguajr grifico. QBE tlcbe prol~orcionarmedios para q u r rl nsuario intrracatile grificamente con la I w r de datos. Esto sr hace desplrgando iin rsqueleto tlr tahlas o . t:n la terniinologia tle QHE. tablas ejemplos. Ej(v:utando nna ortlrn, el usnario purtlr prov o t w q u r s(':( l r s p l i r g ~ r~nr pantalla una tabla ejemplo p a r a catla tallla en la Imse tlr tlatos. E n la Figura 8.1 sc inuestra u11 vjemplo simple tlr 1)ase d e datcrs. La Figura 8.2 nmrstra t a l h cjemplos para cada una tlr las trrv tablas en la base d r datos. E n cada caso el notuh r r tlr la tahla aparrce cn la primrra c:olnmna, srguido en ordrn por el nomhrc tlc cad a una tlr 1as columnas d r la tabla. Un rspacio en blanco se d r j a d r l ~ a j otie cada uno tle rstos n o m l r r s tlt: tabla y t:olumnas p a r a prrmitir la entrada de la consults tlel usuario. -4 continuaci6n st: ilustra el uso dc las tablas r j r ~ n ~ ~al otravks s d e consultas simples. C o n s u l t a : i Q u i e n e s son 1 0 s f o n t a n e r o s ?
La soluci6n en QBE aparrcr r n la Figura 8.3. Se ha puesto una "P" clrl~ajotle la columna NOMB-TRAB.4JADOK para intlicar que se quiere mostrar en pantalla (o imprimir) el valor tlr dirha ccrlumna Esto equivalr a poner NOMB-TRABAJSDOR en la cliusula SELECT d r una instrucci6n SOL. Poniendo rl valor literal "Fontanero" en la columna OFICIO sr e s t i indicantlo la condicihn de yue sear1 se1rct:ionados s6l0 aqurllos trabajadorrs twyo OFICIO sra igual a "Fontanero".
'.
La
"P" ir tlehr a1 tCrmino Print (Imprimir) drl inglCa (N. drl T.)
DISENOY ADMINISTRACION DE BASES DE DATOS
TRABAJADOR I D TRABAJADOR
NOMB-TRABAJADOR M. C. R. P.
Faraday Nemo Garret Mason H. R i c k o v e r C. c o u l o m b J. Barrister
1235 1412 2920 3231 1520 1311 3001
TAR IFA-HR
ID-SUPV
OFICIO Electricista Fontanero Albariil Carpintero Fontanero Electricita Carpintero
12,50 13,75 10,00 17,40 11,75 15,50 8,20
ID-EDIFICIO 312 31 2 51 5 460 460 435 21 0 11 1 435 51 5 31 2 51 5 435 21 0 11 1 11 1 460 31 2 21 0
FECHA-INICIO 10/10 01/10 17/10 05/10 08/12 28/10 10/11 10/10 05/11 05/11 24/10 09/10 08/10 15/11 01/12 08/10 23/10 30110 27/10
NUM. DIAS 5 10 22 18 18 10 15 8 15 8 20 14 12 12 4 14 24 17 14
DIR-EDIFICIO 123 E l m 456 M a p l e 789 Oak 1011 B i r c h 1213 Aspen 1415 B e e c h
TIP0 Of i c i n a Comercio Residencia Of i c i n a Of i c i n a Almacen
NIVEL-CALIDAD 2 1 3 3 4 3
1311 1520 2920 3231 1520 1311 3231
EDIFICIO
TRABAJADOR
EDIFICIO
I I
CATEGOR I A 2 1 1 1 1 3
I ID-TRABAJADOR I NOMB-TRABAJADOR
ITARIFA-HR
lOFICIO
I
I
I
I
I
ID-EDIFICIO
I
I DIR-EDIFICIO
(TIPO
(
I
I
I
NIVEL-CALIDAD
ID-SUPV
1 CATEGORIA I
257
IMPLEMENTACION RELACIONAL C O N LENGUAJESDE CONSULTA GRAFICOS
I ID-TRABAJADOR I NOMB-TRABAJADOR ITARIFA-HR
TRABAJADOR
IOFICIO I ID-SUPV I Fontanero 1
P.
NOMB- TRABAJADOR C. Nemo H. R l c k o v e r
0 l ) i r i - \ r q u r ell rstv c~j~wiplo la ortlen QBE \ a segi~itladc
1111
pnnto. T)r rstr niotlo.
'"P.'' r5 la ortlrn tle est*iil)ii011 pantalla. El \ a l o ~literal "Fontant*ro" intlira una t~mtlici6n sc~lecciimtle clatoi. Las Ortlrnrs d r QKE sieinpir trrminan 1.n 1111 ~ ) n n t ! o loi \aloi-es litrrales al)erwcn t-xcta~nente(wino iv c v r i h r n nornialn~entr.RI resultatlo d r vita twnsnlt;~ es nna t n l ~ l 'r.elacion;il. ~ t ~ ) i n oes siense Inurstra r n la Ftgnr'i 8.3. 01)ser\e t[n(' ('1 1-t~snlta110 pre rl c ~ s IWII o 111sIenguajei rel;rc+)ualvs. (It.
C o n s u l t a : I n d i q u e t o d o s 1 0 s d a t o s d e 1 0 s e d i f i c i o s q u e Sean o f i c i n a s .
Resultado: ID-EDIFICIO
DIRECCION-EDIFICIO
312 210 1 11
123 Elm 1011 B i c h 1 2 1 3 Aspen
TIPO
NIVEL-CALIDAD
Of i c i n a Of i c i n a Of i c i n a
2 3 4
CATEGORIA
Consulta: i C u a l e s l a t a r i f a semanal d e cada e l e c t r l c i s t a ?
EDIFICIO
I
ID-EDIFICIO
I DIR-EDIFICIO
ITIPO
I
NIVEL-CALIDAD
1 CATEGORIA
1 O fi c i n a 1
tabla de rtsultnilo. En
ORE [ma tal~litsin rncal)t~7amit~i~tos p r tw111111na.St' usa para tlefinir la salitla tlc nna ronsnlta.
En rsta soluti6n de QBE (Fiplra 8.6) sr ha introducido una irguntla tallla quc no tit.ne rilc.i~I~t.zamici~to.s por t ~ o l ~ ~ n nlTna i a . tallla tal se llama tabla de resultado (torgr.t trrhlr.) 1Hn-qw t ~ ~ n t i t * informat*ihn nt. sollre el resultado final o rrsultatlo tlr salida d r la consults. En rsta c o n s d t a vita 1.5 el rqui\alente tle la t*lliusula SELECT d r SQL. O l w n e q u r "I'." aparece en la primrric t~olnmnntle la t a l h tle salida. Esto significa clue se mostrari catla t d u m n a tle la t a l h tlr salidu. La srgnnda y la cuarta t~olumnacwntienen 10s elementoi ejeml)lo -NT y -TH. lln i ~ l t ~ n ~ejenrplo e ~ ~ t o es m a variahle cjur rrpresenta u n valor ti11ic.o no eipc*vificoell una t h m n a (11%una talda. En este caso se definen 10s elrmcntos cjtwiplos
TRABAJADOR
I ID-TRABAJADOR I NOMB-TRABAJADOR -NT -NT
ITARIFA-HR -TH
T a r i f a semanal = '
~OFICIO
]ID-SUPV
I Electricista 1 140* -TH
I
DISENOY ADMINISTRACION
DE BASES DE DATOS
en las columnas 3 y 4 de 1;) tallla ejemplo clue se muestra arriha dc la tallla de resultado. Ollserle clue las \arial)les ORE comienzan con sul)rayaclo ( - ). Pursto que -NT esta en la columna NOMB-TRARAJADOR 6ste rqui\ale a cwalqu~cr\ a h posilde en esta columnd para la relariim TRABAJADOK. Siniilarmcnte -TH toma 10s balorrs d e la c.olumna corresponclientc TARIFZ-HR. E n esta ronsulta se niuestra como resnltaclo un c.hlrulo (la columna 4 tlv la t a l h de salida) y un l a l o r literal (la rolumna 3 clr la tallla de salida). El resultado w r i : Resultado:
NOMBTRABAJADOR C. Coulomb D. F a r a d a y
T a r i f a s a l a r i a l sernanal = 6 2 0 , 0 0 T a r i f a s a l a r i a l sernanal = 5 0 0 , 0 0
Consulta: LOulen t i e n e una t a r i f a p o r h o r a menor de $10?
Con esta wnsulta se ilustrarh chmo especificar c*ondicionesde comparacicin simples en QBE (Figura 8.7). O h s t m e la condiricin
en la tabla rjemplo Resultado:
NOMB-TRABAJADOR J. B a r r i s t e r
Consulta: LOuienes son 1 0 s f o n t a n e r o s que ganan mas de $12 p o r hora?
La soluci6n (Fignra 8.8) a rsta nueba ronsulta muestra chmo se exprcw en la tabla ejemplo una condici6n rompuesta. Las condiciones vn esta tallla son equilalentes a TARIFA-HR
> 12
AND
OFICIO = ' F o n t a n e r o '
E k decir, cuando (10s contliciones aparecrn en la misma linea en una tabla ejemplo deben orurrir nrrlbns condiciones para que se srlrccionr una fila. En este caso se ha escogido mostrcir todos los datos de las filas seleccionadas, por eso es clue se ha puesto una "P." en la primera c:olumna.
Resultado: ID- TRABAJADOR
NOMB- TRABAJADOR
TARIFA-HR
OFICIO
I D - SUPV
1412
C. Nerno
13,75
Fontanero
1520
Consulta: I n d i c a r 1 0 s t r a b a j a d o r e s que Sean f o n t a n e r o s o que ganen mas de $12 p o r h o r a .
TRABAJADOR
(
ID-TRABAJADOR
I NOMB-TRABAJADOR P.
TRABAJADOR
ITARIFA-HR ~OFICIO
1
<10
I ID-TRABAJADOR I NOMB-TRABAJADOR ITARIFA-HR /
> 12
1
I ID-SUPV
I ID-SUPV 1 ~ontanerol ~OFICIO
259
IMPLEMENTACIONRELACIONAL C O N LENGUAJESDE CONSULTA GRAFICOS
La soluci6n (Figura 8.9) a esta nucva consulta iliistra cjue Ids contlicionrs que se especifican en (10s lineus tlitewntes tie una consulta r n QRE eyuivalrn a conclicionrs cnonet.tadas por u n OR l~oolcnno.O h s e n e la u1)icacibn de la orden "I?.". A p a r r r r r n amhas linras y en cada una d r las columnas qur sr tlesea mostrar. Resultado:
NOMB-TRABAJADOR M. C. P. H. C.
Faraday Nemo Mason Rickover Coulomb
TARIFA-HR
OFICIO
12,50 13,75 17,40 11,75 15,50
Electricista Fontanero Carpintero Fontanero Electricista
C o n s u l t a : i Q u i e n t i e n e una t a r i f a p o r h o r a s e n t r e $10 y $12?
La sohic-ihn st, muestra en In Figura 8.10
caja de condicicin. En QUE: es una caja en la cual se p w d c expresar ana rondicibn complcja dt. iina consulta.
ID- TRABAJADOR
NOMB TRABAJADOR
TARIFA-HR
OFICIO
ID-SUPV
2920 1520
R . Garret H. R i c k o v e r
10.00 11.75
Albanil Fontanero
2920 1520
P a r a r t w d \ r r rstr tipo clr w n s ~ i l t asr introtluc-r una caja de conclici6n (contiltion box). Esta caja, con la e t q u e t a CONDITIONS (CONDICIONES), w n t i r n e las restritwones que el usuario d t v a i m p t i e r solwe 10s valores. E n este rjemplo, en rl qne se aplican (10s t.ondiciones simultinramente en una rnisrna ccrlurnna, es convenientcx rr tLaruna sola condicihn, utilizando un 4ND 1)ooleano v ~ w n v r l aen la raja d e condici6n.
Consultas de tnliltiples tablas consdta mnlti-tabla. Una consulta clue afwta a m i s de una tahla.
El asyecto m i s importante de las consultas d e indtiples tahlas (consultas rnultitabla) es q u r implica la conexihn de 10s tlatos a trav6s tle varias taldas, en otras p a l a h a s , haciendo m a rcwnii'm ( j o i n ) tlr las tahlas. A continuacihn sr w r a cOmo se h a w rsto cn
C o n s u l t a : i C u a l e s son 10s o f i c i o s de 10s t r a b a j a d o r e s asignados a l a construccidn d e l e d i f i c i o 435?
TRABAJADOR
TRABAJADOR P.
ID-TRABAJADOR
NOMB-TRABAJADOR P. P.
TARIFA-HR P. > 12 P.
I ID-TRABAJADOR INOMB-TRABAJADORITARIFA-HR -TH
CONDICIONES
-Th > = 10 AND-TH <
=
12
OFICIO P. P. Fontanero
~OFICIO
ID-SUPV
I ID-SUPV
DISENOY ADMINISTRACION DE BASES DE DATOS
I N inqlortantt. a drstacar en la soll~cicinQBE a esta consulta (Figura 8.11,)er rl mi?;mo elemento -IT clue a p l - e r e en amhas tablas TKABAJADOR !- ASIGNACION. .-hien roll~oae eupresa una rtwnihn en QBE. Esto sigi~ificaclue un prrr seleccionatlo tit. f'ilas tle las dos talrlas debe tener 10s ~nisrnosvnlores para las dos respecti\-as columnas ((111las clue apa. . rcce el -IT). Sr ha escogido -11' como t.1 ele~twntoejeiiq~lo.!a t p e es m a al~rekiaturaadecuada para el 11o1n11rt.tle la t d u i u n a ID-TRiBAJ4DOR. Potlria hahersc. twogitlo cualquier otro elelne~itotbjen~plo. w m o -7i. p r o +st(- no seria clr niuguna a!ntla,en este contexto. El \ a h literal 435 se 11or1ccn la columna 11)-E1)IFICIO tit. ASIGY \CION 11ai-a indirar clue i e tlellei~co115itlrrat. solamcnte las filas t*orrc.slwntlientes a1 etlificio 435.- Por i~a tlnicre tlecir t ~ n stx r cpiere niostrar rn l~antallael baler i ~ l t i ~ n la o . P, en la t ~ o l u n ~OFICIO tit* tlirha rolu~ulla. Resultado: OFICIO
Fontanero Albanil Electricista C o n s u l t a : I n d i c a r 1 0 s t r a b a j a d o r e s y 1 0 s nombres de sus s u p e r v i s o r e s .
La soluci0t1 a esta twnsulta (Figura 8.12) nos ilnstra la fatilitlad twu la que se p e t l c I ~ a c e en r QBE la reunicin (join)tit. m a relatihn (.oil ella aiisnia. Ol~st.rvt.clue r ~ s m t l oel elemento e j r n i l h -IS en ambas tablas ejemplos cbstainos exigiei~tlo clue el valor tle ID-SUPERVISOR en la p r i ~ ~ t e t-opia ra tlc 'I'R,IB_\J_4DOR sea igual a ID-TRABA.]:\I)OR ell la segunda copin (11.TR:lH:\J.IDOR. Sr muestra entouws el valor tie la t*oIunmaNOMBRE-TRL1B_1J;iUOR 1)ara aml)as tal~las( t w n o se ve en la t;111la(It, salida). La segnntla rolumna represents t.1 noiul)re tlel sulwrvisor. Se ha asnmido ell esta l m e tlv datos que 10s trahajadores clue no titmen supervisorw sou >us propios sulwrvisores. Resultado: NOMBRE TRABAJADOR
NOMBRE TRABAJADOR
M. C. R. P. H. C. J.
C. H. R. P. H. C. P.
Faraday Nemo Garret Mason Rickover Coulomb Barrister
TRABAJADOR ASIGNACION
Coulomb Rickover Garret Mason Rickover Coulomb Mason
ID-TRABAJADOR -I T
NOMB-TRABAJADOR
ID-TRABAJADOR
ID-EDIFICIO
-I
T
I
ITARIFA-HR
FECHA INICIO
~OFICIO
]ID-SUPV
I
I
P.
(
N[~M-DIAS
435
TRABAJADOR
ID-TRABAJADOR
NOMB-TRABAJADOR
TRABAJADOR
ID-TRABAJADOR
NOMB-TRABAJADOR
TARIFA-HR
OFICIO
ID-SUPV
TARIFA-HR
OFICIO
ID-SUPV
-NT
-I
S
-NS
-I
S
26 1
~MPLEMENTACIONRELACIONAL C O N LENGUAJES DE CONSULTA GRAFICOS
C o n s u l t a : I n d i q u e 10s nombres de 10s t r a b a j a d o r e s aslgnados a e d i f i c i o s que Sean o f i c i n a s .
La solwihn (Figura 8.1:3) :I cssta ronsulta i h s t r a la reunihn de trrs t d ~ l a s .Es tlifitil s clue la t p t ' i r 1)nrdr h a w r inlaginar ( f u r nna r t w n i h tal i t J l~ueilah a w r dt, niodo n ~ i firil n s r h a w olnio ron t3sttxc,jrniplo. a t p i ron QBE. RI 1)otlt.r ilr la l ~ r o g ~ a n i a t i bgrifira Resultado: NOMBRE TRABAJADOR
M. C. R. P. H. J.
Faraday Nemo Garret Mason Rickover Ballester
C o n s u l t a : I n d i q u e 1 0 s t r a b a j a d o r e s que t i e n e n una t a r i f a p o r h o r a mayor que l a d e su s u p e r v i s o r .
1)r n u o o hatwnos una r r ~ m i h utlr 'IRABAJDOR consigo ~ n i s n ~(Figlira o 8.14). Sin twil~argo.r n csta ocahihn stxnrcrsita una raja dr c.ondicii,n para st~ltwionara at~uellostraI ~ a j i d o r r t111t' s tirnrn unu talifa salarial mayor t p t 3 la ck su sqwrvisor. La raja d c , contlirihn i.s rl ilniro nirdio disl~onil)lrp r i l c20nq)ararva1ori.s r n tlos c~oluninasdifrrt1ntc.s. Kn SQL txstr t i p ck 1wns111tasthrtwlvia twn nna s1111~~1nsulta corrrIat*it~~i;~ila. El rrsdtailo t111rda: Resultado: NOMBRE- TRABAJADOR
C . Nemo
Funciones integradas o predefinidas (Built-In Functions) fiinci611 intrgracla o predefinida. I'na funtibn estadistira quc opera sohrr un conjuntc?tlr fi1;;ls - SIJM.
*4VG, M 41.MIN. CNT.
11 ignal q u r SOL. QKE tani1)ibn tirntx fimciones iiitegraclas (hilt-inJil~wtiom).Esta5 p r tlrn usarsr por t-jcniplo para rnrtmtrar 1.1 niayor o rl Inenor \ a h tlr una rolumna. t*alcdar r l l a l o r promrtlio o rl total tlr una rol~unna.y para cwntar rl nilmrro total d r rlrmrntos en TRABAJADOR
I ID-TRABAJADOR I NOMB-TRABAJADOR ITARIFA-HR -I T
ASIGNACION
I ID-TRABAJADOR I I D - E D I F I C I O I -I
ASIGNACION
TRABAJADOR
T
/ID-SUPV
FECHA I N I C I O
I
NUM-DIAS
-I E
I I D - E D I F I C I O I D I R - E D I F I C I O I T I P 0 [NIVEL-CALIDAD E I Oficina 1 -I
]
ID-TRABAJADOR
NOMB-TRABAJADOR -NT
TRABAJADOR
~OC FO I
P.
1 ID-TRABAJADOR -I S
CONDICIONES
-T T > -TS
P.
NOMB-TRABAJADOR
TARIFA-HR
OFICIO
ID-SUPV
OFICIO
ID-SUPV
-I S
-T T
TARIFA-HR -T S
ICATEGORIA
DISENOY ADMINISTRACION DE BASES DE DATOS
una cdumna. En QBE estas fuucioues integradas tienen 10s nomhres MAX, MIRT, AVG SUM, y CNT '.Estas puetlen aparewr en las talkis de salida o en las rajas de r o n d i c i h .
',
C o n s u l t a : i C u a l e s s o n l a s t a r i f a s p o r h o r a mas a l t a y mas b a j a ?
La solnci6n aparecr en la Figura 8.15. Resultado:
18,40,
8,20
Este resultado cwnsiste en (10s ~ a l o r e sque se p u d e n imaginar como una tabla de dos columnas y uua sola fila. Las columnas con las cahecrras T4RTF4-MAXIMA p TIRIF4-MINIMA. I)e este modo. el resultado d r una consulta cualquiera sigur siendo una tahla rrlacional. C o n s u l t a : i C u a l es e l numero p r o m e d i o d e d i a s q u e 1 0 s t r a b a j a d o r e s e s t a n a s i g n a d o s a1 e d i f i c i o 435?
La soliiciOn aparere en la Figura 8.16. Resultado:
12,33
C o n s u l t a : i C u a l e s e l numero t o t a l d e d i a s a s i g n a d o s a 1 0 s F o n t a n e r o s e n e l e d i f i c i o 312?
La solliciim aparece en la Figura 8.17. Resultado:
27
Consulta: iCuantos t l p o s de o f i c l o s d l f e r e n t e s hay?
El oprrador UNQ5 en la Figura 8.18 garantiza que se c o n t a r i shlo una sola oc.11rrencia por oficio. Es decir, los ciuplic*aciosn o se tomarin en cwrnta a la hora tle contar. TRABAJADOR
I ID-TRABAJADOR I NOMB-TRABAJADOR
~TARIFA-HR
I D-SUPV
~OFICIO
TH
ASIGNACION
I ID-TRABAJADOR I I D - E D I F I C I O /
FECHA I N I C I O
I
NUM-DIAS
435 P.
I
AVG. -ND
NOMB-TRABAJADOR
TRABAJADOR
ID-TRABAJADOR
ASIGNACION
-I T ID-TRABAJADOR
ID-EDIFICIO
-I
312
P.
"
1
-ND
T
SUM. -ND
Abrrviatura dt cluerage (pronrtdio) (N. del T.).
' hrrviatura d t c o w t (cantidad) (N. drl T.). .' Abrtviatura d t u,niqw (ilnico) (N. del T.).
I
ITARIFA-HR
FECHA I N I C I O
~OFICIO
ID-SUPV
1 Fontanero I I NUM-DIAS -ND
263
IMPLEMENTAcIoN RELACIONAL C O N LENGUAJES DE CONSULTA GRAFICOS
I ID-TRABAJADOR I NOMB-TRABAJADOR
TRABAJADOR
I CNT.
Resultado:
I
I
I
UNQ-OF
IID-SUPV I
~OFICIO
ITARIFA-HR
OF
4
Consulta: i C u a l es l a medla de l a t a r l f a semanal La soluc.ii,n a p a r e w en la Fig11ra 8.19. Resultado:
509,14
Consulta: LCuantos e d l f l c l o s t l e n e n n l v e l de c a l La solurihn a1)arec.r en la Figura 8.20. Resultado:
3
GROUP BY A1 igual que en SOL, sc. puetlrn agrupar las filas qne tienen una alor en cwrn6n en nna o mas rolumnas. L t o signifira que las filas d r ima relacai6n se (lividen en grnpos. un g r u p p a r a rada valor de la columna ciesignada. A c-acla grupo se le pueclen aplirar lab fnnriones estat1istic.a~. Consulta: P a r a cada s u p e r v i s o r , i c u a l es l a t a r i f a p o r h o r a mayor que s e l e paga a un t r a b a j a d o r c o n t r o l a d o p o r e s t e s u p e r v i s o r ?
"G." indica la c~c~luinna por la que se agrupa (Figura 8.21). E n este csaso se esti agrupantlo p r ID-SUPV, pntSstoque queremos ronocer la tarifa mixima d e los trahajadores por super~isor.La tabla de resnltado (target table) se usa para intlicar que se quiere mostrar la colnmna por la que se agrupa junto run la fiinci6n intrgrada yue se aplira a 10s g ~ u p o s . TRABAJADOR
ID-TRABAJADOR
I NOMB-TRABAJADOR
ITARIFA-HR
~OFICIO
(ID-SUPV
-TH I
EDIFICIO
I I
I
TRABAJADOR
ID-EDIFICIO
-I D
I
DIR-EDIFICIO
ITIPO
I
NIVEL-CALIDAD
I
I
I
I
CNT. -1E
ID-TRABAJADOR
NOMB-TRABAJADOR ~TARIFA-HR
-TH P.
1 CATEGORIA
3
-S I
MAX. -TH
OFICIO
ID-SUPV G. -IS
DISENOY ADMINISTRACION DE BASES DE DATOS
Resultado: ID-SUPV 131 1 1520 2920 3231
15,50 13,75 10,00 17.40
Consulta: P a r a cada t i p 0 d e e d i f i c i o i c u a l e s e l n l v e l de c a l i d a d promedio de 10s e d i f i c i o s de c a t e g o r i a 1?
Resultado: TIP0 Cornercio Residencia Of i c i n a
1 3 3,5
Consulta: P a r a cada s u p e r v i s o r que c o n t r o l e a mas de un t r a b a j a d o r , i c u a l e s l a t a r i f a p o r h o r a mas a l t a que s e l e paga a u n t r a b a j a d o r de 10s supervisados por e l ?
En la d 1 c i 0 t l(Fi(rura 8.23 ), la condicibn en la caia de contlirihn determina tine ratla grupo clrlw trner lnis tlr una f'ila. De modo clue la caja de rondiriim en este ejemplo ey equialrnte a tuna c.liuynla II-IC ING de SQT,. Resultado: ID-SUPV 131 1 1520 3231
15,50 13,75 17,40
Consulta: i Q u e t r a b a j a d o r e s ganan p o r encima de l a media?
EDIFICIO
ID-EDIFICIO
DIR-EDIFICIO
1 TIPO IG.
P.
TRABAJADOR
-T
I ID-TRABAJADOR
NIVEL-CALIDAD
-T
1
-CL
AVG. -CL
ITARIFA-HR
[NOMB~TRABAJADOR
-TH
-I S
CATEGORIA
MAX. -TH
~OFICIO
IID-SUPV I G. - I S
265
IMPLEMENTACION RELACIONAL CON LENGUAJESDE CONSULTA GRAFICOS
Se nrcrsitan dos copias tlr la tahla 'I'RAB;lJADOR para rsta wnsulta y tlos \arial)l(*s difereirtps para drsignar a 'l'ARIFA4-HR (Figura 8.24). Una variahlr ( -THl) s r MI para c a l c d a r la tarifa por hora promrdio para toclos 10s trahajadores? mirntras c p r la otra variaIdr (-TH2) sr nsa para clrsignar a la TARIF-4-HR para catla tra1)ajador r n rspec*il'itw. Resultado: NOMB- TRABAJADOR C. Nemo P . Mason C. C o u l o m b
C o n s u l t a : i Q u e t r a b a j a d o r e s t i e n e n una t a r i f a p o r h o r a mas a l t a que l a d e l p r o m e d i o d e 1 0 s t r a b a j a d o r e s que i n f o r m a n a1 mismo s u p e r v i s o r que e l ?
En rsta soluci6n (Fipnra 8.25) bimplrmcntr se ha niotlific.aclo la consulta antcrior afiadientlo una agrnpacihn por la columna ID-SUPV de la primrra tallla !conrctantlo la< tatjlas mediantr ID-SITPC. Resultado: N O M K TRABAJADOR C. Nemo P . Mason C. C o u l o m b TRABAJADOR
ID-TRABAJADOR
NOMB-TRABAJADOR
TARIFA-HR
OFICIO
ID-SUPV
TRABAJADOR
ID-TRABAJADOR
NOMB-TRABAJADOR
-TH I TARIFA-HR
OFICIO
ID-SUPV
OFICIO
ID-SUPV
OFICIO
G. - I S ID-SUPV
P . -NT
TRABAJADOR
I ID-TRABAJADOR
NOMB-TRABAJADOR
-TH2
TARIFA-HR -TH 1
NOMB-TRABAJADOR P . -NT
TARIFA-HR -TH2
-I
S
Operaciones que modifican la base de datos QBE soporta tres tipos d r oprraciones q n r camhian la base tlr tlatos: i ~ l s e r t a r(insert). r artualizar (updote) y l ~ o r r a (delete). Insert. A1 ignal que en SQL, s r purden insertar filas especificando simplrmrntt. t.1 valor individual de cada columna, o se purtlr insrrtar un grupo tlr filas mrdiante la especificaacibn d e una consulta. Comtr rjrmplo del primer mktodo puede consiclerarsr la ccrnsnlta OBE cle la Fiaura 8.26. Esta consulta es una instruccihn d e insercibn, como lo indica la "I." d r la prirnera rolumna. Est!) p r o l o r a clue se aiiada una fjla, cop 10s valorrs yne s r muestran, a la tabla ASIGNACION. Puesto que la columna NUM-DIAS se ha dejado en blanco. dicha columna c o n t r n d r i u n valor nulo a1 insertar la fila.
DISENOY ADMINISTRACION DE BASES DE DATOS ASIGNACION
1 ID-TRABAJADOR I I D - E D I F I C I O I 1284
FECHA I N I C I O
485
I
NUM-DIAS
13/05
La siguientc consiilta (Fignra 8.17) aiiadirii filas a la rclaci6n de nomhre EDIFICIO-1. la cual consiste cn las columnas ID-EDIFICIO, T I P O y NIVEL-CALIDAD. Las filas qiic se alladen son aqiirllas clue en EDIFICIO tirnen c a t ~ g o r i a2. ObsCrvcsc quc. st: ha puesto una wndicihn (CATEGORIA = 2) soljre las filas de EDIFICIO. mivntras quc' la orden insertar ( I . ) rstii en la tabla EDIFICIO-2. Ile este modo se lleva a w h o una consulta sohre EDlFlClO en la yiie las filas seleccionadas se insertan en EIlIFICIO-2. llna tahla corno EDIFICIO-2 podria iisarse, por cjemplo, wnio t a l h temporal, sohre la cual se podria llevar a cabo una gran variedad dc consultas. Actualizacicin ( q d a t e ) . La c:onsnlta QBE tlc la Figura 8.28 nos d a yiie a todos 10s yuc: (:stan trahajando para el supervisor 1520 se les aumente sn tarifa por hora en u n 5 por 100. Se necesita mostrar la c:olumna TAKIF&HR dos veces: una p a r a definir la variahle -T, y otra para intlicar la orden de ac.tualizaci6n ( U. ) y la f h m u l a ( -T 1.05). Tncidentalmente, esta facilidad de mostrar milltipl(:uc:opias de m a misma columna en m a tahla ejemplo piiede usarse tam1)ii.n en c:onsiiltas (por ejemplo? si se aplic*anmultiples condiciones a una misma coliimna mcdiantc u n A4ND).
"
Borrar (delete). Si lo yue se desea es borrar a todos 10s que trabajan para el supervisor 1520, twtonces se puedr usar la consults quc: se miiestra en la Figura 8.29, donde D. indi(*ala ortlen b o r r a r " EDIFICIO
ID-EDIFICIO
DIR-EDIFICIO
IE
EDIFICI02
I.
TRABAJADOR
I
I
ID-TRABAJADOR
ID-EDIFICIO E -I
NOMB-TRABAJADOR
TIP0
-T
ITARIFA-HR -T
TRABAJADOR
I
ITIPO I
I
NIVEL-CALIDAD
CATEGORIA
T 1 CL N~VEL-CAL IDAD
2
-CL
I I
TARIFA-HR U. - T * 1 . 0 5
I I
I ID-TRABAJADOR I NOMB-TRABAJADOR I TARIFA-HR
OFICIO
I
ID-SUPV 1520
1 OFICIO
I ID-SUPV 1 1520
Paradox para Windows PARADOX PARA WINDOWS. Una base de datos para niicroconiputadoras cuyo lenguaje de consulta es QBE.
Una base de datos poderosa yue incorpora QBE para entornos con microcomputadoras es PARADOX PARA WINDOWS. Puesto que muchos usuarios de este libro deberan tener acceso a lalm-atorios de microcomputadores, en el resto de este capitulo se tratariin algiinas de las caracteristicas y capacidades mas importantes d e PARADOX PARA WINDOWS. "
Del inglks Delete (borrar) (N. del T.).
Definicihn y entrada cle datos El lenpiaje tlr clc:finirihn d r datos tle PL4RrlDOXes muy f i c d de aprrndrr. Pulsantlo la opci6n File (archive), rn ti1 m r n b s r ohtirnrn a sn vrz las o p i o n e s q u r se murstran en la Fignra 8.30 (O1wr1-e clue totlas las opriones taml~iknpuerlrn seleccionarsr por teclado. Esto p u d r verse 1.n cnalquier manna1 tlr PARADOX P.4RA WINDOWS ). S r sclecciona New (nurvo) del menil d r File y lucgo l'uble (tahla) tlel snhmrnu d e k t e . Esto produce la vrntana q n r sr nmc.stra en la Figura 8.31. Se pnede rlegir PARADOX PARA WINDOWS w m o el t i p de t a l h a wear, pulsantlo el hot6n de OK, se v e r i rntonces nna pantalla simil a r a la tle la Figura 8.32. S ~ p o n g a ~ n( poe~se desea ( w a r m a base tle datoe d r manufacturas q n r se componr (11. las rrlaciones que se murstran m la Fignra 8.33. Explicaremos c6mo hacer la creacihn d r la relacihn PERSONAL y s r dejar.6 el resto w m o ejercicio. Teclee Nimernp en la d u r n -
DISENOY ADMINISTRAC~ONDE BASES DE DATOS
1
--
-Paradox for Windows
( a ) PERSONAL (NUMEMP, NOMBEMP, NUMDPTO, NUMPROY, ( b ) DPTO (NUMDPTO, NOMBDPTO) ( c ) PROYECTO (NUMPROY, CLIENTE, LOCALIDAD) ( d ) PARTEPR ( e ) PARTE
(NUMPROY, (NUMPARTE,
NUMPARTE, VENDEDOR,
SALARIO)
CANTIDAD) COSTO)
na tlr nt~inln-taFicM Namv (nonl1)rc. tlvl c-anq~o). Mub\nir lm-a la rolnmna T>lw prriionan(lo las trc-lai Tub. Enter o Flrc.l~aI)rrrc.ha (rig-kt-orrow). -lfiada ( ~ tipo 1 clrl ( . a m p (A para alfannmGrico. N para numGriro. D para f w h a (date). $ para tfnrro). P a r a NitmMt.mlj (nhnicw (h.1 c~iii~,l(~~clo) r l t i p tlr (lato drlw i r r N. Dado clue el NGmemp pueclr i r r una ('lal r , c l t ~ l ~ t wm o in c r n o s p u . ; ~la c.olnmn;~Key (rlave) y preiionar r n a l q n i c ~t r d a para intlir a r q u r Numrmp es nna c-lace. - l p r r c * r r i iln asterisco c p e i n d i r a r i quc. Gstr r i ilna rlavr. Presionando de n w v o las terlas Tab. Enter o F'levha Dererha se m a m a a1 pr6ximo atrihnto. Entre Nombemp en la rolumna Field Tame (honlbro dc. Campo). En la vollnnna T!l~c. (tipo) ponga A y en la colnmna Size ( T a m a h ) ponga 15. Luego a\ ancr a1 pr6ximo atrihnto. Niimdpto. Las entradas restantes signen nn patrim wnilar y i e m w i t r a n en la Fignra 8.34. Observe que 10s campos (pie hean de tipo f w h a (tlt~te).nnmiricw. o dinero. no rtynic.rc.n cine ic. eipwifique una longitud para rl c a m p . Ol)irr\e la d i s ~ ~ o n i l ~ i l i ~dvl ann t l cirrto n i ~ m e r o . wino limitar el rango tlc de rompro6ariones de ediri6n sobre lob tlatos d r lob c a i n p o ~ ta11.i 10s valores a introdncir en el rampo, la valitlaci0n a tr;i\;i d r tahlai, )I otros. Cuando se haya drfinido r l ultimo a t r i l ~ u t ose pulba el l ~ o t 6 nSave As (salvar porno) p a r a guardar y d a r u n nomhre a la tabla. Se v e r i nna pantalla similar a la de la F i p r a 8.35. Terlee PERSONAL romo nomhre tle la t a l h tan la raja texto New Table Yome (Nuevo nomhre de tabla) y luego pulse el 11ot6n 01<. Loi nom1)res tle t a l h estin l i m i t a h a orho raracteres (que no pueckn ier t.iparioi).
delFl-r,F ~ e l dRoster
Table propert~es-
Name
V a l ~ d ~ Checks ty
1 Numemp. 2 Nombemp.
3 Nurndpto.
1 +I
-
3 Numproy. 5 Salar~o
1 Requ~reHF ~ e l d -
2. Minimum -
3. Maximum I
I
4. Default
5. Picture R~ght-cl~ck or press Spacebar to choose a f ~ e l dtype
r j p z q
New Table Name -
Iables EMPLOYS DB PROJECT DB
1 PERSONAL Opt~ons D~splayTable -
path -
El WORK
D p e
Boton Opc.11Table il b r i r tabla).
El resto cie las relaciones se (:rean de manrra similar. Una vrz qrle las relaciones (talllas) y sus a t r i h t o s han sitio definidos, se pueden introdncir 10s datos usando 10s recursos ciel m e ~ (esto ~ i rs, usando las opcionrs tlcl menu File I Open I Tuble o ~ d s a n c i ocl hot611 Open Tahle (.iI)rir Tallla) localizado so11r.c.la barra ripitla (speedbm). Despubs sr dehe pulsar la tabla desrada p 111egoF9 para comrnzar la entrada de datos.
DISENOY ADMINISTRAC~ONDE BASES DE DATOS
Manipulacih de datos -41 lenguajr de manipulacibn de datos dc PARA1)OX puede accedrrsr esc:o~
Seleccionar atributos y filas B o h n Run Query (Ejecutar consulta).
Para selrcc:ionar 10s a t r i h t o s de la eonsulta primero se selt:ccicrna File I New I Query. luego st: pulsa el noml~rrde la tabla y sobre OK. Esto causa qur aparezca una tahla m l h c o (ver Figura 8.36). -4 continuaci6n se d d w pulsar la raja de comprobacihn (check box), cpe rstri a1 lado del atrihuto tlrseado (lo cual pone la maws ''dm ). Despuks clue sr presione el bothti RWI Query (ejecutar cwnsulta), PAKADOX produc:e una tahla respuesta qur cwntiene los valores tle los atrihutos cpe fueron marcados tal y como estin en la tahla. Para renoml,rar un atrihuto durante una consulta, de modo que el nombre clel (.ampo que apwezca en la tabla de rrspuesta sea ciifrrente del nomlre drl atributo r n la t a l h de consulta, lo que hay qur hacer rs simplrmente trclear "as"' seguitlo del nombrr (*onel que sr quiere clue apart,zca dicho atributo en la tabla de respuesta. En la Figura 8.37 sr ejemplifica rsto. En rste case se estiin viendo 10s nombres de 10s empleados del Drpartamento 100 y sr ha cam1)iado el nomhre del atributo "Nombemp" por el de "Nomhrr" s0lo a 10s propbsitos de la salida. Como se puede ol~servar,10s atriljutos han sido eseogidos usando el "d", mirntras que las filas se se1ec:c:ionan basintlosr en alghn criterio que hay que suministrnr (en estr caso "Numdpto = 100").
consulta disyuntiva. Una consulta cuyas condiciones estin conrctadas por un "or" , o algun sim1)olo equivalrnte.
Consultas eonjuntivas y disyuntivas La Figura 8.38 extirnde la consulta de la Figura 8.37 para pedir 10s nomhres dc todos 10s empleados del Departamento 100 que ganan m i s de $30.000 a1 afio. Esta rs una consulta conjuntiva ('and") en la clue estamos preguntando por la lista d r emplrados qnr rstiri en el departamento 100 y (und) que ganan a1 afio m i s de $30.000. La conjunci6n sr puede extender a m i s de dos condiciones simplemente entrando todas las condicicrnes "and" en una linra de la consulta. Las conjunciones purden coniprender varios atrihutos. asi como varios valorrs para un simple atrihuto. Supongamos que se quiere una conjuncihri con varios valores d r un mismcr atributo, tal como que el salario sea mayor de $30.000 y menor clue $50.000. Esto es lo que sr hace en la Figira 8.39. La coma entrr 10s valores deseados es 1;r clue establece la cwnjuncibn requerida. La condici6n disyuntiva ("or") se puede indicar d r dos maneras. Dos o niis filas en una consulta intlican una conesihn "or" rntre cada fila, tal comer se muestra r n la Figur a 8.39. Aqui se ha pedido una lista con los nonilms de todos 10s rmpleados que estin en el Departamento 100, o que ganan miis de $30.000 a1 afio. En la Figura 8.41 se ilustra una
' Como, poner como ( N . drl T.).
IMPLEMENTACI~NRELACIONAL C O N LENGUAJESDE CONSULTA GRAFICOS
(a) La consulta
(b) La respuesta
Nurnernp
omemp
Name
DISENOY ADMINISTRACION DE BASES DE DATOS
irguncla forma de hacer esto. tlondr el "or" i r h a inirrtaclo r n t r r l a i cwltlwiones. Este mbtoclo p w d e utilizarse sGlo si la conclic%n "or" i r aplica a1 (*ontenitlotie nn imico a t r i l ) ~ to. E n la Figura 8.41 se h a n solicitatlo loi nomhrei tlv loi rmpleaclos aiignadoi a1 De1)artamt3nto 100 o (or) al Departanlento 200. A1 igual q u r en c n a l q ~ ~ ilenguaje er d r cwniulta. l a i c*onditionri "and" J *'or'^ i r 1)urdvn comhinar en una misma w n i n l t a . E n la Figura 8.42 se muestra u n t ~ j w q ) l o .ltlni iv hall iolicitado loi no~nl)reiclr loi mlplcados aiignados a lo5 dcpartamvntoi 100 o (or) 200 (and) q11e ganan n l i i tie $30.000 a1 afio. C i l r u l o ~ . S c pnetlen llebar a cabo c * i l ( d o idvntro tlv nna cwninlta. Totloi loi c*ilrdoi tlrhrn r i t a r prewdidos drl operador C4LC. Sr puede \ e r u n rjrmplo en la Figura 8.43. Se ha solicitado el c*il(*ulo tlel ialario pronletlio. En la Figura 8.44 se obser\a u n c~jcmplosimilar. ihlo qnc*aqui lo clue sr ha solicitado r i el ialario proincdio por clrpartamento. I'onirnclo una tnarra en la columiia 1)epartanirnto se lleka a cxho el t*&lc~do indicatlo para 10s grnpos clr filas qne tienen v1 mismo kalor en el atrihnto Departamento. E n estos dos rjrmplos se ha n.ado el operaclor C 4LC junto con el operador 4C EKAGE: (protnrdio). Otras opcracionrs son SIJM.I.COlINT. MAX, y MIN. T a m h i h sr purtlrn l h a r a caho calculos especializadoi.
IMPLEMENTACION
273
RELACIONAL C O N LENGUAJES DE CONSULTA GRAFICOS
ting. El "4"( l r ~ i o t a10s a t r i l ~ u t o st a ~ l ? ~\,aIt)r,-h os bt, tlrsra ~ I I I ~ ) I ~ I I I ~OI .l. ) r i ~ ~ ~ i vt.1~ I)ot011 ~tlo Join Ta1)lw (wuni011tlr t : ~ l ~ l i ~ tlrs )la l ~ ~ r ri11i1li1 ra y Iwgo ~ I I I S I I I I I ~ tIA t i 10s atri1111tos( I t s la3 tlos tal)las clur s r utilizarin I W I I I O r n l a w , P \ l < . l D O l porw una i ~ n i t *\arial)lv a "KG" t~nt' 11111t~~tri1 (111rt.1 r 1 1 1 a t ~ \ i I i ( l t ~(KG \itwtl tlrl latin? P X P I I I ~ )g~r~( l t k - t111r aigiifit*a .'1)or r n~ la ~ ~~ . I ) ~ I I I I I IS~3'111)1'1'0 I~ t l v a1111)as r,jrtnpl~~.'). [,a \ . a r i a l ~ l r"EC;Ol" t11w w i i i t r o ( l ~ tal)las III'TOS ! I'ERSOY AL i~rtila~ W I I I Ovarial)lit. ~lltdiantt.la 1.11itI hr r n l a z a ~las ~ taljla? (lo 111iwo11otIria l ~ i ~ l ~ rnsatlo r s t ~ .'x*' I ) *'!"*). Sin t w ~ l ~ a ~ -ogIo~.s 6 r \ r stint% t ~ la '-b:(;Olv* I W la ti11)1:1 1)I''I'OS ~ s t rit ~ s t r i ~ ~ g ill i t l\aIor i~ t l t ~h L~kIDPI'O asotiatlo taon 1.1 I I O I I I ~ ) I Y'.Jlarlwti~~g*'. 1h rstv 1 1 1 0 t h . h i S I I ~ O I I ~ I I I Ot Sp r ('1 11il111rrotIt:l i t I t ~ l ~ i ~ r t ; tlr ~ ~~~~~~t *a ~ r l~i t o~ r st 300. i r ~ g1.l1tollc.r~ rl b n i w "KC01" 1)t*r111isil)lt' ('11 Dl'TOS r s :
.
.
lista ( I t * tot11)lrloi v t ~ ~ ~ t l t v l to[ l rl ttL~s111ni11istri111 ~ 1)itms ;I 10s ~)ro!rt.toi lotdizaclos r n -'O~~tl;~ntl". Vvmos I ~ I I ( >1"s t a l ~ l a sPRP#\IYrES!I'lIYrE5 (.still t*nlazatli~b 11orla \ ~ a r i a l ~tlr lr ~ t b n t w r ~ ~ tIIII;I r a t ' o r r t * ~ ~ ) o ~ ~ ('11 ( l rS17R1 ~ ~ t - I'4KTE i;~ sts r n l ; ~ 1101nl)rt'".k:CO.)'*. Sitwl)rt*( 1 1 1 s(* 1lllil
+ 1
PRPARTES DB-Numproy-Numparte-Cdntdad
1
il1b EI.41 l b EODi lb
7
DISENOY ADMINISTRACI~NDE BASES DE DATOS
zan las dos filas reipertivas. Mirando mas alla en la tabla PRPARTES sv \ v qnc*c w s pivzas sv cnlazan rorl 10s proyectos en "Outland" a travi.5 dc la varialdr "E(;Oln. E*ta \arial)le cwnerta las filas en la talda PRPARTES ron las filas apropiadas cn la tallla I'ROYECTS ".
Lenguaje de aplicacicin El lengnaje cle aplicwiim (1v PARADOX (OBJECTPAL) cs n n lvilgi!a~r (11.prograa ohjctos y estruc.turac1o. Este proporcioinari6n tle base de datoi cle alto nivel, 01-ic~~tacio na a1 usuario u n m6todo p a r a integral- las Orclenes interartivas cle PAR 4DOY dentro de m a aplic.aci6n. La escritura tle programas usualmente se ve romo una serie de instrncrio~ nes. rompuestas tle asevc.raciones simples, d e instrurriones rondicionales y ( 1 instrncriones iterativas. A rontinuari0n se verh 1)revrmente la sintaxis general cle estas dos illtlmai estrnc-turas. i ~ ~ b t r u r r irondirioual. i)~~ t na instriic~cihn([lie prtyunta p r iina cwnclic*ihn cletei.n~ina ~1lwoc*esamientoa segnir srgiln el cwn~plin~iento de la ronclieihn. illstrurciou SWITCH Una instrnc&n qnt, permite pregnntar par una wrie de cwncliciones. instrucci6n CASE. Se Lisa con el SWITCIl para indirar r u i l e5 el prowsamiento a segnir cuanclo una rondicihn sca verdadera.
Instrurciones coiiclicio~~ales. I,a sintaxis general cle lab instrurriones I F-THEN-ELSE es romo signe I F THEN < i n s t r u c c i o n e s > ELSE < i n s t r u c c i o n e s > END1F
Las instruc:c*ionc.sSWITCH son similares a mdtiples instrucciones IF-THEN-ELSE. Mivntras (pie cacla IF-THEN-ELSE (*ontien(.s6lo (10s ramas, una instrucciim SWlTCH contiene una instruccibn CASE p a r a cada rama posible. La instrurci6n CASE contiene una c o n d i c i h seguicla cle dos puntos y u n conjunto de 6rdenes. Se ejecuta s6lo una d e las , rontinuaci0n se instrucriones CASE cada vez clue s r ejrcute una instrucciim SWITCH. 4 muestra u n ejemplo: SWITCH CASE CASE
opcion opcion
OTHERWISE : ENDSWITCH
=
=
" D a t o s d e l c l i e n t e " : " T r a n s a c c i o n e s " :
-
K>
La primera instrucri6n CASE que satisfaga una c o n d i c i h (que evalile verclaclero) sera ejerntada. Si ninguna d e las condiriones CASE es vertladera entonces se ejecuta la instrucci6n OTHERWISE. instrurcion iterativa. Una instrurcibn clue se puede repetir una rierta cantidad de veces.
Instrucciones iterativas. La sintaxis general d e una instrurri6n de iterariim es la siguiente: WHILE < l i s t a de i n s t r u c c i o n e s a e l e c u t a r > ENDWHILE
S r comprueba la condici6n del WHILE (mientras) y si 6sta es verdadera se ejecuta la lista de instrucciones. Cada vez q u r la conclici6n sr cumpla, se rjecuta la lista. La instrucc i h ENDWHILE hace que la qjecuci6n vuelva de nuevo a la parte WHILE. Cuando la condicihn del WHILE rvaliir falso, el control del programa s r pasa a la instruc:cihn clue siga a1 ENDWHILE.
Recurrdr qnr 10s nomlwrn no purtirn wnrr mas dr who rararlrrm (N. drl T.).
DISENOY ADMINISTRACION DE BASES DE DATOS
(IDCLIENTE, NOMB-CLIENTE , RENTA-ANUAL) (EMBARQUE-#, ID-CLIENTE, PESO, CAMION-#, Clave e x t e r n a : DESTINO que r e f e r e n c i a a CIUDAD CAMION (CAMO I N-#, NOMB-CONDUCTOR) CIUDAD (NOMRCIUDAD, POBLACION)
CLIENTE EMBARQUE
DESTINO)
i.(:u<.s son los nilmrros tlc 111s( . a m i o ~ ~q11r ~ ! s h a n llwado ~ ) a q w L w(c:ml)artj~ws) ~ I ~r~lcima II. tlr las 100 lihras? d. Ui. tt~tlos10s datos tlr 10s r n ~ l ~ a r t l n clr r s rnls d r 20 litwas. r.
111illonc.s. ,(:lthl cbsrl I I) drl clirntr Wilson Hroth(w? 10, noml)rr
f.
I .
,
\ qnb drstinos h a n enviado rmlrarqnrs las compafiiah ron renta nnnal menor dr
$1 mill6nY 1Quiht:s son los clientes q n r tienen m2is de $5 mil1ont.s de rrnta annal \- q u r h a n rnviatio e m b a r ~ j n r scon prso de mrnos d r 1 lihra? e. i,()uiSnrs son 10s c:lic'ntes q u r tienen sobrr 10s $5 niilloncs en renta nnual y que han
tl.
IMPLEMENTACION RELACIONAL C O N LENGUAJESDE CONSULTA G ~ F I C O S
f.
2 77
t*ti\iatloem1)arques c1e menos d r 1 I h r a o q u r han enpiado cin1)arcpei a San F r i ~ n ciscw? ;.Qnibncs son 10s condut*torrsclue hau transportado rmharqnrs dt, 10s rlirntes con rcwta a n d s o l w 10s $20 tnillones a riudadcs con pohlacibn d t ~mhs tle 1 mill611 dc hal)itanttts?
4. Funciones integrctdos (built-in) a.
;,Cliil el prso tnrtlio d r u n cmI)arqur?
I). iC11il rs el prso tnrtlio (1c 10s em1)arques qne van para Atlanta? r. ;,Cuintos miharqucs h a tmpiat1o r l clirntr 433? ;,Cnhlrs son las c*indatlrsd r la hasr de datos qucbtienrn la mayor y la nirnor pol~lacibn? e . i,Cllil es el peso total dt. 10s r ~ n l ~ a r q u transportados es r n rl cami6n 82:'
d.
5. G K O C P B Y a.
I. c.
P a r a cadir clicwtr, i(.uil es el peso promedio dc 104 p q u r t e s (rmharqurs) enviados por tlic-11ot-lirntr? P a r a catla ciuc1at1, jcnil rs rl peso niiximo d r uti rtttbarque drstinado a dicha cinclad? Para cada tiuc1ad (*onpohlaci6n sobre el mill611 de hahitantes. ~ c u i i es l el peso minimo dc u n rm1)arqur rnviado a &ha ciudad?
6. Opwariones de rnodificnci6n de la base d e datos a. Aiiatla el cami6n 95 con el conductor Winston. h. Borrc. d r la hasr tlr tlatos todas las ciudades con poblaci6n por dcl)ajo d e 5.000. tb.
No s r olvidr tle actualizar tam1)ii.n la rrlatihn EMBARQUE. Coinlrrta el peso de catla envio a ltilogramos dikidieudo cl prso p o r 2.2.
. Usando la definici6n original de Zloof d r QBE (Zloof, 1975, 1977). llrvr a caho utia comparaci6n vomprensiva tle SQL y QBE. Examine c6mo 10s siguientes t i p s d r consultas SQL s r p u r d r n tratar en QBE: a. Suhconsultas no correlacionadas I). Suhconsultas correlacionadas r. NOT EXISTS P a r a cada uno de 10s tipos anterioreu w e consultas especific-as del Capitulo 7 y defina c6mo se resoh erian en QBE.
2. Analice y compare QBE y PAR.4DOX PARA WINDOWS.
SISTEMAS DE BASES DE DATOS CLIENTEISERVIDOR
lntroduccion: Un resumen de 10s conceptos de clientelservidor Definicion de las tablas de la base de datos en el sistema de base de datos servidor Sistemas de gestion Creacion de tipos de datos definidos por el usuario Definicion de tablas individuales
Ejecucion iterativa: Instruccion WHILE BREAK y C O N T I N U E DECLARE y variables locales Procedimientos almacenados Valores por defect0 Uso del RETURN lntroduccion a 10s disparadores (Triggers) Uso de 10s disparadores en SQL Server y
Definicion de claves primarias y claves externas Restricciones CHECK Lenguaje de definicion de datos: Sumario y ejemplo final Manipulacion y programacion del servidor de datos Lenguaje de flujo-de-control
Oracle Desarrollo de aplicaciones cliente El enfoque de Power Builder Uso de Power Builder Construir una aplicacion Crear Datawindows Crear Windows Resumen
Instruccion de bloque:
Preguntas de repaso
BEGIN ... E N D
Problemas y ejercicios
Instruccion condicional IF...ELSE
Proyectos y cuestiones profesionales
279
SISTEMAS DE BASES DE DATOS CLIENTEISERVIDOR
8"
Pero. dqud cs eaactainente clier~telservidor:~ Susan Bro(ldhent y Surtfbrd Jf(i11on estcin discutiendo /us posibilidades d e ccimbicir sus uplieti(~ionesd e oficinti desde un grcm c o m p t a c l o r trtrdicional a unu plntaformn cli~rlt e l s e r d o r . SUSUII esth reticente en continuar h u ~ t que ( ~ VPU unn c1nru ventajn en hncer el cumbio. ~ uraci hnicn y potente computc~dorrrque Saiford le e o n t e ~ t ~"En : 1ugur ( 1 tener riluneje t o t l a ~nuestras aplicaciones principles. m u platrlforrrrci clientelservidor es unu P lus coinputurlorc~sde sobremesa con potentes computndorns llnrnridns serred ~ I I enlnza ~irlores.?uestro sisteii~(1de gestibia d~ ~ U S Pd e (lutosj~ncioiwrcien el servidor y /us otras computadorus accedcrcin u la base de dutos u truvks d e In red medinnte el servidor." " i Y q u i ~ w ~ t c ~nos j u sofrere este erlfbquc~?" ' ' h l t r nuestra geiltc~yu tiene coinputadorns en sus escritorios, q u usan ~ para u s aplic~lcior~es ii~depeiadic~~ltes. tal como procesniniento de texto hojns de ccilculo. Coneetrindolos tenemos todr~slus ventujas cle unn red. tales como compnrtir s(ft~(larey correo electrciiaico. p r o (~(le~rncis podernos t m e r (listiiatns ventajus clientel.servidor". 2Coino cliciles? "En el ser~~idorfiincioimrri un SGHD potente y declicc~do,mientrcls que lrrs I I I ( ; ~ I L ~ I I U S clientes tendrcin cuds unu SIL propin interf& pr@a de usuario ( G U I ) p a r a dnrle mcis poder y fi~cilidudrle I L .a ~la presentucibn de 10s tlutos, 10s informes. etc. Ademcis, n u e s t r ~ equip0 de sisteiim tcwdria herran~ierrtnspotei~tesp u r u d ~ s a r r o l l a sisternas r en 1a.s mriquii u ~ sclient^ y a lu vez poder usnr todus lus herramientus rlisponibles en el SGBD. Tendremos un(1 lnctyor cuntidr~dd e f i i n e i o ~ ~en~ siauestrns computadorus que l r ~ sclueJ teneinos clhoro, lo (pie c o m p ~ n s u r i anuestra inv~rsicind e c(lpit~1." "Yu esto me p r e c e interesaiate. Vr~nlosu verlo en rncia profir~~diclud."
'
n rapitulos anteriows se han estutliaclo algunos aspectos iniciales dc 10s sistc.inas clientelservidor. En este t q ~ i t u l ose arnpliari el rstudio, se ilustrarin las filncionrs que estan disl~onihlesen los sistenlas t-lirntelservidor tanto en SCBD o servidor como en el tlesarrollo de In at)licacicin o lado del clirnte. Dcs-
Conlprendcr la fornla d r divisiim del tra1)ajo que es posible h a m r con el enfoc1ue y ver chl~iorsa divisiim henefiria a las organizaciones porque lc rliei~tr/sc~rvitlor p r m i t e m a utilizacihn colnplcta cle la calraciclad tle sus sistemas. Drfinir los escluel~iasd c la ]base de datos en el SGBD servidor, utilizando muchas c a p r i d a d e s l~otcntes. Utilizar rl Icmguajt. de inanipularicin del SGBD servidor para cwrihir programas q11e x q ~ ( : ventaja n drl poder ilnico dc: 10s coneeptos de las l m e s de datos relaeionales. Comprencler los rntornos modernos d r aplicacii,li en el ma1 se p r o d w e n sistemas c.liclntes que 1)ncdrn interactuar con SGRDs servidorrs.
Introducci6n: Un resumen de 10s conceptos clientelservidor servidor. Una red local consistentr de co~nlmtaclorasclientes qur re(-ihrnservicio cle una computadora servidor.
E n el Capitulo 1 se analizaron algunas caracteristicas )r ventajas d e 10s sistrmas clirntelservitlor. Se seiialh clue ulia platafor~rraclier~te/servidores una red tle cornputadoras
'
in$& ( N .
Siglas
drl
d ~ T.). l
tbrmino
rn
inglbs
Graphicc~lGsrr Int~rficcr:yor srr siglas chlahlrcidas. sr. han tlrjado cn
DISENOY ADMINISTRAC~ONDE BASES DE DATOS
Iilterfaz Grjfica de I'suario (GIJI). Pantallas y f ~ ~ n t i o nt rpst , 1)rintlan inedios grifitws para ~ I I C1111 ttsuario final awetla a tin sisttm~atle t*ilculo.
en 1;) qut. una o niis ofrecrn servicios !; d r ahi el rioin1)rt~dt. sarridores. I m restantes twnq~iitndorestle la red son rlieiites de estos st~rvitlores.Catla tipo tle m i q u i n a sta o1)timiza p a r a q11e IIeve a t * a h sus funciones rsl)et*ifit.asdcntro del sistema tle la red. De esta inanrra se optimiz;~iilos servicios p a r a 1)rindar servicios a in~it.host.1it.ntt.s. Los st.rricios d e bases tlr datos snelen her de 10s s t m i t i o s inis fre(~uentes.Pt)r otro lado. 10s sistemas t-1itmtt.s se optiinixan p a r a la cantratla !; presentatihn tlt. 10s datos. P o r tanto. Gstos int.111yen norinalnwnte interfaces grificaa d c usuario (GI%) clue 1)rintlan nietlios orientados al nsuario p a r a fatilitar la entrada tle los datos p p a r a d a r forinato ~ n o s t r a r10s datos d e salida. E n este t*apitiilo se veran 10s sisttwas cliente/servidor desde t.1 lado del servidor o base de datos y desde el lado dta la ~ m w n t a c i h no del cliente. E n la primera parttb del c a p tulo se explit.ar;:ln las caractrristicas tle dos sistmias servitlores tle I ~ a s r sd r datos. Oracle .! SQI, Server. E n particular nos interrsarrmos cn a t p 4 l a s caracteristitw de 10s SGBD que no hayan sitlo vistas prrt-ianientr en estc liljro, o q u r se hayan t-isto s d o drsde u n planteamiento tr6ric.o. En la i~ltituap a r t r dcl capitulo se exuminari uii cntorno para el desarrollo d r aplicacionrs. PowerBuiltlrr, clue se usa p a r a desarrollar sistrmas (pie f u n t i o n a r i n en las miquinas clirntes tlr uua plataforma t~lirntr/servitlor.Estos sistemas son potentt-s y populares en 10s entornos conierciales at*tuales.Todos los nuevos t*ontseptosqut- sc presetitarLn son vitales para una hurna coniprensih d r la teoria y la prictica dr las bases d r datos m o d t ~ n a s . Antes d e continual dc1)enios sriialar t p e ~ u ~ t ~que s t ocualquiera de estos sistvmas tien r mnchos m i s ret*nrsosclue los que ~ ) o d r i n o ~ l ( ~ s c ~en r i hs6lo i r tin ca1)itulo. o int~lusoen un iinico lihro, se h a n selet*tionadosolamtwte aquellos aspectos m i s rrlevantes p a r a el conttJxto de esta exposiri6n. P a r a inis detalles se t l t h ~ consultar i a 10s provredores dt* tbstos sistemas o de otros similares. Drlmnos notar clue la p r e s r n t a c i i ) ~s e r i aritocontenida y t p e 1)orlo tanto no debe ser netwario que el lector tenga t p c t r n r r acceso a estos sistemas para (pic se pueda lwneficiar tlr rsta presentacihn. Los prinripios implicados aqui se purden comprender por si solos y s(- pueden aplicar m las preguntas. prot)lenias y ejrrtitios qii(> sr ofrecen a1 final tie1 cnyitulo. Como se mrntionb en el Capitulo 7, el lenguaje SQL estuvo tlisponil)le comercialmente p o r primera vrz a finales de 10s aiios 70 en u n sistrma tlr grsti6n dc base de tlatos (SGBD) drsarrollado por la empresa Oracle. Como ya tlijimos antcriormente, Oraclr s e r i estudiado en este capitulo. P o r supursto. Oraclr ha eqwrimrntado muchos desarrollos y mejoras tlrsdr su versibn original. La vrrsibn drl SGBD Oraclr clue se analizari aqui se llama O r a r l r i Server, y e s t i concrhida para o p r r a r en 1111 entorno t:lirnte/servidor. Tam1)iCn veremos otro SGBD coinercial llamado SQL Server. SQL Server fue drsarrolladtr inicialnientr p o r Syhase, p r r o tamhibn se comercializa p o r Microsoft. Analizaremos aqui aspet:tos tlel Microsoft SQL Server, Vrrsi6n 4.2. Ambos productos hrindan lenguajes de brdenes orirntados a texto. TanhiGn h r i ~ i d a ninterfaces d e usuario q u r visualizan y responden a las entradas d c 10s usuarios. Los rjrmplos d e pantallas en Ins interfaces de usuario que se usarLn provienen de SQL Server. TambiCn se v e r i n rjemplos en el lenguaje de hrcirnrs tlr Oracle. Ambos productos son SGBD poderosos, q u r brindan tanto lenguajes de tlrfinitihn d r datos (LDD) y lenguajes d r manipulacihn de datos (LMD) considerablrmmtr sofisticados. Este capitulo discutr caracteristicas importantes d e ambos lenguajrs. Se v r r i cbmo se pueden usar sus LDDs p a r a definir tablas tlr la hase de datos y cbmo usar sus LMDs para realizar operacio~wsavanzadas sobre 10s datos. Esta porciim d r l capitulo e s t i dividida r n (10s partes principalrs: (1) definicibn de tablas tle la base de datos y (2) manipulaci611 de 10s datos y programacibn. Aunque se i r i n examinando amhos sistemas a1 mismo tiempo, no es nuestro propbsito hacer una comparacibn detallada de sus capacidades. E n lugar d e esto, estamos interrsados en 10s principios qiir puedan derivarsr para ser usados en la gestibn de bases de datos. S d o en algunas ocasiones se v e r i c u i n d o uno de 10s siste~nastiene alguna capacidad significativa q u r el otro no tiene.
SISTEMAS DE BASES DE DATOS CLIENTE/SERVIDOR
Definiei6n de las tablas de la base de datos en el sistema de base de datos servidor En los sisteinas tlut, sr rnaiiiinarin 1.11 csta secvibu. el proceso de delinir las t a l h c t l v 1;1 I)ast, tle tlatos twusistr nl los 1)asos siguientes:
1. C r e w los tipos tlef'iuidos 1)or el usnuiio 2. Ut~f'i~iir lab t a l ~ l a sindividnales
Creaci6n de tipos de datos definidos por el usuario
trabajador (id-trabajador, nomb-trabajador, tarifa-hr, oficio, id-supv) asignacion (id-trabalador, id-edificio, fecha-inicio, Num-dias) edificio ( id-edificio, dlr-edificio, t i p o , nivel-calidad, categoria)
SQl, Server j Oracle hrindan nna ~ a r i r d a t tle l tipos de datos definidos por el sisttb. ma. tales como t*arJcter (charrrrter),rntero ( i i r t ~ g e r )y, fecha-hora ( d a t ~ t t r i w )Ademis. SQI, S e r ~ e hrintla r facilitlatles 11al-a( w a r t i p 3 de datos definidos poi- el usnario. Un ti11o de tlatos tlefinido por el usuario no rs mLs clue un snbtipo de nno de 10s tipos de datos del iistein,~.Es decir. es nn ti110 tle tlato,s del sistema clue ha sido rrstringido tle alguna mane-
DISENOY ADMINISTRACION DE BASES DE DATOS
Estas s r iriii txplic~andoa iiicditla q u r avanwnios. S r iiitroduw "tipo-id*' como Nornbre. Estr srrl; ~1riorril~rrclur st. utilizari dondt. q u i r r a q u r s r tlt4ir1an c~oluiimasclur ) c~ontriidrirl ID tcngan rstr t i p (11%datos. 1,a raja Olcner ( l ~ r o p i r t a r i oa~ttomitic*aitic~iitt~ login drl usuario I.-john-(lor*') y la caja 73pe (tit,())cwntienr IIor drfbvto "i~rt"( p o r irlteger). I'ursto qucLc p ~ e m o cIur s t.1 t i p I ~ a s dr r rstr tilm drfinido por (4 usuario sra irttcycr (entero). rntoiiws no s r t ~ a m l ~ i arstr r i campo. anntlne lmlriamos ha1)rrlo c a m l ~ i a d oI M I I ' algiln otro t i p soportatlo j ~ o rr l sistrma. . l h o r a , dt.ritro d r SOL Server. 10s c a m p s irltc~g e r (entero) son s i c ~ n p r etlr la misma l o n g i t ~ d por . tanto la longitud d d c a m p no rs signifirativa y potlrmos pasar aohrr rsto. Ohserve ahora qut' la r a j a Nulls (niilo) r s t i vacia. lo q n r intlica clue no s r permit(: el n ~ ~ IWl owinpos con rstr t i p (lr datos. S i quisibramos ~ w r i n i t i rnulos. t t d r i a m o s q u r iiidicarlo r n rsta raja. prro como no cjucsrrii~osla clrjanios asi. ],as dos idtimas twtradas son p a r a PI valor p r tlrfecto y para una rrgla. Kstas s r cxplicarin con 1116s clrtallr postrriornirntr. Por alior;~~iitiplemrritrintf carernos q u r no tlurrenlos ningim valor p o r drfrc-to para este tipo de tlatos. poi- tanto p a s a n ~ f ai la raja Rule (regla). regla. I n a restric~i6n Qnerritios una regla para rstc: t i p clr clatos Ilara restringir q n r 10s valorrs posihlrs sol)rcl rl ~ a l o (lur r stA terigan q w s r r mmoi-rs c p r 100.000. Esta rrgla st. define srparatlanicntr )- Ir ilanlos rl pcmtitt~rn m a ccclu~una. nonil)rr "itl-vilido" . Esto s r h a w usando rl I-liadrode diilogo Marwge Rzcles tlur s r iuurscsta1,lccda pol. 11na t r a en la Figura 9.4. En la caja Rule Corrter~ts(t:ontcnido de la rrgla) twleamos: raprrsihn conclicional. CREATE RULE id-valido AS @ i d > 0 and @id < 100000 El nombre cie la rrgla rs "id-\alido" j aparece e n la raja Rzile ) en la caja Properties (propirdadt,s) en la Figura 9.3. I,a regla rstal~lecrc p r rl valor d r l paranietro @id del~cx ser mayor q u r 0 y inenor q u r 100.000. Estr pariiiirtro b e tonia drl valor actual d r la t d u m na siemprr q u r rl t i p d r tlatos se est6 usando r n m a defiuicihn dc. columna. P o r rjriiiplo, aupongamos que s r drfiiir iti-trahajador r u la tabla tralxljatlor con el tipo d r d a t m
SISTEMAS DE BASES DE DATOS CLIENTEISERVIDOR
File -
Edit -
View -
C ~ r e n Connections: t
SQL-SERVER
Tools -
I?
M a n a" ae -
Obiect ,
Window -
Helo
Current Database:
john-doe
a
File
Edit
View
Tools
lohn-doe
1-1:
Microsoft SQL Object Manager Manaae Obiect Window Helo
fohn-doe
"lohn-doe
DISENOY ADMINISTRAC~ON DE BASES DE DATOS
Definiendo tablas individuales El prhximo paso es t l c f i ~ ~las i r taldas t*on SIIS t*oluu~nas intiividua1t.s. Se ilustrarh tvtt. Ijrot w o (*onla pantalla .Ilalrccpes 'lit6lr.s dcl SQI, Srrver (Figura 9.5), a1 mismo tienil)o analizarrntos algunas de sns t.aracteristit.as interactivas. Luego s r analizarin algunas t8aractcristicas atlicionales para la definivihn de ilatos (lor estiil tlisponihles en Oracle. El lwotwo d r definicihn d r la tallla se dcsarrolla tie la forina siguiente:
1. Las cwlumnas tle la n w v a tahla se dcfinen en el hrca cuatlrit~ulath(grid c~recc)clue e s t i dehajo tle la vaja P r o p r r t i ~ s .Ol)ser\r tine la definicihn tle nna c.olunnna ot.111"' toda una fila. Se muestran 21 filas tle drfinicibn a la vez en la pantalla. El m a driculatlo se t~uetic~ mover hacia ahajo si se newsitase drfinir rnis de '71 columnas.
SISTEMAS DE BASES DE DATOS CLIENTEISERVIDOR
-1
Eile
Edit View 1001s Manage Qbiect Window Help
X
Propert~es -
1
1
--
7
1 Segments
I
I
=
default
(SQLtype] 12 money ('5U L type)
nornb-trabaj ador char
.. ..
.
. . .. .. .
2. La fila de definicibn de una columna eonsiste en Column t u m e (nonihre tle colnmna), Datatype ( t i p de datos) y Length (longitnd) y las indicaciones de las posibles rrstricciones: Nulls (nnlos), nn valor Default jpor clrfecto). ) Rule (regla) q w sr aplican a 10s valores de la colurnna. 3. Se define m a tahla nsando la orden Create Table (crear talda). ttindole u n nomb r e a la t a l h y tlefiniendo cada uua de las columnas. inclnyrncto zu tipo de datos, su longitud y las posildes re>tricciones.
valor por d ~ f e c t o .Un \ alor qne qe entra automht~camentepor el iistema cuando el usuario lo omita.
Se comeuzari definiendo la tabla trahajador. E n la caja Colum Name d e la fila 1 entramos el nombre de la qne s e r i lrnguaje la primera columna d e la tahla, id-trabajador. se pulsa tab (tabulacibn) y se pasa a1 canlpo Datatype ( t i p de datos). Puesto que el t i p de datos que s r quiere para id-trabajador es el tipo de datos definido por el usuario tipo-id, se t e c h esto aqni. Esto rompleta la definicihn d r id-trabajador porque todas las otras cajas t m d r i n en cuenta lo que tlefinimos p a r a tipo-id. Podemos por tanto pasar a la prbxima fila d e la cuadricula. Ahora se introcluciri nod-trahajaclor y se designa que su tipo de datos es character (c-aricter) y sr r n t r a 12 como 3n longitud. Este c a m p puede ser nnlo, luego se pone nna marra en la caja NziIIs. Esta columna no t e n d r i valor por defecto ni regla. El prbximo n o m l m de colurnna es "tar~fa-hr" y su tipo d r datos es money (dinero), aqui no hay que especificar ninguna longitnd. Esta colurnna tambitn puede ser nula. La prbxima columna rs "oficio" (character 8), que puede ser nula, j para la cual se quiere drfinir un valor por clrfecto y una regla. Expliquemos brevemente el concepto d e valor por defecto para nna columna. Un valor p o r defect0 se indica en la caja Default. Este valor se insertari automiticamente en la columna si el usuario lalla a1 introducir un
DISENOY ADMINISTRACION DE BASES DE DATOS
valor. P o r rjemplo. supongiunos q u r tenemos una rolumna q u r nos d a el nilnlero d r trlbfo110 d r u u trabajador. Si no s r d a ningim nhmrro a1 insrrtar un tralbajador quiiiiramos clue r l histenla ponga rntonres automliticanrrnte r l nilnirro drl conmutador c ~ m t r a l .Estr seria en r \ t r caso r l valor ])or defrcto para la columna nilmero d r trlifono. O1)viaiiicnte. si sr rspecifica tin \ a h por drfrcto para m a c*olumna, no s r i n t r o t h cirli automliticamrnte un valor nulo en el c a w r n clue el nsuario no introduzca rxplicitaun nientc 1111 valor. E n su l r ~ g a rse inti-odurirh el \ alor por d(.fccto. P o r tanto. si scs 11ouc~ l a l o r en la caja Ikfurrlt (dcfwto). no importa lo clue s r hnqa rspc.c*ificado con rrlucibn a1 l a l o r i ~ u l o .La cwtratla en la vaja \rrlls cll~rtlaol)solt.ta si hay una entracla en la caja 1)yfirzrlt. Normalmentr stbponr uua rntratla vn la caja N~rllstwancio no se esprcific-a ningiin v alor por drfrcto. DrSi~iamc~\ ahora un valor por tlrfrc-to para la c d u n m a "oficio'*. P o r cirfecto clueremos cluv ('1 of'icio d e o n trahajador sea "Car1)intrro". Estr valor por drfrrto \r rspecifica a travC.s d r la vaja 1.ltii~cigeI)+rrlt.s (grstionar alorr\ por drfecto). tliic 1'5 vi~ualinriltritlinla nlisma manera. 41 introtlucir ticx a la caja Ilui~crpeRules (Figura 9.4) ! t r a l ~ a j a41% a hora : CREATE DEFAULT oficio-df
AS ' C a r p i n t e r o '
sc, c r r a la drfinic-ihn d r un I alor por tlrirctn. Este puccie utilizarse en c u a l t p i r r t a l h en la clue sc quirra drliuir a 'Carpintrro' cwmo valor por drfrcto. Eli la pantalla d r clrliiiic~iOn cir la t a l h sc, introclnjo "oficio-(If-' cn la raja D~jilrrltpara la columna oficio. E n grnrral. un valor por drlrc*toc i e h s r r una rxpresihii constaiitr. E\ ckcir, no p u r d r i n c k i r variiil)l('s, 0 t a l h s , o nomhrrs d r twlumna. siiw solamriite valores ronbtantes, clue pucd(.ii (.star conectatlo\ con operadorrh aritmi~ticos. Ya rhtamos listos 1)ara clefinir una rcyla para rsta cwlumna q u r re\trinja 10s posi1)lt.s valorri clue picd(1 iiltroclucir rl usuario. S r q u i r r r quc. rl t i p de oficio (.st6 linlitado a 10s valoi-cs Elrctricista. Fontailrro, Carpintrro ) Ilhaiiil. P o r tanto. para ello ha! cjur caonst ~ u i la r rrgla: CREATE R U L E o f i c i o - v a l i d o 'Carpintero', 'Albanil')
AS @ o f i c i o i n ( ' E l e c t r i c i s t a ' , ' F o n t a n e r o ' ,
I)r*l)116\tlc e r r a r rsta rryla. st. tmtra su n o n l l ~ r r oficio-vliliclo. . r n la caja Rzrle 1)ar-a terminal t.ou la definicibn de la c d u n ~ n aofirio. , L;I iiltinia colun~natlv la t a l h rs i d - s u p . Esta tarn1,ii.n tiene el tilw de datos t i p - i d . Siu c r ~ ~ h a r g oen, r i t e cxso tanl1,iC.n queremos rspecifiear un valor por drfecto. S r tleja c.ou~oejrrcicio espec.ifirar clue el valor pol- ciefecto para id-sup eh 3231 (ver Proldrma 3). l a se p u t d r carcarla tahla. Las t;hlas rrstantrs, 4signaci6n y K':tlilicio, se purtien ( w a r de manera similar (ver Prohlcma 3).
restric.ri611. 1-na rcslrirri6n t k 10s valores posihks tlc t u ~ l a ys alrilmtos en una basr cle datos.
Definiendo rlaves primarias y externas. P a r a w a r la posi1)iliciad d r q u r mtomaticamrnte el SGBD fuerce las rrglas (it. intrgridad d r eutidadrs y cle rntidacl r e f r r r n c d dvl modrlo relacional, s r debt-n drfinir las c-laws r)riniariaa v las clavcs rxtrrilas. Este rs rrn prorrso hastante simplr tlur cBxponra continuaci6n. Se marlin 0rcknc:s dc.1 lcnguaje Oraclr. Antrs de eiupczar SP delw seiialar qne las claves primarias 4. externas se drlinen como restricciones en Orac-lr. Esto es, son restricciones de 10s posihles valores d c las tuplas y atrihutos en las tahlas de la h a w tie datos. P a r a este andisis s r supone el eiquema siguiente: t r a b a j a d o r ( i d - t r a b a j a d o r , nomb-trabajador, t a r i f a - h r , o f i c i o , id-supv) Foreign Key: id-supv r e f e r e n c e s t r a b a j a d o r a s i g n a c i o n ( i d - t r a b a j a d o r , i d - e d i f i c i o , f e c h a - i n i c i o , Num-dias) Foreign Keys: id-trabajador references trabajador id-edificio references trabajador
287
SISTEMAS DE BASES DE DATOS CLIENTEISERVIDOR
edif i c i o (id-edlficio, dir-edif l c i o , t i p o , nivel-calidad, categoria) herrarnienta-asignacion ( i d - t r a b a j a d o r , i d - e d i f i c i o , herrarnienta, f e c h a - i n i c i o , fecha-terminacion) Foreign Key: id-trabajador, id-edificio, reference asignacion
CREATE TABLE t r a b a j a d o r
( i d - t r a b a j a d o r tipo-id
CONSTRAINT l l p - i d t r
PRIMARY KEY,
Esto 110s m w s t r a el t~cmicwzotlr la tlrfinicihn tlr la tallla tr;~l)ajatlor.tlondr stbtlefinr la primrra twlunina. id-tral)ajatlor. (.on el t i p tlr tl;~tost~po-itl. S r ha tlrstaratlo r n nrprita la 1)artr twrrrymndiente a la tlc.fii~iriOntlr itl-tral~ajador como una tala\ r pri~nariu. La p l a 1 ) r a t.la\r (:ONSTI< \IYT intlica q u r lo t p c ' 1" i i g w a cwntinuatG11rs la rr.trit.t.ih tlr rlna r o l u n ~ n ' ~"-1ll)-itltr" . rs t.1 nomln-r tlur se 1r ha tlatlo a rsta rcstricrii~n.Si l u r y ha! algi~ninttwto d r kiolar rsta r r s t r i c ~ i 6 n .c.1 sistrnia tw\iarii n n mrnsajr clr rrror. itlcntifirantlo la rrstriwihn por su no1111)rc.1)rsl)uC.stlel non11)rr tlr la 1-rstricvih. la5 p l a h r a s tala\ a a s r r una ria\ t. p i m a r i a . \t-s PRlM \RE l i E l intliran clur rsta t ~ o l ~ r n ~ill-tral~ajador. na. Esto signifiv;~t p r su \ a h tlrlw s r r i1nic.o tlcntro tlr la 1-elat-ihnt r a l ~ j a t l o r! t ~ n vnt1111.a pnt.111~ ser nolo. Esta ~-rstrit.t.ihns r t l t m o r i i ~ ~restricri6n ~a tle c o l u ~ n n aportlur SP t ~ \ t a l ) l r t ~ ' t80nlo1)artr tit. la t l e l ~ n i c ~ htle n una t-olnmna. 411ora tlelinanios la c.la\r l)ri~nariatlr la tahla asipnarihn. E-ta c l a \ r consiite tbn(lotwlunmas. itl-tral);~jatlo~e ~tl-tvlil'itio. > por lo tanto no st. p ~ l r d ctlrfinir conio una r?.t r ~ r r i h ntlr t~olunina.En rstt. rase s r tltbl~rtlefinir cwno una rrstrit*tiOn tlr tallla. como p'irte tit- la drfiniriiin tlr la tabla. p r o twnio partc tlr la dcfinic.i6n de una coli~mna.Esto stx tlefint. rn el cwritt.uto tlr la tlefin~t~ihn tlr la t a b : CREATE TABLE a s i g n a c i o n
(id-trabajador tipo-id, id-edificio tipo-id,
... ,
CONSTRAINT l l p - i d t r e d
PRIMARY KEY ( i d - t r a b a j a d o r ,
id-edificio)
h n o r n t.1 ejrmplo anterior. st. ha tlestaratlo r n nrgrita la drfinicihn tlr la restrit.cihn (.lave primaria. El n o n d ~ r rtlr la rrstriccihn rs "111)-itltred". 1,as p a l a h a s r t w r \ atlas. PRIMARY KEY. intlit.an tlur lo clue sigue cntrr p a r h t e s i s (id-trabajatlor, id-cvlificio) juntos c o n s t i t ~ ~ y nna r n t*la\rprimaria para rsta tal'la. Ohservr quc la definicihn no purtlr ser aplicd)lr a una sola columna y (pic por l o t a n t o no tXsnna rcstricribn tlr rolurnna. Esta t's nno r c s t r i c c i i , ~d e tahla porqiir rrstringe los va1ort.s tlr rstas cwlnninas vistas twno una rebtricci6n tlr t a l h unidatl tlrntro de la tallla. 1,as coluninas id-trabajador t, id-rtlificio juntas dchrn tent.r un Una restrit.tihn clue st, aplira ~ i n ~ ~ d t i n e a m r n t t - i1nic.o valor tin la t a l h p ninguna tlr las dos purde tcnrr valor nulo. Si asumiruos clue ya s r han tlefinido todas las I-lavesprimarias tlrl rsqurma. entont.rs a iut'dtiplcs t-olun~nat l r l ~ r ntlrfinirsr las clavrs rxternas. A1 i g u d clue con las clavrs prinlarias, clue purtlcw M i tlr nua t a l h . nirsr a travjs tlr restritv:ionrs tic tdurnnas. si son claves rxternas t k una colurnna. o twmo rrstriccioncs tlr tahla. si son clavrs rxternas tnu1tic:olnmnas. P a r a ver 1111 t~jeniplotlr rlave rxterna clr una sola t d u r n n a . veanlos tlr nurvo la tlrfinicibn tle la tahla asignacibn: CREATE TABLE a s i g n a c i o n
( i d - t r a b a j a d o r t i p o - i d , REFERENCES t r a b a j a d o r , i d - e d i f i c i o t i p o - i d , REFERENCES e d i f i c i o ,
O1)srrve t p r rsta vez no st: ha nsatlo la palabra clavr CONSTRAINT. Podria hahrrse usado, pero m rstta caso es optional. La p a l a h a c l a w REFERENCES indica una clefinicihn d r clavr rxtrrna. La t:olutnna rs una clave externa q n r referencia a la tahla clue s r
DISENOY ADMINlSTRACION DE BASES DE DATOS
Es tlrrir. id-trabajatlor es 1235 r itl-tdificio es ,525. Esto si;nifiva t p t x 1935 tlrlw s r r 515 dcl)e s r r una ( h e tic m a tupla (.n nna c l a w (11.alguna tupla en 1;) tabla trahajador. !la t a l h rdificio. Si talrs tuplas no c.xistirscbn en r l nlolnento en cjnr s r vaya a introduc:ir la t n l h tlr asignarihn, rntoncrs el SGHD n o lwrniitiri (pie sr aiiada esta t111)laa 1;i tabla asipnacicin. , Q u b paha si st. pnetlr introtlucir csta tnl)l;~bin n i n g h p r - o l h l a , pero Inrgo se rlirnina la tulda correspondientc: rn tral);ijador:' E n estr r a w , rio s r lwrrnitr 1,orrar la tnpla tlr tra1)aj;ltlor hasta que no s r hayan horrado prinirro todas las tnplas r n asignatihn q u r Iiawn referencia a cf (:ha tupla r n tra1)ajaclor. ) i h o stbconow romr la opcicin ON D E L E I E RESTRICT (restric~i6na1 Iwrrar). y se aplica autorniticamentr a n ~ e n o squc s r especifiq w o t r a c o s a . Se podritr t.spr(ificar tan~l)iinON DELETE CASCADE ( h o r r a r cn casrada). Cnando rsta rfwtiva rsta opcihn, las tnplas r n asignacicin s r l ~ r r a ~ i aautomhtic*;~n mentcbcnando s r h o r r r n las tuplils a 10s q n r e11os se rrfirran c1n trtras tahlas. Vramos ahora (~'n110s r define esto. CREATE TABLE asignacion
(id-trabajador tipo-id, REFERENCES t r a b a j a d o r ON DELETE CASCADE, id-edificio tipo-id, REFERENCES e d i f i c i o ON DELETE CASCADE,
... ,
Siq~mganiosqne s r ticwe r n asignacihn la tupla
CII
tra1)ajador s r tienr la tulda
y el usnario solivita b o r r a r la tnpla tlc trahajador. El SGBD horra ;~utomitic*anlente totlas las tuplas en ahignacibn q u r tengan 1235 romo valor d c id-trahajador. P r r o si s r hnhirran omiticlo las p a l a h a s clavrs ON DELETE C ISCA4DE,entoncrs r l SGBD h n l h r a prohihi(lo b o r r a r la tupla tle trahajador. Corno srgnndo ejemplo definanlos la c l a w r x t r r n a recursiva id-snpv: CREATE TABLE trabajador
(id-trabajador tipo-id CONSTRAINT llp-idtr PRIMARY KEY, . . . id-supv tipo-id CONSTRAINT l l f - i d s p REFERENCES t r a b a j a d o r ) En este ejemplo se ha utilizado la palahra c l a w opcicrnal CONSTRAINT y, por tanto, se exigr t a m b i h d a r n n nomhre a la r r s t r i c c i h (1Tf-idsp). Sin emhargo, el aspecto rnis significative aqui es que esta c l a w rxterna refrrencia a la propia relacicin; es decir, es recursiva. Como puede ohservarse, no hay ninguna (liferencia entre definir una c l a w externa recursiva y definir otra (*laveexterna cualquirra. Todas estas claws externas se definen con restricciones dr columna porque son clavrs externas de una sola columna. Se v e r i ahora u n a c l a w rxterna rnulticolumna. La tabla herrarnienta-asignaci6n ccrntiene una dr rstas clavrs. Esta tabla se utiliza para indicar cuiles herramientas usa u n trabajaclor en un edificio. Puesto que un trabajador puede usar multiples herrarnirntas en un rnismo etlificio, estas asignacionrs sr indicarin en una tabla separacia. P a r a ello se definiri, mediante una r r s t r i c c i h dr tabla. una clave externa q u e referencia a la relaci6n asignaci6n.
SISTEMAS DE BASES DE DATOS CLIENTEISERVIDOR CREATE TABLE a s l g n a c l o n - h e r r a r n i e n t a (id-trabajador tlpo-ld, id-edificio tipo-id,
... ,
C O N S T R A I N T l l f - i d t r e d F O R E I G N KEY ( i d - t r a b a j a d o r , REFERENCES a s i g n a c i o n )
ernpleado (id-emp,
nomb-emp,
dir-ernp,
id-edificio)
salario, bonificacion)
CHECK ( b o n i f i c a c l o n <= 0 . 1 8 * s a l a r l o )
La 1 ~ s t r i c c i 6 nCIIECK I I I I ~ Y ~ Isc'r . I ~ a r t e(It, la tldi11ici0ntlv m a c~ol~nnno o 1~1rrtlvscbrllna lwtric.c,i;)n cle In tal)Ia. Ol)sctr\e. ~ Y ) I I I I IcLnvste cease. (rite arlncpiv c.11 la restric.cihn I , Iruc-c. r partc*I I V la (lc411irii111 11rI I I M r d r r e ~ w i aa 1115stlv tina cwlumna. c%lla1111rtlt.s c y ~ i I'orwantlo I-olnlnna. L ~ I rest~ic.cihn I~ (:IIECli 1111c~lv alecatar a c~~~ulcluic~r cwlumna (It, la t a l ~ l a .! n o ? ; ~ ) l a ~ w ua tla ( ' ( Y J ~ I I I I I I ~ ;I II P !;I (.11;11es 11arteIII, la definicii~n.Sin e i n ~ ~ a r g tienr o . 1n6i s~'nti(lo I ~ I . una ~.rhll.ic.ciOn clt'cinir I I I ~ Brrstri1'1i0ilCHF:Cli c 1 1 i c ~st3refiera ;I lnhs de lina ~ ~ I I I I I ~('111110 (11, ta1)lu. !a clue ;st:( sta a1)lic.a lnis 1)ic.n ;I la t u l h cao~no1111 toclo clllr a una sola cd11111natic. la ttil~la. ~ ~ I I t a ~ ~ d ) i i .;I n ulla sola c d u n n ~ a .I)(* (.sta La.5 ~wtric~ciont..:i:libXI< ~ I I I ( ~ al)liv;lrse Inalwra csllas func-io~iarian~*olno replah tlc.1 SQL Srrvw. P o r rjrmplo. lu regla sig~iitsl~tr CREATE RULE o f i c i o - v a l i d o 'Carpintero', 'Albanil')
AS @ o f i c i o i n ( ' E l e c t r i c i s t a ' ,
CHECK ( o f i c i o I N ( ' E l e c t r i c i s t a ' , 'Albafiil')
'Fontanero',
'Fontanero,
'Carpintero',
Las rrstricacionc.~C1iE;CIi d a n m i s pcrder quc: las reglas d r l SQL Srrvrr. p ~ e s t ocp~t. p ~ ~ r c l usarsr rn cwli rndtil~lc~s colnn~nas.Sin ~ w h a r g o Cstas , no son tan poclerosas cwno 10s t l i s ~ ) a r a c l o r r ~ c osv~ ~wirch~posteriormrntr) p o r q u c e s t i n lirnitaclas a comprc111ar10s valor r s en un sola tupla a la vez. Es 11rc.ir. ninguna rrstriccibn CHECK pnetlr contrncbr ima
DISENOY ADMINISTRACION DE BASES DE DATOS
CHECK ( b o n i f i c a c i o n <= 0,10 * s a l a r i o )
Lcnguaje de ckfinicicin de datos: Sumario -\ eiemplo . final
CREATE TABLE nornbre-de-tabla ( d e s c r i p c ~ o n e s ~ d e ~ c o l u r n n arestricciones-de-tablas) s,
descripcion-de-colurnna: nombre-de-colurnna tipo-de-dato [restricciones-de-colurnna]
[DEFAULT e x p r e s i o n ]
! una rc.strircibn de rol~~mria PS: restriccion-de-colurnna: [CONSTRAINT n o r n b r e - d e - r e s t r i c c i o n ]
[NOT] NULL
SISTEMAS DE BASES DE DATOS CLlENTElSERVlDOR
SOL S e r v e r N u l l I Non-Null Defaults (por defecto) Rules ( r e g l a s ) Oracle N u l l / Non N u l l Defaults Uniqueness ( u n i c i d a d ) P r i m a r y Key ( c l a v e p r i m a r i a ) F o r e i g n Key ( c l a v e e x t e r n a ) CHECK T a b l e C o n s t r a i n t s ( r e s t r i c c i o n e s de t a b l a )
(6 UNIQUE (6) PRIMARY KEY ( 6 ) REFERENCES nombre-de-tabla [ON DELETE CASCADE] (6 CHECK ( c o n d i c i o n )
restriction-de-tabla: [CONSTRAINT n o m b r e - d e - r e s t r l c c i o n ] UNIQUE ( l i s t a de nombres-de-columna) ( 6 ) PRIMARY KEY ( l l s t a de nombres-de-columna) ( 6 ) FOREIGN KEY ( l i s t a de nombres-de-columna) REFERENCES nombre-de-tabla [ON DELETE CASCADE] ( 6 ) CHECK ( c o n d i c l o n )
Vramos u n ultimo r j m ~ p l o : CREATE TABLE empleado (id-emp i n t e g e r CONSTRAINT l l p - i d - e m p PRIMARY KEY, nomb-emp c h a r ( l 5 ) UNIQUE, telef-ernp c h a r ( 7 ) DEFAULT ' 5 5 5 1 9 1 9 ' , id-emp-supv REFERENCES empleado ON DELETE CASCADE, o f i c i o - e m p c h a r ( 8 ) CONSTRAINT r e s t - o f i c i o - e m p NOT NULL CONSTRAINT c k - o f i c i o - e m p CHECK ( o f i c i o - e m p I N ( ' E l e c t r i c i s t a ' , ' F o n t a n e r o ' , 'Carpintero', 'Albanil' )
restriccicin UNIQUE. Una rrstrirci6n qur garantiza que 110s tnplas dc u t ~ amisnia rrlacii~nno t r n p n el m~~m o en m a baler twlumna.
Estr ejemplo muestra instancias d r totlos los tipos tlifrrentes tlr restric.ciones tlr c d u m n a s (PRIMARY KEY, UNIQUE, FOKEIGN KEY. NOT NULL, y CHECK): asi como DEFAULT. Todas Cstas han sido rxplicadas previan~entrcon excrpciciii tlr la restriccihn tlr unicidad (UNIQUE), q u r ha sido usada a t p i t-on la columna nomlj-emp. La restrircibn UNIQUE garantiza qiir 10s valorrs r n la columna dehrn ser h n i t m . Esto rs. no hay dos tuplas q u r tengan rl mismo n o m l ~ r rtle empleado. Sin embargo, esto no signifira clue la columna sea una clavr. ya qiw si es pcrsi1)lr clue la columna trnga valor nulo. Las tlos rrstrit-tiones NOT NULL y UNIQUE juntas son eqiiivalentes a la restricci6t1 PRIM-ARY KEY. E n este rjrmplo tamhibn sr muestra clue m a t-olumna piirde tenrr multiplrh restrict.iones y t p r r5 opcional tlarlr tin nomhrr a nna rrstriccicin. La restric~icinLJNIQUE aplicatla a midtiplrs colntnnas en una rrstriccihn d e tahla t i m e el mismo s i g n i f i t d > clue 5i se ar)lica a catla columna r n una rrstriccibn d e columna. Totlos 10s restantrs rrcursos d r rrstriccionrs de tabla fuernn ilustratlos anterinrmrnte con rjrmplos en esta mistna seccibn.
DISENOY ADMINISTRACI~NDE BASES DE DATOS
del servidor
BEGIN . . . END IF-ELSE WHILE c o n BREAK y CONTINUE DECLARE c o n v a r i a b l e s l o c a l e s RETURN PRINT Comentarios
datos
293
SISTEMAS DE BASES DE DATOS CLIENTEISERVIDOR
Rloquc- cle i~istrnccionrsBEGIN ... END. Las instrncciorirs twntlitional (IF) c itet-ativa tle rlna insti-nctiGn sinil~leo dtl IIII I~loquetle instrric~cio( F H I L E ) cwntrola n la t~jtv*ucihii nes. C n hlotlw tle i~istruc*t.it~nt.s sr int1ic.a tle la f i ~ r m asigirientt,: BEGIN
i n s t r u c c i o n SQL
...
i n s t r u c c i o n SOL END
Ejc~uci611Couclicional IF sigr~iente:
... ELSE.
La iustrucci611 IF
t.11
SQI. S t m e r titvie la sinta\i*
I F
iustrucci611 IF. l ' n a i115trucriOuI-LI! a t~,it~v~~ciOn 111~11(*n(Iela \c.rat*itlatltlc m a t~ontlic~ihn.
[ ELSE
]
I F (select avg(tarifa-hr)
from t r a b a j a d o r ) < 10,00
update t r a b a j a d o r s e t tarifa-hr = tarifa-hr
+ .50
Se ha tlestwatlo la e \ l ~ r v s i h ~twntlicional i clr esta instrut*t.ihii llara su r\l~licat.ihn posterior. O l ~ s e r v rtllrr contic~nerlna c-onsulta Illw calt.ula la tarifa salarial niedia tle lo. tral~ajatlores\ ronq,ara t.1 resultatlo tlr la t~onsultacon b10.00. La tlifrrmt*ia significativa tXntreesta c-ontlicihn ! la qu(. se rlia nornialuiente t.11 nrla instrueti611 IF cs clue tXn sol~i-(ala rrlati6n traha,jador c o r n p l ~ t c1mr.a ~ detrrniiestc raso sc llvva ,I vaho 1111 t~il(~ii111 n;rr la tarifa salarial nietlia antes ti(. tlet*idii-si e j r r n t a r la insti-urt*ibntlr ac.ttralizac*~i~n. Y ornialinrntv. n n a instr~it~t~iI'~ii IF n ~ i r asiniplrinrnte el valor tit. ilna ( I niis columnas tlr uno soln t n l ~ l u .Pc~rniitirntloa la initrnwihn IF \ r r a la relaribn como u n totlo s r i n c ~ e nienta significati\ ,linentt. la l)t~trncielitlatltlel l r n p a j e . P t ~ supuesto. r iisantlo la t'lhui~i1'1 R IIEKR t l t b i n s t n i r r i t ~ n e iintlividrlale- de SOL podriiios seguir toinantlo tltv*is~orit.s sohrt. esas tuplas. P r r o ahoro hasatlas en tnplas indivitluales ) realizar at~tualizat~iones
DISENOY ADMINISTRACION DE BASES DE DATOS
tenrmos cal~acidatlesadicionales tle nsar c*iil~-ulos sollrr rt-laciones p a r a tomar t1ec.isiones. La e\presihn contlieional cjue controla la ejccuci6n d r una instrnccicin IF pnetle inclnir cwnstantes. variables locales y su1)consultas. Puede inclnir n o ~ n l ) r r stle c d u m n a s sblo como parte tlr las snbconsultas. Cnalquier otra rrfrrrncia a n n nom1)rr cle colnmna s r r i anhiguo. ya clue no castaria claro ;I (1116 tnpla sr rstaria refiriendo. llna sn1)consulta s61o p r d e nsarsc. si sigue a la 1)alal)ra c l a w EXISTS o s i proctnw 1111 valor simple (como r n rl ejemplo prrcrdente) y piiedr. por cwnsiguiente, cwmpararsr con m a constante o con nna variahlr local. IJn sr.yuntlo ejemplo nos n ~ n e s t r acpw se 1111rtleusar m i s de nna instrnc-cibn select el1 una (mica r'ipresiOn condicional. Supongamos I ~ I Cse ( p i w e inc*rem.ntarla tarifa salarial por horas dr 10s fontanrros si s n ~ n e d i aa(*tn;ll mta en nlis (1(. u n ( M a r por drl)ujo (It. la nlrdia tle 10s a1l)aiiiles: I F ( s e l e c t a v g ( t a r i f a - h r ) from t r a b a j a d o r where o f i c i o = ' F o n t a n e r o ' ) < ( s e l e c t a v g ( t a r i f a - h r ) from t r a b a j a d o r where o f i c i o = ' A l b a n i l ' ) + 1,00 update t r a b a j a d o r s e t t a r i f a - h r = t a r i f a - h r + .50 where o f i c i o = ' F o n t a n e r o '
U r nllr\o sfbh a destarado la exprrsihn cwntlicional. Como pnrde verse. bsta cont i m e dos cwnsnltas. cada n n a de las rnalvs ~)rottuc*e n n a tarifa halarial mtdia. Se hace n n a cornparacicin w t r r las tlos, y si la con1pa1-ac.i6n se c u n ~ p l e .se ejt*ciita la actnalizacihn. (:onlo tercer ejemplo, para ilnstrar (4 operaclor R U S T S , hnpongamos qne be le (pic.rc. d a r i ~ anmento n a los tjne son 511l)rr\isadospor H. Richover: I F E X I S T S ( s e l e c t * from t r a b a j a d o r where id-supv i n ( s e l e c t id-trabajador from t r a b a j a d o r where nomb-trabajador = ' H . R i c k o v e r ' ) ) BEGIN update t r a b a j a d o r s e t t a r i f a - h r = t a r i f a - h r + .50 p r i n t ' i i i E s t o hay que c e l e b r a r l o ! ! ! ' END ELSE BEGIN update t r a b a j a d o r s e t t a r i f a - h r = t a r i f a - h r - .50 p r i n t ' i L o s i e n t o , muchachos, p e r 0 a s 1 e s t a n l a s c o s a s ! ' END
Estr rjrlnplo tbsalgo complejo, por lo q u r \eremob algiinas explicacionrs atlicionales. La condicibn contienr una cwnsulta con nna s~ll)consnlta: s e l e c t * f r o m t r a b a j a d o r where i d - s u p v i n ( s e l e c t id-trabajador from trabajador where nomb-trabajador = ' H . R i c k o v e r ' )
La siihconsnlta ( s e l e c t id-trabajador from trabajador where nomb-trabajador = ' H . R i c k o v e r ' )
nos d a el id-tra1)ajador d e H. Ricltover. La consulta principal selrccionari rntonws todas las tiiplas que tienen a H. Ricltover como sulwvisor. P o r ultimo, la condici6n ronlpleta
SISTEMAS D E BASES D E DATOS CLIENTE/SERVIDOR EXISTS ( s e l e c t * from t r a b a j a d o r where id-supv
in ( s e l e c t i d - t r a b a j a d o r from t r a b a j a d o r where nomb-trabajador = ' H . R i c k o v e r ' ) )
w r i kerdadvra s61o si h a \ algun t r d l ~ a j a d o rclue tvngaa 11. Ric-lio\er coiiio snptmisor. Esto correspontlt. con la c.ontlicihn clue ie rstablrcih a1 priiicipio. I h o r a . si rxisten taltxt r a l ~ j a t l o r e s les . qnt~c.iiiosciar nil anmento d r $0.50. En e-te t ~ l r ~ n l )se l oilnstrh taiiil)ih la p r t e ELSE d r la iiistruccihn IF. la orden prmt (iniprimir) \ el uso tle BEGIIL . . . END im-a (.rear uii 1)loqur d r instrncciones. El ELSE: se eiecuta d o SI 1'1 rx1)resihn wntlic.ioiia1 es falsa. Eii este caso sr Ir rtdut-e la tarila salarlal en $0.50. La orden print 1c en\ia n n mensaje a1 usuario. Estr nicnsajr sr clelimita entre comillas siniples. Si 1111 apOsti-ofo es parte tle un nieniajr, entonws delw intlicarse con (10s al)6strofes seenicios. Las instrucciont~sI F se pneden anidar denti-I)tle otras instrucrlones IF. signientlo a1 IF o a1 ELSE. El niiine~vd r iii\t~l(.saiiidatlos no r-tii limitado. 1,as instrnccwnrs SOL t r a l x ~ j ms o h e relacioiie, c ~ ~ 1111 n ototlo. por tanto shlo e i Ihgico clue las instrucc4onr- I F qnt. twntroleii sn ejec-ucihn se Ijasen r n c-ondiciones clue a 511 vez se aplican a relac.ioiit~scomo 1111toclo. Los e j e m p l o ~pre\ios iln,tran esto. instrnccion F H I L E . Lna instrnt.c.ibn qnr nsa iina contlicibn para controiar la ejecwvihn itrrati\a c\r I I I)loc[i~c, ~ dc i~istrncciones.
Instruwiones WHILE: Ejecwc-i611iteratiba. 1,a sintaxis cie la instrut.c.i6n V H I L E es la quthsiguc*: WHILE
I A instruccihn WHILE p r o ~ o lat ~rjec.nci6n ~ repetida del 1)1oi111r(I(*instrwtionrs. mlentras q u r la expresihn cwnciicional e\alilr \ r r d a d e r o . 1,a exl)rrsihn conclicwnal r n rsta instrncci6n tienc. la niisma drfiniciim q n r r n la instrucciirn IF. \eanio, nu ejeinplo. Snpoiigamos cjne se desea cliiplitw rl pagcr d r todo el mnndo mientras el zalario mrciio de 10s fontaneros est6 por dehajo d r lcrs 320.00. Si la tarifa salarial medla e s t i por rncima de los $20.00 no se hare nada. d e lo contrario sc. le dohla la paga a todo el mnndo: WHILE (select avg(tarifa-hr)
from trabajador where oficio = 'Fontanero') < 2 0 , 0 0
BEGIN
p r i n t ' i i L e estamos doblando l a paga!! ' update t r a b a j a d o r s e t tarifa-hr = 2 * tarifa-hr END
De nnevo, como con la instr~iccihnIF, la conditi0n q n r contrcrla la rjecuri6n del lazo WHILE contiene una consulta (pie realiza el cilcnlo s o h w la relational trahajacior como u n todo. Mirntras esta condicihn sea verrladera, se ejerutariin las instrucciones dentro drl bnclr WHILE. D r rste modo: snpongamos c p e la tarifa salarial media de 10s fontaneros r s $4.50. En este caso se d o h l a r i la tarifa salarial d r totlos y se imprimir i el mensajr "iiLe estamtrs do1)lando su paga!!". Ahora la talifa media d e 10s fontanrros s e r i d e $9,00. Pnesto q u r sigue siendo menor de $20,00. toclas las tarifas se duplic a r i n d e nuevo, y el mensajr volveri a aparrcer. Ahora el salario medio d e 10s fontaneros es d e $18,00. Una vttz m i s Gstr continila p o r dehajo $20,00. por tanto la tarifa d e toclos st: dnplit.arii por tercrra y hltima vez. Y, poi- snpnesto. el mensaje se imprim i r i nna tercera vez tambibn. (Bello programs, jno quisiera clue s u jefe tnviesr nno igual?) Una vrz q n r el 1)loqne tie instrucciones comienza a ejecutarsr clrntrcr del buclr WHILE, t s t r c o n t i n n a r i sn ejecucihn hasta el final. Aun si el valor d e la rapresihn
DISENOY ADMINISTRACION DE BASES DE DATOS
( I ) WHILE ( s e l e c t m a x ( t a r i f a - h r ) f r o m t r a b a j a d o r ) < 40,00 BEGIN (11) update t r a b a j a d o r set t a r i fa-hr = 1.1 * t arif a-hr (111) I F ( s e l e c t a v g ( t a r i f a - h r ) f r o m t r a b a j a d o r ) < 20,00 CONTINUE ( I V ) I F ( s e l e c t m i n ( t a r i f a - h r ) f r o m t r a b a j a d o r ) > 15,00 BREAK (V) update t r a b a j a d o r s e t t a r i f a - h r = t a r i f a - h r + 1,00 where o f i c i o = ' F o n t a n e r o ' END (VI) .......
P a r a facilitm las rrf'cbrrncias s r han e t i q ~ ~ c t a tcon l o niimtw~sromanos las instrncciontSsprincipalrs tlr rsttbt.jrnlplo. Estr I ~ w l W r - H I I X sera rjrcutado ~ n i r n t r a sla tarila sala~ c.st6 por ticl~ajotlr los $40.00 [instrwcihn (I)]. rial mixima clue s r It. ~ q u a rI I tr;~l~a.iaclor La instrnctihtl (11) ninrstra q u r scbcpirrc: aumrnter r l salwio rn un 10 pol. 100 ratla vrz n comprur1)a si 1-1 salario mrdio de totlos 111straclue w rrpita r l 11uclr. La i n s t r ~ ~ t + ' ~(111) Ilajatiorrs c.stri pclr clrhajo tlr $20.00. En case ufi~mativos r rjrtwta rl CONTINCE. lo clue signif'ica qur nos saltamos 1.1 rrsto tlr I;IS instrwcionrs tlt:l l a m y (.I w n t r o l p a w t l t ~nurvo a la i ~ i s t r n c ~ i h(I). n U i ~ avrz cjnr In ~netliasalarial h a p altxnzatlo 10s $20.00 stbr j r c u t ; ~la instrut.cihn (11~).Si 1;) tarifn salariul minin~ars mayor qucb $15,00 s r rjrtmta un RREllli Si la tari11a"ntlolr r l w n t r o l a la instruc-ciOn (1.11 (la c-11a1no sr rslwc>ific*ac.11 rl rjc*~nplo). fa minima no so1)rrpasa 10s #15,00. rntoncrs stacbjecuta la instrucciim (6)y s r l r aiiatlr taon d l o #I .OO a la tarifa tlv catla fontanrro. 1)rsl)uis c1r la instrwcihn (V): rl twntrol rrtornn a si la tarifa s a l x i a l cir n~~c:vo a la instrut-Gin (I). dondr rl sistvma t : o ~ n l ) r ~ ~dr rl ~nllt-vo
x ariable local. lrna b a r ~ a l ~clefinitla lr 1);u.u usal t l e n t ~ ~tlrc ~url l w o ~ ~ t ~ t l i ~ n!~ t ~ n t o c ~ l ~ n i t c rx ~alores ~ar I t t
DECLARE y Varinlha loc*ales. Ninp6n l v n p a j r tle prograrnacii~nrstaria cwmplrto sin Variables locales r n las r n d c s poncr temtroralmrntr loi valorei tlc, trabajo. En r l lrnguajr 11r Sol, S w v w . tales y a r i a l ~ l r sr i tlrclaran con n n t i p tlt~tlatosdt'1 sistrn~ao tlefinitlo ])or rl uiuario. se les asigna 1111 lalot- ~ n t d i a n t einstrnt*tionrsirlrct ? Yr usan clrntro tlel niismo prwtdin~iento. \'eanios ahora tin rjemplo q u r uia una \ ariahlr loral para c1c.ttwninar la e~rcw1011 tlr un l)llclr (laze) a/H]l,E. Una v a ~ i a h l el o c d s r d w l a r a hac~rntlotjnr rl nondlrr cwrnir~wrtwn @:
SISTEMAS DE BASES DE DATOS CLIENTEISERVIDOR
declare @indice i n t I * " i n t " s i g n i f i c a integer * I select @indice = 3 WHILE @indice > 0 BEGIN
d e l e t e t r a b a j a d o r where t a r i f a - h r > 20,00 update t r a b a j a d o r s e t t a r i f a - h r = t a r i f a - h r s e l e c t @indice = @indlce - 1
* 1.1
END
Procedimientos almacenados
s e l e c t @cant-trabajador
=
count ( * ) from t r a b a j a d o r
c r e a t e procedure c a n t - t r a b a j a d o r e s @ c a n t - t r i n t o u t p u t
s e l e c t @cant-tr
=
c o u n t ( * ) from t r a b a j a d o r
c r e a t e procedure c a n t - t r a b a j a d o r e s
s e l e c t @cant-tr
=
@cant-tr i n t o u t p u t
c o u n t ( * ) from t r a b a j a d o r
4 el resdtatlo se pontne n la variahlr tle balicla @cant-tr \. SP rrtorna a1 progranla q u r Ilamh. LOSp a r i m r t r o s (11' salitla s r idrntifiran ponirntlo la palahra "oi~tpnt" o "or~t" despubs d r la definicii'm t l d t i p tle (lato:, tlrl parimetro. Los ~ ~ a r i n l e t r o tlllt* s no sc. csprrifi-
DISENOY ADMINISTRACION DE BASES DE DATOS
declare @cant-trabaj i n t execute c a n t - t r a b a j a d o r e s @ cant-traba]
s e l e c t @cant-tr
=
output
count ( * ) from t r a b a j a d o r
I,a ve~itajat1r usar pi-ocrtliniientos alnlat*enatios es signifkativa~nentrnia!or rri la metlitla en qut. el p~~c.etliiniento sca nibs gralitlr y m&stwnplejo. C h i o un wgundo ! m&s wmplejo rjcniplo supongarnos clue se quiere nn prorrtllniiento alnlacenado qne t.alcnlr la tarifa salarial media de 10s trahajadores identifirados por nn of'ic.io. Es: tletir. el propranla true llama le pasa u n tipo de ofirto a1 proretiimirnto almarenatlo > Cste rtxtornala tarifa salarial media tle todos 10s tra1)ajatlort.s que tengan e w ofitio. Estr prot~t~tlimit~nto c.alt*-sal;~rio-l)rornse crraria como sigue: c r e a t e procedure calc-salario-prom @tarifa-prom money o u t p u t , @ tipo-oficio c h a r ( 8 ) as s e l e c t @tarifa-prom = a v g ( t a r i f a - h r ) from t r a b a j a d o r where o f i c i o = @ t i p o - o f i c i o Este prortdimic~ntoalmawnatio t i m e un p a r i m r t r o tie salicla. @tarifa-1)rom ! un parimetro tic entratla @tipo-ofitio. El progranla clue llama dehe indicar m a variatde local tie tipo money (iiinero) para qne r t ~ c i l ~ela valor de salida y d e h indicar u n valor d e tipo ofitio para p s a r r o ~ u oparimetro d r entrada. El tlehe indivar a m l ~ o sparimetros en el rnismo o r t h en que fileron listados cua~itlost- creb el ~)rocetlimiento.,4 rontinuat~i6nse cia 1111 t>jemplo(I(. ejernci6n d e ralc-salario-1)rom que hare totlo esto: d e c l a r e @salario-prom money exec calc-salario-prom @salario-prom o u t p u t , Fontanero 01)st~rveqrie "exec." se p ~ i e d rutilizar romo abreviatura de "ewrute". h n q u e el valor cie entrada "Fontanero" rs u n dato de t i p rhararter (carit-ter) no es nerrsario ponerlo twtre roniillas a menos que tenga u n espario en hlanro. u n signo d e puntuari611 o qoe t*omienre con un digito. El procedimiento ralc-salario-1)rom usarh 'Fontanero' romo \ a h para &ip-ofirio. por lo qne e5t0 se ejecutari romo: s e l e c t @tarifa-prom = a v g ( t a r 1 f a - h r ) from t raba j ador where o f i c i o = ' F o n t a n e r o ' Esto r a l c i ~ l a r ila tarifa por horas media de los fontaneros y cuando retorne a1 programa q u r llami, el rtwdtado se d e j a r i en la variable asalario-prom.
299
SISTEMAS DE BASES DE DATOS CLlENTElSERVlDOR
lalor por tlc.ferto tlel parinwtro. El un pirinwtro qut~~uiiiniitra t.1 sistcnla i i el pro~raiiiat1utxllaina lo onnte.
t l t b
Valorc* por tlefecto. E n la tlefn~iciI')ntlr un procrtliniiento atmacenath es poi11)lr rspecificar valores p o r clefecto tic 103 pariinetros. Si el programa clue llama onnte p a w r 1111 valor a 1111 p r i n i e t r o tle entratl,l. r n t t ~ n c c iel progrania u w r a el valor por dtdct.to 11ara tiicho p a r h m c ~ o. t ~ El baler por defecto puctle i e r cualquit~rbaler vilido p a r a el tilw tle tlatos tlcl parhinetro. inch~)rntlon n h . Vcamos u n ejemplo q u r utilua el nulo. Es Inerainrntc u n i ~~nc~tlificwihn tlel ejrlnplo anterior. E n rste c a w , si el programa tjuc llama ihlo ripc.cif'itsa el parimeti-o cir ialida. p r o no pone el t i p de oficio, w calculari la media ialarial tlv todos lo* tra1)ajaciorei. El procetlin~icntc,modificado yuetlaria en la fornia: c r e a t e procedure calc-salario-prom @tarifa-prom money o u t p u t , @ tipo-oficio char(8) = null as i f @tipo-oficio = n u l l s e l e c t @tarifa-prom = a v g ( t a r i f a - h r ) from t r a b a j a d o r else s e l e c t @tarifa-prom = a v g ( t a r i f a - h r ) from t r a b a j a d o r where o f i c i o = @ t i p o - o f i c i o
Si sr coinpara vita verii6n drl procedimiento con la versibn anterior se v e r i q u r t.1 valor por tlrfrcto sr tlrfine inniecliatainente despuGs q u r la tlefinicibn del tipo de datos tlrl primrtro: @
tipo-oficio char(8)
=
null
Ponienclo "= null" despu6s de la drfinicihn del parimetro estamos queriencio tlecir qne. si no se le pa*a ningfin valor a1 parhmetro. se dehe asumir que el valor cie kste es nulo. La parte ejrcutalde tlel procedimiento se tlelre morlificar p a r a manejar la posihilidatl de qut3el programa q u r llama no pasa n i n g h tipo tle oficio. Uso del RETURR. Cnantlo sr rjeruta la illtima instruccibn d e u n procedimiento, rntollces 6ste trrmina j retorna el control a cjuien llani6. iQu6 hacer si por la Ibgica del prowdimiento sr tleiea ialir antes? La instruccibn RETURN causa que el procedimiento aln~acenatlo termine inmetliatarnente y retorne el control a1 programa que lo llamh. Supbngase qut' se dewa cwmbinar una varirdad de funciones en un simple programa alniac~enado.P o r ejemplo, querenios permitirle a1 usuario solicitar la tarifa salarial mlixima, minima y media tle trabajador. Un procdimiento para h a w r esto seria: c r e a t e procedure funcs-calc-salario @tipo-func c h a r ( 3 ) , @ v a l - r e t money output as i f tipo-func = "max" begin s e l e c t @val-ret = m a x ( t a r i f a - h r ) from t r a b a j return end i f tipo-func = "min" begin s e l e c t @val-ret = m i n ( t a r i f a - h r ) from t r a b a j return end i f tipo-func = " a v g " begin s e l e c t @val-ret = a v g ( t a r i f a - h r ) from t r a b a j a d o r return end E n este ejemplo el programa que llama h a solicitado una tle tres funciones. Si la funtibn es rnLx se calcula este valor y se retorna inmediatamente, ya que no se desea calcular ninguno d e 10s otros (10s. Es ficil ver a partir de este ejemplo cbmo se puede usar la instruccibn RETURN en 10s procedimientos almacenados.
DISENOY ADMINISTRACION DE BASES DE DATOS
Una introducci6n a 10s disparadores Un tlisparador (trigger) rs nn programa c p t 3 sc vjrcnta aiitomhtic~amcwtecuando sr intrnta h a w r una artualizacihn tlt~trrrninadaso11i-c,nna tallla rspet-ifiw. S r 11urdrndrfinir t r r s t i p s & disparadorrs para cada tabla: tlr i i ~ s e r c i i md~r actnaliznrihn p d r horrado. Pnrsto tinti lo qne se estli d m d o es una introtlnc-ciirn a1 concrpto d c disparador. se continnarh rsta discusibn con rjrtnplos de SQL Srrrcr. I m tlisparadorcs tle Oracle son a l p tniis sofist i c d o s . :ll final tlr la discusihn sr rrsnmirhn algnnas d r las difrrrncias cplr rxistrn ( % t10s ~ tlisparadorrs d r Orac*le. Suphiigast: tlutt s r quiere mantcmer una colnnina cLnla llase d r clatos qiw st. tleriva tlel c i i l ~ u l od r otras cwlumnas. Por r j r n q ~ l osi~tenemos nna talda vrntleclor r n la I)ase d r tlatos. sc pnrtle qnerer tcner en la hnsr t l datos ~ el total d c comisiones inpresadas por catla vend d o r r n r l illtimo mes. 0 en la hast: tlr tlatos tlr la constructors Prrinirr podianios cjuerrr m a n t r n r r el rstiinado de cuintos dias un trahajaclor ha sitlo planiSiratlo 1)al.a 1111trahajo. O usando el (.onrepto de tlias d e ocho horas I, la tarifa por hora d r cads tral~ajatlor.cablar c u i n t o habria qnc paparle al t r a l ~ j a t l o rpor rsos dias. hsumanios clue sc cpiicv matitrncSt-cite illtinlo c.hltwlo. se p o n d r i bstc en una coluinna adicional r n la t a l h tra1)njatlor tlv nonibre ii~~ago-acninulatlo". Antes cle mostrar las instrut.cionrs concrrtas q ~ i sc r usan 1,ara definir los tlisl~aratlows (trigger). es nrc~csariotlar una niayor ruplicac*ihndc c6tno trahajan los t l i s p a t d o r e s en SOL S e r w r . Catla w z que se Ileva a c.al)o ntla insercihn, un h r r a d o . o nna actnalizacihn sohrt. una tabla d e la l n s e d r datos sc ( w a n nnrvas vcrsionrs tle tablas cwntro1atla.i por el sistema. Estas ~ a b l a tle s verificacicin tle tiisparadores (trigger test tables) se llanlan inserted (insrrtatlos) y delettd (llorrados) '. Si se insertan filas en nna tahla entoncrs irlscv-td cwnsiste en las filas q n r han sido insertadas y eleleted r s t i vacia. Si sr l ~ o r r a nfilas tle nna tallla, etitonces deleted (wnsiste rti 1as filas que se h a n horrado r inserteel es wch. Si se ac.tiializati filas en una talda? entoncrs deleted consiste en las rirjas \r~.sionestlr las filas arti~alixadas(: ii~sertedesth formado por las nnrvas ~ r r s i o n e stlv las mis~nasfilas. Exta inforinacibn es partic-ularmente valiosa (wantlo se usa con el hrcho tle clue en SOL Server tin disparador s r inicia clespBs clue ot8urre un evento d r ac*tnalizaci6n tlr fila. De estv modo, cuando s r ejrcnta el disparador. 10s a ~ h i v o irlserterl s y deleted !-a existrn. Se verli ahora cbrno iml~lt~mentar el disparador q u r se ha d t w r i t o anteriorinente. dsnmamos clue la tahla trabajador ha sido rnejorada para inrluir la c d n n ~ n a"pago-acumtdado": nomb-trabajador, pago-acurnulado)
trabajador(id-trabajador,
id-supv,
tarifa-hr,
oficio,
La f6rmnla para ralcular el pago acnnuilado es: pago-acurnulado
=
nurn-total-dias
* 8 * tarifa-hr
donde niln-total-dias se ralcula para dicho trahajador a partir de la t a l ~ l atlr asignacihn. Sblo t r n d r e ~ n o sclue v r r con las ac*tualizaciones cle la tabla asignacibn. Cada vez q u r se afiada una nueva tnpla, o s r actnalice o h o r r r iiria tupla existente, s r d r s e a r i actnalizar el pago-acumulado del rrspectivo trahajador. P o r tanto. tlueremos n n disparador cine rrsponda a las actualizacionrs de la tabla asignacihn actualizantlo una cwlumna r n la talda trabajador. ~COtnotrabaja este tlisparador? Rrcubrdesr cine cualquirr artualizac:ibnl sea ilna insrrcibn, un horrado o una actnalizatihn. aha& c r r o o m i s tuplas a ii~sertedy deleted. P o r lo tanto, s r pnetlrn usar rstas dos tablas. indeprndientemente de la actualizaci6ti q u c se haya realizado. y h a w r 10s ajnstes nrrrsarios c:n la tahla trahajador. O M r v c s e clue r n
301
SISTEMAS DE BASES DE DATOS CLIENTEISERVIDOR
la hignirntr solutihn no iml)orta si sr tian aliatlitlo. I)orratlo o cam1)iatlo m a simplr f'ila o midtiplt~sfilas a la \ r z . Esta solucihn fnnt.iona r n ;in11)o~cases: create trigger actualizacion-asignacion on a s i g n a c i o n f o r i n s e r t , update, d e l e t e as update t r a b a j a d o r s e t pago-acumulado = pago-acumulado + 8 * t a r i f a - h r * ( s e l e c t sum(num-dias) from i n s e r t e d where i n s e r t e d . i d - t r a b a j a d o r = t r a b a j a d o r . i d - t r a b a j a d o r update t r a b a j a d o r s e t pago-acumulado = pago-acumulado - 8 * t a r i f a - h r * ( s e l e c t sum(num-dias) from d e l e t e d where d e l e t e d . i d - t r a b a j a d o r = t r a b a j a d o r . i d - t r a b a j a d o r )
)
Para entrnt1t.r la d~finicihnde estr disparador se necesita mirar a sns partcs srparatlamrntr. (:otiirntwnos con las primeras tres lineas: create t r i g g e r actualizacion-asignacion on a s i g n a c i o n f o r i n s e r t , update, d e l e t e La primera linea 1tlvntific.a rl n o n i h r del disparatlor como ' ~ c t ~ ~ a l i ~ a t * i h n - a s i g n a rihn". mimtras qne la segnntla linra intlica q n r Gstr sr apl~t'aa la tabla asignacihn. La tc.1c w , r l i n c ~rstal)let*r ~ tjne c1 disparatlor h a r i Suego tbn t-ad'~o p r r a c i h insrrt ( i n s e r t a ~ ) . u p l a t e (artnalizar) o tlrlrte (hor r a r ) . La 1~Oxinlalinra tlel tlisl)aratlor, "as", intro(lnc.e la parte chtligo d r la tlefinicihn drl tlisparatlor. Totlo lo clnr venga,despubs dc csta linea ie ejecuta ruantlo Sstc sr cl~sparr. J r a m o s ahora la t'dtiuld p i ~ ~ t Esta e . consiste en dos instrncciones d e artndlizdti6ri. atnhas sr apliran a la relacihn tral~ajatlor.La primera instrucci6n de actualizaci6n suma al pago atwmnlado nsantlo la tabla inserted. la segunda instruccicin resta del pago acumnlatlo usando la tahla deleted. update t r a b a j a d o r s e t pago-acumulado = pago-acumulado + 8 * t a r i f a - h r * ( s e l e c t sum(num-dias) from i n s e r t e d where i n s e r t e d . i d - t r a b a j a d o r = t r a b a j a d o r . i d - t r a b a j a d o r update t r a b a j a d o r s e t pago-acumulado = pago-acumulado - 8 * t a r i f a - h r * ( s e l e c t sum(num-dias) from d e l e t e d where d e l e t e d . i d - t r a b a j a d o r = t r a b a j a d o r . i d - t r a b a j a d o r )
)
Estas tlos instrurclones causan qne el sistcma p a w a travSs d r la relarihn trahajatlor dos vrws. En la primrra m s t r n c c i h de actualizati6n s r trabaja con las tuplas t p e se han i i se han aliadido a la rclaci6n azipaci6n. Si se h a n aiiadido algunas, como h a l ~ r ocurrldo i insrrtado o actiializado datos, rntonces el atributo nilmrro tle dias (nhm-dias) en estas tuplas sr usa para actualizar la tupla correspontliente en trabajador. Similarmente, la wgiinda instruct4m mira las tiiplas borradas d e la rrlacicin asi.-li,~cicin. Si ha hahitlo I~orratlos.como ornrriria si se h a n actualiz,~doo 1)orratlo tl,13 1'1 I rlaci6n asignacihn. entoners st. usa el nt'nnrro d r dias tle rstas tuplas para r f c r t ~ l . , c -ta correspondientr r n la tiipla ;~l)ropiddad r trabajador. Si la tabla irtserted o la tabla deleted e s t i bacia. rntonw s la instruccihn d r dctualizacihn qiie la nsa no t e n d r i rfrcto r n la rrlaclhn trabajatlor. D r esta manrra t.1 disparador t r a h a j a r i de la forma drseada. Usando disparadores e n SQL Server y e n Oracle. Los disparadores abren furgo s i r n pre q ~ i el r t i p de actualizacihn q n r sr especifiqiie (insertar, horrar, ac.tiializar) oeurran i o h la tahla. No importa qu6 ~izuarioo qu6 programa hace la actualizacih. Si r s t i drfinitlo un disparador para tal actualizacihn, Sstr se disparari. Consecuentemente es importantr r r w r v a r el uso d r 10s disparatlores p a r a a q u r l l ; ~opcrationrs ~ que siempre se debrn rralizar a continiiaci6n tle una actualizacih rsprcifica. En los ejrmplos que se h a n dado
DISENOY ADMINISTRACION DE BASES DE DATOS
prrviamentr sr puetlen ver situarionrs r n l a i rnales 10s disparat1orc.i ic hail utilizatlo apropiadanirnte. Pcro hay t a i n h i h muchai otrai. U11 uio iniportantr de los tlisparadorcti 1.5 p a r a forzar negoriacionci > otrai reglas de integriducl. P o r rjeiiiplo. SQL Sertei- uia 10s disparatlorei para gatantizar la integridad referencial y la unicidatl cte la rlave l~tiniaria.P o r otro lado. r n Orac-lv. tbitosaspertos r s t i n ronitruidoi dtmtro tlrl 1rng11djetle 11diiiicii)ii de ctatos. Esto 1.5. (w Orat& siniplmirnte se derlatan clue cirrtos a t r i l n ~ t oion i da\t.i primarias o externai > aiitomhtic~anientese garantiza la u n i d a d j la integriclacl rrfrrcncial. Pero en SQL Senc.1- ic deben tlefinir los d i s l w ratlorei ii sr t p i e r e forzar rl c~nmpliniicmtotle eitai reitritirionri. P o r lo tanto. 111st l i s p radorei ion herramientas esrnci;~lei11ar.ala integridatt tle h i e . dr clatoi en SQL S r n e r . Sin einhargo, d r todos modoi. Orarle requiere de tlisl,araclorri poi- razones siniil'ires. 41inqur lo relativo a las c l a ~ e spriuiariai ! t.uterrias se garantiza a ~ ~ t o m h t i t ~ a i i i c ~ ~ i (rualquier regla tlr n r g o c - i a t h quc. requiera r e l r r i r i r a otras tahlas d r la base de clutoi s0lo p l r i a garantwarse i u c*unipliiuic~~to a trakbs tlr nn cli>l~arador).Rrrubrdese q n r . romo party (ltl la drfinirihn de eicprma. Orarle prrmite la ctofinicihn tle restrirrionei dr las replai s o l m la h a w d r datos. Sin rmhargo. CHECK p a r a forzar el riim~~liuiiento r e r ~ l h t l e s etaml)ic'.n clw las reitric*c*ionriC H E C h no puedrn inrluir consultas clue hapan referenria a otrai tahlas u otrai tut11as vii la misma tallla. Es dwir. Ins restr~ccio~ies CHECK s d o pueclcn \ e r m a t q d a J la vvz. F o r tanto. m a regla como
requiere d r una ronsulta en la t n l h asignarihn para I-alcular c.1 iifimero total de tliai (iium-dias) que u n tralmjatlor dado t i m e r n asignari6n. No es posil~ledeclarar m a restrirciim CHECK para forzar el cutnplimiento de esta regln. Sin e~nl,argo,un ttisparatlor lo purde lograr muy a t r a r t h amente.
Desarrollando aplicaciones cliente
painter. Un subproprama interactive clue llrva a rabo un tipo ebpecifiro de funrionalidad neresaria para el desarrollo rompleto de una apliracicin.
La ircribn precedente descri1)r la base tle datos deidc 01 lado del servidor de la+ aplicwiones rlientelirr~idor.En esta serrihn st. ~ e r un i m t o r n o de dciarrollo tle aplicarionei, PowerBuilclrr, q u r sr utiliza p a r a w n s t r u i r las partes cliente de lab al~licacionesque h a r i n de interfaces sohre las redes con 10s siitrmai tle bases de clatos. PowrrUuiltlrr es un entorno grhfico de desarrollo de apliraciones que opera i o h r r Windows. Puede usarie p a r a crear programai d r aplirari6n que hagan d r interfaz con un gran numrro dc diferentrs sisternas de gesti6n de base> clr datos (SGBD) relat*ionales cwmerrialrs. P a r a auxiliar en la creaci6n d e programai tle aplicaciim PowerBuiltler proporriona una tariedad tle puir~ters (pintores) que son suhprogramas interactivos q u r rralizan tipos esprcificos clr furic.ionei necesarias p a r a el desarrollo twnplrto de la a p l i c a r i h . Tanto PowrrBuildrr roillo la5 aplicaciones desarrolladas con 151funrionarin tlr forma aut6noma (stand-ulone). o cLnnna plataforma dientelservidor.
',
El enfoque de PowerBuilder Desde el punto de vista l6gic.o. rl desarrollo tle apliraciones r n PowrBuiltlrr css como sigue:
1. Primero sr dehe definir una I)aic. cle datos. Esto implica d a r el non11)r.e tle la 1)aw de datos, definir lab t a l h i con 3u- columnas, lob t i p tle tlatos, las rla\es. las
SISTEMAS DE BASES DE DATOS CLlENTElSERVlDOR
303
claws cbxtrrnas,rtv. Estv paso ha sitlo tratatlo rn la l ~ r i i n t ~ pr a r t r (I? (*sttb(.al~itrrlo y stbsnponr q u r !a ha sido rntrnclido. 2. I ) r s l ~ u i ~([lie s SP h a y ] tlt:fini(lo la hast, tlr datos. s r ~ ~ u tcomrnzar ~lc (*ont.1 tlrsarrollo d r las aplicacionrs. Esto s r hacr cwn 10s ptrirltprs tlr IJo~rrBiriltlw.\ornialinc~rite~ IIara t - d a aplicacihn st. d r h r n rralizar t r r s pasos l)rinti11alr~: a. Definir la aplit~acii~n. Esto sc, rraliza con (4 Appliccltiol~p i l l t ~ r . h. Drfinir las vrntanas d r aplicacihn. Esto s r hacr con c.1 TF;i~~tlott.ptri~~tt~r (1)iiitor d r vtantanas). Windows tirnc: los nlrdios 11or 10s cwalrs 10s usnarios pnrd r n intrractoar cwn In aplicac:ihn. P a r a d a r k a los nsuarios las c~al)acitlatlr~ nrwsarias s r drfincn vrntanas cwn botonrs. rajas tlc listas (list hoxcs). rajas d r tlatos d r rntrada (data in,pirt boxes) y inrniis. Varios ptril~twssc, iisan para i d i z a r rstas funciones. (-. La apliracii~n actuarii sohrr los datos r n la h a w tle tlatos. P o r lo tanto. tlrltrmos idrntifiriu los dates q u r se necrsita introtlucir. 10s q u r sv canil1iar5n. !. los datos qw tlrherin darst, t90rnosalida. Esta itlrntific*ac*ihns r h a w a travbs l ~ t ~ r tlr clnr scb tle 1)atccWindows. q n r sr define11en el D a t c r W i l l d o ~ * . s ~ ) t l iautes p o n p r n m a ventana. Esto rs. estr paso delte hacrrsr ai1tt.s d r t~oml)lrtarrl paso antvrior.
Usando PowerBuilder E n la Fignra 9.8 se murstra la pantalla principal del rntorno (It. tlesarrollo tlr al~licacioncs tlr PowrrBuiltlrr. Esta p n t a l l a contirnr nna h a r r a d r titulo ril la y a r t r su1)rrior. con una l ~ a r r ad e m r n i ~r n la linea siguirntc, I/ la -'I'owrrBar" r u la t r r c r r a lint~a.La P o ~ e r -
File
Helo
DISENOY ADMINISTRACION DE BASES DE DATOS
B a r (1)arra tit. P o w t ~ m ) n r i t r a 10s iconc~sd r la ma?oria tle loi \ ariatloi pcliilt~r\t ~ n ctwns~ titu?rn lai c*apwitlatlt-sfinwiona1t.i tit. PowrrBniltlrr. E n la Fignra 9.9 stbm u c ~ s t r mloi itnonoi tlr loi 14 p c ~ i i l t ~ r s . 10s 1)otont.i tlc Powt~rBarrcy)rtw~ntan: Leyhtloloi tlr izqnitwla a tl~.rt.t.l~a.
1. Appl. Este e i rl puinter 4pplic.utioil (aplicacihn). S r usa l)ara tlrfinir los
2.
3. 4.
5.
6.
7. 8. 9.
asprt8twgrnrralri tlr m a aplicwihn. talri t.onio r l noml)rr tle la aplit.,~cihn.loi 1)rogramas t p ~ ar h r r n t i t ~ r a nla aplicwihn (o -'scripts"). clue intlit~inrl prot w a ~ n i r n t oclue tlrl~rt r n r r lugai- cnantlo ir initia o se t r r m i r ~ ala al)lit~at~iOn. '&indon. Estr puinter sr 11ia para t w ~ s t r ~vrntanai ir p a r a lai aldit.arionei. Menu. Estr ~(liilter.ir usa para t ~ m i t r u i in- i r n i ~ para i lai \entana,s. DataWiid. Estr pc~intertwnst~xyeol)jetos DotoFiidotc. qnc. i t . ntilizan p a r a a t w t l r r a la h a i r tlr tlatoi j 11onc.rloi rt.inltatloi r n lai lentanas. El puinter h intllt-ar (1116 D a t a 4 indoh ir uiarh en indow (rlrnwnto 2) ir n t ~ l ~ z a rpara catla \ r n t a n a . Struct. Estrpuiuter sr uia para tlrfinir l a i eitructuras tlr datos t p e sr n z a r i n r n 10s scripts (pl-ogramai 1'owrrBuiltlrr). Iiis estrnctllras p ~ r t l e nconcrl)irsr twmo rtyiitros o grulws tlr t3anlpos constrnitlos d r no do qnc puctlan r t h i r s c t'onlo u n grllpo. Prefs. S e g h rl Help tlr I'o~rrBuiltlrr:"En Preferences (prefrrentias) i r l)l~etlrn o painters. tlar \alores a totlai las varialdes tlr PowrrKuilclern o a un n h ~ e r tle Help. El 1)othn Help (abutla) sr usa para o1)trner inforn~atibncxplicatila s o h l a i t . a r a t ~ r i i t i c a 5d r PowerB~~iltle~-. Database. Estr puiilt(>rir uia para tlefinir 1)aiei tle tlatoi. Query. Kstr puinter sr llsa p a r a f o r m d a r consultas SQL.
305
SISTEMAS DE BASES DE DATOS CLIENTEISERVIDOR
10. Fn~ic.. Estr pcrir~ter.st. nsa para tlraarrollur f'r~ot~ioiie~s drfiniclas por 1.1 nsr~ario. las c.ti:ilc.s s r 1)nt.tlrn w a r r n lo.; srripts tlv PowrrB~~ileIrr.
11. Library. ],a 1)il)ilotrc-acontrola la grsti0n cle las al)lic.aciont.s.
l a b vtsutanas !otros o1)jrtos crcaclos nsanelo PowrrB~iilclc~r. 12. I:scr Ohj. Estr piri~lters r usa para t w a r ol)jcbtos clr osnario. -*I-oiitro1t.s" (1)otonc.h. listas. rtt*.) a la metlitla. los w a l r s s r pncdrii 1)onc.r r n lab 1-rntanas. ~ i ejrc.utihn clr la apliracihn tm caurso. 13. Rim. Prrsionar rstc 1)otbn p r o v c ~ t la 14. D l . La f'arilidatl d r tlrl)nrac4'1n (debug) h i n t l a nirtliob para la tlrl~tiracilin tlr las aplic*ac:iours.
Construir una aplicaci6n
Trabajador
[id_trabajadorj INom-trabajadorl [Tarlfa_Hrl
lOficio1
1235
M. Faraday
$12.50
Electricista
1311
1311
C. Coulomb
$15.50
Electricista
1311
1412
C. Nemo
$1 3,75
Electricista
1311
1520
H. Rickover
$11,75
Electricista
1311
Asignacion del trabajador /[id-trabajador I
1
I
Inforrnacion edificio
I-[
[fecha-inicio
I
)(
DISENOY ADMINISTRACION DE BASES DE DATOS
TRABAJADOR I D TRABAJADOR 1235 1412 2920 3231 1520 131 1 3001
ID-TRABAJADOR
NOMB-TRABAJADOR M C R P H C J
TAR1 FA-HR
Faraday Nemo Garret Mason Rickover Coulomb Barrister
ID-EDIFICIO
OFICl0
ID-SUPV
Electricista Fontanero Albahil Carpintero Fontanero Electricista Carpintero
FECHA-INICIO 10110 01/10 17/10 05/10 08/12 28110 10111 10110 15/10 05/11 24/10 09/10 08/10 15/11 01 112 08110 23110 30110 27110
131 1 1520 2920 3231 1520 1311 3231
NUM-DIAS 5 10 22 18 18 10 15 8 15 8 20 14 12 12 4
14 24 17 14
EDIFICIO ID-EDIFICIO
DIR-EDIFICIO
31 2 435 51 5 21 0 11 1 460
123 Elm 456 Maple 789 Oak 1011 B i r c h 1213 Aspen 1415 Beech
TIP0
NIVEL-CALIDAD
CATEGORIA
Of i c i n a Comercio Residencia Of i c i n a Of i c i n a Almacen
2 1 3 3 4 3
2 1 1 1 1 3
tres Datawindows, quc se nhicarin en la ventand tle la aplic*acii,n.tal como se nlnestra m la Figura 9.10. Una Datawindow r s realmente una cwnsulta SQL. que se pnetle poner en una vcntana. P o r tanto. antes d e q n r podamos c r r a r la \cntana de la aplicac-ihn. drlmnos ( w a r 10s Datawindows. Despu6s cjor llayamos complrtado nurstra aplic*aclhn, Csta t r a l ~ a j a r kcomo sigue. Cuando la aplicacihn comienza consultari la tahla trahajador r intlicari todos 10s t r a l w jadores en la hentana d r datos (Datawindow) del tope. Luego, cwanclo el nsnario selewione pnlsando la linea de algun trabajador, se rellenari la segunda hrntana clue coutiene todos 10s edificlos asignados a dicho trahajador. P o r liltimo. pulsar r n cwalqnler tupla de asignaci6n de la segunda ventana provocarri que se muestre una t r r r r r a ventana c p e (-ontiene la informaci6n completa sohre el edificio.
SISTEMAS DE BASES DE DATOS CLIENTE/SERVIDOR
Para crear la inforinacicin conipleta se c1cl)c proceder tie la forma signientr:
1. Priinero se define la aplicaciOn usando el pc~interApplit.ation. 2. Z continuacicin se defincn tres Datawindow inrcliantr el pc~interData\ intlou. 3. Por illtinlo, se define la ventana de la aplicaci611, nsando c.lpuirttrr U i n ( l o ~ . De 111otlo clue colnenceinos por el paso 1. Si estarnos usando el PowerBuiltler. llainariamos a1 Application painter, pulsando en el hot611 Appl de PowerBar. Des1)uC.ssr ol)tien r la raja de guartlar la aplicacibn (Save Application box) tlc la Fi;ni-a 9.12. Le tlumoi no11il)rra la aplicaci0n tee-leando "a-trahajador-edificio-asigll:i(~iOl~ en 1.1 l ~ r i n i r r raja. ,~ Esta aplicacihn tlesplegari 10s datos de las tahlas trahajador. asignucihn > etlilicio. lo clue ie indica nietliante estos nonihrci ( 1 tal~las. ~ Sc lei ha pueito rl 111-rfijo"a_" conlo (.om cwio para indicar clue (.i una apliraci6n para eitas tablas. En la caja Comments (comcntarioi) iilt~.otliic.iiiioi"Estn aplic.aciOn tlriplirga tocioi lob trabajatlorri. ! la inforinaci0ll tic aiignarihn J d r edificio, p r a el tral~ajadorclue ie irleccione". En la caja Libraries: i t . ponv ( a 1 noin1)rr clel arrhito a-tar.l)l)l para indirar qur k t e es el lugar donde clnrrrnloi (1uc ic 1)011gan todoi loi o1)jetos clue tirnrn qur vrr (.on esta aplieaeibn. El infijo b'.l)l)l"\icbncbd(. "Pouc.rBuiltler lil~rary"(Bi1)liotrt.a de PowerBuilder) y e i un sufijo eitindar en P ~ u c i - Bniltlt~rpara cbitoifinri. PowcrB~iildci-autoiniiticainente cwntrola vita 1d)liotec.a !pontlri j ~ w n p e r a r de i ella todos loi ohjrtos que hayainos ereado o artuali~odopara usar en nncitra aplicmii~n. Ya i t . hail (1t.finiclo loi ailwrtoi gtmeralri ti(*la aplic-acihn. Una clrscripricin wsunien tle qub v i lo q n t ~i r ha herho en la aplirarihn i r innritr;~r n la Fignra 9.13. El pr0xnno paw i r r i crrar las 1)ataWiridows qnr se nsarin en la aplieaeih.
DISENO Y A D M I N I S T R A C ~ DE O NBASES DE DATOS
l a y name a ' a - t a e p b l Zonments r r t a apljraclon m u e c t r a
lodor 10s t r a b a l a d o r e r , y .1 I n l o r m a r l o n d e edlflrlos q d e arlgnaclon para r a d a l r a b a j a d o r
Checked out hy
Crear Datawindows OataD'iiitlo~painter.. 1 I I onstrye ol,~('tosl);rtir\Vintlo\c ( I I I V a c ~ t ~ ~a~ la l v11ase n dr tlatw ! 11o11t~n 10s rt+~~ltatlo> I ~ I I\vntanas.
El prhximo ~ ) a s oes introtlur-ir el DataWindow pcrir~trrn~etli;u~tc~ el l)ot6n DataWiicl tle la PowerBar ( t w Figrlra 0.0). St, ('rrariin tres Data Wintlows: r111;r Ilnra trahajador. otra 11uri1 la raja Nrw UataWintlow (Figura 0.11). (:oulo se asignacihn y otra 1)ara rtlil'irio. Ilsarc*n~os indic.o (w la c-;rja. dehc~nt)stlesignar el Data Source (Tt~entctle tlatos) y el Pi.c.senta~ion Style (estilo (I(. prc.sentacihn). 1,as rrratro ojwionrs tle natil Sonrcr nos tlan ~ r n apottwtia c~onsic[c.rirl~lepara la c ~ a c i 6 n(11: UataWindows. Sin emlmrgo, las D a t a 1 indows para estv ejemplo st.riin t o h s simples cwnsult;is d e unti sola tallla, por tanto podemox selrc*c*ionarla fnrntc tle tlatos Quick Select (srl(.c.ciOn ripidri) en cada caso. E n lu prhxima caja se selrct.ionarii el estilo r J n talllas. en lilas tlc ~)resc~ntat~i6u Tabnlar. Esto significci clue 10s tlatos s(. ~ ~ r r s e n t ; ~conw y collrmnas. Pasalnos ahora a la raja Quick Select (Figura 9.15), dondr be d e l ~ e nintlic.ar 121 tahla y las columnas clue queremos desplrgar. Srleccionamos la tahla Ti-aI)ajxlw y Add All (aiiadirlos todos), de modo que sc drsplieguen todas las col~unnastlr tral~ajador.I,uego scb int1ic.a la ordtw rle ordenacihn y ~1 critrrio d r selec~i6n.S r indic*aAscending (ascrrrdirntc~) en la fila Sort hajo Id Trabajador. Pnrsto que qurrrmos todas 1;rs tiiplas tlr trahajador. no s r indicarii ningirn critrrio d r selrccihn. Con rsto s r twnplrta la caja Quick Srlrt-t. Ahora nos movrmos a1 espacio d r t r a l ~ a j od r l puintar DataWindow (Figure 9.16), que rontiene en la serci6n Detail (detalle) la inforn~arihnq u r hemos drfinido. 0l)sbrvesr q ~ ele rspacio de trahajo t i m e c:uatro srcciones: Header (cahrcrra), Detail (detallr). Summary (resumen) y Footer (pie). La seccihn Header c:ontirne informaci6n t e x t i d quc se aiiadirh a 10s rnrahezamientos d r las colutnnas. La secc,i6n Detail contirne una caja para cada w m p o d e tlatos con el noinhrr d r l c a m p dentro d r la caja. Esto indica en qub lugar se desplegarin rralmrntr 10s datos. Las seccionrs Summary y Footer rstiin en estr caso vacias. Se
SISTEMAS DE BASES DE DATOS CLIENTEISERVIDOR
DISENO Y ADMINISTRAC~ON DE BASES DE DATOS
-
id,tr@
pwvieu- ( ristrr r ~ i 1 Ir I ~ I I I I~ ' ) t ~ r m ial t rc[ne tl~.\a~m,lla la ul)lic.acii,n \ ( , I . rhmo a p i ~ w e r ' la i I h t a W n t l o ~cwuntlo w IIonga en una wntana.
nomb-tr,
' tarifa-hr
- -
oficio-df
idlsupu
potlria poner el total y oira inf'ormaciOn cm la s t ~ c i 6 nSummary ) el u i i m ( ~ o(11- pigiu;~! otras informaciones textualvs r n la secci6n Footer. Potlrmos usar el ~ w ~ u r sPt r e j ~ i e nij~ikihu previa) de PowerBiiiltler p a r a vcr chnio svrii DataWintlow (Figura 9.17). 0 l ) w r a v ([ue la informaci6n del Heatler se muestra en Datawindow tal y conio vinios c.11 la I);~nlallaautcrior. Sin eml)argo, la informaci0n en Detail lista 10s clatos cwncwtos clue rsthn ~~outenitlos t'n la taljla tral~ajatlor,a una linea para catla tupla. I'otlria mars(. la I)arl-a 1 1 t h t l ~ y l a z a m i w t o (scroll bur) clue e s t i a la dererha para clesplegar todas las tuplas de la tabla. Si a l p l o rle 10s ~)oclcbr a m p s tle tlatos no es lo siifit*irntrnltmtt~ grand(- o no scbh a alinraclo aelt~c*uatlaincnit~, iiie)s regrehar a1 espacio tlr trabajo de DataWintlow p a r a c*aml)iarlo.Cuantlo se termiue con cste). lialmmos complrtatlo la tlefinicih tle 1)ataWintlow para la tallla tld)ajatlor. Ix elamos el nomljrt, (1-tra1,ajador y la almacrnamos en la bildiotera p a r a esta aplicxihii. Nuestra segunda DataWindow serii p a r a la tabla asignacihn . Se intlivari tle nuevo Quirk Select romo fuente de 10s datos y Tahular como estilo tle pi-esentariOn. Eli la raja Quirk Se1ec.t intlit*aremosla tabla de asignacihn con totlas sris columnas y niarc3arcwos a Icl Trahajador e Id Edificio como Ascending (ascrntleute) forma d e ordriiaci6ii. Siii c.nil)argo. antes clr finalizar con estc Quic-k S t - l t ~ttl t h n o s Iiacrr algo difrrriitt~(11' lo clue hiciiiios con la ~ ) r i n i r r aDataWintlow. Rec:orclrmos c6mo es q n r qurrenios iisar esta DataRintiow. A (liferencia d r la DataWindow anterior, que muestra una lista clr todos 10s trahajaclores, ahora s d o qwreiuos niostrar cada vez las tuplas cle asignaci6n para u n trahajador. El usuario v e r i la lista de 10s trahajadorrs en la primera DataWindtrw ); podra pulsar en la fila de u n trabajaclor en partirular. Queremos que entonres en la segunda DataWindow se tlesplieguen todas las tuplas d r asignaciones p a r a dicho trabajador. P o r tanto, queremos que esta vrntana rrcrlp r r r h l o las tuplas que se aplican a1 tra1)ajador selecrionado por el usuario. P o r lo tanto
SISTEMAS DE BASES DE DATOS CLIENTE/SERVIDOR
File
Edit D i s ~ l a v Rows
Window
I @/
Hela
H- F a r a d a y
12.5%
Electricista
1311
Coulomb
15.5%
Electrlcista
1311
1311
C.
1412
~.nemo
13-75
Fontanero
152%
152%
H. R i c k o u e r
11.75
Fontanero
152%
t l c ~ l ) r n ~1nodific:ar ~)s la wnsulta p a r a la DataIXintlow de la tabla asignacihn ponibndolr nna clinsula W-hcre clur provoqur q u r se mnrstrcn solamrntr las t ~ ~ p lya la s asignarihn d r l tra1)ajador srlccrionatlo. Esto s r logra poniendo en la cliusula W h r r r una varial~lrq u r (:o11t e n d r i el Itl-Trahjatlor como argumento. Este valor s r p o n d r i cn la variable en tirmpo tle ejrc:nc:ihn ruantlo el nsuario pulse s o l ~ r la r tupla tlel tra1)ajador. P a r a hacer la motlifitwii,n newsaria en el DataIVintlow cir la tabla asignacibn clehemos accetler a una n u e w uc:ntana clue 1nnc:strr la taljla asignaci6n (.on todas sus columnas y nn nurvn conjunto tle 1)otonw (4ue nos p r m i t a n c~onstriiirconsultas inis wmplejas (Figura 9.18). Primero ciefinirnos la v a r i a l h argumento de r r c u p e r a c i h clue sr indicci anteriormentc. Esta varialjle. nom1)rada ar-id-tra1)ajatlor c o n t e n d r i el Id-Trahajailor p a r a aqucllos tra1)ajadorrs tle 10s quc querrmos r r c u p r r a r sus tuplas en la t a l h asignacihn. Se usan ahora las funcioiles d r esta pantalla para w n s t r u i r una rliusula Where d r la forma WHERE i d - t r a b a j a d o r
=
:ar-id-trabajador
(Los dos puntos en :ar-id-trabajador intlican que ar-id-trahajador es una variahle y no una columna dr la h e d e datos.) Despuks de definir la cliusula Where retornainos a1 rspacio d r trahajo drl painter Datawindow. Se definen ahora la fuente de datos y el estilo tle presrntac:ihn corm antes y se escogr para desplegar a la tabla edificio con todas sus c.oluinnas. Una vez mas se define un argurnrnto d e recuperacihn poryue estarrms interrsatlos solanlrnte en ver la informacihn para el edificio en el que el usuario puls6 en la tupla d e asignacihn. Esta vrz definimos el argurnento de r e c u p e r a c i h conlo ar-id-edificio y construimos la cliusula Where siguiente:
DISENOY ADMINISTRACION DE BASES DE DATOS
WHERE
id-edificio
Crear Windows
=
:ar-id-edificio
SISTEMAS DE BASES DE DATOS CLIENTEISERVIDOR
tlle -
td11
Controls
IJes~gn Declare Uptlons Window
Menu l I J a l a ~ n d l Struct
I
Prefs
1
Help
~ a t a b a s e l Query
Help
1
Func
1
L~brary Uner Obi
1
Run
i Debug
I i i a d a ~ n o ps r i n ~ e r ocl l ~ o t h n La . PaintrrBar (harra tlv painters) cpw se ~ ~ ~ u e sen t r In a n en Fignra 0. LO mut,stra 10s hotones tlc 10s tlifert~ntestipos cle control cine se p ~ ~ r c l vponer la \cntana. Si se 1111lsaen rl I ~ o t h nC ~ n d B t l de l la PninterBar. luero rno\einos el puntero hacia la escpiina sulwrior clrret*liade la caja y vol\t'n~osa 1)nIsar, esto p t ~ r ~ t l11r1i1 1)ot;)n ('011 t.1 tcn\to"nonc" ( n a ~ l aell ) la esquina superior tlerecha. 1,uego potlrmoh teclear "cerrar" cn el 1)otOn para iustitnir ;I .'none". (Ler Figura 0.20). El yrophsito de este h t b n es l ~ r i n t l a r un nietlio sinlplc 1);lra ( p e el usuario pncda dl),indonar la aplir.ati6n. Mis tar& potlrmos est.ril)ir un script (gui6n) para este 1)othn qut, cansc t[iitXla aplic*atiOnt e r ~ l ~ i nt~nnntlo e el 1 l)ot6n. usuario 1)ulsca~ 1 rste \bra aiiatliremos lo\ twntroles DataWintlon. P a r a clefinir t.1 primer twntrol DataK i n d o n tlelwrnoi pnlsal en el I)othn D a t a W d d e Paintel-Bar y lnego pulsar r n la estpiina superior izquiertla tlel espacio tle t r a l ~ a i o 1Jbamos . el rathn para d a r k tamaiio a la \ V I I tana ! luvgo intlirar twhl tlc l a i ? a tlefinidas D a t a ~ i n c i o w delje rolocarse acpi. Select-ic~namos la tl-tral)ajado~e indirainoi que tainbiGr1 newsitaremos atIui nna Imrra tit. despla~amiento\tbrtit'al. (:on ebto h a l ~ r e m o saiiatlitlo el priinrr cbontrol Data\lCintlow (Figin-a 9.20). Los otros dos DataWindow se aiiaden d r la misn~rimanera. Hacemos esto ponimtlo el control (1-asignacihn tl11l)ajodel control tl-trabajador y el control d-edificio tlrhajo tlc1 control d-asignacihn. lkjanios espacio entre 10s controles de modo d e p o d r r aiiatlir 10s trxtos d e 10s cncahrzamientos. Aiiadiinos la informaci6n textual rutima de cada control DataWindow. piilsando en el b o t h StatirTst d e la PaintrrBar y lnrgo moviendo el puntero hacia el lngar desrado y pulsando de nnevo. Teclramos el texto drseado en la caja texto. Esto se h a w tres veces, una por catla control Datawindow. El resultado final drlw parecrr algo asi conlo lo clue se nluehtra en la Figura 9.21. Finalmente guordamos la dcfinicihn tlr w t a ventana con el nombre v-tae.
DISENOY ADMINISTRACIONDE BASES DE DATOS
8
I
tlle
tdlt
Lantrals
:
Ueslan
I
.
Ueclare
. I .
. I 1
Uotlons
. I
I
Wlndaw
.t . I
Helo
F'rem~erGonstruct~nnWorkers
A Worker's Assignments [id-trabajador
1
Building Information
lfecha-inicia
1
1-
I
SISTEMAS DE BASES DE DATOS CLIENTEISERVIDOR
3 15
I{rvisemos lo c111r htmos hrt-ho hakta aqni. Sc ha tlefinitlo la tic. tlatoy (11. (.on\t~.wc.ionrs(.on trvs taldas: trahajador, ;rsignati6n y etlif'icio. Estamos i~horii1.11 c>ll ) l ~ ) t w o tlr c-wacihn dt, mia al)lit.at*ihnt111t' N T I V I I ~ I ~aL In base tle datos. lista la.; tu1)la.s dr 10s t r a l w jatlorrs ( ~ I Vhay "1 rIIa. j lista I;ls tnl)I;ls clr las asignaciones II;IIYI c.1 tral~ajatlorclue se srlrc.c*ionr,asi romo lista taml)i611la tupla del tdifitio 1)ara Ilna ahignatii~n.I'ara (*rearwto al)licwiOn se ha utilizado 1.1 2pl)lication painttx parit tldinir Csta y tlarlr nom1)re. 111ty) ~ls;unosel DataWintlow l ~ a i r ~ tpara r r dt*finir 10s t r r s ol)jrtos l)atal\indo\+ ((1-trahajatlor. (1-asignatihn j- d-cdif'itio) ? t'inalnitmtc. usan1o.s rl W.indow paintrr 1)ara ( w a r una i~uiva vtmtana clur twnttwga 111sc.onti-olrs 111. 10s t m s I)at;~\iinchw ? 1111 I ~ o t h n(11. ortlt.11 I)ara c r r r a r la aplit*aciOn. Para Ins al~arienciasrxtrrnas hernos I w h o toclo 10 n w c w ~ i o])or la aplicwih. Pcro sr ha ol\iclatlo illgc). Trnrmos totlas las ~)it.zasi i t ~ r s a r i a s la : I)asr tlr clutos. In aplicacih. los 1)atoW-indows. y la vrntana (*on10s rontro1t.s. Iwro n o las hrrnos t ~ ) n c ~ t a t l ( ~ S scripts (gliiones) 1m-a 10s twntrolt.s. aii tlrl todo cbntrr si. Para h a w r (,st0 ~ ~ I W I I I Orsc'rihir cwno tambibn Ilara la vrntana p la aplit-acihn twmo talos. Estos scripts t-ontirntw Or11t'nc'~ (*on10s p a r a n ~ r t r o sa ~ ~ r o p i a d ~o sm - rstar a srgnros de clur las rosas van a orurrir t80rrt.t.taInrntt. \- rn rj tnomrnto ~ ) r t ~ c i s o . L)rsgrac.iadamvntr, rl lrngnajr dt. ,srript tlr PowrrBuiltlrr rs I~astanira~nl)lio? c8oiii~)lit>aclo y 1u)r lo tanto sr salr tlrl a1txnc.c. 11rrstr Iibro. Sin emhurgo. ;tnttSstIv t t ~ r n i n a con r rsta src*cihp ~ ~ r t i s r ~ las n o stai-(.as 1);u-a las cwalrs sr d r h n csc.~il)irscripts. tlr tnotlo q u r la aplic*ac*iOn funcionr adrcwatl;t~nc-ntr.Tarnl)ibn drst:ril)irrnios la Ihgira q u r r s t i ilrtrhs tlr la t.str~ictnrad r la aplicwibn y 511s scripts. Auncluc. no sc, col)rili la sintalis rsl1rc4'it.a t l d Irnguajt. dt, script, sr l)otIr6 vrr (*onmhs claridatl la filosofia clur 6stc. rnc.irrra. Las aplicarionrs clr Powt~rBuilt1c.rson dirigidas-por-t.vr11tos ( e ~ w - d r i w n ) Ksto . signifira quc* 10s scripts sr rsc-rilwn para d a r rrspne.sta a los rvrntos qut' tc~iitlrrin111yar. Ejemplos d r rvmtos inclujrn rl twmirnzo dt. una aplieacibn, la a p r r t u r a tle nna v t ~ n t ; ~ n ; ~ . pulsar sol~i-run 1)otOn o sohrr m a linca (In 1111 DataFintlow. Caila vrz q u r oc*urrc.tin cwxnto se r j w u t a 1.1script d r tal rvrnto. Poi- tanto. para rscril)ir r1 script ('01-rt~to ~ ) i ~ catla ra rvrnto ncvwitamos cmlotw t*nilrsson 10s rventos q u r sr suponrn ocwrririn en la apliriigrnrral dt. la aplicaci0n chmo rihn. par;^ hacw esto rs nc.wsario rntendrr la rstrucbt~lra m c a j a rada pirza en vsta rstrurtnra. Las aplic*acionrsrstan rstruc-turadasjerirqnicamente. El primrr rvrnto tan m a aplicarihn rs la rjrcucibn d r la aplit.atiOn cn si misrna. Cuando el usuario initia la aplicaciOn. sr ejrcuta rl script p a r a rl rvrnto "al~rir"(open). llna de las prinripales rr,;l~o11sal~ili~la~1rs d r rstr srript sera ahrir la vrntana tlr la aplicari6n. Esto dispai-a 1111 n u c ~ ot>vrnto:el evento a h i r (open) para la vrntana initial. Esto origina a su vex q u r sr r j e r ~ t t un r nnrvo script. 1)espubs t p r w tlwplirga la vrntana sr prcSscntana1 usuario una srrir d r opcionrs (1)otont-s q w put& pulsar), DataU indows en las q n r ~ ) u e d etlrsplazarsr o lineas r n las qtir p l r (It. pulsar, rtc. Estos son casos atlirionalrs para 10s twalvs sc puedrn esrrihir s c r i p t s En conjunto, 10s scripts tlrterminarin club proc*rsamicntos t r n d r i n lngar r n rrspursta a los wentos. Veamos ahora el prorrsamirnto y 10s c~ventosq u r lhgicatnrnte tirnrn lugar rn n u c ~ t r a apliraci6n y cwn rsto iremos idrntificando (1116 scripts nrrrsitamos rsrrihir. Evcmto 1 : Evento alwir a p l i c a c i h . Este evento artivarh un i r r a tlv t~otnunicacibn va d r transacciones, la cual rs nrwsarla para idrntifirar rl SGHD (*onrl q u r la aplit~,~t~ibn a romnnicarse y al~rit-hla vrntana 1uic.d (\-tar). Abrir la vrntana inirial 4.3 4.n si n~ismo1111 rvrnto para el que ha) q u r rsc*ril)irnn script. Ebcmto 2: Evento ahrir vrntana. Cuantlo s r ahre la ventana i n ~ r i a l(\-tav) c1uc.i-rmos q u r deq1'1irgnr la ventana ! q n r la lista d r tra1)ajadores d r la tahla tra1)ajatlorc.s a p a r r w a en DataWindow de la partr superior. P o r lo tanto hay clrw rsrrihir un script 1)arn rstar srguros d r que t,5to ocnrrira. Evento 3: Evento d e pulaar s o b r e la linea d e u n trabajador. El usuario. q u r r s t i virndo la lista d r trahajatlorrs d r la DataWindow superior. purde desplazarsr a lo largo tit. esta lista para ver a totlos loi tra1)ajadorc.s. Si desra \ el. la hsta d r dsignacionrs d r cdificios
DISENOY ADMINISTRACION DE BASES DE DATOS (It, un tral)ajatlor. lo h i c w (lntBtien? (111t'h a w r tss p d s a r s o h - t ~ la linra t11, tlatos dt.1 tral)arsc.ril)irsr sn t ~ t ~ ~ . r c ~ s l ~ o i s~ccr li iprt ~. Ehto ~tt~ jatlor. Esto tlisprra nu rhrnto 1):u.a t.1 t-ual tlt*l~r script r a u s n r i t11w las tnplas tlr las irsig~~at.ionrs tit: tlic.110 t r a h j a d o r sran dt~q)lrgatlastw la styliltla 1)ataTintlow. Evtwto 4: Evento clc pulsar s o b r e la linra d e una asignaci6n. El usuario l)urt11* o1)trnt.r inl'ormi~tihnsohrr ~1 rtlil'it*io tlr tuna tlrtrrminatla asignacihn si I I I I I S ~tw la lint.;^ t.orrt-sl~)ntlit,~~tr a tlirl~airsign;~tiOn lir UataWindow. Esto dispai-ir 1111rv(*iito11irrir1'1 I I I I P nil .script t l r l ~ r r irrtw1wrar la tnl)l;~( I d d i f i t i o i n t l i t d o y ~nostrirrlaen la t r r w r a Dat+ \\~intlow. finnK~cmto5: Pulsar s o h r c t.1 1mt011 tlr la o r d e n c e r r a r ( c l o s ~ ) .Rl 11s11ariol)uc~lt* lizw la al)lic~at.i~')n sinil~lt.~nt~ntr I)nlhantlo t.11 rstt. I)othn.
Algunos comentarios finales
SlSTEMAS DE BASES DE DATOS CLlENTElSERVlDOR
I I ~ I Y * . (11, I < I ~ t3sttJ1<;111it11lo no> h t ~ n ~t *o\ t~~ ~ ~ ~ ttI~i tnIl ;oI ~ itlea5 i ~ ~ t w i a t l aI ,s~ B I 10I 4.tvnlas tlatos c~lit~ntc~/wl.\ itlor I ~ I I II '~ I I ~ ~i In~t rIcH~ t l ~ ~ t ~1.n i t l10.; a s 11rim1w1cc,nl~it~lloi. St. t . \ l ~ l i t . O t 1 1 1 t ' I I I I ; I ~~l;~ti~l'ot.llli~ t . l i t w t t ~ / s ~itlor ~ ~ . \os I I I ~ ; I 1 . 1 ~ 111,' t - o l ~ ~ l ~ ~ ~ t i ~atllgo~l ~. (n. (11' o. s lai I'II;III*> ; I I . ~ I ' I ~ I I I I ' O I I I O s t ~ ~ . \ - i t l t ~I l~wl . i ~ ~ t l a nht.r.\-irios tlt~ tlr nrios til)os ;I ot~.o>t ~ o ~ l ~ l ~ ~ l t a t lc.lic.ntt.h. o ~ . ( . - Sc.par:~ntl~, tsstas I'rlnc*ionrssts ~ ~ n t ~ t c~sl~ec*ializ;~r ltw 111ssistcwas tit. hurtl\tan.t~.optimixanclo l a . rnhtlrlil~a* i 11,. nlotlo 111wratla 1 1 1 u 1 1 n t ~ lIaI ~ I I ~ Inltjor T la ta1xba t 1 1 1 t ~titst~livntw! Ias m ~ ~ t ~ ~ tWiI Yn aitltwI I V trsignatli~.\imos i i h t t ~ n ~tit. w sol'twt~rt~. tanto I , w a Ios c w r n l ~ l ~ t a t l o ~s ,et ~r \>i t l o ~ (w111o ~~i I K I W las rlicwtt~s.St, t * ~ a n ~ i n a r111s o n 5(;111)s SQl, St,rvt.r !. 0 1 x c ~ lcn t ~ algim tlt.tallv. \ it~l.ot~ 511h I W * I I I W I ~ 11i11.a la (l14init~iO11I;! I I I ; I I I ~ I I I I I ~ I I * ~tlt, O I Itlatos. 1)1~~1)11L st31 w i h 0 l ' t ~ \ t t ~ ~ ~ t < ~ ~ i I t l ~ ~ 1111 t ~ ~ ~ t o 11a1.a r n o 01 I I ~ + ~ I I X I I I I I ; ~ ~ ~ I i ~ ~ : tw t r i111s t ~ I~* ~I It~+~ ~ ~ I I I ~ ; It~litwtt~h. I~IJI~I~~ I A I S I v n p ~ ~ a j( tI t~- (It4'i11itiO11 s tlr tlato3 tlta SOL S(T\IT 0 1 ~ a 1 ~~1~1t~w n i t ttI14'inir w taI11;1* (It* 11;1st+tit* tlatoh ~ n t - t l i a ~ la ~ t Iv * I ~ I I ~t l~t . I tilws I tlv clatos dt~finitloh1101. 14 11s11ario.t ; ~ l ~ l a ~ . sol~l.t'totloh ;hto.s. INS t i p s 11t' (liltoh tlt%l'initlon11orel u s ~ ~ a r >(. io c d u r n ~ ~! a s~.c~htrit.c.ic~~lt's desan-ollan ;I 1)ilrtir tIr tilloh I~L?ico:,. s ~ ~ ~ ~ ~ i t ~ i1)or > t ~('.1 i histenla ~ t l o s ! aiiatlie1111ot'iert;~sI X trit.tiows h1111l.t.(:5t115.Khtos til)t~r(11%(lato.* I I I I ( Y ~ I W111tlgo 11harse P I I la clel'inirii~n( I t , t.oI11111III, l i ~ ti i ~ l ~ l a s\ I. tlt.l'ii~irlas ta11l;ls se tlt~l'int~n snh t.olrn1111ai( Y I I I .IInab c ~ s l ) t d i t - ;tlt.nt1.o ~s t i l m tie tlatos ! 5115 ~ . t ~ s t ~ ~ i t . t ~I Ai So ~r ~t ~t ~s th~. i ~ t ~ i1111t~ltw o n t ~ $ st^ rt$w c111(- I ~ ~ I ~ I I 105 ~ I ~ I I \-aIort,s t111e I I I I I Y I ~ ~ tI I> s t ; ~1.11 ~ , lit5 ~ ~ ~ I I I I ~ k~t aI s~ ~I Is ~. I ~ Y \i~ltlivar (*II hi h t - l ~ t - ~ w ~ Ii ~t tI ,I~I I~. ~ ~ . nulos ~ ) ~ ~ t * tt;~tnl)ii*l~ lt.n p ~ . a n t i z ; la ~ ~~toic*itlatl . d e los v a l o l n ( I t * tlna ( Y I I U I I ~ I I ~ I( I I - I ~ ~ I X(1,B. la tallla. b;llas t a n ~ l ~ i ; ntlt4'int.n t*l;~\t.srimar arias ( I t%-itc,rnastlv un;l t ~ o l ~ l r n noa~ l ~ i l l t i ~ ~ l v - c ~ o l ~ ~ ~ ItI ~ o n t ~ t t ~ lv~r~e dt ot i ( , n a . POI.i11tin111- ~ . t ~ s t ~ . i t * tp~wi ot l~t l~t n~SIT~ n l i s p ~ n t ~ a lI tI ~~ ~s I I I I14 riOn (:III<(:I\. I I I I V int1ic.a una wgla tlutbtl(*111.t~uml)lirratla t11l)la. Los l t m g ~ ~ a j tlv v s n ~ a n i p ~ ~ l a ttle i h tlatos n tle estos tlos S(;BI)s S I J I I mn! ~ ) o t I t ~ o hI I~I Y~ s . mitttn l ~ l o t l n t ~tit.s instl~r~t*t~iones. instl-uc*tionrsIF. lazos K'IIILE. r a ~ i ; ~ l ) lIIII*;I~I*,.; t~s y 111.o1~'(It' vntratla !~ dt, salitla. La c.ontlitii111I I I I I ' 5'' IISI t.11 tlin~itwtos~ ~ I I I I ~ ~ I . ( I.YII II I~l~arinlt'tros II~IIS las instrnc-t-ionc~.sI E' o U I111,K. o tlift~rcmtia111%las ti1)ic.a~wntlic.ionw tw 111sIe11~11i1jeh (Ir ~ u ~ t ~ y a m ~ ~~ultvlen t ~ i t i nusar . \alorc~scwn~pl~tatlos a ~ ) a r t i (11, r relaviones c ~ o n ~ p l e t en a s lugat. tit- sirnlllrs tul~lah(I(' I I M r t d a t i h . 1:istos sisttwas ta1nl)iCn so1)ortan ~ l i s ~ ~ a r ; ~ t l oclue r e s son . t a n vtXzI I I I ~ ' l r u p r a n t a s twrito. tLn1'1 Itwgnaje tle 1nmipnlac~i6ntle tlatos ! tlut. se t ~ j w ~ ~tnatla c ~ t ~ r ~ 1111 r r t -ti1111( s . s l 1 t ~ 4 h tle I-arnl~io( i ~ l s e r t i h n .h o r r a d o o ; ~ t ~ t ~ ~ ; ~ l i z cw ; ~ cn~n iah~xblatihn ~i) rsl~-t.iGru.Ehtos 11v1.mitenel c ~ ~ t m p l i m i t ~ cn ~t on t r a l i z a d odt. n n a n ~ l ~ l ri oa u p tltb t i l ~ ~tlv. wglas tlc nrgot.ioh ! rl c ~ i l t d otltx i m p - t a n t r s valoi-1,s t l t ~ i v a t l o s . El t l t ~ s i ~ ~ ~tlr ~ x la3 ~ l l ao~ ~ l i t ~ a c i o dt* n t ~10s s sistc.mas t~licmtt~s I ~ ~ ~ tt ~r wt rl ~Ingar ~ n en Iln t ~ i121s t l aisr ~ ~ t ~ r l ' igrifiras ~ t ~ t ~ s (It, w r ~ a r i o . rntorno t111t' Imintle t ~ a l ~ a t ~ i t l a tI l~t i~t s- rc~~ ~ ~ a l ~ l t ~tau Isantlo Po\wrBniltlt~rcwmo elrnll~lorstrltlianlos la tIrSinic.ihn tlr a ~ ~ l i t ~ n t i o nDt sa .t a F i n t l o ~ ~ s St' t~stlidiarorl1i1h clue defintm twnsliltas y la 11resent;lc.iOn tlr 111sr e s ~ ~ l t a t l otIrs 1as c~ons~iltas. \entanas c.11 las clue se 1)onen IasD;lt;l&indow.; !otros t ~ ) n t r o l ori(mti~dos c~ a1 nsliario. T a n 1 1 i ~ st. n drsc-ril)ieron los t i l ~ o stit. tb\t.ntos 1111t' 11ntdr ~ W O V OrII ~r ~ aI r. ~ a r ei on nna ventana ! 11ara 10s twales tluereluos t w ~ i l )ljrogramac i~ scripts tple respondan a ( l i t h s eventos. P o r idtinlo. se h a seiialado 111wl o ~ ~ n t o r n 11th o s tlcwrrollo tlv aplirnciones clientr/svt.itlo lor nos brintlan la oportlniitlatl tle w a r milltildes h e r r a ~ n i e n t a s1)ara la creaci6n tlr histernas ~ i ~ o t l u l : ~tlr i - tcwnsitlt~ral)le ~ potler ,! f'lrxil~ilitlatl. .-(&
1112
1. D14ina con 511s propias palahras catla n n o tle 10s tbrminos signic.ntt~s: a.
I n t w f a z Grafira tle Usuario (IGLT. e n inglbs G U I )
1). regla r.
valor p o r tlefwto
d. restricri6n tle columns
DISENOY ADMINISTRACION DE BASES DE DATOS
I)est.ril)a t4mo st. p n t v l t ~w i a r Ios l i p s (It' tlatos tlefinidos por el ~ ~ s ~ ~ena 121 r itlefino tihn tlt. las tal)las tle una h e tle tlatos. gl'or qui. son kaliosos?
i,Cuhl es la dil'erent+~ t'ntrt' una rostrit'ti0n LNIQUE, la restrit.t-ihn l'121\.1 112) 1\E) ! la rt.itriwiOn NOT N111,1,? Itdique lab tlil'erentei twnstrnt.tiont~sd1.1 1t.nguajv dv fllijo tit, control.
;,Eli c p b f'orrna difieren l'l~ntlan~entalt~~ente lai instruc*rionesIF 5 IX IIILE del l e n p a je tle fl11,jotle twntrol de las instrut*t~ionesrt,spet*ti\as tm n n ltmgnajc twn\ent*ional? i3C6n10se nsan el K K E A K y el (:ONTTNUE? iMetliante tlu6 instrncti6n se tlrfinen las variahles locales en el lengnaje de flujo tlv t~ontrol? , Q u b aspectos dtx 10s prot.tdimic.ntos alniawnados haven posi1)le que bstos p n t d a n nsarse e o la creat%n tle m6tlulos tle programas qiie se p e t 1 a n comunit*ar entre siY Analiw lab w n t a j a s tle 10s procedimientos al~nacenados. i,Q"C. pneden h a w r 10s d i s p r a t l o r e s clue no pnetlen h a w r las rt.strit.tiont~s'! 1Qub funt*ionesllevan a d
o 10s puintrrs en PowerBuilder?
Indique 10s puinters de PowerBuilder. iCual es la diferencia entre nna ventana y u n Datawindow?
20. Analicc. el proctdimiento mediante el cual se definen las consultas en un IIataWindow.
SISTEMAS DE BASES DE DATOS CLlENTElSERVlDOR
319
2. Itl~~ntifitpr 10s valores por deft:c:to aI)ropiadosen la hasr de datos dv una rscurla 1)ara las ?;ituacionrssiguientes: a. Vn nurvo a h rscolar. I). l!n nut:vo rango clr prof~sor. c . Un numo aiio rsprraclo dr gratluacihn.
3. Defina un valor por tirfrcto 3231 para usar con la colurnna i d - s u p en la t d d a traI~ajador.
DISENOY ADMINISTRACION DE BASES DE DATOS
edlfi c i o id-edlflclo dir-edificio tipo
tlpo-ld c h a r a c t e r 12 characetr 9
nivel-calidad
lnteger
categoria
integer
aslgnacion i d - t r a b a j ador id-ediflclo fecha-inicio num-dias
nulo n u l o , no p o r d e f e c t o , v a l o r debe s e r oflclna, cornerclo, residencia o alrnacen. n u l o , d e f e c t 0 = 1 , e l v a l o r debe estar entre 1 y 4 (inclusive) n u l o , d e f e c t 0 = 1 , e l v a l o r debe estar entre 1 y 3 (inclusive)
t ipo-id
tlpo-id datetlrne integer
nulo n u l o , e l v a l o r debe s e r mayor que 0
6. 1)rSina un cwlwnla (11.l)ii+rt l v tlatos. inc*lu!endo los 11ond)rc~s tl<. ~ a l ~ l ic~- sc .~ l ~ ~ i i! i~~a c - l a ~~wilnariiis s !c ~ t ~ i i para a s rl twlr~mii~ tlv la F i g ~ ~ 0. r i 111:. ~
NUMERO
NOMBRE
VENDEDOR
I HECHO-A
I
PRODUCT0
PAGADOCON
/
ORDEN
7. Drfina las rc,stricciones CHECK para rada uno dv 10s rases siguicmtc-s: a. En la relational eclifit.io, si r1 t i p r i Oficina, rntonccs cl nhrl tlv cditlatl estar por enrima dr 2 .
t l ~ h
SISTEMAS DE BASES DE DATOS CLIENTEISERVIDOR
321
10. S ~ i ~ ) o n 111it' g a ha! nna columna
~ 1 la 1 rrlocibn etlifitio. nit~~~-tot-tliai. clnr contirnc*1.1 nilinrro total tlr tliai q n r ion asignatloi 11)strabajadorrs a die110 etlificio. Cree IIII tlisp a ~ . a I o rtlnv at.tna1it.r esta t d r n n n a ratla \ r z clue ha,a nna a ~ t n a l i z i ~ e ien i ) ~la~ tallla ., asignatwii.
2. Ol)tt.npa copiai tle trallajo tle tlifrrcntes paqnc.tc.3 de rntornos de rleiarrollo de ap1ic.ac.ionei c.lientr (tales ~ o m oPowrrRuiltle~o SQLIXindows) y rxamine sns c-aparidailei cwrl reipccto a l a i l e n t a n a i (window), IlataWintlow y otrus t.ontroles, a 4 w m o tamI ) i h a i u i l e n g u a j e de nlanipulari6n tic. datos. Escriha nn infnrmc. romparantlo cstdk fatilitlatlei.
DE LOS SISTEMAS DE BASE DE DATOS
Introduccion Acceso fisico a la base de datos Formas de almacenamiento fisico Almacenamiento secundario Bloques de almacenamiento fisico Factores de rendimiento del disco Tiempo de posicionamiento Tiempo de activacion de la cabeza Retraso de rotacion Velocidad de transferencia de datos Tiempo de transferencia de datos Ejemplo de un registro accedido aleatoriamente Ejemplo de un registro accedido secuencialmente Formatos de almacenamiento de datos en disco Formatos de pistas Formatos de registros Registros de longitud fija Registros de longitud variable Gestion de entradalsalida Organizacibn de archivos y metodos de direccionamiento Organizacion secuencial de un archivo Organizacibn secuencial-indexada de u n ar-
chive
Organizacibn directa de un archivo Funciones Hash estaticas Funciones Hash dinamicas lmplementacion de interrelaciones logicas Listas enlazadas Listas invertidas A r b o l equilibrado indexado (B+ - ~ r b o l ) lmplementacion cliente-servidor de la indexacion de u n arbol balanceado Correspondencia entre estructuras de datos Iogicas y estructuras de datos fisicas Correspondencia en las bases de datos relacionales Correspondencia en las bases de datos en red Correspondencia en las bases de datos jerarquicas Acceso a la clave secundaria Optirnizacion de las consultas Combinar las operaciones de selection y reunion Combinar las operaciones de proyectar, seleccion y reunion Resumen Preguntas de comprobacion Ejercicios y problemas Proyectos y cuestiones profesionales
323
ORGANIZACION FISICADE LOS SISTEMAS DE BASE DE DATOS - -=>- -
Billie T011efi011. lo a c t r ~ a udmiriistrudoru l de 10s S e r ~ i c i o sde C o r ~ i p ~ ~ t t ~ crri i c ilar ~Corporuciciii ZPIIS.ei~coiitrubui n p i ( ~ t u i i1(~ t ~uctit~rd(IP 1r11ode sirs colegt~s. Irehie Krepsbucli. qiw est6 (1 corgo de 1u Pluii/fjcucicin tle Req~risitos(IP 1Iuteriules ( P R \I) erl ltr I)i~isiciiitlr (Ie 11(1iir!filctlrr(i sobre 1t1 lubor cuestioMoiiufncturu: SP Iiubiu qiwjudo (1117icepresi~lente de nnble d e 10s Servicios de Coriipi~tuc~iciii p u r u s~tisfircer10s necesitludes tie ir~/i)r~~rucioii P R M. ''Aqui teizeinos un riwvo sisternu d e bnse tle rlntos, p e se (lice p e 110s l l e ~ a(I lu ~ 1 1 1 g ~ i u r d i ueii 1u gestioii d~ 1(1 infbrniucicin, pero no sienipre p e d o obtener 1u ii~ji)rinti(~ii)ii qlie necesito czitmdo 1u ri(~cesito.1/Ie siento ,frr~strudocon 10s tieinpos de r P s p ( ~ s t uqiitJ obterigo de imestro SGBD." e n t e i ~ d e lt~,fri~strucicii~ r t1~ 1)eslmCs de oir ~ s t (o 1 A~I Ljefe, Billie r~spoildii):"PIIPI~O e r p e 10s tipos Irchie con imestro tiernpo dr ~ ( J S ~ I L ( J S ~pUr. o lo que p r e r e c e no e i ~ t e i ~ dPS tlr irlfi)riiies p e iiecesitu soit ~ ) t ~ r t i c ~ ~ l u rdi ir f~i cr ri l~~(t~~11)rodwir ~ r c i p i d ~ r n i ~ i iSi t ~eoiio. cieru niejor las c o i n ~ ~ l ~ ~ j i t lde u cln l eorgc~i~izuciciil,fisica tle lus buses tlr datos, ~ncoiltruri(i incis .fcicil ser puci(wt(~(.on iuwstro tieinpo d e respuestu. Coml~reilderialu riecesitlutl tlr idei~tificurinfbrrncj qticJ rc~tpiiereiiresprlestcls rcipidus y t ~ q ~ ~ e lpl oes metl lei^. esperur 1111 poco mcis. Entoi~cesp o d r i u r n o ~perfecciorlc~rIn base de dutos p a r u d u r uilu inejor reso i ~uelst ~priori(1ud." DespiiCs d e coiisidert~rel puestu c l i t ~ i ~ dseo trute ( 1 i~i ~ f o r i n ~ ~ ~ i de t~suiltop o r I L I ~ Oo (10s &us. Billie tlecidici recornerldurle u su jefe lu ofertu de sernir~t~rios s 10s rudiinentos de1 diseiiofisico y operucioiilterrlos p t l r u t i ~ r i ~ i l i c ~ r i(Iz c10s ~ r ~ t s r ~ n r i ocorl P ~(lutes. nes con 10s ~ Q S dt'
r t y h t n l o trata acrrca d r las rstructura, fisicas cjne se nsan para impleentar Imses de tlatos. Drs1)ui.s tie 1 w r rstc r a p i t d o srrri r a p z tlr:
Dt.st.rhir las estrncturas p a r a rl aweso fiiico d r la lmse de tlatos. Explwar hi cwacteristicas de almacrnan&nto. r r c n p e r a r i h \ ejrc.nclhn r n tlistw. Entrntlrr loi tipoi hisicos de organi7acion de un archi\o \ c6mo funcionan. h w r i h i r el uio c h loi 1)untrros p a r a crear listas enlazadas. hstdi in\rrtiddi ! B+-irhol. Ententlrr rhmo loi motlrloi tlc clatos logicos se correspontlen con estruetura3 tle tlatos fisicas. Definlr y entender claws ietwntlariai. Entrntlcr loi principios hisicos de la optimizaci6n de consultas.
La organizatibn fiiica tlr una h i e tle tlatos es un t6pic.o extenso. Sus detalles principalmrnte son d r l intrrbs tlr loi rsprt-iallstas ti.c.nlcos inlolucrados en el diseiio de hardwarc ! sistemas de software. Sm embargo, el rrntlimirnto genrral d r u n iistrma tlr h a i r clr tlatoi se determina en gran nirdida por lai rstrutatur:~itlr clatoi fiiicas uiadas y par la rficirnt-ia con la cual el sistema trahaja sohre lai n~iiniai.-lunqur 10s uiuarioi no d r b r n t r n r r conocimirnto de 10s detalles del d ~ s r l i ofiiwo t1r la h a i r ilr clatoi, 6itoi afrctan a1 rrnttimitmto. u n fartor tlr gran importancla en la sati3facci6n tlel nsuario con el sistema de h a i r ctr datoi. iPotlria r l niuario o1)tener la informacl6n deseada en el formato apropiado y en nn tiempo conveniente? Esta illtima f r a i r , "tirmpo c.onvrnientr", puede rxpresarsr grnrralm r n t r t*omotivmpo de r e s p e b t a aceptable. La -'informacii,n deseada" y el "formato apropiado" no ir afectan mucho por la organlzaci6n fisica de la base de datos. pero el tieinpo tlr rcspucsta ssi. El tiempo d r respuesta ri r l tirmpo transrurriclo r n t r r la initializat-ihn tlr una oprracihn s o h la base de datos y la disponibilidad drl resultado. I [ n tiempo tlr r r i pueita lrnto ri la qurja m i s frrcucnte que expresan 10s usuarios de lob bibtemas de lrases d e datos, posildementr tlrhido a q u r ri lo qne se ohserva m i s ficilmente.
DISENOY ADMINISTRACION DE BASES DE DATOS
Aceeso fisico a la base de datos En la V i p r a 10.1s r ~ n u e s t r ar l s i s t r n ~ a1)arn d arrrso lisico a la I ~ a s rtlr tlatos. Se purele w r la interarrihn tlrl n s ~ l a r i ocon t.1 sistrn~ade hast. tle datos a1 iniriar nna cwnsult;~.El selector t1e estrategia t r u t l ~ la ~ tortlen ~ t l d nsnario a sn forrna mhs el'itit.ntc. p a r a su rjrcurihn. La ortlt.11 tratlutitla at*ti\~arntont*t:s a1 atlministratlor tle buffw, tp1t' wntrola rl rnovi~nirnto(11%tl;~tose n t r r la memoria 1)rinripal y el a l m a w n a n ~ i r n t or n tlistw. El a t h i ~ ~ i s t r a t l otlcr art*l~ivos (la s o l ~ o r t al t ~ atlniinist~xtlortle 1)nfft.r atln~inistrandola wserva tle lot~alixacionrstlr almat~enuinier~to c.n tlistw y las tbstrnrtnras ( I t , tlatos asotkitlas. Atltwis tle los tlator tlel nsuario. el t1ist.o twntiene r l tliccionario tlr cletos. tjne tlefint. la tbstrurtnr;i tle 10s tlatos t k l nsuario y t h n o 6stos 1)nrtlen nsarse. INS tlotos 11t.1 rlhuario st. almawnan volno nna I~ust.tit, tlatos l'isiru o rolewihn tlr 1111 ~-tlgistrofisiwgihtros. I'or rjt~1111)lo. una fila t:n nna relatii~n1111rtlrulmat~c~narsr t*t~mt) IO. tw. tlontle t w l i ~~ O I - 10s atrihutos tle la fila st>dmat*ena cn SII propio ~ Y I I I I ~-4nilogaIOgitw t1e 1111 n~otlt~lo en red o jt.14rcj11ic.o 1)nt~lt. a1111at.rnarsr t.o~no1111 ~ n t ~ n1111 t ~ ~.egistrt) ~. registro fisitw tltlntlr 10s c.lt~n~twtos tle tlatos l0git.o~s r ronviertrn r n elemt~ntostle tlatos fisiros tlrl registro l'isitw almat*rn;~tlo. 1 1 t h
n t l ~ ~ ~ i u i a t r acle dor wc.hi\ os. Softwaw tlutL i~tln~inistr;~ la ~ w w \ - a t i h ntlr
Formas de ahaeenamiento fisico I,a 111cwroriaprincipal es r l a l ~ ~ ~ a t . r r ~ a ~intermrtlio n i e ~ ~ t o nsatlo llor 10s tlatos qlle esthn tlisponil~les1)aralas oprrationt~stlel n s ~ ~ a r i Atjni o . es dontlt: reside la rjrrut.ihn tlel p r o p m a .
cliccio~~ario d c datos. GESTOR DE BUFFERS
ADMINISTRADOR DE ARCHIVO
DlCClONARlO DE DATOS '--c
1
A[
DATOS DEL USUARIO
I
ALMACENAMIENTO ENDISCO
J
I
+
MEMORIA PRINCIPAL
325
ORGANIZAC~ONFISICADE LOS SISTEMAS DE BASE DE DATOS
Almacenamiento secundario El aln~;rt*cnan~iento swuntlario para 10s sistcn~ascle I ~ a s cclt~tlatos csta ~ ~ c ~ r n l ~ ugeneralesto inente 1~".el a l ~ n a t ~ u a i n i e ntsn t o discc~.! el aln~acenan~itwto en rinta 1nagn6tit.a. C h i sieulwr. I;, I ) a s de ~ datos t~c~niplet;l st. alniacena vn clisco y l~ort*ic~~ies tle h a se tr;~nsfiewntles-
controlatlor cle disco. Unitlatl fisica clue contitme 1;i nnitlatl tlr al~nacrnarnier~to tw disco.
tlt. 1.1tlistw a la memoria primaria. a nietlida tlutbscXnecesita. El a l n ~ a t ~ e n a n ~ i etAn n t otlist.o es la I'orm;~princit)al tle alni;~t~t~nau~iento t*on acceso tlirtv*to. por lo tlnr los rtyistros intli\itlualrs sc pnedrn atw.tler t l i r t ~ t ~ t a ~ ~ ~.AIIII(~IW e n t r . el ; ~ l ~ ~ i i ~ c e ~ ~ aen n i cinta i t ~ n tniagii6tit~;l o 1.5 menos twstoso clue el alrnacenaniic.nto 1'11 tlisco. 10s registros puetlen ser solamcmte awetlidos set~uentialmerite(y IIILlentan~entrt~nt:('11 tlisco). Sn fniwi011thnel sistema tlr \lase tit. clatos esth l ~ i s i c a n ~ e i ili~nitada tt~ a arc.hi\.ar 11;ltc)s. [,a unitlatl fisicv~en la tlnv vstti conteniclo el mrtlio tlc gral~at*iOn elel tlisco se Ilaniu conlrolador de disco (diskdricer). El t:ontrolatlor tlr clisco contienc n n 11acluc.tetle tlistw o v o l ~ t ~ i i t1,as ~ n , Figuras 10.2 y 10.3 inurstr;~rllas t.o~npone~itrs 1)rincil)alrstl(. nn patlwttS tr tlc tlisco 4 1.1 mrcanisn~otlr lrt~tur.a/escritura11;ll.a la transmisihn tlc: tlatos. El l ~ a t l l ~ rtle tlisco esth forn~atlo1"" un conjnnto 11e s u p r f i c i r s gra11al)les (tlisc:os) ~nontadossol)re 1111 rje. En oprravihn, el ejv !10s disros rntan a nna alta velotitlatl. I,os tlatos se grahar~solwe las pistas. que son coronas tircularrs gral)al,lrs entwntradas sobre t.atla superfic*ie( F i p r a 10.2). Pueden existir varic~stientos tle 11istas s o l ~ r rlina sl~perf'it*ie birnplr. I;na rnetifora cornin para vl l,atp1rttx tle disc:o cis nna pila tle tlisros ~nusic*alea s o l ~ r eIln ejr. exrepto que aqui 121spistas son concPntrit:as y no r u forma tlr esI,iral interna hacia el crntro. Tal conlo se ~nuehtrar n la Figura 10.3. 1111 t:onjunto de 1:;111czastle lrt~tura/rsc~ritnra nl)iratlas al f i d tle un I)razo. sirnt)hlit~an~cntt. conto los tlientes dc 1111 twine, se mrleven Pista 0 I
Pista I
DISENOY ADMINISTRACIONDE BASES DE DATOS
I
Mecanismo de acceso
lectura/escr~tura
-1
4-
(Conceptual) C~hndro
I
Superf~c~es del
7
cilhtlro. La inisiiia ])isla (1-itc.ntlida a tra\P.; tle todas las suprrf'iries tle la ~lnidaddr alrnat.t~nalllientoell tliscw.
c.oiiio 1111 gr1111t1,de tal f'orlna clue Pstos 11uedt~u scbr1)ositionados s o h e todas las listas tlel ~iiis1110 radio. El cwnjuuto dt. dithas pistas se tlenomina rilindro. Es d t ~ i rc.ont-c-l~t~~ali~ic.litc.. , uu c'onji~ntt~ cle pistas clel mismo cliiinc.tro rotatido a alta veloeidad forulau tln cilintlro. Esta ( I d n i c ~ i hes m y htil, !a cpe cwi1cluit.r posicionamiento de un conju~itocle c.al~ezustle levturalrsc~it~ii-a puecle ser desc.rito 1)or la 1ocalizatiOn del cilintlro (11or eje~ii~)lo. cilintlro 199). ~ las pistas tlel cilindro espt~ific'adosc' puc~deiiesc'ril)ir o leer, sin un IIW\ iP o r lo ' 1 todas miento adicional d r las caljezas de lect~lraIesc*ritu~.a. La d i r c ~ c ~de i h1111 registro &I tlisro tior> tlel 1)111tpe. malmente necwita informacihn s o h e el nilmero tlel cilindro, dt. la s~ipt~rfitie
Bloques de almacenamiento fisico El registro fisiro o bloqiie es la unidad de dato mhs prqilc'iia c'n 1111 distw t p e eb fi4camentr direccionable. Cada pista en una superficie esti compuesta tle un nhmero de 1)loqiies. t n hloque puede c'ontc'ncr uno o m i s registros 16gkos. Supongalnos (pic' tcnvmos u n fartor de compactaci6n de 3, esto signific'a quc en cada bloque se almawnan tres registros lhgicws. Supongamos quc deseamos recuperar el registro John Jones, almac'twdo cn la siguiente d i r e c c i h : N h i n t ~ ode cilintlro: 5 Nhmero de superficic: 2 Numero de 1)loque: 1 Ver la figlira 10.4. Para reellperat el registro John Jones, las cabems de lecti~ralescritura se mueven sohre el cilindro 5 (pista 5 en todas las superfiries). Eritonres se ac'tivan las cabezai tle lecturalesc~itut a pat a la supet ficie tihtuero 2 > se leen 10s nlirneros tle bloques a la vez que la pista @Ia s o l ~ r elas cat~rzas.Cuantlo se detecta el l~loque1. el 1)loque entero de tres registros 16gkos se Ire r n memot la IJI incil~al.tlotitle se seleccmna el registro John Jones. En nuestro ejemplo suponemos la estt w t u r a m i s general (1e un diwo. clonde las c*al)ezas de lecturalescritura ehtin hilletas a u11 h d z o 1110\ible. No totl'ls [as unidatles de disco estin wnfiguradas de csta forma. En alglliia~la5 calwzas tle lecturdescritnra son fijas para cada cilindro. Tipicamentr rstas unidadrs son miis costosas. pero nlaz ripidas. drbido a que no hay retraso en mover las ralwzas de 1ec'turalesc~ritul.asohre un nuevo c*ilindi-o.
ORGANIZACION F~SICADE LOS SISTEMAS DE BASE DE DATOS ClLlNDRO 5 SUPERFlClE 2 BLOQUE I
Grneraln~eiite,el tirnipo n r t w a r i o p a r a r j r r n t a r riilcnlos en 1111 1)1ot1nc rs ~mlt'ho s c r n ~ ~ t l a r yi orl Inrnor q u r el nccrsario 1)ara transfrrir 10s tlatos e n t w c.1 alniat*t~naniirntt, lwimario. Sin rnil)argo, m a I)ucwa rsti-iltrgia tlr tliseiio rs itlentificar. tlontlr sra ~)osil)le. os 10s rrgistros l6git.o~c p e ~ ~ r o l ~ i ~ l ) l r m s rr nsan n t r r n las niismas operacioncs y a g r ~ ~ l ) a r len l ~ l o c p r s .P o r rjrn~l)lo.sulwngalnos clue una firnia a l ~ u a w n atrrs til)os tlr alanil~rrs.4. B. y (:, \- 11ut' se entregan rn el miamo t-argamrnto. Si catla 1)loqur contieiic trrs registros > 10s C: s r almat.c.nan en 1)loqnrs sel)ai-atlos, se neresitarian trrs operaciones tle registros A, B !rntradalsalida (EIS) para at:t~rnlizarlos.Sin rnil~nrgo,si se agrlipan en el niisn~o1)loqne. entonces shlo rs net-tasaria una oprratibn d r EIS. Drbido a clue genrralmente r l atec:rboa disco es un t d l o d r botella ( ~lasi operacionrs tlr acceso a una base tlr tlatos. una asignavihn cuidadosn tlr 10s rrgislros r u los 1)loques p i c & inriorar significativamrnte el tiempo d r rrspursta.
Faetores de rendimiento del disco E n general. ha! cuati-o factores q u r directamente afcctan a la vrlocitlad. con la qnv 10s d a t m s r tranbfierrn a ! drsdr el almat~enaniirntor n disco: tiempo tlr posicionaniirnto (nccess motion t i m ~ ) tic.iiipo . tlr atxtivacihn de la t d w z a . rrtraso de rotatihn y razhn tle transfwvncia.
Tiempo de posicionamiento t i ~ i u p od r Tiempo d e posieionamiento (P).en ocasionrs sc: c-onocr t:olno tiempo cle b u s q ~ ~ ~(seek rla posiiconaniiento. EI time), rs r l tirmpo ncwsario p a r a mover las cal)cbzas d r lrt~turalescrituradesdr su posicibn t i r m p wcrsario para actnal a nna nurva diret:t*ihn de cilindro. 0l)viamente. un movimirrito hacia una posit-ibn p o s i t h m las cabems a d y a c m t r no tonia la misma cantidad de tirmpo clue movcrse a travGs d r totla la snprrficic de l e t ~ t ~ ~ r a l t ~ s c r i t ~ ~ r atlel dist:o (desdr la pista mas intrrna hasta la mas extrrna, y viwvcrsa). Como una aproxisobrc el tilindro mncihn en 10s ciilt*ulos11nrdeusarsr el tirmpo medio tlc posicionamirnto:al)roximarlalnendeseado. t r el tiempo necrsario para moversr a travis de la niitad de 10s tilindlws, por lo q u r t l t h usarsr un mktodo mlis sofisticatlo. Un acuerdo e s t i n d a r consiste en que la prol~ahilidadtlr acceso p a r a todos los registros sea igual, brindando m a clistriburii~nd r proba1)ilidad uniforme. El promedio para m a distril1uci6n uniforme s t encuentra en (:I mrdio r n t r r 10s valores extrrmos. P a r a rl tiempo d e posirionamirnto, el valor rxtrenio pudiera s r r (1) mantmersr posicionado sohrr rl cilindro actual, o ( 2 ) moversr desde el cilindro m i s interno hacia el m i s extrrno (o vit:eversa). Dado q u r asumimos la distrit1uci6n unifornle, la media seria el tiempo para moverse a travks d r la mitad tir los cilindros. De doer a veinte
DISENOY A D M I N I S T R A C I O DEN BASES DE DATOS
Ticlnpo de activacidn de la cabeza
Retraso de rotacidn r e t r a w clr rotarihn. El ticmipo qutXutmx+itat.1 tli,tw 1)ara n ~ t a ('1 r 1xyiit1.owlit.itatlo bajo la ralwza tlc Irt.t~~ra/t.scrit~iri~
Rtstraw tit. rotat.i6n o latrntw r s rl trrtarrSat-tor tlr tiruipo. Krprrsrnta la cantitlad tltb titwi1") t111rnrwsita r l Idoclur srlrc.vionatlo 11ara rotar la r a l ~ r z a .d r fonna tal tlur la t r a n s f t w ~ i ~ rotacibn d r p r n d r tlr tlos f'avtorrs: a (1116ra1)itlt.z via clr tlatoi 111wtla caomrnLar. El t i r m l ~ ctlr ~r r n relaribn con rl tirnipo tlr at*ti\atihntlr rota rl tlist*o ! 1'1 lot~ali7atiOn(Irl I ~ l o t l ~I)uscatlo la caI)r7a d r Irt.t~~ra/rscritura. C'is~ranwutrrstr tinnpo purdr l a r i a r tlrstlr crro hasta t.1 t i r n ~ ) t >nrcrsario IKW;I t*oml~lrtar una revolucicin tlrl disco (K). Analhgicamrntr, snponganios tpr sr tlrsra nlontar s o h r rl t d ~ a l l t~, ~ i ~ r l ~ rul rcarrnsrl wn (aslunirntlo t p r rvistr s0lo tin t d ~ a I l t r tlr rstr till(>).Si ctrnilrl.a 1111 tivlirt ? corrr a montarse en rl carrusrl. la prol)al)ilitlatl tlr tpir rl ral)allo pilrpura p w d e rstar lustc~tlondr se detuvo srria la misma cpir para ciialqiiirra d r 10s otl-os ca1,allos. Si f'uera 1111 fanatico v lo intentara varias vrcrs. pied(. q11(, alpina \ r z sr tlrtriiga frrntr a1 t d ) a l l o pilrl~ur;~. Tanihibn piirdr rncwntrarsr (*onla sit~~at-iAn rn que lo pirrtla y trnga q u r rsprrar por una w l t a con~plrtadel carrusrl. Conio ~nedia.cspcra mrdia vuelta para ~uoutarsc~ c.n ~1r a l d l o ~ ) i ~ r p u rLa a . moralcja d r rsta historia rs q u r 10s cLItwlos d r rrudiniirnto grnrralmrntr asnmrn iln rrtraso d r 1-otacihn mrtlia tlr K/2.
Velocidad de transferencia de datos Raz6n d e transferencia d e datos (I)) 3 t rrfirrr a la cantitlad tlr tirmpo nwrsario para t r a ~ i s f r r i r10s tlatos tlrstlr r l tlisco hacia ( o tlrstlr) la nirmoria princil'al. Drlwndr tlr la \(.lotidat1 dc rotati011 ) dr la rantidat1 tlv tlatos aln~ac.rnados.El t i r m l ~ otlr transfrrrneia d r tlatos normalnwntr sr rxprrsa r n cirntos tlr I ~ j t e pcrr s hegundo.
Tie~rlpode transferencia de datos El t i r u ~ p oprr\isto (T) para acwtlrr a una d i r r c c i h rn t l i w ~ trausferir un I ~ l o t p rtlr datos sr rstima como
dontlr P r s rl tirmpo tlr l)crsicionri~nirnto.R rs el retraso tle rotacicin. 1, es 1)loqur r n Ir>trh ! D r s 1;i \ r l o c d a d tlr transferencia d e datos.
t.1
tamaiio tlrl
Ejenlplo d e 1111 registro acredido aleatoriamente. Snpongamos clue 10s registros d r rrrlamac.ihn d r una twmpaiiia d r srguros sr almacenan r n bloques d r t r r s rrgistros r n el tlisco (un factor d e compactacicin tle tres) y clue cada registro de rcclamarihn ocupa 200 11) trs. La vrl(~tidatlclr transfrrrnria d r datos es d r 806.000 bytes por 3egundo. El tirmpo d r p s i c i o n a m i r n t t ~mrtlio rs d r 30 milisrgundos. La unidad d r disco rota a una \rlocidad
3 29
ORGANIZACIONFISICA DE LOS SISTEMAS DE BASE DE DATOS
K
--
-
0,0083 x
2
1 ---
(la mrdia tlv c\spri-a 1.5 tlr in(&
rr\olucihn) = 0.0011.i
2
Ejeniplo de 1111 regisfro arc.edido srcnencialn~entc.. :Ihora analizaroinos rl c.iilt.ulo tlrl ti(w11)oi n d i o 11v a ( ~ r s ao 1111 rrgistro ttn In1 211-rhivo a t w d i d o s ( ~ c l i r ~ ~ ( * i a lSnpong;~i~~r~~tr. mos tlur e'n V P Z (11, rrs1)on(lrr 211 i i t ~ r s oalcatorio tlr un 1)loqnr tlr tlatos. w m o r n 1.1 c.jrlnplo a n t t ~ i o r cLstamos . ac*tuulizando t.1 arc.liivo tlr 1111 usual-io ( 1 la~ c*on~l)aliia tic, srguros (.on los pagos rrcil)itlt~sa 1)rint-ipiostlr mcs. 'l'irnt, sentido q n r rstos archives rstbn o r g a n i z a h sccurncialmrntc~por r l nilrnrro de la I~Olizay 11nt.rstGn localizaclos r n 1)loqneh ~ r ( ~ n r i i c i a l t ~ . ~ llor cilintlros. Esto signifiva q u r llrimrro sthrrllrna rl cilintlro N (*oilhloqucs srt~ut~iitiilrs. tlrsl)ni.s rl N +1 ! asi sncwivan~rntcb.T)r rsta f'orma s r minin~izar l tic.nipo (I(, nio\ iinic.nto tlr la c-alwza. E n particular. si lab t*al~c.zasdv lreturalc~irrit~ira sr rncwrntran c.11 rl l ~ r i n ~ r r cilintlro. rntoncw totlos 10s rc.gistros (w rstr cdinciro s r transf'irrrn sin 1111 t i t q ) o d r 1)osicionan~irrito;~tlicional.P o r lo q u r . on rl c i l t d o tlrl tirrnl)o tlr at*t.rso n ~ r d i o1)ara ratla rrgistro de ml archive p r o t w a d o srcmrncialrnrntr. t.1 tienq~otlr posit*ionan~itmtors t1t.sprerial)lr y sr ignora. Putlirra rxistir nn prcjuriio rrtraso catla w z q u r la f'nnci0n elr I r c t u r a / r ~ t ~ i t e~ m ~ ~- . a Ilia drstlr una 1)ista d r 1111 tilindro hacia otra. b;sto cs nrcrsario (-on c1 ol),jrtivo tlr tlisminnir prqurfias tlif'errntias rri la alitiratihn rlr las pistas solrrr tlifrrmtrs sul)rrfitirs. P a r a nllc-stros pro1)i)sitos. rstr rrtraso 1)ucde s r r al)roximadainri~tt~ cl tirnq)o nrcwario 1)ara tlar nna 111rdia vurlta drl1)aquetr dtb tlisco. lJna \-rz se haya encontrado rl rrgistro initial tlr la nnrva pista. s r piirden transmitir t.1 resto ~ l 10s r hloqnes s o l ~ r ela pista. I'ol tanto. si 1.1 arvtiivo tlel usuario o c y a orho pistas sol)re el tilintiro. (,1 uilmero cle retraso d r inrtlias \~urltas seria 8 . Snporigamos ahora qur rada pista rontirne 1.000 hloques. Trrirmos nn total tlr 11.000 I ) l o q ~ ~ esiq10s ~nisrnosticnen un factor d r coml~actacihnd r tres. tcnrmos 21.000 rrgistroa dc pdizas. 4sumamos. t*omo a11tt.s. q u r cada rr@stro twntienr 200 hytrs. cmtoncw unrsu n arcl~ivoc.oinplrto. rl tros 1)loques oc*ul)al~ 000 bytes. Si procwarnos set~nrrit~ialmrl~te tirmpo mrdio p a r a acrrtlrr a 1111 rrgistro s(: ralcula twmo s i p e
=
17irinl)ototal para 1rt.r todos 1oh I ~ ~ O ~ L =L O S 0.00415 (8) + 0.00074 (8000) = 0,0664 + 5.02 = 5.9232
5.9532 ,, 1 = --
-
0.00074415 srguntlos
8000
T r e p r r w n t a el tirmpo de transfrrenria rnedio para un registro acwdido srt*ur.nrialmentt. r n el arrhivo d r p6lizas.
DISENOY ADMINISTRACION DE BASES DE DATOS
Formatos de almacenamiento de datos en disco Kn vsta srt~ri0nrxaminarrmos los asprrtos fisitws tlr 1;) n~ani~)ulacihn tlr tlatos soljrr t.1 tlisvo. \-twmos 10s forinatos sol)rr las pistas p ell 10s rrgistros Siiiros. ! tarn11ii.n la inanil)ulat4hn t l ~la . rntratla/salitla.
Formatos de pistas Los rrgistros p ~ i r t l ~gm~ ~ a r t l a rc.11 s r el tliscw en nno u otro formato. tin f o r ~ n a t ocuc:nta-clave !. otro forniato curnta-dato. tal caoino sr murstra I-11 las Figuras lo..; y 10.6. La tlifrrrncia funtlainc~ntaltbs q u r 1.1 formato c.ucmta-chvr intbluyr nna c.la\-v q u r 1,s r r t r r m a1 rrgistro dl. dato t8oinotal. Esta vlacr st3 utiliza por r l sistrina ol,rrati\o 1)al.a u w d r r a un rrgistro r n p a r t i d a r . L!s;~rrmos1x1 t6rrnino rc~gistrot.11 rl smtitlo m i s aniplio tlr 1111 rrgistro fisico. rl cnal putlirra s r r u n l ~ l t q n r Aii11)os . formatos, rl dv cwnta-dato y rnrnta-t-Lvr. srriin drscritos por las clc.finicionrs signirntrs. Ccrtla 11ista tirnc. 1111 punto tle cwtrada. qllr constituyr nna marc-a esprc*ialpara idrnf o r n ~ a t ocweuta-dato. LII n rl final f'orluato tlr tlatw Ijara pis- tificar 1.1 c.omitwzo d r vada m a . Coma la pista rs circular, Gstr t a m l ~ i ~i(1rntific.a d r la ~ k t a . tas tllll, 110 lI.al1 tala\ t 5 tx\ternas. La tlirrc*ciOn origrn (DO) varactrriza at tilindro y el n i ~ i n r r od r c>al)c.zastlr l t ~ t u . cr / esc., ritnra cluc3conticnr la pista, asi romo el rstado tlc la pista (handera). si e s t i tld'ec-
direccion descriptor de la pista
cheque0 ciclico
cheque0 ciclico
ndmero de la cabeza
longitud dcl dato
numero del cilindra bandera
longitud de la claw n h e r o del regiscro ndmero de lacabeza ndmero del c~lindro marcador de direction
ORGANIZACION F~SICADE LOS SISTEMAS DE BASE DE DATOS
indice I
descriptor de la pista reglsrro (rg)
tuosa o no. Si la pista esti tlefectuosa se u s a r i otra pista. Se incluyen dos-hytes de chequeo ciclico con el objetivo de detectar errores en las operaciones de entradalsalida. Los intrrvalos ( G ) separan las diferentes ireas sobre la pista. La longitutl tlel intervalo varia de acuertlo con el dispositivo, su localizaci6n y la longitutl del Area precedente. El intervalo que sigue al punto indice es diferente con respecto a1 que sigue a la direcci6n origen y la longitud de 10s intervalos que siguen a un registro dependen de la longitud de este ultimo. Esto se debe a la necesitlad de brintlar un tiempo adecuado para las funciones retperidas por el equipamiento cuando la cabeza de lecturalescritura rota sobre el intervalo. Estas funciones varian de acuerdo con el tip0 de i r e a yue le precede. El marcador de direccihn (D) es un se,mcnto tie dos-bytes suministrado por la unidad tle control (hardware que controla el controlador tle disco) cuando se escribe en el registro. Esto permite a la unidad de control localizar el comienzo de un registro en un tiempo minimo. En la Figura 10.5 sr detalla el i r e a de cuenta. El campo handera duplica la informaeibn acerca de la contlici6n tle la pista y aiiade informaci6n usada por la unidatl de control. El numero del eilindro, el cabezal y 10s campos del registro lo itlentifican univocamente. El campo longitud-clave es un campo de un-byte. Este campo siempre time un 0 si el registro se encuentra en el formato cuenta-dato. El campo longitud-dato contiene dos hytes. que espeeifican el numero tle bytes en el i r e a de datos del registro, excluyentlo el chequeo ciclico. El chetjueo ciclico contiene dos bytes para la detecci6n de errores.
Formatos de registros registro fisico. Un bloque fisico Je datos.
Los registros fisicos o bloques se almacenan sobre las pistas en cualquiera de 10s cuatro formatos que se muestran en la Figura 10.7. Registros d e longitud fija. En este caso todos 10s registros son de la misma longitud. Si 10s registros fisicos no estin compactados en un bloque, existiri un registro lbgico (por
DISENOY ADMINISTRACIONDE BASES DE DATOS (a) FIJO, N O EN BLOQUE
Cuenta
Clave
Dato
(b) FlJO. EN BLOQUE
1
Cuenta
AAA
1
Registro aaa
Clave
1a\ I LRI LB(
Cuenta
Clave
1 LB] I
Clave
II
FFF
I
Registro fff
]
Registro aaa
I
Dato
(d) VARIABLE, EN BLOQUE
Cuenta
Reglstro ccc Dato
(c) VARIABLE. N O EN BLOQUE
1
I I ccc (
LR] AAA
I
Registro aaa
\\ [ 1LR 1 CCC
Registro ccc
LR
FFF
Registro fff
Dato
ejemplo, un registro nbmina) por cada re&ro fisicw (10s datos que estin alinarcnatlos en el Area registro de la pista). Si 10s registros forman un bloque, entontw cacla registro fisico p o d r i contener mLs de un registro lcigico. Por ejemplo, si existen tres registros nOmina clue constituyen cada registro fisico, tenemos entonces registros de hloque con un factor de hloque tres. En este cLaso.a1 irea rlave generalmente se le asigna la clave del registro mris alto en el bloque. Esto facilita la localizacicin de re&ros de inter&. Supongamos qur tenemos dos bloques sucrsivos que contienen 10s registros 10, 12, 14 y 15, 19. 24, respectivamente. Si el sistema operativo husca el registro lbgico 15, la rlave del primer hloque es 11. por lo tanto el registro 15 no esti en el primer bloque. La clave del seguntlo bloque es 21. Como 24 rs mayor que 15, el registro 15 dehiera estar en este hloque. Entontw el hloque comyleto se lee en la memoria principal donde se realiza la busquetla del registro 15. Registros d e longitud variable. El formato longitud-\ariahle. como su nomhre indira, permite clue la longitud de 10s registros \ a r k . Si el usuario de la base tle datos necesita un registro l6gico del cliente clue almarena datos acerca de las facturas pendientes, este formato seria apropiado, ya que el numero de farturas varia de acuerdo a1 cliente. Como la longitud del registro no es uniforme. se net-esita un mCtodo clue indique dOnde termina Cste. Esta informacicin se enruentra en las ireas LB (lon&dhloque) y LR (longitud-reglstro).Como en el formato de longitud-fija, si el registro no es un bloque indica yue cada hloclue contiene exactamente un registro lbgico. El formato de bloque permite qne puedan almacenarse en un hloque varios registros lbgicos.
Basados en 10s conceptos de formatos de datos de esta seccibn. consideraremos hrevemente las operaciones de entrada/salida del SGDB. Supongamos que se ejecuta una instrucricin de E/S recibida desde un usuario o desde un programa de aplicacibn. El SGDB primero chequea si el subesquema asociado con la instruccibn de E/S se enruentra en su diccionario de datos, asi como que si a1 nsuario o a1 programa, que es la fuente de una orden tal, le esti permitido acceder a1 subesquema. Suponiendo clue todo estC bien, el SGDB manda las brdenes pertinentes de E/S a1 sistema operativo para acceder a 10s registros fisicos especificos. Entonces el sistema operativo busca en los dispositivos de almacenamiento secundario y accede a 10s registros fisicos apropiados. El sistema operativo transfiere estos regis-
ORGANIZACION F~SICADE LOS SISTEMAS DE BASE DE DATOS
333
tros a la mrmoria principal. tlondr rl SGDB rxtrae d r 10s rrgistros fisicos aquellos re@tros Ihgicws solicitados y 10s pasa al iisiiario o a la at,lic.acihn para su posterior utilizacihn.
Organizacih de archivos y mktodos de direccionamiento Hasta ahora sr h a aprrndido algo acerra de 10s dispositivos que sr usan para almacenar tlatos y las opt~racionrsde EIS usadas para transinitir datos hacia y clrsde dichos tlispositivos. Ahora cwnsideraremos 10s iii6todos d r organizacihn y dirrccionamirnto d r estos clatos sohi-c. tlichos dispositivos para f a d i t a r el alrnacwiamiento y las operacionrs de EIS. Existen tres formas hisiras de organizaciim fisica de archivos sohre 10s dispositivos dv almawnamiento: organizari0n seeuencial, organizacibn secuencial-indexatla y organizarihn d i r w t a . Estas no son n n conjunto cwmpleto d r todas las opciones d e organizacihn posihles, p r o aqnrllas clue se omitrn no son mbs q u r moclificacionrs cle estos tipos hisicos. P o r lo tanto. no r s nrcesario s r r rxhanstivos, con vistas a cubrir los conceptos esenciales. E n la ~mwmtac*ihn d e estr ttbma. los tdrminos organizacibn y acceso se usan a menu(lo lihrementt., pero no soil interramhia1)les. La razhn es clue la forma en clue los datos r s t h alrnac*rnadosestb rstrechamente rrlarionada con el mdtodo d r acceso. E n las siguientes srrcit)nrs se intenta aclarar esto.
Organizaci6n secuencial de un archivo La organizacih sec:uencial tie un archivo signifira que 10s registros se altnacenan adyacsrntrs unos a otros. de acuerdo con la clavr, como son el n h e r o del ernpleado, r l numero de ciienta, entrr otros. Una implementaci6n conventional organiza 10s registros en orclrn asrentlente d r 10s valores ck la clave. Este es un mktodo eficiente de organizacicin d e rrgistros cuando una aplicaciGn, corno el programa d r nhmina, actualiza un numero insignificante d r 10s registros ya alrnacenados. Si un archivo securncial se encuentra sobre una cinta niagnCtica, sus registros se acceden s61o de forma secuencial. Esto significa que, si deseamos acceder a1 ddcimo registro securncial, grneralmente sr tleberin leer los anteriores nueve rrgistros. El acceso clirrcto 3 nn registro en particular no es posible. Como c:onsecuencia, las cintas magndticas no son propias para las operaciones d e bases cle datos y normalmente se usan para guartlar 10s archivos de diario y almacenar informacibn d e archivos.
Organizaci6n secuencial-indexada de un archivo Consistr en que 10s archivos esthn organizados secuencialmente; sin emhargo, es posible accrder dirrctamrnte a los registros. La organizacicin secuencial-indexada d e un archivo hrinda facilidatles para accrder a 10s registros d e amhas formas, secuencial y directamente. Los rrgistros se almacenan en la secuencia fisica usual por la clave primaria. .4demis, se alniacrna en el disco el indice de la localizaci6n del registro. Esto permite el acceso secuencia1 a 10s rrgistros para aquellas aplicaciones clue realicen una gran cantidad d e artualizaciones y, por otra partr, el acceso directo de acuerdo con las solicitudes de 10s usuarios. En la Figura 10.8 se muestra una vrrsicin simplificada de cbmo opera el acceso sec:urncial-inclrxa(1o. Los indices y registros se almacenan en disco. Limitamos grandementr el numero de cilindros y pistas para 10s propGsitos de nuestro ejemplo. E n primer lugar drbe ohservarse que 10s registros se encuentran organizados securncialmente en las tres pistas drl cilindro 1. El procesamiento secuencial se realiza comenzando por el primer registro del archivo, procediendo entonces a travds del archivo desde el primer registro hasta el d t i m o . Tambidn se facilita el acceso directo a 10s registros. Supongamos que deseamos recuperar el registro 31. N buscar en el indice del cilindro encontramos que dicho registro se encuentra en el cilindro 1. Ya que la clave del registro de n u m e r a c i h m i s alta
DISENOY ADMINISTRACION DE BASES DE DATOS
~NDICEDE LA PlSTA PARA EL ClLlNDRO I
PlSTA
I
I
CLAVE MAYOR 18
I
ClLlNDRO
CLAVE MAYOR
I
52
2 3
92
75
*
~NDICE DE LA PlSTA PARA EL ClLlNDRO 2
PlSTA
INDICE DE IA PlSTA PARA EL ClLlNDRO 3
CLAVE MAYOR
PlSTA
I
I
CLAVE MAYOR 80
I
h0
ClLlNDRO I \
I
PlSTA
CIAVE
REGISTRO
CLAVE
REGISTRO
CLAVE
REGISTRO
en el cilindro 1 es el 5% y como 10s registros sc ordenaron secuencialmrnte por la clavr. el registro 31 debe estar en el cilindro 1. La 1)ilsqueda del indice de la pista para el cilindrcr 1 muestra que el registro 31 esti en la pista 2. En esta situacicin, la caheza de lecturalescritura se mueve hacia el cilindro 1 y se activa la caheza de lrcturalescritura d r la pista 2. Sobre la pista 2 se realiza una husqurda secuencial para localizar el registro 31. .4uncjue la busqueda secuencial no ha sido completamentr eliminada7su alcance sr rrchjo suficientemente como para justificar el tkrmincr ucceso directo. Nuestro ejrmplo utiliza registros q u r no son l)loques, pero puedr rxtrnderse ficilmente a registros que Sean hloques. Pensrmos en el i r r a d r datos como nn c-ontenrdor de, digamos, tres registros y considererr~osel i r r a clave como la clave del registro mis alto m el bloqur. El procedimirnto de busqueda procederia de modo similar.
Organizacih directa de un archivo Hasta aqui se han discutido dos formas de organizacibn de archivos: src:uencial y securncial-indexada. Se han drstacado simultlineamentr 10s dos mitotlos d r acceso a un arrhivo: acceso secuencial y acceso directo. Los rrgistros en una simple organizacibn secuencial tlr UII archivo se acceden solamente de forma secuencial. Los registros en una organizacih secuencial-indexada de un archivo se acceden directa y secuencialmrnte. Se pasari ahora a la discusibn de un trrcrr tipo tlr organizacibn d r archivos llamada directa o hash. Solamente 10s mi.todos d r acceso directo son aplicablrs a este tipo d r organizacibn de archivos.
Funciones Hash estiticas Una de las desventajas del esqriema indexado es que se dehe acceder y leer el indice para localizar 10s registros. El uso de ticnicas hushing como mitcrdo de direccionamiento elimina la necesidad del mantenimiento y husqrieda de indices. La eliminacibr~del indice rvita la necesidad de hacer dos accesos a1 almacenamiento secundario para acceder a un registro: uno para leer el indire y otro para acceder a1 archivo.
335
ORGANIZACION F~sICADE LOS SISTEMAS DE BASE DE DATOS
Existrn muchas aplicac.iones cuya necrsidatl predominante es a1 acwso ciirec*toa 10s rrgistros, y c u p s servicios poclrian estar sobrrcargados por el ~ i s otle mbtotlos tlr indrxaci6n. Estos rjrmplos aharcan 10s sistemas tle rrsrrva tie linras abreas. h o t d r s y alqnilcr de cochrs, asi coiuo la transferencia d e fondos phblicws. La idea hisica consist? r n la nrgociaci6n tlrl tiempo y t:l rsfurrzo q u r se rmplca en el almac:rnamirnto, mantenimiento y bi~squedad r tin indicr por el t i e i n p q u r nrcesita la u n clad central cle procrso (CPU) p a r a rjrcutar I L Ialgoritmo ~ hash, q u r vrnrra la dirrcci6ii tlrl ?, rrgistro. El algoritmo hash rs u n procrcf miento que calcula la dire(-cioncle 11111-egistro tlesd r uno de sns campos, generalmente la clave. Continuaremos con u n rjeinplo q u r nos ayud r r n la ilustraci6n drl inktoclo. Supongamos clue se almacenan 500 registros de r16mina. ile 100 I ~ y t r scada uno, en un disco magnktico que tienr una capacidad d r 2.000-bytes por hloq~it-.Se necrsitarian exactamrnte 25 1)loqurs si tlireccionamos uno y &lo uno de 10s rr@stros poi- cada localizaci6n posi1)lr en cada uno d r 10s 25 hlcrqurs. Ya quc no existr hasta la frcha ninghn algoritmo hash, h(ki) (dondr lti rs la clave (1~1registro). q u r pueda lograr esto, nornlalmentr se aiiatlr rspacio d r a11iiat:mamirnto adicional, por rjemplo, un 20 por 100, para rrducir el nilmero tlr instancias cuanch el algoritmo calcula la niisma tlirecci6n para m i s cle un registro ( m a colisibn). La raz6n cntre r l rspacio que realmente nrcesitan 10s registros m el archivo !el espacio real rrsrrvado para el mismo se llama factor de cargo. E n nuestro cjemplo, 10s registros ntscesitan 25 1)loqurs clr espacio tle almacenamirnto, p r o reservamos (25) x (1.2) = 30 1)lotpes para rechcir el nh~iierode twlisiones. El factor de carga rs (25130 =) d e u n 83 por 100. Estrategias efrctivas para el almacenamirnto directo a registros tirnen tirmpos de bilsqueda lentos y tienen algunas colisiones. Esto s r completaria inejor cwn la selec-ciOnd e u n factor de c a r p hajo, usando un factor cte cwnpactat:ihn alto y u n algoritmo clue distribuya uniformamente 10s registros sohre el area d r almacenamiento. El nlejor m6todo para lograr este iiltimo objetivo es metliante el uso del mbtodo d e la tlivisi6n con resto: clue ilustrarenlos a continuaci6n. Deqn1i.s d e reservar los 30 hloques para almacenar nuestro archivo. m a distrihicibn uniformc de 10s registros hacia 10s l)locInes significa clue aproximadamente cuatro de las tinco posi1)lt.s direcciones d r almacenamiento s r corresponden con u n registro. S~rpongamos clue el primer re$ro qiir se almacena t i m e una clavr (sohre la clue trahaja el algoritmo) con valor 1562. Haremos lo siguirnte (Figura 10.9): Paso I : Dividir la clave por el tamaiio del archivo reservado en bloques
62
3 2 resto Paso 2: Aiiadir el resultado del Paso I a la direccion inicial para obtener la direccion actual del registro con el valor de la clave 1562 /
-
Bloques de almacenam~ento Dlrecc~on relat~va D~recc~on actual
I
00 01 0 2 03 04 05 06 07 0 8 09 10 1 1
I
3048
I
3050
12 13 14
28 29
/C
I
3077
DISENOY ADMINISTRACIONDE BASES DE DATOS
1. Dividir la clave por ('1 nilmero de 1 ) l o t ~ ude ~ s almacenamiento rcvrcatlos. El rrsto nos tla la direrci6n relativa dt. almacwlarnirnto. Resto de 11562130) = 2 Rlotrue relativo tle almat.enamiento = 1 C o n s e r ~ a rel resto es (-11realidad una garantia d r clue nna tlirewibn sie~npresch ralcula r n el rango d e 0 a1 29, incluyendo este illtimo. 2. Sumar ~1resultado o1)tenido en (1) con la direccihn dt.1 p r i m w 1)loqnc para o h ner la d i r r t ~ i 6 nen la cwal se almacena el registro. S u p n g a m o s clue nuestro conjnnto t1r 30 1)loques romienza en la direccihn 3048 y sr extiendc hasta la direccihn 3077. Kntonces el rrgistro 1562 se encurntra en el 1)loqne (2 + 3048 =) 3050. Si rxiste bnicamcnte nn registro almacenado cbncada bloque, entonres ningiin otro registro se almacenari vn la tlirrrcihn 3050. Si en cada l h p e se almarena m i s de nn rrgistro, tstos sr seguirin alrnawnando en dicha tliretxi6n hasta qne se Ilene el 1,loqut.. Supongarnos qrle rada hlotjur t-onticme uno y shlo un registro, y q u r d n r a n t r el proceso cle hash rncontramos un segundo registro cuya clave es 1592. Si volvrmos a cal(.iilar con la dirrrcihn relativa 2 , ohte~it~mos una rolisi6n. IJno de 10s mttotlos ntilizados para el tratamiento d e rolisiones es el nso d r una funri6n clr divisi6n hash con 1111relinaniirnto, clue sr conocc como ~1nnhtodo del cocimte cuudrbtico. Cuando no hay cdisionrs, el direcrionamiento se rraliza exartamcnte cwmo vimos antes, p r o si ocnrren cdisionrs. trnernos clue continuar con otro mttodo. Con el mttodo tlel corirnte cuadritico. cuando la clave sr divide por el tamaiio d t ~la tahla, ambos el cocientr, C. y el resto, R , s r guardan. Usando C y R lpodemos grnrrar m a srcuencia d e clirecciones rrlativas a rrgistros mtdiantr la fhrmula
dontlr i sr incrrmrnta a travbs d e 10s enteros, comenzando por el 0 hasta qne no rxistan colisiones. Continuando con nuestro ejrniplo, para el registro 1561 tenenios,
igual q u r antes. (M6drllo 30 es el rrsto ile la divisi6n p o r 30.) Pero para el niiebo registro 1592 ohtenrmos: (2 + 53 x O2 + 0) mhdulo 30 = 2 El registro 1562 ya se encuentra tan esta dirercibn relativa, [)or lo que itwaremos solwe el valor d e i hasta enrontrar una dirercihn desocupada. Para este ejrml)lo. \olvenms a calrlilar (2 + 53 x 1'
+ 1) mhdulo 30 = 26
y obtenrnios una direc:cii,n dtrsocupada don& almacenar r l rrgistro. Cuando 1)usqurmos el rrgistro 1592. el algoritmo st5rjecuta de la ~nismalorma: prim r r o nos conduw a la uhiracihn d r l rrgistro 1562. Como tste no es el registro huscatlo. reprtimos r l algoritmo hasta encontrar el registro drseado. Otro mktodo para el tratamirnto d r las colisiones t:onsiste sirnpleniente m almarenar Iln puntero en la posici6n c a l d a d a p o r r l algoritmo. Estr puntero indicaria la tlireccihn donde el pr6simo rrgistro se encuentra y cuya clave t a m b i h coincidii, con esta ulicacibn a1 aplicar la funci6n hash. Si rxisten mnchos rrgistros d e este t i p . se pudiera niantrnrr 1111
337
ORGANIZACION F~SICADE LOS SISTEMAS DE BASE DE DATOS
Funciones Hash dinimicas Como helnos visto, la funcihn estitica hash es sumamcwtr sirnple. Sin eml)argo, a mcditla clue la I~ast.tlc tlatos cwce, esta f ~ ~ n c i hpierck n su scntitlo. -1parecetl un nilmvro cwcicnte de colisioncs: clue t r a m cwmo rcwdtado una so1)rwarga en el acceso a los rrgistros. Una dc. las estratcgias para el tratamic-nto de este prohlema cs reservar tlestle el twnienzo n u c y a cio estimatlo para recpisitos futuros; p r o esto ckspc.rciicia espacio de almatwumiento. Otra soluc%')n es rcsvrvar un rspatio aclicional y reorganizar cl archivo a medida t p e crez(,a. :itnl)as soluciones impliran un so1)retwsto a la hora tle recalcular la n w v a funri6n hash para cada registro en c.1 arrhivo y genrrar las nuevas asipnac:iones (h: 1)loques. La,funcicin hnsh diiuimica nos 1)rinda una 111ejor so1uc:iOn. E n ocasiones. el m6todo que mostraremos se llama hash exterasibk. El hash extensible ciivich: y combina los hloqnes a medida clue la ljaw tle tlatos c r e w o sc redure. Esto nos garantiza m a ntilizacihn eficiente del esl)atio. P o r otra p a r t r , si catla vez que se reorganiza w implica a un solo hloclue. el t:osto asoriado es tninimo. El hash cxtensihle usa una f u n c i h hash, h, clue p s e e caracteristicas inq~ortantt~s. cwno son la aleatorietiad y la uniformidad. Taml~ibn(gcnrralmente) utiliza una c:acIena hinaria d e 3%-hitscon el o1)jetivo d e r w a r e identificar 10s indices de los hloqnes. (Ya c p r se h a tliscutitlo uno c k 10s algoritmos tlr hash, el lector dehe entcntlvr las ideas bisicas que lo c.aracterizan. P o r lo tanto, para evitar t w h s i o n e s , no tlefiniretnos rsprc:ificamente la funtihn hash. h .) La mayoria de 10s algoritmos usan i bits en c d t p i t ~ mornento, r donde 0 5 i f 3%. P a r a empezar, fijtsmos i = 0. El valor tlr i creceri y se redl~c-irit.uando el tamaiio d e la l ~ a s e de datos crezc-a o sc retluzca. E n la Figura 10.10 se muestra un esquema del m6todo hash c.xttmible. Para ckterrninar el hloque c p e contiene la clave, ki , haremos lo si;uiente:
1. C a l c d a r h(k,) = x (represtmtada como uua c d e n a h a r i a ) . 2. Tomar 10s prirneros i hits d e mayor ortlen de I. 3. llsar 10s i hit5 como un desplazamiento dentro de la tallla dt. direcclones a hloi rp n t e r o hasta el 1)loque correspondiente. qnes, y s e g ~ ~a1 P a r a ih~strarlo.~~onsitltwmcrs iina coleecibn d e registros de inventario que tienen claves I<,. I\,. k!, k,, k;, k,,, ki. Supongarnos que 10s hits d e mayor ordtm de h(k,), donde k, es una clav;. ,on 10s que se muestt a n en la Figura 10.10. Iniciallnente, tenemos el at chivo v a c h mostratlo en la Figura 10.11(a). El 0 qne aparece eneima de la tabla que contiene la tlirecciones d e lo5 1)loques inch-a qnt' se requieren O hits de h(hi) p a r a calcular la d i r e c r i h del hloqur para la clave k,. Prirneramente insertem05 10s registros con claves, k , y k;. ( P a r a scguir el ejemplo twn elaridad, supongarnos clue cada hloque d e nlerno~iacbntiene un mtiximo d e (10s registros.) h (k,) = 0010... h (k,) = 1 101... h ( k , ) = l o l l ... h (k,) = 1000... h (k,) = I 1 10... h (k,) = 10 10... h (k,) = 0 l 00...
DISENOY ADMINISTRACION DE BASES DE DATOS (a) Tabla de d~recciones
Bloques de datos
-
lnsertar k,
(d) lnsertar k,
-
0 I
(e) lnsertar k, Tabla de direcciones
(g) I n s e r t 2 k-
Bloques de datos
ff) lnsertar k,
-
La tabla de direcciones apunta a un 1)loqnr tle memoria clue r s t i vacio, en el cual se insertan 10s registros, tal romo se muestra en la Figura 10,11(1)). Si desputs intentamos insertar el rrgistro k5,encontramos que el bloque a1 cual apunta la tabla de dirrc.c:iones e s t i lleno. Entonces necesitarnos incrementar la cantidad de hits clue representan el valor
ORGANIZAC~ONFISICA DE LOS SISTEMAS DE BASE DE DATOS
339
del hash. Es decir. previamrnte nsamos 0 hits c.umdo teniamos nn solo bloque de niemoria. Ahora tlehemos usar 1hit. para podrr utilizar 2' = 2 hloques de memoria. Esto requiere q n r auinrntenios la tahla de direccionrs para permitir tlos entradas, nna para cada hloqne tlc datos. P o r consiguiente, diviclimos el hloque de mcmoria, roloc-antlo aquellos registros qur tienen a1 "0" como el hit de mayor-ordm del valor tlrl hash en nn I)locpe, )- aqiiellos que ticntw a1 "1" w m o cl hit de mayor-orden en otro 1)locpe. Para nuestro cjemplo. el registro li; sr r o h a en el bloque-0 porcpe su hit m i s izqnirrdo en h(k,) c:s 9, y 10s registros li2 y li, se colocan cn el bloqnr-1 porqne t11 hit mis izquierdo de a m h s valores h(k.,) y h(k,) es 1 (Figura 10.1l(c)). Ahora insertaremos rl registro k,, que tietie a LLIS' coin0 su valor ( 1 mayor-orden ~ p r o c l ll,oqur-1 rstii lleno. Nuevamrntc, trnrmos clue incrementar el niimero de hits yue se usan em 10s valores dcl hash. Usarrmos 2 bits, prrmitiendo 2'= 4 1)loques. tal conio se murstra m la figura 10.1 l((1). El hloque-1 inicial se divide en dos l)loqncs, n~ostrailtlo"2" m el valor tlr i. S6lo rl registro ki t i m e como valor de mayor-orden a1 "0''7 por lo c p r amljos punteros desde las posiriones "00" y "01" apuntan a1 hloque-I. Como se observa, 10s registros k2, k,$y k5 c:ontirncn "I" en la posici6n tie mayororclen, poi-lo clue su almacmamirnto se basa m el siguirnte valor cle mayor-orden. S u p o n p que se insrrta (:I registro kt. El registro h(ki) ticwe a "10" ell sus tlos posiriones de mayor-ordm y sr insrrta en el bloque qur contirne el re@tro I<:!. Ver Figura 10.1 l(e). Insrrtemos ahora el registro k,. Sus dos bits de mayor-orden ban "00". El puntero desdr la fila "00" de la t a l h indicr apunta a un hloque clue tienr una posici6n vacantel por lo que ('1 rrgistro 1 se insrrta junto rc~nel 7 , vrr Figura 10.11(f). Por ultimo, w a n d o consitlrramos a1 registro k , , todos los hloques t1isponil)lt~estin llenos. Ahora ajustarnos la tabla indire para usar 10s tres hits cle mayor-orden, permiticndo el uso de %:'=8 l h j u e s . Los (10s bits de mayor orden drl registro k , son "10". Los cuales coincitlm con r l de 10s registros k:$y k, qur se encnentran en el segilndo hloque. Por lo tanto, clivitlimos este bloque. Arnhos registros k:%y k,, tirnen "1" en el t r r t w bit de mayororden, por lo qur se almacenan juntos, !. el registro k , sr inserta en el otro bloque (Figur a 10.11(g)). Observe que si 10s tres registros tuvieran el misino valor m el terrrr hit de mayor-orden, seria necesario anafzar el valor tlel w a r t o bit, y asi sucesivamente. Si el archivo se redue:r. el procrso se invirrtr. Observe qur la sobrrcarga se reduce porepe la memoria se reserva. ruando es necesaria para amhos la tabla de direcciones y los ldoques de niemoria. El espacio desperdiciado es minimo. Ademis, st; simplifica la reorganizaci611 porque se involurra s d o a uri t)loqur m cada paso.
Implementaci6n de interrelaciones Mgicas .4hora delinearrmos 10s funclanientos de las rstructuras de datos fibiras. q u r son la estrutbtura molecular bhsica del universo de las bases de datos para desemprfiar sus funciones. Estas estructuras de datos fisicas se caractrrizan de (10s formas, la primera consiste en cuil d r 10s registros de la base clr datos se enlaza con e~tro,y la segnnda en la forma clue se usan estos enlaces para soportar las operaciones de la base de datos.
Listas enlazadas puntero. Un elrmento
de dato que contirne una dirrccibn fisica.
Un concrpto fundamental en el enlace tie un registro fisieo con otro es el uso d r 10s punteros. Un puntero es un campo asociado con un registro d r dato qur sr usa para encontrar un registro d r dato relativo. iQuC significa esto? Supongamos que la CorporaciOn Zeus almarena informacih acrrca de su personal en forina de reb6stros 16gicos, tal romo se muestra en la Figura 10.12. Un campo dr inter& es OFICIO. Supongamos que se ahre una nueva posici6n para un ingeniero. Para una
DISENOY ADMINISTRACION DE BASES DE DATOS LlSTA CABECERA Contador = I Dibujante = 2 Ingeniero = 3
NUMERO DEL REGISTRO
Seattle = I Los Angeles = 2 Portland = 6
NUM. EMPLEADO
NOMBRE
OFlClO
0123
James
Seattle
Contador
021 1
Poirot
Los Angeles
Dibujante
0223
Smith
Seattle
lngeniero
0245
Cubic
Los Angeles
Contador
030 1
Black
Los Angeles
lngeniero
040 1
lwerks
Portland
Dibujante
060 l
lvans
Seattle
Contador
071 1
Nell
Portland
Contador
0908
Steel
Seattle
lngeniero
1067
Schwartz
Portland
Dibujante
PUNTERO OFlClO
PUNTERO UBICACION
detrrmiiiada rvaluat~i6npuede desearse recauperar todos 10s registros del personal (111c' es ingeniero. O1)sbrvtw clue Ilara cada rrgistro tlrl personal, el elemtmto tlr dato PLN'I'ERO OFIClO c*ontieurla dire(-cihntld prOxin~oregistro con el n ~ i s m ovalor clue tirnr c.1 rrgistro actual en c:1 c a m p OFlCIO. ITna l k t a r a b e c e r a , quc, se eticuentra separatl;~c:n el tliscw. c.11 el cama p n t a a1 primer rtbgistro tlr la h e d e tlatos clue contiene el valor "inge~~irro" po OFICIO. E n ~ i u c ~ s trjrmplo ro srria el registro SmithTs.Rste registro a1)unta hacia Hlac~li, t a Stcd. Estas t:atlenas d r punteros nos s u m i ~ ~ i s t r a1111 u cwi~juntode q11e a su vez a ~ ~ i i ihacia rrgistros enlazados clue cwntienen valores comiiiitLs1)ara atrihutos de gran i11tcrC.s. llna lista de registros enlaxados por dic*li;l c.atlena dt. punteros st. llania una listn eiilazacla. En liucstro rjrmplo, la mianla facilita la ripidn rc:t.uperaciOn 111: u n w n j u u t o tic, registros (IM: son inptiieros. 0l)uianientr las listas enlazntlas necesitan algun til)o tle orgaiiizat~i61icon acwso-directo s o l ~ r eel archivo con c:1 ohjetivo dc. d e s r n ~ l w h a su r fuilci6n. Podrianws llevar a ( : a h el mismo thjetivo si 10s registros tlel 1)erson;ll c s t u ~ i e r a n orpnizatlos fisic:amcmte sol~rc:c:1 distw, dt. tal forma c p : ~ o d o 111s s ingtmiwos estuvirbran ell seeurncia I-oinenzando con el primer rrgistro. No existiria la ~iecrsitlatld c 10s pntc.ros p a r a r e t y w r a r todos 10s registros para ingenieros. Se r e c u p r a r i a el primer rcyjstro. des1 oficio. p11':wI srgundo. y asi suc*c:sivanientr hasta qrw aparezra el prinicr registro ( ~ 1 1otro EIasta ahora, todo I>ien. Sin embargo, si un tirmpo desl~ubsnet*esitiramosrecBuprrartotlos 10s rn~pleadosasignados a la Oficina d r Seattle, rstc: rsquenia no wrviria. Truth-ianiob clue niautener otra w p i a adicional del archivo sohre el tlisco clue estuvirra fisican~rntvorga~lizada por la thic.aci6n. O1)viamentr esto es una inrfic:irncia de aliuacenamiento y h e ~ i ~ o s considerado solan~enteutia c:onsulta alternativa. lmabine las dificultadcs clue traeria como cwnsec-ncncia t r n e r c.11 crwnta totlas las posil~lesconsultas clurante la c:onstruccihn y ( m a cihn dr Ios archivos fisicw c p e respondan a t*aclam a . Lo qiw tenemos acpi es u n cwnflicto e n t r r el ortlenamiento fisico d e 10s rc$ros y el ordenamiento 16gico q u e necesita el usuario. El uso de los punteros resuelw este dilenia twn la represrntaci61i dr un riiimero firiito cie listas 16gicasl sin neccsitar una reorganizaci6n tle la secuencia fisica del archivo. E n el ejernplo dc la Figura 10.1%ohserve c p e el valor en el c a m p PlJNTERO OFICIO p a r a el registro Steel es "0". Esta es la notaci6n d r l punter0 nulo. o el fin d e la lista. El mismo le comuniea a1 sistema oprrativo q u e no existen m i s registros cn la lista eulazad a para ingenieros. P o r otra parte, el ultimo registro en la lista enlazada pudiera contencr
341
ORGANIZACION F \ S ~ C DE A LOS SISTEMAS DE BASE DE DATOS
u n p n t w o a1 primer rrgistro en la lista, formando una cstructura tiv anillo. Las estructuras de anillos son utilrs en 10s SGBD en red. tlondc una entrada puede estar en una uhicaci6n por eucima d r l tope de la lista enlazada.
Listas invertidas
lista invertida. Iln directorio en tlo~ltle cada entratla e n t i c n e un puntcro a todos 10s registros fisicos (.on Iin valor csprt.ificw.
-1pesar (le clue las listas enlazadas constituyen una via efevtiva para implementar interrrlaeiones Icigicas, ticnen sus limitationes. Si la lista es extremadamcnte grantle, el recorrido por la misma puede c o n s ~ ~ mticmpo. ir El mantenirniento de la lista puede s r r engorroso, 1'articularmt:nte si con frrcuencia rxistcn inscrcionrs y ehninaciones. [ a s listas largas tam1)ii.n estiin sujetas a1 problcma dcl frawionamiento dehido a un nial funcionamiento del sistcma operative. Un nktotlo alternativo para accrder a 10s regstros segun u n orden 16gico es mediant r el uso tlc listas invertidas. Una lista invertida es un archivo indept:ndientr, o intlicr. clue grnrralmente contirne solamente dos datos: un valor tie inter&, romo p o r ejemplo "ingeniero", y todas las 11irrcc:iones de 10s registros clue tirnen dicho valor. La Figura 10.13 muestra dos listas invertitlas para 10s datos de la Figura 10.12. El uso de la lista invertida elin?ina la newsidad de utilizar 10s cmnpos PUNTERO OFICIO y el PUNTERO UBICACION dentro de 10s registros. E n la prictica. las referencias a la lista invrrtitla y a1 archivo se realizan scj1)rt: archivos de acwso-directo. Rrcortlemos clue las listas enlazadas necesitan q u r 10s punteros sr almacrnen r n 10s registros de datos; por r l contrario, la lista invertida elimina csta necesidad, almacenando 10s punteros separados d e 10s datos. Amhos mbtodos se usan m muchos SGBD.
~rbol-equilibradoindexado (B+-irbol) Un refinamiento de la estrategia de lista-invertida es el B+-hrhol. Los B+-irbol se tlesarroIlaron ron el ol~jetivode projwrcionar u n mCtotlo eficirnte para el mantenimiento d e nna jerarquia d e indices. Una pregunta que le surge a muchos cuando ven por prirnera vez un B + - i r l d es c6mo se compara con una organizacicin de archivos secuencial-indexarla. La rrspuesta consiste en clue el B+-irbol es m i s eficiente. El rendimiento de un nittodo seruencial-indexado se tlegrada a medida que el archivo crem. P o r otra partr, el rrndimiento 1111t.demejorarse con la reorganizaci6n yeriidica drl archivo, aunque tlichas reorganizaciones pueden consumir mucho t i e n i p y ser costosas. Un B+-irhol conserva su eficiencia a mrdida clue el archivo c r e w o se reduce. E l B+-Lrhol poser u n indexamiento mnltinivel que resulta eficaz para el procesamiento (It: registros de datos tanto secuencial como directo. Un B+-irhol consiste en una OFlClO
DlRECClONES
Contador Dibujante lngeniero (a) Lista invertida de oficios
UBICACION
DIRECCIONES
Portland Seattle (b) Lista invertida deubicaciones
DISENOY ADMINISTRACION DE BASES DE DATOS Claver
jerarquia tle rrgistros indices junto con un archivo de registros de tlatos. Los registros indices rontienrn (*lavesy punteros clue se nsan p a r a localizar 10s rc-pistros de datos. En la Figura 10.14 se niuestra u n rrgistro indice comiln (RI) c:n el B t - i r l d . En este ejemplo tenes 1111 miximo d r n 1)unmos tres 1)untc.ros y dos c.1avc.s. En general. en 1111 I R p ~ d e m o trner t w o s y 11-1 claves. don& II lo tletermina el diseiiador del B+-irlml. Con el ohjetivo de definir el Bt-irbol, necesitamos tlefinir ciertos t6rmiuos. C n i r b o l enraizatlo cs una jrrarquia de RIs que tiene un iinico RI en el nivel mhs alto. Estc. rc'",'.1Stl'O se tlenoiniua raiz. Un R I c,s m a hoja si cl niisnlo se enc~tenti-aen el n i v d inis 1)ajo en el ir1)ol twraizatlo. (Estos ar1)olrs son a1 rev&, la raiz arril)a, las hojas ahajo.) I m punteros tm totlos 10s RIs q ~ i vno sou hojasapuntan a otros RIs. Sin cwhargo, 10s punteros en 10s RIs (rue s ) n hojas a l ) ~ m t a na 10s rtlgistros de tlatos y a otros RIs clue son hojas. Un B+-irholehti ecl~dil,ratlosi todos 10s RIs t ~ u son r hojas se encuentran a ignal distancia del R I raiz. La tiistancia scbmide por el niiinrl-o tle RIs clue sc examinan tiara alcanz a r el RI hoja. La seruentia clc RIs clue se examinan se llama caniino. Estr caonc:eptode I ~ l a n c garaiitiza e qiw el aweso a todos 10s repistros de la base de datos tenpa el mismo grado de efi'icicncia. En el siguirnte tenia estahltwremos las propietlaclc:~dc un B ' - i r l d y SP a c l a r a r i $11uso con algunos ejriuplos. Formalmentc*, el H t - i r l d c:s un i r l d rnraizado q u r satisface los recjuisitos sig~~iei~trs:
1. Todos 10s cwninos d e d e rl R I raiz hasta n u RI ho'a son cle la misma longitnd. 2. Calla RI (pie 11. r s una hoja o)ntirne a1 nimos 1n12f p~interosy a lo slime n p i n -
3.
4. 5. 6.
7.
teros haria los 111s tle 10s nivelrs m i s 1)ajos. (r.l.1 drnota la operacihn aritmbtica de reclondeo haria r l pri,\imo valor eutero. P o r lo que, si n es 3. entonces rr1121 es 2. Si 11 es 4, entontbesrnl%lcbs 2.) Un KI hoja cwiitienr a1 menos [(TI-1)/21y a lo sumo n-1 punteros a i ~ g i s t r oen~ el archilo cle datos. La5 c.laves (-11un RI se ortlenan por ralor, k , < k, . . . < k,, I . 'I'otlas Ias (.lakes en el sul)irhol a1 rual apunta ;I puntcro p I son estrirtamente menorrs que k , . P a r a 2 < = i < = r~ - 1, todas las (-lavesen el suhirhol liacia el cual apunta p, tien r n valorrs mayores o igualrs clue k, ] y mrnorc1s clue I<,. Todas las (*lavesen el s u l ) a r l d hacia el cual apunta p,, son mayores o ignales qur k,, !. Por otro lado, para i > 1. h, I sieinpre sei-i la d a r e niLs baja en el suhirhol referido por I),.
Explic.arc:nios rstas propit:dades rnediante un rjrmplo. ( P o r razones d r brevetlad, m la siguiente distwihn, nos referirrnios a las anteriores siete propirdades cwrno reglas.) El pro(~v1iinientogrnrral (wnsiste en hallar u n RI hoja tlonde sr 1)urtla insertar ~1valor tlr nna c l a w , e insrrtarlo si hay capacidad. Si ese R I e s t i llcno lo tliuitlimos en (10s RIs hojas, ortlmando las rlaves existrntes mas la nueva en orden asrendente. 1ll)icamos }as primeras r11121 c:lavc:s en el RI m i s a la iztpierda, y el rrsto tie las rlaves en rl otro RI. Despn'its de diridir u n R I hoja, ajustamos las claves y 10s piinteros cn 10s RIs s o h w el (:amino seguido hacia el RI que se dividii,. La Figura 10.15 muestra un ejemplo de un B + - i l h l p a r a 12 = 3 que indexa 10s registros t5onlas siguientes (:laves adic~ionindolosen el ortlvn:
Las lineas disc:ontinnal; en algunas posiciones intlican que no existe d a v r . Si no existe (.lave, entonres t a m p o w hay un puntero hacia su dererha. La forma en t p e se utilizan 10s punteros en 10s RIs hojas sr rxplirara hrevemente. Ahora mostraremos r6mo s r construv6 este i r h l aiiadiendo 10s registros a un i r h o l vacio. Refi'itrase a la Figura 10.16. El prinier registro q u r se aiiade tiene la clave "31". Este simplementr se inserta en u n R I tal como se niuestra en la Figura 10.16(a). Como nuestro
ORGANIZACION F~SICADE LOS SISTEMAS DE BASE DE DATOS
I
ARCHIVO DE DATOS
I
i r h o l solamente tirnc un registro, este es a sn vez un RI hoja y raiz. E n la Figura 10.16(h) vemos cjne t+te espario para inclexar el registro 3 sin requerir ninghn RI adicional. (Sr nrwsita iin ordenamiento dentro d r l RI por la rrgla 4.) P a r a mayor claritiad, ilustramos el archivo tlr datos shlo en la Fignra 10.16(a). Las vows camhian cuando inclexamos el registro 18. No t;s posihle insertar la clave 18 en t.1 KI existent?, ya qne s r e n m r n t r a Ileno. Recurrdr que un R1 hoja puedr tener a 11) sumo it-1 pnnteros hacia rr$stros en el archivo d e clatos (regla 3); en rste caso, solamrnte se permiten dos. P o r consiguientr, dt.11emos dividir el RI existente, ordtmar las rlavrs, y por convenio ubirar las primeras rni21= 2 (:laves orclrnadas en c1 RI m i s a la izc~uierda.La otra clavr(s) se coloc:a en el RI q u e qurda. Esto se muestra en 10s RIs d r l nivel-inferior en la Figura 10.16((.). Como ahora trnemos m i s d r u n RI hoja, nrcrsitamos aiiaclir u n KI en el nivel-mis alto en el i r l d para indrxar 10s Kls hojas, tal romo s r nluestra en el nivel superior de la Figura lO.lh(c*).( P o r t.1 contrario. y;r no trnrmos tin h r l d enraizado.) Estc: RI en el nivelnla?or c:s ahora la raiz. Ot~serve(pie existen 11. = 3 punteros en cads RI. E n cada RI hoja, el puntero m i s a la izquierda (I),) a p n t a a la localizaci6n tlonde se alrnacena el registro complete para la clabe k , , p? realiza la misma funcihn p a r a k.,. Sin embargo, apunta hacia c1 prhximo notlo hoja en srcuencia. 1101-lo clue cl arehivo p i e d e procesarse secuencialmentr ruando sc nerrsite. Ohservt- tam1)ii.n c1ue en el KI n o hoje crraclo recientemmte, clue se rnurstra en la F i p ~ r a10.16((.).lr, y l,., son 10s hliicos l ~ n n t r r o sntilizaclos y amlws satisfawn las reglas (57 ) . El pnntero hacia laizquierda d r l ~ a l o 11e r la clave 31 apnnta a un su1)irbol cuyos valores d e las 1.1avesson rstric*t;lmente menores que 31. El puntero hacia la clerecha del valor d r la c l a w 31 apunta hacia aqurllas clavrs clue son mayores o iguales q u c 31. I,a Figlira 10.16(tl) rnuestra la adicihn de la c.lave del rrgistro 35. Buscarnos una 1oc.alizacibn en cl i r l d tloncle colocar la c l a w 35. E n rstr caso seguimos el puntero clerecho en el RI raiz y hallamos q u e la clavr 35. clue es mayor q u r 31, tlehr obicarse en el nodo hoja qut: contient: la (:lave 31. Como existe un higar vacante, simplernente entramos la (slave 35. tal cwmo s r mnestra. No se requieren otros ramhios. La Figura 10.16(r) rnurstra la acf cihn tie1 rrgistro 29. Como 29 rs mrnor clue 31 seguimos el puntero izquierclo en el RI raiz. El RI hacia el cual apunta r s don& se ubicaria la clave 29, prro rste KI e s t i Ileno. P o r lo tanto, clividimos el RI existmte. ordenamos las clavrs c*orrespondientrs y aiiacfmos las primeras [n12] = 2 (:laves en el RI m i s a la izquiertla, con el resto 11r la c l a w insertado en el otro IR, tal y como se muestra en la figura.
DISENOY ADMINISTRACION DE BASES DE DATOS Atiadir reeistro 3 1
Atiadir reeistro 3
Datos para el registro 3 1
Atiadir reeistro 35
Atiadir reelstro 18
(e) Atiadir registro 25
V
Nueva division
(9 Atiadir registro
I
(g) Ariad~rregistro 32
V
Nueva division
ORGANIZACION F~SICA DE LOS SISTEMAS DE BASE DE DATOS
345
La Figura 10.16(g) mutsstra la atlicibn tle la (.lave 33. S r tlrlw dividir la hoja m i s a la (lei-wha. Entonws, como se murstra. colocamos las claves en el orden 31. 33, y 35. Como se o l w r v a , esto fuel-za [in canibio en las entradas cii el R1 q u e contiene 10s punteros hacia los niievos notlos hojas (rrglas 5. 6, y 7 ) . Veamos ahora t4mo se procesa ulia t.onsulta usantlo nuestro B+-ir1)ol. Sul~ongamos que deseamos ac*c.etlera1 rrgistro 33. Primcro sr examina el nodo raiz. Conio 33 es mayor qiie 29, segiiimos el puntero intermetlio hacia el RI en el nivel pr6ximo-inferior. dontlc 31 es la primera d a v e indiw. pero iiienor (pie 33, scgnimos el puntero intermetiio hacia el RI hoja que wntiene el puntero a 10s tlatos tlel rc*gistro 33. Estr tAsel mismo proceso tjuv wguinios cnantlo tleterminamos d6nde insertar un nuevo registro. Como ohservamos en la crracihn tlcl B+-arid d e la Figura 10.16(g). la insercihn puede ser m i s complicada clue un acceso a iin simple registro, ya clue c:n ocasiones es necesario clividir 1111 R1. 10 q11e podria sei- muy largo con10 resultatlo tle la inscrci6n. 1Qub pasa cwn la eliminaciAn tlv registros? iCOn~oa h - t a r i a la eliminaci611 a1 Bt-irhol? E n el cast) m i s s i n ~ p l euna ~ eliminarihn no necesita ningiin r:amhio en la cstructura tlel Bt-irlml. Refibrase nuevamentr a la Figura lO.lh(g). Suponga que s r elimina el registro 33. Usantlo el mismo l~rocediniiento.como si estuvii.ramos accediendo a1 registro 33, locdizamos el RI hoja clonde aparece el mismo. Entonces elin~inamosla clave 33 SII registro d e tlatos correspoiitliente.. Ahora el RI hoja don& estaba la (.lave 33 s d o contiene la clave 31. Recalculantlo 10s noclos hojas que puetlen teller [ ( n - l ) E ] valores (= 1 en estr caso). El nodo hoja se puetle quedar (.onlo es. Por otro lado, el valor 33 no aparece en ningiln otro lugar en el Ht-irt~ol,por lo qne no se newsitan otros cwnhios. Sin em1)argo. al igual qne las insc,rciones. las c.liminaciones pileden taausar una r w s triirturariim del iiidice. El nii.totio es 1)isicamentt. t.1 inverso tie1 que ocurre con 10s ramI h s de iusercihn. Examinemos un ejrmplo de una elin1inaci6n que nwesita una motlifiraci6n en la esti-uctul-a clel indice. Rtbfibrase a la Figura 10.16(g). Suponga clue descamos eliminar cl registro 18 d r este irhol. Cuantlo se txlimina el rrgistro 18 en la hoja t l o d c se encuentra, este KI cwntiene shlo valores nulos y rotno tal delw scr eliminaclo, junto twn 1.1 puntero dcstle su KI padre (el RI m el nivel l)r6xiiiio-sul)erior) . Ahora el RI padre tiene un solo puntero, violanclo la regla 2 ; sin eml~argo,este RI contiene informariim iitil, qlie no sc. tlel)e rliminar. P o r lo tanto, I)uscwnos en sus RI hermanos (mismo nirel). Si algiui KI hrrmano tiene una varante. potlriamos elimin a r el KI cjuc contietie el 18, insrrtar la c l a w 18 cm el mismo y ordenar 10s 1)unteros. Como 6ste no es ( ~ caso. 1 la unica s o l u c i h es reservar (10s punteros a c-atla uno tle los RJs y introducir las t.laws apropiadas para satisfacer las reglas 4-6. Esto sc ~ n n e s t r ac:n la Figlira 10.17. Ahora. supongarnos que eliminamos el registro 29 tlcsdc la Figilra 10.17. Tenrmos 1)ric:ticamente la ii~ismasituaciibn anterior. Cuando st. 14itaina la (:lave 29 tiel RI hoja, se elimina t.1 R1. dejando a1 RI padre con shlo un puutero. Sin rrnl~argo,en este t w o , el K1 tiene u n hcrmano varaiite. ) poclemos integrar estos dos RIs en un RI, tal como se niurstra en la Figura 10.18. 0l)serve qutba1 integrar cstos KIs en (51 segundo nivel, el mismo se convierte en un notlo simple. Por lo cpr el nodo raix inicial es retlundante y piiede eliminarse.
DISENOY ADMINISTRACIONDE BASES DE DATOS
Considerrmos un rjemplo m i s a w r c a tle la eonstruccihn tlr un B+-lirl)ol. 5610 por de d a v r i dtl regiitros siguientr: r i t a vrz, niarcmos rt = 4 y r l cot~~junto
Como se murstra r n la Figlira 10.19(a). llenamos r l RI inicial con las claves d e 10s registros 14, 95. 56. Cuando aiiaclimos rl rt.gistro 22: tlel~rmostlividir rste notlo, ordrnar el conjunto d e claves, aiiatlir las primeras [rtl'L] ( = 2 ) cla\.eh en el primer RI p (4 rrsto d r las (.laves ( d o h r n este caso) en el srgundo RI. Dthido a rsto sr c r r a tin nodo raiz con la c l a w 56 (Figura 10.19(1))). l Ahora se insertan 10s rrgistros 64 y 29 sin vain1)iar la cw1figuraci6n d r l i r l ~ o (Figti~ la conra 10.19(~)).Si adicionamos el rrgistro 35 sr divide el nodo m i s a la i z t j ~ i r r d acon siguirntr ordvnacii,n e inserci6n d r las ruatros claws de registros corrrs~)ontlirr~trs dr acnrrdo twn las rvglas previas. Entoncrs sr p u r d r n insertar 10s registros 43 y 25 sin cam1)ios en la confignraciOn d r l i r h o l . Este resultado sr murstra en la F i p r a 10.19(tl). El lector no tiene tluda tle cjue acwc:indonos a valores de 71 grantlrh sr urc.rsitan menos divisionrs para un tlt*trrtninado conjunto d r rrgistros? pero rcrmo meilia aparrcr mLs espacio vacantr en r l B+-irl~ol. El Bf-irbol rs la rstratrgia inks arnpliamente usada para mantrnvr la t 4 i t i t w h con rrspcrto a las inserciones j- r1iniinat:ionrs. Existrn conceptos similarrs para un mktodo indexado llamado u n B-drbol (sin el "+''). Un B - i r l d permite la ocurrencia d r solamrntr Anadir reeistro 22
Anadir reeistro 14. 56. 95
(c) AAadir registro 64, 29
(d) Anadir registro 35. 43, 25
29
56
--
4 14
22
25
29
L
35
43
56
64
95
ORGANIZACION FIsICA DE LOS SISTEMAS DE BASE DE DATOS
3 47
Implementacidn clientelservidor de la indexacidn Arbol-balanceado (irbol-equilibrado) El 'uso d r 10s inclicw d r u n irhol-l)alancrado contiene altos nivrles de rcinclirniento en un sistrma d r hase cle datos clirntelsrrvitlor. -2unqur en algunos casos 10s meranisnlos varian nn poco, 10s ohjetivos y n16todos bisicos pernlanewn cwnsistrntes con nurstra tliscwsihn anterior. Ccrnsideremos el ejrnlplo clue scbmuestra en la Figura 10.20. La arquitrctura txsmuy similar a la analizada en la seccibn previa, con algunos ajustrs necwarios cpw analizarrmos m i s adrlantr. La modificacibn m i s itnpcrrtantr son las plig-inus, q u r son 1)locjues de rrgistros. Ohsrrve en la Figura 10.20 qut. la pagina raiz r s t i en la dirrwihn 100 y contirne dos registros indicrs. El rrgistro indicr superior intlira que la pigina clue cornierjzu corr rl rrgistro d r datos 1 , se encurntra por el aweso siguirntr a1 IR d r la dirrccihn 200. Similartnente, la pigina q u r comirnza con el rrgistro 22 se encuentra siguiendo el prhximo acwso a1 RI en la dirrccibn 300. Supongatnos clue queremos accrder a1 registro 10. Una hi~squrtlaen la pigina raiz indica qur rl registro 10 se rncnrntra en el prbxin~oacceso a la pagina in(1ic.e localizada en la direrci6n 200 (ya quc: 10 rs menor clue 22). 41 buscar en rsta pagina el rcgistro 10 se encuentra en la pagina intliw localizada en la d i r r c c i h 90 (ya clue 10 es mayor q n r 9). 41 buscar en esta pigina ( m a hoja) rncontramos que el registro tit, datos 10 s r encurntra en la pigina localizada en la rlireccihn 400. Un mecanismo siniilar se ap1ic.a en la inserciim y elin1inaci6n de registros.
RI raiz Direccion
9,90 Rls lntermedios Direccion 1.350 2.350 4.360
Fl 14,350
Rls Hojas Direccion
l I0
Registros de datos
Correspondencia entre estructuras de datos 16gicas y estructuras de datos fisicas i h o r a I~ust*arcw~os la aplicatiOn tits txstasidea5 en n n sistema tlr 11asrtlr tlatos. Kn esta st.(-rihn e\aniinart~n~os algnnos de los aslwctos fisiros tlr la imf~ltwtbntacii,nd r las rstrut8tnras tle tlatos ntilizadas r n las 11asestlv tlatos rrlacionalrs, m rvtl !jerirtjnicas.
Correspondencia en las bases de datos relacionales \Igunos sistenias (It. ]lases tle tlatos alinat*enanratla rrlavihn w m o un arclii\o t.011 un rrgistro para catla tnpla (Ma). R o r n ~ a l n i t ~ rrsto t r es t20ri-ectopara h a w s de datos ~wqnriias. ~ w - oa nictlitla clue la I~ased e tlatos crtxct, r n tamaiio. seria mks t.f'itinrtr a l m a t w ~ , ~\drirls r relationes en u n zolo archi\ o. Consitlt*rt~las rrlariones tine se mntbstran en la Fignra 10.%l(a)y nna ronsulta clue r r t'litmtt~.PI \endetlor. la cantitlad! (11nurnrro del p1-opara ratld venta n t ~ ~ 4PIt nr o n ~ l ~tlel tlurto. l',rra catla tnpla tlr la rrlat*ihriL E A T 4 se I)uscan las tuplas tbnla rclaciim C1,IENTE q u r ro~ncitlancon t.1 \ a h tlrl numrro tlel clitmte. Si el CLlENTE y las VENT4S sr alrnarrnan en awhi\os tlif'rrrntrs. rntoriws st. ntwbita una oprratihn (It*1tv.tul.a s o l ~ r rrl a r r h o 1)tw t*atIaregistrocn la ronsnlta. En la Figura l0.%1(1))sr sugierr nn mi.totlo m i s rfira7. Ksta rztrurtnra tle archito 1nc.zc4a las tuplas de amhas idacionrs ron PI olbjrti\o tlv facilitar m a r c u n i h (joira) de aml~as.Las tuplas tle PENTAS para cacla n h w o tlr t h i t e se alniac.c'nan junto con las tuplas d r CLIENTE con el nrismo valor tlel numrro dv1 rliente. Cuando se lee
I
I
CLlENTE#
NOMBRE
25 1 095 312 4 19
I
I
L/MITE DECREDITO
H. Barlow
BALANCE D E DEUDAS
$ 5.000 $1 0.000 $ 5.000 $I5.000
J. Krupke 0. Reed M. Little
VENTAS INV. #
CLIENTE #
1 1 1
13 095
1
312
I
I2
12
0.95
AMT
VENDEDOR
PROD #
120 592 750 157
V. Blab J. Wells V. Blab J. Wells
W85 I 09 12 W85 I R950
0912
I 1
V. Blab
W85I
I
J. Wells
R950
120
V. Blab
W85I
312
592
J. Wells
J. Krupke
10000
5000
1
0. Reed
5000
800
1
312
750
25 1
157
I
(
349
ORGANIZACION F~SICADE LOS SISTEMAS DE BASE DE DATOS
m a tupla tle la relacihn CLTENTE. el 1)loqnecomplete q u r c:ontit:nc. la tnpla sr col~iaen la nwmoria primaria. Como las correspondientcs tnplas tle VENTAS sr almarrnan juntas. el 1)lotlur cine wntiene las tliplas (11: VENTAS newsarias para cwnipletar la c o n d a 1)utde estar r n el niisnio hloqne, (lilt*stxtwcnentra en 1;r mrnloria primaria. -\fin si he ncwsitaran otras tnplas, se alinacruarian cn l h l u e s clue e s t h cwc.anos en el disco. agrupnlnie~~to Esta estrategi;~tle agropamiento p n r d r a c d w a r la reunihn (join) dc las rrlaciones (clrrstrrir~g).Il1)icacih (:IJENTE y VENT:\S. pero pndirra volversr mLs lento el pwceso clue involucn otras en mi niisnlo 1)loqne dr relaciones. La tlctrrminac*ihntlr cwintlo el agrupaniiento rcwlta iltil t,ktli en fnncihn tlc la relacionc~sclue se frecnrncia con la cual se realiw mi;r cons111ta. reiincn con l'rec*~~enc*ia. Otro factor tamhibn se vuelvr importante en la corresl)o~~drnc*ia cle las rclaciones (.on un almacrnamit,nto fisicw. \.ixr Figura 10.22. ;lqiii la relacihn CLIENTE sc cwwentra relacionada con la relac*ihn RECIBOS-ljFECTIY0 con nna cardinalidatl dta nno-inucllc~s. La clave 11rim;rria para CLIEXTE es NCM-CLlENTE. y pntlieran esistir otros atril~ntos adicionalcs. Como se tnuestra. NUM-CLlEKTE aparcce como una clavr esterna en la rrlacihn RECIBOS-EFECTIVO. Si YITM-CLIENTE sc. nsa como la cla\;e actual Imra la inlplemcntarihn Gsica, podrian snrgir tlificdtatl(:s si. por rjemplo. el KUM-CLIENTH es errhntw o cambia. E n caste caso. tirnrn qiw camhiar todas las loralizacionrs fisicas donde aparece el NUM-CLIENTE. Esto no s d o implica tiemlw y esfiierzo. sino clue tarn11i;n rs iina oportnnidad p a r a clue ocwrran errorrs. P a r a rliminar este l)rol)lemh, en ocasiones los SGDBs crean una (*lavesustitnta. solamente conocida por el p r o l ~ i osistvrn;~.I)e esta forma, si la c l a w primaria real, NlJM-CLIENTE. d r h e catnl~iar.la c*lavc,snstituta no se afecata y asi no exist? 1;1 positdidad tle qne sc altrrrn las reprrsentaciones fisicas.
Correspondencia en las bases de datos en red Cualquirr interrelacibn vn red complrja ( ~ ~ ~ ~ ~ c * l i o s - m usrc pnetle l i o s ) rt~formiilarconlo llna red simplr mediantr el nso d r rrgistros tle interwcci6n. P o r lo clue nnestra discns~hnso11re la corrrspondencia neersita crntrarse bblo can la rtd simplr. Consid(w el ejrmplo clne se miicstra r n la Fignra 10.23. Es una red simple, ya qiir las interrelarioncs rntre los registros d e t i p duriio y m i r m l ~ r oson nno-muclios. El rrgistro de t i p f'actm-a es n~iernl~i-o de dos conjuntos: CLTE-FACT y \. ENT4S-FACT. Es decir clue, vada registro E'ACTUR4 t w n r un registro diiriio CLIEN'I'E y nn registro dueiio 1 ENDEDOR.
CLIENTE
EFECTlVO
Transformandolos en Relaclones
CLIENTE
RECIBOS-EFECTIVO
I - --- INUM-CLIENTE]
RE#
L
I
I NUM-CLIENTE I Clave externa
Clave sustituta anadida por el SGBD
DISENOY ADMINISTRAC~ONDE BASES DE DATOS
CLIENTE
VENDEDOR
VEND-FACT
FACTU RA
Esta simple retl se puede rcbprest.ntar nirdiante listns enlazadas a travbs de la rreaciim d r punteros p o r cada ronjnnto. Sc nc.rrsita 1111 griipo d r punteros para cwnertar 10s rt-pistros de CLIENTE con sus rcgistros r n FICTURA y otro grupo d e l ~ n n t r r o sI)ara twtlectar 10s rrpistros d r VENDEDOR con \us rrgktros en FACTUR2. Eli la Fipwa 10.24 sc ttiurstra nn ejemplo d r la rrlacihn 16gica. Sin embargo, conio n16todo fisiro d r instruniriitacihn rs torpr porqur rl nhmri-o tlr puiitrros r e q u e r d o i rs varial,lr: Si ha, trrs rrgistr04 11r f a ( * t ~ wde a tin nsnario. sr nrwsitan t r r s plintcros: si hay cinco rrgistros d r factura cir 1111 usuario. rntonws sc. nrcesitan citico puntrros. D r forma priirtiea. rs difiril iiiaiitrl r c a m p s plinteros. Sin rn1l)argo. la lista rnlazada u r r c ~Im i registro 1111 niinlrro ~ a r i a l ~de 111qwrciona luia forma de r l i t a r rsa tlificultad. Kt1 la Figlira 10.25 sc ilustra la fortn't r n q u r rsto sr h a w . Cada rcgistro rlirntr contitwr 1111 pnntrro a1 niinirr o tlr t tyistt o d r la primera factura q u r posrr. Esr rrgistro clr factura c o u t r n d r i uti 11untrrod la prO\~tti'~ fartura que p e a r s r niisnio c*lirntr. Estr p o w s o c-ontinha liasta clue sr r n l a ~ dla idtui~afac2turad r rste clirnte. Poi* rjemplo, rl registro drl CLIENTE Smith apliiita n Facatura #1 (niimrro d r registro 6). qne apunta a Factura #2 (nilnirro de rcgistro 7 ) . qiir rs la hltitt~,~ d r la5 facturas d r Smith. El final d r la lista de facturas sr indira p o r 1111 niinirro tle reglstro 0 r n el vanipo puntero. En la Figlira 10.26 sc. mliestra un iii6todo tnhs prhc*ticod r irnplt~mc.ntari6ti.Coinparando la Figurn 10.20 roil la Figlira 10.25. sr puetle ver q u r rl i1nic.o c.atnl)io rs clue r l hlti-
I Smith
I
ORGANIZAC~ON FISICA DE LOS SISTEMAS DE BASE DE DATOS
REGISTROS CLIENTE
REGISTROS VENDEDORES
1
1 1
1
REGISTROS FACTURAS
REGISTROS CLIENTE
REGISTROS VENDEDORES
REGISTROS FACTURAS
I 1
1
NL~MERO RELATWO DEL REGISTRO
REGISTRO DE DATO
I
Smith
2
Jones
3
Beans
4
Carnes
5
Jubal
6
Fact # l
7
Fact #2
8
Fact #3
9
Fact #4
10
Fact #5
DIRECCION RELATIVA
REGISTRO DE DATO
I
Smith
2
Jones
3
Beans
4
Carnes
S
Jubal
6
Fact # l
7
Fact #2
8
Fact #3
9
Fact #4
10
Fact #5
PUNTERO CLIENTE FACTURA
PUNTERO VENDEDOR FACTURA
PUNTERO CLIENTE FACTURA
PUNTERO VENDEDOR FACTURA
mo regktro en taatla lista contienc u n puntero a1 registro cluciio tle la lista. Esta rstrnt~_tii~.il circular facilita la cjrcnrii)n de lab consultas FIND OWNER (ENCLENTRA4DLTENO). FIND FIHS'I (EN(:lrENTR 4 PRIMERO) y F1 NI) NEAT (ENCUENTRA PROXIMO) tle 10s lcngnajrs ro~nnnvstle rnanipulatihn d r datos r n forma de r t d . Siguirndo el circnlo tle punteros simplifica la localizacicin d r l rrgistro deseado. (Los lengnajrs tle inanipulacicin tlr tlatos r n rrtl sc cstutlian en el Capitulo 15.)
Correspondencia en las bases de datos jerairquicas Tam1)ii.n. como en las rstructuras d r tlatos en red, se pneden m a r mhltiples punteros en 10s rrgistros padrrs en las relaciones de una jerarquia o irhol, tal como se sugiere en la Figira 10.27. Mientras el in6toOo tlr multiples punteros dentro de un registro facilita las conexiolies entre un registro padre y uno hijo, dste no se usa frecuentemente por el n6mei-o variahle
DISENOY ADMINISTRACION DE BASES
DATOS
-
FACTURA I
Smith
Jones
Bean
FACTUP A
FACTURA 3
FACTURA 4
2
FACTURA
-
-
5
dt. pnnttSrokt p t b 1)11rdcmSIX nr(wirrios tbncada rrgktro pat11.r. Los ~ q i s t r o dc. s lon$tutl \ariaI ~ l rson partic*darnwntr t~onll)lic~;rdos m a n d o se tlcblwn rcdizar insrrc.ionrs 7 eliniinacionrs. El uco d r llnrltrros I~i,josy h r r n ~ a n o sr r d n w la twmplt,jitlad drl mantrnilnin~totir p n .! la rrstriwihn tlr la c~orr(.sl)ondt'~~t~iir hijo-patlrt.. Examine la Fipura 10.28. t t ~ o 1nilltil111~s s a t p i vt. q11r ('1 lirilnrr t ~ n n t r r otIr rada rcqgistro c.ontirnr la tli~w*rihn nn rtyistro hijo. 4- rl sepi~udopnntrro int1ic.a la IorariOn d r un rrgistro Iwrmano. D I esta ~ manrra. cada rrpistro c'ontitwr rsac'tamrntr dos calnpos punteros. q u r r s rnncho m i s ficil I!(. rnantrnrr. (:orno t.011 r a a l t p i r r lista rnlazatl;~.10s pnntcms purdrn rliininarsc~drl misino rty+tl-o !rolorarsr en Iin dirrvtorio lista invertida. Para nnrstro t:jt.nq)lo. vsto st. nnwstra r n la Figura 10.29.
Acceso por la clave secundaria
cia\ 6. secundaria. Un rlr~ntmtod r dato t*u>o \alor itlrntif'ic.a a un c'onjunto d r re,'~ s t r o s .
'UNTERO ID REGISTRO 3EGISTRO CLIENTE FACTURA Smith Smith Jones Bean Bean
Hnsta estthpnnto. 11rlnosrstado nsando la l ~ a l a l ~rr lat r v ~lnis . I ~ i r n1il)rrmvntr. para nonihrar a nn rltmrnto d r dato cmyo valor idtwtifira imic'arnrntr a 1111 ~-rgistro.Ti.rnitwnrntt:. esta clefinirii,n r s 11arala clave primaria. Existen taln11ii.n rlavrs srt.lindarias quc. purtlen srr ilnivas. prru no o1)ligatoriamrntr. lTna d a r e secill~dariat.s la q u r idvntifit*a un cor~jurztode rr$stros t p e tirnrn rl niisnlo valor para la t*lavrstvw~daria.Las (:laves swnntlarias juegan un p p r l importante 11ara(lar s o l ~ r t ta, 10s rrqnisitos tlr inforlnaci0n de 10s usnarios d r 10s SGBS. 1lustramt)s los cwnc*cxl)tos fnndanwntalrs mtdiantr nn ~ j r m p l o .La IJnihn tle Cri.11ito Cosmos tirnr varios t i p s d r usuarios dt. slr sistema d r 11asedr datos. I,os ctajeros nrrrsitan accet1t:r a 10s registros de las cwrntas (it. los c-lientrs para rrspontlrr las prrgnntas de rllos 4; wtualizar 10s rrgistros twando hay transatacionrs. Algunos t.lit.ntrs p u r d r n tenrr d o cnrntas cwrrirntes, otros. advmis. twrntas dt. ahorro, cwtbntas(it' tarjeta d r c-ri.dito, o p r k -
DIRECCION RELATIVA
REGISTRO PADRE
PUNTERO HIJO
Smith Jones Beans Fact # I Fact #2 Fact #3 Fact #4 Fact #5
0 = Fin de la Lista lnvertida
PUNTERO HERMAN0
353
ORGANIZACION FISICA DE LOSSISTEMASDE BASE DE DATOS
LlSTA CABECERA
NOMBRECLIENTE
TIP0 PRESTAMO
PER/ODOPRESTAMO
PRESTAMO
Nixon
Auto
48
6
Patton
Auto
4
Fortius
Embarcacion
Wood
Auto
36 24 36 36 48 36 48
Cayman
I
PUNTER0 PERIODO
Vance
I I
Casa Auto
Costas
Casa
Ubu
Auto
I I
I I
0 5 7 8
0 0
DISENOY ADMINISTRAC~ONDE BASES DE DATOS
Optimizaci6n de las consultas La optiiiiizat:iO~~ dt*las wusultas rs m a twnsidrrac*iSnimportante en un sistema de hasr tlr datos, > a t p r la tliferrncia cm ticmjw tle rjet*ucihiirntre una h r n a y U I I ~n1;11aestrategia l ~ l r t i ser e sustantial. Con las r s t r w t u r a s en red y j e r i r t j ~ ~ i c a la s , optimizarihn sr lc tleja a1 programador, ya clue las hrdrnes de manipulerihn tlr 10s tlatos e s t i n rontenitlas en u n lenguaje tlr progra111aci6n y r s t i n a1 nivel tie la nianipulaciim individual tle 10s rrgistros. Las ronsi~ltasrelacionalrs, sin enll~argo,pnetlen rx~,resarset~oml~letamentc~ en el lel~guajrtle consulta rrl;~rionaly nialiipular dr uria vrz conjuntos enteros d e registros. Es, por lo tanto. posihle y drst-able optirnizar tlt. forma automitica las consultas. Nuestro prophsito tm rsta srccihn r s el de familiarizar a1 lertor twn Ias idvas f i ~ r ~ d a nientales de la optimizacibn dr las cwnsultas sin explorar totlos los detalles tlr este eriornit. r a m p tle estudio. Ros concentramos r n la curstiOn general de r0mo producir rficazmrntt~ ilna r r s ~ ) ~ ~ ra silna t a ronsulta en algt.hra relational. Veremos rstos tres o1)eratlorrs: Se1et.t (Srltwihn) Project (Proyertar) Join (Reuni6n) Usaremu5 como ejeniplo la siguirlite base tie clatos: EMPLEADO(EMP-NOMBRE, CALLE, EMP-CIUDAD) TAREA(PR0Y-NOMBRE, EMP-NOMBRE, O F I C I O , HORAS) PROYECTO(PR0Y-NOMBRE, PRESUPUESTO, PROY-CIUDAD)
Conlbinar las operaciones de selecci6n y reuni6n
Enronlrar 10s 1)rc.suprwsto.iy 111snonhrrs tle totlos los proyertos ruyos rmpIrados viva11 rn Pasatlrna. [Tna forma de rswihir t, interprytar rsta ronsulta rs coma sigur: A : = Join(EMPLEAD0, TAREA, PROYECTO) B := S e l e c t ( A : EMP-CIUDAD = " P a s a d e n a " ) C : = B[PROY-NOMBRE, PRESUPUESTO]
Como RenniOn opera sohrr las tres rrlacionrs en su totalidad, tienen q u r examinarse todas las tuplas rri las tres relariones. Luego, si hay n tuplas m EMPLEADO, rn tuplas m TARE;\; y k tuplas en PROYECTO, rntonces hay clue hacer n x m x inspectiones. Compare lo anterior con la siguiente estrategia. A : = Select(EMPLEAD0: C i u d a d = "Pasadena") B : = J o i n ( A , TAREA, PROYECTO) C : = B[PROY-NOMBRE, PRESUPUESTO]
ORGANIZACION FISICA DE LOS SISTEMAS DE BASE DE DATOS
355
Suponga clue e ~ i s t t wt en~pleadosclue \ i \ r u en Pasadena ( t < = 1 1 ) . Entonces se d e l ~ e n realizar t x in x h- inspccciones. tlonde
Si t es c~onsidera1)lemelitemenor cpie n . rste illtima estrategia necrsitaria considerar menos insl)ewiones. P o r consiguientr, una ejecliti6n eficiente rralizaria las selet:ciones lo antes posihle.
Combinar las operaciones proyeccidn, seleccidn y reunidn E n el ejemplo anterior, todavia la segnntla for~nnlacihnde la consulta obtuvo inforn~atibn intiecesaria con sus oyrrat+mes. La r r l a c i h deseatla nrcesita informacihn shlo p a r a 10s valores dr dos atrihutos. PROY-NOMBRE y PRESUPUESTO. Todo lo q u r tm realidatl se necesita son 10s atri1)utos necesarios para la consulta tleseatla y 10s atrihutos clue intrrvicnen cn la reunihu. Usantlo de fhrma correcta el opcrador de proyeccihn se obtiene una ronsulta a h niis eficiente, conlo sigue: A B C D
:= := := :=
S e l e c t ( E M P L E A D 0 : EMP-CIUDAD = " P a s a d e n a " ) [EMP-NOMBRE] ASSIGNMENT[PROY-NOMBRE, EMP-NOMBRE] PROJECT[PROY-NOMBRE, PRESUPUESTO] J o i n ( A , B, C ) [PROY-NOMBRE, PRESUPUESTO]
E n cada paso de esta solucihn hrmos proyrctado hacia afurra todos 10s atrihutos innecesarios. tlrjantlo s61o 10s nrcwarios p a r a la solueii~n.Entonces la estrategia consiste en aplicar las select+mes y proyrt:ciones tau pronto conlo sea posible. La operacihn tle reuniOn lleva mucho tiempo. por lo clue se drhe realizar lo nibs tartle pcrsihlc.
En rste capitulo se introdujeron conceptos bLsicos de orpanizacih y accnesoa 10s archivos, clue son tle gran valor para 10s usuarios y 10s diseiiadores de sistemas. I m h o s grupos se familiarizaron (.on la terminologia y los conceptos hasicos de organizacihn fisira y a t w s o a 10s archivos con el ohjetivo d r conlunicarse niejor con el personal ttcnico, preguntar cuestionrs relevantrs a 10s vendrdores, t e n r r cwnocimiento de alternativas, y por otro l a t h estar disponi1)lr p a r a contrihuir a una imylementacihn efectiva tlel aistema de base dc datos. Priniero estudianios 10s medios d e almacrnamiento fisicos clue soportan las operaciones de 10s sistemas de base d e datos. Esaminamos la forma en que se alniacenan 10s datos en el disco y definimos el prowso de aweso a 10s mismos. Mas tarde se mostrh c6mo calcnlar r l tiempo de acwso. Se rlefinieron tres mttodos bbsicos de organizacihn fisica de archivos: secuencial, srmencial indexatla. y tlirecta. La organizacihn secuencial es eficiente cuando las aplicaciones solamentr conlprenden el procesamieento de un nlimero notahle de registros (.a& vez q u m e at:crde a1 archivo. La organizacihn srcuencial-indexada r b efectiva cuando existen apliraciones notables que necesitan el procesamirrito secuencial y otras que necrsitan el prowsaarnirnto directo. La organizacihn directa es nrcesaria cuando apliraciones m i s importantes necesitan r l acceso directo a 10s registros. Ilustramos ambas fornias d r la organ i z a c i h directa d e 10s archivos, estitica y dinimica. Tatnhikn rxaminamos las rstructuras de datos fisicas fundamentales clue permiten la implemrntacihn de interrelariorws de datos kgicos. La herramienta mbs elemental es el
DISENOY ADMINISTRACION DE BASES DE DATOS
puntt.1-o. El p ~ ~ n t es t ~1111o rleinento tle tlato qne cwntienr la t l i ~ w t * i O fisica ~ ~ tle 1111 rrgistro alinat~enatlo.I,os l ~ n n t t ~ tlrlwn os estar inrrustatlos dentro tlr 10s rtyistros. llara rnt.atlrmars? jnntos r n luia lista tle rtyistros rrlat+matlos. Iltrrnativanlrntc.. iln indire d r valorrs. junto con lo.; puntrros a 10s wgistros clue t*ontit.nrn tlic*hos va1orc.s. st. 1~11etlt~ Iuantrner sel)aratlo clr los rcyistros. Esto sr llama una lista invertitla. Un r s t p r m a tle intlrxarihn t l w n ~ a ~ ~ t i su e n rficatia e sin importarle las insri.t:iones y rliniinacio~irsse llanw R+-irl~ol.Sc. 1~rc.srntaroii10s t~~nt:t:ptos drl i n i s ~ i ~y osr inostr6 SII utiliz:tti611 !- c6111o se ronstrn!.tm. Se dio una itlea ac.rrt*atie 10s ni6toclos nietliantc. 10s wales los uiodrlos tlr datos lbgitws se t ~ t ~ r i ~ e s ~ ) o ntwn t l r nlas rc.l~resc-~itat*i~~i~es fisit-as. I)e rsta forni;~.t~oinl~leta~nos una \ isii~ndestlr r l niotlt.10 twit-rj)tiial hatie el motlt:lo tit. in~l)lc~iiirntatihn 16git.a y tlr 6ste a la in~plt~n~rntacitin fisira. Drsl1~16smost~~anios t4mo st. usan 10s puntrros twn rrsl~t.c.to;I las (-lavesst:ci~ntli~rias para fatilitai* la ret*lil~eri1c.i6n d r tlatos. Finaln~ente.rstndiainos I~reveinrntc~ rl trnla de la o1,tiinizatihn tlr consultas. r Z llesar cle que 1111 burn SGBDs r t k i o n a l l~rintlala ol~tiniizacihnn r t w a r i a , el t.onoti~nirntod r ransa y n ~ h o d op u r t l ~darlv itleas a1 uauario tlel sistenia (It. 11asedr datos.
1. Defina ron sus l~ropinsp a l a l ~ r a scads nno d r los signit:ntes t6rmiiios: a.
b. c.
d. e.
f. g.
11. i. j.
selt.cator de estrategia atlininistratlor de arc.hi\~o mrnit~riapiiiitil~al cilindro rrgistro fisiro razhn cle transftwntia d r datos formato rnenta-(.lave lista ral~ecera lista invc.rtitla Lr11ol enraizado
k. hoja 1. rt:traso de rotatibn in. controlador de tlistw n. agrupamiento (cl~istering) o. rlave l ~ r i m a r i a
2. 1Por (pi.la r r ~ - \ a c i 6 1 tle 1 regiztros en I)loqnt. constitnyt. nn fartor ell el rrndimierito del sisteina de 11aw de datos?
3. Compare la organizaci6n tlr archives srcuential, swurncial-indruada j tlirertw. 4. iCuLlrs son las cararteri~ticasq n r dehe c.urnplir un I)wn algoritmo hush?
5. kCu61 es la f u n t i h dr.1 interval0 en el f'orniato tle 1111registro? 6. Difercncias rritre t.1 forniato cnenta-dato y cuenta-dave.
7. ~ Q u Ges latencia? 8. Descriha las operaciones principalrs que se dan en la g e d m d r entradalsalida.
9. iQuG efitaacia sr conq~lemrnta(*onel uso de 10s pnnteros? 10. Difei-encias entre m a lista enlazatla sinq~lry un anillo. 11. ~QIIGes u n puntero l i d o y cuLl r s 5u significado?
ORGANIZACION F~SICA DE LOS SISTEMAS DE BASE DE DATOS
12. j,Qui significa el t6rinino B t - i i r l d ? i C u i l es su prop6sitoY 13. Diferenciai entre iina clavcs primaria y una secuntlaria.
1. Marcrue ratla tbrmino con sii s e l e c r i h . a.
I. c. d. e.
f. g. 11.
I T 1 1 clmiento
de dato cjue contienc nna tlirecci6n fisira. El tiempo necesario para posicioiiar las c - a h zas de 1ect1iraIcscritui-a sol)rr 1111 detern1indtlo cilintlro. El ticnipo n e c ~ s a r i opara actn a r las rahezas tle lec*tura/escritura. Drfina la estructura de loi datoi tlel l ~ i ~ i a r)i o c.Omo sr usan. Software c p e eontrola el mo\iniiento de los datos e n t r r la nlenioria princ*ipl y el almacenamiento en chsco. Una secuencia de punteros clue conectail registros itdexadoi. Registros fis~cosclue i e enlazan metliante p111itwos incruitados. ITn valor de u n ele~nentode dato clue ident~fl(.a un conjunto dv re,'cristros.
2. Supcrnga q11e trn~~moulrtiac.erla(loi registros en u n d i i p o s i t i ~ od r disco qne posc~.lai sig11ic.ntc.s rararteriitic.as: t i e n i p tlr posicionainiento niedio: 0.02 wgiin(1os \elocitlad tle r o t a c i h del tlisco: 3.600 rr\olnriones por minuto \ elocitlatl tle transferencia d e datos: 312.000 hytes por iegundo iC&l es el tiempo de transferencia tle tlatos esperatlo p a r a u n registro fisicw acceditlo aleatnriamente que ocsnpa 500 1)y tes?
3. j,Cbmo r e i p n t l e r i a la prrgunta (2) suponientlo clue se use u n dispositivo de tliwo cou la5 cabezas de lectnralescritura fijai. es decir, cada pista en cada cilindro twnr su propia caheza de lec~turalesc~ritura?
4. Usando 10s misnlos parlittwtros dados m (2), suponga clue se guardan 10 registros fisiccrs en nna $a. 1Culiles serian 10s tiempos de transferencia de tlatcrs c:oniparativos p w a : ( a ) 30 rrgistros almacenados secuencialmente en el ttiistno cilindro, y (I)) 30 rrgistros almacenados en tres pistas que no se encuentran e n el tnismo cilintiro?
5. Si lab facilidades de coinpactacibn mrjoran el almacenamiento j la recuperaci6n de registros, i p o r quC. no sr almac-enan archivos en u n gran bloqne?
6. Suponga que se almac-enan registros l6g1cos en bloques de cuatro y que (10s 1)loques sucesivoi cwntirnen loi registros 11. 13, 14, 19, y 21,23.24,26. Dricr11)a c h o r l sistrma operati\o localizaria el registro 23.
7. i P o r q u i la org;lnizaci6n cle archivos secuencial wria eficiente para el prcrceiatniento de lab n6minai srmanales? i P o r qub n o seria eficiente para rrsponder las demandas de 10s usnarios?
8. j.Por qub nrcesitamos otros mktodos de organizaci6n tle archivos, a pesar de cjue la organizaci6n secuencial-indexada poser a m l m ttibtcrdos tle accesos a registro, srcwencial y directo?
DISENOY ADMINISTRACION DE BASES DE DATOS
9. Use el algorit~uodel wciente c:uatlritic:o de hash p a r a c*alrularla d i r e w i h rrlativa en la clue se ahnacenan 10s aipuientes registros. Suponga 1111 factor tle carga cle un 80 por 100. ~ C u i n t o shloc~uess r nerrsitan si 6stc es r l archivo c.oinplrto? (Asurtia u n rragistro por 1)locpe.) Clave
Nombre
14 24 28 23
Smith Bean
Harris Scott
10. Suponga clue 1111 algoritino hash d i ~ ~ i i i i i cohtirne o 10s siguirntcs hits d r mayor-crrtlrn p a r a las (*lawsdc tletrr~iiinadosrrgistros. Mncstrr c6mo rstos registros sr indcsan Jalnlacrnan. S i p el rjrniplo mostrado (-11el trxto, y suponga clue s r insrrtan r n el ~uismo orden srgiiido r n el r j m q h :
12. Construya u n B + - i r h l con lob 3iguirntrs rrgistros: 20, 63, 34, 56, 43. 89. 45, 68. 52. 54, 14, 19, 7, 70 y 82. Con it = 3. 13. Muestrr c h u o s r r t y ~ w n t a r i ala red tle la Figura 10.lE si: a. Usando punteros hijos-y-hcrmanos
h. Usaiido un indicr (.on pnnteros de tlirrwii~n c. Una estrurtiira tle anillo
14. Constrn? a un diagrama d r u n modrlo tle datos jerircpico y muestrr
chi0
sr rorres-
poideria con m a rrpresentaci6n fisica.
13. Construya 1111 diagrama dr m a r r d bimplr y murstrr c6mo se corrrspondrria con una r e p r e s e n t a c i h fisica.
16. Construya un diagrania de una red cwmpleja y murstre c6mo se corrrspondrria con una representaci~jnfisica.
ORGANIZACION FISICA DE LOS SISTEMAS DE BASE DE DATOS
359
17. Conitruya dos relarimes para l a i que "-a nece5ario hacer m a reuuihn p a r a iatisf'ae r r una drmanda del usuario. M w s t r r c4mo se u-a el agrupamiento p a r a harer m i 5 efiriente la formulaci6n de la d e n ~ a n d a .
18. Construya un ejvmplo de u n arrhico clr j)tnonal ortlcnado por el niimero tle empleado e inc*luyaliitai cnlazadas para hrindar (*lacessecundarias sobre el plan de pagos (?xi-ten trvs tipos: A , R , y C). Tipo c-le c.mpleado (por horas o salario) ! el plan d e jubilacihn (X o Y). 19. Repita el 11rol)lrma17 uiando una li-ta invrrtida.
C L I E N T E ( C L T E # , NOMBRE, CLTECIUDAD) CUENTA(CTA#, T I P O , CLTE#, BALANCE, O F I C I N A # ) SUCURSAL(OFICINA#, FONDOS, CIUDAD)
Esc.ril)a las iiguientei peticionri cle la forma m i i rfirieute: a. 4ccrso y 1)6squrtl,t tlr 10%fondos J del niiruero de la oficina d c todai las s n r ~ u i a lei que tienen clientri ~icicmtloc>nMidway. A : =REUNION (CLIENTE, CUENTA, UBC I ACO I N) B:=SELECT(A:CLTECIUDAD = " M i d w a y " ) [ O F I C I N A # , FONDOS]
b. A ( T M J! I h i t p 4 a clr loi fondoi y del niunero de la oficina d r todai las surnrbales que tienen vlientes ~ i \ i e n t l oen Mitlwaj con saldos de depbiitoi mayor qutk
$1 .SOU. A: =REUNION (CLIENTE, CUENTA, UBC I ACO I N) B:=SELECT(A:CLTECIUDAD = " M i d w a y " a n d BALANCE > 1 , 5 0 0 ) [ O F I C I N A # , FONDOS]
1. P a r a cada uno d r loi ilguwntrs t~jemplos.escoja ru;il ieria el mttcrdo de organizacihn de archive mhs aprcrpiatlo: a. Un sistema d r l ~ a s dr r datoz de un hospital q n r ioporta sus operaciones d r nrgocio
b. Un sistema d e pedidos para una firma de manlifactura c. Una agencia d e alqruler tle t w h e i
d. Un distri1)uidor d e yrodurtos farmacbuticoi e. Un sistema de rrglstros d e estudiantes en una u n i v e r i d a d f. Un sistema de r r s e r l a de hahitaciones en un hotel
2. Ya que lai r5tructuras de datoi fiiirai no estan determinadas ni por el analiita del s ~ s tema ni por el usuario. jexiite alguna ventaja en f o r m a r b s en este tema?
3. Un efectilo a g r u p m i e n t o de 10s registros p a r a farilitar lab operaciones del lenguajr relational pnede depentler del t i ~ y~ lao frecuenc~acon que se realiwn distintos t i p s de consultas. Pienie en un ramino que noi puetla guiar en la determinacihn de rOmo a p u p a r 10s regiztro5.
4. Si tiene acrrso a la informacihn d r un SGBDs. determine 10s t i p s de estrnrturas de datos fisicas que soporta.
I P
A
R
T
C UAT DEL ENTORNO DE BASES DE DATOS
E
n la parte 4 aprendrrli temas importantes prrtenecientes a1 rntorno de la hasc de tlatos. tales como la administracibn de la base de datos, sistemas tlistrihuitlos (It: bases dr datos y selec.c:ibn del SGBD (DBMS). A medida que trahaje ron estos capitnlos, asentari y constrniri el conocimiento desarrollado en p w t m anteriores del libro y aprenderi concrptos que son de importancia creciente para el uso eficaz de 10s sistemas de 1)asrs d r datos rn nuestra sociedad. El capitulo 11 analiza las funciones del administratlor de la hasr de datos (AHD, DBA) p examina las tdcnicas actuales para proteccihn de la base de datos ante un acceso no autorizado, asi como la manera de asrgurar la integridad de sns datos. El capitulo 12 considera el ripido desarrollo de sistemas de bases (It- datos distrihnidas, en 10s que se conertau las 1)ases de datos por enlaces de comunicwiones para permitir una compartiripacihn n ~ i amplia s de las haws de tlatos. El capitulo 13 considera el tema de la selecciirn del SGBD. ~ Q u dfactorrs son importantes? ;,Chmo se pueden medir y evaluar, y curstiones relacionadas?
Y EL CONTROL DE LA BASE DE DATOS
Adrninistracion de la base de datos: Una vision panorarnica Funciones del A B D Comunicacion con 10s usuarios Establecimiento de normas y procedimientos I. Analisis y rutas de 10s inforrnes de p r o blernas 2. Supervision del Hardware y del Software 3. Pruebas 4. Seguridad 5. Copia de seguridad y recuperacion 6. Evaluacion del rendirniento 7. Cornprobaciones de integridad Objetivos del A B D lntegridad de la base de datos Restricciones de integridad en SQL Restricciones de integridad en Query-by-Example Procesamiento de transacciones Control de la concurrencia
Seguridad de la base de datos Autentificacion (Autenticacion) Autorizacion y vistas Tipos de acceso a las vistas Vistas y seguridad en SQL Cifrados M e t o d o de sustitucion simple M e t o d o de sustitucion polialfabetica Recuperacion de la base de datos Fuentes de fallos Procedimientos de recuperacion Diario de operaciones c o n actualizaciones diferidas Diario de operaciones con actualizaciones inrnediatas Puntosdechequeo Resurnen Preguntas de cornprobacion Problernas y ejercicios Proyectos y cuestiones profesionales
LA ADMINISTRACION Y EL CONTROL DE LA BASE DE DATOS
363
E n /(I re111ri611 S C I I I U I L Udel ~ prrso~irrlrle la c o n ~ ~ t c r iServicios ir~ tlr Corrsdtorio Vlanwaririg. el m r i r ~ t op r i u c i p l se r(feriu (11 informe sobre el estatlo rlr. 10s diversos 1Jroyrcto.u bujo coiltrato. /,(I rnrrjoriu de 10s proyertos irr~~olrtertrbor~ el discGo y PI desorrollo dc hnses de tlntos: sin c~rnburgo.b;lrrrc~ Vordlund diripitr lrrl p r o y e t o c u ~ uutenci6n prirwipul estuba cJri lou uspectos cidrrlirlistrcrtit.os y d e control. Joan lilurricwring p n s c i que porlriu ser instrlrctivo p u r u 10s otros urlrninistrudores d e proycJetos uprender s o b r ~e ~ t o (r~pectos s y( ~ h o ill ccpipo tle Elmer 10s trutubu. Jonir pr(>guntci: "Elmer, 210.9 prohlernus ticriicos d e 10s sisternus tlc bases d e (lato.\ eat611sc~purtrdostlr los uspectos citlrrririistrutiz~osy (le control? H e oitlo rlecir (I varicrs pers o w s p c J lu blreiirr gesti611es la buenu g~hticin.qtie 10s principios efectivos d e lu pcsticin no v u r i c i ~cou ~ 1i1 tecnologic~. " Elmer movici lu c a b e x . ''Fluy d g ~ i n justificucii)~~ a p r ( l ese punto de vista, p r o , tril como veo / u s coscis, trrnbo.\ no pueden corzsiderurse reulmente p o r separado. Dr hecho, rncorltrarnos p c J ulgunos prohbmus se 1)ued(w rlasificur facilmerltc. en lin cumpo o PII ('1 otro. Prrru mi las irriplementucior~~s exitosm de 10s sistemus d e buses de dntos estcin ucompuricrtltrs siemprc~cle lirrcr comprc~nsi6npro/irndo de 10s uspectos administratilw y de control."
os sistvmas de inf~)rnlaci;lnse consideran cada vez mhs cwmo recursos t p r recluirrcm nna hurna gvstihn, asi como tambi6n d e b u m a s (.a-avtc:risticas t k nicas. Dado que 10s sistcmas de bases de datos frec~nentementeforman el niicleo drl sistrma de inforniacicin de lina organizacicin, constituyen el foco tir rnuc.11os aspwtos adnlinistratiuos a 10s qne nos referirrmos en este ca1)itulo. Dcspuis tlr Irrr este capitulo. t1cI)eria ser r a p z tle: Explicar la importancia de la gvstitin de las bases d r tlatos. Intlirar y tiescrihir las fiincionrs tie1 administrador d e las I m r s tle tlatos. Estodiar (-6n10puede mantenerse la integritlad d e 10s datos. Descrihir 1:6111opuede impl(~rnentarsela srguritiad de 10s datos. Indicar 1as fnentes de fallos cie las hases d e datos y comparar 10s diversos mi.totlos cic recnperarihn.
Gestih de la base de datos: Una visi6n panorhmica .A la acinlinistraci6n tic la base de datos le conciernr bisicamentr el asegurar que la informacibn prwisa y consistrntr estC disponihle p a r a 10s usuarios y p a r a las aplicaciones cuanadnlillistrador (lo la necesiten y en la forma requrrida. De este modo, r l ABD interactiia tanto con el siscle 10s datos (ARD. tm trma como con 10s nsnarios (Figura 11.1). Algunas organizaciones han dividicio la ingli.5 t)B(i). Dirertivo res~)onsabilitiadtle administrar 10s recnrsos del sistema de informacicin entre u n adminiscuyas rrs~)o~~sal)ilitladest r a d o r de 10s datos (-4D) y u n administrador d e la base d e datos (A4BD).En estos casos, se centran rn rl las responsa1)ilitlades de 10s AD se centran comi~nrnrnteen el desarrollo dr 10s procediestablecin~iento mirntos y de las politicas generales p a r a el sistema d r informaricin, mientras q u r las resd r las politicas y 10s pnsabilidades dr 10s ABD tiendrn a ser m i s ticnicas, tal como se sugiere en la Figura 11.1. ~ ) r o ~ w h n i e n tpara os El ABD se preocnpari por cuestiones tales como la determinacicin d e las definicionrs cir 10s c1. sistr~natie informari0n datos: rl tlesarrollo de programas para generar la informacihn necesaria; la inclusihn y la d r la organizariirn. e1iminat:icin de 10s datos tle la base d r datos; la implementacibn d e 10s controles d e segurid a d e integriciad; y la grsti6n de las operaciones de la base d e datos. administrador de la base Ademis d r estas responsabilidades primarias, el ARD debe jugar un papel primortle datos. Dirwtivo cuyas dial en la planificacihn y el tlesarrollo de la base de datos, asi como en la formacicin de 10s responsa1)ilitlades se usuarios. Esta educacicin incluye i r e a s tales como: rentran rn la gestihn tic 10s aspectos t6rnic.o~ 1. La manera en q u e la trenologia d e las bases d e datos puede ayudar a 10s diversos niveleb dr ciireccicin (importante para ganar y mantener el apoyo a1 sistema de tlel sisttma de base hast, d e tiatos por parte de la organizaribn). tie tlatos.
DISENOY ADMINISTRACION DE BASES DE DATOS
2. El tlrsarrollo tlr rxprctativas rtdistils p a r a el sistema d e I)ilsc. tlr (lato3 (ituportantr para tlisuiinuir las qncjas tie 10s usuarios).
3. Pi~ocedinlientospara r r s o l v t ~rl ~ 1 1 ~ 1 ~ l tle r u ilaa informaciOn (iuiportantc. 1)al.a nlantrner la rlit.atia (11.1sistrma y la satisht*t.i6ndrl usuario). las rcsl)onsal)ilitla(I(~i tle rsta f ' u n c i h se asoSr c c l ~ t r ala atrncihn 1.11 rl 1BD. *\ a cine . rian dirertnnientc con t.1 sistrma d r I)aw (11%tlatos, considvrando clue niurhas tlr las res~itilizadatos ~ucc.anizntlos. ponsal)ilidadcs tlel 41) e ~ i s t r n1.n c u a l q u ~ e rorganizac.icin P o r ejrnll~lo,el rstal)lrtimientt, dc 10s l~rocrtlimientospara la o h t r n t i i ~ n!la \ ;ditlati011 tle 10s datos p u t d e ser ])art? d r la rr~l~oiisabilitlatl del Iwro rsta rrst~o~isal)ilitlatl uo deprndc del uso de un sistema tlr h a w (It. tlatos. A u ~ i c p rhay variaciones rn cuanto a la posicihn n a c t a (pie o c n p el ABD t.n el tlia grama orginicw, en la Figlira 11.2 (a) s r sugierv una localiznc4'm razonal~lr.l q u i rl funcionario prinril~altle informnc.ihn (CTO ' ) respontlr a1 fulicionario atlministratibo print-i11aly ta1 ABD responclr al CIO. Si la coml)aiiia tuvirra un ,ID, el .4BI) potlria trahtiarsc. desc-rndentrmmt(~ una po,sicibn, rrsl)ontlirutlo entoners a1 1 D (Figura 11.2 (I))). Euarniiit~mosahora las funtionrs rspecificas q u r 11nedei1constituir la rrspous;~l~ilitlad tlel ABD.
Funciones del ABD [,as funciones del ABD genrralinentc~p u r d r n prrtrnecrr a las i r r a s ilr c o m u n i r a t i h con 10s usuarios de la hasr dr tlatos; la planificaci6n. el tliseiio y la implcnientacibn tle 10s sistrrnas de hascs d r datos; (:l rstahlecimir~itotie normas y proc:rtliniientos. La ~)lanifit:at:ihn. el disrfio y la implrmrntat*ibnd r 10s sistrruas d r 11asesde datos s c hall estndiado en 10s capitulos anteriorvs v s r excl~tycmd r la disc:usihn q u r sigur.
Comunicacih con 10s usuarios Los sistrmas tlr h a w s tie tlatos f r r c . ~ ~ e n t e n ~ rtirrien n t r t r r s componmtes: r l central. una ~ firn~a; h a w de datos ampliamentt- utilizatla que contiene la mayoria de 10s clatos ( 1 la varias haws de datos fiincionalrs (v. g.. para la conta1)ilidad) utilizatlas por un cwnjunto
LA ADMINISTRACION Y EL CONTROL DE LA BASE DE DATOS Funcionario ejecutivo princ~pal
....
1
Funcionar~o principal de inforrnac~on
I
I
....
de la base de datos
Adrnmistrador de 10s datos
Adrninistrador de la base de datos
tuis limitado c k programas; y, quizis, unas p e a s haws d r datos dedicadas, utilizadas para una apliracicin unica (e. g., una base d e datos de farturas de materiales). Aqui el asperto organizativo m i s importante consiste en q u r el impacto general a1 implementar u n sistema tlt. l ~ ~ de s cdatos es la centralizacicin t k una portihn significativa de 10s datos d e la firma. La centralizaribn de 10s datos mrdiantt: un sistema d e base de tlatos tiende a eliminar la p r o p i r t M local d e 10s datos y a retlucir la retlnnt1ant:ia. La propiedad y el control se transfieren a1 tliccionario de tlatos central, c p r almacena el registro d e la propieclad y el uso tle cada delnrnto tle 10s datos. Ese camhio clrl control sohre 10s datos pnede generar resistencia de algunos usuarios. Esta resistrncia purtle mitigarse etlucando activamente a 10s usuarios con respecto a las ventajas cle aprender la tecnologia de las bases d e datos: cOn~o10s puede hat-rr m i s rfrc-tivos y tfirientes en sus tareas. El ABD, en rooperaciirn con 10s cfrcctivos d e m i s alto nivel. d r h r garantizar rsta r t l u c a c i h . La tletisibn tlr implenlentar un sistema tlr h a w tlr datos generalmente exige un con]promiso de camhios in~portantrsen 10s niveles operatives d e la organizacibn. El ABD pued e fomentar la areptaricin de estos camhios promotionando el sistema de base d e datos internamente crntm d r clue comience su implementaciirn. La importancia d e preparar inicinbros rlaves del personal para la implementacibn de un sistema de base de datos t-s dificil cle sohreenfatizar. Algunos asprctos d e su trabajo actual puetlen ser "asumitlos" por
DISENOY ADMINISTRACION DE BASES DE DATOS
r l sistrnia dc bast. d r datos y las r s t r w t u r a s rstindartv d r disriio para 10s sistrmas y los programas p ~ e c l e nc:aml)iar signifit:ativamrntr. Cumplir con la preparacibn dcseatla putliera int*luirprrsrntaciones t:speciales a 10s tlirectivos. jornadas de entrruamirnto para cl personal claw, y, posiI)lemrntr. el uso clr twnsultores rxternos. Comilnmcnte. la capacitacihn es la fareta uiis importante de la prel)arati6n p r a el t.aml)io. El t~ntrci~amiento dehr d a r k a1 pwsonal una visi6n amplia dc la funcicin de un sistrte del sisten~atle informac4bn de la emprwa. asi ma de base d e dntos como ~ ~ a rintegral w m o ta11il)i~nd a r k una guia especifira con resprrto a cbmo 1~1trdeutilizarst*en las actividacles diarias drl usuario. P a r a tenrr bxito. el tmtrei~amicmtodche twnsitlrrarse cvmo un protarso contiuuo impulsatlo por nuevas cwntratacionc~~ nurvas versiones dt. software y rl tlesarrollo d e aplieat*ionrsnurvas o nirjoradas.
Estableeinliento de normas y proeedimientos La adniinistratihn efrt'tiva d r ulia 1)ase d r ~latosrecpit:i-e el estahlccimicnto de normas y prot*tdimientosuniforn~rs.Sii prop0sito cwnsiste m niantcbnert:1 control de la srguridad y la integridatl de 10s datos d r manrra rficientc. Las normas scbapliran ~rnrticularmrntea1 twntrol tlrl drsarrollo y drl uso dc la programaribn y de las operacionrs d r la l~asc.de datos. E n el area d r la l)rogran~at%n~ las normas sc estal~lrcvnpara asrgurar q u r los programas se revisen y se p r u e l ~ r nadrcuaclamrntr antes d e ponerlos en produccibn. Estas normas puetlrn r r t p e r i r una revisi6n por una srgunda part(. competente. asi cw~uotamhibn el uso de datos d r prurha para rvaluar ccimo un progrania grstiona tanto 10s datos corrcctos como 10s rrrhnros. El prot:rtlimirnto usual iricluye la doc~umrntari6ndc 10s resultados de las 1)rurl)as. En el i r e a d r las oprraciontxs, las nornias puedrn estahlecerse para maritener 10s diarios d r operacionrs d r las transaccionrs y se erran 10s procedimirntos para la correcciOn d r 10s r r r o r r s , para el tratamiento de 10s puntos de twntrol y para garantizar la copia d r srguridad y la recuprracibn. Las organizacionrs q u r trngan pocas nornias y procedimientos podrian rxprrimentar mayorrs dificultades a1 pasar a un amhiente de hases do datos, ya que las rstadisticas demuestran clue la gestihn intrgrada de 10s datos, facilitada por 10s sistemas de haws de datos, requier e normav y procedimientos huenos y comprensi1)lrs. Eaaminar las nornias en uso de otras organizaciont:~que ya utilicen sistemas dr bases d r datos puedr serlr Gtil a uua organizacibn que comirnce a impkmentar un sisteina d r base de tlatos. Por ejrmplo, las funcionrs s i p i r n tes forman el n k l e o de las nornias y 10s procedi mientos en la compafiia Zeus Corporation.
1 . Andisis y rutas de 10s irlforn~esde probkmas. En Zeus sr estahlccii) un sistrma formal para el informe d r 10s problrmas a fin tit. poner en conorinliento del ABD todos 10s errores. Los infornirs d e 10s problemas se analizan para drterminar la causa 1rrobahle dc. cada prohlema rrportado. Entonces, 10s inforrnes se p n r n a la disposici6n del dirrctivo o del grupo de usuarios apropiatlo. Cada informr d r 10s prol)lrmas contiene un diario tlc operacioties (log) completo (momento y 1ot:alizacibn clrl prohlrma) y la informaci6n descriptiva. Cada infornie requiere una respuesta formal del iniciador del mismo clue especifique cbmo se h a resurlto el problrma.
2 . Supervisibr~dpl hardware y del software. El estado de todo el hardware y el software se controla regularmrntr y se t:onfrc:cionan informes d e 10s fallos y d r Ins awiones consiguientrs para 10s directives y 10s grupos d r us~iarios.S r dehr h a w r el an6lisis pori6dico de 10s requisitos d r hardware y d r software, clue wnstituye la hase para las tlecisioues acerca d e su reemplazo y renovaticin y clue incluyr las necesitlades de mrdios adicionales para el almacenamirnto d e las bases de datos. 3 . Prueba. Las pruehas para la aceptacibn del rendimiruto s r diripen a la evaluaci6n de todos 10s procedimientos nurvob, el software y el hardware. Las comprohaciones d e las estructuras y d r la consistenria de la base d e datos se realizan sobre hases rrgularcs.
I I
I
1 i
LA ADMINISTRACIONY EL CONTROL DE LA BASE DE DATOS
367
4. Seguridad. El1 consulta cou 10s directives de Zeus. las c1asificacionc.s tic. la stynritlatl se irnplernentaron tic, inotlo qnc. itlt.ntifit*an qui. grnpos tle usuarios e s t i i ~a~ltorizadob a teller act'eso a 10s elernentos tie los tlatos espet-ifitws en la 1)ase tie tlatos > (1116 acciones p11etle11 ejwutai- sobre ellos. 1,as operaciones tiel computador se snperr isan frccnentcn~ciltc. para a s c p r a r clue estos controles tle acceso funcionan dc la forrna r c ~ ~ n t ~ i t 1 a .
5. Copia d~ segiirirlcrrl y rwliprcrcidr~.Los ~roceclirnientosde respaltio ! de recuperaci6n se pruehan regularrnente para asegnrar su eficacia en la restauraci6n tie la base tit. tlatos tlcspu4s tie cualquier interrupcihn tlel serPicio. Se h a diseiiado un pla11 para r a w s cle desastres (para r t ~ s p o n t l at ~clc=,astrcs naturales, talcs (wino inunclaciones o averias elkctrivas) ? se prueba perihlicarnente p a r a garantizar que funcione. 6. Evnliinci6rl deZ rendirniento. Se h a n asignatlo prioridades a las a c t i ~ i d a d e sclue cwnpiten por 10s re(-ursos dc la h a w de datos, talcs eorno el procwarniento cle las transacciones, la generaci6n de 10s inforrnes y el tratarniento de las consultas. El rendirniento dc1 sisterna se twntrola a traP6s de estadisticas sohre el volurnen dc las transawiones. el tiempo cle respnesta, la tasa clc errorcs ? la utilizaci6n del hardware. La entrada se olbtiene tle 10s nsuarios del sistenia para cwntrolar su satisfac-cihn cwn el rendirniento del sistema. Tan11)ii.n se registran el crecirniento y el taniafio cle la base de datos. Los programas dc eupansii)n tle archir os y las reorganizaciones cle la base de datos se ejecutan siemprc clue sea necwario. Los diarios de operaciones de las actiPidades y de las terrninacionc.s anorrnales se revisan. extra?C.nclose de ellos resirncnes que se p r q ) a r a n para la \aloraciOn cle los tlirectir os.
7. Coriy~robncionesd e integridad. En Zeus se h a n desarrollado planeb para prol)ar procesamiento la i n t e p i d a d dc. 10s datos almaccnados cn la base ( 1 datos. ~ coiirurrente (cone-nrrenc-ia). Ocwi-re cuanclo tlos o inis transat.rioiies pitlei1 aweso caont*ui-renten~eiile Como se pnede Per. una gran parte del esluerzo inPolucrado en la adn~inistrac*ihn cle la a nn niismo regislro ? d e la clisponihilidad del sistema de 1)ase de datos st. rcficrta a1 ascguramicnto d c la calidad tle la base de datos base cle datos. Esto esti en twnsonanc-ia cwn los ohjetiPos basicos del iBD: mantener la al)roxin~atlaillc.ntc.a1 integridad, la segnridad ? la disponihilidad de 10s datos. ~nisiiioticmpo. Una base d e datos tiene que protegerse d e accidentcs, tales wrno 10s errores en la entracla d e los datos o en la prograrnaci6n. del uso ma1 intencionado de la base d e datos ? integritlad tle 103 datos. de 10s fallos del hardware o del software, que corrompen 10s datos. La protec~icincontra ! la La exactitld ac.c.ic1entes. clue oc*asionaninexartitudes en 10s datos, es parte del objetiPo d e garantizar la ronsistenc~ade los datos integridad de 10s datos. Estos accidentes i n d u ? e n 10s fallos durante el proc.esarniento d e las alniacenados en el transacciones, 10s errores lhgicws que infringen la s u p o s i c i h de que las transacciones presistenia de base de datos. servan las rrstriccionrs d c consistencia d e la base d e datos ? las anomalias debido a1 acceso concurrente a la base de datos (procesamiento concurrente). seguridad d e lo, datoa. La protwciOn d e la hase d e datos d e usos ma1 intencionados o no antorizados se Se refiere a la proteccicin denomina seguridad de 10s datos. 4unqiie la linea diPisoria entre la integridad y la seguridel sistema de hase de dad d e los datos no es preclsa, una d e f i n i c i h d e trahajo puede considerarse cwmo se indidatos ante nsos ma1 ca a continuaci6n: intencionados o no autorizados. 1. T,a integridad se encarga tle asegurar clue las operaciones ejecutadas por 10" usuarios w a n correctas ? rnantengan la consistmcia d e la hase d e clatos. proredinliento3 d e 2. La segnridad se enrarga de lirnitar a 10s usuarios a ejecutar inicarnente las oper e c u p e r a c i h d e la base raciones permitidas. d e datos. 1,os medios nlediante los ruales una La posihiliidad d e fallos d e hardware o d e software requiere tambikn la irnplernentahasp de tlatos qne se ha cihn d c procedimientos d e recuperaci6n d e la base d e datos. Esto es, tienen que procorronlpido por porcionarse rnedios p a r a el restablecirniento de las bases de datos, clue se hayan corrornpidcsptdectos puecle rcstahlccerse a un estach d o p o r desperfectos del sistenia, a u n estado uniforme. Estas facetas de la gesti6n de la hase de datos se exarninan en las secciones siguientes. correrto 1 cwnsistente.
Objetivos del ABD
DISENOY ADMINISTRACION
DE BASES DE DATOS
Integridad de la base de datos llna twndicii~no IimitaciOn t p e st, a11lit.a a tin t-t~njimtl) 1)articular tle tlatos usu>rln~entt~ se tlrnomina control clr. iiitepriclad o rcstricci6n. t'or ejeml)lo, 10s valor?.; tle las lioras tral ~ a j a d a sen una semana ~ l o d r i a nlimitasse a hO horas. o mtmos. Los twnti-oleh (It, intrgritlatl se disedan para minimixar 1as inconsisttmtias tlr 10s datos: ocasionatlas twautlo 10s usuarios o los prograinas tle al)lit*atihntaomcXten rrrores c.11 la entrada tlr tlatos o t~nnl)iantlo10s tlatos tlr la hast. de tlatos. Al i n q ~ o n wrestrit~ciont~s s r i n i n t i t ~so1)re ~ ~ los tlatos, cs ~ ~ o s i lclue ~ l e t.onfieums razona1)lrnwntt. en tluc 10s rontenitlos tlt. la I)asr tle tlatos son corroctos >- clue no I-xisten~ I I I ~ I I wcnencias tbntre10s tlatos. .hnquc. lab wstrit*c-ionrsde intrgridad sc ;rl)lit.an a totlos 10s ~ n o t l r l t ~ties 1)ast.s dt, tlatos. (e. g.. sr I ) i ~ r d e ;rl)lit*ain restrit.ciones tle rrtt~nc-iOnt1v conjunto cw las rrtles), la ~nayoriade 10s tltw~-rollosat*tualer:sc aplican al niodrlo rt.lac.iona1. '\ 1)artir de a l ~ o r a el . rstudio stxc e n t r a r i tsn ello. En la trrminologia del motlelo rt4ational, 10s cwntro1t.s (11.ii~trgritlatlstbl)~iedtmaplivar a (1) atril)utos intlivitluales. ( 2 ) la intersrlati6n rntrt, (10s a t s i l ) ~ ~ t tlifert.ntes os (qnixbs la en relationes tliferentes). o ( 3 )la relati6n entre tnldas d r nna o niis taldas. Itlt~aln~ente. apliracihii de las restrictionrs dt. integriclacl delwria rfertnarsr 1)or el SGHI) auto~niticas clue no satisnirnie ceda \ r z q w scl iutrotluzt*auu nuevo c~lrmentode los datos. ( 1 ~ 1tlatos f'agan las rrstriccioiit~sesta1)letitlas se rrt-hazarian. por ejrmplo. por mtdio dtl 1111 m t m a j r tbii la actualidad pocoh SGBDS no of'retwi inis true c a l m de error.) Ursafort~~nadan~t.nte. dadrs muy limitadas ~ ) x -i~11l)ont.r a restric8t.ionl.s. Una ;dtrrnati\u twnsiste r n e s c d ) i r Iwogramas tie aplit~wi6n1)ara controlas la entratla de todoh Ios (laios a nna I)asr de tlatos. Esto pelmitc mayor flt.xil)ilitlad !alcancr a1 al'licar tliferentes ti1)os tic. srstriwionc*~. Sin ta~nhargo.el ~lrsarsollotlr tales 1)rogratnas lmrtlr t-onsnniir gran tieml~o.A vecw 1)l~edtmutilizarsr a n h o s m6todos conjuntamtmte. El SCBD sr utilizn 1)al-ac.xtentler SII cal)atitlatl l w - a 1;) supervisiim (11.las I-estrictionrs seniLi1ticas; entoncra. 10s 1)i-1)gramas (11. al)lit*acihnst. tlesarrt~llanp a r a las uetwidat1c.s q i ~ vno p d a n s r r inant.jadas pot- 1'1 SGBD.
Restricciones de integridad en SQL Estas se ti-ataron con cirrto detalle en 10s Cal~itulos7 y '9.
Restricciones de integridad en Query-By-Example dlgunos sistemas t p e utilizan t.1 Qnt~ry-Hy-Exarnl,le(QBE) inantirnen una tahla d r restrircionrs para cada selac~i0n.P a r a t w a r nna restric.ci6n sohrr una relacibn K. stLrsea u u a s e q w i f i c a r las rc.strictioesqiieleto dr tahla para K. Se introtlnt.rn una o m i s l i ~ ~ r lm-a nrs. Conio sc mnrstra r n la Fignra 11 3. I . CONSTR ( I . , U . ) . I .
se introdnw juhtamentr d r l ~ a j odel n o i n h e de la relac-ibu INVENTARIO.
INVENTARIO I. CONSTRU (I., U.).I.
NO-ARTICULO
NOMB-ARTICULO
BALANCE
>=o
LA ADMINISTRACION Y EL CONTROL DE LA BASE DE DATOS
I . CONSTR ( ) . I . < r e s t r i c c i o n e s >
La 5renntla I. 51%rrfirrr a las rntradas crnr drfiurn la rc~stric~iim. I,a liita (It- c.o~~(liciol~rs i ~ (rp) a?r a Imrrar)' y I;. (1)iu.a nctualizar o motlificnr) :'. p n d r c:ontrlic.r I. (1)ara i ~ l h ~ ~ . tD. o c.nal(luirr c~)1iil)inac.i611 tlr 1.11;ts. En la F i p r a 11.3. s r I I I I I ~ ~ S ~laI Yrrstric.ciOn ~ (I(: 10s halaw w s 11t.1 in\ rntario a nilrnrros positi\os r n la c d ~ u n n aB.4L.4NCE. CONSTK (I., C.) intlic.;~
rntrada rs l ~ n acwnitantr. rntowc-s la t u p h (juc stb inwrta, q n r i t . 1)orra o clur s r actui~liza clrlw t r n r r tlirho \ alor twnstantt, r n ric. atril)uto. E n la Fignra 1 1 . 3 i r m w i t r a una rntra. dc vornparnd a tlv la forma k c , don& c rs m a c.onitantt>(0) y X. r i 1111 o p t x d o ~'1ritn16tic.o ri6n (> =). Esto indica q u r la c*onrponrntchc.orrripondirlitr dtb nna t u l h tlrl~c.cSncont~-arir r n la rvlat*i6n 6 twn rchslwt.toa c. sieinl)rr tluchla restricc-ihn i r apliqur a la tupla. I
t.011 1.1 ('arii('trr (I(' inl,ra! atlo: aml)os c-aioi s i g n i f i t ~ ~cjur n el \ a10r tlr r s r a t i - i l ~ ~~t )ou r t l r s r r ar1)itrario. P;stu carac.trriitit*aw utilizn r n t.1 i c y ~ n d orjrnil)lo (11%QHF:. en rl cluc5i y ~i r tlrira pcwuitir Iln cw4ito d r \ r n t u a iiicXnoitlltr r l clicwtr al)at-rzt*athnla 1-rlac.ih11(:RED1 TO- \I'KOB4DO. En la F i g w a 11.4 w niuestra r t a roitriccii~?tlr intc.gritlat1 utilizautlo ! (;REUlTO_1PROB WO ! i r ()BE. S r iolic*itaii111sricl~lrlctos\ E:NT1S-4-CKEI)ITO Y;I
Procesamiento de transacciones Otro cwnrrl~toascwiado con la intcgritlad tic la Ijase clr datos sts drnoniina transac~iiintlr la I m r dc clatos. ljna trausacci6n c.s una unitlatl dc programa cwya c.jvc.wihn c a o n s r r u la r n un estado c*onsistenteantrs tlv twnsistr~iciad r la basr tl(. tlatos. Si la h e de datos (41 la c-jt~uci6nd r nna trilnsat*tiOn, elltonws la 1)aw clr tlatos t l d ) r c.ontir~uaren 1111 rstaclo c.ol~sistrntc:desp116s d r su c.jrc.nc.ihn. P;wa asrgurar (:stas cwndiciones. las transaccionrs tickntw 111ws r r ati)micas. lo (111~sig11ific.a ([nt' las acciones asociadas cou la tra~isac-rihno s r rjrrutan totlas hosta c.1 final o ningima se rjwnta. P o r rjemplo, una transaccihn para regist r a r r l pago d r 1111dicmtc. tlr $500 puvde incluir las ac.c.iones siguirntvs:
tra11sacci611n~bmica. Ijna transawii~nc.11 la rnal totlit* las ac.c.lonc%s asoriutla~cwn rlla sc3 t.jrc.nlarl t.on~l~lrtarnc-r~tt. o ningnna sta rjrtwla.
I. CONSTRU (1.).1.
/
nornbre
I
DISENOY ADMINISTRACIONDE BASES DE DATOS
Quizis rl scguntlo t)aso fa&. Eri~onws,las twentas cjuetlarian fuera dc 1)alanc.e. La F i g u x 11.5 muestra q u I sucrtle rtlando estas at~cionrssr tjrtwtan conlo nna stbric. tle Ijasos athmiva h i c a (11).El p i ~ t o i n d r l ~ r d i r n t t ~(a) s y ellando sc rjc.cutan conto una transac~i611 c4aw csti en cjlw cnando las at*cionesse t.jrcwtan automiticamtwte y una M a , cntonces, ningim t.ain11iosr aplit-;I a la I)asr d r datos. Sc. (lice q u r tlic~hastransacc~ionesllau ritlo tw~rrlaclas. P a r a soportar rl 1)rotwamiento tle una transaccihn, un SGBD dtslw rnantencr un registro tle la transaeci6n con c r d n carnbio tiutLse hizo en la 1)asr clr datos. La nianera en qu(i estt" se logra cwnsiste (w utilizar un diario clc operat:iones (lop). Cuautlo uu clirntc h a w un pago d r $500 sobl-I*la vurnta. las awiones d r la trausacci6n i n r l u y u (1)at*rrtlitar la cuenta drl clientv y (2) d e b t a r la ruenta ell raja. Unrantr la e j e c u c i h tlr la trar1sacci611. diario de operaciones. todas las operaciones tle t w r i t u r a dvl)en tlt.Ieprsr liasta clue la hltin~aartihn tle la tranlrn registro tlr totlas sac.ribn haya sido ejecwtatla. IJas ac~ualizacionrsresultantrs se rogistran eu el tliario dc las tratlsact*iones y 10s operaciones de la t r a n s a c ~ i 6 nCuando . todas las awionrs hayan sido ejrcutatlas. sc utiliza t,alnl)ios t.01.reh11oti11ir11tcs la inforniacibn tle ac.tualizacihn rrl el diario tle operaciones para escri1)ir la inf'orn~aribn en la haw tlc datos. ac.tudiz:rtla en 10s registros apropiatlos ( I t s la hasr tle tlatos. Si (4 sistrlna falla antes clue la ~r.answc:ihse c'jrt.utc: cwn~~lrtarneritr, la iuformaci6n tlel tliario (It: opcracioncs nunca se escril~etbn csos registros. Sr profuntlizari n ~ i sacrrca tle este tliario tlc oj1cri1cionc.s en la tliscusihn de las 16t:nit.a~de retwprrari6n.
Control de la concurrencia S u p n g a m o s clue la Liga tle Mujrres h t a n t e s (LMV) en Smithvillr tiecitle trner m a Cena de .lamb y P a w . La CLlnara II~. Comrrcio (CC) t:n el eerrano Johnstowr~tlrcitlr qne s uiia Crna (It, J a m h y Haha$. 2 4 ~ h a s rs tam1)iGn tirrnpo tlr preiniar a S I N n ~ i r n ~ h r o(.on organizationes contactan (.on rl crntro tlr tlistriI)uc~ii,ntlr Alinirntos tlc la Ciutiatl. La 1M\ qnit:w 25 janiones; la CC quicre 35 jamonrs. Amhas 6rtlenrs sr transmitrn al sistrma tlr A
M
CUENTA CLIENTE_A/R CLIENTE N O
123
1
Resultado CUENTA CLIENTE AIR
BALANCE
......
I
1
1000
....
I . Pago acredimdo de 500.
CLIENTE N O
1
CUENTA EN CAIA
..........
......
1
BALANCE
500
....
[
CUENTA EN CAjA
....
BALANCE
1
1
1500
..........
2. Fallo dei sistema
BALANCE
1
1500
1
....
(a) Resultado de la aplicacion de las acciones independientemente CUENTA CLIENTE N R CLIENTE N O
1
123
1
......
Transacc~on
Resultado
I . Pago acreditado de 500
Ningun carnbio en CUENTA CLIENTE N R
BALANCE
1
I
1000
CUENTA E N CAJA
..........
BALANCE
1
1500
1
....
I
1
2. Fallo del sisterna
(
Ningun carnbio hecho porque la transacion completa no fue exitosa.
(b) Resultado de la aplicacion de las acciones atomicamente
N~nguncarnbio en CUENTA EN CAJA
LA ADMINISTRAC~ON
371
Y EL CONTROL DE LA BASE DE DATOS
hIocpw. lnipitle el aweso a 1111 registro cle la haw dc tlatos poi. una segniida transawihn hasta clue la p r i i n c ~ atransac.ciOii haya completado totlas siis aeeioncs.
h a w cle tlntos del dephsito rc.gional a1 mismo tirmpo (Figlira 11.6). La ordim ilia la LMV Iliaga llna f i - a c * c h(le un segundo antes (pic la ordcn dc la CC. 1Jna i m a y n (lid rrgistro tle i n \ e n t m o para el j a r t i h sc colora en la zona de trahajo tlrl cwniputatlor. El rcystro tlc in\entarlo nluestra 100 jamones i-n csxistimcw. P w o antibstie ( p i *i v cwrnldt-tc-la t r a n s u la , t r a n s a i ~ i 6 n(,(: ol~t~vnctam11ii.n iina cihn 1,MF j el registro de in\c.ntario i t . a r t ~ ~ a l i w W 100 jamont1s en t x ~ i t v u c w .(pw st- ( d o copia del mismo registro dt*inventwio ~ I muestra ca en su zona de trahajo. 4ml)os rvgistros inlicitran i ~ u vla ordim can cmc.st16n p u r t l ( ~cortlpletarsr. r o iri\ent;u.io Sulwngamos q i ~ ela transawibn LM\ sc. c.oniplrta primer o. El r e ~ ~ s t tle rwsc*ritomurstra clue quetlau en euistencin 100 - 25 = 75 jamones. 41 c~om1)lrtarseIn trnnsarrihn (I:, (4 rc.gistro tie inventario se sol)rrrscrilw con 100 - 35 = 0.5 jn~iwnrsen rustellcia. I N q i ~ erealmente ha sncwlido cs qiic stbhan twdido 60 j;rmones de un;l eaistencw t k 100. tl(.jando solamente 40 janiones ell el dephsito. p r o el halance de i n ~ e n t a r ~tlel o ylstema nmcbstra6.5 jamonrs disponihles. iMontones d r problemas! Estr rjrniplo ilnstra la n a t w raleza funtlamc.nta1 del procrsaniirnto concurrentr: Si dos o m i s usuarios tienen acceso a la base d r tlatos a1 ~iiismotiempo y las transarciones se entrecmizan (c-omoen el ejemplo anterior). yiieden ocnrrir rtwltados inclcwahlvs. Una manera usual de impedir 10s problemas de la concnrrt.neia se logra in&intc. la aplicaciOn tie una simple politica de hloqueo (lockiirgpolic~).En el ejeml)lo l)rcwvltmtc., la primera transai*c.iOnclue llrga hloquearia (lock) (inqwdiria r1 acceso a cwalqnier otra transaccihn) el registro de inventario cie 10s jamonrs (Figura 11.7) hasta clue el prowsamitmto LMV I
ciudad
I
LMV ( I ) Leer el registro de inventarlo de jarnon
( I ) Leer el registro de inventario de jarnon
(2) Sustraer 25 jarnones
(2) Sustraer 35 jarnones
(3) Escrlbir el nuevo registro de inventario de jamon
(3) Escribir el nuevo registro de inventario de jamon
Orden de procesamiento por la CPU
1 1 I
( I ) Leer el reglstro de lnventario de jarnon para LMV (2) Leer el reglstro de inventario de jamon para cc (3) Sustraer para LMV ( I 00 - 25 = 75)
(4) Escribir el nuevo registro de inventario de jamon correspond~ente(EXISTENCIA = 75) (5) Sustraer para CC ( I 00 - 35 = 65) (6) Escribir el nuevo registro de inventario de jamon correspondiente (EXISTENCIA = 65)
DISENOY ADMINISTRACIONDE BASES DE DATOS LMV
--
de jamdn EXISTENCIA = 100 Bloquear el registro de la base de datos
Transferir una copia a la CPU
Solicitar la Copia del registro de la base de datos
I
Esperar por la liberac~on del registro
--
k-! Sustraer
Escribir el nuevo registro EXISTENCIA = 75
A Liberar el
Transferir una EXISTENCIA = 75
I
Transferir una copia a la CPU
---- - -
1
,
4
,
---
1 Fin de la Transaccion
Registro de inventario EXISTENCIA = 40
Escribir el nuevo registro EXISTENCIA = 40
I Fin de la Transacc~on
III. la prirwra t r i ~ n s a t ~ t i isr~ nc*oinpl~~tc.. Cuaiido nn registro se 1)loquea 1)or nn ueuario. ningiui otro usuario 1)uedr tcbiier ac-wso a 61 1,;u.a su artnalizacicin. E n cbstecaso. la t r a n s a r r i i ~ n CC no potlria haher tenitlo a t w s o a1 I-egistro trasta t p r la transac*tihri1,UV st. ronil)l~.t;~ra. A % n n c leste ~ ~ ~rnfoqne ' sva sin~l)lcby iltil. no es scytro. Supongamos clue 1;1 LhIV y la CC: cptieren ortlrnar jamhn y Iuvo (Figlira 11 .ti). S ~ ~ ~ w n g a nt11w t o s la transarcihn LM\ piclc 1)riniero (4 rrgistro d r invrntario d r 1)avo. Coino 6ste e s t i l)l~)clneado.la trankac.cihr~CC tiene aweso prinirro a1 rrgistro tlr invrntario tle jami~n.h i . cstos registros estirl l~loqucados a los c.fet.tos tle su us11 por otros usuarios. En ~)oc.osn~otrit.rito~ tanto la t~-a~isac&)iiLM\ ro1110la CC h a h r i n c~~iiilrletaclo rl l)roresaniic~r~to de los registros d r invcntario d r jamhn )tlr 11avo. respectivamente, y rstarhn listos p a r a el a t w s o a1 otro registro. Sin c.nil)argo. n i l ~ guno clc los dos usnarios ha ron~pletados ~ transawihn, t or lo q u e 10s registl-os clue h a n atwdiclo 1 ) c r m a n ~ ~ : el)loq~wa~los. n Est:~niosant(, una situacicin dc i n t e r l ~ l o q u e o(dercdlock), ~ : nla qne ninp'ui nsuario purtlc: prosrguir. Existrri varios n16totlos tle t r a t a r el intrrl)lotpwo. Un rnfoqne c*orlnisteen ortlenar 10s rrgistros c p e se hlotjncan. Esto es. si se tirne acceso a 10s rrgistros A y B. siernprr tierieii que w r at.redidos 6.n ese orden. E n el ejrmplo prrcwlente, las solit:itudes tlr 10s rrgistros de invrntario de jamhn y d e p v o podrian reqiierir, en primer higar, el arreso a1 rrgistro de invrntario dr j a n h y, en segilndo liigar, a1 registro de invrntario d e pavo. Si asi fuera. c,s
LA ADMINISTRAC~ONY EL CONTROL DE LA BASE DE DATOS
Sol~ccarbloqum p a n el regmro de lnventarlo de pavo
J Registro de invenwio de pavo b l o q d o
de jarn6n bloqueado
Soliciw bloqum para el registm de
Soliciw bloqum para el regircro de
Erpem por la libescih del regktm de mvencario de jam6n por pane de CC
Erpenr por h lhberadan del r e p r o de i n v e m depavoprpmedeCC
I
Espera
;-
cle interbloqueo. Clna comlwo1)aribn prrihdica del SGBD para determinar si la cola de esprra para alpunos rrcursos rxcetle nn lirnitc predeterminado. hloqueo en dos faaea. Un m6todo de eontrol del procesamiento concurrrnte en el cual todas las operacionrs de bloqueo prrcrdrn a la primera oprraci6n de libcraricin. hloqueo de lectura. El usuario tienr drrrcho a leer el registro dado. hloqueo de escritura. El usuario tiene derecho a leery a actualizar el registro dado.
para el registro de inventario de Jamon
Espera
I
-;
ficil ver que nunra podria oc-urrir una situacibn de interbloqueo. Cuando la transawi6n LMV terminc el proresamiento, todos 10s rrgistros accrdidos drlwrian ser lilm-ach para su uso por la t r a n s a r c i h CC. Sin rml)argo, csto puede demorar las opcracionrs. puesto que la espera de las transacciones purtir convrrtirse en un cuello de botrlla srrio. L\clrmis, si una transaccicin tirnr clue esperar demasiado por la lil)eracii,n de un registro. sr puede cancelar y sr 1e l)urdr solicitar que lo intentr nuevamrnte m i s tardr. Esto tirndr a formar en los usuarios una pobrr opinibn sobre el sistema d r base d r datos. Algunos SGBDs rralizan la deteccion d e interbloqueo t:omprot)antlo rrgularmrntr si la cola tle rspera corrrspondirntr a un registro o a un recurso es tlrmasiado larga. Otro rubtotlo d r drteccibn se hasa en trazar (litrralmente) una fleeha desde la transaccibn a1 rrgistro qur r s t i sirndo consultado y, entonces, trazar nna flrcha drsdr rse rrgistro a la transarcibn que lo utiliza actualmmte. Si el diagrania tiene ciclos, se de.trcta el interbloqneo. Esto sr ilustra en la Figura 11.9. Los procwlimientos tlr detrrri6n d r intrrhloquro c:oniplrtan su funcihn cancelando una de las transarciones y avanzando a la transaccibn signirritr en la cola de espera. Otra opci6n para controlar el tratamicnto concurrente rs el bloqueo en dos fases (two-phuse locking). Se dice que una transacci6n sigue el p r o t o d o d r bloqueo en dos fases si todas lab operaciones tlr t)loqueo (bloqueo de lectura, bloqueo de escritura) prerrden la primera operacicin d r desbloqueo en la transaccibn. El bloqueo d e lectura permite leer un registro, mientras que el hloqueo d e escritura, como algo m i s que el bloqueo de lrctura, permite tanto la lectura como la actualizaci6n de un registro. Se ha probado que el bloqueo en dos fases garantiza la serialidad (seriali;ability), que significa que las transarciones puederi ejecutarse de tal manera que sus resultados son los mismos que si las acciones de cada transaccibn se ejecutaran en secuencia sin interrupciones. Sin embargo, el bloqueo en dos fases tiene su precio. Puede conducir a interbloqueo a menos que se utilice conjuntamente con un protocolo de prevencibn de interbloqueo. Como un ejemplo, en la Figura 11.10 (a) se presenta un procedimiento de bloqueo en dos fases que conduce a interbloqueo. La transacciOn 1 ( T I )adquiere un bloqueo de lectura sobre J (Jam6n) a1 mismo tiempo que T2adquiere un bloqueo de lectura sobre P (Pavo). Dos pasos mis adelante, T I y T2buscan bloqueos de escritura sobre 10s registros de la base
DISENOY ADMINISTRAC~ON DE BASES DE DATOS
Esperando por REGISTRO DE LA BASE DE DATOS
prt.vrnt*iOn tlr interl1lot1nw. Se 11:ha aiia~lidot.1 rrtpisito tlr ifne cxda t r a n s x r i h n I1loc1ure p r adrlantado todos los rlen~rntosdt: 10s datos qut: nrwsita. Si cwaltjuit~ra(It, 10s ele111rr1tos tlr 10s clatos no In~etlt,ol)tt.~irrsr,I-ntonws ningnno (It, 10s articdos st, blotpea y I n transatvihn sr ptrnc. r n eslwra hasta tintb todus 10s artivulos (jar sr nrcwitan r s t h ~ l i s p t ~ n i l h . En la Fignra 11.10(1)).se snpontbqntb1' pdiclo de T, 11a romcwzado nn n~onivntoantrs qnr no pncvle 1)lotlncw todos los t~lrmcwtostlr 10s tlatos c p r recpirrc. hasta tllw T I rl tle T,. 7'., li11c.r~;;J y a P. I)? ~ s t manera. a se evita (:1 interhloqnro d r la F'ignra 11.10(a): sin rmhargo, tw este rjt.mplo rl resultatlo ha sitlo s i ~ n ~ ~ l e m reln prcxrs:~inirntc, tr d e las transawitmrs 1.11 serie. Esto rs t*sl~ec*ific.o 11ar-aestc. e j r n ~ l ~yl opodria orurrir sit.rrq)rr qne 110s transat-cia11t.s c o n ~ p i t a por ~ l rxac.tan~rntrrl mis~noconjunto tlc registros. Valores del lnventar~ode
Valores del lnventario de Pavo (P) y jamon 0)
T Bloquear-lectura (J) Leer-elemento (J)
DENEGADO J = 100 Bloque~escritura(P) DENEGADO Desbloquear CJ) P = 30 Leer-elemento (Pi T=T-25 Escribir-elemento (P) P = 5 Desbloquear (P)
-
-
-
Bloquear lectura (P) Leer-elemento (P) Bloquear-escritura Desbloquear (P) Leer-elemento (J)
(J)l
T=30
J=j-25 Escribjr_elemento (J) Desbloquear (J)
-
-
Valores del lnventario de Pavo (P) y Jamon U) Bloquear-lectura (J) Bloquear-escritura (P) Leer elemento (J) Desbloquear (J) Leer-elemento (P) P=P-25 Escribir elemento (P) Desbloquear (P)
Pavo (P) y jarnon (J)
Tz
-
T2
Valores del lnventario de Pavo (P) y Jamon u)
(esperando) J = I00 P = 30 P=5
Bloquear-escritura (J) Bloquear-lectura (P) Leer-elemento u) J=J-25 Escribir elemento 0) Desbloquear (J) Leer-elemento (P) Desbloquear (P)
J = I00 J=
75
P=
5
LA ADMINISTRAC~ONY EL CONTROL DE LA BASE DE DATOS Valores del lnventario de Pavo (P) y Jamon U)
Valores del lnventario de Jarnon U) y Carne (C)
TI I
Bloquear-lectura U) Bloquear-escritura (P) Leer-elemento Desbloquear (j) leer^-elemento (P) P=P-25 Escribir elemento (P) Desbloquear (P)
U)
(esperando)
J = I00 P = 30 P=
5
Bloquear-escritura (j) Bloquear-lectura (C) Leer-elemento U) J=J-25 Escribir elemento CJ) Desbloquear u) Leer-elemento (C) Desbloquear (C)
J = I00 J=
75
C = 60
En In Figura 11.11 se mucstra un ejemplo tlemostrativo dc ol~eracionesparalelas clue son serializat~les.En este caso, T , necesita solamrnte esperar que T Ilihere el a r t i c d o I . Entonws. 7'2, puedr b1oqut:ar totlos 10s registros clue nrcesita para su proccsamiento. y :rml)os 7', y 7 , puetlrn prot:etler e n paralelo. Los rrsnltados tle T I y T., son los misinos quc si se procrsarnn en st:rie.
Seguridad de la base de datos Los prohlenias (it. ir~tegridatld r la h a w d e datos puedcn ser desafiantc*. p r o en g e n t ~ a l son m i s ficiles tle rnanejar q n r el ac.c*tL~o ma1 intrncioriatlt, a la hasc tle tlatos. clue i n c h y e lo siguit~ntc~:
1. El latrocinio tle informaci6n. 2. 1,a inotlific~ac~iOn no autorizada tlt. 10s tlatos 3. La destruccihn no aiitorizada tle lo* tlatos. L4si, 10s 1n6totlos tlc scgnritlatl de la hasc tie tlatos se enforan hacia la prvvenciOn tlel aweso a la has(. tle tlatos de usuarios no autorizatlos. Drl)itlo a clue las cw-acteristicas tit, 10s S(:BD clue farilitan el accrso y la 1nanipnlaci6n d r las bases tle datos taml~ibnahren sus lluertas a intrusos, la mayoria tle 10s SGRDs inclupm hrrramientas tlr segnritlad clue permiten r l acceso a 10s tlatos iiniciunrnte a 10s programas o a las personas autorizadas y. ademis, restringtm 10s t i p s d r procesamiento q u r se pneden realizar una vtaz q u r sr t e n p el acwso.
Autentificaci6n (Autenticaci6n) El aweso a la base tlr datos c:omunmente rrquiere la autorizari0n y la autentifiratihn tlrl usuario. P a r a la autentificacihn tie1 nsuario, el primer nivel tlr seguritlatl estn1)lrce clue la 1 ~ e r ~ ) n a qsolicita ue la cntrada a1 sistema rs un usuario autorizado. Su itlentidad puedc rstahlecrrse niediantr (1) algo clue el usuario cwnoce, corno un numero tle ac:c:eso y una contrasefia, (2) algo clue el usuario posee, coma una tarjrta plistica d e identificaci6n, o (3) una reprrsentacihn fisica drl usuario, conio su huella digital o 1111 registro d r su voz. Las contrasefias, rvidentrmente el nibtodo de seguridad m i s comun y frecuentemente menos caro, son adet.uadas para muchas aplicariones. Sin emhargo, una vez que un intriiso potential t.onoce la longitud d r la contrasefia y el alfaheto del clue se deriva. las rontrasrfias 1)nedrn generarse r intmtarse una vez tras otra en cierto peritdo de tiempo hasta que rventualniente se ohtenga el at:wso. P a r a algunos esquemas d e contrasefia, el tiempo proinetiio requerido para rllo puetie ser suficientrmente largo como para desalrntar a 10s intru-
DISENOY ADMINISTRACION DE BASES DE DATOS
sos casna1t.s. Sin rrnharq). si la ganancia 1)otrncial es snG~ientemc.ntvgrand(,. el ABL) t l r h idear nn c.scjnrma dt, contraseiia clue no I ~ r i n d ojwrtunitladrs r a 10s intrusos. El t ~ s c l n r ~ideal ~ i a d r t:ontraseiia limita los accesos no autorizatlos al sistrma. weantlo una contrasi.iia t111ccs tlificil d r adivinar. perol no 01)staute~f i t d de rctwrdar ])or el nsuario. Para algunas q)litwiones, I)utde her s u f i t h t e c.sp:rific.ar parinwtros dt*contraseiia. tales c.omo la loupitud tic. la contraseiia y el d f a t ~ e t oa ntilizar p, rntoncrs, tlrjar clue rl usuario idce sn twntrasc.iia. Si se utiliza estc enfotpe. pucdr ser at-onsrjatde non111rar un sqwrvisor tlr contrasrfias para asegurar clue los parimetros de cwntrasefia estin satisfechos y clue se evitan las tlnplieationc~s. Tanto si los usuarios selrt.tionan sns contraseiias propias cwmo si se cmitcw llor una autoritlad central. p r d e s r r htil tener un s n ~ r r v i s o rt j t ~ crnantt3npaun ~ listatlo cifrado tfe totlas las c,ontrasriiab sol)re un tlisw, arcwii~lesolamente por t w supt~rvisor.Atlen~is. c ~ ~ a n tnn l o empleado termina su caontratoo s r transfierr a una n w v a iirra func.ional, d e l w rian t:aml)iarst. totlas las wntrasriias a la5 q u r tnvo acwso tlivho mmpleatlo. Esto es i m p tantr, !a clue ~nuchosex-emplrados tlewontentos sr han tledicatlo a salwtrar los sistemas de SIIS anteriorrs emprrsas. Para sistemas sumamentr sensihlrs. tle1)t.n c:onsitlrrarse esquernas n ~ i ssofisticatlos. [In escptbn~a tlr rstcbtilw llrograma (11 computador para llevar a rabo una scsihn cle preguntas y respuestas con el usuario. aprovec.hando las p r r p m t a s y las rrspucstas qnc. dicho usuario ha almacenado antrriormente en el sistema. Las prrgnntas son c o m i ~ n m m t clt. r naturalrza personal1 de modo q ~ i res rnny probable clue solamente un usuario vilido las contt1ste correctamente. La seencncia de 1)reguntaspodria ornrrir como st, incfca a continuacibn:
Cuando el usnario pide accrso y rntra u n niuuero personal tlr itlentificxihnl (:I computador Ir plantea preguntas aleatoriammtr seleecionadas a partir dt. 10s datos almacenados. La selecci6n tambibn purtie variar tle tiempo en tiempo para limitar la ~)osil,ilidatltle q n r otras pvrsonaspurdan ohservar las respurstas a todas las p r t p ~ n t a s . O ~ r omCtodo m i s para la protcw5hn contra 10s accesos no autorizados consiste en el uso de un algoritmo prwiamente acortlado. Ksto rs. el computaclor d a a1 presunto usuario un nhmrro de autrntic.ac:iSn ele@tlo a1 azar y ~ ~ i una d e respuesta. El osuario aplica nna transformation, previamente ac.ordada, sohre el nilmero y transmite el resultado. El c:oniputador twmpara c.1 valor recihido con r l clue ha calculatlo. Si aml)os coinciden, rntoncw se otorga el act-eso. Esto es particularmrntr util si un posiblr intruso hubiera transgredido nna 1inr.a cle comunit*acibn.Toclo lo que sr puetlc ol~servarr s r l rrsultado del algoritmo aplicatlo a1 ni~mc.ro.La dificultad de detlucir el algoritmo a partir de esta inf'ormacihn r s enorme. El control drl acceso se perfccciona si todas 10s intentos d e acceso denegados protlu(:en una entratla en el tliario d r operac:iones y un tiempo d e retraso (esto illtinlo incrementa el tiempo requerido para ohtener un arccso no autorizado). El sistrma dehe trrminar automiticamente la comunicaci6n con usuarios que w a n incapaces d r suministrar una contrasriia vlilitla drntro de un tiempo detcrminado o en un cirrto ni~rnrrode intmtos. T a m b i h es deseahle clue las contraseiias no se visualicrn en la pantalla y que 10s usuarios no descnid m el sistema drspubs tlr rstal~lecidala comnnicacibn y rec:ibido el permiso d r acceso. Un aspecto importante de la srgnridad dr la base d r datos r s tleterminar t:uindo la antenticaribn del usuario es suficicntc. por si sola y cuLndo se debe comhinar con la idmtificaci6n especifica drl terminal. Con la inc:idencia crecirnte de 10s intrusos ilegales, Ilamaclos harkers. ha hahido c-asosen 10s que la autorizacihn tie un usuario sr satisfaw por alguien que no se coy~unicadesdr ninguno d r 10s trnninales legitimos del sistrma. Aclrmis, a veers se conmutan mec.anismos falsamrntr conectados. El ruidcr en una l i w a tle comunicacibn purde ocasionar que un mecanismo de llamada srlectiva conecte incorrectamente un dispositivo debi(lo a una modificacii~nd r la direccibn. Con frecuencia tales errqres no se detectan, lo que degrada la fiahilidad y puede comprometrr la s r p r i d a d . Asi, la identificaci6n automitica del terminal sr recomienda siempre que se utilice un equipo d r telecomunicacibn conmutada.
3 77
LA ADMINISTRACION Y EL CONTROL DE LA BASE DE DATOS
Iltcw~;rtivalnrntr.la intrnhihn c~tc.ruaintl(wal)lv l)iievlt*prtw~nirsc.iiiip1c.mcmtantlo ~iO~~ proct?dur(?s). Coil wta ('stratel ) r o c ~ c ~ c l i ~ l ide i c ~I ~l a~~t~~~sa t I a / c o n t e s t a t((li(~l-~~l)/c'(~ll-O~it;h: gia. ;rlg~~icw intcwtanelo ol)tener el ac*cLeso a1 s i ~ t c w asuiiiiiiistra la informatihn newsaria tle autentitwi0n. El sistnna e n t m t w c*llelgay rebierte la llaniada a la localizaci6n tle un ter~iiiiialItyitinlo. s ~ ~ p o n i e n t t111e l o h e l'ue clado. De esta Inanera, si otwrrih una intrusihn, t i e w e111e~ cbmanal-tle 1111 1nicrocom1)utatlo1-ltbgitiino tie. la red. Sin tw~hargo,las t.al~acitlatlc~s s t i ~ t * i irepresentar ~~i un gasto adit-ional signific'ativo. d e l l a ~ ~ ~ a d : ~ / c ~ o n t t ~ pneden ptwnitientlo El atwsso no antorizado a1 sistema l)iitd(: twntrolarstx adic.ion;rl~lic.~~tc~. que dhlo tivrtos t i p s de transartiones se transmitan desde un trrniinal tlrtrrniinado. RPStringir c'iertas trriiiinale:~a c.jcc'utar nna gania estrecha tle tareas puerle ser un cwntrol el;+ tivo y firil d e al)lit*ar.P o r cjt*mplo,las terniinales en i r e a s relativamrnte pill)liras putden limitarst: a fi~iicit~nes tle sOlo-lertiua (rtwl-only).
Autorizacicin y vistas ( n sul~c-onju~lto wstriugitlo (le una reh1i011altt~at~enad:~.
Ina vilita tbsu n iiitdio tle proporcionar a1 usiiario un inodelo l~ersonalizatlotie. la 11asv tle tlatos. Es tani1)ii.n luia ~ n a n n - ailtil de lin~itarel atnc*esode un usuario a dibersas p o i ~ i o n e s tle la I~asede datos: Los tlatos que nn usnario no ueresita ver son siml)leniente ocultados por 1.1' I.'~ a t a Esto . siiiil)lific~at.1 use del sistema a la vez que promueve la seguridatl. Las ~ i s t a se s ~ ~ l e t reprewntar le~~ 11or la c.jt,clic.iOn de restriccio~ies, p~-oye~ciones y r e u ~ ~ i o n e(joins) s aol~rt.las r c h % m e s existmtrs. El usuario potlria taln1)ii.n cstar rcstrirlgido a v c m ~ aprtr e11~~ u l archc*iOnexistente o a ejecwtar rt.unionc.s sohrc*rt.lacioncs t l ( ~ r u i i i ~ a d a s . La cwaci011 tle vistas diferentes 1)ara tliversas (*lasestle usuario?i logi-a. auto1nhtic.ar i tler nirg~leel acrescr tlii-etanleute. nn alto p x d o dv control d r acwwl. :1nnq11e a Itn ~ r s ~ ~ a se to a iina rc.lacihn Ijase. el usuario 1)uede ttbu(-r~ ( Y T S Oa una art(' (I(' esa relatiOn mt*diante ! tle la una bista. P o r t-onsiguirnte, una ron1t1inacai611tle la seguritlad ell el n i ~ e relational l seguritlatl en el u i v d dt. 1;rs vistas se puetle utilizar para limitar el acceso tle nn n s ~ ~ a r])reio t3isamentea 10s dntos q ~ w ntv~sita.
1. Intorizacihn de lertura: lw~.niitc.la 1rrt111-a.pel-o no la nioclific~aci51itle loi tlatoi. 2. i~ltorizatihnde iniere-ihn: lwrniitt. la insel-cihn de nuevw tlatos. p r o no la i~iodific~~cihn tle los datos existrntrb.
3. Liutorizac*iOn(It. actnaIizac.iOn: permite la modificacihn tlr loi tlatos. 1)rl-o no la eliniinaci6n.
4. htorizacGm de eliniinacihn: perniite la eliininac*ihn de tlatoi. Estoi tipoi tlc, antorizaciones se h a w n tipicwnente aiignantlo contraieiiai diferentes a una viita. P o r t.jt.nq)lo, sllpongamos que en una relariirn PI
2 3 4
5 6 7 8 9 10
CLIENTE
LOCALIDAD
BURGER. W. DOWNING. B. MCENROE.J. DEXTER, M. JOINER, W. NIXON. R. MARX, K. BOND. 1. ELWAY, J. LETTERMAN. D
VAUDEVILLE SERIES CITY OUTLAND MARTINSVILLE ALPENHAGEN SAN CLEMENTE OUTLAND MARTINSVILLE ALPENHAGEN OUTLAND
DISENOY ADMINISTRACION DE BASES DE DATOS NUMPROY-LOC NUMPROY
LOCALIDAD
I
VAUDEVILLE SERIES CITY OUTLAND MARTINSVILLE ALPENHAGEN SAN CLEMENTE OUTLAND MARTINSVILLE ALPENHAGEN OUTLAND
2 3 4
5 6 7
8 9
10
( p i s o r(1stringir a u n usuaritr t)articolar. Harry Uwn. a tcner nna autorizati6n tle ac.cew. solaniente tle lecti~ra,a 10s atrihutos NIIMPROY ) JAX4LlD-ID. Ksto podria realizarse twanclo una vista qiie shlo incluya los atrilmtos NITMPROJ !LOCALJD-ID, tal w m o se en muestra en la Figura 11.13. Entonces, s r I ~ n c d eclefinir una contraseiia para ('1 a e ( ~ w lectnra para NUMPROY-LOC. cwno stxindica a c.ontinuaci6n: GRANT READ ACCESS ON NUMPROY-LOC TO HARRY BEAN
La forma general para las a1ltorizacionc.s en SQI, se ol)tirnt*utilizando la instruc-riOn GRANT: GRANT < < lista
lista d e privilegios > d e usuarios >
ON <
nombre d e relacion o d e vlsta >
TO
La lista de privilegios pcrmite otorgar varios privilegios (e. p., d e lectora. tle elimin a c i h y/o tle actlialixacih) en una sola instrncci6n. Vistas y Seguridad en SQL. Considerando cple el SQL h a devenido en la norma tle Jhcto para 10s lenguajes d e h a w d e datos relacionales y que p r o p r c i o n a diversas facilidades para utilizar las vistas para la segoridad, rsta secci6n se t-entrara en el SQL coma modelo. La sintaxis general de las instrucciones SQL que crcan vistas es: CREATE VIEW nombre-de-vista (lista d e atributos deseados, s i son diferentes d e l a tabla base) AS consulta
Considercmos iin ejernplo concrrto clue utilixa la rel,ac-ihn h a w PERSONAI, qnc. tirne r l esqucma PERSONAL (ID, NOMRRE. DIRECCION, HSALARIO, hUMDEPT). Supongalno, quc se qnirre limitar el acceso tlel usuario CI ilnicamrnte a 10s empleatlos del Departamento 35 d e la tabla PEKSONAL. Esta ~ i s t iae podria exyresar conm: CREATE VIEW DEPT-35 AS SELECT I D , NOMBRE, D I R E C C I o N , HSALARIO, FROM PERSONAL WHERE NUMDEPT = 3 5
NUMDEPT
Los privilepjos d r 1r:ctiira se otorgan a I*',d r la manera iisual y. ahora, li, puede tener acceso a la vista DEPT-35 para ver el siibconjnnto rrcjiieritlo d e la tabla l m c , PERSONAL. Aunqur 10s valores tle PERSONAL e s t i n a1mac:enados rralmente en el disco, cualquier vista drrivada de PERSONAL (e. g., IIEPT-35) se crea en el momento clue se utiliza. Sin embargo, esto r s transparente para U I y, r n general, de ningun inter& para el usuario.
3 79
LA ADMINISTRACION Y EL CONTROL DE LA BASE DE DATOS
CREATE VIEW PERS-SIN-SAL AS SELECT ID, NOMBRE, DIRECCION, FROM PERSONAL
NUMDEPT
Estos (10s ejeniplos tlc~niut~stran la c~eacihii(11%vistas clue son. rei.prc.ti\a~nente.s d cwnjuiitos f'ila 1 c d u m n a t1e la I-elacnihn has(*PERSON.11,. El siguientr qjr~nldonuwstra c*hnlose crea una vista (It. motlo clue es nn sulwonjuuto f'ila y un snl)cwnjunto t d u r n n a tle 1;) rc.lacihrt base PERSO?J,\I,. CREATE VIEW DEPT-35 AS SELECT ID, NOMBRE, DIRECCION, FROM PERSONAL WHERE NUMDEPT = 3 5
NUMDEPT
Aliora,~.,pnecle tenei- acwso a una vista de PERSON.41, q n r inrlu!e ID. NOMBRE DIRECCION ( p r o no IISALr\RIO) tle los emplrados asignados a1 1)epartamento 35. A4idgunos u s ~ ~ a r i sc o s1c.s pnrtlr rrsponsaldizar con el rnantrnimiento cle los chucntos tlv los tlatos y por (.so sc, les pernlitr t m v r a c w w a las tahlas del sistcma SYSTAIBI,ES.tlr las cw;rlrh son responsi11)lc:s. Como las t e l h s d1.1 sistrmas SY STABLES son c.n si niisnias rrlacionrs. tamhiin scbputden w e a r vistas 1)ara rllas. A c o n t i n ~ u t i b nsts prcwnta un ejemplo:
J
CREATE VIEW MIS-TABLAS AS SELECT * FROM SYSTABLES WHERE CREATOR = USER
USER es una pala1)r.a c l a w cjoe requirre la asignacibn d e un valor tiurante la c.jccuhsi, si el usuario C I introduce la instruc~i611 SELECT * FROM MIS-TABLAS
el sistema ejecwtarh la cwnsulta como si cstuviera escrito SELECT * FROM SYSTABLES WHERE CREATOR = U ,
Sc dire que lab vistai como h a son tfc~p~rrdi~rrtes d d contexto. ya clue el resiiltado clue se p r o d ~ i r ees funcihn dcl contexto ( U , ) r n rl cpc se estL utilizando. Las listas se pueclcm construir taml~ibna partir de mLs de una relncihn h a i r . Consideremos las relarione, 11asr PERSONAL y PL4NTA con 10s esqurmas siguientes: PERSONAL (ID, NOMBRE, DIRECCION, HSALARIO, PLANTA (ID-PLANTA, CIUDAD, NUMDEPT).
NUMDEPT, ID-PLANTA)
Sr quierr w e a r una vista qw identifiqur cada empleado con la ciudad en la q u r trabaja taoniosigue: CREATE VIEW LOCALIDAD-EMPLEADO AS SELECT I D , NOMBRE, CIUDAD FROM PERSONAL, PLANTA WHERE PERSONAL.ID-PLANTA
=
PLANTA.ID-PLANTA
A veces se puedr pernmitir que u n usuario trnga arceio a resi~menrsd e 10s datos que se mantienen en una relatibn base, pero no se le autoriza el acceso a 10s alores individua-
DISENOY ADMINISTRACION DE BASES DE DATOS
CREATE VIEW PROM-TARIFA-HR ( I D , NOMBRE, TARIFAPROM, NUMDEPT) AS SELECT I D , NOMBRE, AVG ( H S A L A R I O ) , NUMDEPT FROM PERSONAL GROUP BY NUMDEPT
GRANT SELECT ON TABLE PERSONAL TO JOHN,
SYLVIA
GRANT SELECT, UPDATE (HSALARIO) ON TABLE PERSONAL TO HARVEY
REVOKE SELECT ON TABLE PERSONAL FROM JOHN
Rsto sipifiva t~nt,."1 atlvlante. John n o esth ; ~ i ~ t o r i z a daoc.jt.c*~~tar las o ~ w r a c ~ i o ~ l r s SELECT sol)rcb la t a l h PF:ICWNAI,. Estos rjtw~plosi h ~ s t r a nalg~niai~~osil)ilitlatlt~s clue 11rintl;tu los privilt.gios 1,;lr:r otorelr autorizatiOn. El listatlo de 10s privilek4os. tanto I)ara Ias r d a g;~ro re\~ot.ar~~rivilegios ciont.s tlt. la I ~ a wwino Imra las listas. int:lu!e SELECT, LIPD_1'1'E. DELETE cb IhStCRT. 1.a olwihn GR-1NT 1)uedv 1)asar tle u n t ~ s ~ ~ a21r iotro o en t*asracla. I'or rjt.nil)lo. si John tiene t l t ~ c ~ hu oo t o r ~ a rla antoridatl 1a otro usuario S\l\ ia. tmtontw S\ I \ ia timv tlerec*hoa otorgar la autor~tl:rtl \ a otro ~ t s u a r i oDulc y asi s~rc*c*si\a~nente. (:onsitlcrr rl r j t * ~ ~ q )5igllitknte. Io John: GRANT SELECT ON TABLE PERSONAL TO S Y L V I A WITH GRANT OPTION Sylvia: GRANT SELECT ON TABLE PERSONAL TO DALE WITH GRANT OPTION
Mientr;~stin usuario h a y retil)itlo la o p i h n GKART OPTION. 11uetle wuf'c'rir la misma autoritlatl a otros. Si Inego John tlesea rv\ocar la oprihn GRANT OPTION. podria ha(-erlo tlt. la Inaner a iiguirntr: REVOKE SELECT ON TABLE PERSONAL FROM S Y L V I A
Este rr\orac.ihn se al~licariaa S)lvia, asi romo t a m h i h a c.ualqr~it-raa ( p i e n ella Ie 1lnl)iera trunsfbrido la autoritlad. ! ahi s u w s i ~ a n i e n t r .
LA ADMINISTRACION Y EL CONTROL DE LA BASE DE DATOS
I,as tlivrrsas medidas tlr anttmticacihn y d(: autorizaciOn t p r son las normas para 1 ) r o t q r r ~ Iscr I adecuatlas para datos altarnente srnsil)lt*s.E n el a c ~ c wa las 11asc.a d r tlatos ~ I I P ~no ) tlatos. 1,oa tlatos cifrados no purtlrn tales casos. purdc s r r t1rsral)lr cifrar (to ~ n c r y t los s r r leidos por nn intruso. a nlrnos q n r twnozca el rnbtodo cle cifrailo. I n ~ p o r t a n t r sinvc~stigationrs se h a n ( M i c a d o a1 clesarrollo dc 10s rnitotlos tlc cifratlo. l l g l ~ n o sson tan siniplrs n tit* drscifrar. Otros son niuy dificilrs IIC drscifrar j ~)roporcionan1111 alto q u r ~ r ficilrs iiivrl tle proteccihn. Prirnrro rnostrarrrrios un csqurnla sirnplc clr cifrado. Dt~spuPsmostraiiios IIII initodo niis complc*jo,pero mi?;srgnro. Una fuentr provt:rhosa de estr ~ n a t r r i apl a r a t.1 lector intrrrsatlo s r p u r d r rncoutrar en Hoffman (19791. texto l'gilrle. Tc.\to qiie p w d r leer.
M6todo d e sustitrlci5n s i i ~ ~ p lSuponga c. que drscwiios rilrar (11uirrisajr ( t r x t o legihlc ')
ic
T h i n k snow.
texto cifrado. Tr\to
Un u ~ i t o d odc suatituci6n sirnplr podria ser r l clrsplazarnirnto tlc cada lrtra a su sucesor i n n d i a t o r n rl alfalwto. Sr iuponr q u r el espucio aparrce innirdiatalnel~trante5 d r la lrtra u y clue sigur a la letra z . "Think snow" se cifra ( t ~ x t oencriptado "1 a
legible rifrado. uijolatopx Si nn intruso iinicamrntc \ e el rnrnsaje "nijolatop," probahlernc.nte no trutlria inforrnaci6n suficientr para rornprr rl t d i g o . Sin rrnl)argo, si s r exarnina u n nhuiero gram d e de palal)ras, estadisticarnrntc, es pcrsihle dcterminar la frrcnencia con clue aparrtarn10s taaractere9 y, por mrdio tle rllo, romper fhcilrnrnte el cbdigo. Lob nirjorrs cstpemas tlr cifretlo utilizan una elavr cle cifrado. corno se demuratra en la src-ciOn siguientr. Mdtodo d e snstituci611 polialfahdtica. Snponga q u r qurrrnlos cifrar r l rnisrno nienhaje, p r r o ahora damos la clavr d r cifrado, diprrrnos. "securitysr." Procedernos corno s r indiva a continnacibn:
1. Alinearnos la clavr d r l ~ a j odel texto legible, repitiCndola tantas vwes conlo sea necesario para "cubrirlo" eon~pletarnente.E n este ejernplo, tendriarnos Think snow securityse.
2. Supongarnos q u r el espacio ocupa la vigksin~osdptirna, y illtima, posici6n en el alfabeto. P a r a cada caricter, sumarnos la posicibn alfabctica del c a r i c t e r del texto legible y la del caricter d e la clave, dividirnos p o r 27 y guardarnos el resto. Reernplazan~osel caricter del texto legible con el c a r i c t e r encontrado en la posicibn calculada en el resto. P a r a este ejernplo, la T se encuentra en el vigdsirno lugar en el alfaheto, n~ientrasclue la s se encurntra en la decirnonovena posicibn. Asi,
(20 + 19) = 39. El resto d r la divisibn p o r 27 rs 12. (Estr proreso se denornina divisi6n rnbdulo 2 7 . )
L e5 la letra en la duoddcirna posici611 en el alfabeto. Asi. la letra T e n el texto legible se rifra corno la letra L e n el texto cifrado.
' Plairitrxt (N.drl T.).
"
Ciphertext (N. del T . ) .
DISENOY ADMINISTRACION DE BASES DE DATOS
Reeuperaci6n de la base de datos
Fuentes de fallo
Procedimientos de recuperacih IJa intepridad tlr los clatoi rxigc* ( j ~ wnna transaccihn (%st6r n uno d r 10s dos estados gnirntrs:
51-
1. Ihortorla (Aborted). Cna trans;rrcihn p w d r no sirmprt. cwinpletar su prowso c*xitosi~mrnte.Para asegurar c~nt'la transacci6 11 incompleta no afrrte 1.1 (.stado consistmte tle la hasr cle datos, tlichas transaccionrs tic.11c.n c p r a l ~ o r t a r s r res, taurando la h s e de datos a1 estndo en q u r rstaha antes dr qnt' 1" trdnsaccihn rn cuesti611 conwnzara su ejrcuci6n. Tal rrstauracihn sr l o p ~twdiantela opcraci6n de rollhurl ( q n r se disrutiri r n hrevv). 2. Cerradu (Comrtrltted). Lila transaccicin c p c t.onq)lrtd ~ rxitosamcnte sli procesac cc~rruda.Una t r a n s a c c i h r r r r a d a drja la h a w de datos niirnto SP dice q ~ i t-sti r11 Iln estado consistimte.
'
El diario de oprracionrs (log) j q a 1111 papel c l a w r n la rrcuperaci6n d r 10s fhHos. El diario dr oprracionrs r s un historial d e totlos los camhios hechos a la 1)ase d e datos. asi conlo tali1bii.n dcl estado d r rada transaccicin. Ohviamente, rs importante q u r 10s datos del '
En ocasionrs ar u\ar:i shlo diario pam rna!or brcvrdad (N. drl T.).
tliario de opt.rat*iones no se pierclan ni sr tlestruyan. P o r t~oiisiguieiitr,la informatGii tlt.1 estahlrn niitiro que so11rr.x-i\a a tliario de optmriones se guarda r n 1111 ~~almacenamier~to toclos 10s fallos. Eli la p r i t . t i t ~ esto ~ , se l o p m a n t r n i e ~ ~ t varias lo copias en tlistw. Una estratcgia clr rrcuperarihn purdt, drsarrollarse utilizantlo uno tlr los dos eldoq~~rssiggl~ientes, rty$strar las at.tiializatio~irstlihritlas o registrar las actualizat~ionesi n n ~ e tliatas. Los 11untosd r chequro (checkpointing) proporcionan efit-irntia atlitit~l~al. Diario tlr Oprracioiies con Ac.tualizaciones Diferidas. El rrgistro d r Ins ac*tualizat.iouc.s tlil;l-illas fiintiona t80mose int1it.a a rontinuacihn:
1. Cliando t~omienzauna transaccihn T. im registro "'", o rtluivalcntc~nci~tt~.. "".
w ? s t - r i h t.11 el tliario d r oprracionrs.
2. Diwantt. la cjeriicii~ntlr la trausac.rihn T, la escritura d r 1111 \ a h n w \ o cualt o de~iotatlopor "WRITE(4,u,)." pro\oca la rwrituqniera. cr,, p a r a ('1 ; ~ t i d ~ u 4. r a de un nue\o rvgistro en el tliario tle operationt-s.
3. Cada rrgistro dt.1 ti110tlrscrito r n ( 2 )esth formatlo por los c.ampos signirntrs: a. El nomhre de la t r a n s a t ~ i 6 n ,T. b. El noml)rr tlel atri1)uto. A. c . El nuexo v:~lord r l atrihuto, u,.
4. Si totlas las acwonrs qiie twmprrndr T se ejecutan exitosamentr, sr divr tlur T sr t.ierra I ~ a r t ~ ~ ~ ~ l ymse e rest.rih ~ t r . el rrgistro 'k7',COMMIrI'>'* r n r l (liarlo tle o l w ratio11t.i. Utssl~uisclur la t r a n s a w i i ~ nT st, r i r r r a r)arcialinmte. se utilizan los rrgistros asotiatlos (.on T r n r l diario dtl o p t u t i o n c s para rjtwitar las oprrationes tle escrit~i~.a en los rrgistros al)rot~iatlos d e la hasr de datos. Ilnstramc~srsto utilizantlo. m a \ r z mhs. r.1 vjtmplo drl pago tlr u n cliente. 12rcurrtle qne stx"5th hacirntlo 1111 pago dv $500 s o l ~ r euna twmta. E n la Figura 1 I .14 se muc.straii las urcio~irstwmlwnditlas en esta t r a n s a t ~ i h o .Las rntratlas c~ori-t~sl)oiitlientes del tliario tlr oprrarionrs se m w s t r a n en la FigIra 11.1.5. 41 utililar r l tliario dt. opri-ataiones. r l SGBD purtle gritionar c u a l q ~ ~ ifallo r r tlllr no pru\oque la l~brtlitlatle la iiiformac~iOndel propio diario de oprracionrs. La prevencihn de la pirtli. (la tlrl tliario tle operationes s r rrsuelwe mc~diantrsu duplicaci6n ell ma^ d r un t l i w ~ Como la prc~bal~ilitl:~d twrrrspondirnte a la p61dida d r l cliario es muy pequeiia. rste nkttrtlo ir c w i i d m i c ~ ~ m i ~ ~ i i n ctwmo . n t r u n n~btotlodt. nl~nuce~znrniei~to estable. T: READ (A, a,) a,: = a - 500 WRITE (A, a,) READ (B, b,) b,: = b , + 500 WRITE (B, b,)
Leer el balance del cliente actual Reducir el balance deudor en $500 Escribir el nuevo balance Leer el balance efectivo actual Incrementar el balance de la cuenta en $ 5 0 0 Escribir el nuevo balance
Entrada del diario d e o ~ e r a c i o n e s
Valores de l a Base de Datos A = 1000 B = 1500
r
A = 500 B = 2000
DISENOY ADMINISTRACION DE BASES DE DATOS
1)espuCs que orurre un fallo, el SGB1) examina rl cliario de operaciones para drterrniilar q116 transac:ciones sc neresita rehacrr (redo). Una t r a n s a c ~ i 6 nT tienv clue reh;rcwse si el diario d r oprrariones rontiene el registro "" y el rcyistro '*." Esto c ~ la, hasr tlr tlatos pnrde h a l ~ e r s rc.orronipiclol p r r o el 1)rowsamiento de 1;) transac~ tlatos corrrsl)ondientc.s estiu riiln se romplet6 y los nuevos valores para 10s elr~nentos( 1 10s rontenitlos en el cliario tle operaciones. Esto ex(-luyela n c w d a c l tle reprowsar la transacsc i h . El tliario se utiliza para restaldecer (11 estaclo tlel sistcma utilizantlo u n proceclimiento REDO(T). clue fija el valor cle todos los elvmentos tle 10s datos ac*tualizatlospor la transarestirhar~rrgistrados en el tliario clr operaciones. cibn T a 10s n u ( v ) s valores (111~ Conlo ililstracihn, supongamos q u r el fallo oclirrici sinq)lementv drspnbs c p e el rcgistro "" entri, en (.I diario de operaciones y antes clue s r cwrihirran 10s re$stros actnalizaclos tLn la hasr d r datos. El tliario al)arccv= (.onlo s r rnurstra en la F i g r a 11 . l h . Cuanclo stAwmienza a resta1)lec.c.r el sistvma, s~ neresita efertuar la arcihn de rec*l~perac& para T , ya que "" al)arccbeen el diario. La o p e r a r i h REDO stAejecuta, dando vomo resultatlo clue 10s valores $500 y $2.000 se escrihen en la I m c de datos ronio 10s valorrs actliali~aclostle 4 \. H. Ahora wpongamos q1w el fallo ocurrr 4mplemrntr antes clc la ejerncii,n de la arc*ihn WKITE(B,h,). El tliario dr oprrariones m el momento tlel fallo se muestra en la Figur a 11.17. Cuantlo se comierlza a r t ~ ~ t a h l e rel e rsistrnia, no es newsaria n i n ~ n n aawihn, ya clue m el diario no aparece ningun rty+tro COMMIT para T. Los valores tlr A ) B en la l m e de datos permanecen como $1,000 y $1.500. En rste raso, la transacrihn tiene clue reiniciarse. Diario d e Operacioiies c o n Actnalizaciones Ini~iediatas.IJn mbtodo alternatho clue utiliza un diario de operaciones para la recuperacihn consistv en h a w r todas las artualizacionrs de la lwse de clatns i n r n r d i a t a n i r ~ ~vt rllevar u n rrgistro de todos 10s caml)ios en el diario. -41 igual clue en el mbtodo antvrior. si o r u r r e un fallo, el cliario se utiliza p a r a rest a b l r t ~el ~vstado de la hase de tlatos a u n rstado tn-evio c-onsistentc. Similarmente, cuando comienza una t r a n s a c r i h , en el diario dr operaciones se escrilw el registro "". lhlrante la qjrcuci6u dc. T, cualqnier operaci611 '*WRITE(A,a,)" e s t i precedido por la escritura d r u n nuevo repistro en el diario de operaciones. (Krc-uerde clue en la estrategia previa, no se aplicaha ninguna oprraricin cle escritura a la base tle datos hasta clue T se cberraraparcial~nente.)Cada registro del cf ario de oprracionrs se esrrihe dr la manera siguirnte , donde A rs el nonllwe clel atrihuto, a ; es el valor virjo del I atributo v u.es el valor nuevo dcl atrihuto. Cuanclo la T s r cierra i)arrialmentr, "" se csrrilw m el diario dt, operariones.
Tiempo
Tiempo
I
Entradas del diario de operaciones
I
Entradas del diario de operaciones
Valores de la Base de Datos A = 1000 B = 1500
Valores de la Base de D a t m A = 1000 B = 1500
LA ADMINISTRAC~ONY EL CONTROL DE LA BASE DE DATOS Entradas del diario de operaciones
Valores de la Base de Datos A = 1000 B = 1500
A = 500 B = 2000
1 Se nrtwita desharrr T si el diario rontirne 1.1 rrgistro ""' p r o no twntienr -'." St. necesita (pie los aa1ort.i airjos tit. 10s elementw d r 10s tI;~tosi~fre'tatlo,w a n rt,stahlrt-itlos y q u r la tran~ac.tiOnse reinitit,.
2. St, nrwsita r e h a w r 7'51 rl tliario twntitmr los tlos rcpistros 1)rrrrtlentrs. No tirne
.,
qnt' reinic-iarie la transatmon. Se ilustrarhn am1)as situaciont.~. Supongalnos (pie r l sistrnla falla tlr nllevo justamentr m t c s d r la arri0n '*W~KII'E(B,h,)" en In Figwa 11.11. La Figura 11.19 ilustra r h o s r w r i a rl tliario ~ : nrl m o r n c ~ t o1114 fallo. (:nando 1.1 sisttmia w r l a t ~21 s r r o p t d ~ l e .rntancwti.a rl rtyistro "'.COMMIrI'>". Ecto signifira q n r tlrlw t11.s"**' ~ l r r ono sn col-rc~sl)t)ntlit~iitt~ h a c r r w la transarcihn, Incyo s r t j c v ~ t a-'IJSU0(7')". Ello i-estal)lec~c~ el valor tlc . l a h1.000 1- la tr;lnsacc.iOn I)nrdr rt-iniciarst.. -1hora. supongamos qne el l ) r o l ~ l e r ~oc111-1-e i;~ siml)lrmrnte tlrspui's q11r "'" se esc*rilw en el tliario dt- opet-atioi1c.s. prro antcs q u r 10s nnrvos valores s r est.1-i])ill1 en la I ) ~ I de s ~ dates. E n la Figura 11.20 sts rnnestl-en ]as rntradas c-orresl)ondicmtr!:al tliario. (:uantlo r l sistema a~ut-lvra st^ oprra1)le otra vez. una 1ectur;l clcl diario (11.olwracio11t.s mnrstra 10s rq+tros c~orrespondientrs"" p *kT,COMMIT>". Dc cstr modo. pnrdt. c.jerutarse "KEDO(T)". d(.spnGs tlr lo rual 10s valorrs tlr A p R son $.iOO >$2. ooo.
Entradas del diario de operaciones
Valores de la Base de Datos A = 1000 B = 1500
Tiern~o
DISENOY ADMINISTRACI~NDE BASES DE DATOS -
-
-
-
-
Entradas del diario de operaciones
-
M r e s de la Base de & D A = 1000 B = 1500
Tiempo
A = 500
Puntos d e co~nprohat-ion(Checkpointing). Dt. 10s ~~roeedimicwtw p r e c e d e ~ ~ t e sunl) , podria c w d u l r q w la reeuperari6n solammte requiere r u m i n a s t.1 tliario d r operat~icrnes para las entradas cwrrespondientrs a la t r a n s a c d ) n mhs ret.icnte o a algunas transac-ciones recientes. E n printipio. no tlelw haher li~nittxcon rt.laci6n a twanto t l e h mirar el sistema hacia at& en el ttiario. > a quc>10s errores 11~1vden haher twnenzacto con 1'1 prinwra transdeeihn. h t o 11uedepro\ocar un p a n consumo y tiespilfarro de tiempo. Una mrjor maner a consiste en encontsar hacia atrhs un punto suf'icienternente alejatlo como para asegurar qnt, cualtpier elcmento antes d e est. punto se ha t v r i t o cwrret.tan~ente\. ze ha almacenado sin riesgo. Este mitodo w tlenomina (It1 puutos d e cornprohacii,n. Durante la ejvcucii~n.el SGKD mantirne el diario tle operat-iones como se ha descrito. p r o peri6tlicarnen~eestah1et.e pnntos de conq~rohaci6ntle la manera signiente:
1. Detiene tc~mporalmenteel inicio dc ri~alqiiiertransaccihn nileta hasta qut. te cier r e n o w ahorten t o c h hi transact-iones activas. 2. Keal~zauna eopia cle wguridad tlr la h a w dc datos. 3. Kscrihe totlos los w ~ i s t r o sdel diario dr operarione5 qne ratlivan artualmente en la menloria opei-ativa en iin almacenamiento estahlr.
4. iiiade a1 final del diario de 011eracionc.s uu registro qiie int1ic.a la ociirrrncia de iin p n t o tle checjntw: entonces lo escrilw en el diico. Supongarnos q u e se utiliza un diario de ol~eracionescon at.tnalizacionts inmediatas
y c w d e r e l n o s r1 g r i f i w de titmpo para lab transacciones T I - T, mostrado en la Figura 11.2L. Ci~antloel sistema f'alla ( t ), se nccesita examinar el (liar-io d e operationes hacia J
atrris imit*a~nrnte ha5ta el p m t o tle c*o1nprol)aci6n~ n i re(-ientr s ( t , ). T Ies taorrecta,a nwnos que tiaya ha1)ido un fallo en el disco clue la destruyera a ella (y posil~lerncnte) otros registros con anterioridad al t'dtimo panto de comprobacii~n,En ese caso, la has? d e datos se varga d e nue\o clesde la copia tle segiwitlad q u e st, hizo en ~1punto tle chequeo anttxrior. En Punto de cheque0
Fallo del sistema
I Tc
Tiempo
LA ADMlNlSTRAClON Y EL CONTROL DE LA BASE DE DATOS
387
KI twnoc~in~iento tie 10s elementos atlminirtrati\os ! tlr w n t r o l ('5 ntwsario para la gesti0n rfet,ti\a tlr un sistrma tle Ibase tle tlatos. El mantrnimiento (It, la st~guritlatl> tlr la intrgritlatl tlr la I)asr tlr tlatos es a la \ez t~omplrjoy rsrnt+il, tlrl~itloal a t w s o tlt. nii~ltiplrsu s t w rios en forma cwnc~lrrt~nte ;I 10s siste~nas tlr I)asr tit. tlatos. la tlifvrvntia entre la atlministracih~~ tle Este t.al)itulo stbtltvlit.6 ~ ) r i m e r oa rht;~l,ltw~r en la atlministratihn tlr los tlatos p la atlministratih tle la 11aw tlr tlatoh. t~ont*rntrhtlose la hahe tle tlatos ! ell S I I S ol)jeti\os tie nlantrnrr la intrgritlatl. la styuritlatl y la tlisl)onil)ili(lad tle la I m e tle tlatos. IJa integritlatl tle 10% tlatos. qnt*t-s el mantenimientt, tle SII elartil 10s tlator. La tlistud p "1 fia1)ilitlntl. se garantiza tlesarrollantlo controlrs tlv s t y ~ r i t l a t tle ! tle ptn~il~ilitlatl tle lo5 tlatos se aumenta tle~arrollantlo~ ~ r o t w l i n ~ i e ntle t t , seguritlatl ~ rtwq)t~raciOn.111squtbput~lt.11incluir I I ~ Iplan p;wa tlcsastrrs. 1,wgo he tletnostraron algunw ta;~l,at*itladesd r los lvnguajes twmertiales tle t . o n s ~ ~ l t a . no 1)roporcionm talrs twmo el SOT, !. el ORE. en twanto a la integritlatl. Estas t~al~atitlatles a h totlab las t*arat*teristit~as tleseatlas. p r o se e q w r a quc vsta sittuatibn mejore en el futuro pr0ximt1. Otra mant.ra ittil (It: m;mtcner la twnsisttmtia de la 11ase de tlatos es la transaccihn tle la trnnsaccibn sr complctt. o qutXla at61nit.a. clue r e q n i t w t j w totlo t.1 prot~t~suniento trnnsactihn se interrumpa. Cuantlo se usa con un tliario tle optmt-ionrs (log). esto asegura (jutblos fallos o p t ~ a tos i ~no provotjutm t.1 almawnan~ientotlr tlatos errbneos. El prwewniiento taontanrrente11uetlet-orromper la hase (11%tlatos. Los protwlimientos simples tle I)loqueo (locking) puetlen itnpedir el procesamicnto t.ontwrrente. pero p e den restringir nnwho la efit+ncia operativa tlel sistt-ma tle Ibase tlr datos. M6totlos tales romo el I)lotptw thntlos fasrs estLn tlisponihlt~spara limitar los ~)rol)lernasasot+itlos con lob I ) l o c l ~ ~ t ~ o ~ i na~la~ vvz ) l t ~tlutb s . n~anticncnla integridad tle la I ~ a s etle tlatos. La seguritlatl tle la I)ast. tit. tlatos. en printipio. estL relacitmatla ron la tlrtcwnin;wii,n tlt. t p i h tiene a t w s o legitimo a tjn6 datos y. entonces, con la segnritlatl se refurrza la Ityitimitlatl. La atttenticatihn se refiere a los m6totlos para restringir el arceso al sisttwa. La antorizaciirn se refiere a los m6totlos tle control tle 10s rt:t~ursos. a 10s clue se pwtle t r n r r at-cwt) m a vvz tjiir st- haya ttmitlo a t w s o a1 sistcma. asi twmo qai. se plletle harer ron esos rc~11rsc)s. E n los sistemas tle I m e tle tlatos relacionales. el use d e las vistas pnetle ser una maner a t,fee~iva(It, rcslringir lo (jut' el ~ibuariovt' y m a n i p l a , sin t r n r r tine a h e r a r ]as rrlat-iones almawn;itlas. Utilizantlo SOL, se mostraron diferentes mantlras en clue se 1~1etlenal~licar ]as vistas. El tifrado ( P I I C ~ ~ ~ ~pt'rmitt* D I I ) tjue 10s datos sensihles pnetlan altnacwiarrt~!tranimitirst. tit. forma inintdigilh. t w r p t o para sus usuarios legititnos. Totlos los sistrmas tlr l m e s tlr tlatos deljen trner plwedimientos seguros tle ropias tle seguridatl y de rrcuprraeiirn para rvitar inef'icarias y, ailn m i s , p6rditlas catastrhficas. Estos r n ~ t t ~ d tlt.l,en t ~ s ~)rol,arsrperiirdicamente para asegurar que funcionen completamente y que hean fia1)lt.s. Los diarios tlr oprrationrs tle transacciones con actualizariones dift.ritlas o inmetliata.;. los 1)untor d r cwm11rol)atiOny las copias de seguridad (buckup) tle la base tle tlatos son elrmentos esrnriales para s r ~seguridad y reruperacihn.
1. Defina t20nsus palahras catla uuo tlr 10s tCrminos siguientes: a. administratlor tle los datos b. integritlad de los t h o 3
DISENOY ADMINISTRACION DE BASES DE DATOS
D t w r i l ~ ael 1)al)t.I tlt.1 atltninistrador tlr la I)aw dt. data, r n la iinl~lrtnentarihntlv norInas 4 ~ w o r t ~ l i n ~ i e i ~ t o s .
-cttlmi~zistrc~tlorde lu b o w tle dutos
a.
389
LA ADMlNlSTRAClON Y EL CONTROL DE LA BASE DE DATOS
c. El nsnario tirnr rl t l c r t ~ h op a r a l r r r 1111 rcgistro deterininaclo f. t l r l lwograina cw! a rjrclic.ihn l,rcssc.r\'I la cwnsistrncia t l la ~ base tle tlatos g. Truto t l w. ,w pnrdr lerr h. Transaccwn q u r se c.ancrla antrs (1ur 105 cam1)ios s r aplicllicw a la ljair dtt datos i. En el pi-owsainiento d r transac-ciorirs. iriiptle r l ac*c*tbso a u n registro d r la 11asc.d r tlatos [MIL. nna srgnnda traniac-c*ii)nhasta qllr la p r i n i c ~ atransarrihn h a p c*onq)lrtaclototlas sns ac~cion(~j. Una cwml~rol,acihn 11eriOtlic.a (11.1 SGKI) 1)ara drtvrminar si la w l a tlv c'ipcra tlr algun r w u r s o excedr trn limit(' pr(v1rtrrinnado
3. Ilustrar
4.
(41110trahaja
rl I)loclueo cbntlos fases utilizando nn rjrrnplo.
D o h transa(*~*iontbs se tlicr clnc. son srrializahlrs si sc: I ~ n e d e nrjecutar cbiiparalelo (interc*alatlas).d r t d forrna clur sus rrsnltados w a n itl6nticos a 10s clue se lograrian si una tlr las t r a n s a c c h l r s sc, ejrcuta w m p l r t a m r n t r antrs tlcl inirio d r la otra. Consiclerr la:, (10s transawionrs intrrraladas siguientes y snponga qnc nna rondici0n tlv wnsistrncia r r c p i c w q u r A o B tlt.l)rn s r r siernprr igualrs a 1. Siiyonga qne .4 = R = 1 antcs tlr la r j r (.n(*i6ntle rstas transawionrs.
Tl Leer-elemento(A)
T2 Leer-elemento(6) Leer-elemento(A)
Leer-elemento(6) S i A = 1 entonces B : = B + 1 S i B = 1 entonces A : = A + 1 Escribir-elemento(A) Escribir-elemento(6)
1 Q u ~ l a r.ati-fkho i rl rrquiiito de ronsistencia? Jubtifique su respnrsta. j,Exiite tin ciclurma 11c' t~.atainirntointwralado t p e garantiza la serialidad! Si (.i asi. tl(mubstre1o. Si no, rxpliqnc. por qnb.
5 . Ltilizantlo rl nibtodo polialfal+tic*t, (11. sustiturii~n4 la c - l a ~ c1e e rifrado. SECURITY. cifrc. t.1 trxto Irgil~lr"SF:I,L A4LLSTOCKS."
6. Suponga (1"'' i e tirnr un tliario tle o p r a c i o n r s ~ Y J I aI r t u a l i z a c i o ~ ~ininediatas. rs r r r r Ias entradai ( 1 ~tliario 1 c-orrc~s~~otitlientei a l a i signieutes arrionri tlr una transarrihn: T: (A, a,) a,: = a, - 800 w r i t e ( A , a,) ( 6 , b,) b,: = b, + 800 w r i t e ( 6 , b,)
Leer e l balance d e l c l i e n t e a c t u a l D e b i t a r l a c u e n t a e n $800 E s c r i b i r e l nuevo b a l a n c e L e e r e l b a l a n c e a c t u a l de l a s c u e n t a s de pagos A c r e d i t a r e l b a l a n c e de l a c u e n t a en $800 E s c r i b i r e l nuevo b a l a n c e
DISENOY ADMINISTRACION DE BASES DE DATOS
7. Suponga q u r r n (6) ot-urrr u n fallo justamcnte d e s p i s clue i t . ha)a c v r i t o el regiitro del diario tlr c~perationespara la atvihn
a.
Mriestre el twntenido del tliario tlc operationes en el momrnto tlel fallo.
1). ;.C)u; awihn es neeesaria y por tp;? 2,Cr~ilesson 10s t a l o r r s wsultantes de A y BY
8. S ~ ~ p o n que g a r n (6) o r u r r e u11 fallo justamentr d ~ y ) n lclue i el registro .'" se eicriha en r l tliario tle o p e r a t i o n t ~ . a. Muestre 10s I-onttmitlos del tliario m t.1 nwmento tlvl fallo. 1 . j,Q11P at.ei0n es newsaria y por qu6? 2Cuales son 10s ta1ort.s rvinltantes tie 1 ! BY
9. E n el diario d r o p t ~ a e i o n e s1)ara la ret~uperacihn,twnsit1e1-e la? entradas siguicntt.~en el ~ n o m e ~ i tlrl t o fallo tlt.1 sistema dt. 1)ase tle tlatos:
a.
.
Suponga un tliario con actualizacibn difwida. Drst.ril)a Ibara cads caso (:l,H , C) q u i aeciones de rec:nlwracihn son necesarias y por q n i . Intlitjue t*nhlt.s son 10s valores para 10s atrihutos datlos despnks clue las actiones dt. rrt:uprraciiln se wnipleten. Repita el reqnisito de (a) sulwniendo UII tliario tori actualizacihn i n n d i a t a .
1. Rea1it.r nn breve estudio de investiprihn de tjul mCtoilos utilizan las granclrs firmas tle t:ontal)ilitlatl para llacer auditorias d r los sistemas de 1)ases de tlatos.
2. Compare y tbontraste10s twntroles d e i n t e p i d a d disponi1)les en SQL y en QRE.
3. Compare y c:ontraste 10s t w ~ t r o l e sp a r a la scguridad de 10s datos disponihles en SQL y en QBE.
SISTEMAS DE BASES DE DATOS DISTRIBUIDAS
iPor que las bases de datos distribuidas?
Protocolo de cierre de dos-fases
Un modelo general de SBDD
Bloqueo distribuido
DiseAo de sistemas de bases de datos distribuidas
Estrategias y objetivos Transparencia local Transparencia de la duplicacion Independencia de la configuracion
Ejemplo I
Bloqueo distribuido de dos-fases Ejemplo 2
Marcas de tiempo Ejemplo 3
SGBDs no homogeneos
Recuperacion de la base de datos
Duplicacion de datos
Sistemas clientelservidor
Particion de la base de datos
Conceptos generales
Fragmentacion de 10s datos
Aplicaciones de bases de datos
Distribucion de archivos no-fragmentados Procesamiento distribuido de consultas Semirreuniones (semijoins) lntegridad de 10s datos en 10s sistemas de bases de datos distribuidas
SQL server para Windows N T Resumen Preguntas de comprobacion Problemas y ejercicios Problemas y cuestiones profesionales
DISENOY ADMINISTRACION DE BASES DE DATOS
Cordelia Vlolini y Reggie e ~ t ( i n~ent(1t1usulrnorzm~doY hablando sohr(~('1 progreso que SP hcr rlnrlo en lu irnplernentr~rihrr(lo sisternr~stle irfirrnr~tihn(111 1u IPD. Kc~ggic.c ~ m ~ n t "hP: i ~ n s oqlw cstcrrnos h(r(~i~nt1o iin ~ I I P I Ltrub(rjo. Iosotros ~ P I I P rnos cJn ( ~ ~ . s1u( iiilti~nut~(xo1ogiur ~ l ~ ( . i o ~ rhtw~o.s ( i l . ( d i r ( ~ ~ (Ld 10s o irsirurios en c(rd(r 4re(1 y htry eviclcw.ius do (/UPnrrc~strossistc.rncrs tlcj irlforrr~crcidr~ SP ILS(III firrwioriul c l ~r~c>goc,ro l c~rclcr L'PZ rri4.s p r u upoyur hr tomu d~ (kt~r.\ion(~.s PIL t o d ~ s l)tirt(~sd e r ~ t r o(IP 10 cornpfllxfl.'-
.'Err g(wcv-crl, c ~ o tlc~ y trcirc~rdoc.oirt~po", rc~sporlclid(:or-cl~liu. "t'ero slento (/UP(~iln (k nuestros j e j ~ sse ~ n r r r e n t r n ell i ~ bitiob reinoto< PII totIu.\ hcry rnrrcho p o r hucpr. V/IIC~OS purtes delp(ris y he oido rlrinores (IPq i ~ (Ie ~110s1es g~rbturinteller rontrol sol~rvItr.\ ptrrtc~s del sisten~atle base tle datos que tienen que wr con sits oper(~cioirtv.DP hwho. m t t d e las ,jefk ine c ~ m e n t dc l u ~no c~ntencliup o r q1i4 10s tlutos debrn rii(~i~te~rerbe ell 10 buw rle rlutos c01ecti1w C I L U ~ eru ~ O /)riilri/)(rli~lei~te u(~tlrulizuduy ~is(tdup o r e11u." Suenci como si nosotros debiCrunlos e x u n ~ i n u rlu distrib~rridri(le nutJ.stru h u s ~d e c.11 c w r dcitos." mgirid Reggie. 2QuB tip0 de rambios hubriu que h a r e r bi nos rrroi~~rnos direccidii P" "B~rcwo", clijo Corclc~licr,"Coiiro prirneru ~nc~tlitlti, tmdriurrros c p J decitlir (pi6 tlutos 1 si utin q u pir~(lcwinuiitenerst~lorcilirrtwtc y qlri tlvtos tl~bericrrrhucr~rsr~ t~r~rrtrulrnc~rlte. PII sitios rc~rnotos.nuestros si6rcrinos h u r w cptJ c i ~ r t o sclutoa rorporuticos e s t h (lisl)orril)l~s r s o ~ i s t i c d o spcrrcr p e r sist(wicrs purr1 roirtrolcrr ~1ur(.~.so(1 10s rlntos t~rrdriurr(lire s ~ rtrils ~ I I P~ ( J ( ~ ~ P ~duto.s ( I I I (IP r m i ~d e 1111 sitio. Htry otrcis initir q i i ~sc~anq j ~ r i ~ t u (~oi~.siilt(r~ ~lu~ (westiones, p r o c011 imestro h i s t o r i d de B~itoscreo que c ~ c t r r ~ oerrs rrrrcr bitenti posirihn (1 pensur sobre lilt sistetnu d e base d e dutos distribuidu". p r u (70mei~zur '6
7
E
.tt. c.apitulu I111nt1anne introtluc.c*ihn a la rxtitantt. hrra tlr 10s sistemas tlr ~ tlr tlatos ~ sc11stril)uiclas (SBDD. DDS r n inglbs). Drl)itlo a q u r 10s SBDD son dim un i r r a r n tlrsarrollo, r s t i n jngando ya ttn papel inq)ortantt. t.11 o1)c.raclonrs tlr nrgocios. b,n rl Futuro. los SHDD clehrn convrrtirsr en nna trciiologia n w r i a ria para totlas la5 organizac~onrs.Con los rxtraordinarios avances qne r s t i n oc-urrirntlo en la5 tecnologias tle las eon~unicaciones,las posibilidades son inq)rcsioiiantrs. E n r i t e t~apitnlo' l ~ ~ r t ~ n t l c r i :
1
i,Por (piuna SBDD rs valioso para una o r g a n i z a r i h ? Los I'nntlanwntos tecnolhgiros y la trrininologia tle un sisten~ade 1)asc (It. tlatos distril,uitla (SHI)I)). Eleincmtos tlel tliseiio t l un ~ SBDD. Rstrategias y otjjeti~osclue son iml)ortantes para los SBDD. Confignracioncs opciona1t.s qnc cstfhn t1isponil)lrs para 10s SBDD, junto con sns vcntajas y tlt~svcmtajas. Los ~ ) r o l ~ l e i ncle a s c-ontrol fundan~rntalesasociados con los SBDD y 10s inbtotlos cle t r a t a r con ellos. 1,os fnndanientos de los sistc~iri;~s t~lit~ntc~/sc~r\-iclor.
iPor quC sistemas de bases de datos distribuidas? Con la ainplia prevalencia tle 10s sistemas tle h a w s d r datoi wntl-al~zatloi,loi uiuarios ! 10s programas de aplicacihn ac*ccdena la h a i r de datos deidr sit105 localei. asi como dcstle loc~alidatlesreinotas. En contrast(,. m a haw dr clatos distril)uida (distributc~ddatubuse) no se alrnacena cornplctamcmtt en una lot*alitlatlcentral, 5ino t p c . ie cliitrihu\e en una retl tle localitlades quc pueden estar geogrific*anientt, st.paradas y cwnet.tatlai por c d w e s de coninnit*ationei. Catla localidad tentlri su 1)rol)ia h i e tle tldtos y e s t i t.al)at*itadapara acwder a 10s tlatos de otrai loca1itlatlt.s.
SlSTEMAS DE BASES DE DATOS DlSTRlBUlDAS
393
Hav \arias razonrs para tlwarrollar 1, uhar un sisteina (11' IIR-es de dates tlistril)ui(la m t r r las I I I W s r int.lu\.en la. signientrs:
1.
~nrnutlo.las o i y ~ u i z a t i o n t tirnen ~s ranlales o tlivisionrs en difvrt~ntes1c1t.alitlatlrs. P a r a lula I c d i t l a d tlada. L, putliera ha11t.r tun twnjlulto tle tlatos clue usr I ' ~ I ~ ~ ~ I I ~ ~ I I y~ ~t I~IuIi z~ i~ sIr x~ cL lI~*~ s i v a m r n t.11lt&s r. 1, p111~1th11sar dates t p e stB listw (*onm i s f r w l w n t k ~r n otra localitlad L'. P o r ejrtuplo. en nn wgorio tle vrnta al por mtbnortwla tirnda sr puedt. 1)t.mficiar dt. sn ~ ~ r o p11ase i ; ~ tlr tlatos tlr invcntarios. vmtas, cuentas dt. clirntrs \; c n plratlos. Uurantt. las ol~rratiollesd r nt:gocicrs. las transaccionrs sts p r o w s m twnvei~irntrmtwter n la I ~ a s rd r clatos local. final tlr las ol)erat*iont-stlel tlia stbtlrlw ., trasmitir 1111 ~ ~ S U I Icon I I ~10s rtw~ltadosa las oficinas wntrales (11. la t~oq)oracwn ru tlolltle sr mantirnr nlia Imr tit* datos grorral. Peri0tlit.ameutr ratla tientla ~mctltl l ~ ~ n t ~ f i c i adtt r strr n r r ; I I Y W ~ a la h s e tlr tlatos gtweral !p d c r conlparar sus \rnt:rs y gallantias con las dc las dr~nAstirutlas twmo lneditla tit. sn rendilnitwto. En nn kistrma de I)ast. dt- tlatos t:elltralizatlo t x l a sitio tmtlria q u r (.star usantlo twlacrs dts c.omunit*atii,n tbonla I ~ a s etle tlatos 1)ara a n h s t i p s tlr iuf'o1.marihn. 11orlo t111t'las comn~litwionrs~ ) u r d e nt*ollw*rtirsren 1111curllo tlr h e Ila importantr. 2. I'tmnitir qnt. twla sitio almatww y mantrnga su propia 1)ase tlr datos f'acilita (4 a t w s o inmtvliato y rl'it-az a 10s datos clue st: nsan con mhs freeurncia. Talrs datos 1)otlrian usarsr rli otros sitios. lwro con mt-1105frrt~utwt*ia.Ilatos sinlilares aim+ rtwados 1.11 otras lot*alidadrstam1)iC.npodriarl a t w t l t w c ~si f n r w ~ i t ~ w s a r i o . 3. Las I ~ a s r sdr tlatos t1istril)uidas ~,iletlrnmcjorar la fial~ilidatl.Si 10s c o ~ u ~ ~ u t a t l o rcs clr 1111 sitio fallan. o si s r qlitda furra d r servicio algiin enlaw tlr t~onlunit*acihn. el rrsto de la r t d 1111etles t y ~ i rfnlit.ioua~~do. Es mis. si 10s datos r s t i n tlnplicatlt~sVII m i s dc iln sitio. 10s clatos neetwrios ~ ) u t d t westar 11isl1onihIrsIYI otro lugar I I I I I ~a h stbmantirnr ol~erativo. 4. Ptbrrnitir t.1 t w ~ t r o local l tlr 10s datos tjnt: se nsan (.on m i s frrt*ntmt.ia en un sitio puetlr mtsjorar r l gratlo tlr satisfaecihn d r 10s usnarios con r r l a r i h a1 sistrma tle I)ases tlt. datos. Esto es, las 1)ases tlc tlatos lot-ales puedrn l-rflejar nit-jor la estructi~raa t l ~ ~ ~ i u i s t r a tloc:al i v a y. por lo tanto, Iwintlar un mejor s t w i t i o a las nrt.esidades dts la pestihn. 2 1
Rstas son algunas de las v e n t a j ; ~t ~p r se ohtirnrn com6nnlrnte tlr lo5 sistelnas tits t)ast,s tle datos distril)uitlas. Sin cml)arpo. hay ciwnnstancias en las clue 1111 sisttm~atlistriI)uido pnetlr 110 prrsrntar ventajas. En situationrs dolidt: tenga lugar m a gran rantidat1 tlr c*o~nunit*aciirt~ rntrt. los sitios. el so11rt:costo ell clue sr 1 ~ 1 t ~incnl-rir lt' I)or las coordinacioncs y las tareas d r control puetltx d r p a c l a r srvrramrnte r l rt.ndimiento. Esto purtlt* ser t~specialmtmtecirrto c11ando se manticnr~lcIup1it:ados tlr 10s tlatos r n sitios tlifrrrlltc*~y. par ctmsigniente. stbnecesitan recursos extra para asegnrar qntSlas at*tualizacionrs~ I I Cse hagan d c modo t8011currrntt~ sean consistentrs. Rrsumamos algo estr hltimo aspwto. La vcntaja de rrplicar 10s tlatos es la \rlocidatl qile s r gana en procesamirnto en 10s sitios r n donde s r nlantengan clichos duplicados, asi como t.11 q u r jwrmitr disponer tit- ctrpias tlr seg~lridadpor si ociirrta 1111 fallo en algima lotdidad. Tales tlaplicacionc~simplic*anusar almacenamientn estra y el procesamicwto de las transat.riones y la r e c q ~ t x w i h nd r datos se hace mLs dificil. Cuantlo .sr prot8rsrm a transat.tihn h a 1)iletlrprovocal- un recjuisito de leer y actualizar datos en 10s diferentrs sitios y en transmitir 10s mmsajes rrspectivos rrltre rllos. Drsp11C.stlr clue cerrarsc una transaccibn, el sistt.ma dr haws d r datos distribuida (SRUD) dehe asrgurar c p e todos los sitios relevantes hayan rompletado su procesamicnto. Shlo si el procwamiento condr~yonormalmentr r n cada lugar deheria cerrarse la t r a n s a w i h . Dr lo contrario, la transaccibn cleheria tleshat.rrsc en eada uno dr 10s sitios participantes. P o r illtimo. conseguir tpir 10s datos r s t h chponihlcs a 10s nsuarios a travk cle una red h a w cjur el 11rohlema tle scguridatl sea inherentemcnte m i s complcjo en 10s sistrmas distrihuidos que r n 10s sistrmas cmtralizados.
DISENOY ADMINISTRACION DE BASES DE DATOS
Un modelo general de SBDD (DDS)
ristc~naclc gcsti611 cle I ~ a w sclr clatos distrilmida (SGHDD). El sot'lwaw cltw prstiona t.1 sistrma t l v 11ast.stle tlatos tlistril~uicla.
transaccirin local. Lna trausawiiln tlut. reqnierr un h i t w agrnttx. transaccibn glol,al. Uua transarcibn quc rrcpirrr Iarios agentrs.
1c.s. .lt1icio1lalnic.ntv twlu lugar 111ietlrp r o t w a r t r a n s a t ~ i o n r tjut. s recjuirl-rn tlatos tluts vst2i11 almac~rnat1ostm otros sitios (tlatos plo1)ales). Ksto rrtlnitw t p e las 11asc.s (11%tlatos lot~alrs s t h mc ~ a p w r s d t comnnit~arst~ . tlntos rntrtb si. Las conrxiont.s tlc t ~ ~ ~ ~ ~ u r ~ qntX i.t ~ a.p t ri .iq, n~ w t h m i las car~atitlatlesnet*rsarinstlr transfrrrncia s r lla~nanenlace* (1irlh.s ). La ritruc'twa tle e n l a t ~ l)rintli~ t~ la arqnitwtura 112isit.a tlr un sistenra d e gt:sti6n d e base tlc datos tlistri(~ las haws tle tlatos tlistril~~~itlas. 1)uitla (SGBDD) '. t~ut'rs el sistrnia tit. softunrr t ~ ugt'stiior~a Varies SGKDDs ban sitlo inq~lrrnrntadoso t&n en tlrsarrollo. E n t r r bstos sr intd~iyen Systc*rnf o r Distrilmtecl clatabasrs (SDD) ( C o n q ~ u t r C r o q ~ o r a t i o nAmrric'u). R" (1BM) !-Distributed INGRESS ( IErlational l;t-hnology). El popular DB2 tle IHM int.li~yt.algiin q o r t r (It. t1istril)utividad. lo niismo clue INGRESS/ST,IIZ y Orat*lt.7. 1111SGBDI) r s 1111sistnna t.onn)nrsto tlr varios K B D s o ~ ) r r a n d otbn sitios lot*alesv t p S r s t i n c.onrt.tatlos t101- facilitlatlrs 1 1 t h manejo tie mensajes. RI tlit*tionariotlr tlatos tlrl SGBDD iiwlu!~r la inf'orniatihn nsnal newsaria para la gestibn tlr los tlatos junto t.ou la , ~ ~los inf'orn~atihnconcrrnirntt. a vatla lot~~litlatl. a la dnplit.acibn y a la f i - a p n t ~ n t a c i i tlr tlatos t.11 varias relacionrs. E n la mrilitla en tjuc s r protbrsrnlas c*onsultasp a r a rrtmpt.rar o a r t i d i z a r clatos. el tlic.cionario tlc tlatos tlrl SCBDD puedr proporcionar la iulormat~ihn rrtjurritla sol)rt, la lotditlatl 1; la tlnplicacihn, mirntras tjuc asrgura q u r las actualizacionrs s r propagan a las lot:alitlatlt~sapropiatlas. El tlic'cionario dc tlatos tlrl SGBDD l)nctlc ma11tenrrsta nl un lugar twltralizatlo, o sn1)t~onjuntosdel mismo pueden tlistri1)uirst. rntre varios sitios tle a t w r t l o 21 las nrtwitlatlrs. Una copia completa tlrl tliccionario tlr tlatos aotlria rntonces ohtrnrrsr hacientlo una n n i h tie todos 10s subt:oniuntos distri1)nicIos. Los usnarios intrractiian con rl S(;BDD rjrt:ntantlo programas clue st: llaman transawiones. Las transact.iones tbn tnlrs sistrmas no estcin ya restringitlas a nn solo prowso wntrolatlo por uu mbtlulo tie softuarr. sino q u r putden invocar nn conjunto d r protwos rooprrantw. fnnt~ionantloen varios sitios y controlados por m6dulos intlt.pcutlieutes d r software. Catla uno tle estw Ilrocrws twoperanteb r n la transacci6n se llama u n a p r n t r . I na transacci6n tjue rrcjuierr shlo 1111 agente s r llama transaccion local. llna transaccibn (pie reqnierr u r i o s agrntrs st, denoinina transaccion global. IJn agrntr (laclo l)netlr s61o accetlrr a 10s datos controlatlos por sn software tlr gestihn tlr tlatos l o t d . Accetler a 10s tlatos tle otro sitio rrcjniere de la twoperaci6n rle lo$ agentes tlr esos sitios. Un agrnte qne inicia una transawihn s r llama agrntr initiador. El agrntr initiador p u r d r tlemnnclar la at-tivacicin tle agrntrs tlr otro sitios para poclrr accrtler a 10s tlatos nrcesarios. Una vez qur esth activados, dos o mas agrntrs st: pneden comunicar A Las transacciones acceclrn a los registros metliante operacionrs r w d (lectura) y write (escriturn). Read (x) rctorna el valor actual d r x. Write (x. nurvo valor) actualiza el n las Ordenes reat1 y write a1 valor a c t d tlr x a1 nurvo d o r . Una t r u n a a ~ ~ i i rrxpidr SGBDD y rjecuta las tmtratlas y salitlas p o r rl trrn~inal. Cada sitio partit-ipnntr en el SGBDD tipicamente ejrcuta nno o mcis d r 10s siguicntes mi~tlulosde softwart;: 1111 adminiitrador d e transaccionrs (AT), un administratlor cle clatos (111)) o un planificatlor. La Fignru 12.1 ilustra sus interrrlaciones. Las transat:c.iones se
SISTEMAS DE BASES DE DATOS DlSTRlBUlDAS
comunic.an con loc; ATs; 10s ATs con lor planificadores: 10s planificadores se ccrmunican etitre ellos y tam1)ii.n con lor ADS y 10s ADS administran los datos. Estos concepton st. ilustran a h m i s en la Figura 12.2. Cada transac.ci6n comunica todas sns lecturas y escritnras a un unico AT. Una transaccibn tam1)ii.n rxpitle nna operacibn begin (rmprzar) a su AT cuando comienza su ejecul c:uando ksta finaliza. El AT comunica cada lectura y esrricihn y luego nn ~ n r (terminar) tura a1 planifit.ador, La seleccibn clel planificador se determina por "11 algoritn~ode control caonc.urrente,aunque cl planificador cjue se escoge mhs a menudo esti en el mismo sitio que los tlatos sobre los clue se esth operantlo. El planificatlor cwntrola la secuencia en la cual 10s ADS procesan las brdenes de lectura y rscritura p mantiene el control de concurrencia. Cuando un planificador recibe una instrucci0n de lectura o escritura. el planificador puede procesar la instruccibn inmediatamente, tlemorar el procesamiento guardantlo la instruccibn para su accibn pusterior. o rwhazar la instrucci6n en el caso tle un error de transmisi6n, violacibn de acceso o algun l)rohlrma similar. El AD ejecuta csada lectura !. escritura que recibe. Para una lectura, rl AD recorre su base de datos local y retorna el valor solicitado. Para una escritura, el AD n~odificala base de datos local y retorna un reconocimirnto a1 planificador, que lo envia de regreso a1 -4T y Cste lo regresa a la transaccibn. Transacclon BEGIN -
READ (x)
WRITE (y)
END
Planificador
AD
396
red d e area amplia (WAN). Una red de computadoras en la que 10s sitias ~ 5 t h bastante disperses geograficamente. red d e Area local (LAN). Una red de computadoras en la q u r los sitioo estin uhic.adoq a corta distancia (por lo general menos de una milla) uno de otro.
DISENOY ADMINISTRACION DE BASES DE DATOS
"
IJos SRDDs a menudo enlazan sitios bastante clispersos geogrifiramente. Estos sistemas se denominan redes amplias d e datos (wide area network) (WAN) .Mtrrnativamente, 10s sistenias cle base d e datos distribuidas puetlen organizarse para servir a redes dc i r e a local (local area network) (LAN) ".tlonde las estaciones de trabajo tle las oficinas son 10s sitios y hay enlaces e n t r r las estacionrs d e trahajo. E n amhas variantes 10s sitios pueden enlazarst: d e varias maneras. Los enlataes entre 10s lugarrs se corresponden con la estructura de u n grafo: Los sitios s r cwrresponden con los vbrtices tie u n grafo y 10s rnlaces entre 10s sitios se corresponden tmonlas aristas de un grafo. Los enlaces usuales tle u n W:iN son las lineas trlrfhnicas, canalrs d e satdites o enlaws por microondas. Los enlaces tipicos de los LAN son de alta velociclatl y estiin sujrtos a hajos indices d e error. La cercnnia (menos de una milla) de las estacionrs de trahajo dr un LAN permiten usar enlaces p o r cables coaxialrs o d e Sibra 6ptica adrniis de cables de p a r trenzado. E n la Figura 12.3 s r ilustran dos configuracic~tirsgrniricas de WANs. 1,a confignraci6n ccrmpletamente conectada requirre de n(n-1)/2mlacrs. Cotno rste tbrmino es del orden dr 12, el nilmero dr enlaces crece ripiclarnentr segi~naumente el nilmero de siticrs y, por lo tanto, aumenta el wsto dr itistalaci6n y mantmimiento. Aunque una configuraci6n totalmentr conectada nos hrincla una gran flrxi1)ilidad y fiahilidaci, la mayoria tle las instalaciones usan redes parcialmente conectadas por su mejor costo-efectividad del diseiio tle implementaci6n. Los disefios LAN usualmrnte s i p e n arquitecturas como las qne se muestran en la Figura 12.4.
(b)
(4 Completamente conectado
Parcialmenteconectado
, ,
Bus
Por srr siglas conocidas sc mantienen en ing1C.s (N. dcl T.). "or ser siglas eonocidas sr manlienen en in@ (N. dr:l T.).
SISTEMAS DE BASES DE DATOS DlSTRlBUlDAS
397
Cacla localizacihn rn un s i s t p a cle 1)asr de datos distrit)uid:~deberia ser capaz cle proc:rsar transacciones qur accrclan a datos propios, asi como tamt)ibn transacciones que ~.rquieranclatos tlr varias localizaciones. Los sitios de una red pueden cstar conectaclos lisic.anientc~cle varias manrras. En la Figura 12.3, un mlacc entre dos sitios significa una cwwxibn directa entrr rllos. La selcccihn de una configuracih sobre otra es normalmente una funcibn tlr:
1. El wsto de enviar un mrnsaje tle una estaci6n A a una estacihn B. 2. La frrcucnela con la rual un enlace o una estaciim falla (fiabilidad). 3. El graclo en cl clue se pueden accrcler 10s datos independientemente de 10s fallos d r algunos enlaces o estaciories (clisponihilidad).
4. La frewencia y rl \olnmrn de clatos que se debe acceder. 5. El wsto de enlazar fisicamente la, r,tac*iones en el sistema.
Diseiio de un sistema de base de datos distribuida El diseiio de un sistrnia cle base de datos distribuida puede resultar una tarea wmpleja. Se tlrlwn havrr vonsidrraciones mny cuidadosas sohre 10s ol)jeti\os y las estrategias que dehen servir a1 c l l ~ t i oy se dellen, en paralelo, tomar decisiones solwe rhmo hay que distril~uir10s (lato, rntre 10s sitios de la red.
Estrategias y ol~jetivos En rsta wccibn se analizan algunas de las estrategias y ohjetivos que son comunes a la mayoria cle las implementaciones de lob sistemas de bases de datos distribuidas. Transparencia d e la ubicaci6n. La transparencia de la ubicacihn permite a un usuario acceder a 10s datos sin conocer, o t m e r que ver con los sitios en 10s que residen 10s mismos. Las uhicariones de 10s datos estin ocultah a1 usuario. Transparencia d e duplicaci6n. La transparencia de duplicaci6n de 10s datos significa clue si existe mis d r una copia de 10s datos, una sola copia se debe escoger cuando se van a rrcuperar datos y todos las copias se deben actualizar cuando se hagan camhios. Estar escogicntlo una copia de 10s datos para la recuperacih y asegurando que siempre se actualizan todas las wpias de 10s datos puede ser una carga para 10s usuarios. Un SGBDD dehe hacerse cargo de tales rrquisitos y liberar de esto a 10s usuarios, permitikndoles coricentrarse en sus necesidades de informaci6n. Independencia d r la configuraci6n. La independencia de la configuraci6n permite a la organizacicin aiiadir o reeniplazar hardware sin tener que estar cambiando 10s componentes de software existentes en el SGBDD. La independencia de la configuracihn significa tener un sistema que se pueda expandir cuando el hardware se sature. SGBDD no homogineos. A veces es deseatde integrar bases de datos mantenidas por diferentes SGBDD sobre computadores diferentes. A menudo 10s SGBDD son suministrados por diferentes fahricantes y pueden soportar tliversos niodelos de datos. Un enfoque para integrar estas bases de datos es proporcionar una hnica interfaz de usuario que pueda ser usada para acceder a 10s datos mantenidos por los SGBDD no homogkneos. Los diferentes niotlelos de datos soportados por 10s SGBDD no homogkneos se le ocultan a1 usuario nlediante esta unica y amplia interfaz. Duplicaci6n d e datos. La duplicaci6n de datos ocurre si el sistema mantiene varias copias idknticas de una relacihn, R , con cada copia almacenada en un sitio diferente. Tipicamen-
DISENOY ADMINISTRACION DE BASES DE DATOS
te la duplicarihn se introdure p a r a aumentar la disponi1)ilidad clel sistrma: cuando nna twpia no esti. dis1)onil)lt. tiebido a n n fallo de nn hitio. seria 1)osil)lc tener a t ~ e s oa o t r a t-opia. La tluplicacihn tam1)ii.n puede mejorar el rendinliento. puesto q u e las transactiones tienen mayor pro1)al)ilidad d e encontrar una ropia localmrnte. El intwn~enientee s t i en el costo extra tlel almatwmniento aclicional en (4 mantenimiento d r la consistencia mntna entre las copias. La act~~alizac*ihn cle nna cwl~ialocal irn1)onv el solrrecosto dt. transmitir la artualizacihn a todab las copiai. Formalniente las ~ e n t a j a hdt, la duplic.ac*ihne s t i n en:
1. Si una d r las estaciones clue twntit.ne nna rc:lat:iim K falla. la r c l a r i h p w d e r e r u p e r a r w tdr otro sitio )- el sistrma 1)uede rontinnar cualquier proc.cwmiento qnc involutw a R . P o r tanto. se nlejora la dispot~il)ilidaddc la 1)ase tlr tlatos. 2. Si la mayoria dc 10s accesos a R d o involucxm una Iertura cle la relacihn. cmtontw u r i o s sitios pndieran (.star proresando consultas. qut* involucren a R . c.011c:nrrcmtemrnte. Mientras m l s twpias haya de R a lo largo dtx la red. ntayor cs la posibilidatl de t p v una t~onsnltapneda rj~scutarsesin rrquc,rir tlr transmisicin de datos entre las estacionc.~.Lo yne significa ganant-ia cn 10s rostos )- tsn tiempo. La tlesvtmtaja principal es quc, cl sistrma d(~1wasepnrar clue son itl4ntic.a~todas las tvpias (le R. P o r tanto. cuando ocwrra m a actnalizacihn dr R , tal artnalizacihn de1)eri propagarse a todas lab lotdidades (.on ~1 rorrespondiente aumrnto de roste. P a r a las l ~ a s c sde datos con duplic.acihn hay a1 mrnos dos iml~lementacionesaltvrnativas. E n nna de Gstas se tuanticwe una I m c . de datos centralizada d e la cnal se extraen ropias de p r r i o n e s para uso 1oc:al. Esta rednndanria se ve cwmlwnsada 11or la r t d u r r i h dr 10s costos de comunicaciones del)itlo a yue los clatos e s t i n alrnat~enindoseloralmente. La fiabilidad tamhiin se mejora, puesto clue la pbrdida d e 10s clatos cn nna localidad puetie restaurarse por la copia tlr 10s datos clue se mantiene en otra 1ot:alidad. La segunda alternativa r s omitir la base de datos centralizada y duplicar srgmentos d e la basr tle tlatos m 10s sitios clue tienen 10s usuarios rnis fretmentes. Con esto se ?\itan 10s costos d e mantrnrr la base (l(: datos centralizada, p r r o pneden c r e t w los costos e n comunicaciones. Partirionamiento de la Base d e Datos. Podrmos Iograr nna mayor eficacia con una estrategia qut: implemente una base de datos particionada. Con estv c n f o c p ~ ela~ base d r datos s r distrihnyc de m o t h q u e no haya solalmniento o duplicacihn de 10s datos nianteuidos c:n las difrrentes lotdidades. Puesto que no ha! tluplicaciones de 10s datos. se evitan 10s costos asociados con el almarenamiento y mantrnimimto d e datos redundantes. Sin eml~argtr. la disponihilitlad d e 10s clatos se ve limitada si un mismo srgrnento d e dato se nsa ell m i s d e una localidad. La fiabilidad tamhi6n ~,urcleverse afectada, puesto t p r iin fallo de un sistema d e cilculo significa q u r los datos aln~at~enados en esa localizarih no e s t i n disponibles p a r a 10s usuarios en rualquier parte en el sistrma. Puesto que el entorno distrihuido del SGBDD permite q u e una base tle tlatos esti fisicamente particionada, la srguridad tle 10s datos se puede mejorar, en es1)rcial cwando 10s segmentos de la particihn tienen diferentes necesidades d r seguridad. La forrna mlis elemental d e implrmmtar nna base d e datos particionatla es t r a t a r a ksta como una serie d e sistemas de bases de datos q u e operan indepentlientemmtc: con capacidades d e acceso rrmoto. Una alternativa, clue rs en parte m i s rompleja. es nna en la cuallos sistemas de bases de ciatos se intcgran, de motlo que una unica t:onsulta del usuario puede requerir acceso a m i s de uno tle los sistemas de haws de datos. Mientras que las complejidades subyacentes quedan transparentes a1 usuario. realtnente pueden rstar implicadas bastantes operaciones. Pmsemos, por rjemplo, en m a o p e r a c i h relational como una reuni6n (join) que requiere de taldas que e s t i n mantenidas m dos localidades diferentes. Este prohlema sc v e r i con m i s detalle dentro de poco.
399
SISTEMAS DE BASES DE DATOS DlSTRlBUlDAS
Fragnentac-iciu dc datos. I,a fr;rpnentac:ii~nde datos sc. a1,lic.a a 10s ~ihteniasdv haws dr datos relacionalrs. Esta st. refirrc a la fornia en la cual 1as relacionrs st. pnrtlrn s111)dividir y clistri1)uir m t r e los sitios dr la red. Esta t8suna rxtc.nsii,n d r la rstrategia tlr 1)articionar 10s tlatos. la cwal por lo grnrral tirne qne v r r con la nllicacihn clr rclaciones ( o archives) cwniplrtas dr la l ~ a s ti(. r datos (In varios sitios. (l'1.agmentos) K,. Si una rrlatiim R s r fragment;^. Csta s r dividr ru snl~c~onjuntos R.,,. ... .R,,. La unihn d r esos fragmrntos rrconstrnyc, la relati611 original K . Esta fraprnrntacibn puetle ser horizontul. la cwal asigna tnl)las a varios f r a p c m t o s o l)iicd(~st^ ~~ertircrl 1.n la q n r 10s a t r i h t o s selec*cionadoss r proyrc8tancn varios fragmrntos. i,Por qnC. considwar la frapnrntacibn? Segiln srfida Rilairr (1083), nna hasr IIC datos d r las rcservas tlv m a arrolinra pnrtlc nsarsr cwn mLs rfertividad si 10s su1)conjnntos clr la I~ase de tlntos se alrnac.c:nan m la localidad en la quc. se orik~nanlos vuelos rrspcbc.tivos. Sin~ilarincSnte7para nna Iww cle datos tlt. nn I)anc:o, pnedr scbriltil almat-mar 10s sul~conjuntosd r la l);lsr de datos m las 1oc:alidades rn ruyas suc:ursales r s t i n localizatlas las rrsprrtivas c*nentas. Si s r pcrmitr la fragmrntacibn, nna relacihn dada no n w r s a r i a ~ n r n t rsr alniacena conipletan~rntcen 1111 ilnico sitio. Sns sld)(~onj~intos s r distribuyrn cwtre varios sitios por c~onsidci~ac~ionrs de rrndimiento. Es niLs? estos sabconjnntos pnedrn cliil)lic.arse. Frngn~entacicinliorizontal es la divisihn dc las tuplas dr nna rrlarihn en f'ragmcntos. Usnaln~entrrstos fragn~rntosson clisjuntos y puederi rstar duplicaclos. Dc rsta manrra. la dul)lic*acibns r gcstiona ul nivel clr la fragmrntacicin y no a nivel tlr tuplas individualrs. P a r a ilr~strarla fragmrntaci6n horizontal suponga clue la relacihn R c,s la rrlacbi6n YUElA) d c la Pigura 12.5. Esta rrlatiim pnedr dividirsr en 110sfragmrntos, catla uno contcnienclo Ias tuplas clue identifican u n origcn conpin del vnelo (SF y Den) '. Tal fr;~grnentacihn st. define formalmrnte romo nna SELECCION s o h r la relacii~nR; csto es. R, = SELECT ( R : )
P a r a nurstro rjcmplo podria s r r VUELO-DESDE-DEN = SELECT (VUELO: ORIGEN = ' D e n ' ) VUELO-DESDE-SF = SELECT (VUELO: = ' S F ' )
En la Fignra 12.6 s r muestran lo5 fragmentob rrstiltantrs. El fragnirnto VUELODESTIE-SF se alniawna en r l aerovuerto de San Francisco F r l fragnento VlTELO-DESDEDEN ir almacena m (11 arropnerto 4e Denver. La relacibn original se p u r d r restaurar Ilrvando a caho wra operacicin d r UNION dr VUE1,O-ORIGEN-SF y VIJELO-ORIGEN-DEN. Los frarrmentos antc,riores son horizontalniente clihiuntos. Esto r h . no octtrrrn instancia5 d r t u ~ ~ l m a s mhs d r nn fragmrnto. Sin eml~argo,podriamos tener qutSuna tnpla particular tlr R a p a r r w en inis tic una lr. P o r rjemplo, en San Francisco podrmos querer almarrnar las tuplas q u r s r or~ginanen San Francibco, asi cwmo aquellas quc. llegan de LL\
'.
VUELO
Origen Den Den Den Den SF SF SF SF
'
-
Destino SF SLC SF SF Den Den Den SLC
Hora de p a r t i d a Sam 7am I Pm f3~m 8am 12pm 5Pm 9am
Hora de l l e g a d a loam 8am 2Pm 7Pm llam 3Pm 8Pm llpm
Sr rrspctan las a l ) r ~ . \ i a ~ u rcn a s inglbs tic4 original, posiblernentr d r laa ciudadrs San l.'ranc.isc.o y Lknvrr (N. del T.). .' Siglas twr las qur sc conow m Estaclos llnidos a la rindad d r Los Angetes (N. drl T.).
DISENOY ADMINISTRACION DE BASES DE DATOS VUELO-ORIGENSF Origen Destino SF SF SF SF
H o r a de p a r t i d a
llam 3pm 8Pm 1 1 pm
VUELO-ORIGEND Origen Destino Den Den Den Den
L'ragmentaci611\ertieal. Particionar m a relarihn 1""' la pr.tr!ec*c.i6n tlrl ~ ~ ~ l ) r o n jcle ~ ~s nu t ~o atrihntos.
H o r a de l l e g a d a
Den Den Den SLC H o r a de P a r t i d a
H o r a de L l e g a d a
SF SLC SF SF
loam 8am 2Pm 7Pm
Fragmentaci611 vertical es la clivisi6n tlel ronjnnto cle atrihntos d e nn o1)jeto r n subcwnjiintos, qlie pnetlen solaparst.. T,os fragm~nto5be o1)titmen proyec.tando la relaci6n original sohre c d a cwnjunto de atril)utos. P a r a asegurdr que las pro)wcionrs son una debwmpsiirii,n sin pCrclida dr In rchwiOn, rada fragmento vertiral c o n t t d r i normalmente m a elale para la relaci6n. La fragmentacih vertiral se tlefinc eomo Rl=
R [
R purdc* recwnstruirse d r fragmentos nlediante m a rtwni6n natural ( n u t u ~ join): d R = JOIN ( R,,
R,
. . .,
Rn)
La fragmentac*ibn vvrtival reqnirre dt: la atlici6n cle un atrihuto t y e r i a l para identificar la tupla. El atrihuto de identific-aci6n tie la tupla (ATT) es una direccibn d e una tupla. Pllesto q u r las 11irec:c:iones son hriicas. el ATT funciona conlo una c l a w para el esquema ampliado para R . En la Figura 12.7 se niuestra esta adici6n d e un atrihuto A1T. En la Figur a 12.8 mostranios la rrlaci6n VUELO descompuc$sta verticalmente en 10s esqnemas VUELO1 y VUELO2. Estas relaciones son el resultado de calcular: VUELOI = VUELO [ORIGEN, HORA-PARTIDA, A I T ] VUEL02 = VUELO [DESTINO, HORA-LLEGADA, A I T ]
Para rewnstruir la relavi6n VUELO original a partir de 10s fragmentos, se calcula: VUELO = JOIN (VUELOI, VUEL02)
VUELO Origen Den Den Den Den SF SF SF SF
Destlno
H o r a de p a r t i d a
H o r a de l l e g a d a
AIT
SF SLC SF SF Den Den Den SLC
9am 7am 1 Pm 6Pm 8am 12pm 5Pm 9am
10am 8am 2Pm 7Pm llam 3Pm 8Pm llpm
1 2 3 4 5 6 7 8
SISTEMAS DE BASES DE DATOS DlSTRlBUlDAS VUELOl Origen
Den Den Den Den SF SF SF SF VUEL02 Origen SF SLC SF SF Den Den Den SLC
H o r a de p a r t i d a 9am 7am I Pm 6Pm 8am 12pm 5pm 9am
H o r a de p a r t i d a 10am 8am 2Pm 7pm llam 3pm 8Pm 11 : 30pm
AIT 1 2 3 4 5 6 7 8
AIT 1 2 3 4 5 6 7 8
Distribueih de arehivos no fragrnentados E n la sec:c:icin anterior hemos ;~nalizadolas formas de particionar las rrlaciones entre sitios de la red. E n esta secci6n se considerarli el caso en el clue relaciones completas se uhican en 10s sitios. Este es sirmpre una cuesticin central en el diseiio e implemmtaci6n d r los sistemas de haws de datos distrihuidas. La razcin principal es clue la mayoria de 10s archivtrs son no fragmentados porque hay muchos accesos importantes que lo q u r newsitan es recuperar todos 10s registros en 10s archivos. El mi.todo que destacaremos para determinar la asignacibn de 10s archivos h a sido adaptado de Bell y Grimson (1991). La funcibn ohjrtiva de este mttodo es maximizar el acceso local, sujeto a restricciones d e almacenamirnto. Esto es realists, ya que el costo d r aiiatlir una relacibn a un sitio no incurre m un costo marginal signifirativo en tanto no exceda la c-apacidad de almacen;~miento.P o r el contrario, el costo d e acomodar los requisitos adicionales d e almacenamin~tose considera excesivo si es a corto plazo. Esto es, aumentar las capacicladrs d e alniacenamiento puede ser necesario para un negocio crrcientr con grandes horizontes. Esto no hace daiio a nuestras motivaciones y aniilisis. Comenzamos definiendo la n o t a c i h a utilizar en la forma siguiente: el numero de sitios indexados por j. la capacidad d r disco del sitio j (en Mbytes) .I A = el niimero de archivos. indexados por i S; = 10s requisitos de almacmamiento tlel archivo i ( e n Mbytes) T = el numero d e transacciones, indrxado por k = frecuencia de una transaccihn k emanantlo d e un sitio j lZki = n i ~ m e r ode accesos (para actualizaciones y recuperaciones) rrqurridos por la transaccihn k s o l ~ r cel archivo i d . . = una varial~lrde decisicin a la que se le asigna 1si el archivo i se asigna a la estacihn j ; 0 en caso contrario. C. =
t;,
Q s ~ a srccihn purdr onii~irsrsin
pkrdida de continuidad.
DISENOY ADMINISTRACIONDE BASES DE DATOS
D t s a t p i st: tlrsprrntlr t p r 1.(1..= 1 para totlos lo?;i ta1t.t. t p t L 1 <= i <= F'. Las rt.stl-it.I !I. t*iont.ssol)rr 1.1 rspatio tlr almat.rnariilc~ntose p i ~ r t l r rexprrsar ~ por 2, ti ... s; <= c . para totlo 'I I . j tal qiw I <=j <= V. Es ttwir. 111srecjuisitos tlr altiiace~lanlientod r totitis los arChlvos wig(11. a l ~ n a t ~ r i i a ~ ~ ~ i t w natlos a unn c~stati011 tlrttwniuatla no l ) i ~ r d tr~w~t ld v r las t~al)at~idatlrs la cstat-ihn. Es miis,; t k b e s r r una d r las ,V t.st;~t*iont~s en la rrcl. I ) ,V11.) dontlr V..1 1 = l k , ~ , , ( i ~ , Note ~ , i . t p e 1;,: rs T,a fiinci6n ol)jt.tiva es mmirnizar (1.. 11 una metlitla tlrl total tlr atwsos asociatlos 1.0n iin irchivo tlailc~y m a trans;lwihn. I,a f i ~ n rrl attnellas lot.alidades tine titbnen los ralorts I,.. ti6n ol)jt%tivaintents ponc1r 10s ;~rcat~ivos !I n ~ h saltos. I'uesto tluv el acwwl rt.mc~toes m i s t*ostoso t1ur r l atvxso lot*al, st- t1est.a I I I ~ X I n ~ i z a rc1 a t w s o lwal. Esto sr aclara rntsjor con un r~c~n11)lo. Si~pong;mosqilr se tlcsran asignar ovho artahivos rntrv cintw sitios. t : a h sitio I Y I I ~20M11ytesd r aln~at:t.~~amiento r n tlistw. La Figura 12.9 n~uestrala raz6r1 tle atwso tle las transat.tiones il los art.hivos (IL,,.;). Por rjrml)lo, t d a vez clue sr iniria la transat.rihn I se r t y u i c r r ~ 10 i atwsos a1 ardiivo 1, 10 w t w o s al art-hivo 2, 10 atwLsosa1 art.hivo 5 y 22 actwos al arvhivo 8. La Figura 12.10 m ~ ~ e s t la r afrrvwrncia con la c.~ialxr grnrran las tiifcrrntcs transactionc:.s t l t d t : los tint-o sitios tlt: la red, por pt:rio(los (it. titwpo nniforrnrs. Por rjrrnplo. consitlrrr r l sitio 1. Estr gewr;] I2 transat.rionrs (It, ti110 :!, 20 tle tipo 6. :!tie t i p 7. 13 tit* tipo 8 y 4 d r tipo 0. La Figura 12.11 Inucstre el r t d t a t l o tlr multil~lic.arr l n i ~ m r r otie filas awedicta.; ptrr grnrradas rrl ceda sitio ti.. transawihn p o r numrro dt: transat*tiont~s !I. Segui~noserltoncw por pasos el prot:t:tlimiento siguientc: 111s
(51
Paso 1: C a l t d w J(i) = ( j' I 1,, = max V 1. I)it.ho I W I I palal)rns. para twla a r t h i \ o id1.11tificar rl iitio quv rrquiere el rAa)or nurnrro d e acceios. Estai son la6 d r a y tan
Transacciones 1 2
3 4 5
6 7
8
9 10
I
Sitio
!
SISTEMAS DE BASES DE DATOS DlSTRlBUlDAS A r c h i v o (tamano) Sit i o s 1 2 3 4 5
nrgrita d r la Figura 12.11. I)e rsta m a n r r a , sr idcntifica rl sitio clue tienc rl mriuimo ninnrro tlc acresos nara ratla archito. Asignar d..= 1 para totlas las entratias en negrita y d.. = O en 10s tirmis rasos. Comprol)& p a r a vcr que no sc, haya r x t d i t l o la c:apal!idad clr almacenamirnto tlrl sitio. ril sitio 2 se Ir han asignado archivos quc: requirrrn 10 Mhytes tlc memoria, p r r o shlo hay disponibles 20 Mbytrs. El mixirno V.. quc: se I)urdc. alcanzar a1 almarenar cwalyuirr arrhivo del sitio 2 se ohticme alAac*cnan(iolos archivos 1 , 2 y 8. La nueva tallla V.. (Figura 12.12) s r obtiene eliminando la fila 2 y las columnas 'I 1, 2 y 8 de la Figura 12.11 y recalcdando J(i). Estas son las entratias en negrita de la Figura 12.12. Asignar ti..= 1 a las entradas r n negrita; d..= 0 en 10s clemis rasos. El sitio 3 ' h u e uhiraclos 10s archivos 3, 5116 >- 7 clue rrquiercn m a c a p a d a d total clr almarrnamiento clr 36 Mhytes. El sitio estri sohrrrargaclo. " El miximo V.. q u r sr obtiene cle almacenar rualquirr archivo m cl sitio 3 s r alcanza alma&nanclo 10s archivos 3 y 7 . La nneva tallla V.. (Figura 12.13) se ohtienr eliminando la fila 2 y las rolumnas 1 y 5 cle la ~ i & r a12.12. El nuevo J(i) se indira por 10s valores r n nrgrita de l a Figlira 12.13. Asignar 1 a d..para las cmtraclas e n negrita y 0 a1 resto. A1 sitio 5 se 1;asignan archivos q u r requierrn 27 Mhytes. El sitio esth sobrerargatio. El miximo V q n e se ohtienr en el sitio 5 es asignindolr 10s arrhivos 4 y 3. A r c h i v o (tamario)
A r c h i v o (tamario) 4
Sitios 1 4 5
(10) 100 532 618
5 (10) 234 690 835
6 (7) 0 146 160
I
DISENOY ADMINISTRACION DE BASES DE DATOS
Total de Almacenamiento Sitio
Archi vo
MBytes usados
1 2
I I
3 4 5
Es fLcil ol)servar (fur (.I horrar la fila 3 y ];is rolumnas 1 y 2 dc la Figura 12.12 nos drja q u r cl archivo 6 sra asignatlo a1 sitio 4. La asignaci6n final se resume en la Figur a 12.14.
Proeesamiento distribuido de las consultas Algunos sistenias de basrs tlr datos soportan hases dc datos relacionales ruyas partes rstan fisiranwnte separatlas. Diferentes relaciones pnedrn rrsidir en sitios diferentvs. miltiples c*opinsde m a sola r e l n c i h ~pnedrn distrihuirse entrc, los difrrentes sitios, o una rrlacii~n l ) ~ w l estar c palticioriada en sn1)rrlariones y mtas s~ihrelacionesestar distrilmidas. Con vistas a evalllar una ronsulta t p e sr plantoe en u n sitio dado, pndicra ser necrsario transSrrir datop rntre \~ariossitios. I,a c.onsiderac%n (.lave aqni r s que el tirmpo rtyuerido para prorrsar tal cwnsnlta rsta grantltmentr comprometido p o r el tiempo que sr gasta en la transmisii'm d r 10s tlatos e n t w 10s sitios. mas quc poi- cl tiempo q u r se emplra en rerupcrar tlatos del alinac*cnamientos e c ~ ~ n t l a roi odrl (pie sc tarda en 10s cilmlos.
Semirreuniones (semioins) Snpongamos q u r las relaciones R y S clue se niwstran cbnla Figura 12.15 sc a1niac:enan en los sitios 1 j- 2. resprc*tivamentr. Si dcseiramos responder a una cons111ta dc:l sitio 1 que rrcpiera el cdculo de:
JOIN ( R , S) vodriainos transruitir tocio S del sitio 2 a1 sitio 1 v ralcular la reuni6n (join) en r l sitio 1. Ekto implicilria la t r a n s m i s i h de todor 10s 24 valores d r S.
Sitio 1 R
Sitio 2 S
SISTEMAS DE BASES DE DATOS DlSTRlBUlDAS
Otra forma srria cdcular
el sitio 1 y luego enviar T (6 valores) a1 sitio 2 para ral(w1ar
( ~ 1
U = JOIN (T, S) ; j,
finalrnente, enviar I' (9 valores) a1 sitio 1. Poclemos entonres c.onq)utar el deseado JOIN (R, S)
J O I N ( R , U)
En la Figura 12.16 se muestran estos pasos y sus resultatlos. Observe clue con este mfoque transmitiriamos s6lo 15 valores para complrtar la consnlta. Este rjcmplo sirnta las bases para definir una s e m i r r r u n i b . [,a ~emirreunibnde R (.on S es S E M I J O I N ( R , S ) = < una p r o y e c c i o n de a q u e l l o s a t r i b u t o s de R que se i n t e r s e c t a n con 10s de S > ,
lo cnal no es m i s clue la part' de R que w reune (join) con S. Por lo tanto, J O I N (R, S ) = J O I N (R, SEMIJOIN (R, S ) , S ) )
Si R j S ehthn en sitios diferentes, calrular la reuni6n de R ) S permite ahorrar en la transmisi6n de tlatos siempre > cuando R j S no st. reunan completamente, como queda demostrado en la Figura 12.16.
1 . T = PROJECT ( R : A 2 ) = A 2
2 . U = J O I N ( T , S ) = A2
1 3 . J O I N ( R , U ) = A1
A2
A3
A4
A3
A4
DISENOY ADMINISTRACIONDE BASES DE DATOS /
'
Integridad de 10s datos en 10s sistemas de bases de datos distribuidas
tTn sistvma tlc 1)asr de tlatos tlistri1)uiela clifiertb de un sistrma dr base (I(. datos wntralizatlo en q n r la base tit, dntos resitlr en un twnjnnto S tic. sitios. Como pnccle e s p w a r w . el twntrol (10 la integrithd ele 10s tlatos se conviertr en 11111)rol)lemacomI)licado en c1 rntorno tlr la red. [,as transac*rionc.s dejan de scsr serncw~iaslinealrs y ordrnadas de las awionrs sol)rr los datos. Esto qnirre clc*cirqur. p : s t o qne 10s tiatos rstiin tlistril~uidos,las artivitladt*~ tlr la transaccihn pnrtlrn tenrr lngar en difrrentes sitios y purde ser dificil de mantener un o ~ d r ndc- tiempo entrr las arcio~lc.?;. El p r o l ~ l e n ~m6s a cvmun rs t.n;~ntlo(10s (o mas) transawioncs se e j c w ~ t a na1 mistno ticwlpo y a n h a s requirren arcwo a1 n~ismoregistro dv datos ron vistas a romplrtar su procwamiento. Este pro1)lrrna de contwrrenria para las sistrnlas d r I~asestlr tlatos wntraliza17. El p r o l ~ l r m a r, n cierto n ~ o d o s. r e x a t ~ r h aen nn sistrnia tias s r rxamiua (-11 el (:apit~~lo distrilluido. pursto q u t ~[)11edr hal)rr muc*hastwpias dc 1111m i s n ~ orrgistro. Totlas las ropias tfe1)c:n tenrr 10s niisn~osva1orc.s todo el tiempo o dt. lo rontr:irio las transarcic~nrsoprrarian s o l ~ r cdatos imprrcisos. 1,a ~nayoriacle 10s algoritinos para el w n t r o l d r convnrrrntia d r 10s sistrmas d r 1)ases tlr datos 11istril)uidasnsan alguna forma d r r o n ~ p i - o l ~ c i c illara n , ver si cl rrsultado tlr la transarcihn es el mismo q u e si las acciones se rjecutasen secuenc~ialn~ente. P a r a implrment a r (.I control tle ronc.nrrencia se delle eonocer lo s i p i e n t c :
1. El t i p cle algoritn~od e planific.atibn utilizado. 2. La loralizacihn del l~lanific.ador, 3. C h o s r t*ontrolanIos d a t w duplicaelos. Kstos fartorrs proporc:ionan las hasrs para la r o n s t r ~ ~ r c i b111. n reglas clue: cletrrminen cuindo un algoritmo de rontrol d r cwnt*urrent:iars c-orrecto. Las rrglas s r 1)asan tw la troria d e la serializaci611 (theory qf s~riuliznbilit~). Cuantlo las transarrioncs se Urvan a t*al)o sec:uenc*iaImc.ntr. priniero se rralizan todas las arriones dc una transaccihn y luego sc ejecautan todas las acrionc*~ clr la transacrihn siguiente. No hay c:onrurrc:nria por Io que esto se Uama ejerucibn serial. Cuando las transat*tionesse cjecntan seruenc.ialmente, no p w t l m interfbrir entre si I)orqne s0lo hay nna artiva cads w z . Se vio en n n ejemplo initial (Capitulo 1 1) con demandas tboncurrrntes a la 1)asc. tlr datos de la Liga de las Mujeres por el Voto \ (I(: la ( h l a r a (I(' Coiwrcii~qnt: las transart:iones usualmentt. no se ejecutan r n scc:nenc.ia. sino tlnr se intwralan. llna ejrcurihn interc.alada dc las transarciont.~se dice scrializa1)lr si proelut.e el mismo rt:sultado clue el q u r produciria nna ejet*urihnscrializada de las mismas transac~cioues. Para forzar la srcnmrializat46n, 10s ATs u1)iraclos en cada sitio dellen cooperar para proport:ionar el twntrol d r concwrrencia, usando nlrt*anismosd e rierre o I~ltrqueo(locking) o poniendo marcos de ticnip) (timestornping). ( h n o antes, se tlehen proporcionar lob mrdios para p r r v r r las anomalias que pneden sr~rgiren contra d e la 1 1 u ed e datos rnando las transarcioncs se ejrcntan cw par;llrlo. Extendrremos ni~estrac:onsitleracih tle estos asl)ectos examinantlo algunos ilea 10s mi.todos principles para mantrner la integridad en 10s sistemas de 1)ases de ilatos distril~uirlas.
Protocolo de cierre de dos-fases Destle ternprano hemos al)rentlido que el mantenimiento d c la integridatl d e 10s datos requiere drl procrsamirnto atomizado d r las transart:iones. E n 10s sistrrnas rentralizados dt.1 Capituln 11esto se lograba retardando 10s ratnhios a la base d e datos hasta clue s r w m pletase una trnnsaccihn. E n un sisten~ade h e tie dntos tfistribuida hay mas rosas involuw a d a s . Antes d e cerrar las actualizaciones de una transaccihn, cada sul1transacri6n (aquella parte de la t r a n s a r c i h clue se ejeruta en 1111 sitio dado) dehe rnostrar que est6 preparada para el rierre. De lo contrario, la t r a n s a c c i h y tcrdos sus camhios se ahcrrtan completamente. La existrncia de subtransacciones en varios sitios necesita d e esta regla.
407
SISTEMAS DE BASES DE DATOS DlSTRlBUlDAS
P a r a q u r m a transaccihu esti. lista realmrnte para el c:ierre, todas sus acciones tle1)r:n h a l ~ e rc:uhninado completa y satisfactoriamrnte. Si alguna suhtransarcihn indica se ahortan que SI" a"'"'incs no p r ~ d i r r o nterminarse, entonces todas las siil~tr;~nsacciones y ninguno tle 10s rnlnhios se hacen ekctivos. Esta idea s r i h ~ s t r aen la Figura 12.17. Fornmalmentc.. el protocolo d e cierre d e dos-fases se eiecuta de la forma siguirntc:
'
prutocolo dr cierre tle dus-fases. Un l~rotorolo Fase 1. ( h s i d r r r una transac*c:ihn T, qne se inicia en u n sitio e invoca transac-ciaclue consistct en nna faw nes en otros lngarrs: asi (:orno en el sitio local (en el q u r se inicih T ) . T consiste completadr l)rel)i~ratl~~-l)ara-c~lmrnte d r s~ll~tr;lnsac.c.io~~rs. rada una r j r t ~ ~ l t i n d o sene n n sitio diferrnte. Las subtransac*ricrrr y nna t'asr tlr ciones del sitio l o t d s r denota coma la Cicoordinadora. Las otras sl11)transacciones stx drcisihn ( c w r a r o dcnominan participantcs. Cada subtransaccihn T i tlr 7' decide si c e r r a r o abortar. C;envia ahortar). nn n~cnsajede rjrepurudo-puru-el-cierre a todos 10s sitios en los q u r r s t i eiecutindose u n T,. T , 1r rcspontle a C, con u n mcnsaje tle voto-de-cierre o voto-cle-nborto. F u w 2 . Sr 11asa c.n la infor1naci6n qilr rt&e de la fasr 1, C:, determina si T puetle w r r a r s e o no. D r ac.nerdo a esto, C, cnvia m r n ~ a j c sde c e r r a r T o abortar T a todos 10s sitios T I . Puesto cjue se rcrjuiere (*onsensoen la votacibn de rierrc p a r a potler c r r r a r una transaccibn T, T no podri c r r r a r ki hay algun sitio q u r voth por allortar. u
La mayor li~nitacii,ndel protocolo de cirrre de dos fases rs clue tin fallo del coortlinador puc:de resultar en que la t r a n s a c c i h qucde l)loc[ueada hasta que 6str restaure. S r ha propuesto u n protorolo de tres-fases cjue evita rsta limitacihn, pero aiiatir gastos y costrs. E n la prictica. la pro1)ahilidatl tle que ocurra w t r 1,loquro es lo suficientemrntr haja conlo para q u r no se justifique el costo clrl protocolo de tres-fasrs.
Bloqueo distribuido Las transac.ciones glol~alrspuetlen involucrar varias transac:c:ionrs loralrs que se ejecutan en sitios diferentes. El SGBDl) d r h r asegurar quv estas transacc:iones se rjrrritrn en la secumcia apropiada. E j e ~ n p l o1. Supcrnga que la transacci6n T I rrsta 25 pavos d r l inventario y c[ar la trans;lt.t:ibn T2resta 35 pavos drl inventario. Es m i s , suponga q u e T I se inicii, en el sitio 1, T., st: inicii, r n el sitio 2 y q u r las copias del Registro d r Invrntario cle 10s Pavos (RIP) se mantiene m 10s sitios 3 y 4. Las transaccionrs globalrs T I y T , consisten d r transacciones locales en 10s sitios l , 2 : 3 y 4. T, dcbe iniciar tlos suhtransacciones q u r tlecluc.cn 25 del R I P tlc 10s sitios 3 y 4 a1 igual que debr hacer T2. El efecto dr estas transacciones clrbe estar coor-
-
TI
-
T-
cierre
T-
T,
todo Transaccion T
..
no
T,
Subtransacc~ones T,...
L
Tabortar
T-
T,
-L
Two pl~ctse( o r ~ ~ r rprotocol. ~it No hay u n tbl-mino arq)tatlo rn espaiiol para comrtrll, pndiera tlrrirw terrr~ir~nri6n, tlr cln~rsurtr(N. drl T.).
taml~ibndc
DISENOY ADMINISTRACIONDE BASES DE DATOS
dinado, tlr modo q u r el camhio en nna copia tlrl R I P no se haga si no sr garantizan los cambios en las otras copias d r l RIP. El SGBDD de cada localidad mantirnr un administrador d r 1)loquro (lock mtziac~g~r), t w elmirntos tle datos a1mac:c:'1"" administra las dernantlas de hloclncto y d e s l ~ l o t ~ ~de~ los nados en catla sitio. Los 1)loqueos sr pnrtlen aplicar de dos niodos: (:ompartido y euclusivo. Si nna transacci6n hloyuea un registro en modo twnpartitlo, puetlr leer este registro, p r o no actualizarlo. Si nna t r a n s a c c i h hloqura tin rrgistro en modo exc:lusivo, pnede lo mismo leer clue actnalizar el registro y ninglina otra t r a n s a c c i h purde aweder a1 re,'01stro mirntras esti. bloqueado tlr rstv modo. Dos transacciones no pueden tenrr a la vez bloqueo exc:lusivo sohre n n mismo registro. Sin embargo, cualyuier nGmcro d r transacciones pneden tenrr a la vez bloqucos c o m p r t i d o s d e un niismo registro. Si ha!; una i n i c a copia del rrgistro entonces el rrgistro 16gic:o es i d h t i c o a sn unica copia fisica. Los 1)loqueos adrcuatlos se mantienen enviantlo mensajes de tlrmandas d r hloqueo al sitio en el que reside la copia. El AT d r tlic-ho sitio purtle otorgar o denrgar el hloqueo. retornando dicho resultado al usuario. Sin ernhargo, cuando hay varias copias d e un registro, la tratluc:cihn d e 1)loquro fisico a bloqueo Ibgico se purde rjecutar d r difrrentrs maneras.
Bloqueo distribuido de dos-fases Recordernos que el hloyueo de dos-fasc:s (B2F) sincroniza las lecturas y escrituras tletcctando y prrviniendo esplicitamentr 10s conflictos rntre las oprraciones coucurrrnttbs. Antes de leer el rlrrnento d r tlato x, una transacri6n tlr1)e trner un bloqueo-lectura ( r e d lock) s o h e x. Antes tlr rscribir m x, dehr t r n r r un bloqueo-escritura (writelock) sohre x. La propiedad tlrl bloquro r s t i genrralmmte go1)rrnada por dos rrglas:
1. Transac*ciones difrrtmtes no puetlen poseer iirnultineamentr blocj~~eosclue rntren r n cwnflicto.
2. Una vez clue m a transacci6n renuncia a la propiedad d e un hloqucw nunca p i e tle ohtener bloqueos adicionalrs. La base de este m6todo es q n r un paso sirmpre purde prosrguir a mrnos clue rntre en conflicto con un paso prrvio de otra transaccibn activa que no sea ella misma. La vrrificaci6n d e esto en un sistrrna d e bases c k datos distrihuida es exactamrnte la misma; la cuest i h es c u i l rs la mejor manera d r llrvar esto a t A o . Una forma rs que el SGBDD comp r u r h r c u i n d o un registro accedido por el paso en cuestihn, h a sido accedido por una transac:ci6n activa. Usando estr rnfoque, se l r solicita a1 AT que ohtenga los hloyueos respectivos antes de lccr o vscrihir datos. Esto rs, el AT debr haher recihido un 1)loqurcr-leet u r a del SGBDD loral desdr el rual st: lee el dato. Similarmente. antes d r actualizar un registro, un AT dehe haherse provisto d e un 1)loqueo-escritura d e todas las t~asesde datos que alrnacenan el registro en cuestibn. Ilustremos rstas ideas con un ejrmplo. Ejemplo 2. Suponga clue una transacci6n T e s t i compnesta de dos awiones d e la forma siguiente: que opera en el sitio 1 y escribe un nuevo valor para la copia R , del rrgistro R, v 2. T , , , , yue opera en el sitio 2 y escribe el rnismo valor que en (1) para la copia RL de R .
1.
Atlrmis consitlerr una transaccihn T 2q u r tiene dos su1)transaccionrs T?,,funcionand o en el sitio 1 y escribientlo un nnevo valor en R , y T , , , oprrando en c.1 sitio 2 y escribirnd o el mismo valor en R,, El 1)loclueode dos-fases se ilustra en la Figura 12.18. Observe clue podrian oclirrir simultinearnente pares de eventos en cada linra. Los eventos en rl sitio 1 sugieren q u r debe prrceder a T , , l .En el sitio 2, T I , ,dehe prewder a T , 2.
' Conncido cn inglbs pnr las siglas 2PL (two-phase lorking) I N . tfrl T.).
SISTEMAS DE BASES DE DATOS DlSTRlBUlDAS
BLOQUEAR R , DESBLOQUEAR R ,
BLOQUEAR R, DESBLOQUEAR R2
BLOQUEAR R , DESBLOQUEAR R , Sitio I
BLOQUEAR R, DESBLOQUEAR R2 Sitio 2
Una ticnica cle bloqueo de dos-fases primrro pasa por una fase de adquisici6n tle todos 10s bloqueos de la transacci6n y luego por una fase de liberar estos hloqueos: No se p r d e adquirir n i n g h nuevo bloqueo despuis qut: se haya liberado algi~nhloqueo. Papadimitriou (1988) prohb que 10s hloquros-lectura y 10s bloqueo-escritura generarin cronograrnas consistentes si y sblo si las transacciones procesan en dos fases. Esto requiere clue el AT evalhe y rrordene, si es necrsario, la secuencia de pasos que arrihan a cada sitio. El AT debe ser tin prograrn;r tlistribuido con un suhprograma llarnado mbdulo. ejecutando en cada sitio. El c:6rnputo tle un mbdulo es una serie de acciones tales como:
1. Hecrpc-ibn tle una accibn y otorgar su ejrc.uci6n 2. Enliar tin mmsaje a otro sitio. 3. Rrc-ihir un mensaje. Para mostrar qne esta estratrgia siempre genera cronogramas consibtentes, es necesario probar que el orden de 10s hloqueos permanere igual al de un cronograma serial.
Marcas de tiempo mama de tiempo. Un in6todo para idcntifirar lox mmmjcs con la 11ora dc transrnisihn.
Con un protocolo de marca d e tiempo (timestamp), a cada transaccibn Ti se le asocia una marca de ticmpo ST(T;) cuando m t r a a1 sisterna. Si Ti entra a1 sisterna antes que T. entonces ST(T,) < ST(T,). Las marcas (ie tiempo se conforman a partir de m a sdcurneia crecirnte tie enteros. El protocolo gestiona la ejecucibn concurrente, de modo qne sea equivalente a una predeterminada ejecwcihn seriel. Dicha ejecuci6n se define por el orden creciente de las marcas d r tiernpo. iC0mo fuerzan ]as marcas tle tiempo la serializaci6n del procesamiento de las transacciones? Con cada registro ( o elemento de dato) X en la base de datos, se iclentifican dos momentos: el tiempo de lectura (STL(X)), clue es la rnarca de tiempo rnis alta poseida por alguna transacci6n clue tenga que leer el registro; y el tiempo-escritura (STE(X)), que es la marca de tiempo rnlis alta poseido por alguna transacci6n que tenga clue escrihir en el registro. La serializaci6n se garantiza de las siguientes formas:
1. Una transaccibn T,, que tenga una rnarca de tirrnpo ST(T,), no puede leer o escrihir en X si ST(TI)< STE(X). 2. Una transaccicin TI, con marca de tiempo ST(Tl), no puede escribir en un registro X con tiempo de lectura STL(X) si ST(Tl) < STL(X). Para mayor c-laridad, para cualquier transaccihn TI, si ST(Tl) < STE(X), entonces cualquier operacibn de lectura realizada por TI, si se yerrnitiese, resultaria en que TI leeria un I alor qne ha 5ido bobrescrito por la hltima transaccibn. Todo intento de escritura
DISENOY ADMINISTRACION DE BASES DE DATOS
1""' parit' tle T I .si se p t ~ m i t i c w res~lltaria , t.11 e w r i l ~ i 1111 r valo~.~ I ~ s o l et1v t o X. An111o~ t'asos \ i d a n la sc.rializ;~cihn. por lo qne tlvlwrian rechazarse totlas las tlt.mand;~sd e estb tilw. En tales instancias. 1';d c l ~ e r i aalwrtarse. i~signlirselt.n n i ~nneva marca (111 tierrq~t~ \. reinitxirscb. tq~rrat*ii,ntle cwritnra por Similarmentt.. si ST(7';) < Sl'L(X). rntoncw t~nalqnic~r r new p a r k de Ti. si se permititw, significa clue el valor tlc Ti esti intentantlo e s c d ~ i luts . nna mwva nlarca tle sario previamrntc. Conlo antes, T i tlt~l)eriaa l ~ o r t a ~ wasigniirsrle tiempo \.. reinkiarsr. l r ~ s asigni~rtnercas 1113titmipo ilnicas. l!no r s ctxnHa! dos mbiodos ~ ~ r i n c ~ i p apara tralizado y el otro es dest~entralizadc,.En el nii.todo tlescentralizado sc. le tla a iinico sitio la resI~or~sal)ilidad tlr asignar Irlart*asd e t i t w l ~ oa las transac~tionrs.(:on el esqnvlna dest.entralizado. a t d a sitio se lc permite genc,ral- una finit-a n1arc.s d e tit~nlpolot-al. Lne mart-21tle t i e n ~ p og l o l d se o1,tiene d e cwnratenar los srllos tle t i c y w l o t d e s (*on(segniclo poi-) un itlentificaclor i1nit.o del sitio. Si la c.onratcnac*ihn se iuvirtiesr, 1.1sitio con el mayor identifieatlor generaria t*onsistc:llte~nentemarras dt. tietnl~omayortts q u e 10s den& sitios. Las n ~ a r c a sde tiempo de las transaccionc~spnrden t:rt:arse hatit.ntlo que el .IT Ileve la t w n t a del ninnero d e transawionrs clue ha planificado y que le asigne el prhximo n h ro a catla nneva transactihn. Dr tbstanlanera. tlos transac~ioliesno pueden r t d ~ i la r misma marca dt: tiernpo y su orden rrlativo es colisistentc. con el o r d m t.11 el (.ual se inicial~las trans;~cciones. lln segundo rnfocpw es usar el valor tie1 reloj intrrno d e la ~niiquinacn rl mon~entor n clue se inicaia el prowso. Ilnstrarrmos esto con 1111 ejenlplo. Ejelnplo 3. Etamint. la Figura 12.1'9. A T , ze Ie d a una n1art.a d e tiempo cle 2.5 1 a T, 11no d e 30. (El tiempo initlial d e let*tnray dc rst-ritura de 10s reglstros X y Y se asllmen clue i s 0). Cuantlo T I lee X a &te se le d a una nlarca tie titlmpo de Iectnra d e 25 (S'I'L(X) = 2 5 ) . Cuando T 2 cscrilw en Y se le tla un STE(X) = 30. Cnando T , cscril~c.crl l' trncrnos clue STE(Y) = = 30. Cnando T I intvnta 1ec.r Y . tenen~osclue S T ( T 1 =-2S ) 5 STE(Y) = 30. 7', clche ahortarsc, de lo contrario rstaria leyendo un valor cjue h a sido escrito drbpnbs clue el \ a h T I 5e deba leer. P a r a itnplernentar estc rsqucma en el entorno tle la base tle tlatos distribuida, sc necesitan seguir 10s I);ISOY siguientrs:
1. Las transacciones pucden rjrcutar en cualquirr sitio. Cnando rllas leen o escri1)tm alguna copia del registro. se captara la marca tle tiempo en la copia drl registro en el sitio. 2 . Si una transacxi6n rscril~eun nurvo valor para la copia tlcl registro en el sitio. el mismo valor s r tiene quc escrihir en todas las copias de dicho registro.
1 . READ R ( 2 5 ) 2. WRITE R (25 < 3 0 => a b o r t a r )
READ R ( 3 0 ) WRITE R ( 3 0 )
SISTEMAS DE BASES DE DATOS DlSTRlBUlDAS
Recuperaci6n de la base de datos
Sistemas clientelservidor I,os sistrinas c~lirnte/ser\itlor(CS) f'ueron estiidiados roil algiin tletalle en ~1Capitiilo 9. Se discutirin brrvenirnte los ( 3 r u este capitiilo par dos razonrs: ( 1) Son u n t i p wl~ecialtie sistenia tlr base (lr tlatos t1istril)uitla y (2) p a r a hrindar una introd1ic:cihu a aqllellos (pie se tiayiui saltado los c.apitiilos anteriorrs. El cstiidio d r 10s CS se harii e trvs nivrlrs. Primero, scbclrstacaran 10s conc~rptosgenrralw cjnr distiriguen a1 CS. lut.go st, rrlaciona14n h e vc.mthnteesos concq)tos cwn los sistcmas d r Irases d r tlatos. L u c y sr analiza tin ti])()particular d r CS: t.1 SQI, Server para Windows NT. Totlo csto en conjunto delw tlarle una conipre~isiii,ngtwrral tlr CS y dv su potencial para tlar soporte a sistrilias de 1)ast.s tlc datos. asi como algonas earactrristic*asdc m a implemeiitac~ihncii particular.
Conceptos generales El t6rmirio clie~~te/serz.idor (CS) no ri nurvo, purbto que loi siiteinai CS i n \ o l ~ r c r ' ~an niiirli,ii twnip~itadoraicwnwtadas en una red, r i un concepto q u r noi eitarli dailrlo kurltas por algun tiempo. Un concepto distintivo de 10s siitrmas CS es c p r line o \arias de rstai conq)utadoras puetlrn func.ionar como proveedorrs d r s e n ~ c i o sa loi reitantes cwmputadorei. El cliente rl srrvichr han sido definitloi formalnirnte como iigut. (Ullman, 1993): c'liente:
Unu cwmputatlora o m a ritaricin de trahajo conrt,t;ltlo a uria red ) que i e utiliza p a r a accedrr a 10%rrcBursosde la red. Servidor: Una cwmputadora que suniiriiitra a 10s clientes servitioi talci como haws de datoi, conexioneb a rrtl o prantlri controladores d e discw. Los srrvltlores pucdrn 5c.r grrrr~descmpr~trrtloras.minicomputadoras. e5tac.io1ic.i tlr t r a l ~ a j oo dispositivos LAN. Mas tle uti servidor pueticl estar involucrado r n iumiriistrar servicioi a lob rlirntes.
La argumentaci6n para atloptar una tecnologia CS e s doble. Primero, Gsta puedr reducir 10s wstos a largo plazo. Srgundo. la tecnologia CS facilita el desarrollo de platafornias orientatlas a las aplicacionrs esprcificas. Esta ultinia caractrristica puede mrjorar la capacidad de rina empresa para responder con rapidez a las wndiciones camhiantrs de 10s ncgwios. . coil tlos scrvidores, una base d r datos srrviLa Figura 12.20 tnurstra un sistema CS (lor y nn servidor tie fax. Suponga que un Clirntr A requiere datos que estiin contrnidos en el srrvidor de la I ~ a s dr r datos. El usuario rxprrsa la soliritud de 10s datos en forma d e m a consulta (por ejemplo, SOL) y transmitr Gsta a1 servidor de la Lase d e datos. El servidor de la hasr d r datos ejecuta la consulta sohrr sus tlatos y transiiiite el rrsultado a1 Clirntr A. Ail mismo tiempo, 10s Clientes B y C puederi solicitar datos drl servidor d e 1jase.s tlr tlatos y rl servidor de la base de datos purtlr d a r servicio a varias so1it:itudes en paralelo. El servidor dc fax puede suministrar nimeros de fax, asi como transiiiitir y recibir 10s fax p a r a Iosusuarios. Los sistemas CS intentan s r r sistemas ahiertos en el sentido d r que permiten a la o r g a n i z a c i h escogrr entre varios fabricantes 10s productos y componmtes del CS.
DISENOY ADMINISTRACIONDE BASES DE DATOS Estaciones de trabajo Cliente A
1
--IrJ
Servidor de base de daos
Servidor
Cliente C Estaciones de trabajo
Los elirntrs y srrvidorrs deben w r capaccs de comunicarsr r n t r r si. La trcmologia actual aharea tlos moclos de ronlunic.ac.ihn: n~ensajrsy llamadas a procedimirntos rrmotos. El intrrcamhio dr nwnsajes hisicamrntt. signifira que rl client? rnvia m a dcmancla (mcnsajr) y rl servitlor rrsponde a tal drmantla (mrnsaje). Una Ilamada a un protwlimirnto rrmoto prrinitr que una aplicacihn en un cwmputador llamc a tin procedinlirnto cjur p c S dc residir en otro rlirntc del sistema. Los clirntes s r cotnunican con 10s swvidorrs a travGs d r un programa (It: interfaz dc la aplicacihn (API) ". a vews denominado intcwnediario. Esto cs, las llan~adasa 10s procrdimitmtos rrmotos y 10s intrrc.amhios de mrnsajrs se manejan por 1osAPIs. A PISrfwtivos p r den facilitar la implt~mentac~i6 dr n u w a s aplic-acionrs ac:oniodando tlifrrmtes protocolos de red y sistemas operativos. En la medida tw q u r Ia trcnologia d r los (:S vaya madurando. las c-aracteristicasd r 10s ,1PIs prol)ahlrmrnte p a r i n a formar partr tle 10s sistemas oprrativos.
Aplicaciones de bases de datos dctualmrnte, las ap1it:aciones m i s comunrs clirntrlservidor usan una hasr dt: tlatos wlacional. Puedr rcfbrirsr de nurvo a la Figura 12.20. El w n j u n t o d r transacciones involuc n d a s son las drniantlas del usuario y las respurstas d r l sistema (It: base clr datos. Esta s r facilita p r el software, que habilita a1 d i r n t e p a r a hacrr las consultas a1 srrvitlor tlr la I m r clr tlatos. Un ejen~ploampliamente utilizatlo rs el lrnguaje SQL. Esto suena bastantr sirnplr. Mientras SQL proporriona medios estandarizados tlr at:t.rder a una hasr tle datos relacional, algunos fabricantes le han aiiadido modifirationes a sus vcrsionrs, que h a n h w h o que dos produrtos basados en SQL llegurn a s r r inc~ornpatildes. Suponga que uua basr clr datos c:liente/srrvidor ha sido drsarrollada para d a r soporte a la gesti6n de proyrctos 4 q u r el titulo y ihicaci6n d r l proyrcto s r tienen r n una base dtl datos XYZ y t:1 costo dt:l proyrcto s r t i m e en una basr d r tlatos ABC. Ambas 1)asrs tle datos usan SQL, p r r o n o son complrtamentr cornpati1)les. Cuando 10s usuarios rrquirr a n datos d r an11)as l m e s d r datos no quirren echarse encirna talcs incomr)atil)ilidadrs. Las necrsidades inmediatas de 10s usuarios son d r inforrnacibn cjur Ir ayude r n sus tarras. Es aqui en dot& el API cncaja a1 brindar la c a p d e software, transparrntr a1 usuario. q u r permite u n arceso uniforme a todas las bases dr datos.
SQL server para Windows NT SQL Server (SQLS) es un servidor de bases de datos que usa rl modelo rrlacional rstindar. SQLS usa conrenciones p a r a el procrsamiento at6mico de transacciones que se analizh en rl Capitulo 11, junto con el diario de operaciones dr escribir para la rrcuperacihri. P a r a el clirnte, el SQLS permite dos opciones tie API:
Por srr sighs rq~ahlecidas, se rnantirne en ingli.3 41'1
(Application Progrnrn Il~terfrrce) (Y.drl T.).
SISTEMAS DE BASES DE DATOS DlSTRlBUlDAS Estacion de trabajo Aplicacion
I
red
t I
1
red
Cl~entes
Respuestas del servidor
'"
clue es nna API para clientes Windows, DOS y OS/% de una plataforma cruzada dr SQL Server. 2. ODBC 'I' quc- cBsun APT uni\ersal de acceso a datos p a r a clientes Windows. E s r w cialmentr. ODBC c1s 4PI ahierto. neutral (no ligado a ningun fabricante). que permite qnc las apllcaciirnes hasadas en Windows puedan acceder a bases de datos heterog6nras.
1. DB-Lihrarj
La Figura 12.21 ilnstra la arrpitectura utilizando estos APIs. El DH-Lihrar! es un subconjunto de suhrutinas rscritas en C que suministran a 10s programatlirrei d e aplicacibn de interfaces esthndarrs e n t r r sus aplicaciones j SQLS. DB-Library lihera al programaclor de 10s tletallcs d e la red j de 10s protocolos tlel servidor. ODBC es u n 4PI de conectividad de base de datos. ODBC prrniite clue Ids aplicaciones clientes esta1)lezcan cwnrxiones directas e intercamhien informac.ihn (*onlas haws tle datos SQLS y las pasawlas (gateways) del Open Data Services.
E n rstr capitulo se ha presentado una introduccibn a 10s sistemas de bases de datos distribuidas. Priniero se introdnjo cierta terminologia y se present6 la arquitectura general del modelo de 10s SGBDD. La estructura que suhyacr cn u n SGBDD es un sisten~ade varios SGBD rjecxitindost. en sitios locales seaarados. 10s cualrs estin conectados n o r facilidades de envio (It niensajrs. Cada sitio de;n SGBDD ejecnta uno o m i s mhdilos de software, in(-luyerido un administrador de transacciones, un adniinistrador de datos y un planificador. Veamos 10s principales factorrs de motivacibn en la implenientacibn de 10s sistemas de hases de datos histribuidas. La fiahiliclad, rendimiento de-la respnesta. ~ndependencia de la uhicacibn j de la duplicacibn, d e p e n d e n c i a d e la configuraci6n. SGBDs no honiogPneos, seguridad y congruencia organizational, son todos factores yue por si solos o combinados pueden motivar que se use un sistema de base de datos distribnida. &I (Iiseiio de 10s sistemas cle 1)asrs d e dates ( i i s t r i ~ ~ ~ ifueron das ~ a caracteristicas i introducidas centrando la a t t ~ ~ c i ben t i las alternativas siguientes:
1. Base d r datos duplicada ! una base de datos centralizaila. 2. Base de datos dnplicacla sin uria base de datos centralizada. 3. Una base de datos particionada implementada como una s e n e de sistemas d e bases de datos olwrados iudepe~~dientemente, p r o que pern~itenel acceso remoto desde otros sitios.
PIP
41 5
SISTEMAS DE BASES DE DATOS DlSTRlBUlDAS
8. C o n ~ p a r ela semii~rrnnihn(semijoin) con la rrunibn natural (notural join). 9. i,Cnil es el prophsito del protocwlo tle t.irr1.r cle dns-fasrs? ;(:bnlo tral~aia'.' 10. i.C:Omo se efwtila la rrcuperatihn
~ I un I
sistema tle base tlr tlatoh d i s t r i l ~ ~ i t l a ?
1. Ilaga coriwpontler ratla uno de estos ti'rininos t.on so drfinic%n: -dtrtos locc~les LTn proct.so t p r coopera pard cwlnpletar una tr'illsatwhn. -Pnlrlce ITnd transat*t*ihnclue rt.tpitw clatos d r ~ n i stle uno lot*alitlacl. -SSU ITn canal d r com~~t~ic.ac.ioi~t~s tbntre (10s s~tiosen un,i red de twnl)utatlorrs. -Distributed 1,IL'RESS Los datos q u r se inantienen tanla h a w d r datos tlr [In sitio tbnun s ~ s t r i n ad r hasr tle tlatos tlistribnida. -upente 1,as ac.tiones inr oradas por nna transatwhn stb t.jt.cutan tan fda. -transuctGn global Irlld red de twmputadorc~qne esti limitada a u11 i r e , geogrifica prqueha. -LA1 [In SGHDI) suministratlo por Relational 'I'rrhnolog). -ejecl~ci6rl s ~ r i r d IJn SGBDD sniiiinistratlo por Computer Corporation of I m r r i c a . -/irngn~entucihn horizonttrl Particionar una rt~lac*ihntXnel s111)conjunto de sus tiilhs. 2. ( h s t i t n y a una I~asedv datos r j e m l h 1)ar.a nna etnprrsa q u r trnga m a hasc d r ilatns tl~strlh~tida tm t r r s locaalidades. Escoja un ~ ~ l tle a nt1istril)ucihn clr d a t m para esta 1)ase tle tlatos y just~fiquesu c.leccihn.
3. Pruelw t h o s r puetle aplicar la fragmentaribn vc.rtical a1 plan deaarrollatlo en (1)
4. Pruche cbmo se puedr aplicar la fragmentarihn horizontal al plan drsarrollado cLn(2).
-5. Consitlere la relacihn. EMPLEADO ( I D , nombre, d i r e c c i o n , o f i c i o , num-proyecto) EQUIPAMIENTO (NUMID, t i p o , p r o y e c t o )
Suponga t p e la rrlacihn EMPLE4DO be fragmcnta hor~zontalmrnte por num-proyrcto I, ~ I I I .vada fragmento se almacena localmentr romo el proyecto dcl sitio. Suponga que la rtdaribn EQUIPAMIENTO sr almacena coniplrtan~enter n la localidad de Seattle. Descriha una huena estratrgia para procesar las ronsultas siguientes: a. Encuentre la reunihn de emplratlos y equipmiento. h. Ohtenga todos los rmplrado. para los proyectos que utilicen los Camioneb K2. c. Ohtcnga todas lab miquinas del Proyerto Parowan. d. Enrurntre todos 10s rmpleados del proyecto c p e usan la miquina numero 12.
6. Dada la informarihn tle las Fignras 12.1E y 12.2E. drtc~rminela distribucihn bptima de 10s ocho vuelos entre lob cinro sitios, asuma una rapacidad de disco tle 25 Mbytes en ratla lugar.
DISENOY ADMINISTRACIONDE BASES DE DATOS A r c h i v o (tamaho) Transacciones
Sitio Transacciones 1 2 3 4 5 6 7 8 9 10
7. Cal(v11euna semirrerlnihn a partir de las relaciones siguirntes: t?,=
X c d c e h
Y b e b a j
Z a f d b k
FI,=Z a a b c c
VW d e f h a b d c b a
8. Examinr la Figura 12.3E. Dada la historia dr tranjacciones qur sr presenta aqui, sr~pongaque se ha aplicatlo un protocdo dr marca tle tirmpo. Indiqur d6nde drhen ahortarse las transawionrs y rxplique por quC.
SISTEMAS DE BASES DE DATOS DlSTRlBUlDAS -
Los s e l l o s de t i e m p o son T I
=
-
1, T 2 = 2 y a s i s u c e s i v a m e n t e .
read
read ( abortar write(z) abortar
1. Escriha un ensayo w r t o d r r r el futuro tle 105 sistemas de base5 de datos distribuiclas. 2. Haga un proyecto de rrvisi6n hihliogrifica para ohtrner ejemplos cle implerncntac.iorles actuales sistemas d e h r s de datos distri1)uidas. i.Puede encontrar algun material que analice 10s aspectos de renclin~iento?
3. Contacte
t a m urla rmpresa profesional d c contal~ilidade indague sohre 10s controles que deherian prescmtarse en un sisterna dc proresamiento distrihuido. 1Ha) i r e a s en las que no se usan 10s controles adecuados?
4. Una de las ventajas (it.10s sistema~CS es cpr Gstos p r o p m i o n a n 10s medicrs para que una ernpresa pueda carnhiar la forma r n que opera (cbmo h a w 10s negcrrios).\ea st puede encontrar uno o (10s artirulm que describan los carnbios que sr han fatilitado por la implernentarih dc un sistrma CS.
DE UN SGBD
Analisis de las necesidades de informacion para la gestion. Determinar 10s requisitos de la aplicacion. Mantener la consistencia de 10s datos. Requisitos de 10s tiempos de respuesta. Funciones y capacidades de 10s SGBD. El diccionario/directorio de datos. Seguridad e integridad de 10s datos. Capacidades de consults, de manipulacion de datos y de informes. Soporte a 10s requisitos de programacion especializada. Opciones de organizacion fisica de 10s datos. Clasificacion de 10s requisitos de las propiedades de un SGBD. Reunir datos sobre la existencia de propiedades y el rendimiento. Adquirir datos de 10s vendedores. Pruebas de evaluacion Modelos de evaluacion. Modelo de puntuacion. Analisis del recubrimiento de datos.
Fundamentos. Aplicacion. Cuestiones de implementacion. Adrninistracion de las bases de datos. Requisitos del servicio al usuario final. Asegurando la integridad y la seguridad de las bases de datos. Copias de seguridad y recuperacion. Pruebas a la base de datos. Preparar a 10s usuarios para el cambio. Cargar la base de datos. Mantenimiento de la base de datos. Administrando 10s recursos. Copias de seguridad y recuperacion. Administrando 10s cambios al sistema de base de datos. Facilidades para supervisar 10s SGBD. Resumen. Preguntas de comprobacion. Problemas y ejercicios. Proyectos y cuestiones profesionales.
S t r v r Blur, c i c r p r c d r n t e r j ~ c u t i r od r lo corl)oracii,n ZPUS,rstt16(1 .sirndo ( w t r ~ ~ i s t t l d o por Honoriu Krvnington. I L ~ Ut~\tu(liwnt(~ d r Sistrln(i d r lnforn~ticihn[IP I ~ ~U ~ n i ~ ~ ~ ~ i r l tw-cccncc. Corno pro)c.cto tlr curso, I-lonorici intrntabn rlrsarrollur lln esturlio nobrr ccirno dr 1111 SGHD: yub f u c t o r ~ s r ha%ru\ hubiu procrtlitlo rrl lo srlrcci6n t. irnplernc~ntacii,~~ biun tw~csidrr(~do importctntes, crilno~fiirror~ inrtlitlos y (pi6 rn6totlos rle uncilisis .$e ustlron. l h r r s p e s t o a lus p r r g m t t t s d r Honorin, S t r r r dijo: "Penstirnos que la ~ ~ 1 ~ c c i(IP i)n I I I I Sf;Rl) wriu simple. Qur nos hnriunios risitar p o r 11n p a r t l rrprrsenttintrs ~ d e wnttrs, P tfnriun un prrcio v rntor~cestornc~riclrnos11na qur 110s ( m t u r i u l ~SILS productos, ~ I L nos drcisicin. Olwiamerrtc~.rstubt~rnossirntlo ingrnlros. C u a r ~ d o10s r ~ p r e s e n t c ~ n t dr sr crntus rrnpezaron a llrr~clrr1 un~bientrcon s ~ jcr r g a y d ~ c l n r u c i o ~ w prorrlocior~ctl~s, s cornprrndy ernl)rrnrlrr un ~rlfoqurrntis ruzonublr P mos rcipi~lurnc~rrt~ yut. r ~ ~ c ~ s i t u b c ~ retirnrnos rnoa ir~fbrn~utlo". "21 conlo logrurorl cvo?". prrgunti, Honorici. "Bueno, trr~iarno.sr n ~ ~ c hconfiunzu n rrl nurstro c o n s ~ ~ l t oLinda r, hell,. Hubia hecho Iin b w r ~trubujo p a r a nosotros ur~trriorrncnte.usi yluJ 1~prrguntarnos qub I m w . Esrrlcicllrnrnte. rl~linri,c1ih1rs rr(oI [USjiint.ionrs btisicns q ~ drbirtn ~ r brindtrrse r n 1rr1 SGBD. Drspc~Gsnos rnostri, cbrno rrdejinir esccsji~ncior~es, en tGrrninos d r sirs cclructrristicas snbW L C P ~ ~ P Lo S . h i m p a r u diuidir r l cinulisis en cc~pucidudesq u r j i ~ r r a robjeticarnente ~ mrrliblvs. Entoncrs sugirici,[orrntcs d r cltisijicar nuestras nrcesidades y rius p a r u obtrner injorinucihri. Finnlmrnte. nos rr~serlcicbmo potliarnos e v t ~ l u a rIns rtiptrcidades dr cuda SGHD y usur in modrlo formal p a r a producir unw tcprrriacihn generul de bste. " "Purrce s r r un(1 g r u n turea," dijo Honoriu. ",.Linda les cobri, btistc~ntr?" si, p r o ualia l a penu. Trcibajamos bastuntrptirrc sutisfaS t w e sor~rihy dijo: "PILPS c r r s u p l a n . pero cuando obtwimos 10s resultntlos, supimos yue hnbinmos h w k o el r n ~ j o r ~l. lp pediinos t r r ~ b a j oposiblr, y nos smtiarnos ronfiados de n ~ i e s t r ad ~ c i s i i , n f i n ~ Tarnbibn qur t r a b a j a r a con nrwstro adrniristrutlor tle base d r dntos p a r a el desarrollo tle un plun tie irnplenreritucii,n."
1 interks dtl estr capitulo es rl proceso d e selrccibn e impleinentaci6n tle uri SGRD. Estr tenin podria 61 sblo al)arc.ar un libro, p r o limitarenios nurstra )rrsrntacibn a1 drlint~amirntotle sus aspet.tos principales. Primero consideacihn entre las necesidatles de informacibn para la gesti6n y cl sistrma d e hasea d r datos. Desputs trataremos las func:ionw basicas tle 10s SGBD. analizando algunas d r las propietlades principles q u r son importantes cuando se eraliian 10s SGBD altrrnativos. A continuacihn estudiartwms a n mttodo para clasificar estas propiedatles, seguido de otro t,studio (11, (10s mttotlos (pie p r m i t e n una comparariim v e v a l u a c i h general. Finalmente desrribirrmos 10s cwnponentes (*laves tie una i~nplementacibn exitosn tlr un SGBD. DespuGs tlc leer este capitiilo, tlel~eser capaz de: Analizar la relaciim entre las nec:esidades d e informacibn para la gesti6n y un sistema tie hases tle tlatos. Explicar chmo m a evaluacibn de 1111SGBD puede mejorarse mediarite la idrntificlue lelwrmiten a cada funci6n satisfarer las netwitlacacibn dc las I)rol~iet"lades drs estratkgicas de informacibn. Clasificar las propirtlades tle acnerdo a sn importancia. Aplicar inktodos idles q u r ro~td)inenevaluaciones de multiples propiedades con un modelo general d e tlecisih. Analizar y conformar la lista de las tareas que dehen redizarse para implen~rntar con Gxito un SGBD.
DISENOY ADMINISTRACION DE BASES DE DATOS
Andisis de las necesidades de informaci6n para la gesti6n inforruaci6n para la grsti6n. Informaci6n de apoyo a 10s qiw tornan tlrcisiones a las oprracionrs drntro clr nna t-onipaiiia.
Usamos el t6rn1ino informaci611 para la gesti6n en el srntido grnrral d r la inforn~acibn ret~ueridacomo apoyo a la toma d e decisionrs y a las opwacionrs clr una enlprrsa r n bnst*a de cirrtas metas. La informaci6n para la gesti6n rt:querida por una emprrsa. qne ofrece n n protlucto q u r 1:anihia lrntan~enteen nn mervado r s t a l ~ l r pncdr , tle alguna rnanera srr diferentr d r la informacibn cjne precisa una emprrsa que se rnc:ucntra en un mcrcado volitilt o q u r p r o d u w una variedad cle protluctos sujrtos a una ripicla obsolrscrntia. Considerr la nrcrsitlad d r informacibn d e n n a empresa d r manufactura q u r usa la Planificacihn d e Recpisitos d r Materialrs (PRM) para atlministrar sus procrsos d r prodnc:c:icin. La P R M r e c p i r r r nna h s e d e datos extrnsa clue contrnga inf'orinaci6n sohrr la planificacibn final clr 10s productos, invrntarios, las facturas d r los matrrialrs, r n rutamirntos, y 10s tirtnpos d e c:oordinaribn d e las fasrs d e n ~ a n u f a c t u r a .Si s r afiade la inforn~acihnsohrr los costos y la necesidatl d e rrcursos p a r a cads paso d r mannfart u r a , 10s datos del P R M purtlrn usarsr p a r a rl rrgistro de t:ostos, control tlr taller y administraciOn y planificacibn de la capacidad. Tal hasr clr clatos prol)orciona casi totla la inforn1aci6n tit: planificacibn v t:ontrol q u r se necesita para n n a planta d e manufactura. Esta llasr d r datos proporciona mucha informacihn d e gestihn rc:cpirrida por la rmprrsa. C)uk tilw de sistrma d r Ilasr cle tlatos podria satisfacrr niejor las nrcesitlaclrs d r informacibn. 1,a 1)ast. tle clatos q u r prccisa PRM propcrrciona una vasta i n f o r m a c i h para la gestibn, p r o es muy tlificil tlr constrnir y mantrnrr. Catla rntorno de mannf'actura rs dinhmico: nurvos proclnctos sr aiiaden, 10s viejos sr rliminan d r la linca tle procluctos: 10s mhodos de disriio y manufactura cambian rrgularmrntr; 10s tirmpos varian; 10s pro1)lrmas y ajustr d r invrntario p u r d r u otwrrir frrcurntementr. Tales rrquisitos juegan a favor tle un SGBD rr1ac:ional. Contristrlo con la rmyrrsa d r manufartnra q u r opera u n sistrma d r inventario a la o r d r n JIT (en tirmpo prrciso) I . El intento d r u n sistrma JIT es clue las materias primas y las pirzas d r r n s a n ~ l d a j rs r murvrn inmrtliatamente d r la entrrga, pasando por la manufactura, hacia el centro d r consumo. Las pirzas se hacrn en prqurfios lotes, el sistrma d e protlucci6n hace s61o unas pocas piezas malas antes q u e se drscwbran 10s rrrores, y 10s cortos t i r n ~ p o sde fasr hacrn clue sea m i s ficil drtrrminar 10s prohlrnias en su mismo origen. Los sistrmas J I T funcionan mrjor cnando la drmantla es alta y 10s rrquisitos d r produccibn resultan en una producci6n casi continua. Un SGBD j ~ ~ r a r q u i coo en red (ver Capitulos 15 y 16) purde resultar apropiado en rstr caso. Claro, es inapropiado hacer recomrndacionrs tan ligeras hashndose en rstas situacioues tan simplificaclas. Lo q u r nos intrrrsa es q u r las necrsidaclrs tle informacibn para la grsti6n q u r pueden afectar a la seleccihn d r nn SGBD puedrn i n d n i r lo siguirntr:
1. La necesidad potencial tle informacibn, q u r p r d e reqnrrir datos de m i s d r una aplicacibn.
2. El numrro d r aplicaciones dondr las relaciones entrr 10s datos e s t i n birn estahlecidas y sujetas a prcpeiios camhios.
3. El volumen actual y rsprrado d r insercionrs y eliminacionrs qne pertenrcrn a estrneturas d r datos nurvas y existentes. 4. La forma en la clue se clasifican 10s datos p a r a la toma d e drcisionrs. P o r ejrm1110, u n vendedor de comida preparatla puede tomar d~cisionesd r promocibn I m i n d o s r r n las ventas d e sus productos r n todo el pais. Otra empresa clrl mismo tipo purdr tomar las mismas drcisiones hasindose en las ventas r n varios
En inglis, conocido pol- las s i g h J I T (lust-in-tirnC).
SELECCION
E IMPLEMENTACION DE U N SGBD
42 1
lngares dentro de las grandes ciudades. La primera conlpaiiia recjuiere 1111 conjunto tl(. tlatos nlis sirnple que la d t i m a . Si la ultima cjuit,re rxperimcntar (.on vistas tliferentes de la informaci6n para prohar varias estrategias. se newsitari tin gran grado tle flexihilidad. Hahiendo presentado el prohlema de la necesidad de informacih a nivel general, procedemos ahora a 1111 exanten de 10s requisitos especificos de inforrnacih.
Determinar 10s requisitos de la aplicacih La determinacihn tlc 10s rcquisitos tle informacih clue ticncn clue incluirse en un sistenla de base de datos es nn proceso c:omplcjo clue cs (:sencia1 en la se1ecc:ihn de un SGBI). Sin embargo, el proceso de anilisis puede simplificww si se (la cnenta cjue 10s usuarios tipicanimte caen en tres t i p s tie clases: nsuarios regnlares, usnarios repetitivos y usuarios ocasionalcs. El usuario rcpetitivo es acjuel cuyas aplicaciones pueden ser dvsrritas como sistemas dc producci6n. Los reqnisitos para estos sisternas orientados a transacciones st; planifican de antemano y gc:ncralmente incluyen operaciones de rutina dc la compaiiia, tales conlo registro de ventas. mantcbnt:r el inventario, etc. Idealmente, cl SGBD. dcbe ser rapaz de servir a estas aplicaciones de una forma eficiente. Los usnarios oc*asionalespncdcn rccluerir dc la mayor flexil~ilidad,ya clue sus exigencias son a menudo imprevistas. Tales usuarios tienden a necesitar informacih para (4 anilisis y las tomas de decisi6n opuestarnente a las operaciones de rutina. Este t i p de usuario necesita una poderosa capacidad dc clasificacihn y cwm1)inacGn de datos, asi como un lenguaje de consnlta ficil de usar. Los clue proponen 10s modelos de datos jerircjuicos y en red afirman clue estos modelos tienen una capacidad superior para aplicaciones de sistemas de produccihn (ver la discwsihn en los Capitulos 15 y 16). Los defensores de 10s SGBD relacionales dicen clue estos sistrmas actualnlente proporcionan nn rendimiento mejorado en apoyo a 10s sistemas de produc&m, ademiis de capacidades poderosas para satisfacer las nrcesidades tle informacih ad hoc clue otros modelos no hrindan. El drsarrollo de IDMSIR, que ofrece propiedades relacionales en sistemas ljasados en red, intenta satisfacer arnbas necesidades. La mayoria de las empresas van a tener una niezcla de nrcrsidades y pueden funcionar con el sistema que mejor soportr el t i p d r necesidad principal. Los productos tales como IDMSIR intentan minimizar el esfuerzo para satisfacer la nrcesidad menos irnportante. A1 mismo tiempo, 10s SGBD relacionales r s t i n mejorando su eficacia para satisfawr ambos tipos de requisitos de informacih.
Mantener la consistencia de 10s datos La necesidad d r compartir 10s datos a travks de multiples aplicaciones es la r a z h primaria para la implrmrntac.i6n de la base de datos. Como se discutii, en el Capitulo l, 10s datos redundantes pueden generar una gran cantidad de prohlemas, la mayoria de 10s cuales se producen por inconsistencia entre las copias duplicadas de 10s registros de datos. Aun en instalaciones hien hechas, es comun que 10s registros duplicados se actualicen en ciclos difrrentrs d r tirmpo. Asi, en tales instalaciones, la inconsistencia de 10s datos es inevitable. Un burn SGBD no puede garantizar que nunca ocurran inconsistencia de 10s datos, prro purde proporcionar facilidades para minimizar sus ocurrencias. Consecuentemente, cualquier evaluacih de un SGBD debe incluir una consideracibn de las caractrristicas que aseguraran la consistencia rntre las copias duplicadas de 10s mismos datos.
DISENOY ADMINISTRAC~ON DE BASES DE DATOS
Requisitos de 10s tiempos de respuesta Un SGRI) st. clehr cltwrnl)rii;~ra un tit.rto nivt.1 p a r a tlnc. sea lilitlo a los usuarios. Titwi1 ~ ) s i n a t y 1 t a l ) l etlt. s respuesta a Ias so1icitudc.s cle 10s nsuarios 10s lleb a r i a la frustrat.iciu: la frastracicin los llevirri a la 1)uscluecla (it- otros medios p a r a satisfacer sus nccesitlaeles d e infornmacihn. Hacer c p r 10s usnarios tywcificpen tirinpos d e rcspuestas rcalistas put'd r s r r un reto: sin emhargo. nn tliilogo (*on10s usuarios concentraclos en la cyecifit*acion de 10s tirmpos de rrspuesta itleales y minimo puedr w r prodnc.tivo. El resaltado puede ser usado para evaluar el rrndimiento d r un SGBD bajo tlifert~ntescrl)lit*acionesy volii111rncs.
Funciones y capacidades de 10s SGBD P a r a evaluar la hahilidad tle 1111 SGBD de satisfacer 10s ree~nisitosde infornmacihn tie una f'unclaemprew".net~esitanmost*onsitlerar las funciones q u r proporciona y srrs ~~ropiedacles inentih.
El diccionarioldirectorio de datos IJn sistcma d e 1)ase d r tlatos t.f;ctivo permitiri el t~rt~ciinirnto y la moclificacihn en la Iww dt. datos tic datos sin con~prometerla inttyyitlad de los datos. El Uit*t:ionario/Dirc-c~torio (DIDU) ayuda a cw~nplir10s ohjrtivos permitiendo q n r las drfiniciones tlc datos se mantengan srparadas tle los tlntos. Esto l~erniitrque w hagan cain1)ios r n las tlefiniciones tle datos sin clue tenga efrt-to en 10s datos a l l n a t w d o s . Por ejemplo, el suhdiaprama usaclo e sin afrctar de ninguna inenera 10s tlatos por un progralna m partitwlar I ~ u e d motlificarst~ almacenados. Otros I~eneficiosalmacenados por el 1)IDD incluyen: Las estructuras fisicas tle a11nat:mamiento pneden tm~~l)iarsc. sin afcctar a1 programa que usa los datos. Las contrasefias y otras medidas de seguridatl pueden estar almac*t.nadas r n c.1 DIDD para f'acilitar rl twntrol s o h e el wt:eso a 10s datos. I,a tlefinici6n centralizada tlr ltrs datos permite ficiltx informes strhre el vstado cie la base de tlatos: Q11iC.n es responsahlr d e varios elernentos de datos. quC. t:ontrc~~lrs se lrs aplica. y qub llrogramas y nsuarios r s t i n ac~cedirntloa los tlatos. P a r e prodntir estos Iwtlefitios. el DIDU int.luyr niualmente las siguientvs caracttbristicas: Un lrnpiajr para drfinir las rntracias en el DIDD. Un Irnguajr de manipulaci6n para aiiadir. rliininar y moclificar las entraclas en el DIDD. MCtodos para valitlar entradas m el DIDD. Medios para producir informes en relacicin a 10s datos contenidos en el DIDD. Un drsarrollo importante en 10s SGBD relacionalrs es la prictica c-omiin d e almacen a r el directorio como un conjunto de relaciones. Esto permitr t-1 uso de 10s lcnguajrs dc manipulacibn de datos de los SGB1) para consnltar. actualizar y mantener t.1 diccionario d e datos. La Figura 13.1 mnestra un fragmento d e un catilogo (el noinhre para un dic.rionario d r datos usados por DB2. un SGBD relacional d e IBM). Este fragmrnto de catilogo contirne informacibn s o h e las relaciones qne s r inuestran en la Figura 13.2.
SELECCIONE IMPLEMENTACION DE U N SGBD
TABLAS-SISTEMA
I COLUMNAS-SISTEMA
NOMBRE
CREADOR
PRODUCT0 MFR
JHANSEN JHANSEN
NOMBRE
IDPROD DESCPROD IDMFR IDMFR NOMBREMFR DIRECCION PAIS
CANTIDADCOL
3
4
NOMBRETB
TIPOCOL
PRODUCT0 PRODUCTO PRODUCT0 MFR
ENTER0 CARACTER ENTER0 ENTER0 CARACTER CARACTER CARACTER
MFR
MFR MFR
PRODUCTO IDPROD
DESCPROD
IDMFR
1035 2241 2518
Abrigo Lampara de mesa E s c u l t u r a de cobre y c i n c
21 0 31 7 253
MFR IDMFR
NOMBREMFR
21 0 253 317
K i w i Klothes
Brass Works Llama Lamps
DIRECCION
Auckland Lagos Lima
PAIS
Nueva Zelanda Nigeria Peru
Seguridad e integridad de 10s datos corltroles de acceso. Controles que limitan el acreso tlel usuario a 10s programas y a 10s datos. rontrolrs de concurrencia. Controlcs que mantienen la intrgridad de la 1)aw de datoi cuando (10s o rrtis usuarios simultinean~ente solicitan uu registro de la base tie datos. controles de vista. At[ucllos controles que restringen el acceso a las vistas (snhtwnjuntos de las relacionrs tle la base).
La segnridatl (.integritlad dt. 10s datos son rscnciales para lograr operationes efec*tivas scrhrr las bases de datos y fueron tratadas con alguna profundidad en (4 Capitulo 11. Estas son t a m h i h consideraciones importantes en la schcicin d r un SGBD. Espec:ificamrntc.. tlehemos estar alerta a las siguientc~scapac:itlades: Los controles d e acceso son u n factor imj~ortanteyorque son un medio de evitar arcesos no autorizados a 10s datos. E n 10s entornos d e hases de datos donde se t:omparten 10s datos. 10s huenos controles de acceso son esenciales. Los controles de concurrencia son un medio de mantener la integridad en un entorno multiusuario. Suponga que el usuario a y el 1) accedan arrthos a un registro a1 mismo tirmpo (rsmcialmmte) para procesar una trans;~r:cihen c.se registro. El SGBD debe dr alguna forma limitar el acceso de uno dr 10s usuarios hasta q u r la t r a n s a c c i h del otro trrniine. Sin este tipo d r facilidad, la exat.titud y corn sistencia d e la base d r datos puede ripiciamente erosionarse. Los controles d e vista proporcionan u n medio auttrmatizaclo d r lirnitar que se le p e r n ~ i t aa u n usuario acceder a una relac:i6n dada. Esto es una carat.teristica poderosa que se brinda t:oinunmtmte e n 10s SGBD relacionalt~s.La comotlidad tle c r e a r vistas y la capacidad de la facilidad de vistas puede s r r u n factor util dr distincicin e n t r r SGBD. El comprador drl SGBD puede estar interesado tamhikn en saber si las vistas pueden actualizarse y con qni. limitaciones se puede hacrr.
424
cifratlo. Cotlif'icacihn tlc 10s datos para harrrlos ininte1ipil)lcs lmra ~ ~ ~ r s o n a s ~ ~ o a~~torizadas.
DISENOY ADMINISTRACION DE BASES DE DATOS
Les facilidacles de cifrado pueden ser importa1itc.s para aquellas institncionrs cwya 1)ase de clatos cwntiene datos muy sensihles. El c.iSraelo pnede ser tanil)i6n importante para el manteninliento dr un clirertorio scbgurode contraseiias. Controles d e seguridad y Recupcrac:i6n efectivos son a1)solntarnrnte esenciales para la operacibn eficientc d e la hase tle datos. La cwnoclitlad del nso de los (*ontroles dc seguridad y t-ec*uperacih. sn c:ompletitud y su confia1)ilitlad delwn srr factores importantes en la drrisihn cle sclecci6n de nn SGBD.
Capacidades de consulta, de manipulaci6n de datos y de informes La 11al)ilidad tlel SGBD para satisfacer 10s recpisitos de informes. junto con las consultas del usuario y las necesidadcs de manipulacihn tle 10s clatos, r s la piedra angular dc 10s sistemas de infot-niacihn de adniinistracihn d r hoy. Un SGDB q u r quirra "sonar" dcherti proporcionat- la cyacitlatl tle gencrar informes c.structuraclos en nna varietiatl cle formatos. Adeniis. el SGBD hrintlerli un lenguaje tle ronsulta qne sea poderoso. p r o a la vcz fiiril dc- aprender y nsar. El lenguaj(. dehe ser capaz d e satisfacer 10s requisitos cle cwnsiiltns plancndos y no planeados con ticmpo cle respuesta cortos.
Soporte a 10s requisitos de programaci6n especializada Drsarrollar programas esprrializatlos p a r a interartuar con los SGBD reqniere cle facilidades para satisfacer el desarrollo de aplicaciones y sus prurhas. 1111SGBD clue valga la pena proporcionari u n lenguajr para exprrsar las estructnras estiindares de programas procecliinmtales o h r i n d a r i m a interfaz ron utio o miis lenguajes ~)roc~t~tlimetitales. Algunos SGHD p i e d e n hrintlar c.apacidades adicionales p a r a el desarrollo rapitlo de prototipos.
Opciones de organizaci6n fisica de 10s datos La enipresa que va a adqnirir nn SGBD puetle no desear involucxme con asuntos cle la organizacibn fisitba d e 10s datos. E n su lugat-. puede medir la efivacia de tal organizaciOn, ejecutando varias apliraciones, ejrmplos. Sin enlhargo, para aquellos q u r estan interesatlos, rsplorar la organizacibn fisica pueclr ser valioso. P o r c~jetnplo,es c:onocido que la listn invertida es miis cficiente en recup e r a r i h de claves multiples y que la lista mcadenada rs superior en la actualization de arcliivos, ya que no hay necrsidad cie actualizar en u n archivo separacio. La informacicin s o l ~ r eotras arquitrcturas puede s r r deseable en el proceso de considrrar la capacidad drl SGBD para satisfacer el t i p d e aplicaciones comunes en la empresa.
Clasificaci6n de 10s requisitos de las propiedades de un SGBD Las funcionrs y capacidades descritas en la seccibn anterior pueden d a r una guia para clrtrrniinar el criterio clave de evaluacibn para seleccionar un SGBD. ldealmente quisi6ralnos dirigir la funci6n en sus romponentes a u n nivel q u e permita m a medicibn objetiva. P o r ejrmplo, suponga que definimos las funciones necesarias clr seguridad y control que son satisfechns por las siguirntes carac.teristicas de u n SGBD: Control d e accrso para programas y usuarios. Tablas de srguridad protr@das por contraseiias. Habilidad cle ahortar las transarciones en progreso. Rrconexibn automitica de intrritos fallidos dr acceder a 10s datos. Utilidades para c r r a r y m a n t r n r r tahlas d e contrasefia.
SELECCION E IMPLEMENTACION DE U N SGBD
425
Mediante la definicibn de las propiedades requeridas qne puedan verificarse. el analista evita las amhigiiedades clue se prodncen a1 intentar compro1)ar si la capacidad d e seguritlad es hiiena, mala, o regular, ya q u e esos tirruinos p e d e n t e n r r difrrentes significados p a r a diferentes analistas. Claro, esto coloca nn peso sobre el analista. yue tiene q u e definir exartamente aquellas propiedades q n e constituycn la capacidad de seguridad. CODASYL (COI).ASYL, 1976) recomentlaha que talcs propiedades f u r r a n clasifiradas en las signientes categorias para n n anLlisis m i s profundo:
propiedad obligatoria. Una propiedad de nn SCBD que tiene que her proporricrnada. propiedad importante. Una propitdad de on SGBD que no tls obligatoria, pero hare a1 SGBD rniis atrxtivo. propicdad optional. Una propiedad de un SGBD que time nna importancia secundaria: puedtl ayndar a tlistinguir entrr crtro~ SCBD igualmrnte atractivos. propicdad innrccsaria. Una p r o p i d a d d r un SGBD qnc no contrihuje en nada a1 valor del SGBD para la empresa. propiedad n o deseable Una propiedad de un SGBD que le resta valor a1 SGBD para la
Una propieclad obligatoria se define como una clue dehe ser hrindada por el SGBD. Sin ella, el SGBD candidate se drsecha de una consideracibn posterior. Una propiedad importante es aquella (pie hare mLs a t r a c t i w a1 SGBD. Sin ella el sistema responde con mrnos eficacia y la implenicntacibn puede ser m i s dificil. Las propiedades opcionales tienen una importancia secwndaria y son d e valor, principalrnente, para discriminar entre sistemas clue son similares sin ellas. Una propiedad imnecesaria no es relevantr en la evalnacihn. Las propieclaclea indeseables son a menudo uri factor en c80ntra.Esta categoria se rrfiere a nna pi-opic.dad (pie no se necesita y que degrada el rendimirnto.
Reunir datos sobre la disponibilidad de propiedades y sobre el rendimiento El proreso de obtener datos para la rvaluacihn de 1111 SGBD rrquiere que se wntacte a1 vendedor del SGBD para obtener inforrnacibn y para probar el SGBD en u n entorno cercano a1 de la a p l i c a c i h .
Adquirir datos de 10s vendedores La informacibn clue concierne a las propiedades de u n SGBD y c u i n hien se comporta tipicamentr se adquiere (1) preguntindole a 10s usuarios, ( 2 ) por prueba directa, o (3) preguntiindole a1 vendrrlor. Preguntarle a otros usuarios puede ser muy util porque ellos h a n tenido esperiencia real y no estin tratando de vendernos el SGBD. Sin en~l)argo,cuando st. evaluan las opiniones de estos usuarios, la empresa debr tener cuidado, ya q u r otros usuarios pueden tener necesidades distintas de informacibn y, por lo tanto, su evaluacibn p u d e no reflrjar exactamente cbmo el SGBD se computaria en otros entornos. Ademis, esta informacibn es usualmente de naturaleza general, no proporciona evidencia detallada d r 10s tipcrs de aplicaciones y su rendimiento resprctivo. Cuando m m o s , sin emhargo, tal informacibn puede producir una lista d r preguntas para hacerle a1 vendrdor. Las pruehas directas exhaustivas pueden ser caras y consumidoras d e tiempo cuando se consideran varios SGBU. E l anilisis de requisitos ohligatorios puede ayudar a reducir el nfimero de SGBD a probar. Las pruehas directas producen 10s mejores resultados cuando imitan lo rnis fielmente posible las condiciones y requisitos operacionales realm. La informaci6n dada por 10s vendedores puede ser falsa. Sin embargo, pueden a menudo proporcionar datos estadisticos sohre fiabilidad y rendimiento, y estar dispurstos a ejecutar pruebas demostrativas.
DISENOY ADMINISTRACION DE BASES DE DATOS
La \ i a rnris ctm~iintlr adquirir inl;)rmacii,n dt.1 krndrtlor rs rmitir nna solic~itndd e p r o p i ~ r s t a(SDP). La S D P r s iitil rs~)rt~i~icwntlo 10s rc-quisitos q n r r l SGHD t l r h satisfi~crr J solicita iuSorrnacii,n tlr 10s vrndrtlores para mostrar rhmo sus SGUI) t~odriinsatislacw aqurllos rcyuisitos. La rcspucsta a la SJIP pnrtlr ser nna l'ucwtr tlr informwihn a twinparur (*onla rralimrntaciOn rrtil)itla tlr los u s ~ ~ a r i odrl s producto d r un vrntledor.. Las tliscwpantias o inconsistrntias p n t ~ t l mt.onsr11tarsr con el vrntlcdor para su atslaracihn. Estr prucrso 1)urdr siiprrir t;~ml)ibnLrtw q n r l)udirran 1)rol)arst. ciirt~anic.ntr.En la Figra 13.3 sr rnnestl~inna lista clr rrclnisitos sugc-ridos on t:uatro catrgorias.
Pruebas cle evaluaei6n (Benchmark) ],as ~ w u e b a stle evaluaci6n thsnn mitodo c.onvrnriona1 para grnerar ii~fo~rnacihn so1)rc. rl rrntlimirnto tlr un SGBU tine lurgo sr nsa tbnel prowso tlr su rvalu;~cii,n.Lo cine se prrtrntlv es rstimular r l rntorno tlr la aplicac+'m para g r n w a r clatos d r ~ w d i n ~ i c mrralistas. to La modrlwii,n ilel twtorno real pncdr scr u n reto, ya q u r r s dificil inautrnt~l~ ronstantes todos 10s parimrtros tlrl entorno operative: r l sistrina o p r r a t i ~I). la srcuencia clr operationes, la 11iuIti~)ro~ramaciOn. etr. T,a i n l a r i a m a dt:seatla usualrnente purtlt. alcanzarse solamrntr n~etliantrt.1 uso drditwto tle 1111 t ~ o m p ~ t a c i ot:nr la prut.ha de evalnacihn. Tam1)ibn 1)urdt. s r r costoso el cmtrcwainiento d e 10s usuarios hasta el uivrl dcseado w n respecto a catla SGHD. r l u n q w los lrndec1ort.s dt* SCBU i~roporcionana nienntio pruel~asd e rvaluat:i6n y las rnnrstran coma un srrvitio a1 posihlr twn~prador:qurda como r e s p o n s a l ~ i l i td r Sste drtrrininar las carat.teristic*asd r l sistrma q u r son importantes y asrgurar clue rsas rarartrristicas sr prurhen sufieit~ntrmmtr. Una costuml)rr util r s inchlir twno requisite en la SUP esperificationrs para la$ prtwl)as de evalnat:ii,n: para t h ~ i n a dr e antenlano acp4los vrndrdores cuyos productos no cnrnplan esas rsprcifit~acio~lcs. Cuantio se haw la prurba de rvaluaci6n. hap q u r consitirrar 10s siguirntrs rlrmrntos: Las pruehas d r h n s r r representativas tlel rntorno d e aplitwi6n tle la tmprrsa. La naturaleza de la prnrba d e evaluaci6n drbe rstahlwerse antes d r hacer la pr11el)a: rrquisitos a satisfacer. asignacihn d r pesos relatives a varios componentrs d r la prueba y 10s procrdimirntos de evaluac:i6n clue s r dehrn seguir.
FUNCIONES D i c c i o n a r i o de d a t o s L e n g u a j e de manipulation de 1 0 s d a t o s Funciones i n t e g r a d a s ( B u i 1 t - i n ) C o n t r o l d e l acceso
RENDIMIENTO R e s u l t a d o s d e l a s p r u e b a s en t i e m p o r e a l Requisites de memoria P r o p i e d a d e s de o p t i m i z a c i o n
INTEGRIDAD Y SEGURIDAD Autenticidad Autorizacion C i f rado Propiedades Rollback ( r e t r o c e s o ) Propiedades R o l l f o r w a r d (avance) P r o c e s a m i e n t o de l a s transacciones
OBLIGACIONES (GARANTIAS) DEL VENDEDOR Entrenamiento Documentacion Responsabilizacion
Actualization
SELECCION
427
E IMPLEMENTACI~N DE U N SGBD
Mientras la naturaleza de las pruebas de evaluaci6n puetlrn variar de una empresa a otra, hay ciertos asprcatosde un SGBD que son necesarios en torla rmpresa: requisitos clr memoria principal, de almacenamiento d r la base de datos, d r servicio a multiples usuarios, que acceden a1 sistema concurrentrmrnte, de entrada y salida y facilidades de seguridad y rec.uycraci6n.
Modelos de evaluaci6n La adquisicihn de un SCBD refleja un gran compromiso por parte de la empresa. Los mktodos de re(-opilacihy almacenamiento d r 10s tlatos pueden afectarse. A un nivel mis alto. rsto implica un cwm~~rorniso cle proporcionar una mejor informacih de administraci6n. Lo m i s importante es que la adquisicih de un SGBD representa tin compromiso de usar la infornlaci6n para nicjorar la forma en que la empresa hace negocios. Estos compromises requicrm qur el proceso de seleccihn de un SGBD incluya la consideracih de propicdades importantes y consistrnte de 6stos de una manera racional. La conquista de estos objetivos puedc auxiliarse con rl uso de una metodolobGa formal. En el siguiente estndio se presentan dos mdtodos formales: nn modelo de p u n t u a c i h y un modelo de rnvoltnr a de datos. El mode10 de p u n t u a c i h es ficil de aplicar y ha sido muy usado para la ayuda en el yroceso clr seleccih de un SGBD. El modelo d r envoltura de datos r s m i s poderoso; no ohstante, rs fhcil de aplicar.
El modelo de puntuacicin qur sr presenta aqui ha sido muy usado en la practica. Muchas empresas limitan la clasificacihn de requisitos recomendada a solamente dos: obligatorios y desrables. Tanto como se pueda, la verificacih de requisitos ohligatorios no debe estar sujeta a juicio u o p i n i h . Los requisitos deseables pueden, y a menudo lo hacen, incluir caracteristicas qur son mas dificiles de medir. Conceptualmente, el modelo de p u n t u a c i h es ficil. La proporci6n de huenos datos de entradas es la partc mas dificil. Esto se ilustra aqui con un ejemplo simple, pero representativo. Ejemplo: Divida las propiedades requeridas en dos categorias, obligatorias y deseables, como sigue: PROPIEDADNENDEDOR
A
B
C
Obligatorios Vistas Control de contraseiias Facilidad d r seguridad Deseables Lenguaje d r consulta relational Entrenamiento a 10s usuarios La selecci6n del esquema de pesos es un poco arbitraria, per0 funcionari si es cons i s t e n t ~ Un . esquema simple es asignar un peso de 10 a cada uno de 10s requisitos obligatorios y un peso de 1 a 9 a cada propiedad cleseahle, dando 10s numeros mayores en deprndencia del grado mayor de deseo. Cuando esto se haya determinado, se puede asignar un valor entre 1 y 10 a cada propiedad para cada vendedor, dependiendo de ccinio el SGBD del bendedor satisfaga el requisito. Una tabla de puntuaci6n completa es asi:
DISENOY ADMINISTRACION DE BASES DE DATOS
A
PROPIEDADNENDEDOR
Obligatorios Vistas Control de contrasefias Facilidad de seguridatl
Peso 10 10 10
Desea bles Lenguaje de consulta Relacional Entrenamiento a los usnarios
Peso
B
C
5 7 9
7 7 8
9 9 7
7
10
0
10
9
6
7
4
Las puntuaciones finales para lob vendedores se tleterminan multiplicando el peso de la propiedad por el valor asignado a kste por esa propietiad. Los resultados se suman para cada vrndedor para calcular la puntuaci6n find. cwmo sigue:
A
PROPIEDADNENDEDOR
Obligutorios Vistas Control tie Contrasefias Facilitlad de Seguridad
Peso 10 10 10
Dmeahles Lenguaje d r Consulta Rrlacional Entrrnamien~oa 10s Usuarios PUNTUACION FINAL
Peso
i
9
B
C
50 '70 90
70 70 80
90 90 70
70
0
70
54 334
63 283
36 356
Basindose en 10s resultados tle este rjemplo, la rmpresa puede eliminar a1 vendedor
B tle una considerarih posterior. Sin embargo, las puntuaciones de A y C son suficientemente cercanas como para realizar una consideraci6n adicional. La diferencia pudo haberse producido por la incrrtidumhre a1 asignarle los valorrs a1 vendedor. En cual( p i e r caso, 10s resultados tle tales modelos normalrnente tienen las dos siguientes funciones: Presentar alternativas para ulterior consideraci6n. Brindar informaci6n para el proceso dr drcisibn, incluyendo la necesidad de pruebas o estudios atlicionales. En la prbxima seccibn presentamos un rnodc.10 de evaluaci6n que proporciona m a gran cantidad de informaribn comparativa. Es un modelo facil de usar y matemiticamente potente.
Anailisis de la envoltura de datos El analisis de la rnvoltura cie datos (AED) es una nietodologia poderosa para la evaluaci5n de altrrnativas de decisibn tales como la selecci0n de un SGBD, especialmente cuando hay varios criterios para la selecci6n. Todo lo qur ze necesita es una comprensi6n bisica tle 10s conceptos y acceso al software de programacih lineal. ampliamente disponible para el uso en rnicrocomputadores. Fundamentos. Podemos presentar 10s conceptos basicos del .IED con un ejemplo numkrico. La Figura 13.4 contiene datos que prrtrnecen a la graduaci6n drl rendimiento comparativo de 10s SGBD, desde la A hasta la F usando s d o dos criterios: control de acceso y seguridad y recuperaci6n. Las filas de la figura identifican 10s seis SGBD a evaluar, y las
429
SELECCIONE IMPLEMENTACION DE UN SGBD
frontera de la eficacia. La frontrra ewtcrior en el anhlisis .ZED.
unidad de referencia. El SGBD cjue esti sirndo evaluado m el anrilisis AED . carnino de expansi6n. El carnino desde el origen a la unitlad dc reft~renciaen el anilisis AED. pnnto de espansih. Cualquier punto en cl camino dc expansih en el anilisis .\ED. punto de frontera.
-
.
la frontera en el anilisis
AED.
columnas identifican 10s criterios de selecci6n. Cada criterio es medido en una escala clr 1 a 10, don& 1 es el nivel mtis bajo d r rendimiento y 10 rs el mis alto. La Figura 13.5 t1il)uja 10s seis SGBD y proporciona una base grifica para discutir c6mo medir el rentlimirnto relativo tle un SGBD. El SGBD cuyo rendimiento es hueno esti lejos del origen (0) r n ambas direcciones. La frontera noreste definida por A, C y B icientifica a 10s SGBD tlominantcs en el conjunto. Esta frontera exterior es llamada la frontera d e la eficacia. El AED mide la eficacia relativa tle cada SGBD por su posicibn relativa a la fronttbra. Un p m t o en la frontera tiene una rficacia de 1,0, y el origen tiene nn valor de 0,0. Los puntos en el interior d r la frontera represrntan valores entre 0 y 1, dependiendo de su cercania a la misma. En la Figura 13.5(a) la capacidail de control de acceso se representa en cl eje horizontal, y la capacidad de seguridad y recuperaci6n se representa en la vrrtical. Para explicar la rnedida de capacitiad del AED, primero introduzcamos algunas definiciones adic+nalcs. El SGBD que esti sientlo evaluado se le llama unidad d e referencia, y el caniino desde el origen a la unidaci de referencia se le llama canlino tle e x p a n s i b para esa unidad. Cualquier punto en el eamino de e x p a n s i b se le llama punto d e expansion, y cualqnier punto sobre la frontera se le denomina punto d e frontera. Considerando de nuevo la Figura 13.5(a), se puetle ver que el camino de expansi6n para L) coniienza en el origen (O), pasa a travCs de D e intercepts la frontrra en D'. La significacih de un carnino de r x p a n s i h es clue todos 10s puntos sohre 61 tienen la misma raz6n de capacitlad de control de acceso a capacidad de seguridad y recuperacih y, por lo tanto, pueden ser comparados directamente entre ellos. Por ejemplo, D tiene una razhn de control de acceso de 3 y una raz6n de seguridad y recuperaci6n de 2, luego (3,2) csti en el camino de expansi6n. El punto (6,4) esti t a m b i h en el camino de expansibn para (3,2), y un SGBD en (6,4) es dohlemente mejor que uno m (3,2), ya que amhos, el control de acceso y la seguridad y recuperacih son el doble de (3,2). El punto D' donde el caniino de expansibn se cruza con la frontera tiene un factor de 2,58, lo clue quiere decir que el control de acceso y la seguridad y recuperacih en L)' son 2,58 veces 10s valores correspondientes en D. La eficacia relativa de un SGBD dado es el inverso del factor de expansi6n en la frontera. Luego la eficacia relativa de D es 1/ 2,58 = = 0,39, lo i p e quierr tlecir yue D tiene 0,39 de la capacidad de control de acceso y de seguritlad y recuperaci6n de un SGBD comparable en la frontera. La Figura 13.5(b) muestra que el proceso de -4ED de medir la capacidad relativa divide en unidades similares a los SGBD que se estin evaluando. La capacidad relativa tle D se evaliia comparando el SGBD real con el D' hipotitico que esti en el segment0 frontera uniendo B y C. D. B y C son comparativamente fuertes en la capacidad de control-delacceso en comparaci6n con la capacidad de seguridad-y-recuperacih. Sin rmbargo, E y F son comparativamente furrtes en la capacidad de seguritlad-y-recuperacih y sus capacidades relativas se calculan comparindolos con A y C. Por lo tanto, el cono etiquetado
SGBD A B C D
E F
CONTROL DEL ACCESO
3 9 7 3 4 3
SEGURIDAD Y RECUPERACION
9
2 7 2 5 6
DISENOY ADMINISTRACION DE BASES DE DATOS Seguridad y recuperacion C
0.0
2.0
4.0
6.0
8.0 9.0 Control de
acceso (4 FRONTERA DE LA EFICACIAY LOSCAMINOS DE EXPANSION PARA LOS SEIS SGBDS
Seguridad y recuperacion
0.0
2.0
4.0
6.0
8.0 9.0 Control de acceso
(b) CONOS DE UNIDADES SIMILARES
como I en la Figura 13.5(1)) contiene 10s SGBDs clue son fuertes en la srgnridad-y-reellperacibn, n~ientrasq u r el cono etiquetado como I1 contiene aqnellos qne son fuertes rn el control del acceso. El SGBI) C , qur es fuerte en amhas categorias, e s t i en amhos conos. Este mCtodo grifico de medici6n d r la capacidatl relativa es una herramienta valiosa para ilustrar 10s conceptos del AED, prro esti limitado por dos criterios. Para medir la capacidad relativa de 10s SGBDs caracterizados por niis tle (10s criterios debmios w a r modelos de programaciGn lineal (PL). La formulacihn niis real y prictica se hasa en sopesar 10s valores relativos de 10s criterios. Aplicari6n. Ser capaz d r incorporar opiniones acerca de la importancia relativa de los criterios constituye el corazbn para la toma de decisicin sobrr qub SGBD escoger. Continuando con nuestro ejemplo, A es el mrjor en la seguridad y recuperaricin, pero es dkbil m el control del acceso. B es el mejor en el control dcl acceso, pero d&il en la seguridad y recuperaci6n. Amhos esthn en la frontera y tienen una capacidad relativa de 1,O en la medicibn del AED. Sin cmhargo, para comparar la capacidad de rendimirnto total de A y B, necesitamos emitir algnnos criterios sobre la importancia relativa de la capacidad de control del acceso y la capacidad de seguridad y rrcuperaci6n. Una prueha basada en el modelo de P L nos permite centrar la atencibn en la importancia relativa del criterio. Las variablrs de decisibn descansan sobrr 10s atributos, que expresan la importancia relativa de 10s mismos. El objetivo consiste en usar el modelo tle
SELECCION
43 1
DE UN SGBD
E IMPLEMENTACION
PESO (CONTROL DEL ACCESO) 1 (SEGURIDAD Y RECUPERACION) 2 -
DBMS
CONTROL DE L ACCESO
A B C D E F
3 9 7 3 4 3
SEGURIDAD Y RECUPERACION 9 2 7 2 5 6
PUNTUACION TOTAL
EFICACIA RELATIVA
1
PESO (CONTROL DEL ACCESO) 3 (SEGURIDAD Y RECUPERACION) 2
PUNTUACION TOTAL
EFICACIA RELATIVA
21 * 13 21 * 7 14 15 MAX = 21
MAX = 29
PIJ (programacihn lineal) para escoger el criterio con pesos que maximiren la rfiracia rrlativa de la unidad d r referencia. La t:apat:idad relativa se midr como nn radio del valor total d r la unidatl de referenria compariindolo con el valor romplrto de lo mrjor m el conjunto d r 10s SGRDs. La Figura 13.6 muestra c6mo la selet:c:i6n del peso dc 10s criterios afrcta a la capacidad relativa. Cuando la capat:idatl tle seguridatl-y-rrcuperaci6n t,s dos veces mis importante que la capacidad tle control-del-aweso, A y C poseen la mrjor raparidad total, rada uno con una razbn total d r 21[= ls(raz6n tle control-del-accrso) + Px(raz6n cle seguridad-y-recuperaci6n)I. La capacidad relativa tlr cada SGBD sr mide como el radio de la raz6n total frente a la razOn total mas aha. Con estos valores (pesos), R se considera en un G1,9 por 100 (=13R1) tan bueno como A y C en tCrminos de t:apat:iclad. Las tlos ultimas columnas nos guian hacia un resultatlo hastante tlifrrrnte, ya que se suponc q n r la rapacidad tle control-del-accrso es tres vcces miis importantr que la rayaridad tlc seguridatl-y-recliperaci6n. Con rstos valores (pesos), LI tiene la puntuacibn total miis alta, 29. A tiene ahora una capacidad relativa d r un 62,l por 100 (18/29), nlientras t p r C se increment6 hasta un 96.0 por 100 (28129). 11, E, y F se mantienen con razones de capacidad total bajas para ambos conjuntos de valores (ptws). En realidad, las unidades que no se encuentran en la frontera nunca serin las mejores para ningun conjunto de valores (pesos) y siemprr tienen una eapacidad relativa menor qur 1,O. Por el contrario, para cualquiera de 10s SGBDs en la frontera, esiste al menos un conjunto de valores (pesos) para el cual el SGBD frontera tiene la mejor puntuaci6n total, y por lo tanto, una eficacia relativa de 1,O. Esta observaci6n nos guia tlirectarnente a la utilizacibn del modelo PL para rnedir la eficacia relativa. Las variables de decisi6n son 10s pesos criterios y el ohjetivo es maximizar la capacidad relativa tle una determinada unidatl tle referencia. Las limitantes son que cada SGBD tiene una capacidad relativa que no excedr el 100 por 100. La rxpresi6n verbal es: MAXIMIZAR EL VALOR DE LA UNIDAD DE REFERENCIA DE ACUERDO CON EL VALOR COMPLETO DE CADA UNA DE LAS UNIDADES MENORES O TGUALES QUE 1. El modelo completo basado r n los criterios para medir la capacidad relativa de D es MAX 3 P + 2Q ST3P+9Q<=1
(Raz6n total de D; P = raz6n del control del acceso; Q raz6n de segnridad y recuperacibn) (Limite de la razbn total de A)
=
DISENOY ADMINISTRACION DE BASES DE DATOS
9P+%Q<=1 7P+7()<=1 3P+2Q<=1 4P+SQ<=l 3P+6Q<=1
P.Q >=O
(Iimite dr la razbn total (Limite de la razbn total (Lin~itede la razhn total (Limite dt. la raz6n total (Litnite tle la razhn total (no negatives)
tle B) de C) tlr D) tie E) de F)
Cuestiones de implementaei6n La plat~ificaribny la administracih de la iny~lementacibnes tan importante para nn sistrma de base de datos rorno lo rs una implrinentac*ihnefrctiva para cualquier tecnologia nueva. En esta secci6n drfiniremos algunas consic1c:rariones importantes asociadas con la irnplementacibn d r un SGBD.
Administracibn de la base de datos La rrsponsa1)ilidad tle la administracibn d r una basc de itatos normalmrnte sr asigna a una persona llamada administrador dc la base de datos (ABU). El ABD es el encargado clc asegurar que el sistrma d r l m e de datos opere cir forina efectiva y eficientr. Con este objetivo. las actividades diarias de 10s AHDs se roric:c:ntran m las tarcas siguientes:
1. Requisitos del servirio a1 usuario final. 2. Garantizar la sc,guritlad e intcgridad de la l ~ a r ede datos. 3. Establecer los prorrdimientos tle seguridad-y-recu~)rracii,n. Requisitos del servicia a1 uslrario final. El .4BD rs el responsable tie seguir la freeurncia con que 10s usuarios finales utilizan la hase tle datos y 10s tirn~posde rty)nestas que newsitan sus aplicaciones d r base d r datos. Esto se realiza para asegurarsr que las necesidades del usuario r s t h satisfeehas. El ABD tam1rii.n esti involucrado en la satisfaccibn de las necesidadrs de mtrrnamiento d r 10s usuarios. Este entrenamirnto hrinda a 10s usuarios finales las herramientas apropiadas que les pcrmitrn ser mhs productivos. Un ejemplo p i l r i a n scr las utilidadrs esprciales o las capeitlades del lenguaje. Garantizando la s e p r i d a d c integridad d c las bases d e datos. Signiendo la fi-ecurncia ?, con qne 10s usuarios usan la h r de datos, el ,4BD ohtirnr inforinacion rwcesaria para el control dr la bast: de datos. Por ejemplo, una cwnsulta inrsprrada de un usuario puede provocar una rrevaluarih de la (:orrerib11 del control del acrrso. Por ejemplo, suponga que el usuario U1 no tiene permiso para acceder a 10s rrgistros individuales c:n el arc-hivo de n6mina. Recientrmentr, IT1 ha estado consultando datos adicionales, coino son curntas y sumas d r varios campos en la tabla. IT1 puede o1)tenrr datos desde los cuales 61 misn ~ puede o deducir valores de atrillutos individualcs que no pueden ser aececlitlos dirrctarnrnte. En t h n i n o s de la integridad de la 1)ase cle datos, el ABD debe asegurarse q u r existr una (:orrespondenria entre la base tle datos y su definiribn reflejada en el dicrionario de datos. El ABD debe t a m h i h mantener el control para restringir la actualizacihn tlr la base de datos por usuarios autorizados. El mantenimiento de los niveles de rcstriccibn coloca por en(inia de caila usuario la responsahilidad tlel ABD. El ABD &be ayudar a garantizar que el control de 10s datos de un usuario-espcifico estd implementado y supervisado. Por ejemplo, 10s usuarios purtlen t r n r r un niejor conocimirnto que el ABD acerca de qui. datos son sensil~lesy sr tiehieran restringir y a qu6 n~anufactunivel. Por ejemplo, el a(-crso a datos d r costo prrtenerientes a oyrraciones (IF: r a puede no estar restringido al departamento de contahilidad. pero a su vez no debt, ser accedido por otros grupos funcionalrs sin periniso prrvio.
SELECCION
E IMPLEMENTACION
D E UN S G B D
433
Seguridatl(bockup)-y-recuperaci611.Los SClBDs hrindan facilidades pard el mantcnimiento tle la integritlatl d r 10s daters dnrante las oprraciones. Sin embargo, por otro lath, no pnrd(w facilitar la integridad tle la base de datos. Por ejemplo, la rorrupc*i6n tle 10s tlatos t l t ~ l d oa un fallo cn el disco pnetle rstar furra del control tlel SGBD. Estas poslhill(lades hacen clue el ABD disponga tlr m6totlos para restaurar la base tlr datos completa \. consistentemente dcspuis cle un fallo. Los procedimientos tlr restaui-aribn involntxm tipicamente ~ttilidatlessuministradas por el SGBI) como partt. tle on largo plan tlr rrcupcraribn dlseiiado por el ABD. Esto significa tjuc cl AB1) dehr familiarizarse con totlas las funciones j capariclades drl SGBD. El plan (lc 1-ccuperacihn gcneralmente inc1u)r 10s proccdimientos siguientes:
1. Itlentificar las utilidades de srpuritlad y recuperacibn que rstlin tlisponi1)les para manejar 10s fallos del sistema.
2. Estalrlecer 10s procedimientos a seguir por tcrdos acjuellos qne partiripan can el plan de recu1)erat:iirn.
3. Crear nn plan para informar a 10s usuarios que estin afectatlos por un fallo en la base de datos dehido a1 impacto potencial que el mismo puetlr trner sohre sus operacioncs, asi ccrmo estimar cl tiempo para restaurar la base tle datos. 4. Crear y analizar una planificacicin de pruehas para el plan de recuperacibn y normalizarlo para poder medir 10s resultados. Esto garantiza clue el plan tlr recuperacibn cumpla sus ohjetivos en caso cjue ocurra nn desastre real.
Probar la base de datos P a r a garantizar que el sistema de base de datos cumpla con 10s requ~sitosde los usuarios y opere sin n1a)ores prohlemas se necesltan huenos procedimientos de pruebas. En el tlrsarrollo tle aplicaciones nuevas, las pruebas tle rjet-ut*ii,nsblo garantizan la programac*iOnen tbrminos tle tiempo neresario. Las pruebas de a l i d a c i h normalmente se rentran m las operationes slguientes:
1. La carga de la base de datos se realiza sin violar la integridad de los tlatos. 2. La correrta interi'az de las aplicaciones con la base de datos. 3. El rendimiento tlrl sistema satisface las necesitlades para las que se adquirib el SGBD. IJn ol~jeti\ode las prnehas, que es mucha3 leres pasado por alto, aparece cuando el sistema de base de datos no funciona como se esperaha. La ma)oria de 10s problemas burgen cuando 10s valores de entrada son inusuales o errbneos, cuando las rombinarionc.s tle condiciones ohtienen un resultado ~nesperado,o ruando 10s usuarios toman decisiones anticipatlas. Por lo que se de1)rn gcnerar datos de prueha para tleterminar rbmo el sistrma manipula 10s tipos de entratlas slguientes:
1. 2. 3. 4. 5. 6.
Valorrs que tienen signos negativos errbneos. C6tfgos o rlaves invlilitlas. Datos clue amenazan la integridad referencial. Valcrres nulos. Un intento de cambiar 10s datos por un usuario no autorizado. Valoreb extremes, como son una inusual gran cantidad de horas trabajadas o grandes rrcibos de rompra inusuales. 7. Unidades de mediciirn inrorrertas. 8. Intento no autorizadcr para carnbiar la informacibn que se encuentra en el diccionario de datos.
DISENOY ADMINISTRACION DE BASES DE DATOS
Acerca del nivd tle control oprracional, la rmpresa delw preocuparse por la supervisihn del nso tie 10s recursos de computaci6n. La atlmiuistracicin tielw intrresarsc: en la informacihn siguirnte:
1. ~ Q u i b ne s t i usando el sistcma de base de tlatos, quk datos esthn siendo usados y durante qnb tirmpo serin usados?
2. , Q n b rccllrsos del hardware e s t i usautlo el sistcma de base de datos, c11Lndo son nsados y si existen cucllos de hotella? 3. ICuinto tiempo se usa por iina rutina de proccsamiento en conlparacihn con una consulta ad hor, y si cxisten tvndencias en este uso? Para rrsumir estas ideas ilnstrarnos a l g ~ n a de s las meditlas de rentlimicnto incwrporatlas en el SGBD relacional de IBM DB2. El DB2 Performance Monitor (Supervisihn de Krndimiento de DB2) se 11sa en conjnnto twn la DB2 Instrilmentation Facility (Facilidatl de Instrunientacihn de DB2) para generar informat:ihn soln-e el rendirniento drl sistenia. La DB2 Instrumentation Facility c:olrcciona 10s datos tle rrntlirniento tie1 sistenia de base de datos, clue w analizan por el DB2 Performance Monitor con el ohjctivo de grnwar informati611 de inter& para el ARD y otro personal tle administracihn. Ejemplos de dicha iuformaciOn son el tiempo de procrsamirnto de una consulta SQL, srguimientos dc la rjec:uci6n tie nna ronsulta SQL, cstadisticas de 10s datos de entrada y salitla, e informacicin resnnien sobre 10s tieinpos d r rspera para la ejccncibn tle consultas y programas. La genrracicin de datos tle prucba qur verifiqurn todas las posiblrs condicioncs no deseatlas se muestra como un prohlema intratable (Garey y Johnson. 1979). Por (:on& guiente, una prueha rolmsta (cwmpleta) de un sisterna tlr base d r datos newsita un diserio hien pensado de los datos de p r u c h que sean a la vez razonablemmtt: complrtos y clue se puedan aplicar a un costo y tiempo razonahle. Las tahlas d r decisi6n se usan con kxito en la generaciim de datos dr p r u e l ~ a . Muchas soluriones sofisticadas realizan una generacicin automiitica de 10s datos tie prueha.
Preparar a 10s usuarios para el eambio Puesto que la aceptacicin del usuario es esencial para una implrinentacihn cxitosa drl sistema de hase tie datos, la p r e p a r a c i h de 10s mismos para 10s cambios que pudieran afectarlos rs tamhitn esencial. iC6mo se cun~plimrntaesto mejor? Conceptualinente, la respuesta es simple: Involucrar a 10s usuarios en el desarrollo d r nuevos sistemas, entrenarlos cabalmente, e incluirlas prurbas de aceptacicin como parte del esfuerzo de implementacicin. Llevar a cabo estas actividades seria a l p m i s complejo. Una gran parte de la incorporacih de 10s usuarios en el desarrollo del sistrrria de hase de datos se facilita si 10s usuarios estin convencidos de esta necesidad para el sistema. El administrador jrfe, junto con 10s arialistas funcionales y 10s arialistas tle sistema, dehen comunicarle claramente a 10s usuarios cuiles serian 10s beneficios rsperados, asi conlo cualquier costo de puesta m marcha que pudiera ser asumiilo por el usuario. Esto se dehe realizar la mLs temprano posihlr en el ciclo de desarrollo. La experiencia ha mostrado que 10s usuarios se identifican con el sistema cuando participan en su drsarrollo e implementacicin. Se seleccionan usuarios claves como parte del equipo d r desarrollo, y otros se consultan a medida que avariza el proyetnto.Los usuerios nrcesitan participar y contrihuir. El objetivo no rs simplemente politico. Algunos usuarios contribuyen con ideas y observaciones que han sitlo pasadas por alto y que putlieran rnejorar el fimcionamiento del sistema. Enfatizamos en que el desenvolvimiento del usuario rs rnLs efectivo cuando participa en el desarrollo r implementaci6n. Una consulta de cortesia a1 comienzo y al final del proyecto raramente funciona.
SELECClON E IMPLEMENTACION DE U N SGBD
43 1
lnvolucrar a 10s usuarios en el desarrollo e imp1ementac:iOn tlel sistema de hase de datos brinda otro heneficio: 10s prepara para el entrenamiento en el uso del sistema. Posteriormentr los usuarios pueden reribir el entrenamiento en el uso tlel sistema mediante ( I ) la lectura de 10s manuales tle operac*ihny procetlimientos. ( 2 ) sesiones d r entrenamiento formales dirigidas por el vendedor y la empresa, y (3) entrenamientos informales a cargo de un coordinador interno para asistir a 10s usuarios a medicla que surgen interrogantes y prohlemas. Si nn mismo t i p de interrogantes surgen en varias ocasiones, el coordinador drbe organizar nna sesihn de entrenamiento fornial para esta1)lecer 10s procedimientos tiel prohkma. Entre otras cosas, los nsnarios necesitan conocer chmo procesar 10s documentos, entrar 10s datos, producir informes, corregir rrrores, generar consultas, rntre otras cosas. Hn la mrdida en que 10s usuarios se entrenan, purden utilizarsr como recurso para entrenar otros usuarios en su Area funcional.
Cargar la base de datos Frecuenternente, 10s datos que se almacenan en una base de datos ya existrn sobre algCn medio en la compntadora, como es una cinta n~agnktica.En el mejor de 10s casos, todos 10s datos necesarios existen, y la carga de la base de datos consiste simplemente en la reestructuraciOn de 10s datos existentes. Es decir, un programa debe leer 10s archivos viejos y crear la estruvtura qne nccesitan 10s nuevos. Es mis frecuentr clue 10s archivos existentes no contrngan todos 10s datos nerrsarios para la nueva l m e de datos. Una de las solnciones usada comCnmente para este caso consiste en transformar 10s archivos existentes, de tal forma que contrngan 10s datos necesa rios antes de rralizar el cambio m el sistema d r base de datos. Esta solucihn poser una limitacihn digna de mencionar y es qur el viejo sistrma debe continuar procesando las transacciones diarias mientras que se realiza la modificacihn.
Mantenimiento de la base de datos Una vez que el SGBD esti instalado y en oprracihn, se necesita organizar y rjecutar las actividades de mantenimiento para garantizar 10s servicios y operaciones del niismo. En esta seecihn se describen algnnas de las funciones de mantenimiento necesarias. Administrando recursos. Todo el tiempo se aiiaden datos nuevos a la hase de datos. algunos se eliminan, y las aplicaciones se actnalizan o modifican. La mayoria de las empresas experimentan que sus bases de datos crecen. Nuevos requisitos pueden cambiar la mezcla de las aplicaciones de hases de datos, y es importante supervisar el efecto de tales cambios. Los recursos de 10s sistemas de bases de datos, como son 10s dispositivos de almacenamiento, buffers, indices y tahlas, se chequean para determinar su adecuaci6n a medida qne cambian 10s requisitos del sistema. Esta inforrnacih~nos aynda a la hora de tomar decisiones acerra de la adici6n o actualizacihn de recursos, asi como para prever necesidades futuras. Seguridad y r e c u p e r a c i h . Salvar una copia de la hase cle datos cada ciertos intervalos de tiempo debe ser una prictica estindar de seguridad. De esta forma, si la base d r datos que se esti usando se daiia o se destruye, sr puede reconstruir cargando la copia de seguridad y reevaluando todas las transacciones que se procesaron despubs que se hizo la copia de seguridad. Las salvas de la base de datos se realizan usnalmente mediante un utilitario del sistema operativo o un utilitario del SGBD. El primer0 h a w una copia de seguridad del archivo de disco complete, incluyendo las estructnras de datos fisicas. lJna copia de seguridad similar es posible a travCs del SGBD. Sin embargo, las estructuras de 10s datos no se representan realmente en 10s datos salvados, sino que se reconstruyen durante la carga de 10s mismos. Este proceso puede ser lento para archivos largos.
DISENOY ADMINISTRACION DE BASES DE DATOS
Administrando 10s camhios a1 sistema d e bases cle datos. Los camhios r n el sistrma d r 1)asc.s tle datos son inevita1)lcs tlehitlo a que las nrcrsidades del nsuario c a n ~ h i a ntodo r l tien~po.Los usuarios s r pnedrn acostumhrar a1 lenguaje dr consulta y por lo tanto rxtrnd r r el rango y la cwnplrjidad d e las apliraciones rrqurridas por el sistcma. A mrdida qut: p a el tiempo. los usuarios vcn nuevos c.aminos mediantc 10s cualrs sr I ~ u e d corganizar y at~tualizarla informaci6n tlr la hasr d e datos p a r a satisfacrr las nrcrsidatlrs tlv sus trahajos. En la mc&tla en que tbstoscaml)ios s r acnniulan. s r necwitan mrjoras en el s i s t m ~ ad e hasr tie datos. 1,crs e:amhios r n las necesidadrs d r los usuarios q u r llrgurn a organizar 10s tlatos en fornias miis complrjas puedrn &grac.lar el rcntlimiento clel SGBI) si estin tlispersos: p r o purden uo r r q u r r i r q u r se cwnhie el contmido ! la estructura d r la 1)ase d r datos. Sin embargo, las aplicacionrs n u m a s puedrn nccesitar qiw sc aiiadan atributos a las taldas, se c:rrc:n nuevas tahlas. s r fortnulrn nuevas vistas, s r construyan inc1ic:rs acfcionak s : e n t r r otros. Camhios twnio bstos purden a f w t a r las oprraciones y ( k g r a d a r rl renclimicnto drl sistema. No cxistr m a soluribn tlc golpr a esta sitnarihn. pcro i ~ n rxitosa a in~plementacihn de la I)nw tle datos contrihuye a realizar el procrso d r camhio ortlcnatlamrntr ! sujcto al andisis y la gestiOn involucratlas. 1,a atlministraci6n s r invoca cuando uua ecrnsulta tlr camhio del usuario tlrgratla la capatidad y rrnclimiento clrl sistrma de base (1c tlatos para otro usnario. Ya q u r las d~cisionesde caml)ios entraiian rfrctos srciinclarios, es iltil sulwrvisar las nurvas imp1ementac:iones con rl ohjetivo tle mrdir su in~pactoreal. La supervisihn nos ayutla a acumular rxpericncia en la prediccihn dv 10s rfrc*tosdr 10s canlhios necrsarios m rl i'utnro. Facilidadcs p a r a supcrvisar 10s SGBD. 1,os X B D s presentan caparitlades tlr incornpatihilidad. En esta seccihn darrnlos una visibn panorimica de las faciliclaclrs t k suprr\isi6n niis r t p ~ e s e n t a t i v a que s purclt: twntener u n SGHD grn6rico que llamamos G . C, 1)rinda capacidacles en linra para la c~omprobacicintlr las actividadrs at-tualrs d r l SGKD. 1Jn menil permite la srlrct.iOn d r las funciones tlr suprrvisicin, romo son:
1. 1Jso d r la rntratlalsalida por el iisuario. 2. Cantidad d r oprrat:iones tlr Irctiira y rscritura rjecutadas en u n periodo tle tieu1") prefijatlo.
3. Cautidad (I(: transac:c*iones roml)letadas por un pcriodo d r tiempo prcfijado. 4. Brindar el srguimimto d r actividades tlr inter&. P o r ejrmplo, puede tlrsrarsc cwmprohar t p i t n e s t i motlificantlo los datos en la TA4BLANOMINI. Esto se pu(:tIe realizar con la orclrn siguientr:
La cliurula ON (SOBRE) identifica la tabla q w serii inspeccionacla, y la t~liusnlaBY (POR) (wan fino es r l nivrl d r i n s p r r t h ~ BY . SESSION, por ejeml~lo,rscrihe m a entratla hacia r l (.amino a insprccionar para cada sc.sicin drl nsiiario. accrtliendo a 121rdacibn inspewionada. Como puedr verse, 10s SGBDs nrcesitan tener un rango razonahlr de capat+ tlades d r supervisi6n.
E n estr c,apitulo hemos rstablrcitlo las tareas clr srlecci6n e implementacicin dr 10s SGBD. Nuestro enfoqur ha sido comenzar con la gesticin d e las nrcrsidades de informac:icin, srguid o por 10s tipos tle requisites del sistrma que estas nrcesidades implican. Entonces caracterizamos las funciones bisicas d e 10s SGBD que estin disponihles para m a n t m e r dichos
SELECCION
E IMPLEMENTAC~ONDE UN SGBD
437
requisitos y ejemplificamos c6mo subdivitlirlos en caracteristicas funclarncntales a 1111 nivel quenos permita una medida de evaluac-ihn ohjetiva. DespuCs se estudih una simple forma cle hacer un anilisis inicial del SGBD, en el clue se clasifican sus caracteristicas de acuer(lo con su iniportancia. Continuamos con un anilisis de las fucntes de informacibn sobre los SGBDs cornrrciales. Luego se consitleraron dos mCtodos de evaluacibn total del SGBD: el modelo de puntuaci6n multiatrilmto, que es simple y bien conocido y el anilisis clel recubrimiento de datos, que es menos conocido, p t m que es Ctil por su facilidad de uso y porque hrinda capacidades poderosas para manejar la entrada tle toma de decisiones y d a r como salida informacihn comparativaniente valiosa. El mismo es particularmente efectivo en la categorizacihn de 10s SGBDs, cuyas capacidades totales son similares. DespuCs discutimos 10s factores principales que deben formar parte de la estrategia cie implementacibn del SGBD. Muchos de estos factores tienen que ver con la gesti6n de SGBD a largo plazo tambitn. Vimos que la funcibn de administracibn de la base de datos juega un papel in~portanteen la implementacibn y que es esencial una prueha robusta del mismo. TarnbiCn consideramos la necesidad de preparar a1 usuario para participar en 10s canibios, a travks de su participacibn en el proyecto, asi como en 10s entrenamientos. Se hizo un resumen de la necesidad de mecanismos para acomodar las necesidades de cambios rn la informacihn cle la base de datos, junto con 10s requisitos de segnridad y recuperac:ibn. Finalmente, se destacb el papel clue juega la supervisibn de la ejecucibn.
1. Defina cada uno de 10s ttrminos siguientes con sus propias palabras: a. gestibn de informacih b. controles d r acceso c. encriptado d. controles de seguridad-y-recuperacibn e. propiedades importantes f. propiedades opcionales g. propiedades innecesarias 11. solicitud de propuesta (SDP) i. frontera de la eficacia j. punto de expansibn k. punto frontera
2. Descriha cada una de las signientes funciones y capacidades del SGBD: a. b. c. d.
directorio/diccionario de datos seguridad e integridad de 10s datos consults, manipulaci6n de datos, y capacidades de informe soporte de 10s requisitos de programaci6n especializada e. opciones de organizaciones fisicas de datos
3. Identifique 10s rasgos de importancia para cada una de las funciones en (2). 4. iC6m0 debe usarse la salida de un modelo analitico para selecrionar on SGBD?
5. Describa cbmo influye el modelo de pnntuacibn en la seleccibn de un SGBD. 6. iQu6 valor hay en incluir clasificaciones tales como INNECESARIA e NO DESEABLE?
7. Estudie las cuestiones de mayor importancia en la implementaci6n de un SGBD.
DISENOY ADMINISTRACION DE BASES DE DATOS
Controlrs que limitan el accrso drl usuario a u n suhconjunto d r una tahla Ijase. Prohando el rrndimiento d r un SGBD ejrrutando rina aplicacihn sohre 61. E n el andisis AED, el SGBD que sc: esti evaloando. La propicdad d e un SGBI) qur alrja su valor hasta la rmprrsa. La frontera cxterna en el anilisis AED. Controlc.5 qnc3 mantitmen la intepidail dc la base tle datos cuantlo doh o m i s usuarios (*onsultan simultineamente tin rcgistro d r la h e d e tlatos. En el anilisis AEI). r l camino desde el inicio hasta la unidad referencia Una propiedad de los SGBD clue se dche pro-
2. Oljtenga inforn~acibnso1)rr SGBDs cn red. (Esto purtle enrontrarsr cn la 1d)liotec:a.) ,Estos SGHDs abarcan las funcionrs drscritas m este capitulo? ,Existe informaciim sobrr las propirtladrs q u r hahilitan was funciones? 1Purde r r r a r una c:lasific:aci6n gen6ric.a tle las propietlades para las emprvsas (I(: una indnstria en particular?
3. Ohtenga informacihn arerra de dos SGBDs relacionalrs y repita el procrso dmcrito c-n el ejercicio 2 . Entoncrs 1)nsclue informacibn similar en un modelo j c r i r q ~ t i c oo un modelo c:n red y cwmpirclo con uno de 10s sistemas relacionalcs. i E s nlris ficil cr m i s dificil encsontrar infortuac*i6nsimilar? ;,Par quC?
4. Usantlo los datos tle dos o tres de los SGBDs antcriores, c r r r un modrlo tle p u n t n a c i h ~ ~ . Justifique su selecci6n tle 10s critrrios d r pesos y razoncs del SGBI).
5. 1,os programas de programaci6n lineal ( 1 2 ) e s t i n ampliamente difunclidos en las rscuelas tie negocios y departamentos d e cienria de la c:omputac:i611, a mcnudo sohre un microc:omt)utador. Use un I,P para analixar 10s datos d r 10s SGBDs A-F en el c:apituIo. Podria m a r los datos tal y como cstan, sin los pesos. Des1)ui.s repita (:1 anilisis usando 10s pesos. Finalmtmtr exyerimmte con algunos pesos propios.
6. Despu6s dr complctar rl ejerckio 5. trate de aplicar el AED a1 anilisis dcsarrollado en el cjercicio 4.
7. Basatlo en este capitulo. v s c r i l ~m a guia pequefia clue se pueda w a r en la selec~iirnd e nn SGBD en una compaiiia hipotktica.
8. Escribn una guia l r e v e arercx de 10s prowlimientos d e implementacih de 10s SGBD.
1. Contacte con una o dos instituciones clue use11 SGBDs. Encuentrr qu6 enfoque usan e n la srleccihn de sus SGBD. i E s t i n satisfrchos con el resultado?
2. Contactr con un vendedor para adquirir datos sobre su SGBD. ~QuC:informarihn contienrn estos datos q u r le resultaria i t i l m el proceso d e seleccionar un SGBD?
P
A
R
T
E
CINCO TEMAS AVANZADOS
L
a Part(: 5 vsti rompuesta por un solo capitdo que trata 10s avanres recientes en (4 tlrsarrollo de 10s sistrmas d r 1)ast:s de datos. Se tratarin las hases de tlatos orientadas a o1)jrto y 10s sistemas basados en el conoci~nicnto,arr~bosofrrcrn importantrs capacidadrs que dellen elevar el nivel ti(: las 1)asc:s tit. datos haria niveles mlis altos. Las bases de datos orientadas a objetos son capaces de inrorporar romplejitlath cpe sobrepasan a las tie 10s sistcmas de bases de datos relaciolialrs. I,os sistemas hasados rn el conorimiento aplican la 16&a de prcdicados a 10s sistvmas tle bases de datos relacionales para podrr inferir informaci6n adicional de alto nivel a partir d r 10s datos que estin realmente almacenados en la base de datos. Este es un tral~ajoexcitante que nos pcrmitiri poner a1 lector en el estado deJ arte ciel desarrollo tle los sistcwas ilr bases cle tiatos.
SISTEMAS AVANZADOS: SISTEMAS DE BASES DE DATOS ORIENTADOS A OBJETOS Y SISTEMAS BASADOS EN EL CONOCIMIENTO Una evolucion hacia 10s sistemas de bases de datos orientados a objeto lntento de proporcionar una representacion de 10s datos mas poderosa La contribucion de la programacion orientada a objetos Abstraccion de clases Clases derivadas y herencia simple Agregacion U n ejemplo extendido que demuestra la herencia multiple Desarrollo de 10s sistemas de bases de datos orientadas a objetos Gemstone Vbase Orion PD M IRIS 0 2
U n lenguaje generic0 orientado a objetos El modelo de datos del Lerner College Formular consultas con TextQuery El formato basico de una consulta Soluciones en TextQuery
Definir direcciones de las interrelaciones Navegar sobre 10s atributos y las interrelaciones Asignar nombres a conjuntos derivados Expresiones calificadas de comparacion de conjuntos Conectores booleanos lntroduccion a 10s sistemas basados en el conocimiento Conocimiento y bases de datos Representacion del conocimiento con reglas Formulacion de reglas Reglas en PROLOG Una aplicacion simple de base de datos en PROLOG Aspectos fundamentales de PROLOG La estructura de una aplicacion PROLOG Aplicacion de bases de datos Datalog Lenguaje de datos Iogico (LDL) Resumen Preguntas de repaso Problemas y ejercicios Proyectos y cuestiones profesionales
442
DISENOY ADMINISTRACION DE BASES DE DATOS
Sr~nfordMallon, CIO d e Internutional Product Distribution, estribu ulntorzando con Bill! Clurk, q u i w fue sci compaiicv-o ile uulris en la Obelisk Uniocxsity. Billy es ahoru el administrudor d e buses d e datos ile Simpson 'Z'whnologies, unc~$rinu d e maimfacturus rle (rho tecnologia. rlcaba d r rcgresur d e u n a oisita u la sede t l s~u uendeilor d e SGBD, 1Ingiclc.are, y ostil entl~siusmr~do con algunos d e los nueoos destrrrollos que h a cisto. "Tli smhes, Sandy, que rstumos muy contentos con las mejoras e n la i~$ornracion degestibn q u hmnos ~ realizudo p a r a nuestro sisternu uctunl d e base ile datos y nlirstru direccibn h a estado inuy rereptivu cJn s u utilizacibn. Pero nllorn esa rnisrrm direccibn nos estil p r e g u n t a i ~ d osi podemos h a c w m6s. " Sr~nfordle respondib: "iQu6 mils pliede hacer un .sistema d e bases d e datos? Estnmos ~iscmdoel mismo SGBD y creemos que cJstan1os operundo con lo incis uctuulizado." "Bien", respondici Billy, "tencmos uno o dos '~iucwosiluminados' que estcin prpgltntando s o b r ~sistenms de bnsm ile ilatos orientudos u objeto y sobre sistemas basados en el conocimiento. Yo nuncu hubiu oiilo hablur d e eso, p o r lo que llurnb n Magicware p u r u preg u n t a r qu6 es lo que sabian. Resulta que e s t a i ~desorrollando un produeto, un sistemu basado en el conocirr~iento,que renliznrci las juncionrs i~sumlesde gestibn d e buses d~ datos (I la uez yue le incorpora la teri~ologiaorientadu a objetos y "experienciu" ell formu d e reglas q l i operan ~ sobre l a base d e datos. Realmente no entenilia esto hastci que no visit6 las ojirinas de Magicware y ~ i ui n a d(~mostruci6n.Ahora estoy muy entusiusmado en p r ~ s e n t n r l e sesus capacidades n nuestra direccibn." "Espera un minuto, "dijo Sandy.. ."
' '
s avancrs en la prograinaeion orientada a ohjetos (OOP) e s t i conducieno 10s desarrollos actuales de 10s SGBD d e ohjetos (SGBDO) de rnodo qur s r tian manejar objetos complrjos, herencia y otras caracteristiras que perrntaci6n directa d e 10s modelos conc.eptuales orientados a objeto. Al rnismo tiempo, la trcnologia de las hases tie datos relacionalrs e s t i siendo extendida para cornhinar las capacidades de gesticin cie 10s datos con la aplicaci6n de reglas l6gicas para 1)rind a r informaci6n m i s refinada para la gesti6n. Tales sistrmas se llaman sistenlas ba,sa,dos en el conocimiento (SBC) ". En este capitulo se harii una revisihn tie algunas de las caracteristirab que han motivado estos desarrollos y se discutirin algunos ejernplos y c6mo extienden las capac:itlades d e 10s sistemas d e bases de datos existentes. DespuCs de leer este capitulo deberi ser capaz de: Comprcnder las caracteristicas bisicas d e la OOP y c6mo Csta se relaciona (.on 10s SGBD. Comprender c6mo 10s motielos conceptuales del Capitulo 4 se relacionan con la OOP y 1osSGBDO. Discutir algunos d e 10s prinripales SGBDO que e s t i n en el merrado o que e s t i n en desarrollo. Familiarizarse con un lenguaje genkriro de consulta para un SGBDO. Explicar c6mo 10s sistemas basados en el ronocirniento pueden extender el poder de 10s sistemas tie bases d e datos relacionales para brindar informacibn para la gesti6n. Identificar las formas en que el conocimiento se put+ representar mediante reglas. Discutir lenguajes como PROLOG y LDL y explicar c6mo han influido en el desarrollo d e 10s sistemas basados en el conocimiento.
' Conorido en inglCs pol. las siglas OOP (object oriented yrogrurnming) ( N . drl T . ) . ' Conocido m ing1l.s par l a b siglas ODBMS (object databnse rnunapernent system) ( N . del T . ) . Conocido en in&
por. la? s i g h KRS (knowledge bow systems) (N. del T . )
SISTEMAS AVANZADOS: SISTEMAS DE BASES DE DATOS ORIENTADOS A OBJETOS...
44 3
Una evolueibn haeia 10s sistemas de bases de datos orientados a objeto Intentos de proporcionar una representacih de 10s datos m i s poderosa Con todo la potc:ncialidad y bxito d r 10s sistemas dc hases rde datos rclacionales. ha! algnnas aplicaciones cuya complvjidatl no se puedc manejar h e n con c1 modelo relational. Es tipico en ese tipo de apliraciones involucrar datos cpe esthn altarnente interrelac:ionados, tales como definicicrnes de productos, multimedia o descripciolies dc materiales. La ewlucibn de 10s SGBDO es un esfurrzo para tratar csas c:crmplejitlades. Los desarrollos d r 10s SGBDO se han de1)ido lundamentalmente a la =C.nesisy a1 refinamiento de la 0 0 P .
La contribucidn de la programacih orientada a objetos (OOP) La Contribucibn de la Programacibn Orientatla a Ohjetos (OOP) a1 dPsarrtrllo tle 10s SGB-
DO cs consideralh. Lob lenguajes de OOP tiencn mis expresividad que 10s til)icos lenguajcb de bases de datos. Sin eml)argo, les lalta d a r mayor soporte a la persistrncia tle 10s objetos -01)jetos que necesitan existir mcis alli del &anci de unainterfaz particular del usuario con la hase de datos-. Esto tlaturalmente ha producido desarrollos, tales conlo rl SGBDO Gemstone (Maier y Stein, l9!X%),que intenta extmdcr las capacidacies de un Ienguaje OOP para incluirle las capacidades dt- gestiirn de datos de los SGBD. En el ~ a r ) i t u l 4o se usaron ciertas itleasf'unciamentales cruc sc derivan del tlesarrollo ' dr la programacibn orientada a objetos (OOP). En particular 10s "conjuntos wnceptuaIes" son anilogos a las "c:lascs" de la OOP sin las funcionrs miemhros. ],as instancias de 10s conjuntos conceptuales son como los ohjetos de la OOP. En la OOP, una claw se define por las propiedades siguientes:
1. Un conjunto de variables (atributos) que contienen 10s datos para un ohjeto de la clase.
2. Bloques tle c6digo Ilamados funciones que rralizan las operaciones sohre los tlatos de 10s objetos de la clase.
3. Un conjunto de mensajes frente a 10s cuales respon&n 10s objetos d r la clase. E n el modetatlo conceptual tenemos todas las estructuras de datos de nna clase, pero no se tlefinen ninguna de las funciones o mensajes que pertenecen a dichas clases. La implementacih requiere afiailir tales caracteristicas. Los SGBDOs, tales como Gemstone, comhinan las capac:itlades de 10s lenguajes tie OOP con tas funciones de almacenamiento d r 10s SGBD tradic-ionales. En la siguiente secci6n se destacan algunas de estas caracteristicas bisicas.
Abstraccih de clase La Figora 14.1 es una reproducci6n de la Figura 4.21 clue se estudi6 a1 comienzo. Podelnos ver que CLIENTE es una claw clue tiene el atrihuto CLIENTE#. Esto se representa de la forma siguiente: c l a s s CLIENTE { protected: i n t CLIENTE#;
1
DISENOY ADMINISTRAC~ON
TIENE-CUENTA-
I
CLIENTE
I
DE BASES DE DATOS
CUENTA CORRlENTE
T I E N E - C U E N T A ~ CUENTA AHORRO AHORRO
CLIENTE
&
CLIENTE
>
W
I
Z
A
C
~
# DE EMPLEADOS
l!sa~nosuna sintasis d r C++ (C++ s r nsa ampliamentc como Icnguajr tlr OOP). Los rlcmentos del lcnguajv q u r newsitarnos tbonocer son bastante ficiles de s c p i r . P o r ejemrlase. Una 1110. en el chdigo anterior no r s tlifiril ver clue el tkrmino class drnota m a dec.laraci6n de q w w n t a r i h n at)strat.~ci clasr. CIJENTE r s la eticlueta q u e Ir ht:mos dado a esa clase y el ehdigo e n w r r a d o entre tlr un (~~laritilla) c1avc.s define los miem1)ros ilr la vlase. E n estca caso; el i~nicwmiemhro rs CLIENrTE# qne c o ~ ? j ~ ~tle n t ohjrtos. o requirre un t i p de datos -se ha escwgido rntero (int)-. La coma "," intlica simplcmente el fin de une instruccihn. Las clasrs son ahstrawiones tm el mismo sentido clue 10s conjuntos en cl modelo concq)tual: Ellas permiten nna reprrsentac:icin tlr aqurllas caractrristiws de la rralidad cine son importantes en r l p r o l h n a cluca se t& tratando. Estas c1nsc.s prrmitrn drfinir un nhmrro finito de ohjrtos de die-ha clase. El siguiente c.btlign r s ilustrativo: c l a s s CLIENTE { protected: i n t CLIENTE#; }
main( ) { CLIENTE c l i e n t e l , c l i e n t e 2 , c l i e n t e 3 ; } St: ha aiiadido nna funci6n Ilamada '' main" q u e crea t r r s ohjrtos d r la clasc CLIENTE: clientel, c~lientr:!, clirntr3. Hasta ahora esta clase CLIENTE tirnr sblo mirmhros q u r son datos y no tiene fanrionrs, ksta podria extrudersr f'icilmentr p a r a incorporarle mien11)r.o~adicionalrs a la clasr. El punto aqui ha sido demostrar que, una vez q u r s r h a drfinido una clasr, cs f k i l r r e a r o1)jetos d r rsa clasr. Si pirnsa en rsto un momrnto, puedr imaginar a la claw coino un rsquenxr relacional y 10s objetos sr parecrn a las instancias tlrl esqurma. Esto es vertlad en un sentido limitado, pursto clue una rrlaci6n no puedr contrner una funcibn, ni tampoco permite otras posihilidades q u r analizarrmos a continuacihn. Hay aqui tam1)ii.n un ejrmplo simple d e envio de mrnsajes. Cuantlo s r cleclara un ohjeto dr una clase drtrrminatla, se le pasa u n mensaje a1 constructor de la clase para que crer una plantilla (template) d e la (:lase en mrmoria y le di. a 4sta el nombre del ohjeto. (En estr ejemplo tenrmos trrs mensajes.)
SISTEMAS AVANZADOS: SISTEMAS DE BASES DE DATOS ORIENTADOS A OBJETOS...
445
Clases derivadas y herencia simple
clase derhada. Una clase clue liereda caracteristicas c k otra clasr.
A la Figura 14.1 le hemos afiadido dos t i p s adic-ionales de ohjetos, amlws son esprcializaciones del o1)jeto CLIENTE: CLIENTE-HUMAN0 (CH) y CLIENTE-INSTITUCION 41, (CI). Esto correspondr a las clases derivadas siguientes: c l a s s CH: p u b l i c CLIENTE { protected: char sexo; char f e c h a _ n a c [ 8 ] ; };
c l a s s CI: p u b l i c CLIENTE { protected: i n t NUM-EMPLEADOS; char TIPO-ORG; char PERS-CONTACT0[12]; };
La notacibn "class C1" declara como es usual a una clase de nomhrr CI. La extcmsibn ":r)ublic CLIENTE" declara a CII v CI conio clases derivadas d r la clase CLIENTE. La notacibn "public." signil'ira clue a la clase derivada se le permite r l acceso a todos 10s miemLros de la rlase CLIENTE -excepto aquellos que hayan sido declarados "private"-. En 10s ejemplos anteriores, tanto CI corn& CH, i m e d m acceder a todos 10s miemtwos de CLIENTE. Por sirnplicidad hemos omitido ejemplos d e funciones d e clasr y paso d e mensajes, pero es fhcil pensar en funciones que lean datos, escril~andatos, busquen datos y ejecuten oprraciones aritmkticas y lbgicas sobre 10s tlatos d e la clase. Podcrnos ahora declarar objetos de la clase derivada clue tengan no sblo sus propios datos o funciones mieml)ro, sino que hereden todos 10s que tienen sus clases base (padre). P o r ejemplo, el fragmento C++
main ( ) { CI c l i e n t i n s t ; CH clienthum; 1 crea un objeto (clientinst y clienthum) para cada una de las clases derivadas (CI y CH). Cuando se declare cada objeto d e clase se pasa un mensaje para crear la plantilla para la clase base y luego la plantilla "para la clase derivada. El ohjefo "clientinst" puede aceptar y nianipular valores para sus propios miemhros como son NUM-EMPLEADOS, TIPO-ORG y PERS-CONTACT0 y tambikn hereda CLIENTE# d e la clase base.
objeto coniplejo. Corresponde a un agregado o interrelaci611 de alto nivel (como se definib en el Capituh 4).
i Q ~ hay k con la agregacibn? Considere el fragmento d e un modelo orientado a ohjetos que se muestra en la Figura 14.2. Aqui tenemos una interrelacibn de agregacibn como un objet o complejo. Esto se representaria como sigue: class
PRODUCT {
protected: i n t ID-PROD; };
C t t usa el 16rmino plantilla (template)para referirse a clasrs grnkricas, 6ste no es exactamente el significado con cl que se usn aqui, pero se ha respetado la terminologia del texto original (N. del T.).
DISENOY ADMINISTRACION D E BASES D E DATOS
G M B R E - p a
VENTA PRODUCT0
class
class
PAIS { protected: c h a r NOMBRE-PAIS[ }; VENTA { protected: i n t CANT; PAIS p; PRODUCTO p r o d ; };
PA~S
151 ;
Vrmos (1ur PIAIS y PRODlJCT se dcscri1)rn de la nianera usual. Ksas (:lases deviencn r n tniem1)ros tie la (blase VENTA. Cuando sc drclara un ohjrto VF:NT,4 en la forma siguirntc: VENTA e s t a - v e n t a ;
Se crca una illstanria rlr la claw VENT.4 con el nomtwe esta-venta. El ohjrto esta-venta pnede t m r r l o s datos d r luia vrnta en p r t i c u i a r ; por ejemplo, '' .4lernaniam , ".lah6n1', " 25". Tenemos asi toda la inforlnaci6n agrcgada clue se qurria.
Un ejemplo extendido que demuestra la herencia mliltiple Nos rrf't.rirernos n Ids Figuras 14.3 4 14.4. Ol~srrvc.que en rl fragmcnto d e modelo orirntado a o1)jctos de la Figura 1 k.3 terirtnos tre5 conjuntos d e ohjetos: EMPLEADO,
7' 7 L,1 NOMBRE
EMPLEADO
PROGRAMA
DIRECTOR
SISTEMAS AVANZADOS: SISTEMAS DE BASES DE DATOS ORIENTADOS A OBJETOS...
447
/I Este programa demuestra la herencia multiple / / Primer0 se define la clase EMPLEADO class empleado
t char char void
ss#[ll]; nombre[l2]; 1 1 Esta es una funcion miembro para la entrada de datos traeDato( ) ; t cout << " \ , Introduzca el numero de seguridad social del empleado: " ; cin >> ss#; cout << "Introduzca el nombre del empleado: " ; cin >> nombre;
1 1; / / Ahora se define la clase DIRECTOR DE ENTRENAMIENTO class dir-entrenamiento
t char char void
genero; program[l2] ; entDato( ) t cout << " Introduzca el genero de entrenamiento: " ; cin >> genero; cout << " Introduzca tipo de programa de entrenamiento: " ; cin >> programa;
1 1; //Ahora definimos la clase derivada DIRECTOR DE ENTRENAMIENTO ASALARIADO class asal-dir-entrenamiento: public empleado, public dir-entrenamiento t float salario; void entrada( )
t empleado::traeDato( ) ; dir-entrenamiento::entDato( ) ; cout << " Entre el salario del entrenador: " ; cin >> salario;
1 1; main( )
t asal-dir-entrenamiento adel.entrada( ) ;
adel;
1
UIK-ENTRENAMIENTO p ASALARIADO-DIR-ENTRENAMIENTO. EMPLEADO y DIR-ENTRENAMIENTO son clases bases corrientes, mientras que ASALARIADO-DIRENTRENAMIENTO es iina especializaci6n tanto de EMPLEADO como de DIR-ENTREN A M I E N T O . Esto rs, ASALARIADO-DIR-ENTRENAMIENTO hereda todos 10s atributos de EMPLEADO p DIR-ENTRENAMIENTO y a su vez aiiade el atributo S A L A R I O . Esto es consistente con nuestros primeros modelos del Capitdo 4. Hahiendo expuesto algunas rrpresentaciones modrstas de O O P , vamos a ampliar la representaci6n un poco para dar un cuadro m i s general. Considerernos ahora el programa C++ de la Figura 14.4, que conviertr el fragment0 de modelo de la Figura 14.3 a O O P .
DISENOY A D M I N I S T R A C ~ ~DE N BASES DE DATOS
Se han in(-luidovarios comrntarios en el programa (se denotan por "I/"). Se aclaran !. extienden cstos comrntarios. Primero ohservamos la creacibn de la clase llamatla
"rmplcado". Previamcnte se us0 rste nombre con lrtras mayusculas conformc a1 modelo orirntado a ohjetos -per0 esto fur: por facilidad y no es una esigencia-. Ohserve que la clase contirne ahora no s d o atrihutos drl conjunto de ohjrtos EMPLEllDO, sino que cont i m e tnmhibn una funcihn simple. Esta funcicin tiene nombre "traeDatos". Sin profundizar mucho en la sintaxis es facil ver que esta funcibn permite la entracla tle datos. Vemos m a representacicin similar para el conjunto DIR-ENTRENAMlENTO. El twnjunto L4SL4LARIADO-DIR-ENTREN~~MIENT0 se derlara como una claw en la forma usual (con la etiqueta "asalariado-dir-rntrenamiento'? como nomhre de clasr), pero tam1)ii.n vemos quc se ha afiatliclo la extensihn "puhlic empleado, public dir-rntrrnamiento. Esta extrnsihn significa q u r la clase "asalariado-dir-rntrrnamiento" herrtla toclos 10s atrih t o s y funciones cle la clasr "empleado" y d e la clasr "tlir-entrenamiento" ( a rnenos que rllos se hayan declaratlo privados, lo que no es el teasoa t p i ) . La claw "asalariado-dir-rntrenamiento" tarnbiln tirnr sus propios atri1)utos y funcionrs. El atrihuto clue es ilnitw para esta clasr es "salario". Observe q u r esta clase contiene una funrihn "entrada". La pala1)ra "void" significa que no se rrtorna ningun valor. Los "( )" significan que la funcihn no recihe valorrs (parimetros). Ohserve q u r la funcicin "entrada" utiliza funciones d r ambas rlases 11ase. "empleado::trael)att~s'~ provoca la cjccuribu de la funcicin trarDatos de la clase "emplrado", lo q u r garantiza q u r se introduzca el nGmero tle seguridad social y el nornhre del empleado. dir-rntronamiento::entral)atosn origina que se rjecute la funcihn rntraDatos tle la clase "dir-entrenamiento" (pie ohtiene el gCnero del entrenamiento y la identificacicin del programa. Esto va seguido cle instruccionrs q u r ohtienen el salario d e dir-entrenamiento. Ninguna de estas acciones ocurre hasta q u r no se invoquen a travGs de un ohjeto. Aqui vemos que se declara un ohjeto de la claw "asalariado-dir-entrenamirnto". Este objeto tiene nomhre "agel". Entonces "agrl.mtrada" provoca la ejecucicin de la funci6n "entrada" cle la clase "asalariado-dir-et~trenamiento", de la cual agel es un ot~jrto.De mod0 que todos 10s datos clue se introtluzcan mrtliante esta funcibn i r i n a parar a1 objeto "agel". Aunque estos son ejemplos nluy simples, sirven para tlemostrar la interrelacihn entre el modelado conrrptual y su implrrnentacihn en el software orientatlo a ohjrtos. En particular se retpieren las siguientes cw-acteristicas en 10s SGBDOs:
1. Capacidad d e tnanejar objetos coniplejos. El SGBDO debiera ser capaz de
sistema d e base d e datos orientado a objetos. Sistemas de bases de datos que pueden implementar nlodelos conceptuales directamente y que pueden representar complejidades que van mis a116 de las capacidades de 10s sistemas relacionales.
almacenar y manipnlar olljrtos de alto nivrl -aquellos que e s t i n compuestos de ohjetos simples y sus interrelaciones. 2. Capacidad d e incorporar mktodos q o e o p e r e n s o b r e 10s datos d e u n objeto. Las funciones que se aplican a un ohjeto deben estar encapsuladas en la definicibn del objeto. 3. Capacidad d e irnplementar objetos c o m o miembros d e las clases. La idea de una clase como un conjunto d r objetos instancias es la base sobre l a cual se formulan las consultas. En las bases de datos relacionales, una consulta se aplica a una relacibn o a una coleccicin de relaciones. De manera similar, en las bases d e datos orientadas a objeto, una consulta se aplica a una clasr o a un conjunto de clases. 4. Capacidad d e representar jerarquias d e clases y herencia. Los SGBDOs permiten a1 usuario derivar una nueva clase a partir d e una clase existente que hered a todos 10s atrihutos y mitodos de una o m i s clases base (padres). Una clase puede tener una cantidad cualquiera de clases derivadas, aunque algunos SGBDOs permiten que una claw tenga &lo una clase base. E n el primer caso, una clase hereda atrihutos y mCtodos de mas d e una clase hase. Veremos esto e n el ejemplo d e herencia multiple. E n el segundo caso, una clase derivada hereda atributos y mitodos de una sola clase base. Tambiin se mostrari u n ejemplo d e este caso.
SISTEMAS AVANZADOS: SISTEMAS DE BASES DE DATOS ORIENTADOS A OBJETOS...
Desarrollos de 10s sistemas de bases de datos orientados a objetos En vita src*t.ihn i e rvsumen algunos tlr 10s SGBDOs m i s conoridos. Emprzarvmoi con y Stone, 1987). G r n ~ t o n (Mrier r
Gemstone Grnistonr rsth basado tbnel lenguaje d e OOP Smalltali, w n shlc; m a s peas estensiont~s.Es u n producto r.omcrcia1 q n r snministra aspt:t.tos de la 0OP. tales conin idvntidad tlt* un ohjeto y ~~ncapsiilati6n. junto twn herencia simple y m a interfaz extvrna como 1111 conjnnto d r mrnsajes. Como sistemas tle gestihn tlr I~asesde datos, Gemstone proport%ma cont~wl de concurrmcia y rrcnper;1t-i6n, gesti6n de alr~iacenan~it.nto serundario y autorizacihn. Gemstone tirnr un lcnguaje tlr ronsulta clue permite formular rspresiones sohrc lah varia1 1 l t tle ~ instancia de un o1)jeto. (;emstone soporta aweso twncurrrnte )-inCtotlos para rnantcnrr la scguridatl y la integridad tlr la h a w dc tlatos.
\ I m c . (Andrews y H;irris, 1987) es tamhii.11 un SGDBO comercial. Vl);isc enfatiza algunas t*aractrristicas de la OOP, wino una estnwtura fiierte dc t i p de datos y la utilizacihn tit, 10s tiposdt: tdatos ahstractos. Vtjast: usa un lcngriaje de t*sl)ecificatGm,TDL. para defiliir ohjetns. nomhrar la$ variables de l;i I ~ a s ed e datos y para d r r l a r a r rt~strirrioncs.Vbasr m a 1111 lrnguajt: d r implenirntilt*i6nllamado COP. V l m r perniite que se crren ohjetos d r un tipo (clase) para los que sus propirilades y opt'rariones se tletcwuinan p o r este tipo d e t:rt.ar.i6n. V l m e pnetle (:rear t a m h i h ohjrtos agregatlos y soporta las intt:rrelac:iont~suno-uno, uno-murhos y m u t h s - m n c h o s entre 10s ohjetos. \ l a s e soporta la mayoria de las funt*ionalidadesque se esperan d r un SGBT). Los ohjrtos pucdrn twmpartirst: entre milltiples p - o t w o s contwrrentemente, t a n i l ~ i hsnministra facilidatlrs d e svguridad y rernlwrari6n junto con control d r a c t w o simple.
Orion Orion es nn prototipo d r SGBDO tine e s t i siendo desarrollatlo en el MCC (Banerjec y otros, 1987). A1 igual q n t ~Gemstonel Orion se tleriva del lengnnjc de O O P Smalltalk, p r o posetLcapat:idades de herencia milltiple. Inrluye rrcursos aditionales para bases ck datos, romo la posihilidad de liacer una amplia variedad tle camhit~sm el esquema de la base tle tlatos -tales como la definicihn de c1ast:s y la drfinici6n de m a jerarquia de clases, asi como la capacidad de c r r a r y manipular objettrs complejos. Orion esta disriiado para soytrrtar de modo natural necesidades cie orientaci6n ;i ohjrtos tales como las tie 10s sistemas CADICAM o la de 10s sistemas hasados en el conociniiento.
a l datos DAPLEX. Como PDM (Manola y Dayal, 1986) esti hasado en rl modelo f ~ ~ n c i o ndr consrcurncia, el algehra de PDM esta muy cercana a1 algebra relacional, con a l p n a s (liferencias importantcs. La m i s importantr entre &itases la capacidad de aplicarle funciones multiargumentos a 10s objetos. PDM incluye tamhitn un operador &IPPLY-APPEND q u r permite realizar la t:oniposici6n de funciones. E n PDM. a1 igual que en DAPLEX, todo es f u n c i h .
DISENOY ADMINISTRACIONDE BASES DE DATOS
IRIS IRlS (Fishman y otros) rstli sienclo tlesarroUatlo por Hrwlett Pacltard. Tiene una sernejanza cercana a 10s sistemas relacionales. IRIS utiliza un adrninistrador dr. almacenatiento similar a1 q u r usa System K y soporta un lmguaje d r consulta hasado en SQI, (OSQL). El rnodelo dr lRlS pernrite la reprcsentacihn d r ohjetos y d r co1rt:cionrs de objetos, asi twmo tlc oprracionrs. El SGBD consistr en un procesador dc consultas q u r implrrnrnta el modrlo de clatos orientatlo a ohjetos y qut: soporta abstracc.iones estructurales dt. alto nivel, tales ccrnio la dasificatibn, la grneralizacihn y la agregati611, asi como al)strac.cionrs tle comportarnirnto. Las intcrfatw con IRIS int:luyen una extcmi6li a ohjetos de SOL.
02 0, (Lerlnse y otros, 1988) soporta tipos de objetos, rncapsulaci6n y herencia. O2 soporta tarn1)idn multiples lenguajes, tales corno BASIC, C y LISP. Proporciona reeursos para la m c a p ~ i l a c i 6 n la , hrrencia y la so1)recarga d r operadores. E n contraste con Gemstone, en el q u r tocto es un ohjcto, 0, no define las clases y 10s mktotlos corno ohjetos.
Un lenguaje genkrieo de base de datos de objetos En esta serci6n sr yrrscnta un Irnguaje genkrico debase de ctatos d r trhjetos llatnado TEXTQUERY. Conlo el nornhrr sugierc. es un lrnguaje tlr consulta textual q u r opera sohrr hases de datos dl*ohjetos. Estr lengnaje no cstli realrnente inlplemrntado, pero dernuestra inuchas dr las c:aracteristicas cwmunes m 10s lengnajes 3e l m e s de datos d e ohjrtos.
El modelo de datos del Lerner College En la Figura 14.5 se rnurbtra m a parte del modelo d r datos del Lerner College. Este rnodelo contiene ruatro conjuntos de objetos (PROFESOR, ESTUDIAIYTE, CURSO, DEP4R-
45 1
SISTEMAS AVANZADOS: SISTEMAS DE BASES DE DATOS ORIENTADOS A OBJETOS...
T-AMENTO)y siete intrrrelacionrs, Cada uno tlr 10s conjuntos dc ohjetos t i m e nn n1'11nrro tle atrihutos. P a r a hacer el t:jeiiiplo miis conrreto s r lian tornado algnnos ejemplos dc datos ({el modrlo tie datos del Lerner College en la Fignra 14.6. Esta figura niuestra valores siniples d r atrihutos p a r a instancias tie cada imo de 10s conjuntos tle objrtos y uno de 10s conjuntos interrelaciones (HA-TOMADO). La Figura 14.7 mi~estrac6mo las instancias tlr los conjuntos d e objrtos se relacionan con otras vias d r las interrelacionrs datlas. Antes de srguir adelante, pudirra ser util revisar la tlistinci6n entre una instancia de o1)jeto y 10s valorrs de sus atrihtltos. D r niodo q u r "John" es el nomhre de una persona. p r o la pt:rsima a la que llamamos "John" no es la nlisma cosa que su nomhre. Como iin tbjtmplo adicional, potl(:nios identificar una pt:rsona por su nunlero de srguridad social. p r r o la persona no es un nilniero dt: seguridail social. P o r lo tanto, la E'igura 14.5 representa t.onjuiito de ohjetos separadamentc: de sus atrihutos. La ventaja d e esto rs q u r podemos carnhiar los valorrs de 10s atril)utos, aiiadir atrihutos y t ~ o r r a ratrihutos sin preocuparnos de perdrr niripuna d e las instancias tle ohjctos. 'I'anihitn podenlos m a n i l d a r
PROFESOR ID#
NOMBRE
SALAR I 0
OFICINA
82 1 91 1 237 113 544 145
Adams Clyde Brown Parker Hinman Stevens
38000 27000 38000 33000 42000 45000
281 CB 48 TMB 521 MCK 492 CB 213 TMB 312 CB
TELEFONO# 4822 3085 7324 61 22 41 88 1203
DEPARTAMENTO NOMBRE
TELEFONO#
MATEMATICAS INGLES HISTORIA
81 11 4980 5233
OFC IN I A# 411 TMB 512 MCK 313 CB
ESTUDIANTE D I#
NOMBRE
DIRECCION
3825 491 3 6255 4118 3223
Mary John Ann Kelly Roger
214 HH 33DG 4117 RCK 311 ST 4214 RCK
TELEFONO# 21 12 31 14 531 1 6622 1383
FECHA - NAC 3/12 1419 513 2414 1717
CURS0 CURSO#
HORASCR
CURSO#
HORASCR
HI21 I101 I212 M I 15 M213
3 3 2 4 3
H250 E372 M336 E456 H312
2 3 3 3 3
HA - TOMADO NOMBRE(ESTUD) Mary John John Ann Ann Kelly
CURSO# I101 HI21 I101 I 2 12 H250 I372
NOMBRE (ESTUD) Kelly Roger Roger Roger Roger
CURS0 I456 MI15 M213 M336 H312
DISENOY ADMINISTRACION DE BASES D E DATOS
instancias dr o1)jetos sin Imwxlparnos sohrr atrihntos t.sprc:ii'icoso sol~re10s valores dr 10s atril~utos. La F i p r a 14.8 purtlr ayudarnos a wmprrndrr la separacibn rntre una instanria de ol)jrto de nn valor objeto. La Figura 14.8 (a) rnurstra m a repre~~ntacibn tipica del conjunto de ohjetos ESTUUI;\NTE y clel atrihuto NOMRKE. mirntras clue la Figura 14.8(b)
PROFESOR
Clyde Brown Parker Hinman
*
-I
ESTUDIANTE
s z
p Kelly
Ann Roger
Stevens
PROFESOR
.
*
I DEPARTAMENTO L
Adams
Matematicas
Clyde Brown
lngles
Parker Hinman Stevens
Historia
(b)
* ESTUDIANTE
john Ann Kelly Roger
* CURS0
v
45 3
SISTEMAS AVANZADOS: SISTEMAS DE BASES DE DATOS ORIENTADOS A OBJETOS...
*
* ESTUDIANTE
CURS0
Mary John Ann Kelly Roger
*
I DEPARTAMENTO
Historia
CURS0
-
HI21 H250 H312
(e)
ESTUDIANTE
-*
I
DEPARTAMENTO
DISENOY ADMINISTRACIONDE BASES DE DATOS
PROFESOR
I
Adams Clyde
Brown
-
mwstra las instantias rralw tle olbjetos y 10s valorrs tlr los atributos. EII este caw, rl ronjunto dt* ohjrtos ES1'UI)IANTE wntirne cinco instanrias: o t:stldiantes. reprtwntatlos p r 10s tirltw 1)untos qut: 51' mutxstrilrl en la raja ESTUDIINTE. Tenrmos u11 valor -un noml)rt. rspecifico- para rl atrihuto NOMHRE para cada estudiantr. Estr valor sr indica par una linra que st: dilmja drsdr (4 valor tlel atril~uto-rl nomlm.- hasta el punto qar rcprrsenta a1 estudiantr. I)r modo clue tenrmos una linra drsdr '-Maryn llasta el punto que rrprrstwta a1 c s t d i a n t e tlr nomlrre "Mary" en el ronjunto dt- ohjrtos ESTUDIANTE. Los atrilmtos son importantrs porqlir identifiral1,y ayudan a distinguir rntrr las difcrrntes instancias tlt: ohjetos. Dr hrrho, una clnve cs un atriljuto o un conjunto dc atributos que identifica uniramente cada instancia del ohjcto. Sin crnl)argo, para algunos proyOsitos no rs ntmsario usar lalorrs dr atribntos para distinguir rntrr instal~ciasde objrtos. Por tanto, tratar una instancia de nn objeto srparadamrntr d r 10s valorcs tir sus atrilwtos f a d i t a r i cirrtos tipos dr manipnlacihn d r datos. Esto sta ilustrara t~uandoposteriormrntr r n el capitulo st. rra1it:en varias consultas. 0bst:rvr que estanios usantlo atrihutos -NOMBRE y CURSO#-- para id~ntificar o instancias tie o1)jetos en nntAstrorjrmplo de base de datos. La Figlira 14.7 a-g h a w ~ s t mis tpemostrar las instancias conlo puntos que rstin conectados con 10s valorrs d r 10s atributos. Esto sr realiza s d o para simplificar 10s diagramas.
John
Kelly
SISTEMAS AVANZADOS: SISTEMAS DE BASES DE DATOS ORIENTADOS A OBJETOS...
Formular consultas eon TextQuery Durante sus cntrevistas cwn el personal en Administracibn, Hepistro y Atlniisicin y t l o ~ ~ d e quiera en el campus del colegio, Roherta y J u a n han t d c c c i o r d o una larga lista d e preguntas quc 10s usuarios potentiales c1i. la hnsv de clatos quisieran vcsr respondidas. Los siguientcs son algunos c.jemplos reprt:sentativos: iQuii.nes son 10s prof~:soresclue ganan por cncima dc 10s 840.000? 1QuC profi.sores t r a l ~ a j a npara el departamento de Ingli.~?~ C ~ I Isc I Ollanian los profcsores con 10s (11ictonla I-lasesKt:llyY ~ Q I I est11diantc.s P h a n tomath todos los cursos ofretidos por 1.1 tlepartamentos de Mateniiiticas? ~ Q u kestudiantcs han tomado todos 10s cursos oireciclos por el departamento bisico? iQuk rstudiantes estin repitiendo? ;.Qui. estudiantes han pasado. o cstin pasando, un curso tle historia? Las respuestas a estas prepnntas drberian tsstar contenidas cn 10s c*onjuutosde olljctos e interrelaciones tle nuestra h e de tlatos. Si pudiera usarse uri computatlor para a c w d e r a la basc d e tlatos, podrian rcsponderse a estas prepmtas. La rlave es formular esas consultas en Iln lenguaje orientado a ohjetos, tal w m o TcxtQuery. (pie podria traducirsc en operacionrs que el cornputador 1)uedn cjecutar, permitiendo a la computatlora itlentific a r y acceder los datos apropiatios.
El formato bisico de las soluciones de consulta en TextQuery Empezamos la dcscripcihn d e TextQuery con un ejemplo. X u a l e s son 1 0 s nombres y s a l a r i o s de 1 0 s p r o f e s o r e s que ganan p o r e n cima de 1 0 s $40.000?
En la Figura 14.5 se purclr ver clue 10s clatos nrcesarios para responder a esta consulta r s t h contenidos en (:I conjunto dt: objetos PKOFESOR y S I I ~atrilmtos. La soluricin a esta consulta puede lormularse en TextQuery en la forma siguirntc: { (nombre, s a l a r i o ) :
Conjunlo solucion. Un ronjunto de valorcs tle tlatos de la base dc datos qut3satisface las c,ondiciones dc una consulta.
nombre ES-NOMBRE-DE p r o f e s o r AND s a l a r i o ES-SALARIO-DE p r o f e s o r AND s a l a r i o > 40000 }
Esta soluci6n en TextQuery define un conjnnto cuye delinicicin s r d a e n t r r claves. La definicihn debe leerse como: "El conjunto de 10s pares de nom1)res y salarios tales qne el n o n h r e es el nomlwe de alghn miembro del profesorado, el salario es el salario tlel mismo miembro tlel profrsorailo y el salario es mayor q u e 40.000." Si esta solucicin TextQuery se aplica a la base de datos nos d a un conjunto soluc i 6 n -un conjunto d e valores d e datos de la base de datos consistente de pares de n o n hres y salarios q u c satisface las concliciones d e q u e el nomhre y el salario clel p a r s r aplican a u n niismo profesor y q u e el salario es mayor clue 40.000-. Usando 10s datos de la Figura 14.6, el conjunto s o l u c i h p a r a esta consulta es un conjunto q u e consistr e n 10s dos pares: { (HINMAN, 42000), (STEPHENS, 45000) }
variable. Un rlombre sinil)cilicoque representa una instancia no especificacia en un conjunto de objetos.
Tolnemos apart? la solucicin TextQuery y examin6rnosla p o r partes. Tkrminos. E n la solucicin TextQuery, las p a l a l ~ r a snorrtbre, sulario y profesor representan instancias de 10s conjuntos d e objetos NOMBRE, SALARIO y PKOFESOR, respectivaniente. Esto es, estas palabras son variables que p l e d e n tomar cualquiera de 10s valoreb
DISENOY ADMINISTRACION DE BASES DE DATOS
en estos tres conjuntos. ES-NOMBRE-DE y ES-SALARIO-DE son nornl~rrsde interrelaciones c:orres~)ondirntt.sa 10s atrihutos NOMBRE y SA41,ARI0qne relacionan a los mieinhros tlrl profesorado con su nombre y salario. De n~otloq n r si la varialde profesor representa al profcsor cnyo n o m l ~ r ers UROWN, se tiene entonres clue nombre = BROWN, y s a l a r i o = 38000.
lida resultado. Una lista 1)arametrizada cie \ arial)les qnr re1)rescnta (~1 formato drscado tle un ~ n i e m l ~ tipieo ro tle nn conjunto de solwihn dc una consulta.
Partes d e definicibn d e conjuntos. 1,os (10s puntos (:) separan las cios partes printipales tle la definicihn de cwnjnnto -la lista dt. resnltado y la rxl1resi6n tle calific*ac:i6n (Cootl. 1971)-. La lista resultado (tuwget list). una lista parrntizada clr varialllrs, (la el formato deseaclo d r un miemlwo tipico del cwnjunto cie soluciones -en estr caso, nn p a r de cletneutos consistent(. rn n n noml)rr y nn salario-. La expresibn d e calificacibn (la nna condicihn clue s r rcfiere a la lista resultado y drlw ser verdadrro para los elrnientos en el WIIjunto soluci6n. TJa lista de rcsultado del rj(bmplo es (nombre, s a l a r i o )
t=xl~rcsi6ndr cnlificaci6u. Una rondicibn \ erdadcra o f'alia t1nc st' refirrc a la liita re-ultado j qac tlehe cwn~l)lirieljara 105 dtwentoi rn el wnjunto solnci6n.
y la c.xl)resi611cle calificac-ihn consia de trcs snl)rxpresioncs: nombre ES-NOMBRE-DE p r o f e s o r s a l a r i o ES-SALARIO-DE p r o f e s o r s a l a r i o > 40000
quc estin cone(-tadas por AND Ihgicos. Aplicando la solncGn TextQuery a la 1)ase tlr clatos s e genera (:I conjunto d e solucihn. Esto se hace permitiendo qur la lista rrsnltado vaya a s u n ~ i r n d otodas las ~ ~ o s i b l con11)irs nat:iones dv valorcs nomhrr y salario. P a r a catla coml)inaci6n, se evalua la expresihn de c:alific:aciOn. Si la rxpresiOn r s verdaciera, entoncrs el p a r nomhre-salario s r pone r n el conjnnto solliri6n. Si no 1:s vrrciadera, se descarta esa c.onlhinacihn nombre-salario y se rxarnina la pr6xima conlhinaci6n nom1)rr-salario. Supongarnos por rjemplo: nombre = ADAMS s a l a r i o = 42.000
La expresihn dc. calific.acihn s r r i verdatlera si y shlo si exisle alguna instancia de PROFESOR cuyo n o n ~ h r rc!s ADAMS, que tiene tin salario de 42.000, y cnyo salario rs mayor clue 40.000. F h rste caso el salario es mayor q u r 40.000, p r o la e x p r e s i h tlr calificacibn como un todo es falsa porqur no hay ningiln profrsor tle nombre Aclams qne tenga n n salario de 42.000 (revise la Fignra 14.6). P o r lo tanto, la conll)inac:i6n (ADAMS, 42000) no s r pone en el conjunto solnci6n. Intentrmos con la con~hinacihn: nombre = ADAMS s a l a r i o = 38.000
Hu,y nn miembro de profesor d r nomhrr ADAMS que tirne nn salario d e 38.000. d r modo q u e las primeras dos subexpresionrs son verdaderas. P e t o la ultima sutwxpresihn es falsa, ya que el salario r ~ oes mayor clue 40.000. P o r lo tanto, la expresi6n d e calific,acihn no es verdadera p a r a la cornl)inacii,n (ADAMS, 38000) y esta solucibn tarnpoco se pone en el ronjnnto solucihn. Es ficil ver q u r (INMAN, 42000) y (STEPHENS, 45000) son las unicas dos combinaciones q u r satisfacen la rxpresibn de calificacihn. P o r tanto, estos dos pares constituyen rl coniunto solucihn comuleto de esta consulta.
SISTEMAS AVANZADOS: SISTEMAS DE BASES DE DATOS ORIENTADOS A OBJETOS...
457
Esta consulta y su solucibn ilustran varias reglas clel lcnguajr TrxtQurry. Antes tle continuar vamos a vrr cstas rrglas y considwar algunas mrjoras qnr sr l ~ u r d c nusar en estas y en otras t:onsr~ltas.
1. Las variables en TcstQurry clue representan instancias tlr 1111 cwnjunto dr ohjctos sr escrihen ~ 1 minuscnla. 1 El nonhre en minuscnla t k nn conjunto de ohjrtos drnota a una ir~stanciatlr dicho twnjunto de ohjetos. 2. Las varialdes qur reprrsrntan instancias de un ronjunto dt: o1,jetos tamhibn purden definirsr intlicando qur la varialjle r s t i (IN) en el conjnnto de objrtos, tal como se lnuestra en 10s rjrrnplos siguicntes: p I N PROFESOR p r o f e s o r 2 I N PROFESOR p r o f e s o r ' I N PROFESOR
Estas instrucciones drfinrn a p , prtfesor2 y profesor' como varial)lrs, cada una rrprrsentando una instaucia m el conjunto de ohjrtos PROFESOR. 3. Los nombrrs de atributos tlr nn conjunto tlr ohjetos sr pnetlen transformar a nomhrrs de interrelacionrs aiiadibndole el prrfijo "ES-" J- el sufijo "-DE" a1 nombre del atributo ". De moclo que ES-NOMBRE-DE y ES-SALARIO-DE
son nomhres de interrrlaciones creados para 10s atril~utosNOMBRE y S.4LA4RI0,respecttivanlentr. 5. Una solucibn TrxtQurry sirmprr rs una definivihn d r conjunto, cwlsistrnte r n una exprrsiim -la lista rrsultado- qnt: rrpresenta a un elemento tipico d d conjunto solucibn, seguida d r tlos puntos, seguida de una condieibn -la exprrsihn de calificacibn- qur califica precisamrntr 10s elrmentos a incluir en el conjunto soll~cibn.La dt:finicibn sr enrier r a rntre claves (1 para inilicar cjue rstanlos definiendo un conjunto -en particnJar, el conjunto de todos los rlrn~entoscuyo formato es la lista resultaclo y qne satisfacen la contlicibn estahlecitla por la rxpresihn cle calificacibn. 5. Dentro d r la tlefinicibn de un cwnjunto, una variable rctiene su sipificado rntre una ocurrencia y la siguirnte. Asi pues, en nuestro ejemplo, salurio r s t i drf'inido en la lista rrsultaclo y ocurre rn la exl)resibn d r t:alificaciOn. Esto signijica lo mismo cada 1:ez clue ocurra. Si durantr el cilculo del conjunto s o l u c i h para la consulta, sulorio asume el valor 38.000 en la lista resultado, entonces time el mismo valor cada vrz que aparezca en la expresibn tlr calificacihn. 6. Si una variable no aparece en la lista rcwdtado, Iwro aparecr en la exprrsibn de calificacibn, se dice que la variable e s t i cuantijicuda existencialnwnte. Esto significa que existe algun valor en el conjunto de objetos para la variable. P o r ejernplo, en la expresibn s a l a r i o ES-SALARIO-DE p r o f e s o r
profrsor esti rxistencialmente twantificada. La e\prrsibn puedr interpretarw cbomo: " Existe un miernlm del profrsorado tal que salario es el salario de dicho mirmbro."
DISENOY ADMINISTRACION DE BASES DE DATOS
Definir las direcciones de las interrelaciones El primer ejemplo fur rrlativaniente simplc, puesto clue rclaeionaha shlo a 1111 conjunto de o1,jctos y siis atrihntos. Sin embargo, la solucihn a otras consdtas 1)oc:cle involucrar (.onjuntos cle ohjetos (pie t x t i n enlazaclos por una serie d e interrr1ac:iones. 1)e tnodo qiic newsitamos (,char una mirada mas tlr cerca a estss interrrlacioncs y a (1116significan intiiitivamtmte. E n la mr:ilida en quc hagamoh t*sto iremos c1rs;lrrollando 10s mcdios para resolver cons~iltasmbs coniplejas. Este concrpto se explorarh rnis adrlante cSnrsta seccihn. Seremos m i s prwisos en la prhxima seccihn, tiorlde aplic*aremosestas itlcas p a r a f o r n l d a r (.onsultas en TcxtQuer). Cuando s r definicx-on los ol)jt.tos y las intt~rrt~laciones en (:I Capitulo 4. se (:ompararon los o1)jrtos con uom1)rc.s .! las intcmdaciones con verbos. Esto sugiere yue uti lrnguajr tt~xtualconio Tt:xtQuery s r astmrjr allrnguajr natural cn cirrto sentido. Esto se purile vet si analizamos la Figura 14.5. I,os nombres tle t-ada una dr las intcrrdacioues sugieren una rlirecci6iz p a r a leer la i1~terrelaci6n.De 111c)c1oclue diriarnos p r o f e s o r ASESORA e s t u d i a n t e no es lo mismo e s t u d i a n t e ASESORA p r o f e s o r
El nombre de la intcrrelacihn sugiere q u e la interrelacihn se lee d e PROFESOR a ESTUDI ANTE. Si~uilarmentetenemos p r o f e s o r TRABAJA-PARA departamento p r o f e s o r ESTA-ENSENANDO c u r s o e s t u d i a n t e ESTA-MATRICULADO-EN departamento e s t u d i a n t e HA-PASADO c u r s o e s t u d i a n t e ESTA-PASANDO c u r s o departamento OFRECE c u r s o ninguna de 1as cuales tendria sentitlo en el orden inverso. Cada una d e las relariones es una oracihn en lenguaje natural en el formato SUJETO VERB0 PREDICADO
clue e s t i en voz activa. Cambiando ahora el nombre de la i n t e r r e l a c i h y usando la voz pasiva podemos invwtir sn clirecci6n en la mayoria de 1as instrncciones. De no do clue terlrmos e s t u d i a n t e ESIASESORADO-POR p r o f e s o r c u r s o ES-ENSENADO-POR p r o f e s o r c u r s o HA-SIDO-PASADO por e s t u d i a n t e c u r s o ESTA-SIENDO-PASADO-POR e s t u d i a n t e c u r s o ES-OFRECIDO-POR departamento como instruc~cionrsq u e muestran la d i r ~ r r i b ninuersa para la lectura dr las interrelaciones. Se puede obtenrr tam1)iCn la direccihn contraria de la5 otras dos interrelaciones. rmombrando apropiadamentr el verho de la forma siguiente: departamento EMPLEA p r o f e s o r (EMPLEA s e r i a e l i n v e r s o de TRABAJA-PARA)
SISTEMAS AVANZADOS: SISTEMAS DE BASES DE DATOS ORIENTADOS A OBJETOS...
departamento TIENE-MATRICULADO-A e s t u d i a n t e (TIENE-MATRICULADO-A e s e l r e v e r s o de ESTA-MATRICULADO-EN) El n o m l m dt, la illtima rt:laeicin (TIENE-M.ITRTCLILADO-A4)murstra q u r siempre p o h i i o s encontrar un nombrr y u r invirrta la tlireccih d r una interrelacihn. aun cuantlo r1 nurvo nomhre putlirra ser raro o no convrnirntr. P o r tanto. el n o n i l ~ r eq u r sc rscoja para una relacicin sugivrr una dirrccibn intuitiva quc pe~.mitiriq u r se vra w m o una srntencia en lrnguajr natural e n r l formato SIJJKrrO-VERBO-OBJETO. Tam1)iCn podemos c r r a r un nomhre sustitutcr para catla rrlac%n que haga posilJt: su lectura c:n la direccibn opuesta. Se purtlt: diagramar esta idea e c t ~ ~ a l i z a n t la l o Figura 14.5 para mostrar la t-lirrt:t:ihn d e 10s nomhrrs d e las rrlacionrs. La flecha tIue precrtlr o sigue a cada nomhre d e relati611 c:n la Figiira 14.9 indica c.sta direc~ihii. Es import;inte la dirtwibn tle los nom1)rt.s de las rrlaciones p a r a rrsolvw consultas q u r rrquieran la navegariim a travks de una st:rie de conjuntos d e ohjetos y sus interrelaciones. Deprntlirndo de las nrcrsidades d r la consulta. a vrcrs vamos a navegar en una tlirecci6n y otras vwcs lo haremos en la dirrccihn opiiesta. P o r tanto, es muy importante la capacidad de ir en a m l ~ a sdireccionrs. Piiesto q u r practicamentr c:ualqiiier consulta p e d e r r q u r r i r extr t i p tle navrgacihn, estamos rstahleciendo ayui el esqiiema general para la solucicin de consultas. Se nrcrsita hacer lo riiisnio para atrihutos q u r lo qiie hacemos para las relacionrs. Recni:rtlese quc podemos interpretar los atribntos como interrelacionrs. Como vimos antes, podemos w e a r frases de nombres y verhos para ellos incrustando el nomhre del atributo entrr ES DE. Poden~osinvertir la tlireccibn del ncrlnhrr de la relaci6n atrihiito ponikndolr el pref'ijo TIENE a1 nombre del atributo:
PROFESOR
1
I
f
4
ASESORA ES-ASESORADO-POR
ESTUDIANTE
f
ESTA-MATRICULADO-EN +-ASESORA-ESTUDIANTE
HA-SIDO-TOMADO-POR
4 ES-OFRECIDO-POR
ESTA-ENSENANDO ES-ENSENADO-POR
+
DISENOY ADMINISTRACION
DE BASES DE DATOS
p r o f e s o r TIENE-NOMBRE nombre p r o f e s o r TIENE-SALARIO s a l a r i o p r o f e s o r TIENE-OFICINA o f i c i n a
Finalmente necesitamos drrivar nomhres para las iriterrrlarionrs dr rspc~cializacicin. Snpongamos que tenemos nn conjunto llamatlo CURSO-MAT q u r consiste en todos los cursos ofrrcidos por el departamento d e matemiticas. Luego CURSO-MAT es un siil)conjunto d r CURSO. Sc nomhrarii a rsta cspecializacihn tle la interrelac-ihn como ES-UN (IS-4). ieste nornhre valr en amhas direccionrs! Esto es, c u r s o - m a t ES-UN c u r s o y c u r s o ES-UN c u r s o - m a t
puedrn ser ambas vrrdackras. La primera c:s verdadera para todas las instanrias de CIJRSO-ML4T, mirntras q u r la segunda es vertladera shlo p a r a algunas instanrias de CURSO.
Navegar sobre atributos e interrelaeiones E n la seccicin previa sr vio que 10s nom1)rrs clue sr usaron para ohjetos, atrihutos e intrrrelariones prirtleri acondicionarie para h a w r mi9 lrgihle su int~rpretacicinromo sentenrias del lrnguajr natural. E n esta srwi6n se mostrari 14mo estas idras nos p u r d r n llevar a resolver cwnsnltas mlis cornplrjas en r l lenguajr de ronsulta TextQliery. i C u a l e s son 1 0 s nombres de 1 0 s p r o f e s o r e s que ganan $38.000?
Esta consulta, a1 igrial que la primera c-onsulta, rrquiere de datos que scilo se rncuent r a n en el conjunto de ohjetos PROFESOR y tlos d e sus atributos. Sin embargo, r n este raso, el salario shlo figura en la exprrsihn d r calificarih, no en la lista resultado. La solucihn a esta consulta ilustra el principio de navegar a travks de interrrlariones y conjuiitos de ohjetos: { nombre :
nombre ES-NOMBRE-DEp r o f e s o r AND p r o f e s o r TIENE-SALARIO 38000 )
Vamos analizar la primera solurihn emprzantlo desdr a t r i s y trahajando havia adelantr: p r o f e s o r QUIEN TIENE-SALARIO 38000
Esta es una sentenria sohrr un profrsor que purcie evaluarse como verdadera o
'
falsa. Es verdadrra shlo para aquellos que prrtenecen a1 conjunto de ohjetos PROFESOR
y que tienen u n atributo SALARIO de 38.000, E w s mirmhros d r l proksorado ronstituyen u n subconjunto d r PROFESOR (Figura 14.10). Vemos que hay dos profesores q u r ganan $38.000. P a r a rxplicar el resto d e la soluriOn d e la consulta reescribarnos la rxpresihn d e ralificariOn con parentesis: nombre ES-NOMBRE-DE ( p r o f e s o r QUIEN TIENE-SALARIO 38000)
Esta sentencia es verdadera para u n conjunto d r nornbres: (ADAMS, BROWN]. Los nombres en el conjunto s e r i n aquellos q u r correspondan, bajo la i n t e r r e l a r i h ES-NOM-
BRE-DE. con las instanrias tlr PROFESOR clue ganrn $38.000 (la clefinicihn en la illtima rnitatl tie la cwnsulta). Esto sr m w s t r a cn la Figura 14.11. Note c-uin rstret-hamrnte ~1formato de la ~oluti611 en TextQurr) st' ~ o r r e s p ~ n con de (11 formato tlr la consulta original. C o n s u l t a U s u a r i o : L C u a l e s s o n 1 0 s nombres d e p r o f e s o r e s q u e g a n a n $38.000? S o l u c i o n en TextQuery: RIO 38000
nombre ES-NOMBRE-DE p r o f e s o r QUIEN TIENE-SALA-
Pursto clue rstt" sigur rl formato de las twnsultas en Irnguaje natural. sr cfcr que tales solwiones estin rrl,forinato iilterrogatiuo. Sin embargo, usando un modrlo tie tlatos para visualizar rsta soluci6n traljajamos hacia cltrhs (backwurd). Esto se puede v r r en la Figur a 14.1%.Comrnzarnos con (.I atrihuto SALARIO y rnrontramos 38.000. Lucgo vamos a t r i s hacia PROFESOR para t:ncontrar aque1l;is instancias tle PROFESOR t p e "TIENESALARIO" clr 38.000. Drspubs continunmos vrndo a t r i s un paso miis hacia NOMBKE, usando ES-NOMBIZE-DE. Si st. p s i e r a jnnto a la soluci6n TextQurrv despuks d r esta visnalizaci6n. be pueclr rtthacrr el trazo de nuestros p a w s clue van de NOMBRE a travks clt. ES-NOMBRE-DE hacia PROFESOR y luego a travCs de TIENE-SALARIO haeia un SALARIO de 38.000. Esta vuelta atras (bucktrucking) sugirre que pueclr haher un formato alternativo clue rrflrjr m i s clr w r c a la solucibn que hemos visualizado en el diagrama. Podemos formulal. una soluci6n en este formato alternativo como sigue: { nombre : 3 8 0 0 0 ES-SALARIO-DE p r o f e s o r QUIEN TIENE-NOMBRE nombre }
DISENOY ADMINISTRACION DE BASES DE DATOS
Yemos que el orden tle la expresihn de califiraci6n aqui
tas
ol~nestoa1 (1~1forlnato
interrogative. I k h i d o a que este segnncio formato esti tm una forma m i s tleclarativa s r le llama forrrrnto declnrativo. E s t i n a m t ~ o formatos s permitidos. P o r lo tanto, en el dcsarro110 de solnciones en TtxtQuery a las ronwltas d e los nsuarios delw usar el formato que encuentrr m i s natural. E n arnhos c a w s hemos simplificaclo la lista r r s ~ ~ l t a daojustamente un nom1)i-e de varialjle, mitmtras que la expresiirn de calificaci6n hrmos hecho rrc:orridos a travk de 10s conjuntos de objetos y sus atrihutos via las interrelariones qne 10s enlazan. Los pronomIwrs relativos tales como QUIEN y QUE se usan cm estas expresiones p a r a ailmentar la legihilidad. Estas son pulabrus iwutrus tan el sentido (lc qne estin presentrs en la cxpresi6n. pero no tienen efecto en su significatlo. Veamos ahora tlos ejemplos m i s complejos que nos hrintlan mayor il~tstrac.ihrlclel concellto de navegacGm s o l m las interrelaciones. Consulta u s u a r i o : Ingle s?
i Q u e p r o f e s o r e s t r a b a j a n p a r a e l departamento de
Solucion en TextQuery: { p r o f e s o r : p r o f e s o r TRABAJA-PARA departamento QUE TIENE-NOMBRE ' I n g l e s ' ) Annque esta soluciirn responde. la consdta es inadecuada porque el conjnnto de miembros del profesoraclo t p e se ha creado no be puedr desplegar en un dispositiro de balld a . Si queremos producir una soluc*i6nhumanamente legihle, dehemos c r r a r nn conjunto de valores d r atribntos que sea legible. Por lo tanto, c.amhiamos la soluci6n por: { nombre : nombre ES-NOMBRE-DE profesor QUIEN TRABAJA-PARA departamento QUE TIENE-NOMBRE ' I n g l e s ' )
En u n formato tleclarativo. la soluci6n es: { nombre : 'INGLES' ES-NOMBRE-DE departamento QUE EMPLEA p r o f e s o r QUE TIENE-NOMBRE nombre )
E n la Figura 11.13 se muestra el conjunto de solucihn p a r a esta consulta.
Brown
DEPARTAMENTO
SISTEMAS AVANZADOS: SISTEMAS DE BASES DE DATOS ORIENTADOS A OBJETOS...
46 3
Consulta de usuario: i C u a l e s son 10s nombres de p r o f e s o r e s con 10s que e s t a tomando c l a s e s K e l l y ? En f o r m a t o i n t e r r o g a t i v o : { nombre
:
nombre ES-NOMBRE -DE p r o f e s o r QUE-ESTA-ENSENANDO curso QUE ESTA-SIENDO-TOMADO-POR e s t u d i a n t e QUE TIENE-NOMBRE ' K e l l y ' }
En f o r m a t o d e c l a r a t i v o { nombre
:
' K e l l y ' ES-NOMBRE-DE e s t u d i a n t e QUE ESTA-TOMANDO c u r s o profesor QUE ESTA-SIENDO- IMPARTIDO-POR QUE TIENE-NOMBRE nombre I
En la Pigura 14.14 se muestra el (:onjunto solucibn. La Figura 14.14 rro muesti-a ]as instanvias d r los cursos q u r ICelly e s t i tomando. pero d r 10s cjrmplos antrriorcs delwria ser fivil visualizar (pi.esti pasantlo acjui. El nombre 'ICclly' e s t i conrctado a la instancia d r rstudiantc*que t i w e esr nombre. Esta instancia d r rstudiante esti a su vez conectada con rl ronjunto dv c-ursos clue ICelly e s t i tomando. Catla uno d c estos cursos rstii conectado con rl I,rofrsor c p t ' c s t i enseiiando el curso y el profesor c ~ i conectado i con su nomhre. 1nc.itlcntalmente esta cwnsulta nos d a un rjrmplo dr utilizacibn de u n conjunto de ohjetos ahstracto (CURSO) sin usar ninguno de sus atrihutos. La soluci6n a la cwnsulta no r s itlmtificar, por rjrmplo, el nilmero prrviso d r cursos clue Kelly e s t i tomantlo con vistas a idrritificx con q o t profrsorcs e s t i pasando rui-sos Kelly. Es suficiente w a r las instancias de (wrsos en su forma abstracts (sin atrihutos).
PROFESOR
=)
Parker Hinman
Kelly
ESTUDIANTE
DISENOY ADMINISTRAC~ONDE BASES DE DATOS
Asignar nombres a 10s conjuntos derivados Los conjnntos soI11ci0n rrsultantrs 11clas consnltas q u r han sido ilustratlas f w r o n deriva(10s d r l uso de 'kxtQuery. ,A nirnudo tales twnjnntos son iltiles por si mismos. Podrianlos, ['or ejemplo. encontrar twnvrriitmtr o inis rhpido m a r estos conjuntos dcrivados r n otras consnltas TextQncry sin t r n r r clue derivarlos tle nurvo. Podrmos h a c w esto si siniplrment r asignamos un nomhre a1 twnjnnto derivado mrdiantr rl c u d potltw~osreferirnos n 61 mlis atlelante. Por ejt.mplo, si qnrrchmositlentifitw el conjunto d r todos 10s rnrsos d r matrmhticas. 1)otlrnwsasignarle rl noni1)re CU KSO-MAT a1 conjunto apropiado tal y c o n ~ osigur: CURSO-MAT : = { c u r s o : c u r s o ES-OFRECIDO-POR departamento QUE TIENE-NOMBRE 'MAT' )
Este rjemplo ilnstra qut. 10s nomtwes se asignan ponientlo primero el nomhrr dt.1 conjunto, srguitlo tle ":=" y luvgo d r la definicih TextQuery d r l conjunto. El simholo ":=" 1)1w(leleers? como es rl nomhre q u r se le asigna a". "
Expresiones ealificadas de eomparaeih de conjuntos ilgunas consultas se purdrn rrsolver utilizando cxpresiones tdifit*atlasque involucran la r o n i p a r a c i h d r conjuiitos. Considtw la ronsulta: Consulta u s u a r i o : iQue e s t u d i a n t e s han tomado todos 10s c u r s o s que s e han o f r e c i d o p o r e l departamento de matematicas? Esta consulta sr rrsurlvr g~mc:rar~do el twnjunto d r cursos ofrrt:iclos por el drpartumruto dv matrtnitit:as y luego, para vada rstntliante. comparando r s r c:onjnnto con el conjunto d r twrsos clue el t:stntliautr ha tomado. Si el conjunto de todos 10s carsos de matemiticas esta c o n t e r d o en el conjunto d r 10s curses del estudiante. rntonws rs qne rl estntliante h a tornado tcrdos 10s cursos d r matrmiticas y su nonihrr sr p o n d r i (.II el tolljunto soluti6n de la consulta. Il'urstra soluci6n TrxtQucry ronsta de trrs pasos 1; utiliza la f'arilidad d r asignar nomhrcs a 10s twljuntos derivados: Solucion TextQuery: CURSO-MAT : = { c u r s o : c u r s o ES-OFRECIDO POR departamento QUE TIENE-NOMBRE 'MAT' )
ESTUDIANTE-DE-TODAS-LAS-MAT : = { e s t u d i a n t e : CURSO-MAT I S - C O N T A I N E D - I N SET-OF ( c u r s o QUE HA-SIDO-TOMADO-POR e s t u d i a n t e ) )
NOMBRE-ESTUDIANTE-DE-TODAS-LAS-MAT
: = { nombre : nombre ES-NOMBREDE e s t u d i a n t e AND e s t u d i a n t e I N ESTUDIANTE-DE-TODAS-LAS-MAT )
Estos tres pasos se pnrden explicar ccrmo sigue:
1. El primer paso drfinr CURSO-MAT, el twnjunto tle todos 10s cursos tlr matemiticas y es idCntico a la definicih tle CURSO-MAT (pie s r dio en la secri6n anterior. 2. El segundo paso define ESTUDIANTE-DE-TODAS-LAS-MAT, el ronjunto d r estutliantes que han tomado todos 10s cursos de matemitiras r inclnye nna n o t a c i h no familiar que se explicari a continuaci6n.
465
SISTEMAS AVANZADOS: SISTEMAS DE BASES DE DATOS ORIENTADOS A OBJETOS...
Rrcwerclr que para cada estudiante queremos comparar el c-onjunto dr 10s cnrsos de matemiticas -CURSUS-MATcon el eonjunto d r 10s cnrsos clue ha tomado (a1 estudiantc. E n el paso 1 sc: tlefinii) el conjunto d r 10s cursos (le niatemitiras. i,C6mo ciefinimos el conjunto de eursos tomado por cada estudiante en particular? Esto sr h a w con la constrnccibn: S E T - O F ( c u r s o QUE H A - S I D O - T O M A D O - P O R e s t u d i a n t e )
Esta construrcihn SET-OF se usa para grnrrar el conjunto de cursos que han sicio tomados por el t-stutliante p a r t i d a r que e s t i sientlo evaluaclo por la consnlta. P o r rjemplo. si el rstudiantr es Ann, entonces esta construccihn es equiva1c:nte a: { curso : c u r s o HA-SIDO-TOMADO-POR 'ANN'
}
Este es un ejrmplo d r un conjunto generado dinrimicnm~nte.Esto es, se genera un conjunto difrrrnte para cada valor d e la variable estudiantr. ill ejecutar la consulta, la construccibn SET-OF g r n e r a r i un conjunto para Mary, un conjunto para John, un conjunto para ,4nn, un conjunto para KrIly y un conjunto para Roger. E n el paso 2, el sistema rvalua cada estudiante en ESTUDHNTE comparantio cl conjunto CURSO-MAT con el w n j u n t o clr cursos tornados por c.1 estudiante, usando el operador de comparacibn IS-CONT-4INED-IN, Si rl conjunto completo d e cursos de matemiticas e s t i contrnido en el conjunto de cursos del estucf ante, entoncrs la expresibn d e calificacihn clue usa el operador IS-CONTAINED-IN se evalia como "verdadero". E n ese caso se seleceiona el estudiante para incluirlo r n el conjunto ESTUDIANTE-DE-TODASLAS-MAT.
3. NOMBRE-ESTUDIANTE-DE-TODAS-LAS-MAT nos (la 10s nomhres de 10s rstuciiantes clue hau tomado todos 10s cursos de matemiticas. Se podria haher evitado vste paso anipliando la expresihn cle califiracibn del paso 2 para incluir estr paso de exprrsibn de c.alificacii)n, p r o csto huhiera complicado el paso 2 y tlificnltado su c.omprensi6n. P o r la misma razbn hrmos roto el paso 1 como un paso separado. P o r tanto, se puedr v r r que la facilidad dr asignarle n o m l r r s a 10s conjuntos clrrivatlos perniite descomponer la soluciOn d r la consulta r n una serir d e pasos. Esto hace al proceso m i s simple y ficil d e madplicando mta consulta a la base d e datos d e nurstro ejemplo y usando la informarihn d e la Figura 11.7(c) y 14.7(e). vrrtios clue Roger es el hnico es~utliantrclue ha tomado todos 10s cursos de niattmiticas. P o r tanto. la respursta a la consulta es { ROGER}. El inverso del operatlor IS-CONTAINED-IN es el oprrador CONTAINS. Silo hubiisemos usado en r l rjemplo preredente, el paso 2 de la solucibn hubirsr sido: ESTUDIANTE-DE-TODAS-LAS-MAT : = { e s t u d i a n t e : S E T - O F ( c u r s o QUE HAN-SIDO-TOMADO-POR e s t u d i a n t e ) CONTAINS CURSO-MAT }
Veamos otro rjrmplo. C o n s u l t a u s u a r i o : i Q u e e s t u d i a n t e s han tomado cada uno de 1 0 s c u r s o s o f r e c i d o s p o r e l departamento en e l que e s t a m a t r i c u l a d o ?
En r1 problema anterior coniparamos cada conjunto de cursos tle un estudiantr con un conjunto fijo de cursos (CURSO-ML4T).E n estr problema debemos coniparar los cursos d r cada estudiantr con un conjunto cle cursos que varia por cada estudiante, puesto que el departamento en r l que r s t i matriculado varia d e un estudiante a otro.
DISENOY ADMINISTRACION DE BASES DE DATOS S o l u c i o n TextQuery: ESTUDIANTE-DE-TODOS-LOS-CURSOS : = { e s t u d i a n t e : SET-OF ( c u r s o QUE HA-SIDO-TOMADO-POR e s t u d i a n t e ) CONTAINS SET-OF ( c u r s o QUE ES-OFRECIDO-POR departamento QUE E S T A - D I R I G I E N D O - E S T U D I A N T E estudiante) }
Estc: cjernplo rnnestra qucSse ~ ) u r d e ncornparar (10s conjuntos clue h a n sido genrra(10s dinimicarnente. P o r supuesto?esto sOlo nos da los estudiantes, no sus norn1)rrs. K1 (*onjunto de noml~ress r obtirne cle la inisma forma q u r s r h i m en la consulta anterior.
Conectores booleanos E n cl primer rjernplo de TextQurry st. us0 el corzector boolearro ( o lbgico) AND t:n la rxprrsibn d e calific:ac.ii,n. Las cxprrsiont.~de calific*acihn para las otras consultas sc: consitleraron ntbrnicc~sen el sentitlo tle q u r rstahan constituidas por rxprcsiones simples no cwrwctadas por ningiln AND, OR o NOT. Como en la mayoria d r los lenguajes de computadores, TextQuery nos permitr wm1)inar exprc:siones d r calificacihn at6micas usantlo 10s conector r s 1)oolranos. Ademis sea pueden w a r parbntrsis p a r a agrupar las exprrsionrs y tdirninar amhigiiedac1rs. Esto It* (la a TextQnery una mayor potencialidad. Consulta usuario:
iQue e s t u d i a n t e s e s t a n r e p i t i e n d o c l a s e s ?
S o l u c i o n en TextQuery: ESTUDIANTE-REPITENTE : = { e s t u d i a n t e : e s t u d i a n t e ESTA-TOMANDO c u r s o AND e s t u d i a n t e HA-TOMADO c u r s o )
Kec~ortlernosque la varial~lvcurso en esta expresihn tle calificaci6n tieuc el rnismo valor a lo largo de la e x p r e s i h . Esto es. el significado d e curso en e s t u d i a n t e ESTA-TOMANDO c u r s o
e s t u d i a n t e HA-TOMADO c u r s o .
El conec,tor hooleano AND, que h a s ~ d ousado aqui para juntar (10s expresiones athmicas, significa yuc la expresi6n de calificaci6n como u n todo es verdadera para un estudiante y u n curso shlcr si nrnbos e s t u d i a n t e ESTA-TOMANDO c u r s o
e s t u d i a n t e HA-TOMADO c u r s o
son vertladeras. Como antes, s r nrcesita otro paso p a r a obtener 10s non~l,.res de 10s rstudiantes. P a r a mantener simple esta presentaci611, omitiremos este paso a lo largo d e esta secci6n. C o n s u l t a u s u a r i o : iQue e s t u d i a n t e s ban tornado o e s t a n tomando un c u r s o de h i s t o r i a ?
SISTEMAS AVANZADOS: SISTEMAS DE BASES DE DATOS ORIENTADOS A OBJETOS... { e s t u d i a n t e : e s t u d i a n t e HA-TOMADO c u r s o QUE ES-OFRECIDO-POR d e p a r t a m e n t o QUE TIENE-NOMBRE 'HISTORIA' OR e s t u d i a n t e ESTA-TOMANDO c u r s o QUE ES-OFRECIDO-POR d e p a r t a m e n t o QUE TIENE-NOMBRE 'HISTORIA' )
Una segunda versihn mris simple cwa el subconjunto l~istoriade CURS0 y Lisa el operador IN. CURSO-HISTORIA : = { c u r s o : c u r s o ES-OFRECIDO-POR d e p a r t a m e n t o QUE TIENE-NOMBRE 'HISTORIA'}
ESTUDIANTE-HA-TOMADO-HISTORIA: = { e s t u d i a n t e : ( e s t u d i a n t e HA-TOMADO c u r s o AND c u r s o I N CURSO-HISTORIA) OR ( e s t u d i a n t e ESTA-TOMANDO c u r s o AND c u r s o I N CURSO-HISTORIA ) )
Aqui el operador booleano OR se interpreta para llacer la expresihn de calificacihn verdadera bien coantlo sea verdadera la primera parte o la segunda parte (o ambas) de la expresibn de calificacihn. TarnbiCn usamos AND en cada parte, por lo que agruparnos las partes entrr parSntcsis para prevenir ambigiieclatles potenciales. C o n s u l t a u s u a r i o : LQue e s t u d i a n t e s asesorados en matematicas a h no han tornado un c u r s o de matematicas?
CURSO-MAT : = { c u r s o : c u r s o ES-OFRECIDO-POR d e p a r t a m e n t o QUE TIENE-NOMBRE 'MAT' ) ESTUDIANTE-HA-TOMADO-MAT : = { e s t u d i a n t e : ( e s t u d i a n t e HA-TOMADO c u r s o AND c u r s o I N CURSO-MAT ) OR ( e s t u d i a n t e ESTA-TOMANDO c u r s o AND = c u r s o I N CURSO-MAT ) )
NUEVO-ESTUDIANTE-MAT : = { e s t u d i a n t e : e s t u d i a n t e ESTA-MATRICULADO-EN d e p a r t a m e n t o QUE TIENE-NOMBRE 'MAT' AND e s t u d i a n t e NOT I N ESTUDIANTE-HA-TOMADO-MAT )
La iltima linea de la expresihn de calificacihn podria haber sido escrita: AND NOT e s t u d i a n t e I N ESTUDIANTE-HA-TOMADO-MAT
Es decir, el NOT se puede meter dentro de la parte athmica de la expresi6n para negar el efecto del IN. o puede ser parte del conector booleano AND para negar la expresihn athmiea completa. El NUT t a r n b i h se puede aplicar a otros operadores de comparacihn (CONTAINS, IS-CONTAINED-IN, <, >, = ). TextQuery proporciona un medio simple, elegante y natural de extraer 10s datos de una base de datos orientada a objetos. Es similar a muchos lenguajes de programacibn tradicionales que usa la representacihn textual de 10s datos, las variables y las sentencias. Tiene tambidn una atractiva conexihn con el lenguaje natural, puesto que 10s conjuntos de objetos y las interrelaciones sobre las que opera se modelan como nornbres y verbos
'.
'
Aqui el lector hahri notado una combinacibn de terminns en i n g k del TextQuery con nombres y verhos del espafiol. Para sentir m i s aim esta conexibn del TextQuery con el lrnguaje natural tendriamos que tener un TextQurry para el espafiol (N. del T.).
DISENOY ADMINISTRACI~NDE BASES DE DATOS
Introduccih a 10s sistemas basados en el conocimiento El clc~sarrollode los sistemas tlc I~asestle datos inirialniente rstnvo motivatlo por la nrwsidad t\r un almat:cnamiento rficientc y tle recnperar grandes cantidadcs d r t\if'errntt.s tipos tle clatos. E n la medicla tw que s r ha ido 1)rogresantlo vn el rumplimirnto de rstos o1)jetivos. ha ido surgicntlo uii interks 1)aralrlo en extender la potenrialitlad tle 10s sistemas tie I m e s dt: clatos, clc m o t h que inc*luyan rr$as que opc.ren sohrt: los herhos (dator;)a l m a c w d o s , permiticmdo inferir otros hechos (datos). Esta es una prrspectiva cw*itante. 11ncstoque la incorporarihn tit: tal exl)resivitlad en u n sihtc*tnad r base d r clatos eleva sus c a p a d a d e s para servir a las nrcesiclades d r informacihn a otro nivc.1. Il~c*orporar rotiociiiiiento en un sisteina d r hsc: tle clatos fnc sugeritlo por 10s desarrollos csn el camp0 tle la inteligencia artificial (IA), que e s t i dctlicada a1 rstutlio d r cbmo p r o p m a r c:o~l~portamirnto inteligmtc.. La invt-stigacibn en 1.1 inc.lnyc cstudios sohre la represeritati6n tlr rvglas IOgicas que operan sohrr 10s tlatos. l,os sistenias expertos son un t i p espt.c:ial clr clcsarrollo en 1-4 qne h~is(.arepresentar Ias rrglas y 10s procwliniic.ntos qnr usan 10s rxpcrtos para resolver prol)lcn~asen n n dominio particular tlr prol)lrmasl tal romo la n~cdicina,la rel)aracii~ndt: motores, (:I diseiio por coinputador y otros. Tales sistemas d t w a n s a n s o l m nna base tlv conociniicntos para razonar sohre conjuntos d e ilatos. Aunt~rw10s estudios tle 10s sistertias exl~ertoshan estaclo fuertementc iiif1uent:iados por 10s mktotlos clc rr1)resentacihn tlcl conot*irniento usantlo reglas lhgicas. los sistcnias c-xpertos no son siste~uashasados (xi el c:onotiniiento p o r q u r no ofrcsc.en todas las rapacitlades clr gestihn (I(, tlatos clc un SCBD. ['or t.jcmplo, PROLOG, clue es u n leugnaje p111n1lar d r sistemas rxyrrtos. yodria verse conlo q u e proporciona u n pnrntr, natural r n t r r los sistemas de 1)ast.s d r datos y los sistc.mas 1)asatlos en el conorimiento, ya que PROLOG estL s. hasatlo en rl c.&lculotit, prtdic.atlos y siis predicados pueden vrrsc como r e l a c i o ~ ~ e'I'aiii11i~r1 tiene la rapat:idad d r expresar la 16gira t p : puede usar una persona p a r a ronvertir h e t h ) s en la base d r tlatos c ~informachion i de ayucla a la toma d r det:isionc.s. No ol)sta~itc. las vwsiones actualrs dt. PROLOG no ofrcc~wel rango necesario d c capeitlades tie los SGBD -taltss conlo el procesaniicnto dr transaecioncs, la srgiiritlacl y la rrcilprracihn. 4. la gcsticin tlcl almac~enaniirntosecundario- que rc:clurriria n n sistrma hasatlo en el rot1oc.imiento. DrlTALOC: y 1,ogic:al Data Language (LDL) son versiones extrnditlas d r PROLOG qne estfhn en tlesarrollo y clue atiendvn rste prohlenia. C o n ~ oel estudio de 10s sistrn~ashasados r n 01 ronocimicnto es nuevo, hay l ~ a r i a sdtbfit1iciont.s rrlat:ionatlas con csto q u r a h no lian sitlo tlefinidas -un prohlcma t p e purtl(~ o s r u r w e r una tlisc.usi6n sol~rca10s sistcmias 1)asatlos en el c.onoc:iniiento-. P o r rjrmplo, algunos aatores usan cl tkru~inosisternas basados e n e l ronocilniento (knou:lrclge based systems), mientras clue otros dicen sistemas d e base de conocin~ientos(knowledge-buse systems). Aml~ostkrminos han sido ampliainentr utilizados para representar el misnio tema. Hrmos srguidcr el ejenlplo d r Ullinan (1990), quieri ha sitlo una figura i)ronlinrntr en el drsarrt)llo tlr 10s concrptos tie los sistrmas d r base d e cont)c.iniientos. P a r a a d a r a r este tkrmino. varnos a ofrecer una clrfinici6n de t r a l ~ a j otie un sistemu SBC (kno~clrdgebase system KBS) como siguts: tie base de conocirr~ien~tos
'
sisteina ha3ado en c1 c ~ o n o c i ~ ~ ~ i eont tr oa . Sor~uatlc nombrar a un sistenia de base de t~onoci~n~t~nto~. sistema d e gestiotl tie base ile conocin~ientos. Sistelna de software clue solwrta el rango usual de las fnnciones de los SGRD, asi romo gestiona el p r w e w detlnctivo de la I~ascde reglas clue opera s o l ~ r la r base de heclios.
1. Una l ~ a s rde tlatos d e hechos basicos, conlo 10s d r un sistenla d e base clc datos. 2. Una base de clatos de reglas q u e permiten hacrr drdncciones a partir cle 10s hechos clue e s t i n en la base d e datos. 1
3. Un software llarnado s i s t e n ~ ad e gestibn d e base d e ronocin~ientos(SGBC) }lqur soporta las funciones usuales tle 10s SGBD, asi conlo la grstion d e procrsos deductivos tle las base dr datos tle reglas que operan s o l m la base tie datos d r hechos.
' Lmguaje de da~oslbgico ( N . tIeI T.). 'I
Conocidn en inglGs por la +is
KUMS (Knowledgr Base Mnnagerncv~tSystem) ( N . dcl T.).
SISTEMAS AVANZADOS: SISTEMAS DE BASES DE DATOS ORIENTADOS A OBJETOS...
469
4 u n t p . hay \arias definiciones ligrramente difrrrntes rn la literatura. pensainos qur la drfinitihn anterior recoge las ideas esencialrs. En la actualidad hay un numero de ireas activas de desarrollo de los SBCC. Se ha diseiiado hardware para mrjorar la velocidad (*onla que razonamos (.on las rrglas. Se han desarrollado m6todos para el mantcnimirnto automitico de la integridad sc.rn2intic.a d r las hases de conocimientos usando reglas expresadas en lenguajes hasados en la lbgica formal. El 1150 dc la lbgica para expresar y razonar con el conocimiento, involucrando la incertidumhre, las suposiciones y rl tiempo, est&siendo estudiado y refinado. En ]as secciones signientrs nos extenderemos en algunos tlr eitos temas. Primero examinarrmos rl cwnwpto de conocimiento ) chmo sc relaciona twn lai haws tle datos.
Conocimiento y bases de datos El amplio Pxito de los sistemas de hases de datos, comhinado con las ncccsidatlrs de grstihn de informac.iOn y 10s desarrollos que han emanado del estudio de la intrligencia artificial. han dado como resultado un inter& crecientr en extender los sistemas de 1)ases d r datos a sistcmas de base de conocimirntos. Esta es una transicihn a altos niveles de ahstraccihn de la informaciOn, Por ejemplo, E l v e n d e d o r S m i t h r a d i c a en L o s A n g e l e s
('s un hecho tipico que se puede mantrner en una h a w de datos. Hay una pequeiia dificultad para pensar en rsta informacihn r n tbrminos tle r6mo podria estar contenitla en una tupla rdacional: v e n d e d o r ( S m i t h , Los A n g e l e s ,
conocimiento estructural. Conocimirnto sohre depcndrnrias y restrirrionrs rntrr 10s datos. conociniiento general procediinental. Conocimirnto que d o he puede ctescrihir por un procdimirnto. conocimiento especifico d e Ia aplicacibn. Conocimirnto yue sr drtermina por las reglas y lab convmciones clue sc aplican a un dominio especifico ctc prohlema. conociniiento de direccibn-empresa. conocimiento qur ayuda a una empresa a tomar decisiones.
...)
Por otro lado, informacihn como E l v e n d e d o r S m i t h e s un s u m i n i s t r a d o r d e p e n d i e n t e
no es precisamrnte un hecho, pcro represrnta una alta forma de informacihn. Tales formas d r informacihn a menudo dependen tlr interrrlariones lhgiras entrr 10s hechos de la h a w de datos. Por ejrmplo, un " vendedor dependiente" puede identificarse a partir de las interrelaciones entre frchas de hrdenes y fechas de envio, asi como t a m h i h como emharques parciales y completes. Ser capaces de especificar tales interrelaciones eleva la utilidad de la base de datos hasta tlonde se puede usar el conocimiento para definir, controlar e interpretar los datos cjue ksta mantiene. Qui. significa rsto se resume cn la taxonomia siguiente desarrollada por Wiederhold (1984):
1. Conocimiento estructural es el conocimiento sobre las dependrncias y restricciones entrr 10s datos. Por ejemplo, la "insercion en la rrlacihn CLIENTE depende cte estahlecrr qur el cliente tenga un huen crCditon. 2. Conoci~nientogeneral procedimental es el conocimiento que s6l0 puede ser descrito por un procedimiento. Por ejernplo, " haga corresponder el total de producto ordenado con el total de producto recihitlo para autorizar 10s pagos". 3. Conocimiento especifico d e la aplicaci611 rs el conocimiento que esta determinado por las reglas y convenios que se aplican m un dominio de problerna en particular. Por ejernplo, "determine el plan de mrnor-costo para dos sernanas de vac:ac:iones en IIawai". 4. Conocimiento direcci6n-empresa es el conocimiento que ayutla a una empresa a tomar decisiones. Por ejemplo, un fabricante de alirnentos ligeros integra informacih sohre 10s costos, las ganancias, las ventas y 10s productos competitivos para auxiliarse en la toma de decisiones estratkgicas.
DISENOY ADMINISTRACION DE BASES DE DATOS
El c o n o t : i ~ n i t ~que ~ t o existe cn 10s sistemas ch: 1)asrs tlr tlatos analizados t w l anterioriclad a rstr capitulo e s t i constitnitlo por hechos e instanrias clue r s t i n almacenados eu las rrlaciones. Esto sr conow como ronociiiiento e n extenso. El twnocimiento que s r tlefinc. ~ n i s alli drl cxmtrrlido tlr hvchos de la hasc cle clatos. usualincnte mettiante nirc*anismoslhpjcos. sr tlenonlina euriocnnielito e n intenso. La mayoria de los sistemas dv 1)ascs de coilociii~ientos t p e rstin m tlcsarrollo almncrnan conociiilirnto eu intenso en la forma rlr rrglas 16git.a~. Ac:laremos rhtas itlras con n n ejen~plo.Examine la Figura 14.15. Nurstra hasr de tlatos consiste tle una i111ic.a talda, PAIITES, tpr contiene el a t r i l ~ u t oSIJRPAliTE !. PAIRTE. Podemos rrcnperar los nom1)res tie todas las partrs. 1)ara la cnal250 sea una snhpartt. riiediantr la consulta del (.iilciilo relational:
Esta sintaxis rs s6lo ligcrarrwntr d i f ( w n t e de la quc' hcmos visto prt>\iamcmtr \. 5e intcrprrta d r una forma familiar. En espaiiol podria Irt*rsecorrlo "De la rc4atiOn P4RTES r w u l w r a r todas las tuplas que tiruen el valor 250 r n la columna SUBPARTE, lurgo asigu a r el baler correspondicnte d e P-1RTE a la variahlv X y alrrlacenar r l \ alor de X conlo una tulda rri la r e l a c i h GET''. E n rste ejemplo, 10s valorrs resultantes p a r a X son 300 j 315. PARTES =
SUBPARTE
PARTE
Llcvando la iufornlaci6n cle rsta c.cmsulta u n paso m i s adelante, vrmos qut' la parte 300 tle la cual 250 rs una suhparte. rs a su vez una suhparte de la part? 324. Esto se pnetlr v r r i n s p r t ~ i t ) l ~ a n dlao rrlacihn P.4RTES. Por transitividad, entoncrs. 250 rs taiii1)itn una suhpartr tlr la p a r t r 324 y por lo tanto la p a r t r 324 drheria rstar prol)al)lrliicmteen la solucihn d r la cwnsuha. l,hgic:ali~rnte,esta transitividad entre parte y suhpartr podria seguir y- seguir, p r o cm rstr rjeinplo d r PARTICS hay sOlo do5 nivrles d r su1q)artes. Sin rulhargo, rsto basta para apreciar que seria c:onveniente si pudibramos escrihir urla consnlta para r n w n t r a r todas las partes para la m a 1 una parte dada es una suhparte prilnitiva (segundo nivel). (Por ejrmplo, la parte 250 c:s una suhparte primitiva tle la pai~Lc.324.) lJna alternativn rs aiiadir una tahla clue rrlacione las partes p sus suhpartrs priti~itivas,tal romo se ilustrn en la Figura 1.16. La consulta para cncontrar las partrs para la t.ual la parte 250 es una subparte primitiva tSs
KI rrsultado es 324 y 330.
I
PARTES-PRIMITIVAS
=
PARTE PRIM
PARTE
I
SISTEMAS AVANZADOS: SISTEMAS DE BASES DE DATOS ORIENTADOS A OBJETOS...
47 1
Drsafort~inadamrntr,la tahla PAKTES-PRIMITIVAS contirnr tlatos redundantrs, esto rs. datos quv ya r s t i n dispor~iblrsen P-ARTES. Esta s r drrivb th! la tabla PARTES, usando nuestro cwnocimicnto d r qutb una s ~ h p a r t primitiva r es una su1q)ai-t~de segundo nivrl. Construir tahlas rspeciales para responder a cada nrcesidad imaginablr de informacihn srria muy incficirntr. Es mrjor si s6lo tenrmos clue darle a la base datos una rrgla clue esta1)lrzc.a las interrr1ac:ionrs drsradas y oprre dirrctamentr sohre la hasr de datos rxtrnsional original. Este rs precisamrntr el t i p cle capacidad que s r consigur con nn SBC. Volvirndo a1 ejrmplo, sea PARTES la hase dr datos r n rstenso. S r define entonrrs la h a w dt, datos en intenso como PARTES-PRIMITIVAS(X, Z ) : - PARTES(X, Y ) AND PARTES(Y, Z ) Esto se purtlt. leer como E n la rrlaci6n PARTES-PRIMITIVAS , 9 es una subparte primitiva de Z [P-ARTES-PRIMITTVAS(X, Z)]si (:-) en la relaci6n PARTES, X es una subparte de Y [PARTES(X.Y)] r Y es una subparte de Z [PARTES(Y.Z)] tlrmos delinitlo simplrmente una regla para operar sobre la tabla PARTES para recllprrar informaci6n sohi-t. las s u l p r t e s primitivas. Ahora podemos rscrihir una consulta simple para r w u p e r a r la informaci6n drsrada de PAKTET:
El rcwltado es d r nurvo 324 y 350 y se ha rliminatlo el problema tie estar mantrnirndo datos redundantes. [[no put& imaginarse lo trdioso qur resulta nn sistema en el clue tales consultas se satislagan creando t a l ~ l a sseparadas, tales como PARTES-PRIMl'rIVAS. La forma r n intrnso prrmite la esprcificacih d r 10s rnismos datos, pero dr forma comparta: Se reduce la redundaneia y se ahorra espacio tlr almacenamirnto. Para ilustrar mas los conceptos fnndamentalrs y darle a1 lrctor conocimirnto sufirient r para tjur llevr a caho por sus propios medios rjrrcicios y proyrctos. vamos a introducir un lrnguajr tlr implemcntacihn [email protected] conceptos tlr ltmguaje q u r sc presentarin son simples y p r o p r c i o n a n una via concrrta y lkil d r transici6n da 10s rjrmplos que s r han discutido a aplicaciones n ~ i amplias. s Sr h a rscogido PROLOG, m a implrmcntaci6n tlr las mismas itlras drl c:tilculo relational q u r estlldian~osantes, q w tamhibn inclnyr capacidades para crea r rcglas c p r o p e n sobre 1)asrs de datos en extenso. Mas a h , PROLOG forma la lmr para algunos d r 10s lcnguajrs d r SBC que se estin drsarrollando, talcs como DATALOG y I B L . h n q w la mayoria clr las versioncs d e PROLOG usan nna notaci6n n ~ i os menos rstiudar, purdrn aparrcer algunas pequrfias diferencias. Usa~nosm a forma general.
Representacibn del conocimiento con reglas E n esta scc-ci6n rlaborarrmos 10s mrcanismos para expresar l6gic:;r con reglas. Descriljiremos la siutaxis cle las rrglas hasicas y daremos u n rjemplo general de coml)inaci6n de las reelas r n las r s t r a t e i a s d r evalnaciim con encaclenamiento hacia atras (bnckuard-chaining) y (.on ent-aclcnamiento hacia adrlaute (forward-chaining). Luego se presentarii la rxpresi6n ck las rrglas en PROLOG.
Formaci6n de reglas Las reglas son un mbtodo muy iutuitivo de representar el conocimiento. Confiamos en la intuicihn del lector en la interprrtaci6n d e las reglas que ilustramos en la disrusi6n anterior, a su vez tam1)ii.n p d r L probablemente escribir algunas d e sus propias reglas a1 estudiar dichos ejrmplos.
DISENOY ADMINISTRACION DE BASES DE DATOS
l l n a regla estli constituida por una hiphtcsis y nna eonc:lusi6n. Si sr satisfare la hip0tcsis entonces se purde inferir una conclnsihn. P o r ejrmplo. "Si fJrs un perro (Itipcitesis), tamhibn p n t d r scr m a ac.ciOn, entoncm 1) tierw cuatropntns (cortclusibrl)". La conc:l~~sii,n como r n el c a w , "Si lnfiebrc? estri ncornpr~indncle unn congestirin (hipcitesis): debiera irsc? (1 cer a1 rrikdico (t~or~c1zisicir~-acciort)". Reglas simples como Gstas a menudo no son iltilrs si no sr coml)inan con rstprmas mas r i m s d r representacihn tlel conoeimiento. Hay dos mi:todos grnrralcs tlr conhinar las rrglas: ITno rs el enc:adrnamicmtt, haeia adalante (forward chninirlg) y la otra es r l enc*atlrnamirnto hacia atrlis (bnckzcnrd chaining). P a r a rxl~licarrstos conceptos usaremos m a analogia muy simple. Piensc: en u n vurlo drsdr Salt Lake City hasta Bangkok coma en un twnjunto tlr reglas en las q u r Salt Lakt: City es t.1 punto tlr partida y Bangkok rs c.1 punto d e destino. La deciuccihn. q u r conhina las rrglas, se ap1ic.a a la tarca tlr en(-ontrarlos vurlos quc concrten las ciudatles. No hey vuelos dirrtstos entrr Salt Lalir City y Bangkok. Lo ijnc dehemos flawr es rxaminar el lihro de r r n t a (.on (4 cronograma que drscrihe todos 10s vuelos y tratar dc rncontrar los vnelos clue conecaten. Qur vayan? ciigamos, a 10s Angrlrs, 111rgoa Honolnlil. Iurgo a Tokio y luego a Bangkok. En(-ontranlos, por ejrmplo, q u r hay varios vuelos llegando desde Tokio. Cada segmento (It%Ilegada destle m a rindad hast;] Banglioli purtlt. I e r se r o ~ n ouna rrgla. De rnotlo quc
genera uua lista d e ciutlades drstlc las cuales hay vne10s hasta Bangkok. Toliio estaria en esta lista. En espariol monclo y lirondo rsto se diria de la forma signientc:
Si una ciutlad tie~lrvnrIos a Bangkok (hiPOtrsis). entoncw rsa cindatl rh 1111cantlidato para n~lestroviaje (ronrlusiin).
encadena~nientohacia detras. Una cadena 1ipic.a rlr rrglas clue \ a n d r m a ronclusi6n a m a hipltcsis. encadenamiento hacia clelante. Una catirna d r regfas clue van tle una hiphtrsis a una ronclusi6n.
Simplificando rsto u n poc*o, ya c p e Tokio cs nna d r estas ciutlades. podrmos haccr dt: Tokio nuestro destino y vc:r todos 10s vuelos clue llrguen a Tokio? rntre los cuales hay uno saliendo ilrsdc Honolulu. Pode~nosconvertir entonces a Honolnlil en nuestro dcstino y continuar trahajando d r rsta manrra hasta cpr enrontrrmos una conexibn con Salt Lake City. E n este c a w estamos trabajando hacia atrhs drsde Bangkok, por 10 qne cl proceso se llama encadena~nientohacia a t r i s (backword chnirring). Alternativamrnte podriamos haher comenzado cn Salt Lake City y comrnzar haria atlelante. En estr caso buscamos todos 10s vuelos q u r salen d e Salt Lake City y vemos quc. van, digamos. a LORAngrlrs o Honolulil, o Denver o Chicago p a r a ir a Tokio y d e Tokio a Bangkok. Esta rs a grandes rasgos la metodologia cpr se conocr como encadena~niento hacia adelante (forumrd chaining).
Reglas en PROLOG En PROLOG las reglas se expresan d e forma familiar.
.
Dondr el simbolo ":-" stt purde lcer como "if' algo que hrmos estado hacirndo informalrnente. La clliusula anterior d e PROLOG se lee twmo
C PS uerdudero, si H , y HL ... y asi sucesivamente hasta Hk son v~rdadrros.
SISTEMAS AVANZADOS: SISTEMAS DE BASES DE DATOS ORIENTADOS A OBJETOS...
473
T a m t G n podria usarse "or" r n lugar tle " and". El punto (.) clenota t.1 fin de la cliusula d r la regla. Estos son algunos ejmmplos cbont.rctosy faniiliares.
( S i g u i c d o rl twn\rnio tic. PROLOG hrnios pasado a usar lctras r n minil,cula para denotar las rc.laciones.) Esto p d i - i a lrrrsr romo
iC011io drtrrniinamos la vcraridad d r rsta prrgunta? i E s X un progenitor d r Y o no'! P a r a e n w n t r a r la respuesta, X c Y deben asociarsr a instanvias r c d r s (valores) d r la h a w tlc datos. Luego la vrrdad d r una srntrncia dependerli d r la vrrdad de ,us partes. Suponganios clue 10s siguicntes hrchos rxistcn r n la base d r datos rxtrnsional. (Los valorrs r n PROLOG drlwn tmipe7ar con lrtras rnini~sculas,por eso "Jane" sr esc.rilw '-janr" y asi.) madre(jane, a l e x ) madre(tami, anne) p a d r e ( j o h n , ane)
Ahora nob plantratnos la ronsulta PROLO(;, ?progenitor(john, alex).
En la regla d r progrnitor, X r s t i ahcrra asoriado con john j I cwn alcx. P a r a ralcul a r la soluriOn, sc drbe demostrar q u r la regla es verdadera o falsa. En rste caso, tenenios madre(john, a l e x )
n o rs nn hctsho d r la 1)asr tlr datos, y padre(john, alex)
tanipotw rs un 1iec.ho de la base tle datob. Por lo tanto, progenitor(john, alex)
no sr puedr drdi~rii-d~ la h a w tle datos y la rcspuesta es FALSE (falso). Sin rnilm-go, la t.onsulta ? p r o g e n i t o r ( t a m i , anne)
s r intrrpretarh como verdadera puesto q u r madre(tami, anne)
es u n hecho d r la Imw de datos, lo q u r rs sufiriente p a r a determinar q u r p r o g e n i t o r ( t a m i , ane)
es TRUE (verdadero).
DISENOY ADMINISTRACION DE BASES DE DATOS
Supongamos que lo qne se c p i w e es wuocer q n i h e s sou 10s progeuitorrs de Anne. E ~ t ros , ?progenitor(X, anne).
E n p a l a l m s estarianios tlicie~itlo:
(Los nomlrws d e vari;il)le en PROLOG dclwn etnprzar con una letra mayuscnla.) Una h s q u e d a en 10s hechos tle la base de dato5 rnruentra madre(tami, anne), y p a d r e ( j o h n , anne)
Luego el resultado de la consiilta s e r i X = tami X = john
Los lrnguajes basados en la lhgica brindan las capacidades tlr responder a pregnntas que no sc pnedrn responder ficilmentr con 10s lrnguajes d r manipnlacibn dc: datos de 10s lrnguajes convencionalcs. A u n i p e la c r e a c i h de vistas en 10s lenguajes convenrionales es similar a1 uso de reglas p a r a definir ljases d r datos en intenso, las capacidades d r dvfinici6n dc vistas de 10s SGBDs relacionalcs no son tan podrrosas como las rcglas 16gicw. En particular. 10s lrnguajee rrlacionales no pueden expresar consultas rec:nrsivas clue son a rnenudo utiles para formular consultas complejas (ver Ulltnan, 1991, para drtalles.) Las intcrrelaciones transitivas tales cotno la jerarquia entrtbpartes, las listas d r ancwtros y las jerarquias d e dirrcribn son rjrmplos importantrs, Supongamos clue tenemos trahajadores q u r son dirigidos por los jefrs d e departtimento y q u r los jrfrs de departamento son dirigidos por 10s jefes d r divisihn. Tanto 10s jefes d r tlivisi6n como 10s jrfrs de departamento pueden entonres estar implicados en la evaluacihn del rendimiento del trahajador. Esta interrelaci6n l6gica se p u r d r rxpresar rrcursivamente d r la forma siguientr: e v a l u a ( X , Y) : - j e f e d e ( X , Y ) .
(1
( s e l e e como " X e v a l u a a Y s i X e s j e f e de Y " ) . e v a l u a ( X , Y) : - e v a l u a ( Z , Y) & j e f e d e ( X , Z ) .
(2)
( s e l e e como " X e v a l u a a Y s i Z e v a l u a a Y y X e s e l j e f e de 2 " )
Suponga qne 10s hechos siguientes existen en la base de datos en extrnso: j e f e d e ( j o h n , bob) jefede(john, jefede(bob,
ray) frank).
Podemos plantrarnos la siguiente consults:
SISTEMAS AVANZADOS: SISTEMAS DE BASES DE DATOS ORIENTADOS A OBJETOS... ? e v a l u a ( j o h n , bob)
j e f e d e ( j o h n , bob)
es un hctaho. Sra ahora la c.onsulta ?evalua(john, f r a n k ) .
El resultado es vercladero por la rrgla ( 2 ) . ya que evalua(bob, f r a n k ) y j e f e d e ( j o h n , bob)
son amhas verdadero. Supongarnos qnc se cpirre una lista de todos 10s cmpleados clue son e v a l u a d o ~por John. Esto poclria expresarse como sigue: ?evalua(john, X ) .
El resultatlo scria X = bob X = ray X = frank
por l a regla (1) por l a regla (1) por l a re gla ( 2 ) .
Se h a p s e n t a d o un rjrmplo en el clue el camino de la evaluaciOn (jerirquico) e i de longitud (10s -hay un mixinlo de dos niveles en la evaluacih-. El uso d e m a regla rccursiva extirntle con farilidad el camino a cnalquier longitud. Veanlos una sin1~11edemostraciOn de extender el canlino a longitud tres. Supongamos que se aiiade un hecho a la hase d e datos anterior: jefede(frank,
carl)
Y hacrmos la consulta: ?evalua(john, c a r l )
El resultado sera berdadero mediante la secuencia lhgica siguirnte:
1. La regle (2) estahlece la veracidad de "t.valua(bob, carl)," ya que "evalua(frank, carl)" es verdatlero por la regla (1)y " jefede(bob, frank)" es un hecho tlr la hase de datos.
2. De nnevo una aplicacibn d e la regla ( 2 ) nos lleva a1 resultado. ya clue "evali~a(hob,carl)" ya ha sido establecido y " jefede(joht~,hob)" es un hecho de la base de datos. Los conceptos bisicos clue se han presentado son:
1. Las reglas se pueden expresar como cliusulas que tienen la forma
DISENOY ADMINISTRACION DE BASES DE DATOS
La p r t c de la izqnirrtla tlrl ":-" es vtwladera si s r pnrtle esta1)lrcrr la vei-atidat1 dc la parte u la tlerrt-ha tlel '-:-"a 11artir d r Ilechos d r la I m r rlr ( h t o s o de la wracitlatl d r otras rrglas. 2. St, pnrdt.11 clrsarrollar I ~ a s r tlt. s tlatos en intrnso (tlrdwtivas) a partir d r I ~ a s r dc s tlatos r u c.xtriisc) a las true s r 1t. atiadcn tales rrglas. L't~mosahora mi8 tir t*t.rc*aa PROLOG tw~nolrnguajc para cxprrsar rrglas.
Una aplicaci6n simple de base de datos en E n rsta scwiBn clrstacxrrn~osla iiiitaais fundarnrntal d r PRO1,0(; al)licacibn motlrsta tlr 1)ase d r tlatos.
J
PROLOG
tlrnlostrarrn~osiina
Aspectos fundamentales de PROLOG
clausuln. En I'KOLOG int~liopar rl cual se ~ T ~ ) I Y ~ los I I hrt.hos !rl t~)noc~iinien tt~: :- hili~tc~.sis> t.1
rl I t q y ~ a j efnndacional dcl proyccto (It. quinta gtwrraci0n d r c.onil)ntadorri. cnyo ol)jrti\ o r, tlwwrollar sistcnias dt. chlculo altamrntr intrligrntrs qnr . .1)uedan almacrnar bastes \oliirnrnt.? tlr int'oriiiatihn. PROJ20G t.s tan1l)iC.n una hrrraniirnta importantr en la prograinacibn r n intrligtwii artificial. partit*ularmtwtrr n rl tlrsarrollo d r sistrnlas c.xpertos. La cBornl~onc.ntr lilntlamrutal tlr F'ROLOC rs la 1-lliasda, rl nirdio rnrtliantt. el cwal sr rxlwtbsan 10s Ilrchos y (:1 conocimirnto. La Figira 1-l.17 mrmtra dos clinsnlas 1)isic.a~: pa(lrr(liarry, janr) y patlrriX, janr). La primvra c l i u s ~ d adice. -'Ilarry rs el patlrr drjanc.." La srgnntla cXn~sulac*sprc:ifit~~ qilr " X rs el padre dc janr, " tlondr X rspet:ificaa a m a \~arial)lt:. Tani1)ii.n podcnios rscrihir c*ltinsulas condicionalrs qne rxprrsen rvglas d r la fornia qiie I~cwos\isto. La Fignra 1-i.17 nos mnrsti-a (10s rrglas: La prirnrra dice qiic "X rs el ~ w o gcnitor d r k" cs vrrtlatlero si " X c,s la m a d r r d r Y" es vrrdadrro (progrnitor(X,Y) :inatlrr(X,J-));la segnnda dice. " X rs progrnitor de Y" cs vrrdadrro si " X rs padrr tlr Y rs \ertlatlrro" (progcnitoriX, Y ) :- padrr(X. Y)). Las cwniuncionrs (ANTIS\sc, denotatl usantlo comas v las disvnnc:ionc.s iOKs) sc drnotan par puntosy coma. P o r rjrmplo. podenios ttmrr una regla lhsica twmo " X t3s el a h lo dl. 1..si X c s rl p l r e d r Z, y Z rs nn progenitor d r Y." abuelo(X, Y ) : - padre(X, Z ) , p r o g e n i t o r ( Z , Y ) . Toda cliusnla r n PROLOG tlrlw terminar Ison iin p i n t o .
I
(c)
padre padre
(harry , jane) ( X , jane).
progenitor progenitor
(X, Y) : (X, Y ) : -
rnadre padre
(X, Y ) . (X, Y ) .
CONJUNCIONES Y DISYUNCIONES
abuelo progenitor
" En in&,
(X, Y) : (X, Y ) : -
padre rnadre
Progrumming in Logic ( N . drl T.).
( X , Z ) , progenitor (X, Y ) ; padre
(Z, Y). (x, y).
SISTEMAS AVANZADOS: SISTEMAS DE BASES DE DATOS ORIENTADOS A OBJETOS...
La estructura de una aplicacih en PROLOG Las initruccioncs cbnPROLOG i e c30mponend e fhrmulas c p incluqtw si~nhuluscle precliadre re" o a l ~ w l o " )aplicadas a 10s argnincntoi para cados (talei cwmo '"progenitor". inc*lnirc*onstantcbs(talc5 proclwir balorei '*\erdatlcro" o 'Talso". Estos argnuicntos ~)ucdc*n como "harry" y '* janr" ) y varia1)les (tales corm X , E ? Z).(La5 constantei tam1)ibn pueden i e r cmtwoi.) El convenio es clue en PROTAIG loi simlmlos pretlicatlos ! lai constantes comienren (*on1c.tr.a n~inilicwla. Vamos a acalarar cstai nocioncs. Intlic~ucmos~)rirnc.rola sirnilitud cntrc u n nornhrc relational y sui atrihutoi ? la noci0n 1hgic.a clc un ~)rc*clic*aclo cwn i i ~arpumcmtoi. i RcafiCrai c b clc nnevo a la Fignra 14.15. Esta maeitra nna relacicin de nomlwe PARTES cwn 10s atrthntoi aiociatloi, SIJBPIRTE y PAIWE. En PROLOG. esta r e l a c i h es nn predicatlo. PZRTES, clw tiene loi argumentoi SLBPARTE y PLZRTE. De moclo clue ii cy)rc~iaiiio,el "
"
c1c.h-l retornarse como respnesta TKUE (~erclaclero).ya que la tnpla < N O . 31'a> es una cle lai tuplas d e la relacaihn correiponcf ente. Se puetle cwistruir un ejemplo algo n i l i cwmplejo nianclo la Fignra 14.18. Los nomh i tle tabla y 10s n o m l ~ r e itic. atri1)uto ticmcm la intc*rpretac*ihn iiguientcl:
VI'
f' nhmv nom1)r.e~ localiclad nilmp nivel-c nombrep tipop grado dominio. El t6rinino I'KOLOG para la rspccificacicin tlr un tipo cle clato.
c cmcicdor vencledor cle partes partes nhmeros d e vendedor nomhrc de vcndcdor localidad nhmcro dc. parte nivel cle caliclad nomhre cle parte t i p d e parte graclo
Observe clue 10s doininius c:orresponclcn a los t i p s de datos, los predicados corresponclm a estructuras relac.ionales y las c:lLusulas representan las t n p l a s d e las re1ac:iones. 1)efinimos " vistala" mediante la f6rmula l6gica v i s t a l a ( l 2 , Smith) : - v(12, smith, l a )
predicado. Una cxprcsicin quc cxvalha vercladero o falso.
La regla dice clue (12, smith) es un hecho cle la vistala si (12, smith. la) es u n herho aparwienclo a la clerecsha cie clel prtdicado v (bendetlor). Un balor tal cwmo "la" (pero no a la izquiercla) puede interpretarse como una c o n d i c i h euistencial. Esto es, p a r a la regla antwior pudih-amos decir clue
'"
v i s t a l a ( n u r n v , nombrev) es v e r d a d e r o s i e x i s t e una t u p l a en v t a l que ~ ( n u r n v , nornbrev, l a ) es v e r d a d e r o .
ilustraremos ahora la estrnc*tilra1)iisic.a cle una implemmtac.i6n PROLOG usando una wrsihn simplificacia cle la Figura 14.18. I * Ejemplo * I
S~glasrnrrlo sr ronocr rn lnglPs a la rludad dr Loi Angrlrs (N. drl T.).
DISENOY ADMINISTRACION DE BASES DE DATOS domains nombrev, l o c a l i d a d , nombrep, t i p o p , grado = s t r i n g numv, nump, n i v e l - c a l i d a d = i n t e g e r predicates v(numv, nombrev, l o c a l i d a d ) vp(numv, nump, n i v e l - c a l i d a d ) p(nump, nombrep, t i p o p , g r a d o ) clauses v ( 1 , james, l a ) . v(2, c l i n e , london). v ( 3 , marx, d e n v e r ) . v ( 4 , myers, s f ) .
V P ( l , 25, 8 ) . VP(1, 37, 9 ) . V P ( ~ , 28, 6 ) . V P ( ~ , 29, 7 ) . VP(1, 39, 9 ) . VP(2, 25, 9 ) . VP(2, 37, 9 ) . VP(3, 28, 7 ) . v p ( 3 , 37, 7 ) . v P ( 3 , 29, 8 ) . vP(4, 37, 8 ) . vP(3, 39, 8 ) . VP(4, 28, 7 ) . v p ( 4 , 29, 7 ) . p ( 2 5 , reborde, acero, a ) . p(28, estribo, laton, aa). p(29, c e r r o j o , h i e r r o , a ) . p(37, p i n z a , l a t o n , a a ) .
domains rwmbrevi g o e a l i d a d - = s t r i n g numv = i n t e g e r predicates v(numv, nombrev, l o c a l i d a d ) clauses v ( 1 , james, l a ) . v(2, c l i n e , london). v ( 3 , marx, d e n v e r ) . v ( 4 , myers, s f ) .
La set:t%n "domains" (tlominios) permite rsprcificar los t i p de 10s valores (tipos de datos) clue sr brindarhn por el esyuenla relational ckfinido en la set:cihn "pretiicados". La sec:ci6n cliusulas permitr la entrada tlr datos. o valorrs, para 10s rrspectivos atrihutos relacionales. La secci6n clau,ses (t:liusular) p ~ l r d everse conlo las instancias de una base cle
datos rrlacional. Esta rs la estrurtura bisica tle todas las implementaciones PROLOG. A partir d r nuestra vrrsihn simplificada tle la Figura 14.18 hernos rreado una base tle datos extensional. Esta contirne hrchos y podemos ejrcutar consultas ordinarias de for-
SISTEMAS AVANZADOS: SISTEMAS DE BASES DE DATOS ORIENTADOS A OBJETOS...
479
ma rlrinrntal. S q ~ o n ~ a n i que c ~ s querernos listar los nombres de totlos los \rntletlorrs tlr Los \ngrlei (" la" I. I,a consulta seria: v ( - , Nombre-vendedor,
la).
El resultado serh Nombre-vendedor
=
james,
1COmo se interprcta csta c~onsulta?Ehrnc.irrlinrnte Gsta t r a n w u r r r tle la manera siguicntc:
1. Mira (w la relaciOn \ las tnplas qnc, trngan
" la" wino kalor tlr loc.:rlidad. R w u p ' r a ('1 valor asociado p a r a nonil)rr\ \ asign;~k t r a la \ariirl~lrd r nomhrc h o n 11rc.-vcndcdor. 2. Toda 11alal)ra q u r comience con Irtra mayilicnla i r consiclrra m a \arial)le -esttb (*s~1('a50 de Nonibre-vendrllor. 3. Toda palabra que comirnce con lrtra minuicula se interprrta coino tin valor cle atrilmto. 4. El uso tle "- " significa q u r rl l a l o r c o r r e s p n d i e n t e de atributo no t i m e n i n p h significatlo r n la solucGn tic la consulta y p o r lo tanto sr ignora.
AplicaciGn de base de datos T)emostrarrinos ,rhora una ~rplicacii~n tle hase de datos usando PROTJOG. Esta base de (lato5 se representari wino se itincbstraen la Figura 14.18. Los datos clue se introducen son flicilmrntr reconoc*il)les.Ohservv q ~ i las c cadenas d e caracteres son todas letras en milifiscwlas. Hemcrs entrdtlo 1as instantias d r la hase de datos en la secci6n de progrania PROLOG idrntificala par L-c*lansc.s"(c*lansnlas).Asi las cosas tenemos una hase de datos en c.xtcnso. Hrcordemos qne la sewibn "prerli(.atrs" (predicados) requiere una definici6n d r la 1,asc de datos en tbrminos cle noinlm~sde relacicin y snr corre5pondientes atrihntos \. qne la s r c ~ i 6 n"'domains" (tlominios) tlefinc. los t i p s d r tlatos quc*rorrvspond(m a 10s tlonunios tlr los atrihntos. Cuanto niis lejos \ajainos, mejor. P a r a implrtiirntar una hasr d r tlatos r n intrnso nwesitanios hacer algo mis. Su1)ongainos q n t ~drst~;~nios c*onoccr aqnellos vrndedore5 cuyos produc.tos w a n todos de nivel 8 o s u p r i o r . Una forma de 1~1crrrsto es encwnti-ai,~quellosvendeclores que suministren partes que rstln rvaluatlas con inerios de 8. La infortnac+')n deseada podrnios encontrarla buscando aqurllos suministradores clue estan r n rl primer grupo, p r r o no en el srgundo. Esto se i h s t r a a continuacicin: P r i m e r Grupo : a l t o n i v e l ( X ) : - pv(X,
-, Q ) and Q
>= 8 .
Intrrpretac~ihn:altonivel(X) es el resultaclo q u r qurrrmos para el primer grnpo. La relaci6n dr nomhrr "altonivel" sr ha escogido arhitrariamente. Los noinhres de rrlari6n p11c.(lrn 5er cualquirr cwmhiac.10n de letras, digitos y caracteres de suhrayado, pero delwn r i q w z a r (-011 una letra minusenla. 7i r,s nna variahle y el hecho de que la usemos en nia!kcula significrr tjne quvrenios imprimir el resultado. E n espariol esta consulta podria intrrpi-etarw coino: Si a l p m a tupla de la relaci6n pv t i m e un valor Q mayor o igual que 8. entoncrs su \ a l o r ?i (n6mero tle kenclrdor) rs una sol1ici6n y s e r i p o r lo tanto miemhro de la relaci6n altoni\rl. Segundo G r u p o : b a j o n i v e l ( X ) : - -pv(X,
-,
Q ) and Q < 8
DISENOY ADMINISTRACION DE BASES DE DATOS
S o l u c i o n : r n e j o r c a l i d a d ( X ) : - - a l t o n i v e l ( X ) and ( n o t ( b a j o n i v e l ( X ) )
lnterpretacihrl: 1Jr1 sumistrador rstri en la relaciim rntbjor wlitlatl si vsti en r l g r n p q n r snniinistru las partes twn niveles tle t.alitlatl mayor I> ignal 11w 8, fwro no vsth en r.1 g r q w tlr los suministradores de 1,artc.s tine tienrn nivel de t-alitlatl ulenor clue 8. En la F i p r a 13.19 stbrnuestra una t.c1ml)inaci6n tle nna I ~ a s edc tlatos t.n intrnso y en t.xte~~so. 1)d)eria wrnl)rol)ar cjnr t i p a(X) prodlice nna lista (11% los si~~ninistrutlores qne p t r p o r c i o i ~ a n1)artes tlr gratlo-a.
-
~
-
-
-
domains nombrev, l o c a l i d a d , nombrep, t i p o p , grado nurnv, nump, n i v e l - c a l i d a d = i n t e g e r
-
=
-
-
string
predicates v(numv, nornbrev, l o c a l i d a d ) vp(nurnv, nump, n i v e l - c a l i d a d ) p(nump, nornbrep, t i p o p , g r a d o ) clauses v ( 1 , jarnes, l a ) . v(2, cline, london). v ( 3 , marx, d e n v e r ) . v ( 4 , myers, s f ) . V P ( l , 25, 8 ) . VP(1, 37, 9 ) . 6). V P ( ~ 28, , V P ( l , 29, 7 ) . VP(1, 39, 9 ) . v p ( 2 , 25, 9 ) . VP(2, 37, 9 ) . VP(3, 28, 7 ) . v p ( 3 , 27, 7 ) . VP(3, 29, 8 ) . v ~ ( 4 ,37, 8 ) . VP(3, 39, 8 ) . VP(4, 28, 7 ) . VP(4, 29, 7 ) . p(25, reborde, acero, a ) p ( 2 8 , e s t r i b o , l a t o n , aa p(29, c e r r o j o , h i e r r o , a p(37, pinza, l a t o n , a a ) . a l t o n i v e l ( X ) : - v p ( X , -, Q ) and Q >= 8 . Q) and Q < 8 . b a j o n i v e l ( X ) : - v p ( X , -, : altonivel(X) and not rnejorcalidad(X) (bajonivel(X)). t i p o l ( X ) : - p ( Y , -, -, a ) and v p ( X , -, -) and n o t (vP(X, Y ) ) . t i p o 2 ( X ) : - vp(X, -, - ) . t i p o a ( X ) : - t i p o 2 ( X ) and n o t ( t i p o l ( X ) ) .
SISTEMAS AVANZADOS: SISTEMAS DE BASES DE DATOS ORIENTADOS A OBJETOS...
Datalog Micntras PROLOG es m a implrmentari6n iltil de la prograniae16n I6gica. no tienr la luna cnal fnr r~onalid;ltlcompleta d r nn sistema de h e tle datos. Estr no es rl prtrphsito 1 ~ u . el eliit.riatlo. Sin e m h a r p , su podrrosa implen1entaci6n tlr la l6gic.a cle primer orrlen ha llevado ,I q u r ir intent? acwplarlo con 10s sistrmas tradicionalrs tle haws tle tlatos relwionales. I,a ma!oria tlv csos e s f n e r ~ o sno h a n protlucitlo sistc~niasitlt.al(%i.DATALOG es n n intento tlr intvgrw twnceptos de la lh@a (*onplcmas rapa(i(lat1ri tle sistrn~asde haws tle tlatos. DIIT\I,OG se h a en la programacibn l6gic.a y la demostrari6n antolnatira de teorcmas. l),\'r4LOG es en murhos sentidos una vrrsi6n simplifirada de la programari6n l6gica. E n partirular, DATALOG no p r m l t e simholoa d r fnnriones r n 10s argnlnentos. cwmo si lo p m n i t e PROLOG. DATALOG niantlrne una estrerha relari6n con las bases tle tlatos l o s reprrsentar las rrlariones, tal conio sr rchcionalrs. nsando sinildos tit* ~ ~ r r t l ~ r a cpara h i m con PKOLOG.
Lenguaje de datos 16gicos (LDL) IJ)L ~ - e p r c w ~ n1t1a11 intrnto tle proportionar 1.n nn solo lmgoajc. la c.xprc~si\itlacltlr PROLO(; cwnhinado con la rapacitlatl (It. ejrcutar transaccionrs (actualizar. 1)orrar y otras) tlr 1111rntorno de hase d r clatos rclacional. T,a difrrrncia m i s importante entre PlZOLOG ! LDI, es que LDL nos (la la c*xprc~sividad de la lbgira, asi romo la completa fllncionalitlatl tle n n SGHI). El rjemplo siguicntr es similar a1 q u r (la Chinienti ! o t r w (1990). El rrgiitro tle nn c~npleadol ~ ~ l rtener i a la forma siguientr: empleado
(nombre ( j o e ,
smiley),
admin,
educacion(secundaria,
1967)).
Si (~urrrttiosttwermas informatihn s o h 10s tmplcaclos. rndn su1)arguinrnto potlria rrlinarse (YI una desrripribn miis (1t.tallatla. Esto nos llevaria a un registro edncacional wrnplrto para una Iwrsona: e m p l e a d o ( n o m b r e ( j o e , s m i l e y ) , admin, education( { ( s e c u n d a r i a , 1 9 6 7 ) , ( e s c u e l a ( h a r v a r d , l i c e n c i a t u r a , mat), 1971) ( e s c u e l a ( h a r v a r d , m a e s t r i a , i n g ) , 1973) ) ) ) .
El anidamirnto de cwnjuntos le (la una gran potencia y flexi1)ilidatl. Memiis LDL ha adaptado 10s convenios para exprrsnr reglah de PROLOG en u n lenguaje clue t i m e alnplias rapacitlades tlv gcxsti6n tlr haws d r tlntos.
E n este rapitulo hrmos introducido 10s ronreptos fundamentalrs tle las SGBDO y los SRC. Primero ilustramos c6mo un lenguaje de 00 implements 10s t-onceptos qrlr scs p u sentaron en el Capitulo 4. I ~ i e g ohicimos un resumen de 10s p r o t o t i p s d r SGBDOs y de 10s SGBDOs c:omercialrs y presentamos u n lrnguaje oricntado a ohjrtos. Los sistemas basados r n r l c-onocimiento intentan extender la potencialidad d e 10s sistemas de haws de tlatos mas alla tle 10s (Iatos propiamentr hacia informac:i6n cjur se puede deducir de 10s datos. Con rsto romo premisa, consideramos el papel d r l conocimiento e n 10s sistemas de bases de tlatos y c6mo las reglas permiten la representacihn del conocimiento. Estr trma se ilustrb ron la construccibn de m a base de datos que incluia conocimirnto, usando PROLOG como whiculo de drscripci6n. Luego (limos un resnmen de LDL, que h a extendido las capacidades de PROLOG m funrionrs tle gesti6n tle bases de tlatos, asi corno en la representaci6n del conocirniento.
DISENOY ADMINISTRACIONDE BASES DE DATOS
Hay nna nccrsidatl t ~ r t . i t . 1d ~r rxtrndcr 10s sistrmas de 1,ast.s tlr datos para incorporarlrs las rarac.trristitu analizadas t:n rstr capitulo. Es d r rsperar qrie en la p-6xirna 10s mbtodPcada otwrran drsarrollos interrsnntrs y titiles en estas b r a s . .Uortunadamt.~~tr. dos tlr modelatlo drsarrollados anteriormrnte sr adaptan adecuadamc:ntr a estos avantst:s.
1. Dvfina con sns propias I)alaljras catla uno tlr 10s t6rn~inossiplie11tt.s: a. claw
1). ol)jt:to vomplcjo c. sistema exprrto tlr Imse d r twnotiinirntos e. t:onocimirnto r n exttmo f. twm:imiento r n intrnso
d. sistema
2. 1Por (1116 un sistema d r bases d r tlatoh orientado a ohjetos t.5 prvfrrihle a un sistt.ma de I ~ a wd e tiatos relational? 3. Contraste 10s pretlicados j las c12insulas en PROLOG. Db url rjemplo tlr cada uno.
4. ;Poi- qub pudirra s r r prvferil)le un sistema hasado r n el conocimiento a un A t e m a de hase de clatob'!
Parte A
1. Haga corresponder cada tcrmino con su definicih: -rlasc. derivurla -0bjeto -sistc.ma de base dc. datos de objetos -~ncadenarrriento hacia atrus --uncudenarrriento hacia adelante -16gicu de primer orden -sisternu de gestibn basado en c.1 conocimiento
a. Una formn d e comhinar reglas. q u r va d r la hipbtesis a la conclusi0n. h. Una estructura lhgica hasada en ohjetos, p r r dicados y funcicrnrs. c . Sistrma de software clue gestiona el alrnacenamiento de datos y la nianipulaci6n de datos y reglas. d. Una instancia d r clase. e. Una forma de conibinar rrglas. clue va de la t:onclusibn a la hipbtesis. f. Una clase que hereda caractrristicas de otra clase. g. Un sistema d e software clue gestiona el almacenarriiento de datos y la manipulaci6n de datos y objetos.
Parte B
1. Dibuje un fragniento d r un rnodelo orientado a objetos que trnga dos conjuntos de objetos base: ESTUDIANTE y EMPLEADO. Luego rnuestrr las especializaciones respectkas d r esos conjuntos: INGENIERO y DIRECTOR. Haga que EMPLEADO tenga lot atributos NUMEMP y NOMBRE. Haga que ESTUDIANTE tenga 10s atributos NUMEST y NOMBRE. INGENIERO tiene 5u propio atributo T I P 0 (ingmec, ingelee. etc.) j DIRECTOR tiene su propio atributo DPTO.
SISTEMAS AVANZADOS: SISTEMAS DE BASES DE DATOS ORIENTADOS A OBJETOS...
1-1
(#NOIMAC( RENTA AN UAL
CAMI~N
NOMBRE
\ CL'ENTE
CONDUCTOR
4 FUE-EMBARCADO-EN
NOMBRE
+ CARGA
+
*
*
I ENV~A FUE-ENVIADO-POR
EMBARQUE
4
+ * FUE-ENVIADO-A RECIBIO +
I
I
ClUDAD
I
Siguieutlo el rje1111)lod e e ~ t vcapitulo, h a p cwrresponder sii modelo orientado a ol~jetoscon claw, m C++.
2. Usando el modelo de la Fignra l-E.lE, cree soluciones p a r a cwla una d e las consi~ltas sigiiientcls en TextOuerv: . , U11a lista dr nimeros dr t:mharques para erivios que pesen m i s de 20 liljras. No11ilx-etrrs compaiiias con ~ n i de s $10 niillones de renta anual. La poblacibn tle Atlanta. El conductor del rarnihri #45. El nombre y la poblac%h tle las ciudades qiie hayan recibido e m l ~ a r q i ~ eclue s p e n mas de 100 lihras. El ilonihre y la renta aniial d c los rlientes que hari enviado em1)arques que pesen m i s d e 100 lilwas. Los nu~iierostle 10s camiones q u e h a n transportado embarques de mas de 100 libras. Los noml~rcsde 10s c*ontirwtoresq u r h a n transportado r m l ~ a r q i ~ que e s p e s m mas dt: 100 libras. (:iudades que hall reci1)ido emhartIues c k clientes q u e tengan m i s de $15 rnillones tlt: renta a n d Clientes q u r ttmgan $5 millones d e renta anual p que hay a n hecho envios de menos tle 1 libra. Clientes qnc tengan m i s tle $5 millonrs de renta anual clue hayan hecho envios d e menos de 1lihra o qne hayan hecho envios a San Francisco. Clientes q u e hayan herho envios transportados por el c a n i i h ronducido por Jensen. Conductores q u c h a n contiucido embarqnrs a clientes con renta anual superior a $20 millones a ciudades con poblaci6n por rncima del m i l l h . Clientes clue hayail herho envios conducidos por cada eoriductor. (Idea: P a r a la soluciones TextQuery tle 10s ejercicios 11-(Iuse la construt:t:ib~iSET-F y la comparaci6ri de ronjuntos.) Ciudatles que hayan recibido embarques d e todos 10s clientes. Conductores que hayan transportado embarques para cada una dr las ciudades.
DISENOY ADMINISTRAC~ONDE BASES DE DATOS madre(X, Y) : - p r o g e n i t o r ( X , Y ) , f e r n e n i n o ( X ) . p a d r e ( X , Y) : - p r o g e n i t o r ( X , Y ) , m a s c u l i n o ( X ) . h i j a ( X , Y) : - p r o g e n i t o r ( Y , X ) , f e m e n i n o ( X ) . h i ] o ( X , Y) : - p r o g e n i t o r ( Y , X ) , r n a s c u l i n o ( X ) . herrnanos(X, Y) : - p a d r e ( Z , X ) , p a d r e ( Z , Y ) , rnadre(W, X ) , Madre(W, Y ) , (X Y ) . hermano(X, Y) : - hermanos(X, Y ) , m a s c u l i n o ( X ) . herrnana(X, Y) : - hermanos(X, Y ) , f e r n e n i n o ( X ) . t i o ( X , Y) : - herrnano(X, Z ) , p r o g e n i t o r ( Z , Y ) . t i o ( X , Y) : - p r o g e n i t o r ( Z , X ) , herrnanos(W, Z ) . casado(W, X ) , r n a s c u l i n o ( X ) . casado(alan, b e l i n d a ) . masculino(a1an). femenino(be1inda). rnasculino(char1es). fernenino(dar1ene). masculino(edward). progenitor(alan, charles). progenitor(alan, darlene). p r o g e n i t o r ( a l a n , edward). casado(charles, f e l i c i a ) . casado(edward, g r a c e ) . fernenino(grace). fernenino(fe1icia).
q.
r.
s.
t.
progenitor(felicia, john). p r o g e n i t o r ( f e l i c i a , rnary). progenitor(neva, darlene).
Clirntrs que hayan herho envios a catla ciudatl cwtl 1)ol)lacihn sohrr 500.000. (Idea: Crcar primero el wnjunto de ciutlaclrs con poblacicin por encitua de 10s s00.0oo.) Dar una lista de dientrs J- d r las rrntas atlualrs de ae~uellosc-lirntes cauyasI-mtas anualrs sea la mLxima tlr los clientes en la base dc datos. Dar una lista tlr 10s rlientes que tienen todos 10s rmharquc.~por c-ncima cle las 25 lihras. Ilar una lista d r 10s c.lientrs qur ruvian todos sns emharcjurs a una unica ciuclad. (Nota: 1,a ciudatl puede o no p r d r ser la misma para cada uno tlr 10s clientes.)
3. Para cada una de las cwnsnltas sipuientrs: i. Si la ronsulta sr pnedr rrspouder nsatido la Figura 14.1E, dC. un procwlitniento p a w a paso para enrontrar el rrsultaclo. ii. Si la con5dta no se puede responder usando la Figura l S . l E , indiquc por (pi.
a. ~QuiCnesson los hrrnlanos tle Alan?
b. ~Quihnrsson 10s hijos de Felicia? c. ;QuiC.nrs son 10s padres tie Darlene:'
d. iQuiSnes son 10s hijos de Alan? e. iQui6nes son 10s hermatios de Edward?
f. ~ E Charles s hrrmano de Darlene? g. i E s Grace hermana de Charles? 11.
i.
j.
iTiene algutia hrrmana Belinda? iQuiCn es el tio d r Belinda? ~Quihnrsson 10s tios cle Grace?
4. Para rada m a de lab consultas en (2) qur no purda rrsponderse a partir tle la Figura 14.1E modifiynt la hase d r datos para poder satisfacw &has ronsultas.
3. Modifiqnr las rrglas tlr la 1)aw tlr datos !afiatla 10s h w h o s nrcrsarios llara detrrminar la intrrrt4aciOn tlr a1)nelo.
6. E s t d ) a consultas r n PROLOG para 10s siguirntrs proldrmas. IJsr la Figura 14.18. ;,QuS vcndetlores snminiatran partcs con nivrlrs tlr t.alitlat1 niayorrs qntX8? i,Q& w n d r d o r r s snniinistran twrojos? i,Q& vcwtlrdorrs suministran pinzas? i , Q ~ ip. a r t r w s t i n ht:chas d r acrro? i , C t ~ i l r son s las loralidades tlr 10s vc:ndrdores clue suministran rstrihos clr hirrro? ,C)n6 vendtdorrs snniinistran partrs dr latcin? ~C)IIC.vrndrtlorrs suministran partrs tlr grado aa? ;,Qni. partes suministra Jamrs? 1Cuilt.s son 10s nivrlrs de calidacl de las partes suministratl;~~ 11orel ventlrdor IVY i,Q& partt'swn s~nninistradaspor vrntlt~tlorrslocalizados r n L!lY
1. H a p algnna in~rstigacitinhi1)liogrif'ica hol~rr10s SGBDOs. Escril);~Iin tbnsayoclue se w n t r e r n las siniilitutlc:~y t1ifrrrnt:ias vn estos p~.o~lut.tos.
2. IIaga una invt~stigacibn1d)liogrif'ic.a so1)rt. 10s sistemas l m a d o s en el conocimic~nto. ksc-riha un rnsayo sobi-r t1u6 rvl)rrsentacihn d r l c:onocimieuto (16git:a, redes srminti(:as o arn1;lzonrs 7frurn~s- es nibs apropiada p a r a t:onstrnir 10s futuros SBCs). Kxplique las razoncs tle su twnc:lnsicin.
3. (Amere m a pcquriia 1)aw de datos p a r a nna emprrsa tle ventas hipot6tic.a. M w s t r e chmo extentliendo 6sta a nna base tlr t:onocimientos s r nwjoraria la toma de clrcisionrb d r la (,mprrsa.
P
A
R
T
E
EL LEGADO DE LOS SISTEMAS DE BASE DE DATOS
v
L
os primeros siste~iiasde basc.5 tle tlatos han ttmido un aniplitr uso co1nt.rrial. .4unque no tan elrgantcs como 10s sistemas relacionales, orientatlos a objrtos y las bases de conocimitwtos, tlichos sistrnlas s r siguen utilizantlo en la actualidad, tirnrn capatidades poderosas p a r a m w h a s aplicacionrs y son tli gnos cle rstndio. E n el C a p i t d o 15 s r prrsrnta la drfinicibn tlrl modrlo en red. Se definr e ilustra la representat~ibndel modelo cont.eptua1 y s r introduce y se muestra el lenguaje de mani~ d a c i b ntle 10s datos del modelo en red. El Capitulo 16 presenta el motlrlo jerrirquico. Examina la representacibn del modrlo conceptual d e manrra similar a como se hizo con el modelo en red. .4tlemis, se presents 1' lrnguaje dr manipulacibn d e 10s datos del IMS.
EL MODEL0 DE DATOS EN RED
v
Antecedentes historicos Conceptos basicos y definiciones Estructura de tres niveles Registros y conjuntos Interrelacion del modelo en red con la semantica del modelado conceptual Transformacion de conjuntos de objetos e interrelaciones uno-muchos Transformacion de interrelaciones n-arias Transformacion de interrelaciones muchosmuchos Lenguaje de definicion de 10s datos (DDL) del DB T G D e l modelo de datos al esquema D e l esquema al subesquema Lenguaje de manipulacion de 10s datos (DML) del DBTG Facilidades de recuperacion y actualizacion del DBTG Ejemplo I: Recuperacion simple de un registro Ejemplo 2: Recuperacion de 10s registros con una caracteristica particular Ejemplo 3: Eliminacion de registros utilizando la orden ERASE
Ejemplo 4: Modificacion del contenido de un registro Ejemplo 5: Adicion de un nuevo registro a la base de datos Facilidades del D B T G para el procesamiento de conjuntos Operaciones de conjuntos Ejernplo 6: Inclusion de un registro en un conjunto Ejemplo 7: Anulacion de un registro de un conjunto Ejemplo 8: Modificacion de la asociacion de un conjunto Clasificacion Ejemplo 9: Estado de la insercion y de la retencion en un conjunto IDMSIR-Un SGBD del D B T G Evaluacion de CODASYL D B T G Representacion de 10s datos Lenguaje de manipulacion de 10s datos Restricciones de integridad Implernentacion Resumen Preguntas de repaso Problemas y ejercicios Proyectos y cuestiones profesionales
490
DISENOY ADMINISTRACION DE BASES DE DATOS
Ritu Minkowski. lu tlirectorcj de 10s sistemus de informucion de la Corporucion Zeus, usistiu (I lu reunibn rnenbuu/ de 1(1 .s(wihn 1 o ( ~ dd~ 11 Asociation jor Computing Machinery l-iClrl). El tern(; de esu turde era " L ~ .sisternus s ( 1 ~~( I S P Sd~ ( h t o s rclacionalc~svcJrsus 10s sister nu^ ( 1 hus~.\ ~ OPclatos jer4ryuicosjj. John Stiller. (11 udministrudor regioi~crlde ventus paru u n SGHI) e n red popular, conienzo: "Se puetle esperur c p J 10s sisternus relacionules t r a b ( ~ j e nbien e n cuunto a la sutisli;ccibn de Ins necesidades de consultus at1 hor por p r t e de 10,s usuurios. pero nunccr puc~clrnlogrc~rel rendimiento necesurio puru 10s sistc~musclc~procluccihn. Sin c~mburgo. lo nmyoritr de 10s sisternus cle I K I S ~ S de datos se convierten e n m u rnezcla de trunsucciones de produccion -tales ( ~ m Iu o u(~tuu1izncibnde in~lenturios y el envio de S hoc, con Qnf(~sis e n 10s sistemus d~ procluc.cihn. Dc~sufortunaf u c t u r u ~ - I ( Y N L S I L ~ ~ U at1 rlomentr. 10s sistemus de produccicin ulturncnte efirientes y lus consultus a d hoc son acti~ i d u d r ns ~ u t ~ r o r n e en xt ~c h ) entes. Por eso nosotros continuamos soportando el modelo en red. Este rnodelo upoyu lus necesicludes de In ~nuyoriude 10s usuurios con lu mayor velocitlocl j c$cic.ircia." El cor~fer(~ilc.iai~t(~ .siguiente f i e Andreu Villu, profesoru titulur tle unu universidad locwl. Los s i s t e n m jerciryuicos y cJnrcd se dedicun tipicumente cusi por entero a acticidctcles cle produccion poryue es lo yue hueen mc~jor. Continub: ''L\o obstante, no proporcionctrr lu jlc.tibilidud i ~ e c e s ( ~ rpara i ( ~ soportur completainc~ntc~ lus corrsultus a d hor. Con r t i ~SGHI) err recl, scJpuede uburcur lu informacibn de lus ventas por r g i o n e s , per0 puetle consrtrnir nrcis tiempo recuperur el t i p tle resumen de 10s datos yue necesita u n gerentcJ con~c.rc-itrl.l i l n n&. existe un(1 generuci6n cwinpletu de directivos que quieren -y esperait- este t i p CIP ( ~ ~ p u c i d uEsta d . es lu ruzbn por la c u d tar~tosprofesionales han u p ! udo el rrrodelo relacional, yue o f r w e la jlc~xibilirlud necesariu para responder u la c h s e de cons~rltctsat1 hor que scJpluntean 10s directivos en cuunto u informaciones resuinidus." En la refutacibn, Stiller cith su propiu investigacibn, yue mostrb yue 10s sistemus relucionules tienden (I ser nrcis lentos yue 10s sistemus de bases de dutos jercirquicos y en red. yue h a n registrado rlc-ords de rendimiento. Seiialb yue 10s usuurios tendriun yue emprrnder una renovucibrt muy cura de su equipamiento y rediseiiar su sisterna purcl coilseguir el inisino rendimiento con u n rnotlelo relucionul. Villa rnooib su cubezu. "Desde luego, ulgunos de 10s sistemus relucionales mas recientes no pueden tener el inismo comportanliento estadistico en cu(into a1 r~rtdimiento yue ulgunos de 10s sisterrrus jercirquicos y en red ya estublecidos durunte mucho tiempo. Y, en situaciones e n las yue lus estructurus de 10s datos y 10s putrones de /us trunsucciones se conocen muy bien con antelucibn a1 diseiio y u In irrrplenlentcieibn, 10s sisternus jer&-quicos y e n red pueden prepurarse pura producir rendirrrientos mas impresionantes que algunos de 10s SGRDs relucionules." Preguntb: " ~ P e r oq u i s w e d e si las mtructurus de 10s datos cumbiur~?20 si el gerente cornerrial yuiere resumenes de dutos yue no son parte de la estructuru de 10s datos o de 10s patrones de /as transucciones origincdes? Para obtener la informucibn. se &be escribir url n u e ~ progruma ~o de aplicucibn o , inclusive, rediseiiar parte del sistemu de base de datos. Cualquiera de estas opciones consume mucho tiempo y es muy cara. Sin embargo, en el rrrodelo relacional se puede extraer fcicilrnente esta informacibn. Esto sign$ca yue es posible durle u 10s directivos la informacibn que necesitun para fundamentar sus decisiones estrutigicus. A largo pluzo, esta capacidud huce que 10s sistemas relacionules sean rrrris qficientes para u n mayor numero de usuarios. " Entonces la reunibn se abrib a preguntas y r-espuestus. Lo yue dio como resultado una rica discusibn yue sugirib yue hoy dia las bases de datos jer6rquicas y en red estcin vivas y gozan de buenu salud, pero que, quizcis, no son 10s modelos del futuro. )i
EL MODEL0 DE DATOS EN RED
E
n estt3 taapitulo se presentan 10s funtlamt'ntos tlt'l n~odelode datos en retl. I)t*sl)116stle leer este t.apitulo. tlelwria svr cbal,;lzt le:
Destmlm- la t.strnc*tnra de datos t1isit.a a partir tie la twal st. twnstrnyr r.1 niodelo de datos en r t d . Explkar la ternnnologia utilizarla para tlescd)ir el nioclelo tie tlatos en red. I t i l i ~ a los r nibtotlos f ~ n i d a m e n t ~ l [lard e s representar u n niotlelo orientado a ol)jt.tos ell un nodel lo tie tlatos tan r r d . E x l ~ l i t wtv')u~os r utilim r l lrnguajc- tle tlescripti0n de 10s datos p a r a iniplementar las estrut-turas clr ( h o b r n rrtlrs. D c s t d ) i r t h n o oprra (*I lenguajr tle nianipul~ci6nde 10s datos del DBTG para retwl~t~raiy at'tuahzar 10s d'itos. K':\aluarel niotlt.10 COD I S 1 1, DBTG.
Antecedentes hist6ricos
(hnfrrrnce on Data S>& m ~ sLanguages (CODASYL). Una organizac-ihu cunpuesta por reprcscntantrs tlr ~endedorcsdt. hardware, I endetlores de sol'twarr !uiuarios: eonocida principalmente por el dcsarrollo tlel lenguaje
COBOL. Databaw Task Group (DBTG). Un subgrupo d r (,OD 1st L rou la responsabilitlad de tlcsarrollar normas pdra los sistr~ndstlc geiti6n tle h a w tlc ddtoi. In~egratedData Store
(IDS). I'no dc lo* primeros qi\teuias dc grstihn d r I)asrb tlr datos: su arquitet.turd influ! 6 p~ antlrmrnte cn las rrcomtmtlac~onei tlel DRTG para un motlelo de haw de datos en red.
1,as reties twnstituyeu nna 111;rnri-a natural dc reprcscmtar las interrelacionrs r n t r r 10s objetos. St: utilizan aniplianirnte en las niateniiticas, la investigaci6n operativa, la quimica, la fisira, la sociologia y otros c a m p s . Como 10s ohjetos y sus interrelariones constitnyen maneras iitilcs de rnodelar niuchos de 10s fen6nicnos que nos conriernen r n ltrs ncgocios, no es sorprendtmte que la arquitectura de reticules se aplique ta111bii.n a la trrganizatiOn tie las bases tlr tlatos. Generalnientv, las retles se pueden representar metliante una estructura matemitica llaniatla grafo oricutado. Los grafos orientatlos tienen una estructura simple. Se ronstruyen con 11untoso nodos conectados por arcos orientados o aristas. Dentro del marco d r 10s motlelos tlr tlatos, 10s notlos pueden considerarse como tipos de registros de 10s datos y las aristas puetlen twnsiderarse como la representaci6n de las interrelaciones uno-uno o unoni~ic.lios.h i . rl i u ~ d e l do e datos e n red representa 10s datos en estructuras d e reticules de 10s tipos de registros t~onec~tados por interrelaciones uno-uno o uno-niuchos. La estructura drl grafo l'arilita la rel~rrsentaci6nsimple d e las interrelaciones jerirquicas (como 10s datos grnralt;giros), las intrrrelaciones de pertenencia (como el departamento a1 clue se asigna un rml)lvado) y niuchas otras. Ademis, una vez clue sr ha estahlecido m a interrelaci6n r n t r r tlos ohjrtos, la recuperacihn y la nianipulat:ihn tle los tlatos asociados puede rcalizarse eficienteniente. Conio se explicari en breve, una jerarquia es a n raso particular d e un reticulo. E n t:orrespondencia con ello, el modelo de datos jerirquiro, que s e r i discutido en el pr6xinio c.apitnlo, es un caso particular del niodelo de datos en red. Si hien el motlelo tle tlatos j e r i r t p i c o hist6ricaniente precede a1 modelo de datos en red, parece util discutir primero la estructura de grafos del motlelo en red que es m i s general. De este modo, en este capitulo sc. trata el modelo d e datos en red y en el capitulo siguiente el modelo jerirquico. La organizaci6n Conference o n Data S y s t e n ~ sLanguages (CODASYL) formada p r representantes d e 10s vendedores de hardware, de los vendedores de software y tle 10s usuarios m i s importantes, inicialmente desarroll6 y normaliz6 el lenguaje COBOL a1 comienzo de la dtcada d e 10s aiios sesenta. A finales d e esta dCcada, esta o r g a n i z a c i h noni11ro un su1)grupo denoniinado Database Task G r o u p (DBTG) p a r a desarrollar las normas para 10s sistemas de gestiGn de bases de datos. Este subgrupo DBTG estaba fuertemente intluido por la arquitectura utilizada p a r a el prirnero d e los SGBDs, el Integrated Data Store (IDS), desarrollado por General Electric. Esta influencia condujo a las recomendaciones p a r a un modelo en red que aparecen publicadas en un informe preliminar en 1969.
',
' Confrrmria sobrr 1,mguajrs dr Sistrmas dr Dator. Por rrr un nomhrr rstahlrrido, sr mantienen las sigh rn in& (U.tlrl T.).
DISENOY ADMINISTRACI~NDE BASES DE DATOS
Estr primer informe din lugar a nnmerosas sugerrnrias para SII pt~rfbccionamirntoy sr p~ihlicbu n informe oficial revisatlo en 1971 clue st. sometii, a la consitlerat*ihndel American National Standards Institute (ANSI) p a r a sn posihle adopt%n como m a norma national para 10s SGHDs. La organizacibn ANSI no realiz6 acci6n algnna a1 rrspec*toy 10s informes modifit*aclos de 1978, 1081 y 1984 surt:dirron a1 inf'ormr d e 1971. Sin enihargo, el documento tle 1071 permanecr como la proposit-ihn fnntl;in~entaldel modrlo en red, q u r st. convirtib en el motlrlo DBTG de CODASYL. H a servido cle hase para r l drsarrollo de 10s sistemas d e grstiim tlr bases de datos r n rrtlrs por parte dr varios vendtdorrs. El IDS (Honeywell) y r l IDMS (Computer hssoriatrs) son dos d e las implementarionrs romrrriales mejor ronociclas. Annqur el modelo tlr datos en red ratla vez m i s p a r r w retlrr el paso cm el future al motlrlo d r tlatos rrlac.iona1 romo el SGBD a rlrgir. actualmrnte se ntiliza con efretividacl en nnmrrosos sistemas d r hasrs d r datos.
Conceptos bLicos y definiciones Estructura de tres niveles esqaelna. I,a vista lhgica tle todos los datos y sus interrelat.iones en la base de datos. subesque~na.lies snbconjuntos del rstprma que w clcfinen por la vista drl usuario d r la hase de datos. tipo d e registro. Una colerri6n d r elemrntos d r 10s datos lbgicamentr relarionados. conjunto. En el modelo DBTG, una interrrlaci6n unomuchos rntrr dos tipos cir registros. tip0 d e registro daeiio. El tipo d r registro en el lado "uno" de la interrelacibn unomuchos d r un conjnnto DBTG. tipo d e registro miembro. El tipo de rrgistro en el lado "muchos" de la interrelacibn unomurhos de un conjunto DRTG.
El modelo r n retl D B ' K twrrrspontlr a la arquitertura tle tres niveles tlr una h a w ile datos d e la ANSIISPARC (Capitnlo 3), como se intlira a continuaci6n: El nivel conceptual (la vista l6git:a d e todos 10s datos y sus interre1at:iones en la hasr tlr datos) s r denomina esquema. El nivrl rxtrrno (las vistas d r 10s usuarios de 10s datos nrcesarias para tliversas aplic.arionrs) se tlrnomina subesqueina. El nivel intcrno (10s drtaHes fisicos de almacenamiento) rstli implicito en la implementacibn.
Registros y conjuntos Solamente hay dos estructuras d e tlatos fundamrntales en el modelo en red, 10s tipos d e registros y 10s conjuntos. Las tipos d e registros s r definrn de manera usual como colrccionrs de elrrnentos de 10s datos lbgicamentr rrlacionados. P o r ejrmplo, el tipo tlr registro d e un cliente podria incluir 10s elrmentos de,los datos siguientes: ID-Clientr. Nomlwt:, Dire(:c i h , Cantidad-Que-Dehe y Fecha-DdIltimo-Pagc,. Observe q u r rsta colecribn s r identifica como nn tipo tle registro del clientr, dc manera yue el tipo d e registro s r especifica por un nombre. Todos 10s t i p s de registros recilwn nombres como CLIENTE, FACTURA. REPRESENTANTE-DE-VENTAS y asi sucesivamentr. Un conjunto en el modelo DBTG rxpresa una interrelacibn nno-muchos (o unou n o ) entre dos tipos d e registros. (Observe q n e ksta no rs la definicibn matemlitica usnal de conjunto, que es simplemente una colect:ii,n dr elementos.) P o r ejemplo, un conjunto poclria expresar la interrelacibn uno - muchos entrr 10s registros de 10s clientes y sus facturas pendientes. E n cada ronjunto tlr un rrticulo, u n tipo d e registro es el tlneiio y el otro tipo de registro es r l miemhro. E n el ejemplo r r c i h planteado, el t i p ile registro del clirnte es el dueiio y el tipo tle registro d r la factura es el miem1)ro. La interrelacibn unomuchos comprentle la posibilidad de que rero, uno o muchos registros dr factura puedan estar interrelacionados con el rebistro de u n cliente dado. Esto es, en un momento tlrtrrminado, u n cliente puede tenrr, digamos. tliez, una o ninguna facturas pendientes. El latlo "muchos" realmente expresa una c:apaciclad m i s que una r e s t r i c c i h . P o r supuesto, hay situaciones en las q u e una interrelaci6n es estrictamentr unouno, tal como ocurrr con un camibn y su conductor, pero esto se maneja d r l mismo modo. Una vez que s r determinan el tip0 cle registro due60 y el tipo d e registro miembro, todas las definiciones anteriorrs son aplicables.
EL MODEL0 DE DATOS EN RED
1
CLIENTE
I I
I
DUENO
/
DUENO
CONJUNTO VENDEDOR-OC
CONJUNTO CLINTE-OC
ORDEN-DECOMPM(0C)
VENDEDOR
MIEMBRO
CONJUNTO OCART~CULOS
-
Diagrama de la estructura de datos (a) CLIENTE
VENDEDOR
A
I '
"I Ocurrencia
(b)
instanria. Falows actuales del registro euprtwulos en m a cstrwtura dc datos. orurrencia. U11 iinhnirno para instanria
Estas convenriones se ilustran en el ejemplo mostrado qn la Figura 15.1. La Figur a lS.l(a) presenta la forma general de la rstrurtura de datos. Esta se denomina diagrama de Bachnian en honor a Charles Bachman, quien cooper6 en el desarrollo del sistema IDS en General Elertrir. La Fizura 15.lib) " , , muestra los v&res reales denominados instancias 11 ocurrencias, qur pueden encontrarse en la estructura del diagrama de Bachman. En la Figura 15.l(a) sr observan cirrtas convrnciones representadas en 10s diagramas. Primrro, 10s conjuntos se denotan por una arista rntre 10s tipos de registros, con la flecha indirando el tido de registro miehbro iel lado "muchos" en la inte;relacihn ano" muchos). Segundo, cada tipo de conjanto se constraye a partir de un tipo de rrgistro daeiio, un tipo de registro miembro y a n nombre para el tipo de conjunto. El nomhre del conjunto es la etiqueta que se le asigna a la arista. Esto corresponde a un grafo en el qae 10s nodos son 10s tipos de registros y las aristas se representan por lineas con flechas que conectan 10s tipos de registros. Tercero, la estructura de datos se constraye a partir de las interrelaciones de 10s conjuntos simples. La Figura 15.l(a) maestra tres conjuntos: el conjunto CLIENTE-OC con CLIENTE como dueiio y ORDEN-DE-COMPRA como miembro; el ronjunto VENDEDOR-OC con VENDEDOR como dueiio y ORDEN-DE-COMPRA como miembro; y e1,conjunto OC-ELEMENT0 con ORDEN-DE-COMPRA como dueiio y LINEA-DE-ARTICULOS como miembro.
DISENOY A D M I N I S T R A C ~ ~DE N BASES DE DATOS
retirulo ro~nplejo.1Jna t3structura insormhtira en qur una o ~ n i s inttw&cioucs ])inaria\ w n n~uchos-murhos. tipo dc registro enlace. Un rrgistro firticio qur -e r r r a para convrrtir un reticwlo romplrjo en un rrticdo simple rquivalmte; tam1)iin sr dri~ominauna intrrsrrribn.
l,a Figura 1,5.l(a) prol~orcionan n ejt.ml)lo tle la difermcia entre rl ntotlrlo tlc datoi en rctl y el modelo de datos jrrirtjuiro. Fijese qne OIWEN-DE-(:OMPI
EL MODEL0 DE DATOS EN RED
rn ALUMNO
CONJUNTOPERTENECE-A-GRUPO
I n ALUMNO
GRUPO
AG CONJUNTOTIENE-MATRICULADO
GRUPO
Interrelacih del modelo en red eon la sema'ntica del modelado conceptual Como hrmos considerado el enfoque del modelado conceptual de 10s datos para cstudiar 10s sistemas dr bases d r datos, resulta apropiado examinar la intcrrelacibn entre el modelo de datos en red y el modelo de datos conceptual. En esta seccibn se muestra c6mo un modelo de datos conceptual sr puede transformar en un modelo en red.
DISENOY ADMINISTRAC~ONDE BASES DE DATOS
Transformacicin de conjuntos de objetos e interrelaciones uno-muchos
enlare f'i4c.o. I111oietlio (It. c.onrt.t;rr 11,srtyistros utilizantlo bus tlirtwioncs r n tlisco.
El mc~tlrloen red put& t:onsitlerarsr conlo Iln modrlo de dntos c o n t q ~ t u a lw n todas las intrrrc1acionc.s rrstringitlas a c o n j ~ ~ n t ohinarios s (tle tlos ol)jetos) r interrrlavionrs uno~nnvhoso nno-uno. Esto perniite una rrprc~sentatihng r i l i t : ~de~ las rstrortnras dtb tlatos sin conq)licac.ioncs. E n lugar dc 10s twnjnntos d r ohjvtos del modrlo tlr datos t ~ o n t ~ c p t sts ~d. tirue11 registros 16gicos que s r concctan con otros rrgistros l6gicos m d i a n t r vnlaces fisicws tlue t*onsistcnr n dirrcciones tle 10s rrgistros r n 1.1 disco. ( M a rn1at.e reprrsenta rxact;nnrnte m a interrelatiOn e n t r r dos rt.gistros. Iln w n j u n t o es la intrrrelnciim entrv dos t i p o d e registros conrt.tatlos por un enlac-c*h n a r i o . P a r a a d a r a r esto. veamos otro t.jemplo dr la t w m p h i a International Protlnrt Dist r i l ~ n t i o ~(IPD). i (:onsidt:remos 10s mismos herhos tlrl vaso anterior y agregutwios q u r la con~paiiiaI P D s r organizu en 10s departanwntos funcionalcs nsualt.~,talrs t w n ~ ocontaldidad, t:omrrcializirtii,n y otros. La Figura 15.4(a) rs 1111f r a p w n t o dc un modt:lo tlr tlatos contq)tnal p a r a la I P D tlut, ilnstra la intt.rrrlacihn rntre los clientes y las mentas cle 1PD. La Figura 15.4(1)) mwhtra 141noel fragmcnto tlrl motlrlo sc translorma tw nna cstrnctui-a d r tli~tosr n r d . La corrrspondencia tbsbastante tlirccta. Los noml)res d r los objetos s r w n v i r r t r n cn 10s n o ~ n h r e stlr los rcgistros. 1,os atri1)utos d r 10s ol~jetosst, c o n v i r r t t . ~en ~ 10s twnpos tlv 10s rcgistros. La interrelacihn entrr los objrtos se convierte r n la iuterrelacihn rntrc los registros. Si la rralidad es qne nn cliente puetlr t r n r r rnuchas t*urntau y que una curnta pnrtle 1wrtt'nwt1r a UII imico clientr, como sc intlica en la F i g ~ ~ 15.4(a), ra rntonces s r ahade m a flrrha en el t>xtrelnoCIJENTA tlel en1at.r TlKNE-CUENTA (Figuras 15.4(1)) y 15.5(a)). Si un clirntr puede tener m a unica twtmta. p r o esir twenta j)uctle prrtenccrr a varios clirntes. rntonces la flrcha se aha& r n el rxtremo tlrl clirnte tlrl rnlace TIENE-CUEN'M, conio se muestra m la Figura lm5.5(b). LOSr j m ~ p l o santeriores nos cotitlut*en a la exprrsibn de estas reglas clr transformacihn: Kegla 1 : Para ratla twnjunto tlr oljjetos 0 1.n un rsqncma twnrrptnai, rrrar nn t i p dl* registro K rn la r s t r u r t ~ ~ tit. r a datos I W rrd. Todns 10s atri1)utoz dr 0 se rrpresrntau coma t-aunposdt. K.
ID-CLIENTE
-> G R E C C I ~
NOMBRE
I
*
CLIENTE
CUENTA
CLIENTE ID-CLIENTE NOMBRE DIRECCI~N
CUENTA
NUMCUENTA BALANCE
CONJUNTOCLIENTE-CUENTA (b)
497
EL MODEL0 DE DATOS EN RED
CLIENTE
CUENTA U n cliente puede tener varias cuentas, per0 una cuenta debe pertenecer a un solo cliente
CLIENTE
CUENTA Una cuenta puede pertenecer a varios clientes, per0 cada cliente debe tener solo una cuenta
Re@ 2: P a r a intrrrrlarionrs uno-rnuvhos. VI t i p de registro en rl latlo "uno" (Iv la intc.rrt.lacwn sv ronvirrtr r n VI tlo~lio.y VI t i p de registro en el latlo "muc.hos" dt. la interrelavihn se cwnviertr m el t i p de registro rniernhro. Si la Vartlinalitlad d~ una intrrrrlarihn es estrirtamente uno-uno, entonrcs los t i p s tle rehdstros dut-lio y n~irinhropacden elrgirsr arbtrariarnmtc..
Transformaci6n de interrelaciones n-arias La rornpaiiia IPD tamhibn time algunas interrelaciones ternarias, como 3r mnr3tra en la Fig11ra 15.6(a), que no satisfacen el requisito de interrelaci6n binaria. Sin rmlrargo, exihte nn camino srnrillo para satisfacer ese requisito, como SP ilustra en la Figura 15.6(1)). Se
PRODUCTO
PA~S
PRODUCTO CONJUNTO FECHACONJUNTO PRODUCT0 ENLACE
PAIS-ENLACE
u
REGISTRO ENLACE
DISENOY ADMINISTRACION DE BASES DE DATOS
c w a nn registro enlace, tlut-. a1 n~t~iios, dehe e ~ t a (-ornpt3sto r [)orel I ' ; I I ~ I ) O c.l;~\r (*atla( ~ 1 1 junto dc ohjetos. \,a creatihn (It, tsstt. rtyfistro enlace l)tbrni~ttb la rel)resr~ltac*~On (It' 121 t'structnra dcl rnodelo cont~el)tualchuf o r n ~ adt. retitalo. -\horn las trt.5 intt~rrel:ic.io~i(~s son I~ioariai. Ohserve que In intc.rrc.lacii111entre loi wgiitros c,xiitc*ntc.s\. c.1 rcyistro c.1i1ac.c. 1,s 11110rnnchos, con el rvgistro c.nlac.e sirnil)re twnio rcbgistro ~nic.nll)roen c.1 conjimto. 1,as oc8i1rrencias be muvstran cLnla F i ~ n r a15.7. La t*stratt.gia tle crtnart i p s (It. registros r1ilac.e pue(11. 1'1s interrt~1acionc.s11-arias a la de extendt-rsv sin modificacibn Ijara la tr;~nsforu~at-ihn forrna requrrida. La tercera regla tle transforniati&n i(*t ~ l ~ r t c~osna~ o :
Transformacih de interrelaciones muchos-muchos Como se vio en el clJemplo anterior itI,lJ MNO-GRUPO, nna sitnacihn siniilar podria snrgir c:uando aparecen interrrlacionw nnic*hos-~nnchos..Como otro ejemplo, cwisidrreinos una situaci6n que existe en la c.onipaiiia I PI). 111 fahricante 1)netle protlncir nint*hosl)roclnc*tosy cualquiera de estos prod11c.tos 1)urcIe srr. r1at)orado por varios fahricaritt.~. En la Figur a 15.8(a) se muestra un dingrama tle rsta situ;~ciOri.La implcmcntaci6n rcqnicrc qut*sc crec u n rcgistro enlace, clue se n o ~ n h r aREG-KNLACE. Esto se mnestra en la Fignra 15.8(1)). La interrelacibn entre PRODIJCTO y REG-KN LACE es uno - niwhos. asi caornola intc.rrc:lacibn entre FABRICANTE y REG-ENLACE. Se satisfacen 10s requisites tlel moclrlo en red DBTC. E n la Figura 15.9 se presenta tin c.j(:mplo de este motlelo cle datos. El fahricante Smith suministra los protluc*tos 115 y 116. El produeto 115 tnm11ii.n sc suministra por Shirdlu, lnc. ~ P u e d ever qub surtderia si Joe Kean Mfg. t;~nil)iPnsnrninistra el proclucto 116, o si Shirtllu c:omienza a f a h i c a r el ~)roclncto120 o un nuevo p r o d ~ ~ c tI oX ? La idtima regla se refiere a esta situaci6n mnchos-murhos. Keg10 4: Para catla intrrrrlacihn murhos - rn~whosrlltrr 10s twr~juntostlr objrtos 0, ! O,, (:rear un t i p tlr rcgistro rnlacr I, y ronvrrtirlo rn rl t i p ) tlr rrgistro ~nirml)rotiv 10s 111,s
tiposdr t-onjuntos, en los t.ua1t.s los tluefios dr 10s t i p s tle ronjuntos son 10s t i p s dr registr~)~ rorrt:spondirntrs a 0 , y 02.
LK?!As
F
Ene. 13, 1989
Ene. 15, 1989
EL MODEL0 DE DATOS EN RED -
MUCHOS-MUCHOS FABRICANTE
4
b
PRODUCT0
FABRICANTE
CONJUNTO FABRICANTEIREG-ENLACE
FABRICANTE
Ron Smrth
Shrdlu. Inc.
Joe Bean Mfg.
PRODUCT0
N o lrnplementable dlrectamente
CONJUNTO PRODUCTOIREG-ENLACE
LREC
PRODUCT0
115
Grampa
68 Industrial Road
115
Pdea
266 Harm Ave.
120
Correa
450 Maple St.
Lenguaje de definici6n de 10s datos (DDL) de DBTG i h ~ a l i r e ~ n oahora. i, loi 1i.neuait.s metliante los cuales se im~,lcmentael modelo d r datos r n < rcvl. Estos Ivngll;~jrsc.oustituyen 10s mctlios mrdiante los clue sc: cy)rc.iTic:a la c-strucaturadr tl;~toso (4 esqut:ma y metliantc. 10s q u r sc alrnacenan y nlanipulan 10s datos. El lwguaje utiliz;~clo11ar;1eslwcific.ar el rscpc:ma se tlcnomina Icnguaje d e dcfinicicin d r los datos (Data 1)cfiiiitioii Language-DDL) y c.1 Ienguajv utilizado p a r a almaeenar y manipular 10s datos W , tlenomina l e n p a j e d e manipulaeiim d e 10s datos (Data Marripulation L a n p ~ a g c D\IL). Rn esta seccihn sr p~-csentar l D1)1, I)RT(; y C I I la siguic.ntc' rl DML DU'I'CJ. <
Del modelo de datos a1 esquerna (:or110 se l)lantc.h anteriormente, la dcfinicihn genc.ral de una 1)asc de datos en red -sus rrgistros y (wljuntos- s r clenoniina rsquenia. k;';n partic:ular, el rsqucm;r tlesc:rih las illterrrlacionc~sentrr 10s tipos tlr rcgistros, identifica 10s rlenimtos de los d;r~osclue cwnstituyen ratla tilw tle rrgistro y define 10s tipos cle rrgistros dueiio-niiemhro quc deterniinan 10s
DISENOY ADMINISTRACION DE BASES DE DATOS
tipos d r cw~jnntos.A cwntinuacibn b r intlica un procedinlirnto 11arala utili7acihn tlel DDL (,n la tlrfinicihn de u n e q u t m a : Crear cl motlrlo (It. datos conwptual. Transformar el motlelo tle datos conceptual r n 10s diagramas de la e s t r w t u r a d r clatos tan ~ w l . V-vrificar si existen interrrlationes nno-muchos r n t r r los t i p s tle rtxgistros. P~ivclcwimplemcntarse directnmente como ronjnntos DHTG. Si t.xisten inte~wlacionesmnchos-mnchos, transformarlas r n tlos cwnjnntos clue tengall interrclaciones uno-muchos. t.onstruyendo los rrgistros en1acc.s nec:esarios. Si hay interrelaciones 11-arias. cwnvertirlas r n intrrrelariones 11inarias ~netliante el 1116todoilnstrado lrrrviamt~nte. Utilizur el DDL para iinplrnirntar v1 t w p w a .
IJna seccicin clel esquenla, cjne nomhra cl escjnenln. Secciol~esd e registros, quc proportionan las esl)c*eific*ac*io~~c.s dt- vatla estructw r a de rrgistro, s r ~ elemcmtos s d r 10s datos y sn l o c ~ ~ l i z a r i h . Seccioncs tle conjuntos, q n e rspecifiran todos los ronjuntos, i n t h y r n t l o 10s tilros (It. registros tluc:fios y miemhros.
La stwiirn tlrl e q u c m a tlrl I)l3T(; (fur tlrfinc, 10s t i p s d r rrgistros durlios los tipos de rrgistros niit~mhros.
Consider(: (-1modelo tlt. dntcrs t~onc.c:ptnalen la Fignra 15.10. La compaiiia I P D tltw.a i n ~ p l e m m t a rl r esquema corrrsl)ontlitmtr. En la Fignra 15.11 sr murstra la transfo1maci6n en la cstrnctura tlr tlatos en rcd. El nso drl DDL para implenicntar rl rsquema sr murstra t.n la Fignra 15.1%.Las linras tlr c.6digo se nnmt~ranpara la refercmcia en nuestra tliscusi5n. La seccihn dcl rsqnema st, representa en la linea 1. Esta linea identifiva lo clue sign(. conlo una drsc:ripc.i6n drl rstlnthma para una h e d r datos non11)rada REGISI'ItO-DECUEIUTAS. Rste nomhrr s r suministra por r l nsuario. D r la linea 2 hasta la linra 15 c.orrrs1wndr la scccibn dy rrgistros. Cadatipo d e rrgistro se itlrntifica por el nombre: CLIENTE, FACTUR.4 y LINEA-1)K-ARTICULO. P a r a ratla t i p de registro. s r definrn 10s rlt~inentostlr 10s jlatos d c los componrntrs. Para CLIENTE bstos son ID-CUST, NOMBRE, DIRECCION y R.4LA4N(:E-DE-(:ITEN'1':\. P a r a cxda elemento de 10s datos s r (la un tipo de datos y nna r q ~ c i f i c a c i 5 nd r l o n g i t d . P o r ejemplo, a BALANCE-DE-CUENTA s r It: asigna el t i p (lr clatos NUMERIC y nna
+ CONTIENE
EL MODEL0 DE DATOS EN RED
i CLIENTE-FACTURA
CLIENTE
FACTURA
FACTURAART~CULO
longitud tlr cinco caractrrta.s. con dos caractrrrs a la tlerecha del punto drcimal. 12qubllos q w sr idmtifican como INTEGER tienen una longitud implicita. Los conjuntos pueden rspt.c.ific*arze cnando se hayan ckfinido todos 10s registros. En la Figura 15.12, dv la linea l h hasta la linea 21 se murstran rjrmplos p a r a el esquema REGISTRO-DE-CUENT I S . La d r f i n i r i h (it. nn conjunto requirrr poi- lo mrnos las t r r s linras mostratias. La primera linra sc utiliza p a r a n o m l m r r l t i p d e (.onjunto, la segnnda linra para n o m l m r rl tipo tle registro ducno J la tererra linra p a r a nomhrar r l tipo de rrgistro n ~ i e m l ~ r En o . la Figura 15.12, u n cwnjunto br n o n h r a CLIEIVTE-F4CTURl y tiene a CLIENTE como sn tipo d e registro tlurfio 4 a FACTURA como su t i p tlr registro miemhro.
1. 2. 3. 4. 5. 6.
SCHEMA NAME I S REGISTRO-DE-CUENTAS RECORD NAME I S CLIENTE ID-CLIENTE TYPE I S NUMERIC INTEGER NOMBRE TYPE I S CHARACTER 1 5 DIRECCION TYPE IS CHARACTER 2 0 BALANCE-DE-CUENTA TYPE I S NUMERIC ( 5 , 2 )
7. 8. 9. 10. 11 .
RECORD NAME I S FACTURA NUM-FACTURA TYPE I S FECHA TYPE I S CANTIDAD TYPE I S ESTADO TYPE I S
12. 13. 14. 15.
RECORD NAME IS NUM-INVENTARIO DESCRIPCION PRECIO
NUMERIC INTEGER CHARACTER 9 NUMERIC ( 5 , 2 ) CHARACTER 2
LINEA-DE-ARTICULO TYPE I S NUMERIC INTEGER TYPE I S CHARACTER 2 0 TYPE I S NUMERIC ( 4 , 2 )
1 6 . CLIENTE-FACTURA 1 7 . OWNER I S CLIENTE 1 8 . MEMBER I S FACTURA 1 9 . FACTURAARTICULO 2 0 . OWNER I S FACTURA 2 1 . MEMBER I S ARTICULO
DISENOY ADMINISTRACION DE BASES DE DATOS
Del esquema a1 subesquema Mientras clue el esquema dcfinc: la e s t r u c t u r a Ihgica g r n r r a l cle la I)ase tle tlatos, el snl)c:scperna desc:ril)e la vista vxterna de un usuario o 1)rograma tle aplit~at%m. L,os snl)esc~uemasbisic:arnentc: son sn1)c:onjuntos del esqnerna. Sin ernllargo. la intlel)endencia tle los datos ( p a r a pvrmitir la variedad de terrninologia (I(. 10s nsuarios) se garantiza l w r ~ n i tiendo q u e tiifieran algnnos de 10s elementos del esquema. Los elenwntos de los datos clue no se a g r u p a r o n m c:1 csqucrna puetlen agruparse; 10s elementos de los datos. 10s registros y los conjuntos st. p w d r n rt.no~nl)rar: el orclen tle las desc*ripc:iones 1)uede can)1)iarsv. No se ha awptatlo nna norrna DBT(; 1)ara 10s s u l ~ c y u t ~ n l a sin s ; c*nil)argo. usualmt:ntc5 st: utilizan las divisioncs signientes:
>
divisiGn d e titulo. 1':sta 1~orci6n( i d sul)est~uema del I)I%TGpermite nomhrar (4 sohesquema y sn est1uc:ma asociado. divisi6n d c correspondencia. Ida porciiin dcl sul~esquema del I)I%T(;clue pcrmite cambiar los nombres ntilizados t:n (:I esquema por Ins nom1)res elegitios para el suhcst~uema. divisicin cic: estructura. La tlivisi6n tlel suhtw~uemadel DRTC clontit: se definen los registros, los elrrnentos cir los ilatos y los I-onjuntosa partir dcl vsqut:ma. seccicin dt: rc:gistros del suhesquema. 1.a wccibn de la divisiiin de cstructura que cyeeifit:a 10s reb$tros, Ins clemt:ntos tie 10s datos y los t i p s tie ciatos del subcsquema. seccihn d e conjuntos del esquema. La set:ei6n tie la divisiiin d c estructura que define Ins conjuntos que sc incluyen cn el su1)esquema.
Ilna divisi6n d e titulo, qut*garantiza noml)txr el snl~escluernay su escluema asotiado. IJna division d e corrc-sponclenria, (1ncSg a r m t i z a 10s t*aml)iost.11 10s noml)rt*s cntrt. r l esqurma y r l sul,rsc~nt~nia, si scbtlcstha. 1Jna division d e e s t r w t u r a , (lu(. espcc*ifica los rc.gistros. 10s chnc.ntos de 10s datos y 10s conjuntos clel escluema ( ~ n t.sttin c l)rchscmtc:s(:n el s n l ~ c ~ s c ~ n cEsta ~n~a. divisihn st. twmpone tle set.t*iones d e registros y tle c - o n j ~ ~ n t oI,a s . srcciGn d r r e g i r t r o s d e l s u h e s q u e n ~ atlvfine 10s registros clue se i n ( ~ l n y ( ('11 ~ n ('1 s n I ~ t w ~ n ( m a y 10s elementos tle 10s tlatos tie tw)s registros c w ~ ~ n n t a n ~ ecnotne sus t i p s de datos. La s e c r i o n d e c o ~ ~ j u n t doesl s u b e s q u c n ~ aitlentifica los conjnntos q n e se incluyen en 61. Una aplicacihn tic: la cwmpaiiia TPD quc. c.alcula cI ninnc.ro tlv facluras pcnr1icmtt.s por cliente, asi (:orno las cantidades atleudadas e n esas Sacturas. se utiliza cwuo nn elernplo. A p a r t i r dc:l csquema REGISrI'RO-I)E-CIJENTTISt la aplit.aciOn h n i t . ; ~ n ~ r nrtrrt p i e r e los t i p s d c reb+tros CTJKN'l'E y FFICT1!RA y el conjunto CLIENTE-F.I(:TITRA. E n la Fignra 15.13 se muestra el sul)esqnc.ma. E l nornbre del sul~esquema (SS) t-s ESTADO-DE-FA(:TI!RSS. La tlivisihn ( I t c.orrc:sl)on(lc:n':ia murstra clue el registro CLIENTE del cyuc:nia se ha renon~l)r;~cio DEUDOR y el conjunto CLIENTE-FACTURA se ha renom1)rado DEUDOR-FA(:TIIR-\ r n rl subrsquema ESTADO-DE-FL4CTUR,4S. Esto se realiza e n la secciOn ALIAS. dontlt. I D tlrnota "descripci6n del alias." El registro CLIENTE dcl esquerna se ha renom1)ratlo (-on el alias DEUDOR en el su1)c:squcma y se han invluido jnstamrnto trvs dr lob twatro (.It.mentos (if: 10s datos que conlprenden el registro CLIENTE en el escluema. I A instruwihn
SS ESTADO-DE-FACTURAS WITHIN REGISTRO-DE-CUENTAS. MAPPING DIVISION. ALIAS SECTION. AD RECORD CLIENTE I S DEUDOR. AD SET CLIENTE-FACTURA I S DEUDOR-FACTURA. STRUCTURE DIVISION. RECORD SECTION. DEUDOR. 01 05 ID-CLIENTE. NOMBRE. 05 05 BALANCE-DE-CUENTA. 01 FACTURA A L L . SET SECTION. SD DEUDOR-FACTURA.
503
EL MODEL0 DE DATOS EN RED
ordenes clc uavcgacirin. Ortlenei tlel DhlL DBTG utilizatlos para txiicontrar 111sregistros clc la l ~ a s c ~ (It. tlatos.
FACTLRA ALL intlic-a clue sr lian incliiiclo todoi lob elementos tlr 105 d a t o ~del rrglstro FACT11 I(4 en el eitluelna. 11orlo qiitl no hay necesidad dt, t.sptifit.arloi nuevamente. Coino se puetle \er. el sul)c.iqut.ma permite a1 nsnario utilizar un esquema preckfinido para aclaptarlo a lo- rc.quisitoi cle una aplicacG~np a r t i t d a r .
Lenguaje de manipulaci6n de 10s datos (DML) del DBTG ortlenes tlr ac,tualizari6ii dt. regiitros. Ordt-nrs tlel DhlL DRTC utilizatlas para ran11)iar los \ a1ort.s tlc los r t y stros. 6rdeues cle at-tyalizacioii tle c.oujuiitos. 0rdt.ilt.s tlel DhlL DBTC ~~tilizatlas para carcar. t.ainl)iai. o rliniinar las instantias tlr Ios l~oll,j~llltcls.
iiiclicaclores actualeh. hlarratloi-es tlt- la nl)ic.at-ihn(It- los registros que se 11an t,neontrado.
El lenguaje t l iiianipnlac.ihn ~ (It. 10s clatos (DMI,) clel DBTG proporciona 6rdenc-s potlerosas p a r a m a i ~ i l ~ n l un a r sistenia tle base de datos en red. Rsto es, 10s metlios a trav6s d e 10s ( * i d e spuetlei~utilizarse los datos contenitlos en la base de tlatos pare soportar Ios requisitos d e infoi-niac.iOn tlv la organizatihn. Una vez clue se diseiia la 1)ase de tlatos y sc. c w a utilizando ~1 DUL. c.1 DML pwmite a 10s usuarios ejeeutar o p r a c i o n e s sobre la llasc: tle tlatos con el prop6sito tic prolwrtionar inforniacih e i n f o r m r ~ ,asi como tamhi6n actualizar ! niotlifit*ar(4 contc.t~itlotle 10s registros. A tliferencia tle 111sDMLs d e los sistemas tle Ilasrs tle tlatos relacionales, cuyos trlw ratlores prowsan relationes completas tle una vez. 10s ol~c.ratloresd d DML DBTG 1)rot.esan 10s registros tle uno en uno. hlemris, el DML tiene q u r estar inmerso en un lengua,jr anfitrihn. tal wnio COBOIJ. 1,as 6rdenes 1)iisic.a~utilizadas por DML pueden clasificxsr en 6rdcnes tle navegaci6n, 6rtlenes d e recuperacion: o r d r n r s d e actualization tle registros y 6rtlenes tle artnalizacihn d e conjuntos. E n la Figura 15.14 sc prcsentan las 6rctcnc,s t k ratla nno t k estos grupos. Antes tle ilustrar el DMI, DBTG con t.jemplos. se ncwsita tlef'inir los tCrminos qut. st. reqneririii pt11-a la tlist*iisihn. El ~ w i m e rc.tnic2eptoes el de i r e a d e trabajo del usuario (User Working AreaUWA). Catla usuario o prograiiia de aplicati0n tiene un UWA. Los registros en el s11l)cw qnema se altnacenan e n el UWL4,c:onjnntameiite con lob indieadores actualrs y 10s int1ic.atlores tle estatlos. La forma c:n clue el registro sr r s t r w t u r a en el 1JWA se tlt~noliiinaplantilla del registro. I-orrrsCoiisitlei-emos la Figlira 15.15. Aqui se tiuwstra un i r e a de trahajo ~111si1)lr pondientc, a1 s n h ~ s t ~ u t ~tlt,finitlo ma en la Figura 15.13. El puntero actual DEUDOH intlic.a la localizacihn tlel illtimo registro procesado de ese tipo tle registro. El p~ltiteroactual FI:1CTCR.4 int1ic.a la localizarihn del ultimo registro pro(-csadode ese tipo d e registro. El puntero actual DKlj DOR-FACTURA intlica la 1ocalizat.ihn del idtimo registro asotiatlo a ese cor~juntoal clue se 11a tenitlo acxeso, sea dueiio o miemhrtr. El puntero actnal RCNUNIT int1it.a la lot*alizat~ii,ntlel hltimo rrgistro tle cualqiiit~rt i p a1 qne se ha tenido at*1-eso. Se drlw ohservar (IIW c:sos int1it:adores artualw f'unciman cotno mart.atlores tle loralizarihu. Cuando 1.1 usnario emite m a ordeli FIND (pendiente tle dist.nsihn), se encuentra el registro y sc. iii;irc*asu posicihn en el indirattor at*tualcorrespontlicnte. (:uantlo se emite
Tipo Navegacion Recuperacion A c t u a l i z a c i o n de r e g i s t r o s A c t u a l i z a c i o n de c o n j u n t o s
plantillas d e 10s registros. Formatos ntilixados para los registros clue st- leen en el UWA.
Orden FIND GET ERASE STORE MODIFY CONNECT DISCONNECT RECONNECT
DISENOY ADMINISTRACIONDE BASES DE DATOS INSTANCIAS DE DEUDOR
14
I
Bean
I50
PLANTILLA DE DEUDOR 205
3 1-05-90
25
.
I/ I
10
Smith
10
01
PLANTILLA DE FACTURA
I
APUNTADORES ACTUALES
fl
I
DEUDOR
0 FACTURA
DEUDOR-FACTURA
u RUN-UNIT
~ r e de a trabajo del usuario en la memoria primaria
INSTANCIAS DE FACTURA
u n seguncto orclen, el SGBD sc remite al indicador actual p a r a cteteruiinar con quC. re,'mi~tro t r a h j a r . Brevementv, (4 tipo ) la funribn de los punteros actuales son 10s siguientes: Indicndor d e la unidad d e ejecucibn: La uniclacl cle ejecucihn (Rnn Unit) se relier e a1 programa dvl usuario. El indirador tle la unidad d e ejecucibn rontiene la direcci6n del registro, o ( 1 la~ instancia d e un ronjunto, a la rual el programa de aplicaribn ha tenido acreso ntis recieiiteniente. E n la Figura 15.15 es la factw r a 205. Indicador de tipo d e registro: Hay un indicador actual para cada tipo de rvgistro en el subesquema. P a r a cacla tilw dv rcgistro, el UWA contiene la dirwcihn del registro de ese t i p ) a1 rual el progrania tuvo acccso mris rccicntemente. E n la Figur a 15.15 se tienen 10s indicadores actualcs p a r a 10s t i p s dc rcgistros DEIJDOR j FACTURA y apuntan a los registros qne corresponden a Rean y a la fartura 205. Indirc~dord e tipo de conjunto: Un pnntero artual rontiene la dirercibn del registro dc un tipo determinado de roniunto a1 rlial se tuvo arceso m i s rerientemente. P a r a cada t i p dv conjunto se mantiene por separado un pnntero artual. El puntero p u d e seiialar un registro dueiio o miembro, dependiendo de a r u i l se tuvo acreso m i s recientementt.. La Figura 15.15 mnestra el indirador actual para r l liniro ronjunto en este snl)esquema, DEUDOR-FACTURA, y st.iiala u n registro miembro, la fartura 205. Los punteros precedentrs st: actualizan automiticamente en la medida clue o c u r r m 10s arcesos a1 sistema dr h e d r datos. Es instructive pensar en 10s indicadores actualcs
505
EL MODEL0 DE DATOS EN RED
como variahles en una t a b . La Figura 15.15 ~lnstr;rlob ~ n d i c a d o r eartuales i posil)lei para el suhesquema EST4DO-DE-FACTURAS. Lai 1,antlwai tic, eitados constituyen u n conjnntcr d r \ ariablrs utilizatlo para c~onuinicar el reiultaclo (le la illtinla operaci6n ejecntada r n rl progrania d e aplicari6n. I,a bantlcra mlis frecuentemente utilizatla e i db-stutus. Sn \ a h se ignala a "0" si la operacii~n mas reciente t111obxito; dt. lo contrario, se le asigna 1111 c6dlgo dc crror. El uso mlis cermhti cle vita handcra t,s ieiialar el final de 10s datos. E n t r r otras handeras de estados se inrlue, y db-rluta-i~anw.Estas Ixm-lrras toman vdlores aproyen d b - s ~ t - i ~ a r nrlb-rword-nume piados cuando la hltilna operacihn falla, como un meclio para identificar la fuente d e nn prohlema. 4 rontinnacihn se prcicntarlin cjcmplos dc sn uso en las coniultai.
Facilidades de recuperaci6n y actualizaci6n del DBTG I,as 6rdenei FIND iclcccionan y localizan u n rrgistro deseado o una instancia determinada d e u n conjunto. Esta es la raz6n por la cual i e denominan 6rdenes de navegaci6n. 1)espu6s. tiene que ntilizarw una orden GET para recuperar realmente 10s datos. La orden FTND tamhibn podria cstar seguitla tle una orden de actnalizaci6n, tales como ERASE o MODIFY. S~ntlirt~camentr. hay tIos formas dc 1'1 ordcn FIND. como i r muestra a rontinuaciOn. partei opcionalt-i tlt, las 6rdenes se denotan mediante rorchetes ([...I) y 10s nomhres que i e snminiitran 1)or el nsuario 3e i n d i c m ~por corchetes angulares (<...>). F I N D ANY w o m b r e de r e g i s t r o > [ U S I N G ] F I N D DUPLICATE sombre de r e g i s t r o > [ U S I N G ]
Ejeinplo 1: Recuperaci6n s i r ~ ~ p dl ee 1111 registro. Supongamoi clue la twmpaiiia I P D q n i r r r la informarihn del Clirntr 105. Sc aplican l a i brdcncs siguientei: MOVE 105 TO ID-CLIENTE I N C L I E N T E F I N D ANY C L I E N T E USING ID-CLIENTE GET C L I E N T E
La orclen FIND provoca clue el indicador de la unidad dc cjccucibn, el indicador CLIENTE j (11 indicador CLIENTE-FACTUKA seiialen el registro del Cliente 105. Entonces la o r d m GET trae el registro a la plantilla C1,IENTE en el UWA. Ejemplo 2: Re(-uperacion d e 10s registros c o n uria caracteristica particular. Supongi~mos ahora clue la compaiiia TPD ( p i e r e todos los registrob de lob clirntes que tengan 10s h a l a n t w de .;us cuentas iguales a rero. MOVE 0 TO BALANCE-DE-CUENTA I N CLIENTE F I N D ANY C L I E N T E USING BALANCE-DE-CUENTA DOWHILE DB-STATUS = 0 GET C L I E N T E ( p r o c e s a m i e n t o de un r e g i s t r o de c l i e n t e ) F I N D DUPLICATE C L I E N T E USING BALANCE-DE-CUENTA END-DO
E n r i t e ejemplo se tiene u n lazo controlado p o r DB-STATUS. Esto es, DB-STATUS t o m a r i u n valor d r c6digo diferente de cero cuando no h a l a rnis ruentas de CLIENTE con balances iguales a rero. El primer FIND localiza el primer reglstro d e CLIENTE cuyo balance sea cero. El siguiente FIND husca u n DUPLTCADO (DUPLICATE), que se refiere a otro registro que tenga el mismo valor de BALANCE-DE-CUENTA que el que tiene el CLIENTE actual.
DISENOY ADMINISTRACION DE BASES DE DATOS
MOVE 0 TO BALANCE-DE-CUENTA I N CLIENTE F I N D FOR UPDATE ANY C L I E N T E U S I N G BALANCE-DE-CUENTA DOWHILE DB-STATUS = 0 ERASE C L I E N T E F I N D FOR UPDATE DUPLICATE C L I E N T E U S I N G BALANCE-DE-CUENTA END-DO
MOVE 5 0 2 TO I D - C L I E N T E I N C L I E N T E F I N D FOR UPDATE ANY C L I E N T E USING I D - C L I E N T E GET C L I E N T E I F DB-STATUS = 0 THEN MOVE ' 4 5 5 C h e r r y L a n e , S a n M a r i n o , C A ' TO DIRECCION I N CLIENTE MODIFY DIRECCION ELSE ( e j e c u t a r u n a r u t i n a d e e r r o r ) END-IF
MOVE 5 0 3 TO I D - C L I E N T E I N C L I E N T E MOVE 'HARRY Z . S M I T H ' TO NOMBRE I N C L I E N T E MOVE ' 2 0 1 S. MAIN, SAN MARINO, C A TO DIRECCION CLIENTE
IN
EL M O D E L 0 D E D A T O S E N R E D MOVE 5 0 0 . 0 0 TO BALANCE-DE-CUENTA STORE C L I E N T E
I N CLIENTE
Faeilidades del DBTG para el proeesamiento de conjuntos
Operaeiones tle eonjuntos
E j r ~ n p l o6: InclusiGll d r 1111 r(-gktvo e n u11 (wnjunto. Snponga clue 1x1Cliente 431 el(. la r e rucXnia! clue se 11a prtsl)ac w n p i i i a I PI) ac.al)a de liac.er nna colnl)ra tle $100.00 s t ~ l ~sn I-atlo la fac*tnra asochtla (#231). El (:lirntc. 431 rh aliora el prol)ietaric, tlc nna m e \ a ins tanria de furtura. Ticwc. clnc. e * r e a ~ -la~ eorurrenria tlel rcy+tro P'4CTI~R1?. tlespni.. . set c*onec*taal twnjnnto CLIENIE-F \CTITR1. Ehto se waliza d r la n ~ a n e ~sipuient~~: r;~ MOVE 231 TO NUM-FACTURA I N FACTURA MOVE ' 7 1 7 1 9 0 ' TO FECHA I N FACTURA MOVE 1 0 0 . 0 0 TO CANTIDAD I N FACTURA STORE FACTURA MOVE 431 TO I D - C L I E N T E I N C L I E N T E F I N D ANY C L I E N T E U S I N G I D - C L I E N T E CONNECT FACTURA TO C L I E N T E
DISENOY ADMINISTRAC~ONDE BASES DE DATOS MOVE 254 TO NUM-FACTURA OF FACTURA F I N D ANY FACTURA USING NUM-FACTURA DISCONNECT FACTURA FROM CLIENTE-FACTURA
1,as 1)rinwras tlos instrutviont~slocalizan la f a c t w a deseada. I,a i n i t r u c c i h final la desronecta del twnjnnto del t-nal es ,rct~~almente un registro mieml)ro. El registro permantw, totlabia en la I ~ a i ede datos con bistas a su verificaci6n y couiervat*ihn. La orden DISCONNECT permite clue nn registro t*an~l)ir st1 aiotiat.ihn (.on nn conjunto. Por ejemplo. inpongamos que la Fartura 510 se asigna errhnran~t.nte irl conjunto cn!o tluello e i el Cliente 425, enantlo deheria hal)erw conectatlo con rl twnjunto tauyot h e iio txs el Cliente 431. P a r a twniegnir el camhio clue rcrrrige esta sitnirtihn se procederid twmo ic mlwstra en el ejemplo siguiente. Ejeniplo 8: Modifit-arihn cle l a asociacion cle
1111
conjunto
MOVE 510 TO NUM-FACTURA OF FACTURA F I N D ANY FACTURA USING NUM-FACTURA MOVE 431 TO ID-CLIENTE I N CLIENTE F I N D ANY CLIENTE USING ID-CLIENTE RECONNECT FACTURA I N CLIENTE-FACTURA
Las dos primeras initrnt~.ioueslocalizan el registro deseado P4C71'UI<\. I,as instruwiones tercera j cuarta localizan el registro tleseado CLIENTE. La d t i m a iustrucci6n conetata la Fat-tura 510 al conjunto r u ) o t l n e h es el Clientc 431. Esto taml)ii.n cfecti~ala jo es el Cliente 42,;. supreii6u tle la Fat-tura 510 tlrl conjunto ( . ~ ~tluefio
Clasificaci6n de la asociaci6n de conjuntos La c l a w d e inbercion vn u n c o ~ ~ j u!~la~ ct oh e d e retenci6n e n u n conjunto son dos (*laics de asoc-1aci6nde ronlnntos. La insercGm de n n conjnnto se rcfiere a la manvra tbnqoe n n 1nienl1)ro consigne colocarse en uua ot*urrenria del cwnjnnto. 1Jna bez qne un regiitro mie~nl)rosc a+na a nn conjunto, Id ('lase tle retentihn tlel twnjnnto tlctt.rmina t4mo y cwhntlo nn rcyystro miem1)ro pnede snl)ri~uirsetle ese twnjnnto. Los 1no1105d e ~ n s e r c i htle un twnjnnto se definen p o r la instrnt*tihn INSERTION I S
dondc las opciones del motlo tle inserrihn son manual o a~~tomhtitw. El niodo manual (It. insercion reqniere tjnr el rrgihtro m i c d ) r o scbc d o q u e en el twnjnnto utilizantlo m a orden CONNECT para enlazarlo con la ocnrrencia deyeatla tlel twnjunto. La inserci6n manual se realiza mrtliante la instrncci0n CONNECT < t i p 0 de r e g i s t r o > TO < t i p 0 de c o n j u n t o >
Supongamos clue tenemos el fragn~entode sulwsqucma signientc:
Rlodo a n t o ~ u i t i c od e inserritn. En cl DBTG, v ~ ~ a n duno nnevo rrpistro miemhro se (area, el SGRD lo concctari ntornaticammte a la orurrenria drl conjunto
SET NAME I S CLIENTE-FACTURA. OWNER I S CLIENTE MEMBER I S FACTURA INSERTION I S MANUAL RETENTION I S OPTIONAL.
Un ejemplo de su uso se present6 en el Ejrmplo 6. El m o d 0 d e insercion automitico significa que cuando se crea un nuevo registro miemhrcr. el SGBD lo conectari auto~niticamentea la ocnrrencia corrrcta d r l conjunto. Esta t w u r x i h o c u r r i r i siempre que se ejecuten instruccioncs tiel tip0 siguientr:
EL MODEL0 DE DATOS EN RED STORE < t i p 0 de r e g i s t r o >
A1 IN 1 -\I,se r e e n Supougamos clue en el fragmc*ntotlrl s ~ ~ l w s q u e mprecwlcnte, a plaza por -Il1TOMATIC. RI ejemplo h c-amhiaria tle la manvra siguiente: MOVE 431 TO ID-CLIENTE I N C L I E N T E F I N D ANY C L I E N T E U S I N G I D - C L I E N T E MOVE 231 t o NUM-FACTURA I N FACTURA MOVE ' 7 1 7 1 9 0 ' TO FECHA I N FACTURA MOVE 1 0 0 . 0 0 TO CANTIDAD I N FACTURA STORE FACTURA
Las (10s primeras lincas twnvierter~a1 Clientc: 4.31 en el registro artnal ( 1 ~c1. t ) ~ ~ j u ~ l to C1,IENTE-FACTURA. Las trcx i n s t r ~ ~ c c i o n siguimtt.~ rs crean el n w \ o registro FACTUKA. La orden STORE insert& el registro en el c w n j ~ ~ n tdeseatlo o CLIENTE-FiiCTURA, ya q u r la conexicin para thste conjunto se M i n e wrno AUTOML4TIC. 1,as ol~cionesdc rrtent:iOn en un conjunto son: Fija, significa clue una vez clue un registro mieml~rose ha asignaclo a una o c w rrrncia de tin conjnnto, no purtle anularsc tle esa ocurrencia tIc1 co~ijuntoa menos que el rrgistro sc suprima rle la I)asr clc datos. 0l)li;ratoria. signifira c ~ u cuna vez cjue un registro mirml)ro se ha cdocxclo cn una owrrrncia tie un (.onjunto. siempre t i m e cIur rstar en alguna ocurrencia dv esr col~junto.No pnede tlrwonwtarse- o reronrrtarsr. a 1111 conjunto tle otro t i p . Optativa. signifira cjue no hay restricciones i ~ n p ~ w s t sa os l m las c o ~ ~ e ~ i o on e s las rcvwnexiones a 10s t i p s tle conjuntos. C n registro designatlo tlr esta manera no necwita estav conec:tado a algim conjunto cwalquic.ra. retrnci611 fija. I h 1.1 DRTG. una t ez cjne 1n1 regiftlo ~ n i e n ~ l )ie r oha asignado a una oc11rrt.nria cle un conjunto, no p u d e anularse de esa oc>urrenriadel cwnjnnto a int*nosque el re,'1r15tro se s n p i m a tlr la I)a-e cle tlatos. retenci6n obligatoria.
El modo de rctencicin en u n conjunto tan~hi;n rige, lo clue se permite c.uanc1o s r suprilne 1111 rrgistro clucfio tle un conjnnto. Si el modo de retenci6n es fijo. se l~orrai-& el c o n j m t o completo. Si el no do d r retencihn c:s obligatorio. entoncrs la operacihn de eliminacihn es ilegal, puesto que 10s registros mirmbros tienen q n r p r r t r n c w r a una ocurrenria del conjunto. Si el mode dtb retencihn es optativo, entonces el rrgistro se suprimiri y 10s registros mie~nhrosdel conjunto para 10s w a l e s es dueiio se descwnec.tarin y permanewr i n en la 1)ase d r datos sin asociacihn al conjnnto. Ejernplo 9: Estado d e la inserci6n p d e la retenci6n c n u n conjunto. Considerrnlos el e s q u m a dc la Figura 15.12. Se ilustra el uso d e la esprc:ificacibn d r l estado de la insercihn y d r la retenci6n en nil conjunto extendiendo la definicibn dr CLIENTE-FACTURA y FACTURai-ARTICULO. Supongamos clue qurremos especificar una insert-ion MANUAL y nna retenci6n OPTIONAAL.E n la Fignra 15.16 se lnnrstra el esqliema modificaclo.
En el UlWG, m a vrz un registro miemhro ha roloc*adorn una orurrrncia tle tin ronjnnto. siernpre tienc. c111reitar en alguna ocwrrenria dc rsr cwnjunto.
(IN(.
sc
rrtencion optativa. En 1x1DBTG no hay restrirrionrs impurstas sohre Ins ronrxiones o las reconexiont~spara 10s t i p s de conjnnttrs.
CLIENTE-FACTURA OWNER I S CLIENTE MEMBER I S FACTURA INSERTION I S MANUAL RETENTION I S OPTIONAL FACTURA-ARTICULO OWNER I S FACTURA MEMBER IS LINEA-DEARTICULO INSERTION I S MANUAL RETENTION I S OPTIONAL
DISENOY ADMINISTRACIONDE BASES DE DATOS
IDMS/R - UN SGBD del DBTG IDRISIR significa I i i t t y ~ i t r t Datiil)asr l Managemelit Sl;strm/Rclational. St. I m a en rl mode-
11) r n r r d DBTG y . 11nizLs. rs t.1 qne lia tcwitlo mhs ;xito dr 10s proclnt*tos I)asados tSnrste
Awn. En rl 11)111411~. una Z O I I ~ Itlr i~lnlac.c~t~ainir~~tc, clricb t.onticwt. uno ( I ttllis ti1)os (It, rt*gist~.os.
~ n o t l t h .La R s r inrluyi) 1)al-a intlit-ar In aditihn tlr ciertas c.arat*tt.ristit~asrr1arion:iles al IDMS. E n prinvipio. la intt~f'azrel;~tiorialrtwilta d r i n t t ~ b spara t.1 nsuario. La rstrurtnra 1)hsit.a tlt.1 IDMS cwrresl)ondr rsti-t~c~l~ainentt~ twn las t.sl~et.ifit.ac*ionrsr n rvdt.s drl I)BT(;. El IDMS ap1it.a los cont8rptosc'strut.tul-ales tlr rtyistro y d r twnjunto. cwmo s r drfipor uno swci;m tle dtwriprihn tlvl 11c.n poi- 1.1 DHTG. El rscjnmia tlel IDMS rsth c*ompl~esto t w p r m a (SCHEMA DKSCRIP'I'IOY). una s e t ~ i h ntlr dcscript.ibn dt, registros (RECORD DES(:l
Si s r r t y ~ i r r alghn r sul)cwiunto dl.
10,s
rlrmrntos tle 10s datos tlt.1 registro. i r d ~ m o -
ta por ELEMENTS ARE < e l e m e n t o d e 10s d a t o s 1> . . . < e l e m e n t o d e 10s d a t o s n > ,
tlondr 10s rlrnientos tlr 10s datos sr putvlrn permutar srghn las nrt.t:sidatles d r la al~licacihn. I,os conjuntos s r dt*finrn dr nianrra similar a la prtwrita por el 1)HTG. cwn algnnas difrrmcias i~nlmrtantrs.No rsth tlislwnil~lt.la retrnciih FIXED t w 1111 t*onjnnto. SOlo sc. lwindm las t~apat:idadestle rrtrnribn MAND-4TOKY y O P T l O N I L . Taml~ibnt*sisten cirrtas rrstrit*tionrsI ~ a j olas cua1t.s 10s rrgistros p~~rclcti inclnirst. r n el s ~ ~ l ~ r s t l l ~ eEln IUMSIK ia. ohliga a t p c . lusconjuntos quc pntlirran snpri~nirsc.borrando un rrbistro dnriio e s t h inthidos r n cuc~lqziiersnlwsc~uemaqur contmga rsr rebistro. Esto evita la propapacihn d r la orden ERIISE a 10s rrgistros clue no se iurlnj-rw en rl twnjunto definido r n tXstesnlwstInrma. Ello podria sutwiw si el rrgistro clnriio se borrara. ocasionando el lwrrado de 10s rvgistros mienihros y istos, a $11 vrz, fiwran 10s tlueiios dt: otro conjunto no inc:luitlo en rstt: csqnenla. E n grnvrall las t-strnrturas drl IUMS son firlcs a las recomendat.ionrs del informe d r l DBTG.
Evaluaei6n del CODASYL DBTG En esta serc.ihn se compara el motlelo COD-ASYL del DBTG twn rl tnodelo rt.laciona1 para evalnar comparativamente sus fortalezas y dcbilidacles.
Representacih de 10s datos Una diferencia importante entrr el modelo rtlacional y el mocklo en red rs la manera m que s r representan las interrelaciones. E n el mode10 relational, 10s enlaces entre dos relaciones s r establecen incluyendo un atributo con el mismo dominio de valores -frccuentenientr con el mismo nomhrr- en amhas relaciones. Las filas que rstAn lhgicamentr rela-
51 I
EL MODEL0 DE DATOS EN RED
c-iouadas tendrhn en c.acla rdacihn los mismos valorrs para esc atrihuto. En r1 ulotlelo rll rc:d DKTG. la c~ardinalicladIlno - murhos cntre d m t i p s cle rrgistros se esta1)lcc.r rnr(liautt: la definicihn csplirita drl tipo tlr c-onjunto. Entonws. el SGBU ront*cata10s rcyistrok en w d a t i p (I(: cwr~jnntomcxliante punteros fisicos. ~do en la inisEsto signifie;i tlucb10s registros sc t:onect;~nfisic*amcntec ~ ~ a i j)arti(il)an ma ocurrcncia d r u n cwnjuuto. Esta represent;~rihnc y l i c i t a de los til~osde (*onjuntost. ha considvrado c.omo una ventaja tlcl motlelo en r ~ 1 1711 . argumento a truer en rurnta cbscliw el n~odvlor n retl utiliza (10s w n c q ~ t o stle n~otlclado,el t i p tle registro y el tipo tle ( W I I ~ I I ~ I to. micwlr;~sclue el modelo relational lltiliza un h i c o conwpto. la r c l a c i h .
Lenguaje de manipulacicin de 10s datos Las ol~eracionestlc navegacihu y tle rwupt.raciOn del 1)ML DRTC sc e f e r t i ~ a nsohrr rcyistros simples. en cwntraste c20ulas ol)rrac.ionc.s tlel ~uoclelorelachual t p e se e f e c d ~ a rs ~o l ~ r e r c h i o n e s c*onlplctah. M a s oprrariones tlvl UBTG tlehen estar inmrrsas ell un leugnsj(~tle ., 1~rogramac:lonaufitri5n w m o vl COBOL. C o ~ n clas ~ oprrac.iouc.s ( I t ) rnanipulac-iOn orieutadas a los registros s r hasau earl las o1wrac.iont.s tratlicionales tlv prowsamiento tlr arcsl~i~-os. t.1 ~)rograrnadornewsita tbst;lrintiman~cmtefamiliarizatlo ron 10s intlicatlorc.~artilales y sus signifitwlos para e t i t a r crrores. Parweria que (11niodelo relacioual 11rwtlet e n w vcwtaja cualldo st. titwr en consitl(weiOn el DML. Ksto esth ~ ~ a r e i a l m e uc.onfiriuwdo tc por la adicibn a1 IDIMS tlr una interlaz (11, ~ i s u a r i orclac.io11al. ronvirtibndolo en I I)YSIR. Los Imguajes de 10s sisttwas re1acionalt.s posrt3u ht:rramient;~s(I(, alto nivt.1 1)ara nperar sohrc los conjuntos dv ~ l q ~ l a I,as s . iinl~l,'mentaciones c.omerc.ial(.stle estcls sistemas han incwrj~orattohrrramientas c*oml)lemrnt:t~.i:~s 1m-a el agr~cpamicnto.la ortltmaribn !. el c*ilruloaritmbtiro siml~lc.:hleniis. 10s DMLs rela(ionales pwtlen utilizarse tlirec.tamrnte o pucden estar iumersos c.n nn lenguaje a ~ l f i t r i i ~ i ~ .
Restricciones de integridad El motlrlo en red UHTG ~ ~ r o l ~ o ~ c un i o nt:oujunto a iltil clv restric.ciones tltl intcvp-idad. F:s partiri~larmentcfuerte en w a n t o a s11 c.aparitlatl para 11roteger la integritlatl tle 10s ronjuntos. Las c:ar;~c.trristic.asdc retenci01i cSn10s c.onji~ntospermiten a1 tliseiiatlor dcterminar (-61110se delwn romportar 10s registros dueiios ron resl~ertoa 10s registros miem1)ros. y viwversa. P o r t.jrmplo. las rrtenciones FIXED y MAUU.1TORY rccpieren q u r catla rrgistro tcmga un duc.iio. mientras clue la OPTIONAL no lo rrquiere. La capnc*idatlquc cxpwsa lina restric.c:ii,n scmhntira. tal cwmo la limitaeihn tlr Ias horas t r a l ~ a j a d a sa 60 o nienos para almarenarlas en nn registro d r empleado, solanientr pu:de inil~lmicntarseen el programa d r al~licac.ibn(pie opera s o l ~ r c w s registros.
El niodelo en rrtl DBTG es espccialmente eonvenicnte p a r a 10s sisten~asde hases tle datoi q w se carat-trrizan por: Tan~afiogrande. Cc~nsnltasr c p t i t i v a s 11irn definidas. Transaccionrs Ijien clefinicias. Aplicaciones hien definidas. Si totlos estos factores se presentan, entonces 10s usuarios y 10s disefiadores clel sistema de base de datos j)ueden centrar sus esfuerzos en asegurar que las aplicariones se programen de la manera m i s eficiente. El lado negativo es que las aplicaciones futuras no antieipadas l ~ u e d e nno m a r r h a r h e n , e inclnso pueden requerir una reorganizacih~del sistema de hase cle datos con un alto grado de dificultad.
DISENOY ADMINISTRACION DE BASES DE DATOS
En estv t~apituloscbh a n l m w u t a t l o los funda~nrntosdcl rnodelo tlv clatos eu r ~ t 1)KrI'G. l Este modelo tirnv nn historial r i w !~ es la hasc para w r i o s SGBDs t~sitosos.S c putlo o l ~ s r r var tlue un r e t i c d o lorma nna e a t r ~ w t u r ad e grafo, q n r es la m a n r r a natural cle represl.11t a r las intc-rrelacionvs entrr 10s tlatos. S r j h n t c 0 la historia tle las rt:con~mtlaci)nrsdel DH'I'G 11ara la norrnas en rrdv.; y se utilizaron esas rrc*oiricndaric)nescwmo I)ase para rl rest ~ del , cxpitnlo. 1)isicas: el t i p Sc- encontri~clue el moclelo dc datob en red utiliza (11)s(*oi~str~~('(:iolies dr registro y el til)o d e (.onjunto. Los registros se drfincw t:orno rolwc:iones d r 10s rlrmentos d e 10s tlatos 1Ogic.amrnte rc*lationados. 1,os twnjmtos sc definen nicdiante rek+tros t l l w l i o b y 1nirin1)ros~ I I tiwen P un t d a w Ihgieo. Un diagrania dr la estrurtura cle datos para el modrlo ti(: clatos en rt:d tsonsiste en rajas. que rq)rt:srntan 10s t i p s 1.rgistt.o~.j- arcos. clue e s t a l ~ l e t wlas ~ interrrlac*iorws cantre los t i p s tle rcgistros. Estas intrrrt&~c:ionesnonlh a d a s forman los t i p s tlr c o ~ ~ j u n t o s . ~ n o s t r hla Inanera en clue los modrlos d e datos conc.eptua1t.s se transforn~anen las estrut~tui~as d e datos en rtvles y sc proporcionaron las reglas para guiar cstv prowso. Sc prc-sentaron los tnbtodos tle t r a n s f o r m a c i b ~(It. ~ interrelacionrb uno-nno, nno-n~nchoby m ~ ~ c h o s - r n n t ~ lTanhibn ~os. sc: mostr;) c:hmo cwnwrtir intrrrrlaciones warias a nn conjunto c.quivalentc. de interrr1ac:iont:s I~inariascreando uri registro en1ac.e. Entoncrs s r preseutaron los lengnajes DBTG. El DDL DHTC proporciona I I I ~medio para (:rear y clrrinir la I ~ a s etlv datos. Los conwptos utilizados par;] tldinir la 1)asc. d e datos incluyeron el esqurma, qne tlef'ine la rstructure lhgica tlrl retic111or n t6rininos tlr sus t i p s de rt.gistros y de sus t i l ~ o sd r conjnntos. llna vtbz clue se tlcfiue el c w p m a , se tlrlinc:u las vistas rsternas dv esa e.struc*tlua seghu las necc~sidatlestlc los ~ ~ s u a r i o4 slas aplic*at.ionrs de la base tlr clatos ntiliz;lntlo n n s u l ~ c w p m a p a r avada nna de las vistas. El s u l ) e s q ~ ~ e mlwrmite a la s r l e c ~ i h nd e aquellos datos del esqntma quc: imiratnente se nvcwitan. Los elemrntos de los datos purtlen rtbnomlwarse o rrordenarsc: para ajnstarlos a las nrt.t:sidadrs de la aplivacihn. Despnbs sr discntih el D3lL DBTG y se dicron varios rje~nplos.Se tlestach q u e el DML DBTG s r orienta a rcgistros sin~plesy que proport-iona divvrsas hrrramirntas para asegurar la integridatl de la hasr (I(: datos. Las hrdenes DML l,ueckn clasificww en hrdrnrs dc n a v e g a c i h , 6rdent.s tle rrc11prraci6n y hrdenrs de ar:tualizaciAn. Las hrdenes de act1ializac~i6nscbutilizan tanto para actnalizar los rcgistros romo para actualizar las o r w rrentias d r los ronjuntos. S r rslwz0 l)revemente la implemrutat~iirncomercial drl modelo d r clatos en red DBTG mhs ampliamcnte utilizatla. IDMSIII. Annqur la R indica qur sc h a n afiatlitlo algw nas tie las caracteristicas de la interfaz tlr usuario relarional, IDMSIR sigue hisicamente las rec.on~c~ndacio~ies rle disrfic~d r l DBTG. Poste1,iormente se 11rt:senth una evaluavihn rrsumida del motlelo DBTG. Generalmerite stbacepta qnc para transat.ci~nt:s1)redct1~1-minatlas s o l m la 1)ase de datos, los programas p~ledendrsarrollarse tie modo que el motlrlo en red sea mny eficirntr. Sus deswntajas parecrn w n t r a r s e c:n peas facilidadcs para adaptarsr a requisites varial)les y a consultas r ~ r hoc. l S c b
1. Delina con sus propias pa1al)ras rada uno tlv 10s tbrminos siguientt.~: a.
CODASYL
b. DBTG c.
IDS
d. modelo de tlatos en r t d
EL MODEL0 DE DATOS EN RED
DML registro lbgico enlare fisico DDL tlivisi6n tle titulo divisihn tle c~orresl~ondencia divisi611 (11. c.structllra o~.urrentiatle rrgistro s e c ~ i 6 n(I(. repistros tld sul~c~sqneiua ocurrencia de 1111c*onjnnto t i p tle registro tlueiio tilw tle rrgistro mienil)ro srt:c.icin de ronjuntos dvl sul)twluema Area dl, t r a l ~ j otlcl usuario indivatlor actual 1)andcra dc estado hrdrnes (11. ret*uperacihn brtlr~irstlc navc*gacihu
2. Defina I~rr\enit.nte(pi. funcicin ejetwta catla m a de las Ortlenrs iiguientes tlrl DMI, IIBTG: a. F'IND 1 . GET r . STORE tl. KR1SE
3. Exl~liqucI)re\cmentc la arqoitertura dr tres ni\clc,i tlel modelo en red DBTG. Centw su atenrihn en las funcioncs de cada uno de 10s tres de nilelei ? r h o se relacionan llllos roll otros.
4. ;,De c p i rnotio difirre la definicicin dc conjunto tlel DBTG tlv la definicicin rnaterniticsa clr vonjnnto conio una rolet*vi6nde ol)jetos?
5. Muestre ccimo el nso de un registro rn1ac.r perniitr transformar un reticdo com1)lejo en u n retitwlo simple. ~ ~ t i l i z a i ~ttul oejernplo. ~
6. ;,()uC sucederia si m a intrrrelaci6n TI-aria(11 > 1)no fuera transformatla en intvrrelaviones binaria5 equivalentt~en la ehtrurtura dv datoi en red? m
A . Compare las maneras en q n r (4 mocklo tlr tlatos relavional y el moclelo DBTG r e p sentan ]as interrelariones.
8. iC6mo tiifiereri 10s lenguajes de ruanipulacihn de daters relavionalrh del DML DBTGY 9. Suponga que s11 jefe le pidici que explicara las vrntajas y las deswntajas relativas a 10s sisternas de h s e s (le datos relacionales versus el modelo en red. ~ Q u Ctliria?
1. Haga corresponcler los tkrmincrs siguientes con sus definiciones: --esquerna a. Un nombre dado a la interrelacicin entre u n t i p de registro duefio y u n tipo de registro miemhro.
DISENOY ADMINISTRACION DE BASES DE DATOS
2. F : \ p t n p las ~xbglastlt. caste* ral1it111oc j ~ l tst'~ utilizarian 1w.a transi;~r.~nar t.1 ~ n o t l ~ ~~Wl o III T ~ ) ~ I I ; Itlt. ~ la Figura 15.1 E 1.n I,[ vitrut-tura cle tlatoi tlt.1 DH'I'i;. Mnt'strt' la estruvtura (It,
tlatc~s~ ~ c ~ s u l t a n t t ~ .
* CLIENTE
CUENTA
EL MODEL0 DE DATOS EN RED
VENDEDOR I HECHO-POR
(DESCRIPCION)
NL'MERO
\ PRODUCT0
)
* *
INCLUYE
*
IMPUESTO ORDEN TOTAL FECHA
5. 4 p r t i r (1~1esquelna en ('1 1'rol)lema 4. w e e un s u h q u r m a para una aplicacihu en 13 que sdamente sc. \en11 los t i p tlr rc.gistros \ ENDEDOII y OKDEN.
6. 1 p r t i r ti(. la estrurtura de tiatos DHTG 1.reat1a en rl Proldema 4, eswiba las instrut,tiones clel DML para rc.alizar lo siguicnte: a. Kecuperar rl registro tlrl Vendedor 13. 1 . Recuperar todas lab 6rdenes con total igiial a 100.00$. c. Elirninar la orticw #2%. (1. Camhiar la (lire(-cibndel Vrndedor 13 a '912 Itlams Street, C;ainesville. FL'. e. Afiatlir el V ( d e d o r 15 a la base de ddtos. El nombrr tlel \cndrtlor 13 es 'Mike Otteson' y su dirrccihn es -Bustc.i- Building, Suite 95, Toronto. Canadi'. f. Afiadir la Factura #%85a la hast, rle datos; co~lertarlaal Vendedor 15. g. Eliminar la Factura #842 tle la h s e de datos.
1. Investigw la literatura sohre las bases tle tlatos con vistas a encontrar discusionrs solwe 10s d i v e r s ~ smodelos de hases de datos. E n base a sns hallazgos, desarrolle un informr para ayudar a Rita Minkowski a tomar una resoluci6n aeerca del debate qne ella escnchh en la reuni6n de la ACM.
2. Encuentre ciescripciones miis detalladas del1DMSIR. 2,QuC.caracteristicas relacionales se ha11 aiiadido? iPuetie concluir que estas caracteristicas superan cualesquiera de las ventajas que puedan habersr prodarnado para 10s sistemas de hases tle datos rrlacionales? Explique sn respuesta.
3. 1QuS sugerencias haria si se le encargara el desarrollo de rrcomentlaciones para el perfeccionarniento tlel motlelo en rtd DBTG? Sea especifico.
4. i,Puede prrfeccGnar el nidtodo para transformar iin modelo de datos conceptual en una rstructura de datos DBTGY iCuiiles serian sus propuestas y en cjuk m d i d a mejorarian el mttodo de transformaci6n?
EL MODEL0 DE DATOS
lntroduccion Conceptos basicos y definiciones Las interrelaciones del modelo jerarquico para la semantica del modelado conceptual Transformando interrelaciones uno-muchos Regla I Regla 2 Transformar interrelaciones muchos-muchos Regla 3 Regla 4 La arquitectura del sistema de gestion de informacion de IBM (IMS) Definir la base de datos fisica, la DBD Definir la base de datos Iogica, el BEP Metodos de acceso del IMS HSAM HlSAM HDAM HlDAM El lenguaje de manipulacion de datos del IMS El area de trabajo del programa DL/ I : Una panoramica GET UNIQUE (GU) Ejemplo I: Una simple recuperacion de un segmento Ejemplo 2: Recuperacion de un segmento dependiente Ejemplo 3: Recuperacion del segmento
'
dependiente cuando no se conoce la ocurrencia del padre GET NEXT (GN) Ejemplo 4: Recuperacion de un conjunto de segmentos Ejemplo 5: Recuperar todos 10s segmentos de un tip0 particular GET NEXT WITHIN PARENT (GNP) Ejemplo 6: Recuperar segmentos para un solo padre Ejemplo 7: Recuperar segmentos para un solo padre GET H O L D REPLACE (REPL) Ejemplo 8: modificando valores de campos de segmentos DELETE (DLET) Ejemplo 9: Borrar un segmento INSERT (INSRT) Ejemplo 10: AAadir un segmento La evaluacion del modelo de datos jerarquico La representacion de 10s datos El lenguaje de manipulacion de datos Resumen Preguntas de repaso Problemas y ejercicios Proyectos y cuestiones profesionales
EL MODEL0 DE DATOS JERARQUICO
5 17
William (Rill) Orange. ~1,jqfc. cle l a s e t ~ i h nlocal tle lu As.sociatior~forCornputircg Machinery ( A C W ) . estaba hablnrrdo p o r telhforco con Rita Virth-owski. "Kito, nuestra tliscui ~ e recibiclu, p o r lo cpzcJ sirin en It1 liltirna rcwnicin dc~10s sistc~musd e b a w de d a t ~ ~ s f hien hemos decidido dedicar las prcixinras tres rcwrriones (11 urrcilisis d e 10s rnodelos j f ~ r i l r q u co, en rcvl y relacional. kPiensas q w podrius discutir el motldo jerrirquico r n lu prhxima reunicin?" "haturolrnente, Bill. iQuC te gustrcria clue preserctarn?" "La jilosojici clel m o d d o y alg~rrtosde 10s aspectos ir~cispeiw-ales ile lu irr~plern~rctcc~ Quizris podrius indicar c~lgunasd e las rnsones qucJ puederl st~lecciocicirr de base r l datos. norlo p o r c~rccinlccdr 10s rnodelos err cornpetenciu. Creo que has tenido una experierzci(1 conrplt~tmcon PI .sisternc~d e bose tle datos l l l S de lRlM ?* eso solarrrentt~deberitr busturte p a r a describir r l rnotlelo jerrirtlrcico." "Hu(wI, he i ~ l w r t i d oinucho tiernpo con el IWIS y .sericc clpracloble reprtwrctar ese punto d e cistrc PIL In prcixirnu reunihn. Grucias p o r tu inuituci6rc."
E IMS ( I KkI's Information Management Sy btem), SGBU hasatlo rn el rnotlelo tle datos jerirquieo. TDMS (Systcni Debelopmrnt (hporation's 'limeShared Data Managenlent System), SGBD hasado en el inotlelo ile datos jerirquico.
MARK IV (Control Data Corporation's Multi-Access Retrieval System), SGBU basatlo cn el modclo de datob jerirquico. System-2000 (del SAS Institute), SGBU l~asadoen el n~odelodc datos jrrirquiro.
n tastecapitulo .sr prrLwntanlos fundainentos tlrl modelo d r datos jerirquico. Deip116i tle l r r r vste capitulo, tleberia w r capaz tle:
Drscribir la e s t r w t u r a de clatos hisica drscle la cual se construye el nlotlelo tlr datos jrrhrqnico. Explic.ar la terminologia tisada en la descripcibn tlrl modelo de datos jrrirquico. Usar 10s mGtodos funtlainentalrs dr transformacibn de un rnodelo d r datos conceptiial a un nlotlrlo de datos jerirquico. Drsrribir la trrminologia !la rstructura d r la imp1emrntac:ibn de M S . Explicar c6mo el lrnguajr de descripi6n de datos tlr IMS se usa p a r a implen~rnt a r estructuras t k datos jerirquicos. Discutir c6mo opera r l lrnguaje de ~nanipulacihnde datos d r IMS para la rrcuperaci6n y la actualizaci6n tie datos. Discutir las vrntajas p las desventajas pricticas tkl modelo jrrircpico.
A diferencia del modelo tle datos relacional, q u e se fundamenta firmemente e n las matemiticas, p d r l modelo cle datos en red, que s r desarroll6 a partir de u n esfuerzo p a r a rstahlecer rstindares drtallados, el modelo de datos j r r i r q u i c o se ha drsarrollado a partir de la prictica. No existrn tlocumrntos originalcs que definan el modelo jrriirquico, como 10s hay p a r a 10s otros dos 1nodt.10~.D r l ~ i d oa que el niodelo jerirquico no t i m e u n rstindar. su estudio rt:quierr el examrn de 10s SGBDs usados en la prictica. Afortunadamente p a r a el rstudiantr, las implemrntacionrs debases d r datos jerirquicas e s t i n dominaclas p o r un sistema, IMS (Sistrma de Grstibn d e informaci6n de IBM). De hecho, IMS es actualmente el SGBD q u r grneralmente rnis s r usa. Las exposiciones en el modelo jerirquico invariablemente incorporan el vocahulario y las conwnciones de IMS. Nosotros haremos lo misn~o. Sin embargo, se usan otros sistemas jerirquicos, incluprndo el TDMS (System Devrlolrment Corporation's Time-shared Data Management Spstem), el MARK IV (Control Data Corporation's Multi-Access Retrieval Systrm) p el S y s t e m - 2 0 0 0 (SA4SInstitute).
DISENOY ADMINISTRACION DE BASES DE DATOS
,,acl,.r. ~1 ,,llllto (1,. la c.t,l;l la flrt.~lat.n c3structura tlr tlatos jrriircl uira. I~ijo.1'1 pullto tlr la c a h z a d r la flcrlia en
i r l d L-na rstructura tlr tlatos jrrirquica. rso es. m a rstructura cn red tlondr un t i p d r srgniwto hijo r s rdazaclo a shlo ~ I tipo I tlr s r p r u t o paclrr. modelo de datos jel&-quico. Un motlrlo dc tlato m el vual todas lab i11tt.rrr1acionc.s son rslructnradas conlo lirl~oles. tip" d e sepnrnto. Corrrsponde a nn ohjctc~r n el ~nodclocle dato orientado a ol)jetoi. taml~ilnllainatlo un srpnento. tipo d e intrrrelacion padre-hijo (tipo IPH).Interrelacibn lbgica entre un tipo d r srgmcnto padre y u n tilw de segmento hijo.
:Imhos SGBDs? jrrirquico y en red, fileron tlrsarrollatlos a principios d r 1960. El IMS s r rlrsarrollh (:on 1111 rsfurrzo conjiinto entrc IBM 1 North dmcrican Aviation (mis tar& conrrrticla en liockwrll) p a r a drsarrollar un SGHD c-omo soporte al proyrrto lnnnr dpolo -nno d c 10s niayorrs l~royectostlr ingcnirria acomrtitlos cii rsr tiempo-. 1Jn fat*tor c l a w en el drsarrollo tlc IMS f u r la nccrsiclatl tlr n ~ a n i p n l a rrriillonrs (lc piczas que se rrlac.ional)an nnas taon otras tlr una nianera j r r i r t p i c a . Ksto sig11ific.a cjue pirzas mis 1)t~quriiasse usa1)an para cmstrriir montajrs mlis grandrs, q u r a su vcz s r convrrtian cm 10s c~ompoiirntrstit. rn6tlulos mlis grantlrs. y asi sncrsivamrntv. I n n q i i r 1'1 bistrma rt.lacit~nal, DB2, c s t i s u p r a n d o twn r a l ~ i d r za IMS en tirminos d r nilnirro d r instalacaionrs, para grandrs sistcmas d r t r a n s a t ~ i o n e sdirigidas clue i w p i t : r r n resput:stas r i p i d a s , IMS continiia s i m d o un sistcma cwmpetitivo. Una razhn ctrml)lt.mrntaria IInra la dura1)ilitlad d r IMS t.s q u e muchas t:strnt~tnrasdr datos so11 i n l i r ~ . r ~ ~ t e m c njrrirtlnicas. te P o r rjt~inplo,una t.oinl,aliia pueclr cwnttmrr t k p a r tanientos ( p i n i e r iiivrl), 10s departan~cntos t i r n r n cmplrados (srguntlo nivel) ! 10s cnipleados ticnrn ofirios ( t c r c r r 11i1c.l). :Iunqur rsta estrurtura (It. datos podria i n 1)lrnirntarsc en rl inoclch en r e d , qn(. es el n ~ o t l d onnis rohnsto en cwanto a c a p a c A d tlr rrprrsc.ntacihn. 1 ) n t ~ lof'rrrrr t~ uiia c*onil)lrjidacld e sistrma mayor q u r la nrcwaria. D r hwlio. uua razhn poi- la qut- 10s q u r drsarrollaron IMS no acloptaron el cmfocpe 1I)S 11wdo ell Grucral Elrt-trir ( v r r Capitulo 9 ) f n r clue r r t p r ~ . i amlis cspatio tlr disco q i ~ ]MS. r
Conceptos ba'sicos y definiciones E n cl nivel c*oncqtual, r l moclrlo tlr tlatos jrrirquico cbssimplrmrntr u n raso esprrial drl n ~ o ( M odr datos r n red. Con10 se drsc:rihiO r n rl capitulo anterior, una r(:d rs un grafo tlirigido construitlo d e puntos t w ~ e v t a d o spor flrchas. Aplicando estr c:onc:epttr a los moilrlos tle datos, 10s puntos son t i p s d r rrgistros de datos y las flrchas representan interrrlaciones d r nno-uno o intrrrrlat.ionrs clr nno-muchos. Una flrcha en iina red tirnr un punto a1 final. El p1111to en la cola tle la flccha r n la trrminologia tlel modelo jrrirtluico s r llama padre. y el punto r n la cahrza de la flrcha se llama hijo. La d i k r r n c i a principal entrr 10s modelos en rc:d y jrrirquic*o es q n r el modrlo r n red pcrmitr a im til)o tlc rrgistro hijo t r n r r m i s d e un t i p d e registro padre. mirntras que rl motlclo jerirqi1it.o no. El tipo tlr rstruc:tnra r n rrtl prrmitida 11or rl motlrlo jerirquiro st. llaina i r b o l . Las interrelac-iones en el modelo cle datos j e r i r q u i c o sr organizan como c:olrccionrs tlr &rI)olesinis hirn quchtwmo grafos arhitrarios. Ai~nqiir~1vocabulario drl modrlo jrrirquico varia un tanto r n rrlacibn con el modrlo r n r t d , hay muc:hns sirnilituclcs de artpitectura natnral. Igual q u r con el motlrlo en red, hap tlos concrptos hisicos asociados con la rstrnctnra ti(. tlatos jerirqnic*a: tipos de segmentos o siml~lrmentesrgmentos y t i p m d e interrelaciones padre-hijo (tipos I P H ) . Los srgmentos s r usan anilogamcnte a1 t i p clr registro m red. I!n t i p I P H rs similar a un t i p cle conjunto r11 red, excrpto clue un t i p de segmento s0lo puedr participar como u n hijo r n nn tipo I P H . Como ejemplo, considirrsr la Figura 10.1. La Figura l(,.l(a) iiiuestra u n motlclo d e datos conceptual, definiendo interrrlaciones uiio-m~lchosentre DEE4RT.lMENTO y EMPLE-lDO, y r n t r r PLAN DE J U B I L l C I O N y EMPLE-lDO. Cada conjuntos tlr ohjetos DEP-iRTAMENT0, EMPLEAADOy PL.1N D E JUHIL.-ICI~)N tirne sus propios atrihutos, aunque p a r a el ejemplo considerado s r omiten 10s nomhrcs ile 10s atributos. Adrmis. la cardinalidad d r las interrrlaciones indica q u c cada drpartaniento tiene muchos cmpleados, micntras clue (:atla rniplratlo s r asigna a s6lo u n departamento. ridemis cada empleado t i m e sblo u n plan tle juhilaciim, pero u11 plan cle j~ihilacicindado se hrinda p a r a m ~ ~ c h empleados. os La representaci6n cle estos conjuntos de o1)jetos y las interrelaciones en el modelo en rrtl y en el modrlo jerirquico s r ~ n n e s t r a nen la Figura 16.l(h) y 16.l(c).
(a) Un modelo conceptual
PLAN DE JUBllAClON
DEPARTAMENTO
CONJUNTO DEPARTAMENTO1 EMPLEADO
CONJUNTO P~AN DEJUBIIACION/ EMPLEADO
EMPLEADO
(b) Un modelo de datos en red
PLAN DE JUBllAClON IPH DEPARTAMENTOI EMPLEADO
m EMPLEADO
IPH PIAN DEJUBILACIONI EMPLEADO
EMPLEADO
(c) Un modelo de datos jerirquico
La Figura IO.l(h) ilnstra una estructura dr datos doudr (rn la terminologia rn rrd) el tipo de registro EMPLEADO rs iin miembro de1 conjiinto DEPAKTAMENTOI EMPLEADO, asi como tambiin lo es del conjiinto PLAN DE JUBIL4CIONlEMPLE IDO. Mirntras esta estructura d~ datos piiede implementarse dirertamentc, en el modelo
DISENOY ADMINISTRACION DE BASES DE DATOS
en red. no 1)ut~lt.iinl)lenientarse dirertamtwte en el modelo jer&rquicw. l'ara ser iniplrnientado en el inotlelo jerlirtluiw. t l e h ~iiodilit.arsetal como se muestra t b i i la Figura 16.1((.). h o t e clue en la Figura l6.1((.)10s twnjnntos DE:l"ZlZ'I' ZV EUTOIEMPLE I D 0 ! P I A h DK JIJHII,ZCIONIKM P I X $110 se han transformados a 511s aiiii1:)gos jt.r&rtluiros: 10s til~osI P H D~l'AIZTAME:NrI'OIEMI'I,E:Al)O y PI, ZN DE JUHII, ZCIONIEMPLEADO. Ademis. el segnlento EMl'LEA1)O se ha mostrado dos veces. dehido a qne en r1 inotlelo j e r l i ~ y i t wu n segniento no 1)uede p a r t i c i p r como un hijo en m i s tle 1111 t i p I P H . El svg~neiitoKMl'LEA1)O puede realnlente p a r t i t i p a r s61o en m a d e estos IPEIs. Conlo se explicari nilis adelante. E:MPI,E.\I)O en otra 11'H wnsistira de punteros a1 st.gmento EMPLE 1DO original. La razhn para la t r a n s f o r m a t i h (It. la Figura 16.1((.)t.5 quv ('1 n i o d t h jerirquico usa el &rl)olromo sn estrut*tnrafundamental. L na estrnctura de datos en &rl)olse cornpour d r nna jt.rarcpia de segmentos de atwerdo con los siguit.ntt.5 ronvrnios:
1. IIay tin segmento siniplt., llamatlo raiz, en el nivel superior. El srgiiicnto raiz no partitipa romo segniento hijo en ningun t i p 11'H.
2. Con ext.eptGm tlel segiiiento raiz. todo segmento partitipa wino uii st~gmrnto hijo en exactametite un t i p 11'H.
3. lTn wgmento pnede p a r t i c i p r conlo u n segmento padre en nilis tle u n t i p IPH (por ejemplo. E:MPIAE:41)0en la Figura 16.2).
4. l l n a owrrencia tle nn seprnento padre p e d e tener cualquier n i ~ i n c ~tlro ot.11t m c r shlo 1111 r r t w i a s dr sepnento hijo (hijos). p r o catla segniento hijo 1)uc.d~ seginrnto 1)adrc. Esto rsta1)ltw una rcstricri0n uno-iinlt.hos en la interrelacihn entre 10s seguientos padre e hijo en nn l i r l d . 5 . Un sc.giiic~utoque no tiene hijos sc denoinina un segmento hoja. 6. P a r a cualtpier tipo de segmeuto A. existe n n (.amino simple en el Lrl)ol tlesde la r a i l hasta A. Los registros a lo largo tle ese ramino se llaman ancestros d r A. 4 cs u n seginento dependiente d e todos 10s segmentos de ese raniino. inrluyentlo la raiz. 7. Un segmento A puetle ser la raiz d r o n snl)irl)ol.
DEPARTAMENTO
JEFE
NOMBRE-DPTO
t i p d e begn~ento tlependiente. Totlo5 los t i l ~ o s d ere,'~ristrosmenos cl tipo dr seginento raiz.
EMPLEADO NOMBRE-EMP
OFlClO COD-OFICIO
7,
ANOS-SERV
ASIGNADO A OFICIO-NOMBRE
PROY-NOMBRE
DIVISION
EL MODEL0 DE DATOS JERARQUICO
i r t d d e la base tlr tlatos. Iln i r l d t p tirrir una raiz. regibtro d c la hahe tlr datos. lJna ocurrcntia tlr rlna raiz y totloi sus t i p . dr scgmtmtos dcpcndientez.
segmrutos grn~elos. Ocurrrntias de t i p de sepirntos qnr tienrn la m i m a ocui-rencia tlr ti])" t k segrnento padre ( m i s d r dos tw~rrericias c k irgrncnto. I)uetlen califiearse romo geniclai). Brbol tle orurrenria jerirquico. R ~ ~ r e s e n t a c i btlen segmerrtos d r orurrencias en m a rstrnctnra d r Brlrol yur rrflqja toclos 10s tipos IPIi. recorrido pre-orden. Un mitodo de r o n v r r A h de una estructura de irhol a un arrhivo plano que contiene la informacibn necesaria s o l m las interrelacionr5 jerirquicas.
52 I
La Figura 16.2 c-s un rjrmplo d e un i r l d clr trcs nivelrs, en estc caso rrprrsentando 10s t i p s dv srgmrntos DEPARTAMENTO, EMPLEADO, OFICIO y ASIGN4I)O A y sus interrrlacionrs. Un rsqucma de hasr d r datos jrrirquic*ov s una colecxi6n tle ir1)oles rnraizados tlr estc tipo. Cada tal i r b o l s r drnomina i r h o l d e la base d c datos. El i r l d tle la Figura 16.2 t i m e DE:I'.4RTA4MENrr0 t ~ ~ m su osegmrnto raiz y tienr (10s t i p de s u l ) i r l d . cnraizados en cl segmento EMPLEdDO. Uno d r rstos tipos d r s u l ~ i r l ) o va l desde EMPLEADO hastn OFICIO y el otro tlesclr EMP1,EADO hasta AASIGNAiDO El srgmento EMPLEADO ticnc dos tipos dc s u b i r l ~ o l ,rnraizatlos r n 10s t i p d r srgmrntu OFICIO ) ASIGNADO A. Estos ilos ultin~ostipos d r su1)irl)oles son, en csencia. tri\ialrs. c l c l d o a q u r consisten simplrmcnte d r OFICIO s6lo y d r -4SIGNADO A s d o . Una ocurrrncia d r una raiz y todos sus srgmrntos drprnclirntes se denomina un registro d e la base d e datos. Un rrgistro tle la hasc de datos para el modelo clr la Figura 16.2 cwnsiste en una ocurrrncia de un srgmmto DEPARTAMENTO. junto con todos sus segmrntos asociados OFICIO y ASIGNADO ,4. Ohsrrvr y u r DEPARTAMENTO r s el tipo tlr srgmento p a d r e d r l t i p I P H DEPARTAMENTO-EMI'LEADO. l'oclos 10s tipos tlr srgmcntos q u r qur(1an (esto es. EMPLEADO. OFICIO y ISIGN:iI)O -1) son tipos d r srgmrntcrs deper~dientes.EMPLEADO es un t i p tlcb segmento hijo d r l t i p I P H DEPARTAMENTO-EMPLEA4D0. .idemis EMPLEADO funriona tanto como un t i p d r s r p e n t o p a d r e d r l t i p I P H EMPLEADOOFICIO como u n srgmrnto 11adredel t i p I P H EMPLEADO-A4SIGN4D0A. Tal como en el inodrlo r n r e d , la cahrza dc la flrcha intlica el lado "mucho" de la intrrl-rlaritjn unomuchos. La Figura 16.2 tambikn nos da una oportunidad para comparar el modelo de datos jrrirquico con rl mtrdelo d r datos relacional. Las interrrlaciones q u r en el moclelo relacional estarian reprrsrntadas por (:laves rxternas sr rrpresentan en el modelo jrrirquic:o por enlaces padre-hijo. P o r ejemplo, el enlace entre DEPARTAMENTO y EMPLEAADOpotlria rralizarsr en el modelo relacional poniendo el atrihuto DPTO-NAME en el rrgistro EMPLEADO. En el modrlo d r datos jrrirquico d r la Figura 16.2, rsta interrdacibn sr rrpresenta por el enlace DEPARTAMENTO-EMPLEADO, el cual se implrmenta en las bases d r datos jerirquicas, poniendo iina d i r e c c i h a disco fisica ( o puntero) en el srgmrnto DEPARTAMENTO. Volvamos a una c o n s i d w a c i h de ocurrencias d r i r l d e s d e bases clr clatos. La Figura 16.3 exponr una muestra d r una ocurrrncia d e segmrnto para r l niodrlo d r la Figur a 16.2. P a r a catla ocurrencia drl i r b o l de la base d r datos, rxistr por tlefiniciih rxartamente m a ocurrencia d r DEPARTAMENTO. Eso significa que cada tlrpartamento s e r i la raiz clr una ocurrmcia distinta d r i r h o l d r base clr datos. En estr rjrmplo. el tlepartamcnto de Mercadotrcnia esth r n un segmento raiz que t i m e dos srgmentos de emplraclos. Cada srgniento tle empleado poser uncr o m i s segmrntos OFlCIO y uno o m i s srgmentos A 4 S I G NADO L4.Esta ocurrencia del i r b o l dr la hase d r clatos incluye rntonces tanto el segmrnto DEPARTAMENTO 1)at-aMercadotrrnia ccrmo todos sus segmentob EMPLEADO, OFlCIO y ASIGNADO A asociaclos. Se usa la Figura 16.3 para afiadir una nurva definici6n a nuestro voca1)ulario. Las orurrencias tIrl mismo tipo tle srgmmto que tienrn el mismo padre se denominan gerrlelas (twins). P a r a el segmento drl Departamento d e Mercadotrcnia, 10s empleados Bond y Hill son ocurrencias d e segrnentoa gemelos (aunqur 10s segmentos grmrlos no e s t i n limitados s6lo a dos). El ar1)ol mostrado en la Figura 16.3 se llama tamhidn i r b o I d e ocurreneia jerirquico. Los irholes de ocurrencias jeriryuicos puedcn almacrnarse usando el ~lrdtodod e recorrido e n pre-orden de creavihn d r un archivo. Dm~ostraremosel mktotlo en el i r h o l un poco m i s complejo d r la Figura 16.4. El procedimiento es como sigue:
1. Comenzar en la raiz del i r h o l y registrar el segmento raiz en el archivtr (el srgmento A en la Figura 16.4).
5 22
DISENOY ADMINISTRACION
DE BASES DE DATOS
DEPARTAMENTO NOMBRE~DPTO
JEFE
Venta
EMPLEADO
Manuel
1-
Ingenieria
\
2. Kn t*nalqnirr pnnto, t1rspni.s tlel registro de nn srgmento, riiarrar t:l segniento hijo nias a la iztpiertla d r l srgmento rcgistrado. Si el seginrnto no t i m e segmrntos hijos. niovrrsr h x i a at& d r l lirhol un nivrl y marcar t:l segmrnto hijo no rt+straclo mas a la izquirrda tlrl srgmento en rse nivrl. Continliar hasta q n r todos 10s segmrntos r s t h twntabilizados. Estr procrtliniiento grnrraria el siguicnte archivo:
El indicador tipo-segmrnto (D para DEPARTAMENTO, E para EMPLEADO) es necesario para la imp1ementat:iOn porque el numero tle posibles segmentos hijos en cads IPH varia. Debicio a que en el archivo st: escribe secrient:ialmente, el sistenia necesita w n o t:rr cnando termina n n grupo de srginrntos tle un tipo y cuintlo comienza un grupo d e un nuevo tipo. La Figura 16.4 muestra u n i r h o l halanceado (ver Capitulo 10) en donde cada camino tlel segmento raiz a1 segmento hoja t i m e la misma longitud ( 2 ) . Estcr es una coincidencia
523 INDICADOR TIPO-SEGMENT0 --..+ NlVEL I
TlPO DE SEGMENTO DEPARTAMENTO:
TlPO DE SEGMENTO EMPLEADO:
NlVEL 2
TlPOS DE SEGMENTOS OFlClO Y ASIGNADO A:
s
NlVEL 3
con nuestro rjrmplo y no es un requisito. La Figura 16.5 es un ejemplo de 1111 i r b o l no balanceado. El (:amino del segmento G es de longitud 2 , per0 el camino tlel segmento L r s tlr longitud 3.
Las interrelaciones del modelo jera'rquico para la semintica del modelado conceptual La transformaci6n d e un modelo conceptual a una estructura de datos jerirquica es mup similar a la transformaci6n a1 modelo en red, per" con algunas ~ a r i a c i o n e simportantes tlrbido a1 rrquisito de la rstructura tie iirbol del modelo jeriirquictr. Se examinan varias rstructuras del modelatlo tie ciatos conceptual p se muestra c6mo se pueden transformar en rstructuras clel modelo jrrirquico.
INDICADORTIPO-SEGMENT0 --+ NlVEL I
TlPO DE SEGMENTO DEPARTAMENTO:
E TlPO DE SEGMENTO EMPLEADO:
TlPOS DE S SEGMENTOS OFlClO Y ASIGNADO A: TlPO DE SEGMENTO CERTIFICACION:
A
G
C
NlVEL 2
H
NlVEL 3
DE BASES DE DATOS
DISENOY ADMINISTRAC~ON
Transformar interrelaciones uno-muchos
ocurrencia tlel septneuto. Tern~inologia tlcl IMS para ocurrmrias rlr rrgistros.
Exanline rl moddo conc*eptual tle la Figura l(,.(,(a). E n la Figura lh.S(b) se nluestra la transformaciOn tlc rste modelo a la rstructura de datos jerirquica correspondicnte. El r j e n ~ p l osugiere tjnr la transforrnaci6n cs idkntica a acjurlla a p l i d a p a r a el modrlo en red. Cada conjunto de oljjrtos con sus atril~utoss r twnvirrte en un srgrrlento lhgico. Cada intrrrrlacicin se conviertr en un enlace binario y ]as interrelacionrs s r restringrn a ser nnon~nchos. Sin t:ml)argo, recordemos q u r r n el modrlo e n rtd el t i p tlr rrgistro emplcatlo podia p r r t m e c e r a m i s de n n rrgistro duriio, conlo se sugiere en el modclo de datos conrcptual d r la Figura lS.:(a). E n m a versibn del modclo en red. el tipo d e rrgistro EMPLEADO pc-rtenecrria a (10s t i p s d e rrgistros: DEPARTAMENrrO y PLAN DE JURIL.1CION. E n el modrlo jcrlirqnicw. esto no s r permitr. La rstructura tle datos correspondirnte rrqneriria dos i r h o l r s . como se sugiere en la Figura 16.7(11). Ol)sc.rve q u r rsto introduce rrdnndancia drhido a q u r ratla o c u r r e n c i a d e l segrnento EM1'LE.ADO se registra (10s veces. Sin e m l ~ r g o esta , rcdundancia p u r d r liniitarse. La primera oc*urrrncia de un srgmrnto (en rstr caso. EMPLEADO) srria almacrnada de la manrra usual. La siguirnte orurrrncia no almacrnaria el segmento actual. sino u n puntero en forma tie dirrcci6n a tlisco fisica, dando la localizacihn tlrl srgmrnto almacenado. h i , n o hay reclnndancia d e datos. p r o hay un espacio d r almacrr~amirntoadicional requerido para el puntero. Las primeras r r ~ l a spara la tranrforniacibn son: Keglu 1. Para ratla conjnnto rlr o1)jrlo0 rn nn motlrlo ronwptual, crrr un t i p tlr srg~nrntoS rn r1 motlrlo jt:rirqaic~).Todos 10s atrihutoc; tlr 0 sr rcLprrsrutancomo (.amps tlr S. Regltr 2. Para las interrr1aric1nc.snno-muc.hos tmtrr (10s cwnjnntos tlr ~jhjetos,c-rrr diagramas, los diagramas wrrrspondirntr~dr irholrs, hacicndo vatla conjunto tlr ol)jrtos nn schgmrnto>. hacirndo tlr la intrrrrlaci6n uno-murhos una intrrrrlari6n pa&-hijo. El srgmmto tm la partr "rnuc-ho" de la interrrlaci6n sr convirrtr en el srgmrnto hijo y el srgmcnto m la part? .'unom dr la intrrrrlaci6n sr ronvicrte en el srgmento p a t h .
~MBRE-DP-
-LIZACIO@
* DEPARTAMENTO
DEPARTAMENTO
EMPLEADO
EMPLEADO
NOMBRE-DPTO LOCALIZACI~N
NOMBRE-EMP
DIRECCI~IN
JEFE
ANOS-SERV
525
EL MODEL0 DE DATOS JERARQUICO
<
C&CALIZACIO@
TIPO
->C F E C H A - I N I C ~
PLAN DE JUBILACION
DEPARTAMENTO
I
I
v NOMBRE-EMP
DIRECCION
ANOS-SERV
,,, ,,,
DEPARTAMENTO
PLAN DEJUBILACION
,EMpLEADo
,EMPLEADO
Nombre-Emp
Direccion
Anos-Sew
Nombre-Emp
Direccion
Atios-Serv
(b)
Transformar interrelaciones muchos-tnuchos I a rrglas 1 )- 2 c u h r r n nn gran numaro de requisites de transformaciones. Sin etnhargo, s r p e d e general- u n modelo orirntado a ohjetos qiir rrcpiera la t r a n s f o r m a c i h de interrrlaciones binarias muchos-muchos. Recuerdr q u r 1111ho situac:ionrs similares para h a c w correspondrr el modrlo orirntado a ohjrtos con el modelo m red. La Figlira 16.8ia) ilustra o n frapnlmto dr u n modelo orientatlo a objetos de una intrrrelacihn 1)roducto-fal~ricante.La interrrlaci6n es tlr muchos-n~nrhos,tiehido a q u r u n protlucto dado puede suministrarse por muchos fabricantes, y u n fahricantr dado sumiiiistra un numrro de productos. El fragmrnto orientado a objeto se corrrspondr coil la estructura tlr tlatos jerrirquica, tal como muestra la Figura 16.8(h). Se h a n crrado dos rirholes, uno d a d o PRODUCT0 como la raiz y otro dando FMRICANTE corm su raiz. Esto proporriona la interrrlacibn uno-muchos deseada en cada rirhol. La regla que s r h a srguido es: Keglu 3. Para los conjuntos de objetos, 01 y 0 2 , clue tienen intrrrrlaciones hillarias mnchos-muchos y dr los cuales sr hati definido 10s segmentos S1 y S2, construya dos IPHs
DISENOY ADMINISTRACION DE BASES DE DATOS
& SUMINISTRADO-
I
I
I
FABRICANTE
I
K
FABRICANTE NOMBRE LOCALIZAC~ON FABRICANTE
Una situaribn un tanto mhs compleja surge ruando la interrelacihn oricwtada a ohjetos t i m e lin atrihuto. conio se muestra en la Figura 16.9. El atrihuto CANTIDAD se ha aiiatlido a1 agrrgado d r la intrrrelaci6n ES-SUMINISTRA1)O-POR para indirar la canti( I d mixima d e 1111 producto que puede surninistrarse en un encio de un fain-irante. En c a w s 5imilares a bste, se crea un t i p de segrnento adirional cbncorrespondencia a la estrurtnra cle datos ierirquica. L t o stx muestra en la Figura 16.10. Anihos ronjuntos d e ohjetos involnc.rados en la interrelacih hinaria muchos-muchos fnnrionarin romo un tirm de scgmento r d r e en irholes separados. Un nnevo tipo d e segrnento CANTIDAD se inserta entre los segn~entos PRODUCTO y F.ABRJCANTE para indicar la cantidad mixima clue n n fabricante particular enviarh de un determinado producto. E n un irhol. el rnlare uno-milrhos se estahlere de PRODUCT0 a CANTlDAI) y dr CANTIDAI) a FABRICANTE. Este 1)roreso se invierte en el otro i r h o l . Se tienrn dos interrelaciones padre-hijo en cada e5tructura (le i r h o l cle tres-nivelrs. Este procedimiento se I-aptura en la signiente regla: Regla 4. Si nna interrelarrnn bmaria murhos-murhos tlrnr un dato dr atrihuto. crrr un nurvo q p m t o tlr interscwih I . qw rontrnga caw &to. Catla uno de 10s t i p s de \rg-
PRODUCT0
FABRICANTE
mrnto rrrados a 11artirde ronjuntos de objetos funrionari como la raiz de un irhol difrrente. Inserte rl nuevo segment0 entrr 10s s r p r n t o s padre-hijo. Si cwalquiera dr estas intrrrelaciones padre-hijo son rxartamente uno-uno, el dato dr atrihnto potlri romhinarse en 10s scgmrntos crrados a partir dr conjuntos tlr otbjetos.
La arquitectura IMS Debido a que el modelo d r datos jerirquico no tiene estindar, se contincia usando su implemrntacicin m i s ampliatnente utilizada, el IMS, como una base para la rxposicicin. E n este c a w , si bien no es verdaderamente u n estandar. el IMS se presenta como un modelo j e r i r ( p i c a hisico. Los registros de IMS dehrn ordenarse jrrirquicamrnte. tal como s r sugiere en la Figura 16.l(c). E n la misma sr ve u n p a r d e iirholes d e dos-niveles. E n la Figura 16.2 se vr
DISENOY ADMINISTRACIONDE BASES DE DATOS
Definir la base de datos fisica - El DBD ( : I I I N O st' di,io antt.riormrntr. t.1 DK1) rs similar al estluwla rn red y rl B E P r s similar al s ~ ~ l ) e s q ~ ~tlrc w ~ a :\t.larrnw 1)rirnrro las f i ~ ~ ~ c . i otlrl red. n t ~DRD s con un c*jt.ml)lo.La Figw ra 16.12 I~rrsentacwatro t i p s (11.segnwntos: DEPART-1MENTO. EMPLEADO. OFTCIO y ASI(;3!\1)0 A. El IIHD para estr h r l ~ osr l presriita en la Figllra 16.11. Las instr~tt't-io~lt's se ha11 1111111rrado I)ara su explicaacihn. 1 es la instrucci6n DBD. Ksta instrwcihn idrntifit*a (.I no1ii1)re tlr la La ir~str~~c.tihn taml)ibn espt:cdh el I ~ a s rd r (liltoh. en (:st? caso K1ME = UEPTPERS. 1,a i~~stiwccibrl mbtodo tit. a t w s o a la 1)asr d r datos clue sr ~ i s a r i r; n rstr c a w IIISiIM, (pie tlrnota (,I nlbto(lo tle acwso srtwe~~cial iutlexado jt.rlii.tj~~icw. (Los ~nitotlostle ntwso tle I MS sr rstutliarhn adrlantt: ell unu stwihn postrrior tlr rstr c-apitulo.)
1 2 3 4
DBD SEGM FIELD FIELD
NAME NAME NAME NAME
= DEPTPERS,
ACCESS = HISAM = DEPARTAMENTO, PARENT = 0 ,
5 6 7
SEGM FIELD FIELD
NAME = EMPLEADO, PARENT = DEPARTAMENTO, BYTES = 2 2 NAME = (NOMBRE-EMP, SEQ), BYTES = 2 0 , START = 1 , TYPE = C NAME = ANOS-SERV, BYTES = 2 , START = 2 1 , TYPE = P
8 9 10
SEGM FIELD FIELD
NAME = O F I C I O , PARENT = EMPLEADO, BYTES = 1 7 NAME = (COD-OFICIO, S E Q ) , BYTES = 2 , START = 1 , TYPE = P NAME = OFICIO-NOMBRE, BYTES = 1 5 , START = 3 , TYPE = C
11 12 13
SEGM FIELD FIELD
NAME = ASIGNADO A , PARENT = EMPLEADO, BYTES = 4 NAME = (PROY-NOMBRE, SEQ), BYTES = 2 , START = 1 , TYPE = P NAME = D I V I S I O N , BYTES = 2 , START = 5 , TYPE = C
14
DBDEN
BYTES = 2 0
= (NOMBRE-DPTO, SEQ, U ) , BYTES = 1 0 , START = 1 , = JEFE, BYTES = 1 0 , START = 1 1 , TYPE = C
1.n siglas r n i n g l b ~w n t,~rnl)i;u L)UD (ntrttr Rtrw 1)~scription) ( N . tlrl
TYPE = C
T.).
529
EL MODEL0 DE DATOS JERARQUICO
SEGN. Una instrnwihn tlel IMS clue tlrfint. 10s campos t111ese int*lnyent.11 nn srpnento 1 ~ 1 .w a a n e ptw tin
programs.
La instruwii'm DKD vn srguitla poi- nna seritl d r instrut.tionrs de srgmmtos (SECM). La instrnt~icinSEGM define t.1 g r q o t1t. elrmentos tle datos (t:ampos r n el IMS) qne uhar(-ar s r segmt:nto > t.brno se ordt:nan. El l~riniersegnit.nto en la Fignra 16.11 stbidentifira (.on la instrncti6n 2. El st:gmrnto st: n o n h r a DEPAHT.4MENTO. La asignacihn PAREYT = 0 significa (jutbUF:I?ARTAMENTO es nn segmrnto raiz, "0" signifka q u e no t i m e srgmmto padre. Bl-TES = 20 t~stal)let:t:la Iongitnd drl segnwnto. En la instrucci0n 3, NOMBREDPTO es el primer tnanq)oen (:1 srgmento DF:PAARTAMF:NrlTl.St: itlentifit-a t80moun r a n I N ) srr'wnt:ial para t.1 srgmento D E P R T A M E N T O par la asignarihn NAME = (NOMBREDPTO. SEQ. I!).Eso sign if it.:^ que t w ~ n d osr aln~accnanlas nncvas ocurrt*ncias tle 10s srgint~ntos.s r o r t l e n a r h c.n set*nrneiatlr atwcrdo con el valor tle estr cn:tnipo en el segmeilto. La "IT*significa qne NOMKRE-DPTO tlelw ser h i c o -tlos segmentos no pnrtlcn trner t.1 mismo NOMKRE-DP'IY-. Como puedr verse. las especifit*at:ionesque q u t d a n tlef'inm la loralizat-i0n tle initit, tlel camlw en el segmrnto, la longitutl d r l t - a m p y el tilm de dato. Ims t i p s tle tlatos m i s tsomunrs son P ( p a r k t d d e r i n ~ a ly) C (charactrr). St, neeesita t l e s t ~ i l h al - mrnos un segmento m i s lbnra ver c6mo sc r s t a l ~ l e w nlas inter~.rl:rtionrs patlre-hijo. La instrueticin ,5 comienea con 1;) tlefinieihn d r l segmento EMPLE.1I)O. Drsp116sde tlurlt) Iin nomhre, st. le usigna el 1)arimt:tro PARENT = DEP_\RT.-4MENTO. Esta t.stal)let.r que la interrelac-iim padre-hijo es rntrc los srgmentos DEPART.AME;NTO j- F:MPLEAI)O. Las oenrrent:ias d r 10s st:gn~entosst. afiaden en ortlen par rl n o n h r e dt.1 twpleado [N.IME = (NOMBRE-KMP. SEQ)]. per0 vstos nom1)r.e~n o nwesitan scr ilniros twmo (-on NOMBRE-DPTO tan el segmento anterior. Con tlstns tlos dtwrip.iont.s, el resto tlr la Figura 16.11 s r interprets ficilnieute.
Definir la base de datos 16gica - El BEP
s e g ~ n r n t osnswpti1,le. UII wgmento (lut*t S i atw.sil)lt. para nn Im)granla.
Reeuvrde qne B E P es algo similar a1 snlwsqntma de rrtl. porqne se espeeific;~la vista tle 10s datos que st3usan r n nna aplicati6n. El B E P contirne uno o mLs 1)loques de twmnnicaciim de programas (KCPs). El BCP c.sl)ecifit*a 10s segmentos tjur llna nplieacihn 11uetle acceder. Los 1)rogramas no ~)uetlenaweder a segmentos qne no se drfinen cn el BCP. P o r t ~ ~ n s i g n i t ~rl~ B(:P t e . idrntifica la 1)ast. de datos adecuatla y espwifica twalqnier scgnrento s u s c e p t i l h a s r r int.lnitlo (SENSEG) :'. Considere el cjemplo mostrado tanla Figura 16.12. Suponge que la Corporacihn Z e w t i m e nna aplicatihn qne reqiiirre exartarnente 10s noni1)res tle los DH'LART.AMEYTOS y los nornlwes de 10s EMPLEADOS d r estos (10s segmrntos. Comenzando con la linea 1. st. r e q n i t w TYPE = DH para cada B C P a tlefinirse. La I m e tit- tlatos de la twal se extrae este B C P se llama DEPTPKRS (DBNAME = DEPTPERS). PROCOPT se usa para indivar olwionrs tle protaesos. t p r signifit-a las 01)eracionrs tine la aplicaci6n puede ejetmtar en un BCP. Estas olwionrs inc*lnyen: G = I= R = D = A =
c l a w cuncatenada totdn~ente.Significado (Ic la identificaciirn tle la ItralizaciOn dc un segnwnto en la base de datos.
GET INSERT REPLACE DELETE ALL
GET tbspecifit*aaccesos tlr &lo lrctnra a 10s segmentos en el BCP. LNSERT permite afiatlir nurvos segmrntos al BCP. REPLACE permite qnc 10s segmrntos sean recuprratlos y motlificatlos. DE1,ETE permite que 10s segmentos sean recuperados 1- borrados. PROCOPT = A7 como st. muestra cBnla Figura 16.12, significa q u e totlas estas opciones tle prowsos se permiten p a r a esta al1licaci6n. Cuando un segmento se usa por el programa, IMS itlentifica su lot.alizaci6n en la I m t . d e datos iy$strantlo una c l a w eoncatenada totalmrnte. KEI-LEN = 18 indica la mayor (:lave coneatcnatla clue el programa puede aweder.
'
' Drl ing1i.i S E X s i t i w SiCGmrr~t13.drl T.). '
S i g h tlrl i n g l b ~KEY LEJgth (longi~utltic la Ilaw) ( Y . rlrl T.).
DISENOY ADMINISTRACION DE BASES DE DATOS
Bisic.ainentc. rsto sr refirre a la niayor clabr qur sr obtrnclria afiadirntlo los cainpos claV P S que periiiitcn cualquirr camino a travCs d r la jerarquia. 1 2 3 4 5
BCP SENSEG SENFLD SENSEG SENFLD
TYPE NAME NAME NAME NAME
=
= = = =
DB, DBNAME = DEPTPERS, PROCOPT = A, DEPARTAMENTO, PARENT = 0 NOMBRE-DPTO, START = 1 EMPLEADO, PARENT = DEPARTAMENTO NOMBRE-EMP, START = 1
KEYLEN = 18
Las instrucciones SENSEG y SENFLD (liueas 2-5) itlentifican aqurllos scgmentos y campos clue son ac:cwil)les a la aplicaci6n En la Figura 16.12 hay tlos s e p c n t o s suscytibles (accesi1)les a1 programs): DEPARTAMENTO y EMPLEADO. Los cmnpos suscrpti1)les para 10s respectivos segnirntos sr tlrnotan por la instruecibn SENFLD. con el niismo significado (accesibilidad). Observe clue 10s srgiiientos tleprndientrs de1)rn identificar explicitainrnte sus segmentos patlres. I'or ejemplo. el padre d r EMPLEADO es DEI'AKTAMENTO. tal como se indica en la linea 4 por la cliusula PARENT = DEPARTAMENTO. START = 1 significa clue el c a m p comirnza en el primer hytr del s r p c n t o .
Mktodos de acceso de IMS IMS proporciona cuatro mhtodos tle acceso: HS 4M, IIIS4M. IID4M c IIIDAM. Recwerde que esta opcibn sc reflrja en la DBD por la entrada "ACCESS = ". Las siguientes subsecciones resumen 10s cuatro mbtodos.
HSAM. Mbtodo dr acceso dcl IMS. mu) rhpido para recuperaelones de segnientos sccuenrialc~.
'
HSAM indica el mdtodo de wcceso secuenciwl j ~ r b r q u i c o dv acwso a la hase d r datos. Los segmentos estin contigios fisicamentr en 10s medios d r almacenamiento, ademis HSAM podria implrmentarse en cinta o disco. Los srgmentos se ordenan de acuerdo con el esqurma transversal pre-orden, clue permite mantener la estrurtura de datos jrrArquic'a. HSAM es pricticamrnte solo para la lectura de 10s datos. Esto quiere decir que la estructura no es lo siificientemente flexil~lepara soportar con efertividad la artualizacihn de la 1)ase de datos. La actualizaci6n de los segmentos requiere qnr se crre y se almacene una nueva versihn de la 1)ase de datos.
HISAM IIISAN. Mbtotlo
HISAM, mdtodo de ucceso secuencial-indexado jerbrquico, almacena segmentos en
tle acwso de IMS, hrintla la t.apat.idatl para rerupcrariones dc scgmcntos tanto directa como secnencial.
secuencia jerirquica, conio en el HSAM, pero brinda la capacidad para mejorar rl acceso direrto a segnientos raices especificos de acuerdo a un indice. Despubs d r eso. 10s srgmentos dependirntrs drl segmento raiz que se ha accedido se accrdcn sccwmc*ialmrnte.como con el HSAM.
"
Pol. w r s i g h c.stablecidas, se mantimen en inglGs HSAM (Hierarchic. Seqiier~tiolAccess Method). HISAM (Hiercirchir Indexed-Sequerrtiol Arress Method), I I O l M (llierorrhir L h r t Arress Method) (N. del T . ) .
HDAM. Mbtodo dc nee-eso drl IMS. 1)1wtlaacceio-tli~wtode iegnlentoi nluy r i p ~ d o s . prro no la capacitlad de procwamlento secuencial.
HDAM soporta el nidtodo de ucceso-direct0 j ~ r u r q u i c o .Este iiibtodo no relacmna s e p ~ l m t o s por un indice o por la proximidad fisica. excrpto ihlo a travbs de punteroi (t.ampos quc' c-olltienen direcciones fiiicas a disco). El aweso a las raiccs sc, mcjora a trakbs tlel uio de un algoritnio dtl I~uiqiieda (ver Capitdo 10). Examine el i r h o l tlc t)twrrencia tle In F i g ra 16.13. Los puntcroi qnt' ~m1az~;m stymtAutosde m a ocurrencia 1)uetlen s r r j~rurquic~os. tnl t ~ m sr o muestra en la Figlira 16.1-5. wino ie mueitra en la Fignra 16.14 o Irijos g-cw~c40~.
,
NOMBRE-DPTO
IEFE
Mercadotecnia
(Puntero)
NOMBRE-DPTO
IEFE
hNOMBRE-EMP NOS-SERV
Cuando se u i i ~ npunttLroijerirqui(wi, cadd segmento apunta a su suceior en la secwencia trans\erial pre-orden ("0" indica clue 10s se,mentos no iiguen). P o r ejemplo, para a t w d r r a1 regiitro del empleado Hill en la Figura 16.14. i e cwmenzaria por el registro del departamento de Mercadotecnia, usando su puntero se llega a1 registlo para el emplead o Bond. entonccs i c i i g w el puntcro de ese registro hasta el regstro de oficio Programador, tlesde alli hasta el registro d r ofirio Gnalista y finalmente habta el registro de Hill. Cuando i e usan puntrros hijoi-y-genielos, cada segmento c ~ ) u t i r nun r puntero a1 segmento inmediato en el miimo nivrl (gemelo) y un puntero a1 segmento hijo inmediato. En la
, ,
DISENO Y ADMINISTRACIONDE BASES DE DATOS
. 1
,
Mercadotecnia
JEFE
Smith
(Puntero (Puntero hiio) gemelo)
1 NOMBRE-EMP A[;IoS
SERV
COD-OFICIO OFICIO-NOMBRE
: i
rMBRE-DpT[
2
Programador
I
NOMBRE-EMP ANOS-SERV
COD-OFCO OFICIO-NOMBRE
0
5
COD-OFICIO OFlClO NOMBRE
Analista de sistema
-
Figura 16.15, r1 l w n t t w ~i i i i i a la i z t p i t d a rs rl puntriv hilo el p i n t t w ~a $11 t i r l w h a rs rl piuitrro gemrlo. Los p l ~ n t r r o sgrmt.los son siinplrs dt. irnplrn~rntardrlbido a q u r catla itbpiiit~iito twiitirncbrxactaniriitr (10% puntrros. P a r a accrtlrr a1 registi-o tlr Hill r n la Figlira 16.15. st. romirn7n urla \ r z iiilis por c.1 i ~ g i s t r otlrl dt.partanirnto tlv Mrrcarlotrcmia, st, sigur r l p n t r r o hijo al rrgistro tlrl prinirr ~ ~ o tlv t v rrgistro hasta rl rtyistro d r Hill. Para c.iiil)lrado (Bontl) y s r sigltr r l 1 ) ~ r i t t gemelo a t w d r r a l rrgistro (It. of'ivio \c*ntltdoi- tlr Hill. sc. sigur simplrmrnte 1.1 puntt,ro hijo rn rl 1-rgistro tlr Hill t l i i - t ~ * t s n ~ ra1 u t r q i s t r o tlrirado.
HIDAM HID411. Mbtotlo tit* 11s. hrintla tanto ~ 1 1 . trsl) tlirrrto a los srgnlrntos ~.aicv,s~ Y I I I I O r c w l ) t u t i h itwt~ntial. ~ I I T I ~ Wtlrl
HIDAM, mitodo de t r c c ~ s o - d i r ~ c tir~cic~xado o jercirqlrico". r s 1)isicarnentr siniilar a1 HDAM. lwro pwmitr tanto a c r t w intli~atloa raiws twnio acwso por p u i i t t ~ o sa srgnwntos drptwtlirntrs.
El lenguaje de la manipulacih de datos del IMS E n vita i r t ~ * i h se n tlefinrn r ilustran lab rnracteristit*as d r l lenguaje tlr inanipula(i6n dt, datos. I)L/1. S r ntwsita rnteiitlri- rl aweso y la manipnlatibn del programatlor r n una 11asr tit* tlatos tle IMS 1,ara intrractuar twrrrt*tameiitecon rllos.
El airea de trabajo del programa Para rl DL11 ejecutar operarionri r n una 1)asr d e datos rle IMS, el sistrma mantiene un Area d r t r a l ~ a j otlel progrania q u r contirne las siguirntes variablrs: p h t i l l a d e $eglnento. El foriliato tlrl i r r a tlr traljajo tlrl progralna
Las plantillas d c s c g ~ w m t o (segment s tpmpk~tes).que tian la cwnposit.i6n d r l wgmrnto para cads tipo clr srgmcLntoen la basr d r tlatos.
533
EL MODEL0 DE DATOS JERARQUICO
I~anderatle ehtatlo. (:an111o cn!o jalol- intlica 1.1 rc'sult:~tlo (11. la idtima opcwcii~u tle datoi (1""' tlr la c.j(wplo. si t n t o 6xito o no). I ) ; ~ s t k
I,os punterns actualrs \KIM vada i r h l de la base dtb datos. Pktos contieuc~nla t l i r e t ~ i 6 ndt.1 segrnento en el iirl~ol(pie se h a accectido iniis rt~t~iri~telnente. [,as bandrras d e ehtado t ~ n vindic;~nel re5ultado cte la illtinla operaci6n tle la I)asttle tlatos. P o r cjtwplo. ljotlria asign;~rsruu "0" si la ultima opt~racibntu\ o 6xitt1\ otro simlwlo t-n t.aso contrario. Siguir~itlouna ol)eraci6n. el progrania 1)uetle ~ d e rirse a la I)antlera de estado para drterrriinar club hataer a wntinuacihn.
DWl: Una panora'mica El lenpuaje (It*manipulatihn t1c tlatos para IRIS se tlenomina DL/]. \ continuat~ihust, t h n t~jvmplostlr Iw Ortlcnes miis t~oiniinnit~nte usatlos del DL/l:
-
GKT UILIQIT (GlI) G K ' NEXT ~ (GY)
GET NEXT V I T H I N PARENT (GNP) GHC. CIIN. GHN 1' INSERT (ISRT) RF: t'LL4CE (HEPL) DELETE (DLET)
-
Rtvwperacihn tlel 1)rinwr sc.gmcnto tle tlatos clue satisfaw lina contlici6n ( M a . R t ~ c n p t ~ a t ~ del i 6 nprhxinio segmcnto. Rvcnpt~at~iOn d r l prOuimo segmcnto. per0 sin el segintmtt~ padre actual. Ccrrar la I)aw de datos para GIT. (;N, GNP. Iiiaclir nn nuevo sepmento u la 11asctlc clatos Motlific-ar el valor tle nn c a m p (11.1 wgn~ruto. Horrar 1111styi~c~rito.
Veainos algunos ejrnqllo:, tlel uso tlr estas Ortltm~s
Get Unique (GU) La olden GET st. usa 11araselcccionar un,i ocurrent.ia dvl svgmtmto. GET UNIQUE st.11~tiona un segint.nto. tlantlo nn valor partit.ular a1 Area tlr t r a l ~ a j o .El segmento tleseath sci drfine r n t r r pnrintvsis por u n retpisitn eliminatorio l l a n d o 1111 ilrgumrnto d r I ) i ~ v p e t l a del segmtwto ( A M ) . E j r u ~ p l o1: Una siniple rccnperacion d e u n segulento G U DEPARTAMENTO (NOMBRE-DPTO = ' M e r c a d o t e c n i a ' )
E u cste ejemplo, el argumento tie l i ~ s q u r d adel srgmento es NOMBRE-DPTO = 'Mert*atlotecnia'. La ortlen GU ret~iperariiel primer sepmento que satisface el -1RS. E n el prhximo ejemplo. ol~scrvela ctiferentia cuando se desea r e t - u p r a r el segmento para el empleatlo Strve Smith, t1uit.n file asignado a1 Dcpartamento tle Mercatlotrrnia.
=
Ejeinplo 2: Rrcnperaci6n d e u n segmento dependiente G U DEPARTAMENTO (NOMBRE-DPTO = ' M e r c a d o t e c n i a ' ) EMPLEADO (NOMBRE-EMP = ' S t e v e S m i t h ' )
Debido a que el srginento EMPLEADO es dependiente. s r t.sIwcifica un camino jerirquitw. El operatlor GlJ recuprrarii sblo el ultimo segmento del t.amino. Eso significa que el segmcnto Mercadotrtmia no se r e t y w r a r t i .
DISENOY ADMINISTRACION DE BASES DE DATOS
S11110iiga qutA110 w wno(v' el t l t p r t a n i e n t o a1 cual Stevv Smith f u r asignado. I,a cons d t a podria tratarsv conlo se iiiuestre t.11 el pr6ximo ejeniplo. Ejeniplo 3: Rccupr~raci6nd e l segniento d e p c n d i r n t r coanclo n u s c couocar la o c u r r e n r i a padre GU DEPARTAMENTO EMPLEADO (NOMBRE-EMP = ' S t e v e S m i t h ' )
Esta wnsulta examinari srcwencialnwnte 10s segnwntos c\r DEPAII'I'AMENTO hasta q w sea ent:ontrarlo el s t p i e n t o tlcpendientc para S t t ~ v rSniith.
Get Next (GN) Si en higar de simple~iirntt.reculjerar la 1,rimcra ocurrrncia d e un svgmento ( ~ u tiene c un valor t.sprcifico. sc desea rcLcuperartodos 10s scgmentos quc tienen esc \ a h , he pucde nsar GU en c.oordinac.ii,n con la orden G E T NEXT (GN). P o r ejemplo, suponga clue se tpriere r w u p r a r todos lo3 segmcbntosde EMPI,EADOS p a r a (%IDepartamento tle Mercadoternia. Esto se haria dt. la zigl~ientemallera: Ejeiuplo 4: Recuperacibn d e u n conjunto tlr srgmentos GU DEPARTAMENTO (NOMBRE-DPTO = ' M e r c a d o t e c n i a ' ) EMPLEADO GN EMPLEADO
El operadoi- G I efcctnarl la rec.ul,erac,i6n del prinier sebmi~ntode EMPLEADO para el D r j ~ a r t a ~ n e n de t o hk-catlotecmia. El o l ~ e r a d o r(;N controla mtonces la recuperac i h dcl pr6ximo s e g ~ w n t od e r ~ i i l ~ l e a d~om - cl a Del~artamentode Mcrcadotecmia. Mientrak exista una segunda ocuri-twia d e cwil)leaclo p a r a el tleprtaniento d e Mrrc.atlotecnia. t15ta consulta hare lo cjne se c111ier.e.Sin embargo. si no existieran los tleuiis segnwntos d e empleados cnmtlo s(. ejecuta la ortlen CN. el sistcwa iria a tmeontrar el pr6ximo scynento de EMPLEATIC) indifvrente a1 departaniento a1 c-ual el empleatlo file asignado. Esta posihilidad p d e prevenirse usando la ortlen GNP. cwmo s r deniostrari en el Ejemplo 6. p r o antes ,sr v e r i una motlificac%'m simple a la cwnsulta del Ejemplo 4, que perliiite la recbupt.rac*iim de totlos 10s segmentoz tle empleatlos en la h e de datos. Ejrnlplo 5: R e c u p e r a r todos los segmentos d e u n tip0 particular GU DEPARTAMENTO EMPLEADO MAS GN EMPLEADO GOT0 MAS
Mientras evista otra o w r r r n c i a cle u n segmento EMPLEADO, se ejecutari el &lo iclcntificado por la rtiqueta d e instrucci6n M 4 s .
Get Next Within Parent (GNP) El G N P tlifiere del GN en qne IMS s d o r w u p e r a 10s segmentos (ILKson dependientes en una simple orurrencia padre. Volviendo nuevanwnte a1 Ejemplo 1, csa consulta podria rnodificarse usando el GNP, como en el Ejemplo 6.
EL MODEL0 DE DATOS JERARQUICO
Ejemplo 6: Recuperar segmelltos p a r a u n solo p a d r e GU DEPARTAMENTO (NOMBRE-DPTO EMPLEADO GNP EMPLEADO
=
'Mercadotecnia')
E n este ejt*inplo. si no hu1)iera otro segmrnto d r EMPLEADO r n el Drpartamrnto tlr Mrrc.aclotrc.nia, la r j r c w i 6 n 1)araria y el u w a r i o tendria la r r s t r i c 4 m tlesrada para 10s emplrados clel D r p r t a m e n t o cle Mervatloternia. Conio otro rjen~plo,snponga q u r br l)i~bcantodos 10s segmentoh (le OFICIO para (4 empleado Strvr Smith. que trahaja en rl Dtyartamrnto d r Mrrcadotecnia. St, aplic-aria la signicntc ordcn: Ejemplo 7: Recuperar segmentos p a r a u n solo padre GU DEPARTAMENTO (NOMBRE-DPTO = ' M e r c a d o t e c n i a ' ) EMPLEADO (NOMBRE-EMP = ' S t e v e S m i t h ' ) OFICIOS PROXIMO GNP OFICIOS GOT0 PROXIMO
La ortlrn GU recupera el primer segmrnto d r OFICIOS para S t e w Smith. La ordrn G N P cbntonws r w u p c r a sccnencialmrnte 10s restantes segmentos de OFICIO para Strvr Smith.
Get Hold La o r d r n GET HOLD puede ocurrir r n nna cle las tres formas: GET IIOLD UNIQUE (GHU). GET IIOLD NEXT (GIIN) y G E T HOLD WITHIN PARENT (GHNP). El prograniador iisa rstas Ordrnrs d e la misma forma que GU, GN J GNP, r w e p t o cple las Ordcnes G E T IIOLD dehen usarsr para informar a la h e it(. datob c p r nrl camhio o iina eliminarihn sr realizarb rn r l srgmrnto rrcuperado. Esto significa qne, GHU, GHN \. G H N P sr usan conjimtanirntr con las Ordenes REPLACE (reemplazar) o DELETE (horrar).
Replace (REPL) I'ara n~otlificarun srgmrnto ewistentr, Gste drl)e transferirse a1 Area d e trabajo, dontle sr realizan 10s eamhios deseados a 10s earnpos d e 10s segmentos. Usando el lengiiaje DLI1, rl segmento objetivo dehe recuperarse usando primero una d r las hrdenes G E T HOLD. El segmento se modifica entonces y la orclen R E P L eserihe el segmento artiializado. El siguiente ejemplo ilustra chmo se proccdcria si sr drsea camhiar el salario de I n i n g Schatz, ( p i e n es einpleado del Departamento d e Mrrt-adotecnia, d r $20.000 a $25.000. Ejemplo 8: Modificar valores d e campos d e s e g n ~ e n t o s GU DEPARTAMENTO (NOMBRE-DPTO = ' M e r c a d o t e c n i a ' ) EMPLEADO (NOMBRE-EMP = ' I r v i n g S c h a t z ' ) MOVE 25000 TO SALARIO REPL
DISENOY ADMINISTRACION DE BASES DE DATOS
Delete (DLET) Un i t y n r n t o i r twrra p r i n ~ r r otlrl irgmrnto ohjetivo m a n d o line i n ~ t r u r t i h nGET HOLD l u c y ~uiantlo la instrut~icinDLET. Suponga quc Irving Schatz a t m ~ t l o n ala firma. Sr al)lic*ariar l Ejrmplo 9.
)
Ejenlplo 9: Borrar u n scgniento. Lab 0rdrnt.s GU DEPARTAMENTO (NOMBRE-DPTO = ' M e r c a d o t e c n i a ' ) EMPLEADO (NOMBRE-EMP = ' I r v i n g S c h a t z ' ) DLET
Insert (INSRT) 1,os nurvos srgmcntos sr afiac1c.n a la hasr tlv datos usantlo la orclrn INSRT. Los k~alorrsclr los c a m p s asocintlos p i i n r r o sr rnucwn a un i r r a d r tral,ajo. Entoncw tstos sc rnlazan con 10s noml)l-rs tlr 10s styrnrntos patlrrs rrlacionatlos con rllos. Asi. si 1.1 srgmrnto tplr sc. insrrta t.s in1 srgmvnto ( l q ) r n ( h l t r .el srgnicnto patlrr ) a t l r h raistir. Bol) I x t ~h a trrminaclo su (wr~~i(*nllnn tlr lugrnicria r u 1111 ( d r g i o Io('a1. Se drsra aiiatlir 1111 111irvosegnirnto OFI(:IO para Bol) L r r r n la h s c * tie clatos.
MOVE 598 TO COD-OFICIO MOVE 'INGENIERO DE REDACCION' TO OFICIO-NOMBRE MOVE 0 TO ANOS -SERV INSRT DEPARTAMENTO (NOMBRE-DPTO = ' I n g e n i e r i a ' ) EMPLEADO (NOMBRE-EMP = " B o b L e e ' ) OFICIO
El s r p e n t o sr insvrtarh romo c.1 i~ltirnos r g ~ n r n t otlr of'ioio t1el)ajo tlcl norn1)re d r Bol) Ler.
La evaluaci6n del modelo de datos jeriirquico En esta scccicin se rxaminan las fortalezas j tirhilidatlrs tie1 motlelo tlr datos jerirclnico. Cramos la reprrstmtacihn j la manipnlari6n d e lob tlatos.
La representacih de 10s datos Existrn t r r s carat.tt4stic.a~q u r definrn la estrurturn del modrlo tlr datos jcrarquiro: irl)oles, srgrnrntos y canlpos tlr segmentos. Drhitlo a que cualtpier motlelo oricntado a ohjrtos l)uecle transfornlarsr tan u n modelo d e datos j e r i r t p i r o . r l reqnisito de q u r todos 10s rc.gistros d e la h a w cir datos w a n i r l d r s puedr provocSarduplit~ari6nd r segmentos. Cualqnirr situaci6n m y o s rrsultaclos naturales sr enlazan r n un segnirnto q u r sra un srgrnrnto hijo d e dos segmrntos padres distintos rrtjuierr clue estos segmrntos padres se rnruentren en irholes separados. A ~ ~ n q tal u r t1uplirac:iGn elirnina cirrtas tlificultacles cle iruplernmtaribn, tienr rstos resultados nrgativos:
1. El rspatio d r almat*t~namirnto se nsa inrfit+ntrnwntr del)icio a q n r rl segmento esti relwtitlo.
2. Sr crea la posilditlad tlr inconsistencia tlr lo5 datos. Si 10s datos sr twnhian tan una c y i a dcl wgnlcnto, pcro no c.n la otra, la hasr de datos es inconsistrnte. OS y 10s pnnt(w)s. Estr p r o l ~ l r n ~sea ha clin~inatlocon el uso ck 10s S P ~ I I I P ~ ~~irtuclles Un scynrnto virtnal no contirnr 10s datos, p:ro tirnr u n puntero a un segmento d r tlatos fisitws tloncle s r alnlacrnan 10s datos. Cuantlo st. rrquirl.e u n seginentol se r r p r o d n w en tlos o mks i r l d r s (It- la I)asc: tlr tlatos, 10s clatos verdaderos sc a l n ~ a t w u nr n s61o 11110 de estos h r l d r s . Todas las otras instancias cle 10s clatos contentiran 1111 puntero a la localiztrtibn ~lonciese almawnan 10s datos vrrtlatlrros. Refibrase a la Figura 16.16. Note clue rl pnntrr o nlostratlo por la linca distwntinua apnnta a la raiz tlel irl)ol clue contime 10s tlatos wrtladrros r n un scynrnto tlrpenclientc. Una limitaci6n importante drl tnotlrlo jrrirquicw 1.s cjur cxisten tnuchas aplit*at:ionrs, para 1"s cnalrs un i r l d no cs la rstructura de datos natnral. Sc: ha visto rsto, por rj(~nq)lo,en las rnanipulacionrs t4ur se rrqltierrn para convcrtir r n dos c.strnctni-as t l v i r l d una situacihn tlontle un segmrnto hijo prrtenecr tle manera natural a dtrs patlrt,s. Estos t i p s cie ot*urrenc:iaspueclen grnrrar n~uchosirlroles y una ineficicmcia asociatla a1 uso tiel espacio cir almacrnamirnto. P a r a las aplit*acionesq u r son in1ic:rentrmentr jerircjuicas por naturaleza y para h a rnalrs las transac.t:ionrs dc consultas son estahles, el modelo jrrirqnico pnetle s r r bastant r satisfartorio. El h w h o q u r vxistan tarrca clr 7.000 instalaciones cie IMS a p o j a csta taonclusihn, annqur algtlnas rstLn canhiantlo a sistemas d r hascs de datos relacionalcs.
El lenguaje de manipulacih de datos Grnt:ralmentc, la intrrfaz drl lrnguajr proporcionh al motlelo jrrhrcjnitw discrt:pancias con el vrnclcdor. Esto significa cjur 10s programadores nrcrsitan ser conscirntcs de (pi! intrrrelaciones tleben estar j ~ r r d r l i ~ i i d apor s el sistrma y cualrs no. Esta confianza r n cl programador no rs totalmente satisfactoria, dehido a clue el progran~adorI n ~ c d eno s r r rntrndido en tocios 10s rrtpisitos que han sido construidos en el sistcma. I d r m i s . si se reorganiza la h a w dt- datos jrrirquica, rso purde trner efecto negativo en la cjrcurihn tle programas, t l d ~ i d oa clue la rstructura que soporta la aplic.ac:ibn A pnede no ser la nwjor t:strut.tura para soportar la aplic*acibnB. En el lado positive, debido a que IMS d o ~ a i n alas implementariones jrrirquic:as, 1111 programador que ha trahajatlo con IMS puede estar totahnente familiarizatlo con r l traljajo interno drl lenpuaje DLII. Atlcwis, para rl uso esta1,le de la base dc datos, la reorganizacibn pnrde s r r s r w n d a r i a .
l-7
VENDEDOR
(dato real)
PUNTER0 A FACTURA
DISENOY ADMINISTRACION DE BASES DE DATOS
La n o m e n t h t u r a del motlelo jerirqnitw 1)urde r e s ~ ~ n ~ i rm s t la t siguimte forma:
1. lJna estrnrtura tle datos jt.rirqiiit~a SP t~onstruyt~ a partir
2.
3.
4.
5.
(It' un grupo tle sthgmtmtos. Catla t ~ s t r w t u r atle tlatos jerirquica tlelw tomar la forma tit. un i r l d . Un i r l ~ o l ar t-aracteriza pol- una o mi's interre1aciont.s padrr-hijo, tlontle ratla intcrrelaci6n rs uno-muchos. Catla Lr1)ol tcmtlri' on segmrnto q u r f'untiona 4110 conlo 1111 st.gmmto padre. h e wgmento s r llama raiz. Todas las interrelaciones padre-hijo en un L r l d st. rxtielitlen a partir d r la raiz hacaia a l ~ a j o . C u a l q ~ ~ isrgmmto rr en un a r l ~ o l rxccytuando . r l st~gmentoraiz, es un segniento padre. Si se s i y e nn ri~minotle intrrrrlacionrs padrrhijo dt, algiin segnic~~to hijo desde un s t y w n t o tle nivel superior. H, l ~ a s t a1111sclgmento tle nivel inferior, S. totlos los srgrwntos en esr t.anlino7 inel~iyendoS. son segnwntos tlrpr~~dirnttls (tamhi611 tlestwdirntes) d e H. El srgiiieuto no puecle a p a r e w r en m i s tle un camino a partir del srgmento raiz. Si en el modelo natural resulta tan mLs tlr un (.amino: tlelw cvearw un Arid srparado para catla camiuo atlitional.
El modrla dc tlatos j t ~ r h y u i e o(.ontinha jugando nn iml~oi-tantt.papel r n las i~nplt.mrntacionrs tlr I~aaestle datos. Es rspecialint~ntecorrientr en grandes ccntros de prowsamiento tle tl:~tosq u r son sol~ortatlospol- grandrs twmpiitatlores (It. IBM. llna 1)ase de tlatos jerlirt~uicase construye a 1)artir dr rolewiont~sclt, scglnentos quc sc. twnrctan unos (*onotros par j)unteros. (Catla srgmrnto es una coltwihn tie canlpos, twia uno (It* 10s c d e s contienr trn solo valor tle ciato. Un puntero estahlet*elos enlaces Ihgiros ntwsarios entre dos segmrntos. E n rstr hentido, rl motlclo jerirquico tBsnuiy similar al ~notlelor n red, tlonilr 10s datos y las intrrrelachnes st. representan por t i p s tle r . e @ w s y pnntcros. El nlotlrlo jerai-quic>otlifim: m que 10s segulentos se organizan como t d w c i o n e s d e Brlmles (un solo scgnttmto padre prrnlitido) ~ n J hs e n i p e como grafos arljitrarios (tlonde se permite luis de 11n segnitnto p a d r r ) . Alpmas limitaciones tlel n~otielojerirquico son:
1. [,as caractrriiticas lhgiras y fiiicas d r l modelo no estin t h r a m e n t e yeparadas. 2. Sr requieren n ~ a n i ~ ~ u l a t i o puaersa representar iutrrrelat*ionrstle datos no jrrlirqiiico~.
3. Los requisites d r twnsultas ad hod pueden reqaerir la reorganizaci6n dr la \)as(. de tlatos.
4 partir del punto tlr vista tlrl procrsaniirntn efirientr de una base (ic ciatoy, el modelo tlr tlatos jerirquico es comlwtiti\o. Sm rmhargo, conio lideres tie nept.ios t p e utilizan crrcicntrmrnte la informat%h como una h r r r a m i r ~ i t aestratGgica. el moclelo cle datoi jrrircpico a1 parrcer no proporciona toda la capacidad nrcriaria.
(Las prrguntas marcadas con on asterisco son opcionalrs.)
1. Defina cada uno tie los siguientrs tirminos con sus propias pa1al)ras: a. Ins b. TDMS
EL MODEL0 DE DATOS JERARQUICO
c . MARK IF
(I. S! stern 2000 e. moddo d r datoi jerirquico f. i r h l g. ocnrrrnria tlrl s t y w n t o h. ancrstro i. registro d r la ])air d r datoi j. srgmrntw g~mrlos k. t i p IPH 1. i r t ~ o dl r wurrencia jerirquicw in. rrrorrido prcwi-den 11. HS 4 M 0. 111s 111 p. IID4M (1. IIID,\M r. DL11 s. plantilla d r rrgistro t. puntrro actual 11. J~andri-a de estado
2. Drfina la funribn qnr rcdizan cada m a tle las siguientrs brdenes del DL11 GU GN CNP GHU GHN GHNP ISRT REPL DLET
3. Brevemente analice rl DBD, su estructura y sa funcibn.
4. Describa la t~on1~1orici6n y la funcihn del BEP.
5. jCuil es el propbsito de crear un registro de interseccihn para corresponder 10s mode10s orientados a ohjetos con 10s motlrlos jerirqaicos?
6. En IMS. jcuintos suharboles pueden existir en un irhol?
7.
* Compare 10s niitodos de representaci6n de 10s datos de 10s modelos de datos relacional, en red y jerirquico.
8. *iPiensa que el lenguaje DL11 es mis simple clue el DBTG DML? Justifique su respuesta.
9. iQuk ventajas ofrece IMS en comparaciim con el modelo DBTG y el modelo relacional?
1. Enlace 10s siguientes tbrminos con sus definiciones: -tip0 del segment0 a. La forma en que 10s ciatos se almacenan fisicamente en el IMS.
DISENOY ADMINISTRACIONDE BASES DE DATOS
-ir1terrelaci6n
h. Una cwmponcmtc dc.1 BEP.
pc~dre-hijo
-DBD -REP
c. 1Jna colecci6n de RCPs.
d. Segment() q u r p u r d r s r r ac*cwIido por un programa tlr aplicwihn. e . Un tipo dc svgmento c p e no participa como un srgmento hijo en ningiln IPH. f. Un tilw d r segmrntos q u r no tic-nc. tipoh dc segmc3nto+hijoh. pn. Corrrspondr a un ohjcto en rl modelo orientado a objrtos. 11. 1ntrrrrlac.ibn 10Bc.a entre u n t i p tle srgtnrnto p a d r r y u n t i p d r q n ~ e n t ohijo.
-BCP -segmento
susceptible
-segrnrrtto
raiz
-segrnertto
hoja
2. Rxponga c d q u i r r regla d r l c*apitulo clue usaria r n la transforn~acihndel diagrama orirntado a objrtos d r la figura 16.1E r n una rstructura d r datos jerircjuica. Muestrr la transformacihn rrsnltantc..
3. Haga corresponder rl diagrama orientado a objrtos de la Fignra 16.2E ron una estructurg d e datos jerirquica.
( NO-
VENDEDOR
HECHA-POR
I
\ PRODUCTO
*I
*
INCLUYE
*
IMPUESTO
ORDEN TOTAL
(PROVISION)
<
FECHA
PRECIO
EL MODEL0 DE DATOS JERARQUICO
541
6. Para la r i t r u r t u r a tlr tlatos j r r i r q u i r a del prohlema 3, e w i l ) a las hrt1enrs tlel DL11 para h a t w lo s i g ~ ~ i r n t r : a. R r t y r r a r rl rrgistro para rl vrndrdor 13. I . Rrtwlwrar totlas las hrtlrnrs con la rantitlad tlv $100.00. Borrar la ortltw 256. tl. C N I I I ) Mla~direwiOn para el \en(ledor 13 a * 4tlanis Strcrt 912. Gainrh\illr,FL'. e. tiiatla rl krntlrtlor 15 a la h a w tlr datos. El nomhre tlelvendrdor 15 rs "Mike Ottrson' 4 la tlirec-ribn es Buster Building, Suite 95. 'l'oronto, Canadii. f. Ziiatla Id f'actura #285 a la hasr d r datos. g. Borrr la factnra #842 (#.
1. Est*ril)ann pcqueiio informe cornparando lab ventajas y desventajas del mode10 d r (latos jt'riirqui(w. Conipiirclo y contriistelo con 10s modelos relacional y r n red. 2. Knruentrr m a firma romerrial que use el IMS. ~ L o usuarios s e s t i n satisferhos con sus c.aparit1advsP iChmo sr usa? iEstii la firma planificando ramhiar?
3. Si fuera responsahle con las recomendaciones drsarrolladas p a r a mejorar el modelo jerhrqnicw, ~clui.sugerencias inrluiria?
4. i P u e d e rrfinar y ~ n r j o r a rrualquiera de lab rrglas sugeridas p a r a la transformacibn tle 10s modrlos orirntacios a objetos en rstrurturas d e datos jerirquicas? iCuales? i,Cuind o se aplican?
GLOSARIO
acccso s610 para recuperar. Arwso a la hase de datos pero sin poder haccr artualizarihn administraci6n d e la basc d e datos. Personal con la responsahilitlatl de controlar y p r o t r p r la haw d r tlatos. administrador d c archives. Software clue administra la rrscrvaci6n de localizariones de almawnamiento y estructnras de datoh. adrninistrador d e buffer. Software que rontrola rl movimiento d r datos entre la memoria principal y el almacenamiento en disco. admhistrador dc la base d e datos. Personas cnyas responsal~ilidadesse rentran en la g e s t i h de 10s aspectos t& nicos del sistenia d r base de datos. adnlirlistrador d e 10s datos. Persona ~ I I )as rrsponsa1)ilidades se centran en el estahlerimirnto de las politicas y 10s procedimientos para el sistema clr informacihn de la organizari6n. agente. 1Jn proceso que coopera para ejecutar una transaccihn. agregado. Una intrrrelaci6n vista eomo un conjunto de ohjetos. agrupamiento (clustering). U1)icacihn en un mismo bloque d r rrlaciones que sr r r i ~ n e ncon frecuencia. ilgebra relational. Un lrnguajr procedimental para la manipulac~ibn de relaciones.
alias. Un nornlre altrrnativo clnc se le da a una relaticin. ancestro. En una jerarqnia. un t ~ p ntle segment0 qur se encnentra rn el niismo ramino en nn ni\el snprrior rn rl irbol. anomalias d e actualizaribn. Inconsistencia de los datos romo resultado de datos rcdundantes y artualizacionrs parciales. anomalias d e borrado. Pbrdida no intencionada de datos drhido a cmr 5r han horratlo ntrns datos. anomalias d e insercicin. Imposihilidad d r adirionar datos en la h e de datos dehido a la ausencia de otros tlatos. Application painter. Un paintrr que se m a para definir 10s aspertos genrrales d r una aplicacihn, tales romo rl nomIlrc y la bi1)lioteca de la aplicaciirn. i r l ~ o l . Una estructura de datos jrrbrquica. esto es, ima estructura r n red donde un tipo d r srgmrnto h j o es enlazado a shlo nn tipo de srgmento padre. irbol d e la base d e datos. Un lirbol que tiene una raiz. irbol de oeurrcnria jvrircpico. Representacihn de swmrntos de ocurrencias en una estrnrtnra de irhol que refleja todos 10s t i p s IPH. i r b o l enraizado. l h a jerarqnia de registros indives clue tiene un unico registro indicr m el nivel m i s alto; estr registro se llama raiz.
i r e a . En IDMSIR es nna localizacihn en el almacenamiento que rontienr uno o mbs tipos de registro. i r e a d e trahajo del usuario. Porrihn d r la mcmoria primaria qne se usa para runtener las variables de programa qur apuntan y contienm 10s registros tle 10s diferentes tipos de rcgistro. mientras que sus contenidos se oyeran por el programa anfitribn o principal. arista. Parte de una estrnctura en red represmtada por una flecha. arquitcctura tres-niveles. Estrurtura estandar de base de datos eonsistente en 10s niveles ronceptual, extemo r interno. asignaribn. Operaci6n del ifgehra relacional que da un nomhre a una rckicibn. asociar (rnnp). Asociar elementos de una esfera con elementos en otra esfera. atributo. Una interrelaci6n funcional de un conjunto de objrtos con otro conjimto de ohjrtos. atributo d e la rrlacicin. Una columna m una relaci6n.
banderas d~ c3tado. Variables que se usan para denotar el bxito o el fracaSO tie la idtima n p e r a c i h ejecutada yor el programa de apliea-i6n.
DISENOY ADMINISTRACIONDE BASES DE DATOS cardinalidad. El numwo miximo tlr inspurtlt. cstar relationatlo twn ana sola instanria tlrl ot1.o t.onjnnto tlr o1)jrto.s dc ratilopo. En SOL-9%.una c~olt~t~t.iOn
datos. atriht.la\e crtcrna. Un ronjnnto tos Irxic.ogri('icoscuyos va1orr.s .sirlnprtsidtmtil'ican una il11it.a instanvia tlr t l t b
para hawr sus propios t~hml)utt~s. riclo cle vicla dcl tlcsarrollo tlc la base I'iramt.ntt.. clc tlatos (CVDBD). I'n prowso haze dc datos cxtcrna. La \ihtn tlcl nsna1)ara 1.1 tlisvfio. iml)lt*rnrn~atihny rio tlr los tlatos rn rl IRIS. ~nanttmimitw~o tlr una haw dr tlatos. bloqnc. tlc eomunicaei611 tle pruprama eiclo cle vicla del tlesarrollo tlc sistcn~as clave externa recurska. ITna rla\r 1;)(RCP). 111 t~oml~onrntt~ drl BEP. r i n r a tlnr rrfrrrnria a ~ I I1)ropla (SVDS). Un I)rorrao 1 ~ r a1' tlrsa11loqnc de especificacibn dc programa rt.lacii,n. rrollo tlr hihtru1a.i. (BEP). Esl)t~vificalok nomhrrs tlr cifraclo. Cotlifit~acihntit. los tlatos ~)m-a clme interseccibn. 01wrac4hn tlrl ilgrcatla irglnt.uto ~ I uua I aplieati6n dr I)ra rrlarional quth t w a un t w ~ ~ , j ~ ~ n hawrlos inintc.1igil)lt.h a 11n-sonas no I"."grallla 'Ill' "'.'."lrri. t~orrt.sl,olltlv iutrrsrrci6n dr tlos rrlar~ont*s 1in16n an torizadas. a la v-ihta tlr usnario o ~nl)rhcl~~t.~na. cwnl)atil)lr: randitlata tlrsignada t.0rlasc. Lna rrl)rrst.ntat%'~n abstrarta hlocpeo. 1rnl)itlrrl acreso a ou rrpistro 1110 uso principal para ~tlvntificaruni(~dantilla)tlr un ronjnnto tlr o1)jrtos. tit. la haw tlr tlatos 11oruna srguntla ~ o t ~ a m r nlas t r filas dr una rrlar10n. claw cle inscrribn tlc roniunto. Es la trankartibn hasta true la nrinw-a clabe secundaria. I n rlrlnrnto tlr dato I.II)O valor idrritifira a nu twnlunto sus arriollri. tlr rt~gistros. I)loqueo de csrritura. El usuario tivnr CODASYL (Conference on Data Spstlt.rwho a 1rt.r ! a artnali7ar rl rrgisterns 1,anguapes). lJna organizat~15n rlasc clc rctenci6n tle coujunto. 1':s lo tro dado. c.ornl)ursta dc rrprcsc.nt.111tc.s dr 10s qur DBTC tlrttwn~nac6mo y cwintlo h l o ~ ~ u ede o lectnra. El osuario tirnr fahrirantrs tlr hardware y software y un rrgistro m ~ t w h r osr 1)urdr ( p a r tlt.rt.t.ho a Itvr rl rrpstro tlatlo. tle 10s usuarios; ronocida p r i n r i l d tlr n n twnlnnto; 1)urtlr srr ohligatoria I)locInco en dos fases. ITn mltotlo dr mrntc par el (Icsarrollo drl Irnguaj(x (*ontrol 1 1 ~ 1I)rocv.sa~nlrnto c*onruCOBOL. rrrntr ru rl rnal todai las olwratioronjunto. En rl modrlo dr DBTG, una nrs tlr 1)loqnro prrvrdrn a la l~rirnrra intrrrrlaci6n uno-ruuchos rntrr tlos ol)rraciOn tlr lil)rrarii,n. 'wtros. tipos dr rc,' rual SP rx1)rrsan 10s hrchos y ('1 noBut611 Open Tahle. ( Z l ~ r Tabla.) ~r completo relacionahneute. Qnr tirnr timitmto; :- < h a dr Botbn Run Q u t q . (Ejvtwtar twnsulta.) rl rnisnw podrr 16gico clur rl ilgrhra o hiphtrsio. Bovre-Codd (FRBC). Todo tlrtrrmirl rilrulo. cliusula FROM. Lista lab tal)lak clue nanttxPS nna t-labr. cunertores booleanos. .4ND, OR, NOT. son rrfrritlas por la consulta. BREAK. Palahra rrsrrvada clur c.aiisa ronjunto de ohjetos. Un ronjunto dr cliusula GROUP BY. 1ndit.a cju; fias la salida de la cjccurii,n tlc un lazo rosas dr la misn~arlasr. drhm agruparsr sohrr un valor roWHILE. conjunto de objetos ahstractus. Un ronmi~ntlr las cdumna(s) rsprtifitdi(s). jnnto tlr o1)jcto.sqnr twnsistr dr las inscliusula HAVING. Una rliusnla clue tanrias clur no sc l)ut~dvn imlwimir. imponr rondicionrs a 10s grupos. ronjunto de objctos agregado. Una inrliusula SELECT. Srfiala las roluninas trrrrlarihn vista ronio un ronjunto de clue dewan cn la consnlta. caja de condicibn. En QBE es una raja o1)jctos. clinsula WHERE. Nos da la rondirihn rn la cual sr purde rxprrsar una ronconjunto de ohjetos fisicos. Un twnjunpara wkrrionar las filas tlr las t a l h s di&n compleja dc una consulta. to de ohjetos ruyas instancias son indiradas. rilrulo relational. Ln lrnguajr no proohjrtos fisiros. clave. Campos (ir datos quc identifiran rrdiulrntal para la drfinirihn de sohconjuntu de ul~jetosldxico. Un cwnjununivocamrntc nn rrgistro rn un rionrs a c*onsnhas. lo tlr o1)jctos quc ronsiste de las iuscamino. Un conjunto t k puntrros qur tancias clue sr purtlm imprimir. clave. Un valor que siernprr purde utiIlrvan drsdr un rrgistro intliw haria conjunto soluci6n. IJn ronjunto de valizarsr para idrntifirar univoramrntr otro. lorrs dr datos dr la 1)asr dr tiatos clue una instancia caurino de expansibn. El ramino tlrsde sa~isfaetxlas condiriones de nna ronclave candidata. Caalqairr ronjanto r1 oriprn a la unidatl tlr rvferrntia m sul~a. de atrihutos clue puede ser elegido coel anilisis AED. conoci~nientode direcci6u-empresa. Como una clave de una r r l a c i h . aracteres colnodines. Simholos espenorirnirnto qur ayuda a nna em1)rrsa clavc conipuesta. Ilna rlavr compurscialcs clue valen por cualquirr cadma a tomar dreisionrs. ta tlc mis dc un atrihuto. dr caractrres.
c o n o r i ~ ~ ~ i t espreifiro ~ulo d r la aplicacihn. (:onotiniiruto trnr sr drtrrutina j)or las rrglas y las con\t.nrionrs t ~ u rsr aldivan a un dominio rspwifiro d r ~)rol)lcn~a.
c u a ~ ~ t i f i c a d ou rn i ~ e r s a l . Exprrsibn tlrl rilrulo rrlarit~nalclue rsta1)lt:er q u r nua cirrta twndicitin st. Ir al)lit-aa todu fila tlr algi~nti])(). cuarta formu ~ ~ o r m(4,FN). al Una rrlacihn t p r r s t i en 3FN y no tirnr tlr1)rutlrncias ~ n n l t i r v a l ~ ~ a d a s . cursor. Una fac*ilidatl drl SOL i n r n w n r~sultado en la t p r w a h ~ w n a lob tatlos d r nna t.onsulta SOL Imra in ultrrior ~ ~ ~ . o c w a m i r n t o .
dt.terniinante. El atriljuto tlr la 1)artr izqnirrda dc m a I)F drtcrn~inarl valor d r 111sotros atrillntos rn nna tnpla. tiiario d e operaciones. lJn rtyistro d r to solwr drprntlrntiis y rrstrict%)nrs r n t w los datos. todas la3 transacrionrs j- 111s camIlios t.orrty)ontlientr.; rn la I ~ a s rde conocin~ientoe n extenso. Ilrchos clnr sr alnlat-man r n lab rrlac~onrstlr la ttatos. 1)asc tlr datos. cliccionario d r dalos. Parte tlrl SGDR clue tlrfinr la rstroctura tlr 10s tlatos ronoriinit~nto yrorediu~rutal. tlrl usuario y t~timoCstos son usatlo\. Conovimirnto q n r shlo s r purtlr tlcs13ril)ir])or nn p r w r d i m ~ r u t o . diferencia. Opt~rariOntlrl iilgc4)ra rrlarional tlur r r r a nn twr~,iuntodikrenria r o n o r i n ~ i e ~ i et on intenso. Conor~~nivnUataWindow painter. Un puintt~rtjur tlr 110s rrlatic~nrs u ~ ~ i b ~ ~ - c o ~ i ~ ~ ) a t i l ) to t p c w dvt1ut.r tlrl conotimirnto rn twnstruyt. o1)jrtos DataE"intlow quc. cxtmso !)or la aplirarihu d r rrglas. deterrihn d e interbloqnro. Una conacrrtltm a la h s r d r datos y Ijonrn los ronsulta tiisvuntiva. Una comulta ruproharihn prrii~dit-atiel SGRI) para rrsultatlos rn vrntanas. dvtrrminar si la t d a dv esprra para datos. 11rt.hos aislados. algunos rrrursos cxtwtc un litnitr tlalos globales. Datos t p v w m a n t i v n r ~ ~ prctlrtrrnnuado. m una hasr d r tlatos cnya u1)iracihn diseiio conrevlual. Crracibn drl rs r s tlifrrmtr para al mrnos uno d r los pa1 t 1 w t'ontisnr a las suhu~nsultas. q w m a dtl n i \ r l r o n t q t u a l para la usnarios. consulta muhi-tabla. Una t.or~snltaclue I m r dv datos. datos locales. Datos tbri misrno sitio o loinvolutm a mas tlr una tabla. tiisriio concrptnal d e hases d e clatos. calitlad ron sn prolia hasr th. datos. ronsulta simple. Una twnsult;~q n r inItlrntific*ariin tlr 111s elctnentos dr DBGT (Database Task Group). Un s d \oluc.ra a ona sola tabla d r la base d r grupo d r CODASYL qnc tirnr la r t w tlatos. para nna 11asr dc tiatos. ponsahilitlad d r drsarrollar los rstinCONTINUE. Palalwa rtwrvada tint: cliseiio fisico d e la base d e clatos. Drtlarrs tlr los sistrmas d r gestibn d r causa clur rI t*oi~troltlr ejt.cucihn (11, trrminatibn clr 10s tlispositivos de bas(-s (I(: datos. un I)ut,lr WHILE rrtornr a la primealmacrnamirnto. mitodos tlr accrso drfinicibn d e dominio. Un tipo (It. dainclirrs para usar la 1)akr tle datos. ra instrwci011tlrl 11uclr. tos rsperializado clefinitio tlcntro d r control. Un dispositivo grafico por rl disparaclor. Un programa clue se ejrcuun esqnrma y usado m las definiriocual rl nsnario interartua ron el sista automiticanwnte ruando sr intrnnrs tlr rolumnas. ta h a r r r una drtrmminada actualizatr~na. drfinicibn d e esquema. Drst.riprihn tic ciOn sohrr una tallla especifiva. control d e integridad (restrircicin). una l m r d r datos para (-1 SGRD. Una rrstrit:c:i6n aplicada a un conDISTINCT. Oprrador q u r rlimina las definicibn d e requisites. Drtrrminajunto d t ~ t r r n ~ i n a ddco datos: ntilizado filas duplicadas. vibn d r 10s rcquisitos de informavi6n nara ruinimizar 111s rrrorcs r n la Distributed INGRESS. Un SGBDD cod r las i r r a s administrativas I; funriorntrada dt. los datos. mercializado por Relational Trchnonalrs. controles d e accesu. Con~rolcsqur lilogy. DELETE. Oprratihn tlnr cluita filas tic mitan rl acrrso del nsuario a los prodirigida-por-eventos. Una carartrrism a rt:laribn. gramas y a 10s datos. tiva de la aplicaciim (rue significa clue drvrndencia f'uneional. El valor tle nn controles d e concurrencia. Contro1t.s se escrihrn scripts para responder a alrihito tan nna tupla drtcrmina el qut* n ~ a n t i r n r nla intrgridad d r la 10s rlrntos qur tirnrn lugar. l a l o r d r otro atrihuto rn la tupla. hasr llr datos cwando (111so m i s nsuadivisihn. Oprrari6n drl algebra reladependenria ~nidtievaluada(DMV). IJna rios siniult~nramrntr solicitan un rional q u r crra una nurva rrlaribn rrstritvGn q u r p r a n t i z a la intlrrrrristro d r la h a w d r datos. srlrccionando las filas en una relaI)rntltwria mutua d r a t r ~ h u t o smnlticontroles d e respaldo y rtcuyrracibn. ri6n clue s r corrcsponcien con todus rbaluados. Aqudlos controlrs q u r proporeionan las fila m olra rrlariin. dependencia tramitiva. Aparrct. ruanmrdios para restaurar la I)asr dv divisibn d e correspondencia (mapping do un atrihuto no t h v e rs funrionaldatos en raso d r fallos tie1 sistema. division). La porcibn d r l subrsqurnlrntr dr~wnditwtrd r uno o m i s atricoulroles d e visla. Aqurllos controlrs ma drl DBTC: qur prrmite cambiar hntoc no rlavrs. que rrstringrn el acceso a lab vistas 10s nombres qur s r usan en el rsquedescornposicicin d e relaciones. Dibi(subronjuntos d r las rrlaciones clr la ma por 10s nombres rscogidos para el sibn tlc una rrlari6n en multip1t.s r r base). subesqurma. lationes. cuantificador existencial. E x l ~ r e s ~ bdel n divisicin d e estructura. La porcibn del descripcibn d e la base d e datos (DBD). cilrulo relational q u r afirma la cuissubesqurma del DBTC; donde se drfiLa nlanrra m quc 10s tlatos son almatencia d r a1 mrnos m a fila a la cual se nen 10s registros, 10s elemmtos de rrnados fisicamentr m IMS (estrucIr aplica la condivibn. tura interna d r la h a w d r datos). datos y 10s conjuntos del esquema. (%
-
-
DISENOY ADMINISTRACIONDE BASES DE DATOS tli\isicin d e titulo. La portii,n tlrl s u b (~ ric111r111a tlrl UBTC t ~ n rp r r m ~ t tldr
L11 (Data language 1). Lrnguajr (11.manipulaci611 tlr tlatoh tlc1 [MS. dou~inio. El tbrmino PRO1,OG 11ara la rhlwific*ac*ii,ntlr un tilw tlr dato. d o ~ n i n i odel atrihnto. El conjunto 111s \ alorrs (111r11nrtk tomar un atriljuto. tlnriio d e un esquenla. Prrsona clur tirnr autoriclatl y rrspou~alditlat11)ar a otorgar arwso a taldas. cwlumnas ? bistas r n un rscpenla tlr hasr clr tlatos.
rjrrnci6n r n serie. 'Arrionrh ( p e sr rjctxtan una tlrspnis cle otra; no hay avrionc-s en paralrlo. r l r ~ n e n t oejen~plo. Una arialdr rn QRE t ~ n rrrprehrnta un valor no csprcificado tw nna rolun~na(1e una tahla. eneadenamicntu haeia delante. Una ratlrna d r reglas tjur van tlr una hipcitesis a mla r o n r l u s i h . eneadenaniiento Iiaria detris. Una radrna lcigira tlr rcglas q u r van tlr m a ronrlusi6n a m a hiphtrsis. enfoqur urirntaclu a datus. Crntra la atenricin rn r1 anilisis clr los datos utilizaclos por las f h r i o n r s . enfuqne orientadu a funeiones. Vrr a un sistrma desdr la perspertiva tle las fnnciones q u r d r b r rralizar. enlace. Canalrs d r comunicariim entrr dos sitios d r la red y que provrrn las raparidades tlr tranbfrrrntia de tlatos. enlaee fisico. Un rnetlio de conectar los registros usando las dirrcciones (I(, registros m disco. equirreunibn. Keunicin theta 1)asada en la ignaldad de colnrnnas esperifiras. esquenla. Una definieihn de la estructnra lcigira de la hasr d r datos cornpleta. esquenla d e informacion. Esquerna en un catilogo que contiene metadatos. rspecializacion. IJn conjunto dc objetos qne es un sulronjunto d r otro ronjunto de ohjetos especifieacibn d e consulta. Definicicin de una consulta que se usa en una definicicin d r vista, declararicin d r cursor u otra instruccicin.
,
atrihutos y las rlavrs forinvas. rstndio tie ~iahilidad. Partr tlrl C W B U (1ur tletrnnina la vial~iliclatlrtwnhmi(.a. tc,c*nolhgic*ay olwrac*ioual tlr la hasr tle tlatos. EXCEPT. Olwrat~ihnqur vrra rl (.onjunto tlifrrrnria r n t r r doh rrlarionrs. expresibn d c ralifiraricin. llna twntlicihn vrrtlatlrra o lalsa tlur sr rrficw a la lista rcwdtatlo y cluv drlw rumplirsr para 10s t*ltwwntos rn (.I twnjunto holnt*ihn.
Forma Norn~alUo~uinioClaw (FNDLL). Hrquirrc. qur ('atla rrstrit*c.ii,n hra rrsultatlo tlr tlrlinitiont~s111sdominios y 1-laves. f u r n ~ a snorn~ales. Rrglas para relarioncxs c~strurturaclasclue rliminan anomaliah. f u r n ~ a t o ruenta-dato. Un lormato tlr tlatos 1)ara p i s t a ~ ( ~no u r usan rlavrs rxtrrnah. formato rurnta-rlavr. Un lormato dt, tlatos para pistas ( I I I ( ~ nsan d a v r s rxtt'rnas. frag~nentaciond e datos. La partiricin (Ie una rrlarihn 1.n un SBDD. frapnentacicin horizontal. P a r t i r i h clr una r c l a v i h rn su1)conjnntos tle sns tuplas. frWnentaeicin vertical. Particionar una rrlacicin por la proyrcciim tlrl sul)conjunto d r SIIS atributos. frontera d e la eficiencia. La frontrra rxtrrior r n rl anilisis AED. funcion integrada. Una funcicin estadistica clue opera sohrr un conjunto d r filas - SUM, (AVG, COUNT, MAX, MIN. funci6n d e conjuntos. Una fnncicin intrgrada.
generalizacicin. Cn ronjunto de objrtos que rs un supcrronjunto de (o clue conticmc a) otro conjunto de ohjetus. grado d r la relacion. El nilmrro d r atributos m una rrlacicin. grafo dirigido. Una rstrurtura matrmiitira en la que 10s puntos o nodos e s t i r ~ ronertados por flerhas o aristas.
tlr rsl~ct~ializatihn tlur cansa clur i s t r t r n p todos los atributos tlrl (sonjunto grnrralizatlo. hijo. Un rrgistro "sulmrdinatlo" cw una intrrrrlarihn jrrircluica. hon16nimo. Un tirmino c ~ u rtivnr clifrrrntrs signifirados r n difrrrntrs (sontrxtos. HDAM. Mbtodo d r a t w s o drl IMS.
Ijrinda la t*apac.~dadpara r r c y r r a 1-ionrs dr s r p c n t o s tanto dirrrta I Y rno securncxd. hoja. El rrgistro indire en el nivel rnas hajo de un i r l d r n r a i ~ a t l o . HSAM. Mbtodo de arrrso del IMS. muy ripitlo para reruperariones de srg-
identificador. Una rlave externa. IDS (Integrated Data Store). Uno de 10s primcros sistcmas dv grsti6n tle hases de datos; sn arquitrctura estuvo muy influenciada por las recomendacionrs drl DBTG para un rnodelo de hasr d r datos cw red. IMS (IBM's Information Managrrnrnt Systrm). SGBD hasado en el rnodelo d r datos jrrirquico. indicadures d e actualizacicin. Marcas tlr posicicin cle los rrgistros clue han sido encontrados. informaeibn. Datos organizatlos o r r informaci6n para la gesticin. lnforrnaricin de apoyo a los q u r tornan drcisionrs y a las oprracionrs drutro d r nna cornpaiiia. instancia de u n objeto. Un rniernhro particular de nn conjunto tlr objetos. integridad d e 10s datos. La exartitutl y la consistencia de los datos alrnacenados en el sisterna d r base tlr datos. interbloqueu (deadlock). Dos transacciones sr rxrluyen rnutnarnrntr del acceso al siguirntr registro requerido para wmpletar cada una de sus
transarciones: t;~ml)ibni t . drnomina "altrazo mortal". instruecibn FETCH. lTna instrurc10n qne toma nna fila a 11artir d r nn twrior qne pa ha s~tloahirrto. inbtrurcibn hloqur. (1 nna sola inst r u t G m SOL sin tlelirnitadorrs ( I un t-onjunto dc tlos o n15s instrucciont.~ SQI, dcliinitatlas 11t1r BE(;IN ... END. iuetruecion IF. Una iristruccihn ruva rjrt~nticintirpmdr tle la vt.raridatl d r uua cwndiciinr. cursor. 1nstrnccit1i l ~ s t r u r c i i ,OPEN ~~ nrs SOL qur causan q u r rl SGBU prot.t:w nna t:onsulta y "almatww" 1.1 rt:sultatlo en el cursor. illstrucricin Una instruecihn qut- usa una t:on1lici6n para controlar la rjrrurihn itrrativa tlr un bloqur d r instrurrionrs. instrurci6n conclirional. Una inbtrut.ci6n que pregnnta por una twdicicin y tleterm~nael procrsam~c~nto a wgulr segul~el cwmplimitmto d r la rondit i h . instruccibn CASE. Sr uia (*onel SWlTCH para intlirar m i l rs el procesamirnto a srguir cuantlo nna condicihn sea verdatlrra. instrucci611 SWITCH. Una instruccihn clue permite preguntar por una serie de rontliciones. instruction tlr califirari6n. Una (.ondici6n en una instrucrihn tlel riilculo relacional c p t : restringr la mrmbrrsia en una rrlaribn soluci611. instrucri6n iterativa. Una instruccibn clue se pua'lr reprtir una tirrta cantidad d r veers. instrurciones d e serializa&n w a g sstaternents). lnstrurcionrs SQL clue st. incrustan en un programa de apliracihn uara sefialar d6nde comienza o termina nn ronjunto de instrurciones SQL. integracibn d e los datos. Combinar 10s clatos para un uso cornin. integridad d e 10s datos. Prer~sibn y consistrnria tle 10s valores de lo5 clatos en la base d r tlatos. lnterfaz G r X ~ e ade [Jsuario (GUI). Pantallas y funciones que proporcionan a1 usuario final un medio gral'ico para tener acceso a1 sistema cle computacihn. interoperabilidad. El estado que caracteriza a multiples sistrmas heteroginros q u u e comunican y contrihyen a la terminarihn de una tarea comin. \
,
interrelaci6n. 1111rnlarr rntrr instantias d r dos conjuntos tlr olbjetos. iuterrrlacibn hinaria. Iina intrrrelacihn m t r e doh c:onjnntos tlr ol)jetos. i n t r r r e l a c i h de alto nivel. Ilna intrrrrlaci6n r n t r r tres o n ~ i st:onjuntos tlr ol~jetos interrelacibn funrional. lina intrrrrlacihn que time una rartlinalidatl nlixima tlr valor 1 rn a1 menus una dirt~~:ibn. interrelaricin n-aria. Una i n t r r r e l a c i h r n t r r 17 conjnntos dt*ol~jrtos. intrrreIaci6n rcrursiva. Una rrlacihn q n r rrlat*iona un o l ~ j r t o ronsigo nrismo. INSERT. Oprraci6n qur causa que se aiiadan filas a una relaci6n. Intrrfaz Grifica d e Usuariu (GUI). Pantallas y funtionrs clue hrindan medios grificos para qur un usuario final accrda a un sisten~ade c:hmpnto. INTERSECT. Oprrari6n q u r crea el c~tnjunto interset.c:ihn tlr dos rclacionrs.
JOIN ON. Ol)rrar1Sn clue ronerta las relacionrs cuando orurre una rondiribn JOIN IJSING. Operarihn clue conrrta la5 relacionrs ruantlo las rolumnas rorunnes designatlas tienen igualrs valores.
lewaje anfitrion (host language). Lmguajr de 10s programas en 10s cuales stbpuedrn Inrrustar las instrueclones SQL. Lenguaje d e Definici6n d e Datos (LDD) (Data Dejinition Languagr) (DDL). El lrnguaje que se usa para esprcifirar el esqucma de una h s e cle datos. Lenguaje cle Manipulaci6n d e Datos (LMD) (Dnta Manipulation Lanpuage) (DML). El lenguaje q u r se usa para almarenar y manipular 10s tlatos. lenguaje flujode-control. Lenguaje de manivulaci6n tlr datos tie SOL Server. lenguaje grifico. Un lenguaje cle cornputadoras que usa representaciones pict6ricas para resolver 10s problrmas.
lenguaje textual. Un Irnguaje de rom[butadoras cuyas instrurciones ronsisten en c*aclenasd r vararterrs. lista inverticla. IJn dircctorio en don& cada entrada t,ontic:nr u n apuntador a todos 10s rrgistros f'iskos von 1111 valtrr csprt:ific:o. lista resultado. Una lista c:n una instrnc.ci6n 1lr1ci1t:ulo relational c p r drf'inr los atrihitos tlr la relaciOn solucihn. literal cadena d e caracteres. Litcrales formados por carac:tertbs alfanun~iriI-osy por carartcares "espetiales". Iogica clr primer orden. Una estrnrtw ra l6giea qur hr caracteriza por un conjunto d r objetos. un ronjunto d r l~redit.atlos(rada uno tlr los ruales cvalim vertladertr o falso) y un ronjunto ale funtiones.
nlarca d e tiempo (tirnesturnp). Un mitoclo para identific:ar 10s n~ensajes con la hora de transmisih. IMARB IV (Control Data Corporation's Multi-Acress Retrieval System), SGBD 1)asado m el modrlo d r datos jerirquico. memuria principal. ;ilmac-in localizatlo en la uniclad de prowsan~icmto central: usatlo para h a r r r disponil~le los tlatos para lab oprrarionrb d r lo\ usuarios. metaclato. Informaci6n tlescriptiva soI r e las hasrs tle datos. nletaclatos. Datos en el tlicrionario d r datos q u r descrihen la hase tlr tlatos. modelo. Una rrpresentarihn de la rralidad qur retiene s6lo tletallrs selrccionaclos. modclo d e datos. Un mitotio r o n c e p tual para estructurar 10s datos. modelo d e datos jerirpuico. Un motlelo d r tlato en el cual todas las interrelaciones son estrurturaclas c:onio id~oles. modelo d e datos relaeional. Un modelo de datos dontle 10s clatos se representan en fbrnla de tabla. modelo cle datos en red. Representa 10s datos en estrueturas en rcdes de tipos de reestro conectados en interrrlarimes uno-uno o muchos-muclios. modelo jerirpuico. Un modelo de datos que presume que totlas las interrelaciones entre 10s datos puetlen estructurarse como jerarquias. modelo orientado a objetos. Un modelo que representa las eutidades del
DISENOY A D M I N I S T R A C I ODE N BASES DE DATOS operador NOT EXISTS. Evalila \ I T datlrro si r l twnjunto rt.snltantr rs vatio. uperaclures d r c o n ~ p a r a r i c i ~=.~ o, . <. >.
R.iTlTR.4L JOIN. O p t ~ a r i 6 nqor con(.(,ta las rrlacionrs c.uantlo las t~olnmnas t ~ o n n ~tirurn ~ ~ t ~ignalrs s valorrs. nivel ronrrptnal. Rivd rstr~wturaltlr la I)asca tlr thtos qut* tlefinr 1.1 cwlurula li~girotlr la I~asetlr tlatos. nivel rxterno. Nivrl rstrut.tnral d r la 11aw tlr tlatos q u r def'inr las vistas tlr los usnarios. 11ivc1 interno. Nivrl c.strnrtnra1 d r la 1)asr tit* datos q n r tlrfint. la vista Gsira tlv la I)as~stlr datos. 110 procedimental. Lrnguajt. qnr pro1)ort.iona IIII nwtlio (It* rstal)lrtvr t p 6 st2I Irsri~tw Ingar d r r6i11ohawrlo. nodo. P a r t r tlv una rstrorturu (.II red rt~prrst*nlatla par nn pnnto. ~ ~ o r n ~ a l i z a c i r iEl n . 1)rorvso de twnvrrsi611 tlv nna rrlatihn 1.n una forma wthndar.
ul!jetu roinpleju. Correspondr a 1111 a p q a t l o o intrrrrlacihn tle alto nivel. ohjetu runccptnal. Un o l ~ j r t oquc rrprrsenta nn t i p d r ( m a . uhjctu fisicu. Un ol)jrtt~qur rrprtSsrnta nna r o w fisica esprt*iSica. o r u r r e n r i a . Sincinimo d r instancia. ucurrenria del sepnento. Trrminologia d d 1MS para oc.nrrencias d r r r gistroa. operador EXISTS. Evaliia vrrtlatiero si rl conjunto resultante es no v a t h .
prinier;~forma n u r n ~ a l(1FN). l'otlos 10s valorrs tit. los atrihutos tlrlwn srr atiln~itws. pruredin~ental. 1,rngoajr qur lwnvtht' nn rnbtotlo paso-po~.-l)asol ~ r ala <=. >= solurihn tlr 1)rol)lrmas. iirdcnes ,de a r t n a l i z a r i h d e conjunI)rucetli~nientu. Tnstrurc*ionrs rscritas tos. 0rtlt.nt.s tlel LMI) tlrl I)RT(; tlur t l e w r i l ~ m 11,s p s o s nrwsarios t p r sr I I S ~ I I 1)ara ( w a r . t.;~nll)iaro 1,ar.a rralizar una tarra tlrtvrminatla borrar twnjuntos instanrias. cw nn sistrma. rirdynra d e artualizari6n tlr registros. prorctlimiento a l n ~ a r e n a d o . Lrn proOrtltwrs tltd 1,Ml) dt.1 DKT(; qnr sr grama rompilatlo a Irngnajr tlv m&usan 11ara vatnhiar los valorrs tlr los quina y 111wsr salva para "1 t j . i ' t ' ~ ~ rrgistros dt. la I)aw tlr tlat!~s. cihn rrprtitla mis rf'icirntr. cirdrnes d e rernperaci61i. Ordrnrs tlrl prucecli~nicntosd e rccuprrari6n d e la 1,MD t l d 1)UTG clnr sr usan llara rrrnlwrar rrgistros tlr la hasr ~ l tlatos. r hasr de datos. Los mcdios n~rtliantr los rnalrs una IIM- d r dat~jsqnr sr ha rirdenes navegarionales. llna ortlrn vorrompitlo 1"". t1csl)rrt't~*tospiirth* drl LhlD tlrl 1)BTG t ~ u rsts nsa Ilara rntwntrar rtyistros t l v la I ~ a s r tlr 1 ~ r s t ~ l l ~ l l ~at ~Urlrl srst:1tI0 r rorrtTtt1 y consistrntr. clatos. p r u r e s a ~ n i r n t u runcurrente (runcnrrencia). Ocurrl t.aando tlos o ~ n i s transarcioncbs I d e n a w t w r o n t w rrrntrmcmtr a un n~ismorrgistro d r rrcistro "tl~~riio'.ITI una in1)atIrr. l111 la I m t . d r ~latosaproxin~atlamtwteal ~nismotirmpo. prucesan~ientu con a r r c s o directo. hasr tlr datos p r a n ~ i t ~ r o t w n ~ ~ n t a t l o - Un m6totlo tlr awrso a Iln arrhivo ras ruyo Irup~ajt.tlr twuinlta rs QBE. clue ~ w r m i t ct.1 a t w s o t h r t o a 1111 p a r i ~ n r t r o . llna varial~lcclue st3 nsa ~,tyistrorslwrif'i~w. para pasar o wcd)ir tlatos tit. nn 1)roproccsan~iento electriiniro d e tlatos. twlin~irntoalrnat.rnatlt~. .4utomatixatihn cwnl~ntacional tlrl ~ ~ q w l al r o 11ivt.l ol~rrarionald r nna nlanifiracicin tle la h a w tle datus. Ksorganizatihn. fut*rao rstrat&ro para drterminar pruducto. Oprraricin dt.1 blpl)ra rrlalas nrrrsidadrs tlr inforniacihn tlr un rional q u r c'rea rl l)rotlnt.t~) rartwiarutrnso ~wriodo111, tirmpo. no tit, dos relacionc~s. planifiraririn prelin~inar. Planif'itwihn protlnrto cartesiano. Resultado d r apatlr nna I ~ s t .tlr tlatos qur ocwrrr rvar ratla fila d r nna tal)la (.on todrrs tlurantr el 1)rotwo dt* planifit.acihn I;w f'ilas d r otra tallla rstrat6gica d r la hasr tlt- datos. prufesiunales d e la romputacirin. Perplantilla d c sepnentu. El formato drl sonas responsal)lrs del sisttvna d r 6rt.a d r trallajo del p r o p i m a para I ~ a s rtlc tlatos y del paqurtr tlr proun srgmento. p1;lntillas tle registru (record templograrnas d r apliracihn asotiadn. prugrarna d e apliraririr~. L!n programs tes). For~natosnsatlos por los rrgistros q n r i r Iwn en r l Lrra d r trahajo dc t~ornp~itatloraq u r rraliza ona del osuario. tarra rspcrifi~:ad~ valor 1)rLt.tico m nua sitnariOn d r nrgotios. plataforn~a rliente/servitlur. Una rrtl loral qnr roi~sistren t.oml~ntadoras propiedad importante. LTna propirtlad de un SGBD q u r no rs ol)ligatoria clientrs. las t*nalrs retihen servicios p r o h a w a1 SGBD rnis atravtivo. tle una cornputadora s r r ~ i d o r . propiedad indeseable. Una propiedat1 PLISQI,. L r n g o a j ~tlr manip1tlaci6n d r dc un SGBD q n r Ir rrsta valor al datos tlr O r a r k . predicadu. lJna rxprrsiim (lor rvali~a SGBD para la Sirma. propiedad innccesaria. I!na propirtlad trrtladwo o falio. preview (uistn pre/iminar). Lln rrcurso tlc un SGBD clue no contrihuyr rn que p ~ r m i t ral qnr drsarrolla la aplinada al valor del SGBD para la firma. carinn vrr r6mo a r j a r c c ~ r ila Datapropiedad ol~ligaturia. Una propiedat1 Window cuantlo sr ponga en una vcnd r un SGBD qut. ticnc q n r s r r protana. I~ortionada.
red d c i r e a local (LAN). llna red tlr c o m ~ ~ ~ t a d o1.11r ala (jar 10s sitios t-stin 111)it:adusa corta tliatancia (por 11) gent:raI nlrnos dtl una milla) uno d r otro. p r o t o r o l t ~de c i r r r e d e dos-fases. Un rctlundancia d e datos. RrprtitiOn (It. peotocd~)qur c.onsistr r n una fasr d r d a t ~ )tbn s una 11asvtle datos. 11rrl)arado-l~ara-rl-c.irrrr y una fasr rcgistro fisico. Un 1)loqnr Sisiro dt. tlt- totarihn I r r r r a r u a h t a r . datos. proyrcricin. Krlacihn q u r rcsulta tit. reirnicin. Oprracihn drl algebra rrlaona opcrat%'~n tit: proyrt.tar. ci~jnalqur conrcta rrlac.ioncs. ~royeccicind e una rrlacibn. Ln;r ~ I L - reunibn extrrna. Expansihn tlr la r r w tibn cornllursta dr atril~ntossrleccionihn nalural qnr iut.luyr todns las natlos tlr otra rrlat.ihn. Silas d r an11)as rrlarionrs. proyrctar. Oprracihn drl ilgt.l)ra rrlareunibn natural. Oprracibn de reunihn cional yne crra nnii rclaciim 1)orrantlo qor coneeta rrlaciones t w d o las tduninas tlc nna rrlatii~nrxistrntt.. wlurnnas comunrs tienen igualrs vap r u r l ~ a sde evaluari611. Un mbtodo tit. lorrs. c.onq)a~wihndrl rendimirnto tlr un rrunibn theta. O p r r a ~ i b nd r rrunihn SGBD nicdiantr 11rurl)as sol)rt. apliq u r ronwta rrlat.iones cnando los t.ac:ionrs rrales. valorrs d r tivtrrniinadas ~:olumn;rs puntero. Una dirrccihn fisica tlur idcntirnrn nna interrelarihn esprcifica. tifira tl6ndr I)urdr rnt:ontrarsr nn registro d e la base d e datos. Una ocrirrgistro sollrr el tlistw. rrt:nc:ia d r una raiz y todas sus tipos puntero actual. Conticnr la dircccihn tic. srgmrntos deprutlirntrs. tlrl ultimo srgmcnto q u r scbacc:rtlih c:n rrgistro l6gic0. Un t i p de rrgistro el ir1)Ol. como sr vc drsdr la prrsprrtiva drl punto d e expansibn. Cualqoier punto usuario. r n rl (.amino d r rxpansihn r n rl aniliregla. Una rrstrircihn sohrr rl valor ynr sis AED. sr lwrrnitr m una rolnmna. rstahlrcipunto d e frontera. Cualqoirr p u ~ ~ t t ~ (la por una cxprrsihn condicional. w h r c la frontrra m r l anilisis AED. rrgla tlr i n t e p i d a d d e la entidad. El puntos tle comprol1aci611. Copias d r la atributo qur es (.lave de una Lila no base d r tlatos r n rnomrntoi prrtlrtrrpurdr s r r nulo. minados tlurantr rl procrsan~iento:la regla d c integridatl referenrial. El varrcuperacihn d r la h a w d r datos lor no nulo d r una clavr forinra d r h romicnsa o trrinina rn 1.1 punto d r w r un valor real d r la (.lave d r otra cl~equeomis rrricntr. rclaci0n. relacion. Una tabla d r dos dimensionrs yur contirnr filas y columnas de datos quinta forma normal (.SFN). Una forrelacion de intcrseccicin. Una relacihn ma normal yur dimina Ias deprndrnqur reprrsrnta instancia dondr otras rias de unihn. tlos rrlaciunrs sr enc:urntran en una intrrrelarion muchos-niuchos restriecion (cor~stmint). Una regla clue restringe los valores en una Ibasr de datos. recorrido pre-orden. Un n16todo de restricricin CHECK. Una rcstriccihn eonvcrsihn tlr m a rstructura de i r general, l~asada en una rxpresihn 1101a n n arrhivo plano que contitme condicional, que se imponr s o h e una la informacihn nrrrsaria sobrr las columna o sobre una tallla. intrrrrlaciones jrrirquicas. restricri6n d e columna. Una restricred. Una intrrrelacihn tle datos en la cihn que sr esta1)lrer en la definicihn cual un registro puedr estar suborde m a columna en una tabla. dinatlo a regstros d r mis d r u n at.restriccicin d e tabla. Una restriccihn rhivo. que se aplica simultinean~entea rnfilred d e Area anrplia (WAN). Una rrtl de tiyles colun~nasde una tallla. computadoras en la clue 10s sitios rrstricci6n UNIQUE. Una restricci6n estin bastante disprrsos geogtificammtr. qur garantiza que tius tuplas de una
rnihrna relaciOn no trnpan rl mismo valor en una columns. restriccibu d c valor. Una rrgla q u r 1lr8fine 10s valorrs l~rrniisil)lespara 11n dato rn rsprt:iSi'ic:o. retencicin r?ja. Es cuando rrl DBTC;. una vcxz qur nrl rrgistro mirml)ro ha kitlo asicrnado a una wurrentia d r un wnjunto, bstt. d r h sirmprc. rstar r n alguna ornrrrncla d r tiicho corljunto. retencicin opcional. Es cuando en DBTG no w hail impursto rrstr~rcionrs so1)r.e las twnexiunrs o rtwnrxiours a t i p s d r ronjunto. r r t r n c i b l ~ obligatoria. Es cuando ru DBTG, una vcz qur un regstro miemhro ha sido asignatlo a una ocurrrncia d r onju junto, 6str no sr puedr quitar tlel conjunto a mmos qur el reeistro se borrr d r la hasr de datos. reticulo complejo. Una e s t r u ~ ~ t u rdar datos en la rual las intrrrrlacionrh t)inarias son muchos-mucahos. reticulo sirnde. Una estructura d r datos en la twal totlas las intrrrrlavionrs binarias son uno-muchos. R*. Un SGBDI) t~~mrrcializadopor
IBM.
secci6n cle conjuntos. La sect-i6n drl rsqnmla drl DBTC; qur tlrf'inr 10s conjuntus r inrluyr el tipo d r reb4stro duriio y 10s t i p s tlr rrgistros miem1)ros. srwicin d c rsquenra. La scccihn drl rsqurma del DBGT ynr nomllra a1 esqurma. secricin d e rcgistro. La seccihr~ tlel DBGT q u r drfine ratla registro. sus elemrntos de datos y sus loralizacionrs. seceicin d e subcsquema d e conjuntos. La srrrihn d r la divisihn dr la rstructura qur drfinc los ronjuntoh q u r sr van mcluir. seccicin d e sohrsquema d e registros. La wcrihn d r la di\isi&n de la estrurtura que rspecifica los registros de 10s suhrsqurmas: ltrs elementos d r tlatos y los tipos de tlatos. SEGM. Una instruccih tlel IMS uue drfinr 10s ranipos que se incluyrn rn on segmento para usarse por un pmgrama. segment0 hoja. En un irbol, rualquier tipo de segmcnto que no tirne tipos d r sr,pentos hijos.
DISENOY A D M I N I S T R A C I ODE N BASES DE DATOS s r p ~ n e n t oraiz. En lln Lrlwl. 1111 tilm tlr sulwonsnlta n o correlationatla. Una wpnruto q n r no partitipa taorno un sl5trrnas rrlar~onalt~s. ~ul)ronsultarnyos valorrs no tlrlwnsrpmrnto hijo r n ninpiln I P H . den dc ninpnna twnsnlta mLs txtrrna. sisten~ad t grsticin d t hake d r ronoriwpniento s l ~ s c e p t i l h . IJn scgniento sohesquema. Sn1)t~mjuntosdrl rsqar~ n i t n t o s . S15trma tIr softwarr trno q n r rs at~twil)lrpara un progranla. ma t1ur ~mdrf'initlospor las vistas d r so1wrta rl ranpo n.sual tlr las f'nnriowpnltntos pemelos. Ot~urrent~iastle nrs tlr 10s SGRI), hi cv~motlur prslo?;usuarios d r la hare t11. tlatos. ti]"' tlr s r p n ~ r n t o s q u rtitww la missuperclavc. Un conjunto d r atril~utos m e ot,~~r~x.ncia d r t i p de srpmtwto t1ur idrritil'ica nnivovamcnte rada f'ila 1)atIrr ( m i s tlr (10s o r n r r r n t i w tlv srghrrhos. en nna relarihn. nwntos p~~tvltw t.alifit.arst. t ~ ) m o;I.si*ttma d e pesticin ale basts tlr datos ~nstraccicin. La ol~t.raciOn difrrrntia n~rlas). (SGRD). Iln sistrma c ~ t ~ n ~ ~ ~ u t a r i o n a ltlrl ilgeljra rt.lariona1. sepmtla forma n o r n ~ a l (2FN). 1,os t p r f'acilita la prstihn tit. la* I~asrstit. System-2000 (drl SAS Institute.). SGRI) a t r i l , ~ ~ t ono s t.1avt.s no purtltw s r r 1)asatlo rn t.1 modrlo tlr datos jtarirdatos. f i ~ i ~ t . i o n ; l l i ~dqwndirntrs ~r~~tr dtl nlla sistema de gestion clt bases tlt clatos tpit.o. p r t t ' tlr la t~lavv. distrihuitla (SGBDD 1. El sof'twarr System for Distributed Dataljasts wguritlad c l t los datos. Sr rt&w a la (SSD). SGBDD romrr~kilizado pol. ~ I I I I ' grstiona t.1 sistrnia d r Ilasrs tlr ~~rutrt.t'ihndrl sisttma d r 1)ast. tle C o ~ n p u t r rCorporation of rin~rriva. tlatos t1istril)nida. tl;~to.;antr usos mal intrnc~ionadoso sistelna tle inforn~acihn. Sistrma autono antorizatlos. matizado qut. orpaniza 111sdatos Imra wlecribn. O p . a c i h n drl ilgrl)ra rrlaprotlwir informat~ihn. cional clue nsa nna contlivihn para siittmas c l t informacicin tlr pesticin. vrlrrrionar f'ilas d r nna ~Art.ihn. tabla e j e n ~ ~ l oEn . QBE rs una t a l h Sistrnia a ~ ~ t o m a t i z a dtov \ o fotw tit. s e l t r l o r tle tstrategia. Softwarr tlnr rsqnrlrto q u r n~uestra1.1 n o n h r r d r tri~nsf'ormauna consulta drl nsuario nivd d r dircwiOn intrrn~tdio. la t a l h y los nonll~rrsd r las rolumt.11 nna forma rf'wtiva para 1;) tjrsistema d t informari61i para la g r + nas arrilja tit. c.spatios en 11lantwqnr t~llt~ihll. tion. Sistrma t1nr Ilrovrr inf'ormasr usan para la rntratla tlr las twntlisrrx-idor tlt hasrs ilr tlatos. ITn provi6n I)ara la prstihn o la administionrs tlr t.onsnlta. p a n l a t~nt'1 ~ 1 nr n r nna ~ ~ ~ n n l ~ ~ t a t l o rtravi61i. a tabla rcsultado. En QRF nna tal~lasin srnitlor para d a r wrvivio.; 111. I ~ a s r s sistema de procesan~iento d e tlatos. rncalwzanlicmto?; por r o l ~ ~ m n aSr . tlr tla~oha 1i1smitluinas t.lit*ntrs. UII sistrma a~~tomatizado para prorrusa para drfinir la salida d r m a twn?iiml)olos I~rrtlicados. Nt11111)rrst111r h v sar los tlatos dt. los rrpistros d r nna sulta. a p l i t w ~a 10s argllmmtos para txl)rrorganizacihn. tahlas cle verifiracicin tle tlisparadorcs. Tal)las actualizadas con las tul~las car 1111 prrtlit.:do. sistelnas abiertos. El twncq~totlr (.(Ii n h n i ~ n o . l'i.rminos t111t' signif'ic.;it~lo y Iwrratlas rada vt-z qut* nrc.tar nna varirdatl tlr c o n ~ ~ , ~ ~ t a t l t ~ insrrtadas mi.snio. otwrrc. nna at~tualizat~i011 tSn nna ras (.on difrrtmttb* h n r d w n r ~y aofi~ i s t e m a hasaclo c n el conocin~iento. tallla t~orrrsl)ondirntrd r la Imsr d r Iiwre para tr;ll)ajar w o r d i n a d a m r n ~ r Otra f ' o ~ w ad r nomljrar a un sistrn~a con rl fin tlr loprar los olljrtivos drl tlatos. 111%h s r d r t . o ~ ~ o c ~ i ~ ~ ~ i r ~ ~ t o s . painter. Un suhprograma intrrartibo 115nario. clue Ilr\ a a caho nn t i p t.sprt-if'ico d r sistema clt I ~ a s etle conoc.imientos. I!n sistemaa tle soporte para la toma d r fu~itionalitladnectwria para r l d r s s i s t r ~ nt111t. ; ~ prover r l ranpo conll~lrto decisiolws. Sistrma antomatizatlo clue I K I I V ~ Y informac~ihn rstrat6git.a tlv c.apat.itlatlt-s para aln~acrnan~irnto rrollo complrto tit. una apliracihn. ) ~nanipulatihn ~ l rtlatos, asi como Ijara 10s altos dirretivos. TDMS (System U r v r l ~ q ~ m t ~Corporant f'acilidadrs para la t.r1~1ti611,a11nac.rtion's Tin~c-Shared Data M a n a p I qur morirtcwas expertor. ~ ' I sistrma nimitm~o !-13jtvwti6n tlr rrplas tlr inrnt Systrni). SGBD I)as;a4o tsn rl tlda rl procrw d r toma d r d t w s ~ h nd r modelo d r ~latosjrrirtpitw. infrrr~lviarn tahlas dc datos almarclos rxprrtos en varlos tlominios d r nados. problrma, tales twno d i a g n h s t ~ t . ~ teoria d e la serializacicin. Esta1)lrt.r qur IIII algoritmo d r t-ontrol d r (.onsistema d r base d c tlatos. Una 1)ast' dt' 1116dic.o.deciiionr. tit* anditoria. rtr.: rurrtmcia es corrrvto t.uando sus tlatos. nn sistrma d r gr.stihn d r 1)ast.s IIII tilm r s p w a l tlr drsarrollo d r I t . tlv tlatos. con el hurdluore y rl prrsoresnltatlos son 111smismos q a r hi i r soliritid tle propuesta (SDP). Un tlohnhiese proccsatlo serialn~rntr. rumrnto formal tlur drlmra lo5 rrnal al)~.opiados. quisitos d r rentlin~ientoy Ir pidr a los tercera forma normal (3FN). Catla sistema tle hasc tle datos distrihitla. Iln s i s t r ~ i ~d ar Imsr d r datos twmpnrsdeterminantr rs nna rlave. vmdrdorcs qur respondan con una to tlr varios sistrmas r n sitios loralrs, tcxto cifrado. Trxto lrgihlr tifratlo. ~ r o p n e s t a qnr satisf'aga aqnrllos ~ w n r r ~ a d opor s lineae tlr comunitrxto legihk. Trxto que sp purdr Irrr. rrqnisitos. ., SQL inrrustado (embedded SOL). Un t'atslon. tiempo d e actiracion d e la caheza. El sistema d e base d e datos orientado a conjnntu d r instrnrriones qur p e r m tirmpo necesario para activar m a t r q u r SQL sea utilizado con Irngnarabeza d r Irrturalcscritura. ohjetos. Sistcvnas tie bases tlr datos jcs tle ~jrogramarihntrat1it:ionalrs. clue purdan i ~ n ~ ~ l e r n e n tmo~lrlos ar tiyo d e d a t o definido por el usuario. siibconiulta. Una consulta tlrntro tlr ronccptuales dirretamt,nte y qnr pnrUn suhtipo d r uno d r los t i p s tlc nna consulta. datos suministrados por el sistmia. el ~ l r nrrprrsrntar complrjitlaties qnt:
(ma1es atlaptatlo a las rleresidades del ~ esqurrna tlr Id 1 ~(It, stiato5. tipo d e intrrrrlaeicin padre-hijo ( t ~ p o IPII). Intrrrrlari611 l6gira rrltrr a n t ~ p otlr srgmcnto padre y on t ~ p od r srgmrilto h ~ j w tipo d r s r p r n t o . Corrc.sl~ondea un ohjrto m rl motlrh d r dato orientatlo a ol)jctw. t;nmhSn Ilamatlo on srgnmto. tipo clr srgmrnto dcpendirnte. Totios los t ~ p ds r rrglstros rnrilos q u r rl t i p tlc sri,'nwnto raiz. t i p registro. Cna rolrrci6n d r rlemrntos t1r tldtos rrlacionatlos 10gitwnmtc.. tipo registro eulacr. [Ti1 rrbqstro qur se t w d para convcrtir un reticulo complc jo ~ I 11I11 rrtic.nlo siiiiple rtluivalentr. tipo registro ~rlielrlhro. El t ~ p od r registro de la p , ~ r t r*. mnchw" tle nna ir~trrrrlarii,niuurhos-mnrhos (11. un c.onjui~toDIITG. t i p registro propietarin. El t ~ p orrgistro tlr Id p r t r *.uno'*t1r nna Intcrrrlat.10r1 nno-inuc.hos tie 1111 t~onjunto DBTG. transaccicin. Cna ~ i r ~ ~ t ltlr a t iprograma tau! a cjt3t~lir16n twnstm a la ronslstrn c.la d r la hasr tlr datos. trnnsarricin ahortada. Transacri6n quc sr t.;lncrla antes tlr aplirar 10s (.amhas a la hasr d r datos. transac.rii,n at61uic.a. lTna transacri6n r11 Id rual totias las dt.tionc.s asociatlas con la traniac.t.~hnsr rjrrutan t*omplt%mrutr o nlnplna sr rjrt*nta. transarriblr local. Una transac*r~bnqnr r r q u ~ r r run u n ~ t wdgc.ntc.. transarcion global. Una transarrii,n qur rt't~nlt'r" \ ar10s "pent"\. tnpla. I'na f ~ l arn urla rrlaci611.
mlidad d r refernlcia. El SGRD tlur r s t i sirndo r\d111atio m rl arlilisis AEU. union. Oprrari6n drl ilgrbra relational t p r t w a un ronjnnto unihn de tlos rrlat*ioncs uni5n-rompati1)lr. uuicin-compatible. Uos o mhs relacioilrs t ~ u etirnrii rolurnr~airtpivalrntrs en n i l m t ~ ov tlominios. uno-uno. Una rardinalitlad tlr la intrrrrlari6n clue rs 1 rn amhas tlirrrtionrs. uno-mucl~os. Una rartlinalidad d r la intrrrrlati6n qnr es 1 r n urla tiirecc.iOn y murhos en la otra. UPDATE. OprrariOn clue r a n h i a 10s \alorrs d r las t d u m n a s rrl las filas. usuarios. Personas true newsitan intlrsarrollar SII rrsponsal)ilitlacl primaria r n el nrgorio.
valor at6mico. Un valor qur no rs nn twnjanto de valorrs o un grupo r e p titivo. valor nulo. El valor dado a un atrihuto en una tupla si el atrihuto rs inaplicahlr o su valor rs drsconocido. valor nulo d e u n atrihuto. Un valor dt. atri1)uto qnr no rxiste en nna instanria rslwifira. valor p o r dcfccto. Un valor clue sr inscrta antomiticammtr si r l nsuario no lo rspwifira m tuna rntrada. valor por defecto del pariinetro. El valor dr un parimrtro clue suminis-
tra el sistema si el p r o g a m a qur llama lo omitr. variahle. Un norr~hresimh6lico qur r r prrsenta una instancia no rspecifirada en un cor~juntotle objetos. variable local. Ur~avariahle tlrfinitla para usar dentro de un proredimirnto y almarenar valores trmporalrs tlr trahajo. velocidacl d c transfcrencia d e datos. La vrlocidad a la cual 10s datos sr lrrn drl disco hacia la mrmoria principal, o rquivalrntemrntr. la razhn en la rual 10s datos sr esrrihen drsdr la memoria principal a1 disco. viahilidad ccon6n1ica. Estndio tlr costo-1)enrficio del sistema de I m r dc datos propuesto. vialdidad operational. Uetrrminari6n tlr la disponibilidad de expertititlad y drl prrwnal q u r sr neresita para el sistrma tlr hasc d r datos. viabilidad trcnol6gica. LktrrminariOn d r la disponibilidad d r hardware ) rl software para el sistrma d r hasr tlr datos. vista. Una clrfinici6n tlr ona porri6n rvstringida d r la I ~ a s rtie datos: tam11iC.nllamacia vista d r datos. vista d e 10s datos. Una drfiniri6n d r ona porri6n rrstringitla tlr la 1)ast. d r datos; t a m h i h llamatla m a vista.
Window painter. Un painter q n r sr usa para wnstruir vcntanas tlc una aplirarihn.
BIBLIOGRAFIA
Las sigui~ntesahreviaturus se usarorl
PII
esta bibliogrojia:
.
1CW
Association for Conq~utingMarhiner!
4C'IPS
Imerican E'edcration of Information Processing Socirties.
CA C bl
Conimunicationi of thr ACM.
I )E
Proceding3 of the IEEE Computer Socirt! International Conference on Data Engineering.
E1)S
Pro(-eedinpof thv International Confc.rence on Data Engineering.
ER
1'rocwdinr;s Zpproarh.
IClS
Prcwedirigs of t h International Confewme on Information S!strms.
IFIP
lntc~rnationalFedrration for Information ProceAng.
1 CC
Proceedingi of the National Computer Conference.
OOPS LA
Pro(-redings ol' thv 4CM Conferenc-e on Ol).jec*t-OrientedProgramming S! stvms, T,anguagrs, and Apl)licationi.
PODS
Procevtlings of the ACM Symposium on Principles of Datahaw S! stems.
SIGMOD
Proreedings of thv ACM SICJMOD International Conference on Management of Data.
TODS
ACM Transavtions on Database S!str~ns.
TOOIS
ACM Transaction on Office Information Systems.
TSE
IEEE Transartions on Software Engineering.
VLDB
Proceedings of the International Conference on Ver) Large Data Basrs.
of thv International Conferenvr o n Entity-Relationship
ABRIAL, J. "Data Semantics." In Klimbie and Koffeman, 1974. AGRAWAL, R., GHOSH,S., IMIELINSKI, T., IYER,B., AND SWAMI,A. "An Interval Classifier for Database Mining Applications." In VLDB 1992. J. "The Theory of Joins in Relational Databases." AHO, A,, BEERI,C., AND ULLMAN, TODS, 4 3 , September 1979. J.D. The Design and Anabsis of Computer ProAHO, A.V., HOPCROFT,E., & ULLMAN, g r a m , Addison-Wesley, 1975. ALASHQUR, A.M., SU, S.Y.W., AND m,H. "OQL: A Query Language for Manipulating Object-Oriented Databases." In VLDB 1989. ALBANO, A,, DE ANTONELLIS,V., AND DE LEYA, A. (editors). Computer-Aided Database Design: The DATAID Project, North-Holland, 1985. R., GHELI.~, G.. AND ORSINI,R. "An Object Data Model with ALBANO,A,, BERGAMINI, Roles." In VLDB 1993. ALLEN,F., LOOMIS, M., AND MANNINO,M. "The Integrated Dictionary/Directory System." Computing Surveys, 14:2, June 1982. ANDANY,J., LEONARD, M., AND PALISSER, C. "Management of Schema Evolution in Databases." In VLDB 1991. ANDREWS,T. AND HARRIS,C. "Combining Language and Database Advances in an Object-Oriented Development Environment." In OOPSOl 1987. ANDRIOLE, S. J., ED. 1985. Applications in Arltjicial Intelligence, Princeton, NJ: Petrocelli Books, 1985. ANSI 1981. Proposed American National Standard for a Data Definition Language for Network Structured Databases. American National Standards Institute, Document ANSI X3H2, 1981. ANSI 1 9 8 6 ~American . Xational Standards Institute: The Database Language NDL, Document ANSI X3.133, 1986. ANSI 1 9 8 6 ~American . National Standards Institute: The Database Language SQL, Document ANSI X3.135, 1986. ANSI 1989. American National Standards Institute: Information Resource Dictionary Systems, Document ANSI X3.138, 1989. ASHTON-TATE CORPORATION.dBASE IVLanguage Reference, Ashton-Tate, 1988. ASTRAHAN,M. ET AL. "System R: A Relational Approach to Data Base Management." TODS, 1:2, June 1976. ASTRAHAN, M. ET AL. "A History and Evaluation of System R." IBM Research Reporl RJ2843, June 1980. ATRE,S. Data Base: Structured Techniques for Design, Performance, and Management, New York: Wiley, 1980. ATRE,S. Data Base Management System for the Eighties. QED Information Sciences, 1983. BABAD,Y. M., AND J. A. HOFFER."Even No Data Has a Value." CACM 27:8, August, 1984. BACHMAN, C. "Data Structure Diagrams." Data Base (Bulletin of ACM SIGFIDET), 1:2, March 1969. BACHMAN, C. "The Programmer as a Navigator." CACM, 16:11, November 1973. BACHMAN, C. "The Data Structure Set Model." In Rustin 1974. BANERJEE, J., CHOU.H., GARZA,J., KIM,W., WOELK,D., BALLOU, N., AND KIM,H. "Data Model Issues for Object-Oriented Applications." ACM Transactions on Database Systems 5, 197-208, 1987. BAROODY,A. AND DEWITT,D. "An Object-Oriented Approach to Database System Implementation." TODS, 6:4, December 1981. BATINI,C., LENZERINI, M., AND NAVATHE, S. "A Comparative Analysis of Methodologies for Database Schema Integration." Computing Surveys, 18:4, December 1986. BATORY,D. ET AL. "GENESIS: An Extensible Database Management System." TSE, 14:11, November 1988. BATRA,D., J. A. HOFFER,AND R. P. BOSTROM."A Comparison of the Representations Developed Using the Relational and Entity-Relationship Data Models." CACM, 33:12. December 1990.
BAYER,R. AND MCCREIGHT, E. "Organization and Maintenance of Large Ordered Indexes." Acta Informatics, 1:3, February 1972. BEECH,DAVID.'Collections of Objects in SQL3." In VLDB 1993. BEERI,C. AND MILO,T. "A Model for Active Object Oriented Database." In VLDB 1991. BELL,D. AND GRIMSON.J. Distributed Database Systems. Reading, MA: AddisonWesley, 1992. BERNSTEIN, P. AND GOODMAN,N. "The Power of Natural Semijoins." SIAMJournal of Computing, 10:4, December 1981. BERNSTEIN, P. AND GOODMAN,N. "Concurrency Control in Distributed Database Systems." Computing Sumeys, 1 3 2 , June 1981. BERNSTEIN, P., HADZILACOS, V., AND GOODMAN,N. Concurrency Control and Recovery in Database Systems, Reading, MA: Addison-Wesley, 1988. TOM. "STDL-A Portable LanBERNSTEIN, PHILIPA,, GYLLSTROM, PERO., AND WIMBERG, guage for Transaction Processing." In VLDB 1993. BERNSTEIN, P. "Synthesizing Third Normal Form Relations from Functional Dependencies." TODS, 1:4, December 1976. BETRA,D., J. A. HOFFER,AND R. B. BOSTROM."A Comparison of User Performance Between the Relational and Extended Entity Relationship Model in the Discovery Phase of Database Design.'' In ICIS 1988. BHARGAVA, B. (editor). Concurrency and Reliability in Distributed Systems, New York: Van Nostrand-Reinhold, 1987. BILLER, H. "On the Equivalence of Data Base Schemas-A Semantic Approach to Data Translation." Information Systems, 4:1, 1979. BJORNER,D. AND LOVENGREN, H. "Formalization of Database Systems and a Formal Definition of IMS." In VLDB 1982. K. "On the Evaluation of Queries in a Relational Database BLASGEN, M. AND ESWARAN, System." IBM SystemsJournal, 16:1,January 1976. BLASGEN, M., ET AL. "System R: An Architectural Overview." IBM System Journal, 20: 1, January 1981. BLOOMBECKER, J. J. "Short-Circuiting Computer Crime." Datamation, October 1, 1989. BOAR,B. H. Application Protopping, New York: Wiley, 1984. B o c c ~J,. "EDUCE-A Marriage of Convenience: Prolog and a Relational DBMS." Proceedings of the Third International Conference on Logic Programming, New York: Springer-Verlag. 1986. BOEHM,B.W. Softuare Engineen'ng Economics, Englewood Cliffs, NJ: Prentice Hall, 1981. BOHL,M. Introduction to IBM Direct Access Storage Devices, Chicago: Science Research Associates, 1981. Paradox3.0 User's Guide, Scotts Valley, CA: Borland, 1988. BORLAND INTERNATIONAL. BOUZEGHOUB, M. AND METAIS,E. "Semantic Modeling of Object Oriented Databases." In VLDB 1991. BRACCHI, G. AND PERNICI,B. "The Design Requirements of Office Systems." TOOIS, 2:2, April 1984. BRACCHI,G . AND PERNICI,B. "Decision Support in Office Information Systems.'' In Holsapple and Whinston 1987. BRACHMAN, R. AND LEVESQUE, H. "What Makes a Knowledge Base Knowledgeable? A View of Databases from the Knowledge Level." In EDS 1984. BRADLEY, J. File and Data Base Techniques, New York: Holt, Rinehart & Winston, 1982. D.P. "Effects of Database Size o n BRANT,D.A., GROSE,T., LOFASO, B., AND MIRANKER, Rule System Performance: Five Case Studies." In VLDB 1991. BRAY, 0. Distributed Database Management System, Lexington, M A : Lexington Books, 1982. J. (editors). On Conceptual Modeling, BRODIE,M., MnOPOULos, J., AND SCHMIDT, New York: Springer-Verlag, 1984. BRODSKY, ALEXANDER, JAFFAR, JOXAN, AND MAHER,MICHAEL J. "Toward Practical Constraint Databases." In VLDB 1993.
BROSEY,M. AND SHNEIDERMAN. B. "TWOExperimental Comparisons of Relational and Hierarchical Database Models." Znternational.Journa1 of Man-Machine Studies, 1978. BROW. R. "Data Integrity and SQL." Database Programming and Design, March 1988. BROWNING, D. "Data Managers and LANs." PC Tech.Journa1,5:5, May 1987. AND T. MORIARTY. "SO YOUWant a Repository." Database ProBRUCE,T., J. FULLER, gramming and Design, May 1989. J., BERILD, S., LINDERCRONA-OHLIN, E., AND NACHMENS, S. "From InformaBUBENKO, tion Requirements to DBTG Data Structures." Proceedings of the ACM SZGMOD/SZGPLAN Conference on Data Abstraction, 1976. R. "FQL: A Functional Query Language." In SIGMOD 1979. BUNEMAN, P. AND FRANKEL, CAMPBELL, D., EMBLEY, D.. AND CZEJDO,B. "A Relationally Complete Query Language for the Entity-Relationship Model." In ER 1985. CAVPBEI.L,D., EMBLEY,D., AND CZEJDO,B. "Graphical Query Formulation for an Entity-Relationship Model." Data and Knowledge Engineering, 2 (19871, 89-121. CARDENAS, A. Data Bare Management Systems, Second Edition. Newton, MA: Allyn and Bacon, 1985. CAREY, M., DEWITT,D., AND VANDENBERG, S. "A Data Model and Query Language for Exodus." In SIGMOD 1988. CAREY,M., DEWITT.D., RICHARDSON, J. AND SHEKITA, E. "Object and File Management in the EXODUS Extensible Database System." In VLDB 1986. CAREY,M. ET AI.. "The Architecture of the EXODUS Extensible DBMS." In Dittrich and Dayal 1986. J. AND MARCH, S. "A Descriptive Model of Physical Database Design Problems CARLIS, and Solutions." In DE 1984. CASANOVA, M. AND VIDAL,V. "Toward a Sound View Integration Method." PODS, 1982. CERI,S. (editor). Methodology and Toolsfor Database Design, North-Holland, 1983. CERI,S. AND PELAGATTI, G. Distributed Databases: Principles and Systems, New York: McGraw-Hill, 1984. CERI,S., NAVATHE, S., A N D WIEDERHOLD, G. "Distribution Design of Logical Database Schemas." TSE, 9:4, July 1983. CHA,S.K. AND WIEDERHOLD, G. "Kaleidoscope Data Model for an English-like Query Language." In VLDB 1991. CHAMBERLIN, D. AND BOYCE,R. "SEQUEL: A Structured English Query Language." In SIGMOD 1984. CHAMBERLIN, D., ET AL. "SEQUEL 2: A Unified Approach to Data Definition, Manipulation, and Control." IBM,/ournal of Research and Development, 20:6, November 1976. CHAMBERLIN, D., ET AL. "A History and Evaluation of System R." CACM, 24:10, October 1981. CHAMPINE, G. A. "Six Approaches to Distributed Data Bases." Datamation, May 1977. CHAN,A,, AND H. K. T. WONG."Serving Up dBASE." Data Base Programming & Design, February 1990. A. "PROSQL: A Prolog Programming Interface with SQL/DS." CHANG,C. AND WALKER, In EDS 1984. E-R Designer Reference Manual, 1988. CHENAND ASSOCIATES. CHEN.I.A., AND MCLEOD,D. "Derived Data Update in Semantic Databases." In VLDB 1989. CHEN,LING TONY AND ROTEM,DORON."Declustering Objects for Visualization." In VLDB 1993. CHEN,P. "The Entity Relationship Model-Toward a Unified View of Data." TODS, 1:1, March 1976. CHEN,P. The Entity-Relationship Approach to Logical Data Base Design, Q.E.D. Information Sciences, Data Base Monograph Series no. 6, 1977. CHIMENTI, D., GAMBOA, R., KRISHNAMURTHY, R., NAQVI,S., TSUR;S., AND ZANIOLO, C. "The LDL System Prototype." ZEEE Transactions on Knowledge and Data Engineering, 2:1, March 1990.
CHOUINARD, P. "Supertypes, Subtypes, and DB2." Database Programming and Design, October 1989. CHRISTODOULAKIS, S. ET AL. "Development of a Multimedia Information System for an Office Environment." In VLDB 1984. CLAYBROOK, B. File Management Techniques, New York: Wiley, 1983. CODASYL. Data Base Task Group April 71 Report, ACM, 1971. CODASYL. Data Description Language Journal of Development, Canadian Government Publishing Centre, 1978. CODD,E. "A Relational Model for Large Shared Data Banks." CACM, 1 5 6 , June 1970. CODD,E. "Relational completeness of data base sublanguages." Courant Computer Science Symposium 6, Data Base System& Englewood Cliffs, NJ: Prentice Hall, 1971. CODD,E. "A Data Base Sublanguage Founded on the Relational Calculus." Proceedings of the ACM SZGFZDET Workhop on Data Description, Access, and Control, November 1971. CODD, E. "Further Normalization of the Data Base Relational Model." In Rustin 1972. CODD, E. "Recent Investigations in Relational Database Systems." Proceedings of the ZFZP Congress, 1974. CODD,E. " H o y About Recently? (English Dialog with Relational Data Bases Using Rendezvous Version I)." In Shneiderman 1978. CODD,E. "Extending the Database Relational Model to Capture More Meaning." TODS. 4 4 , December 1979. CODD, E. "Relational Database: A Practical Foundation for Productivity." CACM, 25:2, December 1982. CODD,E. "Is Your DBMS Really Relational?" and "Does Your DBMS Run By the Rules." Computenuorld, October 14 and October 21, 1985. CODD,E. "An Evaluation Scheme for Database Management Systems That Are Claimed to be Relational." In DE 1986. COMER,D. "The Ubiquitous B-tree." Computing Surueys, 11:2,June 1979. CONTE, P. "In Search of Consistency." Database Programming and Design, August 1989. CREASY, P.N. "ENIAM: A More Complete Conceptual Schema Language." In VLDB 1989. CURTICE,R., AND CASEY,W. "Database: What's in Store." Datamation. December 1. 1985. CURTICE,R. "Data Dictionaries: An Assessment of Current Practice and Problems." In VLDB 1981. D. "An Algebraic Language CZEJDO,B., ELMASRI, R., RUSINKIEWICZ, M., AND EMBLEY, for Graphical Query Formulation Using an Extended Entity-Relationship Model." Proceedings of the ACM Computer Science Conference, 1987. DATE,C. AND WHITE,C. A Guide to SQVDS. Reading, MA: Addison-Wesley, 1988. DATE, C. AND WHITE,C. A Guide to DB2, Second Edition, Reading, MA: AddisonWesley, 1988. DATE, C. An Introduction to Database Systems, Volume 2, Reading, MA: AddisonWesley, 1983. DATE, C. "The Outer Join." Proceedings of the Second International Conference on Databases, 1983. DATE,C. "A Critique of the SQL Database Language.'' ACM SZGMOD Record, 1 4 3 , November 1984. DATE,C. An Introduction to Database Systems, Vol. I (4th ed.), Reading, MA: AddisonWesley, 1986. DATE,C. "Where SQL Falls Short." Datamation, May 1. 1987. DATE,C. AND DARWEN,H. A Guide to the SQL Standard, 3rd Edition, Reading, MA: Addison-Wesley, 1994. DAMES,C. "Recovery Semantics for a DB/DC System." Proceedings of the ACM National Conference, 1973. DAYAL,U., HSU, M., AND LADIN, R. "A Transactional Model for Long-Running Activities." In VLDB 1991.
DBTG. Report of the CODASYL Data Base Task Group, ACM. April 1971. N. "Performance and Scalability of Client-Server DataDELIS,A. A N D ROLISSOPOULOS, base Architectures." In VLDB 1992. DEMAKCO.T. Structured Analysis and System Spec?fication, Prentice-Hall Yourdan, Inc., 1979. P. "Data Security." Conlputing SilrvevS, 11:3, September DENNING, D. ANI) DENNING, 1979. DIAZ,O., PATON.N. A N D GRAY,P. "Rule Management in Object-Oriented Database: A LJniform Approach." In VLDB 1991. Dl BATrrsTA, G. AND LFNZEKINI, M. "A Deductive Method for Entity-Relationship Modeling." In VLDB 1989. M. "Privacy and Authenticat~on."Proceedings of the IEEE. DIFFIE,W. A N D HELLMAN. 67:3, March 1979. DITTRICH, K. AKI) DAYAI.,LT. (editors). Proceedings ofthe Internationa/ Workshop on Object-Oriented Database Systems, IEEE CS, September 1986. DI~RICH K., "Object-Oriented Database Systems: The Notion and the Issues." In Dittrich and Dayal 1986. DODD, G. "Elements of Data Management Systems." Computing Sumeys, 1:2, June 1969. A. "A Data Type Approach to the EntityD o s SANTOS,C., NEUHOLD, E., AND FURTADO, Relationship Model." In ER 1979. DUMPALA, S. AND ARORA,S. "Schema Translation Using the Entity-Relationship Approach." In ER 1983. EICK,C.F. "A Methodology for the Design and Transformation of Conceptual Schemas." In VLDB 1991. ELLIS,C. AND N L ~G., "Office Information Systems and Computer Science." Complrting Surveys, 12:1, March 1980. ELLZEY, R.S. Data Structures for Computerlnformation .!vstems. Science Research Associates. 1982. ELMASIII, R. AND LAKSON, J. "A Graphical Query Facility for ER Databases." In ER 1985. S. "Object Integration in Logical Database Design." In DE ELMASRI, R. AND NAVATHE. 1984. ELMASKI, R. A N D NAVATHE. S. Fl~ndamentalsof Database Systems. Menlo Park, CA: Benjamin/Cummings, 1989. G. "Data Model Integration Using the Structural Model." ELMASRI, R. A N D WIEDERHOLD, In SIGMOD 1979. ELMASRI. R. AND WIEDERHOLD, G. "Structural Properties of Relationships and Their Representation." NCC, AFIPS, 49, 1980. ELMASRI, R. A N D WIEDERHOLD, G. "GORDAS: A Formal. High-Level Query Language for the Entity-Relationship Model." In ER 1981. A. "The Category Concept: An Extension to ELMASRI, R., WEELDREYER. J., AND HEVNER, the Entity-Relationship Model." Internntional Journal on Duta and Knowledge Engineering, 1:1, May 1985. FAGIN,R. "Multivalued Dependencies and a New Normal Form for Relational Databases." TODS. 2:3, September 1977. FAGIN,R. "Normal Forms and Relational Database Operators." In SIGMOD 1979. FAGIN,R. "A Normal Form for Relational Databases That is Based on Domains and Keys." TODS, 6:3, September 1981. FERNANDEZ, E., SUMMERS, R., AND WOOD, C. Database Security and Integri!)!, Reading, MA: Addison-Wesley, 1981. FISHMAN, D. ET AL. "IRIS: An Object-Oriented DBMS." TOOIS, 4:2, April 1986. FISHMAN, D., BEECH,D., CATE,H., CHOW, E., CONNORS.T., DAVIS,J., D E R R E N., ~, HOCH, C., KENT,W., LYNGBAEK, P., MAHBOD,B., NEIMAT,M., RYAN,T., A N D SHAN.M. IRIS: An Object-Oriented Database Management System. TOOIS 5: 216226, 1987. FLAVIN,M. Fundame~ltalConcepts of'lnformation Modeling, Englewood Cliffs, NJ: Yourdon Press. 1981.
FLEMING, C., AND VON HALLE, B. "An Overview of Logical Data Modeling." Data Resource Management, Winter 1990. FRANKLIN, MJ., CAREY,M.J., AND LIVNY. M. "Global Memory Management in ClientServer DBMS Architectures." In VLDB 1992. FRANKLIN, MICHAEL J.. CAREY,MICHAEL J., AND LIVNY, MIRON."Local Disk Caching for Client-Sewer Database Systems." In VLDB 1993. E. "Evolution of Data-Base Management Systems." Computirzg SurFRY,J . AND SIBLEY, veys, 8:1, March 1976. FURTADO, A. "Formal Aspects of the Relational Model." Information Systems, 5 2 , 1978. P. "Temporal Logic & Historical Databases." In VLDB 1991. GABBAY, D. AND MCBRIEN, GADIA,S. "A Homogeneous Relational Model and Query Language for Temporal Databases." TODS. 13.4, December 1988. J. (editors). Logic and Databases, Plenum Press, 1978. GALIAIRE, H. AND MINKER, GALIAIRE. H.. MINKER, J., AND NICOIAS,J. "Logic and Databases: A Deductive Approach." Computing Surveys, 1 6 2 , June 1984. EDUARDO B. "A Model of Methods GAL-OZ,NURITH,GUDES,EHUD,A N D FERNANDEZ, Access Authorization in Object-Oriented Databases." In VLDB 1993. GARDARIN, G., CHEINEY, J-P.. KIERNAN, G., PASTRE, D., AND STORA,H. "Managing Complex Objects in an Extensible Relational DBMS." In VLDB 1989. P. Relational Databases and Knowledge Bases, ReadGARDARIN, G., AND VALDURIEZ. ing, MA: Addison-Wesley, 1989. GAREY,M. Computers and Intractability: A Guide to the n e o y of NP-Completeness, W.H. Freeman and Company, 1979. GEHANI,N.H.,JAGADISH. H.V., A N D SHMUELI. 0. "Composite Event Specification in Active Databases: Model & Implementation." In VLDB 1992. GEHANI, N.H. AND JAGADISH.H.V. "Ode as an Active Database: Constraints and Triggers." In VLDB 1991. GHANDEHARIZADEH, SHAHRAM, HIJLL.RICHARD, JACOBS,DEAN,CASTILLO, JAIME,ESCOHAK-MOLANO, MARTHA,LU, SHIH-HUI,LUO, JLTNHLII, TSANG,CHILI,AND Zk-rorr, GANG."On Implementing a Language for Specifying Active Database Execution Models." In VLDB 1993. GOLDFINE, A. ANI) KONIG,P. A Technical Overview of the Information Resource Dictionary System (IRDS), Second Edition, NBS IR 88-3700, National Bureau of Standards, 1988. J. "An Overview of the Object-Oriented Entity RelaGORMAN,K., AND CHOOBINEH, tionship Model (OOERM)." Proceedings ofrbe Twenty-nird Annual Hawaii International Conference on Information Systems, 1990. GOTLIEB, L. "Computing Joins of Relations." In SIGMOD 1975 GRAY. J.. MCJONES,P., AND BIASGEN, M. "The Recovery Manager of the System R Database Manager." Compuring Surveys, 13:2,June 1981. GRAY,J. "The Transaction Concept: Virtues and Limitations." In VLDB 1981 GREENBIAT,D., AND J. WAXMAN. "A Study of Three Database Query Languages." In Shneiderman 1978. GREFEN. PAULW.P.J. "Combining Theory and Practice in Integrity Control: A Declarative Approach to the Specification of a Transaction Modification Subsystem.'' In VLDB 1993. GUIMARAES, T. "Information Resources Management: Improving the Focus." Irformation Resources Management Journal, Fall 1988. GUPTA.A,. WEYMOUTH, T.E., AND JAIN,R. "Semantic Queries with Pictures: the VIMSYS Model." In VLDB 1991. HAMMER. M. AND MCLEOD,D. "Semantic Integrity in a Relational Data Base System." In VLDB 1975. H ~ M E M., R , AND D. MCLEOD."The Semantic Data Model: A Modelling Mechanism for Data Base Applications." In SIGMOD 1978. HAMMER, M. AND MCLEOD,D. "Database Descriptions with SDM: A Semantic Data Model." TODS, 6:3, September 1980. N. "Knowledge Discovery in Databases: An AttributeHAN,J., CAI,Y.. AND CERCONE,
Oriented Approach." In VLDB 1992. G . Database Processing with Fourth Generation Languages, Cincinnati: SouthHANSEN. Western, 1988. G. AND HANSEN. J. "Procedural and Non-procedural Languages Revisited: A HANSEN, Comparison of Relational Algebra and Relational Calculus." International Journal of Matz-Machine Studies, (19871, 26, 683-694. HANSEN.G. AND HANSEN, J. "Human Performance in Relational Algebra, Tuple Calculus, and Domain Calculus." International Journal of Man-Machine Studies, (19881, 29. 503-516. HARRINGTON. J. Relational Database Management for Microcomputer, Design and Implementation. Yew York: Holt, Rinehart, and Winston, 1987. HARRIS,L. "The ROBOT System: Natural Language Processing Applied to Data Base Query." Proceedings of the ACM National Conference, December 1978. HASKIK.R. AND LORIE, R. "On Extending the Functions of a Relational Database System." In SIGMOD 1982. HAWRYSZKIEWCA, I T . Database Ana(vsis and Design. 2nd Ed., New York: Macmillan, 1991. HAYES-ROTH, R., WATERMAN. D., AND LENAT. D. (editors). Building @el? Systems, Reading, MA: Addison-Wesley, 1983. HEIMIHGNER, D. "Experiences With an Object Manager for a Process-Centered Environment." In VLDB 1992. HELD,G . AND STONEBRAKER, M. %Trees Reexamined." CACM, 21:2, February 1978. WIMMELSTEIN, M. "Cooperative Database Processing." Database Programming and Design, October 1989. S., AND CARROLL, J. "The Pitfalls of Strategic Data and Systems HOFFER. J., MICHAELE, Planning: A Research Agenda." Proceeditzgs of the Twenty-Second Annual Hauaii International Conference on System Sciences. Vol. Ili, 1989. HOFFER,J. "An Empirical Investigation with Individual Differences in Database Models." In ICIS 1982. HOLLAND, R. H. "Data Base Planning Entails Return to Basics." Computenuorld, October 27, 1980. HOLSAPPLE. C. AND WHINSTON, A. (editors). Decision Suppol? Theory and Application, New York: Springer-Verlag, 1987. HUBBARD, G.U. Computer-Assisted Data Base Design, New York: Van Nostrand Reinhold, 1981. HULL,R. AND KING,R. "Semantic Database Modeling: Survey, Applications, and Research Issues." Computing Sunjeys, 1 9 5 , September 1987. HULL,R. AND JACOBS,D. "Language Constructs for Programming Active Databases." In VLDB 1991. IMIEI.INSKI, T. AND LIPSKI, W. "On Representing Incomplete Information in a Relational Database." In VLDB 1981 ISHIKAWA, HIROSHIAND KUBOTA,KAZUMI."An Active Object-Oriented Database: A Multi-Paradigm Approach to Constraint Management." In VLDB 1993. JACKSON, M.A. Principles of Program Design, Orlando: Academic Press, 1975. JAQUA,D. "SQL Database Security." Database Programming and Design, July 1988. JARDINE, D. (editor). The ANSUSPARC DBMSModel, North-Holland, 1977. KAPP, D. AND LEBEN, J. IMS Programming Techniques, New York: Van NostrandReinhold, 1978. KENT,W. Data and Reality, North-Holland, 1978. KENT,W. "Limitations of Record-Based Information Models." TODS, 4:1, March 1979. KENT,W. "A Simple Guide to Five Normal Forms in Relational Database Theory." CACM, 26:2, Februan 1983. KENT,W. "Solving Domain Mismatch and Schema Mismatch Problems with an ObjectOriented Database Programming Language." In VLDB 1991. KHOSHAFIAN, S., CHAN,A,, WONG,A,, WONG, H.K.T. Clienflemer SQL Applications, Morgan Kaufmann, 1992.
KIM,W. "Relational Database Systems.'' Computing Surveys, 1 1 3 , September 1979. KIM,W. "On Optimizing an SQL-like Nested Query." TODS, 3:3, September 1982. D. (editors). Query Processing in Database Systems, KIM,W., REINER, D., AND BATORY, New York: Springer-Verlag, 1985. KIM,W. "A Model of Queries for Object-Oriented Databases." In VLDB 1989. J. AND KOFFEMAN, K. (editors). Data Base Management, North-Holland. 1974. KLIMBIE, KNUTH,D. The Art of Computer Programming, Volume 3: Sorting and Searching, Reading, MA: Addison-Wesley, 1973. A. Database System Concepts. New York: McGraw-Hill, KORTH,H. AND SILRERSCHATZ, 1986. A. Database System Concepts, 2nd Edition, New York: KORTH,H. AND SILBERSCHATZ, McCraw-Hill, 1991. KROENKE, D. AND DOLAN,K. Database Processing, Third Edition, Chicago: Science Research Associates, 1988. KKOENKE, D. "Developing Object-Oriented Database Applications on Microcomputers." Proceedings of the Second International Conference on Computers and Applications, Beijing, June 1987. KULL,D. "Anatomy of a 4GL Disaster." ComputerDecisions, February 11, 1986. R. "I'astd-3's Graphical Query Language: Direct ManipulaKUNTZ,M. AND MELCHERT, tion, Cooperative Queries, Full Expressive Power." In VLDB 1989. LAMPSON, BUTLERAND LOMET, DAVID."A New Presumed Commit Optimization for Two Phase Commit." In VLDB 1993. LARSON, P. "Dynamic Hashing.', BIT 18, 1978. LARSON. P. "Analysis of Index-Sequential Files with Overflow Chaining." TODS, 6:4. December 1981. L ~ C L U S E C., , RICHAR, P., AND VELEZ,F. .'02, An Object-Oriented Data Model." ACM International Conference on the Management of Data. Chicago. IL, 1988. LECI.LJSE, C. AND RICHARD, P. "The O2 Database Programming Language." In VLDB 1989. LEDERER, A., AND SETHIK,V. "Pitfdk in Planning." Datamation, June 1, 1989. LEE, S.K. "An Extended Relational Database Model for Uncertain and Imprecise Information." In VLDB 1992. LEFKOVITZ, H. C. Proposed American National Standards Information Resource Dictionary System, QED Information Sciences, 1985. LEISS, E. Principles of Data Secwity, New York: Plenum Press, 1982. LENZERINI, M. AND SANTLICCI. C. "Cardinality Constraints in the Entity Relationship Model." In ER 1983. LIEN, E. AND WEINGERGER, P. "Consistency, Concurrency, and Crash Recovery." In SIGMOD 1978. LITWIN, P. "Faking Multi-Table Forms." Data Based Adt8isor,October 1989. LITWIN, W. "Virtual Hashing: A Dynamically Changing Hashing." In VLDB 1978. LITWIN, W. "Linear Hashing: A New Tool for File and Table Addressing." In VLDB 1980. LIU, K. AND SUNDERRAMAN, R. "On Representing Indefinite and Maybe Information in Relational Databases." In DE 1988. LIVADAS, P. File Structwes: Theory and Practice, Englewood Cliffs, NJ: Prentice Hall, 1989. LOCKEMANN, P. AND KNUTSEN, W. "Recovery of Disk Contents after System Failure." CACM, 11:8, August 1968. LOMET, DAVIDB. "Key Range Locking Strategies for Improved Concurrency." In VLDB 1993. LOZINSKII, E. "A Problem-Oriented Inferential Database System." TODS, 1 1 3 , September 1986. LYON, L. "CASE and the Database." Database Programming and Design, May 1989. MAIER, D., STEIN,J., OTIS, A,, AND PURDY,A. "Development of an Object-Oriented DBMS." OOPSLA, 1986. MAIER, D. AND STEIN,J. "Development and Implementation of an Object-Oriented
DBMS". In B. Shriver and P. Wegner, eds. Research Directions in Object-Oriented Programming, 355-392. Cambridge, MA: MIT Press, 1987. MAIER.D. The Theory of Relational Databases, Rockville, MD: Computer Science Press, 1983. MANOLA,F. AND DAYAL,U. "PDM: An Object-Orieinted Data Model." International Workshop on Object-Orieinted Database Systems. Pacific Grove, CA, 1986. MARKC~WITZ, V. AND RAZ, Y. "ERROL: An Entity-Relationship, Role Oriented. Query Language.'' In ER 1983. MARTIN, E., DEHAYES, D.. HOFFER,J . , AND PERKINS, W. Managing Information Technology: What Managers Need to Know, New York: Macmillan, 1991. MARTIN, J. Computer Data Base Organization. 2nd ed., Englewood Cliffs, NJ: Prentice Hall. 1977. ARTIN IN, J. An End-l.'ser's Guide to Data Base, Englewood Cliffs, NJ: Prentice Hall, 1981. MARTIN, J. Strategic Data Planning Methodologies, Englewood Cliffs, NJ: Prentice Hall. 1982. MARTIN, J . Managwzg the Data-Base Environment, Englewood Cliffs, NJ: Prentice Hall. 1983. MCFADDEN, F. AND HOFFER, J. Database Management, Third Edition, Menlo Park, CA: Benjamin/Cummings, 1991 MCGEE,W. "The Information Management System IMS/VS, Part I: General Structure and Operation." IBM SystemsJournal. 16 2, June 1977. MELTON,J. A N D SIMON,A. Understanding the New SQL: A Complete Guide, Morgan Kaufmann, 1993. MEYER,B Object-oriented Software Construction, Englewood Cliffs, NJ: Prentice Hall, 1988. MICRORIM, INC.R:BASEfor DOS User5 Manual. Redmond, WA: Microrim, 1987 R . "The Use of Information CapacMILLER, R.J., IOANNIDIS. Y.E., AND UMAKRISHNAN, ity in Schema Integration and Translation." In VLDB 1993. MISSIKOFF, M. AND WIEDERHOLD, G. "Toward a Unified Approach for Expert and Database Systems." In EDS 1984. B. "Extending the Relational Algebra to Capture Complex Objects." In MITSCHANG, VLDB 1989. MOTRO,A. "Using Integrity Constramts to Provide Intensional Answers to Relational Queries." In VLDB 1989. NAFFAH,N. (editor). Ofjce Information Systems, North-Holland, 1982. NAL7ATHE.S. AND GADGIL, S. "A Methodology for View Integration in Logical Database Design." In VLDB 1982. NAVATHE.S. A N D KERSCHBERG, L. "Role of Data Dictionaries in Database Design." Information and Management, 10:1,January 1986. M. "Toward Making the ER Approach ObjectNAVATHE,S. AND PILLALAMAKRI, Oriented." In ER 1988. NAVATHE, S. AND SCHKOLNICK, M. "View Representation in Logical Database Design." In SIGMOD 1978. R., AND LARSON, J. "Integrating User Views in Database Design." NAVATHE, S., ELMASRI, IEEE Computer, 19:1,January 1986. NAVATHE, S. "An Intuitive View to Normalize Network-Structured Data." In VLDB 1980. NG, P. "Further Analysis of the Entity-Relationship Approach to Database Design." TSE, 7:1, January 1981. NIEVERGELT, J. "Binary Search Trees and File Organization." Computing Suweys, 6:3, September 1974. NIJSSEN,G. (editor). Modelling i n Data Base Management Systems, North-Holland, 1976. OHSUGA,S. "Knowledge Based Systems as a New Interactive Computer System of the Next Generation." In Computer Science and Technologies, North-Holland, 1982. OLIVE,A. "On the Design and Implementation of Information Systems from Deductive Conceptual Models." In VLDB, 1989.
OLLE.T. W. The CODASYL Approach to Data Base Management, Chichester, England: Wiley, 1980. O Z S O Y ~ G LG., U , O z s o ~ o G ~Z., u , AND MATROS,V. "Extending Relational Algebra and Relational Calculus with Set Valued Attributes and Aggregate Functions." TODS, 12:4, December 1985. OZSOYOGLLJ, Z. AND YUAN;L. "A New Normal Form for Nested Relations." TODS, 12:1, March 1987. PAPADIMITRIOU, C. The Theory of Database Concurrenc,y Control, Rockville, MD: Computer Science Press, 1986. PARENT,C. AND SPACCAPIETRA, S. "An Algebra for a General Entity-Relationship Model." TSE, 11:7,July 1985. P. "SVP: A Model Capturing Sets, Streams, PARKER.D.S., SIMON,E., AND VALDUKIEZ, and Parallelism." In VLDB 1992. PERCY,T. "My Data, Right or Wrong." Datamation, June 1, 1986. PONCELET.P., TESSEIRE, M., C I C C H E ~R., I , AND LAKHAL.L. "Towards a Formal Approach for Object Database Design." In VLDB 1993. A N D SMALL. CAROL."A Domain-theoretic Approach to InteP O U L O V A ~ ~ALEXANDRA ~LI~, grating Functional and Logic Database Languages." In VLDB 1993. ~ M A K R I S H N A N , R., SRIVASTAVA. D., AND SUDARSHAN, S. "CORAL: Control. Relations and Logic." In VLDB 1992. RAz, Y. "The Principle of Commitment Ordering, or Guaranteeing Serializability in a IIeterogeneous Environment of Multiple Autonomous Resource Managers Using Atomic Commitment." In VLDB 1992. A. "A Multi-Resolution Relational Data READ,R.L., FUSSELL,D.S., AND SILBERSCHATZ, Model." In VLDB 1992. REISNER,P. "Use of Psychological Experimentation as an Aid to Development of a Query Language.'' TSE, 3:3, May 1977. REISNER, P. "Human Factors Studies of Database Query Language: A Survey and Assessment." Computing Surueys, 13:1, March 1981. RETTIG,M. "Gourmet Guide to the DB2 Catalog." Data Base Programming and Design, February 1989. RICHARDSON, J. "Supporting Lists in a Data Model (.4 Timely .4pproach)." In VLDB 1992. RISCH.T. "Monitoring Database Objects." In VLDB 1989. KOSENTHAL, A,, CHAKRAVARTHY, U.S., BLAUSTEIN, B., AND BLAKELY, J. "Situation Monitoring for Active Databases." In VLDB 1989. ROTH, M. AND KORTH,H. "The Design of Non-1NF Relational Databases into Nested Normal Form." In SIGMOD 1987. ROTHNIE,J. ET AL. "IntTobuction-to-a S y ~ e mfor i%xritmted Batabws-(%&lV TODS, 5:1, March 1980. RUBEL,M. C. "Keeping The Garbage Out." Data Based Adtl&or,.4pril 1989. RUBEL, M. C. "Entering Data into Screen Forms." Data Based Advisor, May 1989. RUBEL, M. C. "Creating a Report." Data Based Adu&or, July 1989. RUDENSTEINER, E.A. "Multiview: A Methodology for Supporting Multiple Views in Object-Oriented Databases." In VLDB 1992. RUSTIN, R. (editor). Data Base Systems, Englewood Cliffs, NJ: Prentice Hall, 1972. RUSTIN, R. (editor). Proceedings of the ACM SIGMOD Debate on Data Models: Data Structure Set Versus Relational, 1974. SAYLES, J. S. "All in a row." Data Based Advisor, December 1989. H. Data Center Operations, Englewood Cliffs, NJ: Prentice Hall, 1981. SCHAEFFEK, P. (editor). Improving Database Usability and Responsiveness, Orlando: SCHEUERMANN, Academic Press, 1982. M. "A Survey of Physical Database Design Methodology and TechSCHKOLNICK, niques." In VLDB 1978. J . "On the Semantics of the Relational Model." In SIGMOD SCHMIDT,J. ANL) SWENSON, 1975.
-
-
-
-
-
-
-
SCHREIER, U.. PIRAHESH, H., AGRAWAL, R., AND MOHAN,C. "Alert: An Architecture for Transforming a Passive DBMS into an Active DBMS." In VLDB 1991. SCHUR.S. G. "Building an Active Distributed Database." Database Programming and Design, April 1989. SEGEV,A. AND ZHAO,J.L. "Data Management for Large Rule Systems." In VLDB 1991. SHANK,M., BOYNTON,A. AND ZMUD,R. "Critical Success Factor Analysis as a Methodology for IS Planning." MIS Quarterly, 9 2 , June 1985. SHETH, A,, LARSON, J., CORNELIO, A., AND NAVATHE, S. "A Tool for Integrating Conceptual Schemas and User Views." In DE 1988. SHIPMAN, D. "The Functional Data Model and the Data Language DAPLEX." TODS, 6:1, March 1981. SHNEIDERMAN, B. (editor). Databases: Improtling Usability and Responsiveness, Orlando: Academic Press, 1978. P., STAMOS, J., AND THOMAS,J. "The Rufus SysSHOENS,K., LUNIEWSKI, A,, SCHWARZ, tem: Information Organization for Semi-Structured Data." In VLDB 1993. SIBLEY, E. "The Development of Database Technology." Computing Surveys; 8:1, March 1976. SIEGEL, M. AND MADNICK, S.E. "A Metadata Approach to Resolving Semantic Conflicts." In VLDB 1991. B.R. "Integrating Implicit Answers with ObjectSIEGELMANN, H.T. AND BADRINATH, Oriented Queries." In VLDB 1991. SIMON,E., KIERNAN, J., AND DE MAINDREVILLE, C. "Implementing High-Level Active Rules o n Top of Relational Databases." In VLDB 1992. SMITH,J . AND SMITH.D. "Database Abstractions: Aggregation and Generalization." TODS, 2:2, June 1977. G. Files C; Databases: An Introduction, Reading, M A : AddisonSMITH,P. AND BARNES, Wesley, 1987. M. "Entity Modeling in the MLS Relational Model." In VLDB SMITH,K. AND WINSLETT, 1992. SNODGRASS, R. AND AHN, I. "A Taxonomy of Time in Databases." In SIGMOD 1985. SPRAGUE. R., AND MCNURLINK, B. Information Systems in Practice, Englewood Cliffs, NJ: Prentice Hall, 1986. SPRAGUE, R. AND WATSON,H. Decision Support Systems, 2nd Edition, Englewood Cliffs, NJ: Prentice Hall, 1989. SRIVASTAVA, DIVESH.RAMAKRISHNAN,RAGHU, SESHADRI, PRAVEEN, AND SUDARSHAN, S. "Coral++: Adding Object-Orientation to a Logic Database Language." In VLDB 1993. STONEBRAKER, M., WONG, E., KREPS,P. AND HELD,G. "The Design and Implementation of INGRES." TODS, 1 3 , September 1976. "A Methodology for Creating User Views in DataSTOREY,V. C., AND R. C. GOLDSTEIN. base Design." TODS, 1 3 3 , September 1988. SU, S.Y.W. AND CHEN, H-H.M. "A Temporal Knowledge Representation Model 0SAM6/T and its Query Language OQL/T." In VLDB 1991. M.F. "Versions of Simple and Composite ObTALENS,G., OUSSALAH, C., AND COLINAS, jects." In VLDB 1993. TAYLOR,R. AND FRANK,R. "CODASYL. Data Base Management Systems." Computing Surveys, 8:1 , March 1976. TEOREY,T. AND FRY,J. Design of Database Structures, Englewood Cliffs, NJ: Prentice Hall, 1982. TEORY,T., YANG,D., AND FRY,J. "A Logical Design Methodology for Relational Databases Using the Extended Entity-Relationship Model." Computing Surveys, 18:2, June 1986. THOMAS, J. AND GOULD,J. "A Psychological Study of Query By Example." NCC, AFIPS, 44, 1975. THOMAS,J . AND DEBLOCHS. "A Plan-Operator Concept for Client-Based Knowledge Processing." In VLDB 1993. TODD, S. "The Peterlee Relational Test Vehicle-A System Overview." IBM Systems Journal, 15:4, December 1976.
TSICHRITZIS, D. AND KLUG,A. (editors). The ANSUX.j'/SPARC DBMS Framework, AFIPS Press, 1978. TSICHRITZIS, D., AND LOCHOVSKY. F. "Hierarchical Data-base Management: A Survey." Computing Surveys, 8:1, March 1976. TSICHRITZIS, D., AND LOCHOVSKY, F. Data Base Management Systems. New York: Academic Press, 1977. TSICHRITZIS, D. AND LOCHOVSKY, F. Data Models, Englewood Cliffs: Prentice Hall, 1982. TSICHRITZIS, D. "Forms Mangement." CACM, 25:7, July 1982. UHROWCZIK, P. "Data Dictionary/Directories.2IBM Systems Journal, 12:4, December 1973. ULLMAN, J. Principles of Database Systems, Second Edition. Rockville, MD: Computer Science Press, 1982. ULLMAN, J. Principles of Database and Knowledge-Base Systems, Rockville, MD: Computer Science Press, 1990. UMBAUGH, R., (editor). The Handbook ofMIS Management, Auerbach, 1985 VALIIURIEZ, P. A N D GARDARIN, G. Ana1ysi.s and Comparison of Relational Database Systems, Reading, MA: Addison-Wesley, 1989. VE-ITER, M., ANII MADDISON,K.N. Database Design Methodology, Englewood Cliffs, NJ: Prentice Hall, 1981. VETTER,M. Strategy forData Modeling, Wiley, 1987. WELDON,J . Data Base Administration, New York: Plenum Press, 1981. WELTY,C., AND STEMPLE, D. "Human Factors Comparison of a Procedural a n d a Nonprocedural Query Language." TODS. 6:4. December 1981. WERTZ,C. The Data Dictionary: Concepts and Uses, QED Information Sciences, 1986. WHI-ITEN, J., RENTLEY, L., ANI) Ho, T. Systems Analysis and Design Methods, St. Louis: Times Mirror/Mosby, 1986. WIEDERHOLD, G. Database Design, Second Edition, New York: McGraw-Hill, 1983 WIEDERHOLD, G. "Knowledge and Database Management." IEEE Software, 8:1, January 1984. WIEDERHOLD, G. "Views, Objects, and Databases." Computer, 19:12, December 1986. WITKOWSKI, ANDREW, CARINO, FELIPE,AND KOSTAMAA. PEKKA."NCR 3700 - The NextGeneration Industrial Database Computer." In VLDB 1993. WYLIE,C. 101 Puzzles in Thought and Logic, Mineola. NY: Dover Publications, Inc., 1957. WINKLER-PARENTZ, H. B. "Can You Trust Your DBMS?" Database Programming and Design, July 1989. WIORKOWSKI, G., AND D. KULL."Distributed DBL." Database Programming and Design, April 1989. WOOD, D. "A Primer of Features and Performance Issues of Relational DBMSs." Data Resource Management, 1:1, Winter 1990. YAO, S. (editor). Principles of Database Design, Volume I: Logical Organizations, Englewood Cliffs, NJ: Prentice Hall, 1985. YOURDON,E., & CONSTANTINE, L. Structured Design, Englewood Cliffs, NJ: Prentice Hall, 1979. ZANIOLO,C. ET AL. "Object-Oriented Database Systems and Knowledge Systems." In EDS 1984. ZLOOF,M. "Query By Example." NCC, AFIPS, 44, 1975. ZLOOF,M. M. "Query-by-Example: A Data Base Language." IBMSystems Journal, 16:4, 1977.
INDICE ANALITICO
Acceso scilo para recy~eracihn,65 Administrador de arehivos, 325 Agente. 394 Agregacibn ,445-446 Agrrgado, 11 I , 133 Agrupamirnto, 350 Algebra relacional, 178-98 Ancrstro, 519 Anomalia dc actualizac.ibn, 118 Anomalias de horrado, 148 .inomalias de insercihn, 148 +puntatlor; 340-341 -4rhol enraizatio, 343 Archivo de acceso dirccto, 20 Arista, 489 >4rquitectura tres-niveles, 68-69, 80 Atributo, 97-100
Banderas de estado, 501, 531 Base de datos crntralizada. 57-58 Base de datos externa. 526 Base de datos orirntada a ohjetos Bloque de comunicacibn de programa, 526 Bloque de rspecificaci6n de programa, 526. 527-528 Bloqur de imtruccionrs, 294 Bloqueo dt. escritura, 373 Bloquro de levtura, 373 Bloquro, 371
Cajd dc condicicin, 260 (:hlculo relacional. 198-204 Camino, 343 Campo, 38 Cardinalidad, 95-97, 102-103. 133 Catilogo. 212-213 Ciclo de vida ciel dcsarrollo de la base dr datos (CVDBD). 62-63,69. 71-72 Cifrado. 381-382.424 Cilindro, 326-327 Clase dcrivada, 445 Cia\ c candiciata, 145 Clavc externa. 99. 126. 133. 144 Clavr for&nc.a, 145-146 Claw primaria, 145.353 Clave srcundaria, 353 Clave subrogada, 92.98-99,144 Clavr, ll,98-99, 143-144 Clirnte/ser\idor, 279-32 1 Conceptual. 68 Conrctores booleanos, 221,466-47 (:onjunto de objetos abstractos, 92 Conjunto dr, objrtos agregado, 94-95 Conocimirnto extrnsional, $70 Conocirniento intensional, 470 Consulta conjuntna. 271 Consulta extcrna, 227 Consultando por ejemplos (QBE), 20 Contraseiia, 65,375 Control dr acceso, 423 Control de concurrencia, 370-375.423
86-
Ejet-ut*ihnser~al.406 Enc*adenan~iento hacia atlelantcl. $72 I
Factor tle carpa. 336 Forma Norn~alBo! t 4 : o d t l (FNBC), 152 Forma Normal don~inio/Llave(FNDLL), 155 E'rapentat*ihnI ertiral. 400-401 F ~ ~ n c i htlrn h a ~ htlinamico. 338-340
(;raSo tlirigitlo. 489
Hash eutrntliblc. 338 IIijo. 17. 316 Iloja. 343
Itlt~ntitlatldrl ol~jrto.92 l ~ n t t ~ r r t ~ l a t patlrt.-hijo. ihn 5 I0 lustancia dt- ot~jrto,91 I11s1rnt~c~i6n tlr t*alil'icaci6n, 199-200 1nstrnct.iOn tlt, itt.raciOn. 27.5 l n s t r u t ~ ~ i o n(svntcwias) t~s co~~dicit~nalt~s. 275 l n t t y a t i h n tit. 10s tlatos. .53. SO lntrgridatl tlr los datos, 65. 148. 307 Ir~tt~gritlatl rrfrrrntial. 147 Intrgritlatl. 367. 368-375 lntrrhlotl~~t~o. a l ~ r a ~mortal. o 372-373 IntrrSaz (;riGt.a (11. Usuario (GLII). 22%281 Iutrroperati\itlad. 22 Interrelat~iOntle alto nivel. 1 I 1 Interrc~lat.iOn.93-95
I,t'ngua,je anfitrihn. 242-243 Lvnguajt. tlt, tit-linicihn tlc datos (LIID). 197 Lt,nguajt*tle twnsulta rstrut.turatlo (SOL). 20 Lenguajc tlc twnsnlta, 27,45-49 Tmguajt~tlc datos lhgico, 481 1,mguajt. tlr flujo tle control, 293-298 Lrnguajt. tlc manipulacihn tle datos (T,Ml)). 77. 497. 501.i07 Lrnguajt*tt.xtual, 256 Lista vnla~ada.340-342 Lista intertida, 342 Lista resrdtado. 199-200 LOgica de primer orden, 476
Manipulac~hnd r datos, 19-20 Marca de tirmpo, 409-410 Memoria principal, 325-326 Metadatos. 26, 246 Mbtodo de at*t*esodirecto indizado jcrirquico. 530 Mbtotlo tle atwso diretato-jerirt1uic.o. 528-.i30 Mbtodo de acreso srcurncial jrrirqnico, 528 Mbtodo de acceso securncial-indizadn. 528 Mbtodo del cocirntr cl~adritico,337 Modclado, 87-91 Modrlo concrptiial de ciatos, 90, 132 Modelo de datos en red. 487-513 Moddo d r datos jerirqiiico, 514-531 Mocielo de datos relational. 139-173 Modelo orientado a objetos, 90 Ml~c*hos-nniehos, 97. 133 Miilticonjunto. 219
Ohjrto c.oiiiplt~lo.4 15-146, 448 ODB(: (Ol?jctos dc Conrctividad d r I h s r d r 1)atos). 413 Ordcn rial rgat-ional. 340
Painter. 303 Pista. 320, 330 Prc.dicatlo, 1.97 Procctlimirntos ullnacrnatlos, 293 Prorrsaniirnto d r accrso tlirrrto. 8-11 Procrsaniirnto rlrcatr6nic.11de datos (PED). 5.5 Progenitor. 17. 316 P r o p a i n a dc aplicari6n , 8 P r o g r a n ~ r i 6 norirntada a ol~jrtos.443-448 Protocolo tlr cierre de tlos-llses. 406-407 Punto dc chcquro. 386
Kecorrido en prrorden. 520-321 Red local. 58.396 Rrd. 17 Rrgistro li,+. 491 Regla. 283 Rrndimientc~,65-66 Rratricci6n tle cwluniria, 288 Restrit~icintlc tahla. 288 Rc.triccii~n de valor. 63 Restricci6n. 214. 287-291 Retencii~nfija, 507 R r t r n c i h ol~ligatoria,507 Reunibn euterna, 190, 194 Reuni6n natural, 188-192,240 Reimihn thcta. 192-194
Segmtmto hoja, 51 9 Segmento raiz, 518 Segmento scniihle. 527-328 Segmentos gen~elos.519-520 Seguridad de 10s datos. 65. 367 Scmirreuni6n.104-405
Sistrma cle apliraciOn. 8 sistcma clr hase dr concw~mic~ntos (SHC), 442,468-481 Sistrriia d r base d r h t o s d i s t r h u ~ d d .i8. . 391-417 Sistema tlr 1)asr d r tlatos orientddo d ot~jt'toi,91, 441-467 S ~ s t n n ad r l ~ s drr tlatos. 3-32 S~stcwatie base, tlr (ldtos r r l ~ ~ o n : ~ I 17-20 rs. Sistrmd d r grsti6n d r 1)asr tlc conoc~mientos(SGB(:), 468 Sistrrna d r grstiOn de haw dr datos (SGBD). 12, 25-27, 59 S~strinacle inforinarih para la grsti6n (MIS), 11. 53-36. 107 S ~ s t n n ad r procwamiento de datos, 7. 107 Sistema experto, 468 Sisteina orientatlo a arrhivos. h- 14 Sistemas dc soporte a la toma d r clrc.isioncs. 55-56 Software d r apliracihn, 24-23 Solicitud tlr propuesta, 426 SQL inc.rustado, 242-243 Suhronsulta corrrlacionada. 228-229
Tahla hasc. 2'3 Tiihla dc rrsultatlo. 238-259 Tahla tlr vrrificacihn de tlisparadorrs. 301 Troria tlc la wrializacibn. 406 Texto cifratlo. 3111-382 'kuto lrgil~le.381 Tiempo tle acticacii~nd r la cabrza, 329 Toma d r dccisionrs, 11 Transaccibn abortada, 370 Transacribn atbmica. 369-370 Transaccibn crrrada. 382 Transacci6n local, 394 Transaccih, 394 Tupla, 143
\'alor at6mic0, 148 Yariahle local, 297-298 Vista, 26.63. 131, 243
Window painter. 31 3-31;