You are on page 1of 12

LKRHNIKI FKUL

UNIVRZI ISN SRVO

Rad sa velikim objektima,


uvanje u bazi podataka i obrada
DOMAA ZADAA 1

dsk: RI
Prdmt: Softverski alati baza podataka
Studnt:

ntr:

Dragutin Avdalovi

Sran Nogo

Broj indeksa: 1381


Istn Srv, mart 2016. godine

SADRAJ:
1.

UVOD...........................................................................................................................................3

2.

TA SU VELIKI OBJEKTI..........................................................................................................4

3.

EKSTERNI VELIKI OBJEKTI....................................................................................................6

4.

ZATO SE KORISTE VELIKI OBJEKTI...................................................................................7

5.

ZATO NE KORISTITI LONG ..................................................................................................9

6.

ZAKLJUAK.............................................................................................................................10

7.

IZVORI.......................................................................................................................................10

UVOD

Aplikacioni podaci u bazama postaju vei s obzirom da su digitalni mediji sve vie prisutni u
dananjim aplikacijama. Takoe , sve vea popularnost veb servisa i drugih mrenih aplikacija znai da
sistemi koji su nekada uvali statike arhive zavrenih podataka sada moraju da se prilagode
uestalijim promjenama verzija aplikacionih podataka naporedo sa njihovih kreiranjem ili izmjenama.
Umjesto stalnog auriranja ovih objekata, baza podataka uva vie verzija nekog objekta ( V ili
WebDAV znai kontrolu verzija), ili jednostavno vri kompletnu zamjenu ( kao npr. u SharePoint
Team servisima). Dizajneri aplikacija imaju izbor izmeu uvanja velikih objekata u formatu fajlova u
fajl sistemu, kao BLOB ( binary large objects) u bazi podataka, ili kao kombinaciju oba navedena
naina. Obino se odluka dizajnera zasniva na tome koju tehnologiju dizajner koristi ili najbolje
poznaje. Veina dizajnera e rei da je baza najbolje reenje za male binarne objekte a da su fajlovi
najbolji za velike objekte. Zanimljiv zakljuak je da je fragmentacija skladita najvei faktor kad je u
pitanju odluka izmeu falj sistema i baze podataka.
Veliki binarni podatak ( Binary Large Object BLOB ) je kolekcija binarnih podataka sauvanih
kao jedan entitet u sistemu za upravljanje bazom podataka ( DBMS ). BLOB-ovi su tipino slike, audio
ili drugi multimedijalni objekti , iako je ponekad binarni izvrni (executable) kd sauvan kao BLOB.
Podrka baze podataka za BLOB-ove nije univerzalna. Blobiranje (Blobbing) je originalno znailo
pomjeranje velikih koliina podataka iz jedne baze podataka u drugu bez filtera i provjere greaka. Ovo
je brz proces zato to ostavlja odgovornost za provjeru greaka i filtriranje novom korisniku podataka.
Termin je nastao kao slika nekoga koji uzima pune ake materijala iz jednog kontenjera i stavlja ga u
drugi kontenjer bez obraanja panje na to ta je bilo u blob-u koji je ugrabio.
Ovaj tip podataka i definicija je uvedena da se opie podatak koji nije originalno definisan u
sistemima baza podataka, prije svega jer je bio prevelik da se sauva praktino u vrijeme kada je prvi
put definisana veliina polja sistema baza podataka u 1970-im i 1980-im. Tako da je ovaj tip podataka
postao praktian tek kada je prostor na disku postao jeftin.

