Вы находитесь на странице: 1из 3

3.11.2016.

Vježba 4
• Brisanje n-torki po logički složenim uvjetima
(DML - DELETE .... WHERE ... (AND/OR) ....)
• Izmjena sadržaja n-torki po logički složenim uvjetima
(DML – UPDATE ... WHERE ... (AND/OR) ....)

SQL • Kreiranje tablica s referencijalnim integritetom


(DDL- CREATE TABLE...FOREIGN KEY...REFERENCES)
• Dodavanje vanjskog ključa tablici

4. vježba (DDL – ALTER TABLE … ADD FOREIGN KEY)


• Brisanje vanjskog ključa u tablici
(DDL – ALTER TABLE …. DROP FOREIGN KEY)
• Utvrđivanje imena ograničenja
(MySQL + DDL – SHOW CREATE TABLE …)
• Prikazivanje podataka iz više tablica bez i s alias-om
(DQL – SELECT ….)

SQL 4

Uvjetno brisanje redova iz relacije temeljem Uvjetovana ispravka podataka iz relacije


dva i više logički združenih atributa temeljem dva i više logički združenih atributa

• logički se atributi združuju putem veznika AND ili OR • logički se atributi združuju putem veznika AND ili OR

DELETE FROM ime_tablice UPDATE ime_tablice SET Atribut_1=podatak_1,


WHERE Atribut_y=podatak_x AND/OR Atribut_2=podatak_2,
Atribut_k=podatak_z AND/OR ….; Atribut_3=podatak_3,…
WHERE Atribut_y=podatak_x AND/OR
Rezultat: iz relacije se briše n-torka koja ispunjava zadani Atribut_k=podatak_z AND/OR ….;
uvjet kroz WHERE izraz - paziti odgovara li “cilj Rezultat: mijenjaju se upitom ciljani podaci (vrijednosti
brisanja” načinu strukturiranja upita atributa), koji zadovoljavaju određeni uvjet zadan kroz
WHERE izraz - paziti na cilj update-a
Iskazi za vaganje atributa:
=, !=, >, >=, <, <=, IN Iskazi za vaganje atributa:
=, !=, >, >=, <, <=, IN
SQL 4 SQL 4

Pojam relacijskog integriteta 1/2 Pojam relacijskog integriteta 2/2

Relacijski integritet predstavlja uspostavljanje dinamičke • povezivanje se uspostavlja na razini atributa - u nadređenoj
referencijalne veze između podataka povezanih atributa dviju tablici se atribut PK povezuje s odgovarajućim atributom
ili više tablica (relacija). (vanjski ključ - FK)
• integritet podrazumijeva nemogućnost egzistencije podatka • u podređenoj
u podređenoj tablici bez egzistencije odgovarajućeg podatka tablici atributi
u nadređenoj tablici (relaciji) moraju biti isti
• integritet se uspostavlja upotrebom kontrolirane po tipu, ali ne
redundancije (u podređenoj i nadređenoj tablici pretpostavlja i po imenu
egzistenciju istog podatka)

SQL 4 SQL 4

1
3.11.2016.

Primjer uspostave relacijskog integriteta Uspostavljanje relacijskog integriteta u MySQL-u

• Uspostava relacijskog integriteta između dvije tablice: CREATE TABLE tablica_x tablica_y
CLAN_KLUBA(SIFRA, PREZIME_I_IME) (atribut_1 tip_atributa_1 NOT NULL,
atribut_a
atribut_2 tip_atributa_2, ...,
CLANARINA(ID, DATUM, CLAN_KLUBA_SIFRA, IZNOS)
PRIMARY KEY (atribut_1)) atribut_n N
tablica_x
• U prethodnoj shemi uspostavljena je veza: ENGINE=InnoDB;
atribut_k
CLAN_KLUBA.SIFRA→CLANARINA. CLAN_KLUBA_SIFRA 1 atribut_1
CREATE TABLE tablica_y
atribut_2
- Uvjet je za uspostavljanje relacijskog integriteta da oba (atribut_a tip_atributa_a NOT NULL,…,
atributa budu indeksirana. atribut_n tip_atributa_1 NOT NULL,…, atribut_3
- Među atributima uobičajeno se uspostavlja veza 1:N PRIMARY KEY (atribut_a), KEY (atribut_n),
- Prvo se unosi podatak u nadređenu tablicu FOREIGN KEY (atribut_n) REFERENCES tablica_x (atribut_1)
- Opcija: kaskadno ispravljanje podataka i kaskadno brisanje ON DELETE CASCADE ON UPDATE CASCADE) ENGINE=InnoDB;
podataka - ispravak ili brisanje vrijednosti nadređenog atributa
podrazumijeva automatski ispravak ili brisanje vrijednosti PAŽNJA! Tablice moraju biti InnoDB, tipovi atributa primarnih i
podređenog atributa vanjskih ključeva moraju biti jednaki, vanjski ključ mora biti
indeksiran, a kaskade su opcija.
SQL 4 SQL 4

