WYKLAD I - wprowadzenie modele baz danych, Uczelnia, sem V, bazy danych, wyklad Rudnik


Baza danych to zbiór danych o określonej strukturze, zapisany na zewnętrznym nośniku pamięciowym komputera, mogący zaspokoić potrzeby wielu użytkowników korzystających z niego w sposób selektywny w dogodnym dla siebie czasie

(Dolbel C., Adiba M. Relacyjne Bazy danych)

Baza danych składa się z danych oraz programu komputerowego wyspecjalizowanego do gromadzenia i przetwarzania tych danych. Program taki (lub zestaw programów) nazywany jest "Systemem zarządzania bazą danych" - ang. DataBased Management System.

Bazy danych operują głównie na danych tekstowych i liczbowych, lecz większość współczesnych baz umożliwia przechowywanie danych binarnych typu: grafika, muzyka itp.

W potocznym znaczeniu przyjęło się użycie pojęcia Baza danych określając system zarządzania danymi. Jednak w ścisłej nomenklaturze przez bazę danych rozumiemy zbiór danych zarządzany przez system zarządzania danymi. System zarządzania danymi zapewnia metody dostępu do danych.

Bazy danych można podzielić według struktur danych których używają:

  1. Bazy kartotekowe (proste)

  2. Bazy relacyjne (złożone)

  3. Bazy obiektowe

  4. Strumieniowe bazy danych

Można je również podzielić na:

  1. Produkcyjne bazy danych

  2. Bazy danych wspomagające decyzje

  3. Informacyjne bazy danych

Kartotekowa baza danych

Kartotekowa baza danych (lub prosta baza danych) - baza danych złożona z jednej tablicy zawierającej jeden lub wiele rekordów, z których każdy zawiera jedno lub wiele pól.

Każda tablica danych jest samodzielnym dokumentem i nie może współpracować z innymi tablicami, w przeciwieństwie do relacyjnej bazy danych.

Do baz typu kartotekowego zaliczyć można - książka telefoniczna, książka kucharska, spis książek, kaset lub płyt. Wspólną cechą tych baz jest ich zastosowanie w jednym wybranym celu.

Dane w kartotekowych bazach danych można

Kartotekowe bazy danych można tworzyć w dowolnym programie zarządzającym bazami danych czy w arkuszach kalkulacyjnych, a nawet w prostych edytorach tekstów (pliki delimitowane przecinkami lub tabulatorami).

Dedykowane programy do tworzenia tego rodzaju baz są też dołączane do pakietów zintegrowanych, jak Microsoft Works (tani pakiet biurowy firmy Microsoft, będący znacznie uproszczonym odpowiednikiem biurowego zestawu Microsoft Office. Program jest przeznaczony dla domowego użytkownika, ale jest też w stanie obsłużyć potrzeby niewielkiej, zwłaszcza rodzinnej firmy)

Użytkownik może w nich utworzyć nie tylko samą bazę, czyli tabele z danymi, ale i graficzny interfejs użytkownika, definiując położenie pól i dołączając rozmaite elementy uboczne powtarzające się przy przeglądaniu rekordów, jak np. grafikę.

Relacyjna baza danych

Relacyjna baza danych (RDBMS ang. Relational Database Management Systems) — baza danych w której dane są przedstawione w postaci relacyjnej - jako tablice rekordów o identycznej strukturze, oraz relacje między nimi zachodzące. Powoduje to ułatwienie zarządzania bazą danych (w stosunku do tradycyjnego podejścia), ułatwienie wprowadzania zmian, zmieszenie objętości itd.

Większość współczesnych relacyjnych baz danych korzysta z jakiejś wersji języka SQL pozwalającego prowadzić "konwersacje" z motorem (silnikiem) bazy danych, to znaczy zadawać w języku SQL pewnego rodzaju warunki i wyświetlać dane, które je spełniają, a także wykonywać wiele innych i skomplikowanych operacji.

Sukces relacyjnych baz danych leży w istnieniu formalnej matematycznej struktury zwanej rachunkiem relacyjnym, pozwalającym przeprowadzić automatyczne sprawdzanie pewnych konstrukcji, gwarantującym wykonalność pewnych operacji
i spójność zbiorów danych.

Rachunek relacyjny, deklaracyjny, nieproceduralny - jest to model operowania danymi w bazie danych, oparty na logicznym rachunku predykatów.

