Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Projektowanie bazy danych Jarosław Kuchta Dokumentacja i Jakość Oprogramowania.

Podobne prezentacje


Prezentacja na temat: "Projektowanie bazy danych Jarosław Kuchta Dokumentacja i Jakość Oprogramowania."— Zapis prezentacji:

1 Projektowanie bazy danych Jarosław Kuchta Dokumentacja i Jakość Oprogramowania

2 2/22Projektowanie bazy danych Możliwości projektowe Relacyjna baza danych Relacyjna baza danych Obiektowa baza danych Obiektowa baza danych Relacyjno-obiektowa baza danych Relacyjno-obiektowa baza danych Inne rozwiązanie (np. XML) Inne rozwiązanie (np. XML) Oracle IBM Microsoft MySQL inne

3 Dokumentacja i Jakość Oprogramowania 3/22Projektowanie bazy danych Cel projektowy UML SQL Klasy atrybuty operacje relacje Tabele Kwerendy pola klucze relacje

4 Dokumentacja i Jakość Oprogramowania 4/22Projektowanie bazy danych Strategia postępowania model klas jest sprawdzony i poprawny model klas jest sprawdzony i poprawny struktura bazy danych może być optymalizowana do potrzeb struktura bazy danych może być optymalizowana do potrzeb jakość pod kontrolą jakość pod kontrolą struktura danych działająca model klas dopasowywany do możliwości bazy danych brak odniesienia do potrzeb specyfikacja wymagań na nowo interpretowana (podwójna praca) niepewna jakość!!! model klas struktura danychstruktura danych model klas

5 Dokumentacja i Jakość Oprogramowania 5/22Projektowanie bazy danych Problemy do rozwiązania Identyfikacja klas wymagających przechowywania w bazie danych Identyfikacja klas wymagających przechowywania w bazie danych Odwzorowanie klas trwałych w tabele i kwerendy Odwzorowanie klas trwałych w tabele i kwerendy Identyfikacja instancji Identyfikacja instancji Realizacja mechanizmu dziedziczenia w systemie relacyjnej bazy danych Realizacja mechanizmu dziedziczenia w systemie relacyjnej bazy danych Ograniczenia związane ze standardowymi typami danych Ograniczenia związane ze standardowymi typami danych Realizacja złożonych typów danych Realizacja złożonych typów danych Realizacja agregacji i asocjacji Realizacja agregacji i asocjacji Optymalizacja dostępu tabel Optymalizacja dostępu tabel Realizacja operacji klas Realizacja operacji klas Stworzenie fizycznej struktury bazy danych Stworzenie fizycznej struktury bazy danych Zapewnienie spójności danych w związku ze zmianami projektowymi Zapewnienie spójności danych w związku ze zmianami projektowymi

6 Dokumentacja i Jakość Oprogramowania 6/22Projektowanie bazy danych Identyfikacja klas trwałych Klasa trwała jest to klasa obiektów, o których informacje muszą być przechowywane pomiędzy kolejnymi sesjami. Klasa trwała jest to klasa obiektów, o których informacje muszą być przechowywane pomiędzy kolejnymi sesjami. Nie każda klasa trwała jest przechowywana w bazie danych (np. log systemowy). Nie każda klasa trwała jest przechowywana w bazie danych (np. log systemowy).

7 Dokumentacja i Jakość Oprogramowania 7/22Projektowanie bazy danych Odwzorowanie klas trwałych w tabele i kwerendy Klient + Nazwisko: string + Imię: string + Adres: Adres «list» Klienci «table» Klienci ID {PK} Nazwisko: VARCHAR Imię: VARCHAR Adres:... «storage»

8 Dokumentacja i Jakość Oprogramowania 8/22Projektowanie bazy danych Identyfikacja instancji (1) Instancje pamięci operacyjnej są identyfikowane przez adres – może się zmienić po przechowaniu w bazie danych i ponownym załadowaniu do pamięci. Instancje pamięci operacyjnej są identyfikowane przez adres – może się zmienić po przechowaniu w bazie danych i ponownym załadowaniu do pamięci. Wniosek – trzeba zapewnić inny, unikalny identyfikator. Wniosek – trzeba zapewnić inny, unikalny identyfikator. Identyfikatory oparte o pozornie unikalne dane, jak np. numer PESEL, mogą być zawodne. Identyfikatory oparte o pozornie unikalne dane, jak np. numer PESEL, mogą być zawodne. Identyfikator cyfrowy – 32 bitowy zapewnia 4 mld różnych encji, lecz jest unikalny tylko wtedy, gdy jest nadawany przez jeden serwer. Identyfikator cyfrowy – 32 bitowy zapewnia 4 mld różnych encji, lecz jest unikalny tylko wtedy, gdy jest nadawany przez jeden serwer. Identyfikator cyfrowy 16-bajtowy jest zawsze unikalny (GUID), lecz nie jest typem standardowym SQL. Identyfikator cyfrowy 16-bajtowy jest zawsze unikalny (GUID), lecz nie jest typem standardowym SQL. Klasa modelowa musi przechowywać identyfikator w pamięci. Klasa modelowa musi przechowywać identyfikator w pamięci.

