LUCIAN NELSON AGUIAR BARBOZA PORTFLIO INDIVIDUAL 3 SEMESTRE Listas lineares, aloca!es enca"ea"as, ACID, ORM, #anco "e "a"os relacionais co$ %ro&ra$a'o orienta"a a o#(etos, )erana e %oli*or$ is$o+ Ca$a,-'.RS /012
LUCIAN NELSON AGUIAR BARBOZA PORTFLIO INDIVIDUAL 3 SEMESTRE Listas lineares, aloca!es enca"ea"as, ACID, ORM, #anco "e "a"os relacionais co$ %ro&ra$a'o orienta"a a o#(etos, )erana e %oli*or$ is$o+ Tra#al)o a%resenta"o 3s "isci%linas Al&orit$os e Estr-t-ras "e Da"os, An4lise "e Siste$as, Se$in4rio III, Desen5ol5i$ento Orienta"o a O#(etos I e Banco "e Da"os II "a Uni5ersi"a"e Norte "o Paran4 . UNOPAR Pro*6s7+ 8 Ro#erto 9+ Nis)i$-ra Pol:anna Go$es S;r&io "e Goes Bar#o<a A"riane Lo%er An"r;a Z=$%ero
SUMRIO 1 I N T R O D U > ? O + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ / D E S E N V O L V I M E N T O + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ /+1 LISTAS LINEARES ++++++++++++++++++++ ++++++++++++++++++++ ++++++++++++++++++++ ++++++++++++++++++++ +++++++++++@ /+1+1 AIAO 6BAIRST IN AIRST OUTC7 ++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++@ /+1+/ AILO 6BAIRST IN LAST OUTC7 +++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++D /+1+2 TIPOS DE ALOCA>?O ++++ +++++++++++++++++++++++++++ +++++++++++++++++++++++++++ ++++++++++++++++++++++E /+/ TRANSA>FES EM BANCO DE DADOS G ACID+++++++++++++++++++++++++++++++++++++++++++++H /+2 BANCO DE DADOS RELACIONAIS VERSUS PROGRAMA>?O ORIENTADA A OBIETOS ++++++++ ++++++++++++++++++++++++++ ++++++++++++++++++++++++++ ++++++++++++++++++++++++++ ++++J /+2+1 ORM 6OBIECT RELATIONAL MAPPER7 +++++++++++++++++++++++++++++++++++++++++++ ++++++++++J /+2+/ KIB ER NAT E+++++ ++++++++ ++++++++ ++++++++ ++++++++ ++++++++ ++++++++ ++++++++ ++++++++ ++++++++ ++++++++ ++++++++ +++++L /+@ KERAN>A E POLIAORMISM O +++++++++++++++++++++++++ +++++++++++++++++++++++++++++ ++++++++++++++++++L 2 C O N C L U S ? O + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ REAERMNCIAS +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++12
2 1 INT RODUO Esta %ro"-'o teNt-al inter"isci%linar "o 2O se$estre "o c-rso "e An4lise e Desen5ol5i$ento "e Siste$as, te$ co$o o#(eti5 o a%licar e eNercitar os conteP"os assi$ila"os no %erQo"o a#or"an"o os "i5ersos conceitos, t;cnicas e %r4ticas "as listas lineares 6AIA O e AILO7, aloca!es si$%les$ente enca"ea"as e "-%la$ente enca"ea"as, conceitos "e ACID "e -$a transa'o, ORM, )erana e %oli*or$is$o, #e$ co$o a -tili<a'o "e #anco "e "a"os relacional co$ a %ro&ra$a'o orienta"a a o#(etos+
@ 2 DESENVOLVIMENTO /+1 LISTAS LINEARES Lista linear ; a estr-t-ra ,-e %er$ite re%resentar -$ con(-nto "e "a"os a*ins "e *or$a a %reser5ar a rela'o "e or"e$ linear "e se-s ele$entos+ R o con(-nto "e n S 0 nTs U1, U/, +++ Un, or&ani<a"os estr-t-ral$ente "e *or$a a re*letir as %osi!es relati5as "os $es$osV se n W 0, ent'o U1 ; o %ri$eiro nTV %ara 1 X Y X n, o nT UY ; %rece"i"o %elo nT UY.1 e se&-i"o "o UYZ1V te$os ta$#;$ Un co$o Plti$o nT e ,-an"o n S 0, "i<.se ,-e a lista ; 5a<ia+ ENe$%los "e listas lineares no coti"iano8 . Pessoas na *ila "e -$ #ancoV . Letras e$ -$a %ala5raV . Rela'o "e notas "os al-nos "e -$a t-r$aV . Itens e$ esto,-e e$ -$a e$%resaV . Dias "a se$anaV . Va&!es "e -$ tre$V . Pil)a "e %ratosV . Cartas "e #aral)o+ ENe$%los "e listas lineares e$ siste$as in*or$ati<a"os8 . Controle "e "oc-$entos %ara i$%ress'oV . Troca "e $ensa&e$ entre co$%-ta"ores n-$a re"eV . A-n!es rec-rsi5as e$ co$%ila"oresV . Mecanis$o "e "es*a<er[re*a<er "os e"itores "e teNtoV . Na5e&a'o entre %4&inas \e#V /+1+1 AIAO 6BAIRST IN AIRST OUTC7 O %ri$eiro ele$ento ,-e entro- ; o %ri$eiro a sair+ Ca"a ele$ento ar$a<ena -$ o- 54rios "a"os 6estr-t-ra )o$o&]nea o- )etero&]nea7 e -$ %onteiro %ara o %rTNi$o ele$ento, %er$itin"o o enca"ea$ento e a lineari"a"e+ Te$os as
D se&-intes o%era!es nesta estr-t-ra8 inserir na *ila, cons-ltar to"a a *ila, re$o5er e es5a<i4.la+ Nas *ilas as re$o!es acontece$ no %onteiro INICIO e as inser!es no %onteiro AIM+ Analo&ica$ente, i$a&ine$os -$a *ila "e es%era "e -$ #anco ,-al,-er, to"o cliente ,-e c)e&a ; %osiciona"o ao *inal "a *ila, e o %ri$eiro a ser aten"i"o se$%re ser4 o %ri$eiro "esta *ila "e es%era+ Ai&-ra 1 G es,-e$a "e *-nciona$ento "e -$a *ila AIAO Aonte8 ASCENSIO, Estr-t-ra "e Da"os, %4&+ 1L1 e 1L/ /+1+/ AILO 6BAIRST IN LAST OUTC7 O Plti$o ele$ento ,-e entro- ; o %ri$eiro a sair+ Ca"a ele$ento ar$a<ena -$ o- 54rios "a"os 6estr-t-ra )o$o&]nea o- )etero&]nea7 e -$ %onteiro %ara o %rTNi$o ele$ento, %er$itin"o o enca"ea$ento e a *or$a linear+ Te$os as se&-intes o%era!es nesta estr-t-ra8 inserir na %il)a, cons-ltar to"a a %il)a, re$o5er e es5a<i4.la+ Nas %il)as as re$o!es e inser!es acontece$ n-$ Pnico %onto, o TOPO+ Analo&ica$ente, %ense$os n-$a %il)a "e %ratos, on"e -$ no5o %rato ser4 se$%re coloca"o no to%o "a %il)aV %ara retirar$os -$ %rato, escol)e$os o "o to%o, o- se(a, o Plti$o %rato inseri"o+
E /+1+2 TIPOS DE ALOCA>?O SIMPLESMENTE ENCADEADAS U$a lista si$%les$ente enca"ea"a ; -$a s-cess'o "e nTs on"e ca"a nT a%onta %ara o %rTNi$o nT "a lista+ O nT ,-e %oss-ir o 5alor NULL no %onteiro %ara %rTNi$o ; o Plti$o nT "a lista+ R "e eNtre$a i$%ort^ncia ,-e se(a $anti"a -$a re*er]ncia %ara o %ri$eiro nT "a lista, caso esta re*er]ncia *or NULL, si&ni*ica ,-e a lista esta 5a<ia+ Ai&-ra 2 G aloca'o si$%les$ente enca"ea"a
H DUPLAMENTE ENCADEADAS S'o listas ,-e, al;$ "e ca"a ele$ento in"icar o ele$ento se&-inte, ta$#;$ in"ica$ a,-ele ,-e o antece"e, o- $el)or, ca"a ele$ento ; li&a"o ao se- s-cessor e ao se- %re"ecessor+ Ai&-ra @ G aloca'o "-%la$ente enca"ea"a K4 -$a ,-est'o ,-e en5ol5e %er*or$ance, *leNi#ili"a"e e re,-isitos "e aloca'o "e $e$Tria, relaciona"os co$ a o%'o ,-e *a<e$os %or -$a o- o-tra estr-t-ra "e "a"os+ No caso "a lista si$%les$ente enca"ea"a, os nTs s'o $enores 61 %onteiro %or "a"o ar$a<ena"o7, $as a *leNi#ili"a"e "e "esloca$ento entre os nTs ; $enor 6sT e$ -$ senti"o7 e $es$o a %er*or$ance %o"e ser $enor e$ o%era!es co$o a inser'o no *inal "a lista+ I4 as listas "-%la$ente enca"ea"as ir'o oc-%ar $ais $e$Tria 6/ %onteiros %ara ca"a "a"o7, $as s'o $-ito $ais *leNQ5eis e %o"e$ ser $ais e*icientes na e$ certas o%era!es 6%or eNe$%lo, na inser'o[re$o'o "o *inal "a lista7+ Portanto, co$o at-al$ente a a#-n"^ncia "e rec-rsos co$%-tacionais "e )ar"_are 6$e$Tria7 n'o ; -$ &ar&alo %ara "esen5ol5e"ores, consi"ero a aloca'o "-%la$ente enca"ea"a a $ais reco$en"a"a+ /+/ TRANSA>FES EM BANCO DE DADOS G ACID To"o siste$a &erencia"or "e #anco "e "a"os 6SGBD7 a%lica e$ se- *-nciona$ento o conceito "eno$ina"o ACID, -$ acr=ni$o ,-e re%resenta as ,-atro %ro%rie"a"es *-n"a$entais+ To"as as %ro%rie"a"es "e5e$ ser a%lica"as e$ s-a %lenit-"e, sen'o o SGBD n'o %o"er4 ser consi"era"o -$ siste$a "e 5er"a"e+ ATOMICIDADE8 "i<e$os ,-e -$a transa'o ; at=$ica %or,-e n'o ; "i5isQ5el e$ %artes, o- se(a, "e5e ser reali<a"a %or inteiro o- ent'o a#orta"a+ Por eNe$%lo, n-$a transa'o co$ o%era!es "e altera'o "e "a"os, "e5e$os c-$%rir to"as o- n'o reali<a$os nen)-$a "elas+
J CONSISTMNCIA8 no inQcio "e -$a transa'o, os "a"os ar$a<ena"os est'o to"os consistentesV ao concl-ir a transa'o, os "a"os "e5e$ %er$anecer consistentes, o- se(a, as re&ras "e ne&Tcio "e5e$ contin-ar a sen"o eNec-ta"as e c-$%ri"as+ ISOLAMENTO8 ; ta$#;$ con)eci"o co$o inte&ri"a"e "e transa!es, estas "e5e$ ser isola"as[Qnte&ras, o- se(a, "-as o- $ais transa!es concorrentes "e5e$ se&-ir "e $aneira isola"a -$a co$ as o-tras e as re&ras "e ne&Tcio "e5e$ ser c-$%ri"as "-rante a reali<a'o "as o%era!es na transa'o in"e%en"ente$ente "e eNistire$ $ais transa!es "e $aneira si$-lt^nea e, ao *inal "elas, esta inte&ri"a"e "e5e %er$anecer+ DURABILIDADE8 "e%ois "e reali<a"a e con*ir$a"a, -$a transa'o "e5e ser "-r45el, o- se(a, n'o %o"e "esa%arecer "o #anco se$ ,-e -$a o-tra transa'o reali<e esta o%era'o+ /+2 BANCO DE DADOS RELACIONAIS VERSUS PROGRAMA>?O ORIENTADA A OBIETOS Os siste$as "e #anco "e "a"os relacionais e as lin&-a&ens orienta"as a o#(etos consoli"ara$.se no $erca"o )4 $-ito te$%o+ Dois %ara"i&$as "i*erentes, $as ,-e t]$ ,-e con5i5er (-ntos, crian"o assi$ esta inco$%ati#ili"a"e se$^ntica entre os %ara"i&$as o#(eto[relacional+ Esta inco$%ati#ili"a"e %o"e ser sol-ciona"a -san"o #anco "e "a"os orienta"o a o#(etos, (4 "is%onQ5eis at-al$ente, no entanto, estes ain"a n'o s'o t'o e*icientes e "i*-n"i"os ,-anto os #ancos "e "a"os relacionais+ Portanto, %ara ,-e coeNista$ e$ -$ a$#iente "e "esen5ol5i$ento *oi ela#ora"a a ORM+ /+2+1 ORM 6OBIECT RELATIONAL MAPPER7 T;cnica "e "esen5ol5i$ento -tili<a"a %ara re"-<ir a i$%e"^ncia "a %ro&ra$a'o orienta"a a o#(etos -tili<an"o #ancos "e "a"os relacionais+ As ta#elas "o #anco "e "a"os s'o re%resenta"as atra5;s "e classes e os re&istros "e ca"a ta#ela s'o re%resenta"os co$o inst^ncias "as classes corres%on"entes+
L Co$ esta t;cnica, o %ro&ra$a"or n'o %recisa se %reoc-%ar co$ os co$an"os e$ lin&-a&e$ S`LV ele ir4 -sar -$a inter*ace "e %ro&ra$a'o si$%les ,-e *a< to"o o tra#al)o "e %ersist]ncia+ N'o ; necess4ria -$a corres%on"]ncia "ireta entre as ta#elas "e "a"os e as classes "o %ro&ra$a+ A rela'o entre as ta#elas on"e ori&ina$ os "a"os e o o#(eto ,-e os "is%oni#ili<a ; con*i&-ra"a %elo %ro&ra$a"or, isolan"o o cT"i&o "o %ro&ra$a "as altera!es 3 or&ani<a'o "os "a"os nas ta#elas "o #anco "e "a"os+ /+2+/ KIBERNATE O Ki#ernate *oi cria"o %or "esen5ol5e"ores Ia5a es%al)a"os ao re"or "o $-n"o, e li"era"o %or Ga5in ain&+ R -$ so*t_are li5re "e cT"i&o a#erto "istri#-Q"o co$ a licena LGPL+ Consiste e$ -$ *ra$e_orY %ara o $a%ea$ento o#(eto.relacional escrito na lin&-a&e$ Ia5a+ Este %ro&ra$a *acilita o $a%ea$ento "os atri#-tos entre -$a #ase tra"icional "e "a"os relacionais e o $o"elo o#(eto "e -$a a%lica'o, $e"iante o -so "e ar,-i5os 6UML7 %ara esta#elecer esta rela'o+ Se- o#(eti5o ; "i$in-ir a co$%leNi"a"e entre os %ro&ra$as Ia5a, #asea"o no $o"elo orienta"o a o#(eto, ,-e %recisa$ tra#al)ar co$ -$ #anco "e "a"os "o $o"elo relacional 6%resente na $aioria "os SGBDs7+ E$ es%ecial, no "esen5ol5i$ento "e cons-ltas e at-ali<a!es "os "a"os+ S-a %rinci%al caracterQstica ; a trans*or$a'o "as classes e$ Ia5a %ara ta#elas "e "a"os 6e "os ti%os "e "a"os Ia5a %ara os "a S`L7+ O *ra$e_or Y &era as c)a$a"as S`L e li#era o "esen5ol5e"or "o tra#al)o $an-al "a con5ers'o "os "a"os res-ltante, $anten"o o %ro&ra$a %ort45el %ara ,-ais,-er #ancos "e "a"os S`L, %or;$ ca-san"o -$ %e,-eno a-$ento no te$%o "e eNec-'o+ /+@ KERAN>A E POLIAORMISMO KERAN>A8 ; -$ %rincQ%io "e orienta'o a o#(etos, ,-e %er$ite ,-e classes co$%artil)e$ atri#-tos e $;to"os, atra5;s "e b)eranasb + Ela ; -sa"a na inten'o "e rea%ro5eitar cT"i&o o- co$%orta$ento &enerali<a"o o- es%eciali<ar
10 o%era!es o- atri#-tos+ O conceito "e )erana "e 54rias classes ; con)eci"o co$o )erana $Plti%la+ POLIAORMISMO8 ta$#;$ ori-n"a "a orienta'o a o#e(etos, %er$ite ,-e re*er]ncias "e ti%os "e classes $ais a#stratas re%resente$ o co$%orta$ento "as classes concretas ,-e re*erencia$+ Assi$, ; %ossQ5el tratar 54rios ti%os "e $aneira )o$o&]nea 6atra5;s "a inter*ace "o ti%o $ais a#strato7+ Caracteri<a. se %or "-as o- $ais classes "istintas e te$ $;to"os "e $es$o no$e, "e *or$a ,-e -$a *-n'o %ossa -tili<ar -$ o#(eto "e ,-al,-er -$a "as classes %oli$Tr*icas, se$ necessi"a"e "e tratar "e *or$a "i*erencia"a con*or$e a classe "o o#(eto+ U$a "as *or$as "e i$%le$entar o %oli$or*is$o ; atra5;s "e -$a classe a#strata, c-(os $;to"os s'o "eclara"os $as n'o s'o "e*ini"os, e atra5;s "e classes ,-e )er"a$ os $;to"os "esta classe a#strata+ Ai&-ra D G "ia&ra$a "e classes )erana e %oli*or$is$o Analisan"o o "ia&ra$a aci$a, te$os -$a s-%erclasse bMa$Q*erob, e as s-#classes bCac)orrob, bMacacob, bKo$e$b, ,-e b)er"a$b "e bMa$Q*erob+ Po"e$os "i<er ,-e Cac)orro b; -$b Ma$Q*ero, Macaco b; -$b Ma$Q*ero, Ko$e$ b; -$b Ma$Q*ero+ As caracterQsticas "e*ini"as na classe Ma$Q*ero, estar'o %resentes nas classes ,-e )er"a$ "ela+ To"os os Ma$Q*eros ter'o Ma$as e Pelos+ Isto ; Kerana+
11 Al;$ "isto, ca"a classe ,-e )er"a "e Ma$Q*ero %o"er4 ter se-s %rT%rios atri#-tos ,-e se so$ar'o aos "a s-%erclasse+ E note ,-e a classe Ko$e$ cont;$ -$a "e*ini'o "o atri#-to Pelos+ Dan"o -$a ra<'o lT&ica %ara nosso eNe$%lo, isto ; %or,-e o Ko$e$ te$ %elos "i*erentes "os o-tros $a$Q*eros+ Po"e$os %ortanto re."e*inir na s-#classe -$ atri#-to ,-e (4 esta5a %resente na s-%erclasse, "an"o a ele caracterQsticas "i*erentes+ Isto ; Poli$or*is$o8 o $es$o $;to"o o- atri#-to %o"e ter *-nciona$ento "i*erente e$ classes "i*erentes, $es$o ,-e -$a )er"e "a o-tra+
1/ 3 CONCLUSO Vi$os neste tra#al)o o ,-'o s'o i$%ortantes as estr-t-ras "e "a"os lineares e as %rinci%ais "i*erenas entre s-as "i5ersas *or$as conceit-ais+ Discorre$os so#re as %ro%rie"a"es ACID e s-a i$%ort^ncia %ara os SGBDs+ A#or"a$os a t;cnica ORM ,-e 5ia#ili<a o casa$ento entre #anco "e "a"os relacionais e %ro&ra$a'o orienta"a a o#(etos, "ois consa&ra"os %ara"i&$as "a co$%-ta'o e a%resenta$os -$a "as 54rias *erra$entas "e $erca"o, Ki#ernate+ Por Plti$o, trata$os "ois conceitos 5itais e$ orienta'o a o#(etos, )erana e %oli*or$is $o co$ a a(-"a "os "ia&ra$as "e classes+ Aoi #astante %ra<eroso e &rati*icante %o"er trans*or$ar e$ -$ "oc-$ento %r4tico e o#(eti5o to"os os conceitos $inistra"os no 2O %erQo"o "o c-rso "e An4lise "e Siste$as "a UNOPAR e ter a certe<a "e ,-e os $es$o nos a(-"ar'o e$ nossas carreiras *-t-ra$ente+
12 REFERNCIAS ASCENSIO, Ana Aernan"a Go$es+ Estrutura ! Da"s 8 al&orit$os, an4lise "a co$%leNi"a"e e i$%le$enta!es e$ Ia5a e C[CZZ+ S'o Pa-lo8 Pearson Prentice Kall, /010+ NISKIMURA, Ro#erto 9-Yio+ #a$%" ! Da "s II 8 siste$as+ S'o Pa-lo8 Pearson Prentice Kall, /00L+ \IaIPEDIA8 )tt%8[[%t+_iYi%e"ia+or&[_iYi[Ma%ea$entoco#(eto.relacional Orienta"or Pe"ro Pe"reira8 )tt%s8[[sites+&oo&le+co$[site[orienta"or%e"ro%ereira[Ko$e[*-n"a$entos."e. orientacao.a.o#(etos.e.-$l["ia&ra$as."e.classes