Вы находитесь на странице: 1из 46

Introduccin a las Bases de Datos

Por Nacho Cabanes, ncabanes@pobox.com,

Versin 0.05, Enero 2003

Introduccin a las Bases de Datos (0.05)

Introduccin. .......................................................................................................... 5 Conceptos bsicos. ................................................................................... 5 Por q ! este texto" ................................................................................. # Con$iciones $e so.................................................................................. # Nociones bsicas de diseo. ................................................................................. 7 Etapas bsicas $e% $ise&o. ....................................................................... ' (n primer e)emp%o................................................................................... ' *ntro$ ccin a% mo$e%o Enti$a$+,e%acin. ............................................ .ia/rama EE, $e n estro e)emp%o......................................................... Convirtiendo el diseo a tablas. .........................................................................11 0!to$o /enera%. ......................................................................................11 Con2irtien$o a tab%as n estro e)emp%o. ................................................12 3ipos $e $atos existentes........................................................................14 Prob%emas q e hemos e2ita$o con n estro $ise&o. .............................14 Prob%emas q e a5n tiene n estro $ise&o. .............................................15 Crean$o %a base $e $atos con 6tar7ase 86tar9::ice;. ............................1# Crean$o n estra 7. con <ccess. ...........................................................22 Crean$o n estra 7. con =in6>?. ........................................................2@ Crean$o n estra 7. con $7ase ***A. .....................................................32 Un segundo ejemplo paso a paso. ......................................................................3 En ncia$o $e% se/ n$o e)emp%o. ..........................................................32 .ise&o $e% se/ n$o e)emp%o. .................................................................33 *mp%ementacin $e% se/ n$o e)emp%o. .................................................33 !isuali"ando datos# consultas bsicas $ relaciones..........................................33 Cons %tas bsicas en 6>?, con =in6>?. ..............................................33 Cons %tas senci%%as con <ccess. .............................................................35 Cons %tas en 6>?, con <ccess. ..............................................................3' *ntro$ ccin a %as re%aciones B a s so $es$e <ccess.........................3@ %istados e in&ormes desde 'ccess.......................................................................() Un tercer ejemplo paso a paso.............................................................................(3 En ncia$o $e% tercer e)emp%o. ...............................................................43 .ise&o $e% tercer e)emp%o. ......................................................................43 *mp%ementacin $e% tercer e)emp%o. ......................................................44

Por Nacho Cabanes - Pgina 3

Introduccin a las Bases de Datos (0.05)

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

Por Nacho Cabanes - Pgina

Introduccin a las Bases de Datos (0.05)

Introduccin.
Conceptos bsicos.
En e% senti$o ms amp%io, se po$rCa consi$erar q e n con) nto $e in:ormacin. na base $e $atos es simp%emente

En n or$ena$or, esta in:ormacin norma%mente ser bsicamente na serie $e D:ichasE. Por e)emp%o, na base $e $atos m B senci%%a po$rCa ser na a/en$a $e $irecciones en %a q e anotemos $atos $e n estros ami/os. 3en$rCamos na :icha para ca$a no $e estos ami/os. En ca$a :icha, a s 2eF, existir na serie $e aparta$os, como e% nombre, %a $ireccin, e% te%!:ono, etc. Esto nos permite intro$ cir $os primeros conceptos q e ti%iFaremosG ca$a na $e estas D:ichasE recibe e% nombre $e DregistroE, B ca$a no $e %os Daparta$osE q e componen %as :ichas se %%ama DcampoE. E% con) nto $e %as :ichas 8re/istros; :orma n Db%oq eE $e in:ormacin, q e %%amaremos Dtabla3, B q e se s e%e representar escribien$o ca$a :icha 8re/istro; en na :i%a B ca$a aparta$o 8campo; en na co% mna, asCG Nombre Hos! Hes5s H an Direcc CI ,ana, 1 CI 6apo, 2 CI 7oa, 3 Ciudad <%icante 0a$ri$ 7arce%ona Tlf 111+11+11 222+22+22 333+33+33

Pero en %a prctica, na Dbase de datosE rea% s e%e estar :orma$a por ms $e na tab%a. Por e)emp%o, %a base $e $atos q e ti%iFa na empresa Dnorma%E para s /estin $eber a%macenar $atos sobre c%ientes, pro2ee$ores, artCc %os, :act ras, etc. Ca$a no $e estos Db%oq esE $e $atos ser na tab%a, B estas tab%as estarn re%aciona$as entre sC 8por e)emp%oG n artCc %o ser s ministra$o por n cierto pro2ee$or, B ese artCc %o aparecer en ciertas :act ras, ca$a na $e %as c a%es correspon$er a n cierto c%iente;. 3o$o este con) nto $e in:ormacin q e :orman %as tab%as B %as re%aciones entre e%%as 8B a%/ na cosa ms q e Ba 2eremos; ser n estra Dbase $e $atosE. En concreto, se tratar $e %o q e se conoce como na Dbase de datos relacionalE. En este texto 2eremos %as nociones bsicas $e cmo se crea B se mane)a na base $e $atosG cmo $ise&ar %as tab%as B %as re%aciones, cmo intro$ cir %os $atos B como b scar in:ormacin en %a base $e $atos. *ntentar! ap%icar%o a a%/ na $e %as bases $e $atos ms habit a%es, como <ccess para =in$oJs 8para q ien ten/a n or$ena$or Dmo$ernoE; o $7ase ***A 8para %os q e ten/an n or$ena$or Danti/ oE;. 3ambi!n $ar! nas nociones bsicas $e %en/ a)e 6>?, n %en/ a)e $e cons %ta a bases $e $atos q e %a maBorCa $e %os sistemas act a%es permiten ti%iFar.

Por Nacho Cabanes - Pgina 5

Introduccin a las Bases de Datos (0.05)

Por qu este texto?


Este texto no es para in&ormticos. 0e exp%icoG 2oB a pro: n$iFar m cho menos $e %o q e se po$rCa exi/ir a n in:ormtico D$e carreraE, inc% so c an$o apenas acaba $e comenFar s s est $ios. 6i a a%/5n est $iante $e in:ormtica %e res %ta $e ti%i$a$, me sentir! m B ha%a/a$o, pero q e na$ie espere aprobar asi/nat ras $e ni2ersi$a$ s%o con este texto. No tratar! apenas conceptos bsicos, ni %os req isitos q e $ebe c mp%ir n 6K7. 8sistema $e /estin $e bases $e $atos; rea% mCnimamente /ran$e, ni %a norma%iFacin, ni otros mo$e%os $istintos $e% Enti$a$+ ,e%acin, ni siq iera 2eremos b ena parte $e %as posibi%i$a$es $e este mo$e%o. Este es n texto para a&icionados q e q ieran hacer s s peq e&os proBectos. Pero insisto en %o $e Dpeq e&os proBectosEG n proBecto $e na cierta en2er/a$ ra $eberCa $e)arse en manos $e n in:ormtico D$e carreraE, porq e n simp%e error $e $ise&o nos p e$e hacer per$er m cho tiempo, B si %a base $e $atos %a hemos crea$o para na empresa 8por peq e&a q e sea;, ese tiempo per$i$o es $inero per$i$o. Pero es q e, ms $e na 2eF, he teni$o Bo mismo q e parchear bases $e $atos crea$as por a:iciona$os 8B %o $e Da:iciona$osE no %o $i/o en tono peBorati2o sino con respeto B a$miracin;, B he per$i$o m cho tiempo en intentar apro2echar %os $atos existentes B a$aptar%os para q e : eran e:icientes. 6i se h bieran $ise&a$o apenas (N P9C9 me)or, habrCan si$o 0(CL9 ms 2ersti%es, ms :ci%es $e corre/ir B amp%iar, oc pa$o menos espacio, etc. Por eso, comentar! a%/ no $e %os errores ms habit a%es, $e mo$o q e q ien cree s s bases $e $atos, a nq e sea como hobbB, cree a%/o q e rea%mente res %te 5ti% B mane)ab%e.

Condiciones de uso.
Este texto se p e$e imprimir B se p e$e $istrib ir %ibremente, tanto en s :orma e%ectrnica como impresa, 6*E0P,E M C(<N.9 N9 6E 09.*N*>(E B se conser2e e% nombre $e% a tor. 6i este texto se $esea ti%iFar como base para c a%q ier otro texto, artCc %o o simi%ar, tambi!n se p e$e hacer %ibremente 6*E0P,E M C(<N.9 6E 0ENC*9NE <? <(39, $e% texto ori/ina% 8Hos! */nacio ONacho+ Cabanes;. E% a tor no po$r ser en nin/5n caso consi$era$o responsab%e $e nin/5n prob%ema $ebi$o $irecta o in$irectamente a %a in:ormacin conteni$a en este texto. E% 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. E? (69 .E E63E 3EP39 6(P9NE ?< <CEP3<C*QN 393<? .E E63<6 C9N.*C*9NE6. 6i $esc bres c a%q ier error en e% texto, ro/arCa q e me %o com nicases por correo e%ectrnico a %a $ireccinG
ncabanes@pobox.com

Este texto es 45racias6are3. Esto q iere $ecir q e si te / sta BIo te res %ta 5ti%, basta con q e me man$es n correo e%ectrnico a mi $ireccin

Por Nacho Cabanes - Pgina !

Introduccin a las Bases de Datos (0.05)

ncabanes@pobox.com 6i 2eo q e ten/o apoBo mora%, proc rar! ir me)oran$o este texto B %anFan$o n e2as 2ersiones, ca$a 2eF ms amp%ia$as.

Nociones bsicas de diseo.


Etapas bsicas del diseo.
E% primer paso antes $e crear na base $e $atos es pararse a pensar. Ni ms ni menos. 6i en %a pro/ramacin es m B pe%i/roso eso $e empeFar a tec%ear se/5n aparece na i$ea 8a pesar $e q e haB bastante /ente q e %o hace, B a%/ no %o hace inc% so bien... si e% pro/rama es corto;, en %a creacin $e bases $e $atos es m B raro q e sa%/a bien. E% segundo paso recomen$ab%e es ir anotan$o %as i$eas se/5n s r/en. C an$o creemos q e Ba est to$o, $eberCamos 2o%2er a %eer to$as %as notas q e habCamos toma$o, porq e eso nos aB $ar a tener na 2isin $e con) nto B a notar si :a%ta a%/o q e no haBamos pre2isto inicia%mente. E% tercer paso ser empeFar a $ib )ar /arabatos q e representen esa in:ormacin. Para e%%o 2eremos por encima n mo$e%o %%ama$o DEnti$a$+,e%acinE. E% $ib )o nos aB $ar a tener na n e2a 2ersin $e con) nto, m cho ms :ci% $e se/ ir B ms comp%eta q e %as anotaciones. <q C se 2ern to$a2Ca me)or %as carencias B %as incon/r encias q e p e$an existir. E% cuarto paso ser con2ertir este $ib )o en %as tab%as. Este paso p e$e ser casi tota%mente mecnico. Por e)emp%o, %a con2ersin $e% mo$e%o Enti$a$+,e%acin 8e% q e 2eremos; a na base $e $atos re%aciona% 8%as q e norma%mente mane)aremos; es casi inme$iato. 6e acab e% $ise&o. Po$rCamos a&a$ir n 7uinto paso q e serCa %a intro$ ccin $e %os $atos B %a creacin $e na serie $e estr ct ras a xi%iares, como :orm %arios, cons %tas o in:ormes, q e Ba 2eremos.

