Projektowanie relacyjnych baz danych

Podobne dokumenty
PLAN WYKŁADU BAZY DANYCH MODEL DANYCH. Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna HISTORIA

Model relacyjny. Wykład II

1 Wstęp do modelu relacyjnego

SZKOLENIE: Administrator baz danych. Cel szkolenia

Relacyjny model baz danych, model związków encji, normalizacje

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Bazy danych Wykład zerowy. P. F. Góra

KaŜdemu atrybutowi A przyporządkowana jest dziedzina Dom(A), czyli zbiór dopuszczalnych wartości.

Technologia informacyjna

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Bazy danych. Algebra relacji

Model relacyjny. Wykład II

Wykład 2. Relacyjny model danych

030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła

Autor: Joanna Karwowska

Systemy baz danych. mgr inż. Sylwia Glińska

Systemy baz danych. Notatki z wykładu

Definicja bazy danych TECHNOLOGIE BAZ DANYCH. System zarządzania bazą danych (SZBD) Oczekiwania wobec SZBD. Oczekiwania wobec SZBD c.d.

BAZY DANYCH algebra relacyjna. Opracował: dr inż. Piotr Suchomski

Wykład I. Wprowadzenie do baz danych

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA Relacyjny model danych. Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe

Informatyka Ćwiczenie 10. Bazy danych. Strukturę bazy danych można określić w formie jak na rysunku 1. atrybuty

Program nauczania. Systemy baz danych. technik informatyk

Algebra relacji. nazywamy każdy podzbiór iloczynu karteziańskiego D 1 D 2 D n.

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Baza danych. Modele danych

Plan wykładu: Relacyjny model danych: opis modelu, podstawowe pojęcia, ograniczenia, więzy.

Program wykładu. zastosowanie w aplikacjach i PL/SQL;

Bazy danych TERMINOLOGIA

Wprowadzenie do baz danych

PRZEWODNIK PO PRZEDMIOCIE

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Normalizacja baz danych

Agnieszka Ptaszek Michał Chojecki

Bazy danych - wykład wstępny

BAZY DANYCH model relacyjny. Opracował: dr inż. Piotr Suchomski

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

Bazy Danych. Bazy Danych i SQL Podstawowe informacje o bazach danych. Krzysztof Regulski WIMiIP, KISiM,

Bazy danych Algebra relacji Wykład dla studentów matematyki

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

WPROWADZENIE DO BAZ DANYCH

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

Nie przegrzewaj mózgu wrzuć dane do bazy!

Relacyjne bazy danych

Pojęcie bazy danych. Funkcje i możliwości.

Bazy Danych. Model Relacyjny. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

KARTA PRZEDMIOTU. WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI Ogólne umiejętności posługiwania się komputerem

Model logiczny SZBD. Model fizyczny. Systemy klientserwer. Systemy rozproszone BD. No SQL

WPROWADZENIE DO BAZ DANYCH

K1A_W11, K1A_W18. Egzamin. wykonanie ćwiczenia lab., sprawdzian po zakończeniu ćwiczeń, egzamin, K1A_W11, K1A_W18 KARTA PRZEDMIOTU

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Baza danych. Baza danych to:

Oracle11g: Wprowadzenie do SQL

Operacja Teta-złączenia. v1 v1 Θ v2

Bazy Danych. Bazy Danych i SQL Podstawowe informacje o bazach danych. Krzysztof Regulski WIMiIP, KISiM, regulski@metal.agh.edu.pl

BAZY DANYCH Podstawowe pojęcia

Egzamin / zaliczenie na ocenę* 0,5 0,5

FUNKCJE. (odwzorowania) Funkcje 1

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Tadeusz Pankowski Relacyjne bazy danych. są podstawą zachodniej cywilizacji

Zadanie 1. Suma silni (11 pkt)

Przestrzenne bazy danych Podstawy języka SQL

1. Zakłada się, że każda operacja (read, write) w harmonogramie obejmuje również blokowanie i odblokowanie jednostki. Czy następujący harmonogram

BAZY DANYCH. Co to jest baza danych. Przykłady baz danych. Z czego składa się baza danych. Rodzaje baz danych

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

MySQL. Darmowa baza danych. Æwiczenia praktyczne