2. TA SU VELIKI OBJEKTI
Veliki objekti (LOBs) su kolekcije podataka koje su dizajnirane za uvanje velikih koliina
podataka. LOB moe moe uvati do maksimalne veliine u rasponu od 8 terabajta (TB) do 128
terabajta u zavisnosti od toga kako je baza podataka konfigurisana. uvanje podataka u velikim
objektima (LOBs) omoguuje nam da efikasno pristupimo i manipuliemo podacima u naoj aplikaciji.
Razliite vrste velikih objekata (LOBs) mogu biti sauvane u bazi podataka ili u eksternim fajlovima.
Veliki objekti u bazi podataka se nekad nazivaju interni veliki objekti (internal LOBs) ili interni
perzistentni veliki objekti(internal persistent LOBs).
Interni veliki objekti
Interni veliki objekti u bazi podataka se uvaju unutar tabela baze podataka na nain koji
optimizuje prostor i omoguava efikasan pristup. Sledei SQL tipovi podataka su podrani za
deklarisanje internih velikih objekata: BLOB, CLOB i NCLOB. Tabela 1 opisuje svaki tip velikog
objekta podran od strane baze podataka i opisuje nain na koji se svaki tip tipino koristi. Imena
tipova podataka su imena koja su SQL tipovi podataka podrani od strane baze. Takoe, treba primjetiti
da je izraz LOB generalno korien da se ukae na set svih tipova velikih objekata.

Tabela 1 - Tipovi velikih objekata


SQL tip podatka

Opis

BLOB

Binary Large Object


uva bilo koji tip podatka
u binarnom
formatu.Tipino se koristi
za multimedijalne
podatke kao to su slike,
audio i video.

CLOB

Character Large Object


Skladiti podatke tipa
string u formatu seta
znakova baze
podataka.Koristi se za
velike stringove ili za
dokumente koji koriste
specifian set znakova
baze podataka. Karakeri
u setu znakova baze
(character set) su u
formatu fiksne duine.

NCLOB

National Character Set


Large Object
Skladiti podatke tipa
string u formatu
Nacionalnog seta baze
podataka (Nacional
Character Set).Koristi se
za velike dokumente ili
stringove u formatu
Nacional Character
Set.Podrava
promjenljive irine
podataka.

BFILE

External Binary File


Binarni fajl koji se uva
izvan baze podataka u
fajl sistemu korisnika
pod podrkom
operativnog sistema, ali
je pristupaan iz tabela
baze podataka. BFILE je
pristupaan iz aplikacije
samo na read-only

nain.BFILE se koristi za
uvanje statikih
podataka, kao to su
slike, koje ne moraju
podlijegati promjenama
u aplikaciji.
Bilo koji tip podataka fajl
operativnog sistema, se
moe uvati u BFILE.
Npr. , moe se uvati
podatak tipa karakter u
BFILE i po potrebi
uitavati iz BFILE u CLOB
specificirajui karakter
set pri uitavanju.

Perzistenti i privremeni veliki objekti


Interni veliki objekti (veliki objekti u bazama podataka) mogu biti ili perzistentni ili privremeni.
Perzistentni veliki objekti su instance koje postoje u redovima tabela baze podataka. Privremeni veliki
objekti su instance koje su kreirane kada se instancira LOB (veliki objekat) samo u okviru djelokruga
lokalne aplikacije. Privremena instanca postaje perzistentna instanca kada ubacimo instancu u red
tabele.
Perzistentni LOB-ovi koriste semantiku kopiranja i uestvuju u transakcijama baze podataka.
Oni se mogu rekonstruisati tokom transakcije ili pada medija, i bilo koje promjene vrijednosti
perzistentnih velikih objekata mogu biti izvrene ili vraene na staru vrijednost ( roll back). Drugim
rijeima, sva osobine Atominosti Konzistencije Izolacije Trajanja (Atomicity Consistency Isolation
Durability (ACID)) koje se odnose na korienje objekata baze podataka odnose se i na korienje
perzistentnih velikih objekata.

3. EKSTERNI VELIKI OBJEKTI

Eksterni veliki objekti su objekti podataka koji se uvaju u fajlovima operativnog sistema, izvan
tabela baze podataka. Baza podataka pristupa eksternim velikim objektima koristei SQL tip podataka
BFILE. BFILE tip podataka je jedini eksterni LOB tip.
BFILE su read-only tipovi podataka. Baza podataka dozvoljava read-only tok bajtova za pristup
podataka u BFILE-u. Nije mogue upisivati u BFILE u okviru aplikacije. Baza podataka koristi
referentnu semantiku sa BFILE kolonama. Podaci sauvani u koloni tabele tipa BFILE, su fiziki
locirani u fajlu operativnog sistema, a ne u prostoru tabele baze podataka.

