Skrypty SQL

5/5 - (1 vote)

Skrypty SQL to zestaw poleceń wykorzystywanych do manipulowania danymi w bazach danych za pomocą języka SQL (Structured Query Language). Są to zapytania, które umożliwiają tworzenie, modyfikowanie i zarządzanie strukturami bazy danych, jak również manipulowanie danymi przechowywanymi w tych strukturach. Skrypty SQL mogą zawierać pojedyncze zapytania, jak i złożone procedury umożliwiające automatyzację różnych działań.

Skrypty SQL w zarządzaniu bazami danych są niezbędne, aby umożliwić tworzenie tabel, indeksów, procedur składowanych, funkcji, a także zarządzanie użytkownikami i ich uprawnieniami. Można je wykorzystywać do wprowadzania nowych danych, aktualizowania istniejących rekordów, usuwania danych lub przeprowadzania różnych operacji na tabelach. Podstawowe polecenia SQL, takie jak SELECT, INSERT, UPDATE, DELETE, pozwalają na pełne zarządzanie zawartością bazy danych.

Tworzenie i modyfikacja struktur bazy danych to jedna z kluczowych funkcji skryptów SQL. Skrypty te mogą zawierać polecenia takie jak CREATE TABLE, które pozwala na tworzenie nowych tabel w bazie danych, czy ALTER TABLE, używane do modyfikowania istniejących tabel, np. dodawania nowych kolumn. Dodatkowo, w przypadku tworzenia bardziej zaawansowanych struktur, takich jak indeksy czy widoki, skrypty mogą zawierać polecenia typu CREATE INDEX oraz CREATE VIEW. Te operacje pozwalają na optymalizację dostępu do danych i łatwiejsze tworzenie złożonych zapytań.

Manipulowanie danymi za pomocą skryptów SQL jest równie ważne. Skrypt może zawierać zapytania takie jak INSERT INTO, które pozwala na wprowadzanie nowych danych do tabel, czy UPDATE, które umożliwia modyfikowanie już istniejących rekordów w bazie. Możliwe jest również usuwanie danych przy pomocy polecenia DELETE. Skrypty SQL mogą być także używane do tworzenia zapytań do bazy danych, które zwracają dane na podstawie określonych kryteriów, np. za pomocą polecenia SELECT, umożliwiającego filtrowanie i sortowanie danych.

Bezpieczeństwo i optymalizacja zapytań SQL są równie istotne podczas pracy ze skryptami. Niewłaściwe użycie zapytań może prowadzić do utraty danych lub zagrożeń związanych z bezpieczeństwem, np. ataków typu SQL injection. Aby temu zapobiec, warto korzystać z odpowiednich praktyk programistycznych, takich jak stosowanie zapytań przygotowanych (prepared statements), które pozwalają na bezpieczne wprowadzanie danych użytkownika do zapytań. Ponadto, dobrze napisane skrypty SQL powinny być zoptymalizowane pod kątem wydajności, np. przez odpowiednie indeksowanie tabel czy ograniczanie zakresu zwracanych danych.

Automatyzacja procesów za pomocą skryptów SQL to kolejna kluczowa cecha tego narzędzia. W dużych bazach danych, które zawierają tysiące rekordów, manualne wprowadzanie zmian staje się czasochłonne i podatne na błędy. Dzięki skryptom SQL można zautomatyzować procesy, takie jak migracje danych, generowanie raportów czy aktualizowanie danych w dużej skali. Skrypty te mogą być uruchamiane na określonych harmonogramach lub wywoływane ręcznie przez administratorów baz danych w razie potrzeby.

Skrypty SQL są potężnym narzędziem w zarządzaniu bazami danych, umożliwiającym zarówno tworzenie struktury bazy danych, jak i manipulowanie danymi. Odpowiednio napisane skrypty zapewniają optymalizację pracy z danymi, a także pomagają w automatyzacji procesów, co jest niezbędne w dużych systemach informacyjnych.

Skrypty SQL stanowią podstawowe narzędzie pracy w obszarze zarządzania bazami danych i tworzenia aplikacji opartych na danych. SQL (Structured Query Language) jest językiem deklaratywnym, który umożliwia definiowanie, manipulowanie oraz kontrolowanie danych w relacyjnych bazach danych. Skrypty SQL pozwalają na automatyzację zadań, wykonywanie złożonych operacji oraz utrzymanie spójności i integralności danych, stanowiąc niezbędny element pracy administratorów baz danych, programistów i analityków danych.