Wyróżniamy dwie odmiany:

(ang. Structured Query Language)

(ang. Query By Example)

Relacyjne bazy danych (jak również przeznaczony dla nich standard SQL) oparte są na kilku prostych zasadach:

  1. Wszystkie wartości danych oparte są na prostych typach danych.

  2. Wszystkie dane w bazie relacyjnej przedstawiane są
    w formie dwuwymiarowych tabel (w matematycznym żargonie noszących nazwę "relacji"). Każda tabela zawiera zero lub więcej wierszy (w tymże żargonie - "krotki")
    i jedną lub więcej kolumn ("atrybuty"). Na każdy wiersz składają się jednakowo ułożone kolumny wypełnione wartościami, które z kolei w każdym wierszu mogą być inne.

  3. Po wprowadzeniu danych do bazy możliwe jest porównywanie wartości z różnych kolumn, zazwyczaj również z różnych tabel, i scalanie wierszy, gdy pochodzące z nich wartości są zgodne. Umożliwia to wiązanie danych i wykonywanie stosunkowo złożonych operacji w granicach całej bazy danych.

  4. Wszystkie operacje wykonywane są w oparciu o logikę, bez względu na położenie wiersza tabeli. Wiersze w relacyjnej bazie danych przechowywane są w porządku zupełnie dowolnym - nie musi on odzwierciedlać ani kolejności ich wprowadzania, ani kolejności ich przechowywania.

  5. Z braku możliwości identyfikacji wiersza przez jego pozycję pojawia się potrzeba obecności jednej lub więcej kolumn niepowtarzalnych w granicach całej tabeli, pozwalających odnaleźć konkretny wiersz. Kolumny te określa się jako "klucz podstawowy" (primary key) tabeli.

SQL (ang. Structured Query Language) to strukturalny język zapytań używany do tworzenia, modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych. Jest to język programowania opracowany w latach siedemdziesiątych w firmie IBM. Stał się on standardem w komunikacji z serwerami relacyjnych baz danych.

Wiele współczesnych systemów relacyjnych baz danych używa do komunikacji z użytkownikiem SQL, dlatego mówi się, że korzystanie z relacyjnych baz danych, to korzystanie z SQL-a. Pierwszą firmą, która włączyła SQL do swojego produktu komercyjnego, był Oracle.

Składnia SQL

Użycie SQL, zgodnie z jego nazwą, polega na zadawaniu zapytań do bazy danych, wykorzystywane do projektowania i wypełniania bazy danych języki to:

DML

DML służy do operacji na danych - do ich umieszczania w bazie, kasowania, przeglądania, zmiany. Najważniejsze polecenia z tego zbioru to:

DDL

Dzięki DDL natomiast, można operować na strukturach, w których te dane są przechowywane - czyli np. dodawać, zmieniać i kasować tabele lub bazy. Najważeniejsze polecenia tej grupy to:

Przykładowe zapytania

SELECT * FROM pracownicy WHERE pensja > 2000 ORDER BY staz DESC;

Wyświetla z tabeli pracownicy (FROM pracownicy) wszystkie kolumny (*) dotyczące tych pracowników, których pensja jest większa niż 2000 (WHERE pensja > 2000) i sortuje wynik malejąco według stażu pracy (ORDER BY staz DESC).

INSERT INTO pracownicy (imie, nazwisko, pensja, staz) VALUES ('Jan', 'Kowalski', 5500, 1);

Dodaje do tabeli pracownicy (INTO pracownicy) wiersz (rekord) zawierający dane pojedynczego pracownika.

UPDATE pracownicy SET pensja = pensja * 1.1 WHERE staz > 2;

Podnosi o 10% (SET pensja = pensja * 1.1) pensję pracownikom, których staż jest większy niż 2 (np. lata).

DELETE FROM pracownicy WHERE imie = 'Jan' AND nazwisko = 'Kowalski';

Usuwa z tabeli "pracownicy" wiersz (rekord) dotyczący pracownika o imieniu "Jan" i nazwisku "Kowalski".

DROP TABLE pracownicy;

Usuwa z bazy całkowicie tabelę "pracownicy".

ALTER TABLE pracownicy ADD COLUMN dzial varchar(255);

Dodaje do struktury tabeli "pracownicy" kolumnę "dzial" (dział), jako pole tekstowe o długości max. 255 znaków.

