Bazy danych - ściąga 02.doc

(66 KB) Pobierz
SYSTEMY BAZ DANYCH

SYSTEMY BAZ DANYCH

 

Tematy wykładów:

1.      Wprowadzenie do problematyki baz danych

2.      Zarys systemów baz danych ; modele świata rzeczywistego; modele danych

3.      Model sieciowy bazy danych

4.      Model relacyjny baz danych; schemat relacyjny; pojęcie klucza; postaci normalne schematu relacji

5.      Projektowanie schematu relacyjnej bazy danych

6.      Ochrona bazy danych przed niewłaściwym użyciem

7.      Bezpieczeństwo statystycznych baz danych

 

1. W przypadku oprogramowania operującego na zbiorach danych zaprojektowanych specjalnie dla konkretnej aplikacji występuje separacja danych  od opisu ich struktury

Użytkownicy jednej aplikacji z danej dziedziny mogą nie wiedzieć o potencjalnie użytecznych informacjach przechowywanych w sąsiednich aplikacjach

2. Powtarzanie się danych. Te same dane są przechowywane do wykorzystania przez różne programy , powoduje to stratę miejsca oraz możliwość pojawienia się różnych formatów danych , oraz różnych danych opisujących te same obiekty.

Struktura plików z danymi jest zdefiniowana w aplikacji , która z tych danych korzysta. Tym samym z danych tych nie może skorzystać żadna inna aplikacja , która nie ma wbudowanej definicji opisu struktury takiego pliku. W przypadku próby korzystania z obcych danych konieczne jest zaprojektowanie i wykonanie odpowiedniego filtra , który pozwoli na odczyt danych zapisanych w innym formacie. Odmienne struktury plików z danymi mogą być też wynikiem stosowania różnych języków ich tworzenia

3. Wszelkie zmiany struktury danych wymagają zmiany w oprogramowaniu , to z kolei jest źródłem błędów. W praktyce tego typu aplikacje budowane są zawsze do realizacji konkretnych zadań, wszelkie zmiany realizowanych zadań wymagają w praktyce stworzenia nowego oprogramowania.

 

 

Systemy baz danych zawdzięczają swój rozwój temu, że postanowiono zapisywać informacje o strukturze danych wraz  z danymi. Informacje o ramowej strukturze danych zostały ustandaryzowane i umieszczone w aplikacjach utworzonych do tworzenia baz danych. Od tego czasu np. standardem stał się plik o rozszerzeniu *.dbf jako format zapisu baz. W wyniku tego rozwoju powstały bazy danych i systemy baz danych

 

Baza danych – jest współdzielną kolekcją logicznie powiązanych danych, oraz opisu tych danych zaprojektowaną dla realizacji potrzeb przechowywania informacji danej instytucji.

W bazie danych pojawia się szereg nowych pojęć należy do nich:

-          Katalog systemowy – w tym katalogu inaczej zwanym słownikiem lub metadanymi znajduje się opis pozwalający na uniezależnienie się danych od programu, który ma z nich korzystać .

-          Zawartość bazy danych- logicznie powiązane dane zawierają encje, atrybuty i zależności charakterystyczne dla danego zastosowania baz danych

-          Encja- wszystko co może być opisywane przez bazę danych ; mogą to być rzeczy zarówno materialne jak i niematerialne.

-          Atrybut- charakteryzuje cechy abstrakcyjnych obiektów umieszczonych w poszczególnych wierszach relacji(tabeli)

-          Wartość atrybutu-dopuszczalny zbór wartości jakie mogą przyjmować atrybuty ( np. Char(n), Varchar(n) itp.)

 

System zarządzania bazą danych – system oprogramowania umożliwiający użytkownikowi definiowanie , tworzenie i konserwację bazy danych , a także kontrolę nad dostępem do danych.

Języki zarządzania bazą danych:

-          Język DDL – Wykorzystywany do opisu bazy ( date definition language) pozwala na określenie typów danych , struktur i wszelakich ograniczeń nakładanych na dane. Wszystkie te specyfikacje są przechowywane w bazie danych.

-          Język DML- wykorzystywany do manipulowania danymi , tworzy zapytania.

 

Bazy danych , które mają zapewnić kontrolowany dostęp do danych czynią to przy pomocy jednego z następujących narzędzi :

-          System zabezpieczeń – hasło dostępu , udostępnienie tylko części danych , dostęp tylko do statystyki itp.

-          Integralność systemu- m.in. badanie zgodności danych z ograniczeniami na nie nałożonymi

-          Nadzór nad jednoczesnym dostępem do danych

