際際滷

際際滷Share a Scribd company logo
Vlatko Vlahek
Support Manager at ShoutEm Inc.
vlatko@shoutem.com
Uvod u
relacijske baza podataka
Agenda
1) Osnovni pojmovi
2) Microsoft SQL Server
3) T-SQL sintaksa i primjeri
4) Snimljene procedure
5) Pitanja
to je?
 Baza podataka je organizirana skupina podataka koji su
pohranjeni tako da mogu zadovoljiti zahtjeve krajnjeg
korisnika. (Max Vetter, 1981.)
 Relacijske baze podataka su temeljene na injenici da
korisnik ne mo転e unaprijed znati sve mogue naine
kori邸tenja podataka tj. u bazi ne postoje predefinirani
putovi kretanja kroz podatke.
Relacijski model
 Objekti u relacijskom modelu baza podataka
se zovu Relacije  dvodimenzionalna tablica
 Relacije se sastoje od:
 Atributa (imenovani stupac)
 Tuplea (redovi)
Tablica
Stupac
Id Ime Prezime
Red 1 Pero Peri
2 Marko Markovi
3 Ivan Ivi
4 Bela Ikoti
Constraints
 Odr転avaju integritet podataka i relacija
unutar baze
 Primarni klju (single column, kompozitni)
 Strani klju
 Unikatni klju
PRIMARNI KLJU
Id Ime Prezime
123 Pero Peri
124 Marko Markovi
125 Ivan Ivi
126 Bela Ikoti
PRIMARNI
KLJU
STRANI KLJU
Id IdStudenta Status Godina
1 123 R 1
2 124 I 3
3 125 R 3
4 126 I2 5
PRIMARNI KLJU
Id Ime Prezime
123 Pero Peri
124 Marko Markovi
125 Ivan Ivi
126 Bela Ikoti
PRIMARNI
KLJU
STRANI KLJU
Id IdStudenta Ocjena Predmet
1 124 4 Linearna Algebra
2 124 5 OET
3 124 4 Matematika 3
4 124 3 Digitalna Elektronika
DBMS
 Suelje za komuniciranje korisnika sa bazom podataka
se zove: DataBase Management System (DBMS)
 Microsoft SQL Server (proprietary)
 Oracle RDBMS (proprietary)
 IBM DB2 (proprietary)
 MySQL (open-source)
 PostgreSQL (open-source)
DBMS
DBMS nam omoguava:
 Definiciju podataka  Definiranje strukture podataka,
modificiranje postojee strukture i njeno brisanje
 A転uriranje  Unos, izmjena i brisanje podataka.
 Dohvaanje  Dohvat podatka iz baze podataka pomou SQL
upita ili za potrebe vanjskih aplikacija (web, mobile ...)
 Administraciju  Ureivanje korisnika i prava na bazu,
osiguravanje sigurnosti podataka, backup i vraanje podataka u
sluaju pote邸koa, uvid u performanse i omoguavanje
konkurentnosti (multi user access)
Tipovi podataka
Integeri:
Vrsta Raspon Veliina
tinyint 0  255 1 byte
smallint 32,768 to 32,767 2 bytea
int 2^31 (2,147,483,648) to
2^311 (2,147,483,647)
4 bytea
bigint 2^63 (9,223,372,036,854,775,808) to
2^631 (9,223,372,036,854,775,807)
8 bytea
Tipovi podataka
Stringovi:
Vrsta Raspon Veliina
varchar(n) 1  8000 2 byte +
1x char
number
nvarchar(n) 1  4000 or (max) 2 byte +
2 x char
number
Tipovi podataka
Ostalo:
Vrsta Raspon Veliina
Float 1.79E +308 through 1.79E+308 8 byte
Bit 0 or 1 1 byte
Uniqueidentifier GUID 16 bytea
Datetime 2014-12-26 00:00:00 8 bytea
Tipovi podataka
 Referenca: http://technet.microsoft.com/en-
us/library/ms172424%28v=sql.110%29.aspx
INDEXI
 Index je struktura koja ubrzava povlaenje
redova iz baze u sluaju tablica i view-ova
 Mo転e pokrivati 1 ili vi邸e columna (max 16)
 Odreuje kako e se podaci snimiti na disk
 Kod tablica koje se esto updateaju, koristiti u転e
indexe.
 Problem sa fragmentacijom.
INDEXI
 Mo転e biti:
 Clustered (grupira podatke iz baze bli転e na
samom disku). Koristi se kod vraanja veih
setova rezultata
 Unclustered. Koristi se u tablicama gdje imamo
