Uogólnione podejœcie do aktualizacji indeksów w obiektowej bazie danych****

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

Download "Uogólnione podejœcie do aktualizacji indeksów w obiektowej bazie danych****"

Transkrypt

1 AUTOMATYKA 2009 Tom 13 Zeszyt 3 Tomasz M. Kowalski*, Kamil Kuliberda*, Cezary Draus**, Rados³aw Adamus*, ***, Jacek Wiœlicki*, *** Uogólnione podejœcie do aktualizacji indeksów w obiektowej bazie danych**** 1. Wprowadzenie Ogólna idea indeksowania w zorientowanych obiektowo bazach danych nie ró ni siê od indeksowania w bazach relacyjnych [5]. Indeksy s¹ strukturami danych, które zwiêkszaj¹ szybkoœæ wyszukiwania obiektów spe³niaj¹cych podane kryteria. Indeksy powinny charakteryzowaæ dwie istotne w³aœciwoœci: przezroczystoœæ optymalizacji i automatyczn¹ aktualizacjê. Pierwsza oznacza, e u ytkownik bazy danych nie potrzebuje byæ œwiadomym istnienia indeksów, poniewa s¹ one u ywane automatycznie podczas wykonywania zapytañ. W niniejszym opracowaniu autorzy koncentruj¹ siê na drugiej w³aœciwoœci, czyli konserwacji indeksów. Indeksy, jak wszystkie nadmiarowe struktury, mog¹ staæ siê niespójne, kiedy przechowywane dane zostan¹ zmienione. Z tego powodu, aby zapewniæ poprawnoœæ indeksów, aktualizacja danych powinna byæ po³¹czona z przebudow¹ odpowiednich indeksów. Proces przebudowy powinien byæ przezroczysty tak, aby zwolniæ programistê z tego niewygodnego zadania i zmniejszyæ przez to ryzyko pope³nienia b³êdów. Dodatkowy czas konieczny do aktualizacji indeksów powinien zostaæ zminimalizowany. Jest to krytyczne z punktu widzenia efektywnoœci du ych baz danych. adna zmiana danych nie mo e powodowaæ d³ugo trwaj¹cych weryfikacji istniej¹cych indeksów lub przebudowy ca³ego indeksu od zera. Aby to osi¹gn¹æ, systemy bazodanowe powinny efektywnie wyszukiwaæ indeksy, które siê dezaktualizuj¹ w skutek modyfikacji danych. Nastêpnie, odpowiednia pozycja w indeksie po- * Katedra Informatyki Stosowanej, Politechnika ódzka ** Wydzia³ Elektrotechniki, Elektroniki, Informatyki i Automatyki, Politechnika ódzka *** Stypendysta projektu Innowacyjna dydaktyka bez ograniczeñ zintegrowany rozwój Politechniki ódzkiej zarz¹dzanie uczelni¹, nowoczesna oferta edukacyjna i wzmacnianie zdolnoœci do zatrudniania, tak e osób niepe³nosprawnych wspó³finansowany przez Uniê Europejsk¹ w ramach Europejskiego Funduszu Spo³ecznego **** Praca naukowa finansowana ze œrodków na naukê w latach 2008/2009 jako projekt badawczy nr N

2 1546 Tomasz M. Kowalski, Kamil Kuliberda, Cezary Draus, Rados³aw Adamus, Jacek Wiœlicki winna zostaæ poprawiona, aby wszystkie wywo³ania indeksu zapewnia³y poprawn¹ odpowiedÿ. Takie dzia³ania nie powinny wp³ywaæ negatywnie na czas pobierania informacji z bazy danych, a ogólny dodatkowy koszt zapisu danych powinien byæ jak najmniejszy. Jednak e znalezienie ogólnego i zarazem optymalnego rozwi¹zania nie jest mo liwe z powodu z³o onoœci SZBD (System Zarz¹dzania Baz¹ Danych). Takie zadanie wymaga analizy wielu rzeczywistych sytuacji po to, aby zminimalizowaæ pogorszenie siê wydajnoœci. Prototyp ODRA jest oparty na architekturze stosowej (Stack Based Architecture SBA) [1, 19]. SBA jest formaln¹ metodologi¹ dotycz¹ca zorientowanych obiektowo jêzyków zapytañ i programowania. G³ównym celem projektu ODRA jest wytyczanie nowych paradygmatów rozwoju aplikacji bazodanowych. ODRA wprowadza w³asny jêzyk zapytañ SBQL (Stack Based Query Language). Zaproponowana implementacja indeksowania umo liwia tworzenie, przezroczyst¹ optymalizacjê oraz automatyczn¹ konserwacjê indeksów. Wszystkie cechy potrzebne do zapewnienia po ¹danego zachowania indeksów s¹ zaimplementowane i funkcjonalne [10]. Reszta dokumentu zorganizowana jest jak wymieniono poni ej. Nastêpny rozdzia³ obejmuje ogólny przegl¹d mechanizmów indeksowania oraz ich ograniczenia z naciskiem na mo liwoœci wynikaj¹ce z podejœcia do automatycznej aktualizacji indeksów, rozdzia³ 3 prezentuje SBA i SBQL, rozdzia³ 4 opisuje podejœcie do automatycznej aktualizacji indeksów w prototypie ODRA wraz z wyjaœniaj¹cymi przyk³adami, rozdzia³ 5 zawiera podsumowanie oraz wnioski. 2. Zarys indeksowania w relacyjnych oraz obiektowych bazach danych Prawie 40 lat badañ nad systemami relacyjnymi zaowocowa³o wieloma rozwi¹zaniami w dziedzinie indeksowania [5]: primary index, clustered index, secondary access paths, multi-key index, temporary index [13], development of diverse index structures, itp. W systemach SZRBD (System Zarz¹dzania Relacyjn¹ Baz¹ Danych) klucze definiuj¹ce indeks na tabeli s¹ zwykle prostymi wartoœciami przechowywanymi w kolumnach. Takie indeksy wymagaj¹ prostych mechanizmów zapewniaj¹cych przezroczystoœæ u ytkownika. Optymalizatory mog¹ w ³atwy sposób zidentyfikowaæ wyra enia where adresuj¹c odwo³uj¹ce siê do poindeksowanych warunków selekcji. atwe do wykrycia przez silnik BD s¹ równie modyfikacje w indeksowanej tabeli, dlatego szczegó³y automatycznej aktualizacji indeksów dla systemów SZRBD s¹ pomijane w specyfikacjach technicznych i traktowane raczej jako kwestie implementacyjne. Derived key index (isystem DB2/400 by IBM) [9], function-based index (Oracle by Oracle Corporation)[18], functional indexes (Informix by IBM) [9] oraz inne podobne rozwi¹zania umo liwiaj¹ce definiowanie kluczy u ywaj¹c wyra eñ odnosz¹cych siê do wiêcej ni jednej kolumny tabeli oraz funkcji wewnêtrznych lub u ytkownika zwykle nie wprowadzaj¹ trudnoœci koncepcyjnych. Funkcje wspieraj¹ce mog¹ byæ napisane w jêzy-

3 Uogólnione podejœcie do aktualizacji indeksów w obiektowej bazie danych 1547 kach natywnych (np. PL/SQL) lub zewnêtrznym jêzyku programowania (np. C++, Java, itp.). Musz¹ byæ one deterministyczne (tj. zale ne tylko od stanu sk³adu bazy danych) i nie mog¹ produkowaæ efektów ubocznych (tj. nie wprowadzaæ adnych zmian danych). Dla indeksów funkcyjnych (function-based) automatyczna aktualizacja indeksów wymaga po prostu reakcji na zmiany jakiejkolwiek wartoœci w którejkolwiek kolumnie u ywanej w definicji klucza. Niemniej jednak, ten aspekt indeksowania staje siê z³o ony, kiedy rozwa amy model zorientowany obiektowo i rozszerzenia jêzykowe. W drastycznych przypadkach mo e to nawet prowadziæ do powa nych b³êdów (zobacz rozdz. 2.1). Rozwi¹zanie podobne do zaprezentowanego powy ej computed-column indices zosta³o zaimplementowane w MSSQL Server [13]. Opiera siê ono na dodatkowej kolumnie w tabeli (computed-column), która mo e definiowaæ indeksowane wyra enia u ywaj¹c atrybutów pochodnych oraz funkcji u ytkownika. W rezultacie auto-aktualizacja indeksu zale y od aktualizacji dodatkowej kolumny. Tematy organizacji indeksów i ich optymalizacji w zorientowanych obiektowo systemach zarz¹dzania bazami danych zosta³y g³êboko zbadane [2, 7, 22]. Systemy SZOBD (System Zarz¹dzania Obiektow¹ Baz¹ Danych) bazuj¹ na hierarchicznym, obiektowo zorientowanych modelu danych. Jednym z istotnych pojêæ modelu obiektowego jest referencja, tj. wskaÿnikowe po³¹czenie z obiektem. Referencje wyra aj¹ zwi¹zki (asocjacje) miêdzy obiektami. W rezultacie prób standaryzacji systemów zarz¹dzania zorientowanymi obiektowo bazami danych ODMG zaproponowa³o OQL, który do pewnego stopnia wp³yn¹³ na rozwój zorientowanych obiektowo jêzyków zapytañ [3] OQL wprowadza wyra enia œcie kowe budowane za pomoc¹ nazw obiektów oddzielonych kropkami w celu uzyskania ³atwej nawigacji przy u yciu wskaÿników do obiektów. Nawigacja do wskazywanego obiektu w SZOBD mo e byæ szybka, gdy jest zwykle rozwi¹zana na niskim poziomie korzystaj¹c z bezpoœredniego po³¹czenia. W relacyjnym modelu takie zwi¹zki (tj. zale noœci podstawowego klucza obcego) wymagaj¹ tworzenia z³¹czeñ, a dla efektywnego wykonania zapytañ niezbêdne s¹ indeksy. Niemniej, niektóre zorientowane obiektowo systemy mog¹ bezpoœrednio opieraæ siê na p³askim, relacyjno-podobnym modelu danych. W takim wypadku, nawigacja wzd³u wskaÿników ci¹gle wymaga tworzenia bezpoœrednich po³¹czeñ wœród obiektów. Za³o enie, które ogranicza wyra enia adresuj¹ce OQL to fakt, e operand przed operatorem kropki nie powinien dostarczaæ kolekcji. W SZOBD przeprowadzono wiele badañ w celu zwiêkszenia efektywnoœci przetwarzania zagnie d onych predykatów w zapytaniach (tj. dostêpnych u ywaj¹c wyra eñ œcie kowych) w systemach SZOBD. Badania te dodatkowo s¹ rozszerzone o rozwa anie problemów zwi¹zanych z dziedziczeniem. Rozwi¹zania o najwiêkszym znaczeniu to Multi- Index, Inherited Multi-Index, Nested-Inherited Index, Path Index, Access Support Relations [2]. Jednak e, aspekt przezroczystoœci zwi¹zany z automatyczn¹ aktualizacj¹ indeksów nie jest w tych pracach zawsze precyzyjnie wyjaœniony. Ogólnie rzecz bior¹c, zak³ada siê, e ka da modyfikacja atrybutu instancji klasy oraz tworzenie i kasowanie egzemplarza powinny skutkowaæ odpowiedni¹ akcj¹ aktualizuj¹c¹ indeks. Jednak e, instancje jednej z klas dostêpne poprzez œcie kowe wyra enie indeksuj¹ce mog¹ siê znajdowaæ w ró nych

