36
GIS pagrindai (IV) duomenų bazės Albertas Šermokas albertas.sermokas@m i f.vu.lt

GIS pagrindai (I V ) duomen ų bazės

  • Upload
    zoie

  • View
    67

  • Download
    10

Embed Size (px)

DESCRIPTION

GIS pagrindai (I V ) duomen ų bazės. Albertas Šermokas albertas.sermokas@m i f.vu.lt. DB ir DBVS. Duomen ų bazė - apibrėžimas, DB – pagrindinės sąvokos, DB – sąryšiai, Duomenų bazių valdymo sistema – DBVS, DBVS – funkcijos, DBVS – SQL kalbos operacijos. Esybė, savybė, ryšys. - PowerPoint PPT Presentation

Citation preview

Page 1: GIS pagrindai (I V ) duomen ų bazės

GIS pagrindai (IV)duomenų bazės

Albertas Š[email protected]

Page 2: GIS pagrindai (I V ) duomen ų bazės

DB ir DBVS

Duomenų bazė - apibrėžimas, DB – pagrindinės sąvokos, DB – sąryšiai, Duomenų bazių valdymo sistema – DBVS, DBVS – funkcijos, DBVS – SQL kalbos operacijos

Page 3: GIS pagrindai (I V ) duomen ų bazės

Esybė, savybė, ryšys

Esybė – tai savarankiškas, atskiriamas nuo kitų objektas, apie kurį norime turėti informaciją

esybė yra ne konkretus objektas, bet objekto sąvoka, abstrakcija, pavyzdžiui, ežeras, kuriam nurodytas savybių (atributų) rinkinys, o konkretus ežeras pvz. Balsio, yra tos esybės egzempliorius, t.y., objektas su konkrečiomis visų jo atributų reikšmėmis

savybė - priklausoma sąvoka, išreiškianti kokio nors objekto ypatybę (atributas – tai apibrėžta esybės savybė)

ryšys – sąsaja tarp esybių ar jų savybių (ryšys – tai turinti pavadinimą asociacija tarp dviejų esybių)

Page 4: GIS pagrindai (I V ) duomen ų bazės

Duomenų bazė - apibrėžimas

Duomenų bazė (DB) – tai informacijos (duomenų) apie esybes rinkinių ir sąryšių visuma:

Duomenų bazė (DB) – tai rinkinys tarpusavyje susijusių duomenų, kuriems apdoroti naudojamos programos

Page 5: GIS pagrindai (I V ) duomen ų bazės

Duomenų bazių valdymo sistema

Duomenų bazių valdymo sistema (DBVS) – tai programinė įranga DB valdyti ir aukšto lygio kalbos (naudotojas nurodo ką daryti, o ne kaip daryti) interpretatorius, kurie sudaro kompiuterizuotą įrašų saugojimo sistemą.

DBVS pateikia priemones, kurios užtikrina vartotojo sąsaja su DB, pvz SQL kalbą.

Page 6: GIS pagrindai (I V ) duomen ų bazės

Duomenų bazių modelis

DBVS suteikia vartotojui galimybę naudoti logines sąvokas DB aprašyti ir naudoti. Toks sąvokų rinkinys ir jų naudojimo taisyklės sudaro DB modelį.

DB, kurios apibrėžiamos naudojant reliacinį modelį (RM) vadinamos reliacinėmis duomenų bazėmis (RDB)

RDB valdančios duomenų bazių valdymo sistemos vadinamos reliacinėmis duomenų bazių valdymo sistemomis (RDBVS)

Page 7: GIS pagrindai (I V ) duomen ų bazės

RM pagrindiniai principai

Duomenys organizuojami lentelėmis ir niekaip kitaip, tad DB čia suprantama kaip lentelių (susijusių) rinkinys.

Pateikiamos priemonės (operatoriai), leidžiančios iš esamų lentelių gauti naujas.

Page 8: GIS pagrindai (I V ) duomen ų bazės

Pagrindinės RM sąvokos

Lentelė (table) – eilučių ir stulpelių rinkinys (turintis pavadinimą)

Eilutė (row) – esybės konkretaus objekto savybių rinkinys

Stulpelis (column) – esybės savybė, apibrėžiama pavadinimu, duomenų tipais ir jų apimtimi

Eilutės ir stulpelio sankirta – konkretaus objekto konkrečios savybės reikšmė.

Page 9: GIS pagrindai (I V ) duomen ų bazės