Systemy bazodanowe używające SQL

CACHE DB2 FIREBIRD MICROSOFT ACCESS SYBASE ORACLE MySQL POSTGRESQL

Query By Example (QBE) - przyjazna dla użytkownika technika tworzenia zapytań do bazy danych, opracowana pierwotnie przez firmę IBM do użytku w komputerach mainframe, a potem zaadaptowana przez wiele innych systemów informatycznych.

Technika ta polega na wypełnieniu szukanymi ciągami znaków pustego rekordu odpowiadającego dokładnie strukturze rekordów
w bazie, np. "Warszawa" w polu "Miasto" czy "Kowalski" w polu nazwisko. Wynikiem zapytania jest lista wszystkich rekordów zawierających podany ciąg znaków w danym polu.

System QBE dokonuje konwersji z zapytania użytkownika do formalnego zapytania bazy danych. Dzięki temu użytkownik może wykonywać skomplikowane zapytania do bazy danych bez znajomości formalnych metod takich jak Structured Query Language.

Obiektowa baza danych

Obiektowe bazy danych (OBD, bazy danych zorientowane obiektowo) powstały początkowo jako rozwinięcie programowania obiektowego. Bazy danych zorientowane obiektowo przechowują obiekty - zakapsułkowane kombinacje danych o dowolnej strukturze razem ze skojarzonymi metodami (procedurami).

Zalety:

Wady:

Jednym z podstawowych celów modelu obiektowego jest bezpośrednie odwzorowanie obiektów i powiązań między nimi wchodzących w skład aplikacji na zbiór obiektów i powiązań w bazie danych.

Obiektowe bazy danych łączą własności obiektowości i obiektowych języków programowania z możliwościami systemów bazodanowych, a wiec nie tylko przechowywanie danych czy obiektów.

Rozszerzają możliwości obiektowych języków programowania (takich jak C++, Java czy Smalltalk) czyniąc z nich narzędzia do łatwego i efektywnego tworzenia systemów baz danych zmniejszając stopień złożoności i ilość kodu programów dzięki zgodności koncepcyjnej na każdym etapie powstawania produktu.

Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która definiuje programy za pomocą "obiektów" - elementów łączących stan (czyli dane) i zachowanie (czyli procedury, tu: metody).

Obiektowy program komputerowy wyrażony jest jako zbiór takich obiektów, komunikujących się pomiędzy sobą w celu wykonywania zadań.

Podejście to różni się od tradycyjnego programowania proceduralnego, gdzie dane i procedury nie są ze sobą bezpośrednio związane.

Programowanie obiektowe ma ułatwić pisanie, konserwację
i wielokrotne użycie programów lub ich fragmentów.

Model obliczeniowy działa podobnie jak w RDBMS, wciąż możliwe są zapytania deklaratywne, głównym sposobem tworzenia i modyfikacji obiektów jest korzystanie bezpośrednio
z odpowiedniego dla bazy obiektowego języka programowania.

Ponadto tworzone obiekty otrzymują unikalne identyfikatory niezmienne w czasie, które mogą być wykorzystywane przez inne obiekty w celu definiowania powiązań z tymi obiektami.

Strumieniowa baza danych

Strumieniowa baza danych to baza danych, w której dane są przedstawione w postaci zbioru strumieni danych. System zarządzania taką bazą nazywany jest strumieniowym systemem zarządzania danymi (DSMS - ang. Data Stream Management System).

W modelu strumieniowym podstawą rozważań jest strumień danych. Większość strumieniowych baz danych znajduje się w fazach prototypowych i nie powstały dotychczas rozwiązania komercyjne.

Strumieniowe bazy danych z reguły implementują języki ciągłych zapytań opartych na SQLu. (istnieją jednak wyjątki od tej reguły - np. rozwiązania graficzne)

Strumienie danych różnią się od konwencjonalnych danych kilkoma szczegółami:

Istnienie takich ograniczeń nie przekreśla wykorzystania w systemie zarządzania bazą danych konwencjonalnych metod dostępu do danych.

Prowadzane są próby poszerzenia standardu języka SQL o elementy umożliwiające zadawanie zapytań oparte na strumieniach danych.

Model strumieni danych zakłada się, że niektóre lub wszystkie napływające do systemu dane nie są dostępne w dowolnej chwili. Możliwy czas, w jakim można je zarejestrować jest skończony. Dane te pojawiają się w źródle danych i przyjmują postać strumienia danych.

