Bazy Danych. dr inż. Roman Ptak Katedra Informatyki Technicznej roman.ptak@pwr.edu.pl



Podobne dokumenty
Kopie bezpieczeństwa NAPRAWA BAZ DANYCH

Hurtownie danych. 31 stycznia 2017

Hurtownie danych - przegląd technologii Robert Wrembel Politechnika Poznańska Instytut Informatyki Robert.Wrembel@cs.put.poznan.pl

Hurtownie danych - przegląd technologii

NARZĘDZIA WIZUALIZACJI

Model logiczny SZBD. Model fizyczny. Systemy klientserwer. Systemy rozproszone BD. No SQL

Wprowadzenie do Hurtowni Danych

Plan wykładu. Hurtownie danych. Problematyka integracji danych. Cechy systemów informatycznych

Informatyka I BAZY DANYCH. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2017

Hurtownie danych. Wstęp. Architektura hurtowni danych. CO TO JEST HURTOWNIA DANYCH

Wstęp do Business Intelligence

Technologia informacyjna

Pojęcie systemu baz danych

Hurtownie danych a transakcyjne bazy danych

Modele danych - wykład V

Usługi analityczne budowa kostki analitycznej Część pierwsza.

ZSE - Systemy baz danych 1 SIECIOWE SERWERY BAZ DANYCH

NARZĘDZIA WIZUALIZACJI

Podstawowe informacje o bazach danych. Technologie Informacyjne

Administracja bazami danych

Modele danych - wykład V. Zagadnienia. 1. Wprowadzenie 2. MOLAP modele danych 3. ROLAP modele danych 4. Podsumowanie 5. Zadanie fajne WPROWADZENIE

Wykład I. Wprowadzenie do baz danych

Systemy internetowe. Wykład 4 mysql. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

SZKOLENIE: Administrator baz danych. Cel szkolenia

NARZĘDZIA WIZUALIZACJI

Hurtownie danych i business intelligence - wykład II. Zagadnienia do omówienia. Miejsce i rola HD w firmie

Baza danych. Modele danych

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Bazy danych i usługi sieciowe

Wykład 2. Relacyjny model danych

AUREA BPM Oracle. TECNA Sp. z o.o. Strona 1 z 7

Wprowadzenie do technologii Business Intelligence i hurtowni danych

Ramowy plan kursu. Lp. Moduły Wyk. Lab. Przekazywane treści

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Wprowadzenie do systemów baz danych. Wykład 1

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Projektowanie systemów baz danych

LITERATURA. C. J. Date; Wprowadzenie do systemów baz danych WNT Warszawa 2000 ( seria Klasyka Informatyki )

Bazy danych 6. Klucze obce. P. F. Góra

Rozdział 1 Wprowadzenie do baz danych. (c) Instytut Informatyki Politechniki Poznańskiej 1

Internetowe bazy danych

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

Wdrożenie modułu płatności eservice. dla systemu Magento

Bazy danych 2. Wykład 1

Bazy danych. Plan wykładu. Rozproszona baza danych. Fragmetaryzacja. Cechy bazy rozproszonej. Replikacje (zalety) Wykład 15: Rozproszone bazy danych

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

Firebird Alternatywa dla popularnych darmowych systemów bazodanowych MySQL i Postgres

Hurtownie danych w praktyce

Bazy danych i ich aplikacje

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

Podyplomowe Studium Programowania i Baz Danych

1. Ewolucja systemów opartych na bazach danych 2. Czym się rożni modelowanie od strukturalizacji danych? Model danych Struktury (danych)

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Rok szkolny 2015/16 Sylwester Gieszczyk. Wymagania edukacyjne w technikum. ADMINISTROWANIE BAZAMI DANYCH kl. 4c

Budowanie interfejsów do baz danych

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Pojęcie bazy danych. Funkcje i możliwości.

Systemy baz danych. mgr inż. Sylwia Glińska

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X

Porównanie systemów zarządzania relacyjnymi bazami danych

Wprowadzenie do Hurtowni Danych. Mariusz Rafało

Zaawansowane bazy danych i hurtownie danych studia niestacjonarne II stopnia, sem. I

Program wykładu. zastosowanie w aplikacjach i PL/SQL;

Bazy danych 9. Klucze obce Transakcje

Bazy danych 9. Klucze obce Transakcje. P. F. Góra

Bazy analityczne (hurtownie danych, bazy OLAP)

1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi

Programowanie w Ruby

Hbase, Hive i BigSQL

Gerard Frankowski, Zespół Bezpieczeństwa PCSS. Nowoczesne technologie bliżej nas Poznań,

Hurtownie danych. Wprowadzenie do systemów typu Business Intelligence

Wprowadzenie do Hurtowni Danych. Mariusz Rafało

Microsoft SQL Server 2012 Krok po kroku

Bazy danych - wykład wstępny

Więzy integralności referencyjnej i klucze obce. PYTANIE NA EGZAMIN LICENCJACKI

Bazy danych. Plan wykładu. Rodzaje baz. Rodzaje baz. Hurtownie danych. Cechy hurtowni danych. Wykład 14: Hurtownie danych

