1 / 20

Projektowanie bazy danych

Projektowanie bazy danych. Przykład tworzenia aplikacji bazodanowej. Problem: Stwórz system śledzący nieobecności uczniów na poszczególnych lekcjach w szkole. Typowe kroki w projektowaniu aplikacji bazodanowej. Krok1 – Identyfikacja celów Krok 2 – Wyznaczenie zadań i funkcji

Download Presentation

Projektowanie bazy danych

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Projektowanie bazy danych

  2. Przykład tworzenia aplikacji bazodanowej • Problem: • Stwórz system śledzący nieobecności uczniów na poszczególnych lekcjach w szkole.

  3. Typowe kroki w projektowaniu aplikacji bazodanowej • Krok1 – Identyfikacja celów • Krok 2 – Wyznaczenie zadań i funkcji • Krok 3 – Wyznaczenie elementów danych • Krok 4 – Organizacja danych • Krok 5 – Projektowanie interfejsu użytkownika • Krok 6 – Tworzenie aplikacji • Krok 7 – Testowanie i ulepszanie

  4. Identyfikacja celów • Ewidencja nieobecności uczniów • Statystyka frekwencji uczniów w ogóle • Wykaz nieobecności konkretnego ucznia • Analiza liczby odbytych zajęć • Ile było lekcji ? • Kto rzeczywiście prowadził ? • Którzy uczniowie przekroczyli dozwoloną liczbe nieobecności ? • ??? .. Inne cele

  5. Identyfikacja przepływu zadań • Stworzenie listy przedmiotów • Administrator dopisuje nowy przedmiot • Administrator usuwa przedmiot • Stworzenie listy uczniów • Nauczyciel dopisuje dane personalne ucznia • Nauczyciel modyfikuje dane personalne ucznia • … • Nauczyciel wpisuje dane o nowych zajęciach • Zajęcia w konkretnym dniu na konkretnej lekcji • Nauczyciel sprawdza obecność • Nauczyciel odnotowuje nieobecność ucznia.

  6. Wyznaczenie elementów danych • Uczniowie • Id_ucznia • Nazwisko • Imię • Nauczyciele • Id_nauczyciele • Nazwisko • Imię • Przedmioty • Id_przedmiotu • Nazwa • Nauczyciel ???

  7. Przykład – nieobecności uczniów ZAJECIA Id_zajecia 234 Data 2009-03-12 Lekcja 3 Przedmiot WF odwołanie do PRZEDMIOTY id_nauczyciela 12 odwołanie do NAUCZYCIELE PRZEDMIOTY Symbol WF Nazwa Wychowanie fizyczne Nauczyciel 12 odwołanie do NAUCZYCIELE NAUCZYCIELE Id_nauczyciela 12 Nazwisko Kowalski Imię Jan UCZNIOWIE Id_ucznia 123 Nazwisko Nowak Imię Piotr NIEOBECNOSCI Id_ucznia 123 odwołanie do UCZNIOWIE Id_zajecia 234 odwołanie do ZAJĘCIA // związek między UCZNIEAMI i ZAJĘCIAMI typu wiele do wielu – tabela NIEOBECNOSCI pokazuje taki związek

  8. Idea Atrybuty (pola relacji) Krotki (wiersze, rekordy relacji)

  9. Atrybuty • Jeżeli na relacje popatrzymy jak na tabele, to nagłówek takiej tabeli zawiera wykaz atrybutów czyli kolumn tabeli. • Każdy atrybut ma unikatową w ramach relacji nazwę W przykładzie tabeli kontrahenci atrybutami są: SYMBOL, NAZWA, ADRES, NIP Zbiór D(A) dopuszczalnych wartości atrybutu A nazywamy dziedziną atrybutu A (lub domeną atrybutu) Zbiór dopuszczalnych wartości jest ograniczany przez wskazanie typu atrybutu (istnieją predefiniowane standardowe typy atrybutów). Specjalna wartość NULL jest elementem każdej domeny. Oznacza ona, że wartość atrybutu nie została określona (jest nieznana).

  10. Schematy relacji Nazwę relacji oraz zbiór jej atrybutów nazywamy schematem relacji. Przykład schematu relacji Kontrahent( symbol, nazwa, adres, nip ) Model relacyjny składa się zwykle z jednego lub kilku schematów relacji.

  11. Tworzenie tabeli • W SQL-u relacje definiujemy poleceniemcreate table : create tabler (A1D1, A2D2, ..., An Dn,(warunek integralnosci1), ..., (warunek integralnoscik)) • rjest nazwą relacji • każdeAijest nazwą atrybutu relacji r • Dijest typem wartości – nazwą domeny atrybutuAi Warunek – węzeł integralności = integrity constraint

  12. Tworzenie tabeli - przykład Create table UCZNIOWIE ( id_ucznia int, Nazwisko varchar(20) )

  13. Więzy (ograniczenia) integralności • Mechanizm (reguła), który gwarantuje że dane wpisane do relacji spełnią nałożone na nie warunki • czuwa nad tym SZBD • Definiuje się na poziomie • pojedynczego atrybutu • całej relacji • Rodzaje • klucz podstawowy (primary key) • klucz obcy (foreign key) • unikalność (unique) • zawężenie domeny/dziedziny (check) • wartość pusta/niepusta (NULL/NOT NULL)

  14. Rodzaje integralności Integralność domeny(kolumna) Integralność rekordu (wiersz) Integralność referencyjna(między tabelami)

  15. Klucze Niech A= { A1, A2, ... , An } będzie zbiorem atrybutów relacji. Podzbiór Kzbioru A nazywamy nadkluczemjeżeli dla dowolnej relacji r(A) każda krotka jest wyznaczona jednoznacznie poprzez wartości jakie przyjmuje na atrybutach należących do K. Jeżeli klucz K jest minimalny, tzn. nie jest nadkluczem właściwym żadnego innego innego klucza, to nazywamy go kluczem kandydującym. Zwykle w relacji wybieramy i ustalamy jeden klucz kandydujący. Taki wyszczególniony klucz nazywamy kluczem głównym relacji.

  16. Tworzenie klucza głównego Klucz główny relacji r(A1, a2, ... , An) to zestaw atrybutów jednoznacznie identyfikujący każdą krotkę w relacji. ALTER TABLR NazwaTabeli ADD CONSTRAINT NazwaKlucza PRIMARY KEY (Ak1, Ak2, ... , Akm) gdzie Ak1, Ak2, ... , Akm są atrybutami relacj r ALTER TABLE UCZNIOWIE ADD CONSTRAINT PK_ID_UCZNIA PRIMARY KEY (ID_UCZNIA)

  17. Klucze obce • Klucz obcy relacji (foreign key) atrybut (lub zbiór atrybutów), który wskazuje na klucz podstawowy (główny) innej relacji • Służy do reprezentowania powiązań między danymi (łączenia relacji)

  18. Klucze obce - przykład

  19. Klucze obce – cd. • Dane są relacje R1 i R2. Podzbiór FK atrybutów relacji R1 nazywany jest kluczem obcym R1 jeżeli: • atrybuty w FK mają taką samą domenę jak atrybuty klucza podstawowego PK relacji R2 • dla każdej krotki t1 relacji R1 istnieje dokładnie jedna krotka t2 relacji R2, taka że t1 [FK] = t2 [PK], lub t1 [FK] = null • Klucz obcy (ograniczenie referencyjne) gwarantuje, że rekordy z tabeli R1 występują w kontekście związanego z nim rekordu z tabeli R2

  20. Referencyjne więzy integralności – klucze obce (cd.2) Można wskazać jak system będzie reagował na zmianę lub usuwanie wartości klucza głównego, do której istnieje odwołanie referencyjne ON DELETE | ON UPDATE NO ACTION (domyślnie): Nie ma wpływu na wartość klucza obcego; może powodować niemożność dokonania zmiany klucza głównego ze względu na integralność danych. CASCADE: Dla ON DELETE, usuwa rekordy z odpowiadającą mu wartością klucza obcego; dla ON UPDATE, uaktualnia odpowiednie klucze obce. SET NULL: Ustawia wartości na NULL SET DEFAULT

More Related