1 / 25

Fizična organizacija podatkov

Fizična organizacija podatkov. Razpored zapisov v datoteki (zapis  vrstica tabele) zapisi spremenljivega formata število in tip zapisov ni vnaprej znan redko pri PB, saj konceptualna in notranja shema narekujeta format zapisa

nira
Télécharger la présentation

Fizična organizacija podatkov

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Fizična organizacija podatkov Razpored zapisov v datoteki (zapis  vrstica tabele) • zapisi spremenljivega formata • število in tip zapisov ni vnaprej znan • redko pri PB, saj konceptualna in notranja shema narekujeta format zapisa • nanaša (pojavlja) se pri pol-strukturiranih podatkih kot je XML (znotraj zapisov je zajet tudi format zapisa, t.i. ‘self describing’ data) • zapisi fiksnega formata (naš fokus!) • format zapisa je znan vnaprej (zapisan je v notranji shemi) • ločimo: • zapise, ki imajo polja fiksne dolžine ali • zapise, ki imajo polja spremenljive dolžine

  2. Izhodišče:logična datoteka = možica zapisov istega tipa • zapis – skupina podatkovnih elementov, s katerimi opišemo posamezno dejstvo • podatkovni element - najmanjši del podatkov, ki ga ne moremo razstaviti na dva ali več delov, ne da bi pri tem izgubili pomen (ime, datum rojstva, ..) • istovrstna dejstva predstavljamo z enako oblikovanimi zapisi, ki pripadajo določenemu tipu zapisa • tip zapisa – formalizem, ki ga moramo poznati pri branju in oblikovanju zapisov; s tipom zapisa predstavimo: • strukturo zapisa(kateri podatkovni el. sestavljajo zapis) • vrsto in obliko podatkovnih elementov, ki sestavljajo zapise (kakšni so podatkovni elementi, ki sestavljajo zapis)

  3. logična datoteka

  4. Predstavitev podatkovnih elementov • integer (2 bytes); primer 35= • boolean – primer: FALSE TRUE • real, float - n bitov za osnovo; m za eksponent • datum – primer: • Integer (število dni od 1. 1. 1900) • 8 znakov (DDMMLLLL) • čas – primer: • Integer (število sekund od polnoči) • 6 znakov (uummss) • datum & čas – realna števila • znaki – ASCII, Scan Code, Unicode, … - primer (8-bitni ASCII): • A • a • LF

  5. Delitev zapisov glede na strukturo: • zapisi nespremenljivedolžine – primer: rojstni podatki • zapisi spremenljive dolžine- dopustno je ponavljanje posameznih podatkovnih elementov /denimo ponavljanje opravljanja izpitov :)/ v enem zapisu lahko predstavimo več dejstev hkrati – primer: podatki o opravljanju izpitov

  6. Tip zapisa z nespremenljivo dolžino • <ime_tipa_zapisa> • služi za identifikacijo tipa; • z njim poimenujemo tudi logično datoteko, ki jo zapisi tega tipa sestavljajo tip <ime_tipa_zapisa> = (<ime pod el 1>:<tip_1>, <ime_pod_el_2>: tip_2>, ..... <ime_pod_el_n>:<tip_n>) • <tip_pod_el> • podaja način kodiranja in velikost pomnilnega prostora, ki ga pod. el. zaseda (znakovni(n), celoštevilčni, realni, ...) Primer: tip rojstva = ( ime: znakovni(10), datum : datumski, kraj: znakovni(20)) • <ime_podatkovnega_elementa> • služi za sklicevanje na podat. elemente v zapisih in za predstavitev strukture zapisov

  7. Tip zapisa s spremenljivo dolžino • spremenljivost dolžine povzročajo ponavljajoči se podatkovni elementi znotraj enega zapisa • ponovljivost predstavimo z uporabo zavitih oklepajev tip <ime_tipa_zapisa> = (<ime_pod_el_1> : <tip_1>, {<ime_pod_el_2> : <tip_2>, {<ime_pod_el_3> : <tip_3>}}, <ime_pod_el_4> : <tip_4>) Primer: tip izpit = ( ime_dijaka : znakovni(10), { predmet : znakovni(3), ocena : celoštevilski})

  8. zapisa =podatkovni element(i), na osnovi katerih je možna enolična identifikacija posameznih zapisov • dejstva morajo biti predstavljena z zapisi tako, da lahko njihove predstavitve ločimomed seboj ključ= <ime_pod_el_1>,..<ime_pod_el_m>):<vrsta_ključa> vrste ključev: • razločevalni(v datoteki ne smeta obstajati dva zapisa z enako vrednostjo ključa) – EMŠO, davčna številka • nerazločevalni -priimek • pri nekaterih vrstah fizičnih datotek ključ zapisa predstavlja osnovo za urejanje zapisov

  9. Logična datoteka  Fizična datoteka • logična datoteka • obstaja le kot koncept • nima neposredne fizične predstavitve • zapisi logičnih datotek sshranjujejo s pomočjo blokov fizičnih datotek • povezava med logičnimi in fizičnimi datotekami je preslikava: LD -> FD; • možnosti za preslikavo: • 1:1 • M:1 (MSAccess) • 1:M (Paradox) • M:N

  10. Preslikava logični zapis  fizični zapis logični zapisi – zapisi logičnih datotek – shranjujejo se v blokih fizičnih datoteke s pomočjo fizičnih zapisov struktura fizičnega zapisa: • je lahko enaka strukturi logičnega zapisa • je razširjena z meta podatki (kazalci, števci ponovljivosti podatkovnih elementov) • obsega le del podatkovnih elementov logičnega zapisa (logični zapis je predstavljen z dvema ali več fizičnimi zapisi)

  11. logični zapis nespremenljive dolžine fizični zapisnespremenljive dolžine logični zapis spremenljive dolžine 2.1. fizični zapis spremenljive dolžine: pred ponavljajočimi podatkovnimi elementi oziroma skupinami ponovljivih podatkovnih elementov dodamo števce ponovljivosti tip <ime_tipa_zapisa> = (<ime_pe1> : <tip_1>, <števec_1> {<ime_pe2> : <tip_2>, <števec_2> {<ime_pe3> : <tip_3>}}, <ime_pe4> : <tip_4>) tip <ime_tipa_zapisa> = (<ime_pe1> : <tip_1>, {<ime_pe2> : <tip_2>, {<ime_pe3> : <tip_3>}}, <ime_pe4> : <tip_4>)

  12. 2.2. fizični zapis nespremenljive dolžine: 2.2.1.  ponavljajo se celotni zapisi 2.2.2.  uporabimo povezovanje zapisov s kazalci tip <FZ1> = (<ime_pe1> : <tip_1>, K1 : kazalec, <ime_pe3> : <tip_3>) tip <ime_tipa_zapisa> = (<ime_pe1> : <tip_1>, {<ime_pe2> : <tip_2>}, <ime_pe3> : <tip_3>) tip <FZ2> = (<ime_pe2> : <tip_2>, K2 : kazalec) primer ponavljanja celotnih zapisov

  13. primer uporabe kazalcev Del logičnega zapisa, ki je fiksne dolžine + kazalec na del zapisa spremenljive dolžine Del logičnega zapisa, ki je spremenljive dolžine + kazalec na ostanek zapisa

  14. Zapisi s podatkovnimi elementi fiksne dolžine => fizični zapis nespremenljive dolžine • dolžine in offseti (odmiki) podatkovnih elementov so konstantni, to lahko vnaprej izračunamo iz sheme • primer: CREATE TABLE Oseba (Sifra INT, Ime CHAR(10), Priimek CHAR (10)); // predpostavimo, da je int 4 bytno celo število Ime Priimek Sifra Zapis tabele Oseba

  15. Shranjevanje zapisov nespremenljive dolžine v fizične bloke • posamezen fizičniblok razdelimo na enako velika polja • dolžina polj je prilagojena dolžini zapisov • fizičnega bloka (največkrat) ni mogoče razdeliti na polja brez ostanka v bloku ostane tudi nekaj neizkoriščenega prostora • to jefiksna delitev(relativne lege polj v vseh blokih so enake)

  16. Zapisi s podatkovnimi elementi spremenljivke dolžine => fizični zapis spremenljive dolžine • Dolžin in odmikov podatkovnih elementov ne moremo izračunati iz sheme ( so ‘nepredvidljivi’) • Več možni pristopov • Pomembno: vsa polja (podatkovne elemente) spremenljive dolžine postavi na konec zapisa! • primer: CREATE TABLE Oseba (Sifra INT, Ime VARCHAR(10), Priimek VARCHAR (10)); • Pristop 1: uporabi ločila med pod. elementi • Pristop 2: uporabi tabelo odmikov

  17. Fizični zapisi spremenljive dolžine (nad.) • Spreminjanje podatkov, če se s tem spreminja tudi dolžina podatkovnega elementa, je zahtevno • Razvrstitev (postavitev) zapisov v komercialnih DB • DB2, SQL Server, Informix, Sybase inačice uporabljajo tabele odmikov (DBMS v fiksni del zapisa shrani offset in dolžino polj spremenljive dolžine, odmik kaže na začetek polja v delu zapisa, ki je spremenljive dolžine) • Oracle: zapisi so strukturirani tako, kot da bi bila vsa polja potencialno spremenljive dolžine (zapis je zaporedje: (dolžina,podatki) parov, pri čemer posebna vrednost dolžine opredeljuje NULL vrednost) • Podatkovni elementi tipa LOB (large objects) – slike, glasba, … CREATE TABLE Oseba (Sifra INT, Ime CHAR(10), Priimek CHAR (10), Slika BLOB(32000)); • DBMS samodejno shrani LOB podatek na neko ‘drugo’ mesto, ta postopek je uporabniku neviden; konceptualno gledano, DBMS razdeli tabelo na dva dela: Oseba (Sifra, Ime, Priimek, ID_slika) in Slika(ID_slika, slika)

  18. polje1 polje2 polje3 polje4 polje5 p61 p62 polje7 Shranjevanje zapisov spremenljive dolžine v fizične bloke – dinamična delitev • če želimo izkoristiti blok v celoti • če shranjujemo zapise spremenljive dolžine • če shranjujemo zapise, ki so daljši od fizičnih blokov nekatera polja se delijo preko dveh ali več logično sosednjih blokov. polje8 polje1 polje2 p31 p32 polje4 fizični blok 1 fizični blok 2 • to jedinamična delitev • izvede se ob vpisu posameznega zapisa v fizično datoteko

  19. Označevanje prostih zapisov znotraj bloka • status polja: zasedeno (vsebuje zapis) / prosto a) uporabimo posebno oznako • oznako zapiši na začetek prostega polja • pozor: z uporabo oznake je omejena dopustna vrednost zapisa - veljaven zapis se ne sme pričeti z vrednostjo, ki pripada omenjeni oznaki! • b) uporabimo bitno sliko • vsakemu polju priredi bit:(1 - polje zasedeno; 0 – prosto) • bitna slika sodi med meta podatke, ki so zapisani na začetku (koncu) bloka  metapodatki zmanjšajo efektivno kapaciteto fizičnega bloka

  20. NSM oz. N-ary Storage Model • Uporablja ga večina komercialnih SUPB-jev • Zapisi se shranjujejo od začetka bloka naprej • Na koncu vsakega bloka je t.i. ‘slot directory’, namen: • Lociranje (iskanje) zapisov in upravljanje z nezasedenim prostorom bloka • Določitev začetka/konca podatkovnih elementov spremenljive dolžine • Opcije pri spreminjanju podatkov • Reorganizacija po izvedbi vsakega brisanja / spreminjanja podatkov  izognemo se ‘luknjam’ med podatki  v povprečju moramo prepisati ½ bloka • Za zapise fiksne dolžine: reorganizacija po brisanju ( v slot direktoriju imej kazalec na prvo prosto polje) • Sploh ne izvajaj reorganizacije: v slot direktoriju hrani bitno sliko, ki kaže zasedenost/nezasedenost posameznih zapisov

  21. Zvrsti datotek (1)goste / redke Glede na pojavljanje prostih polj v fizični datoteki ločimo: • goste datoteke - prosta polja se pojavljajo le v zadnjem delu logično zadnjega fizičnega bloka, sicer pa vsa polja vsebujejo zapise, • redke datoteke- prosta polja se lahko pojavljajo v kateremukoli fizičnem bloku Pri istem številu zapisov obsega gosta datoteka v splošnem manj fizičnih blokov kot redka datoteka.

  22. Zvrsti datotek (2)vezani / nevezani zapisi Glede na to, ali smemo zapis, ki je bil ob dodajanju v datoteko shranjen v določeno polje, premakniti kdaj kasneje v kako drugo polje, s čimer mu spremenimo naslov ločimo: • vezane zapise- zapisi so vezani na polje, v katerega so shranjeni, ker so naslovi polj v katerih se nahajajo shranjeni kot kazalci v drugih zapisih. Če bi vezani zapisi zamenjali svoj naslov, bi bili s pomočjo prvotnega naslova izgubljeni (denimo, če je ključ zapisa podatek tipa autoincrement in velja, da je fizični naslov enak logičnemu naslovu) • nevezane zapise- pri nevezanih zapisi ni omejitve glede zamenjave polj. Po potrebi se lahko premaknejo v katerokoli polje, le da ostanejo v zanje namenjenih blokih.

  23. Operacije nad zapisi ažuriranje = spreminjanje vsebine logičnih datotek • obsega dodajanje novih zapisov ter spreminjanje in brisanje obstoječih zapisov. • Logična datoteka ima svojo fizično predstavitev v obliki ene ali več fizičnih datotek posamezna operacija ažuriranja logične datoteke se dejansko izvede kot eno ali več ažuriranj fizičnih datotek. Štiri osnovne operacije nad zapisi fizičnih datotek: • iskanje • dodajanje • spreminjanje • brisanje

  24. 1. iskanje • osnovna operacija • sestavni del vseh operacij ažuriranj • iskanje = iskanje naslova polja, v katerem se (naj bi se) nahajal iskani zapis oz. iskanje naslova polja, v katerega želimo shraniti zapis, ki se dodaja datoteki. • k iskanju prištevamo tudi branje fizičnega bloka, v katerem se polje s poiskanim naslovom nahaja, v datotečni vmesnik • osnova za iskanje zapisa je lahko: • vrednost enega ali več podatkovnih elementov, pogosto ključa, ki jih iskani zapis ali zapis, ki ga dodajamo datoteki vsebuje • naslov polja ali fizičnega bloka ali skupine fizičnih blokov, ki vsebuje ali naj bi vseboval zapis • kombinacija vrednosti podatkovnih elementov in naslovov

  25. 2. dodajanje • poišči ustrezno prosto polje, v katerega (po kriteriju urejenosti datoteke) sodi novi zapis • vpiši zapis v poiskano polje v fizičnem bloku, ki se je v okviru iskanja prenesel v datotečni vmesnik • prepiši fizični blok iz datotečnega vmesnika na prejšnjo lokacijo na disku 3. brisanje • poišči polje z zapisom • v fizičnem bloku označi, da je polje prazno • prepiši fizični blok iz datotečnega vmesnika nazaj na disk 4. spreminjanje • podobno brisanju - polje z zapisom se ne označi kot prosto, pač se vanj vpiše nova vsebina • (pogoj: da ne spremenimo vrednosti ključa zapisa; če nameravamo spremeniti vrednost ključa, izvedemo najprej brisanje prvotnega zapisa in nato dodajanje novega/spremenjenega zapisa)

More Related