upite sa puno WHERE ili JOIN naredbi.
View
 Mo転emo ga zamisliti kao virtualni layer koji prikazuje
trenutno stanje tablice na kojoj je baziran uz
postavljene uvjete
 Omoguavaju da:
 Ograniimo korisnika na odreene stupce ili redove u
tablici
 Spojimo vi邸e tablica u jednu da bi ih prezentirali nekome
 Sigurnost
Microsoft SQL server
Microsoft SQL Server
 Microsoftov DBMS, prva verzija se pojavila 1989
 Razvili su ga Microsoft i Sybase (SAP)
 Primarni SQL dijalekti: T-SQL, ANSI SQL a
podr転ava i XML (Sql server 2005 >)
 Intellisense support, integracija sa Windows
Azureom
Microsoft SQL Server
 Studenti: Preuzeti SQL Server sa
DreamSparka: https://www.dreamspark.com/
 Ostali, SQL Server Express:
http://www.microsoft.com/en-us/server-
cloud/products/sql-server/
Microsoft SQL Server
 Prilikom instalacije, collation:
Latin1_General_CI_AS
Demo
Microsoft SQL Server Diagram
Diagram
 Za one koji planiraju koristiti neko open
source rje邸enje, mo転ete napraviti diagrame
sa:
 http://ondras.zarovi.cz/sql/demo/
Transact SQL (T-SQL)
T-SQL
 Originalno ga je razvio IBM, danas se
veinom spominje u kontekstu SQL servera.
 Proceduralan i nadograuje na osnovne
mogunosti SQL-a.
CREATE TABLE
CREATE TABLE
DROP TABLE
ALTER TABLE
ALTER TABLE
INSERT INTO
SELECT
SELECT
SELECT + JOIN
SELECT + JOIN
 Poja邸njenje pojeodinih joinova:
http://www.codeproject.com/Articles/33052/
Visual-Representation-of-SQL-Joins
DELETE
UPDATE
Trendovi
 Sve vea potreba za NOSQL bazama (Not Only SQL)
koje se rje邸avaju odreene probleme performansi u Big
Data i Real time web primjerima.
 BigData (Facebook, Wikipedia, Mapiranje Genoma ..)
 Real-time web (Burza, Twitter ...)
Primjer: Mongo DB
to prouiti?
 Indexi i optimizacija
 Optimalan odabir tipova podataka za razliita polja
 Common table expressions (CTE)
 Cursore
 Vrste joinova
 Pivot funkcija
Q & A
?
Hvala!
vlatko@shoutem.com

More Related Content

