Sie sind auf Seite 1von 576

CONTENIDO

Prdop

............................................................................................ XV .............................................................. YIX

P r d u g o a la cdici6n e n espaiiol

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~as orientaclos 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~as d 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 o componentrs 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 ......................................................................
Estado financirro

r Diseiio e irnplrrnentatihn de la hast.

............................................................ 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~visatlo del 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~ulario nlnlti-tahla: rl forn~ulario solicitud .................... 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 .........................................

3 Sisterr~as d 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~lanificaila 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 ..........................................

70
1 1

. .
78 79 82

11 DISENO DE BASE DE DATOS


4 Prirrcipios del diseiio cor~ceptual d 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:iSn y 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~ir modelos 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 ........................... Eje~nplo 5: Huerto fruticola de Stratton (twntinuaciirn) .............. Ejeniplo 6: Srrvicios de Consultoria Manwaring (ctrntinnacihn) .... Moclelaclo concy)ti~al d 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~ales para 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 ~noclelo d 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 ...................................................

Seguntla forrna normal ....................................................... Tert*eraf o r n ~ a normal ........................................................ 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~ar Id 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~oncrptnal y relational ........... Resullieu ............................................................................ Prt.guntaude repaso ............................................................. l'rohlemas y ejercicioa ........................................................... Proyect~bs y 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 ............................................................... Rrsttiwion~s ol~re consultas 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 1111ple1ne11taci611 relaeiollal 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~as d 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~lemas y 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~iento tlel tliscw ............................................. Ticwq)o dt lwsicionamiento ................................................. Ticmpo dti at-tivac-ihntlr la c.al)rza ......................................... Rctraso tlc rotacihn ........................................................... Vrloc~iclacl tle 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) ........................................................... (hrresp~ukn(ia entre 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~tnciones del 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 ...................................... 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-

13 Selecci6n e implementacih d e un SGBD ....................................

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~as y 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 s y

siste~nas basados 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, strat~i6n d e clast. .......................................................... Clases derivadas y herencia simple ........................................ . Agregaclon ...................................................................... IJn ejemplo rxttwlich que den~uestra la hrrencia multiple .......... Desi~rrollos de 10s sistemas de Ijases ile tlatos orientaclos a o h j t ~ ...... Gemstone ....................................................................... \;l)ast ............................................................................. Orion ............................................................................ PDM ............................................................................. IRIS ..............................................................................

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 ..............................................................................

0, .................................................................................

CONTENIDO

Ltwp~ajr de datos lhgicos (I. DL) ............................................... Rcsunwn ............................................................................ Prrgnntah tlr repaso .............................................................. Prohlenlas y cjercicios ........................................................... Proyrctos y wrstionrs profcsionales .........................................

481 481

482 482
485

15 El ~ n o t l d o d 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~nar interrelaciones 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 .........................................................................

...................................................