Bazy danych 1. Wykład 5 Metodologia projektowania baz danych. (projektowanie logiczne)

Model relacyjny bazy danych

FUNKCJE SZBD. ZSE - Systemy baz danych 1

Baza danych to zbiór wzajemnie powiązanych ze sobą i zintegrowanych danych z pewnej dziedziny.

Zasady transformacji modelu DOZ do projektu tabel bazy danych

Plan wykładu: Operacje relacji: suma, przekrój, różnica, złączenia proste, iloczyn kartezjański, złączenia teta.

RELACYJNE BAZY DANYCH

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU

Karta (sylabus) modułu/przedmiotu Mechanika i Budowa Maszyn Studia I stopnia

KURS ACCESS 2003 Wiadomości wstępne

RELACYJNE BAZY DANYCH I ICH ZNACZENIE W SYSTEMACH INFORMACJI GEOGRAFICZNEJ

Usługi analityczne budowa kostki analitycznej Część pierwsza.

Pojęcie zależności funkcyjnej

2. Tabele w bazach danych

Pojęcie systemu informacyjnego i informatycznego

2017/2018 WGGiOS AGH. LibreOffice Base

Systemy GIS Tworzenie zapytań w bazach danych

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Pytania SO Oprogramowanie Biurowe. Pytania: Egzamin Zawodowy

Modelowanie konceptualne model EER

Literatura. Bazy danych s.1-1

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 6.0

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

PLAN WYKŁADU BAZY DANYCH ZALEŻNOŚCI FUNKCYJNE

Bazy danych. Andrzej Łachwa, UJ, /14

PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI 2016 ROK

domykanie relacji, relacja równoważności, rozkłady zbiorów

Bazy danych. Dr inż. Paweł Kasprowski

Plan. Raport. Tworzenie raportu z kreatora (1/3)

S y s t e m y. B a z D a n y c h

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Transkrypt:

Mam nadzieję, że do tej pory przyzwyczaiłeś się do tabelarycznego układu danych i poznałeś sposoby odczytywania i modyfikowania tak zapisanych danych. W tym odcinku poznasz nieco teorii relacyjnych baz danych, w tym algorytmom przekształcania relacji do kolejnych postaci normalnych, czyli dowiesz się, jak zaprojektować podstawowe obiekty baz danych tabele. Wprowadzenie Celem procesu projektowania bazy danych jest utworzenie poprawnego i spełniającego wymagania użytkowników logicznego schematu bazy danych. Ponieważ cały proces jest dosyć skomplikowany, w przypadku rozbudowanych baz danych dzieli się go na kilka etapów: Przygotowanie diagramu związków E/R. Normalizacja projektu. 3. Implementacja zasad wymuszających integralność danych. Skoro baza danych to zbiór uporządkowanych danych, to praca projektanta sprowadza się do opracowania struktury, w której będą przechowywane dane, oraz wyboru informacji, jakie powinny znaleźć się w bazie danych. W pierwszej kolejności należy określić schemat (strukturę) bazy danych i dopiero wtedy, dysponując gotowym schematem, wybrać te informacje, jakie będą przechowywane w bazie danych. Tworząc schemat, należy kierować się ogólną regułą, na podstawie której: W otaczającym nas świecie można wyróżnić mniej lub bardziej trwałe, ale będące logicznymi całościami obiekty różnych typów. Obiekty poszczególnych typów mogą być określone za pomocą właściwych im cech (atrybutów, metod i zdarzeń). Wybór typów obiektów oraz określenie, jakie informacje powinny być przechowywane w bazie, jest podstawą diagramu związku E/R (encja/relacja). Zanim opiszę tworzenie takiego modelu, przedstawię podstawy teorii relacyjnych baz danych. Model relacyjnych baz danych Termin relacyjna baza danych oznacza bazę zbudowaną z relacji. Podstawowy obiekt takiej bazy danych, tabela, jest konkretną reprezentacją relacji technicznego pojęcia matematyki. Wynika z tego, że oba terminy nie są jednoznaczne, a jedna relacja może być odwzorowana za pomocą wielu różnych tabel. Relacyjny model baz danych został stworzony przez E.F. Codda w 1970 roku i przedstawiony w pracy Relacyjny model danych dla dużych banków danych. Nie używa się tam pojęć tabela, kolumna i wiersz, lecz relacja, atrybut i krotka. Każda tabela składa się z pewnej liczby wierszy i kolumn. Na przecięciu wiersza z kolumną znajduje się pole. W modelu relacyjnym przyjmuje się, że: 1 / 6

