NoSQL. Przyjazny przewodnik - Helion
Tytuł oryginału: NoSQL for Mere Mortals
TÅ‚umaczenie: Jakub Hubisz
ISBN: 978-83-283-2488-6
stron: 408, Format: 170x230, okładka: miękka
Data wydania: 2016-08-08
Księgarnia: Helion
Cena książki: 69,00 zł
Systemy do zarzÄ…dzania danymi muszÄ… dziÅ› speÅ‚niać o wiele wyższe wymagania niż kiedyÅ›. W wielu przypadkach nierelacyjne bazy danych, zwane NoSQL, sÄ… lepszym rozwiÄ…zaniem niż dominujÄ…ce do niedawna bazy relacyjne. Projektant systemu ma wiÄ™c do dyspozycji dobrze znane bazy relacyjne oraz systemy NoSQL, takie jak bazy klucz–wartość, bazy dokumentów, rodziny kolumn i bazy grafowe. Do rozstrzygniÄ™cia pozostaje problem: którÄ… technologiÄ™ zarzÄ…dzania danymi wybrać w danym przypadku.
Niniejsza książka jest przystÄ™pnym, pragmatycznym przewodnikiem po nierelacyjnych systemach bazodanowych. Pokazano w niej, czym różniÄ… siÄ™ NoSQL od baz relacyjnych. Szczególny nacisk poÅ‚ożono na wyjaÅ›nienie tych cech i funkcjonalnoÅ›ci, które powinny być uwzglÄ™dniane podczas projektowania aplikacji i wybierania technologii bazodanowych. Przedstawiono wewnÄ™trzne mechanizmy baz NoSQL i wyjaÅ›niono, w jaki sposób da siÄ™ zbudować za ich pomocÄ… skalowalne, niezawodne aplikacje. Nie zabrakÅ‚o przydatnych wskazówek, zasad projektowych i najlepszych praktyk.
W tej książce znajdziesz:
- podstawy relacyjnych baz danych w odniesieniu do systemów NoSQL
- bazy klucz–wartość — ich charakterystykÄ™, zasady projektowania i sÅ‚abe strony
- bazy dokumentów — koncepcje baz bez schematu, podstawowe operacje, najpowszechniejsze wzorce projektowe
- bazy rodzin kolumn — aplikacje BigData, architekturÄ™ baz, zasady projektowania i wykorzystywania
- bazy grafowe — modelowanie grafów i sieci, wskazówki projektowe, możliwe problemy
- zasady dobierania technologii bazodanowej do konkretnych zastosowań
Nie wiesz jeszcze, którÄ… bazÄ™ wybrać? Najwyższy czas to rozstrzygnąć!
Dan Sullivan — jest naukowcem i architektem danych. Od dwudziestu lat zajmuje siÄ™ m.in. analizÄ… biznesowÄ…, uczeniem maszynowym i data miningiem. Sullivan jest uznanym ekspertem w dziedzinie baz danych, zarówno relacyjnych, jak i NoSQL.
Osoby które kupowały "NoSQL. Przyjazny przewodnik", wybierały także:
- Windows Media Center. Domowe centrum rozrywki 66,67 zł, (8,00 zł -88%)
- Przywództwo w świecie VUCA. Jak być skutecznym liderem w niepewnym środowisku 58,64 zł, (12,90 zł -78%)
- Mapa Agile & Scrum. Jak si 57,69 zł, (15,00 zł -74%)
- Sztuka podst 53,46 zł, (13,90 zł -74%)
- Lean dla bystrzaków. Wydanie II 49,62 zł, (12,90 zł -74%)
Spis treści
NoSQL. Przyjazny przewodnik -- spis treści
O autorze (15)
Przedmowa (17)
Wprowadzenie (19)
- Kto powinien przeczytać tę książkę? (20)
- Cel tej książki (21)
- Jak czytać tę książkę (22)
- Jak zorganizowana jest ta książka (22)
- Część I: "Wprowadzenie" (22)
- Część II: "Bazy klucz-wartość" (22)
- Część III: "Bazy dokumentów" (23)
- Część IV: "Bazy rodziny kolumn" (23)
- Część V: "Bazy grafowe" (23)
- Część VI: "Wybór bazy danych dla Twojej aplikacji" (24)
- Dodatki (24)
CZĘŚĆ I. WPROWADZENIE (25)
RozdziaÅ‚ 1. Różne bazy do różnych zastosowaÅ„ (27)
- Projekt bazy relacyjnej (28)
- Aplikacja e-commerce (28)
- Wczesne systemy zarzÄ…dzania bazami danych (29)
- Systemy oparte na plikach płaskich (29)
- Systemy z hierarchicznym modelem danych (33)
- Systemy z sieciowym modelem danych (35)
- Podsumowanie wczesnych systemów baz danych (37)
- Rewolucja baz relacyjnych (38)
- Relacyjne systemy zarzÄ…dzania danymi (39)
- Przyczyny powstania baz NoSQL (45)
- Skalowalność (46)
- Koszt (47)
- Elastyczność (47)
- Dostępność (48)
- Podsumowanie (48)
- Studium przypadku (50)
- Pytania kontrolne (50)
- Odniesienia (51)
- Bibliografia (51)
RozdziaÅ‚ 2. Różnorodność baz NoSQL (53)
- ZarzÄ…dzanie danymi w bazach rozproszonych (54)
- Przechowywanie danych w sposób trwaÅ‚y (55)
- Utrzymanie spójnoÅ›ci danych (56)
- Zapewnienie dostępności danych (57)
- Zrównoważenie czasów reakcji, spójnoÅ›ci i trwaÅ‚oÅ›ci (60)
- Spójność, dostÄ™pność i partycjonowanie: teoria CAP (62)
- ACID i BASE (64)
- ACID: atomowość, spójność, izolacja, trwaÅ‚ość (64)
- BASE: zasadnicza dostÄ™pność, miÄ™kki stan, ostateczna spójność (65)
- Rodzaje ostatecznej spójnoÅ›ci (66)
- Cztery typy baz NoSQL (68)
- Bazy par klucz-wartość (68)
- Bazy dokumentów (73)
- Bazy rodziny kolumn (75)
- Bazy grafowe (77)
- Podsumowanie (79)
- Pytania kontrolne (80)
- Odniesienia (81)
- Bibliografia (81)
CZĘŚĆ II. BAZY KLUCZ-WARTOŚĆ (83)
Rozdział 3. Wprowadzenie do baz klucz-wartość (85)
- Od tablic do baz klucz-wartość (86)
- Tablice: baza klucz-wartość z kóÅ‚kami treningowymi (86)
- Tablice asocjacyjne: zdjÄ™cie kóÅ‚ek treningowych (87)
- Pamięć podrÄ™czna: dodanie do roweru biegów (88)
- Bazy klucz-wartość w pamiÄ™ci i na dysku: od rowerów do pojazdów zmotoryzowanych (91)
- Podstawowe funkcjonalności baz klucz-wartość (92)
- Prostota: komu w ogóle potrzebne sÄ… skomplikowane modele danych? (93)
- Szybkość: nie ma czegoś takiego jak "za szybko" (94)
- Skalowalność: nadążaj za wyścigiem (95)
- Klucze: więcej niż tylko nic nieznaczące identyfikatory (101)
- Jak konstruować klucze (101)
- Używanie kluczy do odnajdywania wartości (102)
- Wartości: przechowywanie prawie dowolnych danych (106)
- Wartości nie wymagają silnego typowania (106)
- Ograniczenia w wyszukiwaniu wartości (107)
- Podsumowanie (108)
- Pytania kontrolne (109)
- Odniesienia (109)
- Bibliografia (110)
Rozdział 4. Terminologia baz klucz-wartość (111)
- Terminy związane z modelowaniem danych w bazach klucz-wartość (112)
- Klucz (114)
- Wartość (116)
- Przestrzeń nazw (117)
- Partycja (118)
- Klucz partycjonowania (120)
- Brak schematu (121)
- Terminy związane z architekturą baz klucz-wartość (122)
- Klaster (122)
- Pierścień (124)
- Replikacja (124)
- Terminy związane z implementacją baz klucz-wartość (126)
- Funkcje haszujÄ…ce (126)
- Kolizja (127)
- Kompresja (128)
- Podsumowanie (129)
- Pytania kontrolne (129)
- Odniesienia (130)
Rozdział 5. Projektowanie baz klucz-wartość (131)
- Projektowanie kluczy i partycjonowanie (132)
- Klucze powinny posiadać konwencję nazewniczą (132)
- Dobrze zaprojektowane klucze wymagajÄ… mniej kodu (133)
- Praca z zakresami wartości (134)
- Klucze muszą brać pod uwagę ograniczenia (135)
- Wykorzystanie kluczy do partycjonowania (136)
- Projektowanie struktury wartości (137)
- Typy posiadajÄ…ce strukturÄ™ pomagajÄ… skrócić czas oczekiwania (138)
- Duże wartości mogą prowadzić do mało wydajnych operacji odczytu i zapisu (140)
- Ograniczenia baz klucz-wartość (142)
- Pobieranie wartości wyłącznie za pomocą klucza (143)
- Bazy klucz-wartość nie wspierajÄ… przeszukiwania zakresów (144)
- Brak standardowego języka zapytań podobnego do SQL dla baz relacyjnych (144)
- Wzorce projektowe dla baz klucz-wartość (145)
- Klucze z ograniczonym czasem życia (145)
- Emulowanie tabel (147)
- Agregacje (148)
- Agregacje atomowe (150)
- Indeksy (151)
- Podsumowanie (153)
- Studium przypadku: bazy klucz-wartość dla konfiguracji aplikacji mobilnej (153)
- Pytania kontrolne (156)
- Odniesienia (156)
CZĘŚĆ III. BAZY DOKUMENTÓW (157)
RozdziaÅ‚ 6. Wprowadzenie do baz dokumentów (159)
- Czym jest dokument? (160)
- Dokumenty nie sÄ… wcale takie proste (160)
- Dokumenty a pary klucz-wartość (163)
- ZarzÄ…dzanie wieloma dokumentami w kolekcji (164)
- Unikaj jawnego definiowania schematu (172)
- Podstawowe operacje na bazach dokumentów (173)
- Wstawianie dokumentów do kolekcji (175)
- Usuwanie dokumentów z kolekcji (176)
- Aktualizacja dokumentów w kolekcji (177)
- Pobieranie dokumentów z kolekcji (178)
- Podsumowanie (180)
- Pytania kontrolne (180)
- Odniesienia (181)
RozdziaÅ‚ 7. Terminologia baz dokumentów (183)
- Terminy dotyczÄ…ce dokumentów i kolekcji (184)
- Dokument (184)
- Kolekcja (186)
- Dokument osadzony (187)
- Brak schematu (188)
- Schemat polimorficzny (190)
- Typy partycji (191)
- Partycjonowanie pionowe (192)
- Partycjonowanie poziome, czyli sharding (194)
- Modelowanie danych i przetwarzanie zapytań (198)
- Normalizacja (198)
- Denormalizacja (200)
- Procesor zapytań (200)
- Podsumowanie (201)
- Pytania kontrolne (201)
- Odniesienia (201)
RozdziaÅ‚ 8. Projektowanie baz dokumentów (203)
- Normalizacja, denormalizacja i poszukiwanie równowagi (204)
- Relacja jeden-do-wielu (206)
- Relacja wiele-do-wielu (206)
- Potrzeba złączeń (206)
- Wykonywanie zÅ‚Ä…czeÅ„: podnoszenie ciężarów dla baz relacyjnych (208)
- Co zrobiÅ‚by projektant bazy dokumentów? (210)
- Planowanie z uwzglÄ™dnieniem dokumentów zmiennych (215)
- Unikanie przenoszenia dużych dokumentów (218)
- Strefa Złotowłosej w indeksach (218)
- Aplikacje zorientowane na odczyt (218)
- Aplikacje zorientowane na zapis (219)
- Modelowanie powszechnych relacji (221)
- Relacja jeden-do-wielu w bazach dokumentów (221)
- Relacja wiele-do-wielu w bazach dokumentów (222)
- Modelowanie hierarchii w bazach dokumentów (223)
- Podsumowanie (225)
- Studium przypadku: manifesty użytkowników (226)
- Osadzać czy nie? (227)
- Wybór indeksów (228)
- Osobne kolekcje dla typów? (228)
- Pytania kontrolne (229)
- Odniesienia (229)
CZĘŚĆ IV. BAZY RODZINY KOLUMN (231)
Rozdział 9. Wprowadzenie do baz rodziny kolumn (233)
- Na początku było Google BigTable (234)
- Wykorzystanie dynamicznej kontroli nad kolumnami (236)
- Indeksowanie po rekordzie, nazwie kolumny i stemplu czasowym (236)
- Kontrolowanie lokalizacji danych (237)
- Odczyt i zapis wierszy atomowych (237)
- Utrzymywanie posortowanych wierszy (238)
- PodobieÅ„stwa i różnice miÄ™dzy bazami rodziny kolumn a bazami klucz-wartość i bazami dokumentów (240)
- Cechy baz rodziny kolumn (240)
- PodobieÅ„stwa i różnice miÄ™dzy bazami rodziny kolumn i bazami dokumentów (241)
- Bazy rodziny kolumn kontra bazy relacyjne (242)
- Architektura baz rodziny kolumn (245)
- Architektura HBase: różnorodność wÄ™zÅ‚ów (245)
- Architektura Cassandry: peer-to-peer (247)
- RozgÅ‚aszanie: protokóÅ‚ plotki (248)
- Termodynamika i bazy rozproszone: po co nam antyentropia (250)
- Przechowaj to dla mnie: przekazanie ze wskazaniem (251)
- Kiedy korzystać z baz rodziny kolumn (252)
- Podsumowanie (254)
- Pytania kontrolne (254)
- Odniesienia (255)
Rozdział 10. Terminologia baz rodziny kolumn (257)
- Podstawowe komponenty baz rodziny kolumn (258)
- Przestrzeń kluczy (258)
- Klucz wiersza (258)
- Kolumna (259)
- Rodziny kolumn (260)
- Struktury i procesy: implementacja baz rodziny kolumn (261)
- Wewnętrzne struktury i parametry konfiguracyjne baz rodziny kolumn (261)
- Starzy znajomi: klastry i partycje (262)
- Rzut oka pod maskÄ™: inne komponenty baz rodziny kolumn (264)
- Procesy i protokoły (268)
- Replikacja (268)
- Antyentropia (268)
- ProtokóÅ‚ plotki (269)
- Przekazanie ze wskazaniem (270)
- Podsumowanie (271)
- Pytania kontrolne (271)
- Odniesienia (272)
Rozdział 11. Projektowanie baz rodziny kolumn (273)
- Wskazówki dotyczÄ…ce projektowania tabel (275)
- Denormalizuj, zamiast łączyć (276)
- Wykorzystuj kolumny bez wartości (276)
- Używaj zarówno nazwy kolumny, jak i wartoÅ›ci kolumn do przechowywania danych (277)
- Modeluj encje za pomocÄ… pojedynczego wiersza (278)
- Unikaj punktów zapalnych w kluczach wierszy (279)
- Utrzymuj odpowiednią liczbę wersji wartości kolumn (280)
- Unikaj rozbudowanych struktur danych w wartościach kolumn (281)
- Wskazówki dotyczÄ…ce indeksowania (282)
- Kiedy korzystać z indeksów pomocniczych zarzÄ…dzanych przez system bazy rodziny kolumn (282)
- Kiedy tworzyć indeksy pomocnicze i zarządzać nimi za pomocą tabeli (286)
- Narzędzia do pracy z bazami Big Data (288)
- Ekstrakcja, transformacja i Å‚adowanie danych Big Data (289)
- Analizowanie danych Big Data (290)
- Narzędzia do monitorowania Big Data (293)
- Podsumowanie (294)
- Studium przypadku: analiza danych klienta (294)
- Zrozumienie potrzeb użytkownika (295)
- Pytania kontrolne (296)
- Odniesienia (297)
CZĘŚĆ V. BAZY GRAFOWE (299)
Rozdział 12. Wprowadzenie do baz grafowych (301)
- Czym jest graf? (301)
- Modelowanie grafów i sieci (302)
- Modelowanie lokalizacji geograficznych (303)
- Modelowanie chorób zakaźnych (303)
- Modelowanie encji abstrakcyjnych i konkretnych (305)
- Modelowanie mediów spoÅ‚ecznoÅ›ciowych (307)
- Zalety baz grafowych (308)
- Szybsze wykonywanie zapytań dzięki unikaniu złączeń (308)
- Upraszczanie modelowania (310)
- Wiele relacji pomiędzy encjami (310)
- Podsumowanie (311)
- Pytania kontrolne (311)
- Odniesienia (312)
Rozdział 13. Terminologia baz grafowych (313)
- Elementy grafów (314)
- Wierzchołek (314)
- Krawędź (315)
- Ścieżka (317)
- Pętla (317)
- Operacje na grafach (318)
- Unia grafów (318)
- PrzeciÄ™cie grafów (319)
- Przeszukiwanie grafu (320)
- WÅ‚aÅ›ciwoÅ›ci grafów i krawÄ™dzi (320)
- Izomorfizm (321)
- RzÄ…d i rozmiar (321)
- Stopień (322)
- Bliskość (322)
- Pośrednictwo (322)
- Typy grafów (323)
- Grafy skierowane i nieskierowane (324)
- Sieć przepływowa (324)
- Grafy dwudzielne (325)
- Multigraf (325)
- Graf ważony (326)
- Podsumowanie (327)
- Pytania kontrolne (327)
- Odniesienia (327)
Rozdział 14. Projektowanie baz grafowych (329)
- PoczÄ…tki projektowania grafów (329)
- Projektowanie bazy grafowej sieci społecznościowej (331)
- Projektowanie sterowane przez zapytania (znowu) (334)
- Odpytywanie grafu (336)
- Cypher: zapytania deklaratywne (336)
- Gremlin: zapytania przez trawersowanie grafu (337)
- Wskazówki i sztuczki przydatne w projektowaniu baz grafowych (341)
- Użyj indeksów do poprawienia czasu pobierania danych (342)
- Używaj krawędzi odpowiedniego rodzaju (342)
- Podczas przeszukiwania grafu uważaj na cykle (343)
- Weź pod uwagę skalowalność swojej bazy grafowej (344)
- Podsumowanie (345)
- Studium przypadku: optymalizacja tras transportowych (345)
- Zrozumieć potrzeby użytkownika (345)
- Projektowanie rozwiÄ…zania polegajÄ…cego na analizie grafu (346)
- Pytania kontrolne (347)
- Odniesienia (347)
CZĘŚĆ VI. WYBÓR BAZY DANYCH DLA TWOJEJ APLIKACJI (349)
Rozdział 15. Wytyczne do wyboru bazy danych (351)
- Wybór bazy danych NoSQL (352)
- Przypadki użycia i kryteria wyboru baz klucz-wartość (353)
- Przypadki użycia i kryteria wyboru baz dokumentów (354)
- Przypadki użycia i kryteria wyboru baz rodziny kolumn (354)
- Przypadki użycia i kryteria wyboru baz grafowych (356)
- Używanie baz NoSQL i baz relacyjnych razem (357)
- Podsumowanie (358)
- Pytania kontrolne (358)
- Odniesienia (359)
DODATKI (361)
Dodatek A. Odpowiedzi do pytań kontrolnych (363)
Dodatek B. Lista baz NoSQL (389)
Dodatek C. SÅ‚owniczek (393)
Skorowidz (401)