-          System przywracania bazy sprzed awarii

-          Mechanizm perspektywy

 

 

Klasy użytkowników bazy danych ( za M. Muruszkiewiczem i H. Rybińskim):

-          Projektanci - osoby, które na zlecenie przyszłego użytkownika bazy danych dokonują analizy wycinka świata rzeczywistego oraz identyfikują te typy informacji i relacji występujących pomiędzy nimi, które są ważne dla użytkownika. Określają również rodzaj operacji jakie będą wykonywane na danych.

-          Realizatorzy, programiści systemowi, programiści zastosowaniowi – Ich zadaniem jest m.in. opracowanie i wprowadzenie do komputera (implementacja):

-          Schematów danych i ich zapisanie w dostępnym języku opisu schematów

-          Procedur wprowadzania, aktualizacji i usuwania danych

-          Procedur przeglądania i wyszukiwania danych

-          Procedur generowania sprawozdań , raportów i statystyk

-          Procedur wspomagania (Help)

-          Administrator bazy danych- jest to osoba odpowiedzialna za szeroko rozumiany stan bazy. Do zadań administratora należy m.in. : tworzenie i zmiana opisu bazy danych, odwzorowanie opisu w pamięci komputera, udzielenie użytkownikom zezwoleń na dostęp do całej lub części bazy danych oraz zezwoleń na rodzaj wykonywanych operacji na danych , wykonywanie archiwalnych kopii baz danych, przywracanie stanu bazy sprzed awarii itp.

-          Użytkownicy-można ich podzielić na dwie kategorie:

              Użytkownik naiwny- ma niewielką wiedzę na temat bazy danych i sposobów      

              poruszania się w niej ; kontakt z bazą jest sporadyczny.  

             Użytkownik zaawansowany – jest specjalistą w dziedzinie informacji i użytkowania      

              baz , jego wiedza dotyczy przede wszystkim sprawnego nawigowania  w systemie ,

              zwłaszcza wyszukiwania i  przygotowywania sprawozdań i raportów.

Rekundancja – zjawisko polegające na zapisywaniu danych w różnych miejscach (dane mogą być niejednakowo wpisane w różnych miejscach).

Zalety:

-          kontrola spójności danych

-          wiele informacji z tych samych danych (np. grupowanie danych w sieci)

-          współkorzystanie z danych – udostępnienie wielu użytkownikom tych samych danych w tym samym czasie

-          integralność bazy danych

-          polepszone bezpieczeństwo danych ( kopiowanie danych – administrator)

-          ułatwiony dostęp do danych

Wady:

-          koszt baz danych jest z reguły wyższy niż systemów baz danych, wydajność jest gorsza niż dla systemów budowanych dla konkretnych danych

 

Modele świata rzeczywistego

 

Proces przechodzenia od świata rzeczywistego do jego informacyjnej reprezentacji w komputerze nazywamy Modelowaniem świata rzeczywistego. Z punktu widzenia projektanta baz danych , modelowanie rozpoczyna się od :

1.      Wyselekcjonowania typu informacji jakie będą potrzebne użytkownikom bazy , etap ten nazywa się niekiedy konceptualizacją świata rzeczywistego

2.      Zapisania ich w ustrukturalizowanej formie akceptowanej przez komputer . Odnosi się to do utworzenia tzw. „schematu danych” , czyli skonceptualizowanego wycinka w pewnym języku narzuconym przez komputer. Schemat bazy danych musi być zgodny z tzw. „modelem danych”, przez który rozumiemy pewien ustrukturalizowany, dobrze zdefiniowany sposób opisu świata rzeczywistego

3.      wprowadzenie do komputera konkretnych danych odzwierciedlających stan świata rzeczywistego . Etap ten zwykle poprzedzony jest pewnymi operacjami wykonywanymi przez komputer na schemacie w celu utworzenia odpowiadających temu schematowi fizycznych struktur danych , polega na założeniu bazy danych.

Rodzaje modeli świata :

-          model sieciowy – świat opisany jest za pomocą grafów

-          model hierarchiczny – świat opisany jest za pomocą drzew

-          model logiczny – wykorzystywanie logiki do opisu świata

 

ARCHITEKTURA SYSTEMÓW ZARZĄDZANIA BAZAMI DANYCH

 

Dobra baza danych powinna spełniać:

-          wszyscy  użytkownicy powinni mieć dostęp do tych samych danych

-          sposób w jaki użytkownik spostrzega bazę danych nie powinna się zmieniać dlatego , że inaczej widzi ją inny użytkownik

-          użytkownicy bazy danych nie muszą znać żadnych szczegółów w jaki sposób zapisywane są dane

