EasyCASE - Projektowanie baz danych
Dlaczego CASE?
[edytuj]Nazwą CASE (ang. Computer Aided System Engineering) określa się narzędzia służące do wspomagania projektowania oprogramowania.
W przypadku, gdy tworzony projekt informatyczny jest prosty, często pomija się etap projektowania, ale czy słusznie? Każdy programista, niezależnie od stopnia złożoności projektu po pewnym czasie staje przed koniecznością dokonania w nim poprawek.
Aby określić miejsce, w którym taką poprawkę należy nanieść, trzeba przeanalizować często cały kod źródłowy. W przypadku małych projektów nie jest to duży kłopot. Jednakże gdy projekt jest większy i pracuje nad nim wiele osób, pojawia się problem. Jeśli dodamy do tego potrzebę sprawdzenia, czy poprawka w jednym module nie spowoduje błędnego działania innego modułu, problem staje się bardzo duży.
Do rozwiązywania takich dużych problemów służą właśnie metody CASE. Oczywiście przedstawienie wszystkich zagadnień z dziedziny określanej tą nazwą wymagałoby wielotomowej monografii, dlatego też w niniejszym podręczniku zajmiemy się problemem projektowania baz danych.
Czym jest Easy CASE
[edytuj]EasyCASE jest prostym, ale posiadającym spore możliwości programem do CASE. Umożliwia graficzne zaprojektowanie struktury systemu, określenie przepływów danych między modułami, zaprojektowanie struktur danych, a także wygenerowanie tzw. schematu – zestawu poleceń generujących obiekty bazy danych. Posiada wsparcie dla następujących języków definicji danych DDL (ang. Data Definition Language): ANSI SQL, XBASE(Clipper), XBASE(dBASE III Plus), XBASE(dBASE IV), SQL(dBASE IV SQL), XBASE(FoxPro), SQL(FoxPro SQL), SQL(Informix), SQL(Ingres), SQL(ORACLE), SQL(OS/2 Extended Ed), SQL(Paradox DDL), SQL(Progress), SQL(R:BASE SQL), SQL(Rdb/VMS), SQL(SQLBase), SQL(SQL Server), SQL(Sybase), SQL(Netware SQL), SQL(Watcom SQL), SQL(XDB SQL).
EasyCASE jest programem dość starym, jednakże ze względu na fakt, że definicje języków DDL zawarte są w plikach tekstowych, istnieje możliwość dość prostego dodania nowego dialektu.
Repozytorium danych
[edytuj]Informacje o wszystkich obiektach, które można opisać w EasyCASE, przechowywane są w tzw. repozytorium danych. Repozytorium wykorzystywane przez EasyCASE składa się z dwóch części:
- repozytorium bazodanowego,
- repozytorium dyskowego.
W repozytorium bazodanowym (wykorzystującym standardowe pliki .dbf) przechowywane są informacje o strukturze rekordów poszczególnych encji oraz o parametrach pól (typ i długość). Repozytorium dyskowe tworzą pliki zawierające opisy tekstowe (pełniące rolę dokumentacji) oraz pliki binarne opisujące poszczególne diagramy.
Ze względów bezpieczeństwa katalog projektu zawiera również kopię zapasową repozytorium, w podkatalogu BACKUP.
Ponieważ pliki repozytorium danych są standardowymi plikami (.dbf i .txt) możliwa jest ich edycja przy pomocy zewnętrznego oprogramowania. Musimy jednakże pamiętać, że o ile zmiany w plikach tekstowych nie są niebezpieczne, o tyle "ręczne" zmiany w plikach .dbf mogą doprowadzić do utraty spójności repozytorium. Efekty mogą być nieprzewidywalne, dlatego nie należy takich zmian wprowadzać bez zapoznania się ze strukturą repozytorium. Nie należy również zmieniać nazw plików dokumentacyjnych – zawierają one klucz główny wskazujący, którego obiektu dotyczy opis.
Tworzenie projektu
[edytuj]Pierwszym krokiem po uruchomieniu programu powinno być określenie katalogu, w którym zapisywane będą dane repozytorium. Program pamięta ostatnio otwarty projekt, toteż nie musimy tego robić za każdym razem.
Aby utworzyć projekt, należy:
- utworzyć pusty katalog w wybranym miejscu na dysku
- wskazać go jako katalog projektu.
Program utworzy w wybranym katalogu odpowiednią strukturę plików.
Wybór metodyki
[edytuj]DFD – diagram przepływu danych – służy do prezentowania w jaki sposób dane przepływają oraz są przetwarzane w systemie.
Diagramy przepływu danych (ang.Data Flow Diagrams – DFD – można również spotkać oznaczenie DPD) – wykorzystuje się do modelowania funkcji pod kątem przekazywania danych między procesami i innymi obiektami. Pozwalają zaznaczyć w modelu, na wielu poziomach szczegółowości, obecność rozpoznanych funkcji użytkowych oraz z jakich danych korzysta każda z wprowadzonych na diagram funkcji.
Diagramy przepływu danych to narzędzie analizy i projektowania systemów, zwłaszcza w odniesieniu do systemów transakcyjnych. W tej klasie systemów podstawową rolę odgrywają uporządkowane funkcje o określonym stopniu złożoności. DFD znajdują również zastosowanie w modelowaniu procesów gospodarczych organizacji, w planowaniu gospodarczym i strategicznym.
DFD – służy do prezentowania, w jaki sposób dane przepływają oraz są przetwarzane w systemie. Opisuje również procesy przetwarzające dane. Paradoksalnie technika o najdłuższym okresie użytkowania, zachowująca od końca lat sześćdziesiątych aktualność, co w dziedzinie informatyki należy do rzadkości.
ERD – diagram zależności encji (ang.Entity Relationship Diagram) służy do projektowania modelu danych: atrybutów encji oraz relacji pomiędzy nimi.
Podstawową funkcją diagramu ERD jest przejrzyste przedstawienie modelu danych. Dzięki temu już na etapie projektowania można przeprowadzić oprócz identyfikacji poszczególnych struktur danych ich wstępną normalizację (sprowadzenie do kolejnych postaci normalnych). Umożliwia to zmniejszenie kosztów wdrożenia, gdyż zmiany na etapie projektu nie wymagają zmian w kodzie aplikacji.
Atrybuty encji przechowywane są w repozytorium, dzięki temu ułatwiona jest np. kontrola zgodności typów pomiędzy encjami – atrybut będący kluczem głównym (PK – ang.Primary Key) w jednej encji musi mieć ten sam typ danych, co odwołujący się do niego atrybut będący kluczem obcym (FK – ang.Foreign Key) w innych encjach.
Parametrem opisu atrybutu encji (oprócz takich informacji jak typ danych czy ich długość) mogą być również opisy tekstowe. Nie są one co prawda przetwarzane później na elementy modelu fizycznego bazy danych, ale istnieje możliwość wygenerowania jednego z wielu predefiniowanych raportów ukazujących zestawienie poszczególnych elementów modelu.
Na etapie modelowania diagramu ERD definiowane są również relacje między encjami. Każda relacja może zostać pokazana w postaci linii łączącej dwie encje, zakończonej odpowiednim oznaczeniem krotności relacji.