Projektowanie baz danych - Tadeusz Jeleniewski - str.85.pdf

(3662 KB) Pobierz
129464584 UNPDF
USM - Tadeusz Jeleniewski – Projektowanie baz danych / W 1
1 z 13
Wykład 1
Litaratura
Wprowadzenie
Podstawowe pojęcia
Proces projektowania systemów baz danych
Konstrukcja modelu konceptualnego bazy danych
Relacyjny model n-członowy
Zależność funkcyjna i klucz relacji
Schematy relacji
Kurs obejmuje podstawy teoretyczne relacyjnych baz danych oraz podstawy,
metody i narzędzia projektowania systemów baz danych ze szczególnym
uwzględnieniem systemów klient/serwer. Ćwiczenia laboratoryjne są
przeznaczone na praktyczne zapoznanie się z narzędziami wspomagającymi
projektowanie i budowę systemów relacyjnych baz danych.
Literatura
Ullman J.D., Widom J. – Podstawowy wykład z systemów baz danych, WN - T, Warszawa,
1999
Date C.J. – Wprowadzenie do systemów baz danych, WN – T, Warszawa, 2000
Pankowski T. - Podstawy baz danych. Państwowe Wydawnictwo Naukowe, Warszawa, 1992
Date C.J., Darwen H. – SQL. Omówienie standardu języka, WN – T, Warszawa, 2000
Celko J. – SQL – zaawansowane techniki programowania, wyd. Mikom, Warszawa 1999
Beynon – Davies P. - Systemy baz danych. WN – T, Warszawa 1998
Henderson K. – Bazy danych w architekturze klient/serwer. Wydawnictwo Robomatic,
Wrocław, 1998,
Reisdorph K., Henderson K. – C++ Builder. Wydawnictwo Helion, Gliwice, 1998,
Chałon M. – Systemy baz danych. Wprowadzenie, Oficyna Wydawnicza Politechniki
Wrocławskiej, Wrocław, 2001
aktualizowanie zawartych w niej informacji.
Aktualnie trudno byłoby znaleźć dobrze funkcjonujące przedsiębiorstwo, które nie
korzystało by z systemów baz danych. Dobrze zaprojektowany system bazy danych jest
jedynym sposobem gwarantującym szybkość i elastyczność dostępu do informacji oraz jej
wiarygodność.
W bazie danych są zapisywane informacje o faktach i zdarzeniach dotyczących
pewnego wycinka rzeczywistości, po to, aby możliwe było ich odtworzenie i analiza w
dowolnej chwili. Poprawne i efektywne działanie na bazie danych zależy od właściwej
E:\VARIA\USM-lato-2003\WYKLAD1\WYKLAD_1.DOC
Wprowadzenie
Pojęcie baza danych pojawia się ostatnio coraz częściej w różnych kontekstach, często
w luźny sposób związanych z informatyką i jej zastosowaniami. Najbardziej ogólna definicja
bazy danych wg C.Delobel’a i M.Adib’y brzmi:
„Bazą danych nazywamy 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”.
System bazy danych to baza danych wraz ze środkami programowymi umożliwiającymi
współbieżne operowanie na niej - w szczególności współbieżne wyszukiwanie i
129464584.003.png
USM - Tadeusz Jeleniewski – Projektowanie baz danych / W 1
2 z 13
interpretacji zawartych w niej informacji. Wymaga to wiernego i pełnego opisu semantyki
modelowanego wycinka świata rzeczywistego. W systemach baz danych narzędziem opisu
semantyki odwzorowywanego fragmentu świata rzeczywistego jest model danych. Terminem
tym określa się zbiór abstrakcyjnych pojęć umożliwiających reprezentację określonych
własności tego świata. Zbiór tych pojęć użyty do opisu własności konkretnego fragmentu
świata rzeczywistego, istotnych z punktu widzenia danego zastosowania jest schematem bazy
danych.
Istnieje wiele rożnych modeli danych. Ze względu na poziom abstrakcji można je
podzielić na dwie grupy:
Modele konceptualne - najbardziej zbliżone do sposobu analizy modelowanej
rzeczywistości, jej obiektów i zależności między nimi, wykonywanej przez projektanta bazy
danych. Najczęściej stosowanym modelem konceptualnym jest model związków i encji
(encja, z ang. entity - jednostka, element). W modelu tym podstawowymi pojęciami są encje,
atrybuty i związki.
Modele implementacyjne , które służą do reprezentacji określonych na poziomie
modelowania konceptualnego encji, atrybutów i związków w konkretnym systemie bazy
danych. Najczęściej obecnie stosowanym modelem implementacyjnym w komercyjnych
systemach baz danych (Oracle, Ingres, Sybase, Progress, Isis, Informix, dBase4 i in.) jest
model relacyjny.
Pojawienie się tanich i efektywnych graficznych stacji roboczych spowodowało
wzrost zainteresowania nowymi zastosowaniami systemów baz danych w systemach
komputerowego wspomagania projektowania i zarządzania, komputerowego wspomagania
inżynierii oprogramowania (metoda CASE), systemach informacji biurowej i w systemach
ekspertowych. Zastosowania te wymagają znacznie bardziej skomplikowanych struktur
danych niż relacyjne. Konieczne jest pamiętanie nie tylko informacji w postaci tekstu, ale
obrazów o dużej rozdzielczości, rysunków, dźwięków, efektów animacji, itp. W wyniku
poszukiwań nowych modeli danych pojawiły się na rynku obiektowe bazy danych, lada dzień
ukażą się systemy, w których wykorzystano dedukcyjny model danych.
Podstawowe pojęcia
Baza danych jest logicznie spójnym zbiorem danych posiadających określone
znaczenie. Spójność logiczna danych w bazie należy rozumieć jako wierność odwzorowania
modelowanego fragmentu rzeczywistości. Przykładowo - baza danych, w której są
ewidencjonowani pracownicy przedsiębiorstwa nie może zawierać informacji o osobach,
które w danym przedsiębiorstwie nie pracują.
Baza danych jest projektowana, budowana i zapełniana danymi dla określonego celu.
Każda baza danych ma określoną grupę użytkowników. Użytkownikami bazy danych mogą
być określone grupy pracowników przedsiębiorstwa, mogą być nimi również procesy (proces
to najogólniej wykonywany aktualnie program). Projektanci bazy stanowią szczególną grupę
jej użytkowników. Definiują oni strukturę bazy oraz opracowują programy umożliwiające
korzystanie z bazy danych (aplikacje bazy danych). Poprawnie zaprojektowana baza danych
jest najpierw wypełniana danymi, a następnie przetwarzana. Wypełnianie bazy danymi i ich
przetwarzanie wymaga istnienia odpowiednich środków sprzętowych i programowych. Grupy
użytkowników wypełniających bazę danymi i przetwarzających te dane mogą być rozłączne.
Coraz częściej projektanci baz danych muszą zapewnić jednoczesny dostęp do bazy więcej
niż jednemu użytkownikowi.
System zarządzania bazą danych (SZBD), często mylnie utożsamiany z bazą
danych to zbiór programów umożliwiających tworzenie i eksploatację bazy danych.
Oprogramowanie SZBD ułatwia definiowanie, konstruowanie, i przetwarzanie bazy.
Definiowanie bazy danych polega na specyfikacji typów danych przechowywanych w niej.
Konstruowanie bazy danych sprowadza się do zapamiętania danych na nośniku
E:\VARIA\USM-lato-2003\WYKLAD1\WYKLAD_1.DOC
 