'

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

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 cnrrit.~d~n tle n 5istemas cle informacibn qne incluye l)rogranlacli~n,analisis de sistema. diseiin tle sistenia5. comnnicaci6n de tlatos. ctc. El l i l ~ r o I~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 implcmrwtase usara el n~odelaclo ciirn tle la h a w dc. datos ! la gestihn drl entorno. A lo largo del l i l ~ r o cwt~ceptnal d r tlatos. prilnero como I ~ a s r para 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~ren 10s 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 e de clatos. la srlerciibn del SGHD. la administreedl1 d e la hase de datos. y la mtrgritlad v l a i Ijases clc datos clistrib~lidas. la sepliridi~tl

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 r 10s 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~ON DE 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 twXa las I ~ a s r d s 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 r ensriiarsr sin hacer rt.ferrnc.ias a1 modrlatlt~ orientado a ok)jetos. A lo largo del l i l ~ r o se 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~lientelservidor y 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<cmtinuidad d r 10s cwatro rasos. asi c ~ ~ notros i o varios t w o s . S r incluyr un gran ninnrro tlr fignras p a r a ilustrar rl niotlrlado dt, las I m e s tltb \ otros thpitws. El r a p i t d o sol)rtx t~liente/srr\idatos. solnt~iones tlr las p ~ y y n t a s (lor inrlu)e ilustrac.ionrs tomatlas dirrt*tanic.ntr clr las pmtallas tlr los twnq)ut:rdorrs clue s r nsaron para drsarrol1;u 10s rjvr111)los. El l i h o tielit. una aml)lia 1)il)liografia artnalizatla d e artit.1110~ d e in\ rstilri~ciOii.tlv C: modo t p r 10s estutliantt~s intt~resados purtlrn r r p l o r a r 10s temas r n ~nwfnndidatl. Los materialrs. ill f i n d tlrl capitulo. s r han c:standarizatlo. Catla nno incluj-r nn resnmen d r lo trataclo en el mismo. Atleniis i n r l u y Prrguntas tle rrprso. tpw w pueden rrspondrr tlirectamentv a partir del texto; 1)rol)ltwasy e6ertitios t p t x vstimulan y desarrollan una ronil)rtwsitin r n profuntlitlad. y pro>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
nirnudo en estos rjeniplos st. usan n o ~ n l ) r r s tlc datos c o w de datos. 10s Irnguajes. etc*.A4 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~jcrnplos pudirra rrquwii- convrrtir guiones a suhrayados, o a1 rontriuio. Kn d r nurstros rrsultacualquirr t w o esta conversihn no r s dificil y c i d q u i r r c~1mparaci6n dos 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. U~iiversitj; Elin B. Cohen, Wichita State I!ni\crsit?; U a ~ i t J. l Auw. Western %ashii~gtou 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<napp. pat^ State I ! n i ~ r r s i t y ;Kichard Iir,rns, East Carolilia U n i v c ~ s i t ~ Constar~c-e ; University; Paul F:. Laski, Nothern 17irgiriiaCommunity College: Ihnaltl Mac.stas? New Mexico Highlands [Tniversity: Scott McIntyrv, University of Coloratlo: Virtor hle!c.rs. Hawaii Pacific tiniversity: Stevaii Mrdalj? E a s t r r t ~ Michigan University: %'illiani 1'. Wagurr. Villanopa Ul~iversi~y y ;ihnwtl Zalti, College of Williai~i and Mary.

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 r su(-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~a 10s servidores de basrs cie ciatos y su rol en (11modelo emei-gente c-lir~~tr/srrviclor. La majoria de 10s restantes artici~los sr w n t r a l ~ a n en el desarrollo d r ap1ic.aciont.s nudtiusuario Xhase. En r l n i ~ m r r o citacio cie 1997. que inic.ial,a r l 10." aiio cie su puhlicaribn, avcntural~a su dirrrtor clue r r a difivil predecir cpb h a l ~ r i a m 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~n por 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~ones de 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~itirli yrrstionar 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 v s r p~i(:(lr c.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 y ol~jrtos ac-tllal (lr las trcnologias t k 1)asrs tlr datos (.st5 soportado p o r sisten~as 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 e i~ 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 o Cirncle las carrtsras d r Ingrnicria Inforniitica y tle Sistemas Coml~utacional(:s rias tlr la Computacihn: rso req~1ier.r tlrl 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 dc. datos (motlelo d c tlatos r n red, 1-eprcwmta11a 10s primrros sistenlas tle I ~ a s r s estos mocklo tle datos jrriirquico y los 1)rimrros modrlos rrlacionales). A u r q r ~ e 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~cn sirndo 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.

PROLOG0 A LA EDICION ESPANOLA

XXI

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 s V. Hailsen virnr a inc~orporarst a la alnplia nwnrrosil. p r o 1~il)liografia t.n in$& rxistcmtt: tlr 1,nsc:s tle datos y a la no m ~ i y 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. SII t r n ~ a r i o avtualizado p r n i i t i r a la d i f i ~ i h tle la teoria, (list*Crctmos (111~ 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)~ietias ohras 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

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? antrriores. E n estc capitulo El capitulo 1 sc: rcfiere a las dos primeras p r t y ~ n t a s 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~s d 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 com. 1 hardware, el software, los datos ponrntr.~ principalrs cle u n sistema d r Imr de clatos: c 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 sc presenta rl procseso tlr tlesarrollo tle nn sistc~ina de base d e tlatos paso a paso. Se tna! 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 o org;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
"*am-

DISENO Y ADMINISTRACION DE BASES DE DATOS

Ilnllon, CIO (director tle aisteii~us rle 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~'~~" "~Es &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: y qjecutudu con he hecho yo u i ~ u p r o p e s t u clue no h u b i ~ r u sitlo con rebid(^ roil hrilluirtc~ ubsolutu precisibn?" -'Bim. cecrinos. Cuuicdo tti l l e g u s t ~ uqui. ~coh /IPC(IS~P d e nuestro \istem(i inu1111u1 (I un lm . yo ~iito el aisteinu d e buses de dutos en red, y despuGs lus sist~rilcc orieiltudo (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 por 1u compuiiiu en cudu o c w t l cu+c ~ cunrbio y d e 10s benejiciou \ignijie(iticos c o s e r h u d o ~ sibir. El contestb: "Ha sido uit largo cc~nliiro irluiLtenerse (tvciitzccilclo (1 la p u r qur la tecirologicr. icierto o julso?" 51. Pero tli hus szdo excq)cioi~(ilul perrnui~ecer (11 t u i ~ t o d e 105 destcrrollos y mover(I iruestro iwgocio. Y peizsur ( ~ I todo P einprzb tlr nos huciu ~110s rr~ccr~tlo inus contribr~iriori rm ntodo tu 11 .\irnple. ..
6 '
7 ,

SILSU~L Broadbent, CEO. y Sarfird

"

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 twnerciales. ) so11rcIt13 ncgotios \. rhmo ha cstatlo a k c t a d a ella miiina 11orlai net~iitlades (2) lo, cuatro roml~onentcs principalcs de un i i i t c n ~ a tic 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~as tlc 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~as de 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 ...

Un caso: La compaiiia International Product Distribution


Susccn Broutlbc~rites lcc j ~ n t l u d o r u .propietciriu y l)r(~.sidenttc de 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~t loccrlinente P I L ~ncis d~ 100 pcrisc~s,cccdu uno rle 10,s cuales i i ~ o r i m u 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 ~ a culidutl 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~icugo v 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~plenbu coniprudores 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~uban u inano. Y o obstunte, aljincrlizar el segundo ulio, el vol~~nie (n 1~1 negorio 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~o se 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.

DISENO Y ADMINISTRACI~NDE BASES DE DATOS

International Product Distribution


I

EL MINORISTA

International Product Distribution

CONTROL DE

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

LOS SISTEMAS DE BASES DE DATOS Y LA EVOLUCION DE LA TECNOLOG~A ...

siste~na dr 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~ado putlitbra 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 o d 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 sor. a 10s analistas clue diseiiaron estos sistemas. s r dejaron p r r t d e r a los programadorrs ! 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~a original 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 tlifereutc. .to INS registros. Cada uno (It. estos rc:gistros iwntienr los datos s o h e un ~ ) r o d ~ ~ c c*onceptos o twnpos tlr 10s tlatos individuales en t.1 archivo I'KODUCTO son ID-PKO-

CLIENTE ID-CLIENTE

100 101 105 110


ID-REP

NOMB-CLIENTE Hnos. Watabe Matlzl Jefferson Gomez


NOMB-REP

DIRECCION Apdo. 241, T o k i o Salzburg B 918, C h i c a g o Santiago


ID-DIRECTOR

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 OFICINA

10 14 23 37 39
PRODUCT0 ID-PRODUCT0

Rodney J o n e s M a s a j i Matsu Franqois Moire E l e n a Hermana Goro Azuma


DESC-PRODUCT0

27 44 35 12 44
ID-FABRICANTE

Chicago Tokio Bruselas B.A. Tokio


COST0 PRECIO

1035 2241 251 8


VENTA FECHA

Sueter Lampara de Mesa E s c u l t u r a de B r o n c e


ID-CLIENTE ID-REP

21 0 3 17 253

11.25 22.25 13.60


CANTIDAD

22.00 33.25 21.20

02 I08 02/12 02/12 02/19 02 122 02/25 02/25


FABRICANTE ID-FABRICANTE

100 101 101 I00 101 105 110

14 23 23 39 23 10 37
WOMB-FABRICANTE

200 300 150 200 200 100 150


DIRECCION Aukland Lagos Lima

21 0 253 31 7

Confecciones K i w i O b r a s de B r o n c e Lamparas L l a n a

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.).

'

DISENO Y 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 i Ii PiD a en 10s alios scbstbnta, cuando el allniirenanknto c.11 t1irt.o e r a totlavia relatit* 10s art.hivos se a h a t - e n a h a n t.11 tintil ~nagni.tit.ay se tenia tiva~uente c a m . La ~nayoria . 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 t st' ~ prot*esal)ana1 mislno t i e m l ~ o nornlalnlrnte ~ cada noclw tlespuGs tlel rierre tlel negot.io. Los arel~ivos sc. utilizalran para varias aplicacionrs diferrntt+. E'or ejrnlplo. el programa de las cuelitas a w h r a r general~a 10s 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 . se fusionahan para c w a r un ektatlo impreso. twmo se murstra en la FiID-C:LIE&TE 1 para rcflep r a 1.4. El r a m p SL\LDO-Ih'TCIAL en r l archivo CLIENTE se at-tualizal~a j 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 w en ulia e11i1)~csa es un programa tit: aplicaci6n ( I un elemento tlc un sqftwr~rede crplicctribr~.El conjunto tle programas clue trahajan t:olet*tisamentepara rt~alizrir un grupo d e tareas r d a tionatlas entrr si tLsun sisterno de aplicucibrl.

Necesidad del proceso de acceso directo a datos


Las li~nitaciones de 10s sistemas orientados a arcl~ivos 1)uramrnte secucnt.i;~lesno 10s p i ulia varon tle s~ l~erramientas t~fitwrs p a r a protiucir p a p s , facturas y otros infor~nes 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~lemas tjue 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

I
(ordenado por CLINE-ID) Programa de Cuentas por Cobrar

u
CLIENTE actualizado

Ir

(ordenado por CLINE-ID)

archivo VENTA

)I ,

ORDENAR (por CLIEN-ID)

. )

archivo VENTA

(no ordenado)

(ordenado por CLINE-ID)

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 ~(intidiid y el 11) (/el produeto. qzw en rlccclquier cwso introdurerr siempre, ) quc el s i s t ~ n w culcule el precio totell?" Estclmoa en la +ocu iniciul tld proc(~nurniento de 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(~r un 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~ws secnei~(~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(ijumos con 10s archiros C L I K i T E j. l/E\Tl. (ICC(~SO a1 rc~gistro delprodtzcto." por tunto, 11otei~einos "Me tento q~ze no coinprwdo lo clue estics diciendo. '.Bien, q n i 11r1ya l g u ~ ~ o dutos 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~r el propru~nr~ de lus cucJntuscc cobrur, tc~mbiin ordenainos 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~po einpleadu 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~itad del 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~r rl precio de ese producto. estariornos obligndos a regresur a1 con~ienzo del urchivo PRODC'CTO. 2 Ies cciino tendriamos que estar saltando rontinuurnente u trauik del ~ r c h i u o PRODC'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~ntes descontentos 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."
"

DISENO Y ADMINISTRACION D EB A S E SD E DATOS

" i k s t o rios dtrriu d g ~ i r i u otru 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~bibri podernos 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 td t~ es 10s errortjs en l t ~ ~ , f u c t u r d ue s los clientes. c p e Pentcis y otros. Eso nos uyuduru (1 ~ l i r n i n u r " estun p r o r o c u r ~ d o sus 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~as con 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 esti. ordenatlo por el ID tlcl Esto s r innt~stra en la Figura 1.4. l u n cuantlo (31 archivo VENTA4 Clirntr, 1~rohal)lrmentr r s t a r i tlrsordrnado por t:on~plrto con 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~rzo manna1 irdirional r introdncr una 1)rol)crl)ilidadmayor de rrror. conduw tam1)iSn. El rctluisito tlr (pit1t o d o d o s archives s r proersen srcnent:ialn~rntr tle otra fornma. a rralizar t r a l ~ a j o aditional. 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 h d 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
I
Programa de Cdlculo de Comision REPRESENTANTE DE VENTAS actualizado

(ordenado

archivo VENTA

I Estado de Comisiones

v
(no ordenado) (ordenado por el REP-ID)

LOS SISTEMAS DE BASES DE DATOS Y LA EVOLUCION DE LA TECNOLOGIA ...

II

proc~~so clr s 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~riitc los 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~nplrta a rstos pro1)lemas fur nrcrsario iutroducir 10s sistrrnas dr grstihn dr 1)asrs (It: datos.

La informacih como un recurso


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:

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. 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~alrnentr de 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

DISENOY ADMINISTRACIONDE BASES DE DATOS

basr de datos. Una rolec.ribn th. tlatos ir~terrelarionatlos tpe 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.

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~i6n de 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

CNOMBRE

Carol T. Jones

20 caracteres
Registro de cuentas corrientes

SNOMBRE
\

Carol T. Jones 15 caracteres

INOMBRE Carol T. Jones

Registro de cuentas de ahorro

Registro de prestamo a plazos

LOS SISTEMAS DE BASES DE DATOS Y LA EVOLUCION DE LA TECNOLOG~A ...

13

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~ntv en 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 ~)uctlen afectar 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. 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.

homonimo. Un tirmino que time diferentri significados en difrrentes contrxtos. si116ninio. T6riniiio clue significa lo misnio.

archivo de cuentas corrientes


I I I I I I I
\ \ \ \

I I I I
\

6
archivo de cuentas de ahorro
\

- I
\

CNOMBRE

SNOMBRE

Carol T. Smith

]I

I
I

Carol T. Smith 15 caracteres

I 1I
I

I I

INOMBRE Carole T. Smith 15 caracteres Registro de prestamo a plazos

20 caracteres

Registro de cuentas corrientes

Registro de cuentas de ahorro

DISENO Y 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~rto para 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


Los sistemas de bases de datos superan estas limitaciones dc 10s sistemas nrientados a 10s archivos. . A 1 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~nentos de 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~os inmersos 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.

modelo de datos. Un mktodo conceptual para estructurar 10s datos.

' En in+

DRAY - Dntntlnse Arlrninistrators ( N . drl T.).

LOS SISTEMAS DE BASES DE DATOS Y LA EVOLUCION DE LA TECNOLOGIA ...

I5

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 ~ e Bros. Ahora suptrngamos q u r se qniere invertir rl prowso. En lugar tit. querer twnoew el t*litwteinvoliic~rado en 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 n el 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 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-CLIENTE 100 101 105 110


FACTURA FACTURA-# 1012 1015 1020

NOMB-CLIENTE

DIRECCION

PAIS

Hnos. Watabe Matlzl Jefferson Gomez


FECHA 02/10 02/14 02 / 20 LINEA-# 01 02 03 01 02 01 02

Box 241, Tokio Salzburg B 918, Chicago Santiago


ID-CLIENTE 100 110 100 ID-PRODUCTO 1035 2241 251 8 1035 251 8 2241 2518

Japon Austria U S A Chile


ID-REP 39 37 14 CANTIDAD 100 200 300 150 200 100 150

LINEA DE FACTURA FACTURA-# 1012 1012 1012 1015 1015 1020 1020

PRECIO TOTAL 2200,00 6650,00 6360,00 3300,00 4240,00 3325,00 3180,00

0
FACTURA L~NEA DE FACTURA

a
CLIENTE

DISENOY ADMINISTRACION DE BASES DE DATOS

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~odelo jerirquico. 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 TIENDA FACTURA

LOS SISTEMAS DE BASES DE DATOS Y LA EVOLUCION DE LA TECNOLOGIA ...

REPVENTAS

CLIENTE

FACTURA

TIENDA

hijo. Un re,' W Itro ~ --wl)ortlinado" en una interrrlaeih jerirqnica.

red. Ui~a interrelacihn de datos en la cual un rrgistro puede estar subordinado a registros ~ arcliivo. tlc mis ( 1 iin

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 o dc 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.

Cordelia, estamos cuda oez mas Jiustrados con la cantidad de preguntas que nuestro sist~ma de base de datos no puede responder Jacilmente. Cnarzdo Sandy y t i nos convencist~is d~ qne debiamos canzbiar hacia un sistema de base de datos en red, argumentast~ que t~ndriamos la 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

66

DISENO Y 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(~ c ~ cprr l cdn en red les sirti5 durante vurios crGos. crhoru esttibu Ileg(rndo (11 mornrnto r r ~ 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(rlmente t.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. de 10s tipos de preglintn~prro 1u.s e z ~ t i l ~ nec(~sit(rs s rcJsil~irdes d(rrrne I I I M L i&w rn(~jor 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~os considerur 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~rnpre que 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. ijk por a ~jemplo, que Dickp~iede pregurztrir s i 10s productos hechos en G h m n .se ~lrndrn birn 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~nipulacicin de 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(:ahi, subir liasta F.4HKIChNTE. Pursto qnc la t w n r x i h TURA, h a s t a , ~ ~ O ~ ) U y. ( :tlr ~o 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 engode tsonirrosas tlrl prot:rsamimto dc archives. Ello nrcrsitaria una rantidatl t:onsidrrat~ltl plcja 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 r 10s datos en las tahlas: rl Algrlra relatiorrlacional (st: vstutliarin en el Capitnlo 6). Ani1)os 1t.nguajrs soportan la nal y cl t*&lt:~~lo n~anipnlatii,n de 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~anipulatihn 10git.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 l ac nn p a j r s como el Strnt~tnrrtl (QBE). 4 Qnery Language (SQL), el Query 1,angnagc. (Qnel) y el Qucry-I))--Exan~plc

DISENO Y ADMINISTRACION D EB A S E SD E 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~irron avanzar 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~n m 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 a m 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 Arrhivos cwn aweso direrto

Todos 10s rrgistros cn un archiko d c h proresarw cn srrucnc*ia Soportan rl acreso direvto a un rrgi5tro rsperifiw. E5 difiril el aweso a varios registros relarionados con un registro s~mplr 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 Soportan las interrelacione5 jrrirquicas y no-jerircyuiras en rrdes mtre 10s datos Ueprnilientes dr pnnteros fisicws pretlefinidos Soportan todas las interrrlaciones Ibgiras entre 10s rlatos El acrrso a 10s datos es 16gico. indeprndiente dr las tCrnicas d r 1nstrumentari6n fisira

Raws dr datos jerirquicas

Bases de datos m red

Bases ile datos relarionalez

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

; ;

Sisternas de bases de datos relacionales modelos orientados a objetos

Plataformas clientelservidor

Sistemas de bases de datos orientados a objetos

Direcciones actuales-plataformas clientelservidor


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~mas de 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~a clientelser~idor normalrnente 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 ~ ~ ~ IqL uc i 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."
66

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 cwn t,o~nputadorrs dil'crrutrs htrrdware y snftwnr~ para trahajar coordinadamrnte ron rl fin dr lograr los o1)jc.tivcrs drl usnario. interoperahilidad. El rstado qnr c*arat*trriza a nihltiplrs sistemas hrtvrogheoi qur sr romuniran y vontrihuyrn a la trrn~inaciOn de una tarra cwlnun

y zados rntre si 11ai-apcwuitirle ;I 10s usnarios roniiinicarse por rnedio drl rorreo c.let.trhr~ieo 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 y 10s servidores de arch,iws. F'or rjrniplo, rl swvidor tlt*arrhi\ os. los serciilores ile irrtpr~si611 a1 rrsporldt:~ a la soliritud tlt- un clirnte sohrr un irrt.1iivo rspxifico. enviaria el archivo romp l ca ~ 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~a c*lirntr/srrviclt,r drsransa en rl cwnetbptode tlivisihn tlt* funciones. El dientc. es rl csomjmtadorfrontal qile tienr intrrfaz dircctarnentt~ con el usuario. Manil~ula la Iuterfaz Grifica d e I!suario (GUI) y realixa 10s t:ilrillos y otrc~s programas d r intrris p a r a r l ~lsuario final. El srrvidor rs el q u r gestiona f t ~ r ~ d a n ~ c ~ n t a l n t. i1 rnte 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~untarnentr puedcn ser m extrerno peligrosos. El ot~jrtivo de 10s sistrrnas ahiertos consistr en lograr la interoperabilidad, que es t.1 estailo tlr dos o m i s .;istc.-

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. dc una percepcihn teiiiE n cierto sentitlo. el enfoqne c.lientciscrvidor c.5 la c~ulminaci6ii pi-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)ilitlatl estin 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 e de 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 o y ripido de 10s datos que e s t i n aln~acenados en 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.

DISENO Y ADMINISTRACION D E BASES D E DATOS

Mainframe minicomputadora

, 1,

lmpresora

Cinta magnetics Cliente

Disco

(a) Mainframe o minicomputadora que permite el acceso desde varias terminales

(b) Computadora personal que usa una base de datos almacenada


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

LOS SISTEMAS DE BASES DE DATOS Y LA EVOLUCION DE LA TECNOLOG~A ...

25

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 ~)rocesamirnto tle 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 de aplic.ac.i6n. progra~nab

Utiiitarios de y ~nterrogacion 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 a la base de datos

DATOS

DISENOY ADMINISTRACION DEBASES DE DATOS

Meranisnlos d e sepwidad (. intepridad de lo* datoa. Ida 11aw t l v tlatos rs 1111 Iwwril) la I~ast. t l t t tlatoa lin~ivilliow tpie ntwsita protet~i611. El SGHD garantiza la scyritlatl d t ~ tando el acww) a la inisma a1 j~rrsonalat~torixatlo. 1,os usn;uios a~ctorixados. ;t.~~r~.iil~ne~ 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~ tt.~nc~~ twntri~wlias ~tt~ ! rntv1ia11rn (I(' portiont~s rt~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 ila a I m e tle datos se protegen 1"". n d i o tie restricciorw~sol)rt~ 10s valort~s tl~w 1111rt1en toinar los el(,y por. la?;c.al~at,itlades de rrt11perari6n> tlr rcyaltlo snrui~~istratlas ])or i~irritos rlr 10s tlatc~s 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~sta del usuarlo 3

Elemento
de dato

LOS SISTEMAS DE BASES DE DATOS Y L A EVOLUCION DE L A TECNOLOGIA ...

27

C o ~ ~ s u l te as inforn~c-s dirigiclos 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 cd ie i~ 10s n datos tlirigidas al I I S I I ~ I E:stos ~ ~ . Irw ~najes tle intc~i-rtyac.i6nf'ic-ilvs d e usar 1)t~rmitvii a 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;ttlv la c a r p i (It. fi)rinnI;~rrstas C O I L S I ~ / ~ ( o~ (It' S ( w r i l ~ il r~ ( 1 1 1 t ~ tits tt~s 111aci0n(10 la c*otnl)al"lia twoyam" (l'le aplic~i~c.ihn tle ~ ) r ( ~ l ) i ) seis tj o~ w i a l . 1 ~ 1gs e i i ( ~ r a t I o i(11, ~ ~i~il'orn~eb s t ~ s t i ia i so(*i~~~ a I10s o s l t ~ n g u a j t l~ (~ co~~,s~i F~-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 rrsn r 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~s 1)ucvlen t a m l ) i h I)i.intlar i'aci1itlatlt.s ~ i i w h o inh* 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 ~ ~ ~ ~ a 1,os c . i ;~~In~i~ti.;tratlo~'rs ciu: tlr la I)aw (11%tlntoe. 10s anulistw. lo.; l n . ~ g ~ ~ ~ ~ ~10s atl tlisc~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 B A S E S 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. C T n cjrrnl)lo de procrdi~nirnto s 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 por el siidia deterininado concuertk con la cantidad total tle ctfet.tivo rrcil)ido ii~ostrada tcma 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~abilidad con 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 a tlrl 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~a dr I~asr (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~rios itlrntifka~i laa ~~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 a e 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 y por 10s usuarios para rjrcutarlos soln-r 10s compctctdor~s. Estos prograla coniputacii~n ih 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 por 10s el diccionario tie datos. Estos programas grnrran informacihn, quc purtle i~tilizarsr 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 tlisr-el hardware, el softwarr. lox tlatos iiatlo y en funcionamimto. sus cuatro con~ponentes 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 o de la trcnologia tle las 1)asc:s tle tlatos. romenzando tsonltrs m6todos ~)rirnarios cle 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~s principalrs 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. y- ~1roinienzo d e 10s sesenA1 cornienzo del prweso (I(: tlatos, dnrantr los cinci~enta (*ii ta. la regla era el tratamiento tle arrhivos sernencialrs. Todos los datoh se almac.enal~an 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 d ell a (pie 10s sistemas cwrnputacionales de procesaniiento dc datos se hi&roil m i s importantes, 10s negorios commzaron a reronocer clue la infor~naciOn era un recur~ tlatos necesarios so corporative de valor considera1)le. Estos perelbieron m i s y miis ( 1 1 los para rontestar niimwosas prrgt~ntas tlel n t y ~ c i o estahan disponil)lvs tSnhlls archi\os tle procornenzaron a presional- a 10s sistemas tlr inforniacesarnirnto d r datos. Como ronsecwm~ia. ci6n 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~s ei~tre registros 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 e 10s 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 ~lrsarrollado las 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.

DISENO Y ADMINISTRAC~~N DE BASES DE DATOS

1. 1)t~fiua t-atla uno de 10s tbrniinos siguientes curl sus 1)ropias palal~ras:
a. sistcwa tlc p~.ot.cso de 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. ~iiotlelo de 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 1 1 1 . sistcma dn gestibn de 1)asrs tle datos 1 1 . 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-ihu en 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. c.
Diccionario11lirec.toriotle datos (DDID)

h. S e g ~ ~ r i t l e ad integridad de 10s datos


.k.ceso t.onc11rrente a 10s tlatos Ijara varios usuarios Fat:ilidatles para
td

d. Consults, maniplacibn r itit'ormes d r los datos

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. c. e. ISAM ABD (DBA) Quel QBE

h. IMS
d. SQL
f.

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

d~ buscl d~ drjtos

a.

El Mariscal Do111.y rc.td,ih liltis comisibn

~IIW rualquirr

otro r q ~ r r s e n t a n t e tlr

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

D EB A S E S 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 (*on sisten~as d e art,hivos n u sistt.nia (11. traditionales y t-on 10s sistcnias d r 1)aw d r tlatos. Si rllos r s t i n ~itilizando 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 :~rticulo clue 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 D e las entidades a las tablas Creacion de una tabla

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 Problemas y ejercicios 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 o s 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-as son 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) tlrfiy n 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 n vnintas h a s .

DISENO Y 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~hos tle los t r a l ~ a j o s han aparetido por recomrntlacion t de ~ clientes satihfrchos. No tlrjanclo nada a1 azar. Diane y Karen prcNparanot:asionalmente ~~ropagancla tjue s<tlistril)nye en las tiendas h c a l r s , tjne son frecut.ntatlas por (:lientes 1)otenciales. Ellas tanil)i4n han pursto anuntios en el prrihdico loral de Bainl~riclge island.

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~ropbsito tle esta secciim cs b r i n t h r algunas ideas cont~ernirntes a 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 a de ~ 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:

PROYECTO

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~n r n t r e la entiilad PROYECTO y la entidad EMPLEADO.

EMPLEA

I*

SERVlClOS PARA CELEBRACIONES: UN EJEMPLO ...

u
TIP0 COMIDA HECHO-POR PAGO TlENE I CLIENTE I PROYECTO

EMPLEA

I*

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 o o 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'I( 10s. >rcbto pueden trahajar varios emplr, 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.

2. Murhos-a-murhos (* a

* ) clue es la que se murstra entre PROYECTO y EMPLEADO, y entrr PROYECTO y T I P 0 COMIDA.

DISENO Y ADMINISTRACION DE BASES DE DATOS

De las entidades a las tahlas

Chuck Brown D r l d ~ i!llc~~ Lrro? Browri

4 1 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 10s rrcpisitos tipic-os p a r a tlisriiar SGBD. Vbasr la Figura 2.2. Aqui sr pucdrn o b s c ~ v a r 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 o para catla rrgistro. no hay dos rrgistros con r l n~isrilo valor 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~las que scj ~ ~ ~ u r s t rrin ln 1;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:

SERVlClOS PARA CELEBRACIONES: UN EJEMPLO ...

Field -

Roster:

Table Properties.

Fleld Name-

2. -

Minimum

7
I

4. -

Default

I I I
5 . Picture

Enter a field name up to 25 characters long

I[

Nombre de campo

Tipo

Tamaiio

Clave

Proyec# Fecha #Invitados Costo Est Cant. cargada

I
1

Nombre de campo

Tipo

Tamaiio

=lave

Nombre

/ A 1 2 5 1

Nombrede tampo

I
/

Tipo

(
1

Tamaiio

(
1

Clave

Nombre-Comida

DISENO Y ADMINISTRACI~N DE B A S E S DE DATOS

Nombre de campo
I

Tipo
I

Tarnaiio
I

Clave

Proyec# Cant. recibida

N
$

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 CLIENTE

TlENE

I
PROYECTO

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 a ta1)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 Proyec# Tipo N Tarnat'io Clave
*

Nombre-Comida Cantidad

25

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 p oa s w s q u e e n el c a m anterior, s r construye rsta tahla EMP1,E.l.

Nornbre de carnpo

Tipo

Tarnaiio

Clave

I
1

I Horas

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

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~meros de 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 dr t ~ p o dinero ($) 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 Proyec# Costo Est.
I
I

Minimo

Cant. cargada

J
Formato
###_##~####

Nombre de campo Campo obligatorio SS#

t - =
Nombre de campo Campo obligatorio Nornbre-Cornida

Nombre de campo Campo obligatorio Proyec# Cant. recibida

Minimo

0.00

SERVlClOS PARA CELEBRACIONES: UN EJEMPLO ...

Nornbre de carnpo Carnpo obligatorio Proyec# Nombre-Comida Cantidad

Minirno

Mtuirno

/
0

999

Nombre de campo Proyec#

Carnpo obligatorio

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.

DISENO Y 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 I arlai t a l ~ l a s a 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 h sobre 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.

SERVlClOS PARA CELEBRACIONES: U N EJEMPLO ...


Nombre Calle Ciudad
Redmond
1

45

Estado

CP

Telefono

Baskerville, Eugene

120 Fir Lane 14 Elm 25 Alpine Dr.

WA WA

98204 98223

123-4560 245-9366

I
I I I

Smith. Carrie

1
I I 1

I
1 / /

Winslow Everett.

I
I 1 1

wA

~royec#
I 2 3 4

Nombre
lordan. Harry Smith. Carrie Baskerville, Eugene Smith. Carrie

Fecha
2 1/3/93 15/4/93

#Invitados
100 50

I 1 1

Costo Est
$600.00 $325,00

I 1 1

Cant. Cargada
$850.00 $425.00

I 1 1

I
I

Proyed
I

Nombre-Comida
mousse de chocolate cerveza

1
I

Cantidad
125 75 150

1
1

I
I

ponche bistec

I
I

I
1

2 2 2

hamburguesa gelatina pastel

75 50 50

I I I I
I

3 3 3 3 4 4 4

1 1 1 1
(

croquetas de carne c6ctel de frutas ensalada verde Sprite esparragos patatas fritas jugo de arandanos

I I I I
I

60 50 50 60 45 60 50

I I I I
I

costillas barbacoa

40

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 y modrlo d r datos), (3) s r definido las intcwdacionrs r n t r r las t a l h (diagrams d r tal~las listos para han crrado 1as talllas, y (4) sc h a n introdwido los datos en las tahlas. r s t a n ~ o s 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 r a1 nsuario hacrrlr prrgnutas a un;r l w c d r datos nsando plantillas visualrs r n l r ~ g a r d 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~uv vivrn. 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~chbox) 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). 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)).

IQ.

ak en Place

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

Sr ~ u w l h e 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 ~ tle s 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 ~ (Selt~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 h en la tabla tle rcbq~ursta. La c w ~ s u l t e se \ e t ~ ~ u ri n o 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 cn No. stbp ~ d s a (w OK. Si no qnrrrmos salvav la consults. l~ulsarrmos 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.1 rnrni~ l~rincipal. Stslerrionar PIIOyEC7'0.DB y pulsar en OK. No se prcwtwpe tpt, la tabla I S A 4 tlr conDO P O R i r srlec*cionaritit. otra manrra. Dr nurvo st. \ r r i la ~)lantilla snlta 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 PROelrm~iit) YECTO 1 lJS4DO-POR. P4RADOX t w a n n irnico rlemcnto rjrmplo (rncrinpl~ 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 100~~sparilin punch 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 co~no rjritlplo.

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 Com~artir datos 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 r la 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 ~endimiento del 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

5I

hase de datos. Una colecci6n dc tlatos intcrrelacio~latlos, ! co~n])artitlos eontrolados.

n tbytccapitulo ye w n t r a r i la atri~clhti en 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 definiri6n tlt. lo eslwificw tle has? de datos. P a r a f'acilitar la c l i srusi6n daremoi una siu~ple 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. Expl~car por 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.

dr Protlr~rlos (N. del ' l : ) . Dii1ri1)rridoraIr~ternncional

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 ~ a en clue s r manejan y administr;~n 10s 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~artir tlatos. 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.

Compartir datos entre unidades funcionales


El tPrniino corr~purtir dutos 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.

SISTEMAS DE BASES DE DATOS EN LAS ORGANIZACIONES

53

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,r sint*rgiil: r s tlrrir. los tlatos coinl)inatlt~s tirnrn 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~nirndo at8t.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 a tenrr acst*cw)a 105 otros clatos 1101t.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 a t e la t*vnluati'~n 11rlos t ~ r o t l n t ~ o lo s . qntS10s pro\tvb tle informac:ihn invaluahlr para l;w t~arnpafias tlt. 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 ~ twrrrsl)oii~~ i~ivth tlr usuarios: personal. ~nantlos intrrmeilios y rjrcwtivob. Estos n i \ ~ e l t tlen cw11 10s trrs tlif(~rrntes til~os tle automatizacion d e 10s sistt-mas d r nrgocios clnr I ~ a n e\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 tel o 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 n rl 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

DISENO Y ADMINISTRAC~ON DE B A S E S 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~. nivrlrs tle tlirc.c.eibn pr ilustra en la Las intrrrelaciones (ivrstos sistenlak a 10s dif'(~c:ntes Figrtra 3.2. Estos niveles de usrcarios y sistc~nas rrqriieren 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. luego rrsrimirsr para la inforinacibn coinpras, pagos y otros. Estos clatos tlrtallados ~)otlrian 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

lnforrnes Estrategicos Consultas Analisis

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 gloucJz mcis y mcis d$cil obtriwr los irrj'ormes u tieinpo. " bo se 11(1 hnciendo c c ~ d a "Exc~cto.P o r c~horci d o s estiin enuiunclo S I L d ~ (~tos u 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 u bueila s : mcis, lus oficinas internucionciles dese(111u.wr 10s h t o s cllli decisii)n PII 10s negocios. F iizisirro cloitcle c~stcjir y no teller qzie estrrr hnciendo copias extrus de 6stos." P h o r a d e que cor~siderernos un sistein~ 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 (1 u i ~ costo efectivo." Aires. Esto seric~ sofisticuclo, pero p i m s o cpe podri(r~nos huc~rlo

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~ite situada en un h i c w Ingar, t ~ m t r o l a d o por 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 ~ ah r. atw twpias tle seguridad, t ~ m s u l t a r y 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 e el cual reside no tlenen relatihi1 localizada. Una compafiia petluefia con 5u con la base de tlatos donde e s t i c ~ n t r a l i n e n t r tle tlatob centralizada. lrase de datos sol~rc. una computadora personal (PC)tiene una I ~ a s e de la r m m a forma clue una gran compafiia con muchos romputadorei, pero cuya base tie datos esti eomplet~mente cwntrolada 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 r ofitinas 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~ologias tle las t*oniunitwiotieshan ~nejoratlo.I D P ha twinenxatlo uii serio e s t w tlio para iinplantar un sisteina de I ~ a s e de datos tlistril)rtitla. de base cle IJn sistema d e base dr clatos distribuitla (distribtrttd rlutcr buse systc~rrt) e s t i tson*istt-u~a pursto de varios sistrnias tle I~ases tle 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~i61i tleja tlr s r r un 1'1-0datos t w n q ) l ~ r ~d to r 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 ~nhdulos tle 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 n estar 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 ~ w e 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)~litlas son 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~ilidad de 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~alizatlos wntralrnente puetlan arcaetlrr a 10s rnisrnos datos srgiln lo recjniei-an sns newsitlades. Este enfoque rnejora la rclacihn
1,ocrrl Arcw \etrrork (N. drl 'I.).

"

1)rl ii#\

SISTEMAS DE BASES DE DATOS EN LAS ORGANIZACIONES

57

BASEDE DATOS

COMPUTADOR

COMPUTADOR

COMPUTADOR

BASEDE DATOS

LINEA DE COMUNICACION

I--BASE DE DATOS

LINEA DE COMUNICACION

------'

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~). tlrdiqnbnloslr una s t y n l d a rrvisi6n a la tlrfiniciiln cle una Ilasv de tlat~w (:on rsto ('11 ~nente. 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~-titlos r 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~ d r l m e s tle datos serL11 diseutitlas n ~ i tartle s tulo 13. Las fnnciones tlr los administratlo~w en rstr capitnlo y dc nnc.vo en el C a p i t d o 11. Trrrrro. Iok tli~tos sc 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-tir j 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~tladvs tlr 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 SII 1)lan paliia. tal !wrno s r ilustra rn la Fignra 3.5. Por rjrinl)lo, la c.orl~oraciOnf o r ~ n u l a 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 ~ h 4 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 ( ~ 1I 1 mt)aug11. 198.5.1). 6) cita \aria5 vmtajai d r un plan iormal d r rrcbuiwsd r inforniacih: bstas inclii)rn: Ext~rrsa la 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 s y 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~iplratlos rn 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 a p o r la dirrrtiva d r mayor raligo. Ellos asignan los rrcursos r identifican el personal q u r l)articil~arL r 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~nas tlr inlormaci6n y r n otras Arras funcionalcs d r la conq)aiiia. Martin (1983) rcvwmirnda un grnpo d r y dos q u r rstti.n f a n ~ i cnatro mienlhros a tirmpo conipl(:to, (10s de sistrmas de inforn~ac.iOn 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~lrados cualificados 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

SISTEMAS DE BASES DE DATOS EN LAS ORGANIZACIONES

59

Ntv.t.sitlatlrs tlr inforn~atihn d 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~atlo I~rtxliminartlr 1 0 h costos aso(*iatlt,s a las actualixationrh t1t.l histrnla. R(.con~rndac.ionrs 11ai-aun tlcsarrollo tlrtallatl(~ tlr las nucvas o ~nrjoratlah I~asos tlt: datos junto con sns plants.
Los usuarlos f~nales r n b expermentados ~dent~fican 1 0 s 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.

DISENO Y ADMINISTRACION DE BASES DE DATOS

El c.cliiil)o tlrl p r o y ~ t o no ( 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 conlo Janira rlrnota. r l cqnil)o d r l 1)royrt-to d(htlr la h s r d r tlatos. E n Ingar d r rsto. tal ! 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 on d r i un pran valor p a r a una ~)lanific.acihn rstratbgira. tific*ntlos.p o r lo q w ('1 n ~ t ~ t l rtlr

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

DISENO Y ADMINISTRACION DE BASES DE DATOS

ida. l'na tlrl'i~~itihn tlr Iina 11o1.cihn rr-tringida clr la hast*tit, tlatoi: ta~i~l)i Ila~~intla j~i \iita tlr tlato-. equenla, I na tl~.l'inic.ihn ill* I21 t~.trllt~tllrii IOpa tlc la ])a-r tlr clatos conlplcta.

AREA DE USUARIOI

AREA DE USUARIO2

AREA DE USUARIO 3

DISENO DE VISTAS

1t 1A
I I
DISENADOR
BASE DE DATOS

I
DISENADOR

DISENADOR

Vista 3 de la base de datos

ESQUEMA DE INTEGRACION

naldrs 1)ar'l tlrfinir (1116 g r q w 1)ur(le1i ,~t.cwlrr a quC tlatos. El 4K1) drtw \ I T t,al)az tlr nrp)ci,ir 111s wnflic~tos clue purtlan s u i y r . Iln t~p111o de 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 ~ n mas eficientei. Su oI)jrti\o rs o l ~ t i m ~1,1 ~a cr wmli nacihn total ( 1 h ~a r t l ~ a r r .softwar(* rosto de loi recurios hnmanos. Itlralmrntr tlrlwn tlr lo+ Iniscar c4mo minimizar el tiernl~o d r rcipuesta del siitema d r n t i o d r l a i rrhtr~t.cionrs cwstoi d r hardwarr > software. inirial tle la I ~ a s r de datoi drlw rstar seguitltr cle un El diirfio y la nnplementac~ihn continno mantrnimic~nto d e la estruc*tnrd16gica y fisica de la h a i r d r datos. (:a~nl)iosen lort~pisitos de 10s nrgocios. 1.n las rapac~tliidrs tlr 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 r tlrfinir 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~fira la 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~itnlo 1.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 10s tlatos ~)ncvle totlt~s tiene sns vmtajas ! sns desventajas. La vtwtaja ohvia tlr cwnil~artir tlrsl~lazarst.1)or la tlrs\entaja tle ([tte 10s tlatos se ~ ~ ~ t r ttrastocar lrn o tlaiiar 1)or wnarios y~ n ~ w e s l ~ ) ~ ~ ~ l( I~autoridad i l i t l a t ls o l ~ r e 10s mismos. t p e 110 t v ~ ~ u tlatos en nna \ista la [lase tle tlatos a1 g r u l ~ o t111e El 1BI) asigna la 1)ropietlatl tlr 111s lo originh. El gr1111o propir.tario p~letle entoncw 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 . de etrntrasrEl a(-cesoa la hasr 11etlatos es finalmente twntrolatlo pnr un metm~ismo iias ( p m s ~ c o r d )nn . nsnario clue inttmtv tener a t w s o a1 sistt~ma tlelw d a r una wiltraseha Ie ~ ~ e r n ~ a1 i 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~ ~nantietie infor~natihn estatlistira s o l ~ r e los datos at~t~t~tlitlos e introtlutitlo.: y tlel control t l t t 1"" el usuario. El AH11 es el i - ~ ~ s ~ ~ t ~ ~ tle i sla a lasigii;~t.ih~~ )le tle contrast~iias 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~nos tlr s r p r i d a d . tales conlo las twnla n inttyridad d r los datos. .-idicional~nrntese putxtraseiias y las vistas tlr los tlatos, ~ ~ r o t e g e tltw 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 tlrl~en preservar 10s tlatos tlt. t.naltpier fallo tlrl sistt~tna. Sin emhargo, el ABD tlelw clel'inir prtrt~rtlimientos para 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 o 1nuy grantlr rii nlrancr purdr s r r imposihlc tit. twinplrtarse en un tiempo 1lo5 ~isnarios comirnzan a tltwnt.antarse y el proyecto rwzonaldt~.Eli rste caso, loi dirigrntt~s 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:~tlamrntr la 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.cto l 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~la sh oa 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

I I

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 a cualificado 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.ihn tle 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~traci6n tle 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~atlo en la itlentificacicin drl I~ersonal para 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~gnificatnos j ~cutlwra ~nc.luso implit.ar el fracaso tle la iniplen~ent~~citin tle una h e d r tlatos. Drhitlo al v alor critic.()de un sisten~a d 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


La tlistinti'm e n t w la r r p r r s r n t a t i i ~ n 1bgit.a ! fisit.a tlc 10s datos f'ut. ~ w w ~ ~ o c * ol'icial111v11itla I S O rsql~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 s tlatos. ~ 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 d p 111 h s e cle dutos in1p1it.a (.I anilisis d r I;IS nrcwidatles dt. clatos. El diwiio twlt.q~l,tual 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 , y I0gic.a dest*ril)tiOnde totlos 10s c:lcmentt~stlr 10s tlatos y sns intrrrc.lacionrs. una sinq)lt~ sol)w la hast. dv clatos. El nivel e x t e r n o t-ousistt, dv las vistas qutbtitwr r l ~lsnario t k nsuarios tcwtlrh SLI prol)ia vista d r la hasr dl: datos. Catla m a de estas \-i,iCatla gr111)o tas nos tla n n a tlesc~il)c-itin tlv 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 e d r r i l a r dirwtamrntr drl rsquet.1 nivel esterno. ma c o n c q ) t ~ l a lLa . t*olrc.cibndt. todas las \ h a s clr usuario f o r n ~ a El n i v d i n t e r t ~ o nos 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 o tlr s 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 t p r la I w e dtx tlatos evistr r n rt:alit\atl s61o 21 nivel interno. Para rrprresto. rrt*ortlt.~nos y extrrno t l d usnario. r l sisterna tlrbe s r r capaz tlr sentar 10s tlatos en lo$ nivrlrs cwntq)tl~al trasladar las dircwit~nrs fisicas 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.

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.

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 ~ la ar rnrtotloloi 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~os parte 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;~pitulo 10 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 c k tlatos. sistm~;i dr I ~ a w

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).

DISENO Y ADMINISTRACION DE BASES DE DATOS


I

I
MODEL0 CONCEPTUAL DE DATOS

r
MODEL0 REIACIONAL REIACIONAL MODEL0 EN RED

I
I
I

SGBD EN RED

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. 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~onr sucesivamente 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-

enfoque orientado a funcionra. Fer a un ziitrma clcsde la ~wrspccti~ cle a 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.

SISTEMAS DE BASES DE DATOS EN LAS ORGANIZACIONES

69

Plan de la base de datos

Sistema de base de datos

Sistema de base de datos

desarrollo del

desarrollo del

desarrollo del

desarrollo del

Sistema funcional

1 F]
funcional

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

DISENO Y ADM~NISTRAC~ON D EB A S E SD E DATOS

El caso de la Corporaci6n Zeus

--'

e m .

Lu Corporucibi~ Zeus be oripii16 coin0 u n proyecto qzcc.fue terininnrlo mi~rttrus 10s hermrcnos Blue estr~hun pusando un curso d~ gc~stibn d~ 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~eipcirniento b6sico 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 prod~~ct rluevo 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~olucionado b6sicainente 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 r l prot 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 a !reto clr implrn~rntacihn tlr 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~uclio cle 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~tt - 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;~r 105 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? 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~ado por u n anahsta tlr sistrma, un ingrnirro, un rs1wcialista dc Marlwting (Mercudottvnia), u n suprrvisor d r l ) r ~ d i ~ ~ ~ un i6 analista n, financirro j u n rsprtialista d r hasr d r datoi. Ellos estuvieron condnr~dos por 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

vialdidad tecnolbgica. Drtrrn~inacibn d r la di+ponihilitlatI tle !rl software hartl~aw 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.

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~sis prrliminar 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 .tiia p~ca. 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~olsillo para 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 o instalando un lt.llgnaje tle twnsulta hi aritrs no se t i ~ n r n clatos 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.<eostos dc dr~ai-rollo. El resultatlo d r catla rxanien d r via1)ilidatl fuc favora1)lr y rl comiti. asesor a p r o h i ~ srgi~ir adrlantr rou la tlefinici6n d r 10s twpisitos.

Definici6n de requisitos
definicio~i dr ~~equisitos. l)rtr1111i11aci611 dt. 1,)s ret~uisitos tlr 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~n 10s 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~irtas con 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
Pez, 27 (Granada) Orden de compra
Vendedor

N~imero de orden Fecha 21 106197

1848

Fecha

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

7/07/97 Codigo

Departamento

Agente compras

Nornbre

Inventario oartes

Mackov

AS.

Precio final

850.00 2300.00