Skrypty SQL to nic innego jak zestaw instrukcji zapisanych w jednym pliku lub bloku kodu, które mogą być wykonywane w sposób sekwencyjny lub warunkowy. Mogą obejmować polecenia tworzenia struktur bazodanowych, takie jak tabele, widoki, indeksy czy procedury składowane, jak również instrukcje manipulacji danymi, w tym wstawianie, aktualizowanie, usuwanie oraz pobieranie danych. Dzięki skryptom możliwe jest jednorazowe wykonanie serii operacji, co zwiększa efektywność pracy i minimalizuje ryzyko błędów wynikających z ręcznego wprowadzania poleceń.

Skrypty SQL pełnią również funkcję dokumentacyjną i kontrolną w projektach bazodanowych. Dzięki nim można precyzyjnie odtworzyć strukturę bazy danych, przywrócić jej stan do określonego momentu lub wdrożyć zmiany w środowisku testowym i produkcyjnym w sposób powtarzalny. W dużych systemach informatycznych, gdzie współpraca wielu programistów jest niezbędna, skrypty SQL umożliwiają synchronizację schematów baz danych oraz ułatwiają zarządzanie wersjami i migracjami danych.

Jednym z kluczowych zastosowań skryptów SQL jest automatyzacja procesów administracyjnych. Administratorzy baz danych mogą tworzyć harmonogramy wykonywania skryptów w celu regularnego tworzenia kopii zapasowych, aktualizacji danych, monitorowania wydajności systemu czy oczyszczania niepotrzebnych rekordów. Dzięki temu możliwe jest utrzymanie ciągłości działania systemów oraz zapewnienie bezpieczeństwa i integralności danych.

Skrypty SQL umożliwiają również implementację logiki biznesowej po stronie bazy danych. Procedury składowane, wyzwalacze (triggery) oraz funkcje definiowane przez użytkownika pozwalają na realizację złożonych operacji, które mogą być wywoływane w odpowiedzi na konkretne zdarzenia lub zapytania. Takie podejście zwiększa wydajność aplikacji, gdyż część obliczeń i kontroli wykonywana jest bezpośrednio w bazie danych, minimalizując ruch sieciowy i obciążenie aplikacji klienckiej.

Rodzaje skryptów SQL

Skrypty SQL można podzielić na kilka podstawowych kategorii w zależności od ich przeznaczenia. Pierwszą grupą są skrypty DDL (Data Definition Language), które służą do definiowania i modyfikowania struktury bazy danych. W ich skład wchodzą polecenia takie jak CREATE, ALTER czy DROP, umożliwiające tworzenie tabel, widoków, indeksów oraz zmianę ich struktury. Skrypty DDL są kluczowe na etapie projektowania bazy danych i wprowadzania zmian w schematach istniejących baz.

Drugą grupą są skrypty DML (Data Manipulation Language), które pozwalają na operacje na danych przechowywanych w bazie. Należą do nich instrukcje INSERT, UPDATE, DELETE oraz SELECT. Skrypty DML są podstawą realizacji większości operacji biznesowych, ponieważ umożliwiają wstawianie nowych rekordów, modyfikowanie istniejących danych, usuwanie niepotrzebnych rekordów oraz pobieranie informacji w formie raportów lub zestawień.

Trzecią kategorię stanowią skrypty DCL (Data Control Language), które odpowiadają za zarządzanie uprawnieniami i bezpieczeństwem w bazie danych. Polecenia takie jak GRANT i REVOKE pozwalają definiować, które konta użytkowników mają dostęp do określonych obiektów bazy, a także jakie operacje mogą na nich wykonywać. Skrypty DCL są szczególnie istotne w środowiskach wieloużytkownikowych, gdzie konieczne jest precyzyjne określenie ról i ograniczeń.

Kolejna grupa to skrypty TCL (Transaction Control Language), które służą do zarządzania transakcjami w bazie danych. Instrukcje COMMIT, ROLLBACK czy SAVEPOINT pozwalają na kontrolowanie integralności danych, umożliwiając zatwierdzanie lub wycofywanie zmian w przypadku wystąpienia błędów. Skrypty TCL są niezbędne w aplikacjach wymagających spójności danych, takich jak systemy finansowe czy e-commerce.

W praktyce często stosuje się również skrypty hybrydowe, łączące elementy DDL, DML, DCL i TCL. Takie podejście pozwala na kompleksowe zarządzanie bazą danych w jednym pliku lub module, co jest szczególnie przydatne podczas wdrażania nowych wersji systemów lub migracji danych pomiędzy środowiskami.

Zalety i znaczenie skryptów SQL

Skrypty SQL zwiększają efektywność pracy z bazami danych, pozwalając na powtarzalne i zautomatyzowane wykonywanie operacji. Dzięki nim można szybko wprowadzać zmiany w dużych zbiorach danych, tworzyć raporty lub migrować dane pomiędzy różnymi środowiskami. Automatyzacja realizowana przez skrypty minimalizuje ryzyko błędów ludzkich i pozwala utrzymać spójność danych w dużych systemach.

