Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00042 007612 18991620 na godz. na dobę w sumie
Wprowadzenie do systemów baz danych. Wydanie VII - książka
Wprowadzenie do systemów baz danych. Wydanie VII - książka
Autor: , Liczba stron: 1344
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-283-4695-6 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> bazy danych >> sql - programowanie
Porównaj ceny (książka, ebook (-35%), audiobook).

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:

Baza danych? Stosuj tylko najskuteczniejsze rozwiązania!

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

Tytuł oryginału: Fundamentals of Database Systems (7th Edition) Tłumaczenie: Tomasz Walczak z wykorzystaniem fragmentów „Wprowadzenie do systemów baz danych” w przekładzie Bartłomieja Garbacza, Bartłomieja Moczulskiego i Mikołaja Szczepaniaka ISBN: 978-83-283-4695-6 Authorized translation from the English language edition, entitled: FUNDAMENTALS OF DATABASE SYSTEMS, Seventh Edition, ISBN 0133970779; by Ramez Elmasri; and by Shamkant B. Navathe; published by Pearson Education, Inc. Copyright © 2016, 2011, 2007 by Ramez Elmasri and Shamkant B. Navathe. All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from Pearson Education, Inc. Polish language edition published by HELION SA, Copyright © 2019. All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from the Publisher. Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji. Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Autor oraz Helion SA dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Helion SA nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce. Helion SA ul. Kościuszki 1c, 44-100 Gliwice tel. 32 231 22 19, 32 230 98 63 e-mail: helion@helion.pl WWW: http://helion.pl (księgarnia internetowa, katalog książek) Drogi Czytelniku! Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie/wprsy7 Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję. Printed in Poland. • Kup książkę • Poleć książkę • Oceń książkę • Księgarnia internetowa • Lubię to! » Nasza społeczność Spis treści Przedmowa 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 25 33 35 37 38 41 44 45 46 48 49 50 50 50 51 52 52 53 53 55 56 56 57 57 57 58 59 Poleć książkęKup książkę 6 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.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. Architektura systemów baz danych i związane z nimi pojęcia SPIS TREŚCI 59 60 60 61 62 62 63 64 64 65 66 66 67 70 71 72 74 74 76 77 77 80 82 82 85 86 87 87 87 90 90 92 95 96 97 97 69 Poleć książkęKup książkę SPIS TREŚCI 7 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.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. Rozszerzony model związków encji 99 101 103 105 106 107 109 113 114 115 115 118 121 122 123 124 124 125 127 128 129 132 132 136 137 139 140 141 147 149 152 154 154 155 157 157 160 163 164 166 166 169 170 151 Poleć książkęKup książkę III. Relacyjny model danych i SQL 5. Relacyjny model danych i ograniczenia relacyjnych baz danych 8 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 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.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. Podstawy języka SQL 193 195 SPIS TREŚCI 171 173 174 175 176 176 178 179 180 181 188 190 196 197 199 203 203 204 205 206 209 210 212 212 214 215 216 216 217 218 222 225 226 226 229 231 232 233 235 235 236 236 239 241 223 Poleć książkęKup książkę 7. Jeszcze o języku SQL — złożone zapytania, wyzwalacze, perspektywy i modyfikowanie schematów SPIS TREŚCI 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.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.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. Algebra relacyjna i rachunek relacji 257 9 242 244 246 246 247 247 249 250 250 252 252 253 255 257 258 260 262 263 265 266 268 270 273 274 275 277 277 278 280 280 280 282 284 285 285 286 287 289 289 291 295 295 297 299 301 301 303 293 Poleć książkęKup książkę 10 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.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. Projektowanie relacyjnych baz danych przez odwzorowywanie modelu ER i EER w model relacyjny SPIS TREŚCI 305 305 307 309 310 313 314 314 314 316 317 319 320 323 324 325 327 328 329 330 331 333 334 336 338 338 343 346 348 348 355 357 357 360 361 361 362 362 364 365 347 Poleć książkęKup książkę 367 369 IV. Techniki programowania baz danych 10. Wprowadzenie do technik programowania w języku SQL 11 SPIS TREŚCI 10.1. Przegląd technik i zagadnień z obszaru programowania baz danych 370 10.1.1. Strategie programowania baz danych 371 10.1.2. Niezgodność impedancji 372 10.1.3. Typowa sekwencja operacji składających się na interakcję w programowaniu baz danych 373 374 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 375 10.2.2. Przetwarzanie wyników zapytań za pomocą kursorów 379 10.2.3. Określanie zapytań w czasie wykonywania programu — stosowanie dynamicznego języka SQL 381 10.2.4. SQLJ: Osadzanie poleceń języka SQL w języku Java 383 385 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 388 10.3.1. Programowanie baz danych z wykorzystaniem interfejsu SQL/CLI oraz języka C w roli nadrzędnego języka programowania 389 393 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 398 10.4.1. Procedury i funkcje składowane w bazie danych 399 10.4.2. SQL/PSM: Rozszerzenie standardu SQL o możliwość określania trwale składowanych modułów 400 402 10.5. Porównanie trzech opisanych podejść 403 10.6. Podsumowanie Pytania powtórkowe 403 Ćwiczenia 404 Wybrane publikacje 404 406 11.1. Prosty przykład zastosowania PHP 11.2. Przegląd podstawowych mechanizmów języka PHP 408 409 11.2.1. Zmienne, typy danych i konstrukcje programistyczne języka PHP 11.2.2. Tablice w PHP 410 11.2.3. Funkcje w języku PHP 412 11.2.4. Zmienne i formularze serwera PHP 414 11.3. Przegląd programowania baz danych za pomocą PHP 415 415 11.3.1. Nawiązywanie połączenia z bazą danych 11.3.2. Pobieranie danych z formularzy i wstawianie rekordów 417 11.3.3. Zapytania pobierające dane z tabel bazy 418 11.4. Krótki przegląd technologii programowania internetowych baz danych w Javie 419 11.5. Podsumowanie 420 420 Pytania powtórkowe Ćwiczenia 421 Wybrane publikacje 421 11. Programowanie internetowych baz danych z użyciem języka PHP 405 Poleć książkęKup książkę 12 SPIS TREŚCI 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.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. XML — rozszerzalny język znaczników 423 425 427 427 429 430 432 436 438 440 440 443 444 444 445 446 446 447 448 453 454 456 458 460 465 465 466 468 469 470 472 476 478 479 480 481 484 488 491 491 494 499 500 500 502 483 Poleć książkęKup książkę VI. Teoria projektowania baz danych i normalizacja 14. Podstawy zależności funkcyjnych i normalizacji w relacyjnych bazach danych 515 517 13 504 505 505 509 510 511 512 513 513 514 519 519 521 525 526 528 528 529 532 532 533 534 535 539 540 542 542 544 544 545 547 549 549 552 553 555 556 560 560 564 565 569 570 SPIS TREŚCI 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 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 Boyce’a-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.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. Algorytmy projektowania relacyjnych baz danych i dodatkowe zależności 563 Poleć książkęKup książkę 14 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 Boyce’a-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 SPIS TREŚCI 573 573 574 575 577 578 579 579 582 584 584 586 588 588 589 591 592 592 592 593 594 595 595 596 598 598 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 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 601 603 604 605 607 609 609 615 616 617 619 620 622 623 623 624 Poleć książkęKup książkę SPIS TREŚ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.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. Struktury indeksowe dla plików i fizyczne projekty baz danych 15 626 627 627 627 631 632 636 636 639 642 647 647 648 648 650 651 651 653 653 654 655 656 656 657 658 660 663 666 667 670 673 677 677 681 682 687 696 697 697 697 699 699 699 702 703 703 704 705 706 665 Poleć książkęKup książkę VIII. Przetwarzanie i optymalizacja zapytań 18. Strategie przetwarzania zapytań 16 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 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.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. Optymalizacja zapytań 719 721 SPIS TREŚCI 708 708 710 711 713 714 716 724 725 727 729 729 731 733 733 734 735 738 739 741 742 743 744 745 745 746 748 749 750 751 754 754 755 755 756 756 758 758 760 767 767 768 770 772 757 Poleć książkęKup książkę SPIS TREŚCI 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 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 17 775 776 777 778 778 781 783 785 786 787 789 790 792 794 794 795 796 796 796 799 799 799 800 801 801 802 802 803 804 804 805 806 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 809 811 812 812 813 815 818 819 819 821 822 823 824 825 825 827 Poleć książkęKup książkę 18 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.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.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 SPIS TREŚCI 829 830 834 837 839 840 841 843 844 845 846 848 848 853 856 860 860 860 862 863 864 866 866 868 869 869 870 872 874 875 876 876 876 877 878 879 882 882 883 885 887 888 890 890 893 22. Techniki odtwarzania baz danych 21. Techniki sterowania współbieżnego 847 881 Poleć książkęKup książkę X. Rozproszone bazy danych, systemy NOSQL i big data 23. Zagadnienia z obszaru rozproszonych baz danych SPIS TREŚCI 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 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 911 913 19 895 897 901 902 903 904 905 908 914 914 915 916 917 917 917 918 918 921 922 925 925 927 927 928 929 929 930 930 931 931 933 934 937 938 940 940 942 942 944 946 947 948 949 951 Poleć książkęKup książkę 24. Bazy danych NOSQL i systemy składowania big data 955 983 20 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.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 SPIS TREŚCI 955 955 957 959 960 961 962 965 965 967 967 968 971 972 972 974 974 975 975 977 979 980 981 982 986 988 988 989 993 993 994 994 996 997 998 999 999 1002 1006 1008 1009 1009 1012 1015 1017 1017 1019 25. Technologie z obszaru big data oparte na modelu MapReduce i systemie Hadoop Poleć książkęKup książkę SPIS TREŚCI 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 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 21 1021 1022 1023 1024 1026 1027 1028 1031 1033 1035 1035 1039 1042 1044 1044 1045 1046 1048 1053 1055 1057 1058 1058 1059 1060 1062 1063 1065 1065 1067 1068 1069 1069 1070 1070 1071 1073 1074 1075 1077 1081 1081 1083 1085 1086 1089 Poleć książkęKup książkę 27. Wprowadzenie do wyszukiwania informacji i danych w internecie 22 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 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.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. Elementy eksploracji danych 1093 SPIS TREŚCI 1093 1094 1097 1098 1099 1100 1101 1101 1102 1104 1106 1107 1107 1107 1108 1108 1108 1109 1109 1109 1109 1110 1111 1112 1112 1114 1115 1116 1118 1118 1118 1119 1119 1121 1122 1123 1125 1126 1128 1129 1129 1130 1131 1131 1132 1135 1136 1138 1142 1142 1142 1141 Poleć książkęKup książkę SPIS TREŚCI 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.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 29. Przegląd hurtowni danych i rozwiązań OLAP XII. Dodatkowe zagadnienia z obszaru baz danych: bezpieczeństwo 30. Bezpieczeństwo w bazach danych 30.1. Wprowadzenie do bezpieczeństwa baz danych 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 23 1143 1145 1146 1146 1148 1150 1151 1155 1156 1159 1160 1163 1166 1166 1167 1167 1168 1169 1170 1170 1171 1171 1171 1173 1173 1174 1176 1177 1179 1181 1187 1191 1192 1193 1194 1195 1195 1177 1197 1199 1200 1200 1201 1203 1204 1205 1206 Poleć książkęKup książkę 24 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 SPIS TREŚCI 1207 1207 1208 1209 1209 1209 1211 1212 1215 1215 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1228 1228 1230 1230 1231 1232 1232 1232 1233 1233 1234 1234 1235 1236 1237 1239 1239 Dodatki A. Alternatywne notacje modeli związków encji B. Parametry dysków C. Omówienie języka QBE Bibliografia Skorowidz 1241 1243 1247 1251 1259 1319 Poleć książkęKup książkę 2 Architektura systemów baz danych i związane z nimi pojęcia Architektura pakietów systemów zarządzania bazami danych ewoluowała od wczesnych systemów monolitycznych, w których cały pakiet oprogramowania SZBD był ściśle zinte- growanym systemem, do współczesnych pakietów tego typu, które składają się z modułów i są konstruowane w oparciu o model klient-serwer. Widoczny ostatnio wzrost ilości danych wymagających składowania doprowadził do powstania systemów baz danych o architektu- rze rozproszonej, składających się z tysięcy komputerów zarządzających magazynami da- nych. Ewolucja systemów zarządzania bazami danych odzwierciedla pojawiające się w tech- nice komputerowej trendy, które sprawiły, że wielkie scentralizowane komputery zostały zastąpione setkami rozproszonych stacji roboczych i komputerów osobistych połączonych za pośrednictwem sieci komunikacyjnej z serwerami rozmaitych typów — serwerami WWW, serwerami baz danych, serwerami plików, serwerami aplikacji itp. Nowe środowiska chmur obliczeniowych obejmują tysiące dużych serwerów zarządzających tzw. big data na potrzeby użytkowników internetu. W podstawowej architekturze systemu zarządzania bazą danych typu klient-serwer funkcjonalność tego systemu jest dzielona pomiędzy dwa typy modułów1. Moduł klienta jest zwykle projektowany w taki sposób, aby możliwe było jego uruchamianie w urzą- dzeniach mobilnych, na stacjach roboczych lub komputerach osobistych. Moduły klienta są zwykle używane do obsługi aplikacji wykorzystujących bazę danych oraz do udostęp- niania odpowiednich interfejsów. Oznacza to, że tak naprawdę to moduł klienta obsłu- guje działania użytkownika na bazie danych i udostępnia mu przyjazny interfejs — np. aplikację na urządzenia mobilne albo oparty na formularzach lub menu graficzny inter- fejs użytkownika (ang. Graphical User Interface — GUI) w komputerach osobistych. Drugi rodzaj modułów — tzw. moduły serwera — obsługuje zazwyczaj przechowywanie danych, operacje dostępu do danych, operacje przeszukiwania danych i inne, podobne funkcje. Architekturę typu klient-serwer omówimy bardziej szczegółowo w podrozdziale 2.5. Wcze- śniej musimy poświęcić chwilę na przestudiowanie podstawowych zagadnień, które umoż- liwią nam lepsze zrozumienie architektur współczesnych baz danych. W tym rozdziale zaprezentujemy terminologię i podstawowe pojęcia, które będą wykorzy- stywane w książce. Rozpoczniemy (w podrozdziale 2.1) od omówienia modeli danych oraz zdefiniowania pojęć schematów i egzemplarzy, które mają zasadnicze znaczenie pod- czas rozważań na temat systemów baz danych. Następnie, w podrozdziale 2.2 omówimy 1 W podrozdziale 2.5 przekonamy się, że istnieją różne odmiany tej prostej, dwuwarstwowej architektury klient-serwer. Poleć książkęKup książkę 2.1. Modele danych, schematy i egzemplarze 70 ARCHITEKTURA SYSTEMÓW BAZ DANYCH I ZWIĄZANE Z NIMI POJĘCIA trójwarstwową architekturę systemów zarządzania bazami danych (ang. three-schema DBMS) oraz niezależność danych — w ten sposób dojdziemy do problemu oczekiwanych działań systemu zarządzania bazą danych z perspektywy jej użytkownika. W podroz- dziale 2.3 opiszemy typy interfejsów i języków oferowanych przez większość współcze- snych systemów zarządzania bazami danych. Podrozdział 2.4 poświęcono omówieniu śro- dowiska oprogramowania systemu bazy danych. W podrozdziale 2.5 zawarto przegląd rozmaitych typów architektur typu klient-serwer. I wreszcie w podrozdziale 2.6 zapre- zentowaliśmy klasyfikację typów pakietów systemów zarządzania bazami danych. Podroz- dział 2.7 zawiera podsumowanie tego rozdziału. Materiał zawarty w podrozdziałach od 2.4 do 2.6 dotyczy bardziej szczegółowych za- gadnień, które nie muszą być omawiane w trakcie podstawowego kursu wprowadzającego w świat baz danych. Jedną z podstawowych właściwości rozwiązań opartych na bazach danych jest to, że ich użytkownicy korzystają z abstrakcji danych. Abstrakcja danych oznacza ukrywanie szcze- gółów struktury i przechowywania danych oraz podkreślanie najważniejszych ich aspektów, co pozwala lepiej zrozumieć informacje. Jedną z głównych cech podejścia wykorzystującego bazy jest zapewnianie abstrakcji danych, dzięki czemu różni użytkownicy mogą korzystać z nich na preferowanym poziomie szczegółowości. Model danych — czyli zbiór pojęć, któ- re można wykorzystywać do opisywania struktury bazy danych — zapewnia środki nie- zbędne do osiągnięcia oczekiwanego poziomu abstrakcji2. Przez strukturę bazy danych rozumiemy typy danych, związki i ograniczenia dotyczące danych. Większość modeli danych zawiera także zbiór podstawowych operacji, które umożliwiają otrzymywanie i aktualizowanie informacji zawartych w bazie danych. Poza podstawowymi operacjami zdefiniowanymi w modelu danych, coraz bardziej po- pularne staje się dołączanie do tego modelu także elementów określających aspekty dynamiczne i zachowania aplikacji bazodanowych. Dzięki temu projektanci baz da- nych mogą stosunkowo łatwo określać zbiory poprawnych operacji definiowanych przez użytkowników, które będą bez problemów wykonywane na obiektach bazy danych3. Przykładem takich operacji definiowanych przez użytkowników może być procedura OBLICZ_ŚROC, którą można stosować dla obiektów przechowywanych w pliku STUDENT. Z dru- giej strony, uniwersalne operacje wstawiania, usuwania, modyfikowania i odczytywania dowolnych rodzajów obiektów są zwykle dołączane do podstawowych operacji modelu danych. Elementy definiujące zachowania są nie tylko zasadniczym elementem obiektowych 2 Słowo model jest niekiedy wykorzystywane w odniesieniu do konkretnego opisu bazy danych lub do schematu — przykładowo, można się spotkać z wyrażeniem model danych marketingowych. W tej książce nie będziemy używać słowa model w tym znaczeniu. 3 Dołączanie elementów opisujących zachowanie baz danych odzwierciedla kierunek rozwoju systemów tego typu, który przewiduje, że działania związane z projektowaniem baz danych i projektowaniem oprogramowania z czasem zostaną połączone w zbiór tych samych czynności. Określanie zachowania oprogramowania tradycyjnie było elementem projektowania oprogramowania. Poleć książkęKup książkę 2.1.1. Kategorie modeli danych 71 2.1. MODELE DANYCH, SCHEMATY I EGZEMPLARZE modeli danych (patrz rozdział 12.), ale także zostały z powodzeniem wprowadzone do bardziej tradycyjnych modeli danych. Przykładowo, modele obiektowo-relacyjne (patrz rozdział 12.) rozszerzają tradycyjny model relacyjny między innymi o elementy tego typu. W podstawowym modelu relacyjnym możliwe jest dodawanie zachowań do relacji za pomocą trwałych modułów składowanych, nazywanych zwykle procedurami składowa- nymi (patrz rozdział 10.). Istnieje wiele różnych modeli danych, które możemy skategoryzować np. według elemen- tów wykorzystywanych do opisywania struktury bazy danych. Przykładowo, wysokopo- ziomowe i koncepcyjne modele danych opierają się na rozwiązaniach, które są zbliżone do abstrakcyjnego sposobu postrzegania danych przez wielu użytkowników, natomiast ni- skopoziomowe i fizyczne modele danych opierają się na szczegółowych opisach metod przechowywania danych na dysku komputera (zwykle na dyskach magnetycznych). Nisko- poziomowe modele danych są przeznaczone przede wszystkim dla specjalistów w zakresie sprzętu komputerowego, nie dla typowych użytkowników końcowych systemów baz da- nych. Pomiędzy wspomnianą parą skrajnych rozwiązań istnieje klasa reprezentacyjnych (lub implementacyjnych4) modeli danych, które z jednej strony opierają się na poję- ciach zrozumiałych dla przeciętnego użytkownika końcowego, ale jednocześnie nie odbiegają znacząco od sposobu organizowania danych na fizycznym nośniku w komputerze. Repre- zentacyjne modele danych ukrywają co prawda niektóre szczegóły związane z przecho- wywaniem danych, ale mogą być implementowane w systemach komputerowych w spo- sób bezpośredni. Koncepcyjne modele danych opierają się na elementach takich jak encje, atrybuty czy związki. Pojedyncza encja reprezentuje obiekt lub pojęcie z mini-świata (np. pracow- nika lub projekt), które zostało opisane w bazie danych. Atrybut reprezentuje pewną in- teresującą własność, która dodatkowo opisuje daną encję — może to być np. nazwisko lub pensja pracownika. Związek pomiędzy dwoma (lub więcej) encjami reprezentuje łączące je powiązanie — przykładowo, może to być związek pracuje nad, który łączy en- cje reprezentujące pracownika i projekt. W rozdziale 3. zaprezentujemy model związków encji (ang. Entity-Relationship, w skrócie ER), który jest popularnym wysokopoziomo- wym koncepcyjnym modelem danych. W rozdziale 4. omówimy dodatkowe elementy charakterystyczne dla koncepcyjnego modelowania danych, w tym generalizację, specjali- zację oraz kategorie (typy unii). W tradycyjnych, komercyjnych systemach zarządzania bazami danych wykorzystuje się najczęściej reprezentacyjne lub implementacyjne modele danych. Takie modele obej- mują zarówno popularny obecnie relacyjny model danych, jak i bardziej tradycyjne, sie- ciowe i hierarchiczne modele danych, które były powszechnie stosowane w przeszło- ści. Część 3. tej książki poświęcono relacyjnemu modelowi danych, charakterystycznym dla niego operacjom i językom, a także niektórym technikom programowania aplikacji operujących na relacyjnych bazach danych. Standard języka SQL dla relacyjnych baz da- nych opisano w rozdziałach 6. i 7. Reprezentacyjne modele danych reprezentują dane za 4 Określenie implementacyjny model danych nie jest standardowym pojęciem. Wprowadziliśmy je tutaj na potrzeby opisu modeli danych dostępnych w komercyjnych systemach bazodanowych. Poleć książkęKup książkę 72 ARCHITEKTURA SYSTEMÓW BAZ DANYCH I ZWIĄZANE Z NIMI POJĘCIA pomocą struktur rekordów, stąd czasami są nazywane modelami danych opartymi na rekordach. Obiektowe modele danych należy traktować jak zupełnie nową rodzinę wysokopo- ziomowych implementacyjnych modeli danych, które są nieco bliższe koncepcyjnym modelom danych. Ogólne właściwości obiektowych baz danych i standardu ODMG (ang. Object Data Management Group) zaproponowanego przez grupę o tej samej nazwie omówimy w rozdziale 12. Obiektowe modele danych są często wykorzystywane także w roli wysokopoziomowych modeli koncepcyjnych (w szczególności dotyczy to dziedziny inżynierii oprogramowania). Fizyczne modele danych opisują sposób przechowywania danych na komputerze w postaci plików, zatem reprezentują takie informacje jak formaty rekordów, uporządko- wanie rekordów czy ścieżki dostępu. Ścieżka dostępu jest strukturą, która zwiększa efektywność operacji przeglądania bazy danych w poszukiwaniu konkretnych rekordów (np. dzięki indeksowaniu lub mieszaniu). Techniki fizycznego przechowywania danych i struktury dostępowe omówimy w rozdziałach 16. i 17. Indeks to przykładowa ścieżka umożliwiająca bezpośredni dostęp do danych za pomocą pojęcia z indeksu lub słowa klu- czowego. Taka struktura przypomina indeks z końcowej części tej książki, przy czym może być uporządkowana liniowo, hierarchicznie (za pomocą struktury drzewiastej) lub w jesz- cze inny sposób. Inną kategorią są samoopisujące się modele danych. W systemach opartych na takich modelach opis danych jest połączony z ich wartościami. W tradycyjnych systemach SZBD opis (schemat) jest oddzielony od danych. Modele z tej kategorii to XML (rozdział 12.), a także liczne magazyny danych typu klucz-wartość i systemy NOSQL (rozdział 24.), opracowane ostatnio na potrzeby zarządzania big data. W każdym modelu danych bardzo ważne jest rozróżnienie opisu bazy danych od samej bazy danych. Opis bazy danych jest najczęściej nazywany schematem bazy danych — w założe- niu taki schemat powstaje podczas projektowania bazy danych i nie powinien ulegać czę- stym zmianom5. W większości modeli danych istnieją pewne konwencje prezentowania schematów w postaci diagramów. Graficzna prezentacja schematu jest nazywana diagra- mem schematu. Na rysunku 2.1 zademonstrowano diagram schematu dla bazy danych zaprezentowanej w poprzednim rozdziale na rysunku 1.2 — diagram przedstawia jedy- nie strukturę poszczególnych typów rekordów, zatem nie obejmuje rzeczywistych egzem- plarzy tych rekordów. Każdy obiekt w tego typu schemacie (np. STUDENT lub PRZEDMIOT) nazywamy konstrukcją schematu. Diagram schematu przedstawia tylko niektóre aspekty reprezentowanego schematu ba- zy danych, w tym nazwy typów rekordów i elementów danych oraz niektóre rodzaje ograniczeń. Pozostałe aspekty schematu bazy danych w ogóle nie są wyrażane na tego 5 Zmiany schematów baz danych są często nieuniknione w przypadku zmian wymagań leżących u podstaw danego rozwiązania. Nowsze systemy baz danych oferują nawet specjalne operacje stworzone z myślą o modyfikowaniu schematów. 2.1.2. Schematy, egzemplarze i stany baz danych Poleć książkęKup książkę 73 2.1. MODELE DANYCH, SCHEMATY I EGZEMPLARZE typu diagramach; przykładowo, na rysunku 2.1 nie są widoczne ani typy danych poszcze- gólnych elementów danych, ani związki łączące poszczególne pliki. Na diagramach schema- tów nie jest reprezentowanych wiele typów ograniczeń. Warto pamiętać, że ogranicze- nia w postaci „studenci informatyki muszą zdać egzamin z przedmiotu INF1310 zanim zostanie im zaliczony drugi rok” są dosyć trudne do reprezentowania w postaci graficznej. RYSUNEK 2.1. Diagram schematu dla bazy danych przedstawionej na rysunku 1.2 Rzeczywiste informacje przechowywane w bazie danych mogą się dosyć często zmie- niać. Przykładowo, zawartość bazy danych zaprezentowanej na rysunku 1.2 zmienia się za każdym razem, gdy dodajemy nowego studenta lub wpisujemy nową ocenę dla istniejącego studenta. Informacje przechowywane w bazie danych w konkretnym momencie czasu są nazywane stanem bazy danych lub migawką bazy danych (snapshotem). Stan bazy da- nych jest także nazywany bieżącym zbiorem zawartych w niej wystąpień lub egzem- plarzy. W danym stanie bazy danych każda konstrukcja schematu musi zawierać wła- sny bieżący zbiór wystąpień; przykładowo, konstrukcja STUDENT będzie zawierała zbiór encji (rekordów) reprezentujących pojedynczych studentów, który będzie stanowił jej eg- zemplarze. Wiele stanów baz danych można konstruować w taki sposób, aby odpowiadały konkretnym schematom baz danych. Za każdym razem, gdy dodajemy lub usuwamy re- kord albo przynajmniej zmieniamy wartość elementu danych w istniejącym rekordzie, zmieniamy stan bazy danych — a więc wprowadzamy bazę danych w nowy stan. Rozróżnien
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Wprowadzenie do systemów baz danych. Wydanie VII
Autor:
,

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: