Bazy.docx

(41 KB) Pobierz

1.       Podstawowe pojęcia baz danych: Obszar analizy, baza danych, Integralność bazy danych, Więzy integralności, Modele danych:

Obszar analizy (OA Universe of Discourse) – wycinek rzeczywistości, podlegający opisowi przez bazę danych (system baz danych)

Przykład

rezerwacja biletów lotniczych,

jakie dane będą istotne z punktu widzenia użytkowników bazy danych?

np. skąd , dokąd , data i godzina wylotu, data i godzina przylotu, linie lotnicze, rodzaj samolotu itp.

Oczywiście mogą w obszarze analizy występować dane nieistotne dla bazy danych. (zależy jaki zakres należy uwzględnić w bazie) np. jakie dania są w barze na lotnisku.

Baza danych – zbiór logicznie uporządkowanych,trwałych  danych reprezentujących dany obszar analizy . W bazie danych mamy do czynienia z faktami, które mają miejsce.

Integralność bazy danych – baza jest dokładnym odbiciem OA, który opisuje. Integralność oznacza, że wszystkie stany bazy danych są poprawne (w danym czasie)

Więzy integralności – rozumiemy takie reguły określające w jaki sposób baza danych powinna opisywać OA i przechodzić tylko przez stany poprawne:

- statyczne – sprawdzają czy dane transakcje nie wprowadziły bazy do stanu niepoprawnego

- przejść – reguły wiążące ze sobą stany bazy danych

 

Funkcje bazy danych:

- aktualizujące – zamieniają jeden stan w drugi (np. utwórz nowy dział, usuń pracownika z bazy). Funkcje aktualizujące są związane z więzami integralności

- zapytań – sprawdzanie stanu bazy danych (kwerendy pytające).

 

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:

a) definicja danych (model danych) - zbiór reguł określających strukturę danych

czyli logiczną strukturę bazy danych (w odróżnieniu od niższego poziomu organizacji zapisu stosowanego wewnętrznie przez jądro bazy danych);

b) operowanie danymi - zbiór reguł dotyczących procesu dostępu do danych i

ich modyfikacji;

c) integralność danych - zbiór reguł określających, które stany bazy danych

są poprawne (awięc jakie operacje prowadzące do modyfikacji danych są dozwolone).

Rozróżnia się trzy główne typy (lub generacje) modeli danych:

1. Proste modele danych(płaskie bazy danych), gdzie dane są zorganizowane

w strukturę rekordów zgrupowanych w plikach. Głównymi dostępnymi

operacjami są operacje na rekordach (ewentualnie na ich poszczególnych

polach).

2. Klasyczne modele danych,do których należą modele hierarchiczne, sieciowe

i relacyjne.

3. Semantyczne modele danych (semantyka to inaczej znaczenie) - ponieważ

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, obiektowo-relacyjne i dedukcyjne modele danych

2.       System zarządzania bazą danych SZBD, funkcje SZBD

System zarządzania bazą danych SZDB (DBMS – Database Management System) – zorganizowany zbiór narzędzi umożliwiający dostęp i zarządzanie do jednej lub więcej baz danych.

Funkcje DMBS:

1.       Zarządzanie zbiorami danych

a)       dodawanie nowych zbiorów

b)       usuwanie zbiorów

c)       modyfikowanie struktury zbioru

d)       wstawianie danych

e)       aktualizowanie danych

f)        usuwanie danych

2.       Wyszukiwanie informacji

3.       Zarządzanie bazą

a)       tworzenie i monitorowanie użytkowników

b)       ograniczanie dostępu do plików

c)       monitorowanie działania bazy danych
 

3.       Architektura systemu baz danych

Według ANSI/SPARC (Study Group on DataBase Management Systems), architekturę systemu można podzielić na trzy poziomy:

1.      zewnętrzny – użytkownicy baz danych

2.      wewnętrzny – fizyczna pamięć

3.      pojęciowy – pomiędzy 1 a 2


Poziom zewnętrzny – poziom indywidualnego użytkownika;

-         programowanie

-         użytkownicy

-         administrator bazy danych (DBA)

 

Podjęzyk danych (DSL – Data SubLanguage) (np. SQL)

-         język definiujący dane (DDL – Data Definition Language)

-         język manipulowania danymi (DML – Data Modification Language)

Poziom pojęciowy – reprezentacja zawartości informacyjnej bazy danych

-         reguły integralności

-         reguły bezpieczeństwa

 

Poziom wewnętrzny – oddalony od fizycznego

-         typy zachowań rekordów

-         indeksy

4.       Diagram związków encji, Rodzaje związków, Klucze encji, Encje słabe, Encje typu isa

Modelowanie danych

Diagram Związków encji

Zbiór encji – to zbiór obiektów o podobnych właściwościach

Przykłady:

Zbiór książek w bibliotece, Zbiór studentów uczelni,  Pokoje w instytucji, itd.

Pojedynczy obiekt z tego zbioru nazywamy wystąpieniem encji.

(Chen)

Wszystkie encje w zbiorze encji powinny się różnić. Musza istnieć atrybuty których wartości pozwolą odróżniać encje.

Zbiór atrybutów pozwalający zidentyfikować każdą encję nazywamy kluczem encji.

Związki encji

o      Opisują połączenia pomiędzy encjami

o      Powiązane dwie lub więcej encji

Cechy:

o      Liczebność (unarny - rekursywny, binarny, tetrarny, n-arny)

o      Istnienie (opcjonalny, obowiązkowy)

o      Karynalność

n       1:1 – jeden do jednego

n       1:M – jeden do wielu

n       N:M – wiele do wielu


Słabe encje:

o      Atrybuty klucza wybierane z innego zbioru encji

o      Oznaczane przez podwójne linie

o      Przyczyny

n       Hierarchiczny układ zbiorów encji

n       Zbiory łączące eliminujące związki wieloargumentowe

Słabe encje to szczególny typ encji, których klucze składają się (przynajmniej częściowo) z atrybutów kluczowych innych encji. Jeśli encja jest słaba, to pomiędzy zbiorem encji, których klucze wykorzystywane są w jej kluczu, a zbiorem do którego on należy, musi zachodzić związek, którego krotność po stronie przeciwnej słabej encji, wynosi dokładnie jeden. W przeciwnym bowiem razie, mogłaby wystąpić sytuacja, w której słaba encja nie posiadałaby jednoznacznego identyfikatora.

Słabe encje reprezentowane są za pomocą prostokątów z podwójną ramką:

Relacja isa (“X is a Y”), występuje pomiędzy zbiorami encji, spośród których jeden może być określony jako specjalizacja drugiego. Tzn. każda encja należąca do pierwszego zbioru posiada wszystkie cechy encji należących do zbioru drugiego, ale ponadto posiada pewne cechy specyficzne. Przez cechy rozumie się tutaj nie tylko atrybuty, ale również wszystkie związki w jakie wchodzi dany zbiór encji.

Na diagramach ERD relacja isa oznaczana jest za pomocą trójkąta, wewnątrz którego znajduje się napis “Isa”: 

5.     Relacyjny model danych, Podstawowe własności, klucz główny, klucz obcy, algebra relacji

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:

·         Liczba kolumn jest z góry ustalona.

·         Z każdą kolumną jest związana jej nazwa oraz dziedzina, określająca zbiór wartości, jakie mogą wystąpić w kolumnie.

·         Na przecięciu wiersza i kolumny znajduje się pojedyncza (atomowa) wartość należąca do dziedziny kolumny.

·         Wiersz reprezentuje jeden rekord informacji np. osobę.

·         W modelu relacyjnym abstrahujemy od kolejności wierszy (rekordów) i kolumn (pól w rekordzie).

Klucz główny i jednoznaczny

·         Dla każdej tabeli musi być określony jednoznaczny identyfikator nazywany kluczem głównym - jedna lub więcej kolumn, w których wartości jednoznacznie identyfikują cały wiersz.

·         Klucz jednoznaczny (nazywany też kluczem alternatywnym lub w skrócie kluczem) ma tę samą własność co klucz główny przy czym klucz główny jest tylko jeden, kluczy jednoznacznych w tabeli może być więcej niż jeden.

Klucz obcy

·         Klucz obcy jest to jedna lub więcej kolumn, 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.

Algebra relacji to zbiór operatorów, które służą do manipulacji relacjami. Rezultatem działania, jak również argumentami tych operatorów są relacje. Operatory te można podzielić na dwie grupy: operacje na zbiorach oraz operatory zaprojektowane dla modelu relacyjnego

Operacje na zbiorach:

·                     Suma dwóch relacji tego samego typu

·                     Różnica dwóch relacji tego samego typu

·                     Iloczyn kartezjański dwóch relacji

Operacje dedykowane dla modelu

·                     Selekcja – rodzina operatorów parametryzowanych warunkiem logicznym. Jako argument przyjmuje relację, na wyjściu zwraca relację zawierającą tylko te krotki, dla których warunek logiczny był prawdziwy. Przykładowym operatorem selekcji jest \sigma _{pensja > 300}(r)

·                     Projekcja (rzutowanie) – rodzina operatorów parametryzowanych ciągiem indeksów, bądź ciągiem nazw atrybutów. Krotki wynikowej relacji powstają poprzez rzutowanie oryginalnych krotek na podany ciąg. Przykładowym operatorem projekcji jest \pi _{imie,nazwisko}(r)

·                     Przemianowanie – rodzina operatorów parametryzowanych parą atrybutów (A,B), gdzie oba atrybuty mają tą samą dziedzinę. Operator ten zamienia nazwę atrybutu A na B w wynikowej relacji. Przykładowym operatorem może być \delta _{Zarobki \rightarrow Pensja}(r)

·                     Złączenie – może być zdefiniowane przy użyciu złożenia operatorów iloczynu kartezjańskiego, selekcji i projekcji. Ten operator przyjmuje jako argumenty dwie relacje r(X) i s(Y). W wyniku powstaje relacja v(XY). Dla każdej pary krotek (po jednej z każdej wejściowej relacji), które mają te same wartości dla wspólnych atrybutów, powstaje krotka nowej relacji poprzez dołączenie do pierwszej krotki wartości drugiej krotki. Notacja przykładowa:

dane(<Pesel, Imie, Nazwisko>) \bowtie oceny(<Pesel, Przedmiot, Ocena>) = dane_oceny(<Pesel, Imie...

Zgłoś jeśli naruszono regulamin