Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introduccion Bases de Datos Nacho Cabanes
Introduccion Bases de Datos Nacho Cabanes
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