Skrypty SQL wspierają również procesy dokumentacji i kontroli wersji w projektach IT. Wszystkie zmiany w strukturze bazy danych lub operacjach na danych mogą być zapisane w postaci skryptów, co ułatwia audyt, identyfikację błędów oraz odtwarzanie stanu systemu w dowolnym momencie. Takie podejście jest standardem w dużych organizacjach i projektach opartych na metodykach Agile czy DevOps.

Znaczenie skryptów SQL wzrasta także w kontekście bezpieczeństwa danych. Dzięki precyzyjnemu definiowaniu uprawnień oraz kontroli transakcji możliwe jest ograniczenie dostępu do poufnych informacji oraz minimalizacja ryzyka utraty lub uszkodzenia danych. Skrypty pozwalają wdrażać polityki bezpieczeństwa w sposób spójny i powtarzalny.

Skrypty SQL umożliwiają także optymalizację wydajności baz danych. Poprzez analizę zapytań i odpowiednie indeksowanie tabel można znacząco skrócić czas wykonywania operacji, co jest szczególnie istotne w przypadku dużych systemów przetwarzania danych. Skrypty automatyzują proces optymalizacji, umożliwiając regularne utrzymanie wydajności systemów.

Skrypty SQL stanowią nieodzowny element pracy z bazami danych, integrując aspekt techniczny, administracyjny i biznesowy. Ich stosowanie pozwala na efektywne zarządzanie danymi, zapewnienie bezpieczeństwa, spójności i integralności systemów informatycznych oraz wspiera procesy decyzyjne poprzez szybki dostęp do niezbędnych informacji.

image_pdf

Opis metod pozycjonowania (teoria)

5/5 - (1 vote)

Pozycjonowaniem stron nazywamy wszelkie działania mające na celu umieszczenie strony www na jak najwyższej pozycji w wynikach wyszukiwania dla konkretnych fraz.

Pozycjonowanie naturalne

Najprostsza z form pozycjonowania, jednak sprawdzająca się w nielicznych przypadkach. Charakteryzuje się tym, że osoba pozycjonująca liczy na zdobycie przez stronę www popularności bez żadnych działań. Co za tym idzie ludzie będą dzielić się między sobą informacją o takiej witrynie. Internauci informując się nawzajem o obecności takiej strony w Internecie zostawiają wpisy na forach, blogach, grupach dyskusyjnych, prywatnych stronach www, itd. wraz z odnośnikiem do strony pozycjonowanej.

W praktyce pozycjonowanie naturalne jest rzadko używane. Może sprawdzić się tylko dla stron internetowych, które okazują się „strzałem w dziesiątkę” i stają się bardzo popularne. Strony firm czy instytucji, które pozycjonowanie traktują jako formę reklamy nigdy nie będą dla Internautów tak atrakcyjne, aby mogły zostać wypozycjonowane w sposób naturalny.

Pozycjonowanie przez optymalizację

Ta forma pozycjonowania polega na wykorzystaniu wiedzy dotyczącej optymalizacji stron internetowych pod kątem wyszukiwarek. Szerzej można przeczytać w rozdziale „Optymalizacja stron internetowych pod kątem wyszukiwarek” powyższej pracy. Im lepiej strona www jest zoptymalizowana tym wyszukiwarka traktuje ją jako ważniejszą, a co za tym idzie wyświetla ją na wyższych pozycjach w wynikach wyszukiwania.

Bez wątpienia pozycjonowanie przez optymalizację w przypadkach, gdzie fraza nie jest zbyt konkurencyjna okazuje się wystarczającą formą dotarcia na najwyższe pozycję wyników. Jednak kompletnie nie sprawdza się dla bardziej konkurencyjnych słów kluczowych.

Pozycjonowanie nieetyczne

Bardzo ciężko zdefiniować jest granicę między metodami etycznymi, a nieetycznymi. Jest ona bardzo cienka i płynna. Wiele wyszukiwarek w swych regulaminach mówi, że każda ingerencja w proces indeksacji strony internetowej jest działaniem zabronionym. A przecież każde pozycjonowanie za wyjątkiem pozycjonowania naturalnego jest właśnie takim działaniem.

Poniżej przedstawione zostaną najpopularniejsze sztuczki, które są powszechnie uznawane za nieetyczne. Do metod nieetycznych można również zaliczyć spamowanie wyszukiwarek, które zostanie przedstawione w podrozdziale „Spam w wyszukiwarkach i jego klasyfikacja”.

Ukryty tekst

