141
Bazy Danych dr inż. Roman Ptak Katedra Informatyki Technicznej [email protected]

Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Bazy Danych

dr inż. Roman Ptak

Katedra Informatyki Technicznej

[email protected]

Page 2: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Plan wykładu 3.

• Microsoft SQL Server

– Struktura logiczna systemu

– Struktura fizyczna systemu

• Języki SQL, Transact-SQL

• Inne systemy baz danych: MySQL, SQLite,

PostgreSQL

• Hurtownie danych, cele i techniki

replikacji i fragmentacji danych

2

Page 3: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Microsoft SQL Server

Page 4: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Microsoft SQL Server

• Producent: Microsoft

• Licencja: Microsoft EULA

• Najnowsza wersja stabilna: 2019 (15.00)

• Na serwerze MS SQL Server jedna

instalacja (instancja) serwera zawiera

wiele baz danych.

• Bazy danych dzielą się na systemowe (jak

np. master) i użytkownika.

4

Page 5: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Architektura MS SQL Server

źródło: http://it-szkola.edu.pl/upload/kuznia/akademia_bd/main.html5

Page 6: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Główne składniki silnika bazy danych SQL Server

• Menadżer Wejścia/Wyjścia

Protokoły

• Parser, Optymalizator, Menadżer SQL

• Menadżer baz danych, Moduł wykonujący kwerendy, …Część relacyjna

• Menadżer transakcji, Menadżer blokad

• Menadżer indeksów, Menadżer buforowania, …

Interfejs OLE DB

Aparat składowania danych

SQLOS API

6

Page 7: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

MS SQL Server

• Struktura logiczna

• Struktura fizyczna

7

Page 8: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

STRUKTURA LOGICZNA

SYSTEMU MS SQL SERVER

8

Page 9: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Struktura logiczna systemu:

• Tabele

• Widoki

• Indeksy

• Procedury składowane

• Wyzwalacze– typu AFTER – po operacji DML

– typu BEFORE – przed operacją DML

– typu INSTEAD of – zamiast operacji DML

9

Page 10: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

STRUKTURA FIZYCZNA SYSTEMU

MS SQL SERVER

10

Page 11: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Struktura fizyczna – pliki:

• MDF (ang. main data file, master data

file) – główny plik bazy danych

• NDF (ang. next data file) – pliki

pomocnicze (grupa plików)

• LDF (ang. log data file) – plik dziennika

powtórzeń (logi)

11

Page 12: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Pliki danych (MDF)

• Plik główny danych (ang. primary file)

stanowi punkt startowy bazy danych i

zawiera informacje o innych plikach w

bazie danych.

• Każda baza danych ma dokładnie jeden

plik główny danych - ma on zwykle

rozszerzenie .mdf.

12

Page 13: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Pliki pomocnicze (NDF)

• Partycjonowanie danych

• Artykuł:https://msdn.microsoft.com/pl-pl/library/tworzenie-

bazy-danych-w-sql-server.aspx

13

Page 14: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Pliki pomocnicze (NDF)

Logiczna struktura przechowywania danych w SQL Serverźródło: https://msdn.microsoft.com/pl-pl/library/tworzenie-bazy-danych-w-sql-server.aspx14

Page 15: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Pliki pomocnicze (NDF)

CREATE DATABASE [Test_Database] ON PRIMARY

(

NAME = N'my_database_primary',

FILENAME = N'C:\Temp\Database\my_database_primary.mdf',

SIZE = 3072KB,

FILEGROWTH = 1024KB),

FILEGROUP [Filegroup1]

(

NAME = N'my_database_secondary',

FILENAME = N'C:\Temp\Database\Secondary\my_database_secondary.ndf',

SIZE = 3027KB,

FILEGROWTH = 1024KB)

LOG ON

(

NAME = N'my_database_log',

FILENAME = N'C:\Temp\Database\Log\my_database_log.ldf',

SIZE = 1024KB,

FILEGROWTH = 10%)

GO

15

Page 16: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Pliki dziennika powtórzeń (LDF)

• *.ldf

• Dziennik powtórzeń – chronologiczny

rejestr działań na bazie danych

• Wykorzystywany do odzyskiwania danych

po awarii

16

Page 17: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Informacje o plikach fizycznych

• Informacje o bazach danych

widok sys.master_files(Databases → System Databases → master →

Views → System Views)

SELECT * FROM sys.master_files

• Informacje o plikach fizycznych

sp_helpdb BazaDanych

17

Page 18: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Struktura widoku sys.master_files

• źródło: https://msdn.microsoft.com/en-

us/library/ms186782.aspx

file_id, file_guid, type, type_desc, data_space_id, name,

physical_name, state, state_desc, size, max_size, growth,

is_media_read_only, is_read_only, is_sparse,

is_percent_growth, is_name_reserved, create_lsn,

drop_lsn, read_only_lsn, read_write_lsn,

differential_base_lsn, differential_base_guid,

differential_base_time, redo_start_lsn,

redo_start_fork_guid, redo_target_lsn,

redo_target_fork_guid, backup_lsn

18

Page 19: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Dołączanie bazy danych

• Databases → Attach…

19

Page 20: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Podział bazy danych na pliki,

ekstenty i strony

źródło: http://edu.pjwstk.edu.pl/wyklady/szb/scb/wyklad15/w15.htm20

Page 21: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

• data – wszystkie dane z wyjątkiem

atrybutów typów LOB (ang. Large OBject)

• index – wpisy indeksów

• text/image – typy LOB: text, ntext, image,