Hurtownie danych i business intelligence - wykład II. Zagadnienia do omówienia. Miejsce i rola HD w firmie

Tuning SQL Server dla serwerów WWW

Podyplomowe Studium Programowania i Baz Danych

Typy tabel serwera MySQL

Spis treści. Przedmowa

Budowa systemu wspomagającego podejmowanie decyzji. Metodyka projektowo wdrożeniowa

Projektowanie i programowanie aplikacji biznesowych. wykład 1

Opisy efektów kształcenia dla modułu

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki

Szkolenie autoryzowane. MS Wdrażanie hurtowni danych w Microsoft SQL Server 2012

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

ORGANIZACJA ZAJĘĆ BAZY DANYCH PLAN WYKŁADU SCHEMAT SYSTEMU INFORMATYCZNEGO

Bazy danych Wykład zerowy. P. F. Góra

Projektowanie: architektura baz danych

Hurtownie danych - przegląd technologii

Wykład :45 BD-1 W_3

Hurtownie danych wykład 5

Programowanie w Ruby

Część I Istota analizy biznesowej a Analysis Services

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Systemy OLAP I. Krzysztof Dembczyński. Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska

Rozwiązania bazodanowe EnterpriseDB

Transkrypt:

Bazy Danych dr inż. Roman Ptak Katedra Informatyki Technicznej roman.ptak@pwr.edu.pl

Plan wykładu 12 i 13. Systemy baz danych: MySQL, SQLite, PostgreSQL Hurtownie danych Cele i techniki replikacji i fragmentacji danych 2

Przegląd systemów baz danych MySQL, SQLite, PostgreSQL

4 Wersje BD Produkt Producent Najnowsza wersja Licencja Oracle Database Microsoft SQL Server Oracle 11g komercyjna Microsoft 12.00 Microsoft EULA MySQL Oracle 5.6.25 GPL lub komercyjna MariaDB Monty Program Ab 10.0.17 GPL v. 2 PostgreSQL PostgreSQL Global Development Group 9.4.1 PostgreSQL SQLite D. Richard Hipp 3.8.9 Public domain Informix IBM 12.10.xC4 EULA DB2 IBM 10.5 EULA

Duże bazy danych Microsoft SQL Server 2014 Oracle 11g IBM Informix Extended Parallel Server (XPS) SAP Sybase Adaptive Server Enterprise 15.7 (ASE) Interbase XE3 5

Średnie bazy danych MySQL 5.6.25 MariaDB 10.0.17 PostgreSQL 9.4.1 Firebird 2.5 Microsoft Visual FoxPro 9.0 MS Access 2013 6

Małe bazy danych msql 3.11 SQLite 3.8.9 Nie nadają się do tworzenia wielodstępowych aplikacji internetowych. 7

8 MYSQL/MARIADB

MySQL SZRBD dla Linux/Unix, Windows, Pierwsze wydanie: 1995 r. Licencja: GPL lub komercyjna (Oracle) MariaDB GPL wersja 2 Aktualna wersja stabilna: 5.6.24 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. 9

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, 10 CREATE TABLE test ENGINE=MEMORY

Silniki baz danych MariaDB MyISAM XtraDB kompatybilny z InnoDB Aria nowy silnik bazy danych Inne: FederatedX, OQGRAPH, SphinxSE, 11

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 12

MyISAM - architektura fizyczna Każda tabela zapisywana w trzech plikach: nazwa_tabeli_.frm definicja tabeli nazwa_tabeli_.myd - dane nazwa_tabeli_.myi indeksy 13

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 14 źródło: http://osworld.pl/czym-sie-rozni-innodb-od-myisam/

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 15 źródło: http://osworld.pl/czym-sie-rozni-innodb-od-myisam/

ACID 16 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.

Więzy integralności: a. Wymagana obecność danych b. Więzy dziedziny atrybutów c. Integralność encji/relacji d. Integralność referencyjna e. Więzy ogólne 17

Ad. A. Wymagana obecność danych Niektóre atrybuty zawsze muszą mieć określoną wartość NN not null N nullable znacznik języka SQL: NULL logika trójwartościowa 18

Ad. B. Więzy dziedziny atrybutów Z każdym atrybutem związana jest dziedzina zbiór dopuszczalnych wartości Np. atrybut płeć może przyjmować wartości: K i M 19

20 Ad. C. Integralność encji/relacji Klucz główny zbioru encji nie może przyjmować wartości pustych (NULL)

Ad. D. Integralność referencyjna Klucz obcy wiąże krotkę relacji podrzędnej z krotką relacji nadrzędnej o pasującej wartości odpowiedniego klucza głównego. DRI (ang. Declarative Referential Integrity) 21

Ad. D. Integralność referencyjna 22 1. Wstawienie krotki do relacji podrzędnej 2. Usuwanie krotki z relacji podrzędnej * 3. Modyfikacja klucza obcego krotki w relacji podrzędnej 4. Wstawienie krotki do relacji nadrzędnej * 5. Usunięcie krotki z relacji nadrzędnej NO ACTION, CASCADE, SET NULL, SET DEFAULT, NO CHECK 6. Modyfikacja klucza głównego krotki nadrzędnej * nie następuje naruszenie integralności ref.

