Wykorzystanie Oracle intermedia do przechowywania danych multimedialnych w Oracle 10g

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

Download "Wykorzystanie Oracle intermedia do przechowywania danych multimedialnych w Oracle 10g"

Transkrypt

1 Rozdział 24 Wykorzystanie Oracle intermedia do przechowywania danych multimedialnych w Oracle 10g Streszczenie. Specyfikacja języka SQL nie uwzględnia obsługi medialnych typów danych. Dopiero standard SQL/MM w dużej części rozwiązuje ten problem. W systemie Oracle za obsługę multimedialnych typów danych odpowiada moduł Oracle intermedia. Dzięki niemu baza danych jest w stanie przechowywać, zarządzać i pobierać różnego rodzaju heterogeniczne dane tj. obrazki, pliki audio, wideo. Celem rozdziału jest przedstawienie problemu dotyczącego zarządzania typem danych ORDImage, który służy do manipulacji obrazami i jest jako jedyny dość dobrze wspierany przez Oracle 10g. 1 Wstęp Dzisiejsze bazy danych to nie tylko relacje pomiędzy tabelami i tekst czy liczby w krotkach. System zarządzający bazą musi także obsługiwać różnego rodzaju dane multimedialne tj. grafikę, strumienie audio czy wideo. Z definicji dane multimedialne to dane, niosące ze sobą kilka potoków informacji, np. dane wideo zawierają obraz, zazwyczaj także ścieżkę dźwiękowa a niekiedy nawet uzupełnione są o dane tekstowe. Mówiąc o grafice jako danych multimedialnych, mamy na myśli raczej praktyczną definicję, która skupia się na prezentacji przez maszynę cyfrową zakodowanych informacji w sposób zrozumiały dla człowieka. W świetle tak sformułowanego pojęcia multimediów obrazy z całym powodzeniem możemy zaliczać do tej grupy. Oracle 10g do obsługi danych multimedialnych wykorzystuje moduł intermedia, który jest zgodny ze standardem SQL/MM. SQL/MM (MM od MultiMedia) znany również pod nazwą SQL Multimedia and Application Packages. Rozszerza on standard SQL99 o obsługę nowych, specyficznych typów danych dedukowanych właśnie do przechowywania multimediów. Na chwilę obecną typem w pełni wspieranym i obsługiwanym przez intermedia jest ORDImage i na nim skupimy uwagę w tym rozdziale. W podrozdziale 2 zostanie przedstawiona budowa, atrybuty i metody, a w podrozdziale 3 praktyczne wykorzystanie obiektów graficznych. Andrzej Barczak, Dariusz Zacharczuk Akademia Podlaska, Instytut Informatyki, ul. 3 Maja 54, Siedlce, Polska abarczak@ap.siedlce.pl, dzariusz@dzariusz.pl

