941
veljača 2012. Baze podataka Predavanja Mirta Baranović Slaven Zakošek

Baze Podataka Preddiplomski Predavanja

Embed Size (px)

Citation preview

  • veljaa 2012.

    Baze podataka

    Predavanja

    Mirta BaranoviSlaven Zakoek

  • FER - Zagreb Baze podataka 2011/2012 2

    Sadraj

    1. Uvod

    2. Relacijski model podataka 3. Nepotpune informacije i NULL vrijednosti 4. SQL (1.dio) 5. SQL (2. dio)6. Oblikovanje sheme relacijske baze podataka (1. dio)7. Oblikovanje sheme relacijske baze podataka (2. dio)8. Oblikovanje sheme relacijske baze podataka (3. dio - primjeri)9. Fizika organizacija podataka10. Integritet baze podataka

    ............................................................................................................ 4

    ........................................................................ 62

    .............................................. 145

    .............................................................................................. 185

    ............................................................................................. 288

    ............................ 354

    ............................ 394

    .............. 438

    ................................................................ 481

    ......................................................................... 553

  • FER - Zagreb Baze podataka 2011/2012 3

    Sadraj

    11. Privremene i virtualne relacije12. Pohranjene procedure i okidai13. ER model baze podataka (1. dio)14. ER model baze podataka (2. dio)15. ER model baze podataka (3. dio - primjeri)16. Transakcije i obnova baze podataka u sluaju razruenja17. Kontrola istodobnog pristupa18. Sigurnost baze podataka19. Distribuirane i NoSQL baze podataka20. Literatura

    ................................................................. 596

    .............................................................. 623

    ........................................................... 674

    ........................................................... 742

    ............................................. 775

    ...................... 802

    ................................................................... 841

    ........................................................................ 875

    ..................................................... 909

    ................................................................................................. 941

  • 1. Uvod

  • FER - Zagreb Baze podataka 2011/2012 5

    "Nain na koji prikupljate informacije, upravljate njima i koristite ih, odredit e hoete li pobijediti ili izgubiti."

    Bill Gates

  • Stvarni svijet

    Informacije

    Podaci

  • FER - Zagreb Baze podataka 2011/2012 7

    Obrada podataka sveuilite, knjinica

    Knjinica podaci o korisniku knjinice podaci o knjigama traenje knjiga i asopisa posuivanje knjiga

    Sveuilite podaci o studentima podaci o nastavnicima uspjeh na ispitu

    ISVU - Informacijski sustav visokih uilita RH

  • FER - Zagreb Baze podataka 2011/2012 8

    Obrada podataka - bankarstvo

    otvaranje rauna novane transakcije praenje stanja na raunu praenje kupnji ostvarenih putem

    kreditnih kartica

  • FER - Zagreb Baze podataka 2011/2012 9

    Obrada podataka - telekomunikacije

    podaci o pozivima telefonski rauni podaci o mrei podaci o kvarovima

  • FER - Zagreb Baze podataka 2011/2012 10

    Obrada podataka - znanost

    podaci prikupljeni tijekom istraivanja u fizici, biologiji, kemiji...

  • FER - Zagreb Baze podataka 2011/2012 11

    Obrada podataka - istraivanje i zatita okolia

    morski sustavi(plimna dinamika, temperatura, slanost, irenje tvari u moru)

    rezultati mjerenja satelitski podaci raunalne simulacije

    informatika o okoliu satelitska oceanografija

    ekoloko modeliranje

  • FER - Zagreb Baze podataka 2011/2012 12

    Obrada podataka - medicina

    podaci o pacijentu povijest bolesti rezultati testova podaci s bolnikih

    instrumenata i senzora

  • FER - Zagreb Baze podataka 2011/2012 13

    Obrada podataka sport

    podaci o natjecateljima rezultati utakmica i utrka statistika

  • FER - Zagreb Baze podataka 2011/2012 14

    Obrada podataka putovanja

    vozni red / red letenja rezervacija karata kupnja karata slobodna i zauzeta mjesta

  • FER - Zagreb Baze podataka 2011/2012 15

    Obrada podataka (elektronika) trgovina

    Trgovina rauni koliina prodanih proizvoda zarada

    Elektronika trgovina narudbe i prodaja putem Interneta

  • FER - Zagreb Baze podataka 2011/2012 16

    Obrada podataka portali

    prikaz podataka iz razliitih izvora

  • FER - Zagreb Baze podataka 2011/2012 17

    Obrada podataka drutvene mree

    Velik broj korisnika, konstantna aktivnost Facebook 60 milijuna upita i 4 mil. promjena u sekundi

  • FER - Zagreb Baze podataka 2011/2012 18

    Obrada podataka potpora odluivanju integracija podataka iz

    razliitih izvora

    razliiti izvori podataka

    izvjetaji viedimenzionalni pogled na podatke dubinska analiza (data mining) vizualizacija podataka

  • FER - Zagreb Baze podataka 2011/2012 19

    Uvod u baze podataka

  • FER - Zagreb Baze podataka 2011/2012 20

    Organizacijski sustav ORGANIZACIJSKI SUSTAV je sloeni sustav koji sadri

    tehnike i humane podsustave poduzee, ustanova, djelatnost, drutvena organizacija,

    tehniki sustav kao npr. telekomunikacijska mrea i sl. esto se organizacijski sustav naziva i POSLOVNIM

    SUSTAVOM, iako pojam organizacijski sustav ima neto ire znaenje.

    Primjeri organizacijskih sustava: Knjinica Sveuilite Zrana luka

  • FER - Zagreb Baze podataka 2011/2012 21

    Informacija, podatak (Information, Data) INFORMACIJA je sadraj koji primatelju opisuje nove injenice.

    Taj sadraj se materijalizira u obliku PODATAKA koji slue za prikaz informacija u svrhu spremanja, prijenosa i obrade.

    Podatak je skup simbola (znakova). Informacija je i obraeni podatak koji za primatelja ima

    karakter novosti, otklanja neizvjesnost i slui kao podloga za odluivanje. Podatak izvan konteksta nema znaenja

    podatak: 4.62 Podatak koji interpretiramo i primjereno poveemo

    predstavlja informaciju informacija: prosjek svih ocjena studenta Marka Horvata na

    studiju na FER-u u ovom trenutku je 4.62

  • FER - Zagreb Baze podataka 2011/2012 22

    Informacijski sustav (Information System)Definicija: Ukupna infrastruktura, organizacija, osoblje i komponente

    koje slue za prikupljanje, obradu, pohranu, prijenos, prikaz, irenje i raspolaganje informacijama

    The entire infrastructure, organization, personnel, and components for the collection, processing, storage, transmission, display, dissemination, and disposition of information [INFOSEC-99].

  • FER - Zagreb Baze podataka 2011/2012 23

    Informacijski sustav (Information System) Informacijski sustav je dio svakog

    organizacijskog sustava Svrha mu je prikupljanje, obrada,

    pohranjivanje i distribucija informacija, koje su potrebne za praenje rada i upravljanje organizacijskim sustavom ili nekim njegovim podsustavom. Informacijski sustav je aktivni sustav

    koji moe (ali ne mora) koristiti suvremenu informacijsku tehnologiju

    Sredinji dio informacijskog sustava je BAZA PODATAKA

    Informacijski sustav, 1868.

  • FER - Zagreb Baze podataka 2011/2012 24

    Baza podataka (Database) BAZA PODATAKA je skup podataka koji su pohranjeni i

    organizirani tako da mogu zadovoljiti zahtjeve korisnika.(M. Vetter, 1981.)

    BAZA PODATAKA je skup meusobno povezanih podataka, pohranjenih zajedno, uz iskljuenje bespotrebne zalihosti (redundancije), koji mogu zadovoljiti razliite primjene.Podaci su pohranjeni na nain neovisan o programima koji ih koriste. Prilikom dodavanja novih podataka, mijenjanja i pretraivanja postojeih podataka primjenjuje se zajedniki i kontrolirani pristup. Podaci su strukturirani tako da slue kao osnova za razvoj buduih primjena.

    (J. Martin, 1979.).

  • FER - Zagreb Baze podataka 2011/2012 25

    Entitet (Entity) bilo to, to ima sutinu ili bit i posjeduje znaajke s pomou

    kojih se moe razluiti od svoje okoline osobe: studenti, radnici, graani, ...

    student Horvat Ivan (0036123456) ostala bia

    Bijeli bor, pas Lajka objekti: vozila, strojevi, ureaji, ulice, zgrade, mjesta, ...

    Eiffelov toranj, cepelin Hindenburg apstraktni pojmovi: boje, predmeti nastavnog programa, ...

    predmet Baze podataka u nastavnom programu FER-2 dogaaji (neto se desilo, deava se ili se planira da e se desiti)

    dana 24.11.2006. odrava se proslava Dana Fakulteta na FER-u povezanost meu objektima, osobama, dogaajima, ...

    student Horvat Ivan (0036123456) stanuje u Zagrebu neto o emu elimo prikupljati i pohranjivati podatke

  • FER - Zagreb Baze podataka 2011/2012 26

    Atribut (Attribute) Entitet posjeduje neka SVOJSTVA ili ATRIBUTE koji ga

    karakteriziraju. Za Informacijski sustav visokih uilita (ISVU) vana svojstva

    studenta Horvat Ivana su: Matini broj studenta (JMBAG) Ime Prezime Datum roenja, ...

    Izbor svojstava (atributa) koje emo pratiti ovisi o namjeni informacijskog sustava Horvat Ivan u informacijskom sustavu MUP-a bit e

    karakteriziran i atributima: Boja kose Boja oiju Otisak prsta, ...

  • FER - Zagreb Baze podataka 2011/2012 27

    Skup entiteta (Entity Set) Slini entiteti se svrstavaju u skupove entiteta Slini su oni entiteti kojima se promatraju ista svojstva Svi entiteti koji su lanovi istog skupa entiteta imaju iste

    atribute "atributi entiteta" "atributi skupa entiteta

    atributi skupa entiteta PREDMET sifPred nazPred ectsBod nastProg

    atributi skupa entiteta STUDENT jmbag ime prezime datRod

  • FER - Zagreb Baze podataka 2011/2012 28

    USTANOVA

    STUDENTPREDMET

    RADNIK

    ZGRADA

    Skupovi entiteta - primjer

  • FER - Zagreb Baze podataka 2011/2012 29

    Domena i vrijednost atributa (Domain, Attribute Value)

    Za svaki entitet, atribut poprima vrijednosti iz odreenog skupa vrijednosti koji predstavlja domenu tog atributa domene atributa za skup entiteta PREDMET

    sifPred: skup ifara predmeta - cijelih brojeva iz intervala [1,999999] nazPred: skup naziva predmeta - nizova znakova duljine do 80

    znakova ectsBod: skup vrijednosti ECTS bodova - realnih brojeva iz intervala

    [0.5, 30.0] (s jednom znamenkom iza decimalne toke) nastProg: skup oznaka nastavnih programa - nizova znakova

    duljine do 5 znakova vrijednosti atributa za entitet Baze podataka (31503)

    sifPred: 31503 nazPred: Baze podataka ectsBod: 6.0 nastProg: FER-2

  • FER - Zagreb Baze podataka 2011/2012 30

    Skup entiteta - prikaz u obliku tablice

    sifPred nazPred ectsBod nastProg31503 Baze podataka 6.0 FER-21228 Baze podataka 5.0 FER-1

    19670 Matematika 1 7.0 FER-221006 Fizika 1 6.0 FER-2

    90 Baze podataka 5.0 ETF-4

    entiteti

    atributi

    vrijednosti atributa

    Skup entiteta PREDMET

  • FER - Zagreb Baze podataka 2011/2012 31

    Identifikatori entiteta, kljuevi Skupove atributa ije vrijednosti jednoznano odreuju

    entitet u promatranom skupu entiteta (dakle ne postoje dva entiteta s posve istim vrijednostima tih atributa) nazivamo IDENTIFIKATORIMA ili KLJUEVIMA SKUPA ENTITETA.

    sifPred nazPred ectsBod nastProg31503 Baze podataka 6.0 FER-2

    1228 Baze podataka 5.0 FER-119670 Matematika 1 7.0 FER-221006 Fizika 1 6.0 FER-2

    90 Baze podataka 5.0 ETF-4

    Primjer: u skupu entiteta PREDMET prikazanom na slici:

    skup atributa { sifPred } jest klju skupa entiteta skup atributa { nazPred } nije klju skupa entiteta skup atributa { nazPred, nastProg } jest klju skupa entiteta

  • FER - Zagreb Baze podataka 2011/2012 32

    Modeliranje stvarnog svijeta

    Modeliranje stvarnog svijeta predstavlja preslikavanje stvarnog svijeta u oblik pogodan za raunalnu obradu;

    Baza podataka nekog informacijskog sustava predstavlja sliku stvarnog organizacijskog sustava;

    Stvarni svijet, zbog njegove sloenosti, ne moemo prikazati sa svim detaljima;

    Stvarni svijet predstavlja se pojednostavnjenim, nadomjesnim modelom;

    Model stvarnog svijeta predstavlja se uz pomo nekog formalnog sustava;

    Model podataka je formalni sustav koji koristimo kod modeliranja baza podataka

  • FER - Zagreb Baze podataka 2011/2012 33

    Model podataka (Data Model) Model podataka je formalni sustav koji se sastoji od:

    skupa objekata - osnovnih elemenata (koncepata) baze podataka

    skupa operacija koje se provode nad objektima skupa integritetskih ogranienja (integrity constraints)

    implicitno ili eksplicitno definiraju skup konzistentnih stanja podataka, promjena stanja, ili oboje

    Povijesni razvoj modela podataka: Hijerarhijski model Mreni model Relacijski model ER model Objektni model Objektno-relacijski model

  • FER - Zagreb Baze podataka 2011/2012 34

    Relacijski model podataka objekti elementi skupa objekata u relacijskom modelu podataka su relacije relacija je skup n-torki

    sifPred nazPred ectsBod nastProg31503 Baze podataka 6.0 FER-2

    1228 Baze podataka 5.0 FER-119670 Matematika 1 7.0 FER-221006 Fizika 1 6.0 FER-2

    90 Baze podataka 5.0 ETF-4

    shema relacije obuhvaa naziv relacijske sheme (PREDMET) i skup atributa: ( sifPred, nazPred, ectsBod, nastProg )

    n-torke: opisuju pojedinane entitete

    elementarni podatak

    atributi

    PREDMET

  • FER - Zagreb Baze podataka 2011/2012 35

    Relacijski model podataka operacije operacija "selekcija" u relacijskom modelu podataka:

    sifPred nazPred ectsBod nastProg31503 Baze podataka 6.0 FER-2

    1228 Baze podataka 5.0 FER-119670 Matematika 1 7.0 FER-221006 Fizika 1 6.0 FER-2

    90 Baze podataka 5.0 ETF-4

    predmet

    ectsBod=6.0 (predmet) sifPred nazPred ectsBod nastProg31503 Baze podataka 6.0 FER-221006 Fizika 1 6.0 FER-2

    ostale operacije u relacijskom modelu podataka unija, razlika, presjek, projekcija, ...

  • FER - Zagreb Baze podataka 2011/2012 36

    Relacijski model podataka integritetska ogranienja

    pravilo domenskog integriteta u relacijskom modelu podataka: sifPred nazPred ectsBod nastProg

    31503 Baze podataka 6.0 FER-21228 Baze podataka 5.0 FER-1

    19670 Matematika 1 7.0 FER-221006 Fizika 1 6.0 FER-2

    90 Baze podataka 5.0 ETF-4

    predmet

    domenski integritet: vrijednost atributa sifPred mora biti iz intervala [1, 999999] vrijednost atributa ectsBod mora biti iz intervala [0.5, 30.0] ...

    ostala integritetska ogranienja u relacijskom modelu podataka: entitetski, referencijski, ...

  • FER - Zagreb Baze podataka 2011/2012 37

    ER model podataka

    Model entiteti-vezeEntity-Relationship Model

    Postrelacijski model Zadrava dobra svojstva relacijskog modela Objekti ER modela su entiteti i njihove meusobne veze

    DJELAT

    MbrDjelat PrezDjelat

    ImeDjelat

    ODJEL

    SifOdjel

    NazOdjelRadi

  • FER - Zagreb Baze podataka 2011/2012 38

  • FER - Zagreb Baze podataka 2011/2012 39

    Arhitektura baze podataka

  • FER - Zagreb Baze podataka 2011/2012 40

    Fizika i logika organizacija podataka

    aplikacijski programer

    logiki opis

    fiziki opis

    SUBP

  • FER - Zagreb Baze podataka 2011/2012 41

    aplikacijski programer

    A

    C

    Fizika i logika organizacija podataka

    B

  • FER - Zagreb Baze podataka 2011/2012 42

    Arhitektura baze podataka

    Unutarnja razina

    Konceptualna razina

    Vanjska razina

    KONCEPTUALNA SHEMA

    INTERNA SHEMA

    preslikavanja: konceptualna eksterne sheme

    preslikavanje: konceptualna interna shema

    Fizika pohrana podataka

    korisnici / aplikacije

    ...

    ...

    EKSTERNA SHEMA 3

    EKSTERNA SHEMA 2

    EKSTERNA SHEMA 1

  • FER - Zagreb Baze podataka 2011/2012 43

    Arhitektura baze podataka

    Shema (struktura) baze podataka se opisuje na tri razine apstrakcije: Na konceptualnoj razini opisuje se

    KONCEPTUALNA SHEMA Na unutarnjoj razini opisuje se

    INTERNA SHEMA Na vanjskoj razini opisuju se

    EKSTERNE SHEME

    Jedna baza podataka ima jednu konceptualnu, jednu internu i (najee) vie eksternih shema

    Shema baze podataka se relativno rijetko mijenja Sadraj ili instanca baze podataka (skup svih podataka baze

    podataka u odreenom trenutku) se ESTO mijenja

  • FER - Zagreb Baze podataka 2011/2012 44

    Konceptualna shema

    esto se koristi i naziv LOGIKA SHEMA sadri opis svih entiteta i veza, atributa, domena i

    integritetska ogranienja konceptualna shema se moe opisati koritenjem

    modela podataka, npr. relacijskog ili ER modela

    RAUNKLIJENT

    prezKlijent

    mbrKlijent

    imeKlijentadrKlijent brRac stanjeRac

  • FER - Zagreb Baze podataka 2011/2012 45

    Interna shema

    opisuje detalje fizike strukture pohrane i metode pristupa podacima: kako su podaci pohranjeni i koje se metode koriste za pristup podacima

    RAUNKLIJENT

    prezKlijent

    mbrKlijent

    imeKlijentadrKlijent brRac stanjeRac

    konceptualna interna shema

    INTERNA SHEMA

    Fizika pohrana podataka

  • FER - Zagreb Baze podataka 2011/2012 46

    Fizika nezavisnost podataka

    izmjena interne sheme ne utjee na konceptualnu shemu

    RAUNKLIJENT

    prezKlijent

    mbrKlijent

    imeKlijentadrKlijent brRac stanjeRac

    INTERNA SHEMA

    Fizika pohrana podataka

    konceptualna interna shema

  • FER - Zagreb Baze podataka 2011/2012 47

    Eksterna shema

    eksterna shema opisuje "pogled" na dio baze podataka koji je namijenjen specifinoj grupi korisnika

    osnova za opis eksternih shema je konceptualna shema

    RAUNKLIJENT

    prezKlijent

    mbrKlijent

    imeKlijentadrKlijent brRac stanjeRac

    konceptualna eksterna shema

    imeKlijentprezKlijentadrKlijent

    mbrKlijentimeKlijentprezKlijent

    mbrKlijentbrRacstanjeRac

    konceptualna eksterna shema

  • FER - Zagreb Baze podataka 2011/2012 48

    Logika nezavisnost podataka

    izmjena konceptualne sheme ne mora izazvati izmjenu eksternih shema izmjena konceptualne sheme ne utjee na korisnike i aplikacijske programe koji ih koriste

    imeKlijentprezKlijentadrKlijent

    mbrKlijentimeKlijentprezKlijent

    mbrKlijentbrRacstanjeRac

    RAUNKLIJENT

    prezKlijent

    mbrKlijent

    imeKlijentadrKlijent brRac datOtvRac

    UPL_ISPL

    vrijeme iznos

    konceptualna eksterna shema konceptualna eksterna shema

  • FER - Zagreb Baze podataka 2011/2012 49

    Sustav za upravljanje bazom podataka - SUBP

    Database Management System - DBMS

  • FER - Zagreb Baze podataka 2011/2012 50

    Sustav za upravljanje bazom podataka - SUBP (Database Management System - DBMS) je programski sustav koji omoguava upravljanje podacima u bazi podataka.SUBP se temelji na odabranom modelu podataka.Prema modelu podataka na kojem se temelje, SUBP-ove dijelimo na:

    hijerarhijske, mrene, relacijske, objektno-relacijske, objektno-orijentirane.

    Sustav za upravljanje bazom podataka

  • FER - Zagreb Baze podataka 2011/2012 51

    sakriva od korisnika detalje fizike pohrane podataka osigurava logiku i fiziku nezavisnost podataka

    omoguuje definiciju i rukovanje podacima DDL - Data Definition Language DML - Data Manipulation Language

    obavlja funkciju zatite podataka integritet podataka pristup podacima - autorizacija, sigurnost kontrola paralelnog pristupa obnova u sluaju razruenja

    obavlja optimiranje upita

    Sustav za upravljanje bazom podataka

  • FER - Zagreb Baze podataka 2011/2012 52

    Jezici baze podataka

    DDL (Data Definition Language) omoguava imenovanje i opis entiteta, atributa, veza i

    pripadnih ogranienja integriteta i pravila sigurnosti koristi se za definiranje nove sheme baze podataka ili

    modificiranje postojee obavljanje DDL operacija rezultira izmjenom sadraja rjenika

    podataka (metapodataka) DML (Data Manipulation Language)

    omoguava koritenje skupa operacija za rukovanje podacima u bazi podataka

    upitni jezik (query language) ne sasvim korektno, pojam se koristi ne samo za operacije

    dohvata podataka, ve i za operacije izmjene, brisanja i unosa podataka

    proceduralni jezici, neproceduralni jezici

  • FER - Zagreb Baze podataka 2011/2012 53

    Zato koristimo sustave za upravljanje bazama podataka?

    Zato ne bismo koristili samo datotene sustave?

  • FER - Zagreb Baze podataka 2011/2012 54

    1. Jednostavan pristup podacimaDatoteni sustav - podaci su raspreni po datotekama koje mogu biti u razliitim formatima. Za dobivanje odgovora na netipina pitanja potrebno je ili dotjerivati stare ili pisati nove programe. Primjer:

    Zato SUBP, a ne samo datoteke?

    Potrebno je nai sve korisnike banke koji ive u podruju s odreenim potanskim brojem. Pretpostavimo da ne postoji gotovi program koji moe izdvojiti traene korisnike, ali postoji program koji vraa sve korisnike. Dva su mogua rjeenja:

    a) slubenik e iz popisa svih korisnika runo izdvojiti one s odreenim potanskim brojem;

    b) trait e se od programera da napie odgovarajui program.

    Niti jedno od ova dva rjeenja nije zadovoljavajue. Svaki put kad se pojavi nova vrsta upita, opet e se morati ponoviti postupak

    SUBP omoguuje fleksibilniji dohvat i izmjenu podataka.

  • FER - Zagreb Baze podataka 2011/2012 55

    2. Upravljanje zalihostima i nekonzistentnouIsti podaci mogu biti pohranjeni u vie datoteka, to moe voditi ka nekonzistentnosti.

    Zato SUBP, a ne samo datoteke?

    Pretpostavimo da se adrese korisnika bankovnog rauna pohranjuju u dvije datoteke (jedna za tekui, a druga za devizni raun). Nakon to je korisnik A promijenio adresu stanovanja, bankovni slubenik promijenio je podatak o adresi u jednoj datoteci, ali je zaboravio promijeniti adresu u drugoj.

    Ako se mjeseni izvjetaji o stanju rauna alju na kunu adresu korisnika na temelju adrese pohranjene u drugoj datoteci, korisnik A nee dobiti izvjetaj na svoju novu adresu.

    SUBP omoguuje bolju kontrolu zalihosti od datotenog sustava.

  • FER - Zagreb Baze podataka 2011/2012 56

    3. Transakcijska obrada

    Zato SUBP, a ne samo datoteke?

    Treba prebaciti 1000 kuna s rauna A na raun B (to je jedna transakcija).

    Ako se dogodi hardverska ili softverska pogreka za vrijeme izvoenja programa, mogue je da se 1000 kuna skine s rauna A, ali se ne uspije prebaciti na raun B, to dovodi do nekonzistentnosti u bazi podataka. Prebacivanje se mora obaviti u potpunosti.

    SUBP obino ima ugraenu podrku za transakcijsku obradu, to je vrlo teko ostvariti u datotenom sustavu.

    4 . Sloeni odnosi meu podacima SUBP omoguuje predstavljanje razliitih odnosa meu

    podacima, definiranje novih odnosa kad se oni pojave te jednostavan dohvat i izmjenu meusobno povezanih podataka

  • FER - Zagreb Baze podataka 2011/2012 57

    5. Istovremeni pristup vie korisnikaSUBP omoguuje veem broju korisnika pristup bazi podataka u isto vrijeme. Pri tome treba osigurati da u sluaju kad vie korisnika koji nastoje promijeniti isti podatak, to se ini na kontrolirani nain tako da rezultat izmjene bude toan i jednoznaan.

    Zato SUBP, a ne samo datoteke?

    Pretpostavimo da slubenici dvije turistike agencije nastoje istovremeno rezervirati isto sjedalo u zrakoplovu. SUBP mora osigurati da rezervaciju odreenog sjedala u odreenom trenutku moe obavljati najvie jedan slubenik.

    U datotenom sustavu je kontrolu istovremenog pristupa daleko tee provesti.

  • FER - Zagreb Baze podataka 2011/2012 58

    6. Autorizirani pristup Kad vie korisnika koristi veu bazu podataka, obino nee

    svim korisnicima biti omoguen pristup svim podacima u bazi.

    Na primjer, kako su podaci o financijama povjerljivi, samo e se autoriziranim osobama omoguiti pristup tim podacima.

    Neki korisnici e moi samo pregledavati podatke, dok e ih drugi moi i pregledavati i mijenjati.

    SUBP omoguava odreivanje naina na koji e razliiti korisnici pristupati podacima.

    U datotenom sustavu je jednostavno odrediti je li neka datoteka namijenjena za itanje, pisanje ili oboje, no nije jednostavno definirati razliit nain pristupa podacima za razliite korisnike.

    Zato SUBP, a ne samo datoteke?

  • FER - Zagreb Baze podataka 2011/2012 59

    Uloge osoba u ivotnom ciklusu baze podataka

  • FER - Zagreb Baze podataka 2011/2012 60

    Baze podataka - uloge

    1. Projektanti baze podataka razgovaraju s korisnicima da bi saznali njihove zahtjeve oblikuju bazu podataka prema zahtjevima korisnika definirajui

    strukturu za pohranu podataka (tj. model baze podataka)

    2. Analitiari sustava i programeri aplikacija Analitiari sustava prikupljaju zahtjeve korisnika (npr.

    bankovnih slubenika) i piu specifikacije za razvoj aplikacija za pristup bazi podataka

    Programeri na temelju tih specifikacija izrauju programe te ih testiraju, dokumentiraju i odravaju; moraju biti upoznati sa svojstvima i mogunostima SUBP-a

  • FER - Zagreb Baze podataka 2011/2012 61

    Baze podataka - uloge

    3. Administratori baze podataka instaliraju i nadograuju SUBP odgovorni su za autorizaciju pristupa bazi podataka organiziraju, nadziru i optimiziraju koritenje baze

    4. Korisnici Pristupaju bazi tako da postavljaju upite, mijenjaju podatke i

    izrauju izvjetajeRazlikujemo nekoliko skupina korisnika: korisnici koji povremeno pristupaju bazi koristei upitni jezik korisnici koji esto koriste bazu postavljajui standardne upite i

    radei standardne promjene koristei programirana suelja (npr. slubenici u banci, turistikim agencijama...)

    sofisticirani korisnici koji su dobro upoznati s bazom podataka i koriste je na sloeniji nain (npr. inenjeri, znanstvenici, poslovni analitiari)

  • 2. Relacijski model podataka

  • FER - Zagreb Baze podataka 2011/2012 63

    Relacijski model podataka E. F. Codd: "A Relational Model of Data for Large Shared

    Data Banks", Comm. ACM 13, No. 6, June 1970.

    Ciljevi relacijskog modela podataka: osigurati visoki stupanj

    nezavisnosti podataka postaviti temelje za rjeavanje

    problema semantike, konzistentnosti i redundancije podataka (normalizacija)

    omoguiti razvoj DML jezika temeljenih na operacijama nad skupovima

    Dr. Edgar Frank Codd (1923-2003)

  • FER - Zagreb Baze podataka 2011/2012 64

    Relacijski model podataka Vani projekti u ranim 70-tim: jezik ISBL temeljen na relacijskoj algebri,

    jezici SQUARE i SEQUEL (DBMS System R) temeljeni na relacijskoj algebri i predikatnom raunu te Query-By-Example temeljen na predikatnom raunu nad domenama razvojem prototipova dokazuje se praktina upotrebljivost relacijskog

    modela postavljaju se temelji za rjeavanje problema implementacije u

    podrujima upravljanja transakcijama, paralelnog pristupa, obnove, optimizacije upita, sigurnosti i konzistentnosti podataka

    Projekti su potaknuli: razvoj strukturiranog upitnog jezika (SQL) razvoj komercijalnih relacijskih sustava za upravljanje bazama

    podataka (RDBMS) Ingres, Oracle, IBM DB2, Informix, ... danas: u upotrebi je nekoliko stotina razliitih RDBMS sustava

  • FER - Zagreb Baze podataka 2011/2012 65

    Relacijski model podataka objekti u relacijskom modelu podataka su RELACIJE

    pbr nazMjesto sifZup42000 Varadin 751000 Rijeka 252100 Pula 451300 Delnice 242230 Ludbreg 7

    sifZup nazZup2 Primorsko-goranska7 Varadinska4 Istarska

    mjesto zupanija

    neformalna definicija: relacija je imenovana dvodimenzionalna tablica atribut je imenovani stupac relacije domena je skup doputenih vrijednosti atributa

    nad istom domenom moe biti definiran jedan ili vie atributa n-torka (tuple) je redak relacije

  • FER - Zagreb Baze podataka 2011/2012 66

    Matematika relacija Relacija R definirana nad skupovima D1, D2, ..., Dn je

    podskup Kartezijevog produkta skupova D1, D2, ..., DnR D1 D2 ... Dn

    IvaHrvojeIvan

    D1NovakKolar

    D219871989

    D3 (Iva, Novak, 1987)(Iva, Novak, 1989)(Iva, Kolar, 1987)(Iva, Kolar, 1989)

    (Hrvoje, Novak, 1987)(Hrvoje, Novak, 1989)(Hrvoje, Kolar, 1987)(Hrvoje, Kolar, 1989)(Ivan, Novak, 1987)(Ivan, Novak, 1989)(Ivan, Kolar, 1987)(Ivan, Kolar, 1989)

    D1 D2 D3

    (Iva, Novak, 1989)(Hrvoje, Novak, 1987)

    (Ivan, Kolar, 1989)

    R

  • FER - Zagreb Baze podataka 2011/2012 67

    Relacijska shema (formalna definicija) Neka su zadani atributi A1, A2, ..., An. Relacijska shema R

    (intenzija) je imenovani skup atributaR = { A1, A2, ..., An }

    radi pojednostavljenja, koristit e se i sljedea notacija: R = A1 A2 ... An

    uoite: poredak atributa u shemi relacije je nebitanR = { A1, A2, A3 } { A3, A1, A2 }

    Primjer: relacijska shema MJESTOMJESTO = { pbr, nazMjesto, sifZup }

  • FER - Zagreb Baze podataka 2011/2012 68

    Relacijska shema (primjer) Zadani su atributi pbr, nazMjesto, sifZup

    Relacijska shema MJESTO = { pbr, nazMjesto, sifZup }

    identina je relacijskoj shemiMJESTO = { sifZup, pbr, nazMjesto }

  • FER - Zagreb Baze podataka 2011/2012 69

    n-torka (formalna definicija) Neka je R = { A1, A2, ..., An } relacijska shema;

    neka su D1, D2, ..., Dn domene atributa A1, A2, ..., An;n-torka t definirana na relacijskoj shemi R je skup parova oblika atribut :vrijednostAtributa

    t = { A1:v1, A2:v2, ..., An:vn },pri emu je v1 D1, v2 D2, ..., vn Dn

    Uoite: poredak elemenata n-torke nije bitan{ A1:v1, A2:v2, A3:v3 } { A3:v3, A1:v1, A2:v2 }

    Ponekad e se koristiti pojednostavljena notacija: pretpostavi li se da poredak vrijednosti atributa odgovara "poretku atributa" u relacijskoj shemi, n-torka se moe prikazati na sljedei nain:

    t = >

  • FER - Zagreb Baze podataka 2011/2012 70

    n-torka (primjer) Zadana je relacijska shema OSOBA = { matBr, ime, prez }, pri emu su domene atributa:

    dom (matBr) = {1234, 1235, 1236, 1237 }dom (ime) = { Iva, Hrvoje, Ivan }dom (prez) = { Novak, Kolar }t1 = { matBr:1234, ime:Iva, prez:Novak }t2 = { matBr:1236, ime:Hrvoje, prez:Novak }t3 = { matBr:1237, ime:Ivan, prez:Kolar }

    n-torka t1 se jednako ispravno moe napisati na sljedei nain (poredak elemenata n-torke je nebitan)

    t1 = { ime:Iva, prez:Novak, matBr:1234 } pojednostavljena notacija:

    t1 = >

  • FER - Zagreb Baze podataka 2011/2012 71

    Relacija (formalna definicija) Neka je R = { A1, A2, ..., An } relacijska shema;

    neka su D1, D2, ..., Dn domene atributa A1, A2, ..., An;relacija r (instanca relacije) definirana na shemi relacije R je skup n-torki koje su definirane na relacijskoj shemi R

    kad se eli naglasiti da je relacija r definirana na shemi relacije R, kao oznaka za relaciju koristi se

    r(R) ili r( { A1, A2, ..., An } ) ili r( A1 A2 ... An )

    relacijska shema R: mijenja se relativno rijetko instanca relacije r: predstavlja trenutnu vrijednost relacije i esto se mijenja (pri unosu/brisanju/izmjeni podataka)

  • FER - Zagreb Baze podataka 2011/2012 72

    Relacija (primjer) Zadana je relacijska shema STUDENT = { matBr, prez, slika }, pri emu

    su domene atributa: dom (matBr) = { 100, 102, 107, 111, 135 } dom (prez) = { Novak, Kolar, Horvat, Ban } dom (slika) = { , , }

    student(STUDENT) = { { matBr:102, prez:Novak, slika: },{ matBr:135, prez:Ban, slika: } }

    IDENTINA RELACIJA (poredak n-torki i lanova n-torki je nebitan):student(STUDENT) = { { prez:Ban, matBr:135, slika: },

    { slika: , matBr:102, prez:Novak } }

  • FER - Zagreb Baze podataka 2011/2012 73

    Svojstva relacija relacija posjeduje ime koje je jedinstveno unutar sheme

    baze podataka atributi unutar relacije imaju jedinstvena imena (zato?) jedan atribut moe poprimiti vrijednost iz samo jedne

    domene u jednoj relaciji ne postoje dvije jednake n-torke (zato?) redoslijed atributa unutar relacije je nebitan (zato?) redoslijed n-torki unutar relacije je nebitan (zato?)

    sifZup nazZup2 Primorsko-goranska7 Varadinska4 Istarska

    zupanijanazZup sifZupVaradinska 7Istarska 4Primorsko-goranska 2

    zupanija

  • FER - Zagreb Baze podataka 2011/2012 74

    Relacija (primjer)

    student(STUDENT) = { { prez:Ban, matBr:135, slika: },{ slika: , matBr:102, prez:Novak } }

    pojednostavljenje prikaza relacije (vizualizacija relacije tablicom)

    matBr prez slika102 Novak135 Ban

    student (STUDENT)

  • FER - Zagreb Baze podataka 2011/2012 75

    A-vrijednost n-torke, X-vrijednost n-torke Oznaka t(A) predstavlja vrijednost koju atribut A poprima u

    n-torki t. t(A) se naziva A-vrijednost n-torke t. Primjer:

    t = { matBr:102, prez:Novak, slika: }t (prez) = Novak

    Neka je X R. n-torka t reducirana na skup atributa Xnaziva se X-vrijednost n-torke t i oznaava s t(X)

    Primjer:t = { matBr:102, prez:Novak, slika: }X = { matBr, prez } X Rt(X) = t( { matBr, prez } ) = { matBr:102, prez:Novak }

  • FER - Zagreb Baze podataka 2011/2012 76

    Stupanj i kardinalnost relacije stupanj relacije: broj atributa (stupaca) - degree kardinalnost relacije: broj n-torki (redaka) - cardinality

    pbr nazMjesto sifZup42000 Varadin 751000 Rijeka 252100 Pula 451300 Delnice 242230 Ludbreg 7

    mjesto

    kardinalnost = 5

    stupanj = 3 Oznake:deg(mjesto) = 3card(mjesto) = 5

  • FER - Zagreb Baze podataka 2011/2012 77

    Shema i instanca baze podataka

    Shema baze podataka je skup relacijskih shemaRRRR = { R1, R2, ..., Rn }

    oito, relacijske sheme u jednoj shemi baze podataka moraju imati razliita imena

    Instanca baze podataka definirana na shemi baze podataka RRRR = { R1, R2, ..., Rn } je skup instanci relacija

    rrrr = { r1(R1), r2(R2), ..., rn(Rn) }

    shema baze podataka se relativno rijetko mijenja instanca baze podataka se esto mijenja

  • FER - Zagreb Baze podataka 2011/2012

    Operacije u relacijskom modelu podataka

  • FER - Zagreb Baze podataka 2011/2012 79

    Relacijska algebra Operacije relacijske algebre su:

    unija (union) presjek (intersection)\ razlika (set difference) dijeljenje (division)pipipipi projekcija (projection) selekcija (selection) Kartezijev produkt (Cartesian product) preimenovanje (renaming)>< spajanje (join)

    agregacija, grupiranjePrimjer: r4 = A=x B=y (r1 (r2 r3))

    Karakteristika relacijske algebre - proceduralnost - navodi se redoslijed operacija koje se provode nad relacijama

  • FER - Zagreb Baze podataka 2011/2012 80

    Predikatni raun

    Operacije se specificiraju navoenjem predikatar = { t | F(t) }

    t je varijabla koja predstavlja: n-torke - n-torski raun

    rezultat r je skup n-torki t za koje je vrijednost predikata F istina domene - domenski raun

    rezultat je skup domena t za koje je vrijednost predikata F istina Primjer:

    r4 = { t | (r1(t) ((r2(t) r3(t))) t(A)=x t(B)=y } Predikatni raun je neproceduralan

    ne navodi se redoslijed operacija navode se predikati koje n-torke (domene) moraju zadovoljavati

  • FER - Zagreb Baze podataka 2011/2012 81

    SQL

    Kratki pogled

  • FER - Zagreb Baze podataka 2011/2012 82

    SQL - Kratki pogled

    SQL (Structured Query Language) je temeljen na relacijskom modelu podataka.

    nastao je na temelju jezika SEQUEL temelji se na predikatnom raunu i relacijskoj algebri proglaen standardnim jezikom za relacijske sustave objekti u SQL-u su tablice, a ne (formalno definirane)

    relacije poredak atributa (stupaca) u nekim je sluajevima znaajan u tablici ili rezultatu operacija nad tablicama mogua je pojava

    dvije ili vie istih n-torki ipak, postoje naini kako se to moe sprijeiti

  • FER - Zagreb Baze podataka 2011/2012 83

    SQL - Kratki pogled

    kreiranje nove instance baze podataka (kreiranje baze podataka) jedan SUBP moe istovremeno upravljati s vie baza podataka

    CREATE DATABASE studAdmin;

    CREATE DATABASE knjiznica;

    SUB

    P

    Rjenik podataka sadri opise relacijskih shema, integritetskih ogranienja, ...

    ...

    Baza podatakastudAdmin

    Rjenikpodataka

    Baza podatakaknjiznica Rjenikpodataka

    DROP DATABASE knjiznica;

  • FER - Zagreb Baze podataka 2011/2012 84

    SQL - Kratki pogled

    opisivanje relacijske sheme (kreiranje relacije) kreira praznu relaciju ujedno je mogue definirati i integritetska ogranienja

    CREATE TABLE mjesto (pbr INTEGER

    , nazMjesto CHAR(30), sifZup SMALLINT);

    pbr nazMjesto sifZupmjesto

    DROP TABLE mjesto;

  • FER - Zagreb Baze podataka 2011/2012 85

    SQL - Kratki pogled

    upisivanje novih n-torki u relaciju

    pbr nazMjesto sifZup42230 Ludbreg 742000 Varadin 752100 Pula 4

    mjestoINSERT INTO mjesto

    VALUES (42000, 'Varadin', 7);

    INSERT INTO mjestoVALUES (52100, 'Pula', 4);

    INSERT INTO mjestoVALUES (42230, 'Ludbreg', 7);

    Treba li poredak n-torki u relaciji biti u skladu s redoslijedom upisa?

    pbr nazMjesto sifZupmjesto

  • FER - Zagreb Baze podataka 2011/2012 86

    SQL - Kratki pogled

    dohvat podataka iz relacijepbr nazMjesto sifZup42230 Ludbreg 742000 Varadin 752100 Pula 4

    mjesto

    SELECT * FROM mjestoWHERE sifZup = 7;

    dohvat podataka o mjestima ija ifra upanije ima vrijednost 7

    pbr nazMjesto sifZup42000 Varadin 742230 Ludbreg 7

  • FER - Zagreb Baze podataka 2011/2012 87

    SQL - Kratki pogled

    izmjena vrijednosti atributa u relaciji

    UPDATE mjestoSET nazMjesto = 'VARADIN'WHERE pbr = 42000;

    naziv mjesta s potanskim brojem 42000 promijeniti u VARADIN

    pbr nazMjesto sifZup42230 Ludbreg 742000 VARADIN 752100 Pula 4

    mjesto

    pbr nazMjesto sifZup42230 Ludbreg 742000 Varadin 752100 Pula 4

    mjesto

  • FER - Zagreb Baze podataka 2011/2012 88

    SQL - Kratki pogled

    brisanje n-torki iz relacije

    DELETE FROM mjestoWHERE sifZup = 7;

    obrisati mjesta za koje ifra upanije ima vrijednost 7

    pbr nazMjesto sifZup52100 Pula 4

    mjesto

    pbr nazMjesto sifZup42230 Ludbreg 742000 VARADIN 752100 Pula 4

    mjesto

  • FER - Zagreb Baze podataka 2011/2012 89

    Relacijska algebra

  • FER - Zagreb Baze podataka 2011/2012 90

    Relacijska algebra Unarne operacije

    projekcija, selekcija, preimenovanje agregacija, grupiranje

    Binarne operacije skupovske operacije (set operations)

    temelje se na relacijama kao skupovima n-torki unija, presjek, razlika

    ostale binarne operacije Kartezijev produkt, dijeljenje, spajanje

  • FER - Zagreb Baze podataka 2011/2012 91

    Relacijska algebra obavljanje operacije ne utjee na operande, npr.

    r3 = r1 r2 obavljanjem prethodne operacije nastaje nova relacija r3,

    a relacije r1 i r2 se pri tome ne mijenjaju operandi su relacije, a rezultat obavljanja operacije je uvijek

    relacija. To znai: skup relacija je zatvoren s obzirom na operacije

    relacijske algebre ta injenica omoguava da se rezultat jedne operacije

    upotrijebi kao operand u sljedeoj operaciji, to omoguava formiranje sloenih izraza

    r5 = (r1 r2) (r3 >< r4)

  • FER - Zagreb Baze podataka 2011/2012 92

    Unijska kompatibilnost Dvije relacije su unijski kompatibilne ukoliko vrijedi:

    relacije su istog stupnja i

    korespondentni atributi su definirani nad istim domenama

    matBr ime prez12345 Ivo Kolar13254 Ana Horvat

    polozioMatemmbr prezSt imeSt92632 Ban Jura67234 Novak Iva

    polozioProgr relacije su istog stupnja dom (matBr) = dom(mbr) dom (ime) = dom(imeSt) dom (prez) = dom(prezSt)

    kod ocjene jesu li relacije unijski kompatibilne poredak atributa nije bitan imena atributa nisu bitna

    relacije su unijski kompatibilne

  • FER - Zagreb Baze podataka 2011/2012 93

    Unijska kompatibilnost dvije relacije koje imaju jednak broj atributa i jednaka imena

    atributa ne moraju ujedno biti unijski kompatibilne

    oznaka nazivB-747 Boeing 747A-360 Airbus 360

    zrakoplovoznaka nazivZE emljaPR Perec

    pecivo

    relacije su istog stupnja dom (zrakoplov.oznaka) dom(pecivo.oznaka) dom (zrakoplov.naziv) dom(pecivo.naziv)

    notacija imeRelacije.imeAtributa se esto koristi kada je potrebno razlikovati istoimene atribute razliitih relacija

    relacije NISU unijski kompatibilne

  • FER - Zagreb Baze podataka 2011/2012 94

    Skupovske operacije: unija, presjek, razlika

    Skupovske operacije (unija, presjek, razlika) mogu se obavljati iskljuivo nad UNIJSKI KOMPATIBILNIM relacijama

  • FER - Zagreb Baze podataka 2011/2012 95

    Unija Rezultat operacije r1 r2 je relacija ije su n-torke elementi

    relacije r1 ili elementi relacije r2 ili elementi obje relacije. n-torke koje su elementi obje relacije u rezultatu se pojavljuju

    samo jednom (jer relacija je SKUP n-torki)

    mbr ime prez100 Ivan Kolar102 Ana Novak103 Tea Ban107 Jura Horvat

    polozioMatem

    polozioProgr

    polozioBaremJedan

    polozioBaremJedan = polozioMatem polozioProgr

    studenti koji su poloili iliMatematiku iliProgramiranje ilioba predmeta

    r1 r2 r2 r1

    mbr ime prez102 Ana Novak105 Rudi Kolar107 Jura Horvat

    mbr ime prez100 Ivan Kolar102 Ana Novak103 Tea Ban105 Rudi Kolar107 Jura Horvat

  • FER - Zagreb Baze podataka 2011/2012 96

    Presjek Rezultat operacije r1 r2 je relacija ije su n-torke elementi

    relacije r1 i elementi relacije r2

    polozioObastudenti koji su poloili i Matematiku i Programiranje

    polozioOba = polozioMatem polozioProgr

    r1 r2 r2 r1

    mbr ime prez100 Ivan Kolar102 Ana Novak103 Tea Ban107 Jura Horvat

    polozioMatem

    polozioProgrmbr ime prez102 Ana Novak105 Rudi Kolar107 Jura Horvat

    mbr ime prez102 Ana Novak107 Jura Horvat

  • FER - Zagreb Baze podataka 2011/2012 97

    Razlika

    Rezultat operacije r1 \ r2 je relacija ije su n-torke elementi relacije r1 i nisu elementi relacije r2

    studenti koji su poloili Matematiku, ali nisu poloili Programiranje

    polozioSamoMatem

    polozioSamoMatem = polozioMatem \ polozioProgr

    r1 \ r2 r2 \ r1

    mbr ime prez100 Ivan Kolar102 Ana Novak103 Tea Ban107 Jura Horvat

    polozioMatem

    polozioProgrmbr ime prez102 Ana Novak105 Rudi Kolar107 Jura Horvat

    mbr ime prez100 Ivan Kolar103 Tea Ban

    polozioSamoProgrmbr ime prez105 Rudi Kolar

    polozioSamoProgr = polozioProgr \ polozioMatem

  • FER - Zagreb Baze podataka 2011/2012 98

    TO AKO SE IMENA KORESPONDENTNIH ATRIBUTA RAZLIKUJU Unija, presjek, razlika: u sluajevima kada su relacije unijski

    kompatibilne, ali se u relacijama koriste razliita imena korespondentnih atributa, primjenjuje se sljedei dogovor(konvencija): kao imena atributa u rezultantnoj relaciji koriste se imena atributa prvog operanda

    mbr imeSt prezSt100 Ivan Kolar102 Ana Novak103 Tea Ban107 Jura Horvat

    polozioMatem

    polozioProgrmbr ime prez102 Ana Novak105 Rudi Kolar107 Jura Horvat

    polozioOba

    polozioOba = polozioMatem polozioProgr

    mbr imeSt prezSt102 Ana Novak107 Jura Horvat

  • FER - Zagreb Baze podataka 2011/2012 99

    Zadaci za vjebu zadane su unijski kompatibilne relacije

    m (mbr ime prez) studenti koji su poloili Matematiku d (mbr ime prez) studenti koji su poloili Dig. logiku p (mbr ime prez) studenti koji su poloili Programiranje

    napisati izraze relacijske algebre koji odreuju relacije koje sadre studente (tonije reeno n-torke):a) koji su poloili sva tri predmetab) koji su poloili ili Matematiku ili Digitalnu logiku, ali ne oba

    predmeta (ekskluzivni ili)c) koji su poloili tono jedan (bilo koji) od ta tri predmetad) koji su poloili bilo koja dva predmeta (ali nisu poloili trei)

  • FER - Zagreb Baze podataka 2011/2012 100

    Dijeljenje (division) Zadane su relacije r(R) i s(S). Neka je S R. Rezultat operacije

    r s je relacija sa shemom P = R \ S. n-torka tr(P) se pojavljuje u rezultatu ako i samo ako za n-torku trr vrijedi da se tr(P) u relaciji r pojavljuje u kombinaciji sa svakom n-torkom tsspolozenmbrSt sifPred

    100 1100 2101 1101 2101 3102 2102 3103 1103 2103 3104 3

    predmetsifPred

    123

    poloziliSve = polozen predmetpoloziliSvembrSt

    101103

    studenti koji su poloili sve predmete sa iframa u relaciji predmet

  • FER - Zagreb Baze podataka 2011/2012 101

    Projekcija Zadana je relacija r(R). Neka je skup atributa { A1, A2, ..., Ak } R Obavljanjem operacije pipipipiA1, A2, ..., Ak(r) dobiva se relacija s sa

    shemom { A1, A2, ..., Ak } koja sadri vertikalni podskup relacije r deg(s) = k card(s) card(r) (jer se eliminiraju duplikati)

    A B C D

    s = pipipipiB, C(r)

    r

    izdvajanje vertikalnog podskupa

    eliminacija duplikata

    B C

    B Cs

    "meurezultat"

  • FER - Zagreb Baze podataka 2011/2012 102

    Projekcija (primjer)tenor grad datumP. Domingo London 15.2.1976P. Domingo New York 27.3.1981P. Domingo London 11.4.1987J. Carreras New York 11.4.1987L. Pavarotti Sydney 22.6.1992L. Pavarotti London 15.2.1976L. Pavarotti Sydney 19.1.1993L. Pavarotti London 14.7.1993

    nastup

    Trai se: u kojim gradovima su nastupali koji tenori

    tenor gradP. Domingo LondonP. Domingo New YorkJ. Carreras New YorkL. Pavarotti SydneyL. Pavarotti London

    tenorGrad

    Relacija nastup: u kojim gradovima su nastupali koji tenori kojeg datuma

    tenorGrad = pipipipitenor,grad(nastup)tenor gradP. Domingo LondonP. Domingo New YorkP. Domingo LondonJ. Carreras New YorkL. Pavarotti SydneyL. Pavarotti LondonL. Pavarotti SydneyL. Pavarotti London

    "me

    ure

    zultat"

  • FER - Zagreb Baze podataka 2011/2012 103

    SQL - Lista za selekciju

    SELECT SELECT List FROM table

    SELECT * FROM mjesto;

    SELECT List je lista za selekciju: dio SELECT naredbe koji odreuje koji e se "stupci" pojaviti u rezultatu

    SELECT mjesto.pbr, mjesto.nazMjesto, mjesto.sifZup

    FROM mjesto; uz ime atributa moe se navesti ime relacije (radi izbjegavanja

    dvosmislenosti u sluajevima kada se podaci dohvaaju istovremeno iz vie relacija ija se imena atributa podudaraju)

    imeRelacije.imeAtributa u sluajevima kada takva dvosmislenost ne postoji, ime relacije

    se moe (ali ne mora) ispustiti

    pbr nazMjesto sifZup42000 Varadin 752100 Pula 4

    mjesto

  • FER - Zagreb Baze podataka 2011/2012 104

    SQL - Lista za selekciju

    SELECT nazMjesto, pbr

    FROM mjesto;

    nazMjesto pbrVaradin 42000Pula 52100

    pbr nazMjesto sifZup42000 Varadin 752100 Pula 4

    mjesto

    u listi za selekciju se ne moraju navesti svi atributi relacije navedene u FROM dijelu naredbe:

    sifZupanija nazZup7 Varadinska4 Istarska

    zupanija

    u listi za selekciju se mogu navesti samo oni atributi koji se nalaze u dosegu SELECT naredbe, tj. atributi relacije koja je navedena u FROM dijelu naredbe:

    SELECT nazMjesto, pbr, nazZup

    FROM mjesto;

    Neispravna naredba

  • FER - Zagreb Baze podataka 2011/2012 105

    SQL - Projekcija za ispravno obavljanje projekcije nije dovoljno u listi za selekciju

    samo navesti imena atributa prema kojima se obavlja projekcija:SELECT tenor

    , gradFROM nastup;

    primjer koji ujedno pokazuje kako rezultat SQL naredbe ne mora uvijek biti relacija

    tenor gradP. Domingo LondonP. Domingo New YorkP. Domingo LondonJ. Carreras New YorkL. Pavarotti SydneyL. Pavarotti LondonL. Pavarotti SydneyL. Pavarotti London

    SELECT DISTINCT tenor, grad

    FROM nastup;

    tenor gradP. Domingo LondonP. Domingo New YorkJ. Carreras New YorkL. Pavarotti SydneyL. Pavarotti London

    pipipipitenor,grad(nastup)

    Neispravna projekcija

    Ispravna projekcija

  • FER - Zagreb Baze podataka 2011/2012 106

    Selekcija Zadana je relacija r(R). Neka je F predikat (formula, uvjet,

    condition) koji se sastoji od operanada i operatora operandi su:

    imena atributa iz R konstante

    operatori su: operatori usporedbe: > logiki operatori:

    Obavljanjem operacije F(r) dobiva se relacija sa shemom R koja sadri one n-torke relacije r za koje je vrijednost predikata F istina (true)

  • FER - Zagreb Baze podataka 2011/2012 107

    Selekcija (primjer)

    Za svaku pojedinu n-torku relacije: vrijednosti atributa uvrtavaju se u predikat - uvrtavanjem

    vrijednosti u predikat dobiva se sud onda i samo onda kada je vrijednost dobivenog suda

    istina (true), n-torka se pojavljuje u rezultatu selekcije

    matBr ime prez postBr100 Ivan Kolar 52000102 Ana Horvat 10000105 Jura Novak 21000107 Ana Ban 51000

    student

    rezultat = ime = 'Ana' postBr >>>> 31000 (student)

    matBr ime prez postBr100 Ivan Kolar 52000102 Ana Horvat 10000107 Ana Ban 51000

    'Ivan' = 'Ana' 52000 > 31000 true'Ana' = 'Ana' 10000 > 31000 true'Jura' = 'Ana' 21000 > 31000 false'Ana' = 'Ana' 51000 > 31000 true

    rezultat

  • FER - Zagreb Baze podataka 2011/2012 108

    SQL - Selekcija SELECT SELECT List FROM table

    [WHERE Condition]

    Uvjet (Condition) se sastoji od operanada i operatora operandi su:

    imena atributa iz relacije table konstante

    operatori su: operatori usporedbe: < >= logiki operatori: AND OR NOT

    Vrijednosti svake n-torke iz relacije table se uvrtavaju u Condition (a to je u stvari predikat). Ako je dobiveni sud istinit(true), n-torka se pojavljuje u rezultatu.

  • FER - Zagreb Baze podataka 2011/2012 109

    SQL - Selekcija

    matBr ime prez postBr100 Ivan Kolar 52000102 Ana Horvat 10000105 Jura Novak 21000107 Ana Ban 51000

    student

    ime = 'Ana' postBr >>>> 31000 (student)SELECT * FROM studentWHERE ime = 'Ana'

    OR postBr > 31000;

    matBr ime prez postBr100 Ivan Kolar 52000102 Ana Horvat 10000107 Ana Ban 51000

  • FER - Zagreb Baze podataka 2011/2012 110

    SQL - Projekcija i selekcijamatBr ime prez postBr

    100 Ivan Kolar 52000102 Ana Horvat 10000105 Jura Novak 21000107 Ana Ban 51000

    student

    pipipipiime( ime = 'Ana' postBr >>>> 31000 (student))

    SELECT DISTINCT imeFROM studentWHERE ime = 'Ana'

    OR postBr > 31000;

    matBr ime prez postBr100 Ivan Kolar 52000102 Ana Horvat 10000107 Ana Ban 51000

    imeIvanAna

    "meurezultat"

  • FER - Zagreb Baze podataka 2011/2012 111

    Kartezijev produkt Zadana je relacija r(R) i relacija s(S), pri emu je R S = . Obavljanjem operacije r s dobiva se relacija p(P), P = R S.

    n-torke relacije p se dobivaju spajanjem (ulanavanjem) svake n-torke iz relacije r sa svakom n-torkom iz relacije s

    deg(p) = deg(r) + deg(s) card(p) = card(r) card(s)

  • FER - Zagreb Baze podataka 2011/2012 112

    Kartezijev produkt (primjer)

    studentmbr ime prez100 Ivan Kolar102 Ana Novak103 Tea Ban

    predmetsifra naziv

    1 Programiranje2 Matematika

    upismbr ime prez sifra naziv100 Ivan Kolar 1 Programiranje100 Ivan Kolar 2 Matematika102 Ana Novak 1 Programiranje102 Ana Novak 2 Matematika103 Tea Ban 1 Programiranje103 Tea Ban 2 Matematika

    upis = student predmet

  • FER - Zagreb Baze podataka 2011/2012 113

    SQL - Kartezijev produkt SELECT SELECT List

    FROM table [, table]...[WHERE Condition]

    navede li se u FROM dijelu naredbe vie od jedne relacije, obavlja se operacija Kartezijevog produkta navedenih relacija

    studentmbr ime prez100 Ivan Kolar102 Ana Novak103 Tea Ban

    predmetsifra naziv

    1 Programiranje2 Matematika

    SELECT *FROM student, predmet;

    SELECT student.*, predmet.*FROM student, predmet;

    mbr ime prez sifra naziv100 Ivan Kolar 1 Programiranje100 Ivan Kolar 2 Matematika102 Ana Novak 1 Programiranje102 Ana Novak 2 Matematika103 Tea Ban 1 Programiranje103 Tea Ban 2 Matematika

    student predmet

  • FER - Zagreb Baze podataka 2011/2012 114

    SQL - Kartezijev produkt

    SELECT SELECT ListFROM table [CROSS JOIN table]...[WHERE Condition]

    drugaija sintaksa:

    SELECT *FROM student CROSS JOIN predmet;

    Kartezijev produkt triju relacija:

    SELECT *FROM r1 CROSS JOIN r2 CROSS JOIN r3;

  • FER - Zagreb Baze podataka 2011/2012 115

    Kartezijev produkt to uiniti ukoliko je potrebno obaviti operaciju Kartezijevog

    produkta nad relacijama r(R) i s(S), u sluaju kada R S

    Potrebno je koristiti operaciju preimenovanja

    A B1 a2 b3 c

    r

    B Cc d

    s

    A B B C1 a c 1 a d 2 b c 2 b d 3 c c 3 c d

    NIJE RELACIJA!

  • FER - Zagreb Baze podataka 2011/2012 116

    Preimenovanje (relacije, atributa) Zadana je relacija r({ A1, A2, ..., An })

    preimenovanje relacije: operacijom preimenovanja s(r) dobiva se relacija s koja ima jednaku shemu i sadraj kao relacija r

    preimenovanje relacije i atributa: operacijom preimenovanja s(B1, B2, ..., Bn)(r) dobiva se relacija s ija shema umjesto atributa A1, A2, ..., An sadri atribute B1, B2, ..., Bn, a sadraj relacije s je jednak sadraju relacije r

    A B1 a2 b3 c

    r B Cc d

    s

    p = r s(B2, C)(s) A B B2 C1 a c 1 a d 2 b c 2 b d 3 c c 3 c d

    p

  • FER - Zagreb Baze podataka 2011/2012 117

    SQL - Preimenovanje atributa ukoliko se drugaije ne navede, imena stupaca u rezultatu

    odgovaraju imenima atributa iz liste za selekciju implicitna imena stupaca rezultata se mogu promijeniti

    koritenjem operatora za preimenovanje AS

    sifZupanija nazZup7 Varadinska4 Istarska

    zupanija

    SELECT sifZupanija AS sifraZ, nazZup AS nazZ

    FROM zupanija;

    sifraZ nazZ7 Varadinska4 Istarska

    SELECT sifZupanija sifraZ, nazZup nazZ

    FROM zupanija; rezervirana rije AS

    smije se ispustiti

  • FER - Zagreb Baze podataka 2011/2012 118

    SQL - Preimenovanje atributa Primjer u kojem je potrebno koristiti preimenovanje atributa

    SQL naredba bi bila ispravna i bez preimenovanja, ali tada kao rezultat ne bismo dobili relaciju (jer bi u shemi rezultata postojala dva atributa istog imena)

    A B1 a2 b3 c

    r B Cc d

    s

    A B B2 C1 a c 1 a d 2 b c 2 b d 3 c c 3 c d

    SELECT A, r.B, s.B AS B2, CFROM r, s;

    r s(B2, C)(s)

  • FER - Zagreb Baze podataka 2011/2012 119

    Spajanje uz uvjet ili - spajanje ( - join) Zadane su relacije r(R) i s(S) pri emu je R S = . Neka je F

    predikat oblika r.Ai s.Bj, pri emu je AiR, BjS, a je operator usporedbe iz skupa operatora { , }

    Obavljanjem operacije r >< s dobiva se relacija koja sadri n-torke iz r s za koje je vrijednost predikata F istina (true), odnosno:

    r >< s = F (r s) Umjesto jednostavnog predikata r.Ai s.Bj, moe se koristiti

    sloeni predikat dobiven primjenom logikih operatora nadjednostavnim predikatima oblika r.Ai s.Bj

    Problem spajanja uz uvjet relacija r(R) i s(S) kod kojih je R S , rjeava se na jednak nain kao kod Kartezijevog produkta (koritenjem operatora preimenovanja)

    to moemo rei o stupnju i kardinalnosti rezultata?

    F

    F

  • FER - Zagreb Baze podataka 2011/2012 120

    Spajanje uz uvjet (primjer)linijalet udaljenostCA-825 700LH-412 4800BA-722 15000CA-311 13000

    zrakoplovtip doletB747 13000A320 5400DC-9 3100

    mogunostlet udaljenost tip doletCA-825 700 B747 13000CA-825 700 A320 5400CA-825 700 DC-9 3100LH-412 4800 B747 13000LH-412 4800 A320 5400CA-311 13000 B747 13000

    Linije i zrakoplovi koji na tim linijama mogu letjeti

    mogunost = linija >< zrakoplovdolet udaljenost

  • FER - Zagreb Baze podataka 2011/2012 121

    SQL - Spajanje uz uvjet Koristi se ekvivalencija

    r >< s = F (r s)

    SELECT *FROM linija, zrakoplovWHERE dolet >= udaljenost;

    linijalet udaljenostCA-825 700LH-412 4800BA-722 15000CA-311 13000

    zrakoplovtip doletB747 13000A320 5400DC-9 3100

    let udaljenost tip doletCA-825 700 B747 13000CA-825 700 A320 5400CA-825 700 DC-9 3100LH-412 4800 B747 13000LH-412 4800 A320 5400CA-311 13000 B747 13000

    Kartezijev produktSelekcija

    Linije i zrakoplovi koji na tim linijama mogu letjeti

    F

    linija >< zrakoplovdolet udaljenost

  • FER - Zagreb Baze podataka 2011/2012 122

    SQL - Spajanje uz uvjet drugaija sintaksa: SELECT SELECT List

    FROM table [JOIN table ON joinCondition]...[WHERE Condition]

    SELECT *FROM linija JOIN zrakoplov

    ON dolet >= udaljenost;

    Spajanje uz uvjet triju relacija:SELECT *FROM r1

    JOIN r2 ON joinCondition

    JOIN r3ON joinCondition;

  • FER - Zagreb Baze podataka 2011/2012 123

    SQL - Spajanje uz uvjet i selekcija

    Kako pronai linije i zrakoplove koji na tim linijama mogu letjeti, ali samo za one linije na kojima je udaljenost vea od 4000 km

    udaljenost > 4000(linija >< >< >< >< zrakoplov)

    SELECT *FROM linija, zrakoplovWHERE dolet >= udaljenostAND udaljenost > 4000;

    SELECT *FROM linija

    JOIN zrakoplovON dolet >= udaljenost

    WHERE udaljenost > 4000;

    ili

    let udaljenost tip doletLH-412 4800 B747 13000LH-412 4800 A320 5400CA-311 13000 B747 13000

    dolet udaljenost

  • FER - Zagreb Baze podataka 2011/2012 124

    SQL - Spajanje uz uvjet i projekcija

    Kako pronai tipove zrakoplova koji se mogu iskoristiti za letove na postojeim linijama

    pipipipi tip(linija >< zrakoplov)

    SELECT DISTINCT tipFROM linija, zrakoplovWHERE dolet >= udaljenost;

    SELECT DISTINCT tipFROM linija

    JOIN zrakoplovON dolet >= udaljenost;

    ili

    tipB747A320DC-9

    dolet udaljenost

  • FER - Zagreb Baze podataka 2011/2012 125

    Spajanje s izjednaavanjem (Equi-join) Spajanje relacija s izjednaavanjem je poseban oblik spajanja uz

    uvjet u kojem se kao operator koristi iskljuivo operator jednakosti (=)

    Problem spajanja s izjednaavanjem relacija r(R) i s(S) kod kojih je R S , rjeava se na jednak nain kao kod Kartezijevog produkta (koritenjem operatora preimenovanja)

    pbr nazMjesto sifZup42000 Varadin 752100 Pula 442230 Ludbreg 7

    sifZupanija nazZup7 Varadinska4 Istarska

    mjesto zupanija

    pbr nazMjesto sifZup sifZupanija nazZup42000 Varadin 7 7 Varadinska52100 Pula 4 4 Istarska42230 Ludbreg 7 7 Varadinska

    mjestouZupaniji

    mjestouZupaniji = mjesto >< >< >< >< zupanijasifZup = sifZupanija

  • FER - Zagreb Baze podataka 2011/2012 126

    SQL - Spajanje s izjednaavanjem

    Koristi se ekvivalencijar >< s = F (r s) pbr nazMjesto sifZup

    42000 Varadin 752100 Pula 442230 Ludbreg 7

    sifZupanija nazZup7 Varadinska4 Istarska

    mjesto

    zupanijamjesto >< >< >< >< zupanijasifZup = sifZupanija

    SELECT *FROM mjesto, zupanijaWHERE sifZup = sifZupanija;

    SELECT *FROM mjesto

    JOIN zupanijaON sifZup = sifZupanija;

    ili

    F

  • FER - Zagreb Baze podataka 2011/2012 127

    SQL - Spajanje s izjednaavanjem U sluaju kada u relacijama postoje istoimeni atributi

    pbr nazMjesto sifZup42000 Varadin 752100 Pula 442230 Ludbreg 7

    sifZup nazZup7 Varadinska4 Istarska

    mjesto zupanija

    mjesto >< >< >< >< zupanija(sifZup2, nazZup) zupanijasifZup = sifZup2

    SELECT mjesto.*, zupanija.sifZup AS sifZup2, zupanija.nazZup

    FROM mjesto, zupanijaWHERE mjesto.sifZup = zupanija.sifZup;

    slino i u sluaju koritenja drugaije sintakse (ANSI join)

    Za razliku od relacijske algebre, u SQL-u nije nuno preimenovati atribut prije spajanja:

  • FER - Zagreb Baze podataka 2011/2012 128

    Prirodno spajanje (Natural Join) Prirodno spajanje obavlja se na temelju jednakih vrijednosti

    istoimenih atributa. Zadane su relacije r(R) i s(S). Neka je R S = { A1, A2, ..., An }.

    Obavljanjem operacije r >< s dobiva se relacija sa shemom R S koja sadri n-torke nastale spajanjem n-torki tr r, ts s, za koje vrijedi tr(A1) = ts(A1) tr(A2) = ts(A2) ... tr(An) = ts(An).

    pbr nazMjesto sifZup42000 Varadin 752100 Pula 442230 Ludbreg 7

    sifZup nazZup7 Varadinska4 Istarska

    mjesto zupanija

    mjestouZupaniji = mjesto >< zupanijapbr nazMjesto sifZup nazZup42000 Varadin 7 Varadinska52100 Pula 4 Istarska42230 Ludbreg 7 Varadinska

    mjestouZupanijito moemo rei o stupnju rezultata?

  • FER - Zagreb Baze podataka 2011/2012 129

    Prirodno spajanje Rezultat prirodnog spajanje relacija r(R) i s(S) za koje vrijedi da je

    je R S = identian je rezultatu obavljanja operacijeKartezijevog produkta r s

    pbr nazMjesto sifZup42000 Varadin 752100 Pula 442230 Ludbreg 7

    sifZupanija nazZup7 Varadinska4 Istarska

    mjesto zupanija

    pbr nazMjesto sifZup sifZupanija nazZup42000 Varadin 7 7 Varadinska42000 Varadin 7 4 Istarska52100 Pula 4 7 Varadinska52100 Pula 4 4 Istarska42230 Ludbreg 7 7 Varadinska42230 Ludbreg 7 4 Istarska

    mjestouZupaniji

    mjestouZupaniji = mjesto >< zupanija

  • FER - Zagreb Baze podataka 2011/2012 130

    SQL - Prirodno spajanje prirodno spajanje se razlikuje od spajanja s izjednaavanjem po

    tome to se istoimeni atributi iz dviju relacija izbacuju (tako da od svakog ostane samo po jedan)

    pbr nazMjesto sifZup42000 Varadin 752100 Pula 442230 Ludbreg 7

    sifZup nazZup7 Varadinska4 Istarska

    mjesto zupanija

    SELECT mjesto.*, zupanija.nazZupFROM mjesto, zupanijaWHERE mjesto.sifZup = zupanija.sifZup;

    pbr nazMjesto sifZup nazZup42000 Varadin 7 Varadinska52100 Pula 4 Istarska42230 Ludbreg 7 Varadinska

  • FER - Zagreb Baze podataka 2011/2012 131

    SQL - Prirodno spajanje

    drugaija sintaksa:

    SELECT mjesto.*, zupanija.nazZupFROM mjesto JOIN zupanija

    ON mjesto.sifZup = zupanija.sifZup;

  • FER - Zagreb Baze podataka 2011/2012 132

    Agregacija (aggregation)

    Kako izraunati prosjek ocjena na svim ispitima?prosjOcj

    3.625prosjek

    mbrStud akGod nazPred ocjena100 2005 Matematika 3101 2005 Matematika 5102 2005 Matematika 2103 2006 Matematika 3100 2004 Fizika 5101 2006 Fizika 5102 2006 Fizika 2100 2005 Vjerojatnost 4

    ispit

  • FER - Zagreb Baze podataka 2011/2012 133

    Agregacija Zadana je relacija r(R). Neka je atribut AR. Neka je AF

    agregatna funkcija. Rezultat operacije agregacije GAF(A)(r) je relacija stupnja 1 i kardinalnosti 1, pri emu je vrijednost atributa odreena primjenom funkcije AF nad vrijednostima atributa A u svim n-torkama relacije r. Funkcija AF moe biti jedna od:

    COUNT odreuje broj pojava (broji sve, eventualni duplikati se takoer broje) SUM izraunava sumu vrijednosti AVG izraunava aritmetiku sredinu vrijednosti MIN izraunava najmanju vrijednost MAX izraunava najveu vrijednost

    naziv rezultantne relacije i atributa nije definiran operacijom, stoga se najee koristi u kombinaciji s operacijom preimenovanja

    takoer se koriste agregatne funkcije COUNT-DISTINCT, SUM-DISTINCT, AVG-DISTINCT

  • FER - Zagreb Baze podataka 2011/2012 134

    Agregacija

    prosjek(prosjOcj)(GAVG(ocjena)(ispit))

    SELECT AVG(ocjena) AS prosjOcjFROM ispit;

    Prosjek ocjena na svim ispitima (rjeenje):

    prosjOcj3.625

    prosjOcj3.625

    prosjek

    mbrStud akGod nazPred ocjena100 2005 Matematika 3101 2005 Matematika 5102 2005 Matematika 2103 2006 Matematika 3100 2004 Fizika 5101 2006 Fizika 5102 2006 Fizika 2100 2005 Vjerojatnost 4

    ispit

  • FER - Zagreb Baze podataka 2011/2012 135

    Agregacija (primjeri ostalih agregatnih funkcija)rez1(broj1)(GCOUNT(sifra)(osoba))

    rez2(broj2)(GSUM(tezina)(osoba))

    rez3(broj3)(GAVG(visina)(osoba))

    rez4(broj4)(GMAX(visina)(osoba))

    rez5(broj5)(GMIN(tezina)(osoba))

    broj14

    rez1

    broj2292

    rez2

    broj3175.5

    rez3

    broj4186

    rez4

    broj562

    rez5

    sifra tezina visina101 62 170103 94 186105 74 181107 62 165

    osoba

    Mogue je odjednom izraunati vie agregatnih vrijednosti:rez6(broj6, broj7, broj8)(GMIN(tezina), AVG(visina), MAX(visina)(osoba))

    broj6 broj7 broj862 175.5 186

    rez6

  • FER - Zagreb Baze podataka 2011/2012 136

    SQL - Agregatne funkcije

    naziv rezultantnog atributa nije definiran operacijom, stoga se koristi AS operator za preimenovanje

    sifra tezina visina101 62 170103 94 186105 74 181107 62 165

    osoba

    broj14

    broj2292

    broj3175.5

    broj4 broj5186 62

    SELECT COUNT(sifra) AS broj1 FROM osoba;

    SELECT SUM(tezina) AS broj2 FROM osoba;

    SELECT AVG(visina) AS broj3 FROM osoba;

    SELECT MAX(visina) AS broj4,MIN(tezina) AS broj5

    FROM osoba;

  • FER - Zagreb Baze podataka 2011/2012 137

    SQL - Agregatne funkcije

    agregatne funkcije s DISTINCT

    sifra tezina visina101 62 170103 94 190105 74 170107 62 170

    osoba

    broj12

    broj2230

    broj3180

    SELECT COUNT(DISTINCT visina) AS broj1FROM osoba;

    SELECT SUM(DISTINCT tezina) AS broj2FROM osoba;

    SELECT AVG(DISTINCT visina) AS broj3FROM osoba;

  • FER - Zagreb Baze podataka 2011/2012 138

    Agregacija i grupiranje

    Zadatak: izraunati prosjenu ocjenu za svaki pojedini predmet prosjek za Matematiku prosjek za Fiziku ... i za sve ostale predmete iji se naziv pojavljuje u relaciji

    mbrStud akGod nazPred ocjena100 2005 Matematika 3101 2005 Matematika 5102 2005 Matematika 2103 2006 Matematika 3100 2004 Fizika 5101 2006 Fizika 5102 2006 Fizika 2100 2005 Vjerojatnost 4

    ispit

  • FER - Zagreb Baze podataka 2011/2012 139

    Agregacija i grupiranje

    prosjek(prosjOcjMat)(GAVG(ocjena)(nazPred= 'Matematika'(ispit)))SELECT AVG(ocjena) AS prosjOcjMat

    FROM ispitWHERE nazPred = 'Matematika';

    prosjOcjMat3.25

    Loe rjeenje: Za svaki predmet napisati po jedan upit

    postoji li bolje rjeenje?

    prosjek(prosjOcjFiz)(GAVG(ocjena)(nazPred= 'Fizika'(ispit)))SELECT AVG(ocjena) AS prosjOcjFiz

    FROM ispitWHERE nazPred = 'Fizika';

    prosjOcjFiz4

    itd. (za svaki naziv predmeta)

  • FER - Zagreb Baze podataka 2011/2012 140

    Grupiranje (grouping) Zadana je relacija r(R). Neka su atributi A1, A2, ..., Am, B1, B2, ...,

    Bn atributi sheme R. Opi oblik operacije grupiranja je sljedei:A1, A2, ..., AmGAF1(B1), AF2(B2), ..., AFn(Bn) (r)

    a) odreuju se grupe n-torki: u svakoj grupi se nalaze n-torke koje imaju jednake vrijednosti atributa A1, A2, ..., Am

    b) za svaku grupu n-torki izraunavaju se vrijednosti agregatnih funkcija AF1(B1), AF2(B2), ..., AFn(Bn)

    c) za svaku grupu formira se n-torka s vrijednostima atributa A1, A2, ..., Am i izraunatim vrijednostima agregatnih funkcija

  • FER - Zagreb Baze podataka 2011/2012 141

    Agregacija i grupiranje

    prosjek(nazPred, prosjOcj)(nazPredGAVG(ocjena)(ispit)) Za svaki predmet ispisati prosjenu ocjenu (ispravno rjeenje):

    nazPred prosjOcjMatematika 3.25Fizika 4Vjerojatnost 4

    prosjek

    mbrStud akGod nazPred ocjena100 2005 Matematika 3101 2005 Matematika 5102 2005 Matematika 2103 2006 Matematika 3100 2004 Fizika 5101 2006 Fizika 5102 2006 Fizika 2100 2005 Vjerojatnost 4

    ispit

    grupirati po nazPred za svaku grupu izraunati AVG(ocjena) za svaku grupu formirati po jednu n-torku s

    vrijednou atributa nazPred i izraunatim prosjekom

    obaviti operaciju preimenovanja

  • FER - Zagreb Baze podataka 2011/2012 142

    Agregacija i grupiranje Ispisati prosjenu i najveu ocjenu za svaki predmet i akademsku godinu:

    nazPred akGod prosjOcj maxOcjMatematika 2005 3.333 5Matematika 2006 3 3Fizika 2004 5 5Fizika 2006 3.5 5Vjerojatnost 2005 4 4

    prosjek1

    mbrStud akGod nazPred ocjena100 2005 Matematika 3101 2005 Matematika 5102 2005 Matematika 2103 2006 Matematika 3100 2004 Fizika 5101 2006 Fizika 5102 2006 Fizika 2100 2005 Vjerojatnost 4

    ispit

    u istu grupu ulaze n-torke koje imaju jednake vrijednosti atributa nazPred i akGod

    prosjek1(nazPred, akGod, prosjOcj, maxOcj)(nazPred, akGodGAVG(ocjena), MAX(ocjena)(ispit))

  • FER - Zagreb Baze podataka 2011/2012 143

    SQL - Grupiranje SELECT SELECT List

    FROM ...[WHERE Condition][GROUP BY column [, column]...]

    SELECT nazPred, akGod, AVG(ocjena) AS prosjOcj, MAX(ocjena) AS maxOcj

    FROM ispitGROUP BY nazPred, akGod;

    prosjek1(nazPred, akGod, prosjOcj, maxOcj)(nazPred, akGodGAVG(ocjena), MAX(ocjena)(ispit))

    nazPred akGod prosjOcj maxOcjMatematika 2005 3.333 5Matematika 2006 3 3Fizika 2004 5 5Fizika 2006 3.5 5Vjerojatnost 2005 4 4

  • FER - Zagreb Baze podataka 2011/2012 144

    SQL - Grupiranje svi atributi koji se nalaze u listi za selekciju, a koji nisu argumenti

    agregatnih funkcija, moraju biti navedeni u GROUP BY dijelu naredbe

    Zato je to neispravno?Za svaku grupu se formira samo po jedna n-torka: to s onim grupama u kojima postoji vie vrijednosti atributa mbrStud?

    SELECT nazPred, akGod, mbrStud, AVG(ocjena) AS prosjOcj, MAX(ocjena) AS maxOcj

    FROM ispitGROUP BY nazPred, akGod;

    NEISPRAVNO! mbrStud akGod nazPred ocjena100 2005 Matematika 3101 2005 Matematika 5102 2005 Matematika 2103 2006 Matematika 3100 2004 Fizika 5101 2006 Fizika 5102 2006 Fizika 2100 2005 Vjerojatnost 4

    ispit

    nazPred akGod mbrStud prosjOcj maxOcjMatematika 2005 100, 101, 102 ? 3.333 5Matematika 2006 ? 3 3Fizika 2004 ? 5 5Fizika 2006 ? 3.5 5Vjerojatnost 2005 ? 4 4

  • 3. Nepotpune informacije iNULL vrijednosti

  • FER - Zagreb Baze podataka 2011/2012 146

    NULL vrijednosti Ponekad se deava da informacije koje treba unijeti u bazu

    podataka nisu potpune neke informacije trenutno nisu poznate neke informacije uope ne postoje (nisu primjenjive) neke informacije postoje, ali do njih nije mogue doi

    Informacije koje nedostaju prikazuju se kao poseban oblik podatka: NULL vrijednost

    mbr ime prez pbr datRodj adresa zanimanje100 Maja Novak 10000 01.5.2001 Ilica 1 NULL105 Ivo Kolar 21000 12.3.1973 NULL odvjetnik107 James Bond NULL NULL NULL tajni agent

    clanoviKnjiznice

    nije primjenjivo(vidi datum roenja)

    trenutno nepoznatonedostupno

  • FER - Zagreb Baze podataka 2011/2012 147

    SQL - Interna pohrana NULL vrijednosti NULL vrijednost se interno pohranjuje drugaije od bilo koje druge

    doputene vrijednosti (nije 0, nije 0.0, nije prazan niz, ...) Nain interne pohrane NULL vrijednosti je nebitan - NULL

    vrijednost je neovisna od tipa podatka kojeg predstavlja. U SQL naredbama, bez obzira na tip podatka, koristi se "konstanta" NULL

    INSERT INTO mjesto VALUES (10000, 'Zagreb', NULL);INSERT INTO mjesto VALUES (10001, NULL, 1);UPDATE mjesto SET sifZupanija = NULL

    WHERE pbr = 10001;

    CREATE TABLE mjesto (pbr INTEGER

    , nazMjesto CHAR(30), sifZupanija SMALLINT

    );

  • FER - Zagreb Baze podataka 2011/2012 148

    SQL - prikaz NULL vrijednosti

    Nain na koji se NULL vrijednostprikazuje korisniku ovisi o programskom alatu koji se koristi:

    AGS Server Studio SQL Client

    SQuirreL SQL Client

  • FER - Zagreb Baze podataka 2011/2012 149

    SQL - Izrazi

    Izraz (Expression) se sastoji od imena atributa konstanti operatora + - * / unarni + - zagrada ( )

    Izrazi se mogu koristiti u listi za selekciju u uvjetu u WHERE dijelu naredbe i drugdje ...

  • FER - Zagreb Baze podataka 2011/2012 150

    SQL - Izrazi

    iznosi plaa za svaku osobu su navedeni u kunama

    ispisati matini broj, prezime i plau izraenu u dolarima, za one osobe ija je plaa vea od 1000 eura

    1 USD = 5.6 KN, 1 KN = 0.136 EUR

    mbr prez placa100 Novak 7500102 Horvat 5600105 Kolar 9000107 Ban 4200

    dohodak

    SELECT mbr, prez, placa/5.6

    FROM dohodakWHERE placa*0.136 > 1000;

    mbr prez (expression)100 Novak 1339.28571429105 Kolar 1607.14285714

    SELECT mbr, prez, placa/5.6 AS placaUSD

    FROM dohodakWHERE placa*0.136 > 1000;

    mbr prez placaUSD100 Novak 1339.28571429105 Kolar 1607.14285714

    ?

  • FER - Zagreb Baze podataka 2011/2012 151

    NULL vrijednost u izrazima Neka je binarni operator { +, -, *, / }, a X i Y su izrazi

    ako jedan ili oba operanda X, Y poprimaju NULL vrijednost, tada je rezultat izraza X Y takoer NULL vrijednost

    5 + NULL NULLNULL - NULL NULLNULL * 0 NULL

    Neka je unarni operator { +, - }, a X je izraz ako operand X poprima NULL vrijednost, tada je rezultat

    izraza X takoer NULL vrijednost

    - NULL NULL

  • FER - Zagreb Baze podataka 2011/2012 152

    SQL - NULL vrijednost u izrazimambr prez bodLab bodMI101 Novak 12 NULL103 Ban NULL NULL107 Horvat 21 66.3109 Kolar NULL 54.3

    bodovi

    SELECT mbr, prez, bodLab + bodMI AS ukupBodova, - bodLab AS negBodLab

    FROM bodovi;

    mbr prez ukupBodova negBodLab101 Novak NULL -12103 Ban NULL NULL107 Horvat 87.3 -21109 Kolar NULL NULL

  • FER - Zagreb Baze podataka 2011/2012 153

    NULL vrijednost u uvjetima usporedbe Neka su X i Y izrazi, a je operator usporedbe

    { , } ako niti jedan od operanada X, Y nije NULL vrijednost, tada je

    rezultat izraza X Y logika vrijednost istina (true) ili logika vrijednost la (false)

    ako jedan ili oba operanda X, Y jesu NULL vrijednosti, tada je rezultat izraza X Y logika vrijednost nepoznato (unknown)

    7 5 true'atlas' >>>> 'zvuk' false-17.8 NULL unknownNULL ==== NULL unknownNULL NULL unknown

  • FER - Zagreb Baze podataka 2011/2012 154

    Operacija selekcije - NULL vrijednosti

    A B1 202 NULL3 60

    r s = B50 (r)

    Obavljanjem operacije selekcije F(r) dobiva se relacija koja sadri samo one n-torke relacije r za koje je vrijednost predikata F istina (true). To znai da se n-torke za koje je vrijednost predikata F la (false) ili nepoznato (unknown) ne pojavljuju u rezultatu

    20 50NULL 5060 50

    true unknown false

    A B1 20

    s

    A B1 202 NULL3 60

    r s = B20 (r)20 20NULL 2060 20

    false unknown true

    A B3 60

    s

  • FER - Zagreb Baze podataka 2011/2012 155

    SQL - Selekcija i NULL vrijednosti

    postBr 10000

    gdje je Novak ?

    matBr prez postBr100 Kolar 52000102 Horvat 10000105 Novak NULL107 Ban 10000

    student

    SELECT * FROM studentWHERE postBr = 10000;

    SELECT * FROM studentWHERE postBr 10000;

    postBr = 10000matBr prez postBr

    102 Horvat 10000107 Ban 10000

    matBr prez postBr100 Kolar 52000

  • FER - Zagreb Baze podataka 2011/2012 156

    SQL - operatori usporedbe IS NULL, IS NOT NULL

    U SQL-u nije doputeno operatore usporedbe , koristiti u kombinaciji s "konstantom" NULL (npr. =NULL, NULL, ...)

    matBr prez postBr100 Kolar 52000102 Horvat 10000105 Novak NULL107 Ban 10000

    student

    SELECT * FROM studentWHERE postBr IS NULL;

    SELECT * FROM studentWHERE postBr IS NOT NULL;

    matBr prez postBr105 Novak NULL

    matBr prez postBr100 Kolar 52000102 Horvat 10000107 Ban 10000

    SELECT * FROM studentWHERE postBr = NULL;

    Neispravna naredba

    Rezultat logikog izraza X IS NULL ili logikog izraza X IS NOT NULLje uvijek ili true ili false

  • FER - Zagreb Baze podataka 2011/2012 157

    Trovalentna logika

    Osnovne logike operacije - tablice istinitosti u prisustvu logike vrijednosti unknown

    AND true unknown falsetrue true unknown false

    unknown unknown unknown falsefalse false false false

    OR true unknown falsetrue true true true

    unknown true unknown unknownfalse true unknown false

    true falseunknown unknown

    false true

    NOT

  • FER - Zagreb Baze podataka 2011/2012 158

    Selekcija, logiki operatori i NULL vrijednosti

    A B C1 NULL 1002 20 2003 30 3004 40 NULL5 50 5006 60 NULL

    r

    s = B50 C300(r)

    NULL 50 100 30020 50 200 30030 50 300 30040 50 NULL 30050 50 500 30060 50 NULL 300

    unknown (*) true false unknown true false (**)

    A B C2 20 2005 50 500

    s

    * NULL 50 unknown; 100 300 true; unknown true unknown** 60 50 false; NULL 300 unknown; false unknown false

  • FER - Zagreb Baze podataka 2011/2012 159

    SQL - Logiki operatori i NULL vrijednostimbr prez bodLab bodMI101 Novak 6 NULL103 Ban NULL NULL105 Horvat 12 44.0107 Kolar NULL 85.0109 Pevec 20 15.0

    bodovi

    SELECT * FROM bodoviWHERE bodLab < 10

    OR bodMI + bodLab < 50;

    mbr prez bodLab bodMI101 Novak 6 NULL109 Pevec 20 15.0

    SELECT * FROM bodoviWHERE bodLab IS NULL

    OR bodMI IS NULLOR bodLab < 10OR bodLab + bodMI < 50;

    mbr prez bodLab bodMI101 Novak 6 NULL103 Ban NULL NULL107 Kolar NULL 85.0109 Pevec 20 15.0

    Za prolaz je potrebno barem 10 bodova iz labosa i barem 50 bodova ukupno. Studentima koji nisu dolazili na labos ili izlazili na meuispite upisana je NULL vrijednost. Ispisati studente koji nisu poloili ispit.

    Ovaj upit ne daje zadovoljavajui rezultat

  • FER - Zagreb Baze podataka 2011/2012 160

    NULL vrijednosti i skupovi Neka skup S sadri vrijednosti: S = {1, 2, 3, NULL} NULL vrijednost je nepoznata, ali moe poprimiti i neku od

    vrijednosti 1, 2 ili 3 kardinalnost skupa S je neodreena (moe biti 3 ili 4) naruena je definicija skupa (u skupu nije dozvoljena pojava

    dviju ili vie jednakih vrijednosti) to je logika vrijednost suda NULLS unknown to je logika vrijednost suda 4S unknown

  • FER - Zagreb Baze podataka 2011/2012 161

    NULL vrijednosti i skupovi Sustavi za upravljanje bazama podataka nisu u stanju

    meusobno razlikovati NULL vrijednosti, stoga se kao konvencija koristi sljedei model rukovanja s NULL vrijednostima u skupovima: doputena je pojava jedne i samo jedne NULL vrijednosti u

    skupu element e je kopija jednog od elemenata u skupu:

    ako vrijednost elementa e nije NULL, a u skupu postoji element s jednakom vrijednou

    ili ako vrijednost elementa e jest NULL, a u skupu S ve postoji

    element s NULL vrijednou

  • FER - Zagreb Baze podataka 2011/2012 162

    Kopija n-torke elementi relacije su n-torke

    Definicija kopije n-torke: neka su t1 i t2 n-torke definirane na shemi { A1, A2, ..., An } t1 = , t2 = n-torka t1 je kopija n-torke t2 ako i samo ako i, 1 i n, vrijedi: (di = ei) (di jest NULL ei jest NULL)

    neformalno: ako su vrijednosti korespondentnih atributa n-torki ili jednake ili su obje NULL

  • FER - Zagreb Baze podataka 2011/2012 163

    Kopija n-torke Primjer:

    osobambr ime prez postBr100 Ivan Novak 10000

    102 Ana Horvat 21000

    103 Tea Ban 52000

    105 NULL Kolar NULL

    studentmbr ime prez postBr100 Ivan Novak NULL

    102 Ana Horvat 21000

    103 Tea Ban 21000

    105 NULL Kolar NULL

    nije kopijajest kopijanije kopijajest kopija

  • FER - Zagreb Baze podataka 2011/2012 164

    Unija, razlika i presjek - NULL vrijednosti unija, razlika i presjek su skupovske operacije: pri usporedbi

    elemenata (n-torki) treba voditi rauna o definiciji kopije n-torkeA B C1 a 2 b NULL3 NULL 4 NULL NULL

    r A B C1 a 2 b NULL3 c 4 NULL NULL

    s

    A B C1 a 2 b NULL3 NULL 3 c 4 NULL NULL

    r s

    A B C1 a 2 b NULL4 NULL NULL

    r s

    A B C3 NULL

    r \ s

    A B C3 c

    s \ r

  • FER - Zagreb Baze podataka 2011/2012 165

    Projekcija - NULL vrijednosti pri obavljanju operacije projekcije potrebno je u fazi eliminacije

    duplikata voditi rauna o definiciji kopije n-torke

    A B C1 a 2 b NULL3 NULL 4 a 5 NULL NULL6 NULL 7 NULL NULL

    r

    s = pipipipiB, C(r)

    B Ca b NULL

    NULL a

    NULL NULLNULL NULL NULL

    B Ca b NULL

    NULL NULL NULL

    s

    izdvajanje vertikalnog podskupa

    eliminacija duplikata

    "me

    ure

    zultat"

  • FER - Zagreb Baze podataka 2011/2012 166

    Kartezijev produkt - NULL vrijednosti pri obavljanju operacije Kartezijevog produkta NULL vrijednosti

    nemaju utjecaja

    A B C1 a 2 b NULL3 NULL NULL

    r

    E F1 NULL

    NULL f

    s

    A B C E F1 a 1 NULL2 b NULL 1 NULL3 NULL NULL 1 NULL1 a NULL f2 b NULL NULL f3 NULL NULL NULL f

    r s

  • FER - Zagreb Baze podataka 2011/2012 167

    Spajanje uz uvjet i spajanje s izjednaavanjem - NULL vrijednosti

    pri obavljanju operacija spajanja uz uvjet i spajanja s izjednaavanjem potrebno je voditi rauna o tome da se spajaju samo one n-torke za koje uvjet spajanja ima logiku vrijednost istina (true)

    linijalet udaljenostCA-825 700LH-412 NULLBA-722 4100CA-311 13000

    zrakoplovtip doletB747 NULLA320 5400DC-9 3100

    mogunostlet udaljenost tip doletCA-825 700 A320 5400CA-825 700 DC-9 3100BA-722 4100 A320 5400

    mogunost = linija >< zrakoplovdolet udaljenost

    ?

  • FER - Zagreb Baze podataka 2011/2012 168

    Prirodno spajanje - NULL vrijednosti slino, pri obavljanju operacije prirodnog spajanja potrebno je

    voditi rauna o tome da se spajaju samo one n-torke za koje uvjet spajanja ima logiku vrijednost istina (true)

    pbr nazMjesto sifZup42000 Varadin 742230 Ludbreg NULL42220 Novi Marof 7

    sifZup nazZup7 Varadinska

    NULL Istarska

    mjesto zupanija

    mjestouZupaniji = mjesto >< zupanijapbr nazMjesto sifZup nazZup42000 Varadin 7 Varadinska42220 Novi Marof 7 Varadinska

    mjestouZupaniji

    n-torka nee se spojiti s n-torkom jer je rezultat usporedbe NULL=NULL unknown

  • FER - Zagreb Baze podataka 2011/2012 169

    Agregacija - NULL vrijednosti ako su sve vrijednosti za koje se izraunava agregatna

    funkcija NULL vrijednosti, ili ako se agregatna funkcija izraunava za prazan skup vrijednosti rezultat agregatne funkcije COUNT je nula rezultat ostalih agregatnih funkcija je NULL

    ako meu vrijednostima za koje se izraunava agregatna funkcija postoje vrijednosti koje nisu NULL vrijednosti agregatna funkcija se izraunava tako da se NULL vrijednosti

    zanemaruju (ne uzimaju se u obzir pri izraunavanju)

  • FER - Zagreb Baze podataka 2011/2012 170

    SELECT COUNT(mbrStud) AS broj1FROM ispit;

    Agregacija - NULL vrijednostimbrStud nazPred ocjena

    100 Matematika NULL101 Matematika 4102 Matematika 3103 Matematika 3100 Fizika NULL101 Fizika 3

    ispit

    broj16

    broj30

    SELECT COUNT(ocjena) AS broj3 FROM ispitWHERE mbrStud = 100;

    broj53.25SELECT AVG(ocjena) AS broj5 FROM ispit;

    SELECT COUNT(ocjena) AS broj2FROM ispit; broj2

    4

    broj40

    SELECT COUNT(ocjena) AS broj4 FROM ispitWHERE mbrStud = 200;

    broj6NULL

    SELECT AVG(ocjena) AS broj6 FROM ispitWHERE mbrStud = 100;

    broj7NULL

    SELECT AVG(ocjena) AS broj7 FROM ispitWHERE mbrStud = 200;

  • FER - Zagreb Baze podataka 2011/2012 171

    Agregatna funkcija COUNT(*) Agregatna funkcija COUNT(imeAtributa)

    broji n-torke u kojima vrijednost atributa imeAtributa nije NULL vrijednost

    Agregatna funkcija COUNT(*) broji n-torke zanemarujui njihov sadraj

    SELECT COUNT(ocjena) AS brojOcj, COUNT(*) AS brojRedaka

    FROM ispit;

    brojOcj brojRedaka4 6

    Ne postoji agregatna funkcija COUNT(DISTINCT *)

    mbrStud nazPred ocjena100 Matematika NULL101 Matematika 4102 Matematika 3103 Matematika 3100 Fizika NULL101 Fizika 3

    ispit

  • FER - Zagreb Baze podataka 2011/2012 172

    Grupiranje - NULL vrijednosti pri obavljanju operacije grupiranja, grupiranje n-torki se

    obavlja tako da se vodi rauna o definiciji kopije n-torki ako se grupiranje obavlja prema atributima iz skupa X, tada u

    istu grupu ulaze one n-torke ije su X-vrijednosti meusobne kopije

    mbrStud akGod nazPred ocjena100 2005 NULL 3101 NULL NULL 5102 2005 NULL 2103 2006 Fizika 3100 NULL NULL 5101 2006 Fizika 5102 2005 NULL 2

    ispit

    t1t2t3t4t5t6t7

    SELECT akGod, nazPred, AVG(ocjena) AS prosjFROM ispitGROUP BY akGod, nazPred;

    X = { akGod, nazPred }t1(X),t3(X) i t7(X) su meusobne kopijet2(X) i t5(X) su meusobne kopijet4(X) i t6(X) su meusobne kopije

    akGod nazPred prosj2005 NULL 2.3333

    NULL NULL 52006 Fizika 4

  • FER - Zagreb Baze podataka 2011/2012 173

    Vanjsko spajanje - uvod

    n-torka nee se pojaviti u rezultatu jer u relaciji upisanPred ne postoji niti jedna n-torka koja zadovoljava uvjet spajanja s tom n-torkom

    matBr prez101 Kolar102 Horvat103 Novak

    student matBr nazPred101 Matematika101 Fizika101 Programiranje102 Fizika

    upisanPred

    upisani = student >< upisanPred

    matBr prez nazPred101 Kolar Matematika101 Kolar Fizika101 Kolar Programiranje102 Horvat Fizika

    upisani

  • FER - Zagreb Baze podataka 2011/2012 174

    Vanjsko spajanje - uvod

    n-torka nee se pojaviti u rezultatu jer u relaciji zupanija ne postoji niti jedna n-torka koja zadovoljava uvjet spajanja (a ne moe je niti biti, jer sifZup ima NULL vrijednost)

    pbr nazMjesto sifZup42000 Varadin 742230 Ludbreg NULL42220 Novi Marof 7

    sifZup nazZup7 Varadinska

    NULL Istarska

    mjesto zupanija

    mjestouZupaniji = mjesto >< zupanijapbr nazMjesto sifZup nazZup42000 Varadin 7 Varadinska42220 Novi Marof 7 Varadinska

    mjestouZupaniji

  • FER - Zagreb Baze podataka 2011/2012 175

    Lijevo vanjsko spajanje (Left outer join)

    sve n-torke relacije student e se pojaviti u rezultatu spajanja ako se primijeni operacija lijevog vanjskog spajanja

    matBr prez101 Kolar102 Horvat103 Novak

    student matBrSt nazPred101 Matematika101 Fizika101 Programiranje102 Fizika

    upisanPred

    upisano = student *>< upisanPred

    matBr prez matBrSt nazPred101 Kolar 101 Matematika101 Kolar 101 Fizika101 Kolar 101 Programiranje102 Horvat 102 Fizika103 Novak NULL NULL

    upisano n-torkama "lijeve" relacije za koje ne postoje odgovarajue n-torke u "desnoj" relaciji se kao vrijednosti atributa iz "desne" relacije postavljaju NULL vrijednosti

    matBr = matBrSt

  • FER - Zagreb Baze podataka 2011/2012 176

    Lijevo vanjsko spajanje (Left outer join)pbr nazMjesto sifZupMj42000 Varadin 742230 Ludbreg NULL42220 Novi Marof 7

    sifZup nazZup7 Varadinska

    NULL Istarska

    mjesto zupanija

    mjestouZupaniji = mjesto *>< zupanija

    pbr nazMjesto sifZupMj sifZup nazZup42000 Varadin 7 7 Varadinska42230 Ludbreg NULL NULL NULL42220 Novi Marof 7 7 Varadinska

    mjestouZupaniji

    sifZupMj = sifZup

  • FER - Zagreb Baze podataka 2011/2012 177

    SQL - Lijevo vanjsko spajanje (Left outer join)pbr nazMjesto sifZupMj42000 Varadin 742230 Ludbreg NULL42220 Novi Marof 7

    sifZup nazZup7 Varadinska

    NULL Istarska

    mjesto zupanija

    mjesto *>< zupanija

    pbr nazMjesto sifZupMj sifZup nazZup42000 Varadin 7 7 Varadinska42230 Ludbreg NULL NULL NULL42220 Novi Marof 7 7 Varadinska

    SELECT mjesto.*, zupanija.*FROM mjesto LEFT OUTER JOIN zupanija

    ON sifZupMj = sifZup;

    ili SELECT *

    sifZupMj = sifZup

  • FER - Zagreb Baze podataka 2011/2012 178

    Desno vanjsko spajanje (Right outer join) sve n-torke relacije nastavnik e se pojaviti u rezultatu spajanja

    ako se primijeni operacija desnog vanjskog spajanja

    n-torkama "desne" relacije za koje ne postoje odgovarajue n-torke u "lijevoj" relaciji se kao vrijednosti atributa iz "lijeve" relacije postavljaju NULL vrijednosti

    mbrSt prezSt temaSt101 Horvat Tranzistori103 Novak Teslini izumi105 Kolar Teorija kaosa

    sifNast prezNast temaNast202 Ban Teslini izumi204 Toplek Elektrane206 Oreb Teslini izumi