NoSQL. Kompendium wiedzy
Autorzy: Pramod J. Sadalage,Martin Fowler
Stron: 168
Druk (oprawa: miękka)
Tytuł oryginału: NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence
Tłumaczenie: Jakub Hubisz
ISBN Książki drukowanej: 978-83-
[zasłonięte]-9905-6, 978
[zasłonięte][zasłonięte]46990
Data wydania książki drukowanej: 2
[zasłonięte]014-12
Format: 168x237
Poznaj fascynujący świat baz danych NoSQL!
Bazy danych NoSQL są coraz popularniejsze. Pozwalają na przechowywanie gigantycznych ilości danych, a przy tym zachowują cały czas najwyższą wydajność. Sprawdzają się doskonale wszędzie tam, gdzie konieczne są wysoka skalowalność systemu, elastyczne przechowywanie często zmieniających się danych lub inne specyficzne zastosowania. Jeżeli jesteś zagorzałym użytkownikiem relacyjnych baz danych SQL, jeżeli słyszałeś o bazach NoSQL i chcesz je poznać, trafiłeś na doskonałą książkę!
Stanowi ona doskonałe wprowadzenie do świata baz danych NoSQL. Na własnej skórze przekonasz się, w jakich zastosowaniach sprawdzą się one doskonale, a w jakich lepiej ich nie używać. W kolejnych rozdziałach poznasz stosowane modele danych oraz dowiesz się, co to jest map-reduce. Część druga książki została poświęcona konkretnym implementacjom - zapoznasz się z bazami klucz-wartość, bazami dokumentów oraz bazami grafowymi. Sprawdź, które najlepiej rozwiążą Twoje problemy! Sięgnij po tę książkę i śmiało wkrocz w świat baz danych NoSQL!
Omawiane w książce zagadnienia:
Określenie, dla których zastosowań bazy NoSQL będą (albo nie będą) odpowiednie.
Zrozumienie architektonicznych kompromisów związanych z wdrożeniem NoSQL.
Wykorzystanie NoSQL do uproszczenia procesu tworzenia oprogramowania i uniknięcia problemu mapowania pomiędzy strukturami w pamięci a bazą relacyjną.
Porównanie przodujących systemów NoSQL.
Omówienie języków zapytań: CQL i Cypher.
Zarządzanie wydajnością, niezawodnością, dostępnością i zdolnością do odzyskiwania po awarii.
Wykorzystanie NoSQL w środowiskach zwinnych.
Wykorzystanie NoSQL do wyszukiwania danych, zarządzania metadanymi, analizy tekstu, sieci społecznościowych, analizy danych i usług finansowych.
Bardziej efektywne kosztowo zarządzanie dużymi danymi dzięki wykorzystaniu klastrów.
Jak teoria CAP wpływa na sposób myślenia o spójności, dostępności i wydajności.
Równoległe przetwarzanie danych w klastrze za pomocą map-reduce.
Dlaczego NoSQL to termin bez jasno zdefiniowanego znaczenia.
Zmień sposób myślenia na nierelacyjny!
Pramod J. Sadalage pracownik firmy ThoughtWorks, rozpoznawanej przez specjalistów branży IT na całym świecie. Doradza klientom i pomaga rozwiązać problemy z zakresu baz danych i programowania. Pomysłodawca ewolucyjnego sposobu przechowywania danych.
Martin Fowler to legenda branży IT. Pracuje dla cenionej firmy ThoughtWorks i zajmuje się najlepszymi sposobami projektowania systemów informatycznych. W obszarze jego zainteresowań znajdują się również zagadnienia związane z refaktoryzacją kodu oraz pracą nad produktywnocią programistów.
Przedmowa (11)
CZĘŚĆ I. ZROZUMIENIE (17)
Rozdział 1. Dlaczego NoSQL? (19)
1.1. Wartość baz relacyjnych (19)
1.1.1. Przechowywanie trwałych danych (19)
1.1.2. Współbieżność (20)
1.1.3. Integracja (20)
1.1.4. Ustandaryzowany (przeważnie) model (20)
1.2. Niezgodność impedancji (21)
1.3. Bazy aplikacji i integracji (22)
1.4. Atak klastrów (23)
1.5. Pojawienie się baz NoSQL (25)
1.6. Najważniejsze kwestie (27)
Rozdział 2. Agregacyjne modele danych (29)
2.1. Agregacje (29)
2.1.1. Przykłady relacji i agregacji (30)
2.1.2. Konsekwencje orientacji na agregacje (34)
2.2. Modele klucz - wartość i dokumentów (35)
2.3. Magazyny rodziny kolumn (36)
2.4. Podsumowanie baz zorientowanych na agregacje (38)
2.5. Dalsza lektura (39)
2.6. Najważniejsze kwestie (39)
Rozdział 3. Więcej szczegółów na temat modelów danych (41)
3.1. Relacje (41)
3.2. Bazy grafowe (42)
3.3. Bazy danych bez schematu (44)
3.4. Widoki zmaterializowane (46)
3.5. Modelowanie z myślą o dostępie do danych (47)
3.6. Najważniejsze kwestie (51)
Rozdział 4. Modele dystrybucyjne (53)
4.1. Pojedynczy serwer (53)
4.2. Współdzielenie (54)
4.3. Replikacja master-slave (56)
4.4. Replikacja peer-to-peer (57)
4.5. Łączenie shardingu i replikacji (59)
4.6. Najważniejsze kwestie (59)
Rozdział 5. Spójność (61)
5.1. Spójność aktualizacji (61)
5.2. Spójność odczytu (63)
5.3. Rozluźnianie spójności (66)
5.3.1. Teoria CAP (66)
5.4. Rozluźnianie trwałości (69)
5.5. Kwora (70)
5.6. Dalsza lektura (72)
5.7. Najważniejsze kwestie (72)
Rozdział 6. Stemple wersji (73)
6.1. Transakcje biznesowe i systemowe (73)
6.2. Stemple wersji na wielu serwerach (75)
6.3. Najważniejsze kwestie (76)
Rozdział 7. Map-reduce (77)
7.1. Podstawy map-reduce (78)
7.2. Partycjonowanie i łączenie (79)
7.3. Tworzenie obliczeń map-reduce (81)
7.3.1. Przykład dwuetapowego map-reduce (82)
7.3.2. Inkrementacyjny map-reduce (85)
7.4. Dalsza lektura (86)
7.5. Najważniejsze kwestie (86)
CZĘŚĆ II. IMPLEMENTACJA (89)
Rozdział 8. Bazy klucz - wartość (91)
8.1. Czym jest magazyn klucz - wartość? (91)
8.2. Funkcjonalności magazynów klucz - wartość (93)
8.2.1. Spójność (93)
8.2.2. Transakcje (94)
8.2.3. Możliwości zapytań (94)
8.2.4. Struktura danych (95)
8.2.5. Skalowanie (96)
8.3. Pasujące przypadki użycia (96)
8.3.1. Przechowywanie informacji o sesjach (96)
8.3.2. Profile i preferencje użytkownika (97)
8.3.3. Dane koszyka zakupów (97)
8.4. Kiedy nie stosować (97)
8.4.1. Relacje pomiędzy danymi (97)
8.4.2. Transakcje dla wielu operacji (97)
8.4.3. Zapytania na danych (97)
8.4.4. Operacje na zestawach (98)
Rozdział 9. Bazy dokumentów (99)
9.1. Czym jest baza dokumentów? (99)
9.2. Funkcjonalności (100)
9.2.1. Spójność (101)
9.2.2. Transakcje (102)
9.2.3. Dostępność (102)
9.2.4. Możliwości zapytań (103)
9.2.5. Skalowanie (105)
9.3. Pasujące przypadki użycia (107)
9.3.1. Logowanie zdarzeń (107)
9.3.2. Systemy zarządzania zawartością i platformy blogerskie (107)
9.3.3. Analizy stron internetowych lub analizy w czasie rzeczywistym (107)
9.3.4. Aplikacje e-commerce (107)
9.4. Kiedy nie stosować (107)
9.4.1. Złożone transakcje obejmujące różne operacje (107)
9.4.2. Zapytania na zmiennej strukturze agregacji (108)
Rozdział 10. Bazy rodziny kolumn (109)
10.1. Czym jest magazyn rodziny kolumn? (109)
10.2. Funkcjonalności (110)
10.2.1. Spójność (112)
10.2.2. Transakcje (113)
10.2.3. Dostępność (113)
10.2.4. Możliwości zapytań (114)
10.2.5. Skalowanie (116)
10.3. Pasujące przypadki użycia (116)
10.3.1. Logowanie zdarzeń (116)
10.3.2. Systemy zarządzania treścią i platformy blogowe (117)
10.3.3. Liczniki (117)
10.3.4. Wygasające dane (117)
10.4. Kiedy nie stosować (118)
Rozdział 11. Bazy grafowe (119)
11.1. Czym jest baza grafowa? (119)
11.2. Funkcjonalności (120)
11.2.1. Spójność (122)
11.2.2. Transakcje (122)
11.2.3. Dostępność (123)
11.2.4. Możliwości zapytań (123)
11.2.5. Skalowanie (126)
11.3. Pasujące przypadki użycia (127)
11.3.1. Dane połączone (127)
11.3.2. Wytyczanie trasy, wysyłka i usługi oparte o położenie (127)
11.3.3. Silniki rekomendacji (128)
11.4. Kiedy nie stosować (128)
Rozdział 12. Zmiany schematów (129)
12.1. Zmiany schematu (129)
12.2. Zmiany schematu w bazach transakcyjnych (129)
12.2.1. Zmiany w projektach budowanych od podstaw (130)
12.2.2. Zmiany w projektach zastanych (132)
12.3. Zmiany schematu w magazynach danych NoSQL (133)
12.3.1. Zmiany inkrementacyjne (135)
12.3.2. Zmiany w bazach grafowych (136)
12.3.3. Zmiana struktury agregacji (137)
12.4. Dalsza lektura (137)
12.5. Najważniejsze kwestie (137)
Rozdział 13. Poliglotyczne przechowywanie danych (139)
13.1. Odmienne potrzeby przechowywania danych (139)
13.2. Poliglotyczne wykorzystanie magazynu danych (140)
13.3. Usługi a bezpośrednie przechowywanie danych (142)
13.4. Rozszerzanie dla polepszenia funkcjonalności (142)
13.5. Wybór odpowiedniej technologii (143)
13.6. Problemy korporacyjne przy poliglotycznym przechowywaniu danych (144)
13.7. Złożoność wdrożenia (145)
13.8. Najważniejsze kwestie (145)
Rozdział 14. Poza NoSQL (147)
14.1. Systemy plików (147)
14.2. Event sourcing (148)
14.3. Obraz w pamięci (150)
14.4. Kontrola wersji (151)
14.5. Bazy XML (151)
14.6. Bazy obiektowe (152)
14.7. Najważniejsze kwestie (152)
Rozdział 15. Wybór bazy danych (153)
15.1. Wydajność programistów (153)
15.2. Wydajność dostępu do danych (155)
15.3. Trzymanie się standardów (156)
15.4. Odwoływanie przypuszczeń (156)
15.5. Najważniejsze kwestie (157)
15.6. Końcowe przemyślenia (157)
Bibliografia (159)
Skorowidz (163)