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 moguće načine
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
• Sučelje 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 omogućava:
– Definiciju podataka – Definiranje strukture podataka,
modificiranje postojeće strukture i njeno brisanje
– Ažuriranje – Unos, izmjena i brisanje podataka.
– Dohvaćanje – Dohvat podatka iz baze podataka pomoću SQL
upita ili za potrebe vanjskih aplikacija (web, mobile ...)
– Administraciju – Uređivanje korisnika i prava na bazu,
osiguravanje sigurnosti podataka, backup i vraćanje podataka u
slučaju poteškoća, uvid u performanse i omogućavanje
konkurentnosti (multi user access)
Tipovi podataka
Integeri:
Vrsta Raspon Veličina
tinyint 0 – 255 1 byte
smallint –32,768 to 32,767 2 bytea
int –2^31 (–2,147,483,648) to
2^31–1 (2,147,483,647)
4 bytea
bigint –2^63 (–9,223,372,036,854,775,808) to
2^63–1 (9,223,372,036,854,775,807)
8 bytea
Tipovi podataka
Stringovi:
Vrsta Raspon Veličina
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 Veličina
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 povlaćenje
redova iz baze u slučaju tablica i view-ova
• Može pokrivati 1 ili više columna (max 16)
• Određuje 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 vraćanja većih
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
• Omogućavaju da:
– Ograničimo korisnika na određene 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
većinom spominje u kontekstu SQL servera.
• Proceduralan i nadograđuje na osnovne
mogućnosti 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 veća potreba za NOSQL bazama (Not Only SQL)
koje se rješavaju određene probleme performansi u Big
Data i Real time web primjerima.
– BigData (Facebook, Wikipedia, Mapiranje Genoma ..)
– Real-time web (Burza, Twitter ...)
Primjer: Mongo DB
Što proučiti?
• Indexi i optimizacija
• Optimalan odabir tipova podataka za različita polja
• Common table expressions (CTE)
• Cursore
• Vrste joinova
• Pivot funkcija
Q & A
?
Hvala!
vlatko@shoutem.com

More Related Content

PPT
Upotreba i kreiranje baze podataka
PDF
1. Osnove SQL-a
DOC
Baza podataka
PPTX
Access kratko
PPTX
Data WareHose
PDF
Algoritmi i strukture_podataka_2016-05_v01
PPS
Baze podataka - Stefan Nikolić - Silvana Ivković
PPTX
Baze podataka
Upotreba i kreiranje baze podataka
1. Osnove SQL-a
Baza podataka
Access kratko
Data WareHose
Algoritmi i strukture_podataka_2016-05_v01
Baze podataka - Stefan Nikolić - Silvana Ivković
Baze podataka

Viewers also liked (8)

PPTX
I to je to a
PPT
Baze podataka besplatno (1)
PDF
Uvod u baze podataka singidunum
PPT
Baze podataka
PPT
Baze podataka
PPT
Baza podataka
DOC
Kreiranje baze podataka u Access-u
PPT
Funkcije baze podataka u Excel-u Micovic ljiljana
I to je to a
Baze podataka besplatno (1)
Uvod u baze podataka singidunum
Baze podataka
Baze podataka
Baza podataka
Kreiranje baze podataka u Access-u
Funkcije baze podataka u Excel-u Micovic ljiljana
Ad

Similar to Baze podataka i SQL - Vlatko Vlahek (20)