9 Dokumentacja i Jakość Oprogramowania 9/22Projektowanie bazy danych Identyfikacja instancji (2) Klient # ID: INT + Nazwisko: string + Imię: string + Adres: Adres «table» KlienciTbl ID: INT {PK} Nazwisko: VARCHAR Imię: VARCHAR Adres:... «storage»

10 Dokumentacja i Jakość Oprogramowania 10/22Projektowanie bazy danych Rozwiązanie problemu dziedziczenia (1) Każda hierarchia klas zajmuje jedną tabelę, która przechowuje wszystkie atrybuty z całej hierarchii. Każda hierarchia klas zajmuje jedną tabelę, która przechowuje wszystkie atrybuty z całej hierarchii. OsobaFirma Klient #ID +Adres +Nazwisko +Imię +Nazwa «table» KlienciTbl ID Nazwisko Imię Nazwa Adres «storage»

11 Dokumentacja i Jakość Oprogramowania 11/22Projektowanie bazy danych Rozwiązanie problemu dziedziczenia (2) Każda klasa w hierarchii ma własną tabelę, w której przechowuje własne atrybuty, również dziedziczone. Klasa, która nie tworzy instancji nie jest przechowywana Każda klasa w hierarchii ma własną tabelę, w której przechowuje własne atrybuty, również dziedziczone. Klasa, która nie tworzy instancji nie jest przechowywana OsobaFirma Klient +Adres #ID +Nazwisko +Imię #ID +Nazwa «table» Firmy ID {PK} Nazwa Adres «table» Osoby ID {PK} Nazwisko Imię Adres «storage»

12 Dokumentacja i Jakość Oprogramowania 12/22Projektowanie bazy danych Rozwiązanie problemu dziedziczenia (3) Każda klasa w hierarchii ma własną tabelę, w której przechowuje tylko własne atrybuty, nie dziedziczone. Tabela nadrzędna ma relacje do tabel pochodnych. Każda klasa w hierarchii ma własną tabelę, w której przechowuje tylko własne atrybuty, nie dziedziczone. Tabela nadrzędna ma relacje do tabel pochodnych. OsobaFirma Klient #ID +Adres +Nazwisko +Imię +Nazwa «table» Firmy ID {FK} Nazwa «table» Osoby ID {FK} Nazwisko Imię «table» Klienci ID {PK} Adres «storage»

13 Dokumentacja i Jakość Oprogramowania 13/22Projektowanie bazy danych Problemy z typami danych Typy numeryczne Typy numeryczne INTEGER (INT), SMALLINT INTEGER (INT), SMALLINT NUMERIC (P, S), DECIMAL (P, S) NUMERIC (P, S), DECIMAL (P, S) FLOAT (P), REAL, DOUBLE PRECISION FLOAT (P), REAL, DOUBLE PRECISION Typy znakowe Typy znakowe CHAR (n), VARCHAR, CHAR (n), VARCHAR, NATIONAL CHAR (n), NATIONAL VARCHAR NATIONAL CHAR (n), NATIONAL VARCHAR VARCHAR2 VARCHAR2 Typy daty i czasu Typy daty i czasu DATE, TIME, DATE, TIME, DATETIME, TIMESTAMP DATETIME, TIMESTAMP INTERVAL INTERVAL Int64 Wide String Extended Real Typy standardoweTypy niestandardowe

14 Dokumentacja i Jakość Oprogramowania 14/22Projektowanie bazy danych Realizacja typu wyliczanego «enum» Status nieznany w-realizacji zrealizowany «table» Status ID: INT Nazwa: VARCHAR «storage»

