Details zum E-Book

Wprowadzenie do systemów baz danych. Wydanie VII

Wprowadzenie do systemów baz danych. Wydanie VII

Ramez Elmasri, Shamkant B. Navathe

E-book

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!

  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • Titel: Wprowadzenie do systemów baz danych. Wydanie VII
  • Autor: Ramez Elmasri, Shamkant B. Navathe
  • Originaler Titel: Fundamentals of Database Systems (7th Edition)
  • Übersetzung: Radosław Lesisz, Tomasz Walczak
  • ISBN: 978-83-283-4696-3, 9788328346963
  • Veröffentlichungsdatum: 2019-02-19
  • Format: E-book
  • Artikelkennung: wprsy7
  • Verleger: Helion