varchar(max), nvarchar(max),

varbinary(max), xml

• GAM (Global Allocation Map), SGAM

(Shered GAM), IAM (Index Allocation Map)

– bitowe mapy alokacji

Rodzaje stron

21

Page 22: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Struktura strony danych

Nagłówek strony

96 bajtów

Wiersze danych

Tablica przesunięć

wierszy22

Page 23: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Nagłówek

Wiersz 1

Wiersz 6

Wiersz 3

Nagłówek

Wiersz 1

Wiersz 6

Wiersz 3

Nagłówek

Wiersz 1

Wiersz 6

Wiersz 3

Nagłówek

Wiersz 1

Wiersz 6

Wiersz 3

Nagłówek

Wiersz 1

Wiersz 6

Wiersz 3

Nagłówek

Wiersz 1

Wiersz 6

Wiersz 3

Nagłówek

Wiersz 1

Wiersz 6

Wiersz 3

Nagłówek

Wiersz 1

Wiersz 6

Wiersz 3

Nagłówek

Wiersz 1

Wiersz 6

Wiersz 3

Nagłówek

Wiersz 1

Wiersz 6

Wiersz 3

Nagłówek

Wiersz 1

Wiersz 6

Wiersz 3

Nagłówek

Wiersz 1

Wiersz 6

Wiersz 3

Nagłówek

Wiersz 1

Wiersz 6

Wiersz 3

Nagłówek

Wiersz 1

Wiersz 6

Wiersz 3

Nagłówek

Wiersz 1

Wiersz 6

Wiersz 3

Nagłówek

Wiersz 31

Wiersz 62

Wiersz 13

Sterta (ang. heap)

Nagłówek

Wiersz 1

Wiersz 6

Wiersz 3

Nagłówek

Wiersz 1

Wiersz 6

Wiersz 3

Nagłówek

Wiersz 1

Wiersz 6

Wiersz 3

Nagłówek

Wiersz 1

Wiersz 6

Wiersz 3

Nagłówek

Wiersz 1

Wiersz 6

Wiersz 3

Nagłówek

Wiersz 1

Wiersz 6

Wiersz 3

Nagłówek

Wiersz 1

Wiersz 6

Wiersz 3

Nagłówek

Wiersz 51

Wiersz 32

Wiersz 73

• Zbiór obszarów zawierających dane z jednej tabeli (lub

partycji)

• Dane nie są ze sobą powiązane

• Wyszukiwanie wymaga przejrzenia wszystkich stron

Nagłówek

Wiersz 1

Wiersz 6

Wiersz 3

Nagłówek

Wiersz 1

Wiersz 6

Wiersz 3

Nagłówek

Wiersz 1

Wiersz 6

Wiersz 3

Nagłówek

Wiersz 1

Wiersz 6

Wiersz 3

Nagłówek

Wiersz 1

Wiersz 6

Wiersz 3

Nagłówek

Wiersz 1

Wiersz 6

Wiersz 3

Nagłówek

Wiersz 1

Wiersz 6

Wiersz 3

Nagłówek

Wiersz 4

Wiersz 74

Wiersz 60

23

Page 24: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

• Strony GAM, SGAM informują, które obszary są wolne, zajęte– GAM – informacje o zajętych obszarach

jednolitych (uniform)

– SGAM – informacje o zajętych obszarach mieszanych (mixed)

• Strony IAM – informacje o przynależności obszarów do obiektów

Fizyczna organizacja danych w SQL Server

IAM

24

Page 25: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

B-drzewo

• Drzewo zbalansowane

• Węzły mogą mieć strukturę listy dwukierunkowej

• W praktyce do 5 poziomów

25

Page 26: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

• ang. clustered index

• Struktura drzewa (B-tree)

• Na poziomie korzeni i gałęzi – strony indeksu

• Na poziomie liści – strony z danymi z tabel

• Fizycznie porządkuje dane

• Dane fizyczne uporządkowane rosnące wg klucza indeksu

• Może istnieć tylko 1 indeks zgrupowany

• Zakładany najczęściej na sztucznym kluczy podstawowym tzw. id

Indeks zgrupowany (z danymi)

26

Page 27: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Indeks zgrupowany

Klucz 1

Klucz 2

Klucz 3

Poprzednia Następna

Klucz 4

Klucz 5

Klucz 6

P N

Wiersz danych 1

Wiersz danych 2

Wiersz danych 3

P N

Klucz 7

Klucz 8

Klucz 9

P N

Klucz 10

Klucz 11

Klucz 12

P N

Wiersz danych 7

Wiersz danych 8

Wiersz danych 9

P N

Wiersz danych 4

Wiersz danych 5

Wiersz danych 6

P N

Wiersz danych 10

Wiersz danych 11

Wiersz danych 12

…27

Page 28: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

• Mała długość atrybutu (klucza)

• Wysoka selektywność (mało

powtarzających się wartości klucza

indeksu)

• Rzadko bądź wcale nie zmieniane wartości

• Wartości klucza dla kolejno dodawanych

wierszy są rosnące

Na jakich kolumnach tworzyć indeks

zgrupowany?

28

Page 29: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

• Struktura drzewa (B-tree)

• Na wszystkich poziomach drzewa mamy strony

indeksu

• Może być budowany na stercie lub na indeksie

zgrupowanym

• Można stworzyć do 249 indeksów niezgrupowanych

na tabeli (od SQL Server 2008 do 999)

• Stosowane są, gdy dane wyszukiwane są według

wielu kryteriów

• Maksymalnie 16 kolumn w kluczu