Stulpelio duomenų tipai

Skaitiniai

Simboliniai (tekstiniai) duomenys

Datos ir laiko

Dvejetainiai duomenys

Page 10: GIS pagrindai (I V ) duomen ų bazės

Skaitiniai

SMALLINT (short integer) – sveikieji skaičiai nusakomi 2 baitais (-32768; 32767)

INTEGER (long integer) – sveikieji skaičiai nusakomi 4 baitais (-2147483648; 2147483647)

REAL – realūs skaičiai slankiuoju kableliu, nusakomi 4 baitais, pvz. 2.43E+5, -5E-6

DOUBLE (float) – dvigubo tikslumo realūs skaičiai nusakomi 8 baitais

Page 11: GIS pagrindai (I V ) duomen ų bazės

Simboliniai duomenų tipai

CHAR (character, text) – simbolių eilutė iki 254 baitų

VARCHAR – kintama simbolių eilutė iki 4000 baitų

LONG VARCHAR – kintama simbolių eilutė iki 32700 baitų

Page 12: GIS pagrindai (I V ) duomen ų bazės

Datos ir laiko duomenų tipai

DATE – datos duomenys, pvz. “YYYYMMDD” (nusakoma 4 baitais)

TIME – laiko duomenys, pvz. “12:00:00” (nusakoma 3 baitais)

TIMESTAMP – datos ir laiko duomenys kartu

Page 13: GIS pagrindai (I V ) duomen ų bazės

Dvejetainis duomenų tipas

BLOB – dvejetainis duomenų rinkinys iki 2 GB, skirtas paveiksliukams, ir įvairaus tipo failams saugoti.

NULL – reikšmė skirta visiems duomenų tipams .

Page 14: GIS pagrindai (I V ) duomen ų bazės

Duomenų tipų nusakymas

Duomenų ilgis

Duomenų tikslumas

NULL – reikšmė visiems tipams, kai konkreti reikšmė nežinoma ar nepriskirta

Page 15: GIS pagrindai (I V ) duomen ų bazės

Lentelės raktai

Atributų (stulpelių) rinkinys vienareikšmiškai apibrėžiantis kiekvieną lentelės eilutę vadinamas raktu (viršrakčiu)

Vienas iš raktų vadinamas pirminiu raktu, t.y. stulpelis ar jų derinys toks, kad jokiu momentu negali atsirasti dviejų lentelės eilučių, kuriose būtų vienodos to stulpelio (ar derinio) reikšmės, t.y. tai unikalus objektų identifikatorius lentelėje

Išorinis raktas - stulpelis ar jų derinys toks, kuris turi atitikmenį kitoje lentelėje ir tas atitikmuo yra pirminis raktas.

Page 16: GIS pagrindai (I V ) duomen ų bazės

Sąryšiai

"vienas su vienu“ – vieną eilutę vienoje lentelėje atitinka viena eilutė kitoje lentelėje (retas)

“vienas su daug“ – vieną eilutę vienoje lentelėje atitinka daug eilučių kitoje lentelėje (naudojamas dažniausiai)

"daug su daug" – daug eilučių vienoje lentelėje atitinka daug eilučių kitoje lentelėje (dažniausiai suvedamas prie kelių santykių “vienas su daug”).

Visi ryšiai nusakomi per pirminių ir išorinių raktų santykį

Page 17: GIS pagrindai (I V ) duomen ų bazės

DBVS funkcijos

Duomenų organizavimas. DBVS privalo užtikrinti priemones duomenų organizavimui, organizavimo pakeitimams, ir įvairių duomenų apribojimų ir taisyklių nusakymui bei užtikrinimui.

Manipuliavimas duomenimis. DBVS užtikrina visus būtinus veiksmus su duomenimis, kad juos būtų galima įrašyti, keisti, pašalinti, surasti.

Duomenų slaptumas. DBVS užtikrina priemones skirtas prieigai prie duomenų valdyti, kad kiekvienas vartotojas turėtų teise pasiekti tik jam skirtus duomenis ir atlikti tik jam leistus veiksmus.

Page 18: GIS pagrindai (I V ) duomen ų bazės

DBVS funkcijos

Duomenų pertekliaus minimizavimas. DBVS privalo minimizuoti duomenų perteklių, o esant galimybei jį eliminuoti.

