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

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

MongoDB. mini przewodnik. Instytut Informatyki, Politechnika Poznańska. v

Hurtownie danych wykład 5

MongoDB. mini przewodnik. Instytut Informatyki, Politechnika Poznańska. v

NoSQL & relax with CouchDB

Definicja. Not Only SQL

Administracja bazami danych

Kopie bezpieczeństwa NAPRAWA BAZ DANYCH

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

BAZY DANYCH WYKŁAD 5 NO-SQL DATABASE

Przykładowa baza danych BIBLIOTEKA

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

Bazy danych NoSQL Część III. Maciej Zakrzewicz Politechnika Poznańska, Instytut Informatyki,

Big Data i 5V Nowe wyzwania w świecie danych Krzysztof Goczyła

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

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

na podstawie bazy Oracle NoSQL

Bazy danych NoSQL. wprowadzenie. Szymon Francuzik Poznań,

Przetwarzanie danych z wykorzystaniem technologii NoSQL na przykładzie serwisu Serp24

ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko. Typy rozproszonych baz danych. Systemy klient-serwer. Klient-serwer: Przykład

Wprowadzenie do Doctrine ORM

PHP: bazy danych, SQL, AJAX i JSON

Podstawy programowania III WYKŁAD 2

Wprowadzenie do Hurtowni Danych

Baza danych. Modele danych

Bazy danych NoSQL. Szymon Francuzik Poznań,

SIECI KOMPUTEROWE I BAZY DANYCH

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Hbase, Hive i BigSQL

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

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

Iwona Milczarek, Małgorzata Marcinkiewicz, Tomasz Staszewski. Poznań,

Adam Cankudis IFP UAM

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

Tworzenie aplikacji bazodanowych

Wykład 05 Bazy danych

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu:

Bazy danych i usługi sieciowe

SIECI KOMPUTEROWE I BAZY DANYCH

Bazy danych. Dr inż. Paweł Kasprowski

Indeksy w bazach danych. Motywacje. Techniki indeksowania w eksploracji danych. Plan prezentacji. Dotychczasowe prace badawcze skupiały się na

Bazy Danych i Usługi Sieciowe

Język SQL, zajęcia nr 1

1 Przetwarzanie transakcyjne Cechy transakcji Rozpoczęcie i zakończenie Punkty bezpieczeństwa... 3

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

Zarządzanie transakcjami

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

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

Obsługa transakcji rozproszonych Java. Marek Wojciechowski, Maciej Zakrzewicz Instytut Informatyki, Politechnika Poznańska

Zaawansowany kurs języka Python

P o d s t a w y j ę z y k a S Q L

Rozdział 17. Zarządzanie współbieżnością zadania

Czym jest baza danych?

Bazy danych i usługi sieciowe

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

Programowanie w Ruby

Relacyjne bazy danych a XML

Język SQL. Rozdział 8. Język manipulowania danymi DML zadania

Rozproszone bazy danych. Robert A. Kłopotek Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW

Migracja do PostgreSQL za pomocą narzędzi Enterprise DB

