Professional Documents
Culture Documents
"95
Agenda
1. Una corta introduccin 2. Una DBMS or dentro !. A"#acena#iento $ organizacin de "os datos %. &os 'ndices (. )o#o se rocesa un Quer$ *. )oncurrencia + ,ransacciones $ -"oqueos
7"anas 8e"aciona"es 9-1eto:re"aciones 9rientadas a o-1etos ;M& 9rientadas a data <sin for#a=> e1e# "o+ &a ?e Datos grficos> es acia"es> etc. ...#uc2as otras or 0enir
Actua"#ente se genera #as infor#acin de "a que se uede a"#acenar 4 2tt +55tin$ur".co#5"?u0zd6 &a #a$or'a de esta data <no tiene for#a=> son fotos> 0ideos> ?e-> etc. Sin e#-argo a@n necesita#os guardar este ti o de datos+
#ost$re%&' es (n* 0*se ,e ,*tos )on (n* tr*1e)tori* m()ho m*s *nti$(* ,e l* q(e *p*rent*2 pioner* en l* implement*)i/n ,e 3*rios n(e3*s )*r*)ter4sti)*s en l*s -+56%.
2. .n* -+5% por ,entro #ost$re%&' tiene (n* *rq(ite)t(r* q(e in3ol()r* m()hos estilos2 en s( ni3el m*s *lto es (n esq(em* )l7si)o )liente-ser3i,or2 mientr*s q(e el *))eso * l* ,*t* es (n esq(em* en )*p*s.
8l 'i0pq es el respons*0le ,e m*nip(l*r l*s )om(ni)*)iones entre l* *pli)*)i/n )liente 1 el postm*ster (ser3i)io ,el #ost$re%&' en el ser3i,or). 8l ser3er est* )omp(esto por 2 $r*n,es s(0sistem*s2 el 9#ostm*ster: q(e es el respons*0le ,e *)ept*r l*s )om(ni)*)iones )on el )liente 1 *(tentifi)*r 1 ,*r *))eso. 8l 9#ost$re: se en)*r$* ,e l* *,ministr*)i/n ,e los q(er1s 1 )om*n,os en3i*,os por el )liente. #ost$re%&' tr*0*;* 0*;o el )on)epto ,e 9pro)ess per (ser:2 eso si$nifi)* (n solo pro)esos )liente por )one<i/n. T*nto el #ostm*ster )omo el #ost$re ,e0en est*r ;(nto en el mismo ser3i,or siempre. 8l %tor*$e 5*n*$er es respons*0le ,e l* *,ministr*)i/n $ener*l ,e *lm*)en*miento ,e los ,*tos2 )ontrol* to,os los tr*0*;os ,el 0*)=-en, in)l(i,o l* *,ministr*)i/n ,el 0(ffer2 *r)hi3os2 0loq(eos 1 )ontrol ,e l* )onsisten)i* ,e l* inform*)i/n.
". >lm*)en*miento 1 or$*ni?*)i/n ,e ,*tos '* ,*t* siempre se 3* * $(*r,*r en 9,is)o: (esto p(e,e no ser liter*lmente (n @-). 8sto $ener* (n intenso tr*0*;o ,e A/B2 )(*n,o leemos l* ,*t* l* s*)*mos ,el 9,is)o: p*r* p*s*rl* * l* 6>52 )(*n,o es)ri0imos l* 0*;*mos ,e l* 6>5 *l 9,is)o:.
". >lm*)en*miento 1 or$*ni?*)i/n ,e ,*tos '* ,*t* en )(*lq(ier -+5% se *lm*)en* en peq(eCos 0loq(es ,e ,is)o ll*m*,*s 9p7$in*s:. 8st7s 9p7$in*s: se $(*r,*n en (n ,is)o en ,iferentes posi)iones f4si)*s2 m()h* ,ispersi/n )re*r7 (n* 0*;* perform*n)e en l* ,0ms2 en sistem*s ,e *lm*)en*miento )omo los @- (ose* )*si el 99D) esto es (n $r*n pro0lem*. >fort(n*,*mente *hor* e<isten %ol()iones 0*s*,*s en -is)os ,e 8st*,o %oli,o q(e *1(,*n )on 8ste pro0lem*.
http://es.wi=ipe,i*.or$/wi=i/.ni,*,E,eEest*,oEsDC"D+"li,o
Disk head
Arm movement
Platters
Arm assembly
". >lm*)en*miento 1 or$*ni?*)i/n ,e ,*tos 7ostgreSQ& osee un so"o <Storage Manager= 4M$Sq" tiene ( o #s or e1e# "o6> este esta co# uesto or 0arios #du"os que ro0een ad#inistracin de "as transacciones $ acceso a "os o-1etos de "a -ase de datos. &os #du"os se rogra#aron -a1o ! "inea#ientos -ien c"aros+
Mane1ar transacciones sin necesidad de escri-ir cdigo co# "e1o de recu eracin en caso de ca'das. Mantener 0ersiones 2istricas de "a data -a1o e" conce to de <gra-a una 0ez> "ee #uc2as 0eces=. ,o#ar "as 0enta1as que ofrece e" 2ard?are es ecia"izado co#o #u"ti rocesadores> #e#oria no 0o"ti"> etc.
". >lm*)en*miento 1 or$*ni?*)i/n ,e ,*tos &os #du"os que co# onen e" Storage Manager son+ ,ransaction S$ste# 8e"ationa" Storage ,i#e Manage#ent )oncurrenc$ )ontro" $ ,i#esta# Manage#ent 8ecord Acces
7ostgreSQ& sie# re esta aadiendo data> "a data #odificada o -orrada rea"#ente no se #odifica o se -orra> "as ginas donde e""as estn a"#acenadas se #arca co#o <no 0isi-"e= $ se inserta un nue0o registro co# "eto con un c"on de toda "a data 4co#o se #ane1a esto en deta""e se e3 "ica #as ade"ante6. Esto 2ace que "a -ase de datos ocu e #uc2o es acio $ afecta e" <tie# o de acceso= a "a data.
E3iste un <tie# o de acceso= ara ""egar a "a data 4sea read o ?rite6 que de ende de+ ,ie# o de -@squeda de" 9S en #o0er "os -razos de" disco duro. ,ie# o de rotacin de "os discos ara que e" -razo encuentre "a osicin f'sica donde esta "a data. ,ie# o de transferencia de 85D de "a data de" disco a "a #e#oria. Ea$ que -uscar que reducir este tie# o ara que e" acceso a "a data sea #as r ido.
&a o eracin de Facuu# es i# ortante orque nos a$uda a #e1orar "a erfor#ance de" acceso a "a data $ "a o ti#izacin de" uso de es acio en disco. E" #Gtodo de" &az$ Facuu# es #s usado que e" Facuu# Hu"".
4. 'os 4n,i)es
)ada ti o de -@squeda tienen un ti o de 'ndice adecuado ara tra-a1ar"a> -sica#ente un 'ndice es un <arc2i0o= donde esta arte de "a data $ estructura de una ta-"a con "as <searc2 Ce$= de -@squeda. En si# "e co#o es un 'ndice+
k1 k2
kN
Index File
Page 1
Page 2
Page 3
Page N
Data File
4. 'os 4n,i)es
&a for#a c"sica es -uscar or e3tre#os $ #edios 4-@squeda -inaria6> ero esto 2ace que sea a"ta#ente costosa "a -@squeda> entonces es referi-"e organizar "os 'ndices en estructuras #as eficientes co#o "os r-o"es.
4. 'os 4n,i)es &a cantidad de e"e#entos en un nodo es de"i#itado or una constante redefinida> e3acta#ente no de-en 2a-er #as de 2 0eces e"e#entos que "a constante. &os nue0os e"e#entos son insertados en e" nodo que "e corres onda seg@n su 0a"or> en caso de que e" nodo 2a$a co ado su ca acidad #3i#a de e"e#entos entonces e" nodo se di0ide en 2 artes igua"es $ se crea una <2o1a= su erior con "os 'ndices a ro iados. 4e1e# "o se inserta e" e"e#ento %I6
4. 'os 4n,i)es Para borrar un elemento se realiza la bsqueda del mismo, al llegar al nodo que lo contiene se bloquea. El nodo se trabaja en memoria sacando el elemento a borrar y se reescribe totalmente el nodo, ocasionalmente el nodo queda con menos elementos la cantidad de la constante definida de elementos mximos.
4. 'os 4n,i)es
)aracter'sticas de "os 'ndices+ Seg@n "a estructura de ordena#iento de" #is#o+ ,ree:-ased 4Btree> 8tree6> 2as2:-ased> ot2er 4,searc226 Seg@n e" ordena#iento f'sico de "a data )"ustered 0s. Unc"ustered Jnde3es Seg@n "a asociacin con "a data + ri#ar$ 0s. secondar$ inde3es> #ane1o de du "icados Seg@n "a cantidad de co"u#nas que incor ore en "a <searc2 Ce$= Mu"ti: art Ce$ K <)o# osite Jnde3es=
4. 'os 4n,i)es
&a estructura de ordena#iento de" 'ndice nos dice que ti o de se"eccin so orta> en e" caso de 7ostgreSQ& tene#os "os siguientes + B:tree 4L> LK> K> MK> M $ #odificadores6 Eas2 4K $ sin so orte de NU&& data6 OiS, 4LL> PL> PM> MM> LLQ> PLQ> QPM> QMM> @M> L@> RK> PPS estos son o eradores ara datos geo#Gtricos6 OJN 4L@> @M> K> PPS estos son o eradores ara datos ti o arra$ $ ara <Hu"" ,e3t Searc2ing= dentro de docu#entos a tra0Gs de "e3e#as 2tt +55es.?iCi edia.org5?iCi5&e3e#a6
8tree fue descontinuado a fa0or de OiS,. &as -@squedas &iCe e i&iCe so"o usan B:tree si "a -@squeda o e" atrn en es fi1o a" inicio> osea "o usa si es C*mpo li=e Hp*tDH ero no "o usa si es C*mpo li=e HDp*tH.
4. 'os 4n,i)es
&os 'ndices <c"usterizados= o <no c"usterizados=. Un 'ndice c"usterizado es aque" donde "a data esta ordenada o cercana#ente ordenada f'sica#ente con "as entradas de "a data de" 'ndice Una ta-"a so"o uede estar c"usterizada so"o or un 'ndice> no #s. Son a"ta#ente a reciados en -@squedas or rangos> ero su costo de #anteni#iento es a"to de-ido a" reordena#iento que sie# re tiene que 2acerse a "a data.
4. 'os 4n,i)es
)&US,E8ED
UN)&US,E8ED
Data entries
Data entries
Data Records
Data Records
Una consu"ta si# "e+ se"ect firstna#e fro# friend ?2ere age K !!S T)o#o 2ace "a -ase de datos ara inter retar estoU
Esta arte es senci""a+ <E" c"iente ostgresq"= se co#unica con e" ser0icio de" < ost#aster= ara asar"e una cadena de te3to con e" quer$.
E" arser transfor#a e" equeo quer$ en una serie de instrucciones que "a -ase de datos ueda inter retar> or eso es i# ortante escri-ir quer$s inte"igentes.
5. Como se pro)es* (n &(er1 &uego asa or + .n i,entifi)*,or ,e re$l*s ,e q(e lo es)rito se* sint7)ti)*mente enten,i0le2 q(e los ,4$itos 1 los nImeros se*n re)ono)i0les. '(e$o se ,es)ompone 9p*l*0r*: * 9p*l*0r*: el q(er1 p*r* p*s*r * l* estr()t(r* q(e le )orrespon,e se$In el q(er12 en este )*so * l* estr()t(r* ,e (n 9sele)t:2 esto se 3e *s4:
E& ,raffic )o contiene a" contro"ador rinci a" de" roceso de" 7ostgreSQ&> ade#s se encarga de "as co#unicaciones entre e" 7arser> 9 ti#izer> E3ecutor $ 5co##ands functions. &os quer$s co# "e1os asan a" 8e?riter 4se"ect> insert> etc.6> "o que no> se asa a" Uti"it$ )o##ands> genera"#ente quer$s si# "es 4a"ter> create>0acuu#> etc.6
E" < "anner= es e" encargado de generar e" < "an de e1ecucin=> esto es esti#ar "a #e1or 0'a ara reso"0er e" quer$> #ane1a #ediante for#u"as #ate#ticas a0anzadas "a for#a de -@squeda de datos $ "a for#a de reso"0er "as re"aciones entre ta-"as. &uego que e" "anner a ca"cu"ado e" costo de todas "as osi-"es 0'as de o-tener "a data escoge cua" es e" #e1or $ se "o asa a" <E3ecutor=.
5to,os ,e 0Isq(e,*
%e)(en)i*l
An,e<*,*
E" <E3ecutor= to#a e" "an de e1ecucin que e" < "anner= "e entrega e inicia e" rocesa#iento> e1ecuta un < "an tree=. Este < "an tree= tiene 0arios nodos de e1ecucin que se 0an e1ecutando uno a uno $ de cada uno de e""os se o-tiene un set de datos 4tu "as6. &os nodos tienen su-nodos $ otros a su 0ez otros su-nodos> tantos co#o sea necesario.
E" contro" de concurrencia es e" que asegura que #uc2os usuarios uedan acceder a "a data a" #is#o tie# o. Sin e#-argo a" #is#o tie# o se roducen #uc2as o eraciones de 85D> estas o eraciones se conocen co#o transacciones. Ninguna transaccin de-e 0er e" resu"tado de otras transacciones inconc"usas> si esto no fuera as' estar'a#os "e$endo datos inconsistentes. Una transaccin uede inc"uir dentro de si #uc2as o eraciones en "a -ase de datos.
) onsistenc$+
es consistente. J so"ation+ "a transaccin es inde endiente de otras transacciones. A to#icit$+ todas "as acciones en "a transaccin se cu# "en o no se cu# "e ninguna. D ura-i"it$+ cuando "a transaccin ter#ina e" resu"tado de "a #is#a es erdura-"e.
)uando 2 transacciones tra-a1an so-re e" #is#o o-1eto $ a" #enos uno de e""os inc"u$e o eraciones de escritura entonces se roduce un <conf"icto=. )uando 2 transacciones 2acen e3acta#ente "o #is#o uede que sean <seria"izadas= ara o ti#izar e" acceso a "a data.
Antes de que una transaccin ueda e1ecutar un 85D so-re un o-1eto en "a d- de-e o-tener un <-"oqueo=.
Este -"oqueo uede ser )o# artido 4S2are6 o E3c"usi0o 4E3c"usi0e6> estos son ad#inistrador or un <&ocC Manager=. E3isten 0arios ti os de -"oqueos +
Si un -"oqueo to#a #uc2o tie# o en e1ecutarse entonces se roduce un Dead"ocC> e" siste#a "o #uestra co#o un ,i#eout. Un -"oqueo uede darse a una tu "a> una gina o una ta-"a co# "eta. E3iste una ta-"a de "ocCs> antes de e1ecutar uno nue0o se consu"ta esta ta-"a.
>$r*,e)imientos: >l3*ro @errer*2 ,es*rroll*,or ,el pro1e)to #ost$re%&' por l*s )orre))iones * este tr*0*;o.
#*r* leer m7s2 to,*s l*s referen)i*s 0i0lio$r7fi)*s 0*;o l*s q(e se hi?o est*s ,i*positi3*s est7n *q(4: http://tin1(rl.)om/19who m
Jr*)i*s por s( tiempo.