Efektyvus bendras DB vartojimas. DB yra skiriama plačiam vartotojų ratui, todėl turi užtikrinti efektyvų bendrų DB vartojimą.

DB vientisumas. DB yra vadinama vientisa (integrali), jei ji tenkina tam tikrus apribojimus (sąlygas) duomenims ir išsaugo tuos apribojimus modifikuojant (keičiant, šalinant, terpiant) duomenis.

Page 19: GIS pagrindai (I V ) duomen ų bazės

DBVS funkcijos

DB neprieštaringumas. DB vadinama neprieštaringa, jei bet kuriuo laiko momentu, į visų vartotojų užklausas reaguojama vienodai.

Duomenų saugumas. DB duomenų apsauga, nuo tyčinio ar netyčinio duomenų sunaikinimo (pašalinimo), pakeitimo ar peržiūros.

Efektyvus užklausų vykdymas. DBVS keliamas uždavinys dideliuose duomenų masyvuose efektyviai atlikti ne tik planuotas užklausas (pagal iš anksto numatytus kriterijus), bet ir neplanuotas užklausas.

Page 20: GIS pagrindai (I V ) duomen ų bazės

Populiariausios RDBVS

Oracle. IBM DB2. Microsoft SQL Server. SYBASE MySQL PosgreSQL

Page 21: GIS pagrindai (I V ) duomen ų bazės

SQL kalba

Skirta vartotojo sąsajai su duomenimis realizuoti. Naudojama reliacinėse sistemose. SQL – struktūrizuota užklausų kalba (Structured Query Language). Sukurta apie 1970 metus IBM tyrimų centre ir greit tapo Amerikos nacionaliniu (ANSI) ir tarptautiniu (ISO) standartu.

SQL – 92 (SQL2). International Standard Database Language SQL, 1992.

SQL – 99 (SQL3).

Page 22: GIS pagrindai (I V ) duomen ų bazės

SQL kalbos sakinių grupės

DDL - duomenų apibrėžimo sakiniai (Data Definition Language), skirti DB ir lentelių kūrimui

CREATE DATABASE, DROP DATABASE, CREATE TABLE, ALTER TABLE, …

DML – manipuliavimo duomenimis sakiniai (Data Manipulation

Language), skirti duomenų suradimui, įrašymui, šalinimui

SELECT, INSERT, UPDATE, DELETE, …

DCL – duomenų valdymo sakiniai (Data Control Language), skirti vartotojų darbo su duomenimis valdymui

CONNECT, GRANT, REVOKE, …

Page 23: GIS pagrindai (I V ) duomen ų bazės

Pagrindiniai DML sakiniai

SELECT – duomenų išrinkimas pagal užduotas taisykles

INSERT – duomenų įrašymas pagal užduotas taisykles

UPDATE – duomenų pakeitimas pagal užduotas taisykles

DELETE – duomenų šalinimas pagal užduotas taisykles

Page 24: GIS pagrindai (I V ) duomen ų bazės

DB pavyzdys

HIDRO_LFIDGKODASGRAKTASVARDAS…

MARSRUTAImars_idmars_vardup_graktas

KELIAUTOJAIasm_idvardas

KELIONESasm_idmars_idpr_datapab_data

Page 25: GIS pagrindai (I V ) duomen ų bazės

SELECT (apibrėžimas)

SELECT [DISTINCT] <stulpelių vardai>

FROM <lentelių vardai>

WHERE <paieškos sąlyga>