kolejność wierszy i kolumn w tabelach jest nieistotna, wiersze zawierające takie same dane są identyczne. Natomiast w tabeli przedstawiającej konkretny przypadek relacji identyczne dane (wartości pól) będą przechowywane w różnych wierszach. Pole zawiera najmniejszą niepodzielną wartość, czyli taką część informacji, która nie może być dalej dzielona ze względu na spójność logiczną. Podstawowe definicje Przed podaniem definicji relacji podstawowego terminu opisywanej teorii musimy poznać definicje schematu relacji i dziedziny relacji. Definicja Schemat relacji Schematem relacji nazywamy zbiór R = {A 1, A 2,, A n }, gdzie: A 1, A 2,, A n są atrybutami, reprezentowanymi w tabeli poprzez nazwy kolumn. Przykładowym schematem relacji item będzie zbiór: item {item_id, description, cost_price, sell_price}. Każdemu atrybutowi (A 1, A 2,, A n ) przyporządkowana jest dziedzina (zakres dopuszczalnych wartości atrybutu) reprezentowana przez typ danych. W tym przypadku dla poszczególnych kolumn zdefiniowano następujące typy danych: item_id int, description varchar(64) cost_price numeric(7,2) sell_price numeric(7,2) czyli: Wartości atrybutu item_id będą liczbami całkowitymi z zakresu od 2 147 483 648 do 2 147 483 647 lub od 0 do 4 294 967 295 (w przypadku liczb bez znaku). Wartości atrybutu description będą ciągami 64 znaków. 3. 2 / 6

Wartości atrybutu cost_price będą liczbami dziesiętnymi o precyzji 7 i skali 2 (precyzja oznacza liczbę cyfr przed przecinkiem, skala liczbę miejsc po przecinku). 4. Wartości atrybutu sell_price będą liczbami dziesiętnymi o precyzji 7 i skali Definicja Dziedzina relacji Dziedziną relacji o schemacie R = {A 1, A 2,, A n } nazywamy sumę dziedzin wszystkich jej atrybutów Dom(R)=Dom(A 1 ) Dom(A 2 ) Dom(A n ). Przykładową dziedziną relacji item będzie dziedzina Dom(item) = int varchar (64) numeric(7,2) numeric(7,2). Teraz można już podać definicję podstawowego obiektu relacyjnych baz danych relacji. Definicja 3. Relacja Relacją o schemacie R = {A 1, A 2,, A n } nazywamy skończony zbiór r = {t 1, t 2,, t m } odwzorowań t i : R Dom(R) takich, że dla każdego j z zakresu 1 <= j <= n zachodzi zależność: t i (A j ) Dom(A j ). Tak zdefiniowane pojedyncze odwzorowanie nosi nazwę krotki i odpowiada mu pojedynczy wiersz tabeli. Wartością krotki jest suma wartości poszczególnych atrybutów. Na przykład wartością pierwszej krotki opisywanej tabeli jest zbiór: 1 ' Wood Puzzle' 15.23 295. Krotka może zostać ograniczona do wartości wybranych atrybutów. Lemat Ograniczenie krotki Ograniczeniem krotki t relacji r o schemacie R do zbioru atrybutów X R nazywamy odwzorowanie będące ograniczeniem krotki t do zbioru atrybutów X t IX : X Dom(X). Przykład. Wartością ograniczenia X = { item_id, description } przykładowej krotki będzie zbiór wartości { 1 ' Wood Puzzle' }. Podstawowe zasady implementacji modelu relacyjnych baz danych można podzielić na trzy grupy: Zasady dotyczące struktury danych. Zasady dotyczące przetwarzania danych. Zasady dotyczące integralności danych. Zasady dotyczące struktury danych W modelu relacyjnych baz danych informacja o poszczególnych obiektach zapisana jest w tabelach. Jest to model abstrakcyjny, zawsze obsługiwany jednakowo i niezwiązany ze sposobem przechowywania danych. Dzięki temu możliwe jest oddzielenie danych od aplikacji klienckiej (interfejsu użytkownika) i platformy sprzętowej. Serwer bazodanowy zarządza rozmieszczeniem danych w plikach znajdujących się na dysku bądź w pamięci podręcznej oraz metodami dostępu do tych danych. Cechą charakterystyczną modelu jest wymóg przechowywania w bazie danych tylko konkretnych wartości. W relacyjnych bazach danych nie możemy posługiwać się wskaźnikami do danych. Twórca relacyjnego modelu baz danych, E.F. Codd, przedstawił zbiór dwunastu postulatów, które powinny być uwzględnione przez projektantów systemów zarządzania relacyjnymi bazami danych. Zamieszczone niżej postulaty dotyczą struktury danych; ich znajomość może okazać się przydatna podczas projektowania baz. - Postulat informacyjny. Na poziomie logicznym dane reprezentowane są wyłącznie za pomocą tabel wartości. 3 / 6

