76
Baze podataka 2014./2015. Sveučilište u Mostaru Filozofski fakultet Informacijske znanosti

Baze Podataka Sve Do Sada

Embed Size (px)

DESCRIPTION

baze podataka

Citation preview

  • Baze podataka

    2014./2015.

    Sveuilite u MostaruFilozofski fakultet

    Informacijske znanosti

  • Info

    Profesor: prof. dr. sc. Vladimir Mateljan

    Asistent: Andrea Miljko

  • Baza podataka

    Baza podataka je skup meusobno povezanih podataka,pohranjenih zajedno, s ciljem da ih koriste razliite aplikacije. Podacisu pohranjeni u obliku neovisnom od programa koji ih koriste. Unos,

    izmjena i dohvat podataka obavlja se ISKLJUIVO kroz zajedniko ikontrolirano suelje.

  • Sustav za upravljanje bazom podataka

    Programski sustav koji

    omoguava upravljanjebazom podataka je sustav

    za upravljanje bazama

    podataka,

    SUBP (DBMS-Database

    Management System).

    Korisnik ili korisniki program postavlja zahtjev za obavljanjem neke operacije s podacima, a SUBP ga analizira, provjerava, optimizira, transformira u niz

    operacija koje je potrebno obaviti na fizikoj razini, obavlja operacije i vraa rezultat.

  • Sustav za upravljanje bazama podataka

    Danas postoji nekoliko DBMS-a:

    - DB2: proizvod tvrtke IBM, namijenjen velikim mainframe-

    raunalima.

    - Oracle: proizvod istoimene tvrtke, pokriva gotovo sve

    raunalne platforme, npr. UNIX, Linux i MS Windows.

    - MS SQL Server: Microsoftov proizvod, namijenjen

    posluiteljskim raunalima s operacijskim sustavima MSWindows.

    - MySQL: Besplatan proizvod tvrtke MySQLAB, popularan

    na raznim platformama, prije svega kao podrka web-aplikacijama.

  • Definiranje E-R modela

    Skup koncepata i grafikih simbola koji se mogu koristitiza kreiranje konceptualne sheme baze podataka

    Osnovne vrste E-R modela

    Chenov model (original E-R model)

    Proireni (Extended) E-R model s verzijama:

    James Martinov IE (Information Engineering) model

    IDEF1X (Integrated Definition 1, Extended)

    UML (Unified Modeling Language)

  • ER modeliranje:

    je sastavljeno iz entiteta, veza i atributa

    je slikovni prikaz sustava baze podataka

    je neovisno o DBMS i hardveru

    predstavlja konceptualni model visokog nivoa

    podrava korisnikovu percepciju podataka

    je alat za projektiranje

    Modeliranje podataka zahtjeva da svijet promatramo preko:

    - entiteta: stvari, bia, pojave ili dogaaji koji su nam od interesa

    - atributa: svojstva entiteta ili veza koja su nam od interesa

  • Definicija ENTITETA

    Entitet je stvar, objekt, od znaaja, realan ili imaginaranza koji je potrebno poznavati i uvati odreeneinformacije

    Postupkom klasifikacije moe se ustanoviti skup srodnihentiteta (npr.osobe) to se moe predstaviti TIPOMENTITETA (npr. OSOBA), to znai da se tip entitetasastoji od pojava entiteta koji imaju zajednike atribute.

  • Definicija ENTITETA

    bilo to, to ima sutinu ili bit

    posjeduje znaajke s pomou kojih se moe razluiti od svoje okoline

    osoba (student, djelatnik, stanovnik, student )

    objekt iz stvarnog svijeta (mjesto, stroj, zgrada - npr. Zgrada

    FFMO-a)

    apstraktni pojam (boja, iskustvo, predmet Uvod u baze podataka)

    dogaaj - situacija u kojoj se neto deava, desilo se ili se planira

    da e se desiti (prijavljivanje ispita, polaganje ispita)

    povezanost meu objektima, osobama, pojmovima, dogaajima

    (student poloio ispit iz predmeta Ivan Horvat poloio Uvod u baze podataka)

  • Naziv entiteta se pie velikim slovima u jednini

    sifra

    naziv

    adresa

    mjesto

    KUPAC ENTITET

    Definicija ENTITETA

    Primjer: Entitet KUCA ima atribute ULICA, KUCNI BROJ, BROJ KATOVA, BOJA

    FASADE Primjer: Entitet STUDENT ima atribute JMBG, PREZIME, IME, GODINA

    STUDIJA

  • Definicija atributa

    Atribut je svaki detalj koji slui da poblie odredi,identificira, klasificira, kvantificira ili izrazi stanje

    entiteta.

    Predstavlja opis entiteta

    sifra

    naziv

    adresa

    mjesto

    KUPAC

    ATRIBUTI

    Primjer: Entitet KUCA ima atribute ULICA, KUCNI BROJ, BROJ KATOVA,

    BOJA FASADE Primjer: Entitet STUDENT ima atribute JMBG, PREZIME, IME, GODINA

    STUDIJA

  • Entitet i atributiprema vrstama modela

  • Definicija VEZE

    Entiteti se mogu povezivati jedan s drugim u veze

    (relacije).

    Veza je agregacija/povezivanje dvaju ili vie entiteta u novi entitet vezu koji moe imati i svoje atribute.

    Broj entiteta u vezi predstavlja STUPANJ VEZE.

    Svaki ENTITET-A mora biti kraj_1 jedan i samo jedan ENTITET -B

    Svaki ENTITET-B moe biti kraj_2 jedan ili vie ENTITETA-B.

  • Veze

    Binarna veza

    veza 2 entiteta

    Ternarna veza

    veza 3 entiteta

    Unarna veza

    isti entitet vie puta

    egzistira u razliitim

    ulogama

  • Kardinalnost veze

    Odnos omjera meu povezanim entitetima nazivamo kardinalnost veze

    Jedan na jedan (1:1)

    Jedan na vie (1:m)

    Vie na jedan (m:1)

    Vie na vie (m:n)

  • Razbijanje M:N veza

    Veza m:n u ER modelu se moe razbiti uvoenjem novog posrednikog entiteta.

    Primjer

    Vezu vie na vie moemo razbiti uvoenjem entiteta najam,koji sadri atribut datum_najma

  • Primjeri

    M:N (Many-to-Many)

    Djelatnik Projektradi

    Svaki djelatnik moe raditi na vie projekataSvaki projekt moe imati vie djelatnika

    (*) Djelatnik radi na (*) Projekata

    0..* 0..*Djelatnik Projekt

    radi

  • Grafiki prikaz veze

  • 1 : 1 - primjer

    Veza izmeu entiteta STUDENT i KORISNIKO IME

    Svaki STUDENT moe imati samo jedno KORISNIKOIME, dok KORISNIKO IME moe pripadati samojednom STUDENTU

  • 1 : N - primjer

    Veza izmeu entiteta DRAVA i GRAD

    Svaka DRAVA moe imati vie gradova dok svakiGRAD pripada samo jednoj dravi

  • M : N - primjer

    Veza izmeu entiteta STUDENT i PREDMET

    Svaki STUDENT moe biti upisan na viePREDMETA, dok svaki predmet moe sluati viestudenata

  • Odredite veze za entitete:

    STUDENT I INDEKS

    STUDENT I PREDMET

    STUDENT I TEST

  • Kljuevi

    Klju (key)

    skup atributa koji (svojim vrijednostima) jednoznanoidentificira svaki od entiteta u nekom skupu entiteta

    klju mora zadovoljavati

    uvjet jednoznanosti (u skupu entiteta ne smiju postojatidvije pojave s istim vrijednostima svih kljunih atributa)

    uvjet minimalnosti (ne postoji podskup atributa kljua koji

    takoer zadovoljava uvjet jednoznanosti)

  • Kljuevi

    entitet moe imati jedan ili vie kljueva

    entitet mora imati barem jedan klju

    entitet moe imati vie moguih kljueva, tj. kandidata za primarni klju (candidate key), koji ne moraju biti meusobno disjunktni, tj. mogu imati atribute presjeka

    jedan od kljueva odabire se za primarni klju (primary key), npr.

    Osoba.IdOsobe, Mjesto.ifraMjesta

    nakon odabira primarnog kljua, ostali mogui kljuevi postaju alternativni kljuevi (alternate key), npr. Mjesto.PostBr

  • Kljuevi

    Strani klju (foreign key)

    skup atributa koji se odnosi na klju drugog skupa entiteta, tj. skup atributa ije se vrijednosti odnose na vrijednosti kljua drugog entiteta (Osoba.SifMjesta odnosi se na Mjesto.SifMjesta)

  • Preslikavanje ER modela u relacije

    VEZA JEDAN:VIE

    Primarni klju entiteta sa strane veze JEDAN doda se kaostrani klju u entitet sa strane veze VIE.

    VEZA VIE:VIE

    Doda se novi entitet, koji sadri primarne kljueve obajurubnih entiteta.

    Ti atributi zajedno tvore sloeni primarni kljunovonastalog entiteta.

  • Primjer br.1 - PRIJAVNICA

  • Primjer br.2 VOENJE TEAJA

    kola za obrazovanje ima nekoliko tipova teajeva o kojima vodi slijedee podatke:

    - kratica i naziv teaja

    - opis i trajanje teaja

    Jedan tip teaja moe se odrati vie puta, s razliitim datumom poetka, lokacijom odravanja i maksimalnim brojem polaznika.

    O polazniku teaja se vode slijedei podaci:

    - matini broj

    - ime, prezime

    Polaznik moe polaziti vie teajeva.

  • Primjer br. 3 URAENI PROGRAMI

    Profesionalni programer Marko Markovi odluio je napravitiprogram za evidentiranje svih programa koje je uradio, korisnika

    kod kojih ti programi rade, kao i ostvarene zarade po svakom

    programu.

    Za svaki program se evidentira vrijeme utroeno za njegovuizradu, kao i vrijeme utroeno kod korisnika za prilagodbuprograma korisnikim zahtjevima, kad je program puten u radkod korisnika, kao i koliko je od korisnika naplaeno za tajprogram. Takoer se evidentira da li je program u uporabi tj.aktivan ili ne.

  • Rjeenje

    PRODAJA

    KORISNIK

    PROGRAM

    # sifra

    datum_prodaje

    vrijeme_prilagodbe

    naplaceni_iznos

    aktivnost

    #sifra_programa

    naziv

    vrijeme_izrade

    cijena

    # korisnikID

    ime

    prezime

    adresa

    telefon

  • Rjeenje - ( ER model )

  • Rjeenje-Relacijski model

  • Primjer br. 4 - Izdavanje knjiga u knjinici

    Studentska knjinica nastoji voditi raunalnu evidenciju o izdavanju knjiga. Za to je potrebno imati podatke o

    lanovima knjinice (ime, prezime, adresa, telefon, lanski broj, datum ulanjenja),

    knjigama (naziv, anr, broj primjeraka, godina izdanja),

    autorima i

    izdavaima knjiga (izdavaka kua, godina osnivanja, sjedite izdavake kue).

  • Rjeenje

    IZDAVANJE

    KNJIGA

    CLAN

    PK sifra_izdavanja

    datum_izdavanja

    datum_vracanja

    PK clanski_broj

    ime

    prezime

    adresa

    telefon

    datum_uclanjenja

    PK sifra_knjige

    naziv

    zanr

    broj_primjeraka

    godina_izdanja

    IZDAVAC

    PK sifra_izdavaca

    izdavacka_kuca

    sjediste

    godina_osnivanja

    AUTOR

    PK sifra_autora

    ime

    prezime

    adresa

  • Primjer br. 5

    Faktura je dokument koji se alje kupcu kako bi mogaoizvriti plaanje kupljene robe. Da bi se napravila fakturamoraju postojati osnovni podaci o kupcu (naziv, adresa,telefon i sl.), podaci o fakturi (broj fakture, datumizdavanja, broj narudbe prema kojoj je raena, rokplaanja, iznos za plaanje i sl.), kao i podaci o kupljenimartiklima (naziv, jedinica mjere, kupljena koliina, cijena isl.).

    Faktura se sastoji od: zaglavlje fakture koje sadrizajednike, ope podatke teod stavke fakture s pojedinanim artiklima, koliinama icijenama.

    Definirati sve entitete, atribute i veze za procesFakturiranja kupcima.

  • Rjeenje

  • Primjer br. 6

    Izdavaka kua Profil d.o.o. izdaje znanstvene knjiges razliitih podruja. Knjige piu autori, koji suspecijalizirani u tono jednom odreenom podruju.Izdaja d.o.o. zapoljava i recenzente, koji nisu nunospecijalizirani u nekom podruju njihov je zadatakda samostalno recenziraju jednu ili vie knjiga.Svaka knjiga pokriva jedno od podruja i uvijek jepie samo jedan autor. Za svaku knjigu koju pie,svaki autor surauje s recenzentom za razliiteknjige to mogu biti razliiti recenzenti. Politika Profilad.o.o. je da zapoljava vie autora specijalista zasvako pojedino podruje.

  • PODRUCJE

    KNJIGA

    PK id_podrucje

    naziv

    opis

    RECEZENT

    AUTOR

    PK id_knjiga

    naziv

    br_stranica

    FK id_autor

    FK id_podrucje

    FK id_recezent

    PK id_recezent

    ime

    prezime

    adresa

    PK id_autor

    ime

    prezime

    adresa

    FK id_podrucjeAUTOR_RECEZ

  • PODRUCJE

    KNJIGA

    PK id_podrucje

    naziv

    opis

    RECEZENT

    AUTOR

    PK id_knjiga

    naziv

    br_stranica

    FK id_autor

    FK id_podrucje

    FK id_recezent

    PK id_recezent

    ime

    prezime

    adresa

    PK id_autor

    ime

    prezime

    adresa

    FK id_podrucje

    AUTOR_RECEZ

    id_autor

    id_recezent

  • Primjer br.7 KREDITNA KARTICA

    Kreirajte model baze podataka za evidentiranje svih

    kreditnih kartica koje ukljuuju i praenje trokova,odnosno utroka novca po osnovi plaanja karticom.Praenje kreditnih kartica ukljuuje popis svih karticakoje se koriste to podrazumijeva evidentiranje nazivakartice,

    banke koja je izdala karticu, roka do kojega kartica

    vrijedi, limita po karticama, zatim kategoriziranje po

    vrstama. Za svako plaanje (transakciju) se evidentiraiznos plaanja, datum, datum ispilate i opis.

  • Primjer br.7 KREDITNA KARTICA

    BANKA

    sifra_k

    naziv

    mjesto_izdava

    nja

    rok_trajanja

    limit

    sifra_v

    sifra_b

    KARTICA TRANSAKCIJA

    VRSTA

    sifra_b

    naziv_b

    sjediste

    bankar

    sifra_t

    datum_uplata

    datum_isplata

    iznos

    opis

    sifra_k

    sifra_v

    naziv_v

    opis_v

    0..*

    1..1

    0..*

    1..1

    1..1 0..*

    PKPK

    PK PK

    FKFK

    FK

  • Zadatak

    Poduzee Globtur d.o.o. sa sjeditem u Mostaru posjeduje vie autobusa. Svakiautobus vozi na odreenoj liniji na nekim linijama vozi vie autobusa. Svakalinija prolazi kroz neki broj gradova. Jedan ili vie vozaa vozi na svakoj oddionica neke linije. Dionica linije znai prolaz kroz dio ili sve gradove naprometnoj liniji. Neki gradovi imaju garau gdje su autobusi smjeteni. Svakiautobus je odreen svojim registracijskim brojem i moe primiti razliit brojputnika, jer autobusi variraju u veliini izmeu normalnih i na kat (double-decked). Svaka prometna linija odreena je brojem linije i sadri informaciju oprosjenom broju prevezenih putnika po danu. Vozai imaju svoj brojzaposlenika, ime, adresu boravita i ponekad telefonski broj.

  • Primjer 8U bazi podataka se evidentiraju podaci o filmovima i osobama koje su radile na filmu i njihovim funkcijama.

    Za film se evidentira ifra filma, naslov i originalni naslov, godina izdavanja, distributer, anr, porijeklo i proizvoa.

    Za anr se evidentira ifra anra, ime anra i kratica anra, a podrazumjeva se da film moe imati samo jedan anr.

    Za distrubutera se evidentira ifra distributera i ime distributera, a film moe imati samo jednog distributera.

    Za proizvoae se evidentira ifra proizvoaa i ime proizvoaa, a film moe imati vie proizvoaa.

    Za svaku osobu koja je radila na filmu evidentira se ifra, ime i prezime osobe, ifra i funkcija koju je ona obavljala.

    Jedna osoba moe imati vie funkcija u filmu, a vie osoba moe obavaljati istu funkciju na filmu. Na jednom filmu moe raditi vie osoba.

    Za funkcije se evidentira ifra i naziv funkcije.

  • Primjer br.9

    Studenti svake akademske godine upisuju godinu

    studija. Pritom biraju neke od ponuenih izbornihpredmeta tako da zbroj njihovih ECTS-bodova u

    svakom semestru bude 30. Predmeti moraju biti

    izabrani najkasnije do 15. rujan. Fakultet je organiziran

    u zavode. Svaki nastavnik lan je tono jednogzavoda. Svake akademske godine zavod nudi nekoliko

    izbornih predmeta za studente i osigurava nastavnike

    koji e predavat te predmete. Pritom svaki predmetima smo jednog nastavnika.

  • ZAVOD

    sifra_zavoda

    opis_djelatnosti

    naziv

    PREDMET

    sifra_pred

    semestar

    ecst_bod

    datum_upisa

    ocjena

    sifra_zavoda

    sifra_nast

    jmbg

    ime

    ecst_bod_stud

    prezime

    ime

    god_studija

    sifra_pred

    STUDENT

    NASTAVNIK

    sifra_nast

    ime

    prezime

    titula

    sifra_zavoda

    PK PK PK

    PK

    FK

    FK

    FK

    FK

  • Primjer br. 10

    Agencija za iznajmljivanje limuzina "Limko"

    posjeduje vie marki limuzina. Za svaku limuzinubiljei i njenog proizvoaa da bi se znalo koje svelimuzine je proizveo koji proizvoa. Da bi klijentiznajmio limuzinu dovoljno da doe u predstavnitvoi sve se definira potpisivanjem ugovora o

    iznajmljivanju. Njime se vri rezervacija limuzina zaodreeni datum. Nakon odlaska klijenta voditeljposlovnice odreuje vozaa za taj dan koristei sepostojeim rasporedom vonji. Za sve vozaeagencija biljei kad je polagao vozaki ispit tepodatke o auto koli koja ga je obuavala.

  • Primjer br. 11

    Na Filozofskom fakultetu u Mostaru evidentirani su podaci o kandidatima koji su se prijavili na razradbeni ispit i njihovim rezultatima.

    Evidentiraju se podaci o:kandidatu: JMBG, ime, prezime, mjesto roenja, zavrena srednja kola (ifra, naziv, adresa, potanski broj mjesta, mjesto, ifra opine i naziv opine u kojoj se kola nalazi)za svakog kandidata ocjena iz pojedinih predmeta iz srednje kole ifra i naziv predmeta, razred i ocjena. ifra odreuje predmet u nekom razredu (godini), npr. Informatika u 1.razredu i Informatika u 2.razredu maju razliite ifre. Isti predmeti u razliitim kolama imaju istu ifru npr. Informatika iz 1.razreda ima istu ifru za sve kolepodaci o zadacima na razradbenom ispitu redni broj zadatka, tekst zadatka, toan odgovor (A, B, C, D ili E)za svakog kandidata odgovori koje je dao na zadatke (odgovor za svaki pojedini zadatak mogu biti A, B, C, D, E ili nita)

  • Uvod u SQL

  • SQL

    SQL= Structured Query Language

    SQL je upitni jezik temeljen na relacijskoj algebri i

    predikatnom raunu.

    SQL se koristi kao programski jezik i interaktivni

    upitni jezik. Kao programski jezik moe seugraivati u jezike tree i etvrte generacije.

    Zadaa SQL-a je omoguiti definiciju podataka,upravljanje podacima i provoenje kontrole nadpodacima u relacijskoj bazi podataka.

  • SQL

    DDL (Data Definition Language)

    = izrazi za definiranje podataka

    CREATE, ALTER, DROP, GRANT, REVOKE ...

    DML (Data Manipulation Language)

    = izrazi za upravljanje podacima

    SELECT, INSERT, UPDATE, DELETE ...

  • SQL

    Primjer SQL naredbe iz DDL dijela jezika (kreiranje tablice mjesto):

    CREATE TABLE mjesto

    ( pbr_mjesta VARCHAR2(5) NOT NULL ,

    naziv_mjesta VARCHAR2(30) NOT NULL ,

    sifra_opcine NUMBER(4)

    );

    Primjer SQL naredbe iz DML dijela jezika (iz tablice mjesto dohvaa sve n-torke kojima je vrijednost atributa potanski broj jednaka 88000):SELECT *

    FROM mjesto

    WHERE pbr = 88000;

  • DDL naredbeKreiranje tablica

  • SQL Kreiranje i brisanje tablica

    Kreiranje tablice:

    CREATE TABLE ime_tablice

    (ime_stupca tip (veliina) (ogranienje),

    ime_stupca tip (veliina) (ogranienje),

    ime_stupca tip (veliina) (ogranienje),

    ...);

    Brisanje tablice:

    DROP TABLE ime_tablice;

  • Ogranienja nad stupcima tablice i nad tablicama ...

    NULL/NOT NULL

    UNIQUE

    PRIMARY KEY

    FOREIGN KEY

    CHECK

  • Kreiranje tablice

    CREATE TABLE MJESTO

    ( PBR NUMBER(10) NOT NULL,

    NAZIV VARCHAR2(40) NOT NULL,

    CONSTRAINT mjesto_pk PRIMARY KEY (PBR)

    );

  • DML naredbeSELECT, INSERT, UPDATE, DELETE

  • Najee koriteni DML izrazi

    SELECT- Pretraivanje podataka

    INSERT- Upisivanje novih podataka

    UPDATE- Promjena vrijednosti podataka

    DELETE- Brisanje postojeih podataka

  • INSERT Unos podataka u tablicu

    INSERT INTO ime_tablice (stupac, stupac,)

    VALUES (vrijednost, vrijednost, );

    Primjer:

    INSERT INTO osoba (mbr, ime, prezime, email)

    VALUES (1, 'Ivo', 'Ivic', '[email protected]');

  • SELECT Odabir podataka iz tablice

    SELECT stupci [alias]

    FROM ime_tablice [alias]

    [WHERE uvjeti za redak]

    [GROUP BY stupci]

    [HAVING uvjeti za grupu redaka]

    [ORDER BY stupci];

  • Operatori usporedbe, Logiki i SQL operatori

  • Primjeri

  • Primjeri

  • Primjeri

  • Primjeri

  • Primjeri

    Napiite SQL naredbu koja e izdvojiti sve mobitele u bazi koji su laki od 100 grama.

    Rjeenje:

    SELECT proizvodi, model, tezina

    FROM mobitel

    WHERE tezina

  • Primjer

    SELECT *

    FROM student

    WHERE ime_studenta = Marko;

    STUDENT

    sifra

    ime_studenta

    prezime_studenta

    Iz tablice student dohvatiti sve n-torke kojima

    je ime Marko.

  • Naredba distinct

    DISTINCTeliminira duple vrijednosti

  • Primjeri

    Ispis matinih brojeva studenata (mbrstud) iz tablice ispit koji su barem jednom ocijenjeni negativnom ocjenom na ispitu iz predmeta sa ifrom FF1202 (sifpred). Svaki se matini broj takvih studenata u listi treba pojaviti samo jednom.

    Rjeenje:SELECT DISTINCT mbrstud, sifpred, ocjena

    FROM ispit

    WHERE ocjena = 1

    AND sifpred = FF1202

    Rezultat:

    mbrstud

    1312

    1406

    1441

  • Primjeri

    Ispis brojeva indeksa (brind) iz tablice Ispit studenata koji

    su POLOILI ispit iz predmeta sa ifrom 146 (sifpred).

    Rjeenje:SELECT brind, ocjena, sifpred

    FROM ispit

    WHERE ocjena > 1

    AND sifpred = 146

  • Primjeri

    Iz tablice Mobitel nai mobitel teine izmeu 90 i 100 grama.

    Rjeenje:SELECT proizvodi, model, tezina

    FROM mobitel

    WHERE tezina>90

    AND tezina

  • Pimjeri

    Napiite SQL naredbu koja e ispisati matine brojeve (MbrStud), imena (ImeStud) i prezime

    (PrezStud) studenata iz tablice studenti (Stud)

    SELECT MbrStud, ImeStud, PrezStud

    FROM Stud