4 1548 Tomasz M. Kowalski, Kamil Kuliberda, Cezary Draus, Rados³aw Adamus, Jacek Wiœlicki kolekcjach. Co wiêcej, te kolekcje mog¹ przechowywaæ dowoln¹ liczbê obiektów nie powi¹zanych z obiektami indeksowanymi obci¹ aj¹c tym samym proces autoaktualizacji indeksów. Ten brak konsekwencji jest jednak e usprawiedliwiony. W podejœciu do automatycznej aktualizacji indeksów zaprezentowanym w [2] wszystkie egzemplarze klasy powi¹zane z indeksem opartym o wyra enie œcie kowe powinny zostaæ rozwa one dla zapewnienia poprawnoœci indeksu po modyfikacjach danych. Rozproszony obiektowy system zarz¹dzania H-PCTE stworzony na Uniwersytecie Siegen zaproponowa³ inne rozwi¹zanie problemu automatycznej aktualizacji indeksów. Jest ono niezale ne od rodzaju struktury indeksu i jego zawartoœci [7]. Podejœcie bazuje na tak zwanych definicjach aktualizuj¹cych indeks, które sk³adaj¹ siê z opisu zdarzenia dla zdarzenia wymuszaj¹cego potrzebê aktualizacji indeksu, referencjê do struktury indeksu, zapytanie okreœlaj¹ce elementy, dla których odpowiednie wpisy indeksu maj¹ byæ zaktualizowane oraz odpowiadaj¹c¹ operacje aktualizacji. Takie definicje aktualizuj¹ce indeks mog¹ byæ utworzone podczas tworzenia indeksu. Rozwi¹zanie radzi sobie ze z³o onymi atrybutami, np. regularnymi wyra eniami œcie kowymi oraz funkcjami agreguj¹cymi. Z drugiej strony, jego autorzy wspominaj¹ o pewnych jego ograniczeniach dotycz¹cych efektywnoœci i uwzglêdnienia metod u ytkownika daj¹c jedynie ogólne sugestie jak zaradziæ tym problemom. Inne podejœcie do autoaktualizacji indeksów zosta³o rozwa one dla function-based indexing rozwijanego w kontekœcie rozproszonego, zorientowanego obiektowo systemu bazodanowego Thor przez Massachusetts Institute of Technology u ywaj¹c tak zwanych schematów rejestruj¹cych obiekty [8]. Rejestracja dotyczy jedynie obiektów, których modyfikacja mo e wp³yn¹æ na indeks. Aktualizacja indeksu jest wyzwalana przez mechanizm, który sprawdza dane rejestracji podczas modyfikacji obiektów. Mimo teoretycznej ogólnoœci tego rozwi¹zania nie zosta³ on w pe³ni zaimplementowany. Wed³ug wiedzy autorów niewielka liczba technik indeksuj¹cych zaproponowanych w literaturze naukowej zosta³a wdro ona do komercyjnych produktów i wa niejszych prototypów SZOBD. Dok³adny przegl¹d zastosowanych mechanizmów indeksuj¹cych jest mo liwy poprzez analizê bardziej znacz¹cych obiektowych baz danych. Przezroczyste indeksowanie w db4o SZOBD firmy db4objects jest zapewnione jedynie dla atrybutów klas definiuj¹cych indeksowane kolekcje [4]. Objectivity/DB przez Objectivity dodatkowo wspiera po³¹czone indeksy na wiêkszej liczbie atrybutów [14]. Zaawansowane, przezroczyste indeksowanie w Versant zosta³o osi¹gniête poprzez wirtualne atrybuty, co stanowi technikê podobn¹ do indeksowania opartego na obliczonej kolumnie (computed column) w Microsoft SQL Server. Takie podejœcie umo liwia indeksowanie pochodnych, wirtualnych atrybutów u ywaj¹c jednego lub wiêcej atrybutów klasy [20]. Jedyn¹ przetestowan¹ baz¹ danych, która wspiera przezroczyste indeksowanie przy u yciu krótkich wyra eñ œcie kowych (atrybuty obiektów powi¹zanych z obiektami indeksowanymi) jest GemFire [6]. ObjectStore wspiera dodawanie indeksów na kolekcjach u ywaj¹c z³o onych wyra eñ œcie kowych jako klucza (tzw. indeksy multistep indices mog¹ równie wykorzystywaæ metody klas) jednak e umo liwia jedynie czêœciow¹ przezroczystoœæ automatycznej aktualizacji indeksów. ObjectStore automatycznie aktualizuje indeks w momen-

5 Uogólnione podejœcie do aktualizacji indeksów w obiektowej bazie danych 1549 cie usuniêcia lub dodania elementów kolekcji. Jednak e, aktualizacja wpisu indeksu po modyfikacji danych musi byæ jawnie wyzwolona przez programistê [16]. Wymienione powy ej prototypy i produkty komercyjne reprezentuj¹ jedynie fragment istniej¹cego obrazu systemów zarz¹dzania zorientowanymi obiektowo bazami danych. Niemniej jednak, umo liwiaj¹ wystarczaj¹cy przegl¹d stanu techniki indeksowania w SZOBD Ograniczenia Function-Based Index w SZORBD Proste relacyjne systemy wyznaczaj¹ ograniczenia definicji klucza indeksowania: klucz indeksu mo e byæ jedynie obliczony u ywaj¹c danych w bie ¹cym rekordzie, poniewa SQL nie pozwala na definiowanie indeksu u ywaj¹cego danych z innych tabel powi¹zanych za pomoc¹ relacji klucz podstawowy klucz obcy, funkcje agreguj¹ce w SQL s¹ zabronione w definicjach indeksów, poniewa u yte jako warunek selekcji zwracaj¹ pojedyncz¹ wartoœæ dla ca³ej tabeli. Bez zaawansowanych rozszerzeñ zorientowanych obiektowo nie ma wsparcia dla metod powi¹zanych z rekordami, polimorfizmem oraz wyra eniami œcie kowymi. Takie ograniczenia dotycz¹ równie wiêkszoœci przezroczystych technik indeksowania w SZORBD (System Zarz¹dzania Obiektowo-Relacyjn¹ Baz¹ Danych). Autorzy nie znaleÿli adnych obiektoworelacyjnych baz danych wspieraj¹cych indeksowanie u ywaj¹ce funkcji agreguj¹cych lub wyra eñ œcie kowych. Relatywnie z³o one indeksy wi¹ ¹ce siê z wywo³aniem metod oraz polimorfizmem w œrodowisku obiektowo-relacyjnym mog¹ byæ utworzone przy u yciu rozwi¹zania Oracle function-based indices [18]. Dokumentacja Oracle nie daje jednak wystarczaj¹cej informacji o rozwa anym problemie automatycznej aktualizacji takich indeksów. W celu poznania w³aœciwoœci podejœcia Oracle autorzy przeprowadzili testy wprowadzaj¹c schemat widoczny na rysunku 1. Rys. 1. Przyk³ad schematu obiektowo-relacyjnego Metoda gettotalincomes klasy EmpType zwraca wartoœæ atrybutu salary. Jest ona prze³adowana w klasie empstudenttype w celu uwzglêdnienia pola scholarship. Tabela emp sk³ada siê z rekordów obu typów. Tworzenie indeksu na metodzie gettotalincomes powi¹zanej z tabel¹ wygl¹da nastêpuj¹co: CREATE INDEX emp_gettotalincomes_idx ON emp e (e.gettotalincomes());

6 1550 Tomasz M. Kowalski, Kamil Kuliberda, Cezary Draus, Rados³aw Adamus, Jacek Wiœlicki Taki indeks jest automatycznie u ywany przez optymalizator zapytañ. Efektywnoœæ procesu selekcji jest zwiêkszona nie tylko poprzez redukcjê liczby przejrzanych rekordów, ale równie poprzez unikniêcie wywo³ywania metod, poniewa obliczony rezultat mo e byæ zwrócony poprzez indeks. Indeks zosta³ przetestowany na serii prostych zapytañ. Modyfikacje atrybutu pensji lub stypendium, np.: UPDATE emp e SET e.salary = 1500 WHERE e.name = «KUC»; wyzwalaj¹ odpowiednie zmiany w indeksie. Zgodnie z przewidywaniami czas takiej modyfikacji po dodaniu indeksu emp_gettotalincomes_idx pogorszy³ siê. Przetwarzanie aktualizacji jest ponad trzy razy d³u sze, poniewa automatyczna aktualizacja indeksu wymaga zmiany odpowiadaj¹cych wpisów w indeksie. Na tyle ile by³o to mo liwe, testy pokaza³y, e stworzony indeks dzia³a prawid³owo. Niestety definiowanie indeksu na metodzie w Oracle pokazuje pewne niespodziewane wady. Operacje aktualizacji indeksu s¹ równie wyzwalane podczas modyfikacji atrybutu name kolekcji emp. Podobnie, zmiana innych atrybutów obiektów emp jest wolniejsza (równie bardziej ni 3 razy). Zosta³o to spowodowane niepotrzebnymi czynnoœciami aktualizacyjnymi indeksu. Podejœcie Oracle do aktualizacji indeksów w wypadku indeksów opartych o metody polega na wyzwalaniu mechanizmów aktualizacji indeksu podczas ka - dej modyfikacji dowolnego atrybutu krotki powi¹zanej z wpisami indeksu. Wada wymieniona powy ej roœnie do powa nego problemu w wypadku, kiedy metoda wykorzystana do zdefiniowania klucza dostaje siê do danych poza indeksowanym obiektem. Dla przyk³adu metoda getdeptsalary DeptType ma poni sz¹ definicjê: CREATE TYPE BODY dept_type IS MEMBER FUNCTION getdeptsalary RETURN NUMBER DETERMINISTIC IS BEGIN DECLARE aux NUMBER; BEGIN SELECT sum(salary) INTO aux FROM emp e WHERE e.dept.name = self.name; RETURN aux; END; END; END; Dostaje siê ona nie tylko do danych krotki typu DeptType ale równie dosiêga kolekcji emp. Metoda oblicza sumê zarobków pracowników departamentu i mo e byæ u yta jako warunek selekcji. Oracle umo liwia równie indeksowanie kolekcji dept za pomoc¹ metody getdeptsalary: CREATE INDEX dept_getdeptsalary_idx ON dept d (d.getdeptsalary());

