• Nie Znaleziono Wyników

Treści kształceniaSystemy baz danych. Modelowanie danych. Relacyjne bazy danych. Języki zapytań do baz danych. Projektowanie relacyjnych baz danych.

N/A
N/A
Protected

Academic year: 2021

Share "Treści kształceniaSystemy baz danych. Modelowanie danych. Relacyjne bazy danych. Języki zapytań do baz danych. Projektowanie relacyjnych baz danych."

Copied!
30
0
0

Pełen tekst

(1)

Dr inż. Tadeusz Jeleniewski

e-mail: tadeusz.jeleniewski@pwr.edu.pl lub: t.jeleniewski@ujw.pl http://tjeleniewski.ujw.edu.pl

Treści kształcenia

Systemy baz danych. Modelowanie danych. Relacyjne bazy danych. Języki zapytań do baz danych. Projektowanie relacyjnych baz danych.

Efekty kształcenia – wiedza, umiejętności i kompetencje

Podstawowe pojęcia dotyczące baz danych, systemów baz danych i systemów zarządzania bazami danych, współbieżnego przetwarzania transakcji,

bezpieczeństwa w systemach baz danych.

Umiejętność przygotowania schematu relacyjnej bazy danych na podstawie modelu encja-związek.

Formułowanie zapytań w języku SQL (Structured Query Language), tworzenie i użycie funkcji, procedur pamiętanych, widoków, wyzwalaczy.

(2)

2017-09-25 Bazy danych-1 W1 2

Zaliczenie wykładu na stopień na podstawie kolokwium.

Końcowa ocena przedmiotu będzie średnią arytmetyczną oceny z kolokwium i oceny z laboratorium pod warunkiem, że obydwie te oceny będą pozytywne.

Kolokwium odbędzie się na ostatnim wykładzie w semestrze.

Literatura

C.Delobel, M.Adiba - Relacyjne bazy danych. Wydawnictwa Naukowo-Techniczne, Warszawa, 1989 P. Beynon – Davies - Systemy baz danych. WN – T, Warszawa 2011

J.D.Ullman, J.Widom – Podstawowy wykład z systemów baz danych. WN-T, Warszawa, 2000 Mendrala D., Szeliga M., SQL. Praktyczny kurs, Wydanie II, Helion, Gliwice, 2011.

T.Connolly, C. Begg – Systemy baz danych. Praktyczne metody projektowania, implementacji i zarządzania. Wyd. RM, Warszawa, 2004

MySQL – 0pis języka. Wyd. Helion, 2005

Wrycza W., Marcinkowski B., Maślankowski J., UML 2.x. Ćwiczenia zaawansowane, Helion, Gliwice, 2012

(3)

Wykład 1

Wprowadzenie

Podstawowe pojęcia

Projektowanie systemów baz danych

Przykładowy model pojęciowy bazy danych

(4)

2017-09-25 Bazy danych-1 W1 4

Wg C.Delobel’a i M.Adib’y

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.

Wykład 1

(5)

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 interpretacji zawartych w niej informacji.

Wymaga to wiernego i pełnego opisu semantyki (semantyka - znaczenie) modelowanego wycinka świata rzeczywistego.

W systemach baz danych narzędziem opisu semantyki odwzorowywanego fragmentu świata rzeczywistego jest model danych.

(6)

2017-09-25 Bazy danych-1 W1 6

Modele konceptualne - najbardziej zbliżone do naturalnego 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.

(7)

Modele implementacyjne - 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 (i nie tylko) systemach baz danych (Oracle, MSSQL, Ingres, Sybase, Progress, Isis, Informix, dBase4, MySQL, PostgreSQL i in.) jest model relacyjny.

Ewolucja modeli danych:

1. Model hierarchiczny 2. Model sieciowy 3. Model relacyjny

4. Model relacyjno – obiektowy 5. Model obiektowy

6. Model dedukcyjny

1 2 3 4 5 6

(8)

2017-09-25 Bazy danych-1 W1 8

(9)

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; 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.

(10)

2017-09-25 Bazy danych-1 W1 10

Moduł zarządzania transakcjami pozwala wielu użytkownikom korzystać jednocześnie z bazy danych.

Powinien on działać tak, aby każdy z nich 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.

(11)

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ć”.

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/widoków)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.

(12)

2017-09-25 Bazy danych-1 W1 12

Projektowanie systemów baz danych

Modelowany fragm ent rzeczywistości

Diagramy EER

Relacje

Relacje znormalizowane

Fizyczne struktury danych

