Eksploracja i ochrona danych multimedialnych

Wielkość: px
Rozpocząć pokaz od strony:

Download "Eksploracja i ochrona danych multimedialnych"

Transkrypt

1 Rozdział 35 Eksploracja i ochrona danych multimedialnych Streszczenie. Treścią rozdziału jest analiza funkcjonalności rozszerzenia Oracle intermedia zarządzającego danymi multimedialnymi przechowywanymi w bazie danych Oracle pod kątem zgodności ze standardem SQL/MM a także metod dostępu do danych. Omówiono podstawowe założenia standardu SQL/MM oraz zaprezentowano możliwości analizy i eksploracji danych multimedialnych za pomocą Oracle intermedia. Przedstawiono także zasadnicze problemy związane z ochroną danych w systemach zarządzania multimedialną bazą danych. Zwrócono uwagę na brak efektywnych rozwiązań technicznych umożliwiających wykrywanie włamań do tego typu baz danych. Obecnie znane metody wykrywania włamań oparte na sygnaturach są niewystarczające, ponieważ rozwiązania takie zapewniają jedynie wykrywanie włamań dobrze zdefiniowanych. Potrzeba zastosowania inteligentnych systemów, zdolnych do wykrywania nieznanych metod ataków jest inspiracją do badań naukowych z zakresu wykrywania anomalii. W rozdziale dokonano także przeglądu aktualnego stanu badań naukowych w tym zakresie. 1 Wstęp Obecne wyzwania stojące przed systemami zarządzania bazami danych to już nie tylko efektywna i sprawna obsługa ciągów tekstowych, ale coraz częściej także szybki i skuteczny sposób przechowywania danych multimedialnych. Dużego rozmiaru teksty, pliki audio, obrazy i sekwencje wideo to coraz częściej spotykane typy danych przechowywanych w bazach danych. Multimedialne bazy danych znajdują zastosowanie głównie w rozwiązaniach komercyjnych, państwowych i instytucjonalnych, choć pojawiają się także w produktach zorientowanych na użytkownika domowego. Ponieważ język SQL nie oferował metod dostępu i obsługi danych multimedialnych, zaszła potrzeba stworzenia nowego standardu, uwzględniającego ten aspekt. W wyniku prac naukowych powstał standard SQL Multimedia and Application Packages, którego skrótowa nazwa to SQL/MM. Na równi z potrzebą standaryzowania metod składowania danych multimedialnych pojawia się problem bezpiecznego korzystania z tych danych. Mimo wielomilionowych nakładów finansowych korporacji zajmujących się wytwarzaniem aplikacji bazodanowych, są Andrzej Barczak, Jacek Garbaczewski, Jarosław Skaruz: Akademia Podlaska, Instytut Informatyki, ul. Sienkiewicza 51, Siedlce, Polska {a.barczak, jaroslaw.skaruz}@ap.siedlce.pl, jacek@iis.ap.siedlce.pl

2 A. Barczak, J. Garbaczewski, J. Skaruz one w dalszym ciągu przedmiotem częstych prób włamań i przejęcia kontroli nad przechowywaną w nich zawartością. Rynek XXI wieku szuka więc optymalnych rozwiązań w tej dziedzinie, zwracając uwagę nie tylko na cenę ale i jakość, bezpieczeństwo i możliwości rozwoju oferowanych produktów. Struktura standardu SQL/MM podobna jest pod względem opisu do struktury standardu SQL, który podzielony jest na wiele części opisujących poszczególne funkcjonalności języka. Inaczej jednak niż w przypadku standardu SQL, luźno powiązane ze sobą części specyfikacji SQL/MM pozwalają na wykorzystanie ich nie tylko w przetwarzaniu danych multimedialnych, ale również w innych rozwiązaniach. Obecnie standard obejmuje pięć części, od I do VI ponieważ prace nad czwartą częścią standardu SQL/MM zostały zawieszone. Niedoszła czwarta część specyfikacji miała obejmować dane matematyczne i umożliwiać operacje na nich. Mamy więc do czynienia z następującymi partiami standardu. Część I: SQL/MM Framework nie dotyczy bezpośrednio żadnego typu danych, zawiera jedynie wspólne dla pozostałych części standardu definicje metod i stosowanych typów danych [2]. Część II: SQL/MM Full-text jak wskazuje nazwa definiuje zbiór typów danych do składowania i przetwarzania dużych obiektów tekstowych. W tej części opisane zostały także metody wyszukiwania obiektów według zadanych parametrów wejściowych. Nie chodzi tutaj już o proste przeszukiwanie bazy danych w oparciu o podawany w warunku przeszukiwania ciąg tekstowy ale ze względu na właściwość danego łańcucha tekstu [3]. W szczególności można tutaj mówić o porównywaniu kontekstów wystąpienia danego łańcucha tekstowego, uwzględniającego jego odmianę, a nawet znaczenie poszczególnych słów w danym kontekście. Jedną z wielu podstawowych metod jest funkcja Contains, która posiada wiele możliwości zastosowań od prostego warunku porównania łańcucha (Contains ( ciąg do wyszukania )) do przeszukiwania ze względu na brzmienie danego ciągu tekstu (Contains ( SOUNDS LIKE ciąg do wyszukania )) czy ze względu na odwołania do tematyki tekstu (Contains ( IS ABOUT ciąg do wyszukania )). Część III: SQL/MM Spatial definiuje typy danych opisujące dane przestrzenne. Standard SQL/MM wspiera obiekty jedno-, dwu- oraz trzywymiarowe. W specyfikacji znalazły się dość obszerne opisy przestrzennych układów odniesienia, w większości pozwalających opisywać Ziemię i jej poszczególne regiony. Jest to naturalna konsekwencja tego, że wielu użytkowników tego typu danych to państwowe urzędy i instytucje, wykorzystujące dane geograficzne. SQL/MM Spatial zawiera zbiór funkcji do prezentacji właściwości geograficznych przechowywanych danych, konwersji zewnętrznych danych (tekstowych, binarnych i GML Geography Markup Language), a także tworzenia nowych i porównywania istniejących obiektów [4]. Część V: SQL/MM Still Image opisuje metody definiowania i obsługi obrazów w bazie danych. Szczególnie ważne są tutaj sposoby przeszukiwania bazy danych ze względu na zawartość obiektów zawierających obrazy. Podstawowym typem dla tej części standardu jest SI_StillImage, opisujący obrazy dwuwymiarowe w postaci kolekcji pikseli [5]. StillImage umożliwia przechowywanie i obróbkę obrazów w różnych formatach wejściowych (m.in. JPEG, TIFF, GIF), zawiera informację o wymiarach danego obrazu i jego właściwościach. Za pomocą metod typu SI_StillImage możliwa jest obróbka obrazów skalowanie, obracanie, obcinanie i konwersja do in 2 Standard danych multimedialnych: SQL/MM 342