Najbardziej popularnym i najczęściej stosowanym sposobem nieetycznego pozycjonowania jest właśnie stosowanie ukrytego tekstu. Ukryty tekst jest de facto widoczny tylko dla robota wyszukiwarki, chyba że użytkownik zajrzy w kod źródłowy strony. Ukryty tekst najczęściej jest nasycony słowami kluczowymi, na które jest pozycjonowana dana witryna.

Tekst może zostać ukrywany na wiele sposobów. Do najprostszych należy: stosowanie takiego samego koloru czcionki jak kolor tła strony, zminimalizowanie wielkości czcionki do 1 piksela, wypełnienie tekstem daleko od końca tekstu właściwego na stronie (zastosowanie znaków końca linii).

Komentarze w kodzie HTML

Kolejną metodą nieetycznego pozycjonowania jest zastosowanie komentarzy w kodzie HTML. Komentarze te zawierają nie opis kodu, czyli to do czego zostały stworzone, a sztuczny tekst, który ma pomóc w pozycjonowaniu strony w wyszukiwarkach. Najczęściej naszpikowany jest on słowami kluczowymi pod jakie pozycjonowana jest strona.

Ukryta warstwa

Ukryta warstwa nie jest widoczna dla użytkownika strony internetowej. Nie zawsze w kodzie źródłowym strony jest łatwa do wychwycenia. W takiej warstwie można zmieścić dowolną ilość odpowiednio przygotowanego tekstu, który ma zapewnić lepszą pozycję w wynikach wyszukiwania. Warstwy można ukrywać na wiele sposobów, jednak zawsze trzeba użyć do tego arkuszy styli CSS.

Duplikowanie treści

Duplikowanie treści to nic innego jak umieszczenie na witrynie podstron o tej samej lub bardzo zbliżonej treści. Strona internetowa posiadająca więcej podstron postrzegana jest przez wyszukiwarkę jako atrakcyjniejsza merytorycznie. Jednak duplikowanie treści w chwili obecnej jest już łatwo rozpoznawalne przez wyszukiwarki.

Stosowanie nieetycznych metod pozycjonowania w łatwy sposób może doprowadzić do efektu odwrotnego niż zakładany. Na przykład umieszczenia strony na dalekiej pozycji w wynikach wyszukiwania lub całkowitej jej usunięcia z tych wyników. O wszystkich zagrożeniach wynikających z niewłaściwego pozycjonowania strony internetowej będzie mowa w dalszej części pracy na przykładzie wyszukiwarki google.pl.

Pozycjonowanie właściwe

Zajmijmy się pozycjonowaniem, które powinno być zawsze stosowane przez profesjonalistów. Dzięki pozycjonowaniu właściwemu jesteśmy w stanie praktycznie każdą stronę na prawie dowolne słowo kluczowe umieścić bardzo wysoko w wynikach wyszukiwania.

Jak to zrobić?

Od razu nasuwa się odpowiedź: zastosować wszystkie powyższe metody. Jest w tym wiele racji jednak nie jest to takie proste. Jak już wiadomo wyszukiwarki internetowe uważają pozycjonowanie stron jako coś złego, bronią się przed tym. W takim razie pozycjonując stronę internetową musimy się starać oszukać algorytm wyszukiwarki odpowiadający za umieszczanie stron na odpowiednich pozycjach. Skoro staramy się oszukać algorytm nie stosujmy metod nieetycznych, z kilku względów. Po pierwsze bywają łatwo identyfikowalne przez wyszukiwarki i pozycjonowanie może przynieść odwrotny skutek. Po drugie każdy szanujący się pozycjoner nie używa metod nieetycznych z samej definicji tego słowa. Aby strona było odpowiednio pozycjonowana należy na samym początku zadbać o jej optymalizację pod względem wyszukiwarek internetowych. Jest to bardzo ważny element pozycjonowania właściwego i nie należy o nim zapominać. Kolejną ważną rzeczą jest zapewnienie stronie odpowiedniej ilości linków do niej. Linki powinny być odpowiednio dobierane. Nie należy przesadzać z ich ilością, ważna też jest jakość odnośników. Jak pozyskiwać linki będzie mowa w dalszej części tego rozdziału. Odnośniki prowadzące do pozycjonowane strony muszą być dobierane w odpowiedniej ilości i w odpowiednim czasie. Nie może zdarzyć się sytuacja, aby do naszej strony w ciągu jednego dnia robot wyszukiwarki znalazł np. 1000 linków. Tak więc przyrost linków należy stale monitorować. Istotną rzeczą jest to, aby odnośnik do strony był stały nie tymczasowy, czyli np. przydzielony na dwa miesiące.

Poniższe wykresy przedstawiają dobry i zły przyrost linków w czasie do strony pozycjonowanej.

Rysunek 3 Przykład złego linkowania w czasie

Źródło: Opracowanie własne