7 Uogólnione podejœcie do aktualizacji indeksów w obiektowej bazie danych 1551 Podobnie jak w przypadku emp_gettotalincomes_idx, polecenie aktualizuj¹ce wpisy dept wyzwala aktualizacjê indeksu. Jednak e jakiekolwiek modyfikacje w obiektach emp, np.: INSERT INTO EMP SELECT emp_type («Smith»,350,REF(d)) FROM DEPT d WHERE d.name = «HR»; nie s¹ brane pod uwagê i indeks dept_getdeptsalary_idx traci spójnoœæ z danymi. Niestety zapytania, które u ywaj¹ tego indeksu, np.: SELECT d.name, d.getdeptsalary() FROM DEPT d WHERE d.getdeptsalary() < 24500; mog¹ zwracaæ nieprawid³owe odpowiedzi, poniewa proces selekcji oraz ostateczne rezultaty zale ¹ od zawartoœci indeksu. St¹d wykorzystane rozwi¹zanie aktualizacji indeksu nie jest poprawne dla obs³ugiwania indeksów z kluczami opartymi o zbyt skomplikowane metody. W praktyce indeksy function-based w Oracle mog¹ prowadziæ do b³êdnego dzia³ania zapytañ i aplikacji w bazie danych. 3. SBA i SBQL Architektura stosowa (SBA) [17, 19] to teoretyczna i metodologiczna podstawa dla zaprojektowanego rozwi¹zania zaprezentowanego w tym artykule. SBA rekonstruuje koncepcje jêzyków zapytañ z punktu widzenia jêzyków programowania (PL). Zak³ada on zasadê relatywizmu obiektów, czyli braku koncepcyjnej ró nicy pomiêdzy obiektami ró nych typów lub przechowywanymi w sk³adzie na ró nych poziomach hierarchii. Wszystko (np. obiekt osoby, atrybut pensji, procedura zwracaj¹ca wiek osoby, widok zwracaj¹cy dobrze op³acanych pracowników) jest obiektem. W SBA jêzyk zapytañ (nazwany SBQL Stack Based Query Language) jest specjalnym rodzajem jêzyka programowania. Dlatego te semantyka zapytañ bazuje na mechanizmach dobrze znanych z jêzyków programowania, takich jak stos œrodowiskowy. SBA rozszerza t¹ ideê dla przypadków operatorów zapytañ takich jak selekcja, projekcja/nawigacja, ³¹czenie, kwantyfikatory oraz inne. U ywaj¹c SBA mo na precyzyjnie okreœliæ semantykê operacyjn¹ (abstrakcyjna implementacja) jêzyków zapytañ, w³¹czaj¹c relacje z koncepcjami obiektowo relacyjnymi, wbudowanymi zapytaniami do konstrukcji imperatywnych oraz zagnie d anie zapytañ w abstrakcjach programistycznych: procedurach, perspektywach, metodach, modu³ach itp Wi¹zanie nazw Naturaln¹ w³aœciwoœci¹ jêzyków opartych na SBA jest zasada zakresu wi¹zania nazw. Ka da nazwa pojawiaj¹ca siê w zapytaniu jest ograniczona do odpowiedniej nietrwa³ej

8 1552 Tomasz M. Kowalski, Kamil Kuliberda, Cezary Draus, Rados³aw Adamus, Jacek Wiœlicki jednostki (obiekt, atrybut, metoda, parametr, itp.) zale nie od jej zakresu. Zasada jest obs³ugiwana za poœrednictwem stosu œrodowiskowego (ENVS) zawieraj¹cego bindery. Mechanizm ten jest dobrze znany z popularnych implementacji jêzyków programowania. Idea ENVS jest rozszerzona w SBA na kolekcje bazy danych oraz na wszystkie typowe operatory zapytañ znane z SQL oraz OQL (np. projekcja, nawigacja, ³¹czenie, kwantyfikatory). Dziêki semantyce opartej o stos (stack-based) osi¹gniêto pe³n¹ ortogonalnoœæ oraz z³o onoœæ operatorów zapytañ. ENVS wspiera równie rekursjê oraz parametry: wszystkie funkcje, procedury, metody oraz perspektywy zdefiniowane przez SBA mog¹ byæ rekurencyjne z definicji. Co wiêcej u ycie ENVS mo e byæ równie rozszerzone ponad wykonywanie zapytañ do innych zadañ jak wsparcie czasu wykonania dla aktualizacji indeksów. Rozszerzenie to zostanie zaprezentowane w nastêpnym rozdziale, jako czêœæ zaproponowanego mechanizmu aktualizacji indeksów. 4. Rozwi¹zanie aktualizacji indeksu 4.1. Przyk³adowa baza danych Schemat na rysunku 2 jest wprowadzony w celu zilustrowania opisu indeksowania w SZOBD ODRA. Rys. 2. Przyk³adowy schemat zorientowany obiektowo Przyk³adowy schemat ilustruje rekordy personelu pewnej firmy. Wprowadzono kilka klas PersonClass, StudentClass, EmpClass, EmpStudentClass oraz dwa typy strukturalne DeptType i AddressType. Trwa³e instancje klas wymienionych powy ej mog¹ byæ dostêpne

9 Uogólnione podejœcie do aktualizacji indeksów w obiektowej bazie danych 1553 za poœrednictwem nazw klas ich instancji Person, Student, Emp i w koñcu EmpStudent. Obiekty reprezentuj¹ce departamenty firmy, nazwane Dept maj¹ strukturê DeptType z atrybutem g³ównym name. Instancje klasy EmpClass reprezentuj¹ obecnych pracowników firmy oraz rozszerzaj¹ obiekty Person o atrybut salary. Obiekty Emp oraz Dept s¹ powi¹zane obiektami wskazuj¹cymi nazwanymi odpowiednio worksin oraz employs. Kolejna klasa, która rozszerza klasê PersonClass to StudentClass. Wprowadza ona atrybut scholarship. Ostatnia klasa pokazana na schemacie, nazwana EmpStudentClass, dziedziczy po EmpClass oraz StudentClass. Zosta³a wprowadzona, aby reprezentowaæ studentów, którzy s¹ jednoczeœnie pracownikami firmy. U ycie nazwy Person w zapytaniu SBQL daje w rezultacie wszystkie instancje klasy PersonClass i jej podklas. Podobnie poprzez nazwê Emp programista odnosi siê do instancji obu klas EmpClass i EmpStudentClass. Klasy mog¹ zawieraæ metody korzystaj¹ce z polimorfizmu (nadpisywanych w podklasach). Na przyk³ad metoda gettotalincomes() klasy EmpClass zwraca wartoœæ atrybutu salary, ale dla instancji klasy EmpStudentClass zwraca sumê atrybutów salary i scholarship. Odnosz¹c siê do danych schematu z rysunku 2, mo emy wprowadziæ przyk³ad sk³adu na rysunku 3 prezentuj¹cy klasy i obiekty, ich wartoœci, identyfikatory oraz najistotniejsze relacje miêdzy nimi. Rys. 3. Przyk³adowy sk³ad zawieraj¹cy klasy i obiekty 4.2. Indeksowanie w ODRA SZOBD Podstawy teorii optymalizacji zapytañ u ywaj¹c indeksów w SBA zosta³y zaprezentowane w [22].

10 1554 Tomasz M. Kowalski, Kamil Kuliberda, Cezary Draus, Rados³aw Adamus, Jacek Wiœlicki Implementacja indeksowania wspiera indeksy oparte o struktury liniowego hashingu. [11], które mog¹ byæ ³atwo rozszerzone do rozproszonej wersji SDDS [12], aby optymalnie wykorzystaæ zasoby obliczeniowe gridu. Ponadto, implementacja zapewnia szerokie wsparcie dla optymalizacji zapytañ poprzez: wsparcie dla optymalizacji gêstych i zakresowych zapytañ na kluczach typów integer, real, string, date, gêste indeksowanie dla wartoœci kluczy typu reference, indeksowanie przy u yciu wielu kluczy, Schemat na rysunku 2 daje mo liwoœæ zaprezentowania szerokiej ró norodnoœci indeksów obs³ugiwanych przez silnik indeksów ODRA. Podejœcie autorów do aktualizacji indeksów zostanie wyjaœnione przy u yciu nastêpuj¹cych przyk³adowych indeksów: idxperage który zwraca obiekty Person wg wartoœci atrybutu age. idxempworkcity indeks, który wykorzystuje pochodny atrybut worksin.dept.address.city do zwracania obiektów Emp. idxaddrstreet to indeks, który zwraca podobiekty address obiektów Person wg atrybutu street. Inaczej ni w wypadku innych indeksów obiekty niekluczowe s¹ zdefiniowane za pomoc¹ wyra enia œcie kowego, tj. Person.address. idxemptotalincomes indeks, który u ywa metody gettotalincomes() z klasy Emp jako klucza do selekcji obiektów Emp. Ta metoda jest nadpisana dla instancji klasy EmpStudent. Ponadto, nawet bardziej z³o one indeksy mog¹ u³atwiaæ przetwarzanie zapytañ, np. indeks idxdeptyearcost dla obiektów Dept, którego klucz jest oparty na wyra eniu sum(employs.emp.salary)*12, które zwraca przybli ony koszt ca³kowity rocznych p³ac dla wybranego departamentu Wyzwalacze aktualizacji indeksów Ka da modyfikacja wykonana na obiektach (dodanie, aktualizacja i skasowanie) jest realizowana przez interfejs CRUD (Create, Retrieve, Update, Delete) obiektowego sk³adu ODRA. Zaproponowane podejœcie do aktualizacji indeksów koncentruje siê na tym elemencie systemu jako naj³atwiejszym i pewnym sposobie œledzenia modyfikacji. Mo liwe modyfikacje, które mog¹ byæ wykonane na obiektach to: aktualizacja wartoœci obiektów typu integer, double, string, Boolean, date lub referencji, kasowanie, dodawanie obiektu potomnego (w wypadku obiektów z³o onych), inne zale ne od implementacji modyfikacje bazy danych. Zaproponowana implementacja indeksowania wprowadza grupê struktur pomocniczych nazwanych wyzwalaczami aktualizacji indeksów (Index Update Triggers w skrócie IUT), ³¹cznie z definicjami wyzwalaczy (Trigger Definition w skrócie TD). Te elementy s¹ niezbêdne do wykonania aktualizacji indeksów. Ka dy IUT wi¹ e jeden obiekt bazy da-