Ad. E. Więzy ogólne Reguły biznesowe Zasady działania Np. zasada, że personel obsługuje nie więcej niż 10 nieruchomości 23

InnoDB Zalety obsługa transakcji gwarantuje integralność danych lepiej sprawuje się podczas replikacji typu master slave Wady wolniejszy odczyt danych trudniejsze wykonywanie backupów 24 źródło: http://osworld.pl/czym-sie-rozni-innodb-od-myisam/

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 25

Uproszczony schemat architektury LAMP 26 źródło: wikipedia.org

Funkcje MySQL 27 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 query

Łączenie z serwerem i bazą danych w PHP 28 <?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);?>

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;?> 29

Wstawianie danych do bazy 30 <?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;?>

Pobieranie danych z bazy 31 <?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>"; }?>

Narzędzia administracyjne phpmyadmin za pomocą przeglądarki internetowej MySQL Workbench 32

33 SQLITE

SQLite Bezserwerowa relacyjna baza danych Pierwsze wydanie: 2000 r. Licencja: Public domain Aktualna wersja: 3.8.9 34

SQLite - cechy 35 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.

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; } 36 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; }

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 37

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. 38

39 POSTGRESQL

PostgreSQL Wielodostępny, serwerowy SZBD Pierwsze wydanie: 1995 r. Platformy: Linux/Unix, Windows, Licencja: PostgreSQL Aktualna wersja: 9.4.2 40

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. 41

Narzędzia administracyjne pgadmin phppgadmin - administracja za pomocą przeglądarki internetowej 42

Hurtownie danych. Cele i techniki replikacji oraz fragmentacji danych Serwery lustrzane, obiekty partycjonowane

44 HURTOWNIE DANYCH

Podstawowe pojęcia 45 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.

46 Liczba decyzji Zależność wagi i liczby decyzji Waga decyzji OLAP OLTP

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 47

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) 48

49 Architektura hurtowni danych

Proces integracji danych - ETL Extract, Transform, Load 50 SQL Server Integration Services (SSIS) graficzne narzędzie ETL firmy Microsoft włączone do Microsoft SQL Server od wersji 2005.

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 51

52 Kostka MOLAP - przykład Trójwymiarowa kostka z wymiarami: Sklep, Czas, Produkt i zagregowanymi danymi o sprzedaży.

Model danych ROLAP Relational OLAP fakty przechowywane w tabelach faktów wymiary przechowywane w tabelach wymiarów nie potrzeba dodatkowej pamięci niska efektywność 53

Stosowane schematy w ROLAP Schematy podstawowe gwiazda płatek śniegu Schematy pochodne Konstelacja faktów Gwiazda płatek śniegu 54

55 Schemat gwiazdy

56 Schemat płatka śniegu

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 ) 57

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 Intelligence

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

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

61 CELE I TECHNIKI REPLIKACJI/FRAGMENTACJI DANYCH

Replikacja danych Replikacja danych proces powielania danych pomiędzy różnymi serwerami baz danych. Serwery lustrzane. 62

Replikacja danych - cel 63 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 systemu

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. 64

Ogólna architektura technologii tworzenia lustrzanej kopii bazy danych Klient Serwer nadzorujący Wykonanie Potwierdzenie Potwierdzenie Serwer główny Transmisja do kopii lustrzanej Serwer lustrzany 65 Zapis w dzienniku lokalnym BD Log Zatwierdzenie w dzienniku Zapis w dzienniku zdalnym Log Ciągłe odtwarzanie w kopii lustrzanej BD

Fragmentacja (partycjonowanie) danych Obiekty partycjonowane Podział tabeli na części, zwane fragmentami lub partycjami Techniki fragmentacji pozioma pionowa mieszana 66

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 67

Fragmentacja pozioma 68 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)

Fragmentacja pionowa Rozbicie tabeli na fragmenty złożone z podzbioru atrybutów Każdy fragment zawiera identyczną liczbę rekordów Atrybut niekluczowy A n może się znaleźć tylko w jednym fragmencie Atrybut kluczowy znajduje się w każdym fragmencie służy do łączenia fragmentów 69

Fragmentacja mieszana Połączenie fragmentacji poziomej i pionowej Warianty Fragmentacja pozioma + pionowa Fragmentacja pionowa + pozioma 70

Rodzaje fragmentacji - przykład A1 A2 A3 A4 A5 1 2 3 4 5 6 7 8 9 pozioma pionowa A1 A2 A3 A4 A5 1 2 3 4 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 5 6 7 8 9 mieszana A1 A2 A1 A3 A4 A5 A1 A2 A3 A1 A4 A5 71 1 2 3 4 1 2 3 4 5 6 7 8 9 5 6 7 8 9

Podsumowanie 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 72

Pytania? DZIĘKUJĘ ZA UWAGĘ