3 Eksploracja i ochrona danych multimedialnych nego formatu niż wejściowy. Dane typu SI_StillImage przechowywane są w bazie danych jako duże obiekty binarne (BLOB). Część standardu SQL/MM poświęcona pracy z obrazami posiada również szereg innych metod, służących do odczytu informacji o rozkładzie kolorów w obrazie (SI_ColorHistogram) czy uśrednionej wartości koloru danego obiektu (SI_AverageColor). Jest to dotychczas jedyna część standardu SQL/MM, która została zaimplementowana w bazie Oracle 10g. Część VI: SQL/MM Data Mining jest ostatnią częścią standardu SQL/MM, dotyczy zaś metod eksploracji danych w multimedialnych bazach danych, wspierających ten standard. Podobnie jak część pierwsza (Framework), nie opisuje złożonych rodzajów danych [6]. Prace nad standardem SQL/MM trwały kilka lat, a jego poszczególne części były wdrażane pojedynczo. W 1999 roku zatwierdzono specyfikację dotyczącą danych przestrzennych, w następnym roku część Full-Text, a w roku 2001 część dotyczącą obsługi i reprezentacji obrazów. Najpóźniej wykrystalizowała się część dotycząca zagadnień eksploracji danych multimedialnych, czyli SQL/MM Data Mining, gdzie prace zakończono dopiero w 2002 roku. Ewolucja standardu jednak ciągle trwa i nie wykluczone jest pojawienie się niedługo kolejnych zmian w poszczególnych jego częściach. 3 Oracle intermedia Serwer baz danych Oracle 10g w swojej standardowej instalacji zawiera rozszerzenie Oracle intermedia, przeznaczone do obsługi i zarządzania danymi multimedialnymi. Właściwość ta pozwala na składowanie, odczyt, analizę i obróbkę heterogenicznych danych multimedialnych a także danych audio, wideo i obrazów. 3.1 Oracle intermedia a standard SQL/MM Jak już zostało wspomniane, w zakresie odwzorowania standardu SQL/MM na aplikację Oracle10g, jedynie część piąta standardu StillImage jest wspierana przez to rozwiązanie. Dzieje się tak nie tylko dlatego, że Oracle10g nie wspiera standardu SQL/MM np. w części Spatial, ale również dlatego, że w standardzie nie znajdziemy jeszcze części poświęconych obsłudze obiektów multimedialnych typu audio i wideo, które z kolei znalazły się już w rozwiązaniach Oracle10g. Porównując sposób reprezentacji danych multimedialnych w standardzie SQL/MM oraz w serwerze bazy danych Oracle10g można śmiało stwierdzić, że są one podobne. W obu przypadkach rozwiązania opierają się o duże obiekty binarne (BLOB), składowane w bazie danych lub jako zewnętrzne pliki (typ BFILE w Oracle10g). Także w zakresie obsługi obrazów (bo tą właśnie część standardu wspiera rozwiązanie Oracle10g), znajdziemy tutaj podobne metody. Nie obejdzie się oczywiście bez różnic, które można dostrzec nie tylko w innych nazwach metod, stosowanych typów obiektów multimedialnych. Standard SQL/MM w zakresie pracy z obrazami posiada wiele metod, których nie znajdziemy w rozwiązaniu firmy Oracle, z kolei Oracle intermedia posiada funkcjonalność, nie zdefiniowaną przez standard. 343

4 A. Barczak, J. Garbaczewski, J. Skaruz 3.2 Struktura Oracle intermedia W zależności od sposobu przechowywania danych multimedialnych, właściwość Oracle intermedia można stosować do: plików przechowywanych poza bazą danych a dostępnych z poziomu bazy za pomocą typu BFILE, obiektów binarnych typu BLOB, przechowywanych w bazie danych, danych strumieniowych i innych dostarczanych przez specjalne serwery multimediów, obiektów umieszczonych w Internecie, dostępnych pod danym adresem URL. Za obsługę dostępu do danych odpowiada typ ORDSource, który wspiera trzy z czterech wymienionych rodzajów dostępu do danych. Jedynie w przypadku danych znajdujących się na specjalistycznych serwerach multimediów (np. udostępnianych strumieniowo), potrzeba jeszcze specjalnych interfejsów do ich prawidłowej obsługi. ORDSource zawiera informacje o typie źródła danych, sposobie przechowywania, obiekcie BLOB (w przypadku przechowywania lokalnego), adresie lokalizacji, nazwie obiektu i dacie modyfikacji. Metody typu ORDSource pozwalają na kontrolę przepływu danych pomiędzy plikami znajdującymi się na zewnątrz bazy danych a odpowiednikami tych obiektów w bazie, w tym również na odczyt zawartości tych obiektów. Jednak zaleca się, by dostęp do obiektów multimedialnych w systemie Oracle10g był możliwy przez specjalnie do tego stworzone typy obiektowe - dedykowane do konkretnych rodzajów multimediów. Ze względu na rodzaj obsługiwanych multimediów, w schemacie ORDSys obsługującym bazę Oracle10g, wyróżniamy następujące typy obiektowe: ORDAudio (obsługa plików audio), ORDVideo (obsługa sekwencji wideo), ORDDoc (obsługa tekstów a także dowolnych multimediów jako dane występujące w jednej kolumnie tabeli) oraz ORDImage (przetwarzanie obrazów). Każdy z wyżej wymienionych czterech typów obiektowych zawiera jako atrybut typ ORDSource, dzięki czemu metody składowania dla wszystkich rodzajów multimediów w bazie Oracle10g obsługiwane są przez jeden typ dostępu do danych. 4 Eksploracja danych multimedialnych w Oracle intermedia Dostęp do rozszerzenia Oracle intermedia jest możliwy z poziomu wielu języków programowania, jednak wyjątkowo mocno Oracle wspiera PL/SQL oraz język Java, dla którego opracowane zostały nawet specjalne klasy Oracle intermedia Java Classes 1. Stosunkowo proste implementacyjnie wydaje się budowanie serwletów i aplikacji w języku JSP do zarządzania i przetwarzania multimediami składowanymi w bazie danych Oracle. Ponieważ Oracle intermedia nie posiada własnego interfejsu graficznego, skrypty PL/SQL są naturalnie podstawowym sposobem ładowania multimediów do bazy danych a także ich późniejszej eksploracji, porównywania i obróbki. Dlatego też w części poświęconej praktycznemu zastosowaniu tego rozszerzenia, przedstawione przykłady będą opierały się właśnie o język PL/SQL. Rozważmy jeden ze sposobów ładowania i obróbki (w naszym przypadku tworzenie miniatury) obrazów w Oracle intermedia, z użyciem typu ORDImage. 1 Oracle intermedia Java Classes User s Guide and Reference, Release 2 (9.2). Oracle

5 Eksploracja i ochrona danych multimedialnych Tabela, w której będą przechowywane obrazy i ich miniatury, może mieć postać: create table obrazy ( id number primary key, obraz ORDSYS.ORDIMAGE, miniatura ORDSYS.ORDIMAGE, sygnatura ORDSYS.ORDIMAGESIGNATURE ); Procedura zaladuj_obraz prezentuje przykładowy sposób ładowania obrazu z podanej lokalizacji w sieci Internet do bazy danych a następnie tworzenie jego miniatury i sygnatury (za pomocą ORDImageSignature). W procedurze wykorzystano typ obiektowy ORDImage, stworzony do obsługi obrazów w bazie Oracle10g. Ze względu na ograniczenia tekstowe, zrezygnowano z prezentacji części obsługi wyjątków (exceptions). create or replace procedure zaladuj_obraz (url in varchar2, plik in varchar2, m_id in integer) is m_obraz ORDSYS.ORDImage; m_miniatura ORDSYS.ORDImage; m_sygnatura ORDSYS.ORDImageSignature; bufor RAW(4000) := NULL; begin m_miniatura := ORDSYS.ORDIMAGE.init(); m_sygnatura := ORDSYS.ORDIMAGESIGNATURE.init(); insert into obrazy values(m_id, ORDSYS.ORDIMAGE.init('HTTP',url, plik), m_miniatura, m_sygnatura); select obraz, miniatura, sygnatura into m_obraz, m_miniatura, m_sygnatura from obrazy where id = m_id FOR UPDATE; -- import obrazu do tabeli z uzyciem bufora (bufor) m_obraz.import(bufor); --- ustawienie atrybutow obrazu na podstawie wlasnosci MIME pliku m_obraz.setproperties(); --- tworzenie miniatury obrazu m_obraz.processcopy('fileformat=jfif maxscale= ', m_miniatura); --- tworzenie sygnatury obrazu m_sygnatura.generatesignature(m_obraz); update obrazy set obraz = m_obraz, miniatura = m_miniatura, sygnatura = m_sygnatura where id = m_id; commit; exception... end; Tak składowany obiekt może być w dalszym ciągu przetwarzany poniższa procedura wybierz_obrazy przedstawia przykład odwołania do sygnatury obrazu i próby przeszukania tabeli obrazy pod kątem występowania obrazów o sygnaturze podobnej do obrazu badanego (parametry przekazywane jako argumenty procedury). Wykorzystano tutaj typ IMGSimilar, którego parametrami są: kolor, tekstura, kształt i lokalizacja. create or replace procedure wybierz_obrazy (m_id integer, kolor number, tekstura number, ksztalt number, lokalizacja number) is wagi varchar2(200); 345