Indeks niezgrupowany

29

Page 30: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Indeksy niezgrupowany budowany na

indeksie zgrupowanym

• Indeks niezgrupowany

• Indeks zgrupowany

źródło: http://edu.pjwstk.edu.pl/wyklady/szb/scb/wyklad15/w15.htm

B-drzewo

30

Page 31: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Kwestie wydajnościowe

• Fizyczna organizacja danych wpływa na

wydajność pracy BD

• Plan wykonania

31

Page 32: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

PLAN WYKONANIA W MS SQL

SERVER

32

Page 33: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

• MS SQL Server Management Studio

– Plan wykonania

• Database Engine Tuning Advisor

Narzędzia wspierające optymalizację

33

Page 34: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

• T-SQL jest językiem deklaratywnym.

• Używając go, stwierdzamy co chcemy

zrobić, a nie jak to zrobić.

• System zarządzania bazą danych

posługując się optymalizatorem zapytań

decyduje o sposobie wykonania zapytania.

Rola optymalizatora zapytań

34

Page 35: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Fazy przetwarzania zapytania

Dekompozycja zapytania

Optymalizacja zapytania

Generacja kodu

Wykonanie zapytania

zapytanie SQL

wynik zapytania

wyrażenie algebry relacji

plan wykonania zapytania

kod zapytania

35

Page 36: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

• Estymowany plan wykonania (ang.

estimated execution plan)

• Rzeczywisty plan wykonania (ang. actual

execution plan)

Plan wykonania MS SQL Server

36

Page 37: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

• Dostarcza możliwość reprezentacji graficznej

planów zapytań w postaci drzewa operatorów

• Podpowiada kroki warte podjęcia celem

optymalizacji zapytań (np. wykrywa brakujące

indeksy)

Graficzny plan wykonania w SQL Server

Management Studio

37

Page 38: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Ikona Element języka/Operator (ang.)

Wynik Result

Skanowanie indeksu

zgrupowanego

Clustered Index Scan

Szukanie indeksu

zgrupowanego

Clustered Index Seek

Skanowanie indeksu zwykłego Nonclustered Index Scan

Szukanie indeksu zwykłego Nonclustered Index Seek

Pętla zagnieżdżona Nested Loops

Wyszukiwanie zakładki Bookmark Lookup

Sortowanie Sort

Dopasowanie wartości

mieszającej

Hash Match

Ikony planu wykonania (wybór)

38

Page 39: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Ikona Element języka/Operator (ang.)

Obliczanie wartość skalarna Compute Scalar

Top Top

Filtruj Filtr

Obliczanie wartość skalarnej Compute Scalar

Agregat strumienia Stream Aggregate

(…)

Ikony planu wykonania (cd.)

39

Page 40: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Interpretacja planu wykonania

40

Page 41: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Okno podpowiedzi

z informacjami o operatorze

41

Page 42: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Przykład z BD AdventureWorks2008

42

Page 43: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Indeksy w tabeli Person.Person

43

Page 44: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

44

Page 45: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

45

Page 46: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

SELECT *

FROM BazaRelacyjna.dbo.Klienci k

WHERE k.IdMiasta IN

(SELECT [IdMiasta]

FROM [BazaRelacyjna].[dbo].[Miasta] m

WHERE IdWojewodztwa=12)

GO

SELECT *

FROM BazaRelacyjna.dbo.Klienci k

JOIN [BazaRelacyjna].[dbo].[Miasta] m

ON k.IdMiasta=m.IdMiasta

AND m.IdWojewodztwa=12

GO

Dwie wersje zapytania SQL

46

Page 47: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Uzyskane plany wykonania

47

Page 48: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

SQL

Structured Query Language

48

Page 49: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Język SQL

• Structured Query Language - strukturalny język zapytań używany do tworzenia, modyfikowania baz danych oraz do zarządzania danymi.

• Język deklaratywny – „co system ma zrobić a nie jak”.

• Decyzję o sposobie przechowywania i pobrania danych pozostawia się systemowi zarządzania bazą danych (DBMS).

• Opracowany w latach 70 XX w.

49

Page 50: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Standardy SQL

• SQL-86,

• SQL-89,

• SQL-92,

• SQL:1999, SQL:2003,

• SQL:2006, SQL:2008

• Aktualna wersja stabilna SQL:2016

50

Page 51: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

• DDL (ang. Data Definition Language) –„język definicji danych”,

• DML (ang. Data Manipulation Language ) –„język manipulacji danymi”,

• DCL (ang. Data Control Language ) – „język kontroli nad danymi”,

• DQL (ang. Data Query Language ) – „język definiowania zapytań”.

Podzbiory języka SQL

51

Page 52: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

• CREATE– utworzenie struktury (bazy, tabeli, indeksu itp.)(np. CREATE DATABASE, CREATE TABLE, ...),

• ALTER – zmiana struktury (dodanie kolumny do tabeli, zmiana typu danych w kolumnie tabeli)(np. ALTER TABLE ADD COLUMN ...),

• DROP – usunięcie struktury(np. DROP TABLE, DROP DATABASE, ...).

DDL

52

Page 53: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

• CREATE TABLE

CREATE TABLE Osoby (OsobaID INT NOT NULL UNIQUE,Imie VARCHAR(25) NOT NULL,Nazwisko VARCHAR(50) NOT NULL,Wiek INT

);

DDL

53

Page 54: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

• ALTER TABLE

ALTER TABLE OsobyMODIFY Wiek INT NOT NULL;