- Postulat dostępu. Do każdej pojedynczej danej jest dostęp za pomocą nazwy tabeli, kolumn i wartości kluczy głównych. - Postulat fizycznej niezależności danych. Zmiany w sposobie przechowywania danych i dostępu do nich nie wpływają na aplikację kliencką. - Postulat logicznej niezależność danych. Zmiany w tabelach, zachowujące informację i dopuszczalne semantycznie, nie mają wpływu na aplikację kliencką. - Postulat niezależności dystrybucyjnej. System i jego język umożliwiają dostęp do danych zapisanych w różnych miejscach, np. na wielu komputerach w sieci. - Postulat zabezpieczania przed operacjami na niższym poziomie abstrakcji. Jeśli system zarządzania bazą danych umożliwia bezpośrednie operacje na niższych poziomach abstrakcji, nie mogą one naruszać reguł relacyjnego modelu baz danych, w szczególności nie mogą pomijać ograniczeń określonych przez więzy spójności. Zasady dotyczące przetwarzania danych Dane przechowywane w bazie danych nie są niezmienne. Wręcz przeciwnie aby baza danych była przydatna, przechowywane w niej informacje muszą odpowiadać stanowi faktycznemu, a więc muszą być cały czas aktualizowane. Operacje modyfikowania danych nie mogą jednak naruszać struktury danych. Wynika z tego, że przekształcenie danych dokonywane bądź to w celu ich modyfikacji, bądź pobrania danych, musi przebiegać z zachowaniem wewnętrznej logiki (struktury) powiązań istniejących pomiędzy danymi. Pierwszy typ przekształceń, które można wykonywać na wartościach atrybutów, wynika z definicji relacji jako zbioru. Operatorom algebry zbiorów, czyli, odpowiadają operatory algebry relacji UNION (suma relacji), INTERSECT (część wspólna relacji, przecięcie, przekrój relacji) i EXCEPT (dopełnienie relacji, różnica relacji). MySQL pozwala na łączenie wyników dwóch zapytań jedynie za pomocą operatora UNION. Aby obliczyć część wspólną lub dopełnienie wyników zapytań, należy posłużyć się podzapytaniem powiązanym. Na sumę dwóch relacji r s składają się wszystkie elementy relacji r i wszystkie elementy relacji s (rysunek 9.1). Rysunek 9. Suma relacji Wynikiem przecięcia relacji r s jest relacja składająca się z elementów wspólnych relacji r i s (rysunek 9.2). Rysunek 9. Przecięcie relacji Wynikiem odjęcia relacji r - s jest relacja powstała na skutek usunięcia z relacji r wszystkich elementów wchodzących w skład relacji s (rysunek 9.3). Rysunek 9.3. Dopełnienie relacji Oprócz operatorów teoriomnogościowych dla operacji na relacjach zdefiniowane są następujące operatory: selekcji, projekcji, iloczynu kartezjańskiego i złączenia naturalnego. Dwa pierwsze dotyczą wyników zapytania odwołującego się do pojedynczej relacji, dwa kolejne wyników odwołania się do wielu relacji. Definicja 4. Selekcja relacji Selekcją relacji r o schemacie R = {A 1, A 2,, A n } nazywamy: 4 / 6

