Najlepsza baza danych

Muszę się przyznać, że często trudno mi zachować spokój, gdy widzę ludzi tracących mnóstwo energii i czasu na próby ustalenia, który program (system, narzędzie) jest najlepszy.

Muszę się przyznać, że często trudno mi zachować spokój, gdy widzę ludzi tracących mnóstwo energii i czasu na próby ustalenia, który program (system, narzędzie) jest najlepszy. Gdy jednak zacząłem opisywać najbardziej drażniące mnie przypadki, przyszło mi do głowy, że może warto najpierw pokazać pozytywny przykład sposobu dokonywania oceny. Bo oceniać trzeba, i nie chodzi o to, żeby nie wybierać, lecz by wybierać rozsądnie - ten produkt, który jest najlepszy do realizacji konkretnego zadania. Nawet jeśli nie jest najnowszy ani najmodniejszy i rzeczy, które nie są nam potrzebne, robi gorzej niż konkurenci.

Jako wzór (jeden z wielu możliwych) metodycznego podejścia do wyboru bazy danych zaprezentuję metodę nazywaną często W/S (czyli „Weight and Score"). Posłużę się w tym celu bardzo prostym przykładem, podanym w specjalnym wydaniu „DBMS", Summer 1990, przez Roba Gerritsena, prezesa DBVisions Inc., niezależnej firmy consultingo-wej z Pensylwanii.

Załóżmy, że mamy następujący problem: obsługa zamówień składanych przez klientów firmy.

Będziemy mieli dwa zbiory danych: KLIENCI i ZAMÓWIENIA. Chcemy cc miesiąc robić zestawienie wszystkich klientów, także i tych, którzy akurat niczego nie zamówili. Zestawienie będzie worzone przez operację złączenia (JOIN), a powyższe wymaganie najłatwiej będzie zrealizować, mając do dyspozycji OUTERJOIN.

Chcemy uniemożliwić wprowadzenie zamówienia dla nie istniejącego klienta, istotna jest więc realizacja przez system dynamicznej kontroli integralności (relational integrity), gdyż oszczędzi nam to sporo programowania.

I wreszcie użytkownicy chcieliby mieć możliwość notowania przy każdym kliencie tekstu z jego charakterystyką.

Bazując na powyższych wymaganiach przydzielamy następujące wagi (z przedziału 1 - 10): outer join - 10, relational integrity - 6, memo fields-1.

Warto zauważyć, że inne wymagania spowodują przypisanie tym samym cechom innych wag. Na przykład dla komputerowej ewidencji księgozbioru zasadnicze znaczenie mogą mieć długie opisy. W tym przypadku wagi mogą być ustalone odpowiednio na: 3,8,10.

Zastosowaliśmy wagi z przedziału 1-10, oczywiście można wybrać inne, np. 1-100.

W omawianym przykładzie wzięto pod uwagę trzy bazy: Ingres, Oracle i Sybase Data Server. Dla każdej z nich trzeba teraz ustalić, w ilu procentach spełnia każdy z postawionych przez nas warunków. Na przykład Ingres nie realizuje outer join, Oracle nakłada na realizację tej funkcji pewne ograniczenia, Sybase realizuje ją bez zastrzeżeń. Tak więc przypisujemy odpowiednio: 0%, 80%, 100%. Podobnie trzeba przeanalizować pozostałe cechy, oczywiście posługując się wiarygodnymi źródłami danych o możliwościach każdego z produktów.

Jak widać, kolejność jest dokładnie odwrotna, co chyba nie wymaga komentarza.

Oczywiście przykład jest bardzo prosty, chodzi przecież tylko o pokazanie metody (w szczególności nie należy na podstawie tak okrojonej analizy wyciągać daleko idących wniosków o przydatności wymienionych w nim, konkretnych baz danych).

dok. ze str. 15

Trzeba też pamiętać, że narysowanie tabelki i zastosowanie arkusza kalkulacyjnego nie zapewnia nieomylności, ani nie daje automatycznych gwarancji pełnego obiektywizmu. Przecież zarówno dobór wag, jak też ocena tego, w jakim stopniu każda z baz spełnia poszczególne wymagania, jest dokonywana subiektywnie. Dlatego wydaje się, że dopiero gdy różnica pomiędzy wynikami przekracza 20%^ możemy sądzić, że jeden program jest naprawdę lepszy (do realizacji określonych zadań!).

Oceniając wyniki, warto jeszcze zbadać ich wrażliwość na zmiany poszczególnych wag. Załóżmy, że oceniliśmy wagę możliwości wycofywania transakcji (rollback reco-very) na 6 punktów, jednak mamy wątpliwości, czy w przyszłości nie będzie to bardzo ważna cecha. Spróbujmy zwiększyć wagę i powtórzyć obliczenie. Jeśli wygrywa ten sam produkt, można spać spokojnie. Jeśli wyraźnie lepszy jest inny, musimy dokładniej zbadać znaczenie wycofywania transakcji, aby nabrać pewności, że przydzielamy tej funkcji właściwą wagę.

Opisana metoda może być szczególnie cenna, gdy wybór produktu ma być dokonany zespołowo. Prezentowane podejście pozwala bowiem unikać zasadniczych starć zażartych miłośników produktu X z zawziętymi zwolennikami Y. Dyskusja zostaje sprowadzona do problemów technicznych, np. czy i na ile ważny jest generator raportów, a wtedy dużo łatwiej o rzeczową dyskusję i kompromisy. Ostatecznie, jeśli nie udaje się wynegocjować jednolitych wag, można posłużyć się średnią

arytmetyczną wszystkich propozycji.

Bardzo istotna część pracy została ukryta - stanowi ją sprawdzenie, w jakim stopniu poszczególne produkty spełniają nasze wymagania. Aby utrzymać rozmiary badania w rozsądnym zakresie, należy ograniczyć liczbę badanych kandydatów przez zastosowanie wstępnych warunków, np. „pozwala na zastosowanie haseł ograniczających dostęp" lub „istnieje wersja sieciowa".

Niezależnie od tego, czy program ma być zakupiony, czy będzie pochodził z innych źródeł, warto zastanowić się nad kosztami przedsięwzięcia. Światowe doświadczenia sugerują następującą hierarchię ich składników (od największych do najmniejszych):

- koszty utrzymywania aplikacji

- koszty stworzenia aplikacji

- koszty zakupu oprogramowania narzędziowego.

Niestety tak się składa, że jedynym, widocznym od razu w postaci konkretnej sumy składnikiem kosztów jest cena zakupu programów, i na nią jest największy nacisk. W metodzie W/S można umieścić cenę na przynajmniej dwa sposoby: jako jedno z wymagań, opatrując ją wagą stosowną do istotności warunków cenowych, lub dzieląc cenę produktu przez liczbę uzyskanych przezeń punktów;' W ten drugi sposób można uzyskać cenę jednego punktu.

Istotny wreszcie jest wybór cech, które mają być oceniane, ale to wymagałoby zagłębienia się w działanie baz danych, co chyba zrobimy przy innej okazji.

I wreszcie na koniec zauważmy, że przyjęty w metodzie W/S schemat oceny może być z powodzeniem stosowany do oceny różnych produktów, a nie tylko baz danych.


IBM Think Digital Summit Poland, 16-17 września 2020
TOP 200