Relacyjne bazy danych why NoSQL? Hurtownie danych wykład 5 dr Sebastian Zając SGH Warszawa 7 lutego 2017 dr Sebastian Zając Hurtownie danych wykład 5 Relacyjne bazy danych why NoSQL? 1 Relacyjne bazy danych Współbieżność i integracja Niezgodność impedancji 2 why NoSQL? Historia NoSQL Agregacyjne modele danych dr Sebastian Zając Hurtownie danych wykład 5 Relacyjne bazy danych why NoSQL? Współbieżność i integracja Niezgodność impedancji bazy danych Bazy relacyjne Bazy relacyjne jako ”oczywiste” narzędzie wykorzystywane przy tworzeniu oprogramowania biznesowego i do przechowywania danych. zalety: możliwość trwałego przechowywania dużych ilości danych. Przypomnienie – dwa rodzaje pamięci: pamięć główna – szybka i nietrwała - brak zasilania, ograniczona pojemność magazyn wspierający – obszerniejszy ale wolniejszy. Np. plik w systemie plików systemu operacyjnego, baza danych dr Sebastian Zając Hurtownie danych wykład 5 Relacyjne bazy danych why NoSQL? Współbieżność i integracja Niezgodność impedancji bazy danych Współbieżność Wielu użytkowników przegląda jednocześnie te same dane oraz wykonuje modyfikację danych.Czy dwie osoby mogą zarezerwować ten sam pokój ? Programistycznie trudne do realizacji ale w bazach danych obsługiwane prze transakcje. Jeśli podczas wprowadzania zmian nastąpi błąd transakcja wycofa zmiany i przywróci poprzednie wartości. Integracja Systemy biznesowe zazwyczaj składają się z wielu aplikacji współpracujących w celu wykonania zadań, co wymaga zaawansowanej organizacji pracy tych aplikacji. Aplikacje wykorzystują często te same dane , a modyfikacje dokonane w jednej aplikacji muszą być widoczne także w innych. Zazwyczaj osiąga się to przez integrację poprzez współdzieloną BD. dr Sebastian Zając Hurtownie danych wykład 5 Relacyjne bazy danych why NoSQL? Współbieżność i integracja Niezgodność impedancji bazy danych Ustandaryzowany model Popularność baz danych ze względu na udostępnianie w/w funkcjonalności w ustandaryzowany sposób. Mimo, iż pomiędzy systemami relacyjnymi występują różnice, podstawowy mechanizm jest taki sam. Dialekty języka SQL są bardzo podobne, transakcje obsługiwane są prawie identycznie. Niezgodność impedancji Model relacyjny organizuje dane w strukturę tabel i wierszy (relacje i krotki). Poleganie na relacjach wprowadza jednak ograniczenia: Dane w krotce muszą być proste - nie mogą zawierać listy bądź struktury zagnieżdżonej. Dla danych umieszczanych w pamięci głównej problem ten nie występuje. dr Sebastian Zając Hurtownie danych wykład 5 Relacyjne bazy danych why NoSQL? Współbieżność i integracja Niezgodność impedancji bazy danych Rozwiązaniem problemu mogły być bazy obiektowe - wymaga jednak to procedur mapujących, co może prowadzić do ignorowania transakcji i spadku szybkości wykonywanych zapytań. dr Sebastian Zając Hurtownie danych wykład 5 Relacyjne bazy danych why NoSQL? Historia NoSQL Agregacyjne modele danych Klastry Po 2000 roku wiele firm internetowych zanotowało wzrosty. Strony internetowe zaczęły bardzo szczegółowo śledzić aktywność i analizować strukturę, co doprowadziło do pojawienia się olbrzymiej ilości danych: łącza, sieci społecznościowe, logi aktywności,dane mapujące. Ponadto największe strony stały się miejscami regularnie odwiedzanymi przez ogromne ilości użytkowników — zwiększenie zasobów: skalowanie w górę - większa pamięć, dysk, procesor - wzrost kosztów ! skalowanie w bok - wykorzystanie wielu słabszych maszyn w klastrze. bazy relacyjne nie są zaprojektowane do pracy w klastrach!!! dr Sebastian Zając Hurtownie danych wykład 5 Relacyjne bazy danych why NoSQL? Historia NoSQL Agregacyjne modele danych Bazy na klastrach Google i Amazon - pierwsze prace nad systemami bazodanowymi działającymi na klastrach (BigTable i Dynamo). Baza ”prawie” NoSQL Termin NoSQL pojawił się po raz pierwszy w latach 90 jako nazwa bazy relacyjnej open source, której twórcą był Carlo Strozzi (Strozzi NoSQL) - dane w formie plików ASCII - krotka = linia oddzielona znakami tabulacji. Brak języka SQL do obsługi (skrypty BASH). 11 czerwca 2009 San Francisco - spotkanie (użytkownicy Hadoop) zorganizowane przez Johana Oskarssona. Poszukiwanie prostej nazwy (znacznik Twittera). Nazwę NoSQL zaproponował Eric Evans. dr Sebastian Zając Hurtownie danych wykład 5 Relacyjne bazy danych why NoSQL? Historia NoSQL Agregacyjne modele danych Termin NoSQL uzyskał wielką popularność ale sama nazwa nigdy dokładnie nie opisuje zjawiska. Dotyczy otwartych, rozproszonych i nierelacyjnych baz danych: Voldemort, Cassandra, Dynomite, HBase, Hypertable, CouchDB, MongoDB. Obecnie brak ogólnej definicji (czy też organizacji, która mogłaby stworzyć taką definicję). Główne cechy Bazy mogą, ale nie muszą wykorzystywać SQL (najczęściej język podobny do SQL np. CQL - Cassandra - ”dokładnie jak SQL, poza miejscami, gdzie się różni”. Oprogramowanie Open Source Brak modelu relacyjnego Sprawne działanie w klastrze dr Sebastian Zając Hurtownie danych wykład 5 Relacyjne bazy danych why NoSQL? Historia NoSQL Agregacyjne modele danych Agregacyjne modele danych Model danych - model, zgodnie z którym baza danych organizuje dane. Np. Model relacyjny – wizualizowany jest jako zestaw tabel. Każda tabela posiada wiersze, każdy wiersz reprezentuje encję. Encje opisywane są za pomocą kolumn, a każda kolumna zawiera pojedynczą wartość. Modele NoSQL 1 modele zorientowane na agregacje klucz – wartość dokument rodzina kolumn 2 modele grafowe dr Sebastian Zając Hurtownie danych wykład 5 Relacyjne bazy danych why NoSQL? Historia NoSQL Agregacyjne modele danych Agregacje Model relacyjny Dane podzielone na krotki (wiersze). Nie można zagnieżdżać krotek wewnątrz innych krotek. Operacje = modyfikacja i zwracanie krotek. Agregacje Operacje na danych bardziej skomplikowanych niż krotka. Wygodnie myśleć jako operacje na rozbudowanych rekordach pozwalających na przechowywanie innych rekordów. Agregacja Kolekcja obiektów, które traktowane są jako jednostka. dr Sebastian Zając Hurtownie danych wykład 5 Relacyjne bazy danych why NoSQL? Historia NoSQL Agregacyjne modele danych JSON JavaScript Object Notation W bazach NoSQL najczęściej wykorzystuje się format JSON: { ”id”:1, ”nazwa”:”Marcin”, ”adresPlatnika”:[”miasto”:”Warszawa”,”ulica”:”Polna”,”nr”:”43”] } dr Sebastian Zając Hurtownie danych wykład 5