Rysunek 4 Przykład prawidłowego linkowania w czasie

Źródło: Opracowanie własne

Podsumowując możemy wyróżnić cztery główne sposoby pozycjonowania stron internetowych w wyszukiwarkach. Wszystkie te metody różnią się od siebie z sposób zdecydowany. W rozdziale „Porównanie metod pozycjonowania stron www w wyszukiwarce google.pl” zajmiemy się odpowiedzią na pytanie, która metoda pozycjonowania jest najkorzystniejsza i jakie ewentualne zagrożenia niesie.

image_pdf

Główne organy Wspólnot Europejskich

5/5 - (1 vote)

Na mocy traktatu fuzyjnego określonego jako Merger Treaty, podpisanego w kwietniu 1965roku  A obowiązującego od 1967 roku wszystkie trzy Wspólnoty: Europejska Wspólnota Węgla i Stali (EWWiS), Europejska Wspólnota Gospodarcza (EWG), obecnie Wspólnota Europejska (we) oraz Europejska Wspólnota Energii Atomowej (EURATOM), mają wspólne i jednolite instytucje.

Zgodnie z traktatami założycielskimi Wspólnot, a także o Unii Europejskiej, głównymi organami – instytucjami Wspólnot są:

  • Rada Europejska,
  • Rada Unii Europejskiej,
  • Parlament Europejski,
  • Komisja Europejska,
  • Trybunał Sprawiedliwości,
  • Trybunał Obrachunkowy,
  • Rzecznik Praw Obywatelskich.
  • Rada i Komisja Unii wspierane są (przy podejmowaniu decyzji) przez organy pomocnicze:
  • Komitet Konsultacyjny,
  • Komitet Ekonomiczno – Społeczny,
  • Komitet Regionów, oraz
  • Komitet Stałych Przedstawicieli (COREPER).

Bardzo istotne jest następujące wyjaśnienie: Traktat z Maastricht zmienił dotychczasowe nazwy niektórych organów Wspólnot, np. Rady i Komisji na – odpowiednio – Rada Unii i Komisja Europejska. Ponadto pewne organy uzyskały dodatkowe kompetencje. Są to jednak zmiany tylko formalne – ani jedna ani druga z prawnego punktu widzenia nie zmienia statusu tych instytucji jako organów Wspólnot. Unia Europejska jak gdyby je tylko „zapożyczyła” oczywiście rodzi to pewne wątpliwości co do zasadności prawnej. Przykładem tego może być fakt, że 8 listopada 1993 roku w kilka dni po wejściu w życie Traktatu o Unii Europejskiej, Rada na mocy własnej decyzji przyjęła nazwę – Rada Unii Europejskiej – i jest to nazwa obecnie używana. Podobnie postąpiła Komisja, która także na podstawie własnej
decyzji przyjęła nazwę – Komisji Europejskiej.

Źródło: Przedstawicielstwo Komisji Europejskiej w Polsce; Warszawa 1995 r.

Główne organy Wspólnot Europejskich odgrywały kluczową rolę w funkcjonowaniu Unii Europejskiej przed jej przekształceniem w obecny kształt w 2009 roku, po wejściu w życie traktatu lizbońskiego. Jednym z najważniejszych organów była Komisja Europejska, która pełniła funkcję wykonawczą i administracyjną, odpowiedzialną za inicjowanie i wdrażanie polityk UE, monitorowanie przestrzegania prawa wspólnotowego oraz reprezentowanie Unii na arenie międzynarodowej. Komisja składała się z komisarzy, po jednym z każdego państwa członkowskiego, którzy zarządzali określonymi obszarami polityki.

Kolejnym istotnym organem była Rada Ministrów (Rada Unii Europejskiej), pełniąca funkcję decyzyjną i współtworzącą prawo w UE. Rada składała się z przedstawicieli rządów państw członkowskich i miała wpływ na proces legislacyjny, współpracując z Parlamentem Europejskim. Parlament Europejski pełnił funkcję legislacyjną, reprezentując obywateli Unii. Parlament sprawował kontrolę nad Komisją Europejską, zatwierdzał budżet oraz uczestniczył w tworzeniu prawa, współpracując z Radą.

W kwestiach prawnych istotną rolę odgrywał Trybunał Sprawiedliwości Unii Europejskiej, który zapewniał interpretację prawa UE oraz kontrolował zgodność działań instytucji unijnych z prawem. Rozpatrywał również sprawy dotyczące naruszenia prawa przez państwa członkowskie oraz sprawy między instytucjami UE. Kolejnym ważnym organem był Europejski Trybunał Obrachunkowy, który kontrolował wydatki Unii, dbając o to, by budżet UE był wykorzystywany zgodnie z celami określonymi w traktatach.