11 Uogólnione podejœcie do aktualizacji indeksów w obiektowej bazie danych 1555 nych z odpowiednim indeksem poprzez TD. Istniej¹ce IUT-y automatycznie inicjalizuj¹ mechanizm aktualizuj¹cy, kiedy ma dojœæ do modyfikacji obiektu. Wiêcej ni jeden IUT mo e byæ po³¹czony z pojedynczym obiektem. Definicje TD zapewniaj¹ metodê znalezienia obiektów, które powinny byæ wyposa one w IUT-y. Dodatkowo TD okreœla typ IUT-u. Obiekt jest powi¹zany z IUT-ami kiedy uczestniczy w dostêpie do obiektów niekluczowych lub w obliczaniu wartoœci kluczowych indeksów. Dlatego modyfikacje obiektów niezwi¹zanych z adnym indeksem nie wyzwalaj¹ niepotrzebnie aktualizacji indeksu. Zmiana obiektów wyposa onych w IUT-y mo e wp³ywaæ na aktualnoœæ indeksów oraz na same IUT-y. Nasza implementacja wprowadza cztery podstawowe typy IUT-ów (ka dy IUT odnosi siê do innego typu TD): Root Index Update Trigger (R-IUT) jest domyœlnie powi¹zany z korzeniem bazy danych, który jest bezpoœrednim lub poœrednim obiektem nadrzêdnym dla wszystkich indeksowanych obiektów bazy. Kiedy nowy obiekt jest tworzony w korzeniu bazy danych wyzwalacz mo e powodowaæ tworzenie NonkeyPath- lub Nonkey- Update Trigger (opisane poni ej) dla nowego obiektu potomnego. Wyzwalacz mo e byæ równie u yty w celu inicjalizacji oraz zamkniêcia wszystkich wyzwalaczy powi¹zanych z okreœlonym indeksem. Key Index Update Trigger (K-IUT) powi¹zany z obiektami u ywanymi do obliczania wartoœci klucza dla okreœlonego obiektu niekluczowego (identyfikator przekazany razem z TD jako dodatkowy parametr). Ka da modyfikacja takiego obiektu mo e potencjalnie zmieniæ proces obliczania klucza i jego wartoœæ. Z tego powodu K-IUT jest odpowiedzialny za aktualizacjê odpowiednich wpisów indeksu oraz utrzymania odpowiednich K-IUT-ów powi¹zanych z danym obiektem niekluczowym. NonkeyPath Index Update Trigger (NP-IUT) typ wyzwalacza powi¹zanego z obiektami, które s¹ potencjalnie obiektami nadrzêdnymi dla nowych obiektów indeksowanych. Ten typ wyzwalacza jest generowany, gdy niekluczowy obiekt indeksu jest zdefiniowany za pomoc¹ wyra enia œcie kowego (np. indeks idxaddrstreet), tj. kiedy obiekt niekluczowy nie jest bezpoœrednim potomkiem korzenia bazy danych. Podobnie do R-IUT, ten wyzwalacz mo e powodowaæ generacjê Index NonkeyPath lub Nonkey Update Trigger dla nowych obiektów potomnych. NonKey Index Update Trigger (NK-IUT) wyzwalacz, który jest przypisany do obiektów indeksowanych (niekluczowych). Jest generowany przez wyzwalacze aktualizacji obiektu macierzystego (R-IUT albo NP-IUT). Proces tworzenia NK-IUT sk³ada siê z nastêpuj¹cych kroków: 1. Wstêpnie NK-IUT jest przypisywany do danego obiektu niekluczowego. 2. Obliczana jest wartoœæ klucza. 3. Odpowiadaj¹cy wpis indeksu jest tworzony (jeœli prawid³owa wartoœæ klucza zosta³a znaleziona). 4. K-IUT-y s¹ generowane i parametryzowane identyfikatorami obiektów niekluczowych. Tworzenie obiektów potomnych dla obiektów niekluczowych inicjalizuje procedury identyczne do opisanych w K-IUT.

12 1556 Tomasz M. Kowalski, Kamil Kuliberda, Cezary Draus, Rados³aw Adamus, Jacek Wiœlicki Bazuj¹c na przyk³adowym sk³adzie przedstawionym na rysunku 3, dla indeksów idx PerAge, idxempworkcity oraz idxattrstreet wprowadzonych w poprzedniej sekcji IUT-y pokazane na rysunku 4 zosta³yby wygenerowane. Za³ó my, e i 0 to identyfikator korzenia bazy. Identyfikatory obiektów niekluczowych powi¹zanych z K-IUT-ami znajduj¹ siê w nawiasach. Rys. 4. Przyk³adowe wyzwalacze aktualizacji indeksów 4.4. Proces aktualizacji indeksów Architektura zaproponowanego rozwi¹zania procesu aktualizacji indeksów zosta³a zaprezentowana na rysunku 5. Kiedy administrator dodaje indeks, przed wyzwalaczami IUT tworzone s¹ definicje TD (zielone strza³ki): menad er indeksów inicjalizuje nowy indeks oraz wysy³a do menad era wyzwalaczy ¹danie zbudowania definicji TD, nastêpnie, TD aktywuje mechanizm aktualizacji indeksu, który bazuj¹c na wiedzy o indeksach oraz definicjach TD przystêpuje do dodawania wyzwalaczy IUT. Usuniêcie indeksu skutkuje skasowaniem wyzwalaczy IUT (razem z NK-IUT skasowane zostaj¹ odpowiadaj¹ce wpisy indeksu) oraz definicji TD. Mediator zarz¹dzaj¹cy dodawaniem i usuwaniem wyzwalaczy IUT jest specjalnym rozszerzeniem interfejsu CRUD.

13 Uogólnione podejœcie do aktualizacji indeksów w obiektowej bazie danych 1557 Rys. 5. Architektura silnika aktualizacji indeksów Drugim przypadkiem, w którym uruchomiony zostaje mechanizm aktualizacji indeksu, jest moment otrzymania przez interfejs CRUD sygna³u modyfikacji obiektu po³¹czonego z co najmniej jednym wyzwalaczem IUT (niebieska strza³ka). CRUD powiadamia mechanizm aktualizacji indeksu o nadchodz¹cych modyfikacjach i przeprowadzone zostaj¹ wszystkie konieczne przygotowania przed aktualizacj¹ bazy danych. Ten krok jest szczególnie istotny w wypadku zmian, które mog¹ wp³yn¹æ na wartoœæ klucza danego obiektu niekluczowego. Sk³ada siê on z: 1. lokalizowania wpisu indeksu, który odpowiada obiektowi niekluczowemu (potrzebna jest wartoœæ klucza), 2. identyfikacji obiektów, które zosta³y u yte w procesie obliczania klucza (s¹ one wyposa one w ten sam K-IUT). Po zebraniu wymaganych informacji, CRUD wykonuje ¹dane modyfikacje, a mechanizm aktualizacji indeksu wykonuje nastêpuj¹ce operacje: 1. aktualizuje wpisy indeksu dla danego obiektu niekluczowego, 2. aktualizuje istniej¹ce IUT-y poprzez dodanie nowych lub usuniêcie nieaktualnych Interpreter SBQL oraz rozszerzenie wi¹zania Znacz¹cym modu³em, z którego korzysta mechanizm aktualizacji indeksów jest interpreter jêzyka SBQL (pokazany równie na rysunku 5) rozszerzony o mo liwoœci: Rejestrowania obiektów bazy danych w czasie wykonywania wyra enia wyznaczaj¹cego wartoœæ kluczow¹. Rejestrowanie jest mo liwe podczas wi¹zania nazw obiektów na ENVS (inne jednostki bazy danych jak procedury, widoki itp. oraz litera³y s¹ pomijane) ta funkcjonalnoœæ jest u ywana w celu lokalizacji wszystkich obiektów, które s¹ albo powinny byæ wyposa one w K-IUT-y.

14 1558 Tomasz M. Kowalski, Kamil Kuliberda, Cezary Draus, Rados³aw Adamus, Jacek Wiœlicki Ograniczenia pierwszego przeprowadzonego wi¹zania jedynie do jednego wymienionego obiektu ta w³aœciwoœæ znacz¹co przyspiesza i u³atwia weryfikacjê czy nowy potomek podobiektu dodany do obiektu z R-IUT lub NP-IUT powinien byæ wyposa ony w NP-IUT czy NK-IUT, tj. czy nowy potomek jest obiektem niekluczowym czy potencjalnym poœrednim lub bezpoœrednim rodzicem obiektu niekluczowego. Podstawowe funkcje interpretera u ywanego przez mechanizm aktualizacji indeksów to: przemieszczanie siê z korzenia bazy danych lub obiektów wyposa onych w NP-IUT-y do obiektów niekluczowych, generowanie wartoœci klucza dla obiektów niekluczowych. Nastêpny podrozdzia³ prezentuje generycznoœæ zaproponowanego podejœcia na przyk³adzie dotycz¹cym wyzwalaczy K-IUT Przyk³ad koncepcyjny Poni sze przyk³ady dotycz¹ indeksu idxemptotalincomes z kluczem opartym na metodzie gettotalincomes(), która jest polimorficzna w zale noœci od klasy obiektu niekluczowego. Dla instancji klasy EmpClass gettotalincomes() zwraca wartoœæ atrybutu salary: return deref(salary); natomiast dla EmpStudentClass uwzglêdnia równie atrybut scholarship: return deref(salary) + deref(scholarship); PrzeœledŸmy jak modu³ aktualizacji indeksów radzi sobie z instancj¹ klasy EmpStudentClass. Poni sze wyra enie aktualizuje atrybut scholarship obiektów EmpStudent, których wiek jest równy 30: (EmpStudent where age = 30).setScholarship(1500); Wed³ug przyk³adowego schematu na rysunku 3 w zwi¹zku z wywo³aniem metody set- Scholarship() zostanie zaktualizowany atrybut i 39 scholarship obiektu i 31 EmpStudent. Przed wykonaniem modyfikacji mechanizm aktualizacji indeksu znajduje K-IUT-a < index: idxemptotalincomes, obiekt niekluczowy: i 31 > powi¹zanego z atrybutem i 39 scholarship. Obliczana jest wartoœæ klucza dla indeksu idxemptotalincomes. Z czynnoœci przeprowadzonych przez interpreter i pokazanych na rysunku 6 wynika, e obiekty i 24 gettotal- Incomes (procedura obiektu EmpStudentClass), atrybut salary i 41 i atrybut scholarship i 39 mia³y wp³yw na wartoœæ klucza Identyfikator procedury mo e byæ odrzucony podczas rewizji wyzwalaczy aktualizacyjnych.

15 Uogólnione podejœcie do aktualizacji indeksów w obiektowej bazie danych 1559 Rys. 6. Obliczanie wartoœci klucza indeksu idxemptotalincomes dla obiektu i 31 przed aktualizacj¹ Po aktualizacji atrybutu scholarship ponowne obliczenia wartoœci klucza s¹ podobne do zaprezentowanych na rysunku 6 (jedynie wartoœci atrybutów s¹ ró ne). W celu zakoñczenia operacji CRUD mechanizm aktualizacji indeksu: aktualizuje indeks idxemptotalincome: wpis dla niekluczowego obiektu i 31 jest zaktualizowany do nowej wartoœci 2500, aktualizuje IUT-y dla indeksu idxemptotalincomes i niekluczowego obiektu i 31 : przed jak i po modyfikacj¹ w bazie mechanizm aktualizacji indeksów wykry³ te same wyzwalacze IUT, dlatego adne zmiany nie zosta³y wykonane. 5. Wnioski Mechanizm aktualizacji indeksów zaimplementowany w prototypie SZOBD ODRA stanowi dowód opracowanej koncepcji. Jego ocena mo e zostaæ przeprowadzona na podstawie zasadniczych w³aœciwoœci i jego wp³ywu na mo liwoœci indeksowania bazy danych. Niew¹tpliw¹ zalet¹ idei aktualizacji indeksów w relacyjnych i relacyjno-obiektowych bazach danych jest ekonomiczne u ycie sk³adu danych. Informacja niezbêdna dla mechanizmów zapewniaj¹cych spójnoœæ miêdzy danymi i indeksami jest powi¹zana z kolumnami