ALTER TABLE OsobyADD Urodziny DATE

DDL

54

Page 55: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

• Wiązania poprzez klucze

CREATE TABLE Zamowienia (ZamowienieID INT NOT NULL PRIMARY KEY,NumerZamowienia INT NOT NULL,OsobaID INT FOREIGN KEY REFERENCES

Osoby(OsobaID));

DDL

55

Page 56: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

• CREATE INDEX

CREATE INDEX idx_NazwiskoON Osoby (Nazwisko);

CREATE INDEX idx_ImieNazwiskoON Osoby (Nazwisko, Imie);

DDL

56

Page 57: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

• INSERT – umieszczenie danych w bazie,

• UPDATE – zmiana danych,

• DELETE – usunięcie danych z bazy.

DML

57

Page 58: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

• INSERT

INSERT INTO Osoby (Imie, Nazwisko, Wiek)VALUES ('Jan', 'Kowalski', '21');

DML

58

Page 59: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

• GRANT – służące do nadawania uprawnień do pojedynczych obiektów lub globalnie konkretnemu użytkownikowi (np. GRANT ALL PRIVILEGES ON EMPLOYEE TO PIOTR WITH GRANT OPTION – przyznanie wszystkich praw do tabeli EMPLOYEE użytkownikowi PIOTR z opcją pozwalającą mu nadawać prawa do tej tabeli).

• REVOKE – służące do odbierania wskazanych uprawnień konkretnemu użytkownikowi (np. REVOKE ALL PRIVILEGES ON EMPLOYEE FROM PIOTR –odebranie użytkownikowi wszystkich praw do tabeli EMPLOYEE).

• DENY - służące do zabraniania wykonywania operacji

DCL

59

Page 60: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

• SELECT

SELECT *

FROM pracownicy

WHERE pensja > 2000

ORDER BY staz DESC;

DQL

60

Page 61: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

SELECT Zamowienia.IdZamowienia, Klienci.NazwaKlienta, Zamowienia.DataZamowieniaFROM ZamowieniaINNER JOIN Klienci ONZamowienia.IdKlienta=Klienci.IdKlienta;

Przykład złączenia

61

Page 62: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

• Wewnętrzne➢ INNER JOIN

▪ równozłączenie – Equi-join,

▪ złączenie naturalne - Natural Join,

• Zewnętrzne➢ LEFT OUTER JOIN,

➢ RIGHT OUTER JOIN,

➢ FULL OUTER JOIN,

• CROSS JOIN (iloczyn kartezjański).

Rodzaje złączeń

62

Page 63: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Złączenia SQLa

63

Page 64: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Składnia złączeń w klauzuli FROM

64

Page 65: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

T-SQL

Transact-SQL

65

Page 66: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Transact-SQL (T-SQL)

• Został stworzony przez Sybase; później

prawa kupiła firma Microsoft i

wykorzystuje ten język w kolejnych

wersjach MS SQL Server

66

Page 67: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Klasyczny język SQL a T-SQL

• SQL – język deklaratywny w SZBD

• Sekwencje poleceń

• Nie ma konstrukcji sterujących: instrukcji

warunkowych, pętli, zmiennych

• T-SQL – rozszerzenie języka ale nie „pełny” język

programowania

• Programowanie zadań po stronie serwera BD

• W T-SQL osadzony jest standardowy język SQL

67

Page 68: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

T-SQL

• Rozszerzenie języka SQL umożliwiające

tworzenie konstrukcji takich jak:

– pętle, instrukcje warunkowe oraz zmienne

– tabele tymczasowe.

• Zastosowanie:

– do tworzenia wyzwalaczy,

– procedur i funkcji składowanych w bazie.

68

Page 69: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Zmienne w T-SQL

• Wymóg jawnej deklaracji

• Nazwa zmiennej lokalnej musi rozpoczyna

się od znaku @

– zmienna globalna od @@

• Typy zmiennych mogą być takie, jak

wbudowane MS SQL Servera:– CHAR, VCHAR, NCHAR, NVCHAR, INT, DATETIME, …

• Przykład:DECLARE @licznik int = 1

69

Page 70: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Konwersja typów

• Polecenie CASTCAST (wyrażenie AS typ_danych)

• Polecenie CONVERCONVEERT (typ_danych[(rozmiar)], wyrażenie [,styl])

• Przykłady:PRINT CAST(12.34 AS int)

PRINT CONVERT(int 12.34)

PRINT CONVERT(char(24), GETDATE(), 9)

70

Page 71: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Instrukcje sterujące

• Instrukcja warunkowa:IF wyrażenie_logiczne {polecenie_SQL|blok_poleceń}

ELSE {polecenie_SQL|blok_poleceń}

• PętleWHILE wyrażenie_logiczne

{polecenie_SQL|blok_poleceń}

71

Page 72: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Przykład użycia instrukcji warunkowej

DECLARE @i int

SET @i = 1

IF @i = 1

BEGIN

SELECT 'tak'

END

ELSE

BEGIN

SELECT 'nie'

END

72

Page 73: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Przykład użycia pętli

SET @licznik = 1

WHILE @licznik < 100

BEGIN

INSERT INTO #tmp(liczba) VALUES (@licznik)

SET @licznik=@licznik+1

END

73

Page 74: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Przykład tworzenia widoku

CREATE VIEW Klienci

AS

SELECT imie, nazwisko

FROM BazaFirmy.dbo.Klienci_firmy

WHERE rodzaj = 'staly'

74

Page 75: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Przykład tworzenia wyzwalacza