2 A. Barczak, D. Zacharczuk 2 Budowa i metody ORDImage Wszystkie typy multimedialne w Oracle intermedia oparte są na zagnieżdżonym obiekcie ORDSYS.ORDSource (atrybut: <obiekt>.source), który posiada podstawowe mechanizmy i atrybuty do pracy na danych. ORDSource pozwala na dostęp do lokalnych zmiennych BLOB, zewnętrznych plików BFILE, zewnętrznych adresów URL na serwerach http. Atrybuty tego obiektu zawierają informacje o typie źródła danych (srctype), lokalizacji źródła (srclocation), nazwie obiektu (srcname), dacie modyfikacji (updatetime) fladze informującej czy dane są przechowywane lokalnie czy też nie (local) oraz same dane w postaci BLOB (localdata). Metody, tak jak i zmienne typu ORDSource są wspólne dla wszystkich typów obiektowych (z wyjątkiem obiektów Still Image). Metody uruchamiane na poziomie ORDSource używają wtyczek posługujących się uchwytami do źródła danych w celu jego przetwarzania. Jako pierwszy argument przyjmują zmienną ctx typu RAW. Przed jakimkolwiek wywołaniem jednej z takich metod po raz pierwszy, użytkownik powinien zadeklarować strukturę ctx oraz zainicjować ją wartością NULL. Następnie należy wywołać metodę opensource() a po przetworzeniu danych closesource(). Tabela 1 zawiera krótką charakterystykę funkcji i procedur omawianego obiektu. Tabela 1. Opis wybranych metod podstawowego typu danych multimedialnych ORDSource. Format deletecontent( export( ctx IN OUT RAW, source_type IN VARCHAR2, source_location IN VARCHAR2, source_name IN VARCHAR2 getcontent() RETURN BLOB; getsource() RETURN VARCHAR2; 272 Komentarz Kasuje zawartość BLOB atrybutu source.localdata i ustawia zmienną source.local na zero. Aktualizuje także source.updatetime. Ta metoda może być użyta po eksporcie danych z lokalnego źródła na zewnątrz bazy jeżeli dane nie będą dłużej potrzebne albo kiedy chcemy zastąpić stary obiekt obiektem nowym. Kopiuje dane ze zmiennej typu BLOB (source.localdata) do źródła zewnętrznego. Metoda ta zapewnia wsparcie tylko kiedy source_type ma wartość FILE. W takim przypadku dane są zapisywane do pliku w katalogu podanego parametrem source_location, do którego Oracle ma dostęp. Nazwa pod jaką zostaną zapisane dane podawana jest jako parametr ostatni. Po wyeksportowaniu danych można użyć metody clearlocal() aby wskazać, że dane są przechowywane na zewnątrz bazy danych. Nie jest ona bowiem automatycznie wywoływana, w odróżnieniu do odwrotnej metody import(), którą niejawnie wywołuje setlocal(). Można również użyć metody deletecontent() jeśli chcemy skasować zawartość atrybutu source.localdata. Zwraca uchwyt typu BLOB do atrybutu source.localdata. Zwraca informacje nt. zewnętrznej lokalizacji danych w formacie URL. Są to informacje z atrybutów: source.srctype, source.srclocation i source.srcname. Wartości, jakie może zwrócić funkcja: FILE://<DIR OBJECT NAME>/<FILE NAME> dla pliku dla HTTP Np.: file://daro_dir/intermedia.bmp

3 Instrukcje dla autorów referatów Konferencji Naukowej BDASg islocal() RETURN BOOLEAN; Zwraca TRUE jeżeli dane są przechowywane lokalnie (source.local=1, dane w formie BLOB) lub FALSE w przeciwnym wypadku. Ustawia atrybut source.local tak, aby wskazywał, że dane są przechowywane wewnątrz bazy danych jako BLOB. Jeśli atrybut jest już ustawiony, wtedy metoda szuka odpowiednich danych wskazywanych przez atrybut source.localdata. Ustawia datę modyfikacji obiektu (source.srcupdatetime). Należy używać tej metody za każdym razem gdy dane są modyfikowane. Metody, które zmieniają atrybuty obiektu oraz wszystkie metody ustawiające dostęp do mediów wywołają tą metodę domyślnie. setlocal( setupdatetime( current_time DATE Typ graficzny jako jedyny z typów multimedialnych na dzień dzisiejszy jest bardzo dobrze rozbudowany i obsługiwany w Oracle intermedia. Przyczyną tego stanu rzeczy jest fakt że, obrazy są chyba najprostszym typem multimedialnym, jednocześnie najbardziej rozpowszechnionym co sprawia, że obsługa właśnie tego formatu danych jest sprawą priorytetową. Poza tym formaty graficzne są praktycznie niezmienne od kilku a nawet kilkunastu lat. Natomiast dla danych audio czy wideo w ostatnich latach powstało wiele nowych formatów danych, głównie w celu łatwiejszej prezentacji w sieci Web. Praca z obrazami w Oracle nie jest bardzo skomplikowana. Należy jednak pamiętać o kilku rzeczach, które umożliwią poprawne wykonywanie operacji. Jeżeli manipulujemy źródłem danych samodzielnie (czy to bezpośrednio modyfikując BLOB czy też zmieniając źródło zewnętrzne) to po takich działaniach należy upewnić się, czy atrybuty obiektu (krótki opis wybranych atrybutów ORDImage przedstawia tabela 2) są właściwie zsynchronizowane i czy data modyfikacji została zaktualizowana. W przeciwnym wypadku dane w bazie będą niezgodne z rzeczywistością. Tabela 2. Opis wybranych atrybutów typu ORDImage. Nazwa Typ Komentarz SOURCE ORDSYS.ORDSOURCE Obiekt ORDSource, który jest podstawą każdego typu do przechowywania danych multimedialnych w inter- Media. HEIGHT NUMBER(38) Wysokość obrazu w pikselach. WIDTH NUMBER(38) Szerokość obrazu w pikselach. CONTENTLENGHT NUMBER(38) Rozmiar obrazu na dysku w bajtach. FILEFORMAT VARCHAR2(4000) Typ pliku lub format w jakim obraz jest przechowywany np.: TIFF (Tagged Image File Format), JFIF (JPEG File Interchange Format). CONTENTFORMAT VARCHAR2(4000) Typ zawartości obrazka np.: monochromatyczny, 8 bitowa skala odcieni szarości. COMPRESSIONFOR MAT VARCHAR2(4000) Rodzaj algorytmu kompresji, jaki został użyty na obrazie. 273

4 A. Barczak, D. Zacharczuk 2.1 Zarządzanie obrazami za pomocą wbudowanych metod ORDImage. Tworząc instancję obiektu ORDImage możemy posłużyć się jednym z dwóch konstruktorów: init() ) RETURN ORDImage; init(srctype, srclocation, srcname) RETURN ORDImage. Pierwszy z nich jest statyczną metodą inicjującą wszystkie atrybuty wartością NULL, z małymi wyjątkami: Source.updateTime jest ustawiany na SYSDATE, Source.local przyjmuje wartość 1, Source.loclData jest ustawiany jako empty_blob (w przypadku ustawienia tego atrybuty na NULL nie można było by w przyszłości zapisać jakichkolwiek danych pod tą zmienna). Drugi z konstruktorów przypisuje także wartości NULL do wszystkich atrybutów po za: Source.updateTime, który jest ustawiany na SYSDATE, Source.local przyjmuje wartość 0 ze względy na podane parametrami informacje o pliku zewnętrznym, Source.srcType, source.srclocation i source.srcname przyjmują wartość parametrów odpowiednio srctype, srclocation i srcname. W tabeli 1 zostały przedstawione metody wspólne dla obiektów multimedialnych, które powiązane były z typem ORDSource. Tabela 3 zaś opisuje procedury i funkcje specyficzne dla obiektu ORDImage, dzięki którym możliwa jest manipulacja danymi. Tabela 3. Opis wybranych metod typu ORDImage Format checkproperties() RETURN BOOLEAN; copy( dest IN OUT ORDImage getcompressionformat() RETURN VARCHAR2; getcontentformat() RETURN VARCHAR2; getfileformat() RETURN VARCHAR2; getheight() RETURN INTEGER; getwidth() RETURN INTEGER; import( ctx IN OUT RAW Komentarz Funkcja weryfikuje, czy właściwości przechowywane w atrybutach obiektu zgadzają się z faktycznymi atrybutami obrazka. Nie należy używać tej metody dla formatów nie obsługiwanych przez intermedia. Kopiuje obrazek wraz ze wszystkimi jego atrybutami. Jeśli dane są przechowywane lokalnie, wtedy metoda ta kopiuje zawartość BLOB do miejsca przeznaczenia podanego parametrem. Wywołanie tej metody powoduje skopiowanie informacji o zewnętrznym źródle nawet jeżeli dane są przechowywane lokalnie. Zwraca wartość atrybutu compressionformat danego obiektu np.: JPEG Zwraca wartość atrybuty contentformat np.: 24BITRGB. Zwraca wartość atrybutu fileformat np.: JFIF. Funkcje zwracają wysokość i szerokość obrazka w pikselach. Transferuje dane obrazu z zewnętrznego źródła danych do lokalnego. Jeżeli atrybuty potrzebne do importu danych (source.srctype, source.srclocation, source.srcname) nie 274

5 Instrukcje dla autorów referatów Konferencji Naukowej BDASg są ustawione, należy posłużyć się metodą sersource() przed wykonaniem importu. Po imporcie danych informacje o źródle danych pozostają niezmienione (ścieżka do pliku skąd dane zostały pobrane). Import powoduje domyślne wywołanie metody setupdate- Time() oraz setlocall(). Jeśli format pliku importowanego obrazu nie jest ustawiony na ciąg znaków zaczynający się od OTHER, metoda setproperties() jest także wywoływana. Import jest wykonywany na poziomie ORDSource, który używa pakietu PL/SQL UTL_HTTP do importu danych z adresów http. Do ustawienia zmiennych połączenia Proxy można wykorzystać zmienne środowiskowe. Import obrazu z podanego zewnętrznego źródła. importfrom( ctx IN OUT RAW, source_type IN VARCHAR2, source_location IN VARCHAR2, source_name IN VARCHAR2 process( command IN VARCHAR2 processcopy( command IN VARCHAR2, dest IN OUT ORDImage setproperties( Metoda jest podobna do import() z tą różnicą, że parametry o źródle są przekazywane metodzie. Zasada działania jest identyczna. Wykonuje żądane operacje na pliku (BLOB). Metoda ta nie wywołuje domyślnie importu jeśli dane są na zewnątrz bazy. Użytkownik musi sam zadbać o to, aby dane były przechowywane wewnątrz. Po wykonaniu procedury automatycznie są wykonywane: setproperties(), setupdatetime() i setmimetype(). Możliwe atrybuty i ich wartości przedstawione zostały w tabeli 5. Metoda kopiuje obraz przechowywany wewnątrz lub na zewnątrz bazy do innego obrazu przechowywanego w bazie danych oraz wykonuje na kopii operacje podane parametrem command. Nie można podać tego samego obrazu jako obiektu źródła i przeznaczenia. Możliwe atrybuty i ich wartości przedstawione zostały w tabeli 5. Metoda czyta dane obrazu aby uzyskać wartości atrybutów obiektu, następnie zapisuje je pod odpowiednimi zmiennymi. Obraz może być przechowywany zarówno lokalnie jak i zewnętrznie. Jeśli obiekt nie jest typu BFILE, metoda wczytuje dane do tymczasowego obiektu typu BLOB w celu ustalenia charakterystyki obrazu. Metodę tą powinno się wywoływać po kopiowaniu, przetwarzaniu oryginalnego obrazu aby zbadać właściwości nowego obiektu. Wyjątkiem są sytuacje gdzie metoda zostaje wywołana niejawnie. 275

6 A. Barczak, D. Zacharczuk Następujące informacje są weryfikowane i zapisywane: wysokość w pikselach, szerokość w pikselach, rozmiar danych w bajtach na dysku, typ pliku (TIFF, JFIF...) typ obrazu (monochromatyczny...) rodzaj zastosowanej kompresji (JPEG, LZW...) typ MIME. Metoda ta niejawnie wywołuje: setupdatetime() i setmimetype(). Operacje wykonywane na obiektach ORDImage możemy podzielić na dwie grupy: zarządzające danymi zewnętrznymi i sposobem przechowywania obiektów oraz metody wpływające na zawartość źródła danych. Do drugiej grupy zaliczymy tylko dwie procedury: process() oraz processcopy(). Obie one przyjmują jako parametr komendę, która identyfikuje rodzaj i sposób operacji na obrazie. W tabeli 4 zostały opisane atrybuty oraz ich wartości, jakie możemy przekazywać do wyżej wymienionych metod w celu wykonania poszczególnych operacji. Tabela 4. Wybrane operatory umożliwiające przetwarzanie obrazów przy użyciu metod process() lub processcopy() Operator Możliwe wartości Opis działania i przyjmowane wartości compressionformat JPEG, SUNRLE, BMPRLE, TARGARLE, LZW, LZWHDIFF, FAX3, FAX4, HUFFMAN3, PACKBITS, GIFLZW, ASCII, RAW, DEFLATE, NONE Wymusza format kompresji wyjścia jeśli jest obsługiwany dla pliku w aktualnym formacie. Zazwyczaj bardzo ograniczone modyfikacje możemy wykonywać na plikach z kompresją stratną. Natomiast najlepszy format dla celów testowych to BMP, z uwagi na to, iż możliwa jest na min praktycznie każda operacja. compressionquality MAXCOMPRATIO, MAXINTEGRITY, LOWCOMP, MEDCOMP, HIGHCOMP, lub wartości całkowite od 0 do 100. Determinuje jakość kompresji pliku w formacie JPEG. Należy pamiętać, aby wyjście było ustawione na JPEG. contentformat Kilka przykładowych, często używanych wartości: monochrome, 8bitlut, 8bitlutrgb, 8bitgray, 8bitgrayscale, 24bitrgb, 24bitdrctrgb, 24bitbsqrgb. Wszytkie możliwe wartości dostępne są pod adresem WWW z pozycji [5] literatury. Determinuje format zawartości obrazu. Zawartość obrazu oznacza liczbę kolorów i sposób ich reprezentacji. Wyróżniamy tu dwie główne kategorie: 1) Direct Color images (DRCT): dane o pikselach są przechowywane bezpośrednio, bez odwoływania się do dodatkowych referencji. Ta kategoria zawiera obrazy monochromatyczne (czarno-białe), obrazy w odcieni szarości i RGB (true color). W obrazach DRCT głębie koloru określa rozmiar danych pojedynczego piksela, np. monochromatyczne mają głębie 1-bitową, skala szaroś- 276

7 Instrukcje dla autorów referatów Konferencji Naukowej BDASg ci 8-bitową (lub 16-bitową dla kanału alfa), RGB 24- lub 32-bitową. 2) Lookup table images (LUT): obrazy tego typu przechowują możliwe wartości kolorów w tablicach. Ilość kolorów dla obrazu jest zależna od rozmiaru danych piksela i numeru możliwych kolorów w tablicy. Obraz z 1 bitową tablica LUT będzie miał 1 bitowy piksel i 2 możliwe kolory (2^1), 4-bitowy obraz będzie miał 16 (2^4) możliwych kolorów. Dla lepszej kontroli przy konwertowaniu obrazów do skali monochromatycznej lepiej jest użyć operatora quantize z wartościami: ERRORDIFFUSION, ORDEREDDITHER lub THRESHOLD. contrast nonnegative FLOAT (dla GRAY lub RGB), nonnegative FLOAT FLOAT FLOAT (dla RGB), nonnegative FLOAT FLOAT (dla GRAY lub RGB), nonnegative FLOAT FLOAT FLOAT FLOAT FLOAT FLOAT (dla RGB). Dostosowuje kontrast obrazka. Można to zrobić podając wartości w procentach, bądź przez dolną i górną granicę np.: contrast = <proc1> [<proc2> <proc3>] W przypadku podania jednego parametry jest on stosowany do każdej składowej koloru, jeśli podamy trzy to odpowiednie od RGB. contrast = <dol1> <gora1> [<dol2> <gora2> <dol3> <gora3>] Przy podawaniu zakresów, wartości poniżej dolnej granicy są zmieniane na zero, powyżej do pełnej intensywności koloru. cut (nonnegative INTEGER INTEGER INTEGER INTEGER) maksymalna wartość to Określa obszar jaki zostanie wycięty. Pierwsze dwa parametry to wartości bezwzględne punktu, od którego cięcie nastąpi, dwa następne określają szerokość i wysokość: (origin.x origin.y width height fileformat BMPF, CALS, GIFF, JFIF, PBMF, PGMF, PICT, PNGF, PNMF, PPMF, RASF, RPIX, TGAF, TIFF, WBMP Wymusza format wyjściowy pliku. fixecscale (positive INTEGER INTEGER) Skaluje obraz do podanych wartości w pikselach: (szerokość, wysokość), nie może być łączony z innymi skalującymi operatorami. Użytkownik sam musi pilnować aby proporcje zostały zachowane. flip - Powoduje lustrzane odbicie w pionie. gamma positive FLOAT (positive FLOAT FLOAT FLOAT) Dostosowuje wartość gamma (jasność) obrazka. Wartości większe niż 1.0 rozjaśniają obraz, wartości od 0 do 1.0 przyciemniają. Możemy podać gamme dla każdego koloru osobno podając trzy oddzielne wartości. maxscale positive INTEGER INTEGER Skaluje obraz do podanych wartości w pikselach zachowując proporcje. Nie można tej metody łączyć z innymi metodami skalującymi. Podawane wartości określają maksymalny rozmiar obrazu wyjściowego, wiec faktyczny rozmiar może być mniejszy od zadanych parametrów. 277

8 A. Barczak, D. Zacharczuk mirror - Lustrzane odbicie obrazu w poziomie. page nonnegative INTEGER Wybiera stronę z obrazu z formatu TIFF. Pierwsza strona ma numer 0. ERRORDIFFUSION (default), ORDEREDDITHER, quantize THRESHOLD <wartość>, MEDIANCUT <opcjonalna próbka> Wartość tego atrybutu jest brana pod uwagę w przypadku, gdy zmieniamy głębie koloru obrazu. Do zmiany 8-bitowej skali szarości w monochromatyczny obraz, lub do redukcji 24- bitowego obrazu RGB do 8-bitowego LUT używamy wartości ERRORDIFFUSION, która jest wartością domyślną. Kwantyzer ERRORDIFFUSION zatrzymuje błędne rezultaty z kwantyfikacji danego piksela i rozsiewa(przekazuje) je do pikseli sąsiadujących. Kwantyfikacja ta używa stałej tabeli kolorów. Rezultat operacji jest zadowalający dla większości obrazów, ale tworzy nieprzyjemne/niepożądane artefakty (sztuczne wady w oglądanym obrazie). Artefakty są wynikiem zastosowania kolorów które są statystycznie rozłożone na całej przestrzeni RGB. Z tego względu obrazy zawierające dużo intensywnych odcieni kilku kolorów będą znacznie odbiegały od oryginału. Dla tego typu obrazów lepiej jest stosować wartość ORDEREDDITHER, która działa trochę szybciej. Umożliwia redukcję z 24b RGB do 8b LUT oraz 8b skali szarości do obrazu monochromatycznego. Kwantyzer ORDEREDDITHER znajduje najbliższy odpowiednik koloru dla danego piksela w tablicy i dostosowuje rezultaty do zminimalizowania widocznej utraty głębi. Kwantyfikacja tego typu nie jest odpowiednia, kiedy obraz zawiera ostre przejścia kolorów. THRESHOLD <wartość> redukuje 8 bitową skalę szarości do obrazu monochromatycznego. Kwantyzer przypisuje czarny lub biały kolor do piksela na podstawie porównania wartości odcienia szarości tego piksela do wartości podanej argumentem. Dla odcieni większych bądź równych argumentowi kolor jest biały, w przeciwnym przypadku czarny. Dla 256 odcieni szarości 0 oznacza kolor czarny, 255 biały. MEDIANCUT <opcjonalny parametr> redukuje 24b RGB do 8b LUT. Ten sposób kwantyfikacji generuje najbardziej optymalną tabelę kolorów, wybierając kolory na podstawie częstości ich występowania w oryginalnym obrazie. Metoda ta jest dość czasochłonna. Poza tym niektóre obrazy mogą lepiej wyglądać przy kwantyfikacji sposobem ERRORDIFFUSION lub, ORDEREDDITHER. Opcjonalny parametr, którego domyślna wartość jest równa 1, oznacza, że każdy jeden piksel będzie brany pod uwagę podczas określania tablicy kolorów. Wartości n większa od jednego oznacza, że jeden piksel na n będzie rozpatrywany. Rotate FLOAT Obraca obraz w płaszczyźnie o podany kąt. Wartości dodatnie powodują obrót zgodny ze wskazówkami zegara, wartości ujemne w kierunku przeciwnym. Po obrocie zawartość obrazu jest transformowana do położenia 0,0. Miejsca które pozostają puste zostaną wypełnione kolorem czarnym. Operacja obrotu trwa dość długo. Dla wartości: 90, 180, 270 Oracle stosuje specjalny algorytm, który znacznie przyśpiesza wykonywaną operację. Scale positive FLOAT Kolejna z komend, która powoduje przeskalowanie obrazu. Wartością jaką podajemy dla tej komendy jest stosunek obrazu nowego do oryginalnego. W echnikaa są dwie techniki skalowania obrazu. Pierwsza skalowanie przez próbkowanie jest 278

9 Instrukcje dla autorów referatów Konferencji Naukowej BDASg używana tylko jeśli oczekiwana jakość kompresji jest MAXCOMPRATIO lun HIGJCOMP, albo jeżeli obraz jest skalowany w górę w obu kierunkach. Ta technika skalowania wybiera ech z obrazu oryginalnego, wskazywany przez algorytm i pobiera jego kolor do obrazu docelowego. Technika ta jest bardzo szybka, lecz jakość obrazu jest średnia. Drugi sposób skalowanie uśredniające jest używany w każdym innym przypadku. echnika ta pobiera kilka sąsiadujących pikseli piksela wskazanego przez algorytm i oblicza średni kolor piksela wyjściowego. Ta metoda jest wolniejsza, jednak jakość obrazu jest dużo lepsza. xscale positive FLOAT yscale Skaluje obraz na osi odpowiednio X/Y. Są to jedyne komendy do skalowania, które mogą wystąpić razem. Istotną różnicą pomiędzy xscale, yscale a komendą scale jest fakt, iż te metody zawsze używają algorytmu skalowania przez próbkowanie, niezależnie od tego czy wyspecyfikowano jakość obrazka jako MAXCOMPRATIO lub HIGJCOMP. 3 ORDImage w przykładach Mając wiedzę na temat budowy i mechanizmów manipulowania danymi graficznymi w Oracle intermedia można przedstawić kilka przykładów prezentujących wykorzystanie wybranych funkcji. Na początek utwórzmy alias do katalogu, w którym będą przechowywane obrazy oraz nową tabelę do przechowywania obrazu i jego miniaturki. CREATE OR REPLACE DIRECTORY daro_dir AS 'c:\ora_dir\daro\'; DROP TABLE obrazy; CREATE TABLE obrazy ( obraz_id NUMBER NOT NULL PRIMARY KEY, obraz ORDSYS.ORDImage, obraz_min ORDSYS.ORDImage Krok następny to wstawienie do tabeli kilku rekordów. Posłużymy się w tym celu dwoma różnymi konstruktorami. INSERT INTO obrazy(obraz_id, obraz, obraz_min) VALUES (1, ORDSYS.ORDImage.init(), ORDSYS.ORDImage.init() INSERT INTO obrazy(obraz_id, obraz, obraz_min) VALUES (2, ORDSYS.ORDImage.init('HTTP', ' 'intermedia.bmp'), ORDSYS.ORDImage.init() Jak można zauważyć, instancja obrazów dla miniaturek oraz obraz główny w wierszu pierwszym zostały utworzone konstruktorami bezparametrowymi. W drugim przypadku zastosowaliśmy konstruktor z parametrami, podając jako źródło danych adres www (HTTP). Aby pierwszy rekord także zawierał dane multimedialne, zaimportujmy obraz z utworzonego wcześniej katalogu. SET SERVEROUTPUT ON; DECLARE obj ORDSYS.ORDImage; ctx RAW(64) :=NULL; BEGIN 279

10 A. Barczak, D. Zacharczuk SELECT obraz INTO obj FROM obrazy WHERE obraz_id = 1; obj.importfrom(ctx, 'FILE', 'DARO_DIR', 'intermedia.tif' UPDATE obrazy SET obraz = obj WHERE obraz_id=1; COMMIT; END; W celu zapewnienia zgodności wartości wszystkich atrybutów, posłużymy się metodą setproperties() dla każdego dodanego obiektu. SELECT obraz INTO obj FROM obrazy WHERE obraz_id = id FOR UPDATE; obj.setproperties( UPDATE obrazy SET obraz = obj WHERE obraz_id = id; Należy zauważyć, iż ponieważ jeden z dodanych obrazów znajduje się na serwerze WWW, to za każdym razem Oracle pobiera obraz ze wskazanego adresu i zapisuje go pod tymczasową zmienna BLOB i dopiero wtedy wykonuje żądane operacje. Mając uzupełnioną tabele danymi, możemy sprawdzić atrybuty obrazów i dowiedzieć się czy dane są poprawne: SELECT obraz INTO obj FROM obrazy WHERE obraz_id = id FOR UPDATE; DBMS_OUTPUT.PUT_LINE('Nazwa źródła: ' obj.getsourcename DBMS_OUTPUT.PUT_LINE('Źródło: ' obj.getsource DBMS_OUTPUT.PUT_LINE('Szerokość: ' obj.getwidth DBMS_OUTPUT.PUT_LINE('Wysokość: ' obj.getheight DBMS_OUTPUT.PUT_LINE('Typ źródła: ' obj.getsourcetype DBMS_OUTPUT.PUT_LINE('Lokalizacja źródła: ' obj.getsourcelocation DBMS_OUTPUT.PUT_LINE('MIME: ' obj.getmimetype DBMS_OUTPUT.PUT_LINE('Data modyfikacji: ' TO_CHAR(obj.getUpdateTime(),'MM-DD-YYYY HH24:MI:SS') DBMS_OUTPUT.PUT_LINE('Rozmiar danych: ' TO_CHAR(DBMS_LOB.GETLENGTH(obj.getContent)) 'b' spr := obj.checkproperties( IF spr THEN DBMS_OUTPUT.PUT_LINE('Atrybuty są zgodne dla id=' id ELSE DBMS_OUTPUT.PUT_LINE('Niezgodność atrybutów dla id=' id END IF; UPDATE obrazy SET obraz = obj WHERE obraz_id = id; W odpowiedzi otrzymujemy: Nazwa źródła: intermedia.bmp Źródło: Szerokość: 640 Wysokość: 450 Typ źródła: HTTP Lokalizacja źródła: MIME: image/bmp Data modyfikacji: :51:02 Rozmiar danych: 0b Atrybuty są zgodne dla id=2 Jeżeli atrybuty są zgodne należy wykonać jeszcze jedną operację aby móc przystąpić do wykonywania modyfikacji bezpośrednio na obrazie za pomocą metod process() i processcopy(). Mianowicie należy zaimportować dane do bazy. Obraz w wierszu pierwszym jest już przechowywany w bazie danych, ponieważ zaraz po dodaniu krotki wykonany został import. Pozostał więc tylko plik z rekordu drugiego, który jest umieszczony na serwerze WWW. SELECT obraz INTO obj FROM obrazy WHERE obraz_id = id FOR UPDATE; obj.import(ctx UPDATE obrazy SET obraz = obj WHERE obraz_id = id; 280

11 Instrukcje dla autorów referatów Konferencji Naukowej BDASg W pierwszej kolejności użyjemy funkcji skalującej, do utworzenia miniaturek obrazów w tabeli. Oryginalne obrazy mają wymiary 640px na 450px. Tworzone miniatury będą miały maksymalny rozmiar 32x32 i zostaną zapisane do atrybutu trzeciej kolumny. Ponieważ obraz nie będzie miał domyślnie ustawionych parametrów źródła, należy to zrobić ręcznie. SELECT obraz, obraz_min INTO obj_1, obj_2 FROM obrazy WHERE obraz_id = id FOR UPDATE; obj_1.processcopy('maxscale=32 32', obj_2 obj_2.setsource('file', '', 'min_' obj_1.getsourcename UPDATE obrazy SET obraz_min = obj_2 WHERE obraz_id = id; Zwróćmy uwaga że, dla plików *.tif, plik wyjściowy zawiera tylko zminimalizowaną wersję obrazu pierwszego z kolekcji. Kolejny blok PL/SQL eksportuje nowo utworzone obrazy do katalogu DARO_DIR, nadając im odpowiednie nazwy. SELECT obraz_min INTO obj FROM obrazy WHERE obraz_id = id; obj.export(ctx,'file', 'DARO_DIR', obj.getsourcename() Zaprezentowaliśmy wszystkie podstawowe operacje na ORDImage - od importu plików z serwera WWW, przez kopie tworzone wewnątrz bazy po eksport plików z bazy do źródła zewnętrznego. Za podsumowanie treści rozdziału niech posłużą przedstawione poniżej rysunki (widoki) prezentujące wynik niektórych operacji. Rys. 1. Wynik zastosowania na obrazie formatu RGB 24 bitowego (true color) przetwarzania (od lewej): obj.process('contentformat=8bitlutgray compressionformat=jpeg') i obj.process('contentformat=monochrome quantize = THRESHOLD 50') Rys. 2 Wynik zastosowania na obrazie formatu RGB 24 bitowego (true color) przetwarzania (od lewej): obj.process('contrast="90%" "10%" "90%"') i obj.process('rotate=45') 281

12 A. Barczak, D. Zacharczuk Jak łatwo zauważyć, Oracle oferuje nie tylko moduł do zarządzania danymi multimedialnymi, ale również umożliwia wykonywanie niebanalnych przekształceń obrazu. Dzięki temu możemy nawet pokusić się o stworzenie prostego edytora graficznego chociażby online. Literatura: 1. Krzysztof Jankiewicz, Marek Wojciechowski: Standard SQL/MM: SQL Multimedia and Application Packages, 2. Jim Melton, Andrew Eisenberg: SQL Multimedia and Application Packages (SQL/MM), 3. Oracle intermedia Reference JCC

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

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

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

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

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

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Laboratorium nr 4. Temat: SQL część II. Polecenia DML Laboratorium nr 4 Temat: SQL część II Polecenia DML DML DML (Data Manipulation Language) słuŝy do wykonywania operacji na danych do ich umieszczania w bazie, kasowania, przeglądania, zmiany. NajwaŜniejsze

Bardziej szczegółowo

SQL (ang. Structured Query Language)

SQL (ang. Structured Query Language) SQL (ang. Structured Query Language) SELECT pobranie danych z bazy, INSERT umieszczenie danych w bazie, UPDATE zmiana danych, DELETE usunięcie danych z bazy. Rozkaz INSERT Rozkaz insert dodaje nowe wiersze

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

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

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

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

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

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

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

Ć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

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

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

Bazy danych wykład dwunasty PL/SQL, c.d. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa)

Bazy danych wykład dwunasty PL/SQL, c.d. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa) Bazy danych wykład dwunasty PL/SQL, c.d. Konrad Zdanowski Uniwersytet Kardynała Stefana Wyszyńskiego, Warszawa dwunasty PL/SQL, c.d. 1 / 37 SQL to za mało SQL brakuje możliwości dostępnych w językach proceduralnych.

Bardziej szczegółowo

Ref. 7 - Język SQL - polecenia DDL i DML

Ref. 7 - Język SQL - polecenia DDL i DML Ref. 7 - Język SQL - polecenia DDL i DML Wprowadzenie do języka SQL. Polecenia generujące strukturę bazy danych: CREATE, ALTER i DROP. Polecenia: wprowadzające dane do bazy - INSERT, modyfikujące zawartość

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

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

Monika Kruk Mariusz Grabowski. Informatyka Stosowana WFiIS, AGH 13 grudzień 2006

Monika Kruk Mariusz Grabowski. Informatyka Stosowana WFiIS, AGH 13 grudzień 2006 OBIEKTOWOŚĆ W BAZIE DANYCH ORACLE Monika Kruk Mariusz Grabowski Informatyka Stosowana WFiIS, AGH 13 grudzień 2006 Plan prezentacji kilka słów o bazie danych ORACLE rzecz o obiektach ORACLE tworzenie typów

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

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

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

Wykład 05 Bazy danych

Wykład 05 Bazy danych Wykład 05 Bazy danych Tabela składa się z: Kolumn Wierszy Wartości Nazwa Wartości Opis INT [UNSIGNED] -2^31..2^31-1 lub 0..2^32-1 Zwykłe liczby całkowite VARCHAR(n) n = długość [1-255] Łańcuch znaków o

Bardziej szczegółowo

Tworzenie tabeli przez select CREATE TABLE PRAC2 AS SELECT P.NAZWISKO, Z.NAZWA FROM PRAC P NATURAL JOIN ZESP Z

Tworzenie tabeli przez select CREATE TABLE PRAC2 AS SELECT P.NAZWISKO, Z.NAZWA FROM PRAC P NATURAL JOIN ZESP Z Tworzenie tabeli Np. create table nazwa_tab( \\stworzenie tabeli Id numer(4) constraint PRAC_PK primary key, \\ustawiamy klucz podst. Nazwisko varchar2(30), \\typ tekstowy 30 znaków Kwota number(10,2)

Bardziej szczegółowo

Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe

Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe -- Definicje relacji i utworzenie stanu początkowego dla ćwiczeń z synchronizacji transakcji DROP TABLE Konta cascade constraints; DROP TABLE

Bardziej szczegółowo

Plan wykładu BAZY DANYCH II WYKŁAD 2. Bloki. Struktura bloku

Plan wykładu BAZY DANYCH II WYKŁAD 2. Bloki. Struktura bloku Plan wykładu BAZY DANYCH II WYKŁAD 2 Bloki, struktura, sekcje Bloki anonimowe Tworzenie i uruchamianie Identyfikatory Literały Typy danych dr inż. Agnieszka Bołtuć Bloki Struktura bloku W programach pisanych

Bardziej szczegółowo

Formaty plików graficznych

Formaty plików graficznych Formaty plików graficznych grafika rastowa grafika wektorowa Grafika rastrowa Grafika rastrowa służy do zapisywania zdjęć i realistycznych obrazów Jakość obrazka rastrowego jest określana przez całkowitą

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

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

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

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

Laboratorium 3. Odkrywanie reguł asocjacyjnych.

Laboratorium 3. Odkrywanie reguł asocjacyjnych. Laboratorium 3 Odkrywanie reguł asocjacyjnych. 1. Uruchom narzędzie Oracle Data Miner i połącz się z serwerem bazy danych. 2. Z menu głównego wybierz Tools SQL Worksheet. W górnym oknie wprowadź i wykonaj

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

Oracle PL/SQL. Paweł Rajba. pawel@ii.uni.wroc.pl http://www.kursy24.eu/

Oracle PL/SQL. Paweł Rajba. pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 6 Wprowadzenie Definiowanie wyzwalaczy DML Metadane wyzwalaczy Inne zagadnienia, tabele mutujące Wyzwalacze INSTEAD OF Wyzwalacze

Bardziej szczegółowo

Wykład 8. SQL praca z tabelami 5

Wykład 8. SQL praca z tabelami 5 Wykład 8 SQL praca z tabelami 5 Podzapytania to mechanizm pozwalający wykorzystywać wyniki jednego zapytania w innym zapytaniu. Nazywane często zapytaniami zagnieżdżonymi. Są stosowane z zapytaniami typu

Bardziej szczegółowo

Administracja bazy danych Oracle 10g

Administracja bazy danych Oracle 10g Administracja bazy danych Oracle 10g Oracle Database Administration część 5 Zmiana przestrzeni tabel użytkownika Za pomocą SQL*Plus alter user USER_NAME temporary tablespace TEMPOR_NAME; gdzie: USER_NAME

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

Plan wykładu BAZY DANYCH II WYKŁAD 3. Zasięg zmiennych. Zasięg zmiennych

Plan wykładu BAZY DANYCH II WYKŁAD 3. Zasięg zmiennych. Zasięg zmiennych Plan wykładu BAZY DANYCH II WYKŁAD 3 Zasięg zmiennych Zmienne powiązane Instrukcje warunkowe Pętle Pobieranie danych SQL w PL/SQL Rekordy dr inż. Agnieszka Bołtuć Zasięg zmiennych Zmienna jest dostępna

Bardziej szczegółowo

1. ELEMENTY JĘZYKA PL/SQL

1. ELEMENTY JĘZYKA PL/SQL 1. ELEMENTY JĘZYKA PL/SQL Aplikacje korzystające z PL/SQL będącego proceduralnym rozszerzeniem SQL mogą wykonywać procedury i funkcje języka PL/SQL składowane w bazie danych oraz wysyłać własne programy

Bardziej szczegółowo

System imed24 Instrukcja Moduł Analizy i raporty

System imed24 Instrukcja Moduł Analizy i raporty System imed24 Instrukcja Moduł Analizy i raporty Instrukcja obowiązująca do wersji 1.8.0 Spis treści 1. Moduł Analizy i Raporty... 3 1.1. Okno główne modułu Analizy i raporty... 3 1.1.1. Lista szablonów

Bardziej szczegółowo

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Krzysztof Kadowski. PL-E3579, PL-EA0312, Krzysztof Kadowski PL-E3579, PL-EA0312, kadowski@jkk.edu.pl Bazą danych nazywamy zbiór informacji w postaci tabel oraz narzędzi stosowanych do gromadzenia, przekształcania oraz wyszukiwania danych. Baza

Bardziej szczegółowo

Struktura drzewa w MySQL. Michał Tyszczenko

Struktura drzewa w MySQL. Michał Tyszczenko Struktura drzewa w MySQL Michał Tyszczenko W informatyce drzewa są strukturami danych reprezentującymi drzewa matematyczne. W naturalny sposób reprezentują hierarchię danych toteż głównie do tego celu

Bardziej szczegółowo

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Wprowadzenie do projektowania i wykorzystania baz danych Relacje Wprowadzenie do projektowania i wykorzystania baz danych Relacje Katarzyna Klessa Dygresja nt. operatorów SELECT 2^2 SELECT 2^30 SELECT 50^50 2 Dygresja nt. operatorów SELECT 2^30 --Bitwise exclusive OR

Bardziej szczegółowo

Cele. Definiowanie wyzwalaczy

Cele. Definiowanie wyzwalaczy WYZWALACZE Definiowanie wyzwalaczy Cele Wyjaśnić cel istnienia wyzwalaczy Przedyskutować zalety wyzwalaczy Wymienić i opisać cztery typy wyzwalaczy wspieranych przez Adaptive Server Anywhere Opisać dwa

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

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

Wykład 5: PHP: praca z bazą danych MySQL

Wykład 5: PHP: praca z bazą danych MySQL Wykład 5: PHP: praca z bazą danych MySQL Architektura WWW Podstawowa: dwuwarstwowa - klient (przeglądarka) i serwer WWW Rozszerzona: trzywarstwowa - klient (przeglądarka), serwer WWW, serwer bazy danych

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

Podstawy technologii WWW

Podstawy technologii WWW Podstawy technologii WWW Ćwiczenie 11 PHP, MySQL: więcej, więcej!, więcej!!. tabel i funkcjonalności. Na dzisiejszych zajęciach zdefiniujemy w naszej bazie kilka tabel powiązanych kluczem obcym i zobaczymy,

Bardziej szczegółowo

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście. Rodzaje triggerów Triggery DML na tabelach INSERT, UPDATE, DELETE Triggery na widokach INSTEAD OF Triggery DDL CREATE, ALTER, DROP Triggery na bazie danych SERVERERROR, LOGON, LOGOFF, STARTUP, SHUTDOWN

Bardziej szczegółowo

Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1

Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1 Procedury wyzwalane procedury wyzwalane, cel stosowania, typy wyzwalaczy, wyzwalacze na poleceniach DML i DDL, wyzwalacze typu INSTEAD OF, przykłady zastosowania, zarządzanie wyzwalaczami 1 Procedury wyzwalane

Bardziej szczegółowo

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze Funkcje użytkownika Tworzenie funkcji Usuwanie funkcji Procedury składowane Tworzenie procedur składowanych Usuwanie procedur składowanych Wyzwalacze Wyzwalacze a ograniczenia i procedury składowane Tworzenie

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 Cz III. Transakcje, Triggery

BAZY DANYCH Cz III. Transakcje, Triggery BAZY DANYCH Cz III Transakcje, Triggery Transakcje Definicja: Zbiór operacji (modyfikacja danych, usuwanie, wstawianie, tworzenie obiektów bazodanowych), które albo wszystkie kończone są sukcesem, albo

Bardziej szczegółowo

Cała prawda o plikach grafiki rastrowej

Cała prawda o plikach grafiki rastrowej ~ 1 ~ Cała prawda o plikach grafiki rastrowej Grafika rastrowa to rodzaj grafiki zapisywanej na dysku w postaci bitmapy, czyli zbioru pikseli. W edytorach grafiki rastrowej możliwa jest edycja na poziomie

Bardziej szczegółowo

Plan wykładu PL/SQL. PL/SQL - historia TWORZENIE APLIKACJI BAZODANOWYCH

Plan wykładu PL/SQL. PL/SQL - historia TWORZENIE APLIKACJI BAZODANOWYCH Plan wykładu 2 TWORZENIE APLIKACJI BAZODANOWYCH Wykład 2: Wprowadzenie do PL/SQL: bloki anonimowe, zmienne, kursory Wprowadzenie do PL/SQL Bloki Podstawowe składowe języka Zmienne i stałe Kursory Małgorzata

Bardziej szczegółowo

37. Podstawy techniki bloków

37. Podstawy techniki bloków 37 37. Podstawy techniki bloków Bloki stosujemy w przypadku projektów zawierających powtarzające się identyczne złożone obiekty. Przykłady bloków pokazano na rysunku. Zacieniowane kwadraty to tzw. punkty

Bardziej szczegółowo

Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle

Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle Rozszerzenie obiektowe w SZBD Oracle Cześć 2. Kolekcje Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Malinowski Nowak Kowalski tablica zagnieżdżona (ang.

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu Magento 1.4 1.9

Wdrożenie modułu płatności eservice. dla systemu Magento 1.4 1.9 Wdrożenie modułu płatności eservice dla systemu Magento 1.4 1.9 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie do

Bardziej szczegółowo

Wykład 2. Relacyjny model danych

Wykład 2. Relacyjny model danych Wykład 2 Relacyjny model danych Wymagania stawiane modelowi danych Unikanie nadmiarowości danych (redundancji) jedna informacja powinna być wpisana do bazy danych tylko jeden raz Problem powtarzających

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

Procedury składowane. Funkcje vs. procedury Funkcja. Procedura. zazwyczaj ma parametry tylko typu IN; można wywoływać z poziomu

Procedury składowane. Funkcje vs. procedury Funkcja. Procedura. zazwyczaj ma parametry tylko typu IN; można wywoływać z poziomu Procedury składowane Kolejnym typem programu języka PL/SQL są procedury składowane. Procedury mogą posiadać parametry typu IN, OUT lub IN OUT. Umożliwiają wykonanie operacji na danych w bazie, mogą też

Bardziej szczegółowo

Deklarowanie kursora. CURSOR nazwa [ ( param1 typ1 [,param2 typ2]... ) ] [RETURN typ zwracany] IS zapytanie SQL;

Deklarowanie kursora. CURSOR nazwa [ ( param1 typ1 [,param2 typ2]... ) ] [RETURN typ zwracany] IS zapytanie SQL; Kursory Każde zapytanie SQL umieszczone w programie PLSQL jest wykonywane w tzw. obszarze roboczym lub inaczej obszarze kontekstu. PLSQL wykorzystuje ten obszar do przechowywania danych otrzymanych w wyniku

Bardziej szczegółowo

Język SQL. Rozdział 2. Proste zapytania

Język SQL. Rozdział 2. Proste zapytania Język SQL. Rozdział 2. Proste zapytania Polecenie SELECT, klauzula WHERE, operatory SQL, klauzula ORDER BY. 1 Wprowadzenie do języka SQL Język dostępu do bazy danych. Język deklaratywny, zorientowany na

Bardziej szczegółowo

Przykładowa baza danych BIBLIOTEKA

Przykładowa baza danych BIBLIOTEKA Przykładowa baza danych BIBLIOTEKA 1. Opis problemu W ramach zajęć zostanie przedstawiony przykład prezentujący prosty system biblioteczny. System zawiera informację o czytelnikach oraz książkach dostępnych

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

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

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL, Mój projekt przedstawia bazę danych noclegów składającą się z 10 tabel. W projekcie wykorzystuje program LibreOffice Base do połączenia psql z graficznym interfejsem ( kilka formularzy przedstawiających

Bardziej szczegółowo

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , , Celem ćwiczeń jest zaprojektowanie oraz utworzenie na serwerze bazy danych przechowującej informacje na temat danych kontaktowych. Celem jest również zapoznanie z podstawowymi zapytaniami języka SQL służącymi

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

Typy metod: konstruktory, destruktory, selektory, zapytania, iteratory.

Typy metod: konstruktory, destruktory, selektory, zapytania, iteratory. Typy metod: konstruktory, destruktory, selektory, zapytania, iteratory. Konstruktory Konstruktory w językach obiektowych są to specjalne metody wywoływane podczas tworzenia nowego obiektu i służące do

Bardziej szczegółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska Wygodniejszym i wydajniejszym sposobem przechowywania i korzystania z dużej ilości danych zapisanych na serwerze jest współpraca z relacyjną bazą danych. 2 1. Utworzyć bazę danych.

Bardziej szczegółowo

SQL :: Data Definition Language

SQL :: Data Definition Language SQL :: Data Definition Language 1. Zaproponuj wydajną strukturę danych tabela) do przechowywania macierzy o dowolnych wymiarach w bazie danych. Propozycja struktury powinna zostać zapisana z wykorzystaniem

Bardziej szczegółowo

Plan wykładu BAZY DANYCH II WYKŁAD 5. Kolekcje. Tablice asocjacyjne Kolekcje Tablice asocjacyjne VARRAY Tablice zagnieżdżone

Plan wykładu BAZY DANYCH II WYKŁAD 5. Kolekcje. Tablice asocjacyjne Kolekcje Tablice asocjacyjne VARRAY Tablice zagnieżdżone Plan wykładu Kolekcje Tablice asocjacyjne VARRAY Tablice zagnieżdżone BAZY DANYCH II WYKŁAD 5 dr inż. Agnieszka Bołtuć Kolekcje Tablice asocjacyjne Używane w celu gromadzenia danych tego samego typu, Rekordy

Bardziej szczegółowo

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS UNIWERSYTET ZIELONOGÓRSKI INSTYTUT INFORMATYKI I ELEKTROTECHNIKI ZAKŁAD INŻYNIERII KOMPUTEROWEJ Przygotowali: mgr inż. Arkadiusz Bukowiec mgr inż. Remigiusz Wiśniewski LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Bardziej szczegółowo

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu

Bardziej szczegółowo

Zaawansowane bazy danych i hurtownie danych semestr I

Zaawansowane bazy danych i hurtownie danych semestr I Podprogramy Wydział Informatyki Politechnika Białostocka Zaawansowane bazy danych i hurtownie danych semestr I Procedury do przeprowadzenia akcji Funkcje do obliczania wartości Pakiety do zbierania logicznie

Bardziej szczegółowo

41. Zmienne lokalne muszą mieć nazwę, którą poprzedza (maksymalnie 128 znaków) oraz typ (każdy z wyjątkiem: text, ntext oraz image)

41. Zmienne lokalne muszą mieć nazwę, którą poprzedza (maksymalnie 128 znaków) oraz typ (każdy z wyjątkiem: text, ntext oraz image) Elementy języka T-SQL 40. Polecenie PRINT jest wykorzystywane do przekazania wiadomości tekstowej (maksymalna długość 8000 znaków) Przykład PRINT 'Aktualna data: '+convert(char(8),getdate()) PRINT 'Aktualny

Bardziej szczegółowo

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota Laboratorium nr 3 1 Bazy Danych Instrukcja laboratoryjna Temat: Wprowadzenie do języka SQL, tworzenie, modyfikacja, wypełnianie tabel 3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota 1)

Bardziej szczegółowo

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Instytut Mechaniki i Inżynierii Obliczeniowej   Wydział Mechaniczny Technologiczny Politechnika Śląska Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny Technologiczny Politechnika Śląska Laboratorium 1 Wprowadzenie, podstawowe informacje o obsłudze

Bardziej szczegółowo

Język SQL. Rozdział 9. Język definiowania danych DDL, cześć 1. Tworzenie relacji, typy danych, wartości domyślne atrybutów, słownik bazy danych.

Język SQL. Rozdział 9. Język definiowania danych DDL, cześć 1. Tworzenie relacji, typy danych, wartości domyślne atrybutów, słownik bazy danych. Język SQL. Rozdział 9. Język definiowania danych DDL, cześć 1. Tworzenie relacji, typy danych, wartości domyślne atrybutów, słownik bazy danych. 1 polecenie CREATE TABLE CREATE TABLE nazwa_relacji Tworzenie

Bardziej szczegółowo

Tabela wewnętrzna - definicja

Tabela wewnętrzna - definicja ABAP/4 Tabela wewnętrzna - definicja Temporalna tabela przechowywana w pamięci operacyjnej serwera aplikacji Tworzona, wypełniana i modyfikowana jest przez program podczas jego wykonywania i usuwana, gdy

Bardziej szczegółowo

Przykład połączenie z bazą danych

Przykład połączenie z bazą danych Instalacja BPEL... 1 Przykład połączenie z bazą danych... 2 Development... 2 Utwórz Aplikację i projekt o typie SOA... 2 Utwórz adapter do bazy danych... 4 Utwórz proces BPEL... 7 Połącz BPEL z adapterem

Bardziej szczegółowo

7. Dynamiczne generowanie grafiki

7. Dynamiczne generowanie grafiki 7. Dynamiczne generowanie grafiki 7.1. Biblioteka GD Dynamiczne generowanie kodu HTML to podstawowe zastosowanie języka PHP. Często jednak to nie wystarczy i mieszanka: dynamiczny HTML plus statyczna grafika,

Bardziej szczegółowo

Bazy danych. Polecenia SQL

Bazy danych. Polecenia SQL Bazy danych Baza danych, to miejsce przechowywania danych. Dane w bazie danych są podzielone na tabele. Tabele składają się ze ściśle określonych pól i rekordów. Każde pole w rekordzie ma ściśle ustalony

Bardziej szczegółowo

Składowanie, przetwarzanie i wyszukiwanie danych multimedialnych w Oracle 11g Marek Wojciechowski

Składowanie, przetwarzanie i wyszukiwanie danych multimedialnych w Oracle 11g Marek Wojciechowski Składowanie, przetwarzanie i wyszukiwanie danych multimedialnych w Oracle 11g Marek Wojciechowski Politechnika Poznańska, PLOUG Marek.Wojciechowski@cs.put.poznan.pl Plan prezentacji Wprowadzenie do Oracle

Bardziej szczegółowo

GRAFIKA RASTROWA. WYKŁAD 2 Oprogramowanie i formaty plików. Jacek Wiślicki Katedra Informatyki Stosowanej

GRAFIKA RASTROWA. WYKŁAD 2 Oprogramowanie i formaty plików. Jacek Wiślicki Katedra Informatyki Stosowanej GRAFIKA RASTROWA WYKŁAD 2 Oprogramowanie i formaty plików Jacek Wiślicki Katedra Informatyki Stosowanej Oprogramowanie Na rynku istnieje wiele programów do tworzenia i przetwarzania grafiki rastrowej.

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4 Wdrożenie modułu płatności eservice dla systemu Gekosale 1.4 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie do integracji...

Bardziej szczegółowo

Wykład 4. SQL praca z tabelami 1

Wykład 4. SQL praca z tabelami 1 Wykład 4 SQL praca z tabelami 1 Typy danych Typy liczbowe Typy całkowitoliczbowe Integer types - Typ INTEGER; 32-bitowa liczba ze znakiem z zakresu -2 31 do 2 31 1 - Typ SMALLINT; typ całkowity mniejszy

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

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

Przykład 3 Zdefiniuj w bazie danych hurtownia_nazwisko przykładową funkcję użytkownika fn_rok;

Przykład 3 Zdefiniuj w bazie danych hurtownia_nazwisko przykładową funkcję użytkownika fn_rok; Temat: Funkcje, procedury i wyzwalacze. Oprócz tabel i widoków w bazach danych możemy tworzyć własne funkcje, procedury i specjalny typ procedur, które będą automatycznie wywoływanie przez MySQL w memencie

Bardziej szczegółowo

1. Połączenie z bazą danych. W wybranym edytorze tworzymy plik sqltest.py i umieszczamy w nim poniższy kod. #!/usr/bin/python3 import sqlite3

1. Połączenie z bazą danych. W wybranym edytorze tworzymy plik sqltest.py i umieszczamy w nim poniższy kod. #!/usr/bin/python3 import sqlite3 cur.executescript(""" DROP TABLE IF EXISTS uczen; CREATE TABLE IF NOT EXISTS uczen ( Uniwersytet Technologiczno-Przyrodniczy im. J.J. Śniadeckich w Bydgoszczy Instrukcja do ćwiczeń laboratoryjnych Przedmiot

Bardziej szczegółowo

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE Wykład 9 Implementacja języka SQL w systemach baz danych Oracle manipulowanie danymi (DML), tworzenie, modyfikowanie i usuwanie obiektów bazy danych: tabel i perspektyw, więzów integralności, komentarzy

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

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