Relacyjne bazy danych są projektowane przy założeniu aktywnej postawy użytkownika. Użytkownik wprowadza informacje i tylko na jego żądanie elementy są wprowadzane do zbioru danych. Tego typu podejście zaowocowało powstaniem rozwiązań opartych na koncepcji pasywnej bazy danych (HADP) (ang. Human Active Database Passive).

W świecie jednak istnieją zjawiska, których próba opisania przy pomocy tej koncepcji prezentacji danych kończy się w praktyce fiaskiem. Katastrofa zazwyczaj następuje w momencie wdrożenia lub pierwszego uruchomienia. Jest to spowodowane nie uwzględnieniem przez projektanta systemu ciągłego i nieograniczonego w czasie, a czasem lawinowego napływu danych.

Dlatego powstała nowa koncepcja realizacji systemu zarządzania danymi. Jest to model oparty na aktywnej bazie danych (DAHP - Database Active Human Passive). Prowadzone badania dotyczą głównie rozwiązań dedykowanych. np. Strumieniowa baza danych biomedycznych.

Produkcyjne bazy danych - stosowane są do zbierania danych operacyjnych lub produkcyjnych.

Wykorzystywane są również do obsługi standartowych funkcji organizacyjnych, dostarczając niezawodne terminowe i sprawdzone dane.

Zasadnicze wykorzystanie takich baz obejmuje tworzenie, odczytywanie, aktualizowanie i usuwanie danych - czasem nazywane CRUD - (create, read, update, delete).

Bazy danych wspomagające decyzje - są one stosowanie jako repozytoria (magazyny) danych służące do wyszukiwania informacji wspomagających proces podejmowania decyzji w przedsiębiorstwie.

Służą jedynie do odczytu danych, są projektowane w celu ułatwienia stosowania narzędzi wyszukiwania lub własnych aplikacji.

Informacyjne bazy danych - są stosowanie w celu dostarczania danych do odbiorców. Są to narzędzia dla poszczególnych użytkowników działających na niektórych DBMS, np. takich jak Access, przeznaczonych dla komputerów osobistych.

Mogą być regularnie aktualizowane, korzystając z baz produkcyjnych lub wspomagających decyzje.

Modele danych

Model danych (a w odniesieniu do konkretnej realizacji mówi się często o architekturze systemu baz danych) można rozumieć jako zbiór ogólnych zasad posługiwania się danymi. Zbiór ten obejmuje trzy główne części:

  1. Definicję danych: zbiór reguł określających strukturę danych, tj. logiczną strukturę bazy danych.

  2. Operowanie danymi: zbiór reguł dotyczących procesu dostępu do danych i ich modyfikacji.

  3. Integralność danych: zbiór reguł określających, które stany bazy danych są poprawne.

Rozróżnia się trzy główne generacje modeli danych:

Proste modele danych.

Dane zorganizowane są w strukturę rekordów zgrupowanych w plikach. Głównymi dostępnymi operacjami są operacje na rekordach (ewentualnie na ich poszczególnych polach).

Klasyczne modele danych.

Należą do nich modele hierarchiczne, sieciowe i relacyjne. Modele relacyjne stanowią najbardziej popularną obecnie podstawę architektur systemów baz danych.

Semantyczne modele danych.

Klasyczne modele danych nie dostarczają łatwego sposobu odczytania informacji o semantyce danych, stąd podejmuje się próby stworzenia innych modeli, uzupełniających ten brak. Przykładem częściowej realizacji tego programu są obiektowe modele danych.

Właściwości baz danych:

Relacyjny model danych - oparty jest na jednej podstawowej strukturze danych-relacji.

Dane w bazie definiowane są w oparciu o struktury danych zapewniane przez model danych.

W relacyjnym modelu danych istnieje tylko jedna struktura danych, nazywana relacją.

Relacją jest tabela, dla której prawdziwe są poniższe zasady:

1. Każda tabela w bazie danych ma jednoznaczna nazwę.

2. Każda kolumna tabeli ma jednoznaczna nazwę w obrębie tej tabeli.

3. Wszystkie wartości w kolumnie są tego samego typu, w każdej tabeli jest przynajmniej jedna kolumna.