Baze podataka i SQL - Vlatko Vlahek

  • 1. Vlatko Vlahek Support Manager at ShoutEm Inc. vlatko@shoutem.com
  • 3. Agenda 1) Osnovni pojmovi 2) Microsoft SQL Server 3) T-SQL sintaksa i primjeri 4) Snimljene procedure 5) Pitanja
  • 4. to je? Baza podataka je organizirana skupina podataka koji su pohranjeni tako da mogu zadovoljiti zahtjeve krajnjeg korisnika. (Max Vetter, 1981.) Relacijske baze podataka su temeljene na injenici da korisnik ne mo転e unaprijed znati sve mogue naine kori邸tenja podataka tj. u bazi ne postoje predefinirani putovi kretanja kroz podatke.
  • 5. Relacijski model Objekti u relacijskom modelu baza podataka se zovu Relacije dvodimenzionalna tablica Relacije se sastoje od: Atributa (imenovani stupac) Tuplea (redovi)
  • 6. Tablica Stupac Id Ime Prezime Red 1 Pero Peri 2 Marko Markovi 3 Ivan Ivi 4 Bela Ikoti
  • 7. Constraints Odr転avaju integritet podataka i relacija unutar baze Primarni klju (single column, kompozitni) Strani klju Unikatni klju
  • 8. PRIMARNI KLJU Id Ime Prezime 123 Pero Peri 124 Marko Markovi 125 Ivan Ivi 126 Bela Ikoti PRIMARNI KLJU STRANI KLJU Id IdStudenta Status Godina 1 123 R 1 2 124 I 3 3 125 R 3 4 126 I2 5
  • 9. PRIMARNI KLJU Id Ime Prezime 123 Pero Peri 124 Marko Markovi 125 Ivan Ivi 126 Bela Ikoti PRIMARNI KLJU STRANI KLJU Id IdStudenta Ocjena Predmet 1 124 4 Linearna Algebra 2 124 5 OET 3 124 4 Matematika 3 4 124 3 Digitalna Elektronika
  • 10. DBMS Suelje za komuniciranje korisnika sa bazom podataka se zove: DataBase Management System (DBMS) Microsoft SQL Server (proprietary) Oracle RDBMS (proprietary) IBM DB2 (proprietary) MySQL (open-source) PostgreSQL (open-source)
  • 11. DBMS DBMS nam omoguava: Definiciju podataka Definiranje strukture podataka, modificiranje postojee strukture i njeno brisanje A転uriranje Unos, izmjena i brisanje podataka. Dohvaanje Dohvat podatka iz baze podataka pomou SQL upita ili za potrebe vanjskih aplikacija (web, mobile ...) Administraciju Ureivanje korisnika i prava na bazu, osiguravanje sigurnosti podataka, backup i vraanje podataka u sluaju pote邸koa, uvid u performanse i omoguavanje konkurentnosti (multi user access)
  • 12. Tipovi podataka Integeri: Vrsta Raspon Veliina tinyint 0 255 1 byte smallint 32,768 to 32,767 2 bytea int 2^31 (2,147,483,648) to 2^311 (2,147,483,647) 4 bytea bigint 2^63 (9,223,372,036,854,775,808) to 2^631 (9,223,372,036,854,775,807) 8 bytea
  • 13. Tipovi podataka Stringovi: Vrsta Raspon Veliina varchar(n) 1 8000 2 byte + 1x char number nvarchar(n) 1 4000 or (max) 2 byte + 2 x char number
  • 14. Tipovi podataka Ostalo: Vrsta Raspon Veliina Float 1.79E +308 through 1.79E+308 8 byte Bit 0 or 1 1 byte Uniqueidentifier GUID 16 bytea Datetime 2014-12-26 00:00:00 8 bytea
  • 15. Tipovi podataka Referenca: http://technet.microsoft.com/en- us/library/ms172424%28v=sql.110%29.aspx
  • 16. INDEXI Index je struktura koja ubrzava povlaenje redova iz baze u sluaju tablica i view-ova Mo転e pokrivati 1 ili vi邸e columna (max 16) Odreuje kako e se podaci snimiti na disk Kod tablica koje se esto updateaju, koristiti u転e indexe. Problem sa fragmentacijom.
  • 17. INDEXI Mo転e biti: Clustered (grupira podatke iz baze bli転e na samom disku). Koristi se kod vraanja veih setova rezultata Unclustered. Koristi se u tablicama gdje imamo upite sa puno WHERE ili JOIN naredbi.
  • 18. View Mo転emo ga zamisliti kao virtualni layer koji prikazuje trenutno stanje tablice na kojoj je baziran uz postavljene uvjete Omoguavaju da: Ograniimo korisnika na odreene stupce ili redove u tablici Spojimo vi邸e tablica u jednu da bi ih prezentirali nekome Sigurnost
  • 20. Microsoft SQL Server Microsoftov DBMS, prva verzija se pojavila 1989 Razvili su ga Microsoft i Sybase (SAP) Primarni SQL dijalekti: T-SQL, ANSI SQL a podr転ava i XML (Sql server 2005 >) Intellisense support, integracija sa Windows Azureom
  • 21. Microsoft SQL Server Studenti: Preuzeti SQL Server sa DreamSparka: https://www.dreamspark.com/ Ostali, SQL Server Express: http://www.microsoft.com/en-us/server- cloud/products/sql-server/
  • 22. Microsoft SQL Server Prilikom instalacije, collation: Latin1_General_CI_AS
  • 24. Diagram Za one koji planiraju koristiti neko open source rje邸enje, mo転ete napraviti diagrame sa: http://ondras.zarovi.cz/sql/demo/
  • 26. T-SQL Originalno ga je razvio IBM, danas se veinom spominje u kontekstu SQL servera. Proceduralan i nadograuje na osnovne mogunosti SQL-a.
  • 37. Poja邸njenje pojeodinih joinova: http://www.codeproject.com/Articles/33052/ Visual-Representation-of-SQL-Joins
  • 40. Trendovi Sve vea potreba za NOSQL bazama (Not Only SQL) koje se rje邸avaju odreene probleme performansi u Big Data i Real time web primjerima. BigData (Facebook, Wikipedia, Mapiranje Genoma ..) Real-time web (Burza, Twitter ...) Primjer: Mongo DB
  • 41. to prouiti? Indexi i optimizacija Optimalan odabir tipova podataka za razliita polja Common table expressions (CTE) Cursore Vrste joinova Pivot funkcija