Definiranje imena ograničenja po stranom ključu Dodavanje vanjskog ključa u relaciju

1. dodavanje VK (engl. FK) bez imena ograničenja


CREATE TABLE ime_tablice_y
(atribut_a tip_atributa NOT NULL,…, ALTER TABLE ime_tablice_y ADD FOREIGN KEY (atribut_n)
atribut_n tip_atributa_N NOT NULL,…, REFERENCES Ime_tablice_x (atribut_1);
PRIMARY KEY (atribut_a), KEY (atribut_n),
2. dodavanje VK s imenom ograničenja
CONSTRAINT ime_ograničenja
FOREIGN KEY (atribut_n) ALTER … ADD CONSTRAINT ime_ogr FOREIGN …
REFERENCES Ime_tablice_x (atribut_1) …)
ENGINE=InnoDB
Brisanje stranog ključa
ALTER TABLE ime_tablice_y
DROP FOREIGN KEY ime_ograničenja;

SQL 4 SQL 4

Utvrđivanje imena ograničenja Jednostavan prikaz sadržaja više tablica


• koristi se kada korisnik želi doznati ime ograničenja, • bez upotrebe alias-a (definiranog logičkog imena)
posebno ako ga nije sam definirao SELECT ime_tablice_x.atribut_1, …. ,
SHOW CREATE TABLE ime_tablice_y; ime_tablice_y.atribut_a, …. ,
FROM ime_tablice_x, ime_tablice_y
WHERE ime_tablice_ …;
Status kaskadnog brisanja i ispravljanja
• uz atribut koristi se ime tablice kako bi se znalo iz koje se
• kaskadno brisanje i ispravljanje je predefinirano
tablice uzima atribut (i pri ključnoj riječi SELECT i ključnoj
(ne mora se navoditi - uključivati):
riječi WHERE) s primjenom alias-a:
ON DELETE CASCADE – je default
SELECT x.atribut_1, …. ,
ON UPDATE CASCADE – je default
y.atribut_a, …. ,
FROM ime_tablice_x AS x,
Upotreba više stranih ključeva - podrazumijeva imenovanje ime_tablice_y AS y
svakog stranog ključa pomoću instrukcije CONSTRAINT WHERE ….
- radi kraćeg pisanja ime tablice se mijenja s alias-om
SQL 4 SQL 4

2
3.11.2016.

Zadaci za vježbu 1/2


Zadaci za vježbu 2/2

Zadatak 1: Zadatak 2:
Napravite pregled tablica u bazi podataka. Kreirajte dvije relacije (samostalno odredite prikladne tipove
Odaberite jednu od postojećih tablica, kojoj ćete jednom atributu atributa) i međusobno ih povežite:
promijeniti tip, a drugom odabranom atributu promijenite naziv. CLAN_KLUBA(SIFRA, PREZIME_I IME)
Nakon toga relaciju popunite s još 3 n-torke, tako da sve redove CLANARINA(ID, DATUM_UPL, GODINA, CLAN, IZNOS)
unesete odjednom (u jednoj instrukciji). U tablice unesite podatke za 10 članova, te njihovoj članarini za
U odabranoj tablici potom napravite barem 5 uvjetnih brisanja dvije godine članstva (2014. i 2015.).
redova iz relacije temeljem dva i više logički združenih atributa. Potom napravite izvještaj koji će prikazivati podatke o
Načinite još barem 4 uvjetovanih ispravaka podataka iz relacije, članovima, s njihovim imenima i prezimenima te visini članarine.
temeljem dva i više logički združenih atributa U okviru zadatka provježbajte i druge tipove SQL instrukcija
koje su obrađene u okviru vježbi: pregled ključeva, pregled
dostupnih tipova relacija, pregled tipa odabrane relacije, pregled
definicije relacije...

SQL 4 SQL 4

Pitanja

Zadaća 4.

SQL 4

Вам также может понравиться