CREATE TRIGGER t_zamowienie

ON dbo.Orders

FOR INSERT, UPDATE, DELETE

AS EXEC master..xp_sendmail

'kontroler1', 'Zmieniono zawartość

tabeli Orders - proszę uaktualnić

zestawienia'

GO

75

Page 76: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Obsługa błędów

BEGIN TRY

Instrukcje

END TRY

BEGIN CATCH

Instrukcje_obsługi_błędów

ENT CATCH

76

Page 77: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Funkcje

• Konfiguracyjne

• Kursora

• Daty i czasu

• Matematyczne

• Metadanych

• Bezpieczeństwa

• Operujące na łańcuchach znaków

• Systemowe

• Statystyki systemowej

• Tekstu i obrazu

77

Page 78: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Przegląd innych systemów baz

danych

MySQL, SQLite, PostgreSQL

Page 79: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Wersje BD

Produkt Producent Najnowsza wersja Licencja

Oracle

Database

Oracle 19c komercyjna

Microsoft SQL

Server

Microsoft 15.00 Microsoft EULA

MySQL Oracle 8.0.19 GPL lub komercyjna

MariaDB Monty Program Ab 10.4.12 GPL v. 2

PostgreSQL PostgreSQL Global

Development Group

12.2 PostgreSQL

SQLite D. Richard Hipp 3.31.1 Public domain

Informix IBM 14.10.FC3 EULA

DB2 IBM 11.5 EULA

79

Page 80: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Duże bazy danych

• Microsoft SQL Server 2019, Azure SQL Database

• Oracle 11g, 12c, 19c

• IBM Informix Extended Parallel Server (XPS)

• SAP Sybase Adaptive Server Enterprise 16.0

(ASE)

• Interbase XE3

80

Page 81: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Średnie bazy danych

• MySQL

• MariaDB

• PostgreSQL

• Firebird 3.0.2

• Microsoft Visual FoxPro 9.0

• MS Access 2016

81

Page 82: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Małe bazy danych

• mSQL 4.0

• SQLite

• Nie nadają się do tworzenia

wielodstępowych aplikacji internetowych.

82

Page 83: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

MYSQL/MARIADB

83

Page 84: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

MySQL

• SZRBD dla Linux/Unix, Windows, …

• Pierwsze wydanie: 1995 r.

• Licencja: GPL lub komercyjna (Oracle)

MariaDB – GPL wersja 2

• Aktualna wersja stabilna: 8.0.19

• Posiada wiele silników bazy danych (motor, ang.

engine, back end)

• Dostęp z poziomu wielu języków programowania:

m.in. C/C++, Delphi, PHP.

84

Page 85: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Silniki baz danych MySQL

• InnoDB – domyślny od wersji 5.5, obsługuje

transakcje

• MyISAM – starszy typ, nie obsługuje transakcji

• MEMORY (HEAP) - najszybszy typ silnika, gdyż

wszystko jest przechowywane wyłącznie w pamięci

RAM. Posiada jednak kilka ograniczeń, między

innymi nie przechowuje danych po wyłączeniu

serwera MySQL.

• Inne: XtraDB, ISAM, BerkeleyDB (BDB), MERGE, …

CREATE TABLE test ENGINE=MEMORY85

Page 86: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Silniki baz danych MariaDB

• MyISAM

• XtraDB – kompatybilny z InnoDB

• Aria – nowy silnik bazy danych

• Inne: FederatedX, OQGRAPH, SphinxSE, …

86

Page 87: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

MyISAM

• Domyślny silnik dla wcześniejszych wersji MySQL

• Rozszerzenie silnika ISAM

• Zaprojektowane z myślą o podstawowych

aplikacjach internetowych i prostocie działania

• Stosowany ciągle w hurtowniach danych ze

względu na możliwość zapytań do bardzo dużych

tabel

87

Page 88: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

MyISAM - architektura fizyczna

• Każda tabela zapisywana w trzech plikach:

– nazwa_tabeli_.FRM – definicja tabeli

– nazwa_tabeli_.MYD - dane

– nazwa_tabeli_.MYI – indeksy

88

Page 89: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

MyISAM

• Zalety

+ szybki odczyt z tabel

+ prostsze wykonywanie kopii zapasowych

• Wady

− brak obsługi transakcji

− brak mechanizmów odpowiedzialnych za integralność

danych

− przy dużych tabelach, długie czasy wykonywania

REPAIR TABLE po awarii serwera

źródło: http://osworld.pl/czym-sie-rozni-innodb-od-myisam/89

Page 90: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

InnoDB

• Zapewnia integralności danych oraz spójności i

bezpieczeństwa transakcji.

• Standard ACID

• ACID jest skrótem od angielskich słów: atomicity

– atomowość, consistency – spójność, isolation –

izolacja, durability – trwałość.

• Mechanizm kluczy obcych

źródło: http://osworld.pl/czym-sie-rozni-innodb-od-myisam/90

Page 91: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

ACID

• Atomowość transakcji oznacza, że albo wykonujemy ją w

całości albo wcale. Nie może dojść do sytuacji, w której

wykona się część zapytań.

• Spójność oznacza, że po wykonaniu transakcji system będzie

spójny, czyli nie zostaną naruszone żadne zasady

integralności.

• Izolacja transakcji oznacza, iż jeżeli dwie transakcje

wykonują się współbieżnie, to zazwyczaj (zależnie od poziomu

izolacji) nie widzą zmian przez siebie wprowadzanych.

• Trwałość danych oznacza, że system potrafi uruchomić się i

