Domena inaczej

Jako intensywny i wieloletni Bazyl (takim mianem określam ludzi pracujących z bazami danych) mam siłą rzeczy do czynienia nie tylko z tabelami, rekordami i zapytaniami SQL ale również – zwłaszcza przez ostatnie 2-3 lata – z narzędziami do modelowania danych.

Nie mam za sobą żadnego teoretycznego, formalnego przygotowania do modelowania danych. Obca jest mi szczegółowa znajomość diagramów UML. Modeluję dane ad-hoc i od niedawna. Ale modeluję. A co.

Główne narzędzia, jakich do tej pory używałem w tym niecnym celu, to Framework Manager (firmy Cognos), Enterprise Architect (firmy Sparx Systems) oraz Embarcadero Data Architect i Embarcadero Business Architect (firmy Embarcadero Technologies). Oprócz tego zdarza mi się też modelować jakieś prostsze rzeczy w Excelu, Accessie a także na starej, dobrej tablicy, przy użyciu starych, dobrych mazaków 😉

Ale do rzeczy, mociumpanie. Otóż całkiem niedawno odkryłem w Embarcadero maleńką, ale jakże przydatną opcję domenowania kolumn. Nie wiem, czy określenie „domenowanie kolumn” ma jakikolwiek sens, ale ponieważ termin ten całkiem mi tu pasuje, będę go używał. W końcu mój blog jest najmojszy i mogę sobie nazwać kurę kaczką i gówno mi kto zrobi 😉

W telegraficznym skrócie, idea zasadza się na tym, że – dodając nową kolumnę – wybieramy sobie z uprzednio zdefiniowanej listy domenę, do której kolumna ta należy. Efekt jest taki, że wszystkie atrybuty kolumny zostają natychmiast wypełnione poprawnymi wartościami, ponadto niektóre z nich zostają zablokowane.

Brzmi nudno? No bo to jest nudne 😉 Inaczej nie byłoby tego na tym blogu.

Spróbujmy pokazać to na przykładzie. Załóżmy, że modelujemy system katalogowania książek. I w tym systemie mamy już utworzoną tabelę autorów, a w niej kolumnę [autor_id] typu numerycznego, 32-bitową, NOT NULL.

Tworzymy sobie teraz domenę nazwaną „ID Autora”. Wszystkie atrybuty pobieramy z ww. kolumny [autor_id].

Od tej pory, gdziekolwiek potrzebujemy stworzyć nową kolumnę – referencję do tabeli autorów, wybieramy tylko domenę „ID Autora” i wszystkie parametry tej kolumny wypełnią się automatycznie. Czyli: nazwa, typ danych INT(32) oraz NOT NULL. A także, jeżeli zdefiniowaliśmy jakiekolwiek inne atrybuty, różne inne atrybuty 😉

Brzmi banalnie?

Może i tak. Ale teraz wyobraźmy sobie system oparty na kilkunastu różnych serwerach baz danych, z kilkudziesięcioma bazami na każdym serwerze, ponad setką tabel w każdej bazie oraz mnóstwem kolumn w każdej tabeli. I załóżmy, że musimy dodać do jakiejś od lat nie ruszanej tabeli kolumnę „kolor stolca” albo „model muszli” i nie pamiętamy, czy kolory były zapisane za pomocą UTF czy ISO, czy maksymalna długość nazwy koloru to było 20 czy 45 znaków, czy dopuszczamy wartości NULL czy nie. I tak dalej. Tymczasem możemy po prostu wybrać domenę „Kolor Stolca” i wszystko się samo, samiutko wypełni. Genialna sprawa.

Przypuszczam, że Czytelnik odpadł już ze dwa akapity temu i teraz tylko lekko pochrapuje. Jeżeli jednak udało Ci się doczołgać aż tutaj, naści sucharka:

W zoologicznym pięcioletnia dziewczynka do sprzedawcy:
– Poplosę klólicka
– OK, chodź dziecko ze mną, o tutaj mamy króliczki. Jakiego chcesz? Może biały? Może czarny? A może łaciaty?
– Mojego pytona pieldoli jaki on ma kolol.

Dodaj komentarz

6 komentarzy do "Domena inaczej"

Powiadom o
avatar
Sortuj wg:   najnowszy | najstarszy | oceniany
valdie68
Gość

😉

agnieszka_sto
Gość
butter
Gość

do zabaw z modelowaniem polecam Power Designer'a [modele logiczne i fizyczne], reverse engeenering itp.

Marian
Gość

W '92 bawiłem się czymś o nazwie Common Data Dictionary/Repository (producent DEC). W b.d. tworzyło się definicje domen, a potem można było 'domenować' nie tylko w DDL-u ale też w kodach źródłowych aplikacji (C,Pascal,(chyba nawet) Assembler).

'Wymądrzam' się żeby dać znać, że jeszcze żyję 😉
Pozdrawiam, Skiba

wpDiscuz