Strojenie system u W ybór struktur fizycznych i określenie

ścieżek dostępu Normalizacja m odelu relacyjnego Transformacja m odelu

konceptualnego do modelu relacyjnego

Kostrukcja m odelu konceptualnego

fragm entu rzeczywistości

(13)

Procedura konstrukcji modelu konceptualnego fragmentu rzeczywistości składa się zwykle z trzech kroków:

• Określenie wymagań dla systemu informatycznego z punktu widzenia zamawiającego.

• Zdefiniowanie informacji o obiektach i ich wzajemnych związkach.

Rezultatem jest kompletny diagram związków i encji.

• Określenie hierarchii funkcji realizowanych w systemie informatycznym

(14)

2017-09-25 Bazy danych-1 W1 14

Celem normalizacji jest zapewnienie spójności bazy i usunięcie z niej informacji nadmiarowych.

Normalizacja polega na dekompozycji relacji na “mniejsze” schematy relacji.

Proces normalizacji musi posiadać następujące własności:

• żaden atrybut nie zostanie zgubiony w trakcie procesu normalizacji,

• dekompozycja relacji nie prowadzi do utraty informacji,

• wszystkie zależności funkcyjne reprezentowane w pojedynczych schematach relacji.

(15)

Podstawowym dla systemów baz danych pojęciem jest transakcja.

Jej charakterystyczne cechy określa się często skrótem ACID

A Atomicity niepodzielność – transakcja musi być wykonana w całości, od początku do końca, albo wcale

C Consistency spójność - transakcja nie może naruszać więzów spójności bazy danych

I - Isolation izolacja - każda transakcja musi przebiegać tak, jakby system w tym samym czasie nie realizował żadnej innej transakcji

D Durability trwałość - wyniku przetwarzania kompletnie zakończonej transakcji system nie może utracić żadnego elementu danych

(16)

2017-09-25 Bazy danych-1 W1 16

Każdy z obiektów odwzorowanych w bazie danych nazywa się encją (z ang. entity - jednostka).

Rozróżnianie encji jest możliwe dzięki temu, że ich odpowiedniki - rzeczywiste obiekty mają tożsamość.

Każda z encji jest jednoznacznie określona za pomocą nazwy.

Encje tego samego typu można grupować w zbiory encji.

Każdy zbiór encji w modelu otrzymuje unikalną nazwę.

Przypisywanie nazw zbiorom encji jest jedną z podstawowych operacji w czasie tworzenia schematu pojęciowego.

Inną ważną operacją jest definiowanie zbiorów encji.

(17)

Teoria mnogości dopuszcza różne sposoby definiowania zbiorów:

(1) ekstensjonalnie, czyli przez wyliczenie elementów, np. {męski, żeński}

;

(2) intensjonalnie, czyli przez podanie własności, np.

definicja ta określa zbiór osób płci męskiej;

(3) za pomocą iloczynu kartezjańskiego;

jeżeli X, Y, Z są nazwami zbiorów, to jest zbiorem elementów takich, że

(4) za pomocą operatorów teoriomnogościowych sumy, przecięcia i różnicy zbiorów postaci odpowiednio

} )

