Wykład 1

Relacyjna baza danych i system zarządzania bazą danych

 

Streszczenie

Wykład wyjaśnia podstawowe pojęcia dziedziny baz danych. W szczególności jest omówiony relacyjny model danych, na którym jest oparta budowa współczesnych, komercyjnych baz danych. Załączona jest także informacja o architekturze klient-serwer używanej w aplikacjach baz danych oraz o historii rozwoju baz danych.

Wykład ten nie wymaga ćwiczeń używających oprogramowania.
 


Baza danych

Podstawowe fakty:

Aspekty systemu informacyjnego

podkreślające jego implementacyjny charakter:

Dlaczego warto interesować się bazami danych?

 


Relacyjny model danych


Relacyjny model danych pojawił się po raz pierwszy w artykule naukowym Edgara Codda w 1970 roku.

W terminologii matematycznej - baza danych jest zbiorem relacji.  Stąd historycznie pochodzi nazwa relacyjny model danych i relacyjna baza danych. W matematyce definiuje się relację jako podzbiór iloczynu kartezjańskiego zbiorów wartości. Reprezentacją relacji jest dwuwymiarowa tabela złożona z kolumn i wierszy. Założenia:

Tabela wykładowców


IdWykładowcy  
 
Imię        Nazwisko       Tytuł           

2137
 
Jan Kowalski Doktor

3245
 
Maciej Jankowski Docent

8976
 
Artur Malinowski Profesor


Tabela przedmiotów


NazwaPrzedmiotu
 
Kod      IdWykładowcy     

Bazy danych
 
BDA
1237
 

Projektowanie systemów informacyjnych 
 
PSI
3245
 

Technologie internetowe
 
TIN
3245
 

Programowanie obiektowe
 
POB
8976
 

Systemy decyzyjne
 
SDE
1237
 

Znaczenie IdWykładowcy w tabeli Przedmiotów: 
  • Jego wartość nie opisuje cechy wykładu. 
  • Reprezentuje związek danego przedmiotu z wykładowcą, o którym informacja znajduje się w innej tabeli i tylko korzystając z identyfikatora możemy rozpoznać w innej tabeli wiersz właściwego wykładowcy i odczytać o nim informacje. 
  • Istotne jest więc, aby identyfikator ten jednoznacznie określał danego wykładowcę - w modelu relacyjnym nie ma innej możliwości identyfikacji wiersza tylko poprzez wartości kolumn, które jednoznacznie identyfikują wiersz.

Klucz główny i jednoznaczny

  • W tabeli Przedmioty kluczem głównym jest KodPrzedmiotu, kluczem alternatywnym jest NazwaPrzedmiotu.
  • W tabeli Wykładowcy kluczem głównym jest IdWykładowcy. Nazwisko nie musi być kluczem!

Ile kluczy głównych może mieć tabela?

Klucz obcy

  • W tabeli Przedmioty kluczem obcym jest IdWykładowcy, którego wartości pochodzą z kolumny IdWykładowcy w tabeli Wykładowcy.
    Na przykład, wartość 1237 występująca w wierszu przedmiotu "Bazy danych" tabeli Przedmioty stanowi odwołanie do wiersza w tabeli Wykładowcy, w którym są zapisane informacje o wykładowcy o nazwisku "Kowalski":

       "Przedmiot Bazy danych jest wykładany przez Jana Kowalskiego"

 

Teraz pytanie:
Ile kluczy obcych może mieć tabela?

 

NULL – "brak wartości"

Operator alternatywy OR

OR      True    False     Null    
True True True True
False True False Null
Null True Null Null

Operator koniunkcji AND

AND      True    False     Null    
True True False Null
False False False False
Null Null False Null

Operator negacji NOT

NOT  True  False  Null 
  False True Null

Czas na krótkie pytanie: 

