Wprowadzenie do systemów baz danych. Wydanie VII - Helion
Tytuł oryginału: Fundamentals of Database Systems (7th Edition)
Tłumaczenie: Radosław Lesisz, Tomasz Walczak
ISBN: 978-83-283-4696-3
stron: 1227, Format: ebook
Data wydania: 2018-12-01
Księgarnia: Helion
Cena książki: 134,25 zł (poprzednio: 179,00 zł)
Oszczędzasz: 25% (-44,75 zł)
Mijają lata, a bazy danych wciąż stanowią serce większości systemów informatycznych. Rozwój technologii sprawia jednak, że zaprojektowanie systemu baz danych, jego wdrożenie i administrowanie nim wymaga biegłości w wielu dziedzinach. Niezbędne są solidne podstawy modelowania i projektowania baz danych, umiejętność posłużenia się językami i modelami udostępnianymi przez systemy zarządzania bazami danych, a także znajomość technik implementacji samych systemów. Od profesjonalisty wymaga się także wiedzy o najnowszych technologiach, takich jak NoSQL i oczywiście big data. Ważnym uzupełnieniem tego szerokiego wachlarza jest też znajomość technologii powiązanych z systemami bazodanowymi.
Ta książka jest siódmym, zaktualizowanym wydaniem klasycznego podręcznika do nauki baz danych. Jest to szczegółowa prezentacja najważniejszych aspektów systemów i aplikacji bazodanowych oraz powiązanych technologii. To znakomity podręcznik dla studentów i świetne kompendium dla praktyków. Sporo miejsca poświęcono w nim systemom rozproszonym oraz technologiom opartym na systemie Hadoop i modelu MapReduce. Nie zabrakło opisu takich zagadnień, jak model IR, wyszukiwanie z użyciem słów kluczowych, porównanie baz danych z modelem IR, modele wyszukiwania, ocena wyszukiwania i algorytmy rankingowe. Wykładowcom przyda się szereg ułatwiających pracę dydaktyczną diagramów, prezentacji i rysunków.
W książce między innymi:
- wprowadzenie do modeli, systemów i języków z obszaru baz danych;
- model związków encji i programowanie baz danych;
- bazy relacyjne, obiektowo-relacyjne, obiektowe i XML w bazach danych;
- algorytmy przetwarzania zapytań i techniki optymalizacji;
- bezpieczeństwo baz danych.
Baza danych? Stosuj tylko najskuteczniejsze rozwiązania!
Osoby które kupowały "Wprowadzenie do systemów baz danych. Wydanie VII", wybierały także:
- Data Science w Pythonie. Kurs video. Algorytmy uczenia maszynowego 199,00 zł, (59,70 zł -70%)
- Power BI Desktop. Kurs video. Wykorzystanie narzędzia w analizie i wizualizacji danych 349,00 zł, (104,70 zł -70%)
- Statystyka. Kurs video. Przewodnik dla student 128,71 zł, (39,90 zł -69%)
- Microsoft Excel. Kurs video. Wykresy i wizualizacja danych 199,00 zł, (69,65 zł -65%)
- Analiza danych w Tableau. Kurs video. Podstawy pracy analityka 249,00 zł, (87,15 zł -65%)
Spis treści
Wprowadzenie do systemów baz danych. Wydanie VII eBook -- spis treści
- Przedmowa
- Nowości w tym wydaniu
- Układ i zawartość siódmego wydania
- Wskazówki dotyczące jak najlepszego wykorzystywania tej książki
- Podziękowania
- O autorach
- I Wprowadzenie do baz danych
- 1. Bazy danych i ich użytkownicy
- 1.1. Wprowadzenie
- 1.2. Przykład
- 1.3. Właściwości rozwiązań opartych na bazach danych
- 1.3.1. Samoopisująca natura systemów baz danych
- 1.3.2. Oddzielenie programów od danych oraz abstrakcja danych
- 1.3.3. Obsługa wielu perspektyw dla tych samych danych
- 1.3.4. Współdzielenie danych oraz wielodostępne przetwarzanie transakcji
- 1.4. Aktorzy na scenie
- 1.4.1. Administratorzy bazy danych
- 1.4.2. Projektanci bazy danych
- 1.4.3. Użytkownicy końcowi
- 1.4.4. Analitycy systemowi i programiści aplikacji (inżynierowie oprogramowania)
- 1.5. Pracownicy poza sceną
- 1.6. Zalety stosowania rozwiązań opartych na systemach zarządzania bazami danych
- 1.6.1. Kontrola nadmiarowości
- 1.6.2. Ograniczanie możliwości uzyskania nieautoryzowanego dostępu
- 1.6.3. Zapewnianie miejsca trwałego przechowywania dla obiektów stosowanych w programach
- 1.6.4. Zapewnianie struktur przechowywania dla efektywnego przetwarzania zapytań
- 1.6.5. Zapewnianie możliwości tworzenia kopii bezpieczeństwa i odzyskiwania danych
- 1.6.6. Zapewnianie interfejsów dla wielu użytkowników
- 1.6.7. Reprezentowanie skomplikowanych relacji pomiędzy danymi
- 1.6.8. Wymuszanie więzów integralności
- 1.6.9. Zezwalanie na wnioskowanie i podejmowanie działań w oparciu o zdefiniowane reguły
- 1.6.10. Dodatkowe własności wynikające ze stosowania rozwiązań opartych na bazach danych
- 1.7. Krótka historia praktycznych zastosowań baz danych
- 1.7.1. Wczesne zastosowania baz danych oparte na systemach hierarchicznych i sieciowych
- 1.7.2. Zapewnianie elastyczności w rozwiązaniach opartych na relacyjnych bazach danych
- 1.7.3. Aplikacje obiektowe i konieczność wprowadzenia bardziej skomplikowanych baz danych
- 1.7.4. Wykorzystywana w handlu elektronicznym wymiana danych za pośrednictwem internetu z użyciem XML-a
- 1.7.5. Rozszerzanie możliwości współczesnych systemów baz danych z myślą o nowych zastosowaniach
- 1.7.6. Powstanie systemów przechowywania big data i baz NOSQL
- 1.8. Kiedy nie należy używać systemów zarządzania bazami danych
- 1.9. Podsumowanie
- Pytania powtórkowe
- Ćwiczenia
- Wybrane publikacje
- 2. Architektura systemów baz danych i związane z nimi pojęcia
- 2.1. Modele danych, schematy i egzemplarze
- 2.1.1. Kategorie modeli danych
- 2.1.2. Schematy, egzemplarze i stany baz danych
- 2.2. Trójwarstwowa architektura i niezależność danych
- 2.2.1. Architektura trójwarstwowa
- 2.2.2. Niezależność danych
- 2.3. Języki i interfejsy baz danych
- 2.3.1. Języki systemów zarządzania bazami danych
- 2.3.2. Interfejsy systemów zarządzania bazami danych
- 2.4. Środowisko systemu bazy danych
- 2.4.1. Moduły składające się na system zarządzania bazą danych
- 2.4.2. Narzędzia systemu bazy danych
- 2.4.3. Narzędzia, środowiska aplikacji oraz mechanizmy komunikacji
- 2.5. Architektury systemów zarządzania bazami danych scentralizowane i typu klient-serwer
- 2.5.1. Scentralizowane architektury systemów zarządzania bazami danych
- 2.5.2. Podstawowe architektury typu klient-serwer
- 2.5.3. Dwuwarstwowe architektury typu klient-serwer dla systemów zarządzania bazami danych
- 2.5.4. Trójwarstwowe i n-warstwowe architektury typu klient-serwer dla aplikacji internetowych
- 2.6. Klasyfikacja systemów zarządzania bazami danych
- 2.7. Podsumowanie
- Pytania powtórkowe
- Ćwiczenia
- Wybrane publikacje
- 2.1. Modele danych, schematy i egzemplarze
- II Koncepcyjne modelowanie danych i projektowanie baz danych
- 3. Modelowanie danych zgodnie z modelem związków encji
- 3.1. Stosowanie wysokopoziomowych, koncepcyjnych modelów danych podczas projektowania bazy danych
- 3.2. Przykładowa aplikacja bazy danych
- 3.3. Typy encji, zbiory encji, atrybuty i klucze
- 3.3.1. Encje i atrybuty
- 3.3.2. Typy encji, zbiory encji, klucze i zbiory wartości
- 3.3.3. Początkowy projekt koncepcyjny bazy danych FIRMA
- 3.4. Typy związków, zbiory związków, role i ograniczenia strukturalne
- 3.4.1. Typy, zbiory i egzemplarze związków
- 3.4.2. Stopień związku, nazwy ról oraz związki rekurencyjne
- 3.4.3. Ograniczenia dla typów związków
- 3.4.4. Atrybuty typów związków
- 3.5. Słabe typy encji
- 3.6. Udoskonalanie projektu ER dla bazy danych FIRMA
- 3.7. Diagramy ER, konwencje nazewnictwa oraz zagadnienia związane z projektowaniem
- 3.7.1. Podsumowanie notacji diagramów związków encji (ER)
- 3.7.2. Prawidłowe nazewnictwo konstrukcji schematu
- 3.7.3. Decyzje projektowe związane z tworzeniem schematu koncepcyjnego ER
- 3.7.4. Notacje alternatywne względem tradycyjnych diagramów związków encji (ER)
- 3.8. Przykładowa inna notacja: diagramy klas UML
- 3.9. Typy związków stopnia wyższego niż drugi
- 3.9.1. Wybór pomiędzy związkami binarnymi a trójskładnikowymi (lub wyższych stopni)
- 3.9.2. Ograniczenia związków trójskładnikowych (i wyższych stopni)
- 3.10. Inny przykład baza danych UNIWERSYTET
- 3.11. Podsumowanie
- Pytania powtórkowe
- Ćwiczenia
- Ćwiczenia laboratoryjne
- Wybrane publikacje
- 4. Rozszerzony model związków encji
- 4.1. Podklasy, nadklasy i dziedziczenie
- 4.2. Specjalizacja i generalizacja
- 4.2.1. Specjalizacja
- 4.2.2. Generalizacja
- 4.3. Ograniczenia i właściwości hierarchii specjalizacji i generalizacji
- 4.3.1. Ograniczenia dotyczące specjalizacji i generalizacji
- 4.3.2. Hierarchie i kraty specjalizacji i generalizacji
- 4.3.3. Stosowanie procesów specjalizacji i generalizacji podczas udoskonalania schematów koncepcyjnych
- 4.4. Modelowanie typów UNII w oparciu o kategorie
- 4.5. Przykład schematu EER dla bazy danych UNIWERSYTET oraz formalne definicje dla modelu EER
- 4.5.1. Inny przykład bazy danych UNIWERSYTET
- 4.5.2. Wybory projektowe związane ze specjalizacją i generalizacją
- 4.5.3. Formalne definicje pojęć stosowanych w modelu EER
- 4.6. Przykładowa inna notacja: reprezentowanie specjalizacji-generalizacji na diagramach klas języka UML
- 4.7. Abstrakcja danych, reprezentacja wiedzy oraz zagadnienia związane z ontologią
- 4.7.1. Klasyfikacja i tworzenie egzemplarzy
- 4.7.2. Identyfikacja
- 4.7.3. Specjalizacja i generalizacja
- 4.7.4. Agregacja i asocjacja
- 4.7.5. Ontologia i sieć semantyczna
- 4.8. Podsumowanie
- Pytania powtórkowe
- Ćwiczenia
- Ćwiczenia laboratoryjne
- Wybrane publikacje
- III Relacyjny model danych i SQL
- 5. Relacyjny model danych i ograniczenia relacyjnych baz danych
- 5.1. Pojęcia z modelu relacyjnego
- 5.1.1. Dziedziny, atrybuty, krotki i relacje
- 5.1.2. Właściwości relacji
- 5.1.3. Notacja modelu relacyjnego
- 5.2. Ograniczenia modelu relacyjnego i schematy relacyjnych baz danych
- 5.2.1. Ograniczenia dziedziny
- 5.2.2. Ograniczenia klucza i ograniczenia wartości pustych
- 5.2.3. Relacyjne bazy danych i schematy relacyjnych baz danych
- 5.2.4. Integralność encji, integralność odwołań i klucze obce
- 5.2.5. Pozostałe typy ograniczeń
- 5.3. Operacje aktualizacji, transakcje i obsługa naruszeń więzów integralności
- 5.3.1. Operacja wstawiania
- 5.3.2. Operacja usuwania
- 5.3.3. Operacja aktualizacji
- 5.3.4. Transakcje
- 5.4. Podsumowanie
- Pytania powtórkowe
- Ćwiczenia
- Wybrane publikacje
- 5.1. Pojęcia z modelu relacyjnego
- 6. Podstawy języka SQL
- 6.1. Definicje danych i typy danych języka SQL
- 6.1.1. Stosowane w języku SQL pojęcia schematu i katalogu
- 6.1.2. Polecenie CREATE TABLE języka SQL
- 6.1.3. Typy danych atrybutów oraz dziedziny wartości w standardzie SQL
- 6.2. Określanie ograniczeń w języku SQL
- 6.2.1. Definiowanie ograniczeń i wartości domyślnych dla atrybutów
- 6.2.2. Definiowanie ograniczeń klucza i więzów integralności odwołań
- 6.2.3. Nadawanie nazw definiowanym ograniczeniom
- 6.2.4. Stosowanie klauzuli CHECK do określania ograniczeń dla krotek
- 6.3. Podstawowe zapytania języka SQL
- 6.3.1. Struktura podstawowych zapytań języka SQL: SELECT-FROM-WHERE
- 6.3.2. Niejednoznaczne nazwy atrybutów, mechanizm nazw zastępczych (aliasów) oraz zmienne krotek
- 6.3.3. Nieokreślona klauzula WHERE i zastosowania symbolu gwiazdki
- 6.3.4. Tabele i zbiory w języku SQL
- 6.3.5. Dopasowywanie podciągów znaków do wzorca oraz operacje arytmetyczne
- 6.3.6. Sortowanie wyników zapytań
- 6.3.7. Omówienie i podsumowanie prostych zapytań języka SQL
- 6.4. Dostępne w języku SQL polecenia INSERT, DELETE i UPDATE
- 6.4.1. Polecenie INSERT
- 6.4.2. Polecenie DELETE
- 6.4.3. Polecenie UPDATE
- 6.5. Dodatkowe własności języka SQL
- 6.6. Podsumowanie
- Pytania powtórkowe
- Ćwiczenia
- Wybrane publikacje
- 6.1. Definicje danych i typy danych języka SQL
- 7. Jeszcze o języku SQL złożone zapytania, wyzwalacze, perspektywy i modyfikowanie schematów
- 7.1. Bardziej skomplikowane zapytania języka SQL pobierające dane
- 7.1.1. Operacje porównania z wartością pustą (NULL) oraz logika trójwartościowa
- 7.1.2. Zapytania zagnieżdżone, krotki oraz porównywanie zbiorów i wielozbiorów
- 7.1.3. Zagnieżdżone zapytania skorelowane
- 7.1.4. Dostępne w języku SQL funkcje EXISTS i UNIQUE
- 7.1.5. Jawne deklarowanie zbiorów i zmienianie nazw atrybutów w języku SQL
- 7.1.6. Tabele połączone w języku SQL
- 7.1.7. Funkcje agregujące w języku SQL
- 7.1.8. Grupowanie: klauzule GROUP BY i HAVING
- 7.1.9. Inne konstrukcje języka SQL: WITH i CASE
- 7.1.10. Zapytania rekurencyjne w języku SQL
- 7.1.11. Omówienie i podsumowanie zapytań języka SQL
- 7.2. Definiowanie ograniczeń w postaci asercji i działań w postaci wyzwalaczy
- 7.2.1. Definiowanie ogólnych ograniczeń w postaci asercji w języku SQL
- 7.2.2. Wprowadzenie do wyzwalaczy w języku SQL
- 7.3. Perspektywy (tabele wirtualne) w języku SQL
- 7.3.1. Pojęcie perspektywy w języku SQL
- 7.3.2. Definiowanie perspektyw w języku SQL
- 7.3.3. Implementacja perspektyw i mechanizm ich aktualizowania
- 7.3.4. Perspektywy jako mechanizm uwierzytelniania
- 7.4. Dostępne w języku SQL polecenia zmiany schematu
- 7.4.1. Polecenie DROP
- 7.4.2. Polecenie ALTER
- 7.5. Podsumowanie
- Pytania powtórkowe
- Ćwiczenia
- Wybrane publikacje
- 7.1. Bardziej skomplikowane zapytania języka SQL pobierające dane
- 8. Algebra relacyjna i rachunek relacji
- 8.1. Relacyjne operacje unarne: selekcja i projekcja
- 8.1.1. Operacja selekcji
- 8.1.2. Operacja projekcji
- 8.1.3. Sekwencje operacji i operacja ZMIANA NAZWY
- 8.2. Operacje algebry relacyjnej pochodzące z teorii zbiorów
- 8.2.1. Operacje sumy, części wspólnej i różnicy
- 8.2.2. Operacja iloczynu (produktu) kartezjańskiego
- 8.3. Binarne operacje na relacjach: złączenie i dzielenie
- 8.3.1. Operacja złączenia
- 8.3.2. Odmiany operacji złączenia: operacje równo-złączenia i złączenia naturalnego
- 8.3.3. Kompletny zbiór operacji algebry relacyjnej
- 8.3.4. Operacja dzielenia
- 8.3.5. Notacja drzew zapytań
- 8.4. Dodatkowe operacje relacyjne
- 8.4.1. Uogólniona projekcja
- 8.4.2. Funkcje agregujące i mechanizm grupowania
- 8.4.3. Rekurencyjne operacje domknięcia
- 8.4.4. Operacje złączenia zewnętrznego
- 8.4.5. Operacja sumy zewnętrznej
- 8.5. Przykłady zapytań w algebrze relacyjnej
- 8.6. Relacyjny rachunek krotek
- 8.6.1. Zmienne krotek i relacje zakresowe
- 8.6.2. Wyrażenia i wzory w relacyjnym rachunku krotek
- 8.6.3. Kwantyfikatory uniwersalne i egzystencjalne
- 8.6.4. Przykładowe zapytania w relacyjnym rachunku krotek
- 8.6.5. Notacja używana dla grafów zapytań
- 6.6.5. Wzajemne przekształcanie kwantyfikatorów uniwersalnych i egzystencjalnych
- 8.6.7. Stosowanie kwantyfikatorów uniwersalnych w zapytaniach
- 8.6.8. Bezpieczne wyrażenia
- 8.7. Relacyjny rachunek dziedzin
- 8.8. Podsumowanie
- Pytania powtórkowe
- Ćwiczenia
- Ćwiczenia laboratoryjne
- Wybrane publikacje
- 8.1. Relacyjne operacje unarne: selekcja i projekcja
- 9. Projektowanie relacyjnych baz danych przez odwzorowywanie modelu ER i EER w model relacyjny
- 9.1. Projektowanie relacyjnych baz danych w oparciu o odwzorowywanie modelu ER w model relacyjny
- 9.1.1. Algorytm odwzorowujący model ER w model relacyjny
- 9.1.2. Omówienie i podsumowanie odwzorowania konstrukcji modelu ER w odpowiednie konstrukcje modelu relacyjnego
- 9.2. Odwzorowania konstrukcji modelu EER w relacje
- 9.2.1. Odwzorowywanie specjalizacji i generalizacji
- 9.2.2. Odwzorowywanie współdzielonych podklas (konstrukcji dziedziczenia wielokrotnego)
- 9.2.3. Odwzorowywanie kategorii (typów unii)
- 9.3. Podsumowanie
- Pytania powtórkowe
- Ćwiczenia
- Ćwiczenia laboratoryjne
- Wybrane publikacje
- 9.1. Projektowanie relacyjnych baz danych w oparciu o odwzorowywanie modelu ER w model relacyjny
- IV Techniki programowania baz danych
- 10. Wprowadzenie do technik programowania w języku SQL
- 10.1. Przegląd technik i zagadnień z obszaru programowania baz danych
- 10.1.1. Strategie programowania baz danych
- 10.1.2. Niezgodność impedancji
- 10.1.3. Typowa sekwencja operacji składających się na interakcję w programowaniu baz danych
- 10.2. Osadzony język SQL, dynamiczny język SQL oraz język SQLJ
- 10.2.1. Wyszukiwanie pojedynczych krotek za pomocą poleceń osadzonego języka SQL
- 10.2.2. Przetwarzanie wyników zapytań za pomocą kursorów
- 10.2.3. Określanie zapytań w czasie wykonywania programu stosowanie dynamicznego języka SQL
- 10.2.4. SQLJ: Osadzanie poleceń języka SQL w języku Java
- 10.2.5. Używanie iteratorów do przetwarzania wyników zapytań w standardzie SQLJ
- 10.3. Programowanie baz danych z wywołaniami funkcji i bibliotekami klas: SQL/CLI oraz JDBC
- 10.3.1. Programowanie baz danych z wykorzystaniem interfejsu SQL/CLI oraz języka C w roli nadrzędnego języka programowania
- 10.3.2. JDBC: biblioteka klas języka SQL służąca do programowania w języku Java
- 10.4. Procedury składowane w bazie danych i technika SQL/PSM
- 10.4.1. Procedury i funkcje składowane w bazie danych
- 10.4.2. SQL/PSM: Rozszerzenie standardu SQL o możliwość określania trwale składowanych modułów
- 10.5. Porównanie trzech opisanych podejść
- 10.6. Podsumowanie
- Pytania powtórkowe
- Ćwiczenia
- Wybrane publikacje
- 10.1. Przegląd technik i zagadnień z obszaru programowania baz danych
- 11. Programowanie internetowych baz danych z użyciem języka PHP
- 11.1. Prosty przykład zastosowania PHP
- 11.2. Przegląd podstawowych mechanizmów języka PHP
- 11.2.1. Zmienne, typy danych i konstrukcje programistyczne języka PHP
- 11.2.2. Tablice w PHP
- 11.2.3. Funkcje w języku PHP
- 11.2.4. Zmienne i formularze serwera PHP
- 11.3. Przegląd programowania baz danych za pomocą PHP
- 11.3.1. Nawiązywanie połączenia z bazą danych
- 11.3.2. Pobieranie danych z formularzy i wstawianie rekordów
- 11.3.3. Zapytania pobierające dane z tabel bazy
- 11.4. Krótki przegląd technologii programowania internetowych baz danych w Javie
- 11.5. Podsumowanie
- Pytania powtórkowe
- Ćwiczenia
- Wybrane publikacje
- V Podejścia obiektowe, obiektowo-relacyjne i XML: zagadnienia, modele, języki i standardy
- 12. Bazy obiektowe i obiektowo-relacyjne
- 12.1. Przegląd pojęć obiektowych
- 12.1.1. Wprowadzenie do pojęć i cech obiektowych
- 12.1.2. Tożsamość obiektów i porównanie obiektów z literałami
- 12.1.3. Złożone struktury typów obiektów i literałów
- 12.1.4. Enkapsulacja operacji i trwałość obiektów
- 12.1.5. Hierarchia typów i dziedziczenie
- 12.1.6. Inne pojęcia obiektowe
- 12.1.7. Podsumowanie zagadnień dotyczących obiektowych baz danych
- 12.2. Rozszerzenia obiektowe w standardzie SQL
- 12.2.1. Typy definiowane przez użytkownika za pomocą polecenia CREATE TYPE i obiekty złożone
- 12.2.2. Identyfikatory obiektów oparte na odwołaniach
- 12.2.3. Tworzenie tabel z wykorzystaniem UDT
- 12.2.4. Enkapsulacja operacji
- 12.2.5. Dziedziczenie i przeciążanie funkcji
- 12.2.6. Określanie związków za pomocą odwołań
- 12.3. Model obiektowy ODMG i język definiowania obiektów ODL
- 12.3.1. Przegląd modelu obiektowego ODMG
- 12.3.2. Dziedziczenie w modelu obiektowym ODMG
- 12.3.3. Wbudowane interfejsy i klasy w modelu obiektowym
- 12.3.4. Obiekty atomowe (definiowane przez użytkownika)
- 12.3.5. Ekstensje, klucze i obiekty-fabryki
- 12.3.6. Język definicji obiektów ODL
- 12.4. Projektowanie koncepcyjne obiektowej bazy danych
- 12.4.1. Różnice pomiędzy koncepcyjnym projektowaniem obiektowych i relacyjnych baz danych
- 12.4.2. Odwzorowywanie schematu EER na schemat obiektowy
- 12.5. Obiektowy język zapytań OQL
- 12.5.1. Proste zapytania OQL, punkty wejścia bazy danych i zmienne iterujące
- 12.5.2. Wyniki zapytań i wyrażenia ścieżkowe
- 12.5.3. Inne cechy OQL
- 12.6. Przegląd wiązania z językiem C++ w standardzie ODMG
- 12.7. Podsumowanie
- Pytania powtórkowe
- Ćwiczenia
- Wybrane publikacje
- 12.1. Przegląd pojęć obiektowych
- 13. XML rozszerzalny język znaczników
- 13.1. Dane strukturalne, półstrukturalne i niestrukturalne
- 13.2. Hierarchiczny (drzewiasty) model danych w dokumentach XML
- 13.3. Dokumenty XML, DTD i schematy
- 13.3.1. Dobrze uformowane i prawidłowe dokumenty XML oraz XML DTD
- 13.3.2. Schematy XML
- 13.4. Zapisywanie dokumentów XML w bazach i ich pobieranie
- 13.5. Języki związane ze standardem XML
- 13.5.1. XPath, czyli określanie ścieżek w dokumentach XML
- 13.5.2. XQuery: definiowanie zapytań w XML
- 13.5.3. Inne języki i protokoły związane ze standardem XML
- 13.6. Pobieranie dokumentów XML z relacyjnych baz danych
- 13.6.1. Tworzenie hierarchicznych perspektyw w formacie XML dla danych płaskich lub zapisanych w grafie
- 13.6.2. Przerywanie cykli w celu zamiany grafów w drzewa
- 13.6.3. Dodatkowe kroki związane z tworzeniem dokumentu XML na podstawie bazy danych
- 13.7. XML/SQL: funkcje języka SQL generujące dane w formacie XML
- 13.8. Podsumowanie
- Pytania powtórkowe
- Ćwiczenia
- Wybrane publikacje
- VI Teoria projektowania baz danych i normalizacja
- 14. Podstawy zależności funkcyjnych i normalizacji w relacyjnych bazach danych
- 14.1. Nieformalne wskazówki dotyczące projektowania schematów relacji
- 14.1.1. Wymuszanie jednoznacznej semantyki atrybutów relacji
- 14.1.2. Nadmiarowe informacje w krotkach oraz anomalie aktualizacji
- 14.1.3. Wartości null w krotkach
- 14.1.4. Generowanie fałszywych krotek
- 14.1.5. Podsumowanie i omówienie wskazówek projektowych
- 14.2. Zależności funkcyjne
- 14.2.1. Definicja zależności funkcyjnej
- 14.3. Postaci normalne oparte na kluczach głównych
- 14.3.1. Normalizacja relacji
- 14.3.2. Praktyczne zastosowania postaci normalnych
- 14.3.3. Definicje kluczy i atrybutów należących do kluczy
- 14.3.4. Pierwsza postać normalna
- 14.3.5. Druga postać normalna
- 14.3.6. Trzecia postać normalna
- 14.4. Definicje ogólne drugiej i trzeciej postaci normalnej
- 14.4.1. Definicja ogólna drugiej postaci normalnej
- 14.4.2. Definicja ogólna trzeciej postaci normalnej
- 14.4.3. Interpretacja definicji ogólnej trzeciej postaci normalnej
- 14.5. Postać normalna Boycea-Codda
- 14.5.1. Dekompozycja relacji niebędących w BCNF
- 14.6. Zależności wielowartościowe i czwarta postać normalna
- 14.6.1. Formalna definicja zależności wielowartościowej
- 14.7. Zależności złączeniowe i piąta postać normalna
- 14.8. Podsumowanie
- Pytania powtórkowe
- Ćwiczenia
- Ćwiczenia laboratoryjne
- Wybrane publikacje
- 14.1. Nieformalne wskazówki dotyczące projektowania schematów relacji
- 15. Algorytmy projektowania relacyjnych baz danych i dodatkowe zależności
- 15.1. Inne zagadnienia z obszaru zależności funkcyjnych: reguły wnioskowania, równoważności i pokrycie minimalne
- 15.1.1. Reguły wnioskowania dla zależności funkcyjnych
- 15.1.2. Równoważność zbiorów zależności funkcyjnych
- 15.1.3. Zbiory minimalne zależności funkcyjnych
- 15.2. Właściwości dekompozycji relacyjnych
- 15.2.1. Dekompozycja relacji i niewystarczalność postaci normalnych
- 15.2.2. Właściwość zachowania zależności dekompozycji
- 15.2.3. Właściwość złączenia bezstratnego (nieaddytywnego) dekompozycji
- 15.2.4. Testowanie dekompozycji binarnych pod względem występowania właściwości złączenia nieaddytywnego
- 15.2.5. Kolejne dekompozycje o złączeniach nieaddytywnych
- 15.3. Algorytmy projektowania schematów relacyjnych baz danych
- 15.3.1. Dekompozycja na schematy w trzeciej postaci normalnej z zachowaniem zależności i właściwością złączenia nieaddytywnego (bezstratnego)
- 15.3.2. Dekompozycja ze złączeniem nieaddytywnym na schematy w postaci normalnej Boycea-Codda
- 15.4. Problemy związane z wartościami pustymi i krotkami zawieszonymi oraz inne projekty relacyjne
- 15.4.1. Problemy związane z wartościami pustymi i krotkami zawieszonymi
- 15.4.2. Omówienie algorytmów normalizacyjnych i innych projektów relacyjnych
- 15.5. Dalsze omówienie zależności wielowartościowych i 4NF
- 15.5.1. Reguły wnioskowania dla zależności funkcyjnych i wielowartościowych
- 15.5.2. Jeszcze o czwartej postaci normalnej
- 15.5.3. Dekompozycja ze złączeniem nieaddytywnym na relacje w czwartej postaci normalnej
- 15.6. Inne zależności i postaci normalne
- 15.6.1. Zależności złączeniowe i piąta postać normalna
- 15.6.2. Zależności zawierania
- 15.6.3. Zależności funkcyjne oparte na funkcjach i procedurach arytmetycznych
- 15.6.4. Postać normalna klucza dziedziny
- 15.7. Podsumowanie
- Pytania powtórkowe
- Ćwiczenia
- Ćwiczenia laboratoryjne
- Wybrane publikacje
- 15.1. Inne zagadnienia z obszaru zależności funkcyjnych: reguły wnioskowania, równoważności i pokrycie minimalne
- VII Struktury plikowe, funkcje mieszające, indeksowanie i projekty fizyczne baz danych
- 16. Składowanie danych na dysku, podstawowe struktury plikowe, funkcje mieszające i nowoczesne struktury składowania
- 16.1. Wprowadzenie
- 16.1.1. Hierarchie pamięciowe i urządzenia składowania danych[1]
- 16.1.2. Przechowywanie baz danych
- 16.2. Drugorzędne urządzenia pamięciowe
- 16.2.1. Opis sprzętowy napędów dyskowych
- 16.2.2. Zwiększanie wydajności dostępu do danych na dysku
- 16.2.3. Pamięć masowa SSD
- 16.2.4. Taśmowe urządzenia pamięciowe
- 16.3. Buforowanie bloków
- 16.3.1. Zarządzanie buforem
- 16.3.2. Strategie zastępowania danych w buforze
- 16.4. Rozmieszczanie rekordów plików na dysku
- 16.4.1. Rekordy i typy rekordów
- 16.4.2. Pliki oraz rekordy o stałej i zmiennej długości
- 16.4.3. Rozmieszczenie rekordów w blokach i rekordy segmentowane oraz niesegmentowane
- 16.4.4. Alokowanie bloków pliku na dysku
- 16.4.5. Nagłówki plików
- 16.5. Operacje wykonywane na plikach
- 16.6. Pliki nieuporządkowanych rekordów (pliki stertowe)
- 16.7. Pliki uporządkowanych rekordów (pliki posortowane)
- 16.8. Techniki mieszania
- 16.8.1. Mieszanie wewnętrzne
- 16.8.2. Mieszanie zewnętrzne dla plików na dysku
- 16.8.3. Techniki mieszania umożliwiające dynamiczne rozszerzanie plików
- 16.9. Inne podstawowe metody organizacji plików
- 16.9.1. Pliki rekordów mieszanych
- 16.9.2. B-drzewa i inne struktury danych służące jako podstawowe metody organizacji
- 16.10. Zapewnianie równoległego dostępu do dysku przy użyciu architektury RAID
- 16.10.1. Zwiększanie niezawodności przy użyciu architektury RAID
- 16.10.2. Poprawianie wydajności przy użyciu architektury RAID
- 16.10.3. Metody organizacji i poziomy architektury RAID
- 16.11. Nowoczesne architektury składowania danych
- 16.11.1. Sieci obszarów składowania danych
- 16.11.2. Technologia NAS
- 16.11.3. iSCSI i inne sieciowe protokoły składowania danych
- 16.11.4. Technologia Automated Storage Tiering
- 16.11.5. Obiektowa pamięć masowa
- 16.12. Podsumowanie
- Pytania powtórkowe
- Ćwiczenia
- Wybrane publikacje
- 16.1. Wprowadzenie
- 17. Struktury indeksowe dla plików i fizyczne projekty baz danych
- 17.1. Rodzaje jednopoziomowych indeksów uporządkowanych
- 17.1.1. Indeksy główne
- 17.1.2. Indeksy klastrowania
- 17.1.3. Indeksy drugorzędne
- 17.1.4. Podsumowanie
- 17.2. Indeksy wielopoziomowe
- 17.3. Dynamiczne indeksy wielopoziomowe z użyciem B-drzew i B+-drzew
- 17.3.1. Drzewa wyszukiwania i B-drzewa
- 17.3.2. B+-drzewa
- 17.4. Indeksy na wielu kluczach
- 17.4.1. Indeks uporządkowany na wielu atrybutach
- 17.4.2. Mieszanie partycjonowane
- 17.4.3. Pliki matrycowe
- 17.5. Inne rodzaje indeksów
- 17.5.1. Indeksy oparte na mieszaniu
- 17.5.2. Indeksy bitmapowe
- 17.5.3. Indeksowanie oparte na funkcji
- 17.6. Ogólne zagadnienia związane z indeksami
- 17.6.1. Indeksy logiczne a fizyczne
- 17.6.2. Tworzenie indeksu
- 17.6.3. Dostrajanie indeksów
- 17.6.4. Dodatkowe kwestie związane ze składowaniem relacji i indeksów
- 17.7. Fizyczne projektowanie baz danych w przypadku baz relacyjnych
- 17.7.1. Czynniki wpływające na fizyczny projekt bazy danych
- 17.7.2. Decyzje dotyczące fizycznego projektu bazy danych
- 17.8. Podsumowanie
- Pytania powtórkowe
- Ćwiczenia
- Wybrane publikacje
- 17.1. Rodzaje jednopoziomowych indeksów uporządkowanych
- VIII Przetwarzanie i optymalizacja zapytań
- 18. Strategie przetwarzania zapytań[1]
- 18.1. Translacja zapytań języka SQL do postaci wyrażeń algebry relacji i innych operacji
- 18.1.1. Dodatkowe operatory złączeń częściowych i antyzłączeń
- 18.2. Algorytmy sortowania zewnętrznego
- 18.3. Algorytmy operacji selekcji
- 18.3.1. Możliwości implementacji operacji SELECT
- 18.3.2. Metody wyszukiwania dla selekcji na podstawie warunku koniunktywnego
- 18.3.3. Metody wyszukiwania dla selekcji na podstawie alternatywy logicznej
- 18.3.4. Szacowanie selektywności warunku
- 18.4. Implementacja operacji JOIN
- 18.4.1. Metody implementacji złączeń
- 18.4.2. Wpływ dostępnej przestrzeni bufora i pliku używanego w pętli zewnętrznej na wydajność operacji złączenia w pętli zagnieżdżonej
- 18.4.3. Wpływ współczynnika selekcji złączenia na wydajność tej operacji
- 18.4.4. Ogólna postać partycjonowanego złączenia mieszającego
- 18.4.5. Hybrydowe złączanie mieszające
- 18.5. Algorytmy operacji projekcji i teoriomnogościowych
- 18.5.1. Stosowanie antyzłączeń w operacji SET DIFFERENCE (EXCEPT lub MINUS w języku SQL)
- 18.6. Implementacja operacji agregujących oraz złączeń różnego rodzaju
- 18.6.1. Implementacja operacji agregujących
- 18.6.2. Implementacja różnego rodzaju złączeń
- 18.7. Łączenie operacji poprzez mechanizm potokowy
- 18.7.1. Iteratory używane do implementowania operacji fizycznych
- 18.8. Algorytmy równoległego przetwarzania zapytań
- 18.8.1. Równoległość na poziomie operatorów
- 18.8.2. Równoległość w jednym zapytaniu
- 18.8.3. Równoległość w wielu zapytaniach
- 18.9. Podsumowanie
- Pytania powtórkowe
- Ćwiczenia
- Wybrane publikacje
- 18.1. Translacja zapytań języka SQL do postaci wyrażeń algebry relacji i innych operacji
- 19. Optymalizacja zapytań
- 19.1. Drzewa zapytań i heurystyki optymalizacji zapytań
- 19.1.1. Notacja drzew zapytań i grafów zapytań
- 19.1.2. Heurystyczna optymalizacja drzew zapytań
- 19.2. Wybór planów wykonania zapytań
- 19.2.1. Różne sposoby wykonywania zapytań
- 19.2.2. Optymalizacja podzapytań zagnieżdżonych
- 19.2.3. Scalanie podzapytań (perspektyw)
- 19.2.4. Perspektywy zmaterializowane
- 19.3. Wykorzystanie selektywności w optymalizacji kosztowej
- 19.3.1. Składowe kosztu wykonywania zapytań
- 19.3.2. Informacje z katalogu używane w funkcjach kosztu
- 19.3.3. Histogramy
- 19.4. Funkcje kosztu dla operacji SELECT
- 19.4.1. Przykład optymalizacji selekcji na podstawie wzorów szacowania kosztów
- 19.5. Przykłady funkcji kosztu dla operacji JOIN
- 19.5.1. Selektywność i liczność złączeń częściowych i antyzłączeń
- 19.5.2. Przykład optymalizacji złączenia na podstawie funkcji kosztu
- 19.5.3. Zapytania dotyczące wielu relacji i porządkowanie złączeń
- 19.5.4. Optymalizacja fizyczna
- 19.5.5. Określanie kolejności złączeń za pomocą programowania dynamicznego
- 19.6. Przykład ilustrujący kosztową optymalizację zapytań
- 19.7. Dodatkowe zagadnienia związane z optymalizacją zapytań
- 19.7.1. Wyświetlanie planu wykonania zapytania uzyskanego przez system
- 19.7.2. Szacowanie wielkości wyników dla innych operacji
- 19.7.3. Zapis planu w pamięci podręcznej
- 19.7.4. Optymalizacja z wykorzystaniem pierwszych k wyników
- 19.8. Przykład optymalizacji zapytań w hurtowniach danych
- 19.9. Optymalizacja zapytań w bazach Oracle[18]
- 19.9.1. Optymalizator fizyczny
- 19.9.2. Globalny optymalizator zapytań
- 19.9.3. Optymalizacja adaptacyjna
- 19.9.4. Przetwarzanie tablicowe
- 19.9.5. Wskazówki
- 19.9.6. Zarysy
- 19.9.7. Zarządzanie planami wykonywania instrukcji języka SQL
- 19.10. Semantyczna optymalizacji zapytań
- 19.11. Podsumowanie
- Pytania powtórkowe
- Ćwiczenia
- Wybrane publikacje
- 19.1. Drzewa zapytań i heurystyki optymalizacji zapytań
- IX Przetwarzanie transakcji, sterowanie współbieżne i odtwarzanie baz danych
- 20. Wprowadzenie do problematyki i teorii przetwarzania transakcji
- 20.1. Wprowadzenie do problematyki przetwarzania transakcji
- 20.1.1. Systemy jedno- i wieloużytkownikowe
- 20.1.2. Transakcje, elementy baz danych, operacje odczytu i zapisu oraz bufory SZBD
- 20.1.3. Uzasadnienie potrzeby stosowania sterowania współbieżnego
- 20.1.4. Uzasadnienie potrzeby odtwarzania
- 20.2. Pojęcia dotyczące transakcji i systemu
- 20.2.1. Stany transakcji i dodatkowe operacje
- 20.2.2. Dziennik systemowy
- 20.2.3. Punkt zatwierdzenia transakcji
- 20.2.4. Strategie zastępowania bufora specyficzne dla SZBD
- 20.3. Pożądane właściwości transakcji
- 20.4. Charakteryzowanie harmonogramów na podstawie możliwości odtwarzania
- 20.4.1. Harmonogramy (historie) transakcji
- 20.4.2. Charakterystyka harmonogramów według możliwości odtwarzania
- 20.5. Charakterystyka harmonogramów według ich szeregowalności
- 20.5.1. Harmonogramy szeregowe, nieszeregowe oraz konfliktowo-szeregowalne
- 20.5.2. Sprawdzanie występowania szeregowalności konfliktowej harmonogramu
- 20.5.3. Wykorzystywanie szeregowalności do sterowania współbieżnego
- 20.5.4. Równoważność perspektywiczna i szeregowalność perspektywiczna
- 20.5.5. Inne rodzaje równoważności harmonogramów
- 20.6. Obsługa transakcji w języku SQL
- 20.7. Podsumowanie
- Pytania powtórkowe
- Ćwiczenia
- Wybrane publikacje
- 20.1. Wprowadzenie do problematyki przetwarzania transakcji
- 21. Techniki sterowania współbieżnego
- 21.1. Techniki blokowania dwufazowego dla celów sterowania współbieżnego
- 21.1.1. Rodzaje blokad i systemowe tabele blokad
- 21.1.2. Gwarantowanie szeregowalności blokowania dwufazowego
- 21.1.3. Problem zakleszczenia i zagłodzenia
- 21.2. Sterowanie współbieżne w oparciu o uporządkowanie według znaczników czasu
- 21.2.1. Znaczniki czasu
- 21.2.2. Algorytm uporządkowania według znaczników czasu
- 21.3. Techniki wielowersyjnego sterowania współbieżnego
- 21.3.1. Technika wielowersyjna oparta na porządkowaniu według znaczników czasu
- 21.3.2. Wielowersyjne blokowanie dwufazowe z użyciem blokad certyfikujących
- 21.4. Sterowanie współbieżne z użyciem technik walidacyjnych (optymistycznych) i izolacji snapshotów
- 21.4.1. Walidacyjne (optymistyczne) sterowanie współbieżne
- 21.4.2. Sterowanie współbieżne oparte na izolacji snapshotów
- 21.5. Ziarnistość elementów danych i blokowanie z wieloma poziomami ziarnistości
- 21.5.1. Kwestie dotyczące poziomu ziarnistości w przypadku blokowania
- 21.5.2. Blokowanie z wieloma poziomami ziarnistości
- 21.6. Użycie blokad dla celów sterowania współbieżnego w przypadku indeksów
- 21.7. Inne kwestie związane ze sterowaniem współbieżnym
- 21.7.1. Wstawianie, usuwanie i rekordy fantomowe
- 21.7.2. Transakcje interaktywne
- 21.7.3. Zatrzaski
- 21.8. Podsumowanie
- Pytania powtórkowe
- Ćwiczenia
- Wybrane publikacje
- 21.1. Techniki blokowania dwufazowego dla celów sterowania współbieżnego
- 22. Techniki odtwarzania baz danych
- 22.1. Pojęcia związane z odtwarzaniem
- 22.1.1. Zarys problematyki odtwarzania i podział algorytmów odtwarzania na odrębne kategorie
- 22.1.2. Zapisywanie w pamięci podręcznej (buforowanie) bloków dyskowych
- 22.1.3. Rejestrowanie zapisów z wyprzedzeniem, technika zabierania oraz wymuszania
- 22.1.4. Punkty kontrolne w dzienniku systemowym oraz tworzenie przybliżonych punktów kontrolnych
- 22.1.5. Wycofywanie transakcji i wycofywanie kaskadowe
- 22.1.6. Działania transakcji niewpływające na bazy danych
- 22.2. Techniki odtwarzania NO-UNDO/REDO oparte na aktualizacjach odroczonych
- 22.3. Techniki odtwarzania oparte na aktualizacjach natychmiastowych
- 22.4. Stronicowanie z przesłanianiem
- 22.5. Algorytm odtwarzania ARIES
- 22.6. Odtwarzanie w systemach wielu baz danych
- 22.7. Tworzenie kopii bezpieczeństwa bazy danych i odtwarzanie po awariach katastroficznych
- 22.8. Podsumowanie
- Pytania powtórkowe
- Ćwiczenia
- Wybrane publikacje
- 22.1. Pojęcia związane z odtwarzaniem
- X Rozproszone bazy danych, systemy NOSQL i big data
- 23. Zagadnienia z obszaru rozproszonych baz danych
- 23.1. Zagadnienia z obszaru rozproszonych baz danych
- 23.1.1. Co sprawia, że baza danych jest rozproszona?
- 23.1.2. Przezroczystość
- 23.1.3. Stabilność i dostępność
- 23.1.4. Skalowalność i odporność na podział
- 23.1.5. Autonomia
- 23.1.6. Zalety rozproszonych baz danych
- 23.2. Techniki fragmentacji, replikacji i alokacji danych w projekcie rozproszonej bazy danych
- 23.2.1. Fragmentacja danych i sharding
- 23.2.2. Replikacja i alokacja danych
- 23.2.3. Przykłady fragmentacji, alokacji i replikacji danych
- 23.3. Techniki sterowania współbieżnego i odtwarzania danych w rozproszonych bazach danych
- 23.3.1. Rozproszone sterowanie współbieżne oparte na wyróżnionej kopii danych
- 23.3.2. Rozproszone sterowanie współbieżne oparte na głosowaniu
- 23.3.3. Rozproszone odtwarzanie danych
- 23.4. Przegląd zarządzania transakcjami w rozproszonych bazach danych
- 23.4.1. Protokół zatwierdzania dwufazowego
- 23.4.2. Protokół zatwierdzania trójfazowego
- 23.4.3. Obsługa zarządzania transakcjami w systemie operacyjnym
- 23.5. Przetwarzanie zapytań i optymalizacja w rozproszonych bazach danych
- 23.5.1. Przetwarzanie zapytań rozproszonych
- 23.5.2. Koszty przesyłu danych w przetwarzaniu zapytań rozproszonych
- 23.5.3. Rozproszone przetwarzanie zapytań z użyciem złączeń częściowych
- 23.5.4. Dekompozycja zapytań i aktualizacji
- 23.6. Rodzaje rozproszonych systemów baz danych
- 23.6.1. Zarządzanie federacyjnymi systemami baz danych
- 23.7. Architektury rozproszonych baz danych
- 23.7.1. Architektura równoległa a rozproszona
- 23.7.2. Ogólna architektura czystych baz rozproszonych
- 23.7.3. Architektura federacyjnych baz danych
- 23.7.4. Przegląd trójwarstwowej architektury klient-serwer
- 23.8. Zarządzanie rozproszonym katalogiem
- 23.9. Podsumowanie
- Pytania powtórkowe
- Ćwiczenia
- Wybrane publikacje
- 23.1. Zagadnienia z obszaru rozproszonych baz danych
- 24. Bazy danych NOSQL i systemy składowania big data
- 24.1. Wprowadzenie do systemów NOSQL
- 24.1.1. Powstanie systemów NOSQL
- 24.1.2. Cechy systemów NOSQL
- 24.1.3. Kategorie systemów NOSQL
- 24.2. Twierdzenie CAP
- 24.3. Dokumentowe systemy NOSQL i baza MongoDB
- 24.3.1. Model danych z systemu MongoDB
- 24.3.2. Operacje CRUD w systemie MongoDB
- 24.3.3. Cechy systemu rozproszonego MongoDB
- 24.4. Magazyny NOSQL z parami klucz-wartość
- 24.4.1. Przegląd systemu DynamoDB
- 24.4.2. Rozproszony magazyn danych z parami klucz-wartość Voldemort
- 24.4.3. Przykładowe inne magazyny z parami klucz-wartość
- 24.5. Kolumnowe systemy NOSQL
- 24.5.1. Model danych i wersjonowanie w systemie HBase
- 24.5.2. Operacje CRUD w systemie HBase
- 24.5.3. Zagadnienia związane ze składowaniem danych i systemem rozproszonym w HBase
- 24.6. Grafowe bazy NOSQL i system Neo4j
- 24.6.1. Model danych w systemie Neo4j
- 24.6.2. Język zapytań Cypher w systemie Neo4j
- 24.6.3. Cechy interfejsów i systemu rozproszonego w Neo4j
- 24.7. Podsumowanie
- Pytania powtórkowe
- Wybrane publikacje
- 24.1. Wprowadzenie do systemów NOSQL
- 25. Technologie z obszaru big data oparte na modelu MapReduce i systemie Hadoop[1]
- 25.1. Czym jest big data?
- 25.2. Wprowadzenie do technologii MapReduce i Hadoop
- 25.2.1. Tło historyczne
- 25.2.2. Model MapReduce
- 25.2.3. Wersje Hadoopa
- 25.3. System HDFS
- 25.3.1. Wymagania wstępne związane z systemem HDFS
- 25.3.2. Architektura systemu HDFS
- 25.3.3. Operacje wejścia-wyjścia na plikach i zarządzanie replikami w systemie HDFS
- 25.3.4. Skalowalność systemu HDFS
- 25.3.5. Ekosystem Hadoopa
- 25.4. Model MapReduce: dodatkowe szczegóły
- 25.4.1. Środowisko uruchomieniowe MapReduce
- 25.4.2. Przykład: złączenia w modelu MapReduce
- 25.4.3. Apache Hive
- 25.4.4. Zalety technologii Hadoop i MapReduce
- 25.5. Hadoop 2 (nazywany też YARN)
- 25.5.1. Uzasadnienie powstania platformy YARN
- 25.5.2. Architektura platformy YARN
- 25.5.3. Inne platformy w YARN
- 25.6. Ogólne omówienie
- 25.6.1. Hadoop i MapReduce a równoległe relacyjne SZBD
- 25.6.2. Big data w chmurach obliczeniowych
- 25.6.3. Problemy z lokalnością danych i optymalizacja zasobów w aplikacjach z obszaru big data działających w chmurze
- 25.6.4. YARN jako platforma usług z obszaru danych
- 25.6.5. Wyzwania związane z technologiami z obszaru big data
- 25.6.6. Przyszłość
- 25.7. Podsumowanie
- Pytania powtórkowe
- Wybrane publikacje
- XI Zaawansowane modele, systemy i zastosowania baz danych
- 26. Rozszerzone modele danych: wprowadzenie do aktywnych, czasowych, przestrzennych, multimedialnych i dedukcyjnych baz danych
- 26.1. Wyzwalacze i inne pojęcia związane z aktywnymi bazami danych
- 26.1.1. Uogólniony model aktywnych baz danych i wyzwalacze w Oracle
- 26.1.2. Projektowanie i implementacja aktywnych baz danych
- 26.1.3. Przykładowe aktywne reguły poziomu wyrażenia w systemie STARBURST
- 26.1.4. Możliwe zastosowania aktywnych baz danych
- 26.1.5. Wyzwalacze w SQL-99
- 26.2. Koncepcja czasowych baz danych
- 26.2.1. Reprezentacja czasu, kalendarze i wymiary czasu
- 26.2.2. Wprowadzenie czasu do relacyjnych baz danych z obsługą wersji krotek
- 26.2.3. Czas w obiektowych bazach danych z obsługą wersji atrybutów
- 26.2.4. Konstruowanie zapytań czasowych i język TSQL2
- 26.2.5. Szeregi czasowe
- 26.3. Zagadnienia z obszaru przestrzennych baz danych[24]
- 26.3.1. Wprowadzenie do przestrzennych baz danych
- 26.3.2. Typy i modele danych przestrzennych
- 26.3.3. Operatory i zapytania przestrzenne
- 26.3.4. Indeksowanie danych przestrzennych
- 26.3.5. Eksploracja danych przestrzennych
- 26.3.6. Zastosowania danych przestrzennych
- 26.4. Zagadnienia z obszaru multimedialnych baz danych
- 26.4.1. Automatyczna analiza obrazów
- 26.4.2. Wykrywanie obiektów na obrazach
- 26.4.3. Semantyczne opisywanie obrazów
- 26.4.4. Analizy danych audio
- 26.5. Wprowadzenie do dedukcyjnych baz danych
- 26.5.1. Przegląd dedukcyjnych baz danych
- 26.5.2. Notacja języków Prolog i Datalog
- 26.5.3. Notacja języka Datalog
- 26.5.4. Forma klauzulowa i klauzule Horna
- 26.5.5. Interpretacja reguł
- 26.5.6. Programy w języku Datalog i ich bezpieczeństwo
- 26.5.7. Zastosowanie operacji relacyjnych
- 26.5.8. Wykonywanie zapytań nierekurencyjnych
- 26.6. Podsumowanie
- Pytania powtórkowe
- Ćwiczenia
- Wybrane publikacje
- 26.1. Wyzwalacze i inne pojęcia związane z aktywnymi bazami danych
- 27. Wprowadzenie do wyszukiwania informacji i danych w internecie
- 27.1. Zagadnienia z obszaru wyszukiwania informacji (WI)
- 27.1.1. Wprowadzenie do wyszukiwania informacji
- 27.1.2. Porównanie baz danych i systemów WI
- 27.1.3. Krótka historia WI
- 27.1.4. Tryby interakcji w systemach WI
- 27.1.5. Ogólny proces WI
- 27.2. Modele wyszukiwania
- 27.2.1. Model logiczny
- 27.2.2. Model oparty na przestrzeni wektorowej
- 27.2.3. Model probabilistyczny
- 27.2.4. Model semantyczny
- 27.3. Typy zapytań w systemach WI
- 27.3.1. Zapytania oparte na słowach kluczowych
- 27.3.2. Zapytania logiczne
- 27.3.3. Zapytania do wyszukiwania fraz
- 27.3.4. Zapytania z określaniem odległości słów
- 27.3.5. Zapytania z symbolami wieloznacznymi
- 27.3.6. Zapytania w języku naturalnym
- 27.4. Wstępne przetwarzanie tekstu
- 27.4.1. Usuwanie słów pomijanych
- 27.4.2. Stemming
- 27.4.3. Korzystanie z tezaurusa
- 27.4.4. Inne etapy przetwarzania: cyfry, myślniki, znaki przestankowe, wielkość znaków
- 27.4.5. Wydobywanie informacji
- 27.5. Indeksy odwrócone
- 27.5.1. Wprowadzenie do systemu Lucene
- 27.6. Miary oceny adekwatności wyników wyszukiwania
- 27.6.1. Czułość i precyzja
- 27.6.2. Średnia precyzja
- 27.6.3. Krzywa czułość/precyzja
- 27.6.4. Miara F
- 27.7. Wyszukiwanie i analizy w sieci WWW[25]
- 27.7.1. Analizy danych internetowych i ich związki z WI
- 27.7.2. Analizy struktury sieci WWW
- 27.7.3. Analizowanie struktury odsyłaczy na stronach internetowych
- 27.7.4. Analizy treści w sieci WWW
- 27.7.5. Podejścia analizowania treści w sieci WWW
- 27.7.6. Analizy użytkowania witryn
- 27.7.7. Praktyczne zastosowania analiz użytkowania witryn
- 27.8. Trendy w wyszukiwaniu informacji
- 27.8.1. Wyszukiwanie fasetowe
- 27.8.2. Wyszukiwanie społecznościowe
- 27.8.3. Wyszukiwanie informacji w dialogach
- 27.8.4. Probabilistyczne modelowanie tematu
- 27.8.5. Systemy odpowiadania na pytania
- 27.9. Podsumowanie
- Pytania powtórkowe
- Wybrane publikacje
- 27.1. Zagadnienia z obszaru wyszukiwania informacji (WI)
- 28. Elementy eksploracji danych
- 28.1. Przegląd technologii eksploracji danych
- 28.1.1. Eksploracja danych kontra hurtownie danych
- 28.1.2. Eksploracja danych jako część procesu odkrywania wiedzy
- 28.1.3. Cele eksploracji danych i odkrywania wiedzy
- 28.1.4. Rodzaje wiedzy odkrywanej w procesie eksploracji danych
- 28.2. Reguły asocjacyjne
- 28.2.1. Model koszyka klienta supermarketu, poziom wsparcia i poziom ufności
- 28.2.2. Algorytm Apriori
- 28.2.3. Algorytm próbkujący
- 28.2.4. Drzewa częstych wzorców i algorytm ich tworzenia
- 28.2.5. Algorytm partycjonujący
- 28.2.6. Pozostałe typy reguł asocjacyjnych
- 28.2.7. Dodatkowe problemy związane z regułami asocjacyjnymi
- 28.3. Klasyfikacja
- 28.4. Grupowanie
- 28.5. Strategie rozwiązywania pozostałych problemów związanych z eksploracją danych
- 28.5.1. Odkrywanie wzorców sekwencyjnych
- 28.5.2. Odkrywanie wzorców w szeregach czasowych
- 28.5.3. Regresja
- 28.5.4. Sieci neuronowe
- 28.5.5. Algorytmy genetyczne
- 28.6. Zastosowania technik eksploracji danych
- 28.7. Komercyjne narzędzia eksploracji danych
- 28.7.1. Interfejs użytkownika
- 28.7.2. Interfejs programowy aplikacji
- 28.7.3. Kierunki przyszłego rozwoju
- 28.8. Podsumowanie
- Pytania powtórkowe
- Ćwiczenia
- Wybrane publikacje
- 28.1. Przegląd technologii eksploracji danych
- 29. Przegląd hurtowni danych i rozwiązań OLAP
- 29.1. Wprowadzenie, definicje i terminologia
- 29.2. Właściwości hurtowni danych
- 29.3. Modelowanie danych dla hurtowni danych
- 29.4. Budowanie hurtowni danych
- 29.5. Typowe funkcje hurtowni danych
- 29.6. Hurtownie danych kontra perspektywy
- 29.7. Trudności z implementowaniem hurtowni danych
- 29.8. Podsumowanie
- Pytania powtórkowe
- Wybrane publikacje
- XII Dodatkowe zagadnienia z obszaru baz danych: bezpieczeństwo
- 30. Bezpieczeństwo w bazach danych
- 30.1. Wprowadzenie do bezpieczeństwa baz danych[1]
- 30.1.1. Rodzaje zabezpieczeń
- 30.1.2. Środki kontroli
- 30.1.3. Bezpieczeństwo a administrator bazy danych
- 30.1.4. Ochrona dostępu, konta użytkowników i audyty bazy danych
- 30.1.5. Dane wrażliwe i typy ujawnień
- 30.1.6. Związki między bezpieczeństwem a prywatnością informacji
- 30.2. Dyspozycyjna kontrola dostępu polegająca na nadawaniu i odbieraniu uprawnień
- 30.2.1. Typy uprawnień dyspozycyjnych
- 30.2.2. Określanie uprawnień przy użyciu perspektyw
- 30.2.3. Cofanie uprawnień
- 30.2.4. Propagacja uprawnień poprzez opcję GRANT
- 30.2.5. Przykład
- 30.2.6. Określanie ograniczeń propagacji uprawnień
- 30.3. Realizacja zabezpieczeń wielopoziomowych za pomocą obowiązkowej kontroli dostępu i zabezpieczeń opartych na rolach
- 30.3.1. Porównanie dyspozycyjnego i obowiązkowego modelu bezpieczeństwa
- 30.3.2. Kontrola dostępu oparta na rolach
- 30.3.3. Zabezpieczenia oparte na etykietach i kontrola dostępu na poziomie wierszy
- 30.3.4. Kontrola dostępu dla danych w formacie XML
- 30.3.5. Polityki kontroli dostępu dla aplikacji sieciowych i mobilnych
- 30.4. Wstrzykiwanie kodu w języku SQL
- 30.4.1. Metody wstrzykiwania kodu w języku SQL
- 30.4.2. Zagrożenia związane ze wstrzykiwaniem kodu w języku SQL
- 30.4.3. Techniki ochrony przed wstrzykiwaniem kodu w języku SQL
- 30.5. Wprowadzenie do bezpieczeństwa statystycznych baz danych
- 30.6. Wprowadzenie do kontroli przepływu
- 30.6.1. Ukryte kanały
- 30.7. Szyfrowanie i infrastruktura klucza publicznego
- 30.7.1. Szyfry DES i AES
- 30.7.2. Algorytmy z kluczem symetrycznym
- 30.7.3. Szyfrowanie kluczem publicznym (asymetrycznym)
- 30.7.4. Podpis cyfrowy
- 30.7.5. Certyfikaty cyfrowe
- 30.8. Problemy z prywatnością i jej zachowywanie
- 30.9. Wyzwania związane z utrzymaniem bezpieczeństwa baz danych
- 30.9.1. Jakość danych
- 30.9.2. Prawa własności intelektualnej
- 30.9.3. Odporność baz danych
- 30.10. Zabezpieczenia oparte na etykietach w bazach Oracle
- 30.10.1. Technologia wirtualnych prywatnych baz danych
- 30.10.2. Architektura zabezpieczeń opartych na etykietach
- 30.10.3. Współdziałanie etykiet danych i etykiet użytkowników
- 30.11. Podsumowanie
- Pytania powtórkowe
- Ćwiczenia
- Wybrane publikacje
- 30.1. Wprowadzenie do bezpieczeństwa baz danych[1]
- Dodatki
- Dodatek A Alternatywne notacje modeli związków encji
- Dodatek B Parametry dysków
- Dodatek C Omówienie języka QBE
- C.1. Podstawowe mechanizmy pobierania danych w języku QBE
- C.2. Grupowanie, agregacje i modyfikacje bazy danych w języku QBE
- Dodatek D Bibliografia
- Skróty używane w bibliografii:
- Format zapisu pozycji w bibliografii
- Publikacje