-          poprawnie zaprojektowany system bazy danych oddziela perspektywy widoku bazy danych od jej faktycznego stanu

-          powinna być elastyczna

 

Architektura trójpoziomowa:

1.      Poziom zewnętrzny ( punkt widzenia użytkownika)

2.      Poziom pojęciowy ( model świata zapisanego w bazie danych ) – jakiego rodzaju dane są zapisywane w bazie , jakie są pomiędzy nimi powiązania

3.      Poziom zewnętrzny ( gdzie są informacje, ilość plików , lokalizacja , rodzaj itp.)- fizyczna reprezentacja danych

Rozróżnienie pojęciowej i fizycznej  bazy danych :

Pojęciowa(logiczna) : definicje , perspektywy

Fizyczna : pliki , rekordy

 

ENCJA- każdy przedmiot , zjawisko, stan lub pojęcie – każdy obiekt , który potrafimy (chcemy ) odróżnić od innych obiektów. Każdy obiekt dający się zidentyfikować na podstawie swoich atrybutów

Typy encji:

-          słabe – zależą od istnienia innej encji np. prawo jazdy zależy od tego czy istniej jego właściciel.

-          mocne- nie zależą od innych encji

ATRYBUTY- są to encje wynikające z ich natury, dające się wyrażać liczbami , bądź prostymi określeniami słownymi Atrybuty mogą być proste albo złożone.

Atrybut złożony – to atrybut składający się z wielu niezależnych składników.

KLUCZ:

Klucz kandydujący- to atrybut lub zbiór atrybutów, który jednoznacznie identyfikuje indywidualne wystąpienia encji danego typu.

Klucz główny- każda z encji może mieć wiele kluczy kandydujących ; jeden z nich wybrany przez twórcę bazy danych jest kluczem głównym

Klucz złożony- klucz, który składa się z więcej niż jednego atrybutu.

 

MODEL SIECIOWY

Model sieciowy można rozważać jako model związków encji ograniczonych do związków binarnych typu wiele do jednego. Dwoma zasadnicznymi elementami modelu sieciowego są:

-          Typy rekordów logicznych- są one podobne do zbiorów encji, składają się z nazwy typu i listy atrybutów. Elementami typów rekordów logicznych nazywa się rekordami ; są one odpowiednikiem encji z modelu związków encji.

-          Powiązania- są to binarne związki typu wiele do jeden. Łączą one dwa zbiory encji, jeden typu posiadacz drugi typu uczestnik. Powiązanie jest typu wiele do jeden od typu uczestnik do typu posiadacz, tzn. każdemu rekordowi typu uczestnik odpowiada dokładnie jeden rekord typu posiadacz, a każdemu rekordowi typu posiadacz odpowiada zero, jeden lub więcej rekordów typu uczestnik.

NORMALIZACJA

 

Proces normalizacji: jest to formalna def., która ma na celu aktualizowanie klucza głównego danej relacji i zależności funkcjonalne tej relacji.

Normalizację przechodzi się w szeregu kroków, osiągając kolejne postacie znormalizowane o specyficznych własnościach. W miarę postępu normalizacji format danych staje się coraz bardziej precyzyjny.

Postać nieznormalizowana: to tabela, która zawiera jedną lub więcej powtarzających się grup.

 

Cel normalizacji:

-          uniknięcie anomalii (są to możliwe źródła wad danych, które wynikają z dodawania, usuwania i modyfikacji danych. Pojawienie się anomalii wynika także ze sposobu zapisywania danych)

-          Redundancja danych- pojawienie się tych samych danych w różnych miejscach bazy danych.

Dekompozycja danych:

-          musimy odszukać komplet informacji o krotce wyjściowej korzystając z informacji zawartych w krotce wynikowej

-          dekompozycja oryginalnego  ... – musi zachować informacje o zależnościach między atrybutami.

Zależność funkcjonalna: opisuje związki pomiędzy atrybutami danej relacji.

Przykładem zależności funkcjonalnej jest sytuacja, w której dla relacji R, której elementami są atrybuty A i B, mamy sytuację taką, że atrybut A zależy od atrybutu B w każdym przypadku, to możemy powiedzieć, że atrybut B jest funkcjonalnie zależny od atrybutu B.

R(A,B)  ; A->B

A(pesel) ; B(nazwisko) ;  pesel=>nazwisko

Zależność funkcjonalna obejmuje pojęcie atrybutu, który jest elementem określającym zawartość atrybutu wynikowego lub w miejsce tego jednego elementu może wystąpić grupa elementów. R(A,B,C) ; A,B=>C

 