BFILE-ovi se tipino koriste za uvanje:

Binarnih podataka koji se ne mijenjaju dok se aplikacija izvrava, kao to je grafika.


Podataka koji su uitani u drugi veliki tip objekta, kao to je BLOB ili CLOB gdje se kasnije
moe manipulisati sa njima.
Podataka koji su prikladni za tok-bajtova (byte-stream) pristup, kao to je multimedija.
Read-only podatka koji su relativno veliki, da bi se izbjeglo zauzimanje velikog prostora u
tabelama baze.

Bilo koji ureaj za skladitenje kome se pristupa preko operativnog sistema moe uvati BFILE
podatke, ukljuujui hard diskove, CD-ROM-ove, DVD-eve itd. Baza moe pristupiti BFILE-u pod
podrkom operativnog sistema koji porava strim-nain pristupa fajlovima OS-a. Eksterni veliki objekti
ne uestvuju u transakcijama. Svaka podrka za integritet i izdrljivost mora biti obezbjeena od strane
osnovnog fajl sistema koji je pod upravljanjem OS-a.

Uvod u LOB lokatore


Instanca velikog objekta ima lokator i vrijednost. LOB lokator je referenca na lokaciju gdje je
LOB vrijednost fiziki sauvana. LOB vrijednost je podatak sauvan u velikom objektu.
Kada se koristi vrijednost velikog objekta u operaciji kao to je prosljeivanje velikog objekta kao
parametra, zapravo se prosljeuje LOB lokator. Uglavnom se moe raditi sa instancom velikog objekta
u aplikaciji bez potrebe da vodimo rauna o semantici LOB lokatora. Nema potrebe da se vri
dereferenciranje LOB lokatora, kao to je to sluaj sa pokazivaima u nekim programskim jezicima.
Postoje razlike u semantici lokatora za LOB tipove BLOB, CLOB i NCLOB na jednoj strani , i
semantici lokatora za BFILE tip na drugoj strani:

Za LOB tipove BLOB, CLOB i NCLOB, kolona velikog objekta uva lokator LOB vrijednosti. Svaka
instanca velikog objekta ima svoj jedinstveni LOB lokator kao i jedinstvenu kopiju LOB vrijednosti.
Za inicijalizaciju BFILE kolona, red uva lokator na eksterni opertivni sistem koji uva vrijednost
BFILE-a. Svaka BFILE instanca u dodjeljenom redu ima svoj jedinstveni lokator, meutim, dva razliita
reda mogu sadravati BFILE lokator koji ukazuje na isti fajl operativnog sistema.

Bez obzira na to gdje je vrijednost velikog objekta sauvana, lokator je sauvan u redu tabele bilo koje
inicijalizovane LOB kolone. Takoe, kada se veliki objekat selektuje iz tabele, LOB koji je preuzet je
uvijek privremeni LOB.

Semantika baze podataka za Interne i Eksterne velike objekte


U svim programskim okruenjima, semantika baze podataka se razlikuje izmeu internih
velikih objekata i eksternih velikih objekata kao to je dole navedeno:

Interni veliki objekti koriste semantiku kopiranja


Sa semantikom kopiranja, LOB lokator i LOB vrijednost se logiki kopiraju prilikom insert, update ili
operacije dodjele. Ovo osigurava da svako polje tabele ili svaka varijabla koja sadri LOB, uva
jedinstvenu LOB instancu.

Eksterni veliki objekti koriste semantiku referenciranja


Sa semantikom referenciranja, samo LOB lokator se kopira tokom insert operacije. Vano je primjetiti
da se update operacije ne primjenjuju na eksterne velike objekte s obzirom da se oni read-only tip
objekata.

