1 / 24

Baze podataka

Lekcija 10. Baze podataka. SQL - Ažuriranja i kontrole -. SQL naredbe ažuriranja. Deo SQL jezika kojim se vrši izmena u tabelama čine tri naredbe: INSERT : naredba za unošenje novih redova u tabelu UPDATE : naredba za izmene redova u tabeli

vance-drake
Télécharger la présentation

Baze podataka

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

E N D

Presentation Transcript


  1. Lekcija 10 Baze podataka SQL - Ažuriranja i kontrole - Predavanja

  2. SQL naredbe ažuriranja • Deo SQL jezika kojim se vrši izmena u tabelama čine tri naredbe: • INSERT: naredba za unošenje novih redova u tabelu • UPDATE: naredba za izmene redova u tabeli • DELETE: naredba za uklanjanje redova iz tabele • Naredbe ažuriranja se uvek odnose na jednu tabelu • Kod ovih naredbi nema svođenja; svaka od naredbi vrši promene na nivou redova tabele Predavanja

  3. INSERT • Uz ovu naredbu mora se navesti: • u koju tabelu ubacujemo, • za koje kolone dajemo vrednosti, • vrednosti koje ubacujemo. • Sintaksa naredbe:INSERT INTO ImeTabele[(ListaKolona)] {VALUES (ListaKonstanti)}| R-Upit • Ako nije navedena ListaKolona iza ImeTabele ubacuju se vrednosti za sve kolone Predavanja

  4. INSERT • Primer 1: Ubacivanje podatka o novom naslovu INSERT INTO Naslov VALUES(‘PJC#’, ’Programski jezik C#’,’C#’); • Primer 2: Neka je kreirana nova tabela NaslovPJ(SifN,Naziv). Ubacujemo u tu tabelu podatke za naslove iz oblasti ‘PJ’ na osnovu sadržaja tabele Naslov INSERT INTO NaslovPJSELECT SifN, Naziv FROM Naslov WHERE SifO=‘PJ’; Predavanja

  5. UPDATE • Uz ovu naredbu mora se navesti: • u kojoj tabeli se vrše izmene, • za koje kolone u redu menjamo vrednosti, • pod kojim uslovima menjamo vrednosti. • Sintaksa naredbe UPDATE koja sadrži sve navedene elemente:UPDATE ImeTabeleSET ImeKolone={R-Izraz | S-Upit}{,…} WHERE R-Predikat Predavanja

  6. UPDATE • Primer 1: Neka je u tabeli Naslov za naslov šifre SifN=‘RBP0’ greškom uneta šifra oblasti ‘PJ’, sledi izmena: UPDATE Naslov SET SifO=‘BP’ WHERE SifN=‘RBP0’; Predavanja

  7. UPDATE • Primer 2: Neka je jedan broj članova brisan iz evidencije. Pri tome za tabelu Pozajmica nije specificiran referencijalni integritet. Usled toga šifre članova u Pozajmica treba ručno postaviti na NULL vrednost. UPDATE Pozajmica SET SifC=NULL WHERE SifC NOT IN (SELECT SifCFROM Clan); Predavanja

  8. UPDATE • Primer 3: Upis kamata od 6% za račune sa iznosom većim od 800.000,00 dinara i kamate od 5% za račune sa iznosom manjim od 800.000,00 dinara: UPDATE Depozit SET Stanje=Stanje*1.06WHERE Stanje > 800.000,00;UPDATE Depozit SET Stanje=Stanje*1.05WHERE Stanje <= 800.000,00; • U ovom primeru je bitan redosled ažuriranja Predavanja

  9. DELETE • Uz ovu naredbu mora se navesti: • iz koje tabele se vrši uklanjanje, • pod kojim uslovima se uklanja neki red. • Sintaksa naredbe:DELETE FROM ImeTabele WHERE R-Predikat • U WHERE klauzuli se mogu primenjivati sve do sada obrađene forme uključujući i podupite • SUBP odbija uklanjanja, ako je to u suprotnosti sa dinamičkom specifikacijom ref. integriteta. Predavanja

  10. DELETE • Primer 1: Uklanjanje podataka o članu šifre ‘MM0’ koji niti drži neku knjigu niti je imao pozajmice:DELETE FROM ClanWHERE SifC=‘MM0’; Predavanja

  11. DELETE • Primer 2: Za uklanjanje svih neaktivnih članova, onih koji nisu uzeli ni jednu knjigu, povremeno treba zadavati:DELETE FROM ClanWHERE SifC NOT IN (SELECT SifC FROM Drzi UNION SELECT DISTINCT SifC FROM Pozajmica); Predavanja

  12. POGLEDI (VIEW) • Izvedene tabele • Dobija se izvršavanjem upita kojim je definisan pogled • Kreiranje:CREATE VIEW ImePogleda[ListaKolona] AS R-Upit; • ImePogleda mora biti novo (ne sme da postoji) • ListaKolona – ili se nasleđuje iz upita koji ga definiše ili se mora navesti (npr. spajanje) • Jednom kreiran pogled, može se koristiti za druge upite, i ponekad i kod ažuriranja. Predavanja

  13. POGLEDI (VIEW) • Prednosti koje imaju pogledi u radu sa RBP: • Pogled predstavlja jednu vrstu potprograma u SQL-u. Može se koristiti u podupitima u WHERE i HAVING klauzulama. • Komplikovani i često korišćeni upiti se mogu formulisati u vidu pogleda (poziv tipa SELECT * FROM ImePogleda;) • Pogled olakšava kontrolu pristupa BP Predavanja

  14. POGLEDI (VIEW) • Primer 1: Pogled koji ograničava pristup tabeli Naslov na redove sa šifrom ‘PJ’CREATE VIEW NaslovPJ AS SELECT * FROM Naslov WHERE SifO=‘PJ’; • Primer 2: Pogled koji ograničava pristup tabeli Naslov na kolone SifN i NazivCREATE VIEW Naslov1 AS SELECT SifN, Naziv FROM Naslov; Predavanja

  15. Kontrola pristupa podacima • Vrste kontrole: • Ko može da pristupa BP • Čemu može da pristupa u BP • Šta može da radi sa onim čemu može da pristupi • Kontrola pristupa se obezbeđuje sa funkcijama: • Kreiranje i uklanjanje korisnika – naloga za rad sa BP • Dodela i uklanjanje opštih prava za rad sa BP • Dodela i uklanjanje posebnih prava Predavanja

  16. Kontrola pristupa podacima • Naredbe za kontrolu pristupa: • GRANT: naredba dodele • REVOKE: naredba uklanjanja • Kreiranje korisnika se obavlja istovremeno sa dodelom jednog od opštih prava:GRANT OpštePravo TO Korisnik IDENTIFIED BY Lozinka; • Korisnik: javni podatak za najavu korisnika sistemu za upravljanje BP • Lozinka: tajni naziv, kojom korisnik kompletira postupak najave Predavanja

  17. Kontrola pristupa podacima • OpštePravo: može biti jedno od sledećih: • CONNECT: sva dodeljena posebna prava nad tabelama, plus kreiranja pogleda nad tim tabelama • RESOURCE: prethodna prava plus prava kreiranja osnovnih tabela • DBA (Data Base Administrator): neograničena prava nad BP, koja ima korisnik koji je administrator BP Predavanja

  18. Opšte pravo • Korisnik se najčešće kreira sa CONNECT pravom • Opšte pravo iznad CONNECT može se dodeliti sa naredbom u formi:GRANT OpštePravo TO Korisnik; • Administrator BP može ukloniti neko opšte pravo nekom korisniku naredbom:REVOKE OpštePravo FROM Korisnik; • Ako se uklone RESOURCE i DBA pravo, korisniku ostaje CONNECT pravo. • Uklanjanjem CONNECT prava, uklanja se i korisnik i on se više ne može najavljivati za rad sa BP. Predavanja

  19. Posebna prava • Posebna prava se odnose na tabele i poglede u BP, kao i na dozvoljene radnje nad njima • Sintaksa naredbe dodele posebnog prava:GRANT {Pravo,…} ALL ON ImeTabele  ImePogleda TO {Korisnik,…}  PUBLIC [WITH GRANT OPTION]; • Jedno ili više prava mogu se dodeliti jednom ili više korisnika • WITH GRANT OPTION: navedeni korisnici mogu dalje dodeljivati sva navedena prava • PUBLIC - obuhvata sve postojeće korisnike • ALL - obuhvata sva prava Predavanja

  20. Posebna prava • Posebno pravo nad tabelom ili pogledom: • SELECT: pravo upita • INSERT: pravo ubacivanja novih redova • UPDATE [ListaKolona]: Pravo izmene svih kolona ili samo navedenih • DELETE: pravo uklanjanja redova • REFERENCES [ListaKolona]: pravo referisanja kolona preko stranih ključeva Predavanja

  21. Posebna prava • Posebna prava se uklanjaju naredbom:REVOKE {Pravo,…} ALL ON ImeTabele  ImePogleda FROM {Korisnik,…}  PUBLIC; Predavanja

  22. Posebna prava • Primer: Neka u RBP Biblioteka imamo tri korisnika koji treba da imaju sledeća prava: • Sef: prava ažuriranja podataka o oblastima, naslovima, autorima, autorstvu i knjigama, plus prava upita nad svim podacima • Radnik: prava ažuriranja podataka o članovima, držanju knjiga, pozajmicama i rezervacijama, plus prava upita nad svim podacima • Clan: prava upita nad podacima o oblastima, naslovima, autorima i autorstvu Predavanja

  23. Posebna prava • Kreiranje korisnikaGRANT CONNECT TO Sef IDENTIFIED BY LozinkaSefa;GRANT CONNECT TO Radnik IDENTIFIED BY LozinkaRadnika;GRANT CONNECT TO Clan IDENTIFIED BY LozinkaClana; Predavanja

  24. Posebna prava • Davanje prava upitaGRANT SELECT ON Oblast, Naslov, Autor, Je_Autor TO PUBLIC;GRANT SELECT ON Knjiga, Clan, Drzi, Pozajmica, Rezervacija TO Sef, Radnik; • Davanje prava ažuriranjaGRANT INSERT, UPDATE, DELETE ON Clan, Drzi, Pozajmica, Rezervacija TO Radnik;GRANT INSERT, UPDATE, DELETE ON Oblast, Naslov, Autor, Je_Autor, Knjiga TO Sef; Predavanja

More Related