Postaci normalne:

-          1NF

-          2NF

-          3NF

-          BCNF

-          4NF

-          5NF

 

1NF- postać, w której występują tylko informacje w postaci elementarnej na przecięciu wiersza i kolumny .

Postępowanie przy normalizowaniu 1NF:

-          należy określić klucz główny relacji. Tym kluczem może być jeden lub więcej atrybutów.(klucz kandydujący)

-          należy zidentyfikować grupy powtórzeniowe, które występują jako wartości występujące w kluczu.

-          Należy usunąć powtarzające się grupy poprzez wprowadzenie odpowiednich danych w puste komórki w kolumnach i wierszach lub poprzez powtórzenie danych z kopią klucza.

 

Proces normalizacji rzadko daje w wyniku jedno rozwiązanie. Najczęściej proces normalizacji daje w wyniku wiele różnych schematów relacji z których jeden wybierany jest do budowy bazy danych. W uzasadnionych przypadkach dopuszcza się odstępstwa od postaci normalnych.

 

2NF- oparta jest na pojęciu pełnej zależności funkcjonalnej. Mogą w niej znajdywać się tylko te atrybuty, które są funkcjonalnie zależne.

Pełna zależność funkcjonalna- ma miejsce wtedy jeśli atrybut B jest w pełni funkcjonalnie zależny od zbioru atrybutów A, ale nie jest funkcjonalnie zależny od żadnego z jego podzbiorów.

 

Zbiór identyfikujący relacji- to traki zbiór atrybutów relacji , który jednoznacznie identyfikuje wszystkie klucze(?) tej relacji, a żaden z jego podzbiorów nie ma tej własności.

 

W 2NF relacja jest:

-          także w 1NF

-          każdy atrybut nie wchodzący w skład klucza jest od niego funkcjonalnie zależny.

Tok postępowania przy normalizowaniu 2NF:

-          określić klucz główny dla relacji w 1NF

-          określić zależności funkcjonalne tej relacji

-          jeśli istniej zależność cząstkowa dla klucza głównego to te argumenty należy przenieść do nowo utworzonej relacji wraz z założonymi dla niej wartościami klucza głównego.

W przypadku występowania wielu kluczy kandydujących należy wybrać jeden z nich. Kryterium tego wyboru może być np.: liczba atrybutów wchodzących w skład klucza, tym samym należy wybierać klucze o najmniejszej ilości atrybutów.

Relacje(tabele) należy opatrywać nazwami, nazwy te powinny być adekwatne do zawartości tabeli.

 

3NF – jest oparta na przechodniej zależności funkcjonalnej( zależność, w której atrybut B jest funkcjonalnie zależny od atr. A , atrybut C jest funkcjonalnie zależny od atr. B, ale atrybut C nie zależy od B)

Relacja jest w 3NF wtedy jeśli jest w 1NF i 2NF oraz jeśli żaden atrybut nie wchodzący w skład klucza głównego  nie jest funkcjonalnie zależny od klucza głównego.

Tok postępowania przy przejściu do 3NF:

-          należy określić klucz relacji będącej w 2NF

-          określić zależności funkcjonalne w tej relacji

-          jeśli występują zależności funkcjonalne przechodnie od klucza głównego to należy je usunąć przez przeniesienie ich do nowej relacji wraz z kopią ich klucza.

 

Postać normalna Boyce Codda (BCNF)

Oparta jest na zależnościach funkcjonalnych uwzględniających wszystkie klucze kandydujące danej relacji. Dla relacji, która ma tylko jeden klucz kandydujący 3NF i BCNF są  równoważne. Relacja jest w postaci BCNF ójeśli każdy klucz kandydujący wskazuje w sposób unikalny na  ... wystąpienie danego elementu.

Pogwałcenie wymagań związanych może być sytuacja, w której w danej relacji występuje więcej niż jeden klucz złożony i taka sytuacja w której atrybuty kluczy się przekraczają.

Tok postępowania przy przejściu od 3NF do BCNF:

-          należy określić wszystkie klucze kandydujące w relacji

-          należy określić wszystkie zależności funkcjonalne w danej relacji. Jeśli w danej relacji występują zależności funkcjonalne, których atrybuty kluczowe nie są kluczami kandydującymi relacji to takie zależności funkcjonalne należy przenieść do nowej relacji wraz z kopią atrybutów kluczowych.

 

 

 

4NF – jest związana z pojęciem zależności wielowartościowych.(są to takie zależności pomiędzy atrybuta...

Zgłoś jeśli naruszono regulamin