Europejski Bank Centralny (EBC), mimo że był bardziej związany z funkcjonowaniem strefy euro, pełnił ważną rolę w polityce monetarnej Unii Europejskiej, zarządzając euro i realizując politykę stóp procentowych oraz stabilności cen. Te organy współpracowały, tworząc fundamenty instytucjonalne Unii Europejskiej, odpowiadając za różne aspekty prawodawstwa, wykonawstwa, sądownictwa oraz kontroli finansowej.

image_pdf

Integracja systemów e-administracji

5/5 - (1 vote)

Pierwszy model funkcjonowania systemów samorządowej e-administracji to istnienie rozwiązań „wyspowych” (patrz rys 4-2). Usprawnienie funkcjonowania poszczególnych jednostek (referatów) osiąga się często poprzez wprowadzenie samodzielnych moduł ów. Są to aplikacje wspomagające pracę i nie zintegrowane ze sobą w żaden sposób. Rozwiązanie niewątpliwie ułatwia pracę urzędników oraz usprawnia obsługę obywateli, lecz nie spełnia podstawowego zadania systemu informacyjnego – nie dostarcza w pełni kompleksowych danych centralnych, służących do zarządzania całością. Jednostki pozostają wyspami. Efektem tak funkcjonującego systemu informacyjnego są nieścisłe informacje oraz dane powielane w różnych bazach.

Rysunek 1 – 2 Struktura samodzielnych modułów (rozwiązań „wyspowych”) Źródło: Gęślicki R., Urząd poinformowany

Samodzielne moduły, to aplikacje, z których każda posiada własną strukturę danych. Zasadniczym elementem odróżniającym je od systemu zintegrowanego jest brak wspólnej struktury danych. Użytkując samodzielne moduły należy liczyć się z eksploatowaniem nieaktualnych danych. Doświadczenie pokazuje, że jednoczesne eksploatowanie kilku baz, zawierających tą samą informację, zawsze kończy się powstaniem różnic między nimi.

Drugi model, to system zintegrowany,  który jest pakietem kilku bwspółpracujących ze sobą aplikacji. Każda z nich wspomaga pracę innej jednostki, lecz dane, na których pracują, są wspólne dla wszystkich. Niewątpliwą zaletą takiego rozwiązania jest natychmiastowa, automatyczna komunikacja pomiędzy jednostkami (patrz rys 4-3).

Rysunek 2 – 3 Struktura systemu zintegrowanego Źródło: Gęślicki R., Urząd poinformowany

Wspólna struktura danych nie oznacza jednakowego do nich dostępu. Niektórzy będą mieli dostęp pełny, inni ograniczony tylko do odczytu wycinku danych. Co już zostało wykazane, sporą przeszkodą do wdrażania tego typu rozwiązania są przepisy polskiego prawa, które rozdzielają kompetencje w sposób niespójny.

Trzeci model, to system hybrydowy (patrz Rys 4-4). Jest on fuzją poprzednio opisanych rozwiązań. Są to samodzielne moduły wyposażone w moduł integratora. W dalszym ciągu mamy do czynienia z rozproszonymi bazami danych, lecz integrator zapewnia ich spójność i jednoznaczność. Integrator to zależ nie od komplikacji systemu procedura lub aplikacja ujednolicająca dane w poszczególnych bazach. Różnorodność danych w złożonych systemach oraz zmiany organizacyjne powodują, że zbudowanie uniwersalnego integratora graniczą z niemożliwością. Pozornie rozwiązanie zintegrowane i hybrydowe oferują użytkownikowi identyczny zakres funkcji. W praktyce jednak, uzyskanie jednoznaczności danych w systemach hybrydowych jest bardzo trudne i kosztowne.

Rysunek 3 – 4 Struktura systemu hybrydowego Źródło: Gęślicki R., Urząd poinformowany

Planując proces informatyzacji urzędu należy wybrać jeden z przedstawionych modeli. System zintegrowany jest rozwiązaniem, któremu warto poświęcać najwięcej uwagi. Nie ulega jednak wątpliwości, że niezbędna jest wówczas współpraca pomiędzy różnymi jednostkami. Skala przedsięwzięcia i wysokie koszty wdrożenia powodują, że tylko bogate i duże jednostki samorządowe decydują się na implementację funkcji interakcji dwustronnych i transakcji. Co z małymi gminami miejskimi i wiejskimi? Niezbędne jest podjęcia działań, które sprzyjałyby wprowadzaniu rozwiązań e-administracji na poziomie lokalnym. Czy projekt „Wrota Polski” spełni swoje założenia i będzie katalizatorem rozwoju społeczeństwa informacyjnego, również w samorządach, pokaże przyszłość.

image_pdf

Załadowanie danych do bazy POSTGRESQL