4. ZATO SE KORISTE VELIKI OBJEKTI


Ova sekcija uvodi razliite tipove podataka koji se mogu sresti pri razvoju aplikacija i
objanjava koje vrste podataka su pogodne za velike objekte.
U dananjem svijetu, aplikacije se moraju susretati sa sledeim tipovima podataka:

Jednostavno strukturisani podaci


Ovi podaci mogu biti organizovani u proste tabele ija je strukura bazirana na poslovnim
pravilima.

Kompleksno strukuturisani podaci


Ovaj tip podataka je kompleksan po prirodi i namjenjen je za objektno-relaciono osobine
Oracle baza podataka kao to su kolekcije, reference i korisniko definisani tipovi.

Polu-strukturisani podaci
Ova vrsta podataka ima logiku strukturu koja nije tipino protumaena od strane baze. Npr. ,
XML dokument koji je procesiran od strane aplikacije ili eksternog servisa, moe biti zamiljen
kao polu-strukturisani tip podatka. Baza podrava tehnologije kao to su Oracle XML DB,
Advanced Quering i Messages za pomo aplikaciji pri radu sa polu-strukturisanim podacima.

Nestrukturisani podaci
Ovaj tip podataka nije razdvojen na male logike strukture i nije tipino protumaen od strane
baze podataka ili od strane aplikacije. Slika koja je sauvana kao binarni fajl je primjer
nestrukturisanog podatka.

Veliki objekti su pogodni za bar dva tipa ovih podataka: polu-strukturisane podatke i nestrukturisane
podatke. Osobine velikih objekata omoguavaju da se skladite ove vrste podataka u bazi kao i u
fajlovima operativnog sistema kojima se pristupa preko baze.
Sa porastom interneta i aplikacija bogatih sadrajem, naglasak se stavlja na to da baze :

Mogu uvati nestrukturisane i polu-strukturisane podatke na efikasan nain.


Budu optimizovane za velike koliine podataka.
Omoguavaju unoforman nain za pristup podacima unutar baze podataka ili izvan nje.

Korienje velikih objekata i polu-strukturisanih tipova podataka

Primjeri polu-strukturisanih tipova podataka ukljuuju dokument fajlove kao to su XML


dokumenti ili word proccesor fajlovi. Ove vrste dokumenata uvaju podatke u logikoj strukturi koja je
procesirana ili interpretirana od strane aplikacije, i nije razdvojena na male logike jedinice kada se
uva u bazi.

Aplikacije koje koriste polu-strukturisane podatke tipino koriste velike koliine karakter podataka.
Character Large Object (CLOB) i National Character Large Object (NCLOB) tipovi podataka su
idealni za uvanje i manipulaciju ovakvih vrsta podataka.
Binary File Objects (BFILE) tipovi podataka takoe mogu da uvaju podatke u obliku karaktera.
BFILE-ovi se mogu koristiti za uitavanje read-only podataka iz fajlova operativnog sistema u CLOB
ili NCLOB instance sa kojima se moe manipulisati u aplikaciji.

Korienje velikih objekata za uvanje nestrukturisanih podataka


Nestrukturisani podaci se ne mogu dekompresovati u standardne komponente. Npr. , podaci o
zaposleniku mogu biti strukturisani u ime, koje se uva kao string, identifikator, kao ID broj, platu itd.
Fotografija , u drugu ruku, se sastoji od velikog strima jedinica i nula. Ovi bitovi se koriste da se pikseli
upale ili ugase da bi se vidila slika na displeju, ali se ne mogu razdvojiti na ma kakve manje strukture
za uvanje u bazi.
Takoe , nestrukturisani podaci kao to su tekst, grafike slike, video klipovi, formati zvuka tee da
budu veliki. Tipini zapis zaposlenika moe biti veliine do nekoliko stotina bajtova, dok ak i male
koliine multimedijalnih podataka mogu biti hiljadu puta vee.
SQl tipovi podataka koji su idealni za velike koliine nestrukturisanih binarnih podataka ukljuuju
BLOB tip podataka ( Binary Large Object) i BFILE tip podataka ( Binary File Object).

