Presentation is loading. Please wait.

Presentation is loading. Please wait.

Baze podataka RKPedu / Pazin IT Pazin, 17.5.2017..

Similar presentations


Presentation on theme: "Baze podataka RKPedu / Pazin IT Pazin, 17.5.2017.."— Presentation transcript:

1 Baze podataka RKPedu / Pazin IT Pazin,

2 Predavači Za vas danas: Marko Pernić Ivan Guštin

3 Baze podataka Povijest organiziranih zbirki podataka Osnovni pojmovi
Sadržaj Povijest organiziranih zbirki podataka Osnovni pojmovi Pregled tipova i organizacija baza podataka Sustavi upravljanja bazama podataka Projektiranje baze podataka NoSQL baze podataka Memorijske baze podataka i trendovi

4 Organizirane zbirke podataka
Povijest Organizirane zbirke podataka 1970. Relacijska baza 2000. XML 1963. Pojam baze podataka 1980. Komercijalni proizvodi (DB2, Oracle)

5 Povijest Tekstualna datoteka Strukturirana datoteka DBMS ?
Načini spremanja podataka Tekstualna datoteka Strukturirana datoteka DBMS ?

6 Lokalne i mrežne baze podataka
Osnovni pojmovi Lokalne i mrežne baze podataka Lokalne baze Mrežne baze Paradox FoxPro MS Access Oracle DB2 MS SQL MySQL

7 Komunikacija Web aplikacija - Baza
Osnovni pojmovi Komunikacija Web aplikacija - Baza

8 Osnovni pojmovi Sustavi upravljanja bazama podataka Datoteka 1
Datoteke Datoteka 1 Datoteka 2 Datoteka 3 Log 1 Log 2 Raspored pohranjivanja Shema Pogledi Matični podaci učenika Povijest obroka Uplate Aplikacije / Programi Evidencija učenika Topli obrok Financije

9 Osnovni pojmovi Povezivanje ODBC - standard namijenjen za pristupu sustavima za upravljanje bazom podataka koji ne ovisi o bazi, operativnom sustavu ni programskom jeziku. ADO.NET - objektni model sastavljen od skupa klasa koje omogućuju pristup i manipulaciju podacima iz različitih izvora podataka. TCP/IP – jedan od načina povezivanja na bazu smještenu bilo gdje. PDO – PHP Data Object – sučelje za pristup bazama u PHP-u

10 Povezivanje - primjeri
Osnovni pojmovi Povezivanje - primjeri Server=myServerName\myInstanceName;Database=myDataBase;User Id=myUsername; Password=myPassword; $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass); OdbcConnection DbConnection = new OdbcConnection("DSN=SAMPLE_ISAM")

11 Osnovni pojmovi Tablica Atribut Slog Veza
Često korišteni pojmovi Tablica Atribut Slog Veza Organizirani skup podataka unutar baze Stupac u tablici Redak u tablici Odnos između atributa u tablicama

12 Tipovi baza podataka Tipovi Data warehouse – skladište podataka koje se puni po zadanim pravilima u predviđenim intervalima In-Memory – memorijske baze podataka koje se sve češće koriste zbog brzine pristupa podacima Cloud – baze smještene u online cloud servise (Google, Amazon, …) Embeded – baze podataka ugrađene u neke aplikacije (npr. vlastita To-Do lista)

13 Organizacija baze podataka
Mogućnosti Pula RyanAir Oslo London Croatia Zagreb Hijerarhijske Baza je predoĉena jednim stablom (hijerarhijom) ili skupom stabala. Svako stablo sastoji se od ĉvorova i veza „nadređeni-podređeni“ zmeĊu ĉvorova. Ĉvorovi su tipovi zapisa, a odnos „nadreĊeni-podreĊeni" izražava hijerarhijske veze među tipovima zapisa. Mrežne Baza je predočena mrežom koja se sastoji od čvorova i usmjerenih lukova. Čvorovi predstavljaju tipove zapisa (slogova podataka), a lukovi definiraju veze među tipovima zapisa. "Owner - Member" model, svaki Member ima samo jednog Ownera. Relacijske Zasnovan je na matematičkom pojmu relacije. I podaci i veze među podacima prikazuju se tablicama koje se sastoje od redaka i stupaca. Objektno-orijentirane Inspiriran je objektno-orijentiranim programskim jezicima. Baza je predočena kao skup trajno pohranjenih objekata koji se sastoje od svojih internih „atributa“ (podataka) i „metoda“ (operacija) za rukovanje tim podacima.

14 Organizacija baze podataka
Relacijske baze podataka U relacijskim bazama veze se uspostavljaju na osnovu sadržaja odgovarajućih polja, pri čemu se pozicije tih veza mogu dinamički mijenjati u toku rada. Veze 1:1 Jedan primjerak iz T1 može biti vezan s najviše jednim iz T2; i obratno 1:M Jedan primjerak iz T1 može biti vezan s mnogo iz T2; Jedan primjerak iz T2 može biti vezan samo s jednim iz T1 M:1 Jedan primjerak iz T1 može biti vezan s jednim iz T2; Jedan primjerak iz T2 može biti vezan s više iz T1 M:M Jedan primjerak iz T1 može biti vezan s više iz T2; i obratno