Zbiór tych krotek relacji r, w których wartość atrybutu A wynosi a, przy założeniu, że A R i a Dom(A), co zapisujemy σ A=a (r) = {t r t(a) = a}. Dla dowolnego warunku logicznego F zbiór krotek relacji r spełniających warunek F, co zapisujemy σ F (r) = {t r t spełnia warunek F}. Przykład: σ item_id=1 (item) = {1 'Wood Puzzle' 15.23 295} Dla operatora selekcji prawdziwe są następujące twierdzenia: Twierdzenie Selekcja sumy σ F (r X Y projekcja wyniku szerszej projekcji równa jest wynikowi bardziej restrykcyjnej projekcji. Twierdzenie 5. Projekcja sumy π X (r s) = π X (r) π X (s) projekcja sumy relacji równa jest sumie projekcji. Twierdzenie 6. Selekcja projekcji σ F (π X (r)) = π X (σ F (r)) selekcja projekcji równa jest projekcji selekcji. Na podstawie twierdzeń 4. 6. możemy w dowolny sposób zmieniać kolejność operacji sumy, selekcji i projekcji. Zmiana kolejności operacji nie wpłynie na ich wynik. Definicja 6. Iloczyn kartezjański Iloczynem kartezjańskim dwóch relacji: r o schemacie R = {A 1, A 2,, A n } i s o schemacie S = {B 1, B 2,, B m }, przy założeniu, że R S = nazywamy relację q = r s &nbsp o schemacie Q = {A 1, A 2,, A n, B 1, B 2,, B m }, składającą się ze wszystkich krotek t q, dla których istnieją krotki u r i v s takie, że: t(a i ) = u(a i ) dla 1 <= i <= n oraz t(b i ) = v(b i ) dla 1 <= i <= m. Iloczyn kartezjański dwóch relacji jest zbiorem wszystkich możliwych połączeń krotek obu relacji. Jeżeli schematy relacji nie są rozłączne (istnieje niepusty zbiór powstały w wyniku przecięcia obu relacji), najpierw zmienia się nazwy atrybutów jednej z relacji, a następnie stosuje się powyższą definicję. Dla operatora iloczynu kartezjańskiego prawdziwe są następujące twierdzenia: Twierdzenie 7. Iloczyn sumy (r s) q = (r q) (s q) iloczyn kartezjański sumy równy jest sumie iloczynów kartezjańskich. Twierdzenie 8. Selekcja iloczynu σ F^G (r s) = σ F (r) σ G (s) przy założeniu, że F(R), G(S) selekcja iloczynu kartezjańskiego równa jest iloczynowi kartezjańskiemu selekcji. Twierdzenie 9. Projekcja iloczynu π X Y (r s) = π X (r) π Y (s) przy założeniu, że X R i Y S projekcja iloczynu kartezjańskiego równa jest iloczynowi kartezjańskiemu projekcji. Jak już miałeś okazję się przekonać, wynikiem iloczynu kartezjańskiego jest zbiór wielu krotek, z których nie wszystkie zawierają sensowne dane. Dlatego w produkcyjnych bazach danych bardzo rzadko wykorzystuje się tę metodę łączenia relacji. Definicja 7. Złączenie naturalne 5 / 6

Złączeniem naturalnym relacji r o schemacie R = {A 1, A 2,, A n } i s o schemacie S = {B 1, B 2,, B m } jest relacja q o schemacie Q = R S taka, że q = {t: u r, i v s takie, że u R = t i v S = t}. Tak więc złączeniem naturalnym relacji jest zbiór wszystkich możliwych połączeń krotek relacji, przy których ich wspólne atrybuty mają takie same wartości. Wynikiem złączenia naturalnego dwóch relacji jest zbiór powiązanych ze sobą krotek obu relacji. Dla operatora złączenia naturalnego prawdziwe są następujące twierdzenia: sobą Twierdzenie 10. Złączenie relacji z samą q q = q wynikiem złączenia relacji z samą sobą jest dana relacja. Twierdzenie 1 Naprzemienność złączenia q r = r q zmiana kolejności łączonych relacji nie wpływa na wynik złączenia. złączenia Twierdzenie 1 Przechodniość (q r) s = q (r s) zmiana kolejności operacji złączenia naturalnego kilku relacji nie wpływa na wynik złączenia. Twierdzenie 13. Projekcja złączenia π R (r s) r oraz π 6 / 6