4. Nie są dozwolone powtórzenia wierszy w tabeli, każdy wiersz jest rożny, tabela może istnieć bez wierszy.

5. Nie jest dozwolone przechowywanie zbioru wartości na przecięciu kolumny i wiersza tabeli - każdy element danych jest traktowany jako nierozkładalna dana elementarna.

6. Nie jest istotny porządek wierszy tabeli, do rozróżnienia wierszy służą klucze główne, a nie ich kolejność.

7. Nie jest istotny porządek kolumn tabeli.

Dziedzina

Podstawowa jednostka danych przechowywanych w tabeli jest nierozkładalny element danych, wartość przechowywana na przecięciu kolumny i wiersza relacji. Zbiór elementów danych tego samego typu nazywany jest dziedziną.

Inaczej mówiąc dziedzina jest zbiorem wartości, z którego pochodzą elementy danych pojawiające się w kolumnie tabeli.

Klucz główny

Każda relacja posiada przynajmniej jeden klucz, dzięki któremu wiersze w relacji nie powtarzają się i możliwe jest powiązanie ze sobą danych przechowywanych w różnych relacjach, na przykład autorów z ich publikacjami.

Kluczem może być jedna lub wiele kolumn, których wartości jednoznacznie określają wiersz tabeli.

W każdej relacji może istnieć wiele kluczy, które jednoznacznie identyfikują jej wiersze. Nazywane są one kluczami kandydującymi. Każdy klucz kandydujący musi być jednoznacznie określony i nie może mieć wartości null. Ze zbioru kluczy kandydujących wybierany jest klucz główny.

Przy pomocy zbioru ośmiu operacji algebry relacyjnej,
z których każda bierze jako argument jedna lub dwie relacje, zwracając jako wynik jedna relacje, realizowane jest wyszukiwanie danych. Operacje te to kolejno: operacja łączenia, przecięcia, różnicy, iloczynu kartezjańskiego, ograniczenia, projektu, scalania i podziału. Pierwsze cztery są wzorowane na tradycyjnych operatorach teorii zbiorów, następne cztery zaś zostały zaprojektowane na potrzeby manipulacji relacjami.

Algebra relacyjna może być uważana za proceduralny język zapytań modelu relacyjnego. Oznacza to, iż dowolna informacja jaka jest możliwa do uzyskania z relacyjnej bazy danych, może być wydobywa za pomocą ciągu operacji algebry relacyjnej.

Operacja łączenia (ang. union operation), nazywana także operacją sumy, bierze jako argument dwie relacje. Relacja wynikowa zawiera wszystkie wiersze z relacji wejściowych bez powtórzeń. Aby przeprowadzenie tej operacji było możliwe relacje wejściowe muszą mieć identyczną strukturę. Odpowiadające sobie kolumny mogą się od siebie różnić nazwami, muszą natomiast należeć do tych samych dziedzin.

Wynikiem działania operacji przecięcia (ang. intersection operation) jest relacja zawierająca wiersze wspólne dla dwóch wejściowych relacji. Operacja ta działa zatem odwrotnie niż operacja łączenia, która wspólne wiersze odrzuca. I w tym przypadku struktura relacji wejściowych musi być identyczna.

Operacja różnicy (ang. difference operation) bierze jako argument dwie relacje i tworzy relacj wynikową zawierającą wszystkie wiersze z pierwszej relacji wejściowej nie występujące w drugiej. Podobnie jak w przypadku operacji łączenia i przecięcia struktura relacji wejściowych musi być identyczna. Bardzo istotna w przypadku tej operacji jest kolejność podawania relacji wejściowych. Operacja różnicy nie jest przestawna i wynik operacji tylko w wyjątkowych przypadkach będzie taki sam po zamianie argumentów

Operacja iloczynu kartezjańskiego (ang. cartesian product operation) bierze jako argumenty dwie relacje i daje relacje wynikową składającą się ze wszystkich kombinacji wierszy z jednej relacji z wierszami z relacji drugiej. Operacja nie wymaga, aby relacje wejściowe miały identyczne struktury

Operacja ograniczenia (ang. restrict operation), nazywana także operacją selekcji, działa na pojedynczej relacji zwracając relacją zawierająca ograniczoną liczbę wierszy relacji wejściowej, stosownie do warunków, jakie mają spełniać wybrane atrybuty.