15 Dokumentacja i Jakość Oprogramowania 15/22Projektowanie bazy danych Atrybuty złożone Atrybuty złożonych typów danych mogą być spłaszczane Atrybuty złożonych typów danych mogą być spłaszczane Klient # ID: INT + Nazwisko: string + Imię: string + Adres: Adres «table» Klienci ID: INT {PK} Nazwisko: VARCHAR Imię: VARCHAR Adres_Kod:VARCHAR Adres_Miejscowość:... Adres_Nr: VARCHAR Adres + Kod: string + Miejscowość: string + Ulica: string + Nr: string «storage»

16 Dokumentacja i Jakość Oprogramowania 16/22Projektowanie bazy danych Atrybuty wielokrotne Atrybuty wielokrotne są realizowane jako osobne tabele Atrybuty wielokrotne są realizowane jako osobne tabele Klient # ID: INT + Nazwisko: string + Imię: string + Tel[*]: string «table» Klienci ID: INT {PK} Nazwisko: VARCHAR Imię: VARCHAR «table» NrTel ID: INT {FK} Nr: VARCHAR «storage»

17 Dokumentacja i Jakość Oprogramowania 17/22Projektowanie bazy danych Agregacje i asocjacje Asocjacje wiele-wiele, wielostronne i asocjacje z własnymi atrybutami są realizowane przez osobne tablice. Asocjacje wiele-wiele, wielostronne i asocjacje z własnymi atrybutami są realizowane przez osobne tablice. Pozostałe asocjacje i agregacje są realizowane jako relacje 1-1 i 1-wiele. Pozostałe asocjacje i agregacje są realizowane jako relacje 1-1 i 1-wiele.

18 Dokumentacja i Jakość Oprogramowania 18/22Projektowanie bazy danych Optymalizacja dostępu do tabel Definiowanie indeksów drugorzędnych Definiowanie indeksów drugorzędnych «table» Klienci ID: INT {PK} Nazwisko: VARCHAR {FK, NotNull} Imię: VARCHAR {FK,NotNull} Adres_Kod:VARCHAR Adres_Miejscowość: VARCHAR {FK} Adres_Nr: VARCHAR NIP: VARCHAR {FK} «PK» Primary_Key () «FK» Nazwisko_i_Imię () «FK» Miejscowość () «FK» NIP () {Unique, NotNull}

19 Dokumentacja i Jakość Oprogramowania 19/22Projektowanie bazy danych Operacje klas Realizowane w klasach modelowych Realizowane w klasach modelowych Realizowane w procedurach SQL Realizowane w procedurach SQL «append» «append» «update» «update» «delete» «delete»

20 Dokumentacja i Jakość Oprogramowania 20/22Projektowanie bazy danych Stworzenie fizycznej struktury danych CREATE TABLE tbl_Klient ( ID INT NOT NULL, Nazwisko VARCHAR NOT NULL, Imie VARCHAR NOT NULL PRIMARY KEY (ID) );

21 Dokumentacja i Jakość Oprogramowania 21/22Projektowanie bazy danych Zmiany projektowe Instrukcja SQL ALTER TABLE Instrukcja SQL ALTER TABLE Z typu wyliczanego nie można usuwać elementów. Z typu wyliczanego nie można usuwać elementów. Zwracać uwagę na zmianie zakresu i precyzji danych przy zmianie typów. Zwracać uwagę na zmianie zakresu i precyzji danych przy zmianie typów.

22 Dokumentacja i Jakość Oprogramowania 22/22Projektowanie bazy danych Literatura Dennis A., Haley Wixom B., Tegarden D.: System Analysis & Design. An Object-Oriented Approach with UML, John Wiley & Sons, Inc., USA 2001 Dennis A., Haley Wixom B., Tegarden D.: System Analysis & Design. An Object-Oriented Approach with UML, John Wiley & Sons, Inc., USA 2001 Geoffrey Sparks: Database Modeling in UML, ml Geoffrey Sparks: Database Modeling in UML, ml Coad P., Yourdon E.: Projektowanie obiektowe, Read Me, Warszawa 1994 Coad P., Yourdon E.: Projektowanie obiektowe, Read Me, Warszawa 1994 Celko J.,: SQL. Zaawansowane techniki programowania, MIKOM 1999 Celko J.,: SQL. Zaawansowane techniki programowania, MIKOM 1999


Pobierz ppt "Projektowanie bazy danych Jarosław Kuchta Dokumentacja i Jakość Oprogramowania."

Podobne prezentacje


Reklamy Google