Czy jest możliwa taka sytuacja, że wartość wyrażenia logicznego jest prawdziwa, mimo że wartość jednego z argumentów jest nieokreślona?

Predykaty Is Null oraz Is Not Null

Teraz krótkie pytanie:
Jaka jest wartość wyrażenia "(Null=Null) Is Null"?

 

Więzy spójności danych

są to warunki poprawności danych w tabelach.

Czas na krótkie pytanie:

Wskaż popularny model danych, w którym nie zawsze są przestrzegane więzy spójności referencyjnej?

 

Perspektywa (view)

- wirtualna tabela, którą posługują się użytkownicy np.

Przedmioty-Wykładowcy:


NazwaPrzedmiotu     
 
Wykładowca    

Bazy danych
 
Kowalski

Projektowanie systemów informacyjnych   
 
Jankowski

Technologie internetowe
 
Jankowski

Programowanie obiektowe
 
Malinowski

Systemy decyzyjne
 
Kowalski

Zawartość zwykłej perspektywy jest na życzenie wyliczana przez system ze źródłowych tabel. Nie jest na stałe zapisywana w bazie danych. W pewnych sytuacjach wygodniej jest zapisać zawartość perspektywy w bazie danych a następnie korzystać z jej „materializacji”. Taki specjalny rodzaj perspektywy nosi nazwę perspektywy zmaterializowanej.

Indeks 

jest to dodatkowa struktura danych umożliwiająca szybki dostęp do wierszy tabeli na podstawie wartości w określonej kolumnie lub kolumnach np. indeks zbudowany na kolumnie Nazwisko umożliwia szybkie wyszukiwanie danych wykładowcy w oparciu o jego nazwisko. Przypomina indeks (skorowidz) w książce.

Poziomy relacyjnej bazy danych

Te same dane w bazie danych mogą być w różny sposób widziane i w różny sposób przetwarzane w zależności od wyboru odpowiedniego poziomu abstrakcji – realizowanego przez dany system. Podstawowe realizowane poziomy abstrakcji to:

Przy czym perspektywy  definiuje się na poziomie logicznym a używa się na poziomie użytkowym; indeksy definiuje się na poziomie logicznym a używa się na poziomie fizycznym. Jeśli chodzi o tabele to definiuje się na poziomie logicznym a używa się zarówno na poziomie użytkowym jak i fizycznym.

Z poziomu użytkowego korzystają głównie końcowi użytkownicy systemu. Z poziomu logicznego korzysta głównie administrator danych systemu. Natomiast z poziomu fizycznego korzysta głównie administrator bazy danych – nazywany w skrócie dba. Oczywiście projektant bazy danych definiuje i zajmuje się wszystkimi trzema poziomami.

Korzystanie z poszczególnych poziomów odbywa się do pewnego stopnia w sposób niezależny. Na przykład, można zmieniać położenie danych na dysku i ich zapis bez potrzeby zmiany struktury logicznej tabel; można zmieniać tabele bez konieczności zmiany programów aplikacyjnych - o ile programy aplikacyjne są oparte na perspektywach a nie tabelach. W pierwszym przypadku mamy do czynienia z tak zwaną niezależnością fizyczną danych, w drugim z niezależnością logiczną danych.

W naszej przykładowej bazie danych aplikacja może polegać na wyświetlaniu informacji, kto prowadzi dany wykład czyli zawartości perspektywy Przedmioty-Wykładowcy. W pewnym momencie może się okazać, że jeden wykład jest prowadzony przez dwóch lub więcej wykładowców. Schemat bazy danych oparty na dwóch tabelach: Wykładowcy i Przedmioty jest już niewystarczający i wymaga dodania nowej tabeli łączącej wykładowców z przedmiotami oraz zmiany definicji perspektywy Przedmioty-Wykładowcy. Są to zmiany realizowane na poziomie logicznym bazy danych. Natomiast sam program aplikacyjny oparty na perspektywie Przedmioty-Wykładowcy nie wymaga zmiany. Jest to przykład zastosowania zasady niezależności logicznej danych.