Argumentem operacji projektu (ang. project operation), nazywanej także operacją rzutu, jest jedna relacja, wynikiem również jest jedna relacja. Operacja wybiera z relacji zadane kolumny.

Argumentami operacji scalenia (ang. join operation), są dwie relacje o niekoniecznie identycznych strukturach. Dodatkowymi argumentami są nazwy kolumn, po jednej z każdej relacji wejściowej, nazywane kolumnami złączenia. Są to najczęściej odpowiadające sobie klucze główny i obcy relacji wejściowych. Musza to być kolumny, których wartości pochodzą z tej samej dziedziny. Warunek, na podstawie którego łączone są wiersze relacji wejściowych nie musi być warunkiem równości. Operacja złączenia jest w istocie złożeniem operacji iloczynu kartezjańskiego, ograniczenia i projektu.

Operacja podziału jest to kombinacja operacji ograniczenia i projektu. Relacje biorące udział w operacji musza być powiązane przy pomocy klucza obcego. Wynikiem działania operacji podziału (ang. division operation) jest tabela zawierająca te wartości atrybutów z pierwszej relacji wejściowej (dzielnika), które dzielą krotkę z każdą wartością klucza obcego, jaka występuje w kluczu głównym.

W praktyce programowania aplikacji opartych na relacyjnej bazie danych nie korzysta się z reguły z języka proceduralnego, ale z deklaratywnego języka opartego na rachunku relacyjnego. Istnieją dwa równoważne rodzaje rachunku relacyjnego: rachunek relacyjny na krotkach i rachunek relacyjny na dziedzinach. Rachunek relacyjny na krotkach jest podstawą SQL - Structured Query Language, - strukturalny język zapytań, natomiast rachunek relacyjny na dziedzinach podstawą języka QBE - Query By Example, zapytanie przez przykład.

Przez integralność bazy danych rozumiana jest jej zgodność ze stanem fragmentu rzeczywistości jaki reprezentuje.

W relacyjnym modelu danych integralność jest utrzymywana przy pomocy tak zwanych wewnętrznych reguł integralności: integralności encji i integralności referencyjnej.

Reguły te nie wystarczają jednak do zapewnienia integralności w każdym przypadku. Często atrybuty różnych lub tych samych relacji mogą pozostawać we wzajemnej zależności niemożliwej do zdefiniowania przy pomocy mechanizmu kluczy.

Dlatego wprowadzono pojęcie dodatkowych więzów integralności, pozwalających zachować integralność dziedziny, nazywana także niekiedy integralnością semantyczną.

Integralność encji

Jest to reguła mówiąca o tym, ze każda tabela w bazie danych musi mieć klucz główny.

Integralność encji zapewniana jest na etapie definiowania schematu bazy danych poprzez wymóg określenia atrybutu będącego kluczem głównym. Prawidłowo działający system zarządzania bazą danych nie dopuści do złamania tej reguły poprzez powtórzenie wartości atrybutu wybranego na klucz główny.

Integralność referencyjna

Jest to reguła, która określa stany, w jakich może znajdować się wartość klucza obcego.

Dopuszczalne są tylko dwa takie stany: wartość klucza obcego przybiera wartość klucza głównego lub wartość null. Drugi przypadek oznacza, ze związek pomiędzy niektórymi z obiektów reprezentowanych w dwóch powiązanych kluczami relacjach jest nieznany lub takiego związku nie ma. Zachowanie integralności referencyjnej wymaga szczególnej uwagi podczas usuwania
i aktualizacji krotek. Dla każdego związku pomiędzy relacjami w bazie danych konieczne jest zdefiniowanie sposobu postępowania w takim przypadku.

Zmiany ograniczone (ang. restricted)

Nie jest możliwe usuniecie krotki zawierającej wartość klucza głównego ani zmiana tej wartości, jeżeli odwołuje się do niej jakikolwiek klucz obcy.

Zmiany kaskadowe (ang. cascades)

Usuniecie krotki powoduje usuniecie wszystkich krotek w bazie danych odwołujących się do niej poprzez wartość klucza obcego. Podobnie zmiana wartości klucza głównego

Zmiany powodują ustawienie wartości klucza obcego na null (ang. nullifies)

Usuniecie lub zmiana wartości klucza głównego krotki powoduje ustawienie wartości wszystkich kluczy obcych odnoszących się do usuniętej wartości klucza głównego na null.