5/5 - (1 vote)

Pliki w formacie tekstowym wczytywane są po ich otrzymaniu z serwera wewnętrznego firmy. W tym momencie wykonywana jest konwersja kodowania na stronę kodową iso88592 (obowiązujący standard kodowania polskich znaków na stronach www tzw. iso-latin2). Proces ten wywoływany jest również jako cykliczne zadanie w crontab’ie następującym wpisem w plik konfiguracyjny:

# zasilenie dla emarket codziennie o 20:30

30 20 * * 1,2,3,4,5,6,7 /home/bazy/emarket/zaladunek 2>&1 | /var/qmai1/bin/qmai1-inject

Skrypt „załadunek” zbudowany jest podobnie jak skrypt konwersji danych na maszynie wewnętrznej i wykonywane działania wyświetla na standardowe wyjście (stdout) co jest poprzez sposób wywołania w corntab wysyłane jako raport do operatora. Jedyną różnicą w wywołaniu skryptu jest to, iż działa on na tej samej maszynie na której zainstalowany został system pocztowy Qmail i dlatego można było wykorzystać jeden z pocztowych programów usługowych do dostarczenia poczty bezpośrednio do adresata. Działania takie maja na celu informowanie obsługi lub administratorów o wszelkich występujących problemach a także o powodzeniu każdego z etapów działania sklepu internetowego. Poniższy skrypt prezentuje działania wykonywane w czasie importowania danych do bazy PostgreSQL:

Skrypt służy do załadowania danych do bazy danych eMarket. Jest to przykład skryptu automatyzującego proces wczytywania i konwersji danych do odpowiednich formatów przed załadowaniem ich do systemu. Poniżej przedstawiam omówienie jego przydatności oraz poszczególnych kroków:

1. Wysyłanie powiadomienia e-mail

Skrypt rozpoczyna się od wysłania e-maila, który informuje o rozpoczęciu procesu załadowania danych do bazy eMarket. Dzięki temu administrator lub odpowiednia osoba odpowiedzialna za system może monitorować stan procesu.

2. Definicja katalogów roboczych

Zdefiniowanie katalogów roboczych i ustawienie zmiennych systemowych, takich jak KAT_TMP i BINARIA, pozwala na łatwe zarządzanie lokalizacjami plików oraz narzędziami używanymi w procesie.

3. Sprawdzanie obecności wymaganych plików

Skrypt sprawdza, czy w katalogu roboczym znajdują się pliki wejściowe (z rozszerzeniem .IN). Jeśli pliki nie zostaną znalezione, skrypt przerywa działanie i wysyła powiadomienie o błędzie. To zapewnia, że proces nie rozpocznie się, jeśli brakuje niezbędnych danych.

4. Konwersja kodowania znaków

Skrypt dokonuje konwersji znaków w pliku CENNIK.IN z jednego formatu (LAT) na inny (ISO). Jest to ważne, gdyż różne systemy mogą używać różnych standardów kodowania, a konwersja zapewnia spójność danych.

5. Zablokowanie dostępu do bazy

Skrypt blokuje dostęp do bazy danych na czas wczytywania danych. Tworzenie pliku tymczasowego (emarket.tmp) zapewnia, że nikt nie będzie mógł modyfikować bazy danych podczas załadowania nowych danych, co zapobiega możliwym błędom lub kolizjom.

6. Wykonywanie skryptów załadunkowych

Po zablokowaniu dostępu do bazy, skrypt uruchamia serię skryptów, które odpowiadają za:

  • Usuwanie starych tabel (90-usuntabełe),
  • Tworzenie nowych tabel (20-załoztabełe),
  • Załadowanie danych (30-załadujtabełe),
  • Tworzenie indeksów (40-załozindeksy),
  • Ładowanie katalogu (40-załadujkatałog),
  • Optymalizację (45-optymałizuj),
  • Generowanie statystyk (50-statystyka).

Te kroki są kluczowe dla prawidłowego załadowania danych i ich późniejszego przetwarzania w systemie.

7. Zakończenie procesu

Na końcu skryptu zostaje usunięty plik tymczasowy, który blokował dostęp do bazy, a także użytkownicy ponownie uzyskują dostęp do systemu. Skrypt informuje o zakończeniu procesu załadunku danych.

Przydatność skryptu:

Skrypt ten jest przydatny w systemach, które wymagają regularnego i zautomatyzowanego załadowania danych do bazy. Automatyzacja tych procesów zmniejsza ryzyko błędów ludzkich i zapewnia płynność operacji. Skrypt wspiera także konwersję danych, co jest istotne, gdy systemy używają różnych kodowań znaków. Dodatkowo, blokowanie dostępu do bazy podczas załadowania danych zapewnia integralność danych i chroni przed niepożądanymi zmianami w trakcie procesu.