[GROUP BY <stulpelių vardai>

[ORDER BY <stulpelių vardai | išraiška – ASC/DESC>]

Page 26: GIS pagrindai (I V ) duomen ų bazės

Operacijos

>, <, >=, <=, =, <> - palyginimo

AND, OR, NOT – loginės operacijos

_ - praleisti simboliai tam tikroje pozicijoje

%, * - praleisti simboliai dalimi iki (arba po) ieškomos dalies

LIKE – palyginimas dalimi bet kurioje pozicijoje

() – nusako operacijų eiliškumą

Page 27: GIS pagrindai (I V ) duomen ų bazės

Loginės operacijos

p q p AND q

p OR q NOT p

0 0 0 0 1

0 1 0 1 1

1 0 0 1 0

1 1 1 1 0

Page 28: GIS pagrindai (I V ) duomen ų bazės

SELECT (išrinkimas su sąlyga)

SELECT * FROM hidro_l

SELECT * FROM hidro_l WHERE shape_len > 50000

SELECT graktas, vardas, shape_len FROM hidro_l

SELECT graktas, vardas, shape_len FROM hidro_l WHERE shape_len < 10000

SELECT graktas, vardas, shape_len FROM hidro_l WHERE vardas = ‘NEMUNAS’

Page 29: GIS pagrindai (I V ) duomen ų bazės

SELECT (rūšiavimas, grupavimas)

SELECT * FROM hidro_l ORDER BY vardas

SELECT * FROM hidro_l WHERE shape_len > 50000 ORDER BY shape_len

SELECT graktas, vardas, SUM(shape_len) FROM hidro_l WHERE vardas = ‘NEMUNAS’ OR vardas = ‘NERIS’ GROUP BY vardas

SELECT graktas, COUNT(graktas), vardas, AVG(shape_len), SUM(shape_len)/1000 FROM hidro_l GROUP BY graktas

Page 30: GIS pagrindai (I V ) duomen ų bazės

Sudėtingesni SELECT sakiniai

SELECT * FROM marsrutai, hidro_l

SELECT marsrutai.marsr_id, hidro_l.graktas, hidro_l.vardas FROM marsrutai, hidro_l

SELECT marsrutai.marsr_id, hidro_l.graktas, hidro_l.vardas FROM marsrutai, hidro_l WHERE marsrutai.up_graktas = hidro_l.graktas

SELECT keliautojai.vardas, keliones.marsr_id, marsrutai.mars_vardas FROM keliautojai, keliones, marsrutai WHERE keliautojai.asm_id = keliones.asm_id AND keliones.marsr_id = marsrutai.marsr_id

Page 31: GIS pagrindai (I V ) duomen ų bazės

Sudėtingesni SELECT sakiniai

SELECT keliautojai.vardas, keliones.mars_vardas, keliones.pab_data - keliones.pr_data FROM keliautojai, keliones WHERE keliautojai.asm_id = keliones.asm_id AND keliones.pab_data <= “2007.08.31”

SELECT keliautojai.vardas, SUM(keliones.pab_data - keliones.pr_data) FROM keliautojai, keliones WHERE keliautojai.asm_id = keliones.asm_id GROUP BY keliones.asm_id

SELECT vardas FROM hidro_l WHERE (SELECT SUM(shape_len) FROM hidro_l GROUP BY graktas) > 50000

Page 32: GIS pagrindai (I V ) duomen ų bazės

Kiti SQL sakiniai (UPDATE)

UPDATE <lentelės vardas> SET <stulpelio vardas = reiškinys, [stulpelio vardas = reiškinys]> WHERE <paieškos sąlyga>

UPDATE plotai SET info = ‘up.’ WHERE gkodas = ‘hd1’

UPDATE hidro_l SET ilgis = shape_len/1000

Page 33: GIS pagrindai (I V ) duomen ų bazės

Kiti SQL sakiniai (DELETE)

DELETE <lentelės vardas> WHERE <paieškos sąlyga>

DELETE plotai WHERE gkodas = NULL

DELETE hidro_l WHERE vardas = “NEMUNAS”

Page 34: GIS pagrindai (I V ) duomen ų bazės

Kiti SQL sakiniai (INSERT)

INSERT INTO <lentelės vardas> [<stulpelio vardas>, …] VALUES (<reikšmė>, …)

INSERT INTO plotai VALUES (1, ‘Polygon’, ‘hd3’, NULL, ‘Druskonis’, ‘ež.’, 1, NULL, NULL)

INSERT INTO plotai (gkodas, vardas, info, shape_area, shape_len) VALUES (‘hd3’, ‘Druskonis’, ‘ež.’, 6000, 3400)

Page 35: GIS pagrindai (I V ) duomen ų bazės

Indeksai

Indeksai – surūšiuota reikšmių ir nuorodų į reikšmes atitinkamose lentelės eilutėse aibė

Indeksas yra apibrėžiamas vienam ar keliems lentelės stulpeliams

Indeksas nėra lentelės duomenų dalis, tai atskiras DB objektas

Duomenų paieška išrūšiuotame masyve yra efektyvesnė

Page 36: GIS pagrindai (I V ) duomen ų bazės

RDBVS užtikrinami reikalavimai

Reikšmių būtinumas (NOT NULL)

Reikalavimai reikšmėms.

Lentelės raktų vientisumas.

Nuorodų vientisumas

Duomenų neprieštaringumas