Está en la página 1de 46

Introduccin a las Bases de Datos

Por Nacho Cabanes, www.nachocabanes.com,

Versin 0.06, Agosto 2007

Tabla de contenidos

Introduccin................................................................................................................. 5 Conceptos bsicos......................................................................................... 5 Por !" este te#to$....................................................................................... 6 Con%iciones %e !so....................................................................................... 6 Nociones bsicas de diseo....................................................................................... 7 &tapas bsicas %e' %ise(o............................................................................. 7 )n primer e*emp'o........................................................................................ 7 +ntro%!ccin a' mo%e'o &nti%a%,-e'acin................................................. . /iagrama &&- %e n!estro e*emp'o............................................................. . Convirtiendo el diseo a tablas................................................................................ 11 0"to%o genera'.............................................................................................. 11 Con2irtien%o a tab'as n!estro e*emp'o....................................................... 12 3ipos %e %atos e#istentes.............................................................................. 14 Prob'emas !e hemos e2ita%o con n!estro %ise(o................................... 14 Prob'emas !e a5n tiene n!estro %ise(o................................................... 15 Crean%o 'a base %e %atos con 6pen677ice.org 8ase.................................. 16 Crean%o n!estra 8/ con Access.................................................................. 22 Crean%o n!estra 8/ con 9in:;<............................................................... 2= Crean%o n!estra 8/ con %8ase +++>............................................................ ?2 Un segundo ejemplo paso a paso............................................................................. 3 &n!ncia%o %e' seg!n%o e*emp'o................................................................. ?2 /ise(o %e' seg!n%o e*emp'o........................................................................ ?2 +mp'ementacin %e' seg!n%o e*emp'o........................................................ ?? !isuali"ando datos# consultas bsicas $ relaciones............................................... 33 Cons!'tas bsicas en :;<, con 9in:;<..................................................... ?? Cons!'tas senci''as con Access.................................................................... ?5 Cons!'tas en :;<, con Access..................................................................... ?7 +ntro%!ccin a 'as re'aciones @ a s! !so %es%e Access............................. ?= %istados e in&ormes desde 'ccess............................................................................. () Un tercer ejemplo paso a paso................................................................................... (3 &n!ncia%o %e' tercer e*emp'o...................................................................... 4? /ise(o %e' tercer e*emp'o............................................................................. 4? +mp'ementacin %e' tercer e*emp'o............................................................. 44

*ormularios de introduccin de datos con 'ccess................................................. (( +tras notaciones en ,ntidad-.elacin..................................................................... (( +tras posibilidades..................................................................................................... (( !ersiones de este te/to............................................................................................... (( 0ndice 'l&ab1tico......................................................................................................... (2

Introduccin a las Bases de Datos (0.06)

Introduccin
Conceptos bsicos
&n e' senti%o ms amp'io, se po%rAa consi%erar !e !na base %e %atos es simp'emente !n con*!nto %e in7ormacin Ben %e7iniciones CprecisasD se a7ina m!cho ms, pero nosotros no 'o haremos a5nE.. &n !n or%ena%or, esta in7ormacin norma'mente ser bsicamente !na serie %e C7ichasD. Por e*emp'o, !na base %e %atos m!@ senci''a po%rAa ser !na agen%a %e %irecciones en 'a !e anotemos %atos %e n!estros amigos. 3en%rAamos !na 7icha para ca%a !no %e estos amigos. &n ca%a 7icha, a s! 2eF, e#istir !na serie %e aparta%os, como e' nombre, 'a %ireccin, e' te'"7ono, etc. &sto nos permite intro%!cir %os primeros conceptos !e !ti'iFaremosG ca%a !na %e estas C7ichasD recibe e' nombre %e CregistroD, @ ca%a !no %e 'os Caparta%osD !e componen 'as 7ichas se ''ama CcampoD. &' con*!nto %e 'as 7ichas BregistrosE 7orma !n Cb'o !eD %e in7ormacin, !e ''amaremos Ctabla3, @ !e se s!e'e representar escribien%o ca%a 7icha BregistroE en !na 7i'a @ ca%a aparta%o BcampoE en !na co'!mna, asAG Nombre Hos" Hes5s H!an Direcc CI -ana, 1 CI :apo, 2 CI 8oa, ? Ciudad A'icante 0a%ri% 8arce'ona Tlf 111,11,11 222,22,22 ???,??,??

Pero en 'a prctica, !na Cbase de datosD rea' s!e'e estar 7orma%a por ms %e !na tab'a. Por e*emp'o, 'a base %e %atos !e !ti'iFa !na empresa Cnorma'D para s! gestin %eber a'macenar %atos sobre c'ientes, pro2ee%ores, artAc!'os, 7act!ras, etc. Ca%a !no %e estos Cb'o !esD %e %atos ser !na tab'a, @ estas tab'as estarn re'aciona%as entre sA Bpor e*emp'oG !n artAc!'o ser s!ministra%o por !n cierto pro2ee%or, @ ese artAc!'o aparecer en ciertas 7act!ras, ca%a !na %e 'as c!a'es correspon%er a !n cierto c'ienteE. 3o%o este con*!nto %e in7ormacin !e 7orman 'as tab'as @ 'as re'aciones entre e''as B@ a'g!na cosa ms !e @a 2eremosE ser n!estra Cbase %e %atosD. &n concreto, se tratar %e 'o !e se conoce como !na Cbase de datos relacionalD. &n este te#to 2eremos 'as nociones bsicas %e cmo se crea @ se mane*a !na base %e %atosG cmo %ise(ar 'as tab'as @ 'as re'aciones, cmo intro%!cir 'os %atos @ como b!scar in7ormacin en 'a base %e %atos. +ntentar" ap'icar'o a a'g!na %e 'as bases %e %atos ms habit!a'es, como Access para 9in%ows @ 6pen677ice.org 8ase. 3ambi"n %ar" !nas nociones bsicas %e 'eng!a*e :;<, !n 'eng!a*e %e cons!'ta a bases %e %atos !e permiten !ti'iFar 'a ma@orAa %e 'os sistemas act!a'es.
Por Nacho Cabanes - Pgina 4

Introduccin a las Bases de Datos (0.06)

Por qu este texto?


&ste te#to no es para in&ormticos. 0e e#p'icoG 2o@ a pro7!n%iFar m!cho menos %e 'o !e se po%rAa e#igir a !n in7ormtico C%e carreraD, inc'!so c!an%o apenas acaba %e comenFar s!s est!%ios. :i a a'g5n est!%iante %e in7ormtica 'e res!'ta %e !ti'i%a%, me sentir" m!@ ha'aga%o, pero !e na%ie espere aprobar asignat!ras %e !ni2ersi%a% s'o con este te#to. No tratar" apenas conceptos bsicos, ni 'os re !isitos !e %ebe c!mp'ir !n :J8/ Bsistema %e gestin %e bases %e %atosE rea' mAnimamente gran%e, ni 'a norma'iFacin, ni otros mo%e'os %istintos %e' &nti%a%, -e'acin, ni si !iera 2eremos b!ena parte %e 'as posibi'i%a%es %e este mo%e'o. &ste es !n te#to para a&icionados !e !ieran hacer s!s pe !e(os pro@ectos. Pero insisto en 'o %e Cpe !e(os pro@ectosDG !n pro@ecto %e !na cierta en2erga%!ra %eberAa %e*arse en manos %e !n in7ormtico C%e carreraD, por !e !n simp'e error %e %ise(o nos p!e%e hacer per%er m!cho tiempo, @ si 'a base %e %atos 'a hemos crea%o para !na empresa Bpor pe !e(a !e seaE, ese tiempo per%i%o es %inero per%i%o. Pero es !e, ms %e !na 2eF, he teni%o @o mismo !e parchear bases %e %atos crea%as por a7iciona%os B@ 'o %e Ca7iciona%osD no 'o %igo en tono pe@orati2o sino con respeto @ a%miracinE, @ he per%i%o m!cho tiempo en intentar apro2echar 'os %atos e#istentes @ a%aptar'os para !e 7!eran e7icientes. :i se h!bieran %ise(a%o apenas )N P6C6 me*or, habrAan si%o 0)CK6 ms 2ersti'es, ms 7ci'es %e corregir @ amp'iar, oc!pa%o menos espacio, etc. Por eso, comentar" a'g!no %e 'os errores ms habit!a'es, %e mo%o !e !ien cree s!s bases %e %atos, a!n !e sea como hobb@, cree a'go !e rea'mente res!'te 5ti' @ mane*ab'e.

Condiciones de uso
&ste te#to se p!e%e imprimir @ se p!e%e %istrib!ir 'ibremente, tanto en s! 7orma e'ectrnica como impresa, :+&0P-& L C)AN/6 N6 :& 06/+M+;)& @ se conser2e e' nombre %e' a!tor. :i este te#to se %esea !ti'iFar como base para c!a' !ier otro te#to, artAc!'o o simi'ar, tambi"n se p!e%e hacer 'ibremente :+&0P-& L C)AN/6 :& 0&NC+6N& A< A)36- %e' te#to origina' BHos" +gnacio NNacho, CabanesE. &' a!tor no po%r ser en ning5n caso consi%era%o responsab'e %e ning5n prob'ema %ebi%o %irecta o in%irectamente a 'a in7ormacin conteni%a en este te#to. &' !s!ario acepta to%as 'as responsabi'i%a%es. Es decir, que si por experimentar algo de lo que aparece en el texto, tu disco duro salta en pedazos (cosa que veo muy difcil), sera responsabilidad exclusivamente tuya. &< ):6 /& &:3& 3&O36 :)P6N& <A AC&P3AC+PN 363A< /& &:3A: C6N/+C+6N&:. :i %esc!bres c!a' !ier error en e' te#to, rogarAa !e me 'o com!nicases por correo e'ectrnico a 'a %ireccinG
nacho[arroba]nachocabanes.com
Por Nacho Cabanes - Pgina

Introduccin a las Bases de Datos (0.06)

&ste te#to es 45racias6are3. &sto !iere %ecir !e si te g!sta @Io te res!'ta 5ti', basta con !e me man%es !n correo e'ectrnico a mi %ireccin nacho[arroba]nachocabanes.com :i 2eo !e tengo apo@o mora', proc!rar" ir me*oran%o este te#to @ 'anFan%o n!e2as 2ersiones, ca%a 2eF ms amp'ia%as.

Nociones bsicas de diseo


Etapas bsicas del diseo
&' primer paso antes %e crear !na base %e %atos es pararse a pensar. Ni ms ni menos. :i en 'a programacin es m!@ pe'igroso eso %e empeFar a tec'ear seg5n aparece !na i%ea Ba pesar %e !e ha@ bastante gente !e 'o hace, @ a'g!no 'o hace inc'!so bien... si e' programa es cortoE, en 'a creacin %e bases %e %atos es m!@ raro !e sa'ga bien. &' segundo paso recomen%ab'e es ir anotan%o 'as i%eas seg5n s!rgen. C!an%o creemos !e @a est to%o, %eberAamos 2o'2er a 'eer to%as 'as notas !e habAamos toma%o, por !e eso nos a@!%ar a tener !na 2isin %e con*!nto @ a notar si 7a'ta a'go !e no ha@amos pre2isto inicia'mente. &' tercer paso ser empeFar a %ib!*ar garabatos !e representen esa in7ormacin. Para e''o 2eremos por encima !n mo%e'o ''ama%o C&nti%a%,-e'acinD. &' %ib!*o nos a@!%ar a tener !na n!e2a 2ersin %e con*!nto, m!cho ms 7ci' %e seg!ir @ ms comp'eta !e 'as anotaciones. A !A se 2ern to%a2Aa me*or 'as carencias @ 'as incongr!encias !e p!e%an e#istir. &' cuarto paso ser con2ertir este %ib!*o en 'as tab'as. &ste paso p!e%e ser casi tota'mente mecnico. Por e*emp'o, 'a con2ersin %e' mo%e'o &nti%a%,-e'acin Be' !e 2eremosE a !na base %e %atos re'aciona' B'as !e norma'mente mane*aremosE es casi inme%iato. :e acab e' %ise(o. Po%rAamos a(a%ir !n 7uinto paso !e serAa 'a intro%!ccin %e 'os %atos @ 'a creacin %e !na serie %e estr!ct!ras a!#i'iares, como 7orm!'arios, cons!'tas o in7ormes, !e @a 2eremos.

n pri!er e"e!plo
Vamos 2er !n primer e*emp'o, !e nos a@!%ar a ''e2ar a 'a prctica to%o esto @ a intro%!cir e' mo%e'o C&nti%a%,-e'acinD. :!pon%remos !e nos proponen e' sig!iente prob'emaG
Se desea informatizar un centro de estudios de pequeo tamao. Interesa controlar exclusivamente los asuntos acadmicos: qu alumnos tenemos qu cursos!asi"naturas han realizado qu profesores tenemos en plantilla quin ha impartido cada uno de los cursos etc#.

Por Nacho Cabanes - Pgina 6

Introduccin a las Bases de Datos (0.06)

&stas serAan 'as in%icaciones !e nos %arAa e' c'iente Bo !e nosotros pensarAamos, si 'o rea'iFamos para nosotrosE. Ahora ten%rAamos !e pensar si 2emos !e 7a'ta a'go B@ preg!ntar a' c'iente, si proce%e, cosas como si %esea g!ar%ar 'a %ireccin @ %ems %atos posta'es %e 'os a'!mnos @ %e 'os pro7esores, o si !iere saber 'a nota !e ca%a a'!mno obt!2o en ca%a c!rsoE o inc'!so si sobra a'go Bpor !e res!'te %emasia%o %i7Aci' %e ''e2ar a cabo ,difcil, para nosotros?... lo dudo,E. Pasamos a %esg'osar en b'o !es %e in7ormacin. /e momento to%a2Aa no hab'aremos %e tab'as, sino %e Centidades3 B!n nombre ms ambig!o pero ms a%ec!a%oE @ %e Crelaciones3 entre estas enti%a%es. &n n!estro caso, 'as CcosasD Benti%a%esE !e tenemos son bsicamente "stasG A'!mnos. C!rsos. Pro7esores. L 'as re'aciones !e ha@ entre estas enti%a%es sonG <os pro7esores +0PA-3&N c!rsos. <os a'!mnos A:+:3&N a c!rsos. B+n%irectamente, 'os a'!mnos @ 'os pro7esores tambi"n estn re'aciona%osG !n a'!mno ha asisti%o a !n c!rso !e ha imparti%o !n cierto pro7esorQ esta re'acin @a !e%a re7'e*a%a a partir %e 'as otras %os, asA !e no es necesario %eta''ar'aE. A!n comentaremos a'go ms sobre 'as re'aciones. )na caracterAstica importante %e 'as re'aciones es s! CcardinalidadDG por e*emp'o, en 'a re'acin %e !e C'os a'!mnos asisten a 'os c!rsosD, es importante si a ca%a c!rso s'o p!e%e asistir !n a'!mno o 2arios, @ si !n a'!mno p!e%e asistir a !n so'o c!rso o a 2arios. 3en%remos c!atro posibi'i%a%esG ;!e ca%a a'!mno asista a !no @ so'o !no %e 'os c!rsos Bse e#presa como 1G1 ,!no a !no,E ;!e ca%a a'!mno p!e%a asistir a m!chos c!rsos, pero en ca%a c!rso s'o p!e%e haber !n a'!mno B1G0 ,!no a m!chos,E ;!e ca%a a'!mno p!e%a asistir a !n 5nico c!rso, pero p!e%a haber 2arios a'!mnos en !n c!rso B0G1 ,m!chos a !no,E. ;!e ca%a a'!mno p!e%a asistir a 2arios c!rsos, @ en ca%a c!rso p!e%a haber 2arios a'!mnos B0G0 ,m!chos a m!chos,E &n n!estro caso, 'a re'acin CasistirD es !na re'acin %e Cm!chos a m!chosD B0G0E. Po%rAamos preg!ntarnos 'a car%ina'i%a% %e 'a otra re'acin BC'os pro7esores imparten c!rsosDE. &n este caso, ca%a pro7esor p!e%e impartir 2arios c!rsos, @ s!pon%remos !e ca%a c!rso es imparti%o por !n 5nico pro7esor Besto@ %an%o por s!p!esto !e se consi%era %istinto !n c!rso %e C8ases %e /atosD imparti%o en !na 7echa @ otro %e 'a misma temtica pero imparti%o en 7echa %istintaE. :e tratarAa %e !na re'acin C%e !no a m!chosD 1G0. )na obser2acinG en 'as re'aciones es importante e' senti%o en e' !e se 'een. Por e*emp'o, 'a re'acin C'os pro7esores imparten c!rsosD es !na re'acin 1G0 B!no a
Por Nacho Cabanes - Pgina !

Introduccin a las Bases de Datos (0.06)

m!chosE, mientras !e 'a re'acin op!esta C'os c!rsos son imparti%os por pro7esoresD es !na re'acin 0G1 Bm!chos a !noE. &stas re'aciones !e hemos comenta%o son Cre'aciones binariasD Bentre %os enti%a%esE. Por e' carcter intro%!ctorio %e este te#to, no entraremos en 'as re'aciones !e eng'oban ms enti%a%es Bcomo 'as ternariasE, ni en cierto tipo %e restricciones Bcomo 'as %e e#istencia o 2a'or no n!'oE, ni en genera'iFaciones, asociaciones ni agregaciones... al menos por a ora...

Introduccin al !odelo Entidad#$elacin


&ste es !n mo%e'o !e nos permitir C%ib!*arD 'as enti%a%es @ 'as re'aciones !e e#isten entre e''as. Nosotros !saremos e' mo%e'o C&nti%a%,-e'acin &#ten%i%oD B,,., %e a !A en a%e'anteE. &#isten 2arias notaciones 'igeramente %istintas. Vo@ a !ti'iFar 'a !e consi%ero ms senci''a. &n esta notacin se representan 'as enti%a%es como !n rectng!'o @ 'as re'aciones binarias como !n rombo parti%o por 'a mita%. :i 'a re'acin es 1G0, !na %e 'as mita%es B'a !e correspon%e a' Cm!chosDE %eber estar sombrea%a, @ si es 0G0, to%o e' rombo estar sombrea%o.
&nti%a%

-e'acin 1G1 -e'acin 1G0 -e'acin 0G0

(!ota" e visto las relaciones expresadas tambi#n de otras formas, por otros autores$ de momento, emplear# esta notaci%n y m&s adelante comentar# otras notaciones que es posible utilizar o encontrar en otros textos).

Por Nacho Cabanes - Pgina "

Introduccin a las Bases de Datos (0.06)

Dia%ra!a EE$ de nuestro e"e!plo


Vamos a 2er cmo !e%arAa e' %iagrama &nti%a%,-e'acin %e n!estro e*emp'oG

Pro7esores

A'!mnos

C!rsos
+mpartir Asistir

AsA %e senci''oG tenemos ? enti%a%es Bpro7esores, c!rsos, a'!mnosE @ %os re'aciones Bimpartir, entre pro7esores @ a'!mnos, 1G0, @ asistir, entre a'!mnos @ c!rsos, 0G0E. -ea'mente, @a a este ni2e' se s!e'e in%icar 'os Caparta%osD !e ha@ en ca%a enti%a% B'o !e sern 'os CcamposD %e n!estras tab'asE. A estos Caparta%osD 'es ''amaremos Catributos3, @ se representan como pe !e(as e'ipses !e sa'en %e 'as enti%a%es. Vamos a pensar primero !" atrib!tos nos po%rAa interesar para n!estras enti%a%esG A'!mnosG /N+ B/oc!mento Naciona' %e +%enti%a%E Nombre /ireccin Ci!%a% 3e'"7ono Mecha %e nacimiento Mecha %e a'ta en e' centro Motogra7Aa

Pro7esoresG C!rsosG Nombre %e' c!rso


Por Nacho Cabanes - Pgina #

/N+ Nombre /ireccin Ci!%a% 3e'"7ono Conocimientos :!e'%o C!enta bancaria

Introduccin a las Bases de Datos (0.06)

Mecha %e comienFo /!racin BhorasE +mporte Be!rosE N5mero m#imo %e a'!mnos

&s s'o !n e*emp'o. +nsisto en !e %e momento no estamos pensan%o en tab'as, sino simp'emente en !" in7ormacin !eremos a'macenar. :eg5n e' sistema %e bases %e %atos !e emp'eemos rea'mente, p!e%e oc!rrir !e sea incmo%o Bo inc'!so imposib'eE traba*ar con a'g!nos %e estos %atos !e hemos pre2isto Bpor e*emp'o, 'a C7otogra7AaD %e' a'!mnoE. Pero eso @a nos 'o p'antearemos %esp!"s. <o !e sA 2amos a pensar @a es c!a' %e esos %atos nos permitir distinguir una &ic8a de otra. &sto se hace por !e po%emos tener %os a'!mnos con e' mismo nombre, pero c'aramente son personas %istintas, @ %ebemos saber !" c!rsos ha rea'iFa%o ca%a !no %e e''os sin posibi'i%a% %e con7!sin, para no %ar a !no e' %ip'oma !e correspon%a a otro, ni cobrar'e !n %inero %e otro. &n e' caso %e 'os a'!mnos, no son %atos 5nicos 'os sig!ientesG e' nombre Bp!e%e repetirse, inc'!so con ape''i%osE, 'a %ireccin B%os hermanos o %os amigos p!e%en 2i2ir en 'a misma casaE, e' te'"7ono Boc!rre 'o mismoE, 'a 7echa %e nacimiento Btambi"n po%emos encontrar %os a'!mnos !e ha@an naci%o e' mismo %AaE, etc. <o !e rea'mente %isting!ir a !n a'!mno %e otro es s! n5mero %e /N+ B/oc!mento Naciona' %e +%enti%a%E o pasaporte, !e sA es 5nico. P!es bien, este %ato !e p!e%e %isting!ir !na persona %e otra Bo en genera' !na 7icha ,registro, %e otraE es 'o !e ''amaremos 'a Cclave3. P!e%e oc!rrir !e no e#ista na%a !e nos sir2a c'aramente como c'a2e, como es e' caso %e 'os c!rsosG no es 5nico e' nombre Bpo%emos impartir ms %e !n c!rso con e' mismo conteni%oE, ni 'a 7echa %e comienFo B2arios c!rsos p!e%en comenFar e' mismo %AaE, ni 'a %!racin, ni e' importe, ni e' n5mero m#imo %e a'!mnos. &n estos casos se s!e'e a(a%ir a'go arbitrario, !n cdigo, !e nos permita %isting!ir !n c!rso %e otro Ben genera' !na 7icha ,registro, %e otraE. &n n!estro caso, inc'!irAamos !n n!e2o atrib!to, ''ama%o CC%igo %e c!rsoD. )n 5'timo comentario antes %e 2er cmo !e%arAa n!estro %iagrama &&- con s!s atrib!tos. P!e%e oc!rrir !e n!estra enti%a% tenga 2arios atrib!tos 5nicos, to%os 'os c!a'es p!e%an ser2ir como c'a2e. &ntonces escogemos !na %e e''as como Cclave principalD, @ e' resto sern Cclaves alternativasD, !e no ''egaremos a !sar como c'a2es. &n e' %iagrama, e' atrib!to !e 2a@a a !ti'iFarse como c'a2e principa' aparecer s!bra@a%o.

Por Nacho Cabanes - Pgina $0

Introduccin a las Bases de Datos (0.06)

Ahora @a sA. N!estro %iagrama !e%arAa asA Bno inc'!@o to%os 'os atrib!tos !e habAamos pensa%o, s'o a'g!nos como e*emp'o, !e es con 'os !e traba*aremos a partir %e ahoraEG

/N+

Nombre /irecc 3e'e7

Nombre

/N+

Pro7esores

A'!mnos

C!rsos
+mpartir
Co%C!rso

Asistir
Mecha+ni

Nombre

Con&irtiendo el diseo a tablas


'todo %eneral
Posib'emente 'a ma@or 2enta*a %e' mo%e'o &&- es !e 'a con2ersin a tab'as es casi inme%iataG &n principio, ca%a enti%a% correspon%er a !na tab'a, @ 'os atrib!tos %e 'a enti%a% %arn '!gar a 'os campos %e 'a tab'a. <as re'aciones C%e !no a m!chosRD B1G0E se re7'e*arn ponien%o 'a c'a2e %e' C!noD en 'a tab'a %e 'os Cm!chosD. &s %ecir, si !n pro7esor imparte m!chos c!rsos B@ ca%a c!rso es imparti%o por !n 5nico pro7esorE, 'o !e haremos es poner e' c%igo %e' pro7esor Bs! /N+E en 'a 7icha %e ca%a c!rso !e imparte. <as re'aciones C%e m!chos a m!chosD B0G0E aparecern como !na n!e2a tab'a, en 'a !e ca%a registro estar 7orma%o por 'as c'a2es %e 'as tab'as !e se re'acionan. &n n!estro caso, 'a re'acin C%e m!chos a m!chosD entre a'!mnos @ c!rsos se con2ertir en !na n!e2a tab'a, en 'a !e ca%a registro contiene %os camposG e' c%igo %e' c!rso a' !e se asiste @ e' /N+ %e' a'!mno !e ha asisti%o. <as re'aciones C%e !no a !noD m!chas 2eces son %ebi%as a !n 7a''o %e %ise(o, @ correspon%en a %atos !e %eberAan estar en !na misma tab'a. Por e*emp'o, si s!ponemos !e ca%a persona ten%r !na 5nica %ireccin posta', @ ca%a %ireccin correspon%e a !na 5nica persona, entonces e' %ato %e 'a %ireccin posta' %eber ser !no ms %e 'a tab'a !e a'macena to%os 'os
Por Nacho Cabanes - Pgina $$

Introduccin a las Bases de Datos (0.06)

%atos %e esa persona. &sta simp'i7icacin !e hemos hecho no es %e' to%o ciertaG a 2eces 'as re'aciones 1G1 %ebern re7'e*arse como !na n!e2a tab'a, %epen%ien%o %e si e#iste restriccin %e e#istencia o no, pero no entraremos en tanto %eta''e... al menos por a ora...

Con&irtiendo a tablas nuestro e"e!plo


AsA, en n!estro caso, obten%rAamos 'as sig!ientes tab'as Bcon s!s campos, 'imitn%onos a 'os atrib!tos !e hemos inc'!i%o en e' 5'timo %iagramaEG A'!mnosG /N+ Bc'a2eE Nombre 3'7 Pro7esoresG /N+ Bc'a2eE Nombre /irecc C!rsosG AsistirG C%igo %e' c!rso /N+ %e' a'!mno La s'o 7a'ta !na cosa. Ka@ !e %eci%ir 'os tipos de datos %e 'os campos @ tambi"n 'os tama(os %e 'os campos. &sto es por !e a' or%ena%or habr !e %ar'e to%a 'a in7ormacin m!@ c!a%ric!'a%a, para !e po%amos g!ar%ar to%a 'a in7ormacin !e nos interesa pero sin %esper%iciar %emasia%o espacio. <os tipos %e %atos e#istentes p!e%en 2ariar %e !n sistema %e bases %e %atos a otro, asA !e 2amos a 'imitarnos Bpor ahoraE a hacer !na primera apro#imacin, acercn%onos a' caso %e n!estros camposG &' nombre %e !n a'!mno, %e !n pro7esor o %e !n c!rso, estar 7orma%o bsicamente por 'etras. 3o%os 'os sistemas %e bases %e %atos ten%rn !n tipo %e %atos a%ec!a%o para a'macenar series %e 'etras B !e po%rn inc'!ir a'g!na ci7ra n!m"rica o a'g5n otro sAmbo'oE. :er !n tipo ''ama%o C3e#toD, CA'7an!m"ricoD, CCarcterD o a'go simi'ar. &n c!anto a' tama(o, nos p!e%e bastar con !nas 40 'etras BinsistoG no %ebemos !e%arnos cortos, pero si nos e#ce%emos, estaremos %esper%ician%o espacioE.
Por Nacho Cabanes - Pgina $%

C%igo Bc'a2eE Nombre %e' c!rso Mecha %e comienFo /N+ %e' pro7esor

Introduccin a las Bases de Datos (0.06)

<a %ireccin ten%r tambi"n 'etras, n5meros @ a'g5n otro sAmbo'o, %e mo%o !e tambi"n ser tipo 3e#to, @ !nas 50 'etras %e tama(o p!e%e estar bien. &' /N+ %e' a'!mno o %e' pro7esor conten%r ci7ras n!m"ricas, pero posib'emente tambi"n a'g!na 'etra, %e mo%o !e nos interesar !e tambi"n este %ato sea %e tipo C3e#toD, @ entre 10 @ 15 'etras %e tama(o B%epen%ien%o %e si 2amos a escribir p!ntos en 'os mi''ares, g!in antes %e 'a 'etra, etc.E. &' te'"7ono %e' a'!mno s'o conten%r ci7ras. 3en%remos !n tipo %e %ato CN!m"ricoD, !e nos p!e%e ser2ir en este caso @ !e ser imprescin%ib'e en e' caso %e !e !eramos hacer operaciones aritm"ticas con 'os %atos a'macena%os en !n campo. &n e' caso %e' te'"7ono, no necesitamos hacer operaciones, @ tambi"n es posib'e !e nos interese escribir par"ntesis, g!iones o espacio, %e mo%o !e !iF sea ms interesante %e*ar'o como tipo C3e#toD, %e !nas 12,15 'etras. A%ems, es 7rec!ente !e se CignorenD Bno se m!estran ni se g!ar%anE 'os ceros a 'a iF !ier%a %e !na e#presin n!m"rica, @ esto es a'go !e no %eberemos permitir con !n te'"7ono, !e po%rAa tener !n pre7i*o pro2incia' o internaciona' !e comience por 0 B'o mismo oc!rre con 'os c%igos posta'es, !e tambi"n %eberemos a'macenar como te#to, no como n5meroE. Para 'a 7echa %e inicio %e !n c!rso, casi to%os 'os sistemas %e bases %e %atos nos permitirn !ti'iFar !n tipo %e %atos ''ama%o CMechaD. &' c%igo %e !n c!rso !e%a a n!estra e'eccinG si !eremos !e est" 7orma%o s'o por n5meros, serAa tipo %e %atos CN!m"ricoDQ si !eremos !e p!e%a contener 'etras ! otros sAmbo'os, %eberAa ser %e tipo C3e#toD. A'g!nos sistemas %e bases %e %atos 2an ms a'' @ permiten !n tipo CA!ton!m"ricoD, !e es !n %ato n!m"rico !e 2a incrementn%ose a!tomticamente Ben e' primer registro !e intro%!Fcamos ser !n 1, en e' seg!n%o !n 2, @ asA s!cesi2amenteE, para !e no tengamos ni si !iera !e pensar !" c%igo !eremos para ca%a registro Bha@ gente a !ien esto 'e parece m!@ cmo%o @ otros !e 'o consi%eran %emasia%o rAgi%oE.

Tipos de datos existentes


&n genera', 'os tipos %e %atos habit!a'es, !e encontraremos en casi c!a' !ier sistema %e bases %e %atos, son 'os sig!ientesG 9e/to Bo a'7an!m"rico, o carcterE, c!an%o n!estro campo %eba a'macenar 'etras @ !iFs a'g5n otro tipo %e sAmbo'os %e p!nt!acin @Io ci7ras n!m"ricas. /eberemos in%icar 'a canti%a% %e 'etras Bo en genera', %e caracteresE para 'as !e !eremos %e*ar espacio Bno %eberAamos !e%arnos cortos, para !e nos !epa to%a 'a in7ormacin !e nos interesa, pero tampoco ha@ !e %e*ar m!cho espacio %e ms, o estarAamos %esper%ician%o !na parte %e 'a capaci%a% %e n!estros sistemas %e a'macenamiento sin necesi%a%E. Num1rico, c!an%o n!estro campo 2a@a a g!ar%ar canti%a%es n!m"ricas, especia'mente si ms a%e'ante necesitaremos rea'iFar operaciones aritm"ticas con estas canti%a%es n!m"ricas. 3en%remos !e in%icar
Por Nacho Cabanes - Pgina $&

Introduccin a las Bases de Datos (0.06)

tambi"n e' espacio !e !eremos reser2ar, pero esto p!e%e !e se haga %e 7orma %istinta seg5n e' sistema %e bases %e %atos !e !semos. Por e*emp'o, !nos esperarn !e 'es %igamos e' n5mero %e ci7ras !e !eremos g!ar%ar, mientras !e otros emp'earn nombres ms cercanos a como rea'mente se 2a a g!ar%ar 'a in7ormacin en e' or%ena%or Bcosas como Cn5mero entero 'argoD o Cn5mero rea' %e %ob'e precisinDE. %gico, c!an%o s'o ha@ %os posibi'i%a%es B2er%a%ero o 7a'so, sA o noE. *ec8a, para a'macenar 7echas B@, en ocasiones, tambi"n horasE. :e !ti'iFa para !e 'as comparaciones @ 'as or%enaciones sean correctas Bpor e*emp'o, si escribimos 'as 7echas 12I01I2000 @ ?1I10I1.75 como Cte#toD, e' or%ena%or consi%erarAa !e 'a primera es menor ,anterior, a 'a seg!n%a, 'o c!a' es c'aramente incorrectoE. :emo, es !n campo %e te#to especia', !e permite !na 'ongit!% i'imita%a, pero a cambio s! acceso es ms 'ento !e e' campo %e te#to norma', por 'o !e s'o se !sa en casos m!@ concretos, en 'os !e 'a 'ongit!% %e' te#to a g!ar%ar sea m!@ 2ariab'e @ no importe !e 'as b5s !e%as sean 'entas. &s e' caso %e !n aparta%o %e Cobser2acionesD sobre !n a'!mno, o e' Cres!menD %e !na pe'Ac!'a. 6tros menos habit!a'es nos permitirn g!ar%ar imgenes o 7icheros en genera', n5meros !e se incrementen a!tomticamente, hiper2Anc!'os Ben'aces a !na cierta %ireccin %entro %e n!estro or%ena%or ! otroE, etc.

Proble!as que (e!os e&itado con nuestro diseo


C!an%o !no piensa %irectamente Cen tab'asD, p!e%e sentirse tenta%o a crear !na 5nica tab'a para 'os c!rsos Bo casiE, !e cont!2iera esta in7ormacin Bpor e*emp'oEG Nombre %e' c!rso /!racin Mecha %e comienFo A'!mno1 NotaA'!mno1 A'!mno2 NotaA'!mno2 A'!mno? NotaA'!mno? A'!mno4 NotaA'!mno4 A'!mno5 NotaA'!mno5

&sto es tan grave Bm!choE como &recuente Bhe 2isto errores simi'ares en 'os %atos manip!'a%os por conoci%os programas %e contabi'i%a%E. Kemos %e*a%o espacio para 5 a'!mnos en ca%a c!rso. Veamos 'os prob'emas !e esto p!e%e pro2ocarG :i en a'g5n c!rso ha@ menos %e 5 a'!mnos, estamos %esper%ician%o e' espacio !e habAamos reser2a%o para 'os %ems.
Por Nacho Cabanes - Pgina $4

Introduccin a las Bases de Datos (0.06)

:i necesitamos !e entren ms %e 5 a'!mnos a !n mismo c!rso, estamos %esbor%an%o 'o !e habAamos pre2isto @ tenemos !e empeFar a hacer CparchesD B%os 7ichas para e' mismo c!rso$E. :i !eremos b!scar !" c!rsos ha rea'iFa%o !n cierto a'!mno, ten%remos !e recorrer to%os 'os registros, miran%o si s! nombre aparece en 'os campos Batrib!tosE a'!mno1, a'!mno2, a'!mno?, a'!mno4 o a'!mno5. L se comp'ica to%a2Aa ms si en 2eF %e !na simp'e b5s !e%a !eremos obtener !n 'ista%o !e inc'!@a 2arios %atos. &n n!estro %iagrama po%emos 2er !e n!estra base %e %atos permite !e !n c!rso tenga 1 a'!mno, 50 a'!mnos o inc'!so ning!no, @ en ning5n caso estaremos %esper%ician%o espacio. Para b!scar 'os a'!mnos !e han asisti%o a !n cierto c!rso o inc'!so para crear !n 'ista%o con esta in7ormacin, s'o ten%remos !e recorrer 'a tab'a CAsistirD.

Proble!as que a)n tiene nuestro diseo


Kemos e2ita%o a'g!nos errores 7rec!entes, pero n!estra base %e %atos to%a2Aa no es to%o 'o b!ena !e %eberAa. Por e*emp'o, si miramos e' primer est!%io !e hemos hecho %e 'os atrib!tos !e nos interesarAa a'macenar, 2emos !e entre !n a'!mno @ !n pro7esor ha@ m!chos %atos en com5nG ambos tienen !n nombre, !n /N+, !na %ireccin, !n te'"7ono, !na ci!%a%... L %e hecho, si !no %e n!estros pro7esores 7!ese a s! 2eF a'!mno %e otro c!rso, ten%rAamos s!s %atos por %!p'ica%o, con to%os 'os prob'emas @ riesgos !e esto con''e2a Bprob'emas %e espacio %esper%icia%o @ riesgos %e !e si cambia a'g!no %e s!s %atos no nos acor%emos %e cambiar'o en to%as 'as tab'as en 'as !e aparece, @ esto %arAa '!gar a inconsistencias en n!estros %atosE. &sto se %ebe a !e no hemos pro7!n%iFa%o to%o 'o !e %eberAamos. &n rea'i%a%, tanto a'!mnos como pro7esores son CpersonasD. &sto es 'o !e se conocen como !na Cgenerali"acin3, @ se s!e'e reso'2er crean%o !na tab'a !e conten%rAa to%os 'os %atos !e son com!nes a 'as CpersonasD, @ conser2an%o en 'as tab'as %e Ca'!mnosD @ %e Cpro7esoresD s'o 'os %atos !e rea'mente son e#c'!si2os %e ca%a !no %e e''os Ba%ems %e 'a c'a2e, e' /N+, !e nos permitirAa en'aFar 'os %atos !e !n a'!mno tiene por ser a'!mno con 'os %atos !e tiene por ser personaE. Pero esto es hi'ar %emasia%o 7ino para !nos principiantes como nosotros, asA !e 'o %e*aremos como est. 3ambi"n se 'e po%rAa b!scar a'g!na otra cosa me*orab'e, pero tampoco 'o haremos... por ahora.

Creando la base de datos con *pen*++ice,or% Base


Vamos a 2er 'os pasos !e %eberAamos %ar para p'asmar n!estra base %e %atos emp'ean%o %istintos sistemas %e gestin %e bases %e %atos.
Por Nacho Cabanes - Pgina $

Introduccin a las Bases de Datos (0.06)

&' primero !e !ti'iFaremos es 6pen677ice.org ;ase, 'a base %e %atos !e incorpora 'a s!ite 6pen677ice, por tratarse %e !n pa !ete integra%o %e 'ibre %istrib!cin BCgratisDE, !e se p!e%e encontrar tanto para 9in%ows como para <in!# B@o 'o !sar" %es%e 9in%owsE. Como @a 2eremos, s! mane*o rec!er%a m!cho a' %e Access. Na%a ms entrar a 6pen677ice.org 8ase nos aparece !n asistente !e nos preg!nta si !eremos crear !na n!e2a base %e %atos, abrir !na e#istente Bcrea%a con 8aseE o CconectarD con otra !e @a e#ista pero se ha@a crea%o con otro gestor %e bases %e %atosG

&scogemos 'a opcin %e CCrear !na n!e2a base %e %atosD, @ entonces se nos preg!nta si !eremos Cregistrar'aD para !e apareFca en 'a 'ista %e bases %e %atos e#istentes B@o 'e %ir" !e CNoD !iero !e 'o haga, por !e pre7iero abrir'a hacien%o %ob'e c'ic %es%e s! carpeta contene%oraE @ si !eremos abrir 'a base %e %atos para e%itar'a B@o 'e %ir" !e sA, para empeFar a e#perimentarEG

Por Nacho Cabanes - Pgina $6

Introduccin a las Bases de Datos (0.06)

A contin!acin nos preg!nta en !" carpeta !eremos g!ar%ar n!estra base %e %atos B@o crear" !na especA7ica para e''aE @ !" nombre 'e !eremos %ar'e @o 'a ''amar" C8ase %e %atos %e pr!ebaDEG

&ntonces apareceremos en 'a panta''a principa' %e 6pen677ice.org 8ase, !e nos permite crear @ mane*ar 2arios tipos %e e'ementos. &' primero %e e''os B@ e' 5nico !e nos interesa por ahoraE son 'as 3ab'as. &n concreto, nos propone 2arias CtareasD re'aciona%as con 'as tab'asG crear en 2istar %e %ise(o, !sar !n asistente o crear !na 2istaG
Por Nacho Cabanes - Pgina $!

Introduccin a las Bases de Datos (0.06)

&n n!estro caso, como @a hemos prepara%o e' %ise(o Csobre e' pape'D, prescin%iremos %e' asistente @ !saremos 'a C2ista /ise(oD. Acce%emos a !na n!e2a 2entana, en 'a !e rea'mente %e7inimos n!estra tab'a con 8ase. <a Fona %e traba*o %e esta 2entana tiene tres co'!mnas, en 'as !e in%icaremos e' nombre %e' campo, e' tipo %e %atos !e 2a a a'macenar @ Bsi !eremosE !na %escripcin para ese campoG

Ca%a 7i'a %e 'a Fona %e traba*o %e esta 2entana representar !no %e estos campos. &n 'a parte in7erior %e 'a panta''a po%emos in%icar e' tama(o B'ongit!%E !e !eremos para ca%a campo. A' 7ina' %eberAamos obtener a'go pareci%o aG
Por Nacho Cabanes - Pgina $"

Introduccin a las Bases de Datos (0.06)

&s %ecir, tanto e' /N+ como e' Nombre como e' 3'7 son campos %e te#to, @ como 'ongit!%es respecti2as hemos !ti'iFa%oG 15, 40, 15. C!an%o terminemos, p!'samos e' botn %e CJ!ar%arD Be' !e m!estra !n %isSetteE @ nos preg!ntar e' nombre !e !eremos %ar a 'a tab'a Ben n!estro caso, CA'!mnosDEG

&s m!@ 7rec!ente !e nos apareFca !na 2entana %e a2iso como "staG

&s cierto, habAamos pensa%o !e e' /N+ %ebAa ser 'a c'a2e primaria %e n!estra tab'a, pero no se 'o hemos in%ica%o a 8ase. Pero no !eremos !e sea 8ase !ien ponga 'a c'a2e primaria !e 'e p'aFca, sino nosotros mismos, asA !e %e momento 'e %ecimos !e CNoD !eremos c'a2e primaria, @ 2eremos cmo in%icar'e !e ponga como c'a2e e' campo !e a nosotros nos interesa.

Por Nacho Cabanes - Pgina $#

Introduccin a las Bases de Datos (0.06)

Para mo%i7icar n!estro %ise(o Ben esta ocasin, para po%er a(a%ir esa c'a2eE, hacemos c'ic con e' botn %erecho sobre 'a tab'a !e nos interesa @ escoger 'a opcin C&%itarDG

<a 7orma correcta %e in%icar !e !n campo ser 'a c'a2e primaria es se(a'an%o to%a 'a 7i'a Bhacien%o c'ic con e' ratn en 'a co'!mna gris %e 'a iF !ier%aE @ p!'san%o e' botn %erecho %e' ratn. &ntre 'as opciones %isponib'es, aparecer 'a %e C<'a2e primariaDG

Por Nacho Cabanes - Pgina %0

Introduccin a las Bases de Datos (0.06)

&ntonces 8ase mostrar !na ''a2ecita amari''a *!nto a' nombre %e' campo, para in%icarnos !e ese campo es e' !e 2a a act!ar como c'a2e primariaG

A' sa'ir %e' %ise(o %e 'a tab'a Bpor e*emp'o, p!'san%o 'a O %e 'a es !ina s!perior iF !ier%a %e 'a 2entanaE, 8ase se %a c!enta %e !e hemos mo%i7ica%o e' %ise(o %e 'a tab'a @ nos pi%e con7irmacin para g!ar%ar 'os cambios B%eberemos %ecir'e !e C:ADEG

P!e%e oc!rrir !e, en a'g!na circ!nstancia, 8ase consi%ere !e esa mo%i7icacin no se p!e%e rea'iFar %irectamente, conser2an%o 'os %atos act!a'es, sino !e habrAa !e e'iminar e' campo !e hemos mo%i7ica%o, para '!ego 2o'2er'o a crear. &n ese caso, po%rAamos ''egar a perder los datos e#istentes en ese campo, si @a h!bieramos intro%!ci%o a'g!no. C!anto ms a2anFa%o sea e' gestor %e base %e %atos, menos habit!a' es !e po%amos tener a'g5n prob'ema %e este tipo, pero, en c!a' !ier caso, eso nos m!estra 'a importancia %e tener a7ina%o e' %ise(o antes %e empeFar a intro%!cir %atosG

Ahora @a po%emos entrar a 'a tab'a Bcon %ob'e c'ic, o escogien%o 'a opcin CAbrirD %e' men5 conte#t!a' ,p!'san%o e' botn %erecho %e' ratn,E @ comenFar a intro%!cir registrosG

Por Nacho Cabanes - Pgina %$

Introduccin a las Bases de Datos (0.06)

/e ig!a' 7orma crearAamos 'as otras tab'as, tanto 'a %e a'!mnos @ c!rsos, como 'a !e representa a 'a re'acin CAsistirD. A'go ms a%e'ante 2eremos cmo sacar parti%o a estos %atos. <a gran !ti'i%a% %e 'as bases %e %atos es 'a 7aci'i%a% para rec!perar in7ormacin %e entre m!chAsimos %atos posib'es. &sto 'o conseg!iremos bsicamente con 'as cons!'tas, !e trataremos %esp!"s. 3ambi"n 2eremos entonces cmo %eta''ar 'as re'aciones !e habAamos pre2isto en e' %ise(o.

Creando nuestra BD con -ccess,


&mp'earemos Access .7, !e es !na 2ersin CraFonab'emente antig!aD como para c!a' !ier !s!ario act!a' %e Access !ti'ice a' menos esa, o !na s!perior. L 'os cambios a rea'iFar para 2ersiones posteriores Bo inc'!so anterioresE %eberAan ser mAnimos. A' ig!a' !e hicimos con 6pen677ice.org 8ase, 2amos a %ar por s!p!esto !e @a hemos %ise(a%o n!estra base %e %atos en pape'. &ntonces e' primer paso es e2i%enteG entrar a Access. Nos aparecer !na panta''a como "staG &n e''a se nos preg!nta si !eremos abrir !na base %e %atos @a e#istente Bno es n!estro casoE o bien crear !na n!e2a B !e sA es 'o !e nos interesaE. /entro %e !na Cn!e2aD base %e %atos, tenemos %os opcionesG &mp'ear !n CasistenteD. &ste nos propon%rAa 2arios casos tApicos, con bases %e %atos habit!a'es, nos mostrarAa 'a 'ista %e 'as tab'as !e consi%era a%ec!a%as @ 'os campos !e po%emos inc'!ir Bestos campo sA se p!e%en mo%i7icar, pero no 'as tab'as prop!estasE, nos permitirAa
Por Nacho Cabanes - Pgina %%

Introduccin a las Bases de Datos (0.06)

escoger !na serie %e %ise(os para 7orm!'arios e in7ormes, etc. Veremos estos asistentes ms a%e'ante, c!an%o @a sepamos a'go ms sobre %ise(o, @ c!an%o ha@amos trata%o 'os 7orm!'arios @ 'os in7ormes, %e mo%o !e po%remos comparar 'o !e nosotros habrAamos hecho con 'o !e Access propone. <a otra opcin, 'a !e nosotros emp'earemos, es 'a %e crear !na Cbase %e %atos en blancoD. &sto nos permitir partir C%e ceroD, para in%icar a Access e#actamente !" es 'o !e %eseamos.

&n primer '!gar nos preg!ntar e' nombre !e !eremos %ar a' 7ichero %e base %e %atosG

3ras tec'ear este nombre, 2eremos 'a panta''a principa' %e AccessG &n 'a Fona centra' %e 'a panta''a, 'a CFona %e traba*oD, 2emos !na serie %e pesta(as !e rec!er%an a 'as !e @a habAamos comenta%o para 8aseG 3ab'as, cons!'tas, 7orm!'arios, in7ormes, macros @ m%!'os. &stas %os 5'timas opciones son n!e2as para nosotros, @ tambi"n 'as 2eremos ms a%e'ante. /e momento, 2amos a comenFar por crear las tablas. Para e''o, comprobamos !e nos encontramos en 'a pesta(a 3ab'a B%eberAa ser asAE, @ p!'samos e' botn CN!e2oD Ben estos momentos, %eberAa ser e' 5nico %isponib'eE. Aparecen ms preg!ntas...

Por Nacho Cabanes - Pgina %&

Introduccin a las Bases de Datos (0.06)

Vamos a comentar bre2emente 'as opciones !e tenemosG C!ista 8oja de datosD mostrarAa !na c!a%rAc!'a en 'a !e po%remos empeFar %irectamente a escribir %atos. No es 'o !e nos interesa, @a !e nosotros hemos p'ani7ica%o pre2iamente para !e n!estra base %e %atos se a*!ste 'o ms posib'e a 'o !e rea'mente necesitamos. C!ista diseoD es 'o !e b!scamos nosotros. Nos centraremos en e''a !n poco ms a%e'ante... 'sistente para tablas. Nos mostrarAa 'as tab'as ms 7rec!entes, *!nto con 'os campos !e Access nos recomien%a para ca%a !na %e e''as. A' ig!a' !e e' asistente para bases %e %atos, 'o 2eremos ms a%e'ante, c!an%o tengamos ms conocimientos @ po%amos comparar 'a opinin %e Access con 'a n!estra. Importar tablaG nos permitirAa apro2echar 'os %atos e#istentes en !na tab'a crea%a con otro sistema %e bases %e %atos ms antig!o. Access crearAa !na n!e2a tab'a con campos e !i2a'entes a 'os origina'es, @ con 'os %atos !e esa tab'a contenAa. !incular tablaG es simi'ar a CimportarD, con 'a %i7erencia %e !e no se crea !na n!e2a tab'a en Access, sino s'o !n en'ace a 'a Cantig!aD, %e mo%o !e 'os cambios !e hagamos en 'a antig!a se re7'e*arn en n!estra base %e %atos %e Access Ba cambio, res!'tar a'go ms 'ento, @ %ebemos ''e2ar c!i%a%o %e no borrar 'a tab'a antig!a, ni cambiar s! sit!acin, ni hacer ning!na mo%i7icacin pro7!n%a a s! estr!ct!ra.

&n n!estro caso, %eberemos se'eccionar 'a opcin CVista %ise(oD @ p!'sar e' botn CAceptarD. &ntonces aparece !na panta''a 2acAa en 'a !e, a' ig!a' !e oc!rrAa con 8ase, iremos intro%!cien%o e' nombre %e ca%a campo, e' tipo %e %atos !e contiene, @ Bopciona'menteE !na %escripcin para ese campo B !e aparecerAa en 'a parte in7erior %e 'a panta''a c!an%o e' !s!ario est!2iera intro%!cien%o %atosE.

Por Nacho Cabanes - Pgina %4

Introduccin a las Bases de Datos (0.06)

&n 'a parte in7erior %e 'a panta''a es %on%e in%icamos e' tama(o !e !eremos para ese campo. Por e*emp'o, como se 2e en 'a 7ig!ra anterior, nosotros !eremos !e e' campo /N+ sea te#to con !na 'ongit!% m#ima %e 15 caracteres. )n poco ms a%e'ante 2eremos 'os tipos %e %atos !e nos permite emp'ear Access. Como para esta tab'a s'o necesitaremos !sar campos %e te#to, 2amos antes a %ar 'os pocos pasos !e nos 7a'tan para comp'etar'a. )na 2eF !e ha@amos escrito 'os nombres %e 'os tres campos, s!s tipos %e %atos correspon%ientes @ s!s tama(os, pasamos a in%icar c!a' ser e' campo !e act5e como clave. <o conseg!iremos se(a'an%o e' campo correspon%iente Ben este caso, e' /N+E @ p!'san%o e' botn !e m!estra 'a imagen %e !na ''a2e. A' ig!a' !e oc!rrAa con 8ase, Access mostrar e' %ib!*o %e 'a ''a2e *!nto a ese campo, para in%icarnos !e ese ser e' campo !e act!ar como c'a2eG

Por Nacho Cabanes - Pgina %

Introduccin a las Bases de Datos (0.06)

BNotaG si en !n campo no necesitsemos c'a2e, bastarAa con no in%icar'a ahora, @ respon%er CNoD c!an%o Access nos preg!nte si !eremos !e a(a%a a!tomticamente !na c'a2eE. Para g!ar%ar 'a tab'a, basta con p!'sar 'a O %e s! es !ina s!perior iF !ier%a. Access se %a c!enta %e !e 2amos a cerrar sin g!ar%ar @ nos pi%e con7irmacinG /iremos !e C:AD ten%r 'a tab'aG !eremos g!ar%ar, @ entonces nos preg!ntar e' nombre !e

!ota 'G A' ig!a' !e oc!rrAa con e' nombre %e 'a base %e %atos, e' nombre %e 'a tab'a po%r contener espacios, e(es @ 2oca'es acent!a%as, @ !na 'ongit!% s!perior a 'as ocho 'etras. !ota (G 3ambi"n po%rAamos haber g!ar%a%o sin necesi%a% %e sa'ir, p!'san%o e' botn !e m!estra e' %isSette, en 2eF %e hacer c'ic sobre e' %e 'a O. Mina'mente, 'a panta''a %e traba*o %e Access %eberAa tener !na apariencia simi'ar a "staG

Antes %e seg!ir a2anFan%o con 'as cons!'tas o con otras bases %e %atos %istintas, 2amos a echar !n 2istaFo a 'os tipos de datos !e permite Access. &s esta tab'a s'o hemos emp'ea%o campos %e tipo C3e#toD, pero a' pinchar en 'a casi''a C3e#toD 2emos !e aparece !na 7'echa hacia aba*o, in%icn%onos !e tenemos ms opciones !e po%emos escoger. :i %esp'egamos esta 'ista, aparecen to%os 'os tipos %e %atos !e Access reconoceG

Por Nacho Cabanes - Pgina %6

Introduccin a las Bases de Datos (0.06)

<a ma@orAa %e e''os 'os hemos comenta%o @a, pero 2amos a repasar to%os bre2ementeG 9e/toG 'etras, n5meros @ otros sAmbo'os, con !na 'ongit!% m#ima %e7ini%a, !e no po%r e#ce%er 'os 255 caracteres. :emoG simi'ar a' te#to, pero %e 'ongit!% in%e7ini%a Bms 2ersti' pero ms 'ento !e e' campo 3e#toE. Num1ricoG 2a'ores e#c'!si2amente n!m"ricos, con o sin %ecima'es. *ec8a<=oraG 7echas @Io horas. :onedaG !n 2a'or n!m"rico con pocos %ecima'es pero con m!chas ci7ras signi7icati2as. :e !sar para n5meros Cgran%esD @ con pocos %ecima'es, como 'os !e p!e%e mane*ar !n banco. 'utonum1ricoG !n n5mero !e a!menta a!tomticamente en ca%a n!e2o registroG en e' primer registro 2a'%r 1, en e' seg!n%o 2a'%r 2, @ asA s!cesi2amente. Ka@ gente a 'a !e 'e g!sta !sar este tipo %e campos como c'a2e primaria Ben n!estro caso, po%rAa ser e' c%igo %e a'!mnoE. >i<NoG !n campo !e s'o p!e%e tener !n 2a'or entre esos %os. &s ms correcto !e !sar !na : o !na N B !e serAa !n campo Cte#toD con !na 'ongit!% %e !na 'etraE, por 2arios moti2osG oc!pa menos espacio, no e#istir prob'emas %e ma@5sc!'as @ min5sc!'as, ni si !iera %e Cinternacio, na'iFacinD Bpor e*emp'o, en !n paAs %e hab'a ing'esa, se con2ertirAa a!tomticamente en Les @ NoE. +bjeto +%,G c!a' !ier otro tipo %e ob*eto Cincr!sta%oD, Nos permitir g!ar%ar imgenes, 7ragmentos %e 2i%eo, etc. &so sA, e' tama(o %e' 7ichero res!'tante crecer rpi%amente. B6<& es 'a abre2iat!ra %e C6b*ect <inSing an% &mbe%%ingDE =iperv?nculoG !n en'ace a' esti'o %e 'os !e se emp'ean en +nternet. Asistente para b5s !e%asG nos permitirAa !e en ese campo 'o !e apareciese 7!ese !na 'ista %e 2a'ores pre%e7ini%os. Nosotros !saremos bsicamente 'os c!atro primerosG te#to, n!m"rico, 7echaIhora @ memo.

Por Nacho Cabanes - Pgina %!

Introduccin a las Bases de Datos (0.06)

&' tama(o en 'os campos %e te#to no tiene %i7ic!'ta% Bser e' n5mero %e 'etrasE, pero en 'os campos n!m"ricos sA, por !e Access no 'os mi%e seg5n e' n5mero %e ci7ras, sino seg5n cmo se g!ar%arn rea'mente 'os %atos %entro %e' or%ena%or. Por eso, si escogemos !n tipo %e %atos num1rico @ miramos en 'a casi''a %e Ctama(oD 2eremos !e aparece 'a e#presin C&ntero 'argoD. <os posib'es 2a'ores sonG 8@teG n5meros enteros Bsin %ecima'esE entre 0 @ 255 Bambos inc'!si2eE. &' espacio !e oc!par ser %e !n b@te, como s! nombre in%ica. &nteroG n5meros enteros entre N?2.76= @ ?2.767. 6c!pa 2 b@tes. &ntero 'argoG n5meros enteros entre N2.147.4=?.64= @ 2.147.4=?.647. 6c!pa 4 b@tes. :imp'eG n5meros rea'es Bcon %ecima'esE %e Csimp'e precisinD, con 2a'ores posib'es entre 1,4R10N45 @ ?,4R10?=, con !na precisin %e 7 ci7ras. 6c!pa 4 b@tes. /ob'eG n5meros rea'es %e C%ob'e precisinD, con 2a'ores posib'es entre 1,7.R10?0= @ 4,.4R10,?24, con !na precisin %e 15 ci7ras. 6c!pa = b@tes.

Creando nuestra BD con .in/01,


&' 'eng!a*e >@% es !n 'eng!a*e gen"rico para manip!'ar bases %e %atos, acepta%o por 'a gran ma@orAa %e sistemas %e bases %e %atos act!a'es. !e es

Por eso, me parece m!@ con2eniente !e 2eamos cmo crear n!estra base %e %atos en c!a' !ier gestor %e bases %e %atos !e soporte e' 'eng!a*e :;<. 3ambi"n Access permite emp'ear este 'eng!a*e, pero como @a hemos mane*a%o Access %e 'a 7orma ms senci''a B@ tambi"n 'a ms habit!a'E, !ti'iFaremos otra base %e %atos %istinta. Lo he opta%o por 6in>@% B!na 2ersin @a antig!a, 'a ?.2.7E, !e es !n gestor %e base %e %atos para sistema operati2o 9in%ows, !e se !ti'iFa me%iante 'eng!a*e :;<, @ !e se p!e%e %escargar grat!itamente %es%e +nternetGTTT

Por Nacho Cabanes - Pgina %"

Introduccin a las Bases de Datos (0.06)

A' entrar a 9in:;< se nos preg!nta !" tipo %e bases %e %atos 2amos a !ti'iFar. 3enemos m!chas posibi'i%a%es %istintas, pero po%emos emp'ear 7icheros %e C%8aseD, por e*emp'o. /base es !n gestor %e bases %e %atos antig!o, m!cho ms incmo%o %e mane*ar !e 'os act!a'es, pero !e sent !n estn%ar, @ !e mane*aba 7icheros en !n 7ormato !e soportan m!chos gestores %e bases %e %atos ms mo%ernos.

C!an%o hemos e'egi%o e' 7ormato %e 7icheros, nos aparecer !na 2entana 2acAa, en 'a !e nosotros %eberemos escribir 'as r%enes en lenguaje >@%. Por e*emp'o, para crear n!estra tab'a Ca'!mnosD, en 'a !e tengamos 'os campos %ni B10 'etrasE, nombre B40 'etrasE @ t'7 Bte'"7ono, 15 'etrasE, 'a or%en !e se !sarAa esG
create table alumno $dni char$%&' nombre char$(&' tlf char$%)''

Para !e n!estro e*emp'o !e%e correcto, to%a2Aa 7a'ta a'go. &n 'a tab'a %e 'os Ca'!mnosD, !erAamos !e e' /N+ act!ase como c'a2e primaria. &sto, en 'a ma@orAa %e 'as 2ersiones %e :;< se conseg!irAa a(a%ien%o 'a sig!iente 'Anea a' 7ina' %e 'a or%en anterior Bantes %e' 5'timo par"ntesisEG
primary key $dni'

Pero res!'ta !e 9in:;< !sa e' CmotorD %e bases %e %atos crea%o por 0icroso7t Be' mismo !e emp'ea AccessE, !e tiene a'g!na Bpe !e(aE %i7erencia %e sinta#is con e' :;< estn%ar, %e manera !e ten%remos !e hacer'o %e otra 7orma.
Por Nacho Cabanes - Pgina %#

Introduccin a las Bases de Datos (0.06)

<a manera !ti'iFa%a por 9in:;< es in%ican%o esa c'a2e primaria como !na CrestriccinD BCconstraintDE, asAG
create table alumno $dni char$%&' nombre char$(&' tlf char$%)' constraint dni primary key) '

N!estra 2entana %e traba*o %e 9in:;< %eberAa estar !e%an%o como "staG

&n c!a' !ier caso, 9in:;< respon%er con !n mensa*e !e nos in%ica !e 'o ha hecho, pero !e no ha@ %atos !e mostrar en panta''a. &stos mensa*es %e resp!esta aparecen en 'a pesta(a C-es!'tD, !e pasa a ser 'a pesta(a 2isib'e ca%a 2eF !e escribimos !na or%en @ p!'semos e' botn C-!n ;!er@D Be' %e' tring!'o 2er%e, !e hace !e se procese 'a or%en !e hemos tec'ea%oE. A 'a hora %e aadir datos, se !sa 'a or%en CinsertD. :! 7orma ms senci''a consiste en in%icar e' nombre %e 'a tab'a, @, entre par"ntesis, 'os 2a'ores para ca%a !no %e 'os campos, en e' or%en en !e 'os habAamos %e7ini%o a' crear 'a tab'aG
insert into alumno values $*)))* *+uan* *%%%,%%,%%*'

<os 2a'ores 'os hemos in%ica%o entre comi''as por !e son te#to Bca%enas %e caracteresEQ si a'g!no %e 'os campos 7!era n!m"rico, no habrAa !e poner esas comi''as.

Por Nacho Cabanes - Pgina &0

Introduccin a las Bases de Datos (0.06)

Como hemos a(a%i%o !n registro, 9in:;< nos respon%er %icien%o !e !na 7i'a %e 'a tab'a se ha 2isto a7ecta%o por estos cambiosG

:ig!ien%o este mismo es !ema po%rAamos a(a%ir a'g!na 7icha ms.


insert into alumno values $*)-.* *+ose* *///,//,/0*'

Mina'mente, po%emos visuali"ar los datos obteni%os. Para e''o se emp'ea 'a or%en CselectDG
select 1 from alumno

&sta or%en mostrar to%os 'os %atos Bes 'o !e se in%ica con e' asterisco UE %e 'a tab'a ''ama%a Ca'!mnoD. 6bten%rAamos !n res!'ta%o pareci%o a "steG
23I ))) )-. 345678 +uan +ose 9:; %%%,%%,%% ///,//,00

,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,

/ 7o<$s' affected

3ambi"n po%rAamos pe%ir !e se nos m!estre s'o a'g!no %e 'os campos. Por e*emp'o, si !eremos 2er primero e' te'"7ono @ '!ego e' nombre B@ !e no se m!estre e' /N+E escribirAamos
select tlf nombre from alumno
Por Nacho Cabanes - Pgina &$

Introduccin a las Bases de Datos (0.06)

@ 'a resp!esta serAa a'go comoG


tlf %%%,%%,%% ///,//,00 nombre +uan +ose

,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,

/ 7o<$s' affected

<a or%en Cse'ectD permite hacer m!chas ms cosas, pero 'as 2eremos a s! %ebi%o tiempo, c!an%o tratemos 'a 7orma %e rea'iFar cons!'tas a partir %e 'os %atos.

n se%undo e"e!plo paso a paso


Enunciado del se%undo e"e!plo
Ahora 2eamos !n seg!n%o prob'emaG
Se desea informatizar un videoclub. 8n el se dispone de diversas pel=culas que los clientes pueden alquilar. 2e cada pel=cula puede haber m>s de un e?emplar. 8stos e?emplares pueden estar en el mismo formato $@AS 2@2 6eta etc.' o en formatos distintos. Bueremos poder saber detalles como las pel=culas que tiene alquiladas un cierto cliente C desde qu fecha o las que hab=a alquilado con anterioridad o las veces que se ha alquilado una cierta pel=cula o cuando es la Dltima vez que se alquilE o cuantas pel=culas se han alquilado en formato 2@2#.

Diseo del se%undo e"e!plo


Po%rAa ser simp'emente a'go asA Ba 7a'ta %e %eta''ar 'os atrib!tosEQ

Por Nacho Cabanes - Pgina &%

Introduccin a las Bases de Datos (0.06)

I!ple!entacin del se%undo e"e!plo


BAparta%o to%a2Aa no %isponib'eE.

2isuali3ando datos4 consultas bsicas 5 relaciones


Consultas bsicas en /016 con .in/01
La hemos comenta%o 'a 7orma en 'a !e se rea'iFarAa !na cons!'ta bsica en 'eng!a*e :;<G para mostrar to%os 'os campos %e 'a tab'a Ca'!mnoD, !sarAamos 'a or%en Cse'ectDG
select 1 from alumno

@ para mostrar s'o 'os 2a'ores %e a'g!nos %e 'os campos, %eta''arAamos c!a'es son %ichos campos antes %e 'a pa'abra C7romDG
select tlf nombre from alumno

Pero norma'mente no nos interesar 2er to%as 'as 7ichas BregistrosE !e contiene 'a tab'a, sino s'o a !e''as !e c!mp'en !na cierta con%icin. &sta con%icin se in%ica %esp!"s %e 'a pa'abra CwhereD, asAG
Por Nacho Cabanes - Pgina &&

Introduccin a las Bases de Datos (0.06)

select 1 from alumno where nombre F *+uan*

Con CVD nos respon%er !" 7ichas contienen e#actamente ese 2a'or. 6tras comparaciones posib'es sonG :Ambo'o V W X WV XV XW :igni7ica%o +g!a' a 0a@or !e 0enor !e 0a@or o ig!a' !e 0enor o ig!a' !e /istinto %e

&*emp'os %e s! !so po%rAan ser


select 1 from alumno where edad GF %H select nombre from alumno where numeroAermanos I / select nombre ciudad from alumno where ciudad IG *5adrid*

C!an%o b!scamos !n te#to, es 7rec!ente !e no nos interese 'oca'iFar !n cierto te#to e#actamente, sino !e s'o conoFcamos parte %e ese te#to. :erAa e' caso %e Ca'!mnos c!@o nombre empieFa por HD, o Cpersonas !e tienen <peF como primer ape''i%oD, o C%omici'ios en 'os !e aparece 'a pa'abra 8arce'onaD. Para e''o se emp'ea 'a pa'abra C'iSeD, se %eta''a 'a parte %e con%icin !e sabemos @ se !sa e' sAmbo'o Y para 'a parte %e 'a con%icin !e no sabemos. Por e*emp'o para Ca'!mnos c!@o nombre empieFa por HD harAamosG
select 1 from alumno where nombre like *+J*

Para Ca'!mnos c!@o nombre termina en eD serAa


select 1 from alumno where nombre like *Je*

L para Cnombre %e 'os a'!mnos en c!@o %omici'io apareFca 'a pa'abra 8arce'onaD po%rAa ser
select nombre from alumno where domicilio like *J6arcelonaJ*

Por Nacho Cabanes - Pgina &4

Introduccin a las Bases de Datos (0.06)

Mina'mente Bpor ahoraE, con2iene in%icar !e 'os res!'ta%os %e esta cons!'ta 'os po%emos obtener or%ena%os n!m"ricamente B%e menor a ma@or 2a'orE o a'7ab"ticamente B%e 'a A a 'a ZE si a(a%imos a' 7ina' Cor%er b@D seg!i%o %e' nombre %e' campo !e !eremos !sar para esa or%enacinG
select 1 from alumno where ciudad F *5adrid* order by nombre

6 po%emos or%enar %e manera %escen%ente B'os n5meros %e ma@or a menor @ 'os te#tos %e 'a Z a 'a AE @ !samos Cor%er b@ .. %escDG
select 1 from alumno order by nombre desc

Vo'2eremos ms a%e'ante para 2er cmo rea'iFar cons!'tas ms e'abora%as %es%e :;<, pero antes 2eamos 'a 7orma en !e se conseg!irAa esto mismo %es%e Access.

Consultas sencillas con -ccess


Para rea'iFar cons!'tas con Access, po%emos emp'ear tambi"n e' 'eng!a*e :;<, pero antes 'o haremos %e otra manera !e res!'ta ms C2is!a'D. ComenFaremos por entrar a 'a pesta(a CCons!'tasDG

/es%e a !A, haremos c'ic en e' botn CN!e2oD, para crear !na n!e2a cons!'ta. Nos preg!ntar si !eremos basarnos crear !na cons!'ta %es%e 'a CVista /ise(oD o !ti'iFar a'g!no %e 'os asistentes %isponib'es. Nosotros emp'earemos 'a 2ista %e %ise(o.

Por Nacho Cabanes - Pgina &

Introduccin a las Bases de Datos (0.06)

&ntonces aparecer !na 2entana en 'a !e se nos m!estran 'as tab'as !e tenemos %ispo, nib'es en n!estra base %e %atos, @ %e 7on%o 'a c!a%rAc!'a 2acAa %e 'o !e ser n!estra con, s!'ta. /eberemos ir se(a'an%o ca%a !na %e 'as tab'as !e !ere, mos !e 7orme parte %e n!estra cons!'ta, @ p!'san%o e' botn CAgregarD. &n n!estro caso, to%a2Aa es senci''o, por !e s'o tenemos !na tab'a. C!an%o ha@amos inc'!i%o to%as. P!'samos e' botn CCerrarD @ 2emos !na panta''a en 'a !e se nos m!estra en 'a parte s!perior 'aBsE tab'aBsE !e hemos escogi%o @ en 'a parte in7erior 'o !e ser 'a %e7inicin %e 'a cons!'ta, to%a2Aa 2acAa.

P!es @a s'o !e%a 'o ms 7ci'G Para in%icar !" campos !eremos !e se m!estren @ en !" or%en, 2amos hacien%o %ob'e c'ic sobre ca%a !no %e e''os, @ aparecern en ca%a !na %e 'as co'!mnas %e n!estra cons!'ta. Para in%icar e' 2a'or !e %ebe tener !n cierto campo, 'o escribimos en 'a 7i'a CCriteriosD. :i !eremos !e a'g5n campo se emp'ee para or%enar 'os res!'ta%os, e'egimos CAscen%enteD o C/escen%enteD en 'a 7i'a C6r%enD.

Por Nacho Cabanes - Pgina &6

Introduccin a las Bases de Datos (0.06)

&staremos obtenien%o a'go pareci%o a

Para 2er e' res!'ta%o %e esta cons!'ta, hacemos c'ic en e' botn C&*ec!tarD %e 'a barra %e tareas.

Consultas en /016 con -ccess


Crear cons!'tas con Access emp'ean%o e' 'eng!a*e :;< es 7ci', a!n !e ha@ !e %ar !n par %e pasos ms para empeFarG &ntramos a 'a pesta(a %e cons!'tas. P!'samos e' botn N!e2o @ escogemos Vista /ise(o, ig!a' !e antes. A(a%imos a'g!na tab'a, tambi"n a' ig!a' !e antes. P!'samos e' primer botn %e 'a barra %e herramientas BVistaE @ escogemos 'a CVista :;<DG

Mina'mente, tec'eamos 'a or%en !e nos interese

Por Nacho Cabanes - Pgina &!

Introduccin a las Bases de Datos (0.06)

Introduccin a las relaciones 5 a su uso desde -ccess,


<as re'aciones es 'a 7orma %e in%icar a Access !e c!an%o hab'amos %e' Cc%igo %e pro2inciaD en 'a tab'a %e C'ientes @ %e' Cc%igoD en 'a tab'a %e Pro2incias, nos estamos re7irien%o rea'mente a 'a misma cosa, %e mo%o !e ese %ato 2a a ser e' !e re'acione ambas tab'as. &s %ecir, !e si %ecimos !e !n c'iente 2i2e en 'a pro2incia ?, @ en 'a tab'a %e pro2incias %eta''amos !e e' c%igo ? correspon%e a A'icante, %es%e e' momento en !e creemos 'a re'acin, Access sabr !e ese ? en C'ientes @ ese ? en Pro2incias se re7ieren a 'o mismo, @, por tanto, !e ese c'iente 2i2e en A'icante. <a 7orma %e in%icar esto a Access es 'a sig!ienteG P!'samos e' botn -e'aciones.

Nos mostrar 'as tab'as !e tenemos %isponib'es, para !e esco*amos 'as !e !eremos re'acionar..

<as !e se'eccionemos aparecern en panta''a, *!nto con 'os nombres %e s!s camposG

Por Nacho Cabanes - Pgina &"

Introduccin a las Bases de Datos (0.06)

/e esos campos !e sabemos !e se re7ieren a !na misma cosa, pinchamos @ arrastramos !no %e e''os hasta e' otro Bpor e*emp'o, e' CCo%Pro2inciaD %e 'a tab'a %e a'!mnos hasta e' Cc%igoD %e 'a tab'a %e pro2inciasE. Aparecer !na 2entana en 'a !e Access nos pi%e !e con7irmemos c!a'es son 'os %os campos !e estn re'aciona%osG

C!an%o p!'semos e' botn CcrearD, aparecer !na ra@a !nien%o esos %os campos, con 'o !e Access nos in%ica !e ha enten%i%o n!estra peticinG

Pero 7a'tan !n par %e %eta''es %e 'a 2entana anterior !e hemos pasa%o por a'toG <a casi''a %e C&#igir integri%a% re7erencia'D se encargarAa %e a2isarnos si intentamos tec'ear en 'a tab'a %e a'!mnos !n c%igo %e pro2incia !e no e#iste en 'a tab'a %e pro2incias, para e2itar incongr!encias en 'os %atos B'a integri%a% re7erencia' en senti%o estricto tambi"n a7ecta a mo%i7icaciones @ borra%os, pero nosotros no entraremos en tanto %eta''eE. &' botn C3ipo %e combinacinD m!estra 'a preg!nta !e aparece a 'a %erecha, @ !e se e#p'ica por sA so'aG

Por Nacho Cabanes - Pgina &#

Introduccin a las Bases de Datos (0.06)

1istados e in+or!es desde -ccess,


<os in7ormes son 'a 7orma ms cmo%a %e 2o'car 'a in7ormacin a pape' c!an%o se emp'ea Access, e' e !i2a'ente %e 'os 'ista%os C%e to%a 'a 2i%aD. Po%rAamos imprimir %irectamente e' conteni%o %e !na tab'a, o e' res!'ta%o %e !na cons!'ta, pero 'a presentacin es !n poco pobre. Para me*orar esa apariencia se emp'ean 'os in7ormes. &so sA, !n in7orme %e Access no permite Chacer preg!ntasD sobre 'os %atos, sino !e esas preg!ntas 'as %eberemos hacer con !na cons!'ta pre2ia. &s %ecir, si n!estro *e7e nos %ice ChaFme !n in7orme con 'os nombres, %irecciones @ te'"7onos %e to%os 'os c'ientes !e tenemos en 8arce'onaD, nosotros %eberemos %ar %os pasosG 1. Crear !na cons!'ta, !e tome to%os 'os %atos %e n!estros c'ientes @ m!estre s'o a !e''os c'ientes !e c!mp'en 'a con%icin b!sca%a. 2. A partir %e esta cons!'ta, crear !n in7orme !e m!estre s'o 'os campos !e nos interesen @ con 'a apariencia !e nos g!ste. &' primer paso @a 'o conocemos, asA !e 2amos a 2er cmo se %arAa e' seg!n%oG 'a creacin %e' in7orme. &ntramos a 'a pesta(a %e C+n7ormesD @ p!'samos e' botn CN!e2oD. :e nos preg!ntar cmo !eremos crear este in7ormeG %es%e 'a 2ista %e %ise(o, con !n asistente, !n in7orme a!tomtico, o !nos asistentes especA7icos para crear gr7icos o eti !etas. &n n!estro caso, !saremos e' asistente, !e nos g!iar paso a paso para crear !n in7orme persona'iFa%o %e 7orma senci''a.

Por Nacho Cabanes - Pgina 40

Introduccin a las Bases de Datos (0.06)

<a primera preg!nta !e nos hace este asistente es !" campos !eremos !e apareFcan, @ %e !" tab'a se 2an a tomar. +nsisto en !e po%emos in%icar !e nos m!estre s'o a'g!nos campos, pero no po%emos pe%ir !e 'os %atos c!mp'an ciertas con%icionesG %e eso se encarga 'a cons!'ta.

Para in%icar 'os campos !e !eremos a(a%ir, basta ir se'eccionn%o'os en or%en @ p!'san%o 'a 7'echa W, !e har !e apareFcan en e' 'a%o %erecho Bcampos se'ecciona%osE. :i !eremos a(a%ir to%os, 'a 7orma ms rpi%a es p!'sar 'a %ob'e 7'echa BWWE. /e ig!a' manera, po%emos e'iminar c!a' !iera %e 'os campos se'ecciona%os si hacemos c'ic en 'a 7'echa hacia 'a iF !ier%a BXE, o e'iminar to%os e''os p!'san%o en 'a %ob'e 7'echa hacia 'a iF !ier%a BXXE. A contin!acin nos preg!nta si !eremos agr!par 'os %atos %e a'g!na 7orma. Por e*emp'o, nos p!e%e interesar !e n!estros c'ientes apareFcan agr!pa%os seg5n 'a ci!%a% en 'a !e 2i2an. A%ems po%rAamos in%icar !e rea'iFara a'g!na operacin con 'os %atos !e se han agr!pa%o. Por e*emp'o, %esp!"s %e 'os %atos %e ca%a ci!%a% nos p!e%e aparecer 'a s!ma %e 'os 2a'ores %e !n cierto campo, para obtener, por e*emp'o, 'a s!ma %e 'os importes %e 'as 2entas rea'iFa%as a c'ientes %e ca%a ci!%a%. 3ambi"n ha@ otras operaciones %isponib'es como e' prome%io Bnota me%ia %e n!estros a'!mnos, estat!ra me%ia, etcE. A estas posibi'i%a%es ''egamos con e' botn C6pciones %e agr!pamientoD.

Por Nacho Cabanes - Pgina 4$

Introduccin a las Bases de Datos (0.06)

<a sig!iente preg!nta es si !eremos or%enar 'os registros !e aparecern en e' in7orme. &n caso a7irmati2o, %eberemos in%icar en !" campos !eremos !e se base Bpor e*emp'o, por ape''i%os @ en seg!n%o '!gar Nsi coinci%en 'os ape''i%os, por nombreE. )na obser2acinG :i hemos pe%i%o !e 'os %atos se agr!pen, 'os gr!pos aparecern or%ena%os, @ con esta opcin or%enarAamos a s! 2eF 'a in7ormacin !e aparece %entro %e ca%a gr!po. /esp!"s nos preg!ntar 'a %istrib!cin g'oba' !e ten%rn 'os %atos en e' in7orme, @ nos mostrar !n pe !e(o e*emp'o %e cmo !e%arAa ca%a !na %e e''asG

Mina'mente nos pi%e 'a apariencia, en c!anto a combinacin %e co'ores @ tipos %e 'etra, !e ten%r n!estro in7orme, @ !e tambi"n escogeremos entre 2arias pre%e7ini%as.

Por Nacho Cabanes - Pgina 4%

Introduccin a las Bases de Datos (0.06)

La est 'isto. Nos pi%e !n nombre @ nos preg!nta si %eseamos 2er cmo !e%arAa e' in7orme BC2ista pre2iaDE o mo%i7icar s! %ise(o. &n principio, s!pon%remos !e nos basta con 2er'o, @ ms a%e'ante 2eremos cmo mo%i7icar e' %ise(o. )n 5'timo %eta''eG e' in7orme !e%a a'macena%o, @ 'o po%emos 2o'2er a 2er simp'emente hacien%o %ob'e c'ic en s! nombre. Pero Bcomo parece 'gicoE, e' in7orme no mostrar siempre 'os mismos %atosG se reca'c!'a ca%a 2eF !e pi%amos !e nos 'o m!estre, %e mo%o !e 'os %atos !e 2eamos en panta''a sern siempre 'os act!a'es, inc'!@en%o 'os 5'timos registros !e ha@amos a(a%i%o @ 'as 5'timas mo%i7icaciones !e po%amos haber rea'iFa%o.

n tercer e"e!plo paso a paso,


Enunciado del tercer e"e!plo,
6tro msG
Bueremos informatizar una colecciEn de art=culos que se encuentran repartidos en distintas revistas C publicaciones que conservamos. 8xisten art=culos de diversos temas. Kada revista tiene asociada una ubicaciEn $por e?emplo una estanter=a' que es donde podremos encontrarla cuando la necesitemos. 3os puede interesar obtener listados de art=culos a"rupados por temas C!o por revistas art=culos de un cierto tema publicados entre dos fechas art=culos de un determinado autor etc.#

Diseo del tercer e"e!plo,


BPor ahora, to%a2Aa !e%a prop!esto como e*ercicioE.

Por Nacho Cabanes - Pgina 4&

Introduccin a las Bases de Datos (0.06)

I!ple!entacin del tercer e"e!plo,


BAparta%o to%a2Aa no %isponib'eE.

7or!ularios de introduccin de datos con -ccess,


BAparta%o to%a2Aa no %isponib'eE.

*tras notaciones en Entidad#$elacin,


BAparta%o to%a2Aa no %isponib'eE.

*tras posibilidades,,,
;!ieres !e este te#to hab'e ms sobre e' %ise(o %e 7orm!'arios e in7ormes con Access$ 6 'as macros$ 6 'os m%!'os$ 6 !e pro7!n%ice ms en :;<$ -e'aciones ternarias, !narias @ ms %eta''es sobre &nti%a%,-e'acin$ 6tros mo%e'os %e %atos$ A'go sobre norma'iFacin$ :i s" !" es 'o !e ms interesa a 'a gente, po%r" hacer !e este te#to sea ms 5ti'.

2ersiones de este texto


<a 5'tima 2ersin %e este c!rso estar %isponib'e en mi pgina 9eb, en 'a %ireccinG
http:!!<<<.nachocabanes.com

&ste te#to es C5racias6are3. &sto !iere %ecir !e si te g!sta @Io te res!'ta 5ti', basta con !e me man%es !n correo e'ectrnico a mi %ireccin nacho[arroba\nachocabanes.com :i 2eo !e tengo apo@o mora', proc!rar" ir me*oran%o este te#to @ 'anFan%o n!e2as 2ersiones, ca%a 2eF ms amp'ia%as. <as versiones e/istentes hasta 'a act!a' han si%oG 0.06, 10 Agosto 2007. -eescrito e' aparta%o !e antes hab'aba %e :tar8ase para hab'ar %e 6pen677ice.org 8ase. 6c!pa 46 pginas. 0.05, 20 &nero 200?. A(a%i%o !n s!baparta%o sobre cmo rea'iFar cons!'tas senci''as en 'eng!a*e :;< con Access, !na intro%!ccin a 'as re'aciones con Access, !n aparta%o sobre in7ormes con Access @ cmo po%rAa ser e' %ise(o %e' seg!n%o e*emp'o. 6c!pa 46 pginas.
Por Nacho Cabanes - Pgina 44

Introduccin a las Bases de Datos (0.06)

0.04, 0? 6ct!bre 2002. -e%!ci%o 'igeramente e' tama(o %e' tipo %e 'etra !ti'iFa%o @ e' tama(o %e a'g!na imagen, con 'o !e e' n5mero %e pginas inicia' %e' %oc!mento ba*a %e ?= a ??. A(a%i%o !n s!baparta%o sobre cmo rea'iFar cons!'tas senci''as %es%e e' 'eng!a*e :;<, emp'ean%o 9in:;<, @ otro sobre cons!'tas senci''as %es%e Access. -eescrito a'g5n prra7o b!scan%o ma@or c'ari%a%. 6c!pa 7ina'mente ?= pginas. 0.0?, 2. H!'io 2001. A(a%i%o !n s!baparta%o sobre cmo crear 'as tab'as %es%e e' 'eng!a*e :;<, emp'ean%o 9in:;<. Prop!esto e' en!ncia%o %e' seg!n%o e*emp'o, !e to%a2Aa no est res!e'to. A(a%i%a !na nota sobre !e e#isten otras notaciones para e' mo%e'o &nti%a%,-e'acin, a!n !e to%a2Aa no he %a%o ms %eta''es sobre e''as. 6c!pa ?= pginas. 0.02, 1? :eptiembre 2000. A(a%i%o !n s!baparta%o sobre cmo crear 'as tab'as con Access. -e2isa%a 'a ortogra7Aa, para e2itar a'g!na errata como C%irecotrioD, Caritm"ricasD o Cinc!soD. Cambia%a 'a n!meracin %e 'as pginas Bpara !e 'a porta%a no c!ente como pgina 1E. 6c!pa ?? pginas. 0.01, 07 Agosto 2000. Primera 2ersin, oc!pa 25 pginas Binc'!@en%o An%icesE @ contiene 'os tres primeros aparta%os Bintro%!ccin, nociones bsicas %e %ise(o, con2irtien%o e' %ise(o a tab'asE, hasta e' s!baparta%o %e cmo crear 'as tab'as con :tar8ase. <as pr/imas mejoras sernG 0s %eta''es sobre 'as cons!'tas. Cmo re7'e*ar 'as re'aciones en 'a base %e %atos. +ntro%!ccin a 'os 7orm!'arios @ 'os in7ormes. Cmo crear 'as tab'as con %8ase +++> @ otras bases %e %atos Cantig!asD.

Por Nacho Cabanes - Pgina 4

Introduccin a las Bases de Datos (0.06)

8ndice -l+abtico,
Access, consultas......................................................35 Alfanumrico............................................................12 atributos...................................................................... 9 Autonumrico...........................................................13 base de datos relacional..............................................4 campo......................................................................... 4 campos........................................................................9 Carcter.................................................................... 12 clave..........................................................................10 clave alternativa........................................................10 clave principal.......................................................... 10 c di!o....................................................................... 10 c di!o postal.............................................................13 Consultas bsicas en "#$........................................ 33 Consultas en "#$, con Access.................................3% Consultas sencillas con Access................................ 35 &&'............................................................................ ( &ntidad)'elaci n &*tendido.......................................( entidades.................................................................%, 9 +ec,a.................................................................. 13, 14 fic,a............................................................................ 4 from.......................................................................... 33 -racias.are............................................................... / informes....................................................................40 li0e............................................................................ 34 listados......................................................................40 $ !ico.......................................................................14 1emo........................................................................14 2umrico.................................................................. 13 order b3.....................................................................35 re!istro........................................................................4 relaciones....................................................................% select.........................................................................33 "#$, consultas..........................................................33 tabla............................................................................ 4 telfono.....................................................................13 4e*to...................................................................12, 13 tipos de datos............................................................ 12 5,ere........................................................................ 33

Por Nacho Cabanes - Pgina 46

También podría gustarte