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 Direcc Ciudad Tlf
Hos" CI -ana, 1 A'icante 111,11,11
Hes5s CI :apo, 2 0a%ri% 222,22,22
H!an CI 8oa, ? 8arce'ona ???,??,??
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 aora...
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.
(!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 "
-e'acin 1G1
&nti%a%
-e'acin 1G0
-e'acin 0G0
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
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
/N+
Nombre
/ireccin
Ci!%a%
3e'"7ono
Conocimientos
:!e'%o
C!enta bancaria
C!rsosG
Nombre %e' c!rso
Por Nacho Cabanes - Pgina #
A'!mnos
C!rsos
+mpartir Asistir
Pro7esores
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
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 $$
A'!mnos
C!rsos
+mpartir Asistir
Pro7esores
/N+
/N+
Co%C!rso
Nombre
Nombre
Nombre
Mecha+ni
/irecc 3e'e7
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 aora...
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
C%igo Bc'a2eE
Nombre %e' c!rso
Mecha %e comienFo
/N+ %e' pro7esor
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 $%
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 !eremos g!ar%ar, @ entonces nos preg!ntar e' nombre !e
ten%r 'a tab'aG
!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,4R10
N45
@ ?,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, !e es
acepta%o por 'a gran ma@orAa %e sistemas %e bases %e %atos act!a'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 9:;
,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,
))) +uan %%%,%%,%%
)-. +ose ///,//,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 nombre
,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,
%%%,%%,%% +uan
///,//,00 +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 :igni7ica%o
V +g!a' a
W 0a@or !e
X 0enor !e
WV 0a@or o ig!a' !e
XV 0enor o ig!a' !e
XW /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
cdi!o....................................................................... 10
cdi!o postal.............................................................13
Consultas bsicas en "#$........................................ 33
Consultas en "#$, con Access.................................3%
Consultas sencillas con Access................................ 35
&&'............................................................................ (
&ntidad)'elacin &*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