16 1560 Tomasz M. Kowalski, Kamil Kuliberda, Cezary Draus, Rados³aw Adamus, Jacek Wiœlicki tabeli, poniewa jest identyczna dla ka dego wiersza. Przeciwnie w zaimplementowanym SZOBD ODRA wyzwalacze aktualizuj¹ce indeksy s¹ w wielu przypadkach zapisane ³¹cznie ze z³o onymi obiektami oraz obiektami zawieraj¹cymi pojedyncze wartoœci. Taka sytuacja jest dopuszczalna bior¹c pod uwagê ogromn¹ iloœæ danych w pamiêci operacyjnej (lub na dysku twardym) jak¹ w dzisiejszych czasach zarz¹dzaj¹ bazy danych. Zwiêkszanie wydajnoœci równie zale y od ró norodnoœci wykorzystanych struktur indeksów oraz elastycznoœci podczas definiowania samych indeksów. W³aœciwoœci jêzyka SBQL umo liwiaj¹ ³atwe formowanie z³o onych warunków selekcji (w³¹czaj¹c u ycie skomplikowanych wyra eñ z polimorficznymi metodami i operatorami agreguj¹cymi). Zaproponowana organizacja indeksowania w SZOBD ODRA zapewnia wszystkie potrzebne mechanizmy do tworzenia indeksów z kluczami opartymi na takich predykatach. Jak pokazano, najbardziej popularne SZBD nie pozwalaj¹ korzystaæ z podobnych mo liwoœci i elastycznoœci. Co wiêcej, próby rozszerzenia mechanizmów indeksowania (Oracle functionbased indices) prowadz¹ do niepotrzebnych strat efektywnoœci modyfikacji danych, a nawet do b³êdów w otrzymywanych wynikach zapytañ i b³êdnego dzia³ania aplikacji bazodanowych. W przeciwieñstwie do wszystkich zaimplementowanych rozwi¹zañ problemu automatycznej aktualizacji indeksów zaprezentowanych w literaturze naukowej lub produktach komercyjnych, podejœcie autorów zaimplementowane w SZOBD ODRA, oparte o wyzwalacze aktualizacji indeksów (Index Update Triggers), zapewnia przezroczyste, kompletne oraz uogólnione wsparcie ró nych definicji indeksów. Co wiêcej, dodatkowe koszty modyfikacji danych powi¹zane z konserwacj¹ indeksów dotycz¹ wy³¹cznie obiektów wykorzystanych przy dostêpie do poindeksowanych obiektów lub u ytych przy obliczaniu wartoœci klucza. Mo na spieraæ siê o zwiêkszony koszt przechowywania spowodowany przez wyzwalacze IUT; niemniej jednak, jak pokazano w [2] konserwacja indeksów zdefiniowanych jako z³o one wyra enia wymaga wprowadzenia du ej iloœci dodatkowych danych do struktury indeksu. Inn¹ zalet¹ stosowania autorskich wyzwalaczy IUT ustawionych na obiektach u ytych do okreœlenia wartoœci klucza jest to, e zawieraj¹ bezpoœrednie referencje do indeksowanych obiektów, natomiast inne rozwi¹zania s¹ czêsto zmuszone identyfikowaæ je poœrednio (np. przez metody wstecznej nawigacji) [2, 7]. Zaprezentowane rozwi¹zanie aktualizacji indeksów w SZOBD jest generyczne i uniwersalne, jednak e wymaga optymalizacji w celu unikniêcia niepotrzebnych strat efektywnoœci szczególnie w przypadkach prostych aktualizacji. Takie optymalizacje zosta³y opracowane i czêœciowo zaimplementowane, np.: unikanie ponownego obliczania ca³ego wyra enia kluczowego dla wyra eñ œcie kowych, opóÿnianie dzia³añ konserwacyjnych (leniwa aktualizacja indeksu). Literatura [1] Adamus R., Kowalski T.M., Subieta K. et al., Overview of the Project ODRA. Proceedings of the First International Conference on Object Databases, ICOODB 2008, Berlin, ISBN , 2008,

17 Uogólnione podejœcie do aktualizacji indeksów w obiektowej bazie danych 1561 [2] Bertino E. et al., Indexing Techniques for Advanced Database Systems. Kluwer Academic Publishers, Boston Dordrecht London, [3] Cattell R.G.G., Barry D.K. (Eds.), The Object Data Standard: ODMG 3.0. Morgan Kaufmann, [4] db4objects Inc., db4o Tutorial for Java. Production Release V6.3, [5] Elmasri R., Navathe S.B., Fundamentals of Database Systems 4th ed. Pearson Education, Inc., ISBN: , [6] GemStone, GemFire Enterprise Developer s Guide, Version 5.7, [7] Henrich A., The Update of Index Structures in Object-Oriented DBMS. Proceedings of the Sixth International Conference on Information and Knowledge Management (CIKM 97), Las Vegas, ACM 1997, ISBN X, 1997, [8] Hwang D.J., Function-based indexing for object-oriented databases. Massachusetts Institute of Technology, 1994 (Ph.D. thesis). [9] IBM, Information Center. version 6, 1st edition: [10] Kowalski T.M., Wislicki J., Kuliberda K., Adamus R., Subieta K., Optimization by Indices in ODRA. Proceedings of the First International Conference on Object Databases, ICOODB 2008, Berlin, ISBN , 2008, [11] Litwin W., Linear Hashing : a new tool for file and tables addressing. Reprinted from VLDB-80 in READINGS IN DATABASES. 2-nd ed., Morgan Kaufmann Publishers, Inc., Stonebraker M. (Ed.), [12] Litwin W., Nejmat M.A., Schneider D.A., LH*: Scalable, Distributed Database System. ACM Trans. Database Syst., 21(4), 1996, [13] Microsoft, SQL Server 2008 Books Online.: aspx, [14] Objectivity, Objectivity/SQL++. Part Number: 93-SQLPP-0, Release 9.3, [15] P³odzieñ J., Optimization Methods In Object Query Languages. IPIPAN, Warszawa, 2000 (Ph.D. Thesis). [16] Progress Software Corporation, ObjectStore Java API User Guide. ObjectStore, Release 7.1 for all platforms, [17] SBA & SBQL Web pages: [18] Strohm R. et al., Oracle Database Concepts. 11g Release 1 (11.1), Part Number B [19] Subieta K, Adamus R., Habela P., Kaczmarski K., Lentner M., Stencel K., Stack-Based Architecture and Stack-Based Query Language. ICOODB 2008, Berlin, available online at odbms.org portal: [20] Versant, VERSANT Database Fundamentals Manual. (Release ) [21] Objectivity, Objectivity/SQL++. Part Number: 93-SQLPP-0, Release 9.3, [22] P³odzieñ J., Optimization Methods In Object Query Languages. IPIPAN, Warszawa, 2000 (Ph.D. Thesis). [23] Progress Software Corporation, ObjectStore Java API User Guide. ObjectStore, Release 7.1 for all platforms, 2008.

Metody optymalizacji przez indeksowanie dla obiektowego jêzyka zapytañ***

Metody optymalizacji przez indeksowanie dla obiektowego jêzyka zapytañ*** AUTOMATYKA 2009 Tom 13 Zeszyt 3 Tomasz M. Kowalski*, Pawe³ Cebula*, Kamil Kuliberda*, Jacek Wiœlicki*, **, Rados³aw Adamus*, ** Metody optymalizacji przez indeksowanie dla obiektowego jêzyka zapytañ***

Bardziej szczegółowo

Przypomnienie najważniejszych pojęć z baz danych. Co to jest baza danych?

Przypomnienie najważniejszych pojęć z baz danych. Co to jest baza danych? Przypomnienie najważniejszych pojęć z baz danych. Co to jest baza danych? 1 Podstawowe pojęcia: 2 3 4 5 Dana (ang.data) najmniejsza, elementarna jednostka informacji o obiekcie będąca przedmiotem przetwarzania

Bardziej szczegółowo

Chemoinformatyczne bazy danych - Wprowadzenie do technologii baz danych. Andrzej Bąk

Chemoinformatyczne bazy danych - Wprowadzenie do technologii baz danych. Andrzej Bąk Chemoinformatyczne bazy danych - Wprowadzenie do technologii baz danych Andrzej Bąk Wstęp Zarys Co to jest baza danych? Podstawy teorii baz danych Klasyfikacja baz danych Organizacja danych w relacyjnej

Bardziej szczegółowo

Baza danych. Baza danych jest to zbiór danych powi zanych mi dzy sob pewnymi zale no ciami.

Baza danych. Baza danych jest to zbiór danych powi zanych mi dzy sob pewnymi zale no ciami. Access Baza danych Baza danych jest to zbiór danych powi zanych mi dzy sob pewnymi zale no ciami. Baza danych sk ada si z danych oraz programu komputerowego wyspecjalizowanego do gromadzenia i przetwarzania

Bardziej szczegółowo

Czy przedsiêbiorstwo, którym zarz¹dzasz, intensywnie siê rozwija, ma wiele oddzia³ów lub kolejne lokalizacje w planach?

Czy przedsiêbiorstwo, którym zarz¹dzasz, intensywnie siê rozwija, ma wiele oddzia³ów lub kolejne lokalizacje w planach? Czy przedsiêbiorstwo, którym zarz¹dzasz, intensywnie siê rozwija, ma wiele oddzia³ów lub kolejne lokalizacje w planach? Czy masz niedosyt informacji niezbêdnych do tego, by mieæ pe³en komfort w podejmowaniu

Bardziej szczegółowo

Paweł Kurzawa, Delfina Kongo

Paweł Kurzawa, Delfina Kongo Paweł Kurzawa, Delfina Kongo Pierwsze prace nad standaryzacją Obiektowych baz danych zaczęły się w roku 1991. Stworzona została grupa do prac nad standardem, została ona nazwana Object Database Management

Bardziej szczegółowo

PL/SQL. Zaawansowane tematy PL/SQL

PL/SQL. Zaawansowane tematy PL/SQL PL/SQL Zaawansowane tematy PL/SQL Cele Przypomnienie kursorów Przypomnienie procedur i funkcji składowanych Poznanie pakietów składowanych 2 Bazę danych Oracle możemy traktować jakby była złożona z dwóch

Bardziej szczegółowo

Temat : SBQL 1 obiektowy język zapytań.

Temat : SBQL 1 obiektowy język zapytań. Laboratorium Języki i środowiska przetwarzania danych rozproszonych Temat : SBQL 1 obiektowy język zapytań. Historia zmian Data Wersja Autor Opis zmian 23.4.2012 1.0 Tomasz Kowalski Utworzenie dokumentu

Bardziej szczegółowo

Bazy danych II. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Bazy danych II. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski Bazy danych II Andrzej Grzybowski Instytut Fizyki, Uniwersytet Śląski Wykład 11 Zastosowanie PHP do programowania aplikacji baz danych Oracle Wsparcie programowania w PHP baz danych Oracle Oprócz możliwego

Bardziej szczegółowo

Integracja oraz indeksowanie rozproszonych zasobów danych w technologii data grid ****

Integracja oraz indeksowanie rozproszonych zasobów danych w technologii data grid **** AUTOMATYKA 2009 Tom 13 Zeszyt 3 Kamil Kuliberda*, Tomasz M. Kowalski*, Jacek Wiœlicki*, ***, Rados³aw Adamus*, ***, Micha³ Meina** Integracja oraz indeksowanie rozproszonych zasobów danych w technologii

Bardziej szczegółowo

revati.pl Drukarnia internetowa Szybki kontakt z klientem Obs³uga zapytañ ofertowych rozwi¹zania dla poligrafii Na 100% procent wiêcej klientów