Total

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. (Awati6n tld 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 ~notlrlo t ~ 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~r la 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~ihn contenitla en 10s manu'11es tie politica j procetlimirnto, asi como e n las guias y niotlelos generalizados par'i la* Areas func~onales a 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 ~~erf;~t*ciot~ 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~l nos uyudarh en prirrwr lupar corl la rnanipulacibn de 10s datos, que ahora seran estructuras de datos. El rr~odelo relueionul 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~plejos de ilegocios, se necesitri unrr rnetodologiu mas poderosu. Por el10 es que yo recorr~iendo el diseiio conceptual dr busr rle dutos." ''iQu6 quieres decir con conceptual?
G6 '6
7

<b

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 nuesSin e 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 z 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 n sistema 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~nte se 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. ~uego el 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 1 0 s 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.iOn d 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~ases d 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~yndari a 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 e en 10s entornos avanzados d e 10s sistemas d e g t ~ i h d n r informaci6n.

En este capitulo hemos rxaminado el contexto organizational en el cual funciona u n sister comyartir nla d r hase d e datos. E n la primera mitad del capitulo se vio clue el concepto O 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

DISENO Y ADMINISTRACION DE BASES DE DATOS

fallos potencialrs en 6 1 . 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~ibn sr 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 es rl esquema 1hgic:o qur define a nivelrs c:oneeptua17externo e intrrno. El nivrl concrl~tual 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? defiy rvaluacihn y mantenimiento d r nicicin d r reqnisitos, disriio conceptual, implm~entaciGn la base de datos. La planificaci6n ~weliminar tienr 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 viadetrrmina los hilidad tecnol6giea, operacional y eeonhmica. La definicihn de ret~uisitos 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~a la 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 ~ a de 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. c. e. Base de datos Sistema de informacihn de grstihn 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

b. Procesamiento electrhnico d r datos d. Base de datos centralizada

f.
h.
i. j.
g.

k. 1.

SISTEMAS DE BASES DE DATOS EN LAS ORGANIZACIONES


1 1 1 .

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 pnt~dm ser 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~sultado clrl 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


tres-niveles ANSIISPARC.

externo en la arquitec-tnra de

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~lltr de 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~ON DE 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 ii~formacihir -rc~ntro dc~

-estdio

rle viuhilidud

Esfuerzo estrat6gic.o para dvtcwninar las ~wcesidades de informacihn a largo plazo. Colnl~inar 10s tlatos para uso ctr~uhn. Ttler~tifica10s c h w n t o s , interrelariones y restricciol~es. Nivd c~strnrtural clue 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 las Arcas talditlatl. in-owsamiento tle petlitlos y t.\aluaciOn tlel producttr. l t l r n t ~ f q u e fnr~cionales q 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~rnto en C a r ~ a t l d i 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 1 1 1 1 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~ivel ejecutivo:
a. La pol~lacii~n tle Clark County es tle 500.000 y sr h a duplirado en cada m a de las i~ltitnas tlos 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~pleto entrekistando al menos a un oficinista por cada unidad tle procesamiento en la twmpaiiia.

SISTEMAS DE BASES DE DATOS EN LAS ORGANIZACIONES

81

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 o en 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 o rii 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 i n i datos. a. 1111 hrra fnnrional r i t i r e a c h a clue otras areas ac*t*ettan de 11aw tlc datos sin r s t a r eoni1 . 1111 t l i r r c t i ~ orul)rriinrntado inicia un ~)royecto ~ ~ l c t a n i n iet o r n~rncitlo de 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 r para nna coinpaiiia en otro Estatlo.

8. I(lt~ntifiqnr loa 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. datos tlr las transaccionrs tit. \tSntas! 10s tlntos tle 10s clirnc. Una conibinacihn tle 10% tes 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 sin. genkrico CVDBD. tetizar las diferentes versionrs en un iinico !

DISENO DE BASE
DE DATOS

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~arios pnrtle 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 ~isiiarios requicrcn. 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 1111edeii c.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 y os re1)reientar 6stos eri un motlrlo I ~ i r n tlefinido. P a r a Ilcvar a t - a h esto nt*resitan~os o h i c r ~ ac r 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 ~wlitlacl quc 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 palasr lian intrrcamhiado dnrantr la transaccihn. el njimcro tle gente en el hanco. el I~ras t~nv 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 k Contaduria, conservarh transat:c:ihn. De motlo qne u n motlrlo, desde el punto de vista c ' shlo aquellos drtalles que Gsta considere relevante.

DISENO Y 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.;~.

PIKsq)uesto, algunos detallcs consit1t:rados irrc.levantes [lor 1111 usuario puetlen s r r n~uy importa11tt.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., tlifercwte tlel tle 1111 pt:sto t p L U I I &a frio tlelw ofbrtar un c*onjuntotle ensaladas h a s t a r ~ t r tliu rilitlo. Corno resultatlo, el aclministratlor drhe tltasear potler trner en rnchr~ta estos t.antk t.liina y las brtlrrw clue han sitlo surninistratlas tte at*uerdotaonrsto. El niimero de I~ios 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~atihn para 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 I lase I!na h a w tle datos intwrpora un niodrlo tte la realitlatl. El SGBD atlministra 1, ~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 i11nl11ia u r i e t l a t l (ItCormas. 10s usuarios pnetlm o l ~ t t w r r la informacii,n nrrcsaria p a r a twntlutir U I I e ~ niprtw (.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 11nrtleprotle n~ las ; ~historietas rs (lifitlutir uria so1ut:ibn taorrerta.M u c h gmte rtit*ut.ntra tine (11I ) ~ ~ o l ) l e tail 1)ort1ueno s r sivnten c.Omotlos (.on rl prot*twd r asotiacihn en si ~nisnio.De Ilt~.ho.1;1F i p ( I t s historirtas. Si asi f'uose. 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 eslwrarnos a y ~ t l a r l a r sentirsr niis t h n o d o (.on el rnotlthtlo e itlrntif'it~atihn (11,la rralitlatl. Se y 1)isitw y st* mostri~rh t~')mobstos pnrtlen t ~ o n ~ e n z acon r i c o n r e p s tle rnotlelado si1111)lrs usarse para t.onstruir, paso a t w o l m a solut%n l ~ o t l t w m a 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~ilitlatles signifit*ati\aspara el ~notlelado tit. 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.

PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS

87

M O D E L O S E N L O S DIFERENTES NIVELES
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 Metadologia de diseiio Ejemplo de modelo Orientado a oljetos, relacional, etc.
0

Construcciones tipicas Objetos, relacionrs, tablas, columnas

&.

g w
0

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


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~rrwntacitin tv1 la cwnl~utaitlcwtitlatl !dora tlt. las t~ntitlatlt~s tlel innntlo real w m o "ol)jetos" clue tienril 311 ~ ) r t q ) i a 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~rnte rtwmotitlo ([lit. rarlas t*oniort~gistros en it11 sisteina orientatlo a a r r h i ~ o s Ks las rt-lu-ewntwiones orirntadas a ol~jeto son 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 1111 n ~ t ~ t l i o razhn. t.sta nietodolopia taml)ii.n pnedr llaunarsr s m ~ i n t i c l)c~'1111t~ a pro~wrtiona ~ ~ ~ l e rp oas ra o 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~fin ron las inetodologias l)rol)ne.;tas. P o r ~ i i u l ~ l i t i ta ld lo largo del 1il)i-ose le llamari a este modrlo motlrlo corlcrptuul tlr tlntos. ' Rn el Capitnlt) 2 st. intrt)dnjo un c~jtwiplo qnt' 1oostral)a un inotlelo tIr elatos ~ o n e ~ q . atliriotltal srnc.illo. rihorri rstau~os listos 1)iu.a tlelinir estas ideas d r niotlo 111is~ ~ l w i ! so nalmrnte introtlue.ir c ~ m c ~ p t o inis s potlerosos. 10s cwales nos l w m i t i r i n definir nroclrlos

n~otlelo sen~intico.I n 'I"" ""l'tnra lo5 lllotll~lo sipnifiratlos tlc lai cmtitladcs tlcl nnindo r e d ? sns ~n~errelatione\.

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 o de 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~jetos e 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.

PRlNClPlOS DEL DISENO CONCEPTUAL DE BASE DE DATOS

89

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 relaciotw-bos. nrs. Los olljrtos se concilwn a menudo romo nornbrrs, ! las rclaciones se ven c~omo .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~jrtos rrbl)resrnt;inrosas q u r son importantes para 10s nsuarios en el sc~ginrl~to tlr 1;) realitlad tjur c[uthremosmoclelar. Ejemplos cle ol~jrttrs son 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 c tlr ~ 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~to dt: objetos para referiruos a un c.or~junto (It. ( m a s tle l 1 1 1 twnjunto tit. cows la nlisma clase r iristaticia (ejemplar) de ohjeto para referirnos a 1111 simple elrnwnto ( o tle la niis~na c-lase. tle oljit~tos.Como mnrstra la Figura 4.2. se u s a r i n rc~rtingdo.; elelnrnto) tlc un c ~ m i n n t o 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 ~nitwlnw p a r t i c ~ ~ l a r "persona" (en nlini~s(~ula) es una iustantia del coiljnnto tle ol~jetos PERSOX-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 nombre del conjunto de objetos Una instancia de objetos

J,

-persona

- El coniunto de objetos

PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS

91

PERSONA

PERSONA HOMBRE
(a) La interrelacion de

lymmq
(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 a esta un a cvn~iunto tle ohirtos inforn~ac-ion grifiran~ente. Se \(. (111(. la intc.rrc.lacihn es en ii n ~ i s ~ n 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 Adam David John

MUJER CASADA Joan Linda Michelle

(b) Algunas instancias de ESTA-CASADO-CON

HOMBRE CASADO MATRlMONlO I

MUJER CASADA

(c) El conjunto de objetos agregado MATRlMONlO participando en interrelaciones

PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS

SUPERVISOR

TMBAJADOR

(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. 11), 110si ~ i l ~ t * o n j l ~S ~li tPE1.Ios Cot110 otro rjrinl)lo tle nna inttw-clacih cwniiderr~iios \ 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 ;I n 10s tra1)ajatlorei. l,a ~ n t e r w l a SlII'EK\ ISOR twnslstt. tlr 10s enipleadoi que s r ~ p e ~ v i i 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. 4.4 tlos p n t o s cliferetitrs ~-el)rt~sc.iital~an a la niiirna prrsona I.Iecr~Crelrseclue em la F i g ~ u a George. El pnnto q u r r n HOMKI.IE r r l ~ r e s r n t a a (;rorgr e s t i relacionado por niedio tle estd con rl I~llnto qne 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 ~nhuiino tle inst;lnt~iils tm 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. (111cwiontbs. Se ewri1)iri "0,l" m i s cerca d r l cwla rartlinalidad miniilia rs t w o r u a n ~ l m s j~into tle 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 ,~ ~suii~ 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~cwnjiinto son 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~cvializacihn rsti 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)to muclio m i < imlrortantr q u r rl d r la rartlinalitlatl minima. P o r lo tanto, 1)ara sinil)lific*ar 10s diagramas. la rartlinalidad miriima s d o sr

a.

MUJER

b.

HOMBRE

MUJER

Todo hombre esta casado con 0 o I muler

HOMBRE Todo muler esta casada con 0 o I hombre

MUJER

(Los d~agramas de mterrelac~on se pueden leer de izquierda a derecha y de derecha a izquierda)

SUPERVISOR

111

I"

TRABAJADOR

Todo supervisor supervlsa I o

m k trabajadores

Cada trabaiador es supervisado por solo I supervisor

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, t.01 rt.sl)olltlt. Uiia cai-tliiialitlatl iiiixima tlr I rii uiia tlirewi6n tle uiia iiitcrrelat~ihii 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 en esa direwihn. La interrrla1.1611 iiiivir~iatlr 1 eri nnd direc&n es llaniatla funt*io~ial sul)er~isor/tral)ajatlor tle 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 en la otix tlirecciOii, pursto qutX1111 s ~ i p t m i s o r 1)1it~lt, tenel. I I I I I C ~ I O ~ cihii ILO txsf~iiiriondl 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('hoz c11 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~ucllos en a n h a s diret*cioiics. sr (lice q u r la interrelaci0n rs ~ ~ ~ n c h o s - ~ ~ ~ La uel~o Td~la 4.1 resurilr Ids tres cartliiia1itlatlt.s I ~ i s i c w tle 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.)

DISENO Y 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~ntional tlr r s r c o ~ ~ j ~ tlr ~iito ol~jt-ttrs tZono t r o ronjilnto ( I t . ol)jt.tos. Dos tlr 10s ; ~ t r i l ~ u t o vsn r ~ n ~ r r a iuitrriorinrntv th sc, 4.1 1. Sin rmlmrgo. s r r i twn\~rnirntt* I-lbl)l'rm u r s t r a n ronio intrrrrlarionrs r n la F i p ~ r a tlr s r n t a r t1l~1111ok atril~r~to 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-r dt.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 tl rt ti ~ lizarw .;irnq)rr tlnr n o w ttw-vlacionrs. G r n r r a l ~ n r n t t , . esta iiotat.ihn ahrrviatla I ~ ~ l r ~ i n t r n t r w a r rl a t r i l ~ t o conlo 1111 011jt'to r n otra intrrrrlaci6n. En (11 1 1 ~ 0 1io1.111;tl(t111res 6.1 t p t , se st.grlir& a c.ontinrtat.i6n) lo5 atr-i1)ntos son iiitt~i-rr(It. o 1 1 j t . t ~ a1 ~ 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 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.tatit. datos, t a ~ n l ) i i ' 1111 l ~ solo n i l n ~ r r o tlr s r p mrnttXm a kc-ha tlr nacinlirnto y. r n rsta I~ast, 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 titwt. u n valor nulo p a r a r i a in.stant4a. tiiw q u r "1 a t r i l ) ~ i t o Es importantr d a r s r t - u r r ~ t a clnr 10s atril)r~tos lrnrdrn tbstar srl)arados c v n t q ) t u a l s tksc.ril~rn.Kt~t.~~Grtirsr la tlistwsiih inic~ial tlr tltrt. los valorrs tlr 10s ~ w n t tlr r los o l ~ j r t o tplr atril~utos ra~nhian fi-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)rro sig~w sirntlo la m i s n ~ a p r r w l i a . Esto uo signifira t[ur totlos 10s atriItr~tos 11rl1~n c*a~iil~ 10s i a v;ilortbs. ~ Dr htdlo sirml~rr s r trata tlr itlrntificar c*uilvsatril~utcfi 110 c-ariil~ian tlv w l ~ ~ya r . clur Cstos 1)11r.cIc~n rttiliza~w cwno vlavrs r x t r r n a s .

Claws. C-na claw cXsIin valor cllir sirmpre ~ ) ~ ~~r~ d til r i z a r tlc sr lor~na r~r~ivop ra ara idrntificar a u n o l ) j r ~ o i n s t a w i a . Ya i'i~c.ronn ~ r n r i o n a d a s las rlavrs sn1)rogatlas. las c.ualrs sr ~~tilixa intrrnamt~nte vn los sisttwas para idt.ntifirar r o n j ~ ~ n t o 11e s ol!jetos a l ~ s t r a c t t ~ s

NUMERO DE SEGURIDAD

'

PERSONA

PRlNClPlOS DEL DISENOCONCEPTUAL D EB A S ED E DATOS

97

identificador. Una clak t. cxtvrna.

(no 16xi('os). PERSO& 1.I)or ejenll)lo. e5 nn conjunto tle ohjet05 al)itractos. En una in111le~nentacibn tle 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 L 11 ntrico~ljunto tle atril)~itt~z Ibxicos c8~t:,oi \alores ilelnpre identifiran un i~nicw ol~jeto. hnto IGxico es n u atril)uto formado ntilizando un twnjunto tle ohjeto5 l6-1ic*o. Dc cbstcb inotlo. lccr I)or los nsnarios I s i n e n tle nltdio las (.lakes externas se pnetlrli iinprnnir y stx~ ) u c d c n 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~)ino r l a ~ e sP . o r ejtwq1111. tan tle la Figura 3.12. #SS podria ser m a (.lake para PERSOY 4 si se asume clue ratla n i n n c ~ o a nna iiriit*a I)tmona. Esto es. lai cartlinal~tlaseguritlad social cw-resl~ondv c~xac.taincnttb (11.#SS a P E R S O N 4 $on 1,l. P o r otra parte. la feella tle nac~inientt~ des minima !n ~ i x i n i a 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 4.12 esth siendo utilizada en nna Imie d e tlatos tle gc*nc*aloqne PKlISOh 4 tie la F i p ~ r a gia. 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)to tle riiiinc~otlv segnridad social. net*esitenloi algo tlifervnte dc #SS p a r a la (slake. Poi- 5upnesto clue el p el l n p r de nacinliento ~ ~ o t l r i a zer n suficiente. E n eite noinl)rc*.la ft.t*ha dt. nat~iiniento r a w . la combinacicin de eitos tres atrihutos formarial1 la c l a ~ e p 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 o es nna (slave externa. iul)ra!ando el n o n h r e (It4 a t r i l ~ n t o (Fipr 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*iones tle \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. \ alores tbntxntitlatl !en 1)rotlnc~to \endido. Seria 11oc.orazona1)lt. tbxiden teirer 10s nlisn~os . n eite c a w . la h a w tle tlatos gir que el usliario pro\ea una t.la~txiinit*a para cads ~ e n t a E shlo rcgistrarh la informaciOn qurL6.1 nsuario dcsca tle ratla transat~iOn.Iwro bita qurtl:~rh ~ g i s t r a d a twmo instantias sel)aradas para rada t r a n s a t G m . La Figura 4.13 m w i t r d 123;. 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 . t usuario \ e r a dos transacciones. p r o no tiene medios para distinguir 6stas cmtrtx si ! atltbdv una rla\v no titmc. twnscLrrriis no esta interesado en hacerlo. Por lo tanto. la anst~ntia wencia en eite vase.

La p r o l ~ i d a t l l~erenria. 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.

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 ~ )la r via de TKABAJA-PARA. PERSONA-CASADA a1 ser una especializacicin de PERpor la via de TR:UL4JA1-PARA. SuponSONr\. tarn1)ii.n e s t i relacionada con COMPANI.~ ga 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

PERSONA CASADA

CompariiaXYZ

John Doe

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~lenias tlel 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 o conceptual 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~.an en 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~re del cliente. tlirecci6n y otros). La trrcera pregnnta -"Cnintos c1irntt.s"- srria dificil dc: responder, pnesto c p r trndriamos clue extraer los 10s duplicatlos. Sin enibargo. tlatos de 10s clirntt-s tlr 10s dos archivos. ortlenarlos y ol~viar en nna 11ased r datos: extos clirntes purden m a n t e n r ~ s e separademente y preservantlo las conrxiones tleseadas con la informaciOn tie las curntas.

CUENTA CORRIENTE

I I

CUENTA DEAHORRO

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 I ENT4metliantr cstns iutrrrclationes con instantias de CUEhT4-IIE- I H O R R O ) C CORKIEITTE. 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. cwc I'1na1' 1t 1 at1es como se m u e Estas se v e r i n a continuat.ihn. Snl)Ongase clue se indivan las c. 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 mhs d e una t-artlinalitlatl prbxima a CIJENT4-COKIUENTE. ;No puetlc 1111 t*limtrt c n ( ~ cutbnta tw-rientv? 4BT. corno la maqoria tlr loi 1)alltws. permitr clue 1111 clicnte tenga mhs de la Figura 4.17 no 1)rrmiten esto. tle una twenta corriente. p r o las cardinal~tlatles estar \/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 e 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 difcrente d e la realidacl potlria hacer clue el modeltr tle la Figu1)ant.o Ul'. Una p e r t q c ~ h n ra 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
I

CORRIENTE

DE AHORRO

CLIENTE
I

CORRIENTE

DE AHORRO

PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS

10 1

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 w sien1111.r ticnen 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~llos c.1itmtt.s (jotbson 01-ganizationes o rmp-esas. rs q u r Lila d r las vrntajas principalrs d r usar la gcneralizat*ii)n y la eslwt.~alizacx'm 1~odenws tarcar tliferentes atribntos para las rspecializariones d r un t*onjuntc~ tle ol~jrtos. mirntras q u r al ~nisrno tien~po mantentmos 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 r 5t.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~osici611 d 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 o r 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 cona algunai prrguntas m i s : jnntm tk ohjrtos c.nrnta. 4hora se puede re~ptrntlc-r

La w ~ p ~ ~ easla ta seguntla 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 e tlistinguir 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

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 el saldo prometlio para (:a& clirnte hurnano y sr rrgistra el saltlo. -41 terminar se vorr~puta 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 a se 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

PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS

103

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. _1REL4 trntlria 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 o no h r i h murrto ya. Si r l kdrol miiri0. cmtoncrs -1NO 1)E en un drterminado aiio y pi~rdc. 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

estc: pro1)leina grLficamente. Tenelnos cuatro ol~jrtos .! sns La Yignra 4.23 rel~resenta 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~as direc*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~leados cwc-a n a r a vatla cw~l~ltutlo ctt, ol)jetos. i l g t ~ n o s inditios dr1 t ~ r o l ~ l e nos n ~ ahahlan d e la twnparacihn tlr sns twnjltiit~s 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. siguientr: La Fignra 4.24 cia la solnci6n a rste prol)lcnla. Esta se drt111c.ren la f o r n ~ a Pt~esto I ~ Smith I ~ rs el clue mas g a i n 110 l~uecle s 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~vn ticne 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 .Jonc.i e ~ i t ctlrlw ~ ~ her el contador. gcwnte. C o ~ l s t ~ c ~ ~ e n t e i i 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~ariOn implkita qlw 10s cldrnir~istr(~dores 1)otlrian hacrr. Conset.~it~ntrmentr. rstos sisten~as forinan 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 1)ai-a 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 o 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 (a seis c o r d t o r e s . que llelwn rr cubo p r o y t o s rle cor7sultoritc ziltimos diez uiios. En~pleun (1 10s clientes d e Mur~~ctrring. Cutla p r o w c t o incol~rcru(I u r ~ o o 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~ancius que 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 ~ huyur~ 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~que muchos sciministros se curgun rlirecturnente tr un contrato especifiro, algunos sumir~istros y equipunzierrto se usociun con milltiples corltratos o gastos generales. Todos 10s sumir~istros se 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 Nurnero de vendedor

#Inventario

Descripcion del product0

Precio

3821 4919

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

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

PRODUCTO

PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS

107

Event~dmente se puede h a w r t.1 pago tle nrla orden. Para registrar esta informnriim be anmentari el n ~ o d d o al clue se m~?c.stra en 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 HECHO-A


DESCRIPCION

FECHA

PRODUCT0

INCLUYE

PEDIDO

IMPUESTO TOTAL

" r i

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 iv m 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


27110

Numero de factura
342

Proyecto

I Sistema

de c o n t r o l de I n v e n t a r i o

Consultor
Rodriguez ~ a r r i s

Descriocion de careo
80 h o r a s de a n a l i s i s y d l s e n o

Cantidad
4.800,00 8.000,00 900.00 40,00

200 h o r a s de p r o g r a m a c l o n

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

(papel, f o t o c o p l a s , e t c . )

Total

l3.740,00

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-

PRlNClPlOS DEL DISENOCONCEPTUAL D EB A S ED E DATOS

109

agregado. llna interrelaci6n \ ista coma un twnjunto tle o1~jt.to.s. interrrlac~i6ii d e alto ni~el. 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 d e 10s requi5itos !10s pasoi tlt.1 incwmrntar la5 ha1)ilitlades p a r a llekar a calm 121 tlefm~ribn tliseiio twt~t~eljtnal drl ticlo tlr \itla tlrl tlriarrollo dta una basr tle datoi. -hr~que 10s inotlrlos clue' he11 s ~ t l o creadoi 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 n~is loi pro1)lemas que rralmrntr stAtmtwentran en 10s nrgoeios son consitlrral~lemrnte cornplrjos y a mrnudo i n ~ o l u c r a n r 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 las intei-reletionrs, se piitlo albrpt.jewq)lo. twantlo se tlt.finirron y dist*utwronantrr~ormente twr 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 n agregadob. 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 n a 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 o nos 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~os PRODUCT0 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

DISENO Y ADMINISTRACION DE BASES DE DATOS

la ir~terreltrticin rntre 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~aciOn m 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 s conveniente 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

(b) Un modelo incorrecto para el control de ventas

I
(c) Un modelo incorrecto para el control de ventas

PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS

PRODUCTO

SE-VENDI~-EN

1-

PA^

11

(a) Usando dos interrelaciones binarias

*
PRODUCTO

VENDlDA

*
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 ~ n esti 1)uscantlo. El twnjnuto tlc La Figura 1.33(a)modela la iuterrelacihu entrt. etlif'it.ios \ ~nateriales. ohjrtos EDIFICIO contiene una instancia p a r a catla rthficio tw la I ~ a s e tle tlatos. El ronjunto d e ohjetos TIP0 DE MATERI4L represeuta los t i p s dt- material talrs conlo "~uatleentre ros tle 2 x 4 x 10' ", "rla\os #lo". y otros. Las cartlinaliddei d r la i~lterrelacihn io y u i c r r muchos t i p s tle EDIFICIO y TIP0 D E MATERIAL indiran q u r cada e t l ~ f ~ c t d e material se usa cn mut.hos etlificjos. Ohsirvese que rl atrimaterialrs y tpir cada t ~ p o huto 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 ~ntrrrrlacihn REQITIERE. 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 ~naterial en lugar tlr una pirza especifica d e material. Esta nocibn tle ohjetos t ~ o n t q ~ t u a l e en 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.

Cantidad 500

I(

EDIFICIO

REQUIERE

TIP0 DE MATERIAL

(b) Cantidad de un tip0 de material usado en un edificio

PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS

113

Ahora se murstra chnio rrprrsentar la formaciim de I~rigadas J 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 p r 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 Y e ~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 podri a r la informacibn necebaria p a r a planifirar a 10s trahajadorrs 1 la planroso \ p r r ~ n i t i r d tacibn 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~ran en 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: ~Cuintoh arl)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*

FECHA

TIP0 DE CUADRILLA

DISENO Y 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~erlin rstar listas 11arala roset*ha tie rstr aiio las manzanas Jonathan dcl hwrto T,ee Valley? ~Cuintos rspacios 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 n mejoratla 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 triplet~ (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~III* liga 111si r l d r s co11sris localizarionc~s rsprc-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 ~latos ronscrva el rastro dr todos los irl~olrs qur 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)lr para 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 ! 0 DE COSEtIel)rrno5 lignr ci~cla initancia de la interrc4aciirn (ARBOL, V4RIEDLlD) c*on 0 CH4. Esta intrrrelacibn dc trri-viai tendrri el atrihnto VOLUMEN DE COSECHA. clue noi c f 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 a una 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 C ilitcirio y se inchyen nnevas colwnnas para Drscripcibn del Producto, Cnittidnd. P r ~ c i o P r w w Totcil, rnientrai clue el orig~nal sirlo 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~itorio no aparecia. El Prrcio del forn~ulario original 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~ihn clel ~rroducto c p r i r ehti orcletiaticlo, el Prrcio Total se ptictlc. c~alcwlar auto~niticw sr ~ w l u r r i a qucb nicbntc.a partir d r Culltirlnd y de Prrcio C'llitnrio. E n el antiguo fc)rninlar~o

SERVlClO DE CONSULTORIA MANWARING 950 MAIN EASTON, PA I I I I I ORDEN DE COMPRA Fecha Numero de orden Numero de vendedor

Mnventario

Descripcion del product0

Cantidad

Precio unitario

Cantidad

Cliente:

Consolidated Office Suplies 414 S. Choctaw Drive Flagship, PA 12345