DOC
Microsoft sql server 2003
ODP
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 5.
PPTX
Mihovil Rister nerelacijaka sadašnjost, budućnost i primjene rev 1.4
PPT
SQL Azure
PPT
Dinko Korunić - Skalabilna web rješenja (IT Showoff)
PPTX
Zahtjevno računalstvo u oblaku HTC Cloud.pptx
PDF
ITshowoff Zagreb: Skalabilna web rjesenja
PDF
ITshowoff-Dinko
PPTX
MSNetwork 4 - Enterprise funkcionalnosti u malim tvrtkama sa Office 365
PPTX
SQL Azure Reporting
PDF
Web App Security for Devs
PDF
Web App Security for Devs
PDF
Osb studija slucaja sgsb-a.ppt [compatibility m
PDF
Javantura Zagreb 2014 - Alfresco-Neo4j integracija - Damir Murat
PPT
Access predavanja
PPTX
Vert.x - Mihovil Rister, Javantura
PDF
Why Firebird - Fact for decision makers, in Bosnian
PPTX
Real-Time Streaming: Apache Spark Streaming i Apache Storm
PDF
Javantura Zagreb 2014 - Vert.x 1.3 - Mihovil Rister
PPTX
Vert.x - asinkroni skalabilni i poliglotni framework nove generacije
Microsoft sql server 2003
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 5.
Mihovil Rister nerelacijaka sadašnjost, budućnost i primjene rev 1.4
SQL Azure
Dinko Korunić - Skalabilna web rješenja (IT Showoff)
Zahtjevno računalstvo u oblaku HTC Cloud.pptx
ITshowoff Zagreb: Skalabilna web rjesenja
ITshowoff-Dinko
MSNetwork 4 - Enterprise funkcionalnosti u malim tvrtkama sa Office 365
SQL Azure Reporting
Web App Security for Devs
Web App Security for Devs
Osb studija slucaja sgsb-a.ppt [compatibility m
Javantura Zagreb 2014 - Alfresco-Neo4j integracija - Damir Murat
Access predavanja
Vert.x - Mihovil Rister, Javantura
Why Firebird - Fact for decision makers, in Bosnian
Real-Time Streaming: Apache Spark Streaming i Apache Storm
Javantura Zagreb 2014 - Vert.x 1.3 - Mihovil Rister
Vert.x - asinkroni skalabilni i poliglotni framework nove generacije
Ad

More from Software StartUp Academy Osijek (14)

PPTX
ASP.NET - Ivan Marković
PPTX
XAML and WPF - Dinko Jakovljević
PPTX
Internet marketing - Damir Podhorski
PDF
Team management - Tomislav Bilić
PPTX
ORM - Ivan Marković
PPTX
PDF
Wireframing & UI design - Andrej Mlinarevic
PDF
Financijski plan - Ana Marija Delic
PPTX
Izvori financiranja - Nina Marković
PDF
Software Product Development - Denis Susac
PPTX
PDF
Poslovni plan - Sunčica Oberman Peterka
PPTX
PM, Scrum and TFS - Ivan Marković
PPTX
Uvod u aplikacije - Luka Mandić
ASP.NET - Ivan Marković
XAML and WPF - Dinko Jakovljević
Internet marketing - Damir Podhorski
Team management - Tomislav Bilić
ORM - Ivan Marković
Wireframing & UI design - Andrej Mlinarevic
Financijski plan - Ana Marija Delic
Izvori financiranja - Nina Marković
Software Product Development - Denis Susac
Poslovni plan - Sunčica Oberman Peterka
PM, Scrum and TFS - Ivan Marković
Uvod u aplikacije - Luka Mandić

Baze podataka i SQL - Vlatko Vlahek

  • 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 moguće načine 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 • Sučelje 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 omogućava: – Definiciju podataka – Definiranje strukture podataka, modificiranje postojeće strukture i njeno brisanje – Ažuriranje – Unos, izmjena i brisanje podataka. – Dohvaćanje – Dohvat podatka iz baze podataka pomoću SQL upita ili za potrebe vanjskih aplikacija (web, mobile ...) – Administraciju – Uređivanje korisnika i prava na bazu, osiguravanje sigurnosti podataka, backup i vraćanje podataka u slučaju poteškoća, uvid u performanse i omogućavanje konkurentnosti (multi user access)
  • 12. Tipovi podataka Integeri: Vrsta Raspon Veličina tinyint 0 – 255 1 byte smallint –32,768 to 32,767 2 bytea int –2^31 (–2,147,483,648) to 2^31–1 (2,147,483,647) 4 bytea bigint –2^63 (–9,223,372,036,854,775,808) to 2^63–1 (9,223,372,036,854,775,807) 8 bytea
  • 13. Tipovi podataka Stringovi: Vrsta Raspon Veličina 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 Veličina 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 povlaćenje redova iz baze u slučaju tablica i view-ova • Može pokrivati 1 ili više columna (max 16) • Određuje 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 vraćanja većih 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 • Omogućavaju da: – Ograničimo korisnika na određene 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 većinom spominje u kontekstu SQL servera. • Proceduralan i nadograđuje na osnovne mogućnosti SQL-a.
  • 37. • Pojašnjenje pojeodinih joinova: http://www.codeproject.com/Articles/33052/ Visual-Representation-of-SQL-Joins
  • 40. Trendovi • Sve veća potreba za NOSQL bazama (Not Only SQL) koje se rješavaju određene 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 proučiti? • Indexi i optimizacija • Optimalan odabir tipova podataka za različita polja • Common table expressions (CTE) • Cursore • Vrste joinova • Pivot funkcija