udostępnić spójne, nienaruszone i aktualne dane zapisane w

ramach zatwierdzonych transakcji, na przykład po nagłej

awarii zasilania.

91

Page 92: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

InnoDB

• Zalety

+ obsługa transakcji

+ gwarantuje integralność danych

+ lepiej sprawuje się podczas replikacji typu master –

slave

• Wady

− wolniejszy odczyt danych

− trudniejsze wykonywanie backupów

źródło: http://osworld.pl/czym-sie-rozni-innodb-od-myisam/92

Page 93: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Zestaw oprogramowania

• LAMP – Linux + MySQL/MariaDB +

PHP/Perl/Python

• WAMP – Windows + Apache + MySQL + PHP

• MAMP – Mac OS X + Apache + MySQL + PHP

• XAMPP – X (Cross-platform) Apache,

MySQL, PHP, Perl

93

Page 94: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Uproszczony schemat architektury LAMP

źródło: wikipedia.org94

Page 95: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Funkcje MySQL w PHP

• http://php.net/manual/en/ref.mysql.php• mysql_close — Close MySQL connection

• mysql_connect — Open a connection to a MySQL Server

• mysql_create_db — Create a MySQL database

• mysql_db_query — Selects a database and executes a query on it

• mysql_error — Returns the text of the error message from previous

MySQL operation

• mysql_fetch_array — Fetch a result row as an associative array, a

numeric array, or both

• mysql_info — Get information about the most recent query

• mysql_num_rows — Get number of rows in result

• mysql_pconnect — Open a persistent connection to a MySQL server

• mysql_query — Send a MySQL query95

Page 96: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Łączenie z serwerem i bazą danych w PHP

<?php

// nawiazujemy polaczenie

$connection = @mysql_connect('localhost', 'uzytkownik', 'haslo')

// w przypadku niepowodznie wyświetlamy komunikat

or die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error());

// połączenie nawiązane ;-)

echo "Udało się połączyć z serwerem!<br />";

// nawiązujemy połączenie z bazą danych

$db = @mysql_select_db('nazwa_bazy', $connection)

// w przypadku niepowodzenia wyświetlamy komunikat

or die('Nie mogę połączyć się z bazą danych<br />Błąd:

'.mysql_error());

// połączenie nawiązane ;-)

echo "Udało się połączyć z bazą danych!";

// zamykamy połączenie

mysql_close($connection);

?> 96

Page 97: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Tworzenie bazy danych

<?php

// otwiera połączenie

$polaczenie = mysql_connect("localhost", "juzer", "samopas");

// wybiera bazę

mysql_select_db("test",$polaczenie);

// tworzy instrukcję SQL

$sql = "CREATE TABLE tabelaProbna (id int not null primary key

auto_increment,

poleProbne varchar (75))";

// wykonuje instrukcję SQL

$wynik = mysql_query($sql, $polaczenie) or die(mysql_error());

// wyświetla identyfikator wyniku

echo $wynik;

?>

97

Page 98: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Wstawianie danych do bazy

<?php

// otwiera połączenie

$polaczenie = mysql_connect("localhost", "juzer",

"samopas");

// wybiera bazę

mysql_select_db("test",$polaczenie);

// tworzy instrukcję SQL

$sql = "INSERT INTO tabelaProbna values ('', 'jakaś

wartość')";

// wykonuje instrukcję SQL

$wynik = mysql_query($sql, $polaczenie) or

die(mysql_error());

// wyświetla identyfikator wyniku

echo $wynik;

?>98

Page 99: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Pobieranie danych z bazy

<?php

// otwiera połączenie

$polaczenie = mysql_connect("localhost", "juzer", "samopas");

// wybiera bazę

mysql_select_db("test",$polaczenie);

// tworzy instrukcję SQL

$sql = "SELECT * FROM tabelaProbna";

// wykonuje instrukcję SQL

$wynik = mysql_query($sql, $polaczenie) or die(mysql_error());

//przechodzi przez każdy wiersz zbioru wyników i wyświetla dane

while ($nowaTablica = mysql_fetch_array($wynik)) {

// nadaje polom nazwy

$id = $nowaTablica['id'];

$poleProbne = $nowaTablica['poleProbne'];

//wyświetla rezultaty na ekranie

echo "Identyfikator to $id a tekst w polu to $poleProbne <br>";

}

?>99

Page 100: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Narzędzia administracyjne

• phpMyAdmin – za pomocą przeglądarki

internetowej

• MySQL Workbench

100

Page 101: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

SQLITE

101

Page 102: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

SQLite

• Bezserwerowa relacyjna baza danych

• Pierwsze wydanie: 2000 r.

• Licencja: Public domain

• Aktualna wersja: 3.31.1

102

Page 103: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

SQLite - cechy

• Cała baza znajduje się w jednym pliku (do 140 TB):

– tabele, indeksy, widoki, wyzwalacze itd.

• Baza jest utrzymywana na dysku przy użyciu B-drzew.

– osobne drzewa są używane dla każdej z tabel i każdego z

indeksów.

• Posiada wsparcie dla prawie całego standardu SQL-92.

• Wydajność SQLite jest porównywalna do popularnych

SZBD typu klient-serwer.

• Silnik jest napisany w języku C i korzysta tylko z

podstawowych funkcji bibliotecznych (sqlite3.c z plikiem

nagłówkowym sqlite3.h).

• Nie zawiera systemu uwierzytelniania.103

Page 104: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Przykład użycia biblioteki w C

#include <stdio.h>

#include <sqlite3.h>