PRlNClPlOS DEL DISENOCONCEPTUAL D EB A S E DE DATOS


vita

117

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~ilos p u r d r n usarsr p a r a responder a prrgnntas como:

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 , forr 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~a me 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 fartnr;~ laon la tle la Figura 4.28 se ~ n i t d r v 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~o la 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

NOMBRE DIRECCION

VENDEDOR

HECHO-A

\
PRODUCTO

* *
INCLUYE

PEDIDO TOTAL FECHA

PRECIO

DISENO Y ADMINISTRACION DE BASES DE DATOS

SERVlClO DE CONSULTORIA MANWARING 950 M A I N EASTON, PA I I I I I FACTURA Fecha 271 12 Consultor N~irnero de factura 349 Actividad A n a l i s i s de s i s t e m a Diseno de s i s t e m a Programacion Programacion Proyecto S i s t e m a de c o n t r o l de g a s t o s Horas 30 30 20 60 Tarifa $60/hr $60/hr $60/hr $40/hr Cantidad 1.800,00 1.800,00 1.200,00 2.400,00

. Rodriguez
Rodriguez Rodriguez Chatman

1
OTROS CARGOS Descripcion Suminlstros (Papel, Fotocopias, e t c . )

Total de consulta

7.200,00

Cantidad 35,00

Otro total Factura total 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

35,00 7.235.00

tres favtorcbs: t:onsultor. activitlatl y proyetBto.Es t1t:cir. el atriln~to HORAS 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 drl consultor. Esto es, Manwaring c-ohra la ohjetos CONSULTOR , ya qut, s d o del~entle 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. A 1 comienzo del capitulo se vio que Joan Manwaring estalla interesado en un sistema inforquc relacionase consr~ltores, actividades y clientes. cie modo qur pudirra ol~tenerse macibn 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~rante el pasado a h . Por ejemplo, Chatrnan

PRlNClPlOS DEL DISENOCONCEPTUAL D EB A S ED E DATOS

+
CONSULTOR ON

EJECUTADO-POR

OCUPADO-EN

*I

PROYECTO

ACTlVl DAD

CONSULTOR

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

Harris

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~ite tlr la Figura 4.4%(1)) muestra c r ~ i n t a s horas 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~n d 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~ido a 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 DISENO CONCEPTUAL D EB A S ED E DATOS

I 2I

~nrolricratlosr n talrs aml)igiietlades, se p o d r i n resolver 10s ~)rol)lenias tlrl 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 ~ ~ tle s 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. L T n tipo tit' m a t r r ~ a l 1,uetlr ser "madrros tle 2 x 4 x 10' " en lugar tit. un p r t l a ~ o de madero r n espediccr. IJn tipo d e b r i p d a podria ser "tlr trcho" o "elbc~ti-it-a". q u r esth l,onirutlo el t t ~ h o (It4 tdimientras tjur una brigadu m rsperifiro putlierd s r r " l ~ ficio 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~to tlr 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.oof T ~ r o Cities, ropia 3. ) asi hasta la ropia 12. pia 2: A T u l ~ E: iTotlos son r l mismo lil)ro! No tienen tioce lil~ros tle 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 u r ~ ~ s( to p r iilngiln hil)liotet*ariotlacia 10s argumentos que el hihliotecario esta tlantlo. Sin rmhargo. sirvts para tlrstacar un prol)le~na signifit*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? J fnera tlel twntrxto tlc csta t*onvcrsac~bn. potlcmios pensar clue Sin pruf'undi7ar tle~nasiatlo, "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~ncntc si rs la ropia 1 o la 8, independientemrnte tlr si r s t i en inplbs o en franc&, r inde1)t~ntlientrinrnte d 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 hojear y poner en un rstane5 alga fisicw q n r potleinos tcnthrr n nurstras manos, q n r l~otlemos te. 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

DISENO Y ADMINISTRACION DE BASES DE DATOS

-Ilgunas \etSessc. tlistingw entre vstas dos formas tlr uso. iniiitiendo en clue 10s lihroi I)r ~ . rstr tnoclo. i e purcle tletir: -';Cuhntoi lisicos sran denominacloi copias o ~ ~ o l u i r t e n e Pa t? w de las (,on\ eriacionei entre loi volumrne~ contwne la l ~ i l ~ h o t t ~ t ~ ' twmo ol~servadores uiuarios del)enioi 1-ecwnot-t.1-clot. la griitr frrt~urntemente no 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 n al)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~hn entre el estndiantt~ y el Iddiotetm-lo, ~1hihliotecario eventucrhnrnte aw11ta (1ntxI i q 111iad i f e r t ~ n ( w tmtrc nn 1il)ro fisico y uno conceptual. p r o iniiitr en tlnr. si son edicionez diferentes, 10s lihros son of Two Citirs conceptualmente cfferentes. Eito es, la Eci1ri6n C l b s i c ~ (~ h n p l c t a tlc A Tr~les ei un lilwo t*ont*eptualnicntc tlistiiito 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 "tieclaw de preguntas desean 10s nsnarios ne la razhn"'. Lo qne se neceiita rs conocer a (pi. 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 r entreviitai 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: ~Cuintos 1il)ros tlr Charles Dic.1cc.n~ tirnc. la I~il)liotrra? i,Caintos lil~robdifvrrntes tirnv la cm la Etliribn Clisira Con~plrta? ~Cuintos lihros tirnt. la Id)li~)tc.ca qnc. estin rn srgunda I~ibliott~a ediribn? ~ C u i n t a s copias tirnr la I)il~liotrc.a dr "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 o conceptual LJn l i l ~ r o fisico

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

Oliver Twist Edicion Clisica Completa Oliver Twist Edicion Penguin Oliver Twist Edicion en aleman Oliver Twist Edicion de Simon & Schuster Oliver Twist Edicion Abridged

DAVID COPPERFIELD

David Copperfield Edicion Clasica Completa David Copperfield Edicion aleman

IJBRO-CONCEPTI 1L ( . h dependiente del twnjunto tle ol~jetos LIBRO-C03CEPTIT1L. 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 s EDICI~~Y-LIBK~-COV(:EPT U 4 L . Dado clue cada inbta~wia e i uila edici6n tlr u n libro part~cular.no w p ~ ~ e t l e twnn 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 r rdicionrs 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 T w 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

TIENE-EDICION

EDICION

DAVlD "IsT COPPERFIELD

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~ros fisicos" (Figura 4.45). Una instanria de LIBRO-FISICO represrnta nn l o l u ~ n e n cwnrreto que i r dv identidatl 01 cual se 1 1 u d r detet-tar con un solo 11atrhn pnecle m a r r a r con nn n i ~ m e r o 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 dr f'ornia i1nit.a a un 1il)ro fisitw r n l ~ a r t i t - ~ i l a t'or r. informarihn nt.crsaria para ~drntificar lo tanto. la clave extc~rrw llara r a t h l i h o fisitw rs vstr numrro. o r~limero tle 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 tic. twpicl. qrle tlistingnr n h r r o (10 identitlilt1 purde i n t h i r informati611 tal romo r~zirnero nna twl~ia tlr rln d r t c ~ m i n a t l o lil~ro t.ontq)t~ial dado tlr otra copia tlrl !nisnio lillro. 01156rl rsr la rartlinalidatl ~ i n o - i u ~ ~ t ~ dt' ho las 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 fisitw (lado t*om1wrnsihn d e la rtditlati. I'rro la rardinalitlatl tanhi611 aitbvera clue 1111l i l ~ r o

LIBROF~.ICO

Consitlrrtl un lihro ( f u rrontiene o1)ras srlerrionadas d r Janr h s t c m . ITn tal lil~ro twiitirnv tlifbrrntrs lihroa ronrrl1tna1c.s. aunquv s r 11urtlr dtxir q u r totlos tivnrn la tnisina t d ti611. Totlos rstos lihros cont~rptuales rstin r o n t t ~ d o m s t:1 miamo lil~ro fisiro. como sr murstra r n la Figura 4.46. Pnesto tpir Pita situatihn no rs inusual, para ganar rn prrt.isihn \ amos (Figura 4.17). a t-orrrgir la twdinalidad dr la Figrrra -1.45de uno-muchos a murhos-n~uthos 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

CONCEPTUAL

TIENE-EDICION

EDICION

Pride and Prejudice Sense and Sen;ibility Persuasion Northanger Abby

ED~C~O DE N OBRAS SELECTAS

#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 e ronstruir 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.

DISENO Y 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~rrguntas tienell 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 o tlr 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

ALMACEN

/
X

DISENADA-EN

HECHA-EN

@ % !!@

DEPENDENCIA DE DISENO

DEPENDENCIA DE FABR~CAC~ON

PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS

127

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~iacenatlas en catla almacin para cada t~oni1)inarihn p i e ~ a ~ a l n i a c i n De . 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 ~ d t-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. en 1111 solo a1niat~Gn. fahriratla en shlo un taller. y ell tin momento datlo estL g~lartlatla 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~tlatl tle 1)iezas en un alnxt.611 11urt1,vtletrl~niinaisr1)ust.antlo 1 1 ' 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 ~nnchos clientes tliferentes. el rquipo tle Manwaring ha encontrado que twn frwuentia Gstos tienen necesitlatles sinnlaP o r ejemplo. Statr r s , por lo q u r ('1 mismo softwarp sc pnetle usar p a r a estas neces~dades. ten 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 s 1 . 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 1 : versihn s r puede a p l i w r a i i i u ~ h o s sistemas hisit*t)s.la interrdacihn viitre SISuiimero 1 T E M 4 BA4SIC0 y NIIMERO DE VKKSION es la tle ~nurhos-nmrllos. Catla sisteu~atlel rlieutr r s t i rt~larionadoa1 sistrma(s) lrhsitw a partir tlrl (-11a1 fue ronstituitlo. Sin e m h a r p . put.sto clue el clivnte s i e n ~ p r r e c ~ t i l ~ iuua r i versihr~ espet*if'it.atlel con sisten~a l)isit*o,el sistema drl I-lirntt,esth r d a c i o n a d t ~ t a n t o con (4 histema l)isit*oI Y I I I ~ O el uuii~ero de ~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 rluiri nn~chas twnil)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 sis2.0, y por ello IVI el diagrama e s t i ronet.tatlo al t t m a inrluye las twentt~s por pagar. v t ~ s i h n 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 . con~-t-~)t~~al-fi El sit ronjunto *t~. tle Estr modelo tlqdatos ilustra ademis la tliatincih~i el twi~junto 11e 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 1 0 s sistemas instalados

SISTEMABASICO

Cuentas a pagar

(b) Un modelo de datos con instancias

PRlNClPlOS DEL DISENOCONCEPTUAL DE B A S ED E 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~recrtlitlo 1.n esta scwihn. r s ilustrar las ainl~igiirclatlrs (pie acechan r n el lenguajc natural tlur se ntiliza p r ; l tltwril~ir los 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~lrtos se 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~ase tlc tlatos.

Integraci6n de vistas: Un ejemplo


Los ejenil~los tlur, 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~tlelo clue satisfaga 10s recpisitos tle los usuarios con 10s qut. sta ha vstado tral~ajantlo.E n iina gran organizatihn un rnfotl~irtan sinil~le uo 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 o se s 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 e tle tlatos. rstas diferentrs vistas dt.l)en integrarsv c.n un i~nitwu~otlelotlv

tltb vista. U t ~ a tlrfinic.ih~~ m a ~wrtibn wstrinpitla (It. la I ~ a w (It. tla~os.

waving ) ver t4mo 6stos sth1111tdenintegrar en un ill1it.o motlelo. El tmfotpe s e r i preser\ ; ~ r loi coiijuntoi cle ol~jetos ni la. catla \ista en sn estado original lo nlhs posil~le! t*ontatatar tlif'cwntvs \ i.ta6 metliantc~ la t.rt~tti6n de nne\ as intc~rrt~lationes entrcbtbllos. CI,IE\TE (:onsitlrrr las Figurai 4.41 ? 4..il ( a ) . l,a Fiprrn 4.41 contitwc nn o l ~ j r t o (*onlln a t r i l ~ u t o NOMBRE, ! 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 o NOMBRE la Figura 1 . 1 1 rvpresentan el tlr ellos. lTna iolntihii 1104 ~nismo atrihnto. un inodelo integratlo harh retluntlante a ~uno 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~ar otras 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 11rohlrn~a cwnplejo (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

INCLUIDAEN

*I
7

SISTEMA CLIENTE

1 PERTENECEA *

I*

rl~t

(a) Un primer intento de integracion de vistas

SISTEMAESTAINCLUIDATIENE-VERSION
I

EJECUTADO-POR

NUMEROVERSION

(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~n intlican cnhntas \rc8rs1111 c w n j u ~ ~tlr t o ol)jrtos r s t i rrlaciouatlo I ~ a j o tlit.lia intc,rrrlacihn con uu rlrrnrnto s i n ~ l ~rln rc . 1 otro r o n j u ~ ~ t c l )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\~rs rxtcsrnas son s111)twnjuntos d r atrihutos li.xit*osq n r juntos idmtifican uii c~ltmiruto rn nu c o n j ~ ~ n aprrpado rs una intcrrrlacihn vista twmo un conjunto tlr ol~jrtc~s. I'hantlo to tlr ol)jc.tos. 1711 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 o tlr s 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~has copias fisivas d r l lil~ro. Las ropias fisicas son lil~ros fihicos, 10s c d r s O~I-osrjrn~plos potlrian rellrrsrntarstb tsn 1111 cwnjnnto propio tlr o1)jrtos. Existrn m w l ~ o s tlr la distincihn rntrt. t*oncq,tualy Fisico. Conq~rendirntlo c4mo 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 r 10s 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~hn intrgrarsr. 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 n en 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. ~notlrlo orirntatlo 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 a tlc l


clatos.

3. Discuta chmo las rntrevistas y el i~nilisis de los infornirs se ntilizan con el modrlado
coneeptiial de datos r n rl proeeso tlel diseiio conceptual d r I ~ a s e tle datos.

4. Disc-uta c6mo se a n a l ~ z a n una 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~ON DE 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?

PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS

133

6. ,Cnhnto, a1en1ant.s e s t i n registratlos forn~almenteen (4 lwograma tle honor? P a r a (11.1 r 1)rogr:rnla tle honor! acll~t.llos tllltbe'thn. i , t l u i h t+ 511 t ~ m i n l t c ~

8. iQ11i. vtwletlor ha vt.ntlitlo l ~ o d l l v t o s taonprec'io ,,or t w t i ~ n a de 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 o tprr 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 por (1116no. r a 4.21 y explitj~lr
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~intas mujereb 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 o Pleasant\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

N01nI)rr

NSS

Fwha dr cwntratacihil

ChdigoEsprt:ialitlad

Eslwcialitlatl Entrenamirnto a1 11s11ario Entrada de (lator Con\ rreicin tlr archi\ {I. I'ropmacihn G~nvc.rsihn tle 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 o tle horas. e. 1,a gtmtr se snst~rihe a 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 ~ r nrcesitr. ~ 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)lvmas siguirmtes. 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? ~Cuhntos hijos 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

PRlNClPlOS DEL DISENOCONCEPTUAL DE BASE DE DATOS

I35

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 ~ o estas n ol)iniones? ,C)ui'. stwiones lill~tnls:' tlel cbtligo fvderal f'ueron interpretatlas como rl t-;lbo de Bltrtk \.s. I

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 ~ a C.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 twmdia tlel me> el niln~ero (Itpaiiia cn la cntratla tle tlatos. Este informe da 1)al.a c-ad;~ transactiont~s tlt. ratlir ti110 que han sido introdntidas por rada en11)leado. 1)etlnzc.a el modelo d e datos t*onc*q)tual que 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 ~ w kbnra 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 ~ ~es i lla nirtlia tlc cdad dc.1 parque de X s ? ;QuiCn es el met.&nicwjrfe responsaI~le tlel 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
r >

l i p tlr transaccihn

Cantidad trtminada

213

N u w a p6li7a Camlio dr phliza Rrclamacihn Pago Can~hio dr pOliza Rrt.ta~nacicin


Nrrw a phliza Pa go Camhio tlr phliza

392 1

S. Stallonr

213