USM - Tadeusz Jeleniewski – Projektowanie baz danych / W 1
3 z 13
kontrolowanym przez SZBD. Przetwarzanie bazy danych polega na generowaniu zapytań w
celu wyszukania potrzebnych danych, aktualizacji danych zgodnie ze zmianami
zachodzącymi w odwzorowanym świecie i wydawaniu raportów o danych interesujących
użytkownika.
Podstawowe funkcje jakie musi spełniać SZBD to:
optymalizacja zapytań - takie przekształcanie zapytań kierowanych do bazy przez
jej użytkowników aby czas oczekiwania na odpowiedź był możliwie najkrótszy,
zapewnienie integralności danych - uniemożliwienie przejścia bazy do stanu,
który nie istnieje w modelowanej rzeczywistości,
zarządzanie współbieżnym dostępem wielu użytkowników w taki sposób aby każdy
z nich był niewidoczny („przeźroczysty”) dla innych użytkowników; każdy z
użytkowników musi być przekonany o tym, że jest wyłącznym właścicielem
danych,
odporność na awarie (niezawodność bazy danych) - możliwość odtworzenia
poprawnego stanu bazy danych sprzed awarii,
ochrona danych - uniemożliwienie dostępu nieuprawnionych użytkowników do
poufnych danych innych użytkowników.
Na rysunku 1 pokazano (w dużym uproszczeniu) strukturę systemu bazy danych.
Składa się ona z bazy danych oraz z systemu zarządzania bazą danych. Użytkownicy
kontaktują się z systemem za pomocą tzw. transakcji. Transakcja stanowi elementarną
jednostkę pracy, taką, że baza danych jest w stanie spójnym przed i po zakończeniu
transakcji. Jeżeli dana transakcja została wykonana poprawnie, to zmiany, które wprowadziła
do bazy zostaną w niej zapamiętane. Transakcja stanowi ciąg akcji elementarnych. Każdej
akcji elementarnej odpowiada jedno odwołanie do SZBD.
Moduł zarządzania transakcjami umożliwia jednoczesne korzystanie z bazy
danych wielu użytkownikom. Powinien on działać tak, aby każdy z użytkowników miał
wrażenie, że on i tylko on jest wyłącznym właścicielem i użytkownikiem danych. Moduł
zarządzania dostępem do danych umożliwia właściwą interpretację danych
przechowywanych w pamięciach zewnętrznych, wprowadzanie nowych danych oraz
modyfikację i aktualizację istniejących danych.
Dane zawarte w bazie opisują cechy modelowanych obiektów rzeczywistych.
Schemat jest opisem struktury (formatu) przechowywanych danych oraz ich wzajemnych
powiązań. Schemat bazy danych pozwala nam „wyciągnąć” z bazy interesujące nas
informacje.
Cechami charakterystycznymi baz danych są:
Niezależność aplikacji i danych - dane mogą być wprowadzane do bazy bez
konieczności modyfikacji korzystających z nich programów czy systemów użytkowych, a z
drugiej strony aplikacje mogą być modyfikowane niezależnie od stanu baz danych.
Abstrakcyjna reprezentacja danych . Programy i systemy użytkowe (aplikacje) są
tworzone przy użyciu tzw. deklaratywnych języków programowania (w odróżnieniu od
języków imperatywnych). Twórca aplikacji nie musi np. interesować się kolejnością danych
w bazie, ani sposobem ich reprezentacji i wyszukiwania. Precyzuje jedynie warunki selekcji
informacji. Twórca aplikacji decyduje zatem „co zrobić”, a nie „jak zrobić”.
E:\VARIA\USM-lato-2003\WYKLAD1\WYKLAD_1.DOC
USM - Tadeusz Jeleniewski – Projektowanie baz danych / W 1
4 z 13
Użytkownicy
Transakcje
S System
Z bazy
B Moduł zarządzania danych
D transakcjami
Moduł sterowania
dostępem do danych
Schemat Baza
bazy danych danych
Rys.1. Schemat funkcjonalny systemu bazy danych
Różnorodność sposobów widzenia danych . Te same dane zawarte w bazie mogą
być „widziane” w różny sposób przez różnych użytkowników. Efekt ten uzyskuje się przez
stosowanie różnych „filtrów” (perspektyw) nakładanych na te same dane.
Fizyczna i logiczna niezależność danych . Fizyczna niezależność danych polega na
tym, że rozszerzenie systemu komputerowego, na którym pracuje SZBD o nowy sprzęt nie
narusza danych w bazie. Logiczna niezależność danych polega na tym, że - po pierwsze
wprowadzanie nowych danych do bazy nie deaktualizuje starych, po drugie - dane, które nie
są wzajemnie powiązane tzw. związkami integralnościowymi mogą być usuwane z bazy
niezależnie od siebie.
E:\VARIA\USM-lato-2003\WYKLAD1\WYKLAD_1.DOC
129464584.004.png
USM - Tadeusz Jeleniewski – Projektowanie baz danych / W 1
5 z 13
Projektowanie systemów baz danych
Na rysunku 2 pokazano schemat procesu projektowania systemu baz danych.
Modelowany fragment rzeczywistości
Kostrukcja modelu
konceptualnego
fragm entu
rzeczywistości
Diagramy EER
Transformacja modelu
konceptualnego
do modelu relacyjnego
Relacje
Normalizacja
modelu relacyjnego
Relacje znormalizowane
W ybór struktur
fizycznych i określenie
ścieżek dostępu
Fizyczne struktury danych
Strojenie systemu
Rys.2. Schemat procesu projektowania systemu baz danych
Pierwszym etapem w cyklu projektowym jest wyróżnienie fragmentu
rzeczywistości, który chcemy odwzorować w bazie danych. W wyniku dokładnej analizy tego
fragmentu otrzymujemy jego model konceptualny reprezentowany przez tzw. diagramy
związków i encji (Diagramy EER).
Podstawowymi elementami tzw. modelu rozszerzonego (ang. EER - Extended
Entity Relationship) są encja, atrybut i związek. Modelowanie w systemie komputerowym
określonego wycinka rzeczywistości wymaga rozpoznania występujących w nim obiektów.
Ogólnie można wyróżnić dwa rodzaje takich obiektów: materialne (człowiek, budynek,
samochód), koncepcyjne (zamówienie, rachunek, stanowisko służbowe). Każdy z takich
obiektów materialnych czy funkcjonalnych w modelu EER stanowi encję. Encje tego samego
typu można grupować w zbiory encji. Każda z encji jest jednoznacznie określona za pomocą
nazwy. Encje pochodzące z różnych zbiorów różnią się nazwami, a przede wszystkim
własnościami. Do modelowania własności służą atrybuty.
Encje niosą ze sobą niepełną informację o modelowanym wycinku rzeczywistości.
Niech np. encje Kazimierz i Anna będą elementami zbioru Pracownicy , a encje kierownik
pracowni i zaopatrzeniowiec - elementami zbioru Stanowiska . Sam fakt przynależności
encji do określonych zbiorów nie opisuje wystarczająco dokładnie sytuacji w modelowanym
przedsiębiorstwie. W systemie należałoby zapisać m.in. informację o stanowiskach jakie
zajmują poszczególni pracownicy. Jeżeli Kazimierz jest zatrudniony na etacie kierownik
pracownik , a Anna - na etacie zaopatrzeniowca , to do umieszczenia tej informacji w bazie
danych należy wprowadzić związek o nazwie pracuje_na_etacie pomiędzy zbiorami encji
Pracownicy a Stanowiska . Związki (relacje) mogą łączyć elementy również tego samego
zbioru. Z formalnego punktu widzenia związek jest relacją R pomiędzy zbiorami encji
n
E:\VARIA\USM-lato-2003\WYKLAD1\WYKLAD_1.DOC
E n
1 ,...,
129464584.005.png 129464584.001.png 129464584.002.png
 
Zgłoś jeśli naruszono regulamin