(

|

{ x Osoba plec x meska

Z Y

X

Z z

Y y

X

x , ,

,

, 

(18)

2017-09-25 Bazy danych-1 W1 18

Encje same w sobie nie niosą żadnej informacji.

Powiązania to relacje dwuczłonowe na zbiorach encji X oraz Y niekoniecznie różnych. Powiązanie takie oznaczać będziemy dalej symbolicznie jako:

G Y X F

gdzie F, G są odwzorowaniami na ogół wielowartościowymi, odwrotnymi względem siebie.

Zbiór X jest zbiorem źródłowym, zbiór Y - zbiorem docelowym odwzorowania F.

Na rysunku 1 pokazano przykładowy schemat powiązań między zbiorami STUDENT oraz KIERUNEK-I-ROK

ROK I

KIERUNEK Studenci

zapis

STUDENT

(19)

piotr

jerzy

anna III-rok-e-elektroniki

Semestr-dyplomowy-informatyki rok-I-informatyki

(20)

2017-09-25 Bazy danych-1 W1 20

Wyrażenie określa kierunek i rok studiów, na które zapisał się student Piotr.

Wyrażenie

określa dwuelementowy zbiór encji {piotr, jan}

piotr

zapis

rok I ormatyki

Studenci inf

(21)

Odwzorowania F oraz G mogą być:

(1) jednowartościowe lub wielowartościowe; odwzorowanie

jednowartościowe (funkcyjne) przyporządkowuje encji ze zbioru źródłowego dokładnie jedną encję ze zbioru docelowego; odwzorowanie wielowartościowe przyporządkowuje encji ze zbioru źródłowego podzbiór encji ze zbioru

docelowego,

(2) całkowite lub częściowe; odwzorowanie jest częściowe jeżeli w zbiorze źródłowym istnieją takie encje, które nie mają swoich obrazów, odwzorowanie jest całkowite jeżeli wszystkie encje ze zbioru źródłowego mają swoje obrazy,

(3) o określonej liczności minimalnej i maksymalnej zbioru wartości;

odwzorowaniom wielowartościowym można przypisać parę liczb całkowitych określających minimalną i maksymalną liczność zbioru wartości.

(22)

2017-09-25 Bazy danych-1 W1 22

Do zapisu nazw encji, nazw zbiorów encji, powiązań i odwzorowań zastosowano dalej następujące reguły:

(1) nazwy encji rozpoczynają się małą literą lub cyfrą, (2) nazwy zbiorów zaczynają się od wielkiej litery,

(3) funkcje (odwzorowania jednowartościowe) pisze się małymi literami (jak encje),

(4) odwzorowania wielowartościowe rozpoczyna się od wielkiej litery, (5) po odwzorowaniu całkowitym pisze się cyfrę 1 w nawiasie,

(6) po odwzorowaniu częściowym pisze się cyfrę 0 w nawiasie,

(7) po odwzorowaniu z określoną licznością minimalną i maksymalną wartości pisze się w nawiasie parę liczb, z których pierwsza oznacza minimalną liczność, a druga – liczność maksymalną,

(8) w definicji powiązania nie muszą występować obydwa elementy F i G.

(23)

Kilka przykładów powiązań zapisanych z zastosowaniem podanych zasad:

} żeńska ,

męska ){

( OSOBApłeć 1

OSOBA )

( Kandydat ROK

PARTIA 0

LICZBA )

( OSOBA wiek 1

x OSOBA|płeć(x) męska

) ( żona

) ( żeńska mąż

) x ( płeć

| OSOBA

x

0 0

OSOBA )

( Dzieci

) , ( Rodzice OSOBA

0 2 2

(24)

2017-09-25 Bazy danych-1 W1 24

Model konceptualny bazy danych powstaje w trzech etapach:

(1) określenie zbiorów encji składających się na dany system informacji, (2) określenie powiązań między zbiorami encji – należy tutaj uwzględnić

możliwie najwięcej powiązań mimo, że powstają często redundancje (nadmiar),

(3) określenie warunków dotyczących powiązań.

Jako przykład przedstawiono przebieg procesu formułowania modelu pojęciowego bazy danych pewnej hipotetycznej uczelni.

Przeznaczeniem tej bazy ma być wspomaganie zarządzania uczelnią.

W stosunku do rzeczywistości model ten stanowi znaczne uproszczenie.

(25)

Na pierwszym etapie określamy zbiory encji:

1. STUDENT - zbiór wszystkich studentów, którzy studiują aktualnie lub studiowali w przeszłości, np. 10 lub mniej lat wstecz.

2. WYKŁADOWCA - zbiór wykładowców aktualnie współpracujących z uczelnią.

3. KIERUNEK-I-ROK - zbiór wszystkich kierunków i lat studiów prowadzonych na uczelni.

4. PRZEDMIOT - zbiór przedmiotów stanowiących elementy programu nauczania na określonym kierunku i roku studiów.

5. SALA - zbiór sal, w których odbywają się zajęcia.

6. NAZWISKO - zbiór nazwisk stanowiących sensowne łańcuchy znaków.

7. ADRES - zbiór łańcuchów znaków odpowiadających adresom.

8. ROK - zbiór lat akademickich w postaci np. 96/97 (rok akademicki 1996/1997)

(26)

2017-09-25 Bazy danych-1 W1 26

9. STANOWISKO - zbiór stanowisk akademickich wykładowców, np.

{profesor, adiunkt, starszy asystent, asystent}.

10. GODZINA - godziny odbywania się zajęć, np. 9.15 – 11.00

11. DZIEŃ={poniedziałek, wtorek, środa, czwartek, piątek, sobota, niedziela}

12. LICZBA - zbiór liczb całkowitych.

13. BUDYNEK - zbiór budynków uniwersyteckich.

14. BOOL={prawda, fałsz}

(27)

Drugi etap polega na określeniu powiązań pomiędzy zbiorami encji:

15.

16.

17.

18.

19.

20.

21.

NAZWISKO )

( zwisku Studentona

) ( udenta nazwiskost

STUDENT

0 1

NAZWISKO )

( zwisku Studentona

) ( udenta nazwiskost

STUDENT

0 1

ADRES )

( nta adresstude

STUDENT 1

PRZEDMIOT )

( ot zieprzedmi Kierunekgd

) ( zedmiot ROK Pr

I KIERUNEK

1

1

BUDYNEK )

( ku Salawbudyn

) ( a lokalizacj

SALA 1

1

ADOWCA Ł

)WYK (

y ln a odpowiedzi ROK

I

KIERUNEK 1

ROK I

KIERUNEK )

( isany Studentzap

) ( zapisany

STUDENT

0 1

22.

student uczęszczał w danym roku akademickim na określony kierunek i rok studiów,

BOOL ROK

ROK I

KIERUNEK )

( Uczęszczał

STUDENT 1

(28)

2017-09-25 Bazy danych-1 W1 28

23.

powiązanie określa zaliczenia, jakie powinien mieć student, który chce się zapisać na określony kierunek i rok studiów.

24.

25.

26.

27.

powiązanie to mówi, czy dany student zaliczył rok/semestr studiów, czy nie.

BOOL ROK

I KIERUNEK

) ( Wymagany ROK

I

KIERUNEK 0

ADOWCA Ł

WYK SALA

DZIEŃ GODZINA

) ( ęć Rozkładzaj

PRZEDMIOT 1

PRZEDMIOT SALA

DZIEŃ GODZINA

Zajety ADOWCA

WYK (1)

Ł

PRZEDMIOT DZIEŃ

GODZINA Zajeta

SALA (0)

)BOOL (

zaliczenie

STUDENT 1

(29)

Trzeci etap projektowania modelu polega na określeniu warunków dotyczących powiązań

28. Jeżeli to

29. Jeżeli to istnieje w takie, że

co zapisuje się formalnie jako:

PRZEDMIOT p

WYKLADOWCA w

SALA s

DZIEN d

GODZINA

g , , , ,

   

g, d, s, w Rozkladzaj ec p

 

g, d, s, p

Zajety

 

w

g,d,p

Zajęta(s)

g,d,s,p

Zajęty

 

w

 

g,d,p Zajętas

wWYKŁADOWCA

g,d,s,p

Zajęty

 

w

(30)

2017-09-25 Bazy danych-1 W1 30

30. Dla pewnego studenta

definiujemy zbiór kierunków i lat studiów, które ten student zaliczył.

Zbiór ten zapiszemy w następującej postaci:

Student s może zapisać się na kierunek i rok k tylko wtedy, gdy

co zapisuje się formalnie jako:

STUDENT s 

 

k KIERUNEK I ROK | r ROK k,r,prawda UCZĘSZCZA Ł s

ZAL

ZAL )

k (

Wymagany

ZAL )

k ( Wymagany

) s ( zapisany

k

Cytaty

Powiązane dokumenty

200 Bazy danych Boks.. Schemat relacji jest w postaci normalnej Boyce’a-Codda bo jedynym kluczem są wszystkie trzy atrybuty) a w tabeli jest redundancja i możliwe są anomalie.

Podstawowym obiektem interfejsu użytkownika jest formularz, wyświetlany na ekranie komputera i składający się ze zbioru elementów dialogowych takich jak: pola do wyświetlania

W przypadku raportów i stron dostępu do danych główną metodą wprowadzenia wewnętrznej struktury jest grupowanie po wartościach pochodzących z jednej lub więcej kolumn. W wyniku

Źródło danych: Kwerenda Wszystko (złączenie tabel Firmy, Oferty, Stanowiska w ofercie, Wymagania, Słownik wymagań i Kategorie wymagań) dla głównego formularza (tu wyszukuje

SELECT Nazwa, Cena, Id_faktury, Ilosc FROM Towary INNER JOIN Pozycje ON Towary.Id_towaru = Pozycje.Id_towaru;... Wyświetl pracowników razem z przyjętymi przez

Do obiektu formularza o nazwie Pracownicy można się odwoływać w następujący

Jeśli użytkownik wprowadza do pola kombo nową wartość, której nie ma na stowarzyszonej liście rozwijanej i chce aby odpowiedni rekord został dopisany do tabeli bazy danych,

Recordset - obiekt reprezentujący cały zbiór rekordów z tabeli w bazie danych lub z wyniku zapytania na tabelach bazy danych. W danej chwili dostęp jest tylko do jednego