Etapy załadunku danych do bazy zostały podzielone na osobne funkcjonalne części, co ułatwia ewentualne diagnozowanie nieprawidłowości oraz dalszy rozwój tego oprogramowania. Każdy ze skryptów wykonujących działania na bazie PostgreSQL otrzymał nazwę zbudowaną z początkowych dwóch cyfr oznaczających jego logiczną kolejność w wykonaniu, analogicznie jak to ma miejsce w przypadku skryptów startowych w systemach UNIX typu SysV 4.2 gdzie takie uporządkowanie występuje oraz w systemach BSD w skryptach administracyjnych (daily, weekly, monthly itp.). Omówienie poszczególnych skryptów SQL zostało umieszczone w kolejnych rozdziałach traktujących o samej strukturze bazy danych. Wspomnieć należy, iż aby wykorzystywać bazę danych PostgreSQL, administrator bazy założył odpowiednich użytkowników bazy z hasłami dostępu i uprawnieniami pozwalającymi na czynności administracyjne.  Głównym plikiem konfiguracyjnym PostgreSQL regulującym dostęp określonych użytkowników z określonych hostów jest plik konfiguracyjny „pg_hba.conf\ Dokładnie omawia to dokumentacja PostgreSQL. Sposób autoryzacji (czy system wymaga hasła czy też nie) jest definiowany w tym pliku. Na jego końcu przy domyślnej konfiguracji znajdują się wpisy: local all trust

host all 127.0.0.1 255.255.255.255 trust_____________________________________________

Oznaczają one, że dla połączeń lokalnych (local) – czyli takich, gdzie łączymy się nie korzystając z socket’ów tcpip i dla dowolnej bazy (all), system ma przyjąć regułę nie pytania o hasło (trust) natomiast dla połączeń zdalnych, ale tylko z maszyny o adresie 127.0.0.1 (czyli z tego samego hosta, ale przez sockety tcpip), będzie obowiązywać ta sama reguła. Aby to zmienić należy zastąpić ostatnie słowo (trust) na „password” lub „crypt” (różnią się one metodą przesyłania hasła). Przykładowo zapis:

host all 192.168.1.10 255.255.255.0 password                  ~

Oznacza, że osoby łączące się z serwera o adresie 192.168.1.10 oraz z całej klasy C (czyli

w rzeczywistości adres ip może być typu 192.168.1.*) muszą podać hasło aby dostać się do dowolnej bazy. Chcąc wymusić aby wzorcowy szablon bazy PostgreSQL był także chroniony można dokonać zapisu: host template1 192.168.1.10 255.255.255.0 password

co oznacza, że te same osoby będą mogły teraz dostać się tylko do bazy template1 i będą musiały podać hasło. Metod autoryzacji użytkowników jest wiele, między innymi także na podstawie protokołu ident. Przy pisaniu reguł dostępu należy pamiętać o kolejności. Zawsze użyta zostanie ta reguła która jest pierwsza w pliku i pasuje do sytuacji (regułki przeszukiwane są w kolejności od początku do końca pliku aż do znalezienia pierwszej

pasującej i na tym się kończy przeszukiwanie). Poniższy zapis byłby błędny, pozbawiony sensu poprzez swoją błędną hierarchię:

local all trust

host all 127.0.0.1 255.255.255.255 trust local templatel password

host templatel l27.0.0.1 255.255.255.255 password

Poprawnej konfigurację tej access listy przedstawia przykładowy zapis: local templatel password

host templatel l27.0.0.1 255.255.255.255 password local all trust

host all l27.0.0.l 255.255.255.255 trust______________________________________________

W przypadku konfiguracji rzeczywistej sklepu wpisy dopuszczające ustalają dostęp do bazy sklepu nazwanej jako „emarket” tylko i wyłącznie z serwera na którym działa sklep oraz dla określonego użytkownika z hasłem. Zapewnia to już zwiększony poziom bezpieczeństwa poprzez odrzucenie przez silnik bazy danych połączeń pochodzących zarówno od użytkowników lokalnych serwera jak i zdalne próby nawiązania połączeń (choć to także zabezpiecza zastosowany firewall). PostgreSQL zapewnia ponadto zabezpieczenia dostępu do tabel zgodnie ze standardem SQL92 (www.postaresal .org/idocs/index.php?sq1 .html). Na zasadzie przywilejów na konkretne działania i operacje na krotkach, tabelach, indeksach, procedurach czy funkcjach. Można tu bardzo precyzyjnie określać co, kto jak i kiedy może uczynić ze zgromadzonymi danymi, czy może tylko czytać nasze dane czy też usuwać, poprawiać, dodawać nowe itp.

image_pdf