n pri!er e"e!plo.
Vamos 2er n primer e)emp%o, q e nos aB $ar a %%e2ar a %a prctica to$o esto B a intro$ cir e% mo$e%o DEnti$a$+,e%acinE. 6 pon$remos q e nos proponen e% si/ 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 !an realizado, qu profesores tenemos en plantilla, quin !a impartido cada uno de los cursos, etc".

Estas serCan %as in$icaciones q e nos $arCa e% c%iente 8o q e nosotros pensarCamos, si %o rea%iFamos para nosotros mismos;. <hora ten$rCamos q e pensar si 2emos q e :a%ta a%/o 8B pre/ ntar a% c%iente, si proce$e, cosas como si $esea / ar$ar %a $ireccin B $ems $atos posta%es $e %os

Por Nacho Cabanes - Pgina "

Introduccin a las Bases de Datos (0.05)

a% mnos B $e %os pro:esores, o si q iere saber %a nota q e ca$a a% mno obt 2o en ca$a c rso; o inc% so si sobra a%/o 8porq e res %te $emasia$o $i:Cci% $e %%e2ar a cabo +difcil, para nosotros?... lo dudo+;. Pasamos a $es/%osar en b%oq es $e in:ormacin. .e momento to$a2Ca no hab%aremos $e tab%as, sino $e Dentidades3 8 n nombre ms ambi/ o pero ms a$ec a$o; B $e Drelaciones3 entre estas enti$a$es. En n estro caso, %as DcosasE 8enti$a$es; q e tenemos son bsicamente !stasG R <% mnos. R C rsos. R Pro:esores. M %as re%aciones q e haB entre estas enti$a$es sonG R ?os pro:esores *0P<,3EN c rsos. R ?os a% mnos <6*63EN a c rsos. R 8*n$irectamente, %os a% mnos B %os pro:esores tambi!n estn re%aciona$osG n a% mno ha asisti$o a n c rso q e ha imparti$o n cierto pro:esorS esta re%acin Ba q e$a re:%e)a$a a partir $e %as otras $os, asC q e no es necesario $eta%%ar%a;. < n comentaremos a%/o ms sobre %as re%aciones. (na caracterCstica importante $e %as re%aciones es s DcardinalidadEG por e)emp%o, en %a re%acin $e q e D%os a% mnos asisten a %os c rsosE, es importante si a ca$a c rso s%o p e$e asistir n a% mno o 2arios, B 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 R > e ca$a a% mno asista no B so%o no $e %os c rsos 8se expresa como 1G1 + no a no+; R > 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 81G0 + no a m chos+; R > 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 80G1 +m chos a no+;. R > e ca$a a% mno p e$a asistir a 2arios c rsos, B en ca$a c rso p e$a haber 2arios a% mnos 80G0 +m chos a m chos+; En n estro caso, %a re%acin DasistirE es na re%acin $e Dm chos a m chosE 80G0;. Po$rCamos pre/ ntarnos %a car$ina%i$a$ $e %a otra re%acin 8D%os pro:esores imparten c rsosE;. En este caso, ca$a pro:esor p e$e impartir 2arios c rsos, B s pon$remos q e ca$a c rso es imparti$o por n 5nico pro:esor 8estoB $an$o por s p esto q e se consi$era $istinto n c rso $e D7ases $e .atosE imparti$o en na :echa B otro $e %a misma temtica pero imparti$o en :echa $istinta;. 6e tratarCa $e na re%acin D$e no a m chosE 1G0. (na obser2acinG en %as re%aciones es importante e% senti$o en e% q e se %een. Por e)emp%o, %a re%acin D%os pro:esores imparten c rsosE es na re%acin 1G0 8 no a m chos;, mientras q e %a re%acin op esta D%os c rsos son imparti$os por pro:esoresE es na re%acin 0G1 8m chos a no;. Estas re%aciones q e hemos comenta$o son Dre%aciones binariasE 8entre $os enti$a$es;. Por e% carcter intro$ ctorio $e este texto, no entraremos en %as re%aciones q e en/%oban ms enti$a$es 8como %as ternarias;, ni en cierto tipo $e

Por Nacho Cabanes - Pgina #

Introduccin a las Bases de Datos (0.05)

restricciones 8como %as $e existencia o 2a%or no n %o;, asociaciones ni a/re/aciones... al menos por a ora...

ni

en

/enera%iFaciones,

Introduccin al !odelo Entidad#$elacin.


Este es n mo$e%o q e nos permitir D$ib )arE %as enti$a$es B %as re%aciones q e existen entre e%%as. Nosotros saremos e% mo$e%o DEnti$a$+,e%acin Exten$i$oE 8,,., $e aq C en a$e%ante;. Existen 2arias notaciones %i/eramente $istintas. VoB a ti%iFar %a q e consi$ero ms senci%%a. En esta notacin se representan %as enti$a$es como n rectn/ %o B %as re%aciones binarias como n rombo parti$o por %a mita$. 6i %a re%acin es 1G0, na $e %as mita$es 8%a q e correspon$e a% Dm chosE; $eber estar sombrea$a, B si es 0G0, to$o e% rombo estar sombrea$o.

Enti$a$

,e%acin 1G1 ,e%acin 1G0 ,e%acin 0G0

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

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


Vamos a 2er cmo q e$arCa e% $ia/rama Enti$a$+,e%acin $e n estro e)emp%oG

Pro:esores

<% mnos

C rsos
*mpartir <sistir

<sC $e senci%%oG tenemos 3 enti$a$es 8pro:esores, c rsos, a% mnos; B $os re%aciones 8impartir, entre pro:esores B a% mnos, 1G0, B asistir, entre a% mnos B c rsos, 0G0;.

Por Nacho Cabanes - Pgina $

,ea%mente, Ba a este ni2e% se s e%e in$icar %os Daparta$osE q e haB en ca$a enti$a$ 8%o q e sern %os DcamposE $e n estras tab%as;. < estos Daparta$osE %es %%amaremos Datributos3, B se representan como peq e&as e%ipses q e sa%en $e %as enti$a$es. Vamos a pensar primero q ! atrib tos nos po$rCa interesar para n estras enti$a$esG <% mnosG R R R R R R R R .N* 8.oc mento Naciona% $e *$enti$a$; Nombre .ireccin Ci $a$ 3e%!:ono Necha $e nacimiento Necha $e a%ta en e% centro Noto/ra:Ca

Pro:esoresG R R R R R R R R C rsosG R R R R R Nombre $e% c rso Necha $e comienFo . racin 8horas; *mporte 8e ros; N5mero mximo $e a% mnos .N*. Nombre .ireccin Ci $a$ 3e%!:ono Conocimientos 6 e%$o C enta bancaria

Es s%o n e)emp%o. *nsisto en q e $e momento no estamos pensan$o en tab%as, sino simp%emente en q ! in:ormacin q eremos a%macenar. 6e/5n e% sistema $e bases $e $atos q e emp%eemos rea%mente, p e$e oc rrir q e sea incmo$o 8o inc% so imposib%e; traba)ar con a%/ nos $e estos $atos q e hemos pre2isto 8por e)emp%o, %a D:oto/ra:CaE $e% a% mno;. Pero eso Ba nos %o p%antearemos $esp !s. ?o q e sC 2amos a pensar Ba es c a% $e esos $atos nos permitir distinguir una &ic8a de otra. Esto se hace porq e po$emos tener $os a% mnos con e% mismo nombre, pero c%aramente son personas $istintas, B $ebemos saber q ! c rsos ha rea%iFa$o ca$a no $e e%%os sin posibi%i$a$ $e con: sin, para no $ar a no e% $ip%oma q e correspon$a a otro, ni cobrar%e n $inero $e otro. En e% caso $e %os a% mnos, no son $atos 5nicos %os si/ ientesG e% nombre 8p e$e repetirse, inc% so con ape%%i$os;, %a $ireccin 8$os hermanos o $os ami/os p e$en 2i2ir en %a misma casa;, e% te%!:ono 8oc rre %o mismo;, %a :echa $e nacimiento 8tambi!n po$emos encontrar $os a% mnos q e haBan naci$o e% mismo $Ca;, etc. ?o

q e rea%mente $istin/ ir a n a% mno $e otro es s n5mero $e .N* 8.oc mento Naciona% $e *$enti$a$; o pasaporte, q e sC es 5nico. P es bien, este $ato q e p e$e $istin/ ir na persona $e otra 8o en /enera% +re/istro+ $e otra; es %o q e %%amaremos %a Dclave3. na :icha