static int callback(void *nic, int argc, char **argv, char **kol) {

int i;

for(i=0; i<argc; i++)

printf("%s = %s\n", kol[i], argv[i] ? argv[i] : "NULL");

printf("\n");

return 0;

}

int main(int argc, char **argv) {

sqlite3 *db;

int rc;

rc = sqlite3_open("../demo.db", &db);

rc = sqlite3_exec(db, "SELECT * FROM pracownicy", callback, 0, NULL);

sqlite3_close(db);

return 0;

}104

Page 105: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Zastosowania SQLite

• Mozilla Firefox – przeglądarka internetowa

• PHP, Python – jedna z dostępnych baz danych

• Ruby on Rails – domyślna baza danych w Ruby on Rails

2.0.

• Android – środowisko programistyczne dla urządzeń

przenośnych

• Oprogramowanie antywirusowe: Avira, Avast

• Zotero – oprogramowanie do zarządzania źródłami

informacji.

• Inne

105

Page 106: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Narzędzia administracyjne

• SQLite Manager - dodatek przeglądarki Mozilla Firefox do

zarządzania bazami danych SQLite.

• DaDaBIK Database Interface Kreator (Open Source)

• SQLite Database Browser - graficzne narzędzie do

zarządzania bazami danych SQLite.

• SQLiteSpy (Freeware).

• Lita - aplikacja Adobe AIR do zarządzania bazami danych

SQLite.

• SQLiteStudio - darmowa aplikacja do zarządzania bazami

danych SQLite w wersjach 2 i 3.

106

Page 107: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

POSTGRESQL

107

Page 108: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

PostgreSQL

• Wielodostępny, serwerowy SZBD

• Pierwsze wydanie: 1995 r.

• Platformy: Linux/Unix, Windows, …

• Licencja: PostgreSQL

• Aktualna wersja: 12.2

108

Page 109: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

PostgreSQL - cechy

• Indeksy: B-drzewo, Hash, R-drzewo, GIST, GIN,

SP-GIST

• Funkcje składowane np. w PL/pgSQL

• Wyzwalacze

• Rozszerzona definicja typów danych - m.in. typy

danych geograficznych na potrzeby systemów

informacji geograficznej (GIS) w module PostGIS.

109

Page 110: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Narzędzia administracyjne

• pgAdmin

• phpPgAdmin - administracja za pomocą

przeglądarki internetowej

110

Page 111: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Hurtownie danych.

Cele i techniki replikacji

oraz fragmentacji danych

Serwery lustrzane, obiekty partycjonowane

Page 112: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

HURTOWNIE DANYCH

112

Page 113: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Podstawowe pojęcia

• Przetwarzanie operacyjne

– OLTP (On-line Transaction Processing) - duża ilość

prostych transakcji zapisu i odczytu. Główny nacisk

kładziony jest na zachowanie integralności danych w

środowisku wielodostepowym oraz na efektywność

mierzona liczba transakcji w danej jednostce czasu.

• Przetwarzanie analityczne

– OLAP (On-line Analytical Processing) - stosunkowo

nieliczne, ale za to złożone transakcje odczytu. Miarą

efektywności jest czas i jakość odpowiedzi.

Powszechnie wykorzystuje sie go w technikach

związanych z Data Mining'iem.113

Page 114: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Zależność wagi i liczby decyzji

OLAP

OLTP

Waga decyzji

Liczba decyzji114

Page 115: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Hurtownia danych

• ang. Data Warehouse - DW

• Analityczna baza danych wykorzystywana

jako podstawa systemu wspomagającego

podejmowanie decyzji.

• ang. Data mining - eksploracja danych,

drążenie danych

115

Page 116: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Cele stosowania hurtowni danych

• Przetwarzanie analityczne (OLAP)

• Wspomaganie decyzji (DSS)

• Archiwizacja danych

• Analiza efektywności

• Wsparcie dla systemów CRM (np. poprzez

precyzyjne dobieranie strategii

marketingowych na podstawie danych o

klientach i sprzedaży)

116

Page 117: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Architektura hurtowni danych

117

Page 118: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Proces integracji danych - ETL

• Extract, Transform, Load

• SQL Server Integration Services (SSIS) – graficzne

narzędzie ETL firmy Microsoft włączone do Microsoft

SQL Server od wersji 2005.118

Page 119: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Model danych MOLAP

• Multidimensional OLAP

• implementacja w serwerach

wielowymiarowych

• dane przechowywane w

wielowymiarowych tabelach (ang. data

cubes), zwanych potocznie kostkami

+ najlepsza efektywność

− wymaga dużej dodatkowej pamięci

119

Page 120: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Kostka MOLAP - przykład

• Trójwymiarowa kostka z wymiarami: Sklep,

Czas, Produkt i zagregowanymi danymi o

sprzedaży.

120

Page 121: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Model danych ROLAP

• Relational OLAP

• fakty przechowywane w tabelach faktów

• wymiary przechowywane w tabelach

wymiarów

+ nie potrzeba dodatkowej pamięci

− niska efektywność

121

Page 122: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Stosowane schematy w ROLAP

• Schematy podstawowe

– gwiazda

– płatek śniegu

• Schematy pochodne

– Konstelacja faktów

– Gwiazda – płatek śniegu

122

Page 123: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Schemat gwiazdy

123

Page 124: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Schemat płatka śniegu

124

Page 125: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Model danych HOLAP

• Hybrid OLAP - implementacja hybrydowa

(relacyjno-wielowymiarowa)

