DBC - Tworzenie prostej bazy danych

Zawartość artykułu:
- charakterystyka DBC - Kontenera Bazy Danych (ang. Database Container) - zalety wykorzystania
- tworzenie tabel / relacji / indeksów

DBC - Kontener Bazy Danych (ang. Database Container) jest strukturą, w której składowane są informacje dot. bazy danych (opisujące bazę danych). Mechanizmy udostępniane przez DBC umożliwiają między innymi zorganizowanie tabel, widoków oraz relacji pomiędzy nimi w spójną kolekcję elementów. Dodatkowo zyskujemy elastyczność w ich tworzeniu oraz modyfikacji.

Zalety wykorzystania DBC:
- zintegrowany (scentralizowany) słownik bazy danych
- definiowanie kluczy podstawowych "primary key" dla tabel
- definiowanie trwałych relacji pomiędzy tabelami
- wprowadzanie długich nazw (do 128 znaków) dla tabel oraz pól
- definiowanie wartości domyślnych, nagłówków, komentarzy, masek wprowadzania oraz opcji formatowania dla pól
- definiowanie klasy kontrolki służącej do obsługi na formatkach
- walidacja na poziomie pola i rekordu
- procedury składowane
- procedury wyzwalane "triggers" dla operacji "insert", "update" i "delete"
- wsparcie dla transakcji (chociaż w VFP9 istnieje również taka możliwość dla wolnych "free" tabel)
- definiowanie połączeń do zdalnych źródeł danych
- definiowanie widoków lokalnych oraz zdalnych
[źródło: Visual FoxPro Wiki, Visual FoxPro Programmer's Guide]

Tworzenie DBC:
W celu utworzenia kontenera bazy danych należy wydać bezpośrednio komendę: "CREATE DATABASE <nazwa_bazy_dabych>", a następnie "MODIFY DATABASE", aby przejść do edytora "Database Designer" lub skorzystać z "Project Manager": zaznaczyć "Databases" w grupie "Data", a następnię wybrać "New" i potwierdzić "New Database" -> efekt docelowy jest tożsamy.
vfp-010s

Po utworzeniu kontenera bazy danych możliwe jest dodawanie do niego nowych lub już istniejących elementów, między innymi tabel oraz relacji pomiędzy nimi.
Kolejnym krokiem będzie utworzenie dwóch przykładowych tabel: "dzialy" i "uzytkow". Sukcesywnie będzie ich przybywać.
Tworzenie tabeli "dzialy.DBF", w której zostaną zapisane informacje o działach w firmie:
vfp-011s
W celu utworzenia nowej tabeli można skorzystać z "Project Manager": zaznaczyć "Tables" w grupie "Data -> Databases", a następnię wybrać "New" i potwierdzić "New Table" lub kliknąć prawym przyciskiem myszy w "Database Designer", a następnie wybrać "New Table".
Powyższa sekwencja prowadzi do edytora "Table Designer", w którym możliwe jest zdefiniowanie struktury tabeli.
vfp-012s
W zakładce "Fields" definiujemy informacje o atrybutach (polach):
- dzialy_id, typ: Integer (AutoInc)
- d_symbol, typ: Char(10)
- d_opis, typ Varchar(100)
Opis typów danych obsługiwanych w VFP znajduje się w jednym z kolejnych artykułów. Jest on dostępny również dostępny na stronach producenta.
vfp-013s
W zakładce "Indexes" definiujemy informacje o indeksach. Indeks jest strukturą danych zwiększającą prędkość wykonywania operacji na tabeli. [źródło: Wikipedia]
- dzialy_id, typ: Primary - klucz podstawowy (będzie jednoznacznie identyfikował rekordy w tabeli)
- d_symbol, typ: Regular (wykorzystamy go jako do sortowania danych na liście (grid)
Zakładkę "Table" na tym etapie pomijamy. Wybieramy "OK", aby kontynuować.
vfp-014s

Analogicznie postępujemy z kolejną tabelą "uzytkow.DBF", w której zostaną zapisane użytkownikach programu.
- atrybuty (pola)
uzytkow_id, typ: Integer (AutoInc)
u_login, typ: Char(32)
u_haslo, typ: Char(32)
u_imie, typ: Varchar(64)
u_nazwisko, typ: Varchar(64)
u_dzialy_id, typ: Integer
- indeksy
uzytkow_i, wyrażenie: uzytkow_id, typ: Primary
u_dzialy_i, wyrażenie: u_dzialy_id, typ: Regular

Kolejnym krokiem będzie połączenie tabel "dzialy" i "uzytkow" relacją. Należy zaznaczyć indeks dzialy_id w tabeli "dzialy" i "przeciągnąć" (drag'n'drop) do tabeli "uzytkow" na wysokości indeksu "u_dzialy_i".
vfp-015s
Po utworzeniu relacji możemy zdefiniować ograniczenia integralnościowe, zgodnie z założeniami relacyjnego modelu bazy danych. Należy wykonać następujące kroki:
- zamknąć edytor "Database Designer"
- wydać komendę "CLOSE DATABASES"
- wydać komendę "OPEN DATABASE <nazwa_bazy_danych> EXCLUSIVE"
- wydać komendę "MODIFY DATABASE"
- kliknąć prawym przyciskiem myszy w "Database Designer", a następnie wybrać "Edit Referential Integrity"
vfp-016s
Możemy wg potrzeb zdefiniować reguły dot. aktualizacji "Rules for Updating", kasowania "Rules for Deleting" oraz dodawania rekordów "Rules for Inserting".

Creative Commons License
Ten tekst jest dostępny na licencji Creative Commons Uznanie autorstwa-Bez utworów zależnych 3.0 Polska.

O mnie

Paweł Ostaszewski

Witam serdecznie na mojej stronie! Jestem programistą z zawodu i zamiłowania. Programuję w FoxPro, C# oraz PHP. Interesuję się szeroko pojętą problematyką baz danych. W wolnym czasie uprawiam sport i gotuję. Mam nadzieję, że znajdziesz tutaj coś ciekawego.

Paweł Ostaszewski

Statystyki

Odwiedza nas 727 gości oraz 0 użytkowników.

Polecam

www.jeziorakczarter.plCzarter popularnych jachtów żaglowych na najdłuższym w Polsce, pełnym malowniczych zatok i wysepek, jeziorze Jeziorak z portem w Iławie. Urlop pod żaglami!

Projekty

helios

Sprawdź www.elewatorsoft.pl