1.Što je SQL i navedite njegove osobine?
SQL(Structured Query Language) - strukturni jezik za pretraživanje (upute).
• Osobine: English-like jezik. Upotrebljava riječi kao što su npr.: select, insert, delete i sl. kao dio naredbe
Ne-proceduralni jezik
U jednom trenutku češće obrađuje skup slogova nego jedan slog (na razini tablice)
Mogu ga koristiti korisnici različitog profila: DB administratori, aplikativni programeri, neprofesionalni korisnici i sl.
Osigurava naredbe za različite zadaće uključujući:
Upite nad podacima
Dodavanje, mijenjanje i brisanje redaka u tablicama
Kreiranje, mijenjanje i brisanje objekata sheme
Kontrolu pristupa bazi podataka i objektima sheme
Osigurava konzistentnost baze podataka
• Baza podataka (Database) - objekt koji sadrži sve ostale objekte
• Tablica (Table) – sluzi za pohranu podataka Sastoje se od stupaca i redova (slogovi), Stupci sadrže vrijednosti pojedinih atributa a Slogovi sadrže vrijednost svih atributa
• Pogled ili virtualna tablica (View) - Postoje samo kao definicije upita nad jednom ili više tablica I ne čuvaju podatke u sebi
• ogranicenja (Constraint) - objekt koji u sebi čuva neko od pravila integriteta podataka (npr. primarni i strani ključ)
• Indeks (Index) - čuvaju podatke o indeksiranim stupcima tablice • Služe lakšem (bržem) pristupu traženim slogovima tablice • Nisu vidljivi korisniku • Mogu poslužiti nametanju određenih pravila (npr. ključevi)
• Procedura (Stored Procedure) - objekt koji u sebi sadrži programski kod, a aktivira se eksplicitno na zahtjev korisnika
• Okidač (Trigger) - sadrže programski kod koji se izvršava implicitno u strogo određenim situacijama
• Sinonim (Synonym)- alias kojim je moguće referencirati objekte
Imena objekata u SQL-u sastoje se od slova, donje crte ‘_’ i znamenki, pod uvjetom da prvi znak mora biti slovo.
• INTEGER – pohrana cijelih brojeva koristeći 4 bajta memorije.
• SMALLINT– pohrana cijelih brojeva koristeći 2 bajta memorije.
• TINYINT– pohrana cijelih brojeva koristeći 1 bajt memorije.
• CHAR(n) - (fiksna dužina zapisa) pohrana niza znakova unutar jednostrukih navodnika.
• NCHAR(n) – isto kao i CHAR tip podatka, ali omogućava korištenje Unicode znakova
• VARCHAR(n) - (varijabilna dužina zapisa) gdje je broj n maksimalna duljina niza znakova
• TEXT - varijabilna duljina zapisa
• DECIMAL – prikaz decimalnih brojeva
• DATETIME, SMALLDATETIME, TIMESTAMP
• BINARY(n), VARBINARY(n), IMAGE
• DML izrazi (Data Manipulation Language Statements) - izrazi za upravljanje podacima
( SELECT ,UPDATE ,DELETE ,INSERT)
• DDL izrazi (Data Definition Language Statements) - izrazi za definiranje podataka
( CREATE ,DROP ,ALTER)
• Izrazi za kontrolu transakcija (Transaction Control Statements)
(COMMIT, ROLLBACK, SAVEPOINT, SET TRANSACTION)
• Izrazi za kontrolu sesije (Session Control Statements)
(ALTER SESSION, SET ROLE)
• Izrazi za kontrolu sustava (System Control Statements)
• Ugrađeni SQL izrazi (Embedded SQL Statements)
• equi-join (spajanje po jednakosti) – uspoređuju se vrijednosti stupca spajanja iz obje tablice I moraju biti jednake da bi se izvršilo spajanje (uvjet jednakosti)
• non-equi join (spajanje po nejednakosti) – kada se vrijednosti nalaze u okviru nekog raspona i ne postoji izravna veza između stupaca u tablicama
• outer joins (vanjsko spajanje) – prikaz redaka koji inače ne zadovoljavaju uvjet spajanja
• self joins (rekurzivno spajanje) – tablica se veže na samu sebe
Podupit je SELECT iskaz ugnježđen u drugom SELECT iskazu. Rezultat ovog “unutarnjeg” SELECT iskaza koristi se u “vanjskom” SELECT-tu kako bi se odredio sadržaj konačnog rezultata. Podupit se može koristiti na WHERE i HAVING iskazu, kao i u INSERT, UPDATE I DELETE iskazima.
• Pr.
SELECT ImePrezime, RadnoMjesto, plaća
FROM djelatnici
WHERE plaća=(SELECT MIN(plaća)
FROM djelatnici);
• “Prozor” u podatke.
• Pogledi su prethodno snimljeni SELECT upiti nad bazom podataka.
Uporaba pogleda:
▪ za ograničenje pristupa podacima
▪ za pojednostavljenje složenih upita
▪ za omogućavanje neovisnosti podataka
▪ za prikaz različitih pogleda na iste podatke.
• Pogled je virtualna tablica koja prikazuje podatke iz jedne ili više relacija, ali ne pohranjuje
podatke fizički.
• Relacija (tablica) stvarno pohranjuje podatke u bazi i predstavlja osnovnu strukturu za čuvanje informacija.
• Funkcije su potprogram u SQL-u koje u pozivajući program vraćaju rezultat kao povratnu vrijednost.
• Koriste se za obradu, izračun ili transformaciju podataka unutar upita.
• Procedure su potprogram u SQL-u koje u pozivajući program ne vraćaju rezultat kao povratnu vrijednost.
Koristi se :
▪ za zaštitu podataka na razini funkcije jer funkciji dodjeljujemo prava korištenja
▪ omogućena je upotreba klijent-poslužitelj arhitekture oslonjene na poslužitelj
• Okidači su automatski postupci koji se izvršavaju kao reakcija na događaje nad tablicom, poput
INSERT, UPDATE ili DELETE.
• Koriste kad želimo da se određena logika izvrši automatski pri promjeni podataka.
• on event
if condition then action
• Ako se dogodi neki događaj (eng. event), izračunava se uvjet (eng. condition) i ako je on
zadovoljen izvršava se akcija (eng. action).
• Integritet baze podataka se odnosi na ispravnost podataka koji se u njoj nalaze.
• Integritetska ograničenja osiguravaju da izmjene podataka ne rezultiraju narušavanjem
konzistentnosti podataka radom samih korisnika baze podataka.
▪ Entitetski integritet
▪ Domenski integritet
▪ Ograničenja NULL vrijednosti
▪ Integritet ključa
▪ Referencijalni integritet
▪ Opća integritetska ograničenja
• Sigurnost baze podataka (eng. database security) brine se o tome da korisnici koji pristupaju bazi podataka za to imaju ovlaštenje, tj. štiti bazu od korisnika koji nemaju ovlast za pristup bazi podataka.
• Kao posljedica neovlaštene izmjene i čitanja podataka može se narušiti sigurnost organizacije koja čuva podatke u bazi podataka.
• Pod pojmom fizičke organizacije baze podataka podrazumijevamo strukture podataka korištene pri
spremanju podataka u memoriji.
• Utječe na učinkovitost baze podataka jer djelotvornija fizička organizacija brže pristupa podacima.
• Neporedana datoteka (eng. heap)
• Poredana datoteka (eng. sorted file)
• Raspršena datoteka (eng. hash file)
• Indeksno-slijedna organizacija (eng. index-sequential file)
• B-stablo (eng. B-tree)
• Balansirano stablo ili B-stablo je stablo u kojem je duljina puta od korijena do svakog čvora jednaka.
• Indeksi su strukture (najčešće B/B+ stabla) kreirane nad atributima tablice kako bi ubrzale
pretraživanje i filtriranje podataka.
• Atomiziranost – ‘sve ili ništa’, predstavlja nedjeljivost transakcije. Transakcija se mora obaviti čitava ili ništa.
• Konzistentnost – transakcija mora transformirati bazu iz jednog konzistentnog stanja u drugo.
• Izoliranost – transakcije se izvršavaju neovisno jedna od druge i djelovanje mora biti isto kao da se obavljaju jedna iza druge.
• Trajnost – rezultat uspješno završenih (potvrđenih) transakcija se trajno bilježi u bazu podataka I ne smije se izgubiti zbog eventualnih naknadnih grešaka.
• Exclusive lock – transakcija može i čitati i ažurirati podatak.
• Ako je podatak zaključan ekskluzivnim ključem, sljedeća transakcija koja traži pristup tom
podatku ne može pristupiti.
• Distribuirana baza podataka je skup baza podataka smještenih na više različitih računala i
prostornih lokaliteta, a s kojima korisnik radi kao da je u pitanju jedna jedinstvena baza.
1) Glavni čvor šalje poruku o ažuriranju potčinjenim čvorovima : “napravi brzu potvrdu prijema”
2) Potčinjeni čvor odgovara s “potvrđujem prijem”
3) Glavni šalje poruku “potvrdi bazu podataka”
4) Potčinjeni odgovara s “potvrđeno”
• Skup logički povezanih djeljivih podataka
• Podaci su razdvojeni na više fragmenata
• Fragmenti se mogu replicirati
• Fragmenti/Replikacije pripadaju lokacijama
• Lokacije su povezane komunikacijskom mrežom
• Podaci na svakoj lokaciji su pod nadzorom DBMS-a
• DBMS na svakoj lokaciji može upravljati lokalnim aplikacijama autonomno
• Svaki DBMS učestvuje u najmanje jednoj globalnoj aplikaciji.
• Lokalna DBMS komponenta
• Komunikacijska komponenta
• Globalni katalog sustava
• Distribuirana DBMS komponenta