Z zastosowaniem zasady niezależności fizycznej danych mamy do czynienia w sytuacji, gdy dotychczas używany dysk zapełni się i zajdzie potrzeba dodania nowego dysku. Nowe wiersze wprowadzane do tabel będą teraz zapisywane na nowym dysku. Natomiast ani schematy tabel ani programy aplikacyjne nie wymagają żadnej zmiany.
 

Katalog (słownik danych), metadane

jest to zbiór tabel i perspektyw opisujących schemat bazy danych to jest definicje wszystkich jej obiektów (na każdym z trzech poziomów bazy danych). Na przykład metadaną dotyczącą tabeli jest nazwa kolumny oraz jej typ danych.

Istotne jest użycie relacyjnego modelu danych w tym celu. Zatem metadane są zapisywane i przetwarzane w taki sam sposób jak zwykłe dane.
 

Architektura klient-serwer

Aplikacje bazodanowe składają się zwykle z co najmniej dwóch części:
Funkcje aplikacji po stronie serwera bazy danych
Funkcje aplikacji po stronie klienta

Historia baz danych


Podsumowanie

W wykładzie tym zostały wyjaśnione podstawowe pojęcia związane z bazami danych oraz znaczenie baz danych w aplikacjach informatycznych. W szczególności został przedstawiony główny model danych współczesnych baz danych mianowicie relacyjny model danych a w jego ramach takie pojęcia jak: tabela, klucz, klucz główny, klucz obcy, perspektywa, pseudo-wartość NULL, więzy spójności w tym spójności referencyjnej.


Słownik pojęć

tabela - dwuwymiarowa struktura danych złożona z kolumn i wierszy. Na przecięciu wiersza i kolumny znajduje się elementarna dana. W wierszu jest zapisywany rekord danych opisujący obiekt (np. rekord danych opisujący osobę lub firmę) lub pewien związek między obiektami. Każda kolumna zawiera zbiór elementarnych danych opisujących jeden atrybut obiektu np. nazwę firmy lub nazwisko osoby.

klucz - zbiór kolumn (często jednoelementowy), których wartości jednoznacznie określają wiersz (obiekt).

klucz główny - wyróżniony klucz, którego używa się jako identyfikatora obiektu.

klucz jednoznaczny - to samo co klucz.

klucz obcy - zbiór kolumn (często jednoelementowy), których wartości występują jako wartości ustalonego klucza głównego lub jednoznacznego w tej lub innej tabeli i są interpretowane jako wskaźniki do wierszy w tej drugiej tabeli.

NULL - konstrukcja określająca brak wartości (danych).

perspektywa - wirtualna tabela, którą posługują się użytkownicy - definiowana na poziomie logicznym, używana na poziomie użytkowym. Gdy jej zawartość zostanie zapisana w postaci tabeli, nosi nawę perspektywy zmaterializowanej.

więzy spójności danych - warunki poprawności danych w tabelach relacyjnej bazy danych

---   referencyjne - warunek poprawności danych mówiący, że wartości klucza obcego mogą być albo Null albo muszą występować jako wartości powiązanego z nim klucza głównego (lub jednoznacznego).

 


Zadania

1. Podaj przykład dwóch tabel połączonych związkiem klucz obcy – klucz główny. Określ ich klucze główne. Czy posiadają one klucze alternatywne (jednoznaczne)? Określ jeden (lub więcej) kluczy obcych. Narysuj dwie tabele na kartce papieru i wprowadź do nich po kilka wierszy z zachowaniem więzów spójności referencyjnej.

2. Zastanów się nad znaczeniem danych i informacji w twoim życiu. Czy korzystasz z systemów do przechowywania danych? Czy można je nazwać bazą danych?



Strona przygotowana przez Lecha Banachowskiego - 01/10/04 .