240 likes | 458 Views
Jezik za rad s relacijskom bazom podataka. S. S. Q. Q. Maja Petekić. L. L. Prisjetimo se. Baza podataka mjesto na kojemu se čuvaju podaci. Relacijska baza podataka
E N D
Jezik za rad s relacijskom bazom podataka S S Q Q Maja Petekić L L
Prisjetimo se . . . Baza podataka • mjesto na kojemu se čuvaju podaci • Relacijska baza podataka • ona baza podataka u kojoj se podaci čuvaju u tabelama i koja istovremeno vodi evidenciju o tome kako su te tabele međusobno povezane • Tabela • objekt u kojemu se čuvaju podaci • svaka tabela sadrži podatke o određenom entitetu
Sadržaj . . . • Naredbe (za definiranje podataka, za rukovanje podacima, za upravljanje podacima) • Ključne riječi • Detaljan opis naredbi • View(pogled) • Primjer • Formiranje upita(upiti nad jednom tabelom, upit nad jednom tabelom uz prikaz modificiranog sadržaja tabele, ulaganje upita nad jednom tabelom u upit nad drugom tabelom, upiti kojima se realizira spajanje tabela, upiti nad tabelama koje u sebi imaju hijerarhijsku strukturu) • Standardni način povezivanja SQL-a s višim programskim jezicima • Kursori
Uvod . . . • za rad s relacijskom bazom podataka postoji više jezika: SQL, QUEL, QBE • to su jezici četvrte generacije, koji se služe parafraziranim dobro oblikovanim formulama logike prvog reda • svi opisuju uvjete pretraživanja pomoću predikatne logike prvog reda • SQL je “userfriendly” jezik
SQL– Structured Query Language . . . strukturirani upitni jezik . . . • tvorac Chamberlin • nastao 1974. godine uIBM-ovom istraživačkom laboratoriju u Californiji • prethodnik mu je SEQUEL
Osnovne karakteristike . . . • Jednostavnost u korištenju • tabela (relacija) se kreira izvršnom naredbom i odmah je raspoloživa za korištenje • svi podaci se memoriraju u obliku tabela i rezultat svake operacije se logički prikazuje tabelom • Mogućnost interaktivnog i aplikativnog programiranja • SQL daje odgovore na unaprijed nedefinirane zahtjeve ili se SQL blokovi ugrađuju u viši programski jezik (Fortran, C) i mogućuju klasičnu obradu • Minimalna proceduralnost • SQL definira ŠTO, a ne KAKO: koji podaci se žele, koji uvjeti moraju biti ispunjeni, bez specifikacije procedure za dobivanje željenih podataka • funkcija SQL-a je omogućavanje definiranja, korištenja i kontrole podataka relacijske baze • SQL je na višem nivou apstrakcije, nego klasični viši programski jezici
Kada se uči gramatika novog jezika (naredbe), bitno je kategorizirati njegov rječnik prema namjeni, stoga slijedi gramatika SQL-a u narednih 6 kategorija: 1.DDL(Data Definition Language) = jezik za definiranje podataka . . . CREATE TABLE, CREATE VIEW , . . . 2.DQL (Data Query Language) = jezik za ispitivanje podataka . . . SELECT . . . 3.DML (Data Manipulation Language) = jezik za upravljanje podacima . . . INSERT, DELETE, UPDATE, . . . 4.TPL (Transaction Processing Language) = jezik za obradu podataka . . . COMMIT, ROLLBACK, . . . 5.CCL (Cursor Control Language) = jezik za kontrolu kursora 6.DCL (Data Control Language) = jezik za kontrolu podataka . . . GRANT, REVOKE, . . .
Naredbe za definiranje podataka • definiraju strukture tabela i pogleda, koriste se za njihovo mijenjanje, te za izradu i brisanje indeksa • CREATE TABLE (kreiranje tabele baze podataka) • CREATE VIEW (kreiranje virtualne tabele – “pogleda”) pogled je nova definicija postojećeg podatka, prividna tabela koja ne sadrži podatke • CREATE INDEX (kreiranje indexa nad kombinacijom kolona tabele) • ALTER TABLE (izmjena definicije tabele) • DROP TABLE (izbacivanje tabele iz baza podataka)
Naredbe za rukovanje podacima • omogućuju ažuriranje i izvještavanje iz relacijske baze podataka • SELECT (prikaz sadržaja relacijske baze podataka) • UPDATE (izmjena vrijednosti u kolonama tabele) • DELETE (izbacivanje redova tabele) • INSERT (dodavanje redova u postojeću tabelu)
Naredbe za upravljanje • omogućuju sigurnost, konkurentnost, oporavak i integritet relacijske baze podataka • GRANT (dodjela prava korištenja vlastite tabele drugim korisnicima) • COMMIT WORK (djelovanje na bazu podataka) • REVOKE (oduzimanje prava korištenja vlastite tabele od drugih korisnika) • ROLLBACK WORK (poništavanje djelovanja)
Ključne riječi • KVALIFIKATORI – ograničavaju opseg vrijednosti entiteta koji čine upit (WHERE) • NAREDBE– glagoli koji prouzrokuju akciju, koja se izvršava (SELECT) • KLAUZULE– mijenjaju akciju instrukcije (ORDER BY) • OPERATORI – poredaju vrijednosti (=, <, >) • AGREGATNE FUNKCIJE GRUPA – vraćaju jedan rezultat za skup vrijednosti (MIN())
Detaljan opis naredbi • AŽURIRANJE – dodavanje, izmjena sadržaja i brisanje reda ili redova tabele: 1. INSERT 2. UPDATE 3. DELETE 4. SELECT • sve četiri navedene naredbe moraju se primjenjivati nad istom tabelom (radi očuvanja integriteta baze podataka)
1. INSERT– postoje tri načina za unos: 1.ubacivanje vrijednosti SVIH atributa n-torke (ne specificiramo nazive atributa) 2. ubacivanje vrijednosti NEKIH atributa n-torke (specificiramo nazive atributa) 3. ubacivanje podataka iz jedne tabele u drugu (tabele moraju imati isti broj atributa koji su jednako definirani) Opći oblik: INSERT INTO naziv_tabele VALUES (vrijednosti atributa)
Opći oblik: UPDATE tabela SET atribut=izraz [WHERE uvjet] 2.UPDATE – kod izmjene sadržaja tabele potrebno je paziti da vrijednost svakog atributa mijenjamo samo jednim izrazom 3.DELETE– brisanje (uz unaprijed zadane kriterije) Opći oblik: DELETE [FROM] tabela [WHERE uvjet] 4.SELECT – prikaz sadržaja baze podataka Opći oblik: SELECT atributi FROM tabela [WHERE uvjet]
Definiranje podataka i kontrolne funkcije • CREATE TABLE – kreiranje nove tabele • potrebno je navesti ime relacije i za svaki atribut (kolonu tabele), naziv, tip, dužinu i da li su NULL vrijednosti dozvoljene Opći oblik: CREATE TABLE ime_tabele (atr1 tip [not null], atr2 tip [not null], . . .) • nedostatak– ne definira primarni ključ, pa ni sekundarni (sekundarni ključ je kombinacija atributa, koja nije ključ u toj, nego u nekoj drugoj tabeli baze podataka)
Opći oblik: ALTER TABLE tabela ADD (atr tip [, atr tip]) • ALTER TABLE – dodavanje novog atributa (nove kolone) postojećoj tabeli • DROP TABLE – služi za izbacivanje tabele iz baze podataka Opći oblik: DROP TABLE tabela • razlika naredbi DROP TABLE i DELETE: • naredba DELETE briše kompletan sadržaj tabele, ali ne i samu tabelu • naredba DROP TABLE briše i sadržaj tabele i samu tabelu
INDEKSI : 1. omogućuju brzi pristup kolonama koje se indeksiraju 2. omogućuju jedinstvenost vrijednosti indeksiranih kolona (tada te kolone imaju ulogu primarnog ključa) Opći oblik: CREATE [UNIQUE] INDEX naziv_indexa ON tabela (atribut) • indeks se izbacuje naredbom: DROP INDEKS naziv_indeksa
Sigurnost, integritet podataka • GRANT – dodjeljivanje prava korištenja vlastite tabele drugim korisnicima (sva prava ALL, svim korisnicima PUBLIC) • REVOKE – oduzimanje prava korištenja
View (pogled) • Pogled – virtualna tabela (ne uzima nikakav memorijski prostor, nema svoje podatke, ali se s njim redi slično kao s običnom tabelom) • prozor kroz koji se vide podaci baze podataka • ažuriranje preko pogleda može se vršiti samo kada je pogled definiran nad jednom tabelom i ako on sadrži sve NOT NULL kolone te tabele
Prednosti korištenja pogleda • jednostavnost • tajnost • izvedba (čuva se u kompajliranom obliku ) • nezavisnost podataka Opći oblik: CREATE VIEW naziv_pogleda [(nazivi atributa)] SELECT atributi FROM . . .
Primjer • relacijski model sastavljen od dvije relacije: RADNIK(atributi: IME, POSAO, SRUKOV, DATZAP, OD, PREMIJA, SOOUR, ključ: SRADNIK) OOUR (atributi: NAZIV, GRAD, ključ: SOOUR ) • atribut SOOUR relacije RADNIK omogućuje povezivanje te relacije s relacijom OOUR (vanjski, sekundarni ključ) OOUR (SOOUR, NAZIV, GRAD) RADNIK (SRADNIK, IME, POSAO, SRUKOV, DATZAP, OD, PREMIJA, SOOUR)
Komentar . . . • ova relacijska shema nije optimalna, jer sadrži NULL vrijednosti u koloni PREMIJA, koje je potrebno eliminirati izbacivanjem kolone PREMIJA iz tabele RADNIK i formiranjem nove relacije: TRGOVACKI_PUTNIK (SRADNIK, PREMIJA) • tako PREMIJA postaje svojstvo svih radnika