Transcript Część 3
Tworzenie bazy danych dr inż. Zbigniew Wiśniewski Proces tworzenia bazy danych Projekt logiczny bazy danych Projekt fizyczny bazy danych Właściwości bazy danych • Współdzielenie bazy danych • Integracja danych (jeden logiczny element tylko w jednym miejscu) • Integralność danych (dokladnie odzwierciedla obszar analizy, którego ma być modelem) • Bezpieczeństwo danych • Abstrakcja danych (przechowywane są tylko niektóre dane o obiektach – jest abstrakcja prawdziwego świata) • Niezależność danych (oddzielenie danych od procesów, które ich używają) System bazy danych Relacje • Model relacyjny powstał dzięki jednej osobie – E. F. Coddowi • Wcześniejsze modele traktowały dane w niezdyscyplinowany sposób • W jego modelu został poprawiony możliwy do uzyskania poziom niezależności między programami a danymi • Wzrosła wydajność tworzenia oprogramowania Relacje • • Jest tylko jedna struktura danych w modelu relacyjnym – RELACJA. Jest matematyczną strukturą opartą na teorii zbiorów. Relacja jest tabelą, dla której spełniony jest zbiór zasad: Relacje 1. Każda relacja w bazie danych ma jednoznaczną nazwę. Według Codda dwuwymiarowa tabela jest matematycznym zbiorem, a matematyczne zbiory muszą być nazywane jednoznacznie. 2. Każda kolumna w relacji ma jednoznaczną nazwę w ramach jednej relacji. Każda kolumna relacji jest również zbiorem i dlatego powinna być jednoznacznie nazwana. 3. Wszystkie wartości w kolumnie muszą być tego samego typu. Wynika to z p. 2. 4. Porządek kolumn w relacji nie jest istotny. Schemat relacji - lista nazw jej kolumn - jest również matematycznym zbiorem. Elementy zbioru nie są uporządkowane. 5. Każdy wiersz w relacji musi być różny. Innymi słowy, powtórzenia wierszy nie są dozwolone w relacji. 6. Porządek wierszy nie jest istotny. Skoro zawartość relacji jest zbiorem, to nie powinno być określonego porządku wierszy relacji. 7. Każde pole leżące na przecięciu kolumny/wiersza w relacji powinno zawierać wartość atomową. To znaczy, zbiór wartości nie jest dozwolony na jednym polu relacji. Klucze • Każda relacja musi mieć klucz główny • Klucz główny to jedna lub więcej kolumn, w których wartości jednoznacznie identyfikują każdy rekord • W każdej relacji może istnieć wiele kluczy kandydujących – czyli takich, które mogą występować jako jednoznaczny identyfikator • Klucz główny jest wybierany ze zbioru kluczy kandydujących • Każdy klucz kandydujący (a więc i główny) musi mieć dwie właściwości: – Musi być jednoznaczny – Nie może zawierać wartości null – jego wartość musi być określona dla każdego rekordu Klucze • Klucze obce – są sposobem łączenia danych przechowywanych w różnych tabelach. • Klucz obcy jest kolumną lub grupą kolumn tabeli, która czerpie swoje wartości z tej samej dziedziny co klucz główny tabeli powiązanej z nią w bazie danych MODUŁY NazwaModułu Poziom KodKursu NrPrac Systemy realcyjnych baz danych 1 CSD 234 Projektowanie relacyjnych baz danych 1 CSD 234 Dedukcyjne bazy danych 3 CSD 345 Obiektowe bazy danych 3 CSD 345 Rozproszone bazy danych 2 CSD 237 WYKŁADOWCY NrPrac NazwiskoPrac Status 234 Davies T. Ad 237 Jones S. W 345 Evans. R. Sw Normalizacja • Zadanie: zaprojektować bazę danych z informacjami na temat studentów, modułów, wykładowców Moduły NazwaModułu NrPrac NazwPrac NrStudenta NazwStudenta Oce na TypOceny Systemy relacyjnych baz danych 234 Davies T. 34698 Smith S. 4 Cwk1 Systemy relacyjnych baz danych 234 Davies T. 34698 Smith S. 3 Cwk2 Systemy relacyjnych baz danych 234 Davies T. 37798 Jones S. 3,5 Cwk1 Systemy relacyjnych baz danych 234 Davies T. 34888 Patel P. 3 Cwk1 Systemy relacyjnych baz danych 234 Davies T. 34888 Patel P. 4 Cwk2 Projektowanie relacyjnych baz danych 234 Davies T. 34698 Smith S. 3,5 Cwk1 Projektowanie relacyjnych baz danych 234 Davies T. 34888 Patel P. 4 Cwk1 Dedukcyjne bazy danych 345 Evans R. 34668 Smith J. 5 Egz • Co będzie, jeśli usuniemy studenta 34668? W wyniku operacji stracimy informacje nt. dedukcyjnych baz danych i powiązanego z nimi wykładowcy. Zjawisko to nosi nazwę EFEKTU UBOCZNEGO USUNIĘCIA. • Co będzie, jeśli zmienimy wykładowcę projektowania relacyjnych baz danych na Jones S.? Musimy wtedy zmodyfikować we wszystkich wystąpieniach nie tylko NazwPrac ale i NrPrac. Zjawisko to nosi nazwę EFEKTU UBOCZNEGO MODYFIKACJI. • Co będzie jeśli wpiszemy nowego studenta na moduł? Nie możemy wpisać nowego rekordu studenta dopóty, dopóki nie będzie miał przynajmniej jednego zaliczenia. Zjawisko to nosi nazwę EFEKTU UBOCZNEGO WSTAWIENIA Normalizacja 1. Zbierz zbiór danych 2. Przekształć nieznormalizowany zbiór danych w tabele w pierwszej postaci normalnej 1NF 3. Przekształć tabele z pierwszej postaci normalnej w drugą postać normalną 2NF 4. Przekształć tabele z drugiej postaci normalnej w trzecią postać normalną 3NF Normalizacja • Niekiedy jeszcze w trzeciej postaci normalnej występują anomalie danych. Wtedy wykonuje się dalsze kroki: 5. Przekształć tabele z trzeciej postaci normalnej w czwartą postać normalną 4NF 6. Przekształć tabele z czwartej postaci normalnej w piątą postać normalną 5NF Normalizacja • Proces przekształcania nieznormalizowanego zbioru danych w pełni znormalizowaną (3NF) nazywamy procesem rozkładu odwracalnego • Przy każdym kolejnym przekształceniu dzieli się strukturę danych na coraz więcej tabel bez straty podstawowych związków zachodzących między elementami danych (czyli z możliwością odwrócenia operacji) Normalizacja • Normalizacja jest procesem identyfikowania logicznych związków między elementami danych i projektowania bazy, która będzie reprezentować takie związki ale bez anomalii. • Logiczne związki między elementami danych, które wskazują kierunek w stronę dobrego schematu nazywamy związkami zależności lub determinowania. • Mówimy, że dwa elementy A i B są w związku zależności (lub determinowania) jeżeli pewne wartości elementu danych B występują zawsze z pewnymi wartościami elementu danych A. • Jeżeli element A jest determinującym elementem danych a B zależnym, to kierunek związku jest od A do B. • Istnieją dwa główne typy zależności (determinowania): – Zależności funkcyjne (jednowartościowe) – Zależności niefunkcyjne (wielowartościowe) Normalizacja • Mówimy, że element danych B jest funkcyjnie zależny od elementu danych A, jeżeli dla każdej wartości A istnieje jedna, jednoznacznie określona wartość B. (element A jest determinującym a B zależnym) • Zależność ta jest modelowana za pomocą funkcji matematycznej, czyli skierowanego odwzorowania jeden-do-jeden między elementami jednego zbioru a elementami drugiego zbioru – Zależność NrPrac i NazwPrac jest funkcyjnym związkiem zależności, elementem determinującym jest NrPrac, a NazwPrac jest elementem zależnym: dla każdego NrPrac istnieje tylko jedno nazwisko zależne. Normalizacja – 1NF Moduły NazwaModułu NazwaModułu NrPrac NazwPrac NrStudenta NazwStudenta Ocena TypOceny Systemy relacyjnych baz danych Systemy 234 relacyjnych Daviesbaz T. danych 34698 Smith S. 4 Cwk1 Systemy relacyjnych baz danych Systemy 234 relacyjnych Daviesbaz T. danych 34698 Smith S. 3 Cwk2 Systemy relacyjnych baz danych Systemy 234 relacyjnych Daviesbaz T. danych 37798 Jones S. 3,5 Cwk1 Systemy relacyjnych baz danych Systemy 234 relacyjnych Daviesbaz T. danych 34888 Patel P. 3 Cwk1 Systemy relacyjnych baz danych Systemy 234 relacyjnych Daviesbaz T. danych 34888 Patel P. 4 Cwk2 relacyjnych Projektowanie relacyjnych Projektowanie 234 Davies T. baz danych baz danych 34698 Smith S. 3,5 Cwk1 relacyjnych Projektowanie relacyjnych Projektowanie 234 Davies T. baz danych baz danych 34888 Patel P. 4 Cwk1 34668 Smith J. 5 Egz Dedukcyjne bazy danych Dedukcyjne bazy danych 345 Evans R. Normalizacja – 1NF Relacja jest w pierwszej postaci normalnej (1NF) wtedy i tylko wtedy, gdy każdy atrybut niekluczowy jest funkcyjnie zależny od klucza głównego MODUŁY NazwaModułu NazwPrac NrPrac Systemy realcyjnych baz danych Davies T. 234 Projektowanie relacyjnych baz danych Davies T. 234 Dedukcyjne bazy danych Evans R. 345 ZALICZENIA NazwaModułu NrStudenta NazwStudenta Ocena TypOceny Systemy relacyjnych baz danych 34698 Smith S. 4 Cwk1 Systemy relacyjnych baz danych 34698 Smith S. 3 Cwk2 Systemy relacyjnych baz danych 37798 Jones S. 3,5 Cwk1 Systemy relacyjnych baz danych 34888 Patel P. 3 Cwk1 Systemy relacyjnych baz danych 34888 Patel P. 4 Cwk2 Projektowanie relacyjnych baz danych 34698 Smith S. 3,5 Cwk1 Projektowanie relacyjnych baz danych 34888 Patel P. 4 Cwk1 Dedukcyjne bazy danych 34668 Smith J. 5 Egz Normalizacja – 2NF • Aby przejść do drugiej postaci normalnej należy usunąć zależności od części klucza • Wiąże się to ze zbadaniem tabel, które mają klucze złożone • Należy postawić każdemu niekluczowemu elementowi danych zadać pytanie: czy ten element nie jest aby jednoznacznie identyfikowany tylko przez część klucza złożonego? Normalizacja – 2NF Relacja jest w drugiej postaci normalnej (2NF) wtedy i tylko wtedy, gdy jest w 1NF i każdy atrybut niekluczowy jest w pełni funkcyjnie zależny od klucza głównego ZALICZENIA STUDENCI NazwaModułu NrStudenta NazwStudenta Ocena TypOceny Systemy relacyjnych baz danych 34698 Smith S. 4 Cwk1 Systemy relacyjnych baz danych 34698 Smith S. 3 Cwk2 Systemy relacyjnych baz danych 37798 Jones S. 3,5 Cwk1 Systemy relacyjnych baz danych 34888 Patel P. 3 Cwk1 Systemy relacyjnych baz danych 34888 Patel P. 4 Cwk2 Projektowanie relacyjnych baz danych 34698 Smith S. 3,5 Cwk1 Projektowanie relacyjnych baz danych 34888 Patel P. 4 Cwk1 Dedukcyjne bazy danych 34668 Smith J. 5 Egz MODUŁY NazwaModułu NazwPrac NrPrac Systemy realcyjnych baz danych Davies T. 234 Projektowanie relacyjnych baz danych Davies T. 234 Dedukcyjne bazy danych Evans R. 345 ZALICZENIA NazwaModułu NrStudenta Ocena TypOceny Systemy relacyjnych baz danych 34698 4 Cwk1 Systemy relacyjnych baz danych 34698 3 Cwk2 Systemy relacyjnych baz danych 37798 3,5 Cwk1 Systemy relacyjnych baz danych 34888 3 Cwk1 Systemy relacyjnych baz danych 34888 4 Cwk2 Projektowanie relacyjnych baz danych 34698 3,5 Cwk1 Projektowanie relacyjnych baz danych 34888 4 Cwk1 Dedukcyjne bazy danych 34668 5 Egz STUDENCI NrStudenta NazwStudenta 34698 Smith S. 37798 Jones S. 34888 Patel P. 34668 Smith J. Normalizacja – 3NF • Aby przejść z 2NF do 3NF usuwamy tzw. zależności przechodnie między danymi • Należy rozważyć każdą tabelę i dla każdej pary niekluczowych elementów danych zadać pytanie: czy wartość pola A zależy od wartości pola B lub odwrotnie? Jeżeli odpowiedź brzmi TAK, to przenosimy powiązane elementy danych do oddzielnej tabeli Normalizacja – 3NF Relacja jest w trzeciej postaci normalnej (3NF) wtedy i tylko wtedy, gdy jest w 2NF i każdy atrybut niekluczowy jest bezpośrednio zależny (a nie przechodnio zależny) od klucza głównego MODUŁY NazwaModułu NazwPrac NrPrac Systemy realcyjnych baz danych Davies T. 234 Projektowanie relacyjnych baz danych Davies T. 234 Dedukcyjne bazy danych Evans R. 345 WYKŁADOWCY NazwPrac NrPrac Davies T. 234 Davies T. 234 Evans R. 345 STUDENCI MODUŁY NrStudenta NazwStudenta 234 34698 Smith S. Projektowanie relacyjnych baz danych 234 37798 Jones S. Dedukcyjne bazy danych 345 34888 Patel P. 34668 Smith J. NazwaModułu NrPrac Systemy realcyjnych baz danych ZALICZENIA NazwaModułu NrStudenta Ocena TypOceny Systemy relacyjnych baz danych 34698 4 Cwk1 Systemy relacyjnych baz danych 34698 3 Cwk2 Systemy relacyjnych baz danych 37798 3,5 Cwk1 Systemy relacyjnych baz danych 34888 3 Cwk1 Systemy relacyjnych baz danych 34888 4 Cwk2 Projektowanie relacyjnych baz danych 34698 3,5 Cwk1 Projektowanie relacyjnych baz danych 34888 4 Cwk1 Dedukcyjne bazy danych 34668 5 Egz WYKŁADOWCY NazwPrac NrPrac Davies T. 234 Evans R. 345