You are on page 1of 111

Tutorial de Base de Datos I M.S.C.

Alejandro Crdenas Nez


TUTORIAL DE BASE DE DATOS I.
UNIDAD I. Introduccin a las bases de datos.
1. Importancia conceptos b!sicos " ob#eti$os de las bases de datos.
Base de datos.%Es una coleccin de archios interrelacionados! son creados con un DBMS. El contenido
de una "ase de datos en#lo"a a la in$or%acin concerniente &al%acenadas en archios' de una
or#anizacin! de tal %anera (ue los datos est)n dis*oni"les *ara los usuarios! una $inalidad de la "ase de
datos es eli%inar la redundancia o al %enos %ini%izarla. +os tres co%*onentes *rinci*ales de un siste%a
de "ase de datos son el hard,are! el so$t,are DBMS - los datos a %anejar! as. co%o el *ersonal
encar#ado del %anejo del siste%a.
Base de datos.% Es un conjunto de datos or#anizados - relacionados entre s.! de $or%a l#ica! (ue en su
totalidad dan in$or%acin so"re as*ectos reales.
Dato& Conjunto de caracteres con al#n si#ni$icado! *ueden ser nu%)ricos! al$a")ticos o al$anu%)ricos.
In'ormacin& Es un conjunto ordenado de datos los cuales son %anejados se#n la necesidad del usuario!
*ara (ue un conjunto de datos *ueda ser *rocesado e$iciente%ente - *ueda dar lu#ar a in$or%acin!
*ri%ero se de"e #uardar l#ica%ente en archios.
1.1.Rol de las bases de datos " de los sistemas para su procesamiento en la
econom(a.
En una econo%.a cada ez %s #lo"alizada! la to%a de decisiones en las or#anizaciones se uelen %s
co%*lejas! *ues se de"e considerar una %a-or cantidad de in$or%acin - esta de"e re*resentar los datos
reales de lo (ue esta ocurriendo en la e%*resa! *or lo (ue directios - ad%inistradores! de"en hacer uso
de herra%ientas (ue les *er%itan analizar esa in$or%acin - $inal%ente to%ar la decisin correcta so"re
c%o diri#ir la e%*resa.
E/isten di$erentes ti*os de siste%as (ue dan a*o-o a la to%a de decisiones! *or lo (ue se de"en analizar
las necesidades de la or#anizacin - seleccionar el (ue %ejor se ada*te a ella. Al#unas de las razones %s
co%unes *ara hacer uso de estos siste%as se *ueden %encionar las si#uientes0
Ma-or elocidad de *rocesa%iento0 +os siste%as de so*orte a la to%a de decisiones! *er%iten (ue los
ad%inistradores *uedan realizar un %a-or n%ero de *rocesa%iento de in$or%acin de una %anera %s
r*ida - a "ajo costo.
1
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
Incremento de la productividad0 El $or%ar #ru*os es*ecializados *ara la to%a de decisiones *uede
ser real%ente costoso *ara la or#anizacin. A tra)s de los siste%as co%*utarizados! los #ru*os
*ueden ser %s reducidos - encontrarse en di$erentes lu#ares! lo (ue i%*licar.a una reduccin de
costos - o*ti%izacin de recursos.
Soporte tcnico: Muchas de las decisiones de los ad%inistradores! inolucran interacciones co%*lejas
de in$or%acin en di$erentes "ases de datos dentro de la or#anizacin. +os siste%as de so*orte a
las decisiones! *er%iten acceder a toda la in$or%acin de la or#anizacin - a tra)s de la 2e" se
*uede tener acceso desde cual(uier lu#ar donde se necesite. Ade%s (ue se *uede o"tener a*o-o a
tra)s de #r$icas! sonidos - anlisis de sensi"ilidad! entre otros! de una %anera r*ida -
econ%ica.
Calidad en las decisiones: +a calidad de las decisiones de los ad%inistradores se e %ejorada
nota"le%ente! -a (ue se tiene una %a-or alternatia *ara realizar ealuaciones! los anlisis de
ries#os *ueden ser o"tenidos r*ida%ente - ser co%unicados a los de%s %ie%"ros de la
or#anizacin a %u- "ajo costo. 3inal%ente *er%iten crear si%ulaciones co%*lejas - un sin $in de
escenarios! (ue *er%itirn al ad%inistrador conocer el i%*acto de sus decisiones en la
or#anizacin.
1.).*roblemas de redundancia e inconsistencia de datos.
Redundancia de datos& si un cliente ha realizado %s de un *edido todos los datos de este cliente estarn
re*etidos tantas eces co%o *edidos ha-a! lo %is%o sucede *ara los art.culos esto es o*uesto al *rinci*al
o"jetio de una "ase de datos (ue consiste en eitar la re*eticin de los %is%os.
+ontrol de la redundancia de datos& Este consiste en lo#rar una %.ni%a cantidad de es*acio de
al%acena%iento *ara al%acenar los datos eitando la du*licacin de la in$or%acin. De esta %anera se
lo#ran ahorros en el tie%*o de *rocesa%iento de la in$or%acin! se tendrn %enos inconsistencias!
%enores costos o*eratios - har el %anteni%iento %s $cil.
Incosistencia de los datos& Si una o*eracin de *uesta al d.a %lti*le no se ha realizado co%*leta%ente
el estado de la "ase de datos (ueda incoherente - *uede *roducir errores i%*ortantes.
Redundancia e inconsistencia de datos& 4uesto (ue los archios (ue %antienen al%acenada la
in$or%acin son creados *or di$erentes ti*os de *ro#ra%as de a*licacin e/iste la *osi"ilidad de (ue si no
se controla detallada%ente el al%acena%iento! se *ueda ori#inar un du*licado de in$or%acin! es decir
(ue la %is%a in$or%acin sea %s de una ez en un dis*ositio de al%acena%iento. Esto au%enta los
costos de al%acena%iento - acceso a los datos! ade%s de (ue *uede ori#inar la inconsistencia de los
datos 5 es decir diersas co*ias de un %is%o dato no concuerdan entre si 5! *or eje%*lo0 (ue se actualiza
la direccin de un cliente en un archio - (ue en otros archios *er%anezca la anterior.
1.,. *roblemas de inte-ridad " se-uridad.
*roblemas de se-uridad& +a in$or%acin de toda e%*resa es i%*ortante! aun(ue unos datos lo son %as
(ue otros! *or tal %otio se de"e considerar el control de acceso a los %is%os! no todos los usuarios
6
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
*ueden isualizar al#una in$or%acin! *or tal %otio *ara (ue un siste%a de "ase de datos sea con$ia"le
de"e de %antener un #rado de se#uridad (ue #arantice la autenti$icacin - *roteccin de los datos. En un
"anco *or eje%*lo! el *ersonal de no%inas solo necesita e%*leados del "anco - no a otro ti*o de
in$or%acin.
*roblemas de inte-ridad& +os alores de datos al%acenados en la "ase de datos de"en satis$acer cierto
ti*o de restricciones de consistencia. Estas restricciones se hacen cu%*lir en el siste%a aadiendo cdi#os
a*ro*iados en los diersos *ro#ra%as de a*licacin.
.antenimiento de la inte-ridad&
+a inte#ridad de los datos es la (ue #arantiza la *recisin o e/actitud de la in$or%acin contenida en una
"ase de datos. +os datos interrelacionados de"en sie%*re re*resentar in$or%acin correcta a los usuarios.
1.7. Ob#eti$os de las bases de datos. Independencia de datos " 'unciones as( como
consultas no planeadas.
E/isten "sica%ente dos ti*os de inde*endencia0
a. INDE*ENDEN+IA /ISI+A.% Esta se *resenta cuando es *osi"le la %odi$icacin del es(ue%a
$.sico sin a$ectar a los es(ue%as restantes. +as *rinci*ales razones *ara llear a ca"o una
%odi$icacin del es(ue%a $.sico sern un ajuste en el hard,are de al%acena%iento o una
redistri"ucin de los datos en )l.
". INDE*ENDEN+IA LO0I+A.% 8curre cuando se %odi$ica el es(ue%a conce*tual sin a$ectar al
resto de los es(ue%as. Bsica%ente se %odi$ica el es(ue%a conce*tual cuando ca%"ian las
caracter.sticas de los datos a al%acenar.
Independencia de los datos. En las a*licaciones "asadas en archios! el *ro#ra%a de a*licacin de"e
conocer tanto la or#anizacin de los datos co%o las t)cnicas (ue el *er%iten acceder a los datos. En los
siste%as DBMS los *ro#ra%as de a*licacin no necesitan conocer la or#anizacin de los datos en el disco
duro. Este total%ente inde*endiente de ello.
Independencia de los datos. 4ro*iedad (ue ase#ura (ue los *ro#ra%as de a*licacin sean inde*endientes
de los ca%"ios realizados en datos (ue no usan o en detalles de re*resentacin $.sica de los datos a los
(ue acceden
). Sistemas de mane#o de bases de datos.
).1.Or-ani1acin '(sica " l-ica.
En el nivel interno se descri"e la estructura $.sica de la "ase de datos %ediante un esquema interno. Este
es(ue%a se es*eci$ica %ediante un %odelo $.sico - descri"e todos los detalles *ara el al%acena%iento de
la "ase de datos! as. co%o los %)todos de acceso.
9
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
En el nivel conceptual se descri"e la estructura de toda la "ase de datos *ara una co%unidad de usuarios
&todos los de una e%*resa u or#anizacin'! %ediante un esquema conceptual. Este es(ue%a oculta los
detalles de las estructuras de al%acena%iento - se concentra en descri"ir entidades! atri"utos! relaciones!
o*eraciones de los usuarios - restricciones. En este niel se *uede utilizar un %odelo conce*tual o un
%odelo l#ico *ara es*eci$icar el es(ue%a.
En el nivel externo se descri"en arios esquemas externos o vistas de usuario. Cada es(ue%a e/terno
descri"e la *arte de la "ase de datos (ue interesa a un #ru*o de usuarios deter%inado - oculta a ese #ru*o
el resto de la "ase de datos. En este niel se *uede utilizar un %odelo conce*tual o un %odelo l#ico *ara
es*eci$icar los es(ue%as.
).).Len-ua#es de bases de datos& len-ua#es de descripcin de datos de mane#o de
datos de consulta " de pro-ramacin.
El DBMS es un conjunto de *ro#ra%as (ue se encar#an de %anejar la creacin - todos los accesos a las
"ases de datos. Se co%*one de un len#uaje de de$inicin de datos &DD+0 Data De$inition +an#ua#e'! de
un len#uaje de %ani*ulacin de datos &DM+0 Data Mani*ulation +an#ua#e' - de un len#uaje de consulta
&S:+0 Structured :uer- +an#ua#e'.
El len#uaje de de$inicin de datos &DD+' es utilizado *ara descri"ir todas las estructuras de in$or%acin -
los *ro#ra%as (ue se usan *ara construir! actualizar e introducir la in$or%acin (ue contiene una "ase de
datos.
El len#uaje de %ani*ulacin de datos &DM+' es utilizado *ara escri"ir *ro#ra%as (ue crean! actualizan -
e/traen in$or%acin de las "ases de datos.
El len#uaje de consulta &S:+' es e%*leado *or el usuario *ara e/traer in$or%acin de la "ase de datos. El
len#uaje de consulta *er%ite al usuario hacer re(uisiciones de datos sin tener (ue escri"ir un *ro#ra%a!
usando instrucciones co%o el SE+ECT! el 4;8<ECT - el <8IN.
=n Len-ua#e de .anipulacin de Datos &Data .ani*ulation Lan#ua#e &DM+'' es un len#uaje
*ro*orcionado *or el siste%a de #estin de "ase de datos (ue *er%ite a los usuarios de la %is%a llear a
ca"o las tareas de consulta o %ani*ulacin de los datos! or#anizados *or el %odelo de datos adecuado.
El len#uaje de %ani*ulacin de datos %s *o*ular ho- d.a es S:+! usado *ara recu*erar - %ani*ular
datos en una "ase de datos relacional.
Len-ua#e de manipulacin de datos.
El D.L &Data Mani*ulation +an#ua#e' nos sire *ara %anejar la in$or%acin contenida en la "ase de
datos. Este %anejo consiste "sica%ente en la insercin! recu*eracin! eli%inacin - %odi$icacin de la
in$or%acin.
El D.L a*licado a niel $.sico ser utilizado *ara realizar *rocesos (ue *er%itan un acceso %s e$iciente
a la in$or%acin> en el niel de isin tendr co%o $inalidad %ostrar al usuario destino los datos en una
7
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
$or%a clara - sencilla.
E/isten dos ti*os de D.L0
a. DE *RO+EDI.IENTOS.% Es*eci$ican cuales datos ha"rn de ser %ani*ulados - el %)todo (ue
se utilizara *ara ello.
". SIN *RO+EDI.IENTOS.% Sola%ente es*eci$ican los datos a %anejar.
+os D.L de *rocedi%ientos son %ucho %s e$icientes en lo (ue res*ecta a sus ca*acidades de %anejo -
control de la in$or%acin! *ero su co%*lejidad es %a-or.
Se de$ine una consulta co%o una o*eracin (ue solicita la recu*eracin de in$or%acin. +a *arte del
DM+ (ue se encar#a de *rocesar esta recu*eracin se conoce co%o LENGUAJE DE CONSULA.
Len-ua#e de de'inicin de datos.
=n es(ue%a de "ase de datos se es*eci$ica *or %edio de un conjunto de de$iniciones (ue se e/*resan
%ediante un len#uaje es*ecial lla%ado len#uaje de de$inicin de datos.
El resultado de la co%"inacin de sentencias de DD+ es un conjunto de ta"las las cuales se al%acenan en
un archio es*ecial lla%ado diccionario de datos.
El DDL &Data De$inition +an#ua#e' es a(uel (ue *er%ite descri"ir un es(ue%a de "ase de datos. +as
de$iniciones resultantes con$or%aran al DICCI8NA;I8 DE DAT8S.
=n DI++IONARIO DE DATOS es un archio (ue contiene %etadatos (ue se consulta antes de leer o
%odi$icar datos reales en el siste%a de "ase de datos.
).,.Inter'aces con otros sistemas.
+mo /unciona la Inte-racin de Bases de Datos en el 2eb.
4ara realizar una re(uisicin de acceso desde el 2e" hasta una "ase de datos no slo se necesita de un
"ro,ser del 2e" - de un Seridor 2e"! sino ta%"i)n de un so$t,are de *rocesa%iento &a*licacin C?I'!
el cual es el *ro#ra%a (ue es lla%ado directa%ente desde un docu%ento @TM+ en el cliente. Dicho
*ro#ra%a lee la entrada de datos desde (ue *roienen del cliente - to%a cierta in$or%acin de aria"les
de a%"iente. El %)todo usado *ara el *aso de datos est deter%inado *or la lla%ada C?I.
=na ez se reci"en los datos de entrada &sentencias S:+ o *iezas de ellas'! el so$t,are de *rocesa%iento
los *re*ara *ara eniarlos a la inter$az en $or%a de S:+! - lue#o )sta *rocesa los resultados (ue se
e/traen de la "ase de datos.
A
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
+a inter$az contiene las es*eci$icaciones de la "ase de datos necesarias *ara traducir las solicitudes
eniadas desde el cliente! a un $or%ato (ue sea reconocido *or dicha "ase. Ade%s! contiene toda la
in$or%acin! estructuras! aria"les - lla%adas a $unciones! necesarias *ara co%unicarse con la "ase de
datos.
El so$t,are de acceso usual%ente es el so$t,are distri"uido con la "ase de datos! el cual *er%ite el acceso
a la %is%a! a tra)s de solicitudes con $or%ato. +ue#o! el so$t,are de acceso reci"e los resultados de la
"ase de datos! an los %ensajes de error! - los *asa hacia la inter$az! - )sta a su ez! los *asa hasta el
so$t,are de *rocesa%iento.
Cual(uier otro so$t,are &seridor @TT4! so$t,are de redes! etc.' a#re#a enlaces adicionales a este
*roceso de e/traccin de la in$or%acin! -a (ue el so$t,are de *rocesa%iento *asa los resultados hacia el
seridor 2e"! - )ste hasta el "ro,ser del 2e" &-a sea directa%ente o a tra)s de una red'.
+ate-ori1acin de Inter'aces 2eb3DB.S
Tradicional%ente en el 2e" se han utilizado docu%entos @TM+ estticos *ara los cuales se crea"an las
*osi"les res*uestas ante re(uisiciones del cliente. Este %)todo re(uiere de un #ran desarrollo de
a*licaciones - de %anteni%iento de las %is%as. Al interactuar con las "ases de datos! este *roceso se
co%*lica an %s.
Co%o la necesidad de acceder a "ases de datos desde el 2e" se ha incre%entado! han sido creadas
ta%"i)n inter$aces (ue %ani*ulan sus escritos *ara *rocesar la in$or%acin! teniendo co%o *unto co%n
la ejecucin de sentencias S:+ *ara re(uerir datos a la "ase.
A*licaciones de inter$az *ara la interaccin de "ases de datos con el 2e" han sur#ido -a. +os *roductos
iniciales son si%*le%ente %odelos del a%"iente clienteBseridor! con una ca*a adicional *ara crear
resultados @TM+ (ue *ueden ser istos a tra)s del 2e"! *or %edio de un *rocesa%iento de los datos de
la $or%a introducidos *or el cliente. Ade%s! al usar estas inter$aces se *uede crear el *ro#ra%a *rinci*al
de la a*licacin. Co%o *uede o"serarse! estas herra%ientas *er%iten construir *oderosas a*licaciones en
el 2e"! *ero se re(uiere (ue *ro#ra%adores e/*eri%entados lo#ren un desarrollo a #ran escala. Ta%"i)n!
el %anteni%iento de las %is%as es si#ni$icatia%ente %s co%*lejo - e/tenso.
=na de las estrate#ias %s $a%osas *ara la creacin de a*licaciones de interaccin con el 2e"! es la de
descar#ar del 2e"! a*licaciones o co%*onentes $uncionales (ue se ejecutarn dentro del "ro,ser. Con
ellas se realizar un *rocesa%iento co%*lejo del lado del cliente! lo cual re(uiere un #ran es$uerzo *ara
crear las *iezas de la a*licacin. Estas estrate#ias *oseen dos caracter.sticas *rinci*ales0 #arantizan la
se#uridad tanto en los siste%as de distri"ucin co%o en la co%unicacin (ue se esta"lece con tales
a*licaciones! a tra)s de Internet.
Ta%"i)n han a*arecido "i"liotecas (ue inclu-en %otores *ro*ios de seridor (ue corren de $or%a
conjunta con el Seridor 2e"! lo cual $acilita el desarrollo de nueas a*licaciones.
=na a*licacin (ue *osi"ilita interconectar al 2e" con una "ase de datos tiene %uchas entajas! ade%s
de (ue las $unciones (ue cu%*len actual%ente los Seridores 2e" - las herra%ientas de desarrollo de
a*licaciones 2e"! hacen %s $cil (ue nunca la construccin de a*licaciones %s ro"ustas. Tal ez el
%a-or "ene$icio del desarrollo de estas a*licaciones en el 2e" sea la ha"ilidad de (ue sean *ara %lti*les
*lata$or%as! sin el costo de distri"uir %lti*les ersiones del so$t,are.
Cada una de las inter$aces *ara co%unicar al 2e" con "ases de datos! ha sido creada "asndose en una
tecnolo#.a de inte#racin es*ecial! a tra)s de *rocesos de intercone/in es*eciales! (ue sern descritos
en el si#uiente a*artado.
ecnolo!"as para la Inte!raci#n de $ases de Datos en el %e&
El +ommon 0ate4a" Inter'ace 5+0I6.
C
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
Inter'a1 de *ro-ramacin de Aplicaciones 5A*I6.
Inter'a1 de *ro-ramacin de Aplicaciones del Ser$idor Internet 5ISA*I6.
7a$a 7DB+ " 7a$aScript.
A*licaciones <aa
Conectiidad de Bases de Datos de <aa &<DBC'
<aaScri*t
Cuando se utiliza una inter$az *ara lo#rar la inte#racin del 2e" con cierta "ase de datos! se *uede
eri$icar (ue los *rocesos se#uidos ar.an! de*endiendo de la tecnolo#.a (ue se est) utilizando.
Entre estas tecnolo#.as se tienen las si#uientes0
El Common Gate'a( Inter)ace *CGI+,
Actual%ente! )sta es la solucin (ue %s se est utilizando *ara la creacin de inter$aces 2e"BDBMS.
3ue *ro"ada *or *ri%era ez en el seridor NCSA.
Se ha co%*ro"ado (ue si el Seridor 2e" reci"e un =;+ con una llae! *ara deoler un docu%ento
@TM+ co%o res*uesta! tendr (ue car#ar el sericio &*ro#ra%a' (ue le indi(ue las aria"les de a%"iente
- de la $or%a @TM+. +a %a-or.a de las eces dicha llae es el Dc#i5"inD.
Entre las entajas de la *ro#ra%acin C?I! se tiene su sencillez! -a (ue es %u- $cil de entender! ade%s
de ser un len#uaje de *ro#ra%acin inde*endiente! -a (ue los escritos C?I *ueden ela"orarse en arios
len#uajes.
Ta%"i)n es un estndar *ara usarse en todos los seridores 2e"! - $uncionar "ajo una ar(uitectura
inde*endiente! -a (ue ha sido creado *ara tra"ajar con cual(uier ar(uitectura de seridor 2e".
Co%o la a*licacin C?I se encuentra $uncionando de $or%a inde*endiente! no *one en *eli#ro al
seridor! en cuanto al cu%*li%iento de todas las tareas (ue )ste se encuentre realizando! o al acceso del
estado interno del %is%o.
4ero el C?I *resenta cierta desentaja en su e$iciencia! de"ido a (ue el Seridor 2e" tiene (ue car#ar el
*ro#ra%a C?I - conectar - desconectar con la "ase de datos cada ez (ue se reci"e una re(uisicin.
Ade%s! no e/iste un re#istro del estado del seridor! sino (ue todo ha- (ue hacerlo %anual%ente.
Inter)a- de .ro!ramaci#n de Aplicaciones *A.I+,
Es un conjunto de rutinas! *rotocolos - herra%ientas *ara construir a*licaciones de inter$az. =na "uena
A4I hace %s $cil el tra"ajo de desarrollo de un *ro#ra%a! -a (ue de"e *roeer todos los "lo(ues *ara
construirlo. El *ro#ra%ador lo nico (ue hace es *oner todos los "lo(ues juntos.
A4I est diseado es*ecial%ente *ara los *ro#ra%adores! -a (ue #arantiza (ue todos los *ro#ra%as (ue
utilizan A4I! tendrn inter$aces si%ilares. Asi%is%o! esto le $acilita al usuario a*render la l#ica de
nueos *ro#ra%as.
Cuando se realiza una re(uisicin! el seridor lla%ar al A4I! "rindando la entaja de dis*oner de una
%a-or cantidad de sericios.
Inter)a- de .ro!ramaci#n de Aplicaciones del Servidor Internet *ISA.I+,
Es la inter$az *ro*uesta *or Microso$t co%o una alternatia %s r*ida (ue el C?I! - -a est incluida en
el Seridor Microso$t Internet In$or%ation &IIS'.
As. co%o los escritos C?I! los *ro#ra%as escritos usando ISA4I ha"ilitan un usuario re%oto *ara ejecutar
un *ro#ra%a! "usca in$or%acin dentro de una "ase de datos! o interca%"ia in$or%acin con otro
so$t,are localizado en el seridor.
E
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
+os *ro#ra%as escritos usando la inter$az ISA4I son co%*ilados co%o "i"liotecas de enlace din%ico
&D++ 5 D-na%ic +inF +i"rar-'! -a (ue son car#ados *or el seridor 2e" cuando )ste se inicia. Dichos
*ro#ra%as se uelen residentes en %e%oria! *or lo (ue se ejecutan %ucho %s r*ido (ue las
a*licaciones C?I! de"ido a (ue re(uieren %enos tie%*o de uso de C4= al no iniciar *rocesos se*arados.
=no de los *ro#ra%as ISA4I %s usados es el @TT48DBC.D++ (ue se usa *ara eniar -Bo deoler
in$or%acin hacia - desde las "ases de datos! a tra)s de 8DBC.
Ade%s! ISA4I *er%ite realizar un *rocesa%iento *reio de la solicitud - uno *osterior de la res*uesta!
con lo cual %ani*ula la solicitudBres*uesta @TT4. +os $iltros ISA4I *ueden utilizarse *ara a*licaciones
tales co%o autenticacin! acceso o a*ertura de sesin.
Java/ JD$C ( Java Script,
<aa o$rece un a%"iente de *ro#ra%acin %u- sencillo! ro"usto! din%ico! de *ro*sito #eneral!
orientado a o"jetos - %lti*les *lata$or%as! creado *or Sun MicroS-ste%s.
Es tanto un co%*ilador co%o un len#uaje int)r*rete. El cdi#o $uente de <aa es conertido en
instrucciones "inarias si%*les! - co%*ilado con un $or%ato uniersal.
El Co%*ilador realiza todas las actiidades de un *rocesador real en un a%"iente irtual %s se#uro. Es
decir! ejecuta instrucciones! crea - %ani*ula in$or%acin! car#a - hace re$erencia a "lo(ues de cdi#o
nueos.
El Int)r*rete! (ue es *e(ueo - %u- til! es ca*az de ser i%*lantado en cual(uier $or%a (ue se desee *ara
un siste%a o*eratio *articular. Este *uede correr co%o una a*licacin inde*endiente! o co%o una *arte
de otro so$t,are! tal co%o el 2e" Bro,ser.
El conce*to de <aa es di$erente al de C?I! -a (ue el C?I se ejecuta en el seridor! %ientras (ue <aa se
ejecuta en el cliente.
Aplicaciones Java,
+os *ro#ra%adores *ueden desarrollar *e(ueas a*licaciones! las cuales *er%iten tener sitios 2e" con
una #ran $uncionalidad en cuanto a0 ani%acin! actualizacin en io! interaccin "idireccional - %s.
Al inte#rarse en una *#ina 2e"! las a*licaciones de <aa tienen acceso a0
;ecreacin de #r$icos e/*ertos.
Interaccin en tie%*o real con los usuarios.
Actualizacin en io de la in$or%acin.
Interaccin instantnea con los seridores a tra)s de la red.
+as a*licaciones de <aa *ueden o"tenerse en cual(uier seridor con esta tecnolo#.a - $uncionan de $or%a
se#ura "ajo cual(uier *lata$or%a o ar(uitectura de C4=! *er%itiendo introducirlas en *#inas @TM+.
+as a*licaciones son *ro#ra%as inde*endientes! tales co%o el "ro,ser @ot<aa.
.rocesamiento Cliente0Servidor.
4or lo #eneral! las a*licaciones 2e" son *rocesadas co%*leta%ente en el lado del seridor! lo cual no es
*recisa%ente lo %s a*ro*iado! -a (ue si#ni$ica un uso e/cesio de %e%oria! %anteniendo al usuario en
la es*era %ientras ter%ina de ejecutarse. 4ero los "ro,ser <aa &del lado del usuario' *ueden ejecutar
a*licaciones! - no slo des*le#ar docu%entos @TM+! *oniendo a correr el *roceso en el lu#ar a*ro*iado.
+as a*licaciones clsicas *roeen de in$or%acin acerca de los ti*os de $or%ato &ti*os MIME'. +os
"ro,ser del 2e" r*idos sern ca*aces de a*render c%o tratar con nueos *rotocolos - dar $or%ato
din%ica%ente a los datos.
G
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
Se!uridad .
<aa est diseado *ara *roeer la %/i%a se#uridad *osi"le en redes *"licas! con %lti*les $or%as de
se#uridad ante irus! *osi"les inasiones o accesos incorrectos! archios "asura! etc. <aa es co%o una
ersin de CHH! en la cual se *uede causar cual(uier dao. Es $uncional co%o C - %odular Co%o CHH.
Conectividad de $ases de Datos de Java *JD$C+,
Se considera el *ri%er *roducto estndar de <aa con DBMS! creado - o$recido *or *ri%era ez en %arzo
de 1IIC.
Crea una inter$az con un niel de *ro#ra%acin (ue le *er%ite co%unicarse con las "ases de datos
%ediante un conce*to si%ilar al de co%*onentes 8DBC! el cual se ha conertido en el estndar (ue se
utiliza en co%*utadoras *ersonales o en redes locales.
El estndar de <DBC est "asado en un niel de inter$az con instrucciones S:+ JB8*en! (ue es
"sica%ente lo %is%o (ue en 8DBC.
+as clases de o"jetos *ara iniciar la transaccin con la "ase de datos! estn escritas co%*leta%ente en
<aa! lo cual *er%ite %antener la se#uridad! ro"ustez - *orta"ilidad de este a%"iente.
El *uente <DBC58DBC %ani*ula la traduccin de lla%adas <DBC a a(uellas (ue *uedan ser entendidas
*or el cliente 8DBC a un niel de len#uaje C.
JavaScript,
Es un len#uaje %u- *oderoso - es*ecial%ente diseado *ara la creacin de escritos! (ue se alojan
dentro de un docu%ento @TM+. Dicho len#uaje es *ro*iedad de Netsca*e.
Es un A4I *ro#ra%a"le (ue *er%ite crear escritos de eentos! o"jetos - acciones! "ajo cual(uier
*lata$or%a. ?racias a (ue <aaScri*t es *arte de la cone/in en io! se *uede usar *ara crear
interacciones entre docu%entos @TM+! 4lu#5ins &a*licaciones (ue corren dentro del "ro,ser del
2e"' - <aa.
I
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
,. Usuarios de las bases de datos.
,.1.Usuarios 'inales.
;e(uieren tener acceso directo a la "ase de datos *ara realizar consultas! %odi$icaciones - #enerar
re*ortes! de hecho la "ase de datos e/iste *ara ellos. Dentro de este ti*o de usuarios tene%os la
si#uiente clasi$icacin.
Espor1dicos, 4ersonas (ue utilizan la "ase de datos al#unas eces *ara solicitar in$or%acin con
di$erentes criterios.
Simples o paramtrico, 3or%an el #rueso de la *o"lacin de los usuarios $inales! realizan o*eraciones
o transacciones de uso co%n! (ue se han *o"lado e/haustia%ente. En este #ru*o se encuentran las
*ersonas (ue utilizan a los siste%as "ancarios! reseraciones de cual(uier ti*o! entre otras.
Avan-ados, Son las *ersonas ca*acitadas *ara %ani*ular el S?BD! las cuales tienen re(ueri%ientos
co%*lejos de in$or%acin.
Aut#nomos, =tilizan "ases de datos *ersonalizadas de $cil uso! cu-o a%"iente es de ti*o #r$ico! es
decir! %antiene un a%"iente a%i#a"le.
,.). Dise8adores " desarrolladores.
Son las *ersonas encar#adas de disear la "ase de datos - realizar las de$iniciones en el S?BD a niel
interno! *ara cu"rir los re(ueri%ientos de los de%s usuarios de la "ase de datos.
,.,. Operadores " capturistas.
Son las *ersonas encar#adas de hacer el aciado de la in$or%acin en la "ase de datos! as. co%o de llear
a ca"o el $unciona%iento - %anteni%iento del siste%a de in$or%acin.
1K
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
9. Relaciones entre datos.
9.1.Uno a uno.
9.).Uno a $arios.
9.,.:arios a uno.
9.9.:arios a $arios.
Limitantes de mapeo.
E/isten 7 ti*os de relaciones (ue *ueden esta"lecerse entre entidades! las cuales esta"lecen con cuantas
entidades de ti*o B se *ueden relacionar una entidad de ti*o A0
Tipos de relaciones&
2elaci#n uno a uno,
Se *resenta cuando e/iste una relacin co%o su no%"re lo indica uno a uno! deno%inado ta%"i)n
relacin de %atri%onio. =na entidad del ti*o A solo se *uede relacionar con una entidad del ti*o B! -
iceersa>
4or eje%*lo0 la relacin asignacin de automvil (ue contiene a las entidades EM4+EAD8! A=T8! es
una relacin 1 a 1! -a (ue asocia a un e%*leado con un nico auto%il *or lo tanto nin#n e%*leado
*osee %s de un auto%il asi#nado! - nin#n eh.culo se asi#na a %s de un tra"ajador.
Es re*resentado #r$ica%ente de la si#uiente %anera0
A& ;e*resenta a una entidad de cual(uier ti*o di$erente
a una entidad B.
R& en el dia#ra%a re*resenta a la relacin (ue e/iste entre las entidades.
El e/tre%o de la $lecha (ue se encuentra *unteada indica el uno de la relacin! en este caso! una entidad A
li#ada a una entidad B.
11
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
2elaci#n uno a muc3os,
Si#ni$ica (ue una entidad del ti*o A *uede relacionarse con cual(uier cantidad de entidades del ti*o B! -
una entidad del ti*o B solo *uede estar relacionada con una entidad del ti*o A.
Su re*resentacin #r$ica es la si#uiente0
Ntese en este caso (ue el e/tre%o *unteado de la $lecha de la relacin de A - B! indica una entidad A
conectada a %uchas entidades B.
4uc3os a uno,
Indica (ue una entidad del ti*o B *uede relacionarse con cual(uier cantidad de entidades del ti*o A!
%ientras (ue cada entidad del ti*o A solo *uede relacionarse con solo una entidad del ti*o B.
4uc3as a muc3as,
Esta"lece (ue cual(uier cantidad de entidades del ti*o A *ueden estar relacionados con cual(uier cantidad
de entidades del ti*o B.
A los ti*os de relaciones antes descritos! ta%"i)n se le conoce co%o cardinalidad,
+a cardinalidad nos es*eci$ica los ti*os de relaciones (ue e/isten entre las entidades en el %odelo E5; -
esta"lecer con esto las alidaciones necesarias *ara conse#uir (ue los datos de la instancia &alor nico en
un %o%ento dado de una "ase de datos' corres*ondan con la realidad.
Al#unos eje%*los de cardinalidades de la ida co%n *ueden ser0
Uno a uno.
El noiaz#o! el ;3C de cada *ersona! El C=;4 *ersonal! El acta de naci%iento! -a (ue solo e/iste un
solo docu%ento de este ti*o *ara cada una de las di$erentes *ersonas.
Uno a muc3os.
Cliente L Cuenta en un "anco! 4adre5@ijos! Ca%in54asajeros! zoolo#ico5 ani%ales! r"ol L hojas.
16
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
4uc3os a muc3os,
Ar(uitecto L *ro-ectos! $iesta L *ersonas! estudiante L %aterias.
NOTA&
Ca"e %encionar (ue la cardinalidad *ara cada conjunto de entidades de*ende del *unto de ista (ue se le
de al %odelo en estudio! claro esta! sujetndose a la realidad.
8tra clase de li%itantes lo constitu-e la dependencia de existencia,
;e$iri)ndonos a las %is%as entidades A - B! deci%os (ue si la entidad A de*ende de la e/istencia de la
entidad B! entonces A es de*endiente de e/istencia *or B! si eli%ina%os a B tendr.a%os (ue eli%inar *or
consecuente la entidad A! en este caso B es la entidad Dominante - A es la entidad subordinada.
;. Tipos de modelos de datos&
;.1..odelos de lista o planos.
;.)..odelos #er!r<uicos o arborescentes.
El %odelo jerr(uico es si%ilar al %odelo de red! los datos - las relaciones se re*resentan %ediante
re#istros - enlaces. Se di$erencia del %odelo de red en (ue los re#istros estn or#anizados co%o
colecciones de r"oles.
=na base de datos jerrquica consiste en una coleccin de registros que se conectan entre si por medio
de ligas. +os re#istros - las li#as son si%ilares a los del %odelo de red! *ero en el %odelo jerr(uico se
or#aniza en $or%a de r"ol con ra.z &donde la ra.z es nodo $icticio'> de tal %anera (ue una "ase de datos
jerr(uica es una coleccin de ar"oles de este ti*o! $or%ando un "os(ue.
A cada rbol con raz con raz se le denomina rbol de base de datos.
En este %odelo un re#istro *uede tener (ue re*etirse en arios sitios (ue *uede ocasionar los si#uientes
*ro"le%as0
19
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
M ;ies#os de la inconsistencia al llear a ca"o actualizaciones.
M Ineita"le des*erdicio de es*acio en el %edio de al%acena%iento secundario.
Dia!ramas de estructura de 1r&ol
=n dia#ra%a de estructura de r"ol es la re*resentacin de un es(ue%a de la "ase de datos jerr(uica! de
ah. el no%"re! -a (ue un r"ol esta desarrollado *recisa%ente en orden descendente $or%ando una
estructura jerr(uica.
Este ti*o de dia#ra%a est $or%ado *or dos co%*onentes "sicos0
5 ;ectn#ulos0 (ue re*resentan a los de re#istros.
5 +.neas0 (ue re*resentan a los enlaces o li#as entre los re#istros.
=n dia#ra%a de r"ol tiene el *ro*sito de es*eci$icar la estructura #lo"al de la "ase de datos.
=n dia#ra%a de estructura de r"ol es si%ilar a un dia#ra%a de estructura de datos en el %odelo de red.
+a *rinci*al di$erencia es (ue en el %odelo de red los re#istros se or#anizan en $or%a de un #ra$o
ar"itrario! %ientras (ue en %odelo de estructura de r"ol los re#istros se or#anizan en $or%a de un r"ol
con ra.z.
Caracter.sticas de las estructuras de r"ol0
El r"ol no *uede contener ciclos.
+as relaciones (ue e/isten en la estructura de"en ser de tal $or%a (ue solo e/istan relaciones %uchos
a uno o uno a uno entre un *adre - un hijo.
Diagrama de estructura de rbol
En este dia#ra%a *ode%os o"serar (ue las $lechas estn a*untando de *adres a hijos. =n *adre &ori#en
de una ra%a' *uede tener una $lecha a*untando a un hijo! *ero un hijo sie%*re *uede tener una $lecha
a*untando a su *adre.
El es(ue%a de una "ase de datos se re*resenta co%o una coleccin de dia#ra%as de estructura de r"ol.
4ara cada dia#ra%a e/iste una nica instancia de r"ol de "ase de datos. +a ra.z de este r"ol es un nodo
$icticio. +os hijos de ese nodo son instancias de los re#istros de la "ase de datos. Cada una de las
instancias (ue son hijos *ueden tener a su ez! arias instancias de arios re#istros.
+as re*resentaciones se#n las cardinalidades son0
Considere%os la relacin alu%no5%ateria sin atri"uto descri*tio.
17
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
+a trans$or%acin se#n las cardinalidades seria0
Cuando la relacin es uno a uno.
Cuando la relacin es uno a %uchos.
Cuando la relacin es %uchos a uno.
Cuando la relacin es %uchos a %uchos.
Cuando la relacin tiene atri"utos descri*tios! la trans$or%acin de un dia#ra%a E5; a estructura de
r"ol se llea a ca"o cu"riendo los si#uientes *asos0
1. Crear un nueo ti*o de re#istro.
6. Crear los enlaces corres*ondientes.
Considere%os (ue a la relacin Alu%no5Materia aadi%os el atri"uto Cal a la relacin (ue e/iste entre
a%"as! entonces nuestro %odelo E5; resulta0
Aadir el dia#ra%a E5;
1A
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
Se#n las cardinalidades los dia#ra%as de estructura de r"ol *ueden (uedar de la si#uiente %anera0
Cuando la relacin es uno a uno.
Cuando la relacin es uno a %uchos.
Cuando la relacin es Muchos a uno.
Cuando la relacin es Muchos a Muchos.
Si la relacin es %uchos a %uchos entonces la trans$or%acin a dia#ra%as de r"ol es un *oco %s
co%*leja de"ido a (ue el %odelo jerr(uico solo se *ueden re*resentar las relaciones uno a uno o uno a
%uchos.
E/isten arias $or%as distintas de trans$or%ar este ti*o de relaciones a estructura de r"ol! sin e%"ar#o
todas las $or%as constitu-en la re*eticin de al#unos re#istros.
1C
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
+a decisin de (u) %)todo de trans$or%acin de"e utilizarse de*ende de %uchos $actores! entre los (ue
se inclu-en0
5 El ti*o de consultas es*eradas en la "ase de datos.
5 El #rado al (ue el es(ue%a #lo"al de "ase de datos (ue se est %odelando se ajusta al dia#ra%a E5;
dado.
A continuacin se descri"e la $or%a de trans$or%ar un dia#ra%a E5; a estructura de r"ol con relaciones
%uchos a %uchos. Su*one%os el eje%*lo de la relacin alu%no5%ateria.
1. Crear dos dia#ra%as de estructura de r"ol distintos T1 -T6! cada uno de los cuales inclu-e los
ti*os de re#istro alu%no - %ateria! en el r"ol T1 la ra.z es alu%no - en T6 la ra.z es %ateria.
6. Crear los si#uientes enlaces0
=n enlace %uchos a uno del re#istro cuenta al re#istro Alu%no! en T1
=n enlace %uchos a uno del ti*o de re#istro cliente al ti*o de re#istro %ateria en T6.
Co%o se %uestra en el si#uiente dia#ra%a0
;.,..odelos reticulares.
+os datos en el %odelo de red se re*resentan %ediante colecciones de re#istros - las relacciones entre los
datos se re*resentan %ediante enlaces! los cuales *ueden erse co%o *unteros.
+ON+E*TOS BASI+OS.
=na "ase de datos de red se co%*one *or una coleccin de re#istras (ue se conectan entre si *or %edio de
li#as.
1E
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
=n re#istro e(uiale a una entidad - un ca%*o a un atri"uto del %odelo entidad relacin. +os ca%*os
contienen e/clusia%ente alores at%icos. =na li#a es una relacin (ue se esta"lece sola%ente entre dos
re#istros> es decir> de"e utilizarse una li#a *ara cada relacin entre una *areja de re#istros.
Eje%*lo0
C+IENTES C=ENTAS
DIA0RA.AS DE ESTRU+TURAS DE DATOS
4er%iten %ostrar #r$ica%ente el es(ue%a de una "ase de datos en el %odelo de red. Sus co%*onentes
*rinci*ales son0

5 Cajas o cuadros0 re*resentan re#istros.
5 +.neas0 re*resentan li#as.
.ODELO ENTIDAD % RELA+I=N
;ED
C+IENTE C=ENTA
El caso anterior %uestra la conersin del %odelo entidad relacin al %odelo de red *ara una relacin
si%*le donde no e/isten atri"utos descri*tios en la relacin.
CASOS ES.ECIALES,
a' +A ;E+ACINN TIENE AT;IB=T8S DESC;I4TIO8S
E5;
1G
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
D. E. D. ;ED
"' +a relacin conecta a %as de dos conjuntos de entidades.
Eje%*lo0
1I
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
D. E. D. ;ED
;.9.El modelo relacional.
El %odelo relacional re*resenta los datos - relaciones entre los datos %ediante una coleccin de ta"las!
cu-as colu%nas tienen no%"res nicos.
6K
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
UNIDAD II. Bases de datos relacinales.
1. Estructuras b!sicas de las bases de datos relacionales " normali1acin.
1.1.Relaciones tablas o entidades.
=na relaci#n es la asociacin (ue e/iste entre dos a %s entidades.
=n con5unto de relaciones es un #ru*o de relaciones del %is%o ti*o.
+a cantidad de entidades en una relacin deter%ina el !rado de la relacin! *or eje%*lo la relacin
A+=MN85MATE;IA es de #rado 6! -a (ue interienen la entidad A+=MN8 - la entidad MATE;IA! la
relacin 4AD;ES! *uede ser de #rado 9! -a (ue inolucra las entidades 4AD;E! MAD;E e @I<8.
=na entidad es un o"jeto (ue e/iste - se distin#ue de otros o"jetos de acuerdo a sus caracter.sticas
lla%adas atri"utos. +as entidades *ueden ser concretas co%o una *ersona o a"stractas co%o una $echa.
=n con5unto de entidades es un #ru*o de entidades del %is%o ti*o. 4or eje%*lo el conjunto de entidades
C=ENTA! *odr.a re*resentar al conjunto de cuentas de un "anco J! o A+=MN8 re*resenta a un
conjunto de entidades de todos los alu%nos (ue e/isten en una institucin.
=na entidad se caracteriza - distin#ue de otra *or los atri&utos! en ocasiones lla%adas *ro*iedades! (ue
re*resentan las caracter.sticas de una entidad. +os atri"utos de una entidad *ueden to%ar un conjunto de
alores *er%itidos al (ue se le conoce co%o dominio del atri"uto. As. cada entidad se descri"e *or %edio
de un conjunto de *arejas $or%adas *or el atri"uto - el alor de dato. @a"r una *areja *ara cada atri"uto
del conjunto de entidades.
61
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
+a $uncin (ue tiene una relacin se lla%a papel! #eneral%ente no se es*eci$ican los *a*eles o roles! a
%enos (ue se (uiera aclarar el si#ni$icado de una relacin.
Dia#ra%a E5; &sin considerar los atri"utos! slo las entidades' *ara los %odelos eje%*li$icados0
Dia!rama Entidad62elaci#n
Deno%inado *or sus si#las co%o0 E5;> Este %odelo re*resenta a la realidad a tra)s de un
es(ue%a #r$ico e%*leando los ter%inolo#.a de entidades! (ue son o"jetos (ue e/isten - son los
ele%entos *rinci*ales (ue se identi$ican en el *ro"le%a a resoler con el dia#ra%ado - se
distin#uen de otros *or sus caracter.sticas *articulares deno%inadas atributos el enlace (ue (ue
ri#e la unin de las entidades esta re*resentada *or la relacin del %odelo.
;ecorde%os (ue un rectn#ulo nos re*resenta a las entidades> una eli*se a los atri"utos de las
entidades! - una eti(ueta dentro de un ro%"o nos indica la relacin (ue e/iste entre las entidades!
destacando con l.neas las uniones de estas - (ue la llae *ri%aria de una entidad es a(uel atri"uto
(ue se encuentra su"ra-ado.
A continuacin %ostrare%os al#unos eje%*los de %odelos E5;! considerando las cardinalidades
(ue e/isten entre ellos0
2elaci#n Uno a Uno,
*roblema&
Disear el %odelo E5;! *ara la relacin ;e#istro de auto%il (ue consiste en o"tener la tarjeta de
circulacin de un auto%il con los si#uientes datos05 Auto%il5 Modelo! 4lacas! Color 5 Tarjeta
de circulacin 54ro*ietario! NoPserie! Ti*o.
66
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
Indica%os con este eje%*lo (ue e/iste una relacin de *ertenencia de uno a uno! -a (ue e/iste una
tarjeta de circulacin re#istrada *or cada auto%il.
En este eje%*lo! re*resenta%os (ue e/iste un solo *residente *ara cada *a.s.
2elaci#n muc3os a muc3os,
El si#uiente eje%*lo indica (ue un cliente *uede tener %uchas cuentas! *ero (ue una cuenta *uede lle#ar
a *ertenecer a un solo cliente &Deci%os *uede! -a (ue e/isten cuentas re#istradas a $aor de %s de una
*ersona'.
2educci#n de dia!ramas E62 a ta&las,
=n dia#ra%a E5;! *uede ser re*resentado ta%"i)n a tra)s de una coleccin de ta"las. 4ara cada una de
las entidades - relaciones e/iste una ta"la nica a la (ue se le asi#na co%o no%"re el del conjunto de
entidades - de las relaciones res*ectia%ente! cada ta"la tiene un n%ero de colu%nas (ue son de$inidas
*or la cantidad de atri"utos - las cuales tienen el no%"re del atri"uto.
+a trans$or%acin de nuestro eje%*lo Oenta en la (ue interienen las entidades de Oendedor con los
atri"utos ;3C! no%"re! *uesto! salario - Art.culo con los atri"utos Clae! descri*cin! costo.
Cu-o dia#ra%a E5; es el si#uiente0
Entonces las ta"las resultantes si#uiendo la descri*cin anterior son0
Tabla Empleado.
Nombre *uesto Salario R/+
69
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
Te$iloOendedor 6KKK TEATEK161KJQR
Cesar Au/iliar entas 16KK C8OE7116KABC
Tabla art(culo.
+la$e Descripcin +osto
A1KK A"anico 7CK
C6CK Colcha %atri%onial 16KK
Tabla :enta
R/+ +la$e
TEATEK161KJQR C6CK
C8OE7116KABC A1KK
Ntese (ue en la ta"la de relacin 5 Oenta 5! contiene co%o atri"utos a las llaes *ri%arias de las entidades
(ue interienen en dicha relacin! en caso de (ue e/ista un atri"uto en las relaciones! este atri"uto es
ane/ado co%o una $ila %s de la ta"la>
4or eje%*lo si ane/a%os el atri"uto $echa a la relacin enta! la ta"la (ue se ori#inaria ser.a la si#uiente0
R/+ +la$e /ec>a
TEATEK161KJQR C6CK 1KB16BIC
C8OE7116KABC A1KK 11B16BIC
1.).+olumnas campos o atributos.
1.,.Ren-lones o re-istros.
+ampo&
Es la unidad %s *e(uea a la cual uno *uede re$erirse en un *ro#ra%a. Desde el *unto de ista del
*ro#ra%ador re*resenta una caracter.stica de un indiiduo u o"jeto.
Re-istro&
Coleccin de ca%*os de i#uales o de di$erentes ti*os.
Arc>i$o0
Coleccin de re#istros al%acenados si#uiendo una estructura ho%o#)nea.
.ODELO RELA+IONAL
67
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
Este modelo opera en los ni$eles conceptual " de $ision " tiene la caracteristica de <ue los
resultados de un dise8o muestran caracteristicas bien de'inidas <ue seran utilis para la
implementacin del ni$el conceptual.
ESTRU+TURA 0ENERAL DE LA BD RELA+IONALES
1.9.+la$es primarias " 'or!neas.
Lla$es primarias.
Co%o -a se ha %encionado anterior%ente! la distincin de una entidad entre otra se de"e a sus atri"utos!
lo cual lo hacen nico. =na llave primaria es a(uel atri"uto el cual considera%os clae *ara la
identi$icacin de los de%s atri"utos (ue descri"en a la entidad. 4or eje%*lo! si considera%os la entidad
A+=MN8 del Instituto Tecnol#ico de +a 4az! *odr.a%os tener los si#uientes atri"utos0 No%"re!
Se%estre! Es*ecialidad! Direccin! Tel)$ono! N%ero de control! de todos estos atri"utos el (ue *odre%os
desi#nar co%o llae *ri%aria es el n%ero de control! -a (ue es di$erente *ara cada alu%no - este nos
identi$ica en la institucin.
Claro (ue *uede ha"er %s de un atri"uto (ue *ueda identi$icarse co%o llae *ri%aria en este caso se
selecciona la (ue considere%os %s i%*ortante! los de%s atri"utos son deno%inados llaves secundarias.
=na clae o llae *ri%aria es indicada #r$ica%ente en el %odelo E5; con una l.nea de"ajo del no%"re
del atri"uto.
=no de los *rocesos de %a-or releancia en la %ani*ulacin de una "ase de datos es el de distin#uir entre
las diersas entidades - relaciones (ue son %ani*uladas. Entende%os co%o una llae al %edio (ue nos
*er%ite identi$icar en $or%a un.oca &nica e ine(u.oca' a una entidad dentro de un conjunto de
entidades.
E/isten diersas cate#or.as (ue *er%iten clasi$icar los ti*os de llaes a utilizara0
a6 SU*ER %LLA:E .% Es un conjunto de atri"utos %ediante los cuales es *osi"le reconocer a una
entidad. Este ti*o de llaes contiene co%n%ente atri"utos ajenos> es decir> atri"utos (ue no son
indis*ensa"les *ara llear a ca"o el reconoci%iento del re#istro.
Eje%*lo0
6A
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
Conjunto de entidades0
Cursos
Atri"utos Su*er llaes
MNo%"re %ateria No%"re! %at! carrera! se%estre
MCarrera No%"re! %at! carrera! unidades
MSe%estre No%"re! %at! carrera! se%estre! *eriodo
M4eriodo No%"re! %at! carrera
M=nidades
5Si el conjunto de atri"utos J es una su*er llae entonces cual(uier conjunto de J ser su*er5llae.
b6 LLA:E +ANDIDATO.% Son a(uellas su*er llaes (ue no contienen atri"utos ajenos> es decir!
a(uellos conjuntos de atri"utos (ue no tienen un su"conjunto %enor (ue *ueda considerarse co%o su*er
llae.
c6 LLA:E *RI.ARIA.% Es a(uella llae (ue el diseador de la "ase de datos selecciona entra las llaes
candidatos encontradas.
E/isten conjuntos de entidades (ue no *oseen los atri"utos necesarios *ara con$or%ar una llae *ri%aria>
se les conoce co%o entidad d)"il. Cuando e/isten los atri"utos necesarios *ara $or%ar una llae *ri%aria!
se deno%inan entidad $uerte. +as entidades d)"iles se su"ordinan a las entidades $uertes.
Eje%*lo0
3uerte D)"il 3uerte
Nota& ncred - clae son las llaes *ri%arias.
En el eje%*lo anterior se *retende (ue el *roceso de renta es una entidad a"stracta *ara clari$icar el
conce*to de entidad d)"il. No o"stante! la %ejor i%*le%entaron consiste en %ani*ular a la renta co%o
una relacin.
+as entidades d)"iles no *ueden ser conocidas *or s. solas> con el o"jeto de di$erenciarlas se seleccionan
al#unos de sus atri"utos *ara $or%ar un discri%inador. Este discri%inador se asocia con las llaes
*ri%arias de las entidades $uertes a las (ue se encuentre su"ordinada *ara $or%ar as. su llae *ri%aria
*ro*ia.
+os conjuntos de relaciones ta%"i)n tienen llaes *ri%arias. Estas se con$or%an *or las llaes *ri%arias
de los conjuntos de entidades (ue se asocian en la relacin - todos los atri"utos descri*tios de la
relacin.
6C
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
1.;.Normali1acin.
.rimera ( se!unda )orma normal,
/ormas normales.
Son las t)cnicas *ara *reenir las ano%al.as en las ta"las. De*endiendo de su estructura! una ta"la *uede
estar en *ri%era $or%a nor%al! se#unda $or%a nor%al o en cual(uier otra.
;elacin entre las $or%as nor%ales0
*rimera 'orma normal.
De)inici#n )ormal:
=na relacin ; se encuentra en 13N si - solo s. *or cada ren#ln colu%na contiene alores at%icos.
A"reiada co%o 13N! se considera (ue una relacin se encuentra en la *ri%era $or%a nor%al cuando
cu%*le lo si#uiente0
1. +as celdas de las ta"las *oseen alores si%*les - no se *er%iten #ru*os ni arre#los re*etidos
co%o alores! es decir! contienen un solo alor *or cada celda.
6. Todos los in#resos en cual(uier colu%na&atri"uto' de"en ser del %is%o ti*o.
9. Cada colu%na de"e tener un no%"re nico! el orden de las colu%nas en la ta"la no es i%*ortante.
7. Dos $ilas o ren#lones de una %is%a ta"la no de"en ser id)nticas! aun(ue el orden de las $ilas no es
i%*ortante.
4or lo #eneral la %a-or.a de las relaciones cu%*len con estas caracter.sticas! as. (ue *ode%os decir (ue
la %a-or.a de las relaciones se encuentran en la *ri%era $or%a nor%al.
4ara eje%*li$icar co%o se re*resentan #r$ica%ente las relaciones en *ri%era $or%a nor%al considere%os
la relacin alu%no cursa %ateria cu-o dia#ra%a E5; es el si#uiente0
6E
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
Co%o esta relacin %aneja alores at%icos! es decir un solo alor *or cada uno de los ca%*os (ue
con$or%an a los atri"utos de las entidades! -a se encuentra en *ri%era $or%a nor%al! #r$ica%ente as.
re*resenta%os a las relaciones en 13N.
Se-unda 'orma normal.
4ara de$inir $or%al%ente la se#unda $or%a nor%al re(ueri%os sa"er (ue es una dependencia 'uncional&
Consiste en edi$icar (ue atri"utos de*enden de otro&s' atri"uto&s'.
De)inici#n )ormal:
=na relacin ; est en 63N si - solo si est en 13N - los atri"utos no *ri%os de*enden $uncional%ente
de la llae *ri%aria.
=na relacin se encuentra en se#unda $or%a nor%al! cuando cu%*le con las re#las de la *ri%era $or%a
nor%al - todos sus atri"utos (ue no son claes &llaes' de*enden *or co%*leto de la clae . De acuerdo
con est de$inicin! cada ta"la (ue tiene un atri"uto nico co%o clae! esta en se#unda $or%a nor%al.
+a se#unda $or%a nor%al se re*resenta *or de*endencias $uncionales co%o0
Ntese (ue las llaes *ri%arias estn re*resentadas con do"le cuadro! las $lechas nos indican (ue de estos
atri"utos se *uede re$erenciar a los otros atri"utos (ue de*enden $uncional%ente de la llae *ri%aria.
ercera )orma normal ( la )orma normal de $o(ce Codd,
4ara de$inir $or%al%ente la 93N necesita%os de$inir dependencia transiti$a& En una a$inidad &ta"la
"idi%ensional' (ue tiene *or lo %enos 9 atri"utos &A!B!C' en donde A deter%ina a B B deter%ina a C
*ero no deter%ina a A.
Tercera 'orma normal.
De)inici#n )ormal:
6G
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
=na relacin ; est en 93N si - solo si esta en 63N - todos sus atri"utos no *ri%os de*enden no
transitia%ente de la llae *ri%aria.
Consiste en eli%inar la de*endencia transitia (ue (ueda en una se#unda $or%a nor%al! en *ocas *ala"ras
una relacin esta en tercera $or%a nor%al si est en se#unda $or%a nor%al - no e/isten de*endencias
transitias entre los atri"utos! nos re$eri%os a de*endencias transitias cuando e/iste %s de una $or%a de
lle#ar a re$erencias a un atri"uto de una relacin.
4or eje%*lo! considere%os el si#uiente caso0
Tene%os la relacin alu%no5cursa5%ateria %anejada anterior%ente! *ero ahora considera%os al ele%ento
%aestro! #r$ica%ente lo *ode%os re*resentar de la si#uiente %anera0
4ode%os darnos cuenta (ue se encuentra #ra$icado en se#unda $or%a nor%al! es decir (ue todos los
atri"utos llae estn indicados en do"le cuadro indicando los atri"utos (ue de*enden de dichas llaes! sin
e%"ar#o en la llae Necono tiene co%o de*endientes a 9 atri"utos en el cual el no%"re *uede ser
re$erenciado *or dos atri"utos0 Necono - ;3C &E/iste de*endencia transitia'! *ode%os solucionar esto
a*licando la tercera $or%a nor%al (ue consiste en eli%inar estas de*endencias se*arando los atri"utos!
entonces tene%os0
6I
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
/orma normal de Bo"ce +odd.
Determinante& =no o %s atri"utos (ue! de %anera $uncional! deter%inan otro atri"uto o atri"utos. En la
de*endencia $uncional &A!B'55SC! &A!B' son los deter%inantes.
De)inici#n )ormal:
=na relacin ; esta en 3NBC si - solo si cada deter%inante es una llae candidato.
Deno%inada *or sus si#las en in#les co%o BCN3> =na ta"la se considera en esta $or%a si - slo s. cada
deter%inante o atri"uto es una llae candidato.
Continuando con el eje%*lo anterior! si considera%os (ue en la entidad alu%no sus atri"utos control -
no%"re nos *uede hacer re$erencia al atri"utos es*.! entonces deci%os (ue dichos atri"utos *ueden ser
llaes candidato.
?r$ica%ente *ode%os re*resentar la $or%a nor%al de Bo-ce Codd de la si#uiente $or%a0
8"s)rese (ue a di$erencia de la tercera $or%a nor%al! a#ru*a%os todas las llaes candidato *ara $or%ar
una #lo"al &re*resentadas en el recuadro' las cuales hacen re$erencia a los atri"uto (ue no son llaes
candidato.
+uarta " <uinta 'orma norma.
+uarta 'orma normal.
De)inici#n )ormal:
=n es(ue%a de relaciones ; est en 73N con res*ecto a un conjunto D de de*endencias $uncionales - de
alores %lti*les s.! *ara todas las de*endencias de alores %lti*les en D de la $or%a J5S5SQ! donde
JTU; - QTU;! se cu%*le *or lo %enos una de estas condiciones0
9K
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
M J5S5SQ es una de*endencia de alores %lti*les triial.
M J es una su*erllae del es(ue%a ;.
4ara entender %ejor an esto considere%os una a$inidad &ta"la' lla%ada estudiante (ue contiene los
si#uientes atri"utos0 Clae! Es*ecialidad! Curso tal - co%o se de%uestra en la si#uiente $i#ura0
+la$e Especialidad +urso
SK1 Siste%as Natacin
SK1 Bio(u.%ica Danza
SK1 Siste%as Natacin
BK1 Bio(u.%ica ?uitarra
CK9 Ciil Natacin
Su*one%os (ue los estudiantes *ueden inscri"irse en arias es*ecialidades - en diersos cursos. El
estudiante con clae SK1 tiene su es*ecialidad en siste%as - Bio(u.%ica - to%a los cursos de Natacin -
danza! el estudiante BK1 tiene la es*ecialidad en Bio(u.%ica - to%a el curso de ?uitarra! el estudiante
con clae CK9 tiene la es*ecialidad de Ciil - to%a el curso de natacin.
En esta ta"la o relacin no e/iste de*endencia $uncional *or(ue los estudiantes *ueden tener distintas
es*ecialidades! un alor nico de clae *uede *oseer %uchos alores de es*ecialidades al i#ual (ue de
alores de cursos. 4or lo tanto e/iste dependencia de $alores m?ltiples. Este ti*o de de*endencias
*roduce redundancia de datos! co%o se *uede a*reciar en la ta"la anterior! en donde la clae SK1 tiene
tres re#istros *ara %antener la serie de datos en $or%a inde*endiente lo cual ocasiona (ue al realizarse
una actualizacin se re(uiera de de%asiadas o*eraciones *ara tal $in.
E/iste una de*endencia de alores %lti*les cuando una a$inidad tiene *or lo %enos tres atri"utos! dos de
los cuales *oseen alores %lti*les - sus alores de*enden solo del tercer atri"uto! en otras *ala"ras en la
a$inidad ; &A!B!C' e/iste una de*endencia de alores %lti*les si A deter%ina alores %lti*les de B! A
deter%ina alores %lti*les de C! - B - C son inde*endientes entre s..
En la ta"la anterior Clae deter%ina alores %lti*les de es*ecialidad - clae deter%ina alores %lti*les
de curso! *ero es*ecialidad - curso son inde*endientes entre s..
+as de*endencias de alores %lti*les se de$inen de la si#uiente %anera0 Clae 5S5SEs*ecialidad -
Clae5S5SCurso> Esto se lee DClae %ultidetr%ina a Es*ecialidad! - clae %ultideter%ina a CursoD
4ara eli%inar la redundancia de los datos! se de"en eli%inar las de*endencias de alores %lti*les. Esto
se lo#ra constru-endo dos ta"las! donde cada una al%acena datos *ara sola%ente uno de los atri"utos de
alores %lti*les.
4ara nuestro eje%*lo! las ta"las corres*ondientes son0
Ta"la Ees*ecialidad
+la$e Especialidad
SK1 Siste%as
91
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
BK1 Bio(u.%ica
CK9 Ciil
Ta"la ECurso
+la$e +urso
SK1 Natacin
SK1 Danza
BK1 ?uitarra
CK9 Natacin
@uinta 'orma normal.
De)inici#n )ormal:
=n es(ue%a de relaciones ; est en A3N con res*ecto a un conjunto D de de*endencias $uncionales! de
alores %lti*les - de *roducto! si *ara todas las de*endencias de *roductos en D se cu%*le *or lo %enos
una de estas condiciones0
M &;1! ;6! ;9! ... ;n' es una de*endencia de *roducto triial.
M Toda ;i es una su*erllae de ;.
+a (uinta $or%a nor%al se re$iere a de*endencias (ue son e/traas. Tiene (ue er con ta"las (ue *ueden
diidirse en su"ta"las! *ero (ue no *ueden reconstruirse.
). Al-ebra relacional.
El Al#e"ra relacional es un len#uaje de consulta *rocedural. Consta de un conjunto de o*eraciones (ue
to%an co%o entrada una o dos relaciones - *roducen co%o resultado una nuea relacin! *or lo tanto! es
96
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
*osi"le anidar - co%"inar o*eradores. @a- ocho o*eradores en el l#e"ra relacional (ue constru-en
relaciones - %ani*ulan datos! estos son0
1. Seleccin 6. 4ro-eccin 9. 4roducto
7. =nin A. Interseccin C. Di$erencia
E. <8IN G. Diisin
Tabla )%1 % Operadores del Al-ebra relacional
+as o*eraciones de *ro-eccin! *roducto! unin! di$erencia! - seleccin son lla%adas *ri%itias! *uesto
(ue las otras tres se *ueden de$inir en t)r%inos de estas.

).1. Seleccin " pro"eccin.
).). *roducto cartesiano.
).,. Operacin unin.
).9. Operacin di'erencia.
).;. Operacin interseccin.
Seleccin
Crea una nuea relacin a *artir de otra! *ero inclu-endo slo al#unas de las tu*las a *artir de un
criterio dado.
El criterio se "asa en restricciones so"re los atri"utos de la relacin ; - no *ueden incluirse otras
relaciones en dicho criterio (ue no esten en ;
A9S1C &;' ! A9S1C and A9 T 7A &;'! no%"reUVCarlosV and edadU7A &;'
title "ear len-t> 'ilmT"pe studioName
Star 2ars 1IEE 167 color 3o/
Mi#ht- DucFs 1II1 1K7 color Disne-
2a-neVs 2orld 1II6 IA color 4ara%ount
Moie
Eje%*los0
len#thSU1KK &Moie'
title "ear len-t> 'ilmT"pe studioName
Star 2ars 1IEE 167 color 3o/
Mi#ht- DucFs 1II1 1K7 color Disne-
len#thSU1KK and studioNa%eUV3o/V &Moie'
99
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
title "ear len-t> 'ilmT"pe studioName
Star 2ars 1IEE 167 color 3o/

title!studioNa%e& len#thSU1KK &Moie''
title studioName
Star 2ars 3o/
Mi#ht- DucFs Disne-
*ro"eccin
Crea una nuea relacin a *artir de otra! *ero inclu-endo slo al#unas de las colu%nas
A1!A9!AC &;'

title "ear len-t> 'ilmT"pe studioName
Star 2ars 1IEE 167 color 3o/
Mi#ht- DucFs 1II1 1K7 color Disne-
2a-neVs 2orld 1II6 IA color 4ara%ount
Moie
Eje%*lo0
title!-ear!len#th&Moie'
title "ear len-t>
Star 2ars 1IEE 167
Mi#ht- DucFs 1II1 1K7
2a-neVs 2orld 1II6 IA
$il%T-*e&Moie'
'ilmT"pe
color

97
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
B Seleccionar 5 6
4or %edio de esta o*eracin se *osi"ilita la seleccin de un su"conjunto de tu*las de una relacin (ue
corres*onden a una condicin &columna 84E;AD8; alor'deter%inada. El #rado &total de colu%nas
de la ;elacin'! se consera.
3or%ato de =so0 &condicin' &;E+ACI8N'
Esta o*eracin es con%utatia! es decir0 &condicin1' & &condicin)' &;' ' U &condicin)' &
&condicin1' &;' '
E#emplos0
4E;S8NA
Cedula No%"re 4ri%erPA*ellido Se#undoPA*ellido Se/o Direccin Tele$ono Salario
E1197A97 <uan Mesa =ri"e M
Cra 6A
6651
6ACEA96 1!CKK!KKK
6976977A
Ana
Mar.a
Betancur Ber%udez 3
Cra 7A
11519
9799777 1!9KK!KKK
167A9A9A ?loria Betancur ?arces 3
Tr. 16 795
A
6EACA99 1!EKK!KKK
EAAACE79 4edro 8choa 4elaez M
Cll.Cta
1757A
6CGCGGA 1!6KK!KKK
79A99966 4atricia An#el ?uz%n 3
Cll. 7A
6951
6CE7AC9 1!9AK!KKK
EGIKK7AC Carlos Betancur A#udelo M
Cir. A 165
A
777AEEA 1!AKK!KKK
+a seleccin! *er%ite e/traer todas las $ilas &tu*las' (ue cu%*le una condicin deter%inada. Esta
condicin *er%ite la utilizacin de los o*eradores de co%*aracin0 U!S!T!SU! WX ade%s de los conectores
l#icos D-D 5 DoD0

a. cedula U E1197A97 &4E;S8NA'
;esultado0
Cedula No%"re 4ri%erPA*ellido Se#undoPA*ellido Se/o Direccin Tele$ono Salario
E1197A97 <uan Mesa =ri"e M
Cra 6A
6651
6ACEA96 1!CKK!KKK
". se/o UV3V &4E;S8NA'
;esultado0
Cedula No%"re 4ri%erPA*ellido Se#undoPA*ellido Se/o Direccin Tele$ono Salario
6976977A
Ana
Mar.a
Betancur Ber%udez 3
Cra 7A
11519
9799777 1!9KK!KKK
9A
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
167A9A9A ?loria Betancur ?arces 3
Tr. 16 795
A
6EACA99 1!EKK!KKK
c. &*ri%erPa*ellido UVBetancurV' - &se/oUV3V' &4E;S8NA'
;esultado0
Cedula No%"re 4ri%erPA*ellido Se#undoPA*ellido Se/o Direccin Tele$ono Salario
6976977A
Ana
Mar.a
Betancur Ber%udez 3
Cra 7A
11519
9799777 1!9KK!KKK
167A9A9A ?loria Betancur ?arces 3
Tr. 16 795
A
6EACA99 1!EKK!KKK
d. c. &se/o U VMVV' o &Salario SU1!9AK!KKK' &4E;S8NA'
;esultado0
Cedula No%"re 4ri%erPA*ellido Se#undoPA*ellido Se/o Direccin Tele$ono Salario
E1197A97 <uan Mesa =ri"e M
Cra 6A
6651
6ACEA96 1!CKK!KKK
167A9A9A ?loria Betancur ?arces 3
Tr. 16 795
A
6EACA99 1!EKK!KKK
EAAACE79 4edro 8choa 4elaez M
Cll.Cta
1757A
6CGCGGA 1!6KK!KKK
79A99966 4atricia An#el ?uz%n 3
Cll. 7A
6951
6CE7AC9 1!9AK!KKK
EGIKK7AC Carlos Betancur A#udelo M
Cir. A 165
A
777AEEA 1!AKK!KKK

B *ro"ectar 5 6
Esta o*eracin *er%ite seleccionar al#unas colu%nas de una relacin.
3or%ato de =so0 Tlista de Atri"utosS &;E+ACI8N'
E#emplos0
Se constru-en con "ase en la ;elacin anterior0 4E;S8NA.
a. cedula! no%"re! *ri%erPa*ellido! se#undoPa*ellido &4E;S8NA'
;esultado
Cedula No%"re 4ri%erPA*ellido Se#undoPA*ellido
E1197A97 <uan Mesa =ri"e
6976977A Ana Mar.a Betancur Ber%udez
167A9A9A ?loria Betancur ?arces
9C
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
EAAACE79 4edro 8choa 4elaez
79A99966 4atricia An#el ?uz%n
EGIKK7AC Carlos Betancur A#udelo
". cedula! salario &4E;S8NA'
;esultado0
Cedula Salario
E1197A97 1!CKK!KKK
6976977A 1!9KK!KKK
167A9A9A 1!EKK!KKK
EAAACE79 1!6KK!KKK
79A99966 1!9AK!KKK
EGIKK7AC 1!AKK!KKK
+a o*eracin SE+ECCINN co%"inada con la o*eracin 4;8QECCINN! *ode%os tener0
c. cedula! no%"re! salario & &se/o U VMVV' o &Salario SU1!9AK!KKK' &4E;S8NA' '
;esultado0
Cedula No%"re Salario
E1197A97 <uan 1!CKK!KKK
167A9A9A ?loria 1!EKK!KKK
EAAACE79 4edro 1!6KK!KKK
79A99966 4atricia 1!9AK!KKK
EGIKK7AC Carlos 1!AKK!KKK
E+ ;ES=+TAD8 DE +AS 84E;ACI8NES 4=EDEN SE; ++EOAD8S A ;E+ACI8NES
TEM48;A+ES DE +A SI?=IENTE 38;MA0
;E+PTEM4 X cedula! no%"re! salario & &se/o U VMVV' o &Salario SU1!9AK!KKK' &4E;S8NA' '
;esultado0
;E+PTEM4 Cedula No%"re Salario
E1197A97 <uan 1!CKK!KKK
167A9A9A ?loria 1!EKK!KKK
EAAACE79 4edro 1!6KK!KKK
79A99966 4atricia 1!9AK!KKK
EGIKK7AC Carlos 1!AKK!KKK
Unin
; S! la unin de ; - S es el conjunto de ele%entos (ue estn en ; o S o a%"os. =n ele%ento
solo a*arece una sola ez.
9E
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
Interseccin
; S! el conjunto de ele%entos (ue a*arecen en a%"os ; - S
Di'erencia
; 5 S! la di$erencia de ; - S! el conjunto de ele%entos (ue estan en ; *ero no en S. Es i%*ortante
resaltar (ue ; 5 S es di$erente a S 5 ;.
Di$isin
; B S! la diisin de una relacin entre otra! de"e cu%*lirse (ue *ara toda tu*la en ; e/ista su
corres*ondiente en S.
;estricciones0
1. ; - S de"en tener es(ue%as id)nticos.
6. El orden de las colu%nas de"e ser el %is%o
Eje%*los0
name address -ender birt>date
Carrie 3isher 169 Ma*le St. 3 IBIBII
MarF @a%ill 7AC 8aF ;d. M GBGBGG

name address -ender birt>date
@arrison 3ord EGI 4al% Dr. M EBEBEE
Carrie 3isher 169 Ma*le St. 3 IBIBII
=nin
name address -ender birt>date
@arrison 3ord EGI 4al% Dr. M EBEBEE
MarF @a%ill 7AC 8aF ;d. M GBGBGG
Carrie 3isher 169 Ma*le St. 3 IBIBII
Interseccin
name address -ender birt>date
Carrie 3isher 169 Ma*le St. 3 IBIBII
;esta
9G
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
name address -ender birt>date
MarF @a%ill 7AC 8aF ;d. M GBGBGG
*roducto cartesiano C
4roducto cruz o solo *roducto
; J S! los es(ue%as de a%"as relaciones se %ezclan - unen.
Dados
A B
1 6
9 7
;
B + D
6 A C
7 E G
I 1K 11
S
A R.B S.B + D
1 6 6 A C
1 6 7 E G
1 6 I 1K 11
9 7 6 A C
9 7 7 E G
9 7 I 1K 11
; J S
*roducto natural DCD
Es un *roducto cartesiano donde nos interesan nica%ente al#unas tu*las (ue hacen D%atchD en al#un
criterio.
A R.B S.B + D
1 6 6 A C
1 6 7 E G
1 6 I 1K 11
9 7 6 A C
9I
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
9 7 7 E G
9 7 I 1K 11

A B + D
1 6 A C
9 7 E G
; YJY S
Di$isin.
+a o*eracin diisin es la contraria a la o*eracin *roducto - (uizs sea la %s co%*leja de e/*licar!
*or tanto co%enzar) con directa%ente con un eje%*lo. =na deter%inada e%*resa *osee una ta"la de
co%erciales! otra ta"la de *roductos - otra con las entas de los co%erciales. :uere%os aeri#uar (ue
co%erciales han endido todo ti*o de *roducto.
+o *ri%ero (ue hace%os es e/traer en una ta"la todos los cdi#os de todos los *roductos! a esta ta"la la
deno%ina%os A.
Ta"la A
Cdi#o 4roducto
1K9A
6671
667I
AG1G
En una se#unda ta"la e/trae%os! de la ta"la de entas! el cdi#o del *roducto - el co%ercial (ue lo ha
endido! lo hace%os con una *ro-eccin - eita%os traer alores du*licados. El resultado *odr.a ser el
si#uiente0
Ta"la B
Cdi#o Co%ercial Cdi#o 4roducto
1K 6671
69 6A1G
69 1K9A
9I 6A1G
9E 6A1G
7K
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
1K 667I
69 667I
69 6671
Si diidi%os la ta"la B entre la ta"la A o"tendre%os co%o resultado una tercera ta"la (ue0
1. +os ca%*os (ue contiene son a(uellos de la ta"la B (ue no e/isten en la ta"la A. En este caso el
ca%*o Cdi#o Co%ercial es el nico de la ta"la B (ue no e/isten en la ta"la A.
6. =n re#istro se encuentra en la ta"la resultado si - slo si est asociado en ta"la B con cada $ila de
la ta"la A
Ta"la ;esultado
Cdi#o Co%ercial
69
Z4or (u) el resultado es 69[. El co%ercial 69 es el nico de la ta"la B (ue tiene asociados todos los
*osi"les cdi#os de *roducto de la ta"la A.
,. :istas o subes<uemas.
,.1.*ri$ile-ios de acceso.
,.).Endices.
:ISTAS LO+ALES0
Z:u) es una ista[
=na ista es un o"jeto (ue se crea e%*leando la instruccin SE+ECT de S:+ *ara "ases de datos
relacionales. +as istas *ueden ser locales o ;e%otas
SELE+T ca%*os
/RO. ta"las
2FERE condicion
0ROU* BQ ca%*os de a#ru*a%iento
ORDER BQ ca%*os de ordena%iento
Eje%*lo0
SE+ECT id! na%e
3;8M sPre#ion
8;DE; BQ na%e
71
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
Creacin de una ista local.
Clic en el "otn *ara crear istas locales.
+a entana *ara a#re#ar las ta"las! se utiliza *ara aadir ta"las (ue se an a ocu*ar en la instruccin
SE+ECT L S:+! en este caso estar.a%os seleccionando la *arte del 3;8M. Seleccione%os sPre#ion -
lue#o A#re#ar. +a ta"la se a#re#ar! lue#o le da%os cerrar &close'.
:entana de creacin de la $ista&
76
A#re#ar
una ta"la Oer el
co%ando
S:+
Eli%in
ar
ta"la
A#re#a
r una
relaci
n
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
/ields& &Ca%*os' A(u. se seleccionan los ca%*os de la ista &SE+ECT ca%*os'
7oin 0 ;elaciones entre ta"las
/ilter 0 Condicin de $iltrado &2@E;E condicin'
Order b" 0 ca%*os de ordena%iento &8;DE; BQ'
0roup b" 0 ca%*os de A#ru*a%iento &?;8=4 BQ'
+REA+ION DE :ISTAS RE.OTAS&
=na ista re%ota es una ista (ue se hace de otra "ase de datos .a 8DBC. Esta "ase de datos *uede ser Access!
8;AC+E! S:+5SE;OE;! entre otros.
Crear una ista re%ota0
Clic en icono *ara crear ista re%otas.
Esco#er Nuea Oista &Ne4 :ie4'
79
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
Si no a creado una coneGin es necesario crear en Ne4! si -a esta creada seleccione la cone/in - lue#o
OH.
ZCo%o crear una cone/in[
Si no ha creado la cone/in seleccione Ne4
Si#a estos *asos cuidadosa%ente0
1. Seleccione Ne4 Data Source &Nuea 3uente de Datos' - a*arecer la con$i#uracin del 8DBC0
77
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
6. En el $older User DSN 4resione el "otn Add &A#re#ar'
7A
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
6. Escoja de la entana el Controlador deseado! Eje%*lo0 .icroso't Access Dri$er 5B.mdb6 - lue#o el
"otn /inali1ar.
9. +ue#o a*arece la Oentana de 8DBC del controlador (ue selecciono &En este caso en de Access'
Escri"a el no%"re del Data Source &3uente de datos'! +ue#o seleccione la Base de Dato a la (ue hace
re$erencia & en el "oton Select Data"ase'
+ue#o de ha"er seleccionado la "ase de datos! ace*te todas las entanas (ue a*arecieron anterior%ente -
deten#ase en la si#uiente entana0
7C
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
7E
Seleccin de la lista el
Data Source <ue >a
creado
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
+ue#o seleccione de la lista de data source el data source (ue usted aca"a de crear.
+ue#o *resione Ace*tar &8\'.
Des*u)s le a*arece la *ri%era Oentana donde esco#e las cone/iones! le a*arecer la cone/in (ue usted
ha creado.
Nota0 Esta cone/in (ue usted a creado serir *ara sesiones $uturas.
Seleccione la cone/in creada - lue#o Aceptar &8\'
+ue#o le a*arecer la entana donde usted esco#e las ta"las (ue utilizar0
+ue#o a*arecer la entana donde se disea la ista0
El *rocedi%iento *ara crear la ista es i#ual a la creacin de ista +ocales.
7G
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez

9. Len-ua#e relacional est!ndar S@L.
9.1.Elementos.
9.).Relaciones.
9.,.B?s<uedas.
*ro"eccin 5 6 en S@L
A1,A2,...,An
!"
SELE+T A1A)...An /RO. R
Seleccin 5 6 en S@L
condicin!"
SELE+T B /RO. R 2FERE condicin
+omposicin 5 " 6 en S@L
A1,A2,...,An
condicin!""
SELE+T A1A)...An /RO. R 2FERE condicin
Eliminar duplicasos en S@L
SELE+T DISTIN+T B /RO. R
*roducto cartesiano 5]6 en S@L
!1]!2
SELE+T B /RO. R1R)
9.9. :istas.
7I
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
Son una es*ecie de ta"las irtuales> es decir no e/isten $isica%ente sino (ue $or%an %ediante la seleccin
-Bo $iltrado de los co%*onentes de otras ta"las! una ista *uede ser de$inida en "ase a una lista *reia.
Esto si#ni$ica (ue *ueden crearse de*endencia entre las istas.
/ormato de de'inicion de $istas
DE3INE OIE2Tno%"re istaS
^&identi$Pca%*o1! identi$Pca%*o6!...'_
ASTo*eracin de consultaS
E#emplo& se desea crear una ista *ara o"tener los no%"res - do%icilios de los clientes adultos es
desea"le el esta"leci%iento de las ca"eceras no%"re del cliente! do%icilio del cliente.
DE3INE OIE2 clientePadulto
&no%"re del cliente! do%icilio del cliente'
As &select no%"re! do%icilio
3ro% clientes
2here estado U VadultoV'
Co%o *uede erse! la es*eci$icacin de los identi$icadores es o*cional> si estos se o%iten se asu%iran los
no%"res de los ca%*os e/traidos en la consulta.
+a o*eracin de consulta *er%ite todos los $or%atos alidos de consulta en S:+ con e/ece*cin del
#roo* "-.
Cuando una ista es de$inida en "ase a otra! se se dice (ue es de*endiente de esta *or lo tanto! se
su*ri%ira auto%atica%ente la ista de*endiente si se su*ri%e la ista ori#inal.
Eliminacin de $istas.
Dro* ie, Tno%"re ta"laS
Eje%*lo0 su*on#a (ue se desea crear una ista de*endiente de la ista cliente adulto (ue conten#a
sola%ente a los clientes (ue ien so"re $orjadores. Se desean los %is%os ca%*os - la ista sera
lla%ada clientePadultoP$orjadores.
De$ine ie, clientePadultoP$orjadores
AS &select M
3ro% clientePadulto
2here do%icilioPdelPcliente liFe V$orjadores`V'
a
a
dro* ie, clientePadulto
&se eli%inara ta%"ien la ista clientePadultoP$orjadores! *uesto (ue es de*endiente de
clientePadulto.'
+a eli%inacin de una ta"la *rooca ta%"ien la eli%inacin auto%atica de todas las listas (ue se ha-an
de$inido haciendo re$erencia a ella.
UNIDAD III. .anipulacin de bases de datos.
1. +reacin de una base de datos.
1.1. +omandos b!sicos.
AK
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
1.). Apertura de una base de datos.
1.,. Incorporacin de nue$os re-istros.
1.9. +ierre de una base de datos.
#!$A#%&' D$ (A )A*$ D$ DA+&*
1. ="i(uese en el $older Data - lue#o en Databases - *resione el "otn Ne4
+a entana del Data"ase Desi#ner a*arecer 0
4uede ocu*ar el tool"ar Data"ase Desi#ner *ara el control de la Base de Datos.
A1
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
Descripcin de los botones del toolbar&
Crear una nuea ta"la.
A#re#ar una ta"la e/istente
Eli%inar una ta"la seleccionada
Modi$icar una ta"la seleccionada
Creacin de Oistas re%otas
Creacin de Oistas locales
Editar 4rocedi%ientos al%acenados en la Base de Datos
Creacin de Cone/iones con istas re%otas
E/a%inar el contenido la ta"la &B;82SE'
+rear una nue$a tabla&
1. ClicF en el "oton de Nuea ta"la! a*arecera la entana Ne, Ta"le
A6
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
7. Se selecciona Ne4 Table! lue#o a*arece la entana de #uardar el archio! seleccione el directorio - el
no%"re de la ta"la - lue#o *resione el "oton de sal$ar.
+a entana de Table desi-ner a*arecera en *antalla0
Esta es la *arte %as i%*ortante de la ta"la! es a(u. donde se de$ine la estructura de datos (ue contendr
dicha ta"la. El *ri%er *aso es de$inir los ca%*os! ti*os! ta%ao! 3or%ato - ;e#las de alidacin en el
$oder de /ields.
A9
De$inici
n de
ca%*os
Ti*os de
Datos
De$inici
n del
3or%ato
de
Entrada
De$inici
n de
re#las
de
alidaci
n de
los
ca%*os
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
a. De$inicin de ca%*os0
I#ual (ue en las ersiones anteriores! la de$inicin de ca%*os es i#ual. Se introduce el no%"re del ca%*o
&name' el ti*o de datos (ue so*ortar &T"pe' - el ta%ao.
". De$inicin del Dis*la-
/ormat 0 Es el $or%ato de salida del ca%*o! eje%*lo si $uera n%erico I!III.II o si $uera
carcter bbbbbbbbbbbb! *ara (ue solo ace*te %a-usculas
Input masI 0 I#ual (ue el 3or%at! lo nico (ue es *ara la entrada de datos.
+aptin 0 Descri*cin %as *recisa del ca%*o! es de utilidad al disear los 3or%ularios.
c. De$inicin de re#las de alidacin a niel de ca%*o
+a alidacin son tri##ers o eentos (ue se ejecutan a niel de ca%*o. Eje%*lo0 una alidacin de un
ca%*o (ue solo ace*te n%eros *ositios. &id S K'
Rule 0 Es la re#la de alidacin! eje%*lo0 id S K! si (uere%os (ue ace*te alores *ositios.
.essa-e0 Es el %ensaje *ersonalizado (ue (uere%os (ue a*arezca en *antalla a la hora de iolarse la
re#la de alidacin del ca%*o. Eje%*lo 0 cSolo se ace*tan n%eros *ositiosd &nota0 el te/to de"e
escri"irse entre co%illas'.
De'ault :alue 0 Oalor *or de$ecto del ca%*o. &nota0 ha- (ue res*etar el ti*o de dato del
Ca%*o'
+ue#o de hacer la de$icion de los ca%*os! *asa%os a la de$inicion de Indices de la ta"la! (ue ser %u-
i%*ortante a la hora de crear las relaciones entre las ta"las.
A7
No%"re del
.ndice
Ti*o de
Indice
No%"re del o los ca%*os
(ue co%*onen el indice
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
a. No%"re del Indice &name'
Introducir el No%"re del archio .ndice. Es conocido ta%"i)n co%o TA?.
". T"pe & ti*o de Indice'
4ri%ar- 0 +lae *ri%aria.
Candidate 0 +lae candidata
=ni(ue 0 +lae nica.
;e#ular 0 +lae $ornea.
c. No%"re de la E/*resin
No%"re de los ca%*os (ue con$or%an la llae *ri%aria0
Eje%*lo 0 id! o si son arios ca%*os 0 id H linea
Nota0 si los ca%*os no son del %is%o ha- (ue $orzarlos al ti*o de dato deseado! eje%*lo0 si id es carcter
- linea! entoces el no%"re de la e/*resion ser.a0
Id J STR5linea6
ST;&' conierte de n%ero a carcter - OA+&' conierte de carcter a n%erico.
Des*u)s de detallar los .ndices! se de$ine los eentos de +a alidacin a niel de re#istro - los eentos
(ue se ejecuten a la hora de Insertar un re#istro! de actualizar o "orrar.
AA
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
).+onsultas a una base de datos.
).1.Estructura de una consulta.
).). +omandos de consulta b!sicos.
+onsultas a la BD usando SELE+T%S@L
SE+ECT 5 S:+ usando dos o %as ta"las0
SintaGis 0
SE+ECT alias1.ca%*o1
!alias2.ca%*o6
!alias,.ca%*o9
3;8M tabla1 alias1
!tabla) alias2
!tabla, alias,
2@E;E alias1.ca%*o1 U alias2.ca%*o6
alias1.ca%*o6 U alias2.ca%*o9
E#emplo 0
=n eje%*lo sencillo0 si (uere%os listar el nombre del empleado! el id del departamento! - el nombre
del departamento al (ue *ertenece el e%*leado la (uer- ser.a0
SE+ECT A.no%"re AS e%*leado
!A.de*tPid
!B.no%"re AS de*to
3;8M sPe%* A
!sPde*t B
2@E;E A.id U B.re#ionPid
E#ercicios 0
Seleccionar el No. de*to! a*ellido! salario - car#o *ara los e%*leados (ue #anen %as de 1KK - el
de*arta%ento este en 71! 1K - AK
select de*tPid
!no%"re
!salario
!car#o
$ro% sPe%*
,here salario S 1KK
and de*tPid IN &71!1K!AK'
AC
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
seleccionar el a*ellido! del e%*leado! id del de*to! - el no%"re del de*to.
select a.no%"re AS e%*leado
!".id
!".no%"re AS de*to
$ro% sPe%* a
!sPde*t "
,here a.id U ".de*tPid
Seleccionar el a*ellido del e%*leado! no del de*to! el no%"re delde*to *ara los de*to (ue esten entre 6K - AK sin
incluirlos.
select a.no%"re AS e%*leado!
".id!
".no%"re AS de*to
$ro% sPe%* a! sPde*t "
,here a.id U ".de*tPid
and ".id S 6K and ".id T AK
seleccionar el no%"re del e%*leado no. del de*to! no%"re del de*to! *ara los de*tos (ue co%iencen con 7 -
ordenados el nu%ero de de*to - no%"re del e%*leado desc
select a.no%"re AS e%*leado!
".id!
".no%"re AS de*to
$ro% sPe%* a!
sPde*t "
,here a.idU".de*tPid
and A++T;IM&ST;&".id'' liFe V7`V
order "- a.no%"re asc!
".id
Seleccionar el no%"re del cliente *ara a(uellos e%*leados (ue el no del de*to sean 9K! 7K! 71! 76 - el & salario sea
%a-or (ue 1KKK o el de*to sea AK '
select a.no%"re AS cliente!
".no%"re AS e%*leado!
".salario!
".id!
".de*tPid
$ro% sPcusto%er a!
sPe%* "
,here a.e%*PidU".id
and ".de*tPid IN &9K!7K!71!76'
and &".salario S 1KKK or ".de*tPidUVAKV'
8tra soluccion0
select a.no%"re
$ro% sPcusto%er a
,here a.e%*Pid IN &Select id
AE
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
$ro% sPe%*
,here de*tPid in &9K! 7K!71!76'
and &salario S 1KKK or de*tPidUAK '
Seleccionar el no%"re del cliente! no%"re de re#ion - el salario *ara todos los e%*leados (ue el salario
sean %a-or (ue 1KK
select a.no%"re AS e%*leado!
".no%"re AS de*to!
a.salario
$ro% sPe%* a!
sPde*t "
,here a.de*tPidU".id
and a.salario S 1KK
/unciones de -rupos
salarios %ini%os - %a/i%os de los e%*leados
select %a/&salario' salP%a/!
%in&salario' salP%in
$ro% sPe%*
Su%a! %a/i%o! %ini%o salario *or De*arta%ento
select de*tPid!
su%&salario'!
%a/&salario'!
%in&salario'
$ro% sPe%*
#rou* "- de*tPid
M555
select de*tPid!
count&de*tPid'
$ro% sPe%*
#rou* "- de*tPid
hain# de*tPid S 6K
M555
select de*tPid!
su%&salario'
$ro% sPe%*
#rou* "- de*tPid
hain# su%&salario' "et,een 6KKK and 7KKK
AG
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
M555
select a#&salario'!
%in&salario'!
%a/&salario'!
su%&salario'
$ro% sPe%*
,here =44E;&title' liFe VSA+ES`V
M555
select count&no%"re'!
de*tPid
$ro% sPe%*
,here de*tPidU91
#rou* "- de*tPid
SE+ECT C8=NT&ID'!
DE4TPID
3;8M SPEM4
?;8=4 BQ DE4TPID
SE+ECT C8=NT&ID'!
C;EDITP;ATIN?
3;8M SPC=ST8ME;
?;8=4 BQ C;EDITP;ATIN?
M5555
SE+ECT S=M&SA+A;I8'! CA;?8
3;8M SPEM4
2@E;E u**er&TIT+E' N8T +I\E VO4`V
?;8=4 BQ CA;?8
M5555
SE+ECT S=M&SA+A;I8'! TIT+E
3;8M SPEM4
?;8=4 BQ TIT+E
M5555
SE+ECT TIT+E! S=M&SA+A;I8'
3;8M SPEM4
2@E;E =44E;&TIT+E' N8T +I\E VO4`V
?;8=4 BQ TIT+E
@AOIN? S=M&SA+A;I8'S AKKK
M5555
AI
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
CK
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
*ro-ramacin .ultiusuario&
En la *ro#ra%acin %ultiusuario ha- (ue tener %u- en cuenta el control de la zona critica. En Oisual
3o/*ro! esto se *uede hacer Auto%atica%ente o Manual%ente.
En la $or%a Auto%tica! 3o/ controla la zona critica con los enllaa%ientos auto%ticos! lo (ue nos
ahorra tie%*o -a (ue no tene%os (ue *reocu*arnos *or ello. & esta es la $or%a (ue utilizare%os '
Z:u) se re(uiere[
Se re(uiere al#unas de$inir aria"les de a%"iente en el *ro#ra%a *rinci*al de nuestro Siste%a0
M De$inicion de *ara A%"iente ;ed
SET EJC+=SIOE 833 A"re las ta"las en %odo co%*artido
SET M=+TI+8C\S 8N 4ara (ue se *uedan "lo(uear %as de un re#istro
SET DE+ETE 8N 4ara (ue los re#istros %arcados no se izualicen
SET ;E3;ES@ T8 A ;e$resca%iento cada A se#undos en el Bro,se
SET ;E4;8CESS T8 A=T8MATIC Si un re#istro esta "lo(ueado o enllaado
3o/ intenta acualizarlo hasta (ue uno *resione
esc
M*$+ !$-!&#$** +& . *$#&'D* Si des*ues de A se#undos no *uede actualizarlo
3o/ %anda un error.
M 8tro A%"iente
SET EC@8 833
SET TA+\ 833
SET CENT=;Q 8N
SET C+8C\ STAT=S
SET DATE B;IT
SET 4AT@ T8 %enu!$or%s!"%*!*r#!data
SET SA3ETQ 833
SET 4;8CED=;E T8 .e*r#eutilit-
Usando el Bu''er con las tablas.
Bu$$er 8*ti%ista0 Dos usuarios *ueden estar %odi$icando el re#istro sin nin#n *ro"le%a.
4esi%ista 0 Solo un usuario *uede estar %odi$icando el re#istro.
K+mo 'i#ar el Bu''erL
M Set "u$$erin# %ode and store lo#ical result
C1
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
lSuccess U +URSORSET*RO*&DBu$$erin#D! ;! Dcusto%erD'
I3 lSuccess U .T.
UMESSA?EB8J&D8*eration success$ulbD!K!D8*eration StatusD'
E+SE
UMESSA?EB8J&D8*eration N8T success$ulbD!K!D8*eration StatusD'
ENDI3
Con el "u$$er actiado *ode%os hacer uso de los co%andos 0
TAB+E;EOE;T&.T.'
TAB+E=4DATE&.T.'
TABLEU*DATE5.T.6
?ra"a los ca%"ios hechos en la ta"la.
SET M=+TI+8C\S 8N ff Must "e on $or ta"le "u$$erin#
U C=;S8;SET4;84&VBu$$erin#V! A! Ve%*lo-eeV ' ff Ena"le ta"le "u$$erin#
INSE;T INT8 e%*lo-ee &c+astNa%e' OA+=ES &VS%ithV'
C+EA;
[ V8ri#inal c+astNa%e alue0 V
[[ c+astNa%e ff Dis*la-s current c+astNa%e alue &S%ith'
;E4+ACE c+astNa%e 2IT@ V<onesV
[ VNe, c+astNa%e alue0 V
[[ c+astNa%e ff Dis*la-s ne, c+astNa%e alue &<ones'
U TAB+E=4DATE&.T.' ff Co%%its chan#es
[ V=*dated c+astNa%e alue0 V
[[ c+astNa%e ff Dis*la-s current c+astNa%e alue &<ones'
TABLERE:ERT5.t.6
Cancela los ca%"ios hechos a la ta"la
=SE Custo%er ff 8*en custo%er ta"le
U C=;S8;SET4;84&VBu$$erin#V! A! Vcusto%erV' ff Ena"le ta"le "u$$erin#
C6
Tipos de Bufer
1 No utilizar el buffer
2 Pessimistic row buffering on.
3 Optimistic row buffering on.
4 Pessimistic table buffering on.
5 Optimistic table buffering on.
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
C+EA;
[ V8ri#inal custPid alue0 V
[[ custPid ff Dis*la-s current custPid alue
;E4+ACE custPid 2IT@ VMMMV ff Chan#es $ield contents
[ VNe, custPid alue0 V
[[ custPid ff Dis*la-s ne, custPid alue
U TAB+E;EOE;T&.T.' ff Discard all ta"le chan#es
[ V;eerted custPid alue0 V
[[ custPid ff Dis*la-s reerted custPid alue
,. .odi'icaciones a una base de datos.
,.1 .odi'icaciones en la estructura.
,.). .odi'icaciones en los re-istros.
MOD!" #$%&'$&%( Mo)ifica la estructura )e una base )e )atos
D#P*+" #$%&'$&%( Muestra la estructura )e una base )e )atos
9. Ordenacin de la in'ormacin.
9.1. Ordenacin '(sica.
9.). Ordenacin por (ndices.
I.OS DE INDICES
En una ta"la de*endiente se dis*one de cuatro ti*os de .ndice! %ientras (ue en una ta"la li"re slo los dos
(ue se enu%eran en *ri%er lu#ar.

Normal & Es el .ndice clsico. 4er%ite cual(uier alor en la clae! est) re*etido o no. Es el
%s utilizado.
Unico & Se%ejante al nor%al. Sin e%"ar#o! en el caso de (ue ha-a %s de una clae re*etida!
slo se tiene en cuenta la (ue se entrodujo en *ri%er lu#ar. Tiene *oca utilidad - es un ti*o de
.ndice (ue *rctica%ente no se usa.
*rincipal & I%*ide (ue e/istan claes re*etidas *roocndose un error en Oisual 3o/ 4ro &slo *uede
ha"er un .ndice *rinci*al'.
+andidato & Es e/acta%ente i#ual (ue el anterior. Su sentido reside en (ue co%o slo *uede ha"er un
.ndice *rinci*al! todos los de%s de"en ser candidatos! a serlo.
Co%ando INDEJ 8N
Crea un .ndice en un archio de .ndices co%*uestos o "ien un archio de .ndice si%*le.
SINTAJIS
C9
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
INDEJ 8N ca%*o T8 no%"re de archio IDJ Y TA? eti(ueta
^83 archio CDJ_^38; e/*resin l#ica_ ^C8M4ACT_^ASCENDIN? Y DESCENDIN?_^CANDIDATE
Y=NI:=E _^ADDITIOE_
E<EM4+80
=SE *ersona
INDEJ 8N no%"re T8 *ersona.id/
El co%ando INDEJ 8N crea una archio .ndice lla%ado *ersona.id/! el cual tendr el .ndice de el
archio *ersona.
=na %ejor $or%a de crear un .ndice - en el cual 3o/ tra"aja a una %ejor ca*acidad es creando un .ndice
co%*uesto.
INDEJ 8N no%"re TA? *ersona
C7
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
UNIDAD I:. +aracter(sticas a$an1adas de las bases de datos.
1. .ane#o de $ariables " 'unciones.
1.1. +reacin " eliminacin de $ariables.
1.). Utili1acin de 'unciones interconstruidas.
:ariable.% Es*acio asi#nado de %e%oria *ara %aani*ular un dato de cual(uier ti*o.
+as aria"les se *ueden de$inir co%o0 *u"licas! *riadas - locales eje%*lo0
4=B+IC no%"re! a*ellidos
4;IOATE sueldo
Los operadores se utili1an en tiempo de e#ecuciMn para unir dos o mNs elementos del len-ua#e.
Operadores aritmOticos
& ' A#ru*a su"e/*resiones
MM! g E/*onenciacin
M! B Multi*licacihn - diisin
` Mdulo &resto de la diisin'
H! 5 Su%a - resta
Operadores relacionales
, Menor -ue
. Ma/or -ue
,0 Menor o igual -ue
.0 Ma/or o igual -ue
0 igual a
,.1 21 30Distinto )e
CA
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
A$era-e
;ealiza la %edia de un ca%*o o ca%*os corres*ondientes a una serie de re#istros! deter%inados *or la
clusula 38; o 2@I+E (ue se inclu-a. Se *uede %andar el resultado a una aria"le o arias de*endiendo
de los ca%*os *ro%ediados.
Sum
E(uiale al anterior *ero realiza una su%a
+ount56
En este caso! esta instruccin cuenta re#istros de*endiendo del .ndice - del estado de eli%inacin.
Reccount56
Si (uere%os o"iar el estado de los re#istros! *ode%os utilizarlo. 4or lo dicho! contar todos los re#istros.
No se *ueden incluir clusulas 38; - 2@I+E. Se *uede incluir el rea o el alias de la ta"la a contar entre
*ar)ntesis.
CC
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
). 0enerador de reportes.
).1 Estructura -eneral de un reporte.
).) +reacin de la estructura.
)., .odi'icacin de la estructura.
).9 0eneracin del reporte.
Dise8o de Reportes
?uia r*ida isual0
CE
Titulo0 A*arece solo en
la *ri%era *a#ina
(ncabeza)o4
+parece en to)as
las paginas
Detalle0 Se
es*eci$ican los
ca%*os de la ta"la
Su%ario0 A*arece
en la ulti%a *a#ina
Entorno de
Datos
Barra de
@erra%ientas de
;e*ortes
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
+os in$or%es %uestran datos - resu%en datos en un $or%ulario i%*reso o en *antalla. +os dos
co%*onentes *rinci*ales de los in$or%es son los datos - el $or%ato. +a $uente de datos del in$or%e *uede
ser una ta"la de "ase de dato! una consulta o una ista.
El *ri%er *aso *ara disear un in$or%e es deter%inar los datos (ue se an a %ostrar! - el se#undo *aso es
deter%inar cul a a ser el %ejor $or%ato *ara %ostrar ese in$or%e. 4uede crear listados (ue se "asen en
una nica ta"la o en in$or%es co%*lejos.
El ?enerador de In$or%es es una herra%ienta $le/i"le - de $cil uso *ara la creacin! diseo -
%odi$icacin de in$or%es.
*asos para +reacin de In'ormes &
I. Seleccin de los datos
Esta es la *arte %s i%*ortante del in$or%e! la seleccin de datos! ha- (ue sa"er (u) es lo (ue (uiere el
usuario o (ue el usuario %uestre el diseo del in$or%e (ue desea! *ara co%enzar a tra"ajar.
+os datos *ueden ser si%*les &utilizando una sola ta"la'! co%o listados de re#iones! listado de
de*arta%entos! entre otros> o *ueden ser al#o %as co%*lejos &utilizando %as de una ta"la' Eje%*lo
;e*ortes a#ru*ados! re*ortes consolidados! etc.
+os datos se *ueden o"tener directa%ente utilizando las ta"las o utilizando S:+ *ara crear cursores! esta
lti%a es la %s reco%endada *ara una a*licacin %ultiusuario.
E/isten arios ti*os de in$or%es entre ellos 0
5 Listados &Ej. +istados de re#iones'
Muestra0
5555555555555555555555555555555
id name
5555555555555555555555555555555
K1 ;e#ion 1
K6 ;e#ion 6
55555555555555555555555555555555
CG
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
5 0rupos con detalles & o %aestro detalles'
5555555555555555555555555555555
Re-ion
Departamento
5555555555555555555555555555555
;e#ion 1
De*arta%ento a
De*arta%ento "
;e#ion 6
De*arta%ento /
De*arta%ento -
55555555555555555555555555555555
5 Matriciales o consolidados
55555555555555555555555555555555555555555555
Ratin-
Re-ion EGcellent 0ood *oor
55555555555555555555555555555555555555555555
;e#ion 1 1 6 K
;e#ion 6 9 K 1
55555555555555555555555555555555555555555555
Totales 7 6 1
55555555555555555555555555555555555555555555
+reacin de In'ormes usando el entorno de datos0

1. En el ad%inistrador de *ro-ectos! seleccione la $icha Docu%entos.
6. Seleccione In$or%es
9. 4ulse el "otn nueo
7. 4ulse el "otn nueo in$or%e.
A*arece el #enerador de in$or%es - al "arra de herra%ientas Controles de in$or%es.
A. Seleccione Entorno de datos - seleccione la ta"la
C. Arrastre los ca%*os a utilizar del entorno de datos en el in$or%e en la *arte de detalle
E. Introduzca los enca"ezados del re*orte
G. 4uede er co%o (ueda el in$or%e con el "otn de *resentacin *reli%inar0
CI
Arrastre el
ca%*o a la
*arte de
detalle
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
4resentacin 4reli%inar 0
.en? de Reportes
TituloBSu%ario &TitleBSu%%ar-'0
EK
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
Muestra el rea del Titulo - el Su%ario del In$or%e
+itulo 0 A*arece solo en la *ri%era *a#ina del ;e*orte
*umario 0 A*arece solo en la ulti%a *a#ina del ;e*orte
A-rupamiento de datos 5Data 0roupin-6
El a#ru*a%iento de datos se utiliza *ara in$or%es %aestro L detalle.
Oaria"les0
+as aria"les son tiles *ara hacer clculos con los datos del re*orte - lue#o *resentarlas en el %is%o
re*orte.
E1
(specifi-ue el
campo por el
cual esta
agrupan)o
No%"re
de la
aria"le
Ti*o de
Calculo
Ca%*o a
calcular
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
*ropiedades de los campos
Cada ca%*o en el In$or%e *osee *ro*iedades 0
+reacin de In'ormes usando +ursores S@L0
1. Crear el cursor con el co%ando SE+ECT..... 3;8M .....2@E;E....
E6
Doble clic en el
campo para
mostrar las
propie)a)es
#i
)esea
mos
5acer
c6lculo
s con
el
campo
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
6. Crear el In$or%e %anual%ente! con los no%"res de ca%*os del cursor.
9. Correr el ;e*orte.
E#emplo&
M Se de$ine una entana 4ersonalizada
DE3INE 2IND82 ,P8ut*ut >
3;8M K!K T8 6A!EK >
TIT+E VIn$or%es 5 INATECV >
C+8SE 3+8AT ?;82 R88M SQSTEM
=SE IN .edataesPre#ion IN K
SE+ECT id! na%e
3;8M sPre#ion
INT8 C=;S8; cPre#ion
B Si lo <ueremos por pantalla
;E48;T 38;M .ere*orte**Pdetalles >
4;EOIE2 2IND82S ,Pout*ut >
N8E<ECT N8C8NS8+E
B *or Impresora
;E48;T 38;M .ere*orte**Pdetalles >
T8 4;INTE; 4;8M4T >
N8E<ECT N8C8NS8+E
B Facia un Arc>i$o
;E48;T 38;M .ere*orte**Pdetalles >
T8 3I+E 4=T3I+E&' >
ASCII
B +errar el cursor
=SE IN cPre#ion
E9
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
,. 0enerador de pantallas.
,.1 Estructura -eneral de una pantalla
,.) +reacin de una pantalla.
,., .odi'icacin de una pantalla.
,.). Uso de una pantalla.
Diseo de 3or%ularios
0u(a r!pida $isual&
A la hora de disear $or%ularios usted tiene (ue estar $a%iliarizado con las entanas si#uientes0

E7
0enerador de
/ormularios "
+ontroles m!s
comunes
Entorno de Datos
son las tablas <ue
ocupa el 'ormulario
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
EA
*ropiedades de
los ob#etos
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
+mo crear un nue$o /ormulario&
1. En el Administrador de *ro"ectos pulse documentos
). *ulse /ormulario para seleccionar la cate-or(a
,. *ulse botn nue$o
A*arece en cuadro de dilo#o Nueo 3or%ulario. Este cuadro re$leja la *osi"ilidad de utilizar el Asistente
*ara $or%ularios o construir uno nueo.
Su-erencia0 utilice el Asistente *ara $or%ularios *ara desarrollar $or%ularios si%*les de introduccin de
datos. El Asistente *ara $or%ularios hace una serie de *re#untas *ara #uiarle durante el *roceso de
creacin del $or%ulario. El Asistente *er%ite la creacin de un $or%ulario *ara nica ta"la o *ara ta"las
uno a %uchos.
9. *ulse el botn Nue$o 'ormulario
A*arecer el ?enerador de $or%ularios.
El ?enerador de $or%ularios isualiza /orm1 en la entana Doc/orm1! indicando (ue )ste es el *ri%er
$or%ulario (ue tiene a"ierto en este *ro-ecto. 4odr ca%"iar de no%"re Doc0orm1 *or el no%"re (ue
indi(ue al #uardar el $or%ulario. /orm1 es un rea de tra"ajo en "lanco.
Ta%"i)n a*arecer la "arra de herra%ientas con los controles *ara la creacin de $or%ularios.
A-re-acin de Ob#etos a su 'ormulario.
=na ez (ue ten#a en *antalla una entana de $or%ulario en "lanco! 3or%1! inserte o"jetos *ara crear el
su $or%ulario.
MS Oisual 3o/*ro A.K o$rece dos ti*os de o"jetos (ue se *ueden insertar en un nueo $or%ulario0 o"jetos
contenedores - o"jetos de control. 4ode%os accesar a estos o"jetos desde la "arra de herra%ientas
Controles de $or%ulario o desde el Ad%inistrador de *ro-ectos.
EC
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
Ob#etos contenedores0 =n o"jeto contenedor es un o"jeto *ri%ario (ue contiene otros o"jetos
su"ordinados. 4or eje%*lo! un $or%ulario es el o"jeto contenedor (ue es *ro*ietario de un "otn de
co%ando isualizado en el $or%ulario. 8tros o"jetos contenedores *ueden incluir %arcos de *#ina!
cuadr.culas - #ru*os de "otones de co%ando.
8"jetos de control0 =n o"jeto de control *er%ite al usuario seleccionar o*ciones! introducir datos -
esco#er acciones. En un $or%ulario! estos o"jetos *ueden incluir casillas de eri$icacin! "otones de
co%ando! cuadros de te/to - cuadr.culas.
El ob#eto /OR.
4ro*iedades %as co%unes de la 3or%a 0
Nombre Tipo de dato Descripcin
Ca*tion Carcter Titulo de la entana o 3or%a
Autocenter Booleano 4ara central la 3or%a
Sho,Ti*s Booleano 4ara (ue se %uestren los Toolti*s
Closa"le Booleano Oisualiza el "oton de Cerrar la Oentana &J'
Ma/Button Booleano Oisualiza el "oton de Ma/i%izar la Oentana
MinButton Booleano Oisualiza el "oton de Mini%izar la Oentana
ControlBo/ Booleano Oisualiza el Menu de Control de la Oentana.
Eentos o M)todos %s co%unes de la 3or%a
Nombre Descripcin
Init Se dis*ara a la hora (ue se inicializa todos los o"jetos
de la $or%a.
+oad Se dis*ara antes (ue se inicialicen los o"jetos de la
$or%a &ante (ue Init'
Destro- Se dis*ara al cerrar la $or%a
=nload Se dis*ara des*ues de Destro-.
Utili1acin de m?ltiples p!-inas en un 'ormulario simple.
EE
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
En O34! un $or%ulario si%*le *uede contener %lti*les *#inas (ue isualicen di$erentes conjuntos de
datos - controles. En la *arte su*erior del $or%ulario! una $icha re*resenta cada *#ina. 4ode%os *ulsar
en una $icha *ara %ostrar el contenido de la *#ina.
+mo crear un 'ormulario de $arias p!-inas.
1. 4ulse el "otn Marco de *#ina &page 0rame' en la "arra de herra%ientas Controles de $or%ulario.
6. Site el cursor en la es(uina su*erior iz(uierda de 0orm1. & El cursor ca%"ia su $or%a a cruceta'
9. 4ulse en la es(uina su*erior iz(uierda del $or%ulario - arrastre el cursor hacia la es(uina in$erior
derecha *ara crear un %arco de *#ina (ue cu"ra la %a-or *arte de la entana 0orm1. Deje un es*acio
de unos dos cent.%etros en la *arte in$erior del $or%ulario *ara los "otones de co%ando (ue se
a#re#arn des*u)s en esta leccin.
4ro*iedades %as co%unes de la *#inas 0
Nombre Tipo de dato Descripcin
4a#ecount N%erico 3ija el n%ero de 3olders o *#inas &4a#e1!
*a#e6...'
Ta"St-le N%erico <usti$icacion de las *#inas.
Oisi"le Booleano Si el control es isi"le al usuario.
A-re-acin de cuadros de teGto " cuadros de edicin0
+mo a-re-ar ob#etos en la pa-ina 1 5pa-e16&
1. Con el "otn derecho del ratn! *ulse so"re 4a#e1 en el $or%ulario. A*arece un %en instantaneo
6. Seleccione la entana *ro*iedades
A*arece el cuadro de dilo#o *ro*iedadades! donde %uestra 4a#e1 en el cuadro de te/to.
EG
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
9. 4ulse el "otn 3lecha hacia a"ajo.
7. Seleccione 4a#e1 en el cuadro de te/to 8"jeto.
Su-erencia0 Cada ez (ue inserte un o"jeto en un $or%ulario! %arco de *#ina o cuadricula! co%*rue"e
en la entana 4ro*iedades (ue ha colocado el o"jeto en el contenedor a*ro*iado.
+omo A-re-ar de cuadros de teGto directamente de una tabla&
1. Seleccione Oer el %en ?enerador de 3or%ularios
6. Seleccione Entorno de Datos &Data Eniron%ent'
9. Seleccione Entorno de datos &Data Eniron%ent' en el %en de Oisual 3o/*ro - lue#o A#re#ar.
Su-erencia0 Ta%"i)n *uede a"rir la entana A#re#ar ta"la o ista con el "otn derecho del ratn.
=tilizando el "otn derecho del ratn! *ulse en cual(uier *arte del Entorno de datos - lue#o seleccione
A#re#ar. 4ara o"tener la entana de Entorno de Datos o la entana de *ro*iedades! utilice el "otn
derecho del ratn *ulsando $uera del %arco de *#ina! *ero dentro del $or%ulario. A*arece un %en
instantneo desde el (ue *uede hacer la seleccin.
A*arece la entana A#re#ar ta"la o ista.
EI
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
7. Con$ir%e si es la Base de Dato deseada.
A. 4ulse dos eces en la ta"la a utilizar.
C. Seleccione el campo deseado en la lista de ca%*os de la ta"la! arrstrelo hacia el $or%ulario - d)jelo
en cual(uier *arte del %is%o.
En el $or%ulario a*arecer el cuadro de texto.text1
E. 4ulse - arrastre el cuadro de te/to text1 a la *osicin (ue desee.
Su-erencia0 4ara des*lazar un control de te/to! *ulse so"re )l - arrastrelo hacia otro lu#ar en le
$or%ulario. 4ara %odi$icar el ta%ao del cuadro de te/to! *ulse so"re )l - lue#o arrastre al#unos de los
%r#enes.
4ro*iedades %as co%unes del Te/t &control de te/to'0
Nombre Tipo de dato Descripcin
Controlsource Se#n la aria"le Es la aria"le o no%"re del ca%*o al cual
hace re$erencia.
Oalue Se#n la aria"le Contenido de la aria"le o ca%*o
re$erenciado en controlsource
Oisi"le Booleano Si el control es isi"le al usuario.
Ena"led Booleano Si el control esta ha"ilitado o no.
+ontrol Botn de +omando&
4ro*iedades %as co%unes del Botn 0
Nombre Tipo de dato Descripcin
Ca*tion Carcter Eti(ueta del co%ando &Ej. ClicF A(u.'
Oisi"le Booleano Si el control es isi"le al usuario.
GK
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
Ena"led Booleano Si el control esta ha"ilitado o no.
Eentos o M)todos %s co%unes del control
Nombre Descripcin
Init Se dis*ara a la hora (ue se inicializa el o"jeto
ClicF Se dis*ara al dar clicF en el o"jeto
Set$ocus El cursor se a al o"jeto.
+ost$ocus Se dis*ara cuando el o"jeto *ierde el cursor.
;e$resh ;e$resca el o"jeto.
G1
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
C%o asociar un *rocedi%iento a un "otn0
1. @a#a do"le clicF en el "oton. A*arece una entana de cdi#o0
+ontrol Botn de +uadro de Edicin&
Se utiliza *ara los ca%*os %e%o.
4ro*iedades %as co%unes del control de edicin
Nombre Tipo de dato Descripcin
Controlsource Se#n la aria"le Es la aria"le o no%"re del ca%*o al cual
hace re$erencia.
Oalue Se#n la aria"le Contenido de la aria"le o ca%*o
re$erenciado en controlsource
Oisi"le Booleano Si el control es isi"le al usuario.
Ena"led Booleano Si el control esta ha"ilitado o no.
Eentos o M)todos %s co%unes del control de edicin
Nombre Descripcin
G6
Esco#a el eento
deseado. &En este
caso ClicF U Se
ejecuta al
4resionar el
Boton'
Introduzca el
cdi#o deseado.
Ase#urese (ue
esta u"icado en el
control deseado
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
Init Se dis*ara a la hora (ue se inicializa el o"jeto
ClicF Se dis*ara al dar clicF en el o"jeto
Set$ocus El cursor se a al o"jeto.
+ost$ocus Se dis*ara cuando el o"jeto *ierde el cursor.
Oalid Se dis*ara des*ues de *resionar Enter o Ta"! se utiliza
*ara alidar.
;e$resh ;e$resca el o"jeto.
+ontrol de Opciones&
4ro*iedades %as co%unes del control de o*ciones
Nombre Tipo de dato Descripcin
Controlsource N%erico Es la aria"le o no%"re del ca%*o al cual
hace re$erencia.
Oalue N%erico Contenido de la aria"le o ca%*o
re$erenciado en controlsource
Oisi"le Booleano Si el control es isi"le al usuario.
Ena"led Booleano Si el control esta ha"ilitado o no.
Eentos o M)todos %s co%unes del control de o*ciones
Nombre Descripcin
InteractieChan#e Se dis*ara cuando %odi$ica%os el ca%*o
Init Se dis*ara a la hora (ue se inicializa el o"jeto
ClicF Se dis*ara al dar clicF en el o"jeto
Set$ocus El cursor se a al o"jeto.
+ost$ocus Se dis*ara cuando el o"jeto *ierde el cursor.
Oalid Se dis*ara des*ues de *resionar Enter o Ta"! se utiliza
*ara alidar.
;e$resh ;e$resca el o"jeto.
+ontrol +>ecI&
4ro*iedades %as co%unes del control ChecF
Nombre Tipo de dato Descripcin
Controlsource Booleano Es la aria"le o no%"re del ca%*o al cual
hace re$erencia.
G9
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
Oalue Booleano Contenido de la aria"le o ca%*o
re$erenciado en controlsource
Oisi"le Booleano Si el control es isi"le al usuario.
Ena"led Booleano Si el control esta ha"ilitado o no.
Eentos o M)todos %s co%unes del control ChecF
Nombre Descripcin
InteractieChan#e Se dis*ara cuando %odi$ica%os el ca%*o
Init Se dis*ara a la hora (ue se inicializa el o"jeto
ClicF Se dis*ara al dar clicF en el o"jeto
Set$ocus El cursor se a al o"jeto.
+ost$ocus Se dis*ara cuando el o"jeto *ierde el cursor.
Oalid Se dis*ara des*ues de *resionar Enter o Ta"! se utiliza
*ara alidar.
;e$resh ;e$resca el o"jeto.
+ontrol 0rid&
4ro*iedades %as co%unes del control ?rid0
Nombre Tipo de dato Descripcin
;ecordsource Carcter No%"re de la ta"la
Oisi"le Booleano Si el control es isi"le al usuario.
Ena"led Booleano Si el control esta ha"ilitado o no.
Colu%nCount N%erico Nu%ero de colu%nas del ?rid
Delete%arF Booleano 4er%ite re#istro *ara "orrar & A*arece en la
*arte iz(uierda del ?rid'
Eentos o M)todos %s co%unes del control ?rid0
Nombre Descripcin
Init Se dis*ara a la hora (ue se inicializa el o"jeto
ClicF Se dis*ara al dar clicF en el o"jeto
Set$ocus El cursor se a al o"jeto.
+ost$ocus Se dis*ara cuando el o"jeto *ierde el cursor.
;e$resh ;e$resca el o"jeto.
G7
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
GA
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
+ontrol Listas&
4ro*iedades %as co%unes del control +istas
Nombre Tipo de dato Descripcin
Controlsource Se#n la aria"le Oaria"le a (ue hace re$erencia &ca%*o donde
se al%acena el alor de la lista'
;o,Source Carcter Ta"la o (uer- de los ele%entos de la lista
;o,SourceT-*e Nu%)rico Ti*o de la 3uente &Si es ta"la o (uer-.'
Oisi"le Booleano Si el control es isi"le al usuario.
Ena"led Booleano Si el control esta ha"ilitado o no.
BoundColu%n Nu%)rico Oalor (ue retorna la lista &N%ero de la
colu%na del ;o,Source '
BoundTo Booleano Es*eci$ica si el alor de la lista esta
deter%inado *or los alores o *or la
*ro*iedad +istInde/
Eentos o M)todos %s co%unes del control +istas
Nombre Descripcin
InteractieChan#e Se dis*ara cuando %odi$ica%os el ca%*o
Init Se dis*ara a la hora (ue se inicializa el o"jeto
ClicF Se dis*ara al dar clicF en el o"jeto
Set$ocus El cursor se a al o"jeto.
+ost$ocus Se dis*ara cuando el o"jeto *ierde el cursor.
Oalid Se dis*ara des*ues de *resionar Enter o Ta"! se utiliza
*ara alidar.
;e$resh ;e$resca el o"jeto.
GC
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
9. +reacin " mane#o de bases de datos m?ltiples.
9.1 +oneGin entre bases de datos sencillas.
9.) .ane#o de bases de datos m?ltiples.
RELA+IONES ENTRE TABLAS0
+as relaciones %as co%unes entre ta"las se de$inen 0
De uno a uno 0 Eje%*lo de una llae *ri%aria a otra llae *ri%aria
De uno a muc>os 0 Eje%*lo de una llae *ri%aria a una ;e#ular o 3ornea.
+as relaciones entre ta"las se crean arrastrando la llae de la ta"la a la llae de otra ta"la.
+a $i#ura %uestra una relacin entre las ta"las re#in - de*arta%ento! la relacin se leer.a as. 0 i=na
re#in tiene %uchos de*arta%entosj.
?eneracin de inte#ridad re$erencial
;e#las (ue ri#en la coherencia de datos! es*ec.$ica%ente las relaciones entre las claes *rinci*al -
e/terna de claes de ta"las distintas. Oisual 3o/*ro ;esuele la Inte#ridad ;e$erencial %ediante
re#las a niel de ca%*o - a niel de re#istro de$inidas *or el usuario. El 0enerador de la Inte-ridad
Re'erencial le a-uda a de$inir re#las *ara controlar c%o se insertan actualizan o eli%inan re#istros
de ta"las relacionadas.
GE
;elacin entre
ta"las
&de uno a
%uchos'
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
Desencadenante0 cdi#o de eento a niel de re#istro (ue se ejecuta des*ues de una insercin! una
actualizacin o una eli%inacin. Se ocu*an *ara inte#ridad entre las ta"las.
El esta"leci%iento de la inte#ridad re$erencial i%*lica la creacin de un conjunto de re#las *ara
*reserar las relaciones de$inidas entre las ta"las al introducir o eli%inar re#istros.
Si e/i#e la inte#ridad re$erencial! Oisual 3o/4ro i%*edir las acciones si#uientes0
k A#re#ar re#istros a una ta"la relacionada cuando no ha-a nin#n re#istro asociado en la ta"la
*ri%aria.
k Ca%"iar alores de una ta"la *ri%aria cuando tales ca%"ios su*on#an dejar re#istros hu)r$anos en
una ta"la relacionada.
k Eli%inar re#istros de una ta"la *ri%aria cuando ten#an re#istros relacionados coincidentes.
Si lo desea! *uede escri"ir sus *ro*ios desencadenantes - *rocedi%ientos al%acenados *ara e/i#ir la
inte#ridad re$erencial. Sin e%"ar#o! el ?enerador de inte#ridad re$erencial &I;' de Oisual 3o/4ro
*er%ite deter%inar los ti*os de re#las (ue desea e/i#ir! las ta"las a las (ue desea e/i#irlas - los
eentos del siste%a (ue harn (ue Oisual 3o/4ro las co%*rue"e.
El ?enerador de I; trata %lti*les nieles de eli%inaciones - actualizaciones en cascada! - es
reco%enda"le co%o herra%ienta *ara ase#urar la inte#ridad re$erencial.
*ara abrir el 0enerador de IR
1 A"ra el Dise8ador de bases de datos.
) En el %en Base de datos! elija Editar inte-ridad re'erencial.
Al utilizar el ?enerador de I; *ara crear re#las (ue se an a a*licar a la "ase de datos! Oisual 3o/4ro
#uarda el cdi#o #enerado *ara e/i#ir las re#las de inte#ridad re$erencial co%o desencadenantes (ue
hacen re$erencia a *rocedi%ientos al%acenados. 4ara er este cdi#o *uede a"rir el editor de te/to de
*rocedi%ientos al%acenados en la "ase de datos. Si desea in$or%acin so"re la $or%a de crear
desencadenantes *or *ro#ra%a! consulte =so de desencadenantes en el ca*.tulo E! Tra"ajo con ta"las.
*recaucin Cuando ha#a ca%"ios en el diseo de una "ase de datos co%o %odi$icaciones en sus
ta"las o alteraciones en los .ndices utilizados en una relacin *ersistente de"e oler a ejecutar el
?enerador de I; antes de utilizar de nueo la "ase de datos. De esta $or%a se reisarn el cdi#o de
*rocedi%iento al%acenado - los desencadenantes utilizados *ara e/i#ir la inte#ridad re$erencial! de
$or%a (ue re$lejen el nueo diseo. Si no uele a ejecutar el ?enerador de ;I! *uede (ue o"ten#a
resultados ines*erados! -a (ue no se ha"rn actualizado los *rocedi%ientos al%acenados - los
desencadenantes *ara ajustarlos a las %odi$icaciones.
El 0enerador IR se muestra cuando&
@ace do"le clic en una l.nea de relacin entre dos ta"las del Dise8ador de bases de datos -
eli#e el "otn Inte-ridad Re'erencial en el cuadro de dilo#o Editar relacin.
Eli#e Inte-ridad re'erencial en el %en conte/tual del Dise8ador de bases de datos.
Eli#e Editar inte-ridad re'erencial en el %en Base de datos.
/ic>as del -enerador
Re-las para la actuali1acin Es*eci$ica re#las *ara a*licar cuando se %odi$ica el alor clae de la
ta"la *ri%aria.
GG
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
Re-las para la eliminacin Es*eci$ica las re#las (ue se a*lican cuando se eli%ina un re#istro de la
ta"la *ri%aria.
Re-las para insertar Es*eci$ica las re#las (ue se a*lican cuando se inserta un nueo re#istro o
cuando se actualiza un re#istro e/istente en la ta"la secundaria.
Inte-racin de la Aplicacin.
+reacin de .en?s&
?u.a r*ida Oisual0
GI
Instruccin de %en
4resentacin *reli%inar del
%en
Modi$icacin o creacin de
;esultados del %en
8*ciones del %en
+ista de ;esultados del
%en
&Su" %en! co%ando!
*rocedi%iento'
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
Tipos de .en?s&
E/isten dos ti*os de %ens 0 %en - Shortcut.
IK
El Shorcut %en
se inoca con el
"otn derecho del
%ouse
Menu des*le#a"le
a niel de la
entana su*erior
de Oisual 3o/*ro.
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
+reacin de .en?s&
+a creacin de %ens es un *roceso (ue conllea di$erentes *asos. 4ri%ero! de"e%os de$inir las o*ciones
del %en - de los su"%ens. +ue#o! asi#nar $uncionalidad a las o*ciones de %en. 3inal%ente! #enerar el
*ro#ra%a de %ens.
4uede l #enerador de %ens de Oisual 3o/*ro *ara (ue le a-ude a construir %ens r*ida%ente. El
?enerador de %ens le *er%ite de$inir la estructura - $uncionalidad de su siste%a de %ens a tra)s de
cuadros de dilo#o de $cil uso - de listas des*le#a"les (ue *uede utilizar *ara crear - %odi$icar su
site%a de %ens.
De'inicin de las opciones de men?.
+os %ens *resentan su as*ecto con una lista de o*ciones *ara iniciar una actiidad. +a %a-or.a de los
ele%entos de %en %uestran su"%ens u o*ciones adicionales cuando el usuario selecciona uno de estos
ele%entos. Antes de #enerar un %en *ara una a*licacin! tendr (ue deter%inar (ue selecciones tendr
dis*oni"les el usuario $inal - (u) o*ciones de %ens *ertenecen a otras o*ciones de %ens &su" %enus'.
+mo crear un nue$o men?
1. 4ulse la $icha de otros en el Ad%inistrador
de *ro-ectos.
A*arece la *#ina otros con las cate#or.as
de archio de Mens! Te/to - 8tros.
6. Seleccione %ens en la lista de cate#or.as
9. 4ulse el "otn nueo - escoja si es Menu o
un Shortcut
7. Introduzca las o*ciones del %enu - lue#o el
resultado del %en & su"%enu! co%ando o
*rocedi%iento'
A. A la derecha del resultado se encuentra la o*cin crear o %odi$icar se#n el caso. & crea o %odi$icar los
resultados de la o*cin del %enu'.
Tipos de Resultados 0
Submenu 0 Si el %en contiene un su"%enu
Co%ando & Si la opcin de ese men? in$oca un comando 5E#emplo& DO /OR.
;e#iones! *ara lla%ar un $or%ulario>
+LEAR E:ENT! *or lo #eneral a en la o*cin Salir'
*rocedimiento 0 Si la o*cin de ese %en inoca arias l.neas de co%andos & un *rocedi%iento'.
I1
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
Opciones de .en?&
En las o*ciones del %en se es*eci$ican0
5 Teclas de Acceso directo
5 Mensajes del %en
5 Condicin de ha"ilitaBNo ha"ilitar
0eneracin del men? &
1. En el %en escoja la o*cin Men.
6. Se le *re#unta si desea #ra"ar los ca%"ios & res*onda (ue si'
9. +ue#o se le *ide (ue *ro*orcione el archio de salida del %enu & escoja la ruta - el no%"re del
archio! *or lo #eneral son e/tension M4;' - lue#o seleccione #enerar.
7. Si e/iste -a el archio se le *ide si desea re5escri"irlo & seleccione (ue si'
+omo in$ocar al men? creado&
Al #enerar el %en se crea un archio (ue *or lo #eneral tiene e/tensin M4; (ue contiene el cdi#o
*ara des*le#ar el %en.
+a instruccin ser.a0

DO ruta " nombre del arc>i$o .*R
E#emplo & DO menu..*R
4ara oler a re esta"lecer el %en *or de$ault de Oisual 3o/*ro utilice la instruccin0 SET
SQSMEN= T8 DE3A=+T
I6
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
+reacin del E#ecutable de la Aplicacin.
4ri%ero se tiene (ue crear un *ro#ra%a de
inicio! al cual se le tiene (ue decir (ue ese es el
*ro#ra%a (ue se ejecutara de *ri%ero & esto se
hace haciendo clic derecho en el *ro#ra%a (ue
desi#ne%os co%o *rinci*al - esco#er la o*cin
main & *rinci*al' del %en de o*ciones'
Contenido Eje%*lo del *ro#ra%a *rinci*al0
C+EA; A++
M Oaria"les 4u"licas
4=B+IC ,P8ut*ut! #Pao! #idParea! #Pniel! #Pca%"io! #Plo#inPentr- >
!#P*assPentr-! OPMEN=P4;E! OPE;;8;! #Pacceso
M De$inicion de Oentana *ara los ;e*ortes
DE3INE 2IND82 ,P8ut*ut >
3;8M K!K T8 6A!EK >
TIT+E VIn$or%es 5 BCNV >
C+8SE 3+8AT ?;82 R88M SQSTEM
M A%"iente
SET SQSMEN= T8
SET EC@8 833
SET TA+\ 833
SET CENT=;Q 8N
SET C+8C\ STAT=S
SET DATE "rit
SET DE+ETE 8N
SET 4AT@ T8 $or%enu!"%*!*r#!data
SET EJC+=SIOE 833
SET SA3ETQ 833
SET ;E3;ES@ T8 A
SET ;E4;8CESS T8 A=T8MATIC
SET M=+TI+8C\ 8N
I9
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
SET +8C\ 833
SET 4;8CED=;E T8 .e*r#eutilit-
M 3ondo de la 4antalla *rinci*al
PSC;EEN.4ictureUD.e"%*e$ondo."%*D
PSC;EEN.2IND82STATEU6
PSC;EEN.C+8SAB+EU.3.
PSC;EEN.CA4TI8NUD3or%ulacin 4resu*uestariaD
M Base de Datos
84EN DATA .eSC8TTescott S@A;ED
M +la%ada al Menu
D8 .e%enue%enu.%*r
;EAD EOENT
C+EA; A++
SET SQSMEN= T8 DE3A=+T
+reacin del E#ecutable
En el Ad%inistrador de *ro-ectos seleccione la o*cion Build! lue#o la o*cin "uild E/ecuta"le - lue#o
8\.
En las o*ciones es reco%enda"le seleccionar ;eco%*ile All - dis*la- Error! *ara reco%*ilar todos sus
*ro#ra%as - $or%ularios > - 4or si ha- un error %ostrarlo al $inal de la #eneracin del Ejecuta"le.
I7
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
+omandos Relacionados a BD " Tablas
1. Instrucciones de Manejo de Bases de Datos
6. Instrucciones de Manejo de Ta"las Inde*endientes
9. Instrucciones ?enerales de Manejo de Ta"las
7. Instrucciones de Bs(ueda en Ta"las
A. Instrucciones de Calculo en Ta"las
C. El Siste%a de Al%acena%iento en Bu$$er
E. Transacciones
G. ?ENDBC 4ro#ra%a =tilidad *ara Base de Datos
Instrucciones B!sicas
1. Trata%iento de Caracteres
6. Mani*ulacion de 3echas
Instrucciones de .ane#o de Bases de Datos
+REATE DATABASE
Crea una BD nuea - la actia auto%tica%ente.
O*EN DATABASE
4er%ite a"rir una BD creada *reia%ente
El *ar%etro EC+LUSI:E *osi"ilita (ue la BD se *uede %odi$icar inde*endiente%ente del estado del
co%ando SET EC+LUSI:E.
IA
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
8tro *ar%etro co%*rue"a la inte#ridad de la in$or%acin de la BD! :ALIDATE. Es coneniente
incor*orarlo dentro de nuestra a*licacin cuando a"ra%os la BD.
A"rir una BD no i%*lica (ue se car#uen en %e%oria las ta"las contenidas! sino (ue *osterior%ente
de"e%os a"rirlas %ediante el co%ando =SE.
SET DATABASE
Esta"lece la BD actia en el caso de (ue ten#a%os arias en %e%oria. Ta%"i)n es *osi"le esto utilizando
la "arra de herra%ientas Estndar de Oisual 3o/*ro.
.ODI/P DATABASE
A"re el ?enerador de BD *ara (ue se *roceda a los ca%"ios *recisos.
DELETE DATABASE
Eli%ina una BD - las re$erencias (ue ten#an las ta"las contenidas con la BD. Es i%*ortante utilizar esta
instruccin en ez de "orrar los archios directa%ente en el siste%a o*eratio! -a (ue las ca"eceras de las
ta"las se#uirn teniendo in$or%acin so"re la BD (ue las conten.a - al ir a"rirlas nos saldr un error.
Si (uere%os "orrar la BD co%o las ta"las contenidas *ode%os incluir el ar#u%ento DELETETABLES
*A+H DATABASE
Des*u)s de ha"er (uitado una ta"la de una BD! *er%anece el hueco de dicha ta"la! -a (ue se realiza
interna%ente un "orrado l#ico. Al i#ual (ue con los re#istros de una ta"la! dis*one%os de la *osi"ilidad
de e%*a(uetar los datos - "orrar $.sica%ente las ta"las.
:ALIDATE DATABASE
Tiene la %is%a $uncin del *ar%etro :ALIDATE del co%ando O*EN DATABASE! - lo (ue hace es
co%*ro"ar la inte#ridad de la BD.
Tiene un *ar%etro! RE+O:ER! (ue %uestra entanas de dilo#o *ara localizar las re$erencias
inlidas> ahora "ien! slo se *uede utilizar en la entana de co%andos! -a (ue en un *ro#ra%a dar.a
error.
+LOSE DATABASE
Cierra la BD actual - sus ta"las. Se es*eci$ica ALL! cierra todas las BD a"iertas! junto a las ta"las
contenidas. 8tra *osi"ilidad *ara cerrar ta"las! tanto contenidas co%o li"res! es +LOSE ALL
DB+56
Deuele el no%"re de la BD actual - su ruta de acceso.
DBUSED56
Mediante esta $uncin *ode%os sa"er si una BD est en uso
DIS*LAP DATABASE
IC
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
Muestra in$or%acin so"re la BD &Diccionario de Datos'
IE
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
Instrucciones de .ane#o de Tablas Independientes

Displa" Tables 3 List Tables
4er%ite sa"er cules son las ta"las (ue se encuentran dentro de la BD! as. co%o su ruta de acceso.
Add Table
Aade una ta"la li"re a una BD. Si (uere%os %odi$icar el no%"re *ara (ue sea de %a-or lon#itud!
*ode%os incluir la clusula NA.E se#uida del nueo no%"re.
Remo$e Table
Eli%ina una ta"la de la BD (ue la contiene - la conierte en una ta"la li"re. 4or tanto! *erdere%os todas
las *ro*iedades! indices *rinci*ales! etc.! as. co%o relcaiones (ue se *udiesen ha"er creado con otras
ta"las.
Si ade%s de (uitarla de la BD desea%os eli%inarla del disco! *ode%os *oner el *ar%etro DELETE
/ree Table
Es e(uialente al co%ando anterior! *ero se di$erencia de )ste en (ue no hace $alta tener a"ierta la BD
*ara conerit en li"re la ta"la. +o (ue hace es (uitar la re$erencia de la ca"ecera de la ta"la.
No es coneniente utilizarlo cuando e/iste la BD! -a (ue *uede ocurrir (ue la ta"la (uede daada. Slo es
aconseja"le cuando se ha "orrado la BD - las ta"las continan con la lla%ada a dicha BD
Drop Table
Eli%ina una ta"la de la BD - ta%"i)n la "orra del disco. 4ode%os incluir el ar#u%ento NORE+P+LE
*ara (ue no se (uede en la *a*elera de 2indo,sdIA
InDbc56
Deuele erdadero si el o"jeto *or el (ue se *re#unta se encuentra dentro de la BD actia. Se indica
co%o se#undo *ar%etro el ti*o de o"jeto (ue es! "ien TABLE! INDEC! /IELD! :IE2 o
+ONNE+TION.

IG
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
Instrucciones 0enerales de .ane#o de Tablas
=na ez (ue tene%os a"ierta la BD o cuando (uera%os %anejar una ta"la li"re! de"e%os utilizar la
si#uiente relacin de instrucciones. Muchas de ellas toda.a son las %is%as (ue esta"an dis*oni"les en
los co%ienzos de J"ase.
Use
Es el co%ando de ta"las *or e/celencia. Sin nin#n ti*o de *ar%etro! slo se#uido del no%"re de la
ta"la! *er%ite a"rirla. Se car#a auto%tica%ente en el rea actia. Ade%s de ello! si e/iste un archio de
.ndices! se a"rir ta%"i)n junto a la ta"la> ahora "ien! )sta no se ordenar salo (ue se lo *ida%os
e/*resa%ente %ediante el ar#u%ento ORDER TA0.
Si desea%os (ue la ta"la se a"ra en una deter%inada rea se lo *ode%os indicar %ediante IN se#uido del
n%ero de rea. Si lo (ue *re$eri%os es (ue O34 to%e la *ri%er rea no asi#nada! *ondre%os el alor K
&cero' en el n%ero de rea.
+as ta"las se car#an en el rea con el no%"re (ue tiene el archio .DB3! si (uere%os ca%"iarlo *ode%os
utilizar el *ar%etro A+IAS se#uido del nueo no%"re. +o nor%al es no co%*licarse la ida - dejar tal
cual.
4ara a"rir una ta"la de $or%a e/clusia *ode%os incluir EJC+=SIOE. 4ara hacerlo de %anera
co%*artida tene%os el *ar%etro S@A;ED.
=n eje%*lo t.*ico *odr.a ser0
=SE ta"la 8;DE; TA? codi#o IN K
Select
=na ez (ue una ta"la est a"ierta tene%os dos $or%as de hacer re$erencia a sus ca%*os! "ien %ediante el
alias un *unto - el no%"re del ca%*o &ta"la1.codi#o' o situndonos *reia%ente en el rea de la ta"la
corres*ondiente - lla%ando al ca%*o directa%ente con su no%"re.
4ara ca%"iar de rea tan slo hace $alta aco%*aar el SE+ECT con el n%ero de rea! o "ien! *oner el
alias de la ta"la.
Co%o re#la #eneral *ara la *ro#ra%acin! no es %u- aconseja"le a"usar de los SE+ECT! -a (ue
ralentizan la ejecucin de los *ro#ra%as. Sie%*re (ue *oda%os sustituirlo *or otro otro ti*o de
co%andos! so"re todo S:+! no de"e%os dudarlo.
Append BlanI
4er%ite crear un re#istro re#istro nueo. Si (uere%os crearlo en una ta"la (ue no es la de rea actia!
*ode%os incluir el ar#u%ento IN co%o se hace en el USE.
Si es *osi"le! es %ejor utilizar el co%ando INSERT INTO! -a (ue sustitu-e tanto al A**END BLANH
co%o al RE*LA+E.
II
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
Replace
Este co%ando *er%ite %odi$icar la in$or%acin de cada ca%*o de una ta"la. Su sinta/is es0
;E4+ACE ca%*o 2IT@ datos
Se *ueden concatenar arios ca%*os %ediante co%as. Esto es lo correcto! no de"e%os re*etir el
;E4+ACE. Cada uno de ellos *roduce un "lo(ueo de red! lo (ue ralentiza el *ro#ra%a.
Si es *osi"le! es %ejor utilizar el =4DATE L S:+.
Delete
Borra de %anera l#ica el re#istro donde est situado el *untero en la ta"la. Es *osi"le "orrar
selectia%ente %ediante los ar#u%entos /OR o 2FILE. Asi%is%o *ode%os "orrar todos los re#istros
%ediante DELETE ALL. Ta%"i)n *ode%os utilizar el IN al i#ual (ue en co%andos anteriores.
4ara tra"ajar slo con re#istros no %arcados *ara "orrar de"e%os utilizar el co%ando SET DELETE
ON.
Recall
;ecu*era un re#istro "orrado l#ica%ente. Co%o en el DELETE *ode%os recu*erar todos los re#istros
%ediante ALL o al#unos con el /OR o el 2FILE.
*acI
Eli%ina $.sica%ente todos los re#istros con la %arca de "orrado - actualiza el archio de .ndices! as.
c%o los archios .34T (ue contienen los ca%*os %e%o. Es i%*ortante es lti%o! -a (ue los ca%*os
%e%o de los re#istros "orrados *ueden ocu*ar %ucho es*acio. N8 se de"e utilizar en nin#n caso el
co%ando RA4 *ara eli%inar todos los re#istros! -a (ue no "orra los ca%*os %e%o asociados.

1KK
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
Instrucciones de B?s<ueda en Tablas
SIip
Aanza o retrocede secuencial%ente tantos re#istros co%o se le indi(ue. @a- (ue controlar en todo
%o%ento (ue el retraso - el aance no des"orden el *rinci*io del $ichero - el $inal. 4ara ello! *ode%os
utilizar las dos $unciones si#uientes.
Bo'56
Deuele .T. si se ha encontrado el *rinci*io de $ichero! esto es! (ue el *untero est %s all del *ri%er
re#istro.
Eo'56
Deuele erdadero al lle#ar el *untero al $inal del $ichero! cuando est %s all del lti%o re#istro.
0o
4er%ite ir directa%ente a un re#istro! "ien sea %ediante su n%ero de re#istro! o "ien! al *ri%er re#istro
con 0O TO* o al lti%o! 0O BOTTO.. Sie%*re teniendo en cuenta el orden $.sico en el caso de ir a
un re#istro se#n su n%ero. En el caso de TO* - BOTTO. de*ender del orden de la ta"la.
Este co%ando *er%ite %oer *unteros en otra rea %ediante la clusula IN.
SeeI
;ealiza una "s(ueda directa de un alor dentro del archio de .ndices! situndose el *untero en ese
re#istro en el caso de encontrarse! o "ien accediendo al $inal de $ichero en caso contrario.
/ound56
4er%ite sa"er si un deter%inado alor "uscado se ha encontrado o no. Se de"e *oner justo des*u)s de la
instruccin de "s(ueda.
SeeI56
Sustitu-e a las dos instrucciones anteriores - al SET 8;DE;! lo (ue le conierte en una $uncin
alta%ente til - (ue de"e%os i%*le%entar en nuestro cdi#o sie%*re (ue sea *osi"le. =n eje%*lo *odr.a
ser0
I3 SEE\&DKK1D! Dta"la1D!DcodcodD'
[DEncontradoD
ENDI3
1K1
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
Donde 12211 es el alor "uscado! 1tabla11 es la ta"la donde se "usca - 1codcod1 el ta# *or el cul se a a
realizar la "s(ueda. 4or tanto! no hace $alta ordenar *reia%ente la ta"la *or este .ndice. Se la $uncin
deuele .T. es (ue se ha encontrado el alor.
Do 2>ile
Este "ucle! clsico donde los ha-a! *er%ite realizar una "s(ueda en toda la ta"la de si#ueinte $or%a
D8 2@I+E bE83&'
S\I4
ENDI3
Aanza *or toda la ta"la hasta (ue encuentra el $inal de $ichero.
Scan
E(uialente al "ucle anterior! - %ucho %s *rctico! es el S+AN! (ue ade%s de recorrer
auto%tica%ente toda la ta"la *er%ite $iltrar la "s(ueda %ediante las clusulas /OR - 2FILE. Es
i%*ortante sa"er *or (u) re#istro co%ienza la "s(ueda. En el caso del S+AN sin %s! sie%*re e%*ieza
desde el *ri%er re#istro. Sin e%"ar#o! con el 2FILE e%*ezar desde el re#istro donde est) situado el
*untero en ese %o%ento.
Ta%"i)n es $unda%ental oler al rea de la ta"la so"re la (ue se est haciendo el S+AN si nos he%os
situado en otra dentro del "ucle *ara realizar al#una o*eracin. Ta%*oco de"e%os %oer nosotros el
*untero dentro de )l! -a (ue *uede causar *)rdidas de in$or%acin.
4ara salir del "ucle re*entina%ente *ode%os incluir el co%ando ECIT. Si lo (ue (uere%os es saltar a la
condicin e%itire%os un LOO*.

1K6
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
Instrucciones de +!lculos en Tablas
En relacin con los recorridos de las ta"las - directa%ente relacionados con ellos! estn los co%andos (ue
realizan clculo *ara un n%ero deter%inado de re#istros. ;eal%ente *odr.a%os sustituir *or el co%ando
SELE+T%S@L! con $unciones de #ru*o.
A$era-e
;ealiza la %edia de un ca%*o o ca%*os corres*ondientes a una serie de re#istros! deter%inados *or la
clusula 38; o 2@I+E (ue se inclu-a. Se *uede %andar el resultado a una aria"le o arias de*endiendo
de los ca%*os *ro%ediados.
Sum
E(uiale al anterior *ero realiza una su%a
+ount56
En este caso! esta instruccin cuenta re#istros de*endiendo del .ndice - del estado de eli%inacin.
Reccount56
Si (uere%os o"iar el estado de los re#istros! *ode%os utilizarlo. 4or lo dicho! contar todos los re#istros.
No se *ueden incluir clusulas 38; - 2@I+E. Se *uede incluir el rea o el alias de la ta"la a contar entre
*ar)ntesis.

1K9
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
El Sistema de Almacenamiento en Bu''er
Bsica%ente! consiste en la creacin auto%tica de un es*acio de %e%oria destinado a #uardar el o los
re#istros (ue se est)n editando sin (ue ten#a%os (ue realizar nin#n ti*o de %oi%iento a ese "u$$er ni
*oner una sola l.nea de *ro#ra%a. El *roceso est #enerado interna%ente *or el O34. +o nico (ue
de"e%os hacer es co%*ro"ar si se ha *roducido al#una %odi$icacin *or *arte del usuario -! *or lti%o!
#uardar o descartar los ca%"ios.
El siste%a de al%acena%iento en "u$$er *er%ite! ade%s de $acilitar el %anteni%iento de las ta"las! *oder
controlar el $unciona%iento en red.
E/iste la t)cnica de "lo(ueo en cuanto se *roduce una %odi$icacin! (ue es lo (ue lla%a%os "lo(ueo
*esi%ista> o *or otro lado ! dejar a"soluta li"ertad a los usuarios de la red "lo(ueando slo a la hora de
#ra"ar! (ue es lo (ue se lla%a "lo(ueo o*ti%ista.
O34 dis*one de tres "u$$er *ara #uardar los datos0
1er "u$$er! contiene los alores (ue el usuario est iendo en *antalla
6do "u$$er! #uarda la in$or%acin ori#inal (ue ten.a la ta"la
9er "u$$er! al%acena el alor %s reciente reci"ido de la red.
El al%acena%iento en "u$$er se actia a tra)s de la $uncin +URSORSET*RO*&'. 4or cada ta"la (ue
a-a%os a"riendo tendre%os (ue *oner un +URSORSET*RO*. +a sinta/is ar.a de*endiendo del ti*o
de al%acena%iento (ue desee%os! si#uiendo el $or%ato0
C=;S8;SET4;84&DBu$$erin#D! Tti*o de al%acena%ientoS'
En ti*o de al%acena%iento *odre%os indicar cinco ti*os0
:alor Si-ni'icado
1 No se actia el al%acena%iento en "u$$er! *or tanto no lo utilizare%os
6 El "lo(ueo ser a niel de re#istro - *esi%ista. El re#istro *er%anecer
"lo(ueado hasta (ue se #ra"e la %odi$icacin.
9 El "lo(ueo ta%"i)n tiene lu#ar a niel de re#istro! aun(ue o*ti%ista. 4or lo
tanto! se *roduce el "lo(ueo cuando se actualiza la %odi$icacin o se *roduce
un des*laza%iento a otro re#istro
7 Blo(ueo *esi%ista a niel de ta"la. 3unciona i#ual (ue a niel de re#istro
A Blo(ueo o*ti%ista a niel de ta"la. Se *roduce cuando se actualizan las
%odi$icaciones

1K7
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
4ara todos los casos de"e%os tener! ade%s del acceso no e/clusio &SET EC+LUSI:E O//'! el SET
.ULTILO+HS ON. Des*u)s de incluir esta introduccin -a *odre%os a*roecharnos de las "ondades
del siste%a.

+mo comprobar si >a >abido modi'icaciones
Cuando se utiliza el "u$$er a niel de re#istro utilizare%os la $uncin 0ET/LDSTATE&'
Sintaxis&
U?ET3+DSTATE&Tno%"re o No. de ca%*oS! TaliasS'
o ta%"i)n0
U?ET3+DSTATE&51! TaliasS' El L1 es *ara sa"er todos los estados de los re#istros.
+os alores (ue nos *uede deoler son0
:alor Si-ni'icado
1 El ca%*o no ha sido %odi$icado ni eli%inado
6 Ese ha editado el ca%*o o ha ca%"iado el estado de eli%inacin
9 No se ha editado el ca%*o de un re#istro aadido o no ha ca%"iado el estado
de eli%inacin del re#istro aadido & o sea se inserto el re#istro en "lanco -
no introdujo in$or%acin '
7 Se ha editado el ca%*o de un re#istro aadido o ha ca%"iado el estado de
eli%inacin *ara el re#istro aadido

El cdi#o t.*ico *ara sa"er si ha ha"ido al#n ti*o de %odi$icacin so"re la re#istro actual ser.a0
I3 D6Dl?ET3+DSTATE&51' 8; D9Dl?ET3+DSTATE&51' >
8; D7Dl?ET3+DSTATE&51'
UMESSA?EB8J&D@a ha"ido al#una %odi$icacinD'
ENDI3
1KA
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
Cuando se utiliza el "u$$er a niel de ta"la utilizare%os la $uncin 0ETNECT.ODI/IED&' ! (ue
deuele el n%ero del *ri%er re#istro (ue encuentra %odi$icado. +a "s(ueda se da a *artir del
*ar%etro TNo. de re#istroS.
Sintaxis&
U?ETNEJTM8DI3IED&TNo. de re#istroS!TaliasS'
+mo actuali1ar la tabla
El lti%o *aso ser #uardar o descartar las %odi$icaciones. 4ara ello se dis*one de dos $unciones0
TAB+E=4DATE&' - TAB+E;EOE;T&'. @a- (ue recordar (ue isual%ente esta%os tra"ajando so"re
una ta"la inter%edia - (ue esa in$or%acin ha de ser olcada a la ta"la $.sica. Este *aso ar.a
de*endiendo del ti*o de al%acena%iento (ue ha-a%os desi#nado.
TABLEU*DATE56
Sintaxis0
UTAB+E=4DATE&Tn%ero de $ilasS! T$orzar actualizacin redS! TaliasS! Tarra- *ara errorS'
Al actualizar la ta"la $.sica le *ode%os decir (ue lo ha#a slo *ara el re#istro en el (ue se est o *ara
todos los re#istros de la ta"la. El *ri%er *ar%etro est destinado a este $in. +os alores (ue *uede to%ar
son0
Qn?mero de 'ilasR
:alor Si-ni'icado
K 4or de$ecto. Se actualiza el re#istro en el (ue est el *untero sea cual sea el
ti*o de al%acena%iento
1 Se actualizarn todos los re#istros si el al%acena%iento es a niel de ta"la -
slo el re#istro actual si el al%acena%iento se esta"leci a niel de re#istro
6 I#ual $unciona%iento (ue el alor 1 *ero en este caso O34 no e%ite un error
si la actualizacin no ter%in con )/ito.

Q'or1ar actuali1acin redR
Este *ar%etro se utiliza *ara $orzar la actualizacin en red en el caso (ue dos usuarios est)n %odi$icando
el %is%o re#istro & en el caso del "u$$er o*ti%ista'
TABLERE:ERT56
1KC
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
Sintaxis0
UTAB+E;EOE;T&Ttodas las $ilasS!TaliasS'
Tendre%os (ue *oner .T. *ara (ue se *roduzca el descarte de los ca%"ios realizados en todos los
re#istros.

Transacciones
=na de las %ejoras (ue se han i%*le%entado en esta nuea ersin es la *osi"ilidad de controlar de
%anera %s *recisa! - so"re todo ro"usta! el *aso de in$or%acin entre el seridor - los clientes! re$erida
natural%ente al #rae *ro"le%a (ue sur#e cuando $alla la cone/in entre los dos en el *reciso %o%ento
en (ue est actualizando una deter%inada in$or%acin.
Este *ro"le%a se eita con el control transaccional. En O34 consiste en incluir dentro de un BE0IN
TRANSA+TION - un END TRANSA+TION la serie de co%andos (ue realizan la actualizacin
re(uerida. Si *or cual(uier causa se corta la cone/in sin ha"er $inalizado la transaccin! )sta no se
realiza. 4or tanto! tendre%os las ta"las co%o antes del corte! esto es *osi"le #racias a (ue los ca%"ios se
an #uardando en %e%oria hasta (ue lle#a el END TRANSA+TION! (ue es cuando se uelca de #ol*e
toda la in$or%acin.
8tros len#uajes *er%iten continuar la transaccin donde se *ar! O34 no> *ero es %s (ue su$iciente.
Ta%"i)n es *osi"le sus*ender la transaccin si encontra%os una razn *ara ello! co%o *uede ser (ue una
ta"la est) "lo(ueada. Entonces "astar con eniar un co%ando ;8++BAC\ *ara restaurar todas las
ta"las con los alores *reios a la transaccin.
No es coneniente a"usar de las transacciones -a (ue )stas "lo(uean todas las ta"las (ue *artici*an en la
%is%a! *or lo (ue nin#n usuarios de la red *odr acceder a ellas. Slo de"e%os utilizarla si cuando
a-a%os a actualizar la in$or%acin de arias ta"las! - una de ellas no ten#a los alores correctos!
i%*li(ue un #rae *erjuicio *ara los clculos de la a*licacin. Nunca de"e%os usarlas *ara la
actualizacin de una ta"la.

Utilidades
0ENDB+
Situada en el directorio O34eT88+Se?ENDBC! esta herra%ienta #enera un *ro#ra%a (ue *uede oler
a crear una "ase de datos. =se este *ro#ra%a *ara0
?enerar cdi#o (ue *uede analizar *ara a*render c%o se crea una "ase de datos %ediante
cdi#o de *ro#ra%a.
?enerar cdi#o (ue *uede ser colocado en el cdi#o de su *ro#ra%a eli%inando la
necesidad de trans*ortar sus "ases de datos con su a*licacin.
1KE
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
?enerar cdi#o (ue *uede ser colocado en el cdi#o de su *ro#ra%a *ara oler a crear la
"ase de datos si los datos de un cliente estn corro%*idos.
SintaGis
D8 ?ENDBC 2IT@ arc3ivo
*ar!metros
arc3ivo Cadena de caracteres (ue contiene el no%"re de un archio de salida. El arc3ivo *uede
contener in$or%acin de ruta - una e/tensin. Si no se su%inistra nin#una e/tensin se usa la
e/tensin *redeter%inada .4;?.
Nota Este *ro#ra%a slo $uncionar en la "ase de datos actia actual%ente.

Tratamiento de +aracteres
Str56
Es una $uncin de conersin de n%eros a letras. 4or de$ecto! to%a co%o ancho sie%*re 1K. En caso de
(ue (uera%os es*eci$icar otro ta%ao! de"ere%os indicarlo en el se#undo *ar%etro.
Upper56 Lo4er56 " *roper56
Conierte la cadena de caracteres indicada entre los *ar)ntesis a %a-sculas! %insculas! o "ien con la
letra inicial en %a-sculas - las de%s en %insculas! res*ectia%ente.
Ltrim56 Rtrim56 " Alltrim56
En los tres casos (uita los es*acios (ue *udiese tener la cadena de caracteres! "ien *or la iz(uierda! *or la
derecha o *or a%"os lados.
Le't56 Ri->t56
To%a de una cadena de caracteres el n%ero (ue le indi(ue%os co%o se#undo *ar%etro! e%*ezando *or
la iz(uierda o "ien *or la derecha.
Substr56
1KG
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
4osi"ilita la e/traccin de una deter%inada cadena de caracteres dentro de otra! e%*ezando desde la
*osicin indicada co%o se#undo *ar%etro - co#iendo el n%ero de caracteres (ue se es*eci$i(uen en el
tercero.
Len56
Deuele el n%ero de caracteres (ue tiene la cadena (ue *on#a%os entre los *arentesis.
Space56
Crea una cadena de es*acios con una lon#itud deter%inada *or el nu%ero (ue escri"i%os co%o
*ar%etro.
Replicate56
En esta $uncin no slo *ode%os re*etir una cadena de es*acios! sino cual(uier ti*o de carcter! tantas
eces co%o indi(ue%os en el se#undo de los *ara%etros.
Isalp>a56 Islo4er56 e Isupper56
Deolern .T. si la cadena es de caracteres! si est en %insculas - si est en %a-usculas! se#n
corres*onda.
S
Co%*rue"a si una deter%inada cadena o caracter! (ue se de"e *oner antes del l! est dentro de una
cadena de caracteres! (ue de"e ir detrs del l.
*adl56 *adr56 " *adc56
Sire *ara rellenar una cadena de caracteres! con un deter%inado carcter! tercer *ara%etro! un nu%ero de
eces deter%inado *or el alor del Se#undo *ara%etro. Se realizar el relleno *or la iz(uierda! derecha o
a%"os lados de*endiendo de la $uncin (ue utilice%os.
At56 Rat56 Atc56
Deuele la *osicin en la (ue se encuentra el carcter o cadena de caracteres es*eci$icado en el *ri%er
*ara%etro! dentro de la cadena incluida co%o se#undo! la *ri%era ez (ue lo encuentre o se#unda!
tercera! etc. Oalor este (ue de*ende del tercero de los *ara%etros. +a "s(ueda e%*ezar *or la iz(uierda!
AT&' o *or la derecha RAT&'> *ero el alor deuelto sie%*re ser la *osicin (ue e%*ieza *or la
iz(uierda.
Si (uere%os i#norar (ue las letras est)n en %a-usculas o %inusculas *ode%os utilizar AT+&'
Occurs56
Muestra el n%ero de eces (ue se encuentra un caracter o cadena de caracteres dentro de una cadena de
caracteres.
Stu''56
1KI
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
4er%ite sustituir una cadena *or otra. +os *ara%etros son0 cadena donde "uscar! *osicin donde e%*ezar
el ree%*lazo! nu%ero de caracteres ree%*lazados a *artir de ah. - cadena sustitutoria.

.anipulacin de 'ec>as
SET +ENTURP
Si esta en 8N *one el ao con cuatro di#itos - si esta en 833 *one el ao con 6 di#itos.
Da"56 .ont>56 " Pear56
Nos %uestra el d.a! %es - ao de una deter%inada $echa. Esta de"e%os incluirla dentro del *ar)ntesis. El
ao estar e/*resado con dos o cuatro d.#itos! de*ender del estado de SET +ENTURP.
2eeI56
Nos deuele la se%ana del ao a la (ue corres*onde el d.a de la $echa indicada entre *arentesis.
Do456
Muestra el d.a de la se%ana a la (ue corres*onde la $echa. El alor es nu%erico! corres*ondiendo *or
de$ecto el alor 1 al do%in#o! -a (ue to%a la secuencia se%anal an#losajona.
+do456 " +mont>56
En ez de deoler el n%ero del d.a o el %es! a*arecer su e(uialente en te/to! esto es! lunes! %artes o
a"ril! %arzo! ect.
Dm"56 " .d"56
Muestra la $echa con el %es en letras en el orden d.a! %es ao o %es d.a ao se#n la $uncin.
0omont>56
Muestra la $echa (ue corres*onder a la (ue se indi(ue entre *ar)ntesis su%ndole o restndole el n%ero
de %eses (ue se es*eci$i(uen en el se#undo de sus *ara%etros. Es %u- til! *or eje%*lo! cuando ha- *or
%edio en el calculo un ao "isiesto.
Bet4een56
Aun(ue no es una $uncin *ro*ia%ente de $echas! es til *ara aeri#uar si una deter%inada $echa! *ri%er
*ara%etro! esta entre otras dos! se#undo - tercer *ara%etro.
S"s5116
Deuele el n%ero de d.as (ue han *asado se#n el calendario juliano hasta la $echa (ue se indica en el
se#undo *ara%etro.
11K
Tutorial de Base de Datos I M.S.C. Alejandro Crdenas Nez
Date56 Time56 DateTime56
Deuelen res*ectia%ente! la $echa del siste%a! la hora! - la $echa - la hora juntas.
Sec56 .inute56 Four56
Corres*onde a los se#undos! %inutos - la hora de una aria"le $echahora.
111

You might also like