Projekt struktury danych Symbol projektu: Opiekun projektu: Nazwa projektu: Nazwa dokumentu: Nr wersji: Projekt struktury danych Odpowiedzialny za dokument: Data pierwszego sporządzenia: Przeznaczenie: Data ostatniej aktualizacji: Wersja Opis modyfikacji Historia dokumentu Rozdział / strona Autor modyfikacji Data Projekt struktury danych przedstawia schemat struktury plików i schemat bazy danych. Do przedstawienia schematu bazy danych może być wykorzystany diagram ERD, chociaż zaleca się użycie diagramu klas. W strukturze bazy danych definiuje się komponenty danych (stanowiące interfejs dla warstw wyższych) oraz tabele i kwerendy definiowane w samej bazie danych. Spis treści 1. 2. Koncepcja struktury danych ....................................................................................................... 2 Struktura plików danych ............................................................................................................. 2 2.1. Miejsce przechowywania danych ..................................................................................... 2 2.2. Pliki danych ....................................................................................................................... 2 2.3. Szacowanie wielkości plików ........................................................................................... 2 3. Struktura bazy danych ................................................................................................................ 2 3.1. Diagram struktury bazy danych ........................................................................................ 2 3.2. Komponenty danych ......................................................................................................... 2 3.3. Tabele ................................................................................................................................ 3 3.4. Kwerendy .......................................................................................................................... 4 3.5. Szacowanie wielkości bazy danych .................................................................................. 5 317546989 1/5 2017-07-24 / 14:07:18 Projekt struktury danych 1. Koncepcja struktury danych Tu opisuje się ogólnie koncepcję projektową struktury danych. Uwzględnia się dane przechowywane w plikach i dane przechowywane w bazie danych. 2. Struktura plików danych 2.1. Miejsce przechowywania danych Wymienia się foldery, katalogi. Wymienia się główne formaty plików. 2.2. Pliki danych FILE_001 Faktura Opis: Plik faktury przekazywany do systemu finansowo-księgowego. Dane: Numer: String numer faktury Data wystawienia: Date Data transakcji: Date … Format: 2.3. XML Szacowanie wielkości plików Zamieszcza się tabelę z szacowaną ilością plików i wielkością każdego pliku. 3. Struktura bazy danych 3.1. Diagram struktury bazy danych Tu przedstawia się diagram klas (zalecane!) lub diagram ERD reprezentujący strukturę bazy danych 3.2. Komponenty danych Komponenty danych reprezentują interfejs, jaki wystawia warstwa danych dla warstw wyższych. Przedział „Klasy danych” określa klasy (zdefiniowane w warstwie biznesowej, a z jej braku w modelu klas), które są przekazywane jako obiekty danych do/z komponentu. Zakłada się, że każdy obiekt zawiera identyfikator (typu Integer) pozwalający jednoznacznie zidentyfikować obiekt w bazie danych. Klasy danych są wykorzystywane w operacjach komponentu, które to operacje wyszczególnia się w przedziale „Operacje”. Większość operacji jest stereotypu „get”, „set” lub „del”. Operacje tak oznaczone nie wymagają nazw, chyba że dla uniknięcia niejednoznaczności. Komponent operuje na tabelach wyszczególnionych w przedziale „Tabele”. Może też wykorzystywać kwerendy wyszczególnione w przedziale „Kwerendy”. Komponenty danych mogą być powiązane między sobą, co oznacza wykorzystywanie operacji jednego komponentu przez drugi komponent. 317546989 2/5 2017-07-24 / 14:07:18 Projekt struktury danych DCMP_001 Rejestr zamówień Opis: Komponent zapewniający dostęp do złożonych zamówień. Klasy danych: CLS_003 Zamówienie Operacje: set (zamówienie: Zamówienie) get (ID_zamówienia: Integer): Zamówienie get Zamówienia klienta(ID_klienta: Integer): Zamówienie[*] set Zmień zamówienie (zamówienie: Zamówienie) del Anuluj zamówienie (ID_zamówienia: Integer) Powiązania: DCMP_002 Rejestr towarów DCMP_004 Rejestr klientów DCMP_002 Rejestr towarów Opis: Komponent zapewniający dostęp do towarów Klasy danych: CLS_002 Towar ENUM_001 Kategorie towarów Operacje: set (towar: Towar) get (ID_towaru: Integer): Towar del (ID_towaru: Integer) set (ID_kategorii: Integer, nazwa: String) get (ID_kategorii: Integer): String DCMP_003 Cennik Opis: Komponent zapewniający dostęp do aktualnych cen Klasy danych: CLS_001 Cennik Operacje: set (ID_towaru: Integer; cena: Currency) get (ID_towaru: Integer): Currency get (kategoria: Kategoria towarów): (ID_towaru: Integer, cena: Currency)[*] Tabele: TBL_001 Cennik Powiązania: DCMP_002 Rejestr towarów DCMP_004 Rejestr klientów Opis: Komponent zapewniający dostęp do danych klientów Klasy danych: CLS_002 Klient Operacje: set (klient: Klient) get (ID_klienta: Integer): Klient Tabele: 317546989 TBL_004 Klienci 3/5 2017-07-24 / 14:07:18 Projekt struktury danych 3.3. Tabele Tabele są zdefiniowane na podobieństwo klas. Zamiast właściwości podaje się pola klas. Dla pól tekstowych definiuje się rozmiar. Klucze oznaczane są w zastrzeżeniach. Indeksy można podać w osobnym przedziale. Jeśli indeks jest złożony, to wyrażenie indeksu podawać po znaku równości. Proste indeksy można oznaczać po prostu zastrzeżeniami przy polach. Pola oznaczane jako PK i FK nie muszą być dodatkowo indeksowane. TBL_001 Cennik Opis: Pola: TBL_002 ID_towaru: Integer {FK Towary} identyfikator towaru cena: Currency cena bieżąca Towary Opis: Pola: Indeksy: ID: Integer {PK} klucz główny nazwa: String [50] nazwa towaru jm: String [5] jednostka miary kategoria: Integer {FK Kategorie Towarów} identyfikator kategorii nazwa {unique} Typy wyliczeniowe są też odwzorowane w tabele z podanymi danymi inicjującymi. TBL_003 Kategorie towarów Opis: Pola: ID: Integer {PK} Nazwa: String (0, "spożywcze") (1, "przemysłowe") Dane: 3.4. Kwerendy Kwerendy są definiowane na podobieństwo tabel. Można zdefiniować parametry kwerendy. W osobnym przedziale podaje się składowe z ich powiązaniami (lewo- lub prawostronnymi). Pola nie zawierają typu danej, lecz wyrażenie tworzące pole (odwołania do pól składowych). Można podać filtr odwołujący się do parametrów kwerendy. QRY_001 Lista towarów Opis: Parametry: ID_kategorii: Integer Składowe: TBL_002 Towary --> TBL_001 Cennik (Towary.ID=Cennik.ID_towaru) TBL_001 Cennik Pola: 317546989 ID_towaru = Towary.ID identyfikator towaru nazwa_towaru = Towary.Nazwa nazwa towaru 4/5 2017-07-24 / 14:07:18 Projekt struktury danych Filtr: 3.5. jm = Towary.jm jednostka miary cena = Cennik.cena cena z cennika Towary.kategoria = ID_kategorii Szacowanie wielkości bazy danych Zamieszcza się tabelę z wielkością każdej tabeli (przyrost roczny). 317546989 5/5 2017-07-24 / 14:07:18