Jeśli z bazy danych wydawnictwa usuwany jest autor lub zmianie ulega wartość klucza głównego relacji przechowującej informacje o autorach, co dzieje się z napisanymi przez niego książkami?

1. W podanym przykładzie w celu usunięcia z bazy danych autora należy najpierw usunąć z niej jego książki.

2. W tym przypadku w przykładowej bazie danych podczas usuwania danych autora usunięte zostałyby wszystkie książki. Należałoby jeszcze sprawdzić, czy książka nie miała kilku autorów, taka pozycja nie może być usunięta. Jeżeli do klucza głównego relacji przechowującej informacje o książkach odwołują się klucze obce innych relacji, krotki o wartościach klucza obcego odpowiadających wartości klucza głównego usuwanej krotki również zostaną usunięte.

3. Przyjęcie tej metody powoduje, ze usuniecie autora spowoduje pozostawienie informacji o jego książkach w bazie danych, jednak wartość klucza obcego odnoszącego się do klucza głównego w relacji autorów wynosić będzie null.

Integralność semantyczna

Istnieją związki pomiędzy obiektami wymagające zdefiniowania dodatkowych reguł integralności, nazywanych także integralnością dziedziny.

Wymuszanie wartości dziedziny - niektóre atrybuty nie są powiązane ze sobą logicznie, ale są powiązane w rzeczywistości (semantyka - z greckiego znaczenie).

Baza danych służąca przychodni do przechowywania danych o pacjentach.

Przykładem związku, którego nie można odzwierciedlić w bazie danych posługując się integralnością referencyjną może być zależność pomiędzy grupą krwi rodziców i ich dzieci.

Kolejnym przykładem może być niepodważalna reguła, iż data zabiegu czy wizyty któregokolwiek z pacjentów nie może być wcześniejsza od daty jego narodzin.

Jest to oczywiste, ale cóż stałoby na przeszkodzie pomyłkowemu wpisaniu pacjentowi daty wizyty z wieku XVIII gdyby do bazy danych przychodni nie zostały wprowadzone zasady określające z jakiego zakresu może pochodzić data wizyty?

Aby zapobiec nieprawidłowym stanom bazy danych wprowadza się tak zwane ograniczenia (ang. constraints) definiujące dodatkowe więzy pomiędzy obiektami.

Ograniczenia muszą być brane pod uwagę podczas każdej operacji zmieniającej stan bazy danych.

Hierarchiczny model danych

Hierarchiczny model danych jest pewnym rozszerzeniem modelu prostego, opartego na rekordach składających się z pól i zgrupowanych w plikach. W schemacie hierarchicznym wprowadza się typy rekordów i związki nadrzędny-podrzędny pomiędzy nimi.

Definicja danych:

Typ rekordu:

to nazwana struktura danych, złożona ze zbioru nazwanych pól; każde pole służy do zapisu pojedynczego atrybutu obiektu opisywanego przez rekord, i charakteryzuje się określonym typem danych, np. liczba całkowita, napis, data.

Na ogół jedno z pól danego typu rekordu wyróżnia się jako klucz, tj. unikalny identyfikator rekordu wśród rekordów danego typu (często przydzielany dość arbitralnie, podobnie jak np. nr albumu studenta lub nr PESEL w ewidencji ludności) oraz zakłada się uporządkowanie rekordów wg. wartości jednego z pól.


Relacja nadrzędny-podrzędny:

typy rekordów tworzą strukturę drzewa, tj. każdy typ rekordu (z wyjątkiem najwyższego w hierarchii, tzw. korzenia - root) związany jest z dokładnie jednym typem nadrzędnym.

Zarazem każdy określony rekord typu podrzędnego jest związany z określonym rekordem właściwego typu nadrzędnego.

Operowanie danymi:

Typowe operacje na danych w modelu hierarchicznym to wyszukiwanie rekordów określonego typu, podrzędnych względem danego rekordu, i spełniających warunki dotyczące zawartości określonych pól; usuwanie lub dodawanie rekordów i edycja ich pól. Realizowane są poprzez funkcje lub procedury pisane w językach programowania o charakterze zazwyczaj proceduralnym.

Integralność danych

Podstawowe warunki integralności wynikają z samej definicji struktury danych modelu:

Ogólnie: model danych, w którym dopuszczalnymi strukturami danych są hierarchie (drzewa).