P e$e oc rrir q e no exista na$a q e nos sir2a c%aramente como c%a2e, como es e% caso $e %os c rsosG no es 5nico e% nombre 8po$emos impartir ms $e n c rso con e% mismo conteni$o;, ni %a :echa $e comienFo 82arios c rsos p e$en comenFar e% mismo $Ca;, ni %a $ racin, ni e% importe, ni e% n5mero mximo $e a% mnos. En estos casos se s e%e a&a$ir a%/o arbitrario, n cdigo, q e nos permita $istin/ ir n c rso $e otro 8en /enera% na :icha +re/istro+ $e otra;. En n estro caso, inc% irCamos n n e2o atrib to, %%ama$o DC$i/o $e c rsoE. (n 5%timo comentario antes $e 2er cmo q e$arCa n estro $ia/rama EE, con s s atrib tos. P e$e oc rrir q e n estra enti$a$ ten/a 2arios atrib tos 5nicos, to$os %os c a%es p e$an ser2ir como c%a2e. Entonces esco/emos na $e e%%as como Dclave principalE, B e% resto sern Dclaves alternativasE, q e no %%e/aremos a sar como c%a2es. En e% $ia/rama, e% atrib to q e 2aBa a ti%iFarse como c%a2e principa% aparecer s braBa$o. <hora Ba sC. N estro $ia/rama q e$arCa asC 8no inc% Bo to$os %os atrib tos q e habCamos pensa$o, s%o a%/ nos como e)emp%o, q e es con %os q e traba)aremos a partir $e ahora;G

.N*

Nombre .irecc 3e%e:

Nombre

.N*

Pro:esores

<% mnos

C rsos
*mpartir
Co$C rso Nombre

<sistir
Necha*ni

Con&irtiendo el diseo a tablas.


'todo %eneral.
Posib%emente %a maBor 2enta)a $e% mo$e%o EE, es q e %a con2ersin a tab%as es casi inme$iataG R En principio, ca$a enti$a$ correspon$er a na tab%a, B %os atrib tos $e %a enti$a$ $arn % /ar a %os campos $e %a tab%a.

R ?as re%aciones D$e no a m chosTE 81G0; se re:%e)arn ponien$o %a c%a2e $e% D noE en %a tab%a $e %os Dm chosE. 0e exp%icoG si n pro:esor imparte m chos c rsos 8B ca$a c rso es imparti$o por n 5nico pro:esor;, %o q e haremos es poner e% c$i/o $e% pro:esor 8s .N*; en %a :icha $e ca$a c rso q e imparte. R ?as re%aciones D$e m chos a m chosE 80G0; aparecern como na n e2a tab%a, en %a q e ca$a re/istro estar :orma$o por %as c%a2es $e %as tab%as q e se re%acionan. En n estro caso, %a re%acin D$e m chos a m chosE entre a% mnos B c rsos se con2ertir en na n e2a tab%a, en %a q e ca$a re/istro contiene $os camposG e% c$i/o $e% c rso a% q e se asiste B e% .N* $e% a% mno q e ha asisti$o. R ?as re%aciones D$e no a noE m chas 2eces son $ebi$as a n :a%%o $e $ise&o, B correspon$en a $atos q e $eberCan estar en na misma tab%a. Por e)emp%o, si s ponemos q e ca$a persona ten$r na 5nica $ireccin posta%, B ca$a $ireccin correspon$e a na 5nica persona, entonces e% $ato $e %a $ireccin posta% $eber ser no ms $e %a tab%a q e a%macena to$os %os $atos $e esa persona. Esta simp%i:icacin q e hemos hecho no es $e% to$o ciertaG a 2eces %as re%aciones 1G1 $ebern re:%e)arse como na n e2a tab%a, $epen$ien$o $e si existe restriccin $e existencia o no, pero no entraremos en tanto $eta%%e... al menos por a ora...

Con&irtiendo a tablas nuestro e"e!plo.


<sC, en n estro caso, obten$rCamos %as si/ ientes tab%as 8con s s campos, %imitn$onos a %os atrib tos q e hemos inc% i$o en e% 5%timo $ia/rama;G <% mnosG R .N* 8c%a2e; R Nombre R 3%: Pro:esoresG R .N* 8c%a2e; R Nombre R .irecc C rsosG R R R R <sistirG R C$i/o $e% c rso R .N* $e% a% mno C$i/o 8c%a2e; Nombre $e% c rso Necha $e comienFo .N* $e% pro:esor

Ma s%o :a%ta na cosa. LaB q e $eci$ir %os tipos de datos $e %os campos B tambi!n %os tama&os $e %os campos. Esto es porq e a% or$ena$or habr q e $ar%e to$a %a in:ormacin m B c a$ric %a$a, para q e po$amos / ar$ar to$a %a in:ormacin q e nos interesa pero sin $esper$iciar $emasia$o espacio. ?os tipos $e $atos existentes p e$en 2ariar $e n sistema $e bases $e $atos a otro, asC q e 2amos a %imitarnos 8por ahora; a hacer na primera aproximacin, acercn$onos a% caso $e n estros camposG R E% nombre $e n a% mno, $e n pro:esor o $e n c rso, estar :orma$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 8q e po$rn inc% ir a%/ na ci:ra n m!rica o a%/5n otro sCmbo%o;. 6er n tipo %%ama$o D3extoE, D<%:an m!ricoE, DCarcterE o a%/o simi%ar. En c anto a% tama&o, nos p e$e bastar con nas 40 %etras 8insistoG no $ebemos q e$arnos cortos, pero si nos exce$emos, estaremos $esper$ician$o espacio;. R ?a $ireccin ten$r tambi!n %etras, n5meros B a%/5n otro sCmbo%o, $e mo$o q e tambi!n ser tipo 3exto, B nas 50 %etras $e tama&o p e$e estar bien. R E% .N* $e% a% mno o $e% pro:esor conten$r ci:ras n m!ricas, pero posib%emente tambi!n a%/ na %etra, $e mo$o q e nos interesar q e tambi!n este $ato sea $e tipo D3extoE, B entre 10 B 15 %etras $e tama&o 8$epen$ien$o $e si 2amos a escribir p ntos en %os mi%%ares, / in antes $e %a %etra, etc.;. R E% te%!:ono $e% a% mno s%o conten$r ci:ras. 3en$remos n tipo $e $ato DN m!ricoE, q e nos p e$e ser2ir en este caso B q e ser imprescin$ib%e en e% caso $e q e q eramos hacer operaciones aritm!ticas con %os $atos a%macena$os en n campo. En e% caso $e% te%!:ono, no necesitamos hacer operaciones, B tambi!n es posib%e q e nos interese escribir par!ntesis, / iones o espacio, $e mo$o q e q iF sea ms interesante $e)ar%o como tipo D3extoE, $e nas 12+15 %etras. <$ems, es :rec ente q e se Di/norenE 8no se m estran ni se / ar$an; %os ceros a %a iFq ier$a $e na expresin n m!rica, B esto es a%/o q e no $eberemos permitir con n te%!:ono, q e po$rCa tener n pre:i)o pro2incia% o internaciona% q e comience por 0 8%o mismo oc rre con %os c$i/os posta%es;. R Para %a :echa $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 DNechaE. R E% c$i/o $e n c rso q e$a a n estra e%eccinG si q eremos q e est! :orma$o s%o por n5meros, serCa tipo $e $atos DN m!ricoES si q eremos q e p e$a contener %etras otros sCmbo%os, $eberCa ser $e tipo D3extoE. <%/ nos sistemas $e bases $e $atos 2an ms a%% B permiten n tipo D< ton m!ricoE, q e es n $ato n m!rico q e 2a incrementn$ose a tomticamente 8en e% primer re/istro q e intro$ Fcamos ser n 1, en e% se/ n$o n 2, B asC s cesi2amente;, para q e no ten/amos ni siq iera q e pensar q ! c$i/o q eremos para ca$a re/istro 8haB /ente a q ien esto %e parece m B cmo$o B otros q e %o consi$eran $emasia$o rC/i$o;.

(ipos de datos existentes.


En /enera%, %os tipos $e $atos habit a%es, q e encontraremos en casi c a%q ier sistema $e bases $e $atos, son %os si/ ientesG R 9e/to 8o a%:an m!rico, o carcter;, c an$o n estro campo $eba a%macenar %etras B q iFs a%/5n otro tipo $e sCmbo%os $e p nt acin BIo ci:ras n m!ricas. .eberemos in$icar %a canti$a$ $e %etras 8o en /enera%, $e caracteres; para %as q e q eremos $e)ar espacio 8no $eberCamos q e$arnos cortos, para q e nos q epa to$a %a in:ormacin q e nos interesa, pero tampoco haB q e $e)ar m cho espacio $e ms, o estarCamos $esper$ician$o na parte $e %a capaci$a$ $e n estros sistemas $e a%macenamiento sin necesi$a$;. R Num1rico, c an$o n estro campo 2aBa a / 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 q e in$icar tambi!n e% espacio q e q eremos reser2ar, pero esto p e$e q e se ha/a $e :orma $istinta se/5n e% sistema $e bases $e $atos q e semos. Por e)emp%o, nos esperarn q e %es $i/amos e% n5mero $e ci:ras q e q eremos / ar$ar, mientras q e otros emp%earn nombres ms cercanos a como rea%mente se 2a a / ar$ar %a in:ormacin en e% or$ena$or 8cosas como Dn5mero entero %ar/oE o Dn5mero rea% $e $ob%e precisinE;.

R %gico, c an$o s%o haB $os posibi%i$a$es 82er$a$ero o :a%so, sC o no;. R *ec8a, para a%macenar :echas 8B, en ocasiones, tambi!n horas;. 6e ti%iFa para q e %as comparaciones B %as or$enaciones sean correctas 8por e)emp%o, si escribimos %as :echas 12I01I2000 B 31I10I1-'5 como DtextoE, e% or$ena$or consi$erarCa q e %a primera es menor +anterior+ a %a se/ n$a, %o c a% es c%aramente incorrecto;. R :emo, es n campo $e texto especia%, q e permite na %on/it $ i%imita$a, pero a cambio s acceso es ms %ento q e e% campo $e texto norma%, por %o q e s%o se sa en casos m B concretos, en %os q e %a %on/it $ $e% texto a / ar$ar sea m B 2ariab%e B no importe q e %as b5sq e$as sean %entas. Es e% caso $e n aparta$o $e Dobser2acionesE sobre n a% mno, o e% Dres menE $e na pe%Cc %a. R 9tros menos habit a%es nos permitirn / ar$ar im/enes o :icheros en /enera%, n5meros q e se incrementen a tomticamente, hiper2Cnc %os 8en%aces a na cierta $ireccin $entro $e n estro or$ena$or otro;, etc.