a * *

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~ar en 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 istc~mc tlr ~~ ~ilformucihn tle iii~pleineiitocioi~ t l btr.w.+ ~ t l dcltos ~ corr Tony 1lelton. gereilte ( 1s~ tlotos se hn terrninutlo y el la coinpc~llic~. El tliwrio ( ~ o i i r ~ p t ~p r( urrl( ~ el si~teinu de 6asc.s &J u ~1111 ~ ~sis~ I L g r u p o tleprayrcto.\ listo prlru (1tleritr(~rse en el disello &J ~ I I L ~ ) ~ P I I L PpIaIr~ 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 o p u r u protlr~cir un modelo de buses tle tlatos c o ~ ~ c r p t u t.si r l ronociumos desde el modelo relacion(rl (10 todus formus P" principio q l ~ e teidri(lmos que concertirlo (1 1~11 "El tlis~rio concc~ptucd es e s e n e i ( ~ ~ p (ki ~r c(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(d1 e(iplic([cihn. s ~ IIemos elegido in s i s t ~ ~til ~ ~u g~hti6 de n I)(ISPE ( 1 dutos ~ r~lucioriup 1~ r~ q w p a r u nuestros propbsitos PS lo mcis trtunzutlo d i ~ p o n i b l ~ . " /)use (IP (lutes "Eso pstir bie11, pero yo entiendo qne PS 11ecesurio normuliz(~ri ~ n o reIu(-iontrl t r n t ~ s d~ p e estk list([ p r ( 1 1~1 implementu(-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?" d e datos c o ~ ~ c e p t u (w d un motlelo relw .'Elproceso ~ ~ s c purtr d o c o n ~ o r t i 1111 r rnod~lo t l d motlelado d e dutos conc.eptuu1. Siguiendo cionul PS 11110 d e 10s c[spectos nrhs porl~rosou 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."

1 csentrotle a t e n c i h tle este c.apitnlo es el inodelo d r tlatos relacional ) s u nso t~)inn o 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)tnal puede 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~nciencias funcionales ? 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 ~notlrlo de 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~les a 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 y o 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>s en 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 ~ics estar nsando datos en una gran variedatl tie fornlas que la rstructnra 1hgit.a lial~ria pt.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 o vxat-tamente, con la rstructnra fisica tlr tlato. _4clemhs. Codd propuso (10s lengnajes de manilmlaci6n tle datos I);~satlos tw la Ibgitba, los wales 1,rolnt~tic:ron nihs 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 6. IIoy rstos Irnguajrs proportionan las 11ast.s para 10s Itwguajt~s tie llases tle tlatos t.al~itulo tle rrlationt~s cwnrrtiales 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~s cle tlatos relacional. El primer t*nfoqut.es nlis tradicional. E n este enfotIue el t1ist:iio t*ontq)tualno inclutliret-tamente a la vrracihn t l t . un estpema ye el mode10 (It, tlatos conceptual, pero I ~ r o t w l e tle I~ases d e datos rclacional consistente en definicihn tle t a l ~ l a s relationalrs. 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 tw~virticra en 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~odelo d 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 10s tlatos en forma d e tablas o rela. representa * 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. proporciona 10s La Figura 5.1 muestra un modelo d e datos conceptual revisado que - funtlamentos para la base d e datos relacional tle la compaiiia Premier. O t ~ s r r v e que 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-

DISENO Y ADMINISTRACION DE BASES DE DATOS

,
SUPERVISA

I
TRABAJADOR

\ /

TIP0 ES-ASIGNADO-A
ASIGNACION

TRABAJADOR

EDlFlClO
2

~CATEG~R~A]

iiltcrrclaci6n clue rrlaciona un objeto conhigo inismo. atrihuto de la rrlaci611. Una columna en inla relaci6n.

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 traFECHJI-INICIO. Ibnjar en el edifirio. Cads una de estas asignarionrs tiene dos a t r i l ~ i t o s : 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 s por 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 b r~ ~ c~trilmto l II& que 10s tkrminos COIILI~L~I(I 1; riorr~brede la 10s ttrminos utributo y i ~ o r r ~ d 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 ID-TRABAJADOR (atril~oto) NOMBRE (atribnto) TARIFA-HR (atri1)uto) TIENE-OFICIO (rrlari6n) SUPERVISA (rc.lac.ibn) Itributo de la relacion ID-TRABAJADOR NOMBRE TARIFA-HR TIPO-DE-OFICIO ID-SUP\-

EL MODEL0 DE DATOS RELACIONAL


TRABAJADOR ID-TRABAJADOR 1235 1 4 12 2920 3231 1520 1311 3001

141

NOMBRE
M. C. R. P. H. C. J.

TAR I FA-HR

T I P 0 DE O F I C I O Electricista Fontanero Carpintero Albaiiil Fontanero Electricista Albatiil

ID-SUPV
fi l a s

Faraday Nemo Garret Mason Rickover Coulomb


Barrister

3231

4
atributos

ZA 4

30

tuplas

prado cle la rrlari6u. El nilo1n.o dc atrilmtos eu nua rt.lari6n. tupla. llna fila en n n a relaci6n.

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 n cle u n mocklo dc, datos conceptual en un modelo relational. K 1 nhrnero tle atril~utos en 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~junto tic. valorcs qntX p 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 o es 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 o domin~o clue ID-TRAB4JAl)OK. E n amlws caws, el d o m ~ n i o consiste en 10s numeros d e identificacibn del trahajador.

Valores nulos
Suyonga un atril~uto que 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~uto ID-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.

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.
\

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

DISENO Y ADMINISTRACION DE BASES DE DATOS

TRABAJADOR ID- TRABAJADOR


1235 1412 2920 3231 1520 1311 3001

NOMBRE M. C. R. P. H. C. J.

TAR I FA-HR
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

Faraday Nemo Garret Mason Rickover Coulomb Barrister

Electr i c i s t a Fontanero Carpintero Albaiiil Fontanero Electricista Albaiiil

ASIGNACION ID- TRABAJADOR


1235 1412 1235 1412 1412 1412 1311

ID-EDIFICIO
312 31 2 515 460 435 515 435

FECHA-INICIO
10/10 01 110 17/10 08/12 15 / 10 11 105 08/10

EDIFICIO

ID-EDIFICIO
31 2 435 51 5 21 0 111 460

DIR-EDIFICIO
123 E l m 456 Maple 789 Oak 101 1 B i r c h 1213 Aspen 1415 Beech

TIPO

Comercio Residencia O ficina O ficina Almacen

O ficina

OFICIO

TIPO-DE-OFICIO Fontanero Electricista Carpintero Albaiiil

PRIMA
3,00 3,50 2,00 5,00

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.

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 o del 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) 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 tXs minimal 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~utos pncdan 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~ieir el 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.

c h v e conipuesta. [JIM clave wrnpucsta de mlis de 1111 atrihnto. clave candida~a. (h~alquier conjunto 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.

Claves externas (ajenas, foreign)


El rsqutma d e base d&datos dado anteriormente tiene instancias en diferentes rrlaciones que usan el mismo n o m l ~ r e en 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

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.

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 ;~lores tlel 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 a rdarib. 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 o tlc 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~cntr drsl~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 a para 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 (.la\-t.s su1)rayatlos y con las rlaves forincas clrsigI r e s (it, sus atrilmtos con 10s a t r i h ~ t o s nadas, 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~ita 10s 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.

EL MODEL0 DE DATOS RELACIONAL

145

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 ~ a ell . la I)aw tle aqui 1)ara ivr datos de olbjetos espec.ificos clel munch real o entidades (conio se l l a n ~ d r i n 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 eqrecifiio 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 tit. 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.D e b ,.sty niotlo. si loi usuarioi t p i c ~ c * r ne c q w r a r o m a n i l d a r loi clatos alniac~natlos cXn una 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~tlatl sea 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 tit. ratla enqdeatlo 11ara nsa en 1'1 relac1611TRABAJ 4DOR para tlerirnos el ofivio priric~ipal inq~ortante ~ ~ 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 ~ \ , ~ I o rtlr TIPO-DE-OFICIO en cwalquier fila cle un e~nplratlo be 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 ~ ~ lo asu . 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~ina parcialmente los datos d r TR \B\J 4I)OR \ tlr -\SIGN 4CION. Se s n l ~ o n e para 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~entr a 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~seiio original cle la hase cle clatos no incluyci la rrlacicin tlv la Fignra 5.3. pero ou r d r n surgir prohlernas a t t a ~ b cle s un clisrsi la rrlacicin tie la Fignra 3.4. Veremoi t ~ h p signiendo n n conr7o tle I ~ s tlta r tlatos irreflexivo j dm0 10s problrmas pnrtlrn e \ ~ t a r s t junto 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~icia en 10s datos. Kqrrtitihii tlr datos cn una 1)aw J e (lato.;.

TRABAJADOR
ID- TRABAJADOR
1235 1235 1412 1412 1412 1412 131 1

NOMBRE
M . Faraday M . Faraday

TIPO-DE-OFICIO Electricista Electricista Fontanero Fontanero Fontanero Fontanero Fontanero

ID-SUPV
131 1 131 1

ID-EDIFICIO
31 2 51 5 312 460 435 515 435

C. Nemo C. Nemo C . Nemo C. Nemo C . Coulomb

DISENOY ADMINISTRACIONDE BASES DE DATOS intepritlad cle 10s datos. (:o~~sistc,n~ia tle los tlatos en una haw dv tlatos. anonlaliac cle 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 y r 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 s o reglas para relaciones c:structuratias.

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~ualias d e insercion. 1mposil)ilitlad de adirionar tlatos en la base d r datos dehido a la ausenria de o t r w datos. deseonq~osici6n de relaeiones. I)ivisihn tle lula relati611 en n~illtiples rtdationrs. 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 .
\

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.

alor athinico. Un baler que no es un ronjnnto de valores o un grupo repetitibo.

TRABAJADOR
ID- TRABAJADOR
1235 1412 1311

N O M B R E
M. Faraday

TIPO-DE-OFICIO Electricista Fontanero Electricista

ID-SUPV
131 1

ID-EDIFICIO
(312, 515) (312, 460, 435, 515) 435

C . Nemo C . Nerno C . Coulomb

EL MODEL0 DE DATOS RELACIONAL

147

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 o determina 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 n estas (10s tl(.pc.ntlencias funcionalrs de la sigiientr forma:
FD: ID-TRABAJADOR FD: ID-TRABAJADOR

+ NOMBRE + TIPO-DE-OFICIO

dependenria funcional El valor de un atrihoto cm una tupla determina cl valor de otro atrihuto m la tupla.

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 (~1 niismo 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

determinan~e. El atributo de la parte izquiercla de una Dl' determina el valor tle los otros atrihutos tSn una tupla.

Segunda forma normal


La segunda y terrera forma normal se ocupan d e la relacibn entre 10s atributos c:lavcs y no si el a t r i h t o no (:lave no es fun(:laves. 1Jna relaribn e s t i en s e g m d a f o r m a normal (2FN) rionalmente 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:

segunda forrna norrnal (2FN). Los atrihutos no claves no pueclen ser funcionalmente tleprndientes tie una parte d e la clave.

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 B A S E S DE DATOS

ASIGNACION

(ID-TRABAJADOR,

ID-EDIFICIO,

FECHA-INICIO, FECHA-INICIO

NOMBRE) NOMBRE
FA. C. M. C. C.

TRABAJADOR ID- TRABA JADOR

ID-EDIFICIO

Faraday Nemo Faraday Nemo Nemo

3. Det~ido a esta rednndancia, 10s datos 1)odrian c~iivc~tii-sc. cm inc.onsi~trnte.s. co11


distintas filas n~ostrantlo tlifrwntes noml)res para el niismo tral)njntloi-.

4. Si al misnio tirrnl~o no hay a+nariones lm-a el trahajatlor. l)nc.tl~~ no halwr f'ilas


c . 1 1

las cnales guartlar su noml~re.

ASIGNACION (ID-TRABAJADOR, I D E D I F I C I O , F E C H A 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 ( ' ot~.t~ 1 d ~hn 1

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 ~ srl nt t w ri o n r ~ riel-tos atril)ntoi (11' nna r ~ l d o i 0 n a rdac-ihn. Esto parece snficbientementesinil)lv. El t w i t m t r j 105 re1)resenta !.onlo una nilcX\ cw~~trnid tl(. 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 r 10s valores p a r a i ~~ lwoi. ID-TR \H ZJ \l)OK. ID-EDIFICIO \ FE(:H 2-1 1 lCI( ). tomados jnntos. f w r o ~ Sin cmil)argo. en la wlacihn 'rR-iB-l.J.1DOR ahora se tienen s0lo (10s fil'ls. \ a qoe huI)o shlo (111s t'lniros c20njnntostlr \ alorei para 11)-TR-IB-IJ-IDOR NOMBRE. 4s1. la rcdnntlancia tlv Ios tlatos la l)osil~iliclal de 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

EL MODEL0 DE DATOS RELACIONAL

149

El proceso ( 1 :lescompontv ~ uua r t h i b n (pie no e s t i r n 2E'Y (*ntlos relacione~ qw 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 cads DF. (4) Si el mismo tlctcrmi m l ) i ( l la ~ ~relacibn en 2FK, rrpita 10s pasos 1 2 ~ m - a nante aparccc. en m i s tlr m a DF. tome totlos 10s atrilnitos fiincionalrne~itetlepentlicntes con ese clrtern~inante coma 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 rla~ 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


1235 1412 131 1

TIPO-DE-OFICIO Electricista Fontanero Electricista

PRIMA
3,50 3,00 3,50

DISENOY ADMINISTRAC~ON DE 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~uc no 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 ~ a rn 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~ntos d 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 R 1 (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 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~itlo a 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 a transitiva 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:

fortna ~ l o r ~ n a Boycrl. 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.

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~ibn en 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~iestra cnatro 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
L

Jones Jones Jones

Admision Beca Beca

IM101 IM102 IM103

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 COMI TE CURSO IM101 IM102 IM103

Jones Jones Jones

Admision Beca

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

COMI TE

CURSO

Jones Jones Jones Jones Jones

Admision Beca
IM101 IM102 IM103

c ) Filas sin repeticiones FACULTAD


FNOMBR6 COMI TE CURSO

Jones Jones Jones Jones d) N o restringida

Admision Beca Beca

DISENOY ADMINISTRACION DE BASES DE DATOS


FACULTAD
FNOMBRE COMITE CURSO

Jones Jones Jones Jones Jones Jones

Admision Beca Admision Beca Admision Beca

IMl0l IMl0l IMl02 IMl02 IMl03 IM103

lTna conclirihn que h a w r u n ~ p l i r la intlelwntlencia d r los atril~ntos rccluirientlo csta clnpliracibn cle va1orc.s sr llama nna clepentleilria ilmltievaluada (DMV). 1,as DMVs son wstriccioncs exacatamentr cwn~o lo son las DFs. Claranwnte. clel~ido a 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~rmtlencias multievaluatlas. 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~ultirvaluaclos en relaciones formadas por ellos mismos, jnnto con la clave a la cwal se al)li5.11 iliistra osto. FNOMBKE c.s nn valor (.lave en r a n 10s \alorrs de 10s atril~utos.La F i p ~ r a 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~utos mnltit.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 a ds r 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 c~@o.s atrit~utostle la relacihn. Es tlecir. la c h v r cle d r F;\C-CIJRSO es (FPiOMBRE. CURSO). F:\C-COM es (FNOMBRE, CORIITE) y la (*lave

Otras formas normales


S r han proput~sto algunas otras f'ormas nc)rnialrs clin~inar anomalias 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
FNOMBRE

COMITE

Jones Jones FAC-CURS0


FNOMBRE

Admision Beca
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 s de rr~cnibn (loin deprndencies, drpendencias dc- uni6n). Estas drprn4 dc. mu! dntloso valor pricticw. P o r rllo. la d~.nt.iassou p r i n t i l d m r n t r d r inter& tri~rico cpinta forma ~ i o r m a 1111 l titme \irtuaIinrntr aplicacibn priic*tica. 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 Mostri, q n r m a rrlacihn r s t i en f o r m a nordrfiniciolirs tlr clavc,s y dominios d r atril~utos. ma1 dominiolclnvt~(FNDLL) si y shlo si ratla rrstric~:ihn en 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.

formn n o r ~ n a l tlominio rlavr (FNDLL). Kecluierc. cpe vada rc.htric~t.iOn scXa ~.t.sultatlo dt. tlv tlrfinic~ioi~rs tlo~ninios j-c.l;~vrs.

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 a d r al~lic-atihn m 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 y se dr,mosti-h 1 4 m o m a gran varirclatl d r p r o l ~ l r ~ n d as r aplit*atihnp o d r i m rcbsolcrl~tual sistrnlas yerse con 10s rnotlrlos c.oucrptualrs. Sin rml~argo.c.11 la actualidad rxisten 1)oc8os r u 10s t-ualrs los motlt4os cwncq~tuales 11wdtw 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~ortantr t.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 ar l n un u~otlrlo rrlacio~ial nt) 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~oujunto d 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 o li'xiroh. s #SS \ PI~:CHI1-N;lC l ~ ~ ~ stbr tihn. l'or tanto. st, transliw~uarsttxtliagrmia r u una relwihn coil ati-il)r~tos w m o sigur:
PERSONA ( # S S , FECHA-NAC)

DISENOY ADMINISTRACION D EB A S E S 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 ~ ~ ~ e halwr 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. 1 1 1 1 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~into de 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 d tle o 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~lo anterior. 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 o la 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 anacon 10s nsuarios p a r a determinar qui. atrihutos lista tient: la responsa1)ilidatl dr t r a l ~ a j a r co~npontlrin la 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:

+ = = P

VENTA

EL MODEL0 DE DATOS RELACIONAL

PERSONA

CASADA

PERSONA-CASADA ( #SS, NOMBRE, DIRECCION, CONYUGE) Clave Externa: #SS REFERENCIA A PERSONA

t r n d r i totlos lo.; atri1)ntos tlel twnrisi, m a espctializatibu tlr uu coojnnto tlr ol~jetos jnnto d r ol)jetos tple 61 espt.cializa nlis totlos arls atril~ntos pro1)ios. J,as tlos r t h i o n e s tt,ut l r h la misnia rlavr. Es in~lwrtantcl seiialar 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~ntos t4aves #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 c d 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~sarios para 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~ntos aclicionalrs. 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~ntus SALDO y FE(:H4-.4PEItrTLTR;!. Kstos atrilmtos aditionalrs txusarian r n rl cXst[urmatlr h a w d r datoti w t a aparitmtia:
CLIENTE ( W L E IN T E , 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 contwno uu atrilmto tlr la otra rc~lariim. La rrlatibn rlrgitla s r drtrrrniua por j1111tostlr ol~jtbtoi la ~irc.rsitlntld r la prol~ia aplic.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~rrrlati0n r r d w la colnn~na t.lavc cxtesnn clue indica a1 otro ohjrto. E:n

CLIENTE

EL MODEL0 DE DATOS RELACIONAL

157

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-d er n ~ i s clue shlo las colnnlr~as rlaves 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 E D, 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~odelo d 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 s clawa #I'RODUCTO )- NOMHKE-PAIS p a r a distinguirlor tlr 10s noml~re,s d 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' 11 I os. t 1e una manera similar. Las r e l a c i o ~ ~ r PRODIJCTO 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 e de datos, entonces rllos purtlen ser eliminatlos del esquerna y el rscpcma twnsistiri solaniente d r la rt4wiiln SE-VENDIO-EN.

EL M O D E L 0 D E D A T O S R E L A C I O N A L

159

SE-VENDIO-EN VENDIDO-EL

(#PRODUCTO, NOMBRE-PAIS) (#PRODUCTO, NOMERE-PAIS,

FECHA, CANTIDAD)

(Sf, h a n omitidt~ lai reIac.~ones cle 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, FECHA, CANTIDAD)

PRODUCTO

-t

SE-VENDIO-EN

PAIS

VENDIDO-EL

PRODUCT0

VENDIDO

*
PA~S

DISENOY ADMINISTRAC~ON DE BASES DE DATOS

Transformar interrelaciones recursivas

se llam;~ rrc~~rsiv portjur 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 mo-a-n~~~rh sigoifiva os ~ I I N1111 ~ tral~aji~tlo srq 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 ~ n en la (lo(: 11)-SUPV t.sta. Las rlavrk forineas rcmmivas son el rc.s~lltatlo tle 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~lrtarsc la tratlnc.ciOn, cl escprma rrsultantr tlc.l)rria revisarsr ( . s tlrtir, rrlncionrs cupa informati611 1wr las rrtlundancias. Las rr1acionc.s r e d ~ m d a n t r s , 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 - L o ~intrrrrlacionrs ~ O nno-mllchos. El pro-

v
ID-TRABAIADOR

TRABAJADOR

SUPERVISA

*I

TRABAJADOR

E L MODEL0 DE DATOS RELACIONAL


TRABAJADOR I c TRABAJADOR

NOMBRE M. C. R. P. H. C. J. Faraday Nemo Garret M ason Rickover Coulomb Barrister

TAR I FA

ID-SUPV

Ejemplos de transformaciones: Servieios de Consultoria Manwaring

CLIENTE

CANTI DAD

(DESCRIPCION)

REALIZADO-POR

/
CARGO

*
GRABADO-POR I

( .
PROYECTO

T~TULO

vI I
CONSULTOR

CARGO POR SUMlNlSTRO

DISENOY ADMINISTRAC~ON DE 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<LO )s a una relaci6n. se tuvo q u r tomar ~ 1)roywto a1 qnr MI le a p l i q w un m a decisi6n sohrt. SII ('lave-. En r i t r ('as0 51, dwidi0 q u el rargo c-pwificw idwtifiva ~)arcialnientc~. Sni embargo. st, usa #PROYECrI'O como una part r c k la rleve. Se ;tfiatlih entonves #CARGO w m o la p r t r cjne 1111rdacle la clave. Esto zigriifica clue c1ifrrrntc.s c a r p i l ) u ~ d r tn r n r r r l n~ismo #CARGO si no estrin relacionados con el niismo proywto. El co~ijunto (11. o1)jrtos SEl<\IIClO es una eil)rridlixacibn tlel conjunto d r ol~jrtos CARGO. Por rsta razhn. la relac.iOn SlCRVlCIO tlrlw t e n w la ~nisma rlave que la rcllaci6n (:IRGO. Por supursto. rsto signific-a qnthrsta r h v r tlr tlos rolumr~as rs una rlave rxterna qnr rrfrrr~icia a C IRGO. A(lcwhi, la relac~hn SERLICIO tirnr r l atrilmto COASULTOR. que indic-a qui. conzultor ejrrc-(1r l servicio. Aunquc. CARGO POK SUMINISTRO es taniI& nna rsprc*ial~~acihn clr C 4 R G 0 , no m r r r r r su propia wlacihn porqur no tienr atrihntos propioi. Totla la informati6n necwaria s o l ~ r e cargos por suministros puede e n w n t r a r se en la r ~ l a c i 6 n C IRGO. La Figura 5.24 mnrstra (4 niodelo de dattrs clc~sarrollatlo p a r a la facturarihn de pro!rc.tos hlanwaring c m r l capitulo 4. Ahora se (wnvrrtirh eito a u11 tnodrlo relarional. Los conjuntos cle ol).jetos CLIENTE y I'ROYECTO scbconvirrten como antes:
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

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.

EL M O D E L 0 D E D A T O S R E L A C I O N A L

163

4 EJECUTADO-POR
TARIFA
r

\
CONSULTOR

1-

PROYECTO

T~TULO
OTROSCARGOS TOTAL

(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

OCUPADO-EN-ACTIVIDAD-EN

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~plos anteriores. 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 m dondr 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~onjnntos 11e ol)jrtt)s he (-oiitbt't;m(In la F i g entrntler IIII ~notlt~lo relac.iona1. se hat^ int~ntaln~t~ntc. (4 trar a 5.24. Asi. para realrnc~ite 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 rr sn (ma s i t n a t i h tlel in1111doreal sean t.aptnratlos exatataniente. t.1 ~.irsgo (1e t*oint>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 r (~ 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~pleinerrta el ~notlelo c~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*es tle 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 "iutlustrialiy son 11or lo tanto opciones no r t d v s . Itlt.zac*ihn" r r c p ~ r i t l a1w.a grantlcs al)licat~iont*s ~ 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 tlibrI I iiiotlelo cont:et~tual. P o r tanto. a m h s prol~ositiont~s son viahles iiar dirc:t.t;mwnte I * ~ I ~ It.1 \. 1 ~ i t : d t ~ stAr i nsatlas apropiatlanirntr.

asoci,~dascon Kite rapitnlo introtluc.r t.1 motlrlo tlr datoi relational. la5 formas norn~ales lo a un nmdrlo relwional. S r mostraron 61 nn p r o c e ~ o para 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 la vrntaja intrinwc.a tle Ilia1 o transformando 1111 nlotlrlo twnt-eptual. h l r m i s 3e discut~h nn inodelo t*ont*eptual a n t r i de la (*rvwt*i6u drl 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~ihn d 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 n n~atcn~itic tlr a 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 rs f o r h e d s , tintb son pilnteros li)git*osde una fila d r Ilnd r r h nianipnladai a trav6s de (*la\ ci6n a nna fila tlr otra I-elar~hn. Par,( estar iepnros d r la valitldci6n tle 10s dntos en llna I ~ a w y de intrgritlatl cle datoi rtblac~onal.Codtl forrniilb las reglas (It. lntegridad tle la r n t ~ d a t l 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~c correspontlrr t*onel \ a h actual de m a clake en otra relac16n. La5 rrl,it.iones t ~ n v ion (liieiiadai twmo party d r un tlisefio tle h i t , tlr d a t o i cont*eptual purtlrn te1ic.r anon~alias tle 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 ~ o tlr 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 s multirkalnadoi 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~leniente atrihutos n i u l t i e ~ aha1 la forma normal dcrnl~niolclavr son formas normales atli(10s. La cpinta forma norrr~al en estr (*acwnalrs clue han iitlo tliwutitlas en la literatura y son deicritai t ~ r r \ r m e n t e pit ulo. El proreso d e transforniat~ibn d 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~hos corrrspontlrn a atrihutos ~nnltirvalnatlos y 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 r miis ficilrs d r twmprrntlrr ( p t - los ii~otlrlos rdationalrs, 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. cpr el p r w r s o tlr t l c ~ r r o l l o tlr un inodt4o t*onc*rptnal y la couvrrsihn a nn Esto rnl~t-stra ~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


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 tl~trrinina f'i~nt~ionalmt~~~tt~ t*lavrcantlidata elale externa rsqurma tie I)aw tir datos rrlacional rt~gla tir 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

SIIS

propias p a l a h a s :

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

EL MODEL0 DE DATOS RELACIONAL

e. f.

h.

g.

atrihutos y cohnlnas t~tplas j filas intrgridad d r la w t i d a d e integritlad rc-ft*rrurial c.1avt.s c.anelidatas ! c.1a~c.s primarias

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 a de Krnt ( 1983): Uua r e l a c i i , ~ esti 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 ~ el a procrso de t r i ~ n s f ~ r u ~ a c id O r nun mod14o ronceptual a uu n ~ o d r l o relacional 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 m tlrsarrollar 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?
I

1. Marque cada t6rmino con h u defitiic~i6n: -formu normal dominiolclnvr Un a t r i l ~ u t o no 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.

DISENO Y ADMINISTRACION DE B A S E S 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

a Y: Entit.rre en nn c*irculolas tle1wnclentias fnncionales clue sc el~lic-an


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

br

aplican a l'

lclentifique una posihle (>lave para Y

EL MODEL0 DE DATOS RELACIONAL

169

4. Consitlrrr la siguimtr rrlac.ii,n (lab Irtras mayuscnlas son noin11rc.s tlv at~il)utos ! . las son \alorrs): Irtras rniniist*ulasy los nilu~rros

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;~iiia de 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.

DISENO Y ADMINISTRACION DE BASES DE DATOS

NUMERO DE

VENDEDOR
DIRECCION

PAGADO CON HECHO-A

PRODUCT0

ORDEN

FECHA
1 NVENTARIO

PRECIO

VENDEDOR I
(DESCRIPCION)

HECHO-A

\
*
PRODUCTO
\

INCLUYE

*
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 l para 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 o diseiiando 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.

DE BASE DE DATOS RELACIONALES

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 datos Algebra relacional Union lnterseccion Diferencia Producto

Asignacion U n ejemplo adicional Calculo relacional La lista resultado y la sentencia de cualificacion. El cuantificador existencial El cuantificador universal La dificultad relativa del algebra relacional y el calculo relacional.

Selection
Proteccion Reunion (join)

'

Resumen Preguntas de repaso Problemas y ejercicios Proyectos y cuestiones profesionales

Reunion natural Reunion theta Reunion externa 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(~s r n 10s lengu(rjes de basc~s d e dntos relorionrrles. Reggie h a sido introducirlo recientemc~nte tr las base7 rle dntos relacionales y estri eqforz6ndose p o r comprender sus bosc~s conceptuales. Sill einbcirpo. no entiende las d{ferei~oio.sestructurcrles sign$cntir.ti\ cwtre algui~os d 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 e 110proredimcwtnl. d c4lculo relacionc~l." "Estoy confi~ndido, no entiendo esos tdrminos, Cor$rlicl. 2QuP entiendes p o r procedinrental " no ~ .rocrdirnentd?" "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~clor cbmo se ejecuta ce~dnpaso. Los lengucrjes truclicionales d e 10s compr~tndore\son proredimentales. El inodelo relacional h a h ~ r h o in& pr6ctico el desnrrollo d e 10s lenguujes no procediinentrr-

IPS. "
~ I L ~ L J procedimentales. PS

"Parc~ceriaentonres yue los I~rrgu(~jes no procedin~entales son 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~s incis populares, tales conro el SOL. el QRL y el QL EL, tic~nrlrn m serlo. Purrr comprendcv completumente el modelo rele~cionnl y 10s lenguc~jes uti1i:udo.s p r a manipnlorlo. es importante entender clmbos enfoyues."

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~nguajes comerciales 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~onrs a 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 a rrlacional 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~ulacihn de tlatos re1at:ionales quv se encuentran comi~nmente en 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~ntacihn lhgicu 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 e lenguajes 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 NOMB-CL IENTE

DIRECCION

PAIS

SALDO INICIAL
45.551 75.314 49.333 27.400

SALDO ACTUAL
52.113 77.200 57.811 35.414

Watabe B r o s Matlzl Jefferson Gomez


VENDEDOR ID- VENDEDOR

Box 241, Tokyo Salzburg B 918, Chi c a g o Santiago

Japon Austria USA Chile

NOMB- VENDEDOR

ID-JEFE
27 44 35 12 44 27 27 27

OFICINA

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
PRODUCTO DESC- PRODUCTO

Chicago Tokyo Brussels B.A. Tokyo Chicago Tokyo Brussels B.A.

ID-FABRICANTE
21 0 31 7 31 7 253

COS TO
1,25 2,25 3,55 0,60

PRECIO
2,00 3,25 4,80 1,20

abrigo l a m p a r a de mesa l a m p a r a de mesa escultura


VENTA FECHA ID-CL IENTE
100 101 101 100 101 105 110 105 101 101

ID- VENDEDOR
10 23 23 39 23 10 37 10 23 23

ID- PROD
2241 251 8 1035 251 8 1035 2241 251 8 2249 2249 2241

CANTIDAD
2 00 300 150 200 200 100 150 50 75 250

FABRICANTE

ID-FABRICANTE
21 0 253 31 7

NOMB- FABRICANTE

DIRECCION

K i w i Klothes B r a s s Works Llama Llamps

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.1 e1 'ZY) ~ J I I el % :)I) ~ s~uo!aep seqwe ~ ua ua zaa e m 010s a . ) a ~ e ds e q g selsa al) eun epe,) o ~ a d 'pp x ~ a g a ~ g hJ- O as ~ ~e ~ ~ ~ ~ g ! l r r 's ae p~ !g s a 'c.9 ~ d~Z"S WJIIS!~ ue~luanma as 'ZI d

E L ALGEBRAY E L CALCULO RELACIONAL

179

VENDEDOR ID- VENDEDOR 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 ID-JEFE
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.

permite identificar las filas que son comunes a dos relaLa o p e r a c i h d e interserci6n (n) r 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 b de 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 IVENDEDOR N O M VENDEDOR ~ ID-JEFE
27 27 27

O F C IN IA

% C O M I S I O N

Albert Ige B r i g i t Bovary B u s t e r Sanchez

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.

DISENO Y 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
T e r r y Cardon

ID- JEFE

OFICINA
Chicago

% COMISION

27

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 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.

sustrarri6n. La operacibn diferencia tlel ilgel~ra relacional.

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~loqur para 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~itos X, 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 o d 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 hloim~lortantr;por tanto. t r n d r i m a t p e par:^ la w ~ l n i h n(joii~). Esto rs cc~ntq)tualmrntr ;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~guajr wnlrrrial relational m i s inq)ort;~nte.

riclecci6n. 0prrac.iOn tlel Algrl)lx rrlac.io~~al I a I totliti Ijara srlrcriol~ar f'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~la shlo 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 e d 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~lacibn rrsdtantc:. 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
27

Tokyo Tokyo Tokyo

11 10 12

Las twndiciones d r srlrt-ci6n son esencialrnentr las rnismas c:ondicionrs usadas en las de programaci6n. Sin rrnl)argo, 10s nomhres instrut:ciones I F en los lrnguajrs tradicio~lales 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
NOMB-VENDEDOR
=

23

= ' B r i g i t Bovary' ID-JEFE >= 20 not OFICINA = ' B . A . ' %COMISION < 11

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 Resultado:


ID- VENDEDOR N O M B VENDEDOR ID- JEFE
= 23)

OFICINA

% COMISION

23

Franqois Moire

35

Brussels

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 Resultado:


ID- VENDEDOR N O M B VENDEDOR ID- JEFE OFICINA
% COMISION

= ' B r i g i t Bovary')

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
10 14 23 39 44 35

NOMB- VENDEDOR 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

ID- JEFE

OFICINA Chicago Tokyo Brussels Tokyo Tokyo Brussels B . A.

27
44 35 44

12

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 Resultado:
ID- VENDEDOR NOMB- VENDEDOR 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 ID-JEFE OFICINA Chicago Tokyo Brussels Tokyo Chicago Tokyo Brussels
= 'B. A . ' )

27
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
44

27

Chicago Brussels Tokyo B. A .

10 9 10 10

DISENO Y 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:
Resultado:

SELECT (VENDEDOR: OFICINA = ' Tokyo' and %-COMISION

> 11 )

ID- VENDEDOR

N O M B VENDEDOR

ID- JEFE 44 27

OFICINA

% COMISION

M a s a j i Matsu Albert Ige

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 Resultado:


ID- VENDEDOR NOMB- VENDEDOR

= 27 and %-COMISION

> 10)

ID-JEFE

OFICINA

10 14 37 27
44 35

12

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
44

12
27 27 27

Chicago Tokyo B. A. Chicago Tokyo Brussels B. A.

prott~cri611. Ol1rrari6n del B1gel)ra rrlacional cpir crra una rrlaciirn 1)orranclo rolurnnas d r m a rdarihn rxistrntr.

Algunas d r las consultas usatlas para ilustrar la operacihn de se1rt:cihn prrgunta1,an .", lo cual sugiere que 10s usuarios querian shlo los nomhres tle 10s wntletlorrs "QuiPnt~s.. 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 a filas 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 tle proeliminaci6n tle las columnas no tlesradas. La relaci6n resultante tlr uua ol~eracibn yectar 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 M a s a j i Matsu Goro Azuma Albert Ige ID-JEFE 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 [ % C O M S IO IN ]

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~amente eliniina 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:


Resultado:
NOMB VENDEDOR Rodney J o n e s Franqois Moire Goro Azuma B u s t e r Sanchez

% COMISION

< 11 ) [NOMB-VENDEDOR]

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.

DISENO Y ADMINISTRACION DE 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~i almawde 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 ~ n 10s t l o11)s de rstos t r r s e l e ~ n ~ e n tde t~s tlatos. Esta inforn~arihn permitr 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 r 10. 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 callales 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.

reuni6n natural. O p e r a c i h de reunlbn cpe ronerta relwiones ruando las rolumnas conlunes tienrm iguales valores.

FECHA

IKCLIENTE

IcVENDEDOR

ID-PRODUCT0

CANTIDAD

SALDO
ID-CLIENTE
100 105 105

SALDO
ACTUAL
52.113 57.811 57.811

NOMB-CLIENTE
Watabe B r o s Jefferson Jefferson

DIRECCION
Box 241, Tokyo B 918, Chicago B 918, Chicago

PAIS
Japon USA USA

INICIAL
45.551 49.333 49.333

EL ALGEBRA Y EL CALCULO RELACIONAL

187

FECHA

ID-CLIENTE

ID-PRODUCT0

CANTIDAD

200 100 50

SALDO
ID-CL IENTE NOME-CL IENTE DIRECCION
PAIS INICIAL

SALDO
ACTUAL

100 105 105

Watabe Bros Jefferson Jefferson

Box 241, Tokyo B 918, Chicago B 918, Chicago

Japon
USA USA

45.551 49.333 49.333

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~ble lookup). 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. hay originalnlmte tres filas en la r e l a c i h \/EN'I'.4-10. reunirntlo la rcbl;rAsi, dehido a (111~ ciOn (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~le sol)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~miclas ten 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 natural de A y R t e n d r i ( k t m - n ) columnas, dontien? rn c d u m n a s , entonces la re~lnibrl tle (-olumnasque 4 ) R tienen en comun. cle 11 es el n i ~ m e r o 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

ID-JEFE

OFICINA

% - COMISION

I0 I0 10 23 2 3 23 2 3 23 37 39
FECHA

Rodney Jones Rodney Jones Rodney Jones Franqois Moire Franqois Moire Franqois Moire FranFois Moire Franqois Moire Elena Hermana Goro Azuma
ID-CL I E N T E ID-PRODUCT0

27 2 7 27 3 5 3 5 35 3 5 35 1 2 44
CANTIDAD

Chicago Chlcago Chicago Brussels Brussels Brussels Brussels Brussels B.A. Tokyo

28/02 05/ 02 14/02 12/02 15/02 02/ 02 0 1 102 04/ 02 22102 19/02

Es rsrnrial~nrnte la misma ronsulta q u r en d r j r n ~ p l o antrrior. 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 indivai . inforn~at.icin sohrr las (la c:omiruza hasrantlo r n la rrlariOil VENDEDOK y pregunta p 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 rr~wtidas varias vrrrs, n ~ i r n t r a s q 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 2 5 18

200 100 50 300 150 200 75 250 150 200

100 105 105 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 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 r ha R. Ohserve q n r la colunma ID-(:LIENTE de la relacihu \I EADEDOR sr twuiinonilm~do tlera nna coluimna rc~tl~ul(lante se 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 n podria 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~ivalrnte a 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

= ' l a r n p a r a d e mesa ' )

= J O I N (A, VENTA) = J O I N ( 6 , CLIENTE)

[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 o la 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 ~nisma clue 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~iey Joncs 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 sc~let~ih en 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 n de 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~rcb su jc4.. Esto se inue5tra en la Fignra 6.8. Note 11ne no tsxistt. m a f ~ l d t[ur niuritrr a Tt,rr? ('artlon (*on511 jefe. Esto 5e debe a qne in 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. fila a ~ ) a r e w t'orno nil j c f i ('on t n ~ ~ c h o otroi s \t.ntlt~tlort-s. d~ a ~ i itlrntific.ar ,~ acjnellos l e u Ailn no sr ha trnnlnatlo con rsta c.onsulta. S r t l ( ~t lo~ 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 i0n seltw*iOnen la r d a t i 0 n I:
B : = SELECT ( A :
VEND^ . % C O M I S I O N

> 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

DISENO Y ADMINISTRACION DE B A S E S DE DATOS

t p e se t w o t p e eipecifirar \. E N D ~ . % - c O M ~ S y I no \/El\tUl.%-COMI, Ol~sei-+e SlOh. El p r i n ~ e r o rontiene la tasa tle t~)inisihn dv loi jefki, rnientras qne el i~ltiiuo rontiew la tasa tlr con~isibn d r 10s ventledores. rs una rt.nni6n ron una rondiri6n c*iperiSic~a tpir inr o1,a rell11i6n theta (thetcl joir~) lncra 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 aX s . y I- son las t:olnrniias tlc las tlos rrlarelarionatlos ihi~ anteciontbs 5 1:' letra gi-icga 6 es 11110 dtb 10s iris operatlores cle t ~ o ~ n p r a t ~ 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~inos prol)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 ~ n natural. portIw no inc*luyr la eliiiiinatihn tlr lina o 111lis t:olumnas (wmo paso final. Eu otras as R t i m e rn rolumnas. entoncw la rtwnibn tlwta cle A y B palabras. s i A tienr k c d ~ ~ m n y 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 o tle esto se mostr0 en la Figura 6.7. Sin embargo, estv resnltatlo no (,s satisfat-torio, poi-que la intencibn d e esta ronsulta junto ron sns wntas. P o r tanto: no se puede usar la reues rnostrar todos 10s vc~ntletlores nibn natural si se desea listar 10s wndedores cjue no han tenido \rritas junto con aquellob (jue han tenitlo. La re~inibn externa rernedia este pro1)lema. La reoni6n externa extientle la r r n n i i ~ n natural, 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

193

ID- VENDEDOR
10 10 10 14 23 23 23 23 23 37 39 27 44 35 12

NOME- VENDEDOR

ID-JEFE
27 27 27 44 35 35 35 35 35 12 44 27 27 27

OFICINA

%-COMI~ION

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

Chicago Chicago Chicago Tokyo Brussels Brussels Brussels Brussels Brussels B.A. Tokyo Chicago Tokyo Brussels
B.A.

FECHA
28 102 05 / 02 14/02 12/02 15/02 02/02 01 102 04/02 22/02 19/02

CANTIDAD

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 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.

tli\ isi6n. Operaciirn tlel relac~onal clue crea una nne\a rclacihn. srlecc~onantlo lai filas en una relav~hnqur sr corrcspondcn con todas lai hlas cn otra rrlacibn.

~~~~~~~a

Esta serrihn put& omitirse sin perder la continuidad.

DISENO Y ADMINISTRACION DE BASES DE DATOS

Ohciamentc. si stbq u i t ~ e ronowr 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~n PR0DITC:TO rs tal rrlacihn. Sin r n ~ l ~ a r g o t.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 r una 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 ; ~ w th-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
10 23 23

ID-PROD
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~nto clc las c~olunnias tle 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 tle PI es ID-PROD \ la ID-PROD (, ID-VENDEDOR. mwntras (pie la c~olinnna tdu~nna tlr 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. Es ficil ~ e r i f i c a (pie r La operari6n divisi6u es la opuesta clr la olwrati6n sc pnetle ohteller B. ( h i si una relac.ihn es el produrto tle dos re1aciont.i B ! C. et~tont-rs clientlo el protlncto por C . IGto es:

~~~~~~~~~~to.

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 a p 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~idirran solucionar 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~ariamente poderosa 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 d relacional, 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:

~C6mo se 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 ~ o importante. 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~eria ser 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 ~ e y 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 r diferrnte 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 a d r las c*arac*trristic~~s tlrl to par la i n s t r l ~ c ~ i O T,a ! sr r \ p l i w u sns signif[cilrulo rrlarional. S r rrlacionan 10s cwnponrntrs d r la soll~cihn 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<yo"' significa que el valor del atributo 0FICINL4en la fila r es 'Tokyo'. lista resultado. Una lista m una instrucc.i6ii (le1 cilculo relacional que define 10s atributos d r la relacibn solncihn. sentencia d c calificacih. Una condici6n r n nna instruccihn del cilculo relacional clue restringe 10s componentrs en uiia rrlacihn solncihn.

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

DISENO Y 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~ualifieari611 nu?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~tos s 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~nto d r estos atril~utos quchs 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~os un 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 b es 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 c m la iolucihn. h i , la t~ontlicihn tlehe 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 e dado 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: N O M B - 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 N O M B C L IENTE Watabe Bros Matlzl Jefferson Gomez VENTA FECHA ID-CLIENTE
100 101 101 100 101 105 110 105 101 101

SALDO
ACTUAL
52.113 77.200 57.811 35.414

DIRECCION

PAIS

INICIAL
45.551 75.314 49.333 27.400

Box 241, Tokyo Salzburg B 918, Chicago Santiago


I D VENDEDOR
10 23 23 39 23 10 37 10 23 23

Japon Austria U S A Chile


ID- PROD
224 1 251 8 1835 251 8 1035 2241 251 8 2249 2249 224 1

CANTIDAD
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.

EL ALGEBRA Y EL CALCULO RELACIONAL

20 1

CLIENTE ID-CLIENTE 100 101 105 110 VENTA FECHA 2 8 / 02 12/02 15/02 19/02 02 / 0 2 05/02 22/02 14/02 01 102 04/02 PRODUCTO ID-PROD 1035 2241 2249 251 8
DESCRIPCION ID-FABRICANTE

NOMB- CL IENTE Watabe Bros Matlzl Jefferson Gomez

DIRECCION

PAIS

SALDO INICIAL 45.551 75.314 49.333 27.400

SALDO ACTUAL 52.113 77.200 57.811 35.414 r

Box 2 4 1 , T o k y o Salzburg B 918, Chicago Santiago

Japon Austria USA Chile

ID-CLIENTE 100 101 101 100 101 105 110 105 101 101

ID- VENDEDOR 10 23 23 39 23 10 37 10 23 23

ID-PROD 2241 251 8 1035 251 8 1035 2241 251 8 2249 2249 2241

CANTIDAD 200 300 150 200 200 100 150 50 75 250

COSTO

PRECIO

abrigo l a m p a r a d e mesa l a m p a r a d e mesa escultura

21 0 31 7 31 7 253

1,25 2,25 3,55 0,60

2,00 3,25 4,80 1,20

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 NOMB- VENDEDOR ID-JEFE OFICINA

10 14 23 37 39 27 44 35 12
PRODUCT0

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

Chicago Tokyo Brussels B.A. Tokyo Chicago Tokyo Brussels B.A.

ID- PROD

DESCRIPCION

ID-FABRICANTE

COST0

1035 2241 2249 251 8


VENTA FECHA

abrigo lampara de mesa larnpara de mesa escultura

21 0 31 7 31 7 253

1,25 2,25 3,55 0,60

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 11uenaalterk las consu1t;rs mis dificiles qur involucran "every" (todo) en la connativa para la solnci6ii c dici6n. 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 ~nanipnlan relaciones 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 s marcadas 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~s son 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

(I(. (10s rclaciones. h. Crea el protlncto c a i ~ s i a n o Crea el conjunto (liferencia de dos relaciones 11nibn-rompatible. la existencia tle a1 menos una fila a la cual j. Afirn~a 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.

-nsigizclcGn -proyecciciil --listu resultado

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 ( C A M O IN # -, 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~l instularlo 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-uuje en 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~s udicionules 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~tis rle 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 ~sturirlur SQL-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. "

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~hir instrucciones 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

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. K d r TRM. Estr proyrcto SQL fur el rrsultatlo tlrl proyrcto cle invcstigaei6n S y t r n ~ 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~nico lrnguaje 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 ~ o un 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~structorcl Premier. 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 OFICI0 ID-SUPV

M C R P H C J

Faraday Nemo Garret Mason Rickover Coulomb Barrister

Electricista Fontanero Albariil Carpintero Fontanero Electricista Carpintero

1311 1520 2920 3231 1520 131 1

I D TRABAJADOR

ID-EDIFICIO

FECHA- I N I C I O

NL~M-D IAS

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
EDIFICIO ID-EDIFICIO DIR-EDIFICIO

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

TIP0 O ficina Comercio Residencia Of i c i n a Of i c i n a Almacen

NIVEL-CAL IDAD

312 435 51 5 21 0 111 460

123 456 789 1011 1213 1415

Elm Maple Oak Birch Aspen Beech

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 instrucy una cliusula adicional 4UTHORIZZTION cibii CREATE SCHEMA (creur ~squerrtn) drfinir cada dominio, tahla, vista y den& en el esquenia. (autorizacibn) jr a c~ontinuacibn 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. 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.

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.

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~le precision (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 rarrrllenar (*on hlautws a la derec*hapara twmpletar la longititrtd rz. Los v a m p s c h a r u c t ~ c ving 5610 almat~enan el 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 s r d a en horas (0 a 23). minutos, segundos y dbcimas de segundo. E l Timestamp tBs la Tiln~ 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 si t.1 auton~iticamente usuario no lo especifira ci~ m a entrath.
r alov

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:

drfinici6n d r dominio. Un tqw tle datos esprrializado drfinido dentro tle un esqurma ! usado en las tlefiuiriones de columnas.

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~es de 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 ( I D-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

DISENO Y ADMINISTRAC~ONDE BASES D E DATOS

entre parintesis y separatlas por coma las instrucciones tle tlefinir columnas y d e drfinir restriccione~solm. la tabla. cle las tres primeras c.oluninas tit. T R ID e f i n i c i h de colurnna. Veamos les tlef~niciones BAJ I D O R :
ID-TRABAJADOR NOMB-TRABAJADOR TARIFA-HR IDENTIFICADOR CHARACTER ( 1 2 ) NUMERIC ( 5 , 2 ) PRIMARY KEY,

FECHA-INICIO NUM-DIAS

DATE INTERVAL DAY ( 3 )

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~irfinitlo o 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 n las 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~lece a 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 1235 131 1

NOMB-TRABAJADOR M. F a r a d a y

TAR1 FA-HR 12,50 15,50

OFICIO Electricista Electricista

ID-SUPV 1311

...

b : 'coulomb

...

...

...

1311

TRABAJADOR IDTRABAJADOR 1235

NOMB-TRABAJADOR M Faraday

TAR1 FA-HR 12,50

OFICIO Electricista

ID-SUPV [null]

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~pre que 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 1235

NOMB-TRABAJADOR M. F a r a d a y

TARIFA-HR 12,50

OFICIO Electricista

ID-SUPV 131 1

ID-TRABAJADOK en la tabla A S ~ G N A C I ~ es Nm 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

IMPLEMENTACION RELACIONAL C O N SQL

217

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 n CREATE 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.
DROP SCHEMA n o m b r e - d e - e s q u e m a RESTRICT

otros

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.

DISENO Y ADMINISTRACION DE B A S E SD E 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. 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. 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

c l h s u l a FROM. Lista las tablas que son referidas por la consnlta

cliusula WHERE. Nos da la condici6n para seleccionar las filas de las tablas indiradas.

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 IE D F IC IO I
31 2 21 0 11 1

DIR-EDIFICIO
123 Elm 1011 B i r c h 1213 ASDen

TIPO

NIVEL-CALIDAD
2 3 4

CATEGORIA
2 1 1

Oficina Oficina Oficina

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 T a r i f a semanal = 620,00 T a r i f a semanal = 500,00

literal cadrna d e carartrres. Literales forniaclos por caracteres y por alfm~~mbricos caracteres "especiales".

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 e p 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:
ID- TRABAJADOR
2920 1520

NOMB-TRABAJADOR R. G a r r e t H. R i c k o v e r

TARIFA-HR
10,00 11,75

OFICIO Albaiiil Fontanero

ID-SUPV
2920 1520

operadores d~ comparaci6n =, 0 , <. >, <=, >= conectores booleanos AND, OR, NOT.

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

DISENO Y 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 r roniparar esti entrr estos (105 \ a primero rnenor clue el segnntio, para iaher s~ el ~ a l o 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 1235 1412 2920 1520 1311 NOMB-TRABAJADOR
M. C. R. H. C.

TARIFA-HR 12,50 13,75 10,00 11,75 15,50

OFICIO Electricista Fontanero Albanil Fontanero Electricista

I D - SUPV 1311 1520 2920 1520 1311

Faraday Nemo Garret Rickover Coulomb

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:
"Elec".

Encontrar

todos

10s

caracteres

cuyo

oficio

comience con

SELECT * FROM TRABAJADOR WHERE OFICIO LIKE ' E l e c % '

Resultado:
ID- TRABAJADOR 1235 1311 NOMB-TRABAJADOR
M . Faraday C. Coulomb

TARIFA-HR 12,50 15,50

OFICIO Electricista Electricista

I D -SUPV 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 i n the set, dr a h i rl n o m h del oprrdor IN (N. tlel T.)

IMPLEMENTAC~ONRELACIONAL C O N SQL

22 I

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:

AND CURRENT-DATE

+ INTERVAL

(Suponiendo que CURRENT-DATE ID-EDIFICIO

10110)
NUM-DIAS

ID-TRABAJADOR

FECHA-INICIO

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~acicin se 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 FROM TRABAJADOR , ASIGNACION W H E R E TRABAJADOR. ID-TRABAJADOR AND ID-EDIFICIO = 435

SELECT OFICIO

= 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 s en 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 de aml~as taldas, emparrjantabla rnorme q u r consistr tie todas las coh~rrrnas do 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 s r 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 o cartrsiano 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~ina cada fila d e la relacihn rreada por la cliusula FROM conforlilt: a la clius~ilaWIIERE. No s r twnsideran aqi~rllas q 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 una rtwniirn d e tlos relationes sobre la columISlGN1CION. En rfrcto, se ehti I~aciendo

TRABAJAD0R.ID-TRABAJADOR

NOMB-TRABAJADOR
C . Nemo R . Garret C . Coulomb

TARIFA-HR 13,75 10,00 15,50

OFICIO Fontanero Albanil Electricista

ID-SUPV 1520 2920 1311

1412 2920 131 1

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~nina rrclundante TD-TRGBAJADOR r L o stat h n i n a autoii~iticainente en 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 ~ltrrnatlro qnc 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 supervi10s dos nomhres de traljajatlor cle catla una de las filas se sor (Figura 7.3). Selett~ionanclo ohtiene la lista solicitada de pares de tra1)ajatlores con sus sqwrvisores:
A. N O M B - TRABAJADOR

6.N O M B - TRABAJADOR

M . C. R. P. H. C. J.

Faraday Nemo Garret Mason Rickover Coulomb

C . Coulomb H. Rickover R . Garret P. Mason H . Rickover C. Coulomb B a r r i s t e r P. Mason

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 WHERE TRABA~ADOR . 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 B . ID- TRABAJADOR 131 1 1520 2920 3231 1520 131 1 3231

A . NOMB TRABAJADOR M . Faraday C. Nemo R. G a r r e t P. Mason H. Rickover C. Coulomb J. Barrister B . NOMB- TRABAJADOR

A . TARIFA-HR 12,50 13,75 10,00 17,40 11,75 15,50 8,20 B . TARIFA-HR 15,50 11,75 10,00 17,40 11,75 15,50 17,40

A . OFICIO

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

C. Coulomb H . Rickover R. G a r r e t P . Mason H. Rickover C. Coulomb P. Mason

Electricista Fontanero Albanil Carpintero Fontanero Electricista Carpintero

Resultado:
NOMB- TRABAJADOR M . Faraday

Nemo Garret Mason Rickover J. B a r r i s t e r

C. R. P. H.

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~ncras relaciones i r reunen con 1 1 ) - T R A B A J A D O R , deipubs tle lo cr~al se 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, ~)uecle 1)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

nos clan una S r u i a r i vstr rjetnplo lm-a ilnstrar la renni6n (join). Las su1)c~onsultas eqni\ alencia t~arcial con 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~ Iu>e a 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 ~ i pla ta r a la consulta m i s c ~ t c ~ n a . En estr pnnto la cwn~ulta externa se ejwuta usando el coujnnto generado p o r la s n 1 ~ 1 1 i snlta. Esta tvmsulta e ~ t e r n a pro\oc*a clue cada fila d e TRLZRiJAlIOR sea r\trlnatla con el vonjunresperttr a la t~lbusula HEKE. Si en el ID-TR lBAJADOR de la fila e s t i (I\). to 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~suIta no 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 (.onn n conjunto de IDs tlr tr'rsnlta externa qur t-stalllrce si 11)-TR4B4JADOR estii en (111, hajatlores no tendrie sentdo. 0l)sCr~ese qut. la snlwonsulta puetle cjccntarse 16g1caniente antes d e qne cllgur~cl fila sea examinade IWI- la c o n i ~ ~ l principal. ta En c i ~ r t o sentido, 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~nlta dentro 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. hemos estudiado hasta ahora son Subconsultas correlacionadas. Las suhconsultas (11~. 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~lta principal. 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

suhronsidta correlarionada. 1Jna si~l~c~onsulta cuyos resultatios dcpendm tic la fila que sc estli e~atninantio por una consulta miis rxterna.

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.).

IMPLEMENTAC~ON RELACIONAL C O N SQL

227

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 N O T EXISTS (SELECT *
FROM ASIGNACION WHERE ASIGNACION . ID-TRABAJADOR
= TRABAJADOR ID-TRABAJADOR

AND

ID-EDIFICIO

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 a a 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. resoleonditihn. En c.1 Capitulo 6 se bet. cc~nsultasclue cwntvngan el cuantifiraclor "'toclos" en , ~ I I 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~lrma preliminar: 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~isi6n en 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 ac ronitrut~ion lingiiistieds ~~ 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 u n solo v a l o ~ . SQL probee tales funcionei clue se denofilai en una relaci6n > l~rotluzran minan 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~liusula WHERE. 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 B A S E S 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 4 3 . 5 . Como es normal r n SQL. la t.liusnla F HERE restringtb rorrrspontlientrs al ctlif~cio 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
312?

edificio

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; -cii~n~s.~e~c~~,t~( purden ~OUK aplicarsr 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

= 3

Resultado: 3

IMPLEMENTACIONRELACIONAL C O N SQL

23 1

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~into dc 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~ismo wprrcisor. 1,uego s r deterinina el papo n ~ i x i m o en d a grulw. Esto se hace en SOL de la manera siguirntr:
SELECT ID-SUPV, MAX(TARIFA-HR)

F R O M TRABAJADOR GROUP BY ID-SUPV


Resultado:
ID-SUPV
1311 1520 2920 3231

MAX(TARIFA-HR)
15,50 13,75 10,00 17.40

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).

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 e de 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~indo paso srria ralrular r l proniedio dr bstas. Es vilido usar una c l i ~ i s ~WHEKE ~la con u n GKOITP BY:

DISENO Y 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 ?
SELECT T I P O , AVG(N1VEL-CALIDAD) FROM EDIFICIO W H E R E CATEGORIA = 1 GROUP BY TIPO

es e l n i v e l

de c a l i d a d

Resultado:
TIP0 Cornercio Residencia Of i c i n a AVG(N1VEL-CALIDAD)

1
3 3,5

La c.liu*ula

\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~sihn a 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

R E L A C I O N A L C O N SQL

233

Ol)sbr\rse q n r . c~inl~emntlo p o r la rlriusula FROM. la, rliius~ilas r n la&~nstrnceioaplira a1 final. P o r tanto. la rliiun r s SQL se aplirdn r n orden y 1;1 clinsula SELECT scB sula 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 o grlllm. Esto t w a un n u n ~ e r o de 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 IIAiF ING. Sin embargo. una clhnsula SELECT que rontenga una funtihn intrpraa .continuacicin be \ e r a tin r j c n ~ p l o d r una tal sullda p u r d r her parte t l c m a ~ u l ~ c o n s u l tA consulta:

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 o de 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 c op r e el t r a l ~ j a t l o q r 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~nente balm 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 o d 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 ~ en s 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~lumnas respectivas 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 Rodney J o n e s M a s a j i Matsu Fran~ois Moire 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 ID- JEFE OFICINA Chicago Tokyo Brussels B.A. Tokyo Chicago Tokyo Brussels B.A.

UNION. Operacihn clnr crea rl cw~,junto unihn de (Ins rrlacinnrh.

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 * F R O M VEND-SUBORDINADO)
INTERSECT

(SELECT * F R O M VEND-JEFE)

SELECT * F R O M (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 * F R O M VEND-SUBORDINADO) INTERSECT ALL (SELECT * F R O M 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 * F R O M VEND-JEFE)
EXCEPT

(SELECT * F R O M VEND-SUBORDINADO) El resultado se muestra en la Figura 7.7. Si se usa la sintaxis (SELECT * F R O M VEND-JEFE) EXCEPT ALL (SELECT * F R O M 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

ID- JEFE

OFICINA

%-COMISION 15

T e r r y Cardon

Chicago

IMPLEMENTACION RELACIONAL CON SQL

237

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 s cllw 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). y EXCEPT. La c:liusula El mismo mfoqne s r usa para 10s operadorrs U N I ~ N q u e son CORRESPONDING BY va a twntinuaci6n del oprraclor para indicar las colun~nas 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 )

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.

IMPLEMENTACION RELACIONAL CON SQL

239

JOIK USING.
Oprrac*iOnque rontbc.ta las rclaciones (wando las rolunlnas romunes designadas t i r w n iguales valores

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


NATURAL J O I N

= 'Fontanero' ) = '09110' )

(SELECT * FROM ASIGNACION WHERE FECHA-INICIO

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


NATURAL J O I N NATURAL J O I N

= 'Fontanero'

(SELECT * FROM ASIGNACION WHERE FECHA-INICIO

= '09110' )

(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 s en 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;~ntlo nna 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, F E C H A N 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 (*om) valor d e d i c . 1 ~ cwllimna ri1 la fila a in+tartar. S~ip~ngamo~ sr (~ ha u creatlo c m a n w v a relacihn d r n o n d ~ r r EDIF'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 c k las roluninas en las filas.

UPDATE. Las operat*ionesUPDL$TE(actualizar) se aplicw~ a tod:~ 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~itir la cliusula WHERE dr la instracc~ihn LPDATE 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~latiotial de nsar una sinq)lr instruc*ciOnp a r a 1na11il)ularcwnjniitos tlt, filah rll los mC.todo?itie manipnlati6n tlr 1111 1.rgi8tro-de-('adil-vez m a rrlarihn (vi un a v a n w s o l ~ r r 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~ionrs SOL 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 ~ c SQL ~ 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 ~ o COBOL, 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~lo de 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~ilaclor reconore la insti-ucciiln cle sciializati0n ! rerniplaza 6stas con llan~adas a 10s s u l ~ p r o g r a ~ n a del 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~pila el 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~oiiio nn arrlii\o. c ~ ~ (wntmiclo j o se p n r r a en tiempo de vjrcuci6n. Ol~sclrve cjue 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 ~dtcrior l)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 F R O M TRABAJADOR 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

especificacihn d c de consulta. Drl'iniciir~ una consnlta qur ir usa en una definiri6n cle vista. declaraci6n de cursor u otra instrucci6n.

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
M . Faraday M . Faraday C . Coulomb

ID-EDIFICIO 312 515 435 460

FECHA-INICIO 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-SUPVMAX-TAR I FA-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~nitaciones p a r a las cwiisultas sollrr vistas tlr grupos. Estas liiiiitacionrs son (Mdton y Sinion. 1993, 1). 196):
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 ~ista o tajh. 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.

1. La eliusula SELECT d e nnu t-onsulta sohrr una vista d e 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~lacioiial IJNlOh, 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~siila WHERE 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!utlolo a 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 y a 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~lrccih tlr jiistus. cualquirr usuario clue las a t w d a v r r i solamrntr rl rrsultado d r nna la ~ 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 d vista sit,mprr r s t a r i drfiiiida con rt:sprcto ol usuario atatnal tlrl sistrma, ruya itlrntidatl s r d a r a una lista de rstas \ist:rs juiir s t i r n la variahlr CURRENT-USEK. d c o n t i n m ~ i 6 n y Mrlton y Simon. to con una rxplitwi6n h r v r tIr sus funtiones ( v w Date y Darwrn, 199~1, 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)les por 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~ases crradas 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~icin a1 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.s y 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~uernas en 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 tXn cwmun 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*ioncs SOL 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 consul. Imjo detrrminadas restricciones, pnedrn tamta tlv SOL. Las vistas pueden consnltarse ! Libn 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 s visto (-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~nos siguientes:
a.

b.
c.

d.
e.

f.
g.

ratilogo ~)rol)ietario d 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~revementr 10s 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 s son 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?


se define un valor por defecto? iC11i1 iC6mo se ciefinv una clave externa? ~ C o m o 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 a lo que p c d e aparecer en d a una de las cliurulas siguientes d e SQL:


a.

h.
c.

d.
e.

f.
a. c. tl. e.

SELECT FROM WHERE GROUP BY IIAVING ORDERBY llNION EXCEPT NATURAL JOIN JOINUSING .JOIN ON

5. Deswiha ! a aceihn (I(. cada m a d r las operaciones:

h. INTERSECT

f.

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 ADMINISTRACION DE 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 -reui&n -consultu

HAVlIVG
USIaC: 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.
5.

t.

-suhconsultu -cl6usulu SELECT

w.

x.

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\ alkt ve~-tla(lt~ si o 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*ihn1nttbgr atla 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 Dest~ipri6n de 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 s en nna base d r ddt05 Siml~olos especinles 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


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

249

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 ( C A M O IN # , NOMB-CHOFER ) CIUDAD (NOMB-CIUDAD, POBLACION)

4. Corlsdtrrs sirrrples
a.
t..

cull cs el nonibrr clel c.lieutr 433:' b. iCuL1 es la cwdad destino drl eml)arquc~ #3244!
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~s de nibs cle 20 l i l ~ r a s . Lree una lista por ortlen alfahiticw dt. 10s c~lirntes con 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 p r o clue es menor (ic 10s $10 millonrs. anual clue excccic, los 55 n~illonrs, 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~lbres dta 10s t4entrs qrie h a n enpiado eml)artlnt~s a les rintlaclrs ell! o noml~rt. tc~mind run 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 d i e totios 10s clientrs que wan mmori-tas.

d.
e.

f.
,a.

11.
i.

j.

k.
1.

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~nos h 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~illones en 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 IC~ 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~ON DE BASES DE DATOS

6. S~ibconsultus
a. Intlicp~e las 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
1 : ' a. Para catla cliente, i(:uiil es el peso medio de 10s paquetes rnviados por 6

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 a es Los 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 Consultas simples Consultas de multiples tablas Funciones integradas o predefinidas GROUP BY Operaciones de modificacion de la base de datos lnsertar (Insert) Actualizar (Update) Borrar (Delete) PARADOX PARA W I N D O W S Definicion y entrada de datos

Manipulacion de datos Seleccionar atributos y filas Consultas conjuntivas y disyuntivas Calculos Enlazando tablas Lenguaje de aplicacion lnstrucciones condicionales lnstrucciones iterativas Resumen Preguntas de repaso Problemas y ejercicios Proyectos y cuestiones profesionales

254

DISENO Y ADMINIsTRACION DE BASES DE DATOS ''lrr, icbmo quieres trccbnjar con r l sisterno (lhoru qur stJ h a olludido Query-by-Exornpl~?" 4nnette Chung ~ s t u int~resndo en 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 o habici pensurlo qur un lenpuuje d e compitclcicii~fiwse tuit.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~stado utilizondo 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~uyoriu d 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~lquier tipo d e consultcts que creus qur rlo puedes resolvrr; p r o pienso que en cualquier caso en poco tiernpo potlrcis ~wlerte p o r tu cl~entci. "

uery-by-Exnrnple es una versi0n grifica del lenguajr~d e datos relacional SQL. P a r t i d a ~ ~ m e n t encaja 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 ~ ~ s relatives 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~plia variedatl 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~erramienta tie 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 d r l QBE, quz incluyr la drfiP-4RADOX coma una versi6n con la funcionalidad con~plrta nicihn 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~saduvirw como 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~npntdtloras cuj 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 r d 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 intrgralenp~aje grifico. Un Irngna6r . otras por el rstilo. T a m h i h hay i r r a s tlondr 10s (last agrupat-ihn. t~onsultamulti-t;ll)las ! 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 r s r srfialarin las siniilitntlrs J- difrrrncias picti~rieas para rrsolvrr u~Ls iniportantrs. 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 ~lsantlo las 6rdrnrs dc definicihn tlr SOL, no s r analizarh la tlrfinicii~ntlr tlatos cn QHE.

Consultas simples
:\I igual qutLtaon SQI,. prinit:ro st. estnciiarin las consultas sinrplrs qucBafectan a una sola tlc datos. tahla d r la I ~ a s r Como lenguajr grifico. QBE tlcbe prol~orcionar medios 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 o tie 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 o travks 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 ?

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.

La soluci6n en QBE aparrcr r n la Figura 8.3. Se ha puesto una "P" clrl~ajo tle 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
1235 1412 2920 3231 1520 1311 3001

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

TAR I FA-HR
12,50 13,75 10,00 17,40 11,75 15,50 8,20

OFICIO Electricista Fontanero Albariil Carpintero Fontanero Electricita Carpintero

ID-SUPV
1311 1520 2920 3231 1520 1311 3231

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 EDIFICIO 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

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

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

CATEGOR I A 2 1 1 1 1 3

TRABAJADOR

I ID-TRABAJADOR I NOMB-TRABAJADOR
I
I

ITARIFA-HR

lOFICIO

I
I

ID-SUPV

EDIFICIO

I
I

ID-EDIFICIO

I DIR-EDIFICIO
I

(TIPO

(
I

NIVEL-CALIDAD

1 CATEGORIA
I

IMPLEMENTACION RELACIONAL C O N LENGUAJESDE CONSULTA GRAFICOS

257

TRABAJADOR

I ID-TRABAJADOR I NOMB-TRABAJADOR ITARIFA-HR


P.

IOFICIO I ID-SUPV I Fontanero 1

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


(It.

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~)ino es 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.
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 312 210 1 11 DIRECCION-EDIFICIO 123 Elm 1011 B i c h 1 2 1 3 Aspen TIPO Of i c i n a Of i c i n a Of i c i n a NIVEL-CALIDAD 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

ID-EDIFICIO

I DIR-EDIFICIO

ITIPO

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 n lTna 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~olnmnn tle 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 una talda. En este caso se definen 10s elrmcntos cjtwiplos no eipc*vificoell una t h m n a (11%

TRABAJADOR

I ID-TRABAJADOR I NOMB-TRABAJADOR
-NT
-NT

ITARIFA-HR
-TH

~OFICIO

]ID-SUPV

I Electricista 1
140* -TH

T a r i f a semanal = '

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 1412 NOMB- TRABAJADOR C. Nerno TARIFA-HR 13,75 OFICIO Fontanero I D - SUPV 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.

ITARIFA-HR ~ O F I C I O

<10

I ID-SUPV

TRABAJADOR

I ID-TRABAJADOR I NOMB-TRABAJADOR ITARIFA-HR


/
> 12

I ID-SUPV 1 ~ontanerol
~OFICIO

IMPLEMENTACIONRELACIONAL C O N LENGUAJESDE CONSULTA GRAFICOS

259

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.

TARIFA-HR 12,50 13,75 17,40 11,75 15,50

OFICIO Electricista Fontanero Carpintero Fontanero Electricista

Faraday Nemo Mason Rickover Coulomb

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


ID- TRABAJADOR 2920 1520 NOMB TRABAJADOR
R . Garret H. R i c k o v e r

TARIFA-HR 10.00 11.75

OFICIO Albanil Fontanero

ID-SUPV 2920 1520

caja de condicicin. En QUE: es una caja en la cual se p w d c expresar ana rondicibn complcja dt. iina consulta.

P a r a r t w d \ r r rstr tipo clr w n s ~ i l t a sr 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 en la raja d e condici6n. condicihn, utilizando un 4ND 1)ooleano v ~ w n v r l a

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

ID-TRABAJADOR

NOMB-TRABAJADOR P. P.

TARIFA-HR P. > 12 P.

OFICIO P. P. Fontanero

ID-SUPV

TRABAJADOR P.

I ID-TRABAJADOR INOMB-TRABAJADORITARIFA-HR
-TH

~ O F I C I O

I ID-SUPV

CONDICIONES

-Th > = 10 AND-TH <

12

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~o ae eupresa una rtwnihn en QBE. Esto sigi~ifica clue un prrr seleccionatlo tit. f'ilas tle las dos talrlas debe tener 10s ~nisrnos vnlores para las dos respecti\-as columnas ((111las clue apa. . rcce el -IT). Sr ha escogido -11' como t.1 ele~twnto ejeiiq~lo.!a t p e es m a al~rekiatura adecuada 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~antalla el 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 el eleI ~ 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 o mento 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.

Faraday Nemo Garret Mason Rickover Coulomb Barrister

C. H. R. P. H. C. P.

Coulomb Rickover Garret Mason Rickover Coulomb Mason NOMB-TRABAJADOR


ID-EDIFICIO 435

TRABAJADOR
ASIGNACION

ID-TRABAJADOR -I T
ID-TRABAJADOR
-I

ITARIFA-HR

~OFICIO

]ID-SUPV

I
(

P.

FECHA INICIO

N[~M-DIAS

TRABAJADOR TRABAJADOR

ID-TRABAJADOR ID-TRABAJADOR
-I

NOMB-TRABAJADOR
-NT

TARIFA-HR TARIFA-HR

OFICIO OFICIO

ID-SUPV
-I

NOMB-TRABAJADOR
-NS

ID-SUPV

~MPLEMENTACION RELACIONAL C O N LENGUAJES DE CONSULTA GRAFICOS

26 1

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 h a w r dt, niodo n ~ i firil 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~ueila grifira n s r h a w olnio ron t3sttx c,jrniplo. a t p i ron QBE. RI 1)otlt.r ilr la l ~ r o g ~ a n i a t i b
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 u tlr '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~ltwionar a at~uellos traI ~ 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 p r i l c20nq)ararva1ori.s r n tlos c~oluninas difrrt1ntc.s. Kn SQL i.s rl ilniro nirdio disl~onil)lr txstr t i p c k 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.

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 y para cwntar rl nilmrro total d r rlrmrntos en r l l a l o r promrtlio o rl total tlr una rol~unna.
TRABAJADOR

*4VG, M 41.MIN. CNT.

I ID-TRABAJADOR I NOMB-TRABAJADOR ITARIFA-HR


-I T
P. FECHA I N I C I O

~ O C F O I

/ID-SUPV

ASIGNACION

I ID-TRABAJADOR I I D - E D I F I C I O I
-I

NUM-DIAS

-I E

ASIGNACION

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

ICATEGORIA

TRABAJADOR

ID-TRABAJADOR

NOMB-TRABAJADOR
-NT

TARIFA-HR
-T T

OFICIO

ID-SUPV

P.

-I S
OFICIO ID-SUPV

TRABAJADOR

1 ID-TRABAJADOR
-I S

NOMB-TRABAJADOR

TARIFA-HR
-T S

CONDICIONES

-T T > -TS

DISENO Y 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 s que 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
TH

~OFICIO

I D-SUPV

ASIGNACION

I ID-TRABAJADOR I I D - E D I F I C I O /
435

FECHA I N I C I O

NUM-DIAS
-ND

P.

AVG. -ND

TRABAJADOR

ID-TRABAJADOR
-I T ID-TRABAJADOR -I

NOMB-TRABAJADOR ID-EDIFICIO

ITARIFA-HR

~OFICIO

ID-SUPV

ASIGNACION

FECHA I N I C I O

1 Fontanero I I NUM-DIAS
-ND

312

P.

SUM. -ND

"

' hrrviatura d t c o w t (cantidad) (N. drl T.).


.' Abrtviatura d t u,niqw (ilnico) (N. del T.).

Abrrviatura dt cluerage (pronrtdio) (N. del T.).

IMPLEMENTAcIoN RELACIONAL C O N LENGUAJES DE CONSULTA GRAFICOS


TRABAJADOR

263
ITARIFA-HR

I ID-TRABAJADOR I NOMB-TRABAJADOR I CNT.


UNQ-OF

~OFICIO

OF

IID-SUPV I

Resultado:

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
I

ITARIFA-HR
-TH

~OFICIO

(ID-SUPV

EDIFICIO

I
I

ID-EDIFICIO

I
I

DIR-EDIFICIO

ITIPO

I
I

NIVEL-CALIDAD

1 CATEGORIA
I

-I D
CNT. -1E

I
ID-SUPV
G. -IS

TRABAJADOR

ID-TRABAJADOR

NOMB-TRABAJADOR ~TARIFA-HR

OFICIO

-TH
P.

-S I

MAX. -TH

DISENO Y 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.
-T

NIVEL-CALIDAD

CATEGORIA

-CL

P.

-T

AVG. -CL

TRABAJADOR

I ID-TRABAJADOR

[NOMB~TRABAJADOR

ITARIFA-HR
-TH

~OFICIO

IID-SUPV I G. - I S

-I S

MAX. -TH

IMPLEMENTACION RELACIONAL CON LENGUAJESDE CONSULTA GRAFICOS

265

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 TRABAJADOR ID-TRABAJADOR ID-TRABAJADOR NOMB-TRABAJADOR NOMB-TRABAJADOR P . -NT TARIFA-HR
-TH I TARIFA-HR

OFICIO OFICIO

ID-SUPV ID-SUPV

-TH2

TRABAJADOR

I ID-TRABAJADOR

NOMB-TRABAJADOR NOMB-TRABAJADOR P . -NT

TARIFA-HR
-TH 1

OFICIO OFICIO

ID-SUPV

TARIFA-HR
-TH2

G. - I S ID-SUPV
-I

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 485

FECHA I N I C I O 13/05

NUM-DIAS

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 a 2. 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 EDIFICI02 ID-EDIFICIO DIR-EDIFICIO TIP0 ITIPO I

NIVEL-CALIDAD

CATEGORIA 2

ID-EDIFICIO
E -I

I E

T 1 CL N~VEL-CAL IDAD

I.

-T

-CL

TRABAJADOR

ID-TRABAJADOR

NOMB-TRABAJADOR

ITARIFA-HR
-T

I I

TARIFA-HR U. - T * 1 . 0 5

I I

OFICIO

ID-SUPV 1520

TRABAJADOR

I ID-TRABAJADOR I NOMB-TRABAJADOR I TARIFA-HR

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~ikn puerlrn 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~ponga~n (p oe ~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~ON DE BASES DE DATOS

--

-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, CANTIDAD) COSTO)

SALARIO)

na tlr nt~inln-ta FicM 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 ('laKey (rlave) y preiionar r n a l q n i c ~ t r d a para intlil r , c l t ~ l ~ t wm o in c r n o s p u . ; ~ la c.olnmn;~ r 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 ~ dv l 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 o se pulba el l ~ o t 6 n Save 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).

F~eld Roster d e lF l-r,

Name

Table propert~esV a l ~ d ~ Checks ty

1 Numemp. 2 Nombemp.

1 +I

3 Nurndpto.
3 Numproy. 5 Salar~o

2. Minimum -

3. Maximum I

1 Requ~reH F~eld I

4. Default

5. Picture R~ght-cl~ck or press Spacebar to choose a f ~ e l d type

r j p z q

Iables EMPLOYS DB PROJECT DB

New Table Name -

1 PERSONAL
Opt~ons D~splay Table -

path -

E l WORK

D p e <Paradox>

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 recurcl sos ciel m e ~ (esto ~ i rs, usando las opcionrs tlcl menu File I Open I Tuble o ~ d s a n c i o 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~<mdolas siguientes opciones de menu: File I New I Query. Puesto que el lenguaje d r c-onsulta es visual a la manera de QBE, el usuario no tiene qur mrmorizar 6rdenes complejas tle consulta. Todo lo clue se necesita hacer es pasar a la ventana d r consulta. Se puede cy~ecificar las tahlas a s r r c:onsultadas y 10s ejemplos tlr 10s datos requeridos.

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~rr de 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 el de consulta, lo que hay qur hacer rs simplrmente trclear "as"' seguitlo del nombrr (*on 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~N RELACIONAL C O N LENGUAJESDE CONSULTA GRAFICOS

(a) La consulta

(b) La respuesta

Nurnernp

omemp

Name

DISENO Y 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. A 1 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)rei clr 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~jcmplo similar. 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

RELACIONAL C O N LENGUAJES DE CONSULTA GRAFICOS

273

ting. El "4"(lr~iota 10s a t r i l ~ u t o s t a ~ l ? ~\,aIt)r,-h os bt, tlrsra ~ I I I ~ ) I ~ I I I ~ O I .l. ) r i ~ ~ ~ i v t.1 ~ I)ot011 ~tlo Join Ta1)lw (wuni011 tlr t : ~ l ~ l i ~ tlr s) 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 rn ~ 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 ~WIIIO varial)lit. ~lltdiantt. la 1.11itI hr r n l a z a ~ las ~ taljla? (lo 111iwo11otIria l ~ i ~ l ~ r nsatlo r s t ~ .'x*' I ) *'!"*). Sin t w ~ l ~ a ~ -o gIo ~.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*'. 1 h rstv 1 1 1 0 t h . h i S I I ~ O I I ~ I I I O tS p r ('1 11il111rro tIt:l i t I t ~ l ~ i ~ r t ; tlr ~ ~~ ~~ ~~ t* a~ r l~ ito ~ r st 300. i r ~ g1.l1tollc.r~ rl b n i w "KC01" 1)t*r111isil)lt' ('11 Dl'TOS r s :<OO.C ~ ~ a n t sts l ot ~ n c ~ ~ ~ r 1111 n trr ~ i~ ~ ~ ~ ~ asotiatlo lratlo

lista ( I t * tot11)lrloi v t ~ ~ ~ t l t v l to [ lr l tt L~ 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 s PRP#\IYrES!I'lIYrE5 (.still t*nlazatli~b 11orla \ ~ a r i a l ~tlr lr ".k:CO.)'*. Sitwl)rt*( 1 1 1 s(* ~ tbntwr~~t IIII;I r a t ' o r r t * ~ ~ ) o ~ ~ ('11 ( l rS17R1 ~ ~ t - I'4KTE i;~ sts r n l ; ~ 1101nl)rt'
1lllil

PRPARTES DB-Numproy-Numparte-Cdntdad

+ 1

il1b EI.41 l b EODi lb

DISENOY ADMINISTRACI~N DE 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 <condition> 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
=

" D a t o s d e l c l i e n t e " : <lists d e o r d e n e s - A> " T r a n s a c c i o n e s " : <lists d e o r d e n e s - B>

OTHERWISE : ENDSWITCH

<lists de o r d e 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 <condition> < 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 D EB A S E SD E DATOS

CLIENTE EMBARQUE

(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 ( C A M O IN # , NOMB-CONDUCTOR) CIUDAD (NOMRCIUDAD, POBLACION)

DESTINO)

i.(:u&lt.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~tlos 10s 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<j la r m t a prom(& mrnsnal (I(, lo? clirntvs t p Y t i r r ~ w r~ n~ ta g. 1n(Iiq11(~ ~ S-5 millones, lwro ~ I rs W nirnor tlr 10s $10 inillonrs. a n d ( I I W r w r d ( 10s

f.

I .

$1 mill6nY
tl. 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 s con 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

\ qnb drstinos h a n enviado rmlrarqnrs las compafiiah ron renta nnnal menor dr

IMPLEMENTACION RELACIONAL C O N LENGUAJESDE CONSULTA G ~ F I C O S

2 77

f.

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 mhs tle 1 mill611 dc rcwta a n d s o l w 10s $20 tnillones a riudadcs con pohlacibn d t ~ 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?
d. ;,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:'

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 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 Instruccion de bloque: BEGIN ... E N D Instruccion condicional IF...ELSE

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 Oracle Desarrollo de aplicaciones cliente El enfoque de Power Builder Uso de Power Builder Construir una aplicacion Crear Datawindows Crear Windows Resumen Preguntas de repaso Problemas y ejercicios Proyectos y cuestiones profesionales

SISTEMAS DE BASES DE DATOS CLIENTEISERVIDOR

279

8"

Pero. dqud cs eaactainente clier~telservidor:~ Susan Bro(ldhent y Surtfbrd Jf(i11on estcin discutiendo /us posibilidades d e ccimbicir sus uplieti(~iones d 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~(1 de gestibia d~ ~ U S P d e (lutosj~ncioiwrci en 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~s lus 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? mientrcls que lrrs I I I ( ; ~ I L ~ I I U S "En el ser~~idorfiincioimrri un SGHD potente y declicc~do, clientes tendrcin cuds unu SIL propin interf& pr@a de usuario ( G U I ) p a r a dnrle mcis rle I L . a~ la presentucibn de 10s tlutos, 10s informes. etc. Ademcis, n u e s t r ~ poder y fi~cilidud equip0 de sisteiim tcwdria herran~ierrtns potei~tes p 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~d de f i i n e i o ~ ~ en ~s iauestrns computadorus que l r ~ s clueJ teneinos clhoro, lo (pie c o m p ~ n s u r i a nuestra inv~rsicin d e c(lpit~1." "Yu esto me p r e c e interesaiate. Vr~nlos u 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 o se arnpliari el rstudio, se ilustrarin las filncionrs que estan disl~onihles en 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~io rsa 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~ias d 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~nlmtacloras clientes 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

tbrmino

rn

inglbs

Graphicc~l Gsrr Int~rficcr:yor srr siglas chlahlrcidas. sr. han tlrjado cn

d ~ T.). l

DISENOY ADMINISTRAC~ON DE BASES DE DATOS

Iilterfaz Grjfica de I'suario (GIJI). Pantallas y f ~ ~ n t i o nt rpst , 1)rintlan inedios grifitws 1111 ttsuario para ~ I I C final awetla a tin sisttm~a tle 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.hos t.1it.ntt.s. Los st.rricios Pt)r otro lado. 10s sistemas d e bases tlr datos snelen her de 10s s t m i t i o s inis fre(~uentes. 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 10s datos 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 r 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 n o 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 s d 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~ltitua p 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*ontseptos qut- 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 tieen un n r mnchos m i s ret*nrsosclue los que ~ ) o d r i n o ~ l ( ~ s c ~en rih s6lo i r tin ca1)itulo. o int~luso 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 s e r i aritocontenida y t p e sistemas o de otros similares. Drlmnos notar clue la p r e s r n t a c i i ) ~ 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 n interfaces 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~ws avanzadas 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 tiene alguna capacidad significativa q u r el ocasiones se v e r i c u i n d o uno de 10s siste~nas 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 s individnales

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 sisttby, fecha-hora ( d a t ~ t t r i w ) Ademis. . ma. tales como t*arJcter (charrrrter),rntero ( i i r t ~ g e r ) 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~rr clur st. utilizari dondt. q u i r r a q u r s r tlt4ir1an c~oluiimasclur datos. 1,a raja Olcner ( l ~ r o p i r t a r i oa~ttomitic*aitic~iitt~ ) c~ontriidri rl ID tcngan rstr t i p (11% 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 d r r rstr tilm drfinido por (4 usuario sra irttcycr IMII' (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 o algiln otro t i p soportatlo j ~ o r r 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 e tlr 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 ~ ~ IW l owinpos con rstr t i p (lr datos. S i quisibramos ~wrinitir nulos. t t d r i a m o s q u r iiidicarlo r n rsta raja. prro como no cjucsrrii~os la 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 i la raja tlurrenlos ningim valor p o r drfrc-to para este tipo de tlatos. poi- tanto p a s a n ~ f a 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 Properc p r rl valor d r l paranietro @id del~cx ties (propirdadt,s) en la Figura 9.3. I,a regla rstal~lecr 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 -

Tools -

M a n a" ae -

Obiect ,

Window -

Helo

C ~ r e n Connections: t

SQL-SERVER

I?

Current Database:

john-doe

lohn-doe

File

Edit

View

Tools

Microsoft SQL Object Manager Manaae Obiect Window Helo

1-1:

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

Propert~es -

1 Segments

default

nornb-trabaj ador char

(SQLtype] 12 money ('5U L type)

.. ..

. . .. .. .

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.
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

valor por d ~ f e c t o .Un \ alor qne qe entra automht~camente por el iistema cuando el usuario lo omita.

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 rxplicitase inti-odurirh el \ alor por d(.fccto. P o r tanto. si scs 11ouc~ un nientc 1111 valor. E n su l r ~ g a r 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~rlls twancio 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~cige I)+rrlt.s (grstionar alorr\ por drfecto). tliic 1'5 vi~ualinriltr itlin41% la nlisma manera. 41 introtlucir ticx a la caja Ilui~crpeRules (Figura 9.4) ! t r a l ~ a j a a hora : CREATE DEFAULT oficio-df A S 'Carpintero'

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~jilrrlt para 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') A S @oficio i n ( ' E l e c t r i c i s t a ' , 'Fontanero',

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 a ofirio. , L;I iiltinia colun~na tlv 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 o en , r i t e cxso tanl1,iC.n queremos rspecifiear un valor por drfecto. S r tleja c.ou~o ejrrcicio 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). 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

restric.ri611. 1-na rcslrirri6n t k 10s valores posihks tlc t u ~ l a y s alrilmtos en una basr cle datos.

SISTEMAS DE BASES DE DATOS CLIENTEISERVIDOR

287

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~n inttwto 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. nt1111.a 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 v pnt.111~ ser nolo. Esta ~-rstrit.t.ihn sr tltmorii~~ restricri6n ~a tle c o l u ~ n n a portlur SP t ~ \ t a l ) l r t ~ ' t80nlo1)artr tit. la t l e l ~ n i c ~ h tle n una t-olnmna. 411ora tlelinanios la c.la\r l)ri~naria tlr la tahla asipnarihn. E-ta c l a \ r consiite tbn(lotlrfinir conio una r?.twlunmas. itl-tral);~jatlo~e ~tl-tvlil'itio. > por lo tanto no st. p ~ l r d c tr~rrihn tlr 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 r tlr 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 nna rcstricribn tlr rolurnna. Esta t's aplicd)lr a una sola columna y (pic por l o t a n t o no tXs 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~natlrl~rn tlrfinirsr 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 tlr rlave rrstriccioncs tlr tahla. si son clavrs rxternas tnu1tic:olnmnas. P a r a ver 1111 t~jeniplo 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 a 1;i tabla asipt n l h tlr asignarihn, rntoncrs el SGHD n o lwrniitiri (pie sr aiiada esta t111)la nacicin. , 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 f (:ha tupla r n tra1)ajaclor. ) i h o stbconow romr la opcicin ON D E L E I E Iiawn referencia a c RESTRICT (restric~i6n a1 Iwrrar). y se aplica autorniticamentr a n ~ e n o s quc s r especifiON DELETE CASCADE ( h o r r a r cn casraq w o t r a c o s a . Se podritr t.spr(ificar tan~l)iin da). Cnando rsta rfwtiva rsta opcihn, las tnplas r n asignacicin s r l ~ r r a ~ i a automhtic*;~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 (~'n110 s 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~mganios qne 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 cualquirra. externa recursiva y definir otra (*lave 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 )

id-edificio)

ernpleado (id-emp,

nomb-emp,

dir-ernp,

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 n CIIECK I I I I ~ Y ~ Isc'r . I~arte (It, la tldi11ici0ntlv m a c~ol~nnno o 1~1rrtlv scbrllna 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. a 1115stlv tina cwlumna. c%lla 1111rtlt. s c y ~ i I'orwantlo r partc*I I V la (lc411irii111 11rI I I M rdrre~wia 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 ?;~)la~wu a tla ( ' ( Y J ~ I I I I I I ~ ;I II P !;I (.11;11 es 11arteIII, la definicii~n. Sin e i n ~ ~ a r g tienr o . 1n6i s~'nti(lo rrstri1'1i0il CHF:Cli c 1 1 i c ~st3refiera ;I lnhs de lina ~ ~ I I I I I ~('111110 I ~ I . una ~.rhll.ic.ciOn clt'cinir I I I ~ B (11, ta1)lu. !a clue ;st:( sta a1)lic.a lnis 1)ic.n ;I la t u l h cao~no 1111 toclo clllr a una sola cd11111na tic. la ttil~la. i:libXI< ~ I I I ( ~ al)liv;lrse ~ ~ I I ta~~d)ii. ;I n ulla sola c d u n n ~ a .I)(* (.sta La.5 ~wtric~ciont..: 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 ' , 'Fontanero,

CHECK ( o f i c i o I N ( ' E l e c t r i c i s t a ' , 'Albafiil')

'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 o cp~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 (descripc~ones~de~colurnna restricciones-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 ~ a misnia rrlacii~n no 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~entr con 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 r tle 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

datos

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

SISTEMAS DE BASES DE DATOS CLIENTEISERVIDOR

293

BEGIN ... END. Las instrncciorirs twntlitional (IF) c itet-ativa Rloquc- cle i~istrnccionrs tle rlna insti-nctiGn sinil~le o dtl IIII I~loque tle 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 a sigirientt,:
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~uci611 Couclicional IF sigr~iente:

... ELSE.

La iustrucci611 IF

t.11

SQI. S t m e r titvie la sinta\i*

I F <expresion c o n d i c l o n a l >

iustrucci611 IF. l ' n a i115trucriOuI-LI! a t~,it~v~~ciOn 111~11(*n(Ie la \c.rat*itlatltlc m a t~ontlic~ihn.

<bloque de i n s t r u c c i o n e s >
[ ELSE

<bloque de i n s t r u c c i o n e s > ]

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 r tllrr contic~nerlna c-onsulta Illw calt.ula la tarifa salarial niedia tle lo. \ ronq,ara t.1 resultatlo tlr la t~onsulta con b10.00. La tlifrrmt*ia significatral~ajatlores tiva tXntreesta c-ontlicihn ! la qu(. se rlia nornialuiente t.11 nrla instrueti611 IF cs clue tXn sol~i-(a la rrlati6n traha,jador c o r n p l ~ t c 1mr.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 a siniplrinrnte 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~trncielitlatl tlel 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 i intlividrlale- 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 tle c d u m n a s inclnir cwnstantes. variables locales y su1)consultas. Puede inclnir n o ~ n l ) r r 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 a cpw se 1111rtle usar m i s de nna instrnc-cibn select el1 se ( p i w e inc*rem.ntarla tarifa salarial una (mica r'ipresiOn condicional. Supongamos I ~ I C por horas dr 10s fontanrros si s n ~ n e d i a a(*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 r clue 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~s I F se pneden anidar denti-I)tle otras instrucrlones IF. signientlo a1 IF o a1 ELSE. El niiine~v d r iii\t~l(.s aiiidatlos 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~s como 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 <expreslon conditional>

<bloque de i n s t r u c c i o n e s >

I A instruccihn WHILE p r o ~ o la t ~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) BEGIN

from trabajador where oficio = 'Fontanero') < 2 0 , 0 0


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

DISENO Y 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~s romanos las instrncciola tarila salantSsprincipalrs tlr rsttbt.jrnlplo. Estr I ~ w l W r - H I I X sera rjrcutado ~ n i r n t r a s ~ c.st6 por ticl~ajo tlr 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~mativo s r rjrtwta rl CONTINCE. lo clue nurvo a 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 ~ (I). vrz cjnr In ~netlia salarial h a p altxnzatlo 10s $20.00 stbr j r c u t ; ~ la insla i ~ i s t r n c ~ i h n Ui~a trut.cihn (11~). Si 1;) tarifn salariul minin~ars mayor qucb $15,00 s r rjrtmta un RREllli no sr rslwc>ific*a c.11 rl rjc*~nplo). Si la tari11a"ntlolr r l w n t r o l a la instruc-ciOn (1.11 (la c-11a1 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 rr l~ nllt-vo 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 ~ ~d

x ariable local. lrna b a r ~ a l ~clefinitla lr 1);u.u usal t l e n t ~ ~ tlr c~ url lwo~~t~tli~n ~t~nto ! c~l~nitcr ~ar x~ alores 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~tlatos dt'1 sistrn~a o tlefinitlo ])or rl uiuario. se les asigna 1111 lalot- ~ n t d i a n t e instrnt*tionrsirlrct ? Y r 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 e l o c d s r d w l a r a hac~rntlo tjnr 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


END

* 1.1

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

@cant-tr 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

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]

output

s e l e c t @cant-tr

count ( * ) from t r a b a j a d o r

I,a ve~itaja t1r 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 s : tletir. el propranla true llama le pasa u n tipo de ofirto a1 proretiimirnto por nn of'ic.io. E 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 el a valor de salida y d e h indicar u n valor d e tipo tie tipo money (iiinero) para qne r t ~ c i l ~ ofitio para p s a r r o ~ u o parimetro d r entrada. El tlehe indivar a m l ~ o s parimetros en el rnismo o r t h en que fileron listados cua~itlo st- 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 r utilizar 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 i la 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.

SISTEMAS DE BASES DE DATOS CLlENTElSERVlDOR

299

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')n tlr 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 i el 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. Por 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~trrrninada so11i-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 m d~ 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 cLn la llase d r clatos qiw st. tleriva tlel ciil~ulo d r otras cwlumnas. Por r j r n q ~ l o si~ 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 r por 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 s c r usan 1,ara definir los tlisl~aratlows (trigger). es nrc~csario tlar 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 filas tle nna cwnsiste en las filas q n r han sido insertadas y eleleted r s t i vacia. Si sr l ~ o r r a n 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~serted esth formado por las nnrvas ~ r r s i o n e s tlv 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":
trabajador(id-trabajador,

id-supv,

nomb-trabajador, pago-acurnulado)

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 a tlr asignacihn. Sblo t r n d r e ~ n o s clue 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. ~COtno trabaja este tlisparador? Rrcubrdesr cine cualquirr artualizac:ibnl sea ilna y deleted. insrrcibn, un horrado o una actnalizatihn. aha& c r r o o m i s tuplas a ii~serted 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

SISTEMAS DE BASES DE DATOS CLIENTEISERVIDOR

301

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~finicihn de 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'a a la tabla asignacihn. La tc.1cw,r linc~ 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~Oxinla linra 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,~do o 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)ropidda d 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 o qu6 programa hace la actualizacih. Si r s t i drfii o h la tahla. No importa qu6 ~izuario nitlo 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 P o r otro lado. r n Orac-lv. tbitosaspertos r s t i n referencial y la unicidatl cte la rlave l~tiniaria. ronitruidoi dtmtro tlrl 1rng11djetle 11diiiicii)ii de ctatos. Esto 1.5. (w Orat& siniplmirnte se se garanderlatan clue cirrtos a t r i l n ~ t oion i da\t.i primarias o externai > aiitomhtic~aniente tiza 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. 111s tlispradorei ion herramientas esrnci;~lei 11ar.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 s priuiariai ! 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 C H E C h no puedrn inrluir consultas clue hapan rer~lhtlese taml)ic'.n clw las reitric*c*ionri 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


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~licaciones que 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 1 5 1funrionarin tlr forma aut6noma (stand-ulone). o cLnnna plataforma dientelservidor.

painter. Un subproprama interactive clue llrva a rabo un tipo ebpecifiro de funrionalidad neresaria para el desarrollo rompleto de una apliracicin.

',

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 ~ p r 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 tlrsa\orrrollo d r las aplicacionrs. Esto s r hacr cwn 10s ptrirltprs tlr IJo~rrBiriltlw. nialinc~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~ pillt~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. tlrltr. mos idrntifiriu los dates q u r se necrsita introtlucir. 10s q u r sv canil1iar5n. ! los datos qw tlrherin darst, t90rnosalida. Esta itlrntific*ac*ihn s 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)lrtar rl 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. La P o ~ e r con una l ~ a r r a de 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.

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~s d r la ma?oria tle loi \ ariatloi pcliilt~r\ t~nc twns~ loi itnotitu?rn lai c*apwitlatlt-s finwiona1t.i tit. PowrrBniltlrr. E n la Fignra 9.9 stbm u c ~ s t r m noi tlr loi 14 p c ~ i i l t ~ r s . 10s 1)otont.i tlc Powt~rBar rcy)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


asprt8twgrnrralri tlr m a aplicwihn. talri t.onio r l noml)rr tle la aplit.,~cihn.loi rl pro1)rogramas t p ~ a r hrrn t i t ~ r a n la aplicwihn (o -'scripts"). clue intlit~in t r n r r lugai- cnantlo ir initia o se t r r m i r ~ a la al)lit~at~iOn. twa~nirnto clue tlrl~r '&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~inter twnst~xye ol)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 para h intllt-ar (1116 D a t a 4 indoh ir uiarh en indow (rlrnwnto 2) ir n t ~ l ~ z a r 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 n concrl)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 lai t.arat~riitica5 d 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.

2.

3.
4.

5.

6.

7.
8. 9.

SISTEMAS DE BASES DE DATOS CLIENTEISERVIDOR

305

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.
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.

11. Library. ],a 1)il)ilotrc-acontrola la grsti0n cle las al)lic.aciont.s.

Construir una aplicaci6n

Trabajador

[id_trabajadorj INom-trabajadorl [Tarlfa_Hrl


1235 1311 1412 1520

lOficio1
Electricista Electricista Electricista Electricista 1311 1311 1311 1311

M. Faraday
C. Coulomb C. Nemo

$12.50 $15.50 $1 3,75 $11,75

H. Rickover

Asignacion del trabajador


/[id-trabajador
I

I [

[fecha-inicio

)(

Inforrnacion edificio

DISENO Y ADMINISTRACION DE BASES DE DATOS

TRABAJADOR I D TRABAJADOR
1235 1412 2920 3231 1520 131 1 3001

NOMB-TRABAJADOR M C R P H C J Faraday Nemo Garret Mason Rickover Coulomb Barrister

TAR1 FA-HR

OFICl0 Electricista Fontanero Albahil Carpintero Fontanero Electricista Carpintero

ID-SUPV
131 1 1520 2920 3231 1520 1311 3231

ID-TRABAJADOR

ID-EDIFICIO

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

NUM-DIAS
5 10 22 18 18 10 15 8 15 8 20 14 12 12
4

14 24 17 14

EDIFICIO ID-EDIFICIO
31 2 435 51 5 21 0 11 1 460

DIR-EDIFICIO
123 Elm 456 Maple 789 Oak 1011 B i r c h 1213 Aspen 1415 Beech

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

CATEGORIA
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~inter Applit.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~ajador clue 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"\icbncb d(. "Pouc.rBuiltler lil~rary"(Bi1)liotrt.a de PowerBuilder) y e i un sufijo eitindar en P ~ u c i - Bniltlt~r para cbitoifinri. PowcrB~iildciautoiniiticainente 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~odo para 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,~('tos l);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 o es 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)s tlesignar 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~le para la (11: UataWindows. Sin emlmrgo, las D a t a 1 indows para estv ejemplo st.riin t o h s c~aci6n simples cwnsult;is d e unti sola tallla, por tanto podemox selrc*c*ionar la 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 intlic.ar 121 y collrmnas. Pasalnos ahora a la raja Quick Select (Figura 9.15), dondr be d e l ~ e n 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~unnas tlr tral~ajador.I,uego scb S r indic*aAscending (ascrrrdirntc~) int1ic.a la ordtw rle ordenacihn y ~1 critrrio d r selec~i6n. 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 o d r l puintar DataWindow (Figure 9.16), que rontiene en la serci6n Detail (detalle) la inforn~arihn q u r hemos drfinido. 0l)sbrvesr q ~ el e 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@

nomb-tr,

' tarifa-hr

- -

oficio-df

idlsupu

pwvieu- ( ristrr r ~ i 1 Ir I ~ I I I I~ ' )t~rmi al t rc[ne tl~.\a~m,lla la ul)lic.acii,n \ ( , I . rhmo a p i ~ w e r ' la i IhtaWntlo~ cwuntlo w IIonga en una wntana.

potlria poner el total y oira inf'ormaciOn cm la s t ~ c i 6 n Summary ) el u i i m ( ~ o (11- pigiu;~! otras informaciones textualvs r n la secci6n Footer. Potlrmos usar el ~ w ~ u r sP t 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);~nlalla autcrior. 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 a DataWintlow. 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

Hela

I @/

H- F a r a d a y

12.5% 15.5% 13-75 11.75

Electricista Electrlcista Fontanero Fontanero

1311 1311 152% 152%

1311 1412 152%

C.

Coulomb

~.nemo

H. R i c k o u e r

tlc~l)rn~ 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 ly a la s asignarihn d r l tra1)ajador srlccrionatlo. Esto s r logra poniendo en la cliusula W h r r r una varial~lr q 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~onstriiir consultas 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

:ar-id-edificio

Crear Windows

SISTEMAS DE BASES DE DATOS CLIENTEISERVIDOR

tlle -

td11

Controls

IJes~gn Declare Uptlons Window

Help

Menu l I J a l a ~ n d l Struct

Prefs

Help

~ a t a b a s e l Query

Func

L~brary Uner Obi

Run

i Debug

Iiiada~nop s rin~ero cl l ~ o t h n La . PaintrrBar (harra tlv painters) cpw se ~ ~ ~ u e sen t r In a tipos cle control cine se p ~ ~ r c l v poner n en Fignra 0. LO mut,stra 10s hotones tlc 10s tlifert~ntes la \cntana. Si se 1111lsa en rl I ~ o t h n C ~ n d B t l de l la PninterBar. luero rno\einos el puntero r1 i1 1)ot;)n ('011 hacia la escpiina sulwrior clrret*liade la caja y vol\t'n~osa 1)nIsar, esto p t ~ r ~ t l11 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 n t~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 s aiiatlitlo el priinrr cbontrol Data\lCintlow (Figin-a 9.20). Los otros dos DataWindow se aiiaden d r la misn~ri manera. 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
tlle tdlt Lantrals

. I .

. I 1

. I

.t .
I

Ueslan

Ueclare

Uotlons

Wlndaw

Helo

F'rem~erGonstruct~nnWorkers

A Worker's Assignments
[id-trabajador

lfecha-inicia

1 -

Building Information

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\(.on trvs taldas: trahajador, ;rsignati6n y etlif'icio. Estamos i~horii 1.11 c>ll ) l ~ ) t w o t~.wc.ionrs L In base tle datos. lista la.; tu1)la.s dr 10s t r a l w tlr c-wacihn dt, mia al)lit.at*ihnt111t' N T I V I I ~ I ~a hay " 1 rIIa. j lista I;ls tnl)I;ls clr las asignaciones II;IIYI c.1 tral~ajatlorclue se jatlorrs ( ~ I V 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 (11. ortlt.11 I)ara vtmtana clur twnttwga 111sc.onti-olrs 111. 10s t m s I)at;~\iinchw ? 1111 I ~ o t h n ])or la c r r r a r la aplit*aciOn. Para Ins al~ariencias rxtrrnas hernos I w h o toclo 10 n w c w ~ i o aplicwih. Pcro sr ha ol\iclatlo illgc). Trnrmos totlas las ~)it.zas i i t ~ r s a r i a s la : I)asr tlr clutos. In aplicacih. los 1)atoW-indows. y la vrntana (*on 10s 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 s a ~ ~ r o p i a d~ os m - rstar a srgnros de clur las rosas van a orurrir t80rrt.t.taInrntt. \- rn rj tnomrnto ~ ) r t ~ c i s o . ? c8oiiiL)rsgrac.iadamvntr, rl lrngnajr dt. ,srript tlr PowrrBuiltlrr rs I~astanir a~nl)lio ~)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 nos tai-(.as 1);u-a las cwalrs sr d r h n csc.~il)ir scripts. 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-r un 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 t>vrnto:el evend r rstr srript sera ahrir la vrntana tlr la aplicari6n. Esto dispai-a 1111 n u c ~ o to 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 e tlrsplazarsr 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. q u r lhgicatnrnte tirnrn lugar rn n u c ~ Veamos ahora el prorrsamirnto y 10s c~ventos 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 la vrntana 1uic.d (\-tar). Abrir la vrntana inirial 4.3 4.n si n~ismo 1 1 1 1 a romnnicarse y al~rit-h rvrnto para el que ha) q u r rsc*ril)irnn script. (\-tav) c1uc.i-rEbcmto 2: Evento ahrir vrntana. Cuantlo s r ahre la ventana i n ~ r i a l mos 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 (lntB tien? (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 ~cc r li i prt ~ . 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)lrgatlas tw 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~a irsign;~tiOn lir UataWindow. Esto dispai-ir 1111rv(*iito11irrir1'1 I I I I P nil .script t l r l ~ r r i rrtw1wrar 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. 5: 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 11s11ario l)uc~lt* finnK~cmto 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~ it nIl ;o I ~ itlea5 i ~ ~ t w i a t l a I ,s ~ B I 10I 4.tvnlas tlatos c~lit~ntc~/wl.\ itlor I ~ I I I I '~ I I ~ ~i I n~ t rIcH ~ t l ~ ~ t ~1.n i t l10.; a s 11rim1w1c c,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.litwtt~/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 st~~.\-itlt~ Il ~w l.i~~tlan ht.r.\-irios tlt~ tlr nrios til)os ;I ot~.o> t~o~l~l~~ltatl c.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* WiI Y na itltwi 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 ~ ~ t I 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 ,e t~ 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~iO11 I;! 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~+ ~~~III~;I t~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 ~ . ~.c~htrit.c.ic~~lt's 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 ~ ~! as 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 ~ IA iS o~ r~ t~ t~ st h~ . 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 ~ ~ t I I> s t ; ~1.11 ~ , lit5 ~ ~ ~ I I I I ~ k~t a Is ~ ~I Is ~. I ~ Y \i~ltlivar (*II hi h t - l ~ t - ~ w ~ Ii ~ t tI ,I~ II ~. ~ ~ . (1,B . la 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 rimar arias ( I t%-itc,rnas tlv un;l t ~ o l ~ l r n n oa~ l ~ i l l t i ~ ~ l v - c ~ o l ~ ~ tallla. b;llas t a n ~ l ~ i ; n tlt4'int.n t*l;~\t.s SIT ~~ s I I I I14 ~ ItI ~ o n t ~ t t ~ lv~r~ ed to ti(,n a . POI.i11tin111- ~ . t ~ s t ~ . i t * tp ~w io t l~t l~t n ~ ~ n l i s p ~ n t ~ a lI tI ~ riOn (:III<(:I\. I I I I V int1ic.a una wgla tlutbtl(*111. t~uml)lir ratla t11l)la. IY ~s. 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~ 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~'I I~ l~arinlt'tros (It' vntratla !~ dt, salitla. La c.ontlitii111I I I I I ' 5'' IISI t.11 tlin~itwtos ~ ~ I I I I ~ ~ I . ( I.YII I II~IIS las instrnc-t-ionc~.s I 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 o clue r e s son . tle tlatos ! tlut. se t ~ j w ~ ~tnatla t a n vtXzI I I I ~ ' l r u p r a n t a s twrito. tLn1'1 Itwgnaje tle 1nmipnlac~i6n c ~ t ~ r ~ 1111 rrtti1111 ( s . s l 1 t ~ 4 h tle I-arnl~io (i~lsertihn. h o r r a d o o ; ~ t ~ t ~ ~ ; ~ l i z cw ;~c n~ ni ah~xblatihn ~i) rsl~-t.iGru. Ehtos 11v1.mitenel c ~ ~ t m p l i m i t ~ c n~ to ntralizado dt. n n a n ~ l ~ l r io a u p tltb t i l ~ ~ tlv . tltx i m p - t a n t r s valoi-1,s t l t ~ i v a t l o s . wglas tlc nrgot.ioh ! rl c ~ i l t d o El t l t ~ s i ~ ~ ~tlr ~ x la3 ~ l la o~ ~ l i t ~ a c i o dt* n t ~10s s sistc.mas t~licmtt~s I ~ ~ ~ tt ~ rw t rl ~ Ingar ~ n en Iln - rc~~ ~ ~ a l ~ l t ~tau 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 I santlo Po\wrBniltlt~r cwmo elrnll~lo rstrltlianlos la tIrSinic.ihn tlr a ~ ~ l i t ~ n t i o n D ts a .t a F i n t l o ~ ~ s tIr s 1as c~ons~iltas. St' t~stlidiarorl1i1h clue defintm twnsliltas y la 11resent;lc.iOn tlr 111sr e s ~ ~ l t a t l o \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 tit. tb\t.ntos 1111t' 11ntdr ~ W O V OrI I ~r ~ a Ir . ~are io n nna ventana ! 1 1 i ~ st. n drsc-ril)ieron los t i l ~ o s 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.
r.

I n t w f a z Grafira tle Usuario (IGLT. e n inglbs G U I ) valor p o r tlefwto

1). regla

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 ~ ~ en a 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~s d1.1 1t.nguajv dv fllijo tit, control.

X IIILE del l e n p a ;,Eli c p b f'orrna difieren l'l~ntlan~entalt~~ente lai instruc*rionesIF 5 I je tle fl11,jotle twntrol de las instrut*t~iones rt,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 nivel-calidad categoria aslgnacion i d - t r a b a j ador id-ediflclo fecha-inicio num-dias

tlpo-ld c h a r a c t e r 12 characetr 9 lnteger integer

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~ -s c. ~ 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

PAGADOCON

PRODUCT0

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 tlispa~.aIor i)~ la ~ tallla . ,tlnv 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 asignatwii.

2. Ol)tt.npa copiai tle trallajo tle tlifrrcntes paqnc.tc.3 de rntornos de rleiarrollo de ap1ic.ao SQLIXindows) y rxamine sns c-aparidailei c.ionei c.lientr (tales ~ o m o PowrrRuiltle~
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

ORGANIZACION FISICADE LOS SISTEMAS DE BASE DE DATOS


- -= >- -

323

Billie T011efi011. lo a c t r ~ a udmiriistrudoru l de 10s S e r ~ i c i o s de C o r ~ i p ~ ~ t t ~ c rri ici la r ~Corpo(IP 1r11ode sirs colegt~s.Irehie Krepsbucli. ruciciii ZPIIS.ei~coiitrubu i n p i ( ~ t u i i1(~ t ~uctit~rd (IP 1Iuteriules ( P R \I) erl ltr I)i~isiciiitlr qiw est6 (1 corgo de 1u Pluii/fjcucicin tle Req~risitos (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~tisfircer 10s necesitludes tie ir~/i)r~~rucioii (I lu ~ 1 1 1 P R M. ''Aqui teizeinos un riwvo sisternu d e bnse tle rlntos, p e se (lice p e 110s l l e ~ a g~iurdiu eii 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 u qiitJ obterigo de imestro SGBD." ~ I Ljefe, Billie r~spoildii):"PIIPI~O e n t e i ~ d e lt~,fri~strucicii~ r t1~ 1)eslmCs de oir ~ s t ( o 1A pUr. o lo que p r e r e c e no e i ~ t e i ~ dPS e r p e 10s tipos Irchie con imestro tiernpo dr ~ ( J S ~ I L ( J S ~ tlr irlfi)riiies p e iiecesitu soit ~ ) t ~ r t i c ~ ~ l u rd ii r f~ ic rr i 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 l de 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 l oe s metl lei^. esperur 1111 idei~tificurinfbrrncj qticJ rc~tpiiereii resprlestcls rcipidus y t ~ q ~ ~ e lp poco mcis. Entoi~ces podriurno~ perfecciorlc~rIn base de dutos p a r u d u r uilu inejor res~i ~ f o r i n ~ ~ ~ i de oi~ uelst ~ priori(1ud." DespiiCs d e coiisidert~r el puestu c l i t ~ i ~ d se o trute ( 1 i t~suilto p o r I L I ~ Oo (10s &us. Billie tlecidici recornerldurle u su jefe lu ofertu de sernir~t~rios 10s corl s 10s rudiinentos de1 diseiiofisico y operucioiilterrlos p t l r u t i ~ r i ~ i l i c ~ r i(I zc ~r ~tsr~nrio 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:~i tlr 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 o fiiwo 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 a rl sistrn~a 1)arn d arrrso lisico a la I ~ a s r tlr tlatos. Se purele w r la interarrihn tlrl n s ~ l a r i o con 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\~a rntont*t:s a1 atlministratlor tle buffw, tp1t' wntrola rl (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 o r n tlistw. El a t h i rnovi~nirnto ~~istratlo tlc r art*l~ivos (la s o l ~ o r t al t ~ atlniinist~xtlor tle 1)nfft.r atln~inistrando la wserva tle lot~alixacionrs tlr 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 ~-tlgistro fisiwgihtros. I'or rjt~1111)lo. una fila t:n nna relatii~n1111