Sql-1

  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Sql-1 as PDF for free.

More details

  • Words: 1,325
  • Pages: 24
Jezik za rad s relacijskom bazom podataka

Maja Petekić

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

• • • • •

Ključne riječi Detaljan opis naredbi View (pogled) Primjer Formiranje upita (upiti nad jednom tabelom, upit nad jednom



Standardni način povezivanja SQL-a s višim programskim jezicima Kursori



upravljanje podacima)

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)

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 u IBM-ovom istraživačkom laboratoriju u Californiji

 prethodnik mu je SEQUEL

Osnovne karakteristike . . . 1.

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

1.

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

1.

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  NAREDBE – glagoli koji prouzrokuju akciju, koja se izvršava (SELECT)

 KVALIFIKATORI – ograničavaju opseg vrijednosti entiteta koji čine upit (WHERE)

 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. 2. 3. 4.

INSERT UPDATE DELETE 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)

2. UPDATE – kod izmjene sadržaja tabele potrebno je paziti da vrijednost svakog atributa mijenjamo samo jednim izrazom Opći oblik: UPDATE tabela SET atribut=izraz [WHERE uvjet]

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)

 ALTER TABLE – dodavanje novog atributa (nove kolone) postojećoj tabeli Opći oblik: ALTER TABLE tabela ADD (atr tip [, atr tip])

 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 sadržaj tabele i samu tabelu

i



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

1.

jednostavnost

2.

tajnost

3.

izvedba (čuva se u kompajliranom obliku )

4.

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)

Relacijska shema za primjer SOOUR

NAZIV

GRAD

10

RAD_ZAJ

ZAGREB

20

PRIPREMA

OSIJEK

30

PROJEKTIRANJE

POŽEGA

40

ISTRAŽIVANJE

SPLIT

Relacijski model za primjer SRADNIK

IME

POSAO

SRUKOV

DATZAP

OD

PREMIJA

SOOUR

3069

ANITA

analitičar

3602

17-DEC-80

80 000

3199

IVANA

trg_putnik

3398

20-FEB-81

160 000

30 000

20

3221

BARICA

trg_putnik

9398

22-FEB-81

125 000

50 000

20

3266

ANITA

rukovodioc

3539

02-APR-81

297 500

3354

JASNA

trg_putnik

3398

28-SEP-81

125 000

3398

KATARINA

rukovodioc

3539

01-MAY-81

285 000

30

3482

MARCELA

rukovodioc

3539

09-JUN-81

245 000

10

3488

ŽELJKA

savjetnik

3266

09-NOV-81

300 000

20

3539

BLANKA

predsjednik

17-NOV-81

500 000

10

20

20 140 000

20

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