Proble!as que )e!os e&itado con nuestro diseo.


C an$o no piensa $irectamente Den tab%asE, p e$e sentirse tenta$o a crear na 5nica tab%a para %os c rsos 8o casi;, q e cont 2iera esta in:ormacin 8por e)emp%o;G R R R R R R Nombre $e% c rso . racin Necha $e comienFo <% mno1 Nota<% mno1 <% mno2

R R R R R R R

Nota<% mno2 <% mno3 Nota<% mno3 <% mno4 Nota<% mno4 <% mno5 Nota<% mno5

Esto es tan grave 8m cho; como &recuente 8he 2isto errores simi%ares en %os $atos manip %a$os por conoci$os pro/ramas $e contabi%i$a$;. Lemos $e)a$o espacio para 5 a% mnos en ca$a c rso. Veamos %os prob%emas q e esto p e$e pro2ocarG R 6i en a%/5n c rso haB menos $e 5 a% mnos, estamos $esper$ician$o e% espacio q e habCamos reser2a$o para %os $ems. R 6i necesitamos q e entren ms $e 5 a% mnos a n mismo c rso, estamos $esbor$an$o %o q e habCamos pre2isto B tenemos q e empeFar a hacer DparchesE 8$os :ichas para e% mismo c rso";. R 6i q eremos b scar q ! c rsos ha rea%iFa$o n cierto a% mno, ten$remos q e recorrer to$os %os re/istros, miran$o si s nombre aparece en %os campos 8atrib tos; a% mno1, a% mno2, a% mno3, a% mno4 o a% mno5. M se comp%ica to$a2Ca ms si en 2eF $e na simp%e b5sq e$a q eremos obtener n %ista$o q e inc% Ba 2arios $atos. En n estro $ia/rama po$emos 2er q e n estra base $e $atos permite q e n c rso ten/a 1 a% mno, 50 a% mnos o inc% so nin/ no, B en nin/5n caso estaremos $esper$ician$o espacio. Para b scar %os a% mnos q e han asisti$o a n cierto c rso o inc% so para crear n %ista$o con esta in:ormacin, s%o ten$remos q e recorrer %a tab%a D<sistirE.

Proble!as que a*n tiene nuestro diseo.


Lemos e2ita$o a%/ nos errores :rec entes, pero n estra base $e $atos to$a2Ca no es to$o %o b ena q e $eberCa. Por e)emp%o, si miramos e% primer est $io q e hemos hecho $e %os atrib tos q e nos interesarCa a%macenar, 2emos q e entre n a% mno B n pro:esor haB m chos $atos en com5nG ambos tienen n nombre, n .N*, na $ireccin, n te%!:ono, na ci $a$... M $e hecho, si no $e n estros pro:esores : ese a s 2eF a% mno $e otro c rso, ten$rCamos s s $atos por $ p%ica$o, con to$os %os prob%emas B ries/os q e esto con%%e2a 8prob%emas $e espacio $esper$icia$o B ries/os $e q e si cambia a%/ no $e s s $atos no nos acor$emos $e cambiar%o en to$as %as tab%as en %as q e aparece, B esto $arCa % /ar a inconsistencias en n estros $atos;. Esto se $ebe a q e no hemos pro: n$iFa$o to$o %o q e $eberCamos. En rea%i$a$, tanto a% mnos como pro:esores son DpersonasE. Esto es %o q e se conocen como na Dgenerali"acin3, B se s e%e reso%2er crean$o na tab%a q e conten$rCa to$os %os $atos q e son com nes a %as DpersonasE, B conser2an$o en %as tab%as $e Da% mnosE B $e Dpro:esoresE s%o %os $atos q e rea%mente son exc% si2os $e ca$a no $e e%%os

8a$ems $e% .N*, q e nos permitirCa en%aFar %os $atos q e n a% mno tiene por ser a% mno con %os q e tiene por ser persona;. Pero esto es hi%ar $emasia$o :ino para nos principiantes como nosotros, asC q e %o $e)aremos como est. 3ambi!n se %e po$rCa b scar a%/ na otra cosa me)orab%e, pero tampoco %o haremos... por ahora.

Creando la base de datos con +tarBase ,+tar-..ice/.


Vamos a 2er %os pasos q e $eberCamos $ar para p%asmar n estra base $e $atos emp%ean$o $istintos sistemas $e /estin $e bases $e $atos. E% primero q e ti%iFaremos es ;tar<ase 5.1, %a base $e $atos q e incorpora ;tar+&&ice 5.1, n paq ete inte/ra$o $e %ibre $istrib cin 8D/ratisE; crea$o por 6tar.i2ision, propie$a$ $e 6 n hoB en $Ca. E% mane)o $e 6tar7ase rec er$a m cho a% $e <ccess, pero es menos int iti2o. < n asC, como 6tar7ase es D/ratisE B <ccess no %o es, he consi$era$o q e ser ms :ci% $e conse/ ir B he $eci$i$o empeFar por e% primero. Para crear na base $e $atos, entramos a 6tar9::ice B esco/emos %a opcin DN e2o I 7ase $e .atosE $e% men5 D<rchi2oE. <parecer na 2entana como !staG

Eso sC, esta 2entana tiene a%/o $esconcertanteG $ebemos in$icar e% nombre q e q eremos q e ten/a e% :ichero q e / ar$ar n estra base $e $atos, pero %a casi%%a para in$icar este nombre aparece a% p %sar %a pesta&a D3ipoEG

.eberemos escribir e% nombre 8inc% Ben$o $irectorios; en %a casi%%a q e $ice D<rchi2o base $e $atosE, o pre:erib%emente hacer%o $e %a :orma Dsenci%%aE, q e es p %sar e% botn DN e2a : ente $e $atosEG

.es$e esta 2entana res %tar ms cmo$o in$icar e% $irectorio 8o carpeta; en q e q eremos q e q e$e n estra base $e $atos, asC como e% nombre q e $eseamos para e%%a. Eso sCG habr q e tener en c enta q e m chos sistemas $e bases $e $atos 8B es e% caso $e 6tar7ase; %imitarn e% n5mero $e %etras q e po$emos ti%iFar para ese nombre, a$ems $e q e en m chos casos no permitirn ti%iFar espacios ni ciertos sCmbo%os $e p nt acinG

(na 2eF q e hemos intro$ ci$o n nombre correcto 8por e)emp%o CentrEst; nos aparecer %a panta%%a principa% $e 6tar7ase, $es$e %a c a% po$emos crear B manip %ar cons %tas, :orm %arios, in:ormes B tab%as.

?os tres primeros %os trataremos ms a$e%ante, pero %as tab%as Ba %as conocemos, asC q e 2amos a pasar a cmo se crearCan con 6tar7ase %as tab%as $e n estra base $e $atos 8e% centro $e est $ios;. No $eberemos hacer $ob%e c%ic sobre e% icono $e Dtab%asE, porq e asC %o q e conse/ irCamos serCa pasar a 2er %as tab%as q e Ba haB $isponib%es en n estra base $e $atosS como a5n no haB nin/ na tab%a crea$a, esta 2entana aparecerCa 2acCa 8eso sC, si hemos %%e/a$o hasta aq C por error o por precipitacin, po$rCamos 2o%2er atrs p %san$o e% botn D<nteriorE $e %a barra $e herramientas, q e m estra na :%echa hacia %a iFq ier$a;. ?o q e haremos ser p %sar na so%a 2eF sobre e% icono $e %as 3ab%as 8para se%eccionar esta opcin; B % e/o p %sar e% botn $erecho $e% ratn, %o q e nos mostrar %as $istintas opciones q e tenemos $isponib%es para tab%as. Entre estas opciones aparecer %a opcin DN e2oE, q e nos permitir crear na tab%a B nos $ar %a opcin $e crear%o $es$e e% D.ise&o $e tab%aE o $es$e n D<sistenteE. En n estro caso, como Ba hemos prepara$o e% $ise&o Dsobre e% pape%E, prescin$iremos $e% asistente B saremos e% D.ise&o $e tab%aEG

<cce$emos a na n e2a 2entana, en %a q e rea%mente $e:inimos n estra tab%a con 6tar7ase. ?a Fona $e traba)o $e esta 2entana tiene tres co% mnas, en %as q e in$icaremos e% nombre $e% campo, e% tipo $e $atos q e 2a a a%macenar B 8si q eremos; na $escripcin para ese campoG

Ca$a :i%a $e %a Fona $e traba)o $e esta 2entana representar no $e estos campos. En %a parte in:erior $e %a panta%%a po$emos in$icar e% tama&o q e q eremos para ca$a campo. <% :ina% $eberCamos obtener a%/o pareci$o aG

C an$o terminemos, p %samos e% botn $e DK ar$arE 8e% q e m estra n $isUette; B nos pre/ ntar e% nombre q e q eremos $ar a %a tab%a 8en n estro caso, D<% mnosE;G

Es m B :rec ente q e nos apareFca na 2entana $e a2iso como !staG

Es cierto, habCamos pensa$o q e e% .N* $ebCa ser %a c%a2e primaria $e n estra tab%a, pero no se %o hemos in$ica$o a 6tar7ase. No q eremos q e sea 6tar7ase q ien pon/a %a c%a2e primaria q e %e p%aFca, sino nosotros mismos, asC q e $e momento %e $ecimos q e DNoE q eremos c%a2e primaria, B 2eremos cmo in$icar%e q e pon/a como c%a2e e% campo q e a nosotros nos interesa. <parecer n se/ n$o mensa)e $e a2isoG

6i h bi!ramos %%e/a$o a sa%ir $e% $ise&o $e %a tab%a, $eberCamos 2o%2er a entrar para in$icar %a c%a2e primaria. Para 2o%2er a% $ise&o, hacemos n c%ic en %a tab%a D<% mnosE, B p %samos e% botn $erecho, para % e/o esco/er %a opcin D.ise&o $e 3ab%aEG