• dane elementarne (źródłowe)

przechowywane w tabelach

• dane zagregowane przechowywane w

kostkach

• pośrednia struktura pomiędzy ROLAP a

MOLAP („przyśpieszacz ROLAP”)

125

Page 126: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Systemy hurtowni danych

• Oracle Data Warehousing

• Microsoft SQL Server Business Intelligence

• IBM InfoSphere Warehouse

• Teradata Enterprise Data Warehouse

• IBM Netezza Data Warehouse

• Sybase IQ

• Infobright

• SAP NetWeaver Business Intelligence126

Page 127: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Skala wdrożenia

• Rozmiar danych > 1TB

• Liczba użytkowników – rzędu 100

(analityków)

• Typowy czas wdrożenia – od 6 miesięcy do

3 lat

127

Page 128: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Inne przyszłościowe modele

• Data Warehouse Appliances

• „Big data”; paradygmat firmy Google

MapReduce (np. Apache Hadoop)

• Kolumnowe bazy danych

• Bazy danych klasy NoSQL

• Rozwiązania in-memory

128

Page 129: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

CELE I TECHNIKI

REPLIKACJI/FRAGMENTACJI

DANYCH

129

Page 130: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Replikacja danych

• Replikacja danych – proces powielania

danych pomiędzy różnymi serwerami baz

danych.

• Serwery lustrzane.

130

Page 131: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Replikacja danych - cel

• przyspieszenie dostępu do danych

wykorzystywanych często

– słownik miast, województw, kodów adresowych

– katalog produktów

• równoważenie obciążenia węzłów

• równoległe wykonywanie zapytań

• zwiększenie efektywności dostępu do danych

przez wybór repliki do której dostęp jest

najszybszy

• bezpieczeństwo danych i całego systemu131

Page 132: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Rodzaje replikacja danych

• Migawkowa – rozprowadzane dane mają

stan z pewnego określonego momentu w

czasie.

• Transakcyjna – dane rozprowadzane są na

podstawie logów transakcji.

• Dwukierunkowa (łącząca) – serwer

realizuje transakcje zarówno od innego

serwera (lustrzanego), jak i od klientów.

132

Page 133: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Klient

Serwer

głównySerwer

lustrzany

Ogólna architektura technologii

tworzenia lustrzanej kopii bazy danych

BD BDLog Log

Serwer

nadzorujący

Zapis w

dzienniku

lokalnym

Zatwierdzenie

w dzienniku

Zapis w

dzienniku

zdalnym Ciągłe

odtwarzanie

w kopii

lustrzanej

PotwierdzenieWykonanie

Potwierdzenie

Transmisja do

kopii lustrzanej

133

Page 134: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Fragmentacja (partycjonowanie) danych

• Obiekty partycjonowane

• Podział tabeli na części, zwane

fragmentami lub partycjami

• Techniki fragmentacji

– pozioma

– pionowa

– mieszana

134

Page 135: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Cel fragmentacji

• Zwiększenie efektywności dostępu do

danych

– zmniejszenie rozmiaru danych, które należy

przeszukać

– zrównoleglenie operacji dostępu do dysków,

na których umieszczono fragmenty

– alokowanie fragmentów „blisko” miejsca ich

wykorzystania - redukcja kosztów transmisji

sieciowej

135

Page 136: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Fragmentacja pozioma

• Podział zbioru rekordów (krotek) na

podzbiory

• Każdy podzbiór opisany jest identyczną

liczbą atrybutów

• Wybór fragmentu (partycji) do której

trafia rekord realizowany na podstawie

wartości jednego lub kilku wybranych

atrybutów tabeli – tzw. atrybutów

fragmentujących (partycjonujących)136

Page 137: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Fragmentacja pionowa

• Rozbicie tabeli na fragmenty złożone z

podzbioru atrybutów

• Każdy fragment zawiera identyczną liczbę

rekordów

• Atrybut niekluczowy An może się znaleźć

tylko w jednym fragmencie

• Atrybut kluczowy znajduje się w każdym

fragmencie – służy do łączenia fragmentów

137

Page 138: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Fragmentacja mieszana

• Połączenie fragmentacji poziomej i

pionowej

• Warianty

– Fragmentacja pozioma + pionowa

– Fragmentacja pionowa + pozioma

138

Page 139: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Rodzaje fragmentacji - przykład

A1 A2 A3 A4 A5

1

2

3

4

5

6

7

8

9

A1 A2 A3

1

2

3

4

5

6

7

8

9

A1 A4 A5

1

2

3

4

5

6

7

8

9

A1 A2 A3 A4 A5

1

2

3

4

A1 A2 A3 A4 A5

5

6

7

8

9

A1 A2

1

2

3

4

A1 A4 A5

5

6

7

8

9

A1 A3 A4 A5

1

2

3

4

A1 A2 A3

5

6

7

8

9

mieszana

pozioma

pionowa

139

Page 140: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

Podsumowanie

• Języki SQL, T-SQL

• Przegląd systemów zarządzania

relacyjnymi bazami danych

• Hurtownie danych – specyficzna

architektura i zastosowania baz danych

• Cele i techniki replikacji danych

• Cele i techniki fragmentacji danych

140

Page 141: Internetowe Bazy Danych - roman.ptak.staff.iiar.pwr.wroc.plroman.ptak.staff.iiar.pwr.wroc.pl/BD_wyklad_nr3_2020_ver1.pdf · po awarii 16. Informacje o plikach fizycznych •Informacje

DZIĘKUJĘ ZA UWAGĘ

Pytania?