revati.pl Drukarnia internetowa Szybki kontakt z klientem Obs³uga zapytañ ofertowych rozwi¹zania dla poligrafii Na 100% procent wiêcej klientów revati.pl rozwi¹zania dla poligrafii Systemy do sprzeda y us³ug poligraficznych w internecie Drukarnia Szybki kontakt z klientem Obs³uga zapytañ ofertowych Na 100% procent wiêcej klientów drukarnia drukarnia

Bardziej szczegółowo

HAŚKO I SOLIŃSKA SPÓŁKA PARTNERSKA ADWOKATÓW ul. Nowa 2a lok. 15, 50-082 Wrocław tel. (71) 330 55 55 fax (71) 345 51 11 e-mail: kancelaria@mhbs.

HAŚKO I SOLIŃSKA SPÓŁKA PARTNERSKA ADWOKATÓW ul. Nowa 2a lok. 15, 50-082 Wrocław tel. (71) 330 55 55 fax (71) 345 51 11 e-mail: kancelaria@mhbs. HAŚKO I SOLIŃSKA SPÓŁKA PARTNERSKA ADWOKATÓW ul. Nowa 2a lok. 15, 50-082 Wrocław tel. (71) 330 55 55 fax (71) 345 51 11 e-mail: kancelaria@mhbs.pl Wrocław, dnia 22.06.2015 r. OPINIA przedmiot data Praktyczne

Bardziej szczegółowo

KATEDRA INFORMATYKI STOSOWANEJ PŁ ANALIZA I PROJEKTOWANIE SYSTEMÓW INFORMATYCZNYCH

KATEDRA INFORMATYKI STOSOWANEJ PŁ ANALIZA I PROJEKTOWANIE SYSTEMÓW INFORMATYCZNYCH KATEDRA INFORMATYKI STOSOWANEJ PŁ ANALIZA I PROJEKTOWANIE SYSTEMÓW INFORMATYCZNYCH Przygotował: mgr inż. Radosław Adamus 1 1 Na podstawie: Subieta K., Język UML, V Konferencja PLOUG, Zakopane, 1999. Wprowadzenie

Bardziej szczegółowo

Wytyczne Województwa Wielkopolskiego

Wytyczne Województwa Wielkopolskiego 5. Wytyczne Województwa Wielkopolskiego Projekt wspó³finansowany przez Uniê Europejsk¹ z Europejskiego Funduszu Rozwoju Regionalnego oraz Bud etu Pañstwa w ramach Wielkopolskiego Regionalnego Programu

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

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Modelowanie hierarchicznych struktur w relacyjnych bazach danych Modelowanie hierarchicznych struktur w relacyjnych bazach danych Wiktor Warmus (wiktorwarmus@gmail.com) Kamil Witecki (kamil@witecki.net.pl) 5 maja 2010 Motywacje Teoria relacyjnych baz danych Do czego

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

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

Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące.

Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące. Programowanie II prowadzący: Adam Dudek Lista nr 8 Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące. Jest to najważniejsza cecha świadcząca o sile programowania

Bardziej szczegółowo

Program szkoleniowy Efektywni50+ Moduł III Standardy wymiany danych

Program szkoleniowy Efektywni50+ Moduł III Standardy wymiany danych Program szkoleniowy Efektywni50+ Moduł III 1 Wprowadzenie do zagadnienia wymiany dokumentów. Lekcja rozpoczynająca moduł poświęcony standardom wymiany danych. Wprowadzenie do zagadnień wymiany danych w

Bardziej szczegółowo

Ładowanie i reorganizacja

Ładowanie i reorganizacja Ładowanie i reorganizacja danych Cele Ładowanie danych za pomocą wstawiania ścieżką bezpośrednią Ładowanie danych do tabel Oracle za pomocą ścieżki konwencjonalnej oraz bezpośredniej SQL*Loader Reorganizacja

Bardziej szczegółowo

W dobie postępującej digitalizacji zasobów oraz zwiększającej się liczby dostawców i wydawców

W dobie postępującej digitalizacji zasobów oraz zwiększającej się liczby dostawców i wydawców W dobie postępującej digitalizacji zasobów oraz zwiększającej się liczby dostawców i wydawców oferujących dostępy do tytułów elektronicznych, zarówno bibliotekarze jak i użytkownicy coraz większą ilość

Bardziej szczegółowo

Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych

Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych Spis treści 1. Wstęp... 9 1.1. Inżynieria oprogramowania jako proces... 10 1.1.1. Algorytm... 11 1.2. Programowanie w językach wysokiego poziomu... 11 1.3. Obiektowe podejście do programowania... 12 1.3.1.

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

Rozwiązywanie nazw w sieci. Identyfikowanie komputerów w sieci

Rozwiązywanie nazw w sieci. Identyfikowanie komputerów w sieci Rozwiązywanie nazw w sieci Identyfikowanie komputerów w sieci Protokół TCP/IP identyfikuje komputery źródłowe i docelowe poprzez ich adresy IP. Jednakże użytkownicy łatwiej zapamiętają słowa niż numery.

Bardziej szczegółowo

Wpisany przez Piotr Klimek Wtorek, 11 Sierpień 2009 22:36 - Zmieniony Poniedziałek, 03 Czerwiec 2013 03:55

Wpisany przez Piotr Klimek Wtorek, 11 Sierpień 2009 22:36 - Zmieniony Poniedziałek, 03 Czerwiec 2013 03:55 Na początku PHP było przystosowane do programowania proceduralnego. Możliwości obiektowe wprowadzono z językiem C++ i Smalltalk. Obecnie nowy sposób programowania występuje w większości językach wysokopoziomowych

Bardziej szczegółowo

Obliczenia arytmetyczne. Konkatenacja pól. Aliasy kolumn. Aliasy tabel. Co dalej? Rozdział 4. Korzystanie z funkcji. Zastosowanie funkcji

Obliczenia arytmetyczne. Konkatenacja pól. Aliasy kolumn. Aliasy tabel. Co dalej? Rozdział 4. Korzystanie z funkcji. Zastosowanie funkcji O autorze Wprowadzenie Rozdział 1. Relacyjne bazy danych i SQL Język i logika Definicja SQL Microsoft SQL Server, Oracle i MySQL Inne bazy danych Relacyjne bazy danych Klucze główne i obce Typy danych

Bardziej szczegółowo

System zarządzania bazą danych (SZBD) Proces przechodzenia od świata rzeczywistego do jego informacyjnej reprezentacji w komputerze nazywać będziemy

System zarządzania bazą danych (SZBD) Proces przechodzenia od świata rzeczywistego do jego informacyjnej reprezentacji w komputerze nazywać będziemy System zarządzania bazą danych (SZBD) Proces przechodzenia od świata rzeczywistego do jego informacyjnej reprezentacji w komputerze nazywać będziemy modelowaniem, a pewien dobrze zdefiniowany sposób jego

Bardziej szczegółowo

SIECI KOMPUTEROWE I BAZY DANYCH

SIECI KOMPUTEROWE I BAZY DANYCH KATEDRA MECHANIKI I ROBOTYKI STOSOWANEJ WYDZIAŁ BUDOWY MASZYN I LOTNICTWA, POLITECHNIKA RZESZOWSKA SIECI KOMPUTEROWE I BAZY DANYCH Laboratorium DB2: TEMAT: Relacyjne bazy danych Cz. I - III Cel laboratorium

Bardziej szczegółowo

Projektowanie bazy danych

Projektowanie bazy danych Projektowanie bazy danych Pierwszą fazą tworzenia projektu bazy danych jest postawienie definicji celu, założeo wstępnych i określenie podstawowych funkcji aplikacji. Każda baza danych jest projektowana

Bardziej szczegółowo

InsERT GT Własne COM 1.0

InsERT GT Własne COM 1.0 InsERT GT Własne COM 1.0 Autor: Jarosław Kolasa, InsERT Wstęp... 2 Dołączanie zestawień własnych do systemu InsERT GT... 2 Sposób współpracy rozszerzeń z systemem InsERT GT... 2 Rozszerzenia standardowe

Bardziej szczegółowo

Zarządzanie projektami. wykład 1 dr inż. Agata Klaus-Rosińska

Zarządzanie projektami. wykład 1 dr inż. Agata Klaus-Rosińska Zarządzanie projektami wykład 1 dr inż. Agata Klaus-Rosińska 1 DEFINICJA PROJEKTU Zbiór działań podejmowanych dla zrealizowania określonego celu i uzyskania konkretnego, wymiernego rezultatu produkt projektu

Bardziej szczegółowo

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla uŝytkowników modułu wyszukiwania danych Warszawa 2007

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla uŝytkowników modułu wyszukiwania danych Warszawa 2007 GEO-SYSTEM Sp. z o.o. 02-732 Warszawa, ul. Podbipięty 34 m. 7, tel./fax 847-35-80, 853-31-15 http:\\www.geo-system.com.pl e-mail:geo-system@geo-system.com.pl GEO-RCiWN Rejestr Cen i Wartości Nieruchomości

Bardziej szczegółowo

systemy informatyczne SIMPLE.ERP Bud etowanie dla Jednostek Administracji Publicznej

systemy informatyczne SIMPLE.ERP Bud etowanie dla Jednostek Administracji Publicznej SIMPLE systemy informatyczne SIMPLE.ERP Bud etowanie dla Jednostek Administracji Publicznej SIMPLE.ERP Bud etowanie dla Jednostek Administracji Publicznej to nowoczesny system informatyczny kompleksowo

Bardziej szczegółowo

Rozdział 6. Pakowanie plecaka. 6.1 Postawienie problemu

Rozdział 6. Pakowanie plecaka. 6.1 Postawienie problemu Rozdział 6 Pakowanie plecaka 6.1 Postawienie problemu Jak zauważyliśmy, szyfry oparte na rachunku macierzowym nie są przerażająco trudne do złamania. Zdecydowanie trudniejszy jest kryptosystem oparty na

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

POLSKA IZBA TURYSTYKI POLISH CHAMBER OF TOURISM

POLSKA IZBA TURYSTYKI POLISH CHAMBER OF TOURISM Załącznik nr 1 do Uchwały Prezydium Polskiej Izby Turystyki nr 3/2015/P/E Regulamin powoływania i pracy Egzaminatorów biorących udział w certyfikacji kandydatów na pilotów wycieczek I. Postanowienia ogólne

Bardziej szczegółowo

INSTRUKCJA SERWISOWA. Wprowadzenie nowego filtra paliwa PN 874060 w silnikach ROTAX typ 912 is oraz 912 is Sport OPCJONALNY

INSTRUKCJA SERWISOWA. Wprowadzenie nowego filtra paliwa PN 874060 w silnikach ROTAX typ 912 is oraz 912 is Sport OPCJONALNY Wprowadzenie nowego filtra paliwa PN 874060 w silnikach ROTAX typ 912 is oraz 912 is Sport ATA System: Układ paliwowy OPCJONALNY 1) Zastosowanie Aby osiągnąć zadowalające efekty, procedury zawarte w niniejszym

Bardziej szczegółowo

Opis modułu analitycznego do śledzenia rotacji towaru oraz planowania dostaw dla programu WF-Mag dla Windows.