Model hierarchiczny był pierwszym modelem danych i wiąże się go prawie wyłącznie z systemem Information Management System firmy IBM, który zakładał, iż rekordy danych składają się z kolekcji innych rekordów.

Przykład prostego modelu hierarchicznego:

Samochód składa się z głównych elementów: konstrukcji, nadwozia i układu napędowego. Każdy z tych komponentów może być podzielony na kolejne fragmenty.

Oparte na modelu hierarchicznym bazy danych pozwalają na zoptymalizowanie przechowywania danych, które umożliwia bardzo efektywne znajdowanie odpowiedzi na określone pytania.

Hierarchiczny model danych używa dwóch struktur danych, którymi są typy rekordów i związki nadrzędny-podrzędny.

Dla modelowania koncepcyjnego model hierarchiczny posiada zasadnicze wady, w szczególności utrudnia reprezentowanie związków semantycznych wiele-do-wielu, oraz zmusza do często sztucznego i zbędnego nawigowania poprzez zapisy pośrednie.

Sieciowy model danych


Sieciowy model danych uważany jest za następcę hierarchicznego modelu danych i w ogólnym zarysie niewiele odbiega od hierarchicznego.

W miejsce związku nadrzędny-podrzędny pomiędzy rekordami wprowadza się w nim tzw. typ kolekcji, który jest złożonym typem danych pola zawierającym odniesienia do innych rekordów określonego typu. Tzn. określenie typu kolekcji polega na podaniu typu rekordu-,,właściciela'' i typu rekordów-elementów kolekcji (oraz ewentualnego klucza porządkowania elementów).

Operowanie danymi ma charakter proceduralny: typowe operacje to wyszukiwanie rekordu na podstawie zawartości pól i/lub przynależności do danego wystąpienia typu kolekcji, i dokonywanie modyfikacji bieżącego rekordu.

Warunki integralności danych, poza oczywistymi już więzami dotyczącymi zgodności zawartości pól rekordu z określeniem typu rekordu i unikalności pól kluczowych, mogą być formułowane w terminach wymogu przynależności rekordu do jakiegoś wystąpienia określonego typu kolekcji.

Sieciowa baza danych może być wykorzystywana do tworzenia skomplikowanych struktur danych zawierających wskaźniki do wielu typów rekordów oraz klucze. Wykorzystanie wskaźników (rekordy zawierają bezpośrednie odwołania do innych rekordów) ułatwia wyszukiwanie danych.

Wadą modelu sieciowego jest kłopotliwe wprowadzanie zmian po zaprojektowaniu bazy danych i wypełnieniu jej danymi. Jest to model mało elastyczny.

Architektura baz danych

Centralna baza danych, w której wszystkie funkcje przetwarzania informacji są wykonywane w komputerze centralnym. Użytkownicy połączeni są za pomocą terminali z komputerem centralnym i mogą wykorzystywać programy uruchamiane na tym komputerze oraz wykonywać operacje na danych zgromadzonych w pamięci masowej tego systemu.

Rozproszona baza danych, która jest zbiorem danych logicznie należących do tego samego systemu, jednakże fizycznie rozmieszczonych w różnych węzłach sieci komputerowej. Dane w tej bazie mają wspólne cechy umożliwiające integrację.



Wyszukiwarka

Podobne podstrony:
WYKŁAD IV - bezpieczenstwo baz danych, Uczelnia, sem V, bazy danych, wyklad Rudnik
WYKŁAD II - działanie ACCESS, Uczelnia, sem V, bazy danych, wyklad Rudnik
WYKŁAD V - projektowanie bazy danych, Uczelnia, sem V, bazy danych, wyklad Rudnik
Wprowadzenie do baz danych, Bazy Danych
mazur & mazur, bazy danych, modele baz danych
Modele Baz Danych 2
BD Wykad 1 Wprowadzenie do baz danych id 8 (2)
Modele baz danych
Modele baz danych
Modele Baz Danych 2
Wprowadzenie do baz danych
Wprowadzenie do baz danych wpbada
Wprowadzenie do baz danych wpbada
BD Wykˆad 1 Wprowadzenie do baz danych
Wprowadzenie do baz danych 2
Wprowadzenie do baz danych wpbada 2
Projektowanie baz danych Wykłady Sem 5, pbd 2006.01.07 wykład03, Podstawy projektowania

więcej podobnych podstron