Dr Michał Tanaś(

MongoDB - pomoc do laboratorium

Bazy Danych i Usługi Sieciowe

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści

Założenia do ćwiczeń: SQL Server UWM Express Edition: \SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.

Projektowanie systemów baz danych

15. Funkcje i procedury składowane PL/SQL

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Paweł Cieśla. Dokumentacja projektu

Dostęp do baz danych przy wykorzystaniu interfejsu ROracle i biblioteki Shiny

Tworzenie aplikacji bazodanowych w delphi dla dużych baz danych FRAMEWORK IMPET

Język SQL. Rozdział 2. Proste zapytania

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

Replikacja bazy danych polega na kopiowaniu i przesyłaniu danych lub obiektów bazodanowych między serwerami oraz na zsynchronizowaniu tych danych w

1 Wstęp do modelu relacyjnego

Tworzenie aplikacji bazodanowych

Generowanie dokumentów XML z tabel relacyjnych - funkcje SQLX

Wykład 8. SQL praca z tabelami 5

Wykład I. Wprowadzenie do baz danych

Wykład XII. optymalizacja w relacyjnych bazach danych

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Szkolenie autoryzowane. MS 6232 Wdrażanie bazy danych Microsoft SQL Server 2008 R2

Zasady transformacji modelu DOZ do projektu tabel bazy danych

Hurtownie danych. 31 stycznia 2017

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

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

Bazy danych - ciągłość działania, spójność danych i disaster recovery. Daniel Polek-Pawlak Jarosław Zdebik

Wprowadzenie do NoSql. Maksymilian Wiesiołek

Referat pracy dyplomowej

Organizacyjnie. Prowadzący: dr Mariusz Rafało (hasło: BIG)

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

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

Programowanie obiektowe

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Specjalizacja magisterska Bazy danych

Tworzenie aplikacji w języku Java

Transkrypt:

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

Plan Historia Podstawowe pojęcia: Dokument Kolekcja Generowanie identyfikatora Model danych Dokumenty zagnieżdżone Dokumenty z referencjami ACID Język zapytań Framework agregacji 2

Wiadomości ogólne MongoDB to baza dokumentów Przechowuje pary: identyfikator dokumentu + dokument Dokument może być złożony http://www.mongodb.com Pierwsze wersja w 2007 r. Nazwa nawiązuje do słowa humongous potężny Open source (GNU AGPL), C++, wiele platform Główny cel to wydajność i niezawodność replikacja mniejsza kontroli spójności brak transakcji Najbardziej znane wdrożenia: ebay, LinkedIn, Foursquare 3

Model danych Baza danych składa się z kolekcji jeden serwer MongoDB może obsługiwać wiele baz danych Kolekcja przechowuje dokumenty każdy dokument w ramach kolekcji może mieć inną strukturę Dokument Podstawowa jednostka danych Przechowywany w formacie JSON (fizycznie BSON Binary JSON) Model zależy przede wszystkim od: sposobu wykorzystywania danych intensywności modyfikacji 4

Dokument Sekwencja par <klucz:wartość> Klucze są ciągami znaków nie mogą się powtarzać Każdy dokument ma identyfikator klucz o nazwie "_id" Wartości są określonego typu (np. string, date, number, boolean etc.) mogą być kolejnymi parami <klucz:wartość> Wielkość liter ma znaczenie 5

Identyfikator dokumentu Automatycznie tworzony po stronie klienta Decentralizacja Wysoka efektywność Schemat identyfikatora dla unikania kolizji 12 bajtów -> 24 znakowa liczba heksadecymalna Ile bajtów Różne identyfikatory dla dokumentów generowanych na różnych maszynach W ciągu jednej sekundy proces na maszynie może wygenerować wiele identyfikatorów (2^8^3) 4 3 2 3 Znacznik czasowy Reprezentuje czas utworzenia obiektu Identyfikator maszyny Identyfikator procesu maszyny Licznik Samodzielnie nie gwarantuje unikalności Na jednej maszynie może działać wiele procesów 6

Przykłady dokumentów prosty dokument _id: ObjectId( ), tytul: "NoSQL w jeden dzień" dokument z tablicą _id: ObjectId( ), tytul: "NoSQL w jeden dzień", opis: "Najlepsza książka na rynku", tematyka: ["nosql", "bazy danych"] dokument z tablicą zagnieżdżonych dokumentów _id: ObjectId( ), tytul: "NoSQL w jeden dzień", opis: "Najlepsza książka na rynku", tematyka: ["nosql", "bazy danych"], wypozyczenia: [ osoba: "Artur", data: new Date(2017,12,21,8,00), osoba: "Julia", data: new Date(2017,12,18,12,00) ] Związki pomiędzy danymi reprezentowane przez zagnieżdżanie dokumentów 7

Referencje _id: <ObjectID1> nazwisko: "WEGLARZ", placa_pod: 1730 id_zesp: <ObjectID3> _id: <ObjectID3> nazwa: "X", adres: "PIOTROWO 3A" _id: <ObjectID1> nazwisko: "WEGLARZ", placa_pod: 1730 _id: <ObjectID2> nazwisko: "MORZY", placa_pod: 1340 _id: <ObjectID3> nazwa: "X", adres: "PIOTROWO 3A", pracownicy:[<objectid1>,<objectid2>] DO WERSJI 3.2 BRAK OPERACJI POŁĄCZENIA W BAZIE DANYCH POŁACZENIE TYLKO NA POZIOMIE APLIKACJI Związki pomiędzy danymi reprezentowane przez referencje 8

Dokumenty zagnieżdżone vs referencje Dokumenty zagnieżdżone dobre dla związków 1:N rozmiary dokumentów mogą z czasem intensywnie rosnąć (ograniczenie to 16MB) cały dokument jest blokowany do zapisu w pamięci przechowywane są całe dokumenty Dokumenty z referencjami podobieństwo do relacyjnych baz danych (normalizacja) często trudniejsze w przeprowadzaniu operacji bazodanowych stosować: gdy zagnieżdżanie powoduje zbyt duże powielanie danych gdy zagnieżdżanie nie przynosi przyrostu wydajności dla reprezentacji związków M:N 9

ACID Atomicity Atomowe są operacje na poziomie pojedynczego dokumentu, nawet jeżeli operacja zapisu dotyczy wielu dokumentów Consistency Tylko dla pojedynczego serwera bazy danych i dokumentu Czytający nie zobaczy częściowo zmodyfikowanego dokumentu Przy replikach brak gwarancji spójności (dostępność >> spójność) Isolation Operacje zapisu są automatycznie "zatwierdzane" Zmiany widoczne natychmiast dla innych zapytań/połączeń Durability Brak gwarancji, po awarii ostatnie zapisy mogą być utracone. Brak transakcji 10

MongoDB Shell MongoDB Shell Serwer MongoDB (mongod) mongo --port <port> --host <host> -u <user> -p <password> student@lab-ai-sbd:~$ mongo MongoDB shell version v3.4.10 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 3.4.10 > show dbs admin 0.000GB ksiegarnia 0.000GB local 0.000GB > use ksiegarnia switched to db ksiegarnia > show collections ksiazki wydawnictwa 11

Język dostępu do danych Własny język zapytań (brak SQL) Oparty na notacji JavaScript i JSON Możliwość użycia kodu JavaScript SELECT NAZWISKO, PLACA_POD, PLACA_DOD FROM PRACOWICY WHERE PLACA_POD + NVL(PLACA_DOD,0) > 1000 db.pracownicy.find( $where: "this.placa_pod + (this.placa_dod!= null? this.placa_dod:0) > 1000", "nazwisko":1, "placa_pod":1, "placa_dod":1 ) 12

Framework agregacji Nie musi agregować danych Może mieć charakter przetwarzania potokowego MapReduce Przetwarzanie potokowe dokumenty etap 1 etap 2 etap n wynik db.kol.aggregate( [ $match:, $project:, $group: $match:, $skip :, $limit :.. ]) 13

Podsumowanie Dokumentowa baza danych Dokumenty powiązane poprzez zagnieżdżenia Referencje Brak transakcji Rozwiązania w celu uzyskania dla wysokiej wydajności dostępności Dedykowany, oparty na notacji JavaScript, język dostępu do danych Przetwarzanie potokowe 14