?a :orma correcta $e in$icar q e n campo ser %a c%a2e primaria es se&a%an$o to$a %a :i%a 8hacien$o c%ic con e% ratn en %a co% mna /ris $e %a iFq ier$a; B p %san$o e% botn $erecho $e% ratn. Entre %as opciones $isponib%es, aparecer %a $e D?%a2e primariaEG

Entonces 6tar7ase mostrar na %%a2ecita amari%%a ) nto a% nombre $e% campo, para in$icarnos q e ese campo es e% q e 2a a act ar como c%a2e primariaG

<% sa%ir $e% $ise&o $e %a tab%a 8por e)emp%o, p %san$o %a P $e %a esq ina s perior iFq ier$a $e %a 2entana;, 6tar7ase se $a c enta $e q e hemos mo$i:ica$o e% $ise&o $e %a tab%a B nos pi$e con:irmacin para / ar$ar %os cambios 8$eberemos $ecir%e q e D6CE;G

<hora Ba po$emos entrar a %a tab%a 8con $ob%e c%ic, o esco/ien$o %a opcin D<brirE $e% men5 context a% +p %san$o e% botn $erecho $e% ratn+; B comenFar a intro$ cir re/istrosG

.e i/ a% :orma crearCamos %as otras tab%as, tanto %a $e a% mnos B c rsos, como %a q e representa a %a re%acin D<sistirE. <%/o ms a$e%ante 2eremos cmo sacar parti$o a estos $atos. ?a /ran ti%i$a$ $e %as bases $e $atos es %a :aci%i$a$ para rec perar in:ormacin $e entre m chCsimos $atos posib%es. Esto %o conse/ iremos bsicamente con %as cons %tas, q e 2eremos $esp !s. 3ambi!n 2eremos entonces cmo $eta%%ar %as re%aciones q e habCamos pre2isto en e% $ise&o.

Creando nuestra BD con 0ccess.


Emp%earemos <ccess -', a nq e %os cambios a rea%iFar para 2ersiones anteriores o posteriores $eberCan ser mCnimos.

<% i/ a% q e hicimos con 6tar7ase, 2amos a $ar por s p esto q e Ba hemos $ise&a$o n estra base $e $atos en pape%. Entonces e% primer paso es e2i$enteG entrar a <ccess. Nos aparecer na panta%%a como !staG En e%%a se nos pre/ nta si q eremos abrir na base $e $atos Ba existente 8no es n estro caso; o bien crear na n e2a 8q e sC es %o q e nos interesa;. .entro $e na Dn e2aE base $e $atos, tenemos $os opcionesG Emp%ear n DasistenteE. Este nos propon$rCa 2arios casos tCpicos, con bases $e $atos habit a%es, nos mostrarCa %a %ista $e %as tab%as q e consi$era a$ec a$as B %os campos q e po$emos inc% ir 8estos campo sC se p e$en mo$i:icar, pero no %as tab%as prop estas;, nos permitirCa esco/er na serie $e $ise&os para :orm %arios e in:ormes, etc. Veremos estos asistentes ms a$e%ante, c an$o Ba sepamos a%/o ms sobre $ise&o, B c an$o haBamos trata$o %os :orm %arios B %os in:ormes, $e mo$o q e po$remos comparar %o q e nosotros habrCamos hecho con %o q e <ccess propone. ?a otra opcin, %a q e nosotros emp%earemos, es %a $e crear na Dbase $e $atos en blancoE. Esto nos permitir partir D$e ceroE, para in$icar a <ccess exactamente q ! es %o q e $eseamos. En primer % /ar nos pre/ ntar e% nombre q e q eremos $ar a% :ichero $e base $e $atosG

Este nombre ser ms :%exib%e q e con 6tar7aseG sC po$r contener espacios B ms $e ocho %etras.

3ras tec%ear este nombre, 2eremos %a panta%%a principa% $e <ccessG

En %a Fona centra% $e %a panta%%a, %a DFona $e traba)oE, 2emos na serie $e pesta&as q e rec er$an a %as q e Ba habCamos comenta$o para 6tar7aseG 3ab%as, cons %tas, :orm %arios, in:ormes, macros B m$ %os. Estas $os 5%timas opciones son n e2as para nosotros, B tambi!n %as 2eremos ms a$e%ante. .e momento, 2amos a comenFar por crear las tablas. Para e%%o, comprobamos q e nos encontramos en %a pesta&a 3ab%a 8$eberCa ser asC;, B p %samos e% botn DN e2oE 8en estos momentos, $eberCa ser e% 5nico $isponib%e;. <parecen ms pre/ ntas...

Vamos a comentar bre2emente %as opciones q e tenemosG D!ista 8oja de datosE mostrarCa na c a$rCc %a en %a q e po$remos empeFar $irectamente a escribir $atos. No es %o q e nos interesa, Ba q e nosotros hemos p%ani:ica$o pre2iamente para q e n estra base $e $atos se a) ste %o ms posib%e a %o q e rea%mente necesitamos. D!ista diseoE es %o q e b scamos nosotros. Nos centraremos en e%%a n poco ms a$e%ante... 'sistente para tablas. Nos mostrarCa %as tab%as ms :rec entes, ) nto con %os campos q e <ccess nos recomien$a para ca$a na $e e%%as. <% i/ a% q e e% asistente para bases $e $atos, %o 2eremos ms

a$e%ante, c an$o ten/amos ms conocimientos B po$amos comparar %a opinin $e <ccess con %a n estra. Importar tablaG nos permitirCa apro2echar %os $atos existentes en na tab%a crea$a con otro sistema $e bases $e $atos ms anti/ o. <ccess crearCa na n e2a tab%a con campos eq i2a%entes a %os ori/ina%es, B con %os $atos q e esa tab%a contenCa. !incular tablaG es simi%ar a DimportarE, con %a $i:erencia $e q e no se crea na n e2a tab%a en <ccess, sino s%o n en%ace a %a Danti/ aE, $e mo$o q e %os cambios q e ha/amos en %a anti/ a se re:%e)arn en n estra base $e $atos $e <ccess 8a cambio, res %tar a%/o ms %ento, B $ebemos %%e2ar c i$a$o $e no borrar %a tab%a anti/ a, ni cambiar s sit acin, ni hacer nin/ na mo$i:icacin pro: n$a a s estr ct ra. En n estro caso, $eberemos se%eccionar %a opcin DVista $ise&oE B p %sar e% botn D<ceptarE. Entonces aparece na panta%%a 2acCa en %a q e, a% i/ a% q e oc rrCa con 6tar7ase, iremos intro$ cien$o e% nombre $e ca$a campo, e% tipo $e $atos q e contiene, B 8opciona%mente; na $escripcin para ese campo 8q e aparecerCa en %a parte in:erior $e %a panta%%a c an$o e% s ario est 2iera intro$ cien$o $atos;.

En %a parte in:erior $e %a panta%%a es $on$e in$icamos e% tama&o q e q eremos para ese campo. Por e)emp%o, como se 2e en %a :i/ ra anterior, nosotros q eremos q e e% campo .N* sea texto con na %on/it $ mxima $e 15 caracteres. (n poco ms a$e%ante 2eremos %os tipos $e $atos q e nos permite emp%ear <ccess. Como para esta tab%a s%o necesitaremos sar campos $e texto, 2amos antes a $ar %os pocos pasos q e nos :a%tan para comp%etar%a.

(na 2eF q e haBamos escrito %os nombres $e %os tres campos, s s tipos $e $atos correspon$ientes B s s tama&os, pasamos a in$icar c a% ser e% campo q e act5e como clave. ?o conse/ iremos se&a%an$o e% campo correspon$iente 8en este caso, e% .N*; B p %san$o e% botn q e m estra %a ima/en $e na %%a2e. <% i/ a% q e oc rrCa con 6tar7ase, <ccess mostrar e% $ib )o $e %a %%a2e ) nto a ese campo, para in$icarnos q e ese ser e% campo q e act ar como c%a2eG

8NotaG si en n campo no necesitsemos c%a2e, bastarCa con no in$icar%a ahora, B respon$er DNoE c an$o <ccess nos pre/ nte si q eremos q e a&a$a a tomticamente na c%a2e;. Para / ar$ar %a tab%a, basta con p %sar %a P $e s esq ina s perior iFq ier$a. <ccess se $a c enta $e q e 2amos a cerrar sin / ar$ar B nos pi$e con:irmacinG .iremos q e D6CE q eremos / ar$ar, B entonces nos pre/ ntar e% nombre q e ten$r %a tab%aG

!ota 'G <% i/ a% q e oc rrCa con e% nombre $e %a base $e $atos, e% nombre $e %a tab%a po$r contener espacios, e&es B 2oca%es acent a$as, B na %on/it $ s perior a %as ocho %etras. !ota (G 3ambi!n po$rCamos haber / ar$a$o sin necesi$a$ $e sa%ir, p %san$o e% botn q e m estra e% $isUette, en 2eF $e hacer c%ic sobre e% $e %a P. Nina%mente, %a panta%%a $e traba)o $e <ccess $eberCa tener na apariencia simi%ar a !staG

<ntes $e se/ ir a2anFan$o con %as cons %tas o con otras bases $e $atos $istintas, 2amos a echar n 2istaFo a %os tipos de datos q e permite <ccess. Es esta tab%a s%o hemos emp%ea$o campos $e tipo D3extoE, pero a% pinchar en %a casi%%a D3extoE 2emos q e aparece na :%echa hacia aba)o, in$icn$onos q e tenemos ms opciones q e po$emos esco/er. 6i $esp%e/amos esta %ista, aparecen to$os %os tipos $e $atos q e <ccess reconoceG

