46
Podatkovne baze Podatkovne baze Biometrija & računalništvo UL, Biotehniška fakulteta, Oddelek za zootehniko

Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

Podatkovne bazePodatkovne baze

Biometrija & računalništvoUL, Biotehniška fakulteta, Oddelek za zootehniko

Page 2: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 2

Vsebina

• Relacijska algebra

• Jezik SQL

• Podatkovna integriteta

Page 3: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 3

Relacijska algebra

• Tabele oz. relacije so množice• Vrstice tabele ~ elementi množice

• Matematične operacije nad množicami lahko uporabimo tudi nad tabelami

• 8 relacijskih operacij

Page 4: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 4

Unija

• A ∪ B• Operacija nad dvema tabelama• Vrstice ene tabele pripnemo drugi tabeli in

s tem dobimo tretjo tabelo• Ni podvojenih vrstic• Tabeli morata biti kompatibilni

isto število stolpcev – prilastkovisti tip prilastkov

A B

Page 5: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 5

Unija (2)

A unija B

A B

Page 6: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 6

Razlika

• A – B oz. A \ B • Razlika dveh tabel je tretja, ki vsebuje

vrstice, ki so v prvi tabeli, pa jih v drugi ni• Tudi tu potrebno, da sta tabeli kompatibilni• Vrstni red enako pomemben kot pri

odštevanju• A – B ni isto kot B - A

A B

Page 7: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 7

Razlika (2)

A B

A - B B - A

Page 8: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 8

Presek

• A ∩ B• Presek dveh tabel je tretja tabela, ki

vsebuje skupne vrstice• Kompatibilni tabeli

A B

Page 9: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 9

Presek (2)

A B

A presek B

Page 10: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 10

Produkt

• A x B• Produkt dveh tabel – kartezijski produkt• Medsebojna spojitev vsake vrstice v eni

tabeli z vsako vrstico v drugi tabeli• Produkt tabel A (ima m vrstic) in B (ima n

vrstic) je tabela C (ima m x n vrstic)• Sam po sebi ni preveč uporaben, je pa

vmesni proces pri operaciji JOIN

Page 11: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 11

Produkt (2)

A B

A x B

Page 12: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 12

Projekcija

• Z operatorjem PROJECT izberemo niz stolpcev tabele

• Brez podvojenih vrstic

C project C

Page 13: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 13

Selekcija

• Operator SELECT izbere niz vrstic iz tabele na osnovi vrednosti v enem ali več stolpcih

• Ni isto kot SELECT v SQL!!• Analogen v SQL je WHERE

Page 14: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 14

JOIN

• Operator JOIN združuje produkt, selekcijo (in projekcijo)

• Horizontalno združi podatke iz vrstice ene tabele z vrsticami druge tabele po izrazu oz. kriteriju

• Primer kriterija:Enakost vrednosti določenega stolpca

Page 15: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 15

Join (2)

D E

Join

Page 16: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 16

Deljenje

• Operator deljenje izbere vrednosti stolpcev ene tabele, za katere obstajajo v drugi tabeli odgovarjajoči stolpci z odgovarjajočimi vrednostmi

F G (delitelj) Rezultat

Page 17: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 17

SQL

• Strukturirani povpraševalni jezik (Structured Query Language)

• Temelji na relacijski algebri• Jezik podatkovnih baz• Deklarativen, nepostopkoven jezik

Navedemo le, KAJ želimo, ni nam treba podati, KAKO naj to SQL stori

Page 18: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 18

SQL (2)