15 Organizacija baze podataka
Relacijske baze podataka

16 Organizacija baza podataka
Tipovi podataka Numeric Date and Time String Other INT SMALLINT DECIMAL FLOAT BIT BOOLEAN DATE DATETIME TIMESTAMP TIME CHAR VARCHAR TEXT BINARY BLOB GEOMETRY POLYGON LINESTRING GEOGRAPHY XML NULL; Auto Increment; Length; Default; Collation; …

17 Sustavi upravljanja bazama podataka
Elementi Table Skup podataka s istim atributima; View Pogled, virtualna tablica; Stored procedure Niz SQL naredbi koje se mogu izvršiti na nekoliko načina; Koriste se za centraliziranje logike programa; Trigger Skup naredbi koje se izvršavaju vezano na događaj manipulacije podacima ili strukturom;

18 Sustavi upravljanja bazama podataka
Pregled Oracle MSSQL MySQL SQLite

19 Sustavi upravljanja bazama podataka
Oracle Oracle Oracle je najjači proizvođač baza podataka. Baza im se zove kao i tvrtka. Druga najveća softwareska tvrtka u svijetu (nakon Microsofta). Napravili su prvu komercijalnu bazu podataka. PL/SQL za pisanje procedura, ali se kod može pisati i u Javi. Baza radi na bilo kojem OS-u (Unix, Linux, Windows). Web sučelje, SQL developer i Toad sučelje za upravljanje bazom i podacima. Oracle Forms za izradu aplikacija za rad s bazom. Besplatna verzija Oracle XE. G verzija je grid; c verzija je cloud.

20 Sustavi upravljanja bazama podataka
Microsoft SQL Server MSSQL Prva verzija SQL servera je izašla godine, a razvio ga je Sybase. Aktualna verzija je 2016, u najavi je vNext. Koristi T-SQL (Transact SQL) implementaciju SQL-a. Administriranje i upravljanje podacima kroz SQL Server Management Studio (SSMS). Besplatna verzija je Express edition (1 jezgra, 1 GB RAMa, 10 GB baza). Mogućnost slaganja „With Advanced Services” – Analytics Services i Reporting Services. Od pred malo podrška i za linux.

21 Sustavi upravljanja bazama podataka
MySQL MySQL Open source RDBMS. Radi na Linuxu i Windowsima. Nedavno ih je kupio Oracle. Podrška za Windows i Linux. Napisana je u C-u i C++u. Razvija se od Trenutna verzija 5.7. Alat za administraciju i podatke je phpMyAdmin i MySQL Workbench.

22 Sustavi upravljanja bazama podataka
SQLite SQLite Relacijska baza podataka temeljena na jednoj datoteci. Podržava većinu SQL92 standarda i ne treba podešavanje. Baza podataka je smještena na jednoj datoteci na disku. Podržava baze veličine u terabajtima. Česta upotreba u aplikacijama na mobilnim uređajima i telefonima. Prigodna i za web stranice s malim posjetima (ispod klikova na dan). Alat za administraciju je DB Browser.

23 Sustavi upravljanja bazama podataka
Rangiranje / popularnost Izvor: db-engines.com

24 Sustavi upravljanja bazama podataka
Mogućnosti Mirroring Jedna od funkcionalnosti visoke dostupnosti; (Principal, Mirror, Witness) Replikacija Postoji nekoliko vrsta razmjene podataka između dvije iste baze na dva ili više servera (Published, Subscriber, Distributor) Integracija Razmjena podataka između baze i različitih sustava (SSIS, SQL Workbench)

25 Sustavi upravljanja bazama podataka
Istovremenost Row/Record locking Transaction / Commit / Rollback

26 Sustavi upravljanja bazama podataka
Backup / Restore FULL Ukupna sigurnosna kopija baze podataka. Obuhvaća trenutno stanje podataka u bazi. DIFFERENTIAL Sigurnosna kopija samo razlike nastale od zadnjeg FULL backupa. TRANSACTION LOG Sigurnosna kopija transakcijskih logova, koja omogućava „point in time” recovery. COPY ONLY Sigurnosna kopija baze, bez postavljanja zastavica da je sigurnosna kopija napravljena.

27 Sustavi upravljanja bazama podataka
Backup / Maintenance plan

28 Sustavi upravljanja bazama podataka
Jezici u bazama podataka - SQL SQL – Structured Query Language; ANSI i ISO standardiziran Prvi put predstavljen godine kao alat za rad s relacijskim bazama Koristi se za upravljanje strukturom, podacima, pravima, transakcijama, …

29 Sustavi upravljanja bazama podataka
Jezici u bazama podataka - SQL