?a maBorCa $e e%%os %os hemos comenta$o Ba, pero 2amos a repasar to$os bre2ementeG R 9e/toG %etras, n5meros B otros sCmbo%os, con na %on/it $ mxima $e:ini$a, q e no po$r exce$er %os 255 caracteres. R :emoG simi%ar a% texto, pero $e %on/it $ in$e:ini$a 8ms 2ersti% pero ms %ento q e e% campo 3exto;. R Num1ricoG 2a%ores exc% si2amente n m!ricos, con o sin $ecima%es. R *ec8a=>oraG :echas BIo horas. R :onedaG (n 2a%or n m!rico con pocos $ecima%es pero con m chas ci:ras si/ni:icati2as. 6e sar para n5meros D/ran$esE B con pocos $ecima%es, como %os q e p e$e mane)ar n banco. R 'utonum1ricoG n n5mero q e a menta a tomticamente en ca$a n e2o re/istroG en e% primer re/istro 2a%$r 1, en e% se/ n$o 2a%$r 2, B asC s cesi2amente. LaB /ente a %a q e %e / sta sar este tipo $e campos como c%a2e primaria 8en n estro caso, po$rCa ser e% c$i/o $e a% mno;. R ;i=NoG n campo q e s%o p e$e tener n 2a%or entre esos $os. Es ms correcto q e sar na 6 o na N 8q e serCa n campo DtextoE con na %on/it $ $e na %etra;, por 2arios moti2osG oc pa menos espacio, no existir

prob%emas $e maB5sc %as B min5sc %as, ni siq iera $e Dinternacio+ na%iFacinE 8por e)emp%o, en n paCs $e hab%a in/%esa, se con2ertirCa a tomticamente en Mes B No;. R +bjeto +%,G c a%q ier otro tipo $e ob)eto Dincr sta$oE, Nos permitir / ar$ar im/enes, :ra/mentos $e 2i$eo, etc. Eso sC, e% tama&o $e% :ichero res %tante crecer rpi$amente. 89?E es %a abre2iat ra $e D9b)ect ?inUin/ an$ Embe$$in/E; R >iperv?nculoG n en%ace a% esti%o $e %os q e se emp%ean en *nternet. R <sistente para b5sq e$asG nos permitirCa q e en ese campo %o q e apareciese : ese na %ista $e 2a%ores pre$e:ini$os. Nosotros saremos bsicamente %os c atro primerosG texto, n m!rico, :echaIhora B memo. E% tama&o en %os campos $e texto no tiene $i:ic %ta$ 8ser e% n5mero $e %etras;, pero en %os campos n m!ricos sC, porq e <ccess no %os mi$e se/5n e% n5mero $e ci:ras, sino se/5n cmo se / ar$arn rea%mente %os $atos $entro $e% or$ena$or. Por eso, si esco/emos n tipo $e $atos num1rico B miramos en %a casi%%a $e Dtama&oE 2eremos q e aparece %a expresin DEntero %ar/oE. ?os posib%es 2a%ores sonG R 7BteG n5meros enteros 8sin $ecima%es; entre 0 B 255 8ambos inc% si2e;. E% espacio q e oc par ser $e n bBte, como s nombre in$ica. R EnteroG n5meros enteros entre O32.'#@ B 32.'#'. 9c pa 2 bBtes. R Entero %ar/oG n5meros enteros entre O2.14'.4@3.#4@ B 2.14'.4@3.#4'. 9c pa 4 bBtes. R 6imp%eG n5meros rea%es 8con $ecima%es; $e Dsimp%e precisinE, con 2a%ores posib%es entre 1,4T10O45 B 3,4T103@, con na precisin $e ' ci:ras. 9c pa 4 bBtes. R .ob%eG n5meros rea%es $e D$ob%e precisinE, con 2a%ores posib%es entre 1,'-T1030@ B 4,-4T10+324, con na precisin $e 15 ci:ras. 9c pa @ bBtes.

Creando nuestra BD con 1in+23.


E% %en/ a)e ;@% es n %en/ a)e /en!rico para manip %ar bases $e $atos, q e es acepta$o por %a /ran maBorCa $e sistemas $e bases $e $atos act a%es. Por eso, me parece m B con2eniente q e 2eamos cmo crear n estra base $e $atos en c a%q ier /estor $e bases $e $atos q e soporte e% %en/ a)e 6>?. 3ambi!n <ccess permite emp%ear este %en/ a)e, pero como Ba hemos mane)a$o <ccess $e %a :orma ms senci%%a 8B tambi!n %a ms habit a%;, ti%iFaremos otra base $e $atos $istinta.

Mo he opta$o por 6in;@% 8 sar! %a 2ersin 3.2.';, q e es na base $e $atos para sistema operati2o =in$oJs, q e se ti%iFa me$iante %en/ a)e 6>?, B q e se p e$e $escar/ar /rat itamente $es$e *nternetG

<% entrar a =in6>? se nos pre/ nta q ! tipo $e bases $e $atos 2amos a ti%iFar. 3enemos m chas posibi%i$a$es $istintas, pero po$emos emp%ear :icheros $e D$7aseE, por e)emp%o. Esta es na base $e $atos q e to$a2Ca no hemos mane)a$o, pero es n a t!ntico estn$ar, B si creamos :icheros $e este tipo es casi se/ ro q e $esp !s po$remos Dapro2echar%osE $es$e c a%q ier otra base $e $atos ms mo$erna.

Entonces nos aparecer na 2entana 2acCa, en %a q e nosotros $eberemos escribir %as r$enes en lenguaje ;@%. Por e)emp%o, para crear n estra tab%a Da% mnosE, en %a q e ten/amos %os campos $ni 810 %etras;, nombre 840 %etras; B t%: 8te%!:ono, 15 %etras;, %a or$en q e se sarCa esG

create table alumno #dni c!ar#$%&, nombre c!ar#'%&, tlf c!ar#$(&&

Para q e n estro e)emp%o q e$e correcto, to$a2Ca :a%ta a%/o. En %a tab%a $e %os Da% mnosE, q erCamos q e e% .N* act ase como c%a2e primaria. Esto, en %a maBorCa $e %as 2ersiones $e 6>? se conse/ irCa a&a$ien$o %a si/ iente %Cnea a% :ina% $e %a or$en anterior 8antes $e% 5%timo par!ntesis;G
primary key #dni&

Pero res %ta q e =in6>? sa e% DmotorE $e bases $e $atos crea$o por 0icroso:t 8e% mismo q e emp%ea <ccess;, q e tiene a%/ na 8peq e&a; $i:erencia $e sintaxis con e% 6>? estn$ar, $e manera q e ten$remos q e hacer%o $e otra :orma. ?a manera ti%iFa$a por =in6>? es in$ican$o esa c%a2e primaria como DrestriccinE 8DconstraintE;, asCG
create table alumno #dni c!ar#$%&, nombre c!ar#'%&, tlf c!ar#$(& constraint dni primary key &

na

N estra 2entana $e traba)o $e =in6>? $eberCa estar q e$an$o como !staG

En c a%q ier caso, =in6>? respon$er con n mensa)e q e nos in$ica q e %o ha hecho, pero q e no haB $atos q e mostrar en panta%%a. Estos mensa)es $e resp esta aparecen en %a pesta&a D,es %tE, q e pasa a ser %a pesta&a 2isib%e ca$a 2eF q e

escribimos na or$en B p %semos e% botn D, n > erBE 8e% $e% trin/ %o 2er$e, q e hace q e se procese %a or$en q e hemos tec%ea$o;. < %a hora $e aadir datos, se sa %a or$en DinsertE. 6 :orma ms senci%%a consiste en in$icar e% nombre $e %a tab%a, B, entre par!ntesis, %os 2a%ores para ca$a no $e %os campos, en e% or$en en q e %os habCamos $e:ini$o a% crear %a tab%aG
insert into alumno values #)(((), )*uan), )$$$+$$+$$)&

?os 2a%ores %os he in$ica$o entre comi%%as porq e son texto 8ca$enas $e caracteres;S si a%/ no $e %os campos : era n m!rico, no habrCa q e poner esas comi%%as. Como hemos a&a$i$o n re/istro, =in6>? nos respon$er $icien$o q e na :i%a $e %a tab%a se ha 2isto a:ecta$o por estos cambiosG

6i/ ien$o este mismo esq ema po$rCamos a&a$ir a%/ na :icha ms.

Nina%mente, po$emos visuali"ar los datos obteni$os. Para e%%o se emp%ea %a or$en DselectEG
select , from alumno

Esta or$en mostrar to$os %os $atos 8es %o q e se in$ica con e% asterisco V; $e %a tab%a %%ama$a Da% mnoE. 9bten$rCamos n res %ta$o pareci$o a !steG

-.I ((( (78

./0123 *uan *ose

456 $$$+$$+$$ 999+99+::

++++++++++ +++++++++++++++++++++++++++++++++++ ++++++++++

9 2o;#s& affected

3ambi!n po$rCamos pe$ir q e se nos m estre s%o a%/ no $e %os campos. Por e)emp%o, si q eremos 2er primero e% te%!:ono B % e/o e% nombre 8B q e no se m estre e% .N*; escribirCamos
select tlf, nombre from alumno

B %a resp esta serCa a%/o comoG


tlf $$$+$$+$$ 999+99+:: nombre *uan *ose

+++++++++++++++ +++++++++++++++++++++++

9 2o;#s& affected

?a or$en Dse%ectE permite hacer m chas ms cosas, pero %as 2eremos a s $ebi$o tiempo, c an$o tratemos %a :orma $e rea%iFar cons %tas a partir $e %os $atos.

Creando nuestra BD con dBase III4.


8<parta$o to$a2Ca no $isponib%e;.

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


Enunciado del se%undo e"e!plo.
<hora 2eamos n se/ n$o prob%emaG
Se desea informatizar un videoclub. 3n el se dispone de diversas pel<culas, que los clientes pueden alquilar. -e cada pel<cula puede !aber m=s de un e>emplar. 3stos e>emplares pueden estar en el mismo formato #?@S, -?-, 1eta, etc.& o en formatos distintos. Aueremos poder saber detalles como las pel<culas que tiene alquiladas un cierto cliente B desde qu fec!a, o las que !ab<a alquilado con anterioridad, o las veces que se !a alquilado una cierta pel<cula, o

cuando es la Cltima vez que se alquilD, o cuantas pel<culas se !an alquilado en formato -?-".

Diseo del se%undo e"e!plo.


Po$rCa ser simp%emente a%/o asC 8a :a%ta $e $eta%%ar %os atrib tos;S

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


8<parta$o to$a2Ca no $isponib%e;.

5isuali6ando datos7 consultas bsicas 8 relaciones.


Consultas bsicas en +239 con 1in+23.
Ma hemos comenta$o %a :orma en %a q e se rea%iFarCa na cons %ta bsica en %en/ a)e 6>?G para mostrar to$os %os campos $e %a tab%a Da% mnoE, sarCamos
select , from alumno

B para mostrar s%o %os 2a%ores $e a%/ nos $e %os campos, $eta%%arCamos c a%es son $ichos camposG
select tlf, nombre from alumno

Pero norma%mente no nos interesar 2er to$as %as :ichas 8re/istros; q e contiene %a tab%a, sino s%o aq e%%as q e c mp%en na cierta con$icin. Esta con$icin se in$ica $esp !s $e %a pa%abra DJhereE, asCG
select , from alumno where nombre E )*uan)

