piątek, 26 października 2012

System przetwarzania danych

Zanim przejdziemy do XML kilka słów na temat elementów składających się na system przetwarzania danych. Co to w ogóle jest?

Wyobraźmy sobie, że chcemy zarejestrować działalność gospodarczą. Musimy wypełnić wniosek. Wniosek trafia do urzędnika, który go rejestruje, czego efektem jest np. nadany numer REGON, NIP i parę innych informacji.

Wyobraźmy sobie, że robimy to przez internet (wyobrażamy sobie sytuację idealną a nie odtwarzamy w wyobraźni o wiele ciekawszą polska rzeczywistość): 
  1. Zakładamy sobie konto przedsiębiorcy.
  2. Wypełniamy formularze wniosków
  3. Wnioski są zapisywane w bazie danych
  4. Jesteśmy informowani o nadanych nam numerach identyfikacyjnych
  5. Urzędnik może edytować wybrane dotyczące nas informacje ale też może sobie zrobić zestawienie wybranych informacji dotyczących przedsiębiorców
  6. My w każdej chwili (po wejściu na nasze indywidualne konto) możemy zaktualizować dotyczące nas informacje
Czynności te umożliwia system przetwarzania danych, składający się z następujących elementów:
  1. Bazy danych
  2. Warstwy wizualizacji
  3. Warstwy przetwarzania informacji 


Baza danych - to nic innego jak zestaw tabel. Kolumny tabeli odpowiadają podziałowi ze względu na rodzaj informacji (np. imię, nazwisko, miejscowość itd.). Wiersze tabeli odpowiadają kolejnym egzemplarzom obiektów, których cechy podzielone są na kolumny.

Wizualizacja - czyli to co widzimy na ekranie monitora. Formularz do wypełniania danych, raport czy tabelka z zestawieniem przedsiębiorców to warstwa wizualizacji informacji.

Przetwarzanie - to warstwa, do którego żaden z użytkowników nie ma dostępu. To program, który odpowiada za prawidłowy przepływ informacji. Gdy wysyłamy informacje wprowadzone do formularza, program przetwarzający dane "wkłada" zawartość pola formularza o nazwie "imię" do odpowiedniej komórki tabeli, gdzie kolumna o nazwie "imię" przecina się z wierszem o identyfikatorze tego konkretnego przedsiębiorcy. Podobnie jeśli chcemy zobaczyć zestawienie przedsiębiorców w województwie lubuskim, program wybierze odpowiednie komórki i przekaże do warstwy wizualizacji, która w odpowiedni sposób wyświetli je na ekranie.

Informacje dodatkowe:
  • Każde pole w formularzu ma przypisaną do niego kolumnę w tabeli.
  • Pole w formularzu zatem służy do definiowania wartości zmiennej.
  • Kolumna w tabeli służy do przechowywania wartości zmiennej.
  • Zmienna to pojedyncza informacja na temat jakiegoś bytu, np. przedsiębiorcy.
  • Zmienna powinna mieć opisany format (będzie o tym później)
  • Pole formularza powinno mieć reguły walidacyjne, czyli warunki określające kiedy to, co  wpisujemy w pole formularza ma wartość w aktualnym kontekście dopuszczalną 
  • Dobrze jest, gdy oprogramowanie do wprowadzania i edycji informacji (formularze) jest odseparowane od oprogramowania do tworzenia raportów i zestawień (dlaczego? o tym przy innej okazji)


Wstęp

Szukając informacji o XML trudno jest się odnaleźć w gąszczu informacji. Od czego zacząć? Które elementy są kluczowe? Co oznaczają pojęcia wyglądające znajomo ale desygnujące wcale nieoczywiste byty? Świetny kurs na stronie W3C także w pewnym momencie zapomina o tłumaczeniu podstaw...

Druga sprawa, to komunikacja między użytkownikami a wytwórcami systemów przetwarzania danych, która to komunikacja jest źródłem frustracji dla obu stron. Informacje tutaj zamieszczone mają zatem na celu nie tylko usystematyzowanie podstaw, ale też stworzenie elementarza umożliwiającego minimum komunikacji.

Przedzierając się przez albo zbyt szczegółowe albo zbyt przemądrzałe teksty postanowiłem podsumować zebrane informacje w zwartych i maksymalnie prostych pigułkach informacyjnych. Może komuś jeszcze się to przyda a może będzie przydatne tylko dla mnie jako notatnik - zobaczymy.

Jedno jest pewne: nic lepiej nie porządkuje wiedzy niż próba przekazania jej komuś dalej. ;-)

Na początek kilka słów wyjaśnienia.

1. Co trzeba wiedzieć, by rozumieć o czym mowa?

Warto znać zasady HTML. Wiedza, że HTML to sposób na formatowanie tekstu wyświetlanego w przeglądarce, że zapisanie w pliku tekstowym (z rozszerzeniem .html) tekstu: <b>"gupi tekst"</b> spowoduje wyświetlenie w przeglądarce internetowej pogrubionego tekstu "gupi tekst", jest niezbędna. ;-)

No dobra, ale na poważnie to naprawdę wystarczy podstawowa wiedza, niekoniecznie programistyczna, o tym czym jest HTML, pętla, instrukcja warunkowa. Przyda się choćby mgliste pojęcie czym jest baza danych: że jest to tabela z informacjami uporządkowanymi w kolumnach... ;-)

Jak widać trudno mi przestać żartować, ale wydaje mi się, że wiedza czym jest MVC, albo CRUD nie jest niezbędna... ;-)

2. Grupa docelowa, czyli do kogo te banialuki?

Nie jest moim celem pisanie podręcznika informatycznego. Moim celem jest przybliżenie w krótszej niż ten wstęp formie podstawowych haseł związanych z XML, by umożliwić nawiązanie dialogu między wytwórcami oprogramowania, a odbiorcami tego oprogramowania. Konflikty między zleceniodawcą (zamawiającym) a zleceniobiorcą (wytwórcą) wynikają bardzo często z bariery komunikacyjnej: zleceniodawca nie jest w stanie zrozumieć komunikatów wytwórcy, a wytwórca nie jest w stanie wyjaśnić zleceniodawcy ograniczeń programistycznych.

Zależy mi na zasygnalizowaniu podstaw, by niewtajemniczeni wiedzieli do czego służy nóż (xsd), do czego widelec (xml), a do czego łyżeczka (xslt). ;-)