30 Sustavi upravljanja bazama podataka
Jezici u bazama podataka CREATE TABLE [dbo].[PozivneOznake]( [IDPozivneOznake] [int] IDENTITY(1,1) NOT NULL, [PozivnaOznaka] [varchar](30) NOT NULL, [DatumOd] [datetime] NOT NULL, [DatumDo] [datetime] NOT NULL, [KlubID] [int] NULL, [ClanID] [int] NULL ) Data Description Language INSERT INTO Callsigns ('Callsign', 'Member_ID', 'Date_from', 'Date_to') VALUES ('9A8MM', 1313, ' ', null); Data Manipulation Language SELECT Ime, Prezime FROM Clanovi WHERE Mjesto = 'Pazin' Structured Query Language

31 Sustavi upravljanja bazama podataka
SQL SELECT id, ime, prezime FROM Studenti WHERE AkademskaGodina = '2017‘ ; SELECT SELECT stu.id, stu.ime, stu.prezime, tel.broj FROM Studenti stu INNER JOIN Telefoni tel ON stu.id = tel.studentid AND tel.mobitel = '1' WHERE stu.prezime LIKE 'P%‘ ; JOIN select * from dxcluster c where c.dxcc in ( select distinct dxcc from dxcluster where dxcc not in (select distinct dxcc from qsodata) and band = 1 group by dxcc having count(distinct spotted) = 1 ) order by c.dxcc ; AGGREGATE / SUBQUERY

32 Sustavi upravljanja bazama podataka
Sigurnost Korisnici Korisnici koji pristupaju RDBMS-u (sa; domena\korisnik; korisnik). Uloge Uloge kojima korisnik može pripadati. Postoje serverske (sysadmin, public, …) i uloge nad bazom (owner, reader, writer, …) Prava Prava koja se dodjeljuju korisniku, temeljem čega on može raditi aktivnosti u bazi. Pojedinačna dodjela Pojedinačna dodjela prava nad bazama, tablicama, pogledima, …

33 Sustavi upravljanja bazama podataka
SQL injection

34 Sustavi upravljanja bazama podataka
SQL injection

35 Sustavi upravljanja bazama podataka
Alati za upravljanje

36 Sustavi upravljanja bazama podataka
Alati za upravljanje

37 Projektiranje baze podataka
Relacijske baze podataka OIB Ime Prezime Zahtjevi Predavač Normalizacija Održao Skica Predavanje Datum Naziv Opis Bilješke

38 Projektiranje baze podataka
Tablice i veze

39 Projektiranje baze podataka
Ključevi i indeksi

40 Projektiranje baze podataka
Utjecaj indeksa na perfomanse

41 Projektiranje baze podataka
Testiranje MS SQL 1. Instalirati / zakupiti / naći SQL Server 2. Napraviti novu bazu 3. Napraviti nove tablice 4. Dodati podatke MySQL 1. Instalirati / zakupiti / naći MySQL server 2. Napraviti novu bazu 3. Napraviti nove tablice 4. Dodati podatke

42 Projektiranje baze podataka
Migriranje MS SQL 1. Deattach / Attach 2. Backup / Restore 3. SSIS MySQL 1. Backup / Restore 2. SQL Workbench

43 Projektiranje baze podataka
Cloud baze Tko Što Koliko Google MySQL $ / sat Microsoft Azure SQL $ / sat AWS Aurora $ / sat Oracle $ / sat $ / sat

44 NoSQL baze podataka SQL NoSQL Relacijske baze
Općenito SQL NoSQL Relacijske baze Ne-relacijske, distribuirane Bazirana na tablicama Bazirane na paru ključ-vrijednost Predefinirana shema Dinamična shema UnQL Dobre za složene upite Dobre za veliku količinu podataka MySQL, Oracle, MSSQL Mongo, Redis, Cassandra

45 NoSQL baze podataka Općenito

46 NoSQL baze podataka Primjer podataka

47 Upiti u SQL i NoSQL bazama podataka
NoSQL baze podataka Upiti u SQL i NoSQL bazama podataka

48 In-Memory (memorijske) baze podataka
Općenito

49 In-Memory (memorijske) baze podataka
Mogućnosti Potrebe Pristup podacima u stvarnom vremenu Cijena memorije pada Problemi Latencija Dosljednost ACID principima: A - Atomičnost – sve ili ništa C – konzistentnost I – Izolacija transakcija D – trajnost transakcija Zaključak IMDB su korisne za real-time i embedded sustave Glavna primjena je u financijama i praćenju tržišta Smanjuju latenciju i trošenje procesorskog vremena Traži se adekvatna zamjena za disk Sustavi MemSQL H2 ExtremeDB SAP HANA xVelocity

50 In-Memory (memorijske) baze podataka
Performanse Loops/ms Perf. Multiple Insert On-Disk DBMS 4.08 1.00 IMDS + TL 48.13 11.79 Update 14.843 83.143 5.60 Delete 4.082 52.151 12.77

51 Pitanja?


Download ppt "Baze podataka RKPedu / Pazin IT Pazin, 17.5.2017.."

Similar presentations


Ads by Google