5. ZATO NE KORISTITI LONG


Baza podataka podrava LONG tip podataka isto kao i tipove velikih objekata (LOBs). Kada je
to mogue, u vaoj aplikaciji zamjeniti korienje LONG tipova podataka sa velikim objektima jer u
optem sluaju to prua mnoge pogodnosti. LONG-u-LOB migracija omoguava da jednostavno
prebacimo postojeu aplikaciju koja pristupa LONG kolonama, da koristi LOB kolone.
Aplikacije koje koriste Oracle bazu podataka verziju 7 ili ranije, koriste LONG ili LONG RAW
podatke za uvanje velkih koliina nestrukturisanih podataka.

10

Sa Oracle8 i kasnijim verzijama baza, korienje LOB tipova podataka se preporuuje za skladitenje
velikih koliina strukturisanih i polu-strukturisanih tipova podataka. LOB tipovi imaju nekoliko
prednosti u odnosu na LONG I LONG RAW tipove ukljuujui:

LOB kapacitet: Veliki objekti mogu uvati veoma vee koliine podataka. Veliki objekti mogu
uvati 4 GB podataka ili vie u zavisnosti od konfiguracije sistema. LONG i LONG RAW
tipovi su ogranieni na 2 GB podataka.
Broj LOB kolona u tabeli: Tabela moe imati vie LOB kolona. LOB kolone u tabeli mogu biti
bilo koga LOB tipa. U Oracle baze Release 7.3 i vie, tabele su ograniene na jednu LONG ili
LONG RAW kolonu.
Sluajan pametni-komad pristup: LOB podrava sluajan pristup podacima, a LONG podrava
samo sekvencijalni pristup.
Veliki objekti mogu biti takoe i atributi objekta.

6. ZAKLJUAK
Oracle Multimedia koristi LOB tipove podataka da kreira baze specijalizovane za korienje u
multimedijalnim aplikacijama kao to su Multimedia ORDAudio, ORDDoc, ORDImage, i ORDVideo.
Oracle Multimedia koristi infrastrukturu baze podataka da definie tipove objekata, metode, i velike
objekte neophodne za reprezentaciju ovih specijalizovanih tipova podataka u bazi.
Sa naglim rastom Interneta i aplikacijama bogatim sadrajem, naglasak se stavlja na baze podataka
koje podravaju tipove podataka koje ispunjavaju sledee:

Mogu uvati nestrukturisane podatke


Optimizovane su za velike koliine takvih podataka
Omoguavaju jedinstven nain za pristup velikim nestrukturisanim podacima unutar baze ili
spolja

Preporuuje se korienje Performance Management-a za baze koje podravaju Binary Large Objects
(BLOB), koje pod raznim uslovima, uvaju oboje i prostor za skladitenje i transakciono vrijeme
procesiranja. Dokazano je da za aplikacije koje koriste baze podatka gdje ad hoc upiti preuzimanja
preovladavaju, uvanje vrijednosti BLOB-ova u bazi podataka je moda najbolji izbor da se postignu
11

bolje performanse, dok je uvanje BLOB-ova eksterno najbolji pristup kada viestruke
Delete/Insert/Update operacije na BLOB-u dominiraju.

7. IZVORI
Izvori na Internetu:
Oracle Help Center:
https://docs.oracle.com/cd/B28359_01/appdev.111/b28393/adlob_intro.htm

Knjige:
Michael Shapiro University of Maryland at Baltimore County, Boeing IS at NASA
GSFC Ethan Miller University of Maryland at Baltimore County: Managing Databases
with Binary Large Objects, https://users.soe.ucsc.edu/~elm/Papers/mss99.pdf
Russell Sears2, Catharine van Ingen1, Jim Gray11: Microsoft Research, 2: University of
California at Berkeley: To BLOB or Not To BLOB : Large Object Storage in a Database
or a Filesystem?, April 2006

12

You might also like