Con DWE nos respon$er q ! :ichas contienen exactamente ese 2a%or. 9tras comparaciones posib%es sonG 6Cmbo%o X Y XW YW YX E)emp%os $e s 6i/ni:ica$o 0aBor q e 0enor q e 0aBor o i/ a% q e 0enor o i/ a% q e .istinto $e so po$rCan ser

select , from alumno where edad FE $G select nombre from alumno where numero@ermanos H 9 select nombre, ciudad from alumno where ciudad HF )0adrid)

C an$o b scamos n texto, es :rec ente q e no nos interese %oca%iFar n cierto texto exactamente, sino q e s%o conoFcamos parte $e ese texto. 6erCa e% caso $e Da% mnos c Bo nombre empieFa por HE, o Dpersonas q e tienen ?peF como primer ape%%i$oE, o D$omici%ios en %os q e aparece %a pa%abra 7arce%onaE. Para e%%o se emp%ea %a pa%abra D%iUeE, se $eta%%a %a parte $e con$icin q e sabemos B se sa e% sCmbo%o Z para %a parte $e %a con$icin q e no sabemos. Por e)emp%o para Da% mnos c Bo nombre empieFa por HE harCamosG
select , from alumno where nombre like )*I)

M para Da% mnos c Bo nombre termina en eE serCa


select , from alumno where nombre like )Ie)

M para Dnombre $e %os a% mnos en c Bo $omici%io apareFca %a pa%abra 7arce%onaE po$rCa ser
select nombre from alumno where domicilio like )I1arcelonaI)

Nina%mente 8por ahora;, con2iene in$icar q e %os res %ta$os $e esta cons %ta %os po$emos obtener or$ena$os n m!ricamente 8$e menor a maBor 2a%or; o a%:ab!ticamente 8$e %a < a %a [; si a&a$imos a% :ina% Dor$er bBE se/ i$o $e% nombre $e% campo q e q eremos sar para esa or$enacinG
select , from alumno where ciudad E )0adrid) order by nombre

9 po$emos or$enar $e manera $escen$ente 8%os n5meros $e maBor a menor B %os textos $e %a [ a %a <; B samos Dor$er bB .. $escEG
select , 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 6>?, pero antes 2eamos %a :orma en q e se conse/ irCa esto mismo $es$e <ccess.

Consultas sencillas con 0ccess.


Para rea%iFar cons %tas con <ccess, po$emos emp%ear tambi!n e% %en/ a)e 6>?, pero antes %o haremos $e otra manera q e res %ta ms D2is a%E. ComenFaremos por entrar a %a pesta&a DCons %tasEG

.es$e aq C, haremos c%ic en e% botn DN e2oE, para crear na n e2a cons %ta. Nos pre/ ntar si q eremos basarnos crear na cons %ta $es$e %a DVista .ise&oE o ti%iFar a%/ no $e %os asistentes $isponib%es. Nosotros emp%earemos %a 2ista $e $ise&o.

Entonces aparecer na 2entana en %a q e se nos m estran %as tab%as q e tenemos $ispo+ nib%es en n estra base $e $atos, B $e :on$o %a c a$rCc %a 2acCa $e %o q e ser n estra con+ s %ta. .eberemos ir se&a%an$o ca$a na $e %as tab%as q e q ere+ mos q e :orme parte $e n estra cons %ta, B p %san$o e% botn D</re/arE. En n estro caso, to$a2Ca es senci%%o, porq e s%o tenemos na tab%a. C an$o haBamos inc% i$o to$as. P %samos e% botn DCerrarE B 2emos na panta%%a en %a q e se nos m estra en %a parte s perior %a8s; tab%a8s; q e hemos esco/i$o B en

%a parte in:erior %o q e ser %a $e:inicin $e %a cons %ta, to$a2Ca 2acCa. P es Ba s%o q e$a %o ms :ci%G R Para in$icar q ! campos q eremos q e se m estren B en q ! or$en, 2amos hacien$o $ob%e c%ic sobre ca$a no $e e%%os, B aparecern en ca$a na $e %as co% mnas $e n estra cons %ta. R Para in$icar e% 2a%or q e $ebe tener n cierto campo, %o escribimos en %a :i%a DCriteriosE. R 6i q eremos q e a%/5n campo se emp%ee para or$enar %os res %ta$os, e%e/imos D<scen$enteE o D.escen$enteE en %a :i%a D9r$enE.

Estaremos obtenien$o a%/o pareci$o a

Para 2er e% res %ta$o $e esta cons %ta, hacemos c%ic en e% botn DE)ec tarE $e %a barra $e tareas.

Consultas en +239 con 0ccess.


Crear cons %tas con <ccess emp%ean$o e% %en/ a)e 6>? es :ci%, a nq e haB q e $ar n par $e pasos ms para empeFarG Entramos a %a pesta&a $e cons %tas. P %samos e% botn N e2o B esco/emos Vista .ise&o, i/ a% q e antes. <&a$imos a%/ na tab%a, tambi!n a% i/ a% q e antes. P %samos e% primer botn $e %a barra $e herramientas 8Vista; B esco/emos %a DVista 6>?EG

Nina%mente, tec%eamos %a or$en q e nos interese

Introduccin a las relaciones 8 a su uso desde 0ccess.


?as re%aciones es %a :orma $e in$icar a <ccess q e c an$o hab%amos $e% Dc$i/o $e pro2inciaE en %a tab%a $e C%ientes B $e% Dc$i/oE en %a tab%a $e Pro2incias, nos estamos re:irien$o rea%mente a %a misma cosa, $e mo$o q e ese $ato 2a a ser e% q e re%acione ambas tab%as. Es $ecir, q e si $ecimos q e n c%iente 2i2e en %a pro2incia 3, B en %a tab%a $e pro2incias $eta%%amos q e e% c$i/o 3 correspon$e a <%icante, $es$e e% momento en q e creemos %a re%acin, <ccess sabr q e ese 3 en C%ientes B ese 3 en Pro2incias se re:ieren a %o mismo, B, por tanto, q e ese c%iente 2i2e en <%icante. ?a :orma $e in$icar esto a <ccess es %a si/ ienteG P %samos e% botn ,e%aciones.

Nos mostrar %as tab%as q e tenemos $isponib%es, para q e esco)amos %as q e q eremos re%acionar..

?as q e se%eccionemos aparecern en panta%%a, ) nto con %os nombres $e s s camposG

.e esos campos q e sabemos q e se re:ieren a na misma cosa, pinchamos B arrastramos no $e e%%os hasta e% otro 8por e)emp%o, e% DCo$Pro2inciaE $e %a tab%a $e a% mnos hasta e% Dc$i/oE $e %a tab%a $e pro2incias;. <parecer na 2entana en %a q e <ccess nos pi$e q e con:irmemos c a%es son %os $os campos q e estn re%aciona$osG

C an$o p %semos e% botn DcrearE, aparecer na raBa nien$o esos $os campos, con %o q e <ccess nos in$ica q e ha enten$i$o n estra peticinG

Pero :a%tan n par $e $eta%%es $e %a 2entana anterior q e hemos pasa$o por a%toG ?a casi%%a $e DExi/ir inte/ri$a$ re:erencia%E se encar/arCa $e a2isarnos si intentamos tec%ear en %a tab%a $e a% mnos n c$i/o $e pro2incia q e no existe en %a tab%a $e pro2incias, para e2itar incon/r encias en %os $atos 8%a inte/ri$a$ re:erencia% en senti$o estricto tambi!n a:ecta a mo$i:icaciones B borra$os, pero nosotros no entraremos en tanto $eta%%e;. E% botn D3ipo $e combinacinE m estra %a pre/ nta q e aparece a %a $erecha, B q e se exp%ica por sC so%aG

3istados e in.or!es desde 0ccess.


?os in:ormes son %a :orma ms cmo$a $e 2o%car %a in:ormacin a pape% c an$o se emp%ea <ccess, e% eq i2a%ente $e %os %ista$os D$e to$a %a 2i$aE. Po$rCamos 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 in:ormes. Eso sC, n in:orme no permite Dhacer pre/ ntasE sobre %os $atos, sino q e esas pre/ ntas %as $eberemos hacer con na cons %ta pre2ia. Es $ecir, si n estro )e:e nos $ice DhaFme n in:orme con %os nombres, $irecciones B te%!:onos $e to$os %os c%ientes q e tenemos en 7arce%onaE, nosotros $eberemos $ar $os pasosG 1. Crear na cons %ta, q e tome to$os %os $atos $e n estros c%ientes B m estre s%o aq e%%os c%ientes q e c mp%en %a con$icin b sca$a. 2. < partir $e esta cons %ta, crear n in:orme q e m estre s%o %os campos q e nos interesen B con %a apariencia q e nos / ste. E% primer paso Ba %o conocemos, asC q e 2amos a 2er cmo se $arCa e% se/ n$oG %a creacin $e% in:orme. Entramos a %a pesta&a $e D*n:ormesE B p %samos e% botn DN e2oE. 6e nos pre/ ntar cmo q eremos crear este in:ormeG $es$e %a 2ista $e $ise&o, con n asistente, n in:orme a tomtico, o nos asistentes especC:icos para crear /r:icos o etiq etas. En n estro caso, saremos e% asistente, q e nos / iar paso a paso para crear n in:orme persona%iFa$o $e :orma senci%%a.