• Sestoji se iz:DDL – jezik za definicijo podatkov (datadefinition language)DML – jezik za rokovanje s podatki (datamanipulation languageNavidezne tabeleIntegritetaKontrola transakcijAvtorizacija

Page 19: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 19

DDL

• CREATE - ustvariTABLE – definiramo, ustvarimo tabelo, VIEW – navidezna tabela, INDEX – podatkovna struktura, omogoča hitrejši dostop do podatkov v tabeli

• DROP - izbriši• ALTER - spremeni

Page 20: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 20

CREATE TABLE• create table ime_tabele (

ime_stolpca1 format1,ime_stolpca2 format2,…ime_stolpcaN formatN);

• Primer:• create table svinja (

sow_id char(13), oce char(13), mati char(13), pasma char(2), dt_roj date);

Page 21: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 21

CREATE (2)• CREATE VIEW• create view svinja_iom as

select sow_id, oce, mati from svinja;

• CREATE INDEX• create index ind_id on svinja (sow_id);

• create index ind_ip on svinja (sow_id, pasma);

Page 22: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 22

DML

• Običajni ukazi jezika SQLSELECTINSERTDELETEUPDATECOMMITROLLBACK

Page 23: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 23

SELECT – FROM - WHERE

• Stavčni del SELECT določa stolpce rezultata

• Stavčni del FROM označuje tabele, iz katerih

• Stavčni del WHERE določa pogoje za stolpce tabel iz stavčnega dela FROM

Page 24: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 24

SELECT – FROM – WHERE (2)

• SELECT p1, p2, …, pnFROM r1, r2, …, rmWHERE c;

• Ekvivalentno relacijski algebri: projekcija: p1, p2, …, pnselekcija: cprodukt: r1, r2, …, rm

Page 25: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 25

SELECT (3)

• select sow_idfrom svinja;

• select distinct sow_idfrom svinja;

• select *from svinja;

• select sow_id, pasmafrom svinja;

Page 26: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 26

WHERE

• select sow_idfrom svinjawhere pasma=’11’;

• select sow_idfrom svinjawhere dt_roj>’20.1.2004’and pasma=’11’;

• Povezave: AND, OR, NOT, ( )• Primerjava: <, <=, >, >=, =, <>

Page 27: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 27

FROM

• select svinja.id, svinja.dt_roj, pripust.dt_pripustfrom svinja, pripustwhere svinja.id=pripust.id;

• select s.id, s.dt_roj, p.dt_pripustfrom svinja as s, pripust as pwhere s.id=p.id;

• V relacijski algebri: JOIN

Page 28: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 28

Ujemanje znakovnih nizov

• Nadomestni znak (wildcard):% - ustreza kateremkoli podnizu_ - ustreza kateremkoli znaku

• select idfrom svinjawhere oce like ‘04-1234-%’;

Page 29: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 29

Razvrstitev

• S pomočjo stavčnega dela ORDER BYASC - naraščajočeDESC – padajoče

• select pasma, sow_idfrom svinjawhere pasma asc, sow_id desc;

Page 30: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 30

DML - Unija

• select sow_id, oce, mati, pasmafrom svinja_farmaAwhere dt_roj > ’31.12.2003’unionselect sow_id, oce, mati, pasmafrom svinja_farmaBwhere dt_roj > ’31.12.2003’;

• A ∪ B A B

Page 31: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 31

DML - Presek

• select sow_id, oce, mati, pasmafrom svinja_farmaAwhere dt_roj > ’31.12.2003’intersectselect sow_id, oce, mati, pasmafrom svinja_farmaBwhere dt_roj > ’31.12.2003’;

• A ∩ B A B

Page 32: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 32

DML - Razlika

• select sow_id, oce, mati, pasmafrom svinja_farmaAwhere dt_roj > ’31.12.2003’exceptselect sow_id, oce, mati, pasmafrom svinja_farmaBwhere dt_roj > ’31.12.2003’;

• A \ B A B

Page 33: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 33

DML – vgrajene funkcije

• Preštej COUNT( ), vsota SUM( ), povprečje AVG( ), minimum MIN( ), maksimum ( ) …

• select count(*) from svinja;

• select pasma, min(dt_roj), max(dt_roj) from svinjawhere group by pasma;

Page 34: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 34

Vgnezdeni povpraševalni stavki

• select s. pasma, s.sow_idfrom svinja as swhere exists (

select ‘ t‘ from gnezdo as gwhere s.sow_id=g.sow_id);

• Kaj dobimo s tem povpraševalnim stavkom?

Page 35: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 35

INSERT, DELETE

• insert into svinja (sow_id, oce, mati, pasma, dt_roj) values(’31-123-13’, ’31-98-2’,’31-102-4’, 22, ‘2.4.2005’);

• delete from svinja where sow_id=’31-123-13’;

Page 36: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 36

UPDATE

• update ime_tabele setstolpec1=izraz1, stolpec2=izraz2, …where pogoj;

• update ime_tabele setstolpec1=sql-stavek …where pogoj;

• update svinja set oce= ’31-104-2’, pasma=11where sow_id=’31-123-13;

Page 37: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 37

Integriteta podatkov & pravila

• Integriteta ~ celost, popolnost• Shranjeni podatki morajo zadostiti

določenim pravilom, da so točni, pravilni & smiselni

• Poslovna pravila / omejitve• Vrste integritete:

EntitetnaReferenčnaPrilastkovna (omejitve domen)

Page 38: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 38

Omejitve domen

• Domena – množica veljavnih vrednosti za določen prilastek

• Da imajo ukazi INSERT in UPDATE smisel• Domene za PK:

Enolične vrednostiNOT NULL

• Domene za FK:Po tipu, dolžini, formatu ustrezati PK

Page 39: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 39

Informacije o domeni

• Opis prilastka v podatkovnem slovarju mora vsebovati:

Tip podatka (integer, float, char …)Dolžino (5 mest, 40 znakov, …)Razpon vrednosti – spodnja in zgornja mejaOmejitve – posebne omejitve na veljavnih vrednostihAli ima lahko vrednost NULLAli ima privzeto vrednost

Page 40: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 40

Entitetna integriteta

• Za vsako entiteto iz množice entitet mora obstajati prilastek ali skupina - primarni ključ, ki je enoličen, in ni brez vrednosti (ni NULL)

Page 41: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 41

Referenčne omejitve

• Omejitve vrednosti prilastkov entitet preko relacij med entitetami

• FK

• Npr.: prilastek SOW_ID v tabeli GNEZDO se nanaša na SOW_ID v tabeli SVINJA

Page 42: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 42

Primer

Ime tabele: GNEZDOPrimarni ključ: SOW_ID + PRAS_DT Tuji ključ: SOW_ID

Ime tabele: SVINJAPrimarni ključ: SOW_IDTuji ključ: /

FK

Page 43: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 43

Referenčne omejitve (2)

• V tabeli GNEZDO ne more obstajati zapis za svinjo XXXX, če ne obstaja zapis za to svinjo XXXX v tabeli SVINJA

• Lahko obstaja entiteta – svinja YYYY v tabeli SVINJA, brez, da bi za svinjo YYYY obstajal zapis v tabeli GNEZDO

• Nesmiselni zapisi v tabeli GNEZDO, če ne vemo, za kateto svinjo gre – manjka SOW_ID

Page 44: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 44

Poslovna pravila

• Medsebojna odvisnost entitet• Sosledje dogodkov v živinorejskih

produkcijskih sistemih• Primera:

Svinja z odbiro vstopa v čredo, jo pripustimo, prasi, jo odstavimo, ponovno pripustimo … vse do izločitveMerjasec vstopi v čredo, mu jemljemo seme ali ga pripuščamo na svinje … do izločitve

Page 45: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 45

Poslovna pravila (2)

med 0 in 25=zroj_p

med 0 in zroj_p=odst_p

dt_pras iste zap. prasitve>dt_odst

dt_insemin + 115 dni +- 5 dni=dt_pras

Tabela SVINJA

dt_roj pri starših>dt_roj

dt_vstopa>dt_izloc

dt_roj + 200 dni +- 30 dni=dt_vstopa

Tabela GNEZDO

Page 46: Biometrija & računalništvo UL, Biotehniška fakulteta ... · 12.5.2005 Podatkove baze 3 Relacijska algebra • Tabele oz. relacije so množice • Vrstice tabele ~ elementi množice

12.5.2005 Podatkove baze 46

Naslednjič

• Podatkovne baze (DB) – zbirke podatkov

• Sistem za upravljanje podatkovnih baz (DBMS – database management system)

• Informacijski sistem v živinoreji