6 A. Barczak, J. Garbaczewski, J. Skaruz m_wynik number; m_obraz ORDSYS.ORDImage; m_sygnatura ORDSYS.ORDImageSignature; cursor c1 (c_sygnatura ORDSYS.ORDImageSignature, c_waga varchar2) is select obraz, ORDSYS.IMGScore(123) wynik FROM obrazy i where ORDSYS.IMGSimilar(i.sygnatura, c_sygnatura, c_waga, 100, 123) = 1 and m_id <> id order by wynik desc; begin select sygnatura, obraz into m_sygnatura, m_obraz from obrazy where id=m_id for update; wagi := 'color=' kolor ' texture=' tekstura ' shape=' ksztalt ' location=' lokalizacja; open c1 (m_sygnatura, wagi); loop fetch c1 into m_obraz, m_wynik; exit when c1%notfound; dbms_output.put_line('znaleziono obraz ' m_obraz.getsourcename ' z wynikiem ' to_char(m_wynik, '00.00')); end loop; exception when no_data_found then dbms_output.put_line('nie ma obrazu dla tego numeru ID.'); end; Zapytanie wybiera z tabeli obrazy tylko te, które podobne są do obrazu o id = 1 oraz posiadają odpowiednio podobne własności określone przez parametry dla typu IMGSimilar, odwołującego się z kolei do sygnatury obrazu. Przetwarzanie i wyszukiwanie obiektów multimedialnych gromadzonych w bazie danych Oracle10g dzięki rozszerzeniu intermedia staje się zdecydowanie lepsze, prostsze i efektywniejsze. Obiekty multimedialne stają się coraz powszechniejszym typem danych przechowywanych w bazach danych, co powoduje też problem ich bezpiecznego zarządzania i udostępniania. 5 Problemy bezpieczeństwa multimedialnych baz danych Jak informuje firma Oracle, dane multimedialne składowane i przetwarzane przez rozszerzenie Oracle intermedia mogą być bezpiecznie współdzielone i udostępniane wielu użytkownikom serwera baz danych. Jednak rosnąca złożoność oprogramowania, pomimo rozwoju nowoczesnych metodologii projektowania systemów informatycznych a także ich testowania powoduje, że wykrycie kolejnych błędów jest tylko kwestią czasu. W kontekście bezpieczeństwa, błędy umożliwiające nieautoryzowanym użytkownikom na dostęp do danych, ich modyfikację lub zatrzymanie danej usługi stanowią lukę w systemie bezpieczeństwa zaimplementowanym w obrębie danego systemu informatycznego. Problem ten dotyczy również systemów zarządzania bazą danych. Jeden z największych producentów baz danych - Oracle, w dniu udostępnił łaty dla bazy Oracle10g oraz kilkunastu swoich produktów 2. Jak widać, problem zapewnienia wysokiej jakości oprogramowania, pozbawionego błędów umożliwiających nadużycia, dotyczy również czołowych producentów oprogramowania

7 Eksploracja i ochrona danych multimedialnych Powszechne wykorzystanie języków skryptowych do tworzenia dynamicznych stron WWW wiąże się nierozerwalnie z wyborem bazy danych, zawierającej treści tych stron. Z jednej strony, informacje z bazy danych są odczytywane i przesyłane do przeglądarki użytkownika, z drugiej strony dane z formularzy na stronie WWW mogą być zapisywane w bazie danych. Z punktu widzenia wiarygodności treści witryn WWW, baza danych stanowi kluczowy element, którego nadużycie może doprowadzić do utraty lub zmiany informacji. W większości architektur sprzętowo programowych środowisk WWW zawierających minimum serwer WWW oraz bazę danych, te dwie usługi rozdzielone są firewallem, co w znacznym stopniu uniemożliwia dostęp do serwera baz danych użytkownikom z Internetu. Pomimo tego istnieją metody znane od kilku lat umożliwiające modyfikacje danych w bazie. Obecne systemy wykrywania włamań można sklasyfikować do jednej z dwóch grup: wykrywania nadużyć (ang. misuse detection) i wykrywania anomalii (ang. anomaly detection). Systemy wykrywania nadużyć są najpopularniejsze i obecnie jako jedynie dostępne na rynku. Ich funkcjonowanie oparte jest na podobnej zasadzie jak wykrywanie wirusów. Posiadają one bazę danych sygnatur ataków. Sygnatura jest natomiast zwięzłym opisem cech charakterystycznych danego ataku. Sondy monitorujące chronione środowisko przesyłają informacje o zdarzeniach do modułu analizy, celem porównania zaobserwowanej aktyw 5.1 Atak SQL injection SQL injection jest klasą ataków, podczas których nieautoryzowany użytkownik za pomocą formularzy WWW może zmienić postać zapytania SQL wysyłanego do bazy danych. Atak ten możliwy jest do realizacji z powodu nieprawidłowej implementacji formularzy WWW w językach skryptowych. Poniżej znajduje się przykładowy pseudokod implementujący obsługę formularza[1]: Uname = getauthenticateuser() cctype = getuserinput() result = sql( SELECT nb FROM creditcards WHERE user= + uname + AND type= + cctype + ; ) print(result) Jeżeli użytkownik Ania zechce wyszukać wszystkich kart VISA to zapytanie będzie miało postać: SELECT nb FROM creditcards WHERE user='ania' AND type='visa'; Jeżeli natomiast Paweł zechce obejrzeć wszystkie karty Ani, to w polu formularza do wyboru typu karty wpisze kod: ' OR user = 'Ania Zapytanie SQL przyjmie wtedy postać: SELECT nb FROM creditcards WHERE user='paweł' AND type='' OR user='ania'; Aby uniknąć tego typu błędów, programista musi zaimplementować mechanizm sprawdzania struktury zapytania SQL, zanim zostanie ono przesłane do systemu zarządzania bazą danych. 5.2 Systemy wykrywania włamań 347

8 A. Barczak, J. Garbaczewski, J. Skaruz ności z sygnaturami. Dopasowanie analizowanych zdarzeń do jednej z sygnatur powoduje wykrycie włamania. Wszystkie rozwiązania oparte na sygnaturach posiadają wspólną wadę: jedynie te włamania mogą zostać wykryte, dla których istnieje zdefiniowana sygnatura. Wiąże się to z nieustanną aktualizacją bazy danych sygnatur. Ponadto, systemy wykrywania nadużyć nie są zdolne do wykrywania ataków, które nie są jeszcze znane na świecie. Systemy wykrywania anomalii nie posiadają bazy danych sygnatur, w związku z tym pozbawione są wady opisanej powyżej. Dodatkowo, w odróżnieniu od systemów wykrywania nadużyć, zdolne są do wykrywania ataków, które wystąpią w przyszłości a na dzień obecny metoda ataku nie jest znana. Wadą ich jest natomiast duża ilość błędnych alarmów: false positive i false negative. Pierwszy z nich dotyczy sytuacji, gdy system wszczyna alarm na skutek błędnej analizy zdarzeń nie stanowiących ataku, drugi z nich oznacza brak alarmu w przypadku aktywności intruza. Systemy wykrywania anomalii są przedmiotem badań naukowych, nie istnieją tego typu wysokiej klasy rozwiązania komercyjne. Tworzone w laboratoriach systemy oparte są na metodach sztucznej inteligencji takich jak: sztuczne systemy immunologiczne, rekurencyjne sieci neuronowe, algorytmy genetyczne. 6 Systemy wykrywania anomalii w bazach danych Powodem niewielkiej ilość prac naukowych ukierunkowanych na wykrywanie anomalii w bazach danych jest możliwość uogólnienia dużej liczby propozycji wykrywania anomalii w sieciach komputerowych na inne obszary. W połowie 2005 roku ukazała się praca [1], w której autorzy podjęli próbę stworzenia systemu wykrywania anomalii w zapytaniach SQL, oznaczających ingerencję intruza, której celem jest uzyskanie nieautoryzowanego dostępu do bazy danych. Autorzy stworzyli system wykrywania anomalii, który zdolny jest do nauki profilu zawierającego charakterystykę dostępu do bazy z poziomu aplikacji WWW, używając do tego celu wielu modeli normalnego zachowania. Modele te umożliwiają wykrywanie nieznanych ataków przy niewielkim poziomie błędów false positive. Profile tworzone są automatycznie w fazie trenowania systemu na podstawie utworzonego wcześniej zbioru danych. Natomiast podczas fazy testowania, rejestrowane dane porównywane są z profilem. W przypadku, gdy zarejestrowane zachowanie nie pasuje do profilu zachowania, podnoszony jest alarm. Na rysunku poniżej przedstawiono architekturę systemu. Rys. 1. Architektura systemu wykrywania anomalii 348

9 Eksploracja i ochrona danych multimedialnych Zapytania SQL przesyłane przez serwer WWW do bazy danych wysyłane są również do aplikacji. Celem modułu dostawcy jest wyodrębnienie z kanału komunikacyjnego pomiędzy serwerem WWW i bazą danych zapytań SQL i przesłanie ich do modułu konwertera. Konwerter natomiast przetwarza zapytania SQL, produkując na wyjściu żetony z ustawioną flagą oznaczającą typ tokenu jako stałą lub zmienną. Stałe dotyczą jedynie słów kluczowych języka SQL. Zmiennymi będą pozostałe elementy zapytania SQL. Tokeny oznaczające kolumny tabel zawierają również informacje o typie danych. Zadaniem kolejnego modułu jest przydzielenie modelu zawartego w profilu do przesyłanego żetonu. Każdy model dotyczy cech charakterystycznych typu String danych. Pierwszy model to: długość String. Celem tego modelu jest oszacowanie średniej długości elementów zapytania SQL. Kolejny model to rozkład znaków stanowiących token. Podejście to jest oparte na obserwacji, że tokeny mają regularna strukturę tj. wszystkie znaki alfabetu występują z pewnym prawdopodobieństwem. Następny model to: wnioskowanie struktury zapytań. Celem tego modelu jest uzyskanie informacji o gramatyce przesyłanych żetonów. Oznacza to tym samym, że po pojawienie się pewnego żetony, system zna wszystkie możliwe (pasujące do gramatyki) żetony, które mogą pojawić się jako kolejne. W sytuacji, gdy kolejnym żetonem będzie nie pasujący do gramatyki, będzie to oznaczało anomalię. Do testowania stworzonego systemu wykorzystano aplikację portal PHPNuke 3 w starszej wersji, zawierającej błędy pozwalające na przeprowadzenie ataków SQL injection. Wyniki przeprowadzonych eksperymentów pokazały, iż wszystkie ataki zostały wykryte. 7 Podsumowanie Zastosowanie multimedialnych baz danych do składowania obiektów audio, wideo, dużych tekstów i obrazów staje się coraz powszechniejsze, jednak wraz ze wzrostem użytkowników tego typu rozwiązań rośnie liczba włamań do systemów zarządzania bazami danych. Aplikacje i rozszerzenia jak np. Oracle intermedia wspierają standard obsługi danych multimedialnych SQL/MM na razie w niewielkim stopniu, dlatego należy spodziewać się wzrostu tego wsparcia w kolejnych produktach z dziedziny multimedialnych baz danych. Projektanci systemów zarządzania bazami danych zapewne będą starali się także wyeliminować potencjalne zagrożenia ataków intruzów, choć tutaj skuteczność ograniczona jest przez zdolności percepcyjne danego zespołu programistów. Jednak przyszłość multimedialnych baz danych mimo problemów z bezpieczeństwem i ograniczonego wspierania standardu wydaje się być niezagrożona. Literatura 1. Valeur F., Mutz D., Vigna G., A Learning-Based Approach to the Detection of SQL Attacks.: Proceedings of the Conference on Detrection of Intrusions and Malware & Vulnerability Assesment (DIMVA), Wiedeń, ISO/IEC :2002, Information Technology Database Languages SQL Multimedia and Application Packages Part 1: Framework. ISO, ISO/IEC :2000, Information Technology Database Languages SQL Multimedia and Application Packages Part 2: Full-Text. ISO,

10 A. Barczak, J. Garbaczewski, J. Skaruz 4. ISO/IEC :1999, Information Technology Database Languages SQL Multimedia and Application Packages Part 3: Spatial, ISO ISO/IEC :2001, Information Technology Database Languages SQL Multimedia and Application Packages Part 5: Still Image. ISO, 2002, Second Edition. 6. ISO/IEC :2002, Information Technology Database Languages SQL Multimedia and Application Packages Part 6: Data mining. ISO, Bulusu Lakshman, Oracle i Java Programowanie, Mikom, Warszawa

Multimedialne bazy danych - laboratorium

Multimedialne bazy danych - laboratorium Multimedialne bazy danych - laboratorium Oracle Multimedia (rozwiązania) Celem ćwiczenia jest zapoznanie się z obiektowymi typami danych Oracle dedykowanymi do obsługi multimediów. Autor ćwiczenia: Marek

Bardziej szczegółowo

Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie. dr inż. Adam Piórkowski. Jakub Osiadacz Marcin Wróbel

Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie. dr inż. Adam Piórkowski. Jakub Osiadacz Marcin Wróbel Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Problem magazynowania i przetwarzania wielkoformatowych map i planów geologicznych. Promotor: dr inż. Adam Piórkowski Autorzy: Jakub Osiadacz

Bardziej szczegółowo

Standard SQL/MM: SQL Multimedia and Application Packages

Standard SQL/MM: SQL Multimedia and Application Packages Standard SQL/MM: SQL Multimedia and Application Packages Krzysztof Jankiewicz, Marek Wojciechowski Politechnika Poznańska, Instytut Informatyki Krzysztof.Jankiewicz@cs.put.poznan.pl Marek.Wojciechowski@cs.put.poznan.pl

Bardziej szczegółowo

Multimedialne bazy danych. Andrzej Łachwa, WFAiIS UJ 2011

Multimedialne bazy danych. Andrzej Łachwa, WFAiIS UJ 2011 5 Multimedialne bazy danych Andrzej Łachwa, WFAiIS UJ 2011 Wyszukiwanie obrazów w bazach danych www.cs.put.poznan.pl/mwojciechowski/papers/plougtki03.pdf PLOUG tki nr 28/grudzień 2003 Podstawowe wymagania

Bardziej szczegółowo

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze Cechy bloków nazwanych: w postaci skompilowanej trwale przechowywane na serwerze wraz z danymi wykonywane na żądanie użytkownika lub w

Bardziej szczegółowo

15. Funkcje i procedury składowane PL/SQL

15. Funkcje i procedury składowane PL/SQL 15. Funkcje i procedury składowane PLSQL 15.1. SQL i PLSQL (Structured Query Language - SQL) Język zapytań strukturalnych SQL jest zbiorem poleceń, za pomocą których programy i uŝytkownicy uzyskują dostęp

Bardziej szczegółowo

Język SQL, zajęcia nr 1

Język SQL, zajęcia nr 1 Język SQL, zajęcia nr 1 SQL - Structured Query Language Strukturalny język zapytań Login: student Hasło: stmeil14 Baza danych: st https://194.29.155.15/phpmyadmin/index.php Andrzej Grzebielec Najpopularniejsze

Bardziej szczegółowo

PL/SQL. Zaawansowane tematy PL/SQL

PL/SQL. Zaawansowane tematy PL/SQL PL/SQL Zaawansowane tematy PL/SQL Cele Poznanie złożonych i referencyjnych typów danych Poznanie konstrukcji kursora Poznanie kodu składowanego Poznanie procedur i funkcji 2 Złożone typy danych RECORD

Bardziej szczegółowo

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ];

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ]; Braki w SQL obsługi zdarzeń i sytuacji wyjątkowych funkcji i procedur użytkownika definiowania złożonych ograniczeń integralnościowych Proceduralny SQL Transact- SQL używany przez Microsoft SQL Server

Bardziej szczegółowo

Programowanie w Ruby

Programowanie w Ruby Programowanie w Ruby Wykład 6 Marcin Młotkowski 14 listopada 2012 Plan wykładu Trwałość obiektów Bazy danych DBM Bazy danych SQL Active records Szeregowanie obiektów Obiekt Serializacja @tytul = 'Pan Tadeusz'

Bardziej szczegółowo

Oracle PL/SQL. Paweł Rajba.

Oracle PL/SQL. Paweł Rajba. Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 2 Kusory Wprowadzenie Kursory użytkownika Kursory domyślne Zmienne kursora Wyrażenia kursora - 2 - Wprowadzenie Co to jest kursor?

Bardziej szczegółowo

Pakiety podprogramów Dynamiczny SQL

Pakiety podprogramów Dynamiczny SQL Pakiety podprogramów Dynamiczny SQL Pakiety podprogramów, specyfikacja i ciało pakietu, zmienne i kursory pakietowe, pseudoinstrukcje (dyrektywy kompilatora), dynamiczny SQL 1 Pakiety Pakiet (ang. package)

Bardziej szczegółowo

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik Technologia Przykłady praktycznych zastosowań wyzwalaczy będą omawiane na bazie systemu MS SQL Server 2005 Wprowadzenie

Bardziej szczegółowo

PHP: bazy danych, SQL, AJAX i JSON

PHP: bazy danych, SQL, AJAX i JSON 1 PHP: bazy danych, SQL, AJAX i JSON SYSTEMY SIECIOWE Michał Simiński 2 Bazy danych Co to jest MySQL? Jak się połączyć z bazą danych MySQL? Podstawowe operacje na bazie danych Kilka dodatkowych operacji

Bardziej szczegółowo

INFORMATYKA Pytania ogólne na egzamin dyplomowy

INFORMATYKA Pytania ogólne na egzamin dyplomowy INFORMATYKA Pytania ogólne na egzamin dyplomowy 1. Wyjaśnić pojęcia problem, algorytm. 2. Podać definicję złożoności czasowej. 3. Podać definicję złożoności pamięciowej. 4. Typy danych w języku C. 5. Instrukcja

Bardziej szczegółowo

Język PL/SQL. Rozdział 5. Pakiety podprogramów. Dynamiczny SQL

Język PL/SQL. Rozdział 5. Pakiety podprogramów. Dynamiczny SQL Język PL/SQL. Rozdział 5. Pakiety podprogramów. Dynamiczny SQL Pakiety podprogramów, specyfikacja i ciało pakietu, zmienne i kursory pakietowe, pseudoinstrukcje (dyrektywy kompilatora), dynamiczny SQL.

Bardziej szczegółowo

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów SQL3 wprowadza następujące kolekcje: zbiory ( SETS ) - zestaw elementów bez powtórzeń, kolejność nieistotna listy ( LISTS ) - zestaw

Bardziej szczegółowo

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia ZP/ITS/11/2012 Załącznik nr 1a do SIWZ ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia Przedmiotem zamówienia jest: Przygotowanie zajęć dydaktycznych w postaci kursów e-learningowych przeznaczonych

Bardziej szczegółowo

Tworzenie raportów XML Publisher przy użyciu Data Templates

Tworzenie raportów XML Publisher przy użyciu Data Templates Tworzenie raportów XML Publisher przy użyciu Data Templates Wykorzystanie Szablonów Danych (ang. Data templates) jest to jedna z metod tworzenia raportów w technologii XML Publisher bez użycia narzędzia

Bardziej szczegółowo

Prezentacja specjalności studiów II stopnia. Inteligentne Technologie Internetowe

Prezentacja specjalności studiów II stopnia. Inteligentne Technologie Internetowe Prezentacja specjalności studiów II stopnia Inteligentne Technologie Internetowe Koordynator specjalności Prof. dr hab. Jarosław Stepaniuk Tematyka studiów Internet jako zbiór informacji Przetwarzanie:

Bardziej szczegółowo

1 Kursory 1. 2 Wyjątki Wyjątki predefiniowane Wyjątki niezdefiniowane wcześniej Definiowanie własnych wyjątków...

1 Kursory 1. 2 Wyjątki Wyjątki predefiniowane Wyjątki niezdefiniowane wcześniej Definiowanie własnych wyjątków... Plan wykładu Spis treści 1 Kursory 1 2 Wyjątki 4 2.1 Wyjątki predefiniowane............................. 4 2.2 Wyjątki niezdefiniowane wcześniej....................... 5 2.3 Definiowanie własnych wyjątków........................

Bardziej szczegółowo

Pakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki.

Pakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki. Pakiety Pakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki. Pakiet składa się ze: specyfikacji (interfejsu) i ciała (implementacji). W specyfikacji mieszczą

Bardziej szczegółowo

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych Języki programowania wysokiego poziomu PHP cz.4. Bazy danych PHP i bazy danych PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł

Bardziej szczegółowo

PODSTAWY BAZ DANYCH 13. PL/SQL

PODSTAWY BAZ DANYCH 13. PL/SQL PODSTAWY BAZ DANYCH 13. PL/SQL 1 Wprowadzenie do języka PL/SQL Język PL/SQL - rozszerzenie SQL o elementy programowania proceduralnego. Możliwość wykorzystywania: zmiennych i stałych, instrukcji sterujących

Bardziej szczegółowo

DECLARE VARIABLE zmienna1 typ danych; BEGIN

DECLARE VARIABLE zmienna1 typ danych; BEGIN Procedury zapamiętane w Interbase - samodzielne programy napisane w specjalnym języku (właściwym dla serwera baz danych Interbase), który umożliwia tworzenie zapytań, pętli, instrukcji warunkowych itp.;

Bardziej szczegółowo

Procedury i funkcje składowane

Procedury i funkcje składowane Procedury i funkcje składowane Zmienne podstawienia i zmienne wiązane, podprogramy, procedury składowane, typy argumentów, wywoływanie procedur, funkcje składowane, poziomy czystości funkcji, funkcje tablicowe

Bardziej szczegółowo

Oracle PL/SQL. Paweł Rajba.

Oracle PL/SQL. Paweł Rajba. Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 8 Wprowadzenie Definiowanie typu obiektowego Porównywanie obiektów Tabele z obiektami Operacje DML na obiektach Dziedziczenie -

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umożliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.

Bardziej szczegółowo

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod

Bardziej szczegółowo

MECHANIZMY WYSZUKIWANIA OBRAZEM W ORACLE 11g

MECHANIZMY WYSZUKIWANIA OBRAZEM W ORACLE 11g ZESZYTY NAUKOWE POLITECHNIKI RZESZOWSKIEJ 296, Elektrotechnika 36 RUTJEE, z. 36 (3/2017), październik-grudzień 2017, s. 5-18 Ewa CZARNIK 1 Paweł DYMORA 2 Mirosław MAZUREK 3 MECHANIZMY WYSZUKIWANIA OBRAZEM

Bardziej szczegółowo

Oracle11g: Wprowadzenie do SQL

Oracle11g: Wprowadzenie do SQL Oracle11g: Wprowadzenie do SQL OPIS: Kurs ten oferuje uczestnikom wprowadzenie do technologii bazy Oracle11g, koncepcji bazy relacyjnej i efektywnego języka programowania o nazwie SQL. Kurs dostarczy twórcom

Bardziej szczegółowo

Materiały. Technologie baz danych. Plan wykładu Kursory. Wykład 5: Kursory jawne. Podprogramy. Kursory jawne. Kursory niejawne

Materiały. Technologie baz danych. Plan wykładu Kursory. Wykład 5: Kursory jawne. Podprogramy. Kursory jawne. Kursory niejawne Materiały dostępne są na stronie: Materiały Technologie baz danych aragorn.pb.bialystok.pl/~gkret Wykład 5: Kursory jawne. Podprogramy. Małgorzata Krętowska Wydział Informatyki Politechnika Białostocka

Bardziej szczegółowo

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

PRZESTRZENNE BAZY DANYCH WYKŁAD 2 PRZESTRZENNE BAZY DANYCH WYKŁAD 2 Baza danych to zbiór plików, które fizycznie przechowują dane oraz system, który nimi zarządza (DBMS, ang. Database Management System). Zadaniem DBMS jest prawidłowe przechowywanie

Bardziej szczegółowo

Oracle PL/SQL. Paweł Rajba.

Oracle PL/SQL. Paweł Rajba. Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 5 Wprowadzenie Tworzenie i wykonywanie procedur i funkcji Instrukcja RETURN Parametry procedur i funkcji oraz ich przesyłanie Metadane

Bardziej szczegółowo

Wykład 5. SQL praca z tabelami 2

Wykład 5. SQL praca z tabelami 2 Wykład 5 SQL praca z tabelami 2 Wypełnianie tabel danymi Tabele można wypełniać poprzez standardową instrukcję INSERT INTO: INSERT [INTO] nazwa_tabeli [(kolumna1, kolumna2,, kolumnan)] VALUES (wartosc1,

Bardziej szczegółowo

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie Programowanie MSQL show databases; - pokazanie jakie bazy danych są dostępne na koncie show databases; - wyświetlenie wszystkich baz danych na serwerze create database nazwa; - za nazwa wstawiamy wybraną

Bardziej szczegółowo

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych SQL SQL (ang. Structured Query Language): strukturalny język zapytań używany do tworzenia strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych

Bardziej szczegółowo

Model semistrukturalny

Model semistrukturalny Model semistrukturalny standaryzacja danych z różnych źródeł realizacja złożonej struktury zależności, wielokrotne zagnieżdżania zobrazowane przez grafy skierowane model samoopisujący się wielkości i typy

Bardziej szczegółowo

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL Wprowadzenie do SQL SQL - Structured Query Language -strukturalny język zapytań Światowy standard przeznaczony do definiowania, operowania i sterowania danymi w relacyjnych bazach danych Powstał w firmie

Bardziej szczegółowo

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u będziemy używać w taki sam sposób, jak wbudowanych funkcji

Bardziej szczegółowo

Generowanie dokumentów XML z tabel relacyjnych - funkcje SQLX

Generowanie dokumentów XML z tabel relacyjnych - funkcje SQLX Aktualizowanie dokumentów XML ( Oracle ) do aktualizowania zawartości dokumentów XML służy między innymi funkcja updatexml. wynikiem jej działania jest oryginalny dokument ze zmodyfikowanym fragmentem,

Bardziej szczegółowo

Rozkład materiału do realizacji informatyki w szkole ponadgimnazjalnej w zakresie rozszerzonym

Rozkład materiału do realizacji informatyki w szkole ponadgimnazjalnej w zakresie rozszerzonym Rozkład materiału do realizacji informatyki w szkole ponadgimnazjalnej w zakresie rozszerzonym opracowany na podstawie podręcznika, MIGRA 2013 Autor: Grażyna Koba W rozporządzeniu Ministra Edukacji Narodowej

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umoŝliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 13 Marcin Młotkowski 27 maja 2015 Plan wykładu Trwałość obiektów 1 Trwałość obiektów 2 Marcin Młotkowski Programowanie obiektowe 2 / 29 Trwałość (persistence) Definicja Cecha

Bardziej szczegółowo

Bloki anonimowe w PL/SQL

Bloki anonimowe w PL/SQL Język PL/SQL PL/SQL to specjalny język proceduralny stosowany w bazach danych Oracle. Język ten stanowi rozszerzenie SQL o szereg instrukcji, znanych w proceduralnych językach programowania. Umożliwia

Bardziej szczegółowo

Wprowadzenie do multimedialnych baz danych. Opracował: dr inż. Piotr Suchomski

Wprowadzenie do multimedialnych baz danych. Opracował: dr inż. Piotr Suchomski Wprowadzenie do multimedialnych baz danych Opracował: dr inż. Piotr Suchomski Wprowadzenie bazy danych Multimedialne bazy danych to takie bazy danych, w których danymi mogą być tekst, zdjęcia, grafika,

Bardziej szczegółowo

Tworzenie aplikacji bazodanowych

Tworzenie aplikacji bazodanowych Wydział Informatyki Politechnika Białostocka Studia stacjonarne Tworzenie aplikacji bazodanowych Prowadzący: pokój: E-mail: WWW: Małgorzata Krętowska, Agnieszka Oniśko 206 (Małgorzata Krętowska), 207 (Agnieszka

Bardziej szczegółowo

Język PL/SQL Pakiety podprogramów

Język PL/SQL Pakiety podprogramów Język PL/SQL Pakiety podprogramów Pakiety podprogramów, specyfikacja i ciało pakietu, zmienne i kursory pakietowe, pseudoinstrukcje (dyrektywy kompilatora) 1 Pakiety Pakiet (ang. package) grupuje powiązane

Bardziej szczegółowo

6. Bezpieczeństwo przy współpracy z bazami danych

6. Bezpieczeństwo przy współpracy z bazami danych 6. Bezpieczeństwo przy współpracy z bazami danych 6.1. Idea ataku SQL injection Atak znany jako SQL injection jest możliwy wtedy, gdy użytkownik ma bezpośredni wpływ na postać zapytania wysyłanego do bazy

Bardziej szczegółowo

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi. Marek Robak Wprowadzenie do języka SQL na przykładzie baz SQLite Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi. Tworzenie tabeli Pierwsza tabela W relacyjnych bazach danych jedna

Bardziej szczegółowo

Wykład I. Wprowadzenie do baz danych

Wykład I. Wprowadzenie do baz danych Wykład I Wprowadzenie do baz danych Trochę historii Pierwsze znane użycie terminu baza danych miało miejsce w listopadzie w 1963 roku. W latach sześcdziesątych XX wieku został opracowany przez Charles

Bardziej szczegółowo

Projektowanie systemów baz danych

Projektowanie systemów baz danych Projektowanie systemów baz danych Seweryn Dobrzelewski 4. Projektowanie DBMS 1 SQL SQL (ang. Structured Query Language) Język SQL jest strukturalnym językiem zapewniającym możliwość wydawania poleceń do

Bardziej szczegółowo

P o d s t a w y j ę z y k a S Q L

P o d s t a w y j ę z y k a S Q L P o d s t a w y j ę z y k a S Q L Adam Cakudis IFP UAM Użytkownicy System informatyczny Aplikacja Aplikacja Aplikacja System bazy danych System zarządzania baz ą danych Schemat Baza danych K o n c e p

Bardziej szczegółowo

RELACYJNE BAZY DANYCH

RELACYJNE BAZY DANYCH RELACYJNE BAZY DANYCH Aleksander Łuczyk Bielsko-Biała, 15 kwiecień 2015 r. Ludzie używają baz danych każdego dnia. Książka telefoniczna, zbiór wizytówek przypiętych nad biurkiem, encyklopedia czy chociażby

Bardziej szczegółowo

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym 1 Wprowadzenie do środowiska Oracle APEX, obszary robocze, użytkownicy Wprowadzenie Plan Administracja obszarem roboczym 2 Wprowadzenie Co to jest APEX? Co to jest APEX? Architektura Środowisko Oracle

Bardziej szczegółowo

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15 T-SQL dla każdego / Alison Balter. Gliwice, cop. 2016 Spis treści O autorce 11 Dedykacja 12 Podziękowania 12 Wstęp 15 Godzina 1. Bazy danych podstawowe informacje 17 Czym jest baza danych? 17 Czym jest

Bardziej szczegółowo

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych Laboratorium Technologii Informacyjnych Projektowanie Baz Danych Komputerowe bazy danych są obecne podstawowym narzędziem służącym przechowywaniu, przetwarzaniu i analizie danych. Gromadzone są dane w

Bardziej szczegółowo

Dlaczego GML? Gdańsk r. Karol Stachura

Dlaczego GML? Gdańsk r. Karol Stachura Dlaczego GML? Gdańsk 13.03.2017r. Karol Stachura Zanim o GML najpierw o XML Dlaczego stosuje się pliki XML: Tekstowe Samoopisujące się Elastyczne Łatwe do zmiany bez zaawansowanego oprogramowania Posiadające

Bardziej szczegółowo

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł mysqli ma dwa interfejsy: proceduralny i obiektowy) PostgreSQL Oracle MS

Bardziej szczegółowo

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1 Bazy danych Wykład IV SQL - wprowadzenie Copyrights by Arkadiusz Rzucidło 1 Czym jest SQL Język zapytań deklaratywny dostęp do danych Składnia łatwa i naturalna Standardowe narzędzie dostępu do wielu różnych

Bardziej szczegółowo

Multi-projekt z przedmiotów Inżynieria oprogramowania, Współczesne bazy danych i Programowanie w języku Java

Multi-projekt z przedmiotów Inżynieria oprogramowania, Współczesne bazy danych i Programowanie w języku Java Multi-projekt z przedmiotów Inżynieria oprogramowania, Współczesne bazy danych i Programowanie w języku Java Spis treści 1 Terminarz...3 2 Specyfikacja wymagań - założenia projektowe...4 2.1 Informacje

Bardziej szczegółowo

Obiektowe bazy danych

Obiektowe bazy danych Obiektowe bazy danych Obiektowo-relacyjne bazy danych Wykład prowadzi: Tomasz Koszlajda Obiektowo-relacyjne bazy danych Ewolucja rozszerzeń relacyjnego modelu danych: Składowanie kodu procedur w bazie

Bardziej szczegółowo

Systemy GIS Tworzenie zapytań w bazach danych

Systemy GIS Tworzenie zapytań w bazach danych Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE

Bardziej szczegółowo

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD Dr inż. Jacek WARCHULSKI Dr inż. Marcin WARCHULSKI Mgr inż. Witold BUŻANTOWICZ Wojskowa Akademia Techniczna SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD Streszczenie: W referacie przedstawiono możliwości

Bardziej szczegółowo

Bazy danych Wykład zerowy. P. F. Góra

Bazy danych Wykład zerowy. P. F. Góra Bazy danych Wykład zerowy P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2012 Patron? Św. Izydor z Sewilli (VI wiek), biskup, patron Internetu (sic!), stworzył pierwszy katalog Copyright c 2011-12 P.

Bardziej szczegółowo

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia Składowe wyzwalacza ( ECA ): określenie zdarzenia ( Event ) określenie

Bardziej szczegółowo

Materiały do laboratorium MS ACCESS BASIC

Materiały do laboratorium MS ACCESS BASIC Materiały do laboratorium MS ACCESS BASIC Opracowała: Katarzyna Harężlak Access Basic jest językiem programowania wykorzystywanym w celu powiązania obiektów aplikacji w jeden spójny system. PROCEDURY I

Bardziej szczegółowo

Jednolite zarządzanie użytkownikami systemów Windows i Linux

Jednolite zarządzanie użytkownikami systemów Windows i Linux Uniwersytet Mikołaja Kopernika Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Paweł Gliwiński Nr albumu: 168470 Praca magisterska na kierunku Informatyka Jednolite

Bardziej szczegółowo

Alicja Marszałek Różne rodzaje baz danych

Alicja Marszałek Różne rodzaje baz danych Alicja Marszałek Różne rodzaje baz danych Rodzaje baz danych Bazy danych można podzielić wg struktur organizacji danych, których używają. Można podzielić je na: Bazy proste Bazy złożone Bazy proste Bazy

Bardziej szczegółowo

Oracle intermedia na tle standardu SQL/MM i prototypowych systemów multimedialnych baz danych

Oracle intermedia na tle standardu SQL/MM i prototypowych systemów multimedialnych baz danych IX Konferencja PLOUG Koœcielisko PaŸdziernik 2003 Oracle intermedia na tle standardu SQL/MM i prototypowych systemów multimedialnych baz danych Marek Wojciechowski, ukasz Matuszczak Politechnika Poznañska

Bardziej szczegółowo

SZKOLENIE TWORZENIE SYSTEMÓW

SZKOLENIE TWORZENIE SYSTEMÓW SZKOLENIE TWORZENIE SYSTEMÓW INFORMATYCZNYCH Z UŻYCIEM GROOVY I GRAILS KOD: JGR Strona 1 1 Opis Platforma Java EE to zbiór zaawansowanych narzędzi umożliwiających tworzenie systemów korporacyjnych. Jest

Bardziej szczegółowo

Wykorzystanie standardów serii ISO 19100 oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych

Wykorzystanie standardów serii ISO 19100 oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych Wykorzystanie standardów serii ISO 19100 oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych dr inż. Adam Iwaniak Infrastruktura Danych Przestrzennych w Polsce i Europie Seminarium, AR Wrocław

Bardziej szczegółowo

Wybrane problemy z dziedziny modelowania i wdrażania baz danych przestrzennych w aspekcie dydaktyki. Artur Krawczyk AGH Akademia Górniczo Hutnicza

Wybrane problemy z dziedziny modelowania i wdrażania baz danych przestrzennych w aspekcie dydaktyki. Artur Krawczyk AGH Akademia Górniczo Hutnicza Wybrane problemy z dziedziny modelowania i wdrażania baz danych przestrzennych w aspekcie dydaktyki Artur Krawczyk AGH Akademia Górniczo Hutnicza Problem modelowania tekstowego opisu elementu geometrycznego

Bardziej szczegółowo

SYSTEM INFORMATYCZNY KS-SEW

SYSTEM INFORMATYCZNY KS-SEW DOKUMENTACJA TECHNICZNA KAMSOFT S.A. 40-235 Katowice ul. 1-Maja 133 Tel. (032) 2090705, Fax. (032) 2090715 http:www.kamsoft.pl, e-mail: 5420@kamsoft.pl SYSTEM INFORMATYCZNY NR KATALOGOWY 2334PI06.00 WYDANIE

Bardziej szczegółowo

ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko. Typy rozproszonych baz danych. Systemy klient-serwer. Klient-serwer: Przykład

ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko. Typy rozproszonych baz danych. Systemy klient-serwer. Klient-serwer: Przykład ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko Typy rozproszonych baz Systemy typu klient-serwer (jeden serwer) Jednorodna rozproszona baza (kilka serwerow, jeden system zarzadzania baza ) Niejednorodna

Bardziej szczegółowo

Projektowani Systemów Inf.

Projektowani Systemów Inf. Projektowani Systemów Inf. Wykład VII Bezpieczeństwo Copyrights by Arkadiusz Rzucidło 1 Bezpieczeństwo Bezpieczeństwo związane z danymi Konstrukcja magazynów danych Mechanizmy zapisu i modyfikacji danych

Bardziej szczegółowo

WPROWADZENIE DO BAZ DANYCH

WPROWADZENIE DO BAZ DANYCH WPROWADZENIE DO BAZ DANYCH Pojęcie danych i baz danych Dane to wszystkie informacje jakie przechowujemy, aby w każdej chwili mieć do nich dostęp. Baza danych (data base) to uporządkowany zbiór danych z

Bardziej szczegółowo

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java Informatyka I Standard JDBC Programowanie aplikacji bazodanowych w języku Java dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Standard JDBC Java DataBase Connectivity uniwersalny

Bardziej szczegółowo

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika Programowanie w SQL procedury i funkcje UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika 1. Funkcje o wartościach skalarnych ang. scalar valued

Bardziej szczegółowo

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. 77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. Przy modelowaniu bazy danych możemy wyróżnić następujące typy połączeń relacyjnych: jeden do wielu, jeden do jednego, wiele

Bardziej szczegółowo

Wykład 6. SQL praca z tabelami 3

Wykład 6. SQL praca z tabelami 3 Wykład 6 SQL praca z tabelami 3 Łączenie wyników zapytań Język SQL zawiera mechanizmy pozwalające na łączenie wyników kilku pytań. Pozwalają na to instrukcje UNION, INTERSECT, EXCEPT o postaci: zapytanie1

Bardziej szczegółowo

PODSTAWY BAZ DANYCH. 17. Obiektowość w Oracle. 2009/2010 Notatki do wykładu "Podstawy baz danych"

PODSTAWY BAZ DANYCH. 17. Obiektowość w Oracle. 2009/2010 Notatki do wykładu Podstawy baz danych PODSTAWY BAZ DANYCH 17. Obiektowość w Oracle 1 Obiektowa baza danych Obiektowe bazy danych (OBD) powstały początkowo jako rozwinięcie programowania obiektowego. Bazy danych zorientowane obiektowo przechowują

Bardziej szczegółowo

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Prezentacja Danych i Multimedia II r Socjologia Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Celem ćwiczeń jest poznanie zasad tworzenia baz danych i zastosowania komend SQL. Ćwiczenie I. Logowanie

Bardziej szczegółowo

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław 9.06.2015 r.

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław 9.06.2015 r. Bazy danych dla producenta mebli tapicerowanych Bartosz Janiak Marcin Sikora Wrocław 9.06.2015 r. Założenia Stworzyć system bazodanowy dla małej firmy produkującej meble tapicerowane. Projekt ma umożliwić

Bardziej szczegółowo

Modelowanie i Programowanie Obiektowe

Modelowanie i Programowanie Obiektowe Modelowanie i Programowanie Obiektowe Wykład I: Wstęp 20 październik 2012 Programowanie obiektowe Metodyka wytwarzania oprogramowania Metodyka Metodyka ustandaryzowane dla wybranego obszaru podejście do

Bardziej szczegółowo

Monitoring procesów z wykorzystaniem systemu ADONIS. Krok po kroku

Monitoring procesów z wykorzystaniem systemu ADONIS. Krok po kroku z wykorzystaniem systemu ADONIS Krok po kroku BOC Information Technologies Consulting Sp. z o.o. e-mail: boc@boc-pl.com Tel.: (+48 22) 628 00 15, 696 69 26 Fax: (+48 22) 621 66 88 BOC Management Office

Bardziej szczegółowo

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, 2017 Spis treści O autorze 9 Wprowadzenie 11 Lekcja 1. Zrozumieć SQL 15 Podstawy baz danych 15 Język SQL

Bardziej szczegółowo

OfficeObjects e-forms

OfficeObjects e-forms OfficeObjects e-forms Rodan Development Sp. z o.o. 02-820 Warszawa, ul. Wyczółki 89, tel.: (+48-22) 643 92 08, fax: (+48-22) 643 92 10, http://www.rodan.pl Spis treści Wstęp... 3 Łatwość tworzenia i publikacji

Bardziej szczegółowo

Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework

Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework mgr inż. Łukasz Stefanowicz dr inż.

Bardziej szczegółowo

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC. Informatyka I Programowanie aplikacji bazodanowych w języku Java. Standard JDBC. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 Standard JDBC Java DataBase Connectivity

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: Kierunek: Inżynieria Biomedyczna Rodzaj przedmiotu: obowiązkowy moduł specjalności informatyka medyczna Rodzaj zajęć: wykład, laboratorium PROGRAMOWANIE INTERNETOWE Internet Programming

Bardziej szczegółowo

Język PL/SQL Procedury i funkcje składowane

Język PL/SQL Procedury i funkcje składowane Język PL/SQL Procedury i funkcje składowane Podprogramy, procedury i funkcje składowane, typy argumentów, wywoływanie procedur i funkcji, poziomy czystości funkcji 1 Podprogramy Procedury (wykonują określone

Bardziej szczegółowo

Bazy danych. Zenon Gniazdowski WWSI, ITE Andrzej Ptasznik WWSI

Bazy danych. Zenon Gniazdowski WWSI, ITE Andrzej Ptasznik WWSI Bazy danych Zenon Gniazdowski WWSI, ITE Andrzej Ptasznik WWSI Wszechnica Poranna Trzy tematy: 1. Bazy danych - jak je ugryźć? 2. Język SQL podstawy zapytań. 3. Mechanizmy wewnętrzne baz danych czyli co

Bardziej szczegółowo

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Instalacja SQL Server Express. Logowanie na stronie Microsoftu Instalacja SQL Server Express Logowanie na stronie Microsoftu Wybór wersji do pobrania Pobieranie startuje, przechodzimy do strony z poradami. Wypakowujemy pobrany plik. Otwiera się okno instalacji. Wybieramy

Bardziej szczegółowo

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi Systemy baz danych w zarządzaniu przedsiębiorstwem W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi Proces zarządzania danymi Zarządzanie danymi obejmuje czynności: gromadzenie

Bardziej szczegółowo

Czym jest Oracle Multimedia?

Czym jest Oracle Multimedia? Oracle Multimedia Czym jest Oracle Multimedia? Oracle Multimedia to cecha (ang. feature) serwera bazy danych Oracle umożliwiająca składowanie, odczyt i przetwarzanie multimediów w sposób zintegrowany z

Bardziej szczegółowo

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni Akademia Morska w Gdyni Gdynia 2004 1. Podstawowe definicje Baza danych to uporządkowany zbiór danych umożliwiający łatwe przeszukiwanie i aktualizację. System zarządzania bazą danych (DBMS) to oprogramowanie

Bardziej szczegółowo

Mechanika i Budowa Maszyn II stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

Mechanika i Budowa Maszyn II stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny) Załącznik nr 7 do Zarządzenia Rektora nr 10/12 z dnia 21 lutego 2012r. KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu Nazwa modułu Nazwa modułu w języku angielskim Obowiązuje od roku akademickiego 2013/2014

Bardziej szczegółowo