Opis modułu analitycznego do śledzenia rotacji towaru oraz planowania dostaw dla programu WF-Mag dla Windows. Opis modułu analitycznego do śledzenia rotacji towaru oraz planowania dostaw dla programu WF-Mag dla Windows. Zadaniem modułu jest wspomaganie zarządzania magazynem wg. algorytmu just in time, czyli planowanie

Bardziej szczegółowo

Stronicowanie na ¹danie

Stronicowanie na ¹danie Pamiêæ wirtualna Umo liwia wykonywanie procesów, pomimo e nie s¹ one w ca³oœci przechowywane w pamiêci operacyjnej Logiczna przestrzeñ adresowa mo e byæ du o wiêksza od fizycznej przestrzeni adresowej

Bardziej szczegółowo

API transakcyjne BitMarket.pl

API transakcyjne BitMarket.pl API transakcyjne BitMarket.pl Wersja 20140314 1. Sposób łączenia się z API... 2 1.1. Klucze API... 2 1.2. Podpisywanie wiadomości... 2 1.3. Parametr tonce... 2 1.4. Odpowiedzi serwera... 3 1.5. Przykładowy

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

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

Excel w logistyce - czyli jak skrócić czas przygotowywania danych i podnieść efektywność analiz logistycznych

Excel w logistyce - czyli jak skrócić czas przygotowywania danych i podnieść efektywność analiz logistycznych Excel w logistyce - czyli jak skrócić czas przygotowywania danych i podnieść efektywność analiz logistycznych Terminy szkolenia 25-26 sierpień 2016r., Gdańsk - Mercure Gdańsk Posejdon**** 20-21 październik

Bardziej szczegółowo

Baza danych. Modele danych

Baza danych. Modele danych Rola baz danych Systemy informatyczne stosowane w obsłudze działalności gospodarczej pełnią funkcję polegającą na gromadzeniu i przetwarzaniu danych. Typowe operacje wykonywane na danych w systemach ewidencyjno-sprawozdawczych

Bardziej szczegółowo

Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych ul. Koszykowa 75, 00-662 Warszawa

Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych ul. Koszykowa 75, 00-662 Warszawa Zamawiający: Wydział Matematyki i Nauk Informacyjnych Politechniki Warszawskiej 00-662 Warszawa, ul. Koszykowa 75 Przedmiot zamówienia: Produkcja Interaktywnej gry matematycznej Nr postępowania: WMiNI-39/44/AM/13

Bardziej szczegółowo

Problemy w realizacji umów o dofinansowanie SPO WKP 2.3, 2.2.1, Dzia anie 4.4 PO IG

Problemy w realizacji umów o dofinansowanie SPO WKP 2.3, 2.2.1, Dzia anie 4.4 PO IG 2009 Problemy w realizacji umów o dofinansowanie SPO WKP 2.3, 2.2.1, Dzia anie 4.4 PO IG Jakub Moskal Warszawa, 30 czerwca 2009 r. Kontrola realizacji wska ników produktu Wska niki produktu musz zosta

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

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

Efektywna strategia sprzedaży

Efektywna strategia sprzedaży Efektywna strategia sprzedaży F irmy wciąż poszukują metod budowania przewagi rynkowej. Jednym z kluczowych obszarów takiej przewagi jest efektywne zarządzanie siłami sprzedaży. Jak pokazują wyniki badania

Bardziej szczegółowo

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych Projektowanie bazy danych Jarosław Kuchta Projektowanie Aplikacji Internetowych Możliwości projektowe Relacyjna baza danych Obiektowa baza danych Relacyjno-obiektowa baza danych Inne rozwiązanie (np. XML)

Bardziej szczegółowo

U M O W A. zwanym w dalszej części umowy Wykonawcą

U M O W A. zwanym w dalszej części umowy Wykonawcą U M O W A zawarta w dniu pomiędzy: Miejskim Centrum Medycznym Śródmieście sp. z o.o. z siedzibą w Łodzi przy ul. Próchnika 11 reprezentowaną przez: zwanym dalej Zamawiający a zwanym w dalszej części umowy

Bardziej szczegółowo

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu: http://aragorn.pb.bialystok.pl/~gkret

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu: http://aragorn.pb.bialystok.pl/~gkret Ogólny plan przedmiotu BAZY DANYCH Wykład 1: Wprowadzenie do baz danych Małgorzata Krętowska Politechnika Białostocka Wydział Informatyki Wykład : Wprowadzenie do baz danych Normalizacja Diagramy związków

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

OŚWIETLENIE PRZESZKLONEJ KLATKI SCHODOWEJ

OŚWIETLENIE PRZESZKLONEJ KLATKI SCHODOWEJ OŚWIETLENIE PRZESZKLONEJ KLATKI SCHODOWEJ Przykład aplikacji: rys. 1 rys. 2 rys. 3 rys. 4 W tym przypadku do sterowania oświetleniem wykorzystano przekaźniki fi rmy Finder: wyłącznik zmierzchowy 11.01.8.230.0000

Bardziej szczegółowo

Steelmate - System wspomagaj¹cy parkowanie z oœmioma czujnikami

Steelmate - System wspomagaj¹cy parkowanie z oœmioma czujnikami Steelmate - System wspomagaj¹cy parkowanie z oœmioma czujnikami Cechy: Kolorowy i intuicyjny wyœwietlacz LCD Czujnik wysokiej jakoœci Inteligentne rozpoznawanie przeszkód Przedni i tylni system wykrywania

Bardziej szczegółowo

Bazy danych. Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 9/15

Bazy danych. Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 9/15 Bazy danych Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 9/15 Przechowywanie danych Wykorzystanie systemu plików, dostępu do plików za pośrednictwem systemu operacyjnego

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

Bardziej szczegółowo

Motywuj świadomie. Przez kompetencje.

Motywuj świadomie. Przez kompetencje. styczeń 2015 Motywuj świadomie. Przez kompetencje. Jak wykorzystać gamifikację i analitykę HR do lepszego zarządzania zasobami ludzkimi w organizacji? 2 Jak skutecznie motywować? Pracownik, który nie ma

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

1. Od kiedy i gdzie należy złożyć wniosek?

1. Od kiedy i gdzie należy złożyć wniosek? 1. Od kiedy i gdzie należy złożyć wniosek? Wniosek o ustalenie prawa do świadczenia wychowawczego będzie można składać w Miejskim Ośrodku Pomocy Społecznej w Puławach. Wnioski będą przyjmowane od dnia

Bardziej szczegółowo

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38 Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem zajęcia 1 dr Jakub Boratyński pok. A38 Program zajęć Bazy danych jako podstawowy element systemów informatycznych wykorzystywanych

Bardziej szczegółowo

Lublin, 19.07.2013. Zapytanie ofertowe

Lublin, 19.07.2013. Zapytanie ofertowe Lublin, 19.07.2013 Zapytanie ofertowe na wyłonienie wykonawcy/dostawcy 1. Wartości niematerialne i prawne a) System zarządzania magazynem WMS Asseco SAFO, 2. usług informatycznych i technicznych związanych

Bardziej szczegółowo

Program wykładu. zastosowanie w aplikacjach i PL/SQL;

