Wprowadzenie do systemów baz danych. Wydanie VII - ebook
Wprowadzenie do systemów baz danych. Wydanie VII - ebook
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!
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...
- 19.1. Drzewa zapytań i heurystyki optymalizacji zapytań
Kategoria: | Bazy danych |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-4696-3 |
Rozmiar pliku: | 24 MB |