Bazy danych 12. Bazy NoSQL. P. F. Góra

Podobne dokumenty
Bazy danych 11. Systemy rozproszone, twierdzenie CAP i bazy NoSQL. P. F. Góra

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

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

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

BAZY DANYCH. NIERELACYJNE BAZY DANYCH NoSQL I ASOCJACYJNE STRUKTURY DANYCH. Adrian Horzyk. Akademia Górniczo-Hutnicza

Bazy danych 11. Algorytmy złaczeń. P. F. Góra

Baza danych. Modele danych

*Grafomania z. Neo4j. Praktyczne wprowadzenie do grafowej bazy danych.

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

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

Hurtownie danych wykład 5

Wykład 2. Relacyjny model danych

Bazy danych NoSQL. wprowadzenie. Szymon Francuzik Poznań,

Wprowadzenie do Hurtowni Danych

Bazy danych Wprowadzenie Wykład dla IV i V roku matematyki

WPROWADZENIE DO BAZ DANYCH

Technologia informacyjna

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Technologia informacyjna

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi

NoSQL & relax with CouchDB

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

Paweł Kurzawa, Delfina Kongo

BAZY DANYCH. Dr hab. Sławomir Zadrożny, prof. PR

Bazy Danych. Bazy Danych i SQL Podstawowe informacje o bazach danych. Krzysztof Regulski WIMiIP, KISiM,

Bazy danych 2. Relacyjny model baz danych

Obiektowość BD Powtórka Czas odpowiedzi. Bazy Danych i Systemy informacyjne Wykład 14. Piotr Syga

MongoDB. wprowadzenie. dr inż. Paweł Boiński, Politechnika Poznańska