Program wykładu. zastosowanie w aplikacjach i PL/SQL; Program wykładu 1 Model relacyjny (10 godz.): podstawowe pojęcia, języki zapytań (algebra relacji, relacyjny rachunek krotek, relacyjny rachunek dziedzin), zależności funkcyjne i postaci normalne (BCNF,

Bardziej szczegółowo

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl Bazy danych Podstawy języka SQL Dr inż. Paweł Kasprowski pawel@kasprowski.pl Plan wykładu Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność danych Współbieżność

Bardziej szczegółowo

Projektowanie struktury danych

Projektowanie struktury danych Jarosław aw Kuchta Rozproszonych Projektowanie qhta@eti.pg.gda.pl J.Kuchta@eti.pg.gda.pl Zagadnienia Sposoby zapisu danych zewnętrznych Odwzorowanie dziedziny problemu w dziedzinę danych Normalizacja relacyjnej

Bardziej szczegółowo

ER RATA do ksi¹ ki "Symfonia C++ Stan dard". wydanie 3. (Zawieraj¹ca tak e czysto kosmetyczne poprawki) Sporz¹dzona 4 paÿdziernika 2009.

ER RATA do ksi¹ ki Symfonia C++ Stan dard. wydanie 3. (Zawieraj¹ca tak e czysto kosmetyczne poprawki) Sporz¹dzona 4 paÿdziernika 2009. ER RATA do ksi¹ ki "Symfonia C++ Stan dard". wydanie 3. (Zawieraj¹ca tak e czysto kosmetyczne poprawki) Sporz¹dzona 4 paÿdziernika 2009. Strona wiersz G - od góry D - od do³u Jest Powinno byæ 1 6 D nadzieje

Bardziej szczegółowo

ABONENCKA CENTRALA TELEFONICZNA SIGMA. Instalacja sterownika USB

ABONENCKA CENTRALA TELEFONICZNA SIGMA. Instalacja sterownika USB ABONENCKA CENTRALA TELEFONICZNA SIGMA Instalacja sterownika USB 1 SIGMA PLATAN Sp. z o.o. 81-855 SOPOT, ul. Platanowa 2 tel. (0-58) 555-88-00, fax (0-58) 555-88-01 www.platan.pl e-mail: platan@platan.pl

Bardziej szczegółowo

KOMISJA NADZORU FINANSOWEGO WNIOSEK O ZATWIERDZENIE ANEKSU NR 8 DO PROSPEKTU EMISYJNEGO

KOMISJA NADZORU FINANSOWEGO WNIOSEK O ZATWIERDZENIE ANEKSU NR 8 DO PROSPEKTU EMISYJNEGO Aneks nr 8 do Prospektu Emisyjnego Cyfrowy Polsat S.A. KOMISJA NADZORU FINANSOWEGO PLAC POWSTAÑCÓW WARSZAWY 1, 00-950 WARSZAWA WNIOSEK O ZATWIERDZENIE ANEKSU NR 8 DO PROSPEKTU EMISYJNEGO zatwierdzonego

Bardziej szczegółowo

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Podstawy języka SQL. SQL Structured Query Languagestrukturalny Podstawy języka SQL SQL Structured Query Languagestrukturalny język zapytań DDL Język definicji danych (np. tworzenie tabel) DML Język manipulacji danych (np. tworzenie zapytań) DCL Język kontroli danych

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

Programowanie w Ruby

Programowanie w Ruby Programowanie w Ruby Wykład 11 Marcin Młotkowski 19 grudnia 2012 Plan wykładu Modele danych i bazy danych Modele danych Migracje Bazy danych w Railsach Rusztowania Walidacja modeli Modele danych Definicje

Bardziej szczegółowo

Tworzenie wielopoziomowych konfiguracji sieci stanowisk asix z separacją segmentów sieci - funkcja POMOST. Pomoc techniczna

Tworzenie wielopoziomowych konfiguracji sieci stanowisk asix z separacją segmentów sieci - funkcja POMOST. Pomoc techniczna NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI Tworzenie wielopoziomowych konfiguracji sieci stanowisk asix z separacją segmentów sieci - funkcja POMOST Pomoc techniczna Dok. Nr PLP0009 Wersja: 24-11-2005

Bardziej szczegółowo

TWORZENIE I NADZOROWANIE DOKUMENTÓW SYSTEMOWYCH (PROCEDUR, KSIĘGI JAKOŚCI I KART USŁUG) SJ.0142.1.2013 Data: 23.10.

TWORZENIE I NADZOROWANIE DOKUMENTÓW SYSTEMOWYCH (PROCEDUR, KSIĘGI JAKOŚCI I KART USŁUG) SJ.0142.1.2013 Data: 23.10. SJ.0142.1.2013 Data: 23.10.2013 Strona 1 z 5 1. Cel i zakres 1.1. Cel Celem niniejszej procedury jest zapewnienie, że dokumentacja Systemu Zarządzania Jakością stosowana w Starostwie Powiatowym w Wałbrzychu

Bardziej szczegółowo

Rudniki, dnia 10.02.2016 r. Zamawiający: PPHU Drewnostyl Zenon Błaszak Rudniki 5 64-330 Opalenica NIP 788-000-22-12 ZAPYTANIE OFERTOWE

Rudniki, dnia 10.02.2016 r. Zamawiający: PPHU Drewnostyl Zenon Błaszak Rudniki 5 64-330 Opalenica NIP 788-000-22-12 ZAPYTANIE OFERTOWE Zamawiający: Rudniki, dnia 10.02.2016 r. PPHU Drewnostyl Zenon Błaszak Rudniki 5 64-330 Opalenica NIP 788-000-22-12 ZAPYTANIE OFERTOWE W związku z planowaną realizacją projektu pn. Rozwój działalności

Bardziej szczegółowo

Analiza systemowa. Andrzej Łachwa andrzej.lachwa@uj.edu.pl. Bazy danych 12+/15

Analiza systemowa. Andrzej Łachwa andrzej.lachwa@uj.edu.pl. Bazy danych 12+/15 Analiza systemowa Andrzej Łachwa andrzej.lachwa@uj.edu.pl Bazy danych 12+/15 Po wykonaniu modelu danych przechodzimy do budowy modeli procesów. Narzędzia modelowania wzajemnie się uzupełniają, a każde

Bardziej szczegółowo

3. Wydatki na wynagrodzenia wraz z pochodnymi oznaczają wydatki ponoszone przez pracodawcę i przez pracownika.

3. Wydatki na wynagrodzenia wraz z pochodnymi oznaczają wydatki ponoszone przez pracodawcę i przez pracownika. Ministerstwo Pracy i Polityki Społecznej Departament Polityki Rodzinnej Wyjaśnienia dotyczące wypełniania sprawozdań rzeczowo-finansowych z wykonywania zadań z zakresu wspierania rodziny i systemu pieczy

Bardziej szczegółowo

Praca na wielu bazach danych część 2. (Wersja 8.1)

Praca na wielu bazach danych część 2. (Wersja 8.1) Praca na wielu bazach danych część 2 (Wersja 8.1) 1 Spis treści 1 Analizy baz danych... 3 1.1 Lista analityczna i okno szczegółów podstawowe informacje dla każdej bazy... 3 1.2 Raporty wykonywane jako

Bardziej szczegółowo

Bazy danych - wykład wstępny

Bazy danych - wykład wstępny Bazy danych - wykład wstępny Wykład: baza danych, modele, hierarchiczny, sieciowy, relacyjny, obiektowy, schemat logiczny, tabela, kwerenda, SQL, rekord, krotka, pole, atrybut, klucz podstawowy, relacja,

Bardziej szczegółowo

Procedura weryfikacji badania czasu przebiegu 1 paczek pocztowych

Procedura weryfikacji badania czasu przebiegu 1 paczek pocztowych Procedura weryfikacji badania czasu przebiegu 1 paczek pocztowych Warszawa 2012 (nowelizacja 2014) 1 zmiana nazwy zgodnie z terminologią zawartą w ustawie Prawo pocztowe Jednostka zlecająca: Urząd Komunikacji

Bardziej szczegółowo

Automatyzacja pakowania

Automatyzacja pakowania Automatyzacja pakowania Maszyny pakuj¹ce do worków otwartych Pe³na oferta naszej firmy dostêpna jest na stronie internetowej www.wikpol.com.pl Maszyny pakuj¹ce do worków otwartych: EWN-SO do pakowania

Bardziej szczegółowo

Bazy danych. Dr inż. Paweł Kasprowski

Bazy danych. Dr inż. Paweł Kasprowski Plan wykładu Bazy danych Podstawy relacyjnego modelu danych Dr inż. Paweł Kasprowski pawel@kasprowski.pl Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność

Bardziej szczegółowo

Wyznaczanie charakterystyki widmowej kolorów z wykorzystaniem zapisu liczb o dowolnej precyzji

Wyznaczanie charakterystyki widmowej kolorów z wykorzystaniem zapisu liczb o dowolnej precyzji AUTOMATYKA 2011 Tom 15 Zeszyt 3 Maciej Nowak*, Grzegorz Nowak* Wyznaczanie charakterystyki widmowej kolorów z wykorzystaniem zapisu liczb o dowolnej precyzji 1. Wprowadzenie 1.1. Kolory Zmys³ wzroku stanowi

Bardziej szczegółowo

Baza danych. Baza danych to:

Baza danych. Baza danych to: Baza danych Baza danych to: zbiór danych o określonej strukturze, zapisany na zewnętrznym nośniku (najczęściej dysku twardym komputera), mogący zaspokoić potrzeby wielu użytkowników korzystających z niego

Bardziej szczegółowo

PROGRAM NR 2(4)/T/2014 WSPIERANIE AKTYWNOŚCI MIĘDZYNARODOWEJ

PROGRAM NR 2(4)/T/2014 WSPIERANIE AKTYWNOŚCI MIĘDZYNARODOWEJ PROGRAM NR 2(4)/T/2014 WSPIERANIE AKTYWNOŚCI MIĘDZYNARODOWEJ IMiT 2014 1 1. CELE PROGRAMU Program ma na celu podnoszenie kwalifikacji zawodowych artystów tańca oraz doskonalenie kadry pedagogicznej i badawczo-naukowej

Bardziej szczegółowo

Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych. Paweł Paduch paduch@tu.kielce.pl

Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych. Paweł Paduch paduch@tu.kielce.pl Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych Paweł Paduch paduch@tu.kielce.pl 06-04-2013 Rozdział 1 Wstęp Na dzisiejszych zajęciach zajmiemy się projektem bazy danych.

Bardziej szczegółowo

I. INFORMACJA O KOMITECIE AUDYTU. Podstawa prawna dzialania Komitetu Audytu

I. INFORMACJA O KOMITECIE AUDYTU. Podstawa prawna dzialania Komitetu Audytu w Przewodniczący Jan Robert Halina Podsekretarz Sprawozdanie z realizacji zadań Komitetu Audytu dla dzialów administracja publiczna, informatyzacja, łączność, wyznania religijne oraz mniejszości narodowej

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

Rodzaje i metody kalkulacji

Rodzaje i metody kalkulacji Opracowały: mgr Lilla Nawrocka - nauczycielka przedmiotów ekonomicznych w Zespole Szkół Rolniczych Centrum Kształcenia Praktycznego w Miętnem mgr Maria Rybacka - nauczycielka przedmiotów ekonomicznych

Bardziej szczegółowo

Instalacja. Zawartość. Wyszukiwarka. Instalacja... 1. Konfiguracja... 2. Uruchomienie i praca z raportem... 4. Metody wyszukiwania...

Instalacja. Zawartość. Wyszukiwarka. Instalacja... 1. Konfiguracja... 2. Uruchomienie i praca z raportem... 4. Metody wyszukiwania... Zawartość Instalacja... 1 Konfiguracja... 2 Uruchomienie i praca z raportem... 4 Metody wyszukiwania... 6 Prezentacja wyników... 7 Wycenianie... 9 Wstęp Narzędzie ściśle współpracujące z raportem: Moduł

Bardziej szczegółowo

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000 Bazy Danych LITERATURA C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000 J. D. Ullman, Systemy baz danych, WNT - W-wa, 1998 J. D. Ullman, J. Widom, Podstawowy

Bardziej szczegółowo

Oferta. Przedmiot: System odczytu, transmisji i archiwizacji danych z ciepłomierzy i wodomierzy.

Oferta. Przedmiot: System odczytu, transmisji i archiwizacji danych z ciepłomierzy i wodomierzy. Oferent: FlowService Adresat: Oferta Przedmiot: System odczytu, transmisji i archiwizacji danych z ciepłomierzy i wodomierzy. Warszawa, lipiec 2006 Wstęp Przedmiotem niniejszej oferty jest wdrożenie systemu

Bardziej szczegółowo

Zarządzanie kosztami w dziale utrzymania ruchu

Zarządzanie kosztami w dziale utrzymania ruchu Zarządzanie kosztami w dziale utrzymania ruchu Cele szkolenia Zapotrzebowanie na wykwalifikowanych menedżerów zarządzania procesami i kosztami utrzymania ruchu potęguje się wraz ze wzrostem postrzegania

Bardziej szczegółowo

ANALOGOWE UKŁADY SCALONE

ANALOGOWE UKŁADY SCALONE ANALOGOWE UKŁADY SCALONE Ćwiczenie to ma na celu zapoznanie z przedstawicielami najważniejszych typów analogowych układów scalonych. Będą to: wzmacniacz operacyjny µa 741, obecnie chyba najbardziej rozpowszechniony

Bardziej szczegółowo

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko Podstawowe pojęcia dotyczące relacyjnych baz danych mgr inż. Krzysztof Szałajko Czym jest baza danych? Co rozumiemy przez dane? Czym jest system zarządzania bazą danych? 2 / 25 Baza danych Baza danych

Bardziej szczegółowo

Regulamin organizacji przetwarzania i ochrony danych osobowych w Powiatowym Centrum Kształcenia Zawodowego im. Komisji Edukacji Narodowej w Jaworze

Regulamin organizacji przetwarzania i ochrony danych osobowych w Powiatowym Centrum Kształcenia Zawodowego im. Komisji Edukacji Narodowej w Jaworze Załącznik nr 1 do zarządzenia nr 9/11/12 dyrektora PCKZ w Jaworze z dnia 30 marca 2012 r. Regulamin organizacji przetwarzania i ochrony danych osobowych w Powiatowym Centrum Kształcenia Zawodowego im.

Bardziej szczegółowo

Symfonia Produkcja Instrukcja instalacji. Wersja 2013

Symfonia Produkcja Instrukcja instalacji. Wersja 2013 Symfonia Produkcja Instrukcja instalacji Wersja 2013 Windows jest znakiem towarowym firmy Microsoft Corporation. Adobe, Acrobat, Acrobat Reader, Acrobat Distiller są zastrzeżonymi znakami towarowymi firmy

Bardziej szczegółowo

Nadzwyczajne Walne Zgromadzenie Art New media S.A. uchwala, co następuje:

Nadzwyczajne Walne Zgromadzenie Art New media S.A. uchwala, co następuje: y uchwał Spółki Art New media S.A. zwołanego w Warszawie, przy ulicy Wilczej 28 lok. 6 na dzień 22 grudnia 2011 roku o godzinie 11.00 w sprawie wyboru Przewodniczącego Zgromadzenia Nadzwyczajne Walne Zgromadzenie

Bardziej szczegółowo