?a primera pre/ nta q e nos hace este asistente es q ! campos q eremos q e apareFcan, B $e q ! tab%a se 2an a tomar. *nsisto en q e po$emos in$icar q e nos m estre s%o a%/ nos campos, pero no po$emos pe$ir q e %os $atos c mp%an ciertas con$icionesG $e eso se encar/a %a cons %ta.

Para in$icar %os campos q e q eremos a&a$ir, basta ir se%eccionn$o%os en or$en B p %san$o %a :%echa X, q e har q e apareFcan en e% %a$o $erecho 8campos se%ecciona$os;. 6i q eremos a&a$ir to$os, %a :orma ms rpi$a es p %sar %a $ob%e :%echa 8XX;. .e i/ a% manera, po$emos e%iminar c a%q iera $e %os campos se%ecciona$os si hacemos c%ic en %a :%echa hacia %a iFq ier$a 8Y;, o e%iminar to$os e%%os p %san$o en %a $ob%e :%echa hacia %a iFq ier$a 8YY;. < contin acin nos pre/ nta si q eremos a/r par %os $atos $e a%/ na :orma. Por e)emp%o, nos p e$e interesar q e n estros c%ientes apareFcan a/r pa$os se/5n %a ci $a$ en %a q e 2i2an. <$ems po$rCamos in$icar q e rea%iFara a%/ na operacin con %os $atos q e se han a/r 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 haB otras operaciones $isponib%es como e% prome$io 8nota me$ia $e n estros a% mnos, estat ra me$ia, etc;. < estas posibi%i$a$es %%e/amos con e% botn D9pciones $e a/r pamientoE.

?a si/ iente pre/ nta es si q eremos or$enar %os re/istros q e aparecern en e% in:orme. En caso a:irmati2o, $eberemos in$icar en q ! campos q eremos q e se base 8por e)emp%o, por ape%%i$os B en se/ n$o % /ar Osi coinci$en %os ape%%i$os+ por nombre;. (na obser2acinG 6i hemos pe$i$o q e %os $atos se a/r pen, %os /r pos aparecern or$ena$os, B con esta opcin or$enarCamos a s 2eF %a in:ormacin q e aparece $entro $e ca$a /r po. .esp !s nos pre/ ntar %a $istrib cin /%oba% q e ten$rn %os $atos en e% in:orme, B nos mostrar n peq e&o e)emp%o $e cmo q e$arCa ca$a na $e e%%asG

Nina%mente nos pi$e %a apariencia, en c anto a combinacin $e co%ores B tipos $e %etra, q e ten$r n estro in:orme, B q e tambi!n esco/eremos entre 2arias pre$e:ini$as.

Ma est %isto. Nos pi$e n nombre B nos pre/ nta si $eseamos 2er cmo q e$arCa e% in:orme 8D2ista pre2iaE; o mo$i:icar s $ise&o. En principio, s pon$remos q e nos basta con 2er%o, B ms a$e%ante 2eremos cmo mo$i:icar e% $ise&o. (n 5%timo $eta%%eG e% in:orme q e$a a%macena$o, B %o po$emos 2o%2er a 2er simp%emente hacien$o $ob%e c%ic en s nombre. Pero 8como parece %/ico;, e% in:orme no mostrar siempre %os mismos $atosG se reca%c %a ca$a 2eF q e pi$amos q e nos %o m estre, $e mo$o q e %os $atos q e 2eamos en panta%%a sern siempre %os act a%es, inc% Ben$o %os 5%timos re/istros q e haBamos a&a$i$o B %as 5%timas mo$i:icaciones q e po$amos haber rea%iFa$o.

n tercer e"e!plo paso a paso.


Enunciado del tercer e"e!plo.
9tro msG
Aueremos informatizar una colecciDn de art<culos, que se encuentran repartidos en distintas revistas B publicaciones que conservamos. 3xisten art<culos de diversos temas. Jada revista tiene asociada una ubicaciDn #por e>emplo,una estanter<a& que es donde podremos encontrarla cuando la necesitemos. .os puede interesarobtener listados de art<culos a rupados por temas B/o por revistas, art<culos de un cierto tema publicados entre dos fec!as, art<culos de un determinado autor, etc."

Diseo del tercer e"e!plo.


8Por ahora, to$a2Ca q e$a prop esto como e)ercicio;.

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


8<parta$o to$a2Ca no $isponib%e;.

:or!ularios de introduccin de datos con 0ccess.


8<parta$o to$a2Ca no $isponib%e;.

-tras notaciones en Entidad#$elacin.


8<parta$o to$a2Ca no $isponib%e;.

-tras posibilidades...
> ieres q e este %ibro hab%e ms sobre e% $ise&o $e :orm %arios e in:ormes con <ccess" 9 %as macros" 9 %os m$ %os" 9 q e pro: n$ice ms en 6>?" ,e%aciones ternarias, narias B ms $eta%%es sobre Enti$a$+,e%acin" 9tros mo$e%os $e $atos" <%/o sobre norma%iFacin" 6i s! q ! es %o q e ms interesa a %a /ente, po$r! hacer q e este texto sea ms 5ti%.

5ersiones de este texto


?a 5%tima 2ersin $e este c rso estar $isponib%e en mi p/ina =eb, en %a $ireccinG
!ttp://;;;.pobox.com/users/ncabanes

Este texto es D5racias6are3. Esto q iere $ecir q e si te / sta BIo te res %ta 5ti%, basta con q e me man$es n correo e%ectrnico a mi $ireccin ncabanes@pobox.com 6i 2eo q e ten/o apoBo mora%, proc rar! ir me)oran$o este texto B %anFan$o n e2as 2ersiones, ca$a 2eF ms amp%ia$as. ?as versiones e/istentes hasta %a act a% han si$oG R 0.05, 20 Enero 2003. <&a$i$o n s baparta$o sobre cmo rea%iFar cons %tas senci%%as en %en/ a)e 6>? con <ccess, na intro$ ccin a %as re%aciones con <ccess, n aparta$o sobre in:ormes con <ccess B cmo po$rCa ser e% $ise&o $e% se/ n$o e)emp%o. 9c pa 4# p/inas. R 0.04, 03 9ct bre 2002. ,e$ ci$o %i/eramente e% tama&o $e% tipo $e %etra ti%iFa$o B e% tama&o $e a%/ na ima/en, con %o q e e% n5mero $e p/inas inicia% $e% $oc mento ba)a $e 3@ a 33. <&a$i$o n s baparta$o sobre cmo rea%iFar cons %tas senci%%as $es$e e% %en/ a)e

6>?, emp%ean$o =in6>?, B otro sobre cons %tas senci%%as $es$e <ccess. ,eescrito a%/5n prra:o b scan$o maBor c%ari$a$. 9c pa :ina%mente 3@ p/inas. R 0.03, 2- H %io 2001. <&a$i$o n s baparta$o sobre cmo crear %as tab%as $es$e e% %en/ a)e 6>?, emp%ean$o =in6>?. Prop esto e% en ncia$o $e% se/ n$o e)emp%o, q e to$a2Ca no est res e%to. <&a$i$a na nota sobre q e existen otras notaciones para e% mo$e%o Enti$a$+,e%acin, a nq e to$a2Ca no he $a$o ms $eta%%es sobre e%%as. 9c pa 3@ p/inas. R 0.02, 13 6eptiembre 2000. <&a$i$o n s baparta$o sobre cmo crear %as tab%as con <ccess. ,e2isa$a %a orto/ra:Ca, para e2itar a%/ na errata como D$irecotrioE, Daritm!ricasE o Dinc soE. Cambia$a %a n meracin $e %as p/inas 8para q e %a porta$a no c ente como p/ina 1;. 9c pa 33 p/inas. R 0.01, 0' </osto 2000. Primera 2ersin, oc pa 25 p/inas 8inc% Ben$o Cn$ices; B contiene %os tres primeros aparta$os 8intro$ ccin, nociones bsicas $e $ise&o, con2irtien$o e% $ise&o a tab%as;, hasta e% s baparta$o $e cmo crear %as tab%as con 6tar7ase. ?as pr/imas mejoras sernG R 0s $eta%%es sobre %as cons %tas. R Cmo re:%e)ar %as re%aciones en %a base $e $atos. R *ntro$ ccin a %os :orm %arios B %os in:ormes. R Cmo crear %as tab%as con $7ase ***A B otras bases $e $atos Danti/ asE.

;ndice 0l.abtico.
<ccess, 22 <sistente para tab%as, 24 atrib tos, 10 < ton m!rico, 2' base $e $atos, 5 campo, 5 car$ina%i$a$, @ char, 30 c%a2e, 11 c%a2e principa%, 11 c%a2es a%ternati2as, 11 constraint, 30 Cons %tas en 6>?, 33 create tab%e, 30 .ise&o bsico, ' EE,, enti$a$es, @ Enti$a$+,e%acin, ' Enti$a$+,e%acin Exten$i$o, Necha 8tipo $e $atos;, 14 NechaILora, 2' :rom, 31, 33 /enera%iFacin, 15 Kracias=are, # Liper2Cnc %o, 2@ *mportar tab%a, 25 in:ormes con <ccess, 40 insert into, 31 inte/ri$a$ re:erencia%, 3into, 31 %iUe, 34 %ista$os con <ccess, 40 ?/ico 8tipo $e $atos;, 14 0emo, 2' 0emo 8tipo $e $atos;, 14 0one$a, 2' N m!rico, 2' N m!rico 8tipo $e $atos;, 14 9b)eto 9?E, 2@ 9?E, 2@ primarB UeB, 30 re/istro, 5 re%aciona% 8base $e $atos;, 5 re%aciones, @ re%aciones en <ccess, 3@ se%ect, 31, 33 6K7., # 6iINo, 2' 6>?, 2@ 6>? en <ccess, 3' 6tar7ase, 1# 6tar9::ice, 1# tab%a, 5 3exto, 2' 3exto 8tipo $e $atos;, 14 tipos $e $atos, 13 2a% es, 31 Vinc %ar tab%a, 25 Vista $ise&o, 24 Vista ho)a $e $atos, 24 Vistas $e na cons %ta, en <ccess, 3' Jhere, 34 =in6>?, 2-

Вам также может понравиться