Dr Michał Tanaś(

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Bazy danych 3. Normalizacja baz danych (c.d.)

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

Posługiwanie się tabelami

2017/2018 WGGiOS AGH. LibreOffice Base

030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła

Zasady transformacji modelu DOZ do projektu tabel bazy danych

ORGANIZACJA I ZARZĄDZANIE INFORMACJĄ W BAZIE DNYCH. podstawowe pojęcia.

Bazy danych 2. Algebra relacji Zależności funkcyjne

Wrocławska Wyższa Szkoła Informatyki Stosowanej. Bazy danych. Dr hab. inż. Krzysztof Pieczarka.

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

Bazy Danych. Bazy Danych i SQL Podstawowe informacje o bazach danych. Krzysztof Regulski WIMiIP, KISiM, regulski@metal.agh.edu.pl

Transformacja modelu ER do modelu relacyjnego

PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W NOWYM SĄCZU SYLABUS PRZEDMIOTU. Obowiązuje od roku akademickiego: 2011/2012

Bazy danych TERMINOLOGIA

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU

Relacyjny model baz danych, model związków encji, normalizacje

NoSQL: Riak. dr inż. Sebastian Ernst Katedra Informatyki Stosowanej

Model relacyjny bazy danych

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

Bazy danych - wykład wstępny

Bazy danych NoSQL. Szymon Francuzik Poznań,

Podejście obiektowe - podstawowe pojęcia

011 ASPEKTY BAZ NOSQL. Prof. dr hab. Marek Wisła

Bazy danych 1. Pojęcia podstawowe

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

Związki pomiędzy tabelami

Tworzenie aplikacji bazodanowych

PODSTAWY BAZ DANYCH. 5. Modelowanie danych. 2009/ Notatki do wykładu "Podstawy baz danych"

Bazy danych. Zenon Gniazdowski WWSI, ITE Andrzej Ptasznik WWSI

Co to są relacyjne bazy danych?

RELACYJNE BAZY DANYCH I ICH ZNACZENIE W SYSTEMACH INFORMACJI GEOGRAFICZNEJ

Projektowanie Systemów Informacyjnych

Informatyka Ćwiczenie 10. Bazy danych. Strukturę bazy danych można określić w formie jak na rysunku 1. atrybuty

Model semistrukturalny

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Wykład II Encja, atrybuty, klucze Związki encji. Opracowano na podstawie: Podstawowy Wykład z Systemów Baz Danych, J.D.Ullman, J.

Bazy danych. Zachodniopomorski Uniwersytet Technologiczny w Szczecinie. Wykład 3: Model związków encji.

Teoretyczne podstawy informatyki

Tablice. Jones Stygar na tropie zmiennych

Współczesne systemy baz danych

1. Mapowanie diagramu klas na model relacyjny.

Teoretyczne podstawy informatyki

Adam Cankudis IFP UAM

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Bazy danych. Dr inż. Paweł Kasprowski

Bazy danych 3. Normalizacja baz danych

Definicja bazy danych TECHNOLOGIE BAZ DANYCH. System zarządzania bazą danych (SZBD) Oczekiwania wobec SZBD. Oczekiwania wobec SZBD c.d.

Autor: Joanna Karwowska

Bazy Danych. Model Relacyjny. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

Normalizacja relacyjnych baz danych. Sebastian Ernst

Podstawowe zagadnienia z zakresu baz danych

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Definicja. Not Only SQL

Bazy danych 8. Złaczenia ciag dalszy. Grupowanie.

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

Baza danych sql. 1. Wprowadzenie

PLAN WYKŁADU BAZY DANYCH MODEL DANYCH. Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna HISTORIA

ZAGADNIENIA DO EGZAMINU DYPLOMOWEGO NA STUDIACH INŻYNIERSKICH. Matematyka dyskretna, algorytmy i struktury danych, sztuczna inteligencja

Dane wejściowe. Oracle Designer Generowanie bazy danych. Wynik. Przebieg procesu

Pojęcie bazy danych funkcje i możliwości Charakterystyka baz danych:

WPROWADZENIE DO BAZ DANYCH

Wprowadzenie do projektowania i wykorzystania baz danych Relacje i elementy projektowania baz

Język SQL, zajęcia nr 1

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Indeksowanie w bazach danych

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

Bazy danych. Algebra relacji

Literatura. Bazy danych s.1-1

Transkrypt:

Bazy danych 12. Bazy NoSQL P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2019

Bazy NoSQL: Nierelacyjne bazy danych, zaprojektowane (między innymi) do tego, aby rozwiazywać problemy z dostępnościa i spójnościa jak najlepiej z punktu widzenia zakładanej funkcjonalności. NoSQL Not SQL NoSQL = Not Only SQL Copyright c 2018-19 P. F. Góra 12 2

Zasady BASE Bazy OLTP podlegaja zasadom ACID. Bazy NoSQL podlegaja zasadom BASE: Basically available: System zapewnia dostępność nawet w przypadku awarii (niedostepności) części węzłów. Soft state: Stan systemu może się zmieniać w czasie, nawet jeśli system nie otrzymuje w tym czasie żadnych danych wejściowych. Dzieje się tak z uwagi na... Eventual consistency: Węzły sieci wymieniaja informacje o swoim stanie, w skutek czego, po dostatecznie długim czasie, system osiaga spójność, o ile w tym czasie system nie otrzymał żadnych nowych danych. Copyright c 2018-19 P. F. Góra 12 3

Popularne typy baz NoSQL Bazy klucz-wartość 1 Ala 2 ma 3 kota 4 Ola 5 ma 6 Asa Tablica jedna z podstawowych struktur danych. Jednak kolumna to indeks, będacy dowolnym typem całkowitoliczbowym, niekiedy wyliczeniowym. Indeksy nie moga się powtarzać. Druga (i ewentualnie dalsze) kolumny tabeli przechowuja zawartość tabeli. Każda kolumna ma ustalony typ, na ogół z góry określony jest rozmiar tabeli. Występuje naturalny porzadek. Copyright c 2018-19 P. F. Góra 12 4

1 porucznik Columbo Pi 3.141569 33.2 to jest liczba 15.0 3 5 Klient:Id 145603 Klient:NIP 677-112-42-43 4 Ola True prawda Tablica asocjacyjna uogólnienie tablicy. Indeksem może być (niemalże) cokolwiek, typ zawartości nie musi być ustalony i może być zmienny. Indeksy nie moga się powtarzać. Nie ma naturalnego porzadku. Copyright c 2018-19 P. F. Góra 12 5

Baza klucz-wartość jest wzorowana na tablicach asocjacyjnych: Każdemu unikalnemu obiektowi, który chcemy modelować (klientowi, pojazdowi, studentowi,... ) przypisujemy unikalny klucz, a raczej każdemu atrybutowi takiego obiektu przypisujemy unikalny klucz: Klient1:Nazwa, Klient1:Adres, Klient1:NIP itd, a następnie przechowujemy pary klucz-wartość, np (Student1:Imie, Alicja ), (Student1:Nazwisko, Kowalska ), (Student2:Imie, Bogdan ),(Student2:Nazwisko, Nowak ). Nie musimy specyfikować typów wartości ani ile takich atrybutów będziemy przechowywać. Jest to najprostszy typ bazy NoSQL, nie obsługujacy ani złaczeń, ani innych operacji typowych dla SQL. Copyright c 2018-19 P. F. Góra 12 6

Klucz musi być unikalny w przestrzeni nazw. Przestrzeń nazw można interpretować jako abstrakcyjna encję, a jej poszczególne wystapienia jako wystapienia tej encji. Możliwe sa więc na przykład takie operacje (zakładam, że jakiś język programowania je obsługuje): Klient:037:Nazwa = SpaceX Klient:224:Nazwa = Amazon Kiedy to się może przydać? Jeśli program ma przez pewien, na ogół z góry nieznany czas, przechowywać dane dotyczace różnych obiektów i manipulować nimi. Może to być na przykład zawartość przypisanego danemu klientowi koszyka w e-sklepie, dane adresowe kilku kontrahentów, któremu program ma wystawić faktury, dane katalogowe ksiażek wypożyczanych z biblioteki itp, Copyright c 2018-19 P. F. Góra 12 7

itp. Ważne, że na potrzeby tego programu nie będzie się przeprowadzać zła- czeń, skomplikowanych wyszukiwań i podobnych klasycznych operacji bazodanowych. Baza klucz-wartość często jest zasilana z klasycznej bazy OLTP lub też dane sa wprowadzane ręcznie, przez działajacy program, nie ma natomiast potrzeby zapisywania ich w bazie OLTP lub też spowolniłoby to działanie programu. Jeśli pracujemy jednocześnie z wieloma przestrzeniami nazw (encjami), dla przyspieszenia działania programu, klucze czesto się haszuje, a następnie wyszukuje w tablicy haszy. Copyright c 2018-19 P. F. Góra 12 8

Bazy dokumentów Baza dokumentów zapewne najbardziej popularny typ baz NoSQL. Podobna do baz klucz-wartość, ale wartościami sa dokumenty, zapisane w formacie JSON, XML lub jakimkolwiek innym. Schemat każdej encji może być inny. Główna zaleta w stosunku do baz klucz-wartość jest to, że atrybuty w pewien sposób ze soba powiazane sa traktowane łacznie, jako jeden obiekt. W bazach klucz-wartość, dzięki stosowaniu znaczacych kluczy, domyślamy się, że wartości przyporzadkowane kluczom Klient:124:NIP i Klient:124:REGON sa jakoś ze soba zwiazane, ale nic tego logicznie nie wymusza. W bazie domumentów odpowiednie wartości byłyby zapewne różnymi atrybutami tego samego obiektu typu JSON. W odróżnieniu od abstrakcyjnych. Copyright c 2018-19 P. F. Góra 12 9

Bazy rodzin kolumn Bazy rodzin kolumn, zwane także wide column database sa bazami kolumnowymi: Dane przechowywane sa w porzadku kolumnowym, nie wierszowym. Wszystkie dane w jednej kolumnie sa jednego typ. Kolumn może być bardzo wiele (setki, tysiace, niekiedy dziesiatki tysięcy), kolumna może liczyć sobie tysiace setki tysięcy miliony pozycji, ale niektóre (w ogólności: wiele) pozycje odpowiadajace poszczególnym wierszom w danej kolumnie moga być puste. O bazie rodzin kolumn można myśleć jako o bardzo dużej, liczacej wiele wierszy i kolumn zdenormalizowanej tabeli, odpowiadajacej na przykład wymiarowi w hurtowni danych. Pierwowzorem baz rodzin kolumn była Google Big Table i do dziś wielkie firmy nowych technologii utrzymuja swoje serwisy w opaciu o bazy rodzin kolumn. Copyright c 2018-19 P. F. Góra 12 10

Bazy rodzin kolumn znajduja główne zastosowanie w sektorze VLDB, Very Large DataBase. Zawartość baz kolumnowych indeksowana jest za pomoca nazwy kolumny, numeru (identyfikatora) wiersza i, bardzo często, timestamp. Operacje kolumnowe sa szybkie, ale operacje wierszowe, zwłaszcza obejmujace więcej, niż jeden wiersz, sa wolne. Złaczenia sa praktycznie niemożliwe, dlatego bazy kolumnowe w pewnym sensie odpowiadaja zdenormalizowanym tabelom baz relacyjnych. Copyright c 2018-19 P. F. Góra 12 11

Bazy grafowe Bazy grafowe służa do przechowywania informacji o grafach (węzłach i krawędziach), a więc modeluja powiazania pomiędzy obiektami rzeczywistości, która baza modeluje. Baza grafowa pozwala na bezpośrednie odwzorowywanie zależności pomiędzy encjami: wierzchołki sa encjami (znowu, na przykład typu JSON) i sa połaczone krawędziami. Dzięki temu można przeprowadzać złożone wyszukiwania bez konieczności przeprowadzania złaczeń. W bazach SQL (relacyjnych) daje się reprezentować grafy: różne tabele współdziela pewien atrybut (klucz obcy). Bazy SQL sa jednak raczej nieefektywne przy reprezentowaniu złożonych grafów, zwłaszcza takich, które nie sa drzewami. Copyright c 2018-19 P. F. Góra 12 12

Poważne powody używania baz NoSQL Bardzo duże wolumeny danych. Bardzo duży spodziewany ruch. Zmienny, trudny do przewidzenia schemat poszczególnych krotek. Niepoważne powody używania baz NoSQL Modny framework lansuje jakas konkretna bazę NoSQL. Jeżeli tworzymy bazę, w której będziemy przechowywać kilkanaście tysięcy krotek (lub mniej), o strukturze, która znamy lub możemy łatwo przewidzieć, stosowanie baz NoSQL jest błędem projektowym. Copyright c 2018-19 P. F. Góra 12 13