Obiektowe bazy danych

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

Download "Obiektowe bazy danych"

Transkrypt

1 Obiektowe bazy danych Obiektowy model danych Wyk ad prowadzi: Tomasz Koszlajda Plan wyk adu Przes anki dla nowej generacji systemów baz danych Podstawowe elementy obiektowego modelu danych Konstruktory z o onych typów danych Abstrakcyjne typy danych Dziedziczenie Zwi zki mi dzy danymi Hierarchie kolekcji obiektów Polimorfizm i pó ne wi zanie To samo danych Trwa o danych

2 Nowe dziedziny zastosowa baz danych Systemy wspomagania projektowania CAD/CAM Systemy informacji przestrzennej Multimedialne bazy danych Charakterystyka nowych dziedzin zastosowa Z o one, hierarchiczne struktury danych Z o one behawioralne w asno ci danych Nowe modele przetwarzania: ad hoc dynamiczna struktura transakcji, nawigacja vs. selekcja, kooperuj ce i intensywnie przetwarzaj ce dane transakcje Nowe technologie budowy aplikacji J zyki obiektowe Przyk ad z o onej rzeczywisto ci Obraz {persistence} #utworzony : Date #elementy[1..*] : Figura +dodaj(figura) +utwórzkopi () :Obraz [1..*] [0..*] utworzy a [1..*] Osoba {persistence} +imi : String +nazwisko : String +adres : Adres jest_pierwowzorem [0..1] Adres +miasto : String +ulica : String +NrDomu : Integer Odcinek #Wierzcho ki[2] : Punkt +D ugo () : Float +Przesu (Float, Float) Wielok t #Kraw dzie[3..*] : Odcinek +Powierzchnia() : Float +Przesu (Float, Float) Punkt +X : Float +Y : Float +przesu (Float,Float) Figura {abstract} +typ : String +Powierzchnia() : Float +Przesu (Float, Float) Ko o # rodek : Punkt #promie : Float +Powierzchnia() : Float +Przesu (Float, Float)

3 Ograniczenia relacyjnego modelu danych P askie jednowymiarowe struktury danych Identyfikacja danych jedynie za pomoc ich warto ci Zamkni ty zbiór prostych i predefiniowanych typów danych Brak poj cia zwi zków mi dzy danymi Brak hierarchii typów danych Figury(id_f PK, typ, powierzchnia) Odcinki(id_odc PK FK(Figury), typ, x1, y1, x2, y2) Wielok ty(id_w PK FK(Figury), typ) Kraw dzie(id_k PK, x1, y1, x2, y2, id_w FK(Wielok ty)) Ko a(id_k PK FK(Figury), typ, x, y, promie ) Obrazy(id_ob PK, utworzony) Osoby(id_os PK, imi, nazwisko, miasto, ulica, numer_domu) Autorstwo(id_ob FK(Obrazy), id_os FK(Osoby)) Modyfikacje(wzorzec FK(Obrazy), modyfikacja FK(Obrazy)) Przes anki nowej generacji modelu danych Potrzeba bogatszego modelu danych Rozszerzalny model danych umo liwiaj cy cis e dopasowanie dla dowolnych dziedzin zastosowa ci lejsza integracja z obiektowymi aplikacjami bazy danych Aplikacja Aplikacja Semantyka wiata rzeczywistego Prosty model danych Silny model danych Semantyka wiata rzeczywistego

4 Podstawowe elementy obiektowego modelu danych Obiekt: stan i funkcjonalno Cechy obiektów: atrybuty i zwi zki Funkcjonalno obiektu: metody To samo obiektu Hermetyczno obiektów Klasa: typ danych i modu programowy Dziedziczenie: wspó dzielenie implementacji i relacja podtypu Przeci anie i dynamiczne wi zanie funkcjonalno ci obiektów Drogi rozwoju obiektowych baz danych Obiektowe j zyki programowania Relacyjne bazy danych Obiektowe bazy danych ODMG Obiektowe interfejsy O/RM Obiektowo-relacyjne bazy danych SQL3/99 Obiektowe Obiektowe Relacyjne Relacyjne Obiektowe

5 Architektury obiektowych i obiektowo relacyjnych systemów baz danych Struktury danych aplikacji 4GL kopiowanie i konwersja danych brak konwersji danych OQL SQL Obiektoworelacyjne bazy danych Struktury danych bazy danych Obiektowe bazy danych Baza danych jako zbiór kolekcji obiektów Stan obiektowej bazy danych jest zbiorem kolekcji trwa ych i rozró nialnych obiektów. Schemat obiektowej bazy danych jest zbiorem klas, które definiuj struktur i funkcjonalno obiektów. W obiektowych bazach danych rozró nia si poj cie klasy jako definicji w asno ci obiektów od poj cia rozszerzenia klasy b d cego zbiorem trwa ych obiektów. class Figura { // nazwa klasy jako typu (extent Figury) // nazwa rozszerzenia klasy jako // zbioru wyst pie

6 Abstrakcyjne typy danych Mo liwo definiowania nowych typów danych o dowolnej z o ono ci i funkcjonalno ci. Typy danych u ytkownika mog by podstaw definicji pojedynczych atrybutów klas jak równie ca ych klas. class Punkt { attribute Float X, Y; void przesu (in Float x, in Float y);}; class Odcinek { attribute Punkt W1, W2; void przesu (in Float a, in Float b) { W1.przesu (a, b); W2.przesu (a, b); }}; Punkt +X : Float +Y : Float +przesu (Float,Float) Odcinek {persistence} #Wierzcho ki[2]:punkt +przesu (Float,Float) Dziedziczenie Klasy mog by specjalizowane przez mechanizm dziedziczenia. Klasa pochodna dziedziczy funkcjonalno i implementacj klasy bazowej. W klasie pochodnej mo na doda now funkcjonalno lub redefiniowa funkcjonalno odziedziczon. Figura class Wielok t extends Figura // dziedziczenie {...}; class Wielok t : Figura // relacja podtypu {...}; Relacja podtypu Dziedziczenie {abstract, persistence} +Powierzchnia() : Float +Przesu (Float, Float) Wielok t {persistence} #Kraw dzie[3..*] : Odcinek +Powierzchnia() : Float +Przesu (Float, Float)

7 Z o one struktury danych Mo liwo naturalnego modelowania atrybutów z o onych i wielowarto ciowych. Przyk ad zastosowania konstruktorów typów z o onych w j zyku ODL. class Wielok t { struct Punkt { //typ Float X, Y; } struct Odcinek { //typ Punkt Wierzcho ek_1; Punkt Wierzcho ek_2;} //atrybut attribute set<odcinek> kraw dzie;}; Punkt +X : Float +Y : Float Odcinek #Wierzcho ki[2] : Punkt Wielok t {persistence} #Kraw dzie[3..*] : Odcinek Zwi zki miedzy danymi Mo liwo definiowania i sk adowania w bazie danych zwi zków mi dzy danymi. Osoba {persistence} +imi : String +nazwisko : String +adres : Adres jest_autorem [1..*] [1..*] Obraz {persistence} #utworzony : Date #elementy[1..*] : Figura +dodaj(figura) +utwórzkopi () class Osoba { relationship set<obraz> jest_autorem inverse Obraz::jest_utworzony_przez;...} typ zwi zku nazwa zwi zku zwi zek odwrotny

8 Hierarchia kolekcji obiektów Zwi zek dziedziczenia mi dzy klasami, których rozszerzenia s sk adowane w bazie danych implementuje zwi zek zawierania si podzbiorów obiektów. Rozszerzenie klasy pochodnej jest podzbiorem rozszerzenia klasy bazowej. class Figura { (extent Figury)...}; class Wielok t extends Figura{ (extent Wielok ty)...}; Wielok ty Figury Figura {persistence} #typ : String +Powierzchnia() : Float +Przesu (Float, Float) Wielok t {persistence} #Kraw dzie[3..*] : Odcinek +Powierzchnia() : Float +Przesu (Float, Float) Polimorfizm i pó ne wi zanie Relacja podtypu cz ca klasy i interfejsy umo liwia podstawienia polimorficzne polegaj ce na podstawieniu pod zmienn typu klasy bazowej obiektu, który jest wyst pieniem klasy pochodnej. Podstawienia polimorficzne umo liwiaj dynamiczne wi zanie nazw metod. zmienna polimorficzna podstawienie polimorficzne Figura f = new Ko o(10,6,5); Float p = f.powierzchnia(); Ko o::powierzchnia( ) f = new Wielok t(p1,p2,p3); wi zanie dynamiczne p = f.powierzchnia(); Wielok t::powierzchnia( )

9 To samo danych Obiektowe j zyki programowania: identyfikacja danych przez symboliczn nazw i fizyczny adres w pami ci operacyjnej. class Pracownik {...}; PAO Pracownik Nowak("Jan","Nowak"); 0c78:89ad Nowak.nazwisko = "Kowalski"; To samo danych Model relacyjny: identyfikacja danych przez ich warto ci SELECT * FROM p atnicy WHERE Nazwisko = 'NOWAK'; JAN TADEUSZ MACIEJ JAN KUBA JÓZEF JAN NOWAK KOWALSKI NOWAK RZEPA TARZAN MALINIAK NOWAK Jednoznaczna identyfikacja danych wymaga zdefiniowania dla ka dej relacji klucza podstawowego

10 To samo danych w obiektowej bazie danych Identyfikacja na podstawie warto ci identyfikatora obiektu nazywanego OID Identyfikacja przez OID jest niezale na od warto ci atrybutów obiektu Osoba *kowalski, *kowalska; kowalski = new Osoba("Jan","Kowalski"); kowalska = new Osoba("Janina","Kowalska"); Kowalska->ma onek = kowalski; //podstawienie oid Kowalski->nazwisko = "Nowak"; Kowalski->pesel = ; Kowalski->p e = "K"; Kowalska->ma onek->dochody->poka (); Trwa o danych Obiekty mog by tworzone w trwa ym lub ulotnym obszarze sk adowania Trwa o powinna by w asno ci poszczególnych obiektów, a nie klas obiektów Trwa o powinna by w asno ci obiektów dowolnej klasy Sposób operowania na obiektach trwa ych i ulotnych powinien by taki sam Obiekty w ci gu cyklu ycia mog by przenoszone mi dzy trwa ym i nietrwa ym obszarem sk adowania

11 Trwa o danych Obiekty staj si trwa e przez jawne utrwalenie lub przez bycie osi galnymi przez inne obiekty trwa e. Obiekty trwa e Wszystkie wyst pienia klasy o3 Baza danych o1 o2 o4 Obiekty nietrwa e pm = pmf.getpersistencemanager(); Punkt p = new Punkt(10.5, 7.1); // obiekt nietrwa y Ko o k = new Ko o(p, 4); // obiekt nietrwa y transaction = pm.currenttransaction(); pm.makepersistent(k); // utrwalenie obiektów p i k w bazie danych transaction.commit(); Odwzorowanie obiektowo-relacyjne Wyk ad opracowa : Tomasz Koszlajda

12 Odwzorowanie obiektowo-relacyjne Odwzorowanie obiektowej architektury systemu informatycznego w relacyjne struktury danych bazy danych Aplikacja obiektowa OQL (HSQL, Linq) NativeQuery Wielok t #typfigury string #liczbawierzch integer +Powierzchnia() : Float +Przesu (Float, Float) +DodajWierzch(Punkt) O/RM Middleware select * from Wielok ty insert into wielok ty values (w.typfigury, ) Relacyjna baza danych Wielok ty idwielok ta number(9) PK typfigury varchar(15) LiczbaWierzch number(3) wbaziedanych boolean Logiczny model danych logika biznesowa Odwzorowanie O/R Fizyczny model danych Architektura przetwarzania O/RM O-R DB OO DB O/RM Aplikacja OQL DBMS dane Przetwarzanie obiektów Aplikacja Przetwarzanie obiektów QBE SODA NQuery DBMS obiekty Aplikacja Przetwarzanie obiektów OQL DBMS Przetwarzanie danych dane obiekty

13 Rozwi zania O/RM Odwzorowanie modelu obiektowego w relacyjny Odwzorowanie prostych atrybutów Odwzorowanie OID Odwzorowanie sieci dziedziczenia klas Odwzorowanie zwi zków mi dzy klasami Odwzorowanie atrybutów klas Zarz dzanie transakcjami Zarz dzanie obiektami Dodatkowe atrybuty implementacyjne Oprócz odwzorowania atrybutów informacyjnych w O/RM niezb dne jest utrzymywanie dodatkowych atrybutów implementacyjnych Wielok t #typfigury string #liczbawierzcho ków integer +Powierzchnia() : Float +Przesu (Float, Float) +DodajWierzcho ek(punkt) jestwierzcho kiem [1] [3..*] Punkt #X : Float #Y : Float +K t() : Float +Odleg o () : Float +Przesu (Float, Float) tworzkraw d Z [2] [2] Wielok ty idwielok ta number(9) PK typfigury varchar(15) LiczbaWierzcho ków number(3) wbaziedanych boolean Klucze podstawowe i obce Zapewnienie trwa o ci danych Znaczniki czasowe Punkty idpunktu number(10) PK idwielok ta number(9) FK X number(5,2) Y number(5,2) wbaziedanych boolean Fizyczny model danych

14 Dodatkowe atrybuty implementacyjne Narz dzia O/RM wspieraj korzystanie z atrybutów implementacyjnych. Na przyk ad w JPA przewidziano np. definiowane identyfikatorów obiektów, wersji obiektów lub atrybutów informuj cych o klasie public class Osoba implements public Integer getversion() @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="seq_store") } Przyk adowa definicja klas Dany model klas przetwarzanych przez aplikacje bazy danych Osoba Samochód +imi : String +nr_rejestracyjny : String +nazwisko : String [1] [0..*] +producent : String +wiek : integer posiada +model : String +p e : P e +moc : Integer {non complete, overlapping} Pracownik +etat: String +p aca: float +firma: Sring Student +Uczelnia: String +Kierunek: String +rokstudiów: integer

15 Odwzorowanie prostych atrybutów Przyk ad odwzorowania klas w schemat relacyjnej bazy danych za pomoc adnotacji j zyka Java w public class Osoba implements Serializable { public String imi ", nullable = false, length = 25); public String } Odwzorowanie OID W JPA mo liwe okre lanie OID obiektów (@id) oraz sposobu generowania jego warto Dost pne s nast puj ce sposoby generowania warto ci OID: TABLE - relacja dedykowana do generowania OID IDENTITY atrybut relacji przechowuj cej obiekty SEQUENCE systemowy sekwenser AUTO automatycznie jedno z public class Osoba implements Serializable { private @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="seq_store") public Integer getid() {... } Cecha Id nie posiada wszystkich cech OID.

16 Odwzorowanie zwi zków W JAP mo liwe jest odwzorowanie zwi zków typu: 1:1 M:N Jako zwi zków jedno lub dwukierunkowych. Do okre lenia si y powi zania s u y opcja Cascade: CascadeType.PERSIST oznacza, e utrwalenie danego obiektu poci ga za sob automatyczne utrwalenie obiektu powi zanego. CascadeType.MERGE oznacza, e dla od czonego od bazy danych obiektu, modyfikacje obiektu powi zanego b d synchronizowane metod MERGE razem z obiektem g ównym. CascadeType.REMOVE oznacza, e usuni cie danego obiektu poci gnie za sob usuni cie obiektu powi zanego. CascadeType.ALL wszystkie powy sze. Trwa e zwi zki s implementowane za pomoc wspó dzielonych kluczy podstawowych (1:1), pary klucz podstawowy, klucz obcy lub za pomoc relacji po czeniowych. Odwzorowanie zwi zków Przyk ad implementacji zwi zku 1:N w public class Samochód implements Serializable = {CascadeType.REMOVE} a ciciela") public W a ciciel GetW a ciciel() { return w a ciciel; }... }

17 Atrybuty wielowarto ciowe s u y do implementacji atrybutów wielowarto ciowych modelowanych w aplikacji jako: Collection, List, public class public List<Ulica> getulice() public class public Miasto getmiasto() {... Odwzorowanie sieci dziedziczenia Znane s nast puj ce metody odwzorowania: Pracownik +etat: String +p aca: float +firma: Sring Osoba +imi : String +nazwisko : String +wiek : integer +p e : P e {non complete, overlapping} Student +Uczelnia: String +Kierunek: String +rokstudiów: integer Odwzorowanie hierarchii klas w pojedyncz tablic Odwzorowanie konkretnych klas w osobne tabele Odwzorowanie ka dej klasy w osobn tabel Odwzorowanie klas w uniwersaln struktur tabel

18 Odwzorowanie hierarchii klas w pojedyncz tabel Osoby Imi Nazwisko P e Etat P aca Firma Uczelnia Kierunek RokStudiów jeststudentem jestpracownikiem W asno ci: Tabela b dzie przechowywa a du o warto ci pustych Tabela b dzie zajmowa wi ksz powierzchni na dysku atwo przetwarzania polimorficznego wszystkie dane w jednej tabeli Du a wydajno dla przetwarzania polimorficznego Ma a wydajno dla przetwarzania homogenicznego tabela zawiera niepotrzebne dane Ma a wydajno dla modyfikacji struktury pojedynczych klas Trudne utrzymywanie przynale no ci do typów Dobre dla prostych i p askich hierarchii klas Odwzorowanie hierarchii klas w pojedyncz tabel JPA wspiera odwzorowanie klas w jedn tabel. Dla roz cznych i kompletnych podzbiorów proste warunki @DiscriminatorColumn( name="t_p e ") public class public class Kobieta extends Osoba {... public class M czyzna extends Osoba {... } // transformacja zapyta select k from Kobieta k -> select... from t_osoby where t_p e ='K' select o from Osoba o -> select... from t_osoby

19 Odwzorowanie hierarchii klas w pojedyncz tabel Dla nieroz cznych podzbiorów niezb dne jest stosowanie z o onych warunków @DiscriminatorColumn(name="jestStudentem") "case when jeststudentem=true then 0 when jestpracownikiem=true then 1 end") public class public class Student extends Osoba {... public class Pracownik extends Osoba {... } Odwzorowanie konkretnych klas w osobne tabele Je eli klasa Osoba jest klas abstrakcyjn Zale no mi dzy podzbiorami danych typu complete Pracownicy idpracownika Imi Nazwisko P e Etat P aca Firma Studenci idstudenta Imi Nazwisko P e Uczelnia Kierunek RokStudiów W asno ci: Trudna implementacja overlapping - konieczno implementacji wspólnej dziedziny dla kluczy relacji Ma a wydajno dla przetwarzania polimorficznego dane w ró nych tabelach Du a wydajno dla przetwarzania homogenicznego Modyfikacja klasy z podklasami wymaga modyfikacji schematów wielu tabel Dobre dla roz cznych podzbiorów rozszerze klas

20 Odwzorowanie konkretnych klas JPA wspiera odwzorowanie konkretnych klas w tabele za pomoc strategii Table per class (Hibernate Union public class public class Kobieta extends Osoba {... czy ni") public class M czyzna extends Osoba {... } // transformacja zapyta select o from Kobieta k -> select * from t_kobiety select o from Osoba o -> select... from t_kobiety union select... from t_m czy ni Odwzorowanie ka dej klasy w osobn tabel W asno ci: Pracownicy idosoby FK Etat P aca Firma Osoby idosoby Imi Nazwisko P e Studenci idosoby FK Uczelnia Kierunek RokStudiów Proste odwzorowanie 1:1 atwo przetwarzania polimorficznego atwe utrzymywanie dla modyfikacji nadklas i dodawania podklas Rozmiar struktur proporcjonalny do liczby danych Du a liczba tablic Ma a wydajno przetwarzania homogenicznego konieczno czenia tabel Dobre dla pokrywaj cych si podzbiorów rozszerze klas i cz sto zmieniaj cych si definicji klas

21 Odwzorowanie ka dej klasy w osobn tabel JPA wspiera odwzorowanie klasy w osobn tabel za pomoc strategii @Table(name="t_Osoby") public class @PrimaryKeyJoinColumn(name="id_osoby") public class Kobieta extends Osoba {... } // transformacja zapyta select o from Kobieta k -> select o.*, k.* from t_osoby o JOIN t_kobiety k ON o.id_osoby = k.id_osoby Odwzorowanie klas w uniwersaln struktur tabel W asno ci: atwo utrzymania dla zmian schematu Trudne i ma o wydajne przetwarzanie Dobre dla z o onych aplikacji przetwarzaj cych niezbyt du e zbiory danych

22 Odwzorowanie cech klas Osoby +imi : String +nazwisko : String +p e : P e +liczbaosób : Integer +procentkobiet: Integer Osoby_LiczbaOsób LiczbOs Osoby LiczbaOsób ProcentKobiet Mo liwe strategie: Jednokolumnowa i jednowierszowa tabela dla ka dej cechy Wielokolumnowe i jednowierszowe tabele dla ka dej z klas Wielokolumnowa i jednowierszowa tabela wspólna dla wszystkich klas Wielowierszowa tabela o generycznym schemacie wspólna dla wszystkich klas ZmienneKlasowe Os_LiczbaOsób Os_ProcentKobiet Optymistyczna synchronizacja transakcji W wi kszo ci protoko ów gwarantuj cych poprawno wspó bie nego przetwarzania transakcji implementowane jest pesymistyczne podej cie do synchronizacji, polegaj ce na modyfikacji historii konfliktowych transakcji przez czasowe zawieszenie dzia ania jednej z nich. Optymistyczne protoko y synchronizacji transakcji przesuwaj wykrywanie potencjalnych konfliktów do czasu akceptacji transakcji. Wykryte konflikty s obs ugiwane przez wycofanie jednej z konfliktowych transakcji. przepustowo transakcji protokó pesymistyczny protokó optymistyczny liczba konfliktów

23 Optymistyczna synchronizacja transakcji Schemat protoko u optymistycznej synchronizacji wspó bie no ci zak ada przeprowadzenie ka dej transakcji przez trzy kolejne fazy: Faza odczytów i lokalnych modyfikacji potencjalnie d uga i obejmuj ca interakcje z u ytkownikiem transakcji. Faza walidacji, która zaczyna si w punkcie akceptacji transakcji i s u y do weryfikacji mo liwo poprawnego zako czenia transakcji. Synchronizowana transakcyjnie faza zapisu danych buforowanych w PAO do bazy danych. Zaletami optymistycznej synchronizacji transakcji s : niewyst powanie w tym protokole zakleszcze transakcji oraz mniejsze obci enie zasobów DBMS (brak blokad). Optymistyczna synchronizacja transakcji nie gwarantuje pe nej uszeregowalno ci nie obs uguje anomalii fantomów. Optymistyczna synchronizacja transakcji Algorytm fazy walidacji jest nast puj cy [H.T.Kung, J.T.Robinson 1981]: Validation (T j ) <valid := true; // pocz tek sekcji krytycznej for TNR i from TNR start+1 to TNR finish do if RS j WS i then valid:=false; if valid then begin (write); TNR j := TNC; TNC := TNC+1 end> // koniec sekcji krytycznej if not valid then (rollback); gdzie: TNR start jest najwi kszym znacznikiem transakcji w momencie startu transakcji T j, TNR finish jest najwi kszym znacznikiem transakcji w momencie rozpocz cia fazy walidacji, a RS i WS s zbiorami czytanych i modyfikowanych danych.

24 Dzia anie algorytmu T 1 Przyk ad synchronizacji dwóch transakcji T 1 i T 2. zapis lokalny r 1 [x] lw 1 [x] r 1 [y] lw 1 [y] c' 1 val 1 w 1 [x] w 1 [y] c 1 zapis do bazy danych T 2 r 2 [x] lw 2 [x] c' 2 val 2 a 2 TNR(T 1 ) = 10 Walidacja transakcji T 2 : TNR start+1 = 10, TNR finish =10 RS(T 2 ) = {x}, WS(T 1 ) = {x, y}, sk d: RS(T 2 ) WS(T 1 ) = {x} Transakcja T 2 musi zosta wycofana. Ulepszona wersja algorytmu Pomijanie nieistotnych konfliktów T 1 r 1 [x] lw 1 [x] r 1 [y] lw 1 [y] c' 1 val 1 w 1 [x] w 1 [y] c 1 T 2 r 2 [x] lw 2 [x] c' 2 val 2 a 2 r 3 [x] lw 3 [x] T 3 c 3 val 3 a 3 Transakcja T 3 zostanie wycofana, mimo e dysponuje zatwierdzon warto ci danej x. Wykryty konflikt jest nieistotny dla poprawno ci przetwarzania, ale jest przyczyn wycofania transakcji. Modyfikacja protoko u OC o rozszerzenie zbioru danych czytanych przez transakcj o znaczniki ko ców wspó bie nych transakcji. Dla transakcji T 3, zbiór czytanych danych RS 3 ={EOT 1, x}. Weryfikowany w fazie walidacji warunek zostanie zmodyfikowany do postaci: RS ij W i, gdzie RS ij jest podzbiorem tylko tych danych, które zosta y odczytane po zako czeniu transakcji T i. RS 13 =, co znaczy, e w zmodyfikowanym protokole transakcja T 3 nie zostanie wycofana.

25 Zarz dzanie wspó bie no ci transakcji W rodowiskach O/RM zalecanym sposobem synchronizacji transakcji s protoko y zarz dzania wspó bie nymi transakcjami wzorowane na podej ciu optymistycznym. Modyfikacje obiektów s wykonywane lokalnie. Ich zapis do bazy danych, realizowany przez systemow operacj flush, jest przesuwany na koniec transakcji. W zwi zku z tym blokady do zapisu s utrzymywane krótkoterminowo, tylko na czas walidacji transakcji. Dodatkowe rozwi zania maj ce na celu zwi kszenie skalowalno ci wspó bie nego dost pu zak adaj, e transakcje systemu bazy danych nie obejmuj czasu interakcji z u ytkownikiem aplikacji bazy danych. W efekcie równie blokady do odczytu zak adane przez system bazy danych s krótkoterminowe. Logiczna transakcja (biznesowa) sk ada si z kilku transakcji systemu bazy danych. Transakcja biznesowa ACID Transakcja bazy danych interakcja Transakcja bazy danych interakcja Transakcja bazy danych Blokada do odczytu Blokada do zapisu Zarz dzanie wersjami obiektów W rodowiskach O/RM do implementacji protoko ów optymistycznej synchronizacji transakcji stosuje si rozproszony algorytm zarz dzania. Transakcje biznesowe synchronizuj si ze sob poprzez weryfikacj w fazie walidacji stanu bazy danych. Walidacja transakcji odbywa si poprzez kontrol wersji modyfikowanych danych. Kontrola wersji mo e by realizowana r cznie przez aplikacj lub wspierana systemowo. Weryfikacja wersji obiektów odbywa si przez kontrol : znaczników czasowych, identyfikatora wersji obiektu lub przez porównanie warto ci obiektu zapami tanych z fazy odczytu z warto ci odczytan w fazie walidacji.

26 Synchronizacja transakcji przez aplikacj Ka da interakcja z baz danych jest osobn sesj. Aplikacj musi za adowa /prze adowa z bazy danych wszystkie obiekty przetwarzane w ramach danej interakcji oraz kontrolowa wersje modyfikowanych danych dla unikni cia anomalii lost update. // o1 jest wersj obiektu za adowanego przez poprzedni sesj session = factory.opensession(); // po czenie z baz danych Transaction t = session.begintransaction(); int oldversion = o1.getversion(); // zapami taj numer wersji session.load(o1, o1.getkey() ); // aduj aktualn wersj if ( oldversion!= o1.getversion() ) // sprawd zgodno throw new StaleObjectStateException(); o1.setproperty("j23"); t.commit(); // wykonanie metody flush zapis o1 do bazy danych session.close(); //zamkni cie po czenia z baz danych // ci g dalszy transakcji biznesowej Synchronizacja transakcji przez aplikacj Rozwi zanie charakteryzuje si w ogólno ci niskim poziomem izolacji. Transakcje biznesowe uzewn trzniaj przed zako czeniem wprowadzone modyfikacje danych. Nie wyklucza anomalii: brudny odczyt, brudny zapis, rozmyty odczyt, skro ny zapis i fantomów. Ponadto transakcji biznesowa zarz dzana przez logik aplikacji nie jest jednostk odtwarzania nie jest atomowa. Dodatkowo rozwi zanie to charakteryzuje si du ym obci eniem systemu bazy danych operacjami otwierania i zamykania sesji. W praktyce powinno by stosowane jedynie dla pojedynczej interakcji z u ytkownikiem - jednej transakcji odczytuj cej i jednej modyfikuj cej stan bazy danych. Transakcja biznesowa zapis do bazy danych r[x] r[y] f c lw[y] r[z] f c lw[z] f c Sesja interakcja Sesja interakcja Sesja Transakcja bazy danych R/W Transakcja bazy danych R/W f flush c - commit Transakcja bazy danych R/W

27 Systemowa synchronizacja z kontrol wersji Aplikacja biznesowa jest implementowana przez pojedyncz tzw. rozszerzon sesj (extended session). Ka da interakcja z baz danych jest osobn transakcj. Ostatnia transakcja sesji jest odpowiedzialna za zapisanie wszystkich modyfikacji sesji. Kontrola poprawno ci wersji obiektów jest realizowana automatycznie. // o1 jest wersj obiektu za adowanego przez poprzedni transakcj // w tej samej sesji, w ramach innego po czenia z baz danych Transaction t = session.begintransaction(); // uzyskaj nowe po czenie z baz danych z puli aktywnych po cze o1.setproperty("j23"); t.commit(); // oddanie po czenia z baz danych // interakcja z u ytkownikiem t = session.begintransaction(); // ostatnia transakcja w sesji o2.setproperty("007"); session.flush(); // zrzucenie do bazy danych zapisów z ca ej sesji t.commit(); session.close(); Systemowa synchronizacja z kontrol wersji Rozwi zanie charakteryzuje si niekompletnym poziomem izolacji. Nie wyklucza anomalii: rozmyty odczyt, skro ny zapis i fantomów. Jednak transakcja biznesowa jest atomowa. Rozwi zanie to charakteryzuje si du skalowalno ci w dost pie do systemu bazy danych. W danym momencie aktywna jest sta a i znacznie mniejsza od liczby wspó bie nych u ytkowników aplikacji liczba po cze z baz danych *. Transakcja biznesowa zapis do bazy danych r[x] r[y] c lw[y] r[z] c lw[z] f c interakcja Sesja interakcja Transakcja bazy danych RO Transakcja bazy danych RO f flush c - commit Transakcja bazy danych R/W *) W DBMS Oracle maksymalnie 4*10 9 wspó bie nych transakcji RO read only RW read/write

28 W asno ci optymistycznej synchronizacji Adaptacja optymistycznego protoko u zarz dzania wspó bie no ci transakcji w platformach O/RM zawiera pewne uproszczenia: Zaimplementowany mechanizm synchronizacji zbudowany jest w oparciu o pesymistyczne mechanizmy systemów baz danych. St d przebieg transakcji biznesowych wi e si z zak adaniem blokad do odczytu i zapisu. Blokady do zapisu s u do zapewnienia poprawnej realizacji faz walidacji (dzia ania operacji flush) wspó bie nych transakcji. Czas utrzymywania blokad jest znacznie krótszy ni w pesymistycznych protoko ach synchronizacji. Dzi ki temu, ewentualne zawieszenia przetwarzania trwa krócej, a prawdopodobie stwo zakleszczenia jest mniejsze. Kontrola modyfikowanych wersji obiektów ma bardziej ograniczony zasi g ni w protokole Kunga i Robinsona. Warunek weryfikuj cy mo no zatwierdzenia transakcji jest zredukowany do sprawdzenia zbioru modyfikowanych, a nie do wszystkich odczytywanych danych: zamiast RS j WS i, weryfikowany jest warunek WS j WS i. Mo liwa jest r czna weryfikacja niemodyfikowanych danych: Session.lock() Anomalie wspó bie nego wykonania B dne wyniki przetwarzania warto ci odczytanych z bazy danych w dwóch ró nych transakcjach. r[x] c r[y] c wy wietl: x + y c Transakcja bazy danych RO interakcja Transakcja bazy danych RO interakcja B dny stan bazy danych b d cy konsekwencj braku atomowo ci pary operacji odczytu i zapisu. r[x] c if(x>0) then w[y] else w[z] lw[y] f c Transakcja bazy danych RO interakcja x=10 x=0 Transakcja bazy danych R/W Skro ny zapis, fantomy

29 Wycofanie transakcji W wypadku konfliktów wykrytych w fazie walidacji dla unikni cia anomalii lost update transakcja biznesowa musi zosta wycofana. try { Transaction t = session.begintransaction(); // przetwarzanie danych... session.flush(); t.commit(); session.close(); } catch (RuntimeException e) { t.rollback(); throw e; } finally { session.close(); } Implementacja walidacji transakcji Do walidacji poprawno ci wykonania wspó bie nych transakcji mog by u ywane ró ne mechanizmy : Znaczniki czasowe/numery wersji struktura wszystkich danych jest rozszerzona o dodatkowy atrybut systemowy do sk adowania czasu modyfikacji lub numeru wersji danej zmienianego przez ka d modyfikacj. Wad jest konieczno stosowania tego rozwi zania przez wszystkie transakcje. Weryfikacja warto ci danych polegaj ca na porównaniu warto ci danych z fazy odczytu z warto ciami danych w fazie zapisu. Mo e dotyczy wszystkich pól obiektu, lub tylko tych które zosta y zmienione przez dan transakcj.

30 Obiektowe j zyki zapyta W platformach O/RM stosuje si j zyki zapyta wzorowane na j zyku SQL. S one ubo sze od obiektowo relacyjnego j zyka SQL, np. o polecenia modyfikacji danych lub niemo no wywo ywania metod. Przyk adowe j zyki wzorowane na SQL: H SQL, EJB SQL, Linq EJB SQL selekcja obiektów EJB SQL pozwala na selekcj obiektów w bazie danych: select osoba from Osoba as osoba where osoba.nazwisko = 'Tarzan' Warunki selekcji mog si odwo ywa jedynie do cech strukturalnych, a nie do metod, ze wzgl du na to, e zapytania s w EJB SQL s zamieniane na zapytania SQL w relacyjnej bazie danych, a te nie maj dost pu do metod sk adowanych po stronie aplikacji.

31 EJB SQL wyra enia cie kowe W klauzuli WHERE mo liwe jest stosowanie wyra e cie kowych nawiguj cych wzd u powi za mi dzy obiektami i w g b atrybutów z o onych. select o from Osoba as o where o.szef.adres.miasto.nazwa = 'Pozna ' Powy sze zapytanie zostanie zmienione na zbiór zapyta SQL na relacyjnej bazie danych EJB SQL po czenia strukturalne Dost pne s po czenia strukturalne, wewn trzne i zewn trzne (jedynie lewostronne), które zwracaj kolekcj tablic obiektów. select zespó, pracownik, dzieci from Zespó as zespó inner join Pracownik as pracownik left join fetch Dzieci as dzieci Opcja po czenia fetch powoduj, e dost p do obiektów po czonych zwi zkiem typu 1:N albo dost p do obiektów lub warto ci sk adowanych w atrybucie wielowarto ciowym jest realizowane za pomoc pojedynczego zapytania w bazie danych.

32 EJB SQL po czenia dynamiczne Dost pne s równie po czenia dynamiczne konstruowane na podstawie wyra e logicznych odwo uj cych si do prostych warto ci obiektów lub do ich to samo ci. select pracownik, szef from Pracownik as pracownik inner join Pracownik as szef where pracownik.etat = 'Referent' // równo warto ci and pracownik.szef = szef // to samo obiektów EJB SQL odwo anie do OID W warunkach selekcji mo liwe jest odwo ywanie si do identyfikatora obiektów: select pracownik from Pracownik as pracownik where pracownik.etat = 'Referent' and pracownik.szef = 11432

33 EJB SQL zapytania polimorficzne W EJB SQL umo liwia wykonywanie zapyta polimorficznych na wyst pieniach klas tworz cych hierarchi dziedziczenia. Nie ma mo liwo ci korzystania z dynamicznego wi zania. select osoba from Osoba as osoba // wynik zapytania obejmuje wyst pienia wszystkich // specjalizacji klasy Osoba select osoba from Osoba as osoba.class = Student // wynik zapytania obejmuje wyst pienia jedynie // tych osób, które s studentami Podzapytania, sortowanie, grupowanie Grupowanie wynikiem zapyta zawieraj cych operacje projekcji lub grupowania dla wyznaczania danych statystycznych s warto ci lub obiekty nie tworz ce logicznego modelu danych. Jednak mo liwo przetwarzania du ych zbiorów danych po stronie systemu bazy danych zwi ksza radykalnie wydajno przetwarzania. select avg(s. rednia), max(s. rednia), count(s) from Student s group by s.rok_studiów

34 Strojenie wydajno ci Strojenie przez wybór wydajnego mapowanie struktur obiektowych na relacyjne: wybór strategii odwzorowania hierarchii dziedziczenia, zwi zków i cech klas Opó nione/natychmiastowe czytanie: dla du ych obiektów danie dost pu do obiektu mo e by realizowane jako odczyt jedynie podzbioru danych sk adaj cych si na obiekt. Pozosta e cz ci obiektu b d doczytane w momencie wyst pienia dania dost pu do nich Autofetch inteligentny wybór momentu odczytu powi zanych danych Oferta platform OR/M O/RM dla j zyka Java JDO Java Data Object Enterprise Java Bean Java Persistance API JPA Hibernate Top Link Oracle O/RM dla platformy.net ADO.NET Entity Framework Linq Nhibernate SODA

35 Obiektowe bazy danych Wyk ad prowadzi: Tomasz Koszlajda Przyk ad systemu obiektowej bazy danych db4o Projekt Open Source Uproszczenie architektury systemu bazy danych Dost pne ró ne architektury aplikacji Ró ne j zyki dost pu: QBE, SODA, Native Query Language Skalowalno Wielo platformowo Java,.Net, VBA Wydajno dla zapyta specyficznych dla obiektowych baz danych

36 Nowa architektura przetwarzania Przetworzone dane O R DB Aplikacja DBMS Przetwarzanie obiektów OO DB, O/RM Aplikacja DBMS Wybrane obiekty Prostota budowy aplikacji // zdefiniowanie klasy public class Pracownik { public Pracownik(String nazwisko, String etat, float placa)...} // otworzenie prywatnej bazy danych ObjectContainer db = Db4o.openFile("BazaDanych"); Pracownik p=new Pracownik("Tarzan","Prezes",25000); // sk adowanie obiektu w bazie danych db.store(p); // zamkni cie bazy danych db.close();

37 Klasa: Object Container Klasa object Container reprezentuje system bazy danych Obs uguje ona dost p do lokalnego, prywatnego pliku danych Wspiera transakcyjne przetwarzanie danych Zarz dza referencjami do obiektów przechowywanych w bazie danych Zapewnia wydajne przetwarzanie danych w bazie danych, przez u ywanie indeksów Schemat bazy danych Definicje klas w aplikacji = schemat bazy danych // zdefiniowanie klasy public class Pracownik { public Pracownik(String nazwisko, String etat, float placa)}... Pracownik p=new Pracownik("Tarzan","Prezes",25000); // Je eli jest to pierwszy obiekt klasy Pracownik // sk adowany w bazie danych, do schematu bazy danych // dodawana jest definicja klasy Pracownik db.store(p);

38 Hierarchia rozszerze klas Wyst pienia podklas tworz podzbiór wyst pienia nadklas class Kierownik extends Pracownik {...} Kierownik k = new Kierownik("Kowalski", ); db.store(k);... /* Obiekt k b dzie osi galny zarówno jako element zbioru Kierowników i jaki Pracowników */ // Kowalski znajdzie si w wyniku zapytania ObjectSet wynik = db.get(pracownik.class); J zyki zapyta w db4o System bazy danych db4o oferuje trzy ró ne j zyki zapyta : QBE Query By Example SODA Simple Object Database Access NativeQuery Preferowane w asno ci j zyków zapyta : 1. J zyki do masowego przetwarzania danych 2. Czyste j zyki obiektowe 3. Statyczna weryfikacja typów danych 4. Jednorodno z j zykiem aplikacji 5. Systemowa optymalizacja zapyta

39 J zyk zapyta QBE Prosty j zyk zapyta QBE Query by Example Wymaga utworzenia obiektu, który b dzie wzorcem dla zapytania // wyszukiwanie obiektów - QBE Pracownik p=new Pracownik(null,"Prezes",0.0f); // nie mo na pyta o warto ci: null, 0, ObjectSet wynik = db.get(p); // obiektem wzorcowym mo e by klasa wynik = db.get(pracownik.class); Nie umo liwia definiowania z o onych warunków zapyta : AND, OR, NOT. Konstruktor obiektu musi umo liwi tworzenie obiektu bez zainicjowanych atrybutów : null, "". J zyk zapyta SODA Simple Object Database Access J zyk SODA umo liwia definiowanie z o onych zapyta w postaci drzew, których w z ami s warunki selekcji. Funkcjonalno j zyka zapyta jest zaimplementowana w dwóch podstawowych klasach: Constraint i Query Ich funkcjonalno obejmuje nast puj ce operacje: Query: descend constrain sortby Execute orderascending Constraint: and (Constraint) contains equal greater identity like not or (Constraint) smaller

40 J zyk zapyta SODA Simple Object Database Access Query query=db.query(); // okre lenie klasy zapytania query.constrain(pracownik.class); // okre lenie warunku prostego Constraint warunek = query.descend("placa").constrain(5000).greater(); // okre lenie drugiego warunku prostego // i z o enie warunków query.descend("etat").constrain("prezes").or(warunek); // wykonanie zapytania ObjectSet wynik=query.execute(); System.out.println(wynik.size()); while(wynik.hasnext()) { Pracownik znaleziony = (Pracownik) wynik.next(); System.out.println(znaleziony); } J zyk zapyta SODA drzewo zapytania Query query=db.query(); query.constrain(pracownik.class); query.descend ("placa").constrain(5000).greater().or (descend("etat").constrain("prezes")) "p aca" OR Klasa: Pracownik.class "etat" greater: 5000 "Prezes"

41 J zyki zapyta w obiektowych bazach danych OQL String oql = "select * from o in Osoby where p.wiek < 20"; OQLQuery query = new OQLQuery(oql); Object osoba = query.execute(); Zapytania jako tekst JDOQL Query query = persistencemanager.newquery(osoba.class, "wiek < 20"); Collection osoby = (Collection)query.execute(); db4o SODA C# Query query = database.query(); query.constrain(typeof(osoba)); query.descend("wiek").constrain(20).smaller(); IList osoby = query.execute(); S abo ci j zyków zapyta w bazach danych Brak syntaktycznej i semantycznej weryfikacji zapyta w trakcie kompilacji aplikacji Brak wsparcia dla refaktoryzacji Brak wsparcia dla wielokrotnego u ytku: wywo ywania metod, polimorfizmu, redefinicji Nieodporno na ataki typu wstrzykiwanie kodu Wymagany dost p do prywatnych atrybutów klas Brak systemowej optymalizacji zapyta dla du ych zbiorów danych Brak skalowalno ci

42 Konstrukcja j zyka zapyta NativeQuery Warunki logiczne s u ce do selekcji obiektów s wyra ane w obiektowym j zyku programowania: prac.placa() > min Z o one wyra enia logiczne zapytania s tworzone w ca o ci w obiektowym j zyku programowania: prac.etat().equals("prezes") (prac.placa() > min && prac.placa() < max) Mechanizm przesy ania obiektów do zapyta : // pseudo kod (Pracownik prac){ return prac.etat().equals("prezes") (prac.placa() > min && prac.placa() < max)} J zyk zapyta NativeQuery Generyczna klasa systemowa Predicate z abstrakcyjn metod match zwracaj c warto ci logiczne. ObjectSet sp=db.query(new Predicate<Pracownik>() // redefinicja metody match { public boolean match(pracownik prac) { return prac.weznazwisko().equals("tarzan") (prac.placa() > 4500 && prac.placa() < 10000);}; } ); public abstract class Predicate <ExtentType> { public <ExtentType> Predicate (){} public abstract boolean match(extenttype candidate);} Definicja anonimowej klasy dziedzicz cej po klasie Predicate

43 J zyk zapyta NativeQuery Wyra enia cie kowe w NativeQuery ObjectSet sp=db.query(new Predicate<Pracownik>() // dziedziczenie i redefinicja metody match { public boolean match(pracownik prac) { return prac.zespol().nazwa().equals( Zarz d"); } ); J zyk zapyta NativeQuery C# Zastosowanie typu danych delegate ObjectSet sp=db.query<pracownik> ( delegate Pracownik p) // definicja operacji uruchamianej jako delegate p { return prac.weznazwisko().equals("tarzan") (prac.placa() > 4500 && prac.placa() < 10000); } );

44 Usuwanie i modyfikacja obiektów Pracownik p=new Pracownik(null,null, ); ObjectSet wynik = db.get(p); while(wynik.hasnext()) { Pracownik prac=(pracownik)wynik.next(); // usuni cie db.delete(prac); }... while(wynik.hasnext()) { kopia obiektu Pracownik prac=(pracownik)wynik.next(); // modyfikacja obiektu na podstawie jego OID prac.podniesplace(1500); db.store(prac); // uspójnienie kopii z orygina em } Powi zania mi dzy danymi System db4o respektuje zwi zki mi dzy obiektami zdefiniowanymi w aplikacji public class Pracownik {... private Pracownik szef; private Set<Pracownik> podwladni; public Pracownik(String nazwisko,string etat){ this.podwladni= new HashSet<Pracownik>(); } public void dodajpodwladnego(pracownik pod) { this.podwladni.add(pod); } }

45 Sk adowanie z o onych obiektów Metoda set gwarantuje niejawne zapisanie do bazy danych wszystkich powi zanych obiektów Pracownik p = new Pracownik( "Tarzan","Prezes",25000); Pracownik pp1 = new Pracownik( "Nowak","Sekretarka",2500); Pracownik pp2 = new Pracownik( "Kula","Kierwoca",3000); // Przypisanie szefowi podw adnych p.dodajpodwladnego(pp1); p.dodajpodwladnego(pp2); // Sk adowanie obiektów w bazie danych db.store(p); // W bazie danych znajd si wszystkie powi zane obiekty Odczyt powi zanych obiektów Za adowanie do pami ci operacyjnej obiektu jako wyniku zapytania mo e wymaga dost pu do kolejnych powi zanych obiektów. Stosowane s dwie strategie: 1. Natychmiastowe za adowanie wszystkich powi zanych obiektów (ca a baza danych). 2. Leniwe adowanie obiektów na danie. W db4o mo liwe jest elastyczne dopasowanie zbioru adowanych obiektów za pomoc parametru Activation Depth (domy lna warto = 5).

46 Kaskadowe usuwanie obiektów z o onych Usuni cie z bazy danych obiektu, który ma powi zania z innymi obiektami mo e wymaga usuni cia tych obiektów semantyka zwi zku kompozycji W tym celu, nale y wykona na klasie obiektu z o onego metod cascadeondelete( ) G boko kaskadowego usuwania mo e by konfigurowana za pomoc metody: set(object, depth) Indeksy w db4o System db4o umo liwia zak adanie indeksów na wybranych atrybutach obiektów sk adowanych w bazie danych. Indeks musi by utworzony przed otwarciem obiektu ObjectContainer/ObjectServer: // w bazie danych sk adowane s obiekty klasy Pracownik class Pracownik { String nazwisko; } Db4o.configure().objectClass(Pracownik.class). objectfield("nazwisko").indexed(true);

47 Ewolucja schematu bazy danych W db4o schemat tworz definicje klas i ich wzajemne zale no ci: referencje i dziedziczenie. Schemat bazy danych musi nad a za zmianami w klasach definiowanych w aplikacjach: dodawanie i usuwanie klas, zmiana w asno ci klas, zmiana sieci powi za mi dzy klasami. Zmiany w schemacie wi si równie z refaktoryzacj kodu programów. W czysto obiektowych bazach danych refaktoryzacja jest prostsza ni w bazach O R i O/RM ze wzgl du na jeden spójny schemat bazy danych i definicje klas w aplikacjach. Transakcyjno db4o Przetwarzanie danych w db4o ma charakter transakcyjny. Niejawnym rozpocz ciem transakcji jest otwarcie bazy danych. Niejawnym zako czeniem jest zamkni cia bazy danych. Funkcjonalno bazy danych obejmuje jawne zatwierdzanie i wycofywanie transakcji. Synchronizacja transakcji nie jest transparentna dla programisty. Aby j zapewni nale y jawnie wywo ywa dodatkowe funkcje systemowe. Systemowo zapewniona jest w asno read committed. String bd = "BazaDanych"; ObjectContainer db = Db4o.openFile(bd); Pracownik p=new Pracownik("Tarzan","Prezes",25000); // sk adowanie obiektu w bazie danych db.store(p); // zatwierdzenie transakcji db.commit();

48 Synchronizacja wspó bie nych transakcji Unikanie anomalii lost update, b d cej konsekwencj optymistycznego zarz dzania wspó bie no ci, mo e by realizowane z zastosowaniem metody systemowej peekpersisted klasy ExtObjectContainer. Metoda tworzy kopi warto ci wskazanego obiektu, do okre lonego poziomu zagnie d enia, nie powi zanej z obiektem w bazie danych. Kopia ta mo e zosta wykorzystana do weryfikacji aktualnego stanu obiektu przed jego modyfikacj w bazie danych. Nowak = (Pracownik)result[0]; // odczyt obiektu z bazy danych Nowak_przed_modyf = Nowak.clone(); // kopia obiektu... // przetwarzanie obiektu Nowak Pracownik akt_kopia = oc.ext().peekpersisted(nowak, 7, true); // porównaj warto ci, w przypadku ró nicy wycofaj transakcj if (akt_kopia.p aca() == Nowak_przed_modyf.p aca()) { oc.commit(); } else { oc.rollback(); } musi by atomowe Synchronizacja wspó bie nych transakcji System db4o umo liwia synchronizacj wspó bie nych transakcji przez jawne zak adanie blokad na ca y system. Blokady s u do synchronizacji dost pu do sekcji krytycznych. Blokady s globalne, ale rozró nialne przez nazwy ObjectContainer oc = Db4o.openClient(...);... czas czekania na zwolnienie blokady [ms] if (oc.ext().setsemaphore("lock_"+oc.ext().getid(obj),1000)) { // wejd do sekcji krytycznej... blokada na obiekcie obj // zwolnij blokad (semafor) po zako czeniu sekcji krytycznej co.ext().releasesemaphore("lock_"+oc.ext().getid(obj)); }

49 Architektura systemu db4o Architektura aplikacji db4o Pojedyncza aplikacja zintegrowana z plikiem danych Aplikacja db4o Plik danych // otworzenie bazy danych String bd = "BazaDanych"; ObjectContainer db = Db4o.openFile(bd); Pracownik p=new Pracownik("Tarzan","Prezes"); // niejawne zdefiniowanie schematu i // sk adowanie obiektu w bazie danych db.store(p); // zamkni cie bazy danych db.close();

50 Architektura aplikacji db4o Lokalny serwer bazy danych Aplikacja db4o Serwer db4o Baza danych String bd = "BazaDanych"; ObjectServer server = Db4o.openServer(db,0); // port = 0, serwer lokalny try { // otwarcie klienta ObjectContainer client=server.openclient();... client.close(); } finally { server.close(); } Architektura aplikacji db4o Architektura klient - serwer Aplikacja db4o sie Serwer db4o Baza danych String bd = "BazaDanych"; // port <> 0, serwer zdalny ObjectServer server=db4o.openserver(db,1521); server.grantaccess("user","password"); // otwarcie klienta ObjectContainer client = server.openclient( "localhost",port,user,password );... client.close(); server.close();

51 Wydajno Benchmark OO7 Benchmark Pole Position Barcelona circuit 100 zapyta na obiektów o 5 poziomach dziedziczenia Producenci OODBS db4objects Objectivity/DB Progress ObjectStore Enterprise Versant Object Database, FastObject.Net GemStone/S, Gemstone Facets EyeDB GNU Open Source

52 Odwzorowanie obiektowo-relacyjne Wyk ad opracowa : Tomasz Koszlajda Odwzorowanie obiektowo-relacyjne Odwzorowanie obiektowej architektury systemu informatycznego w relacyjne struktury danych bazy danych Aplikacja obiektowa OQL (HSQL, Linq) NativeQuery Wielok t #typfigury string #liczbawierzch integer +Powierzchnia() : Float +Przesu (Float, Float) +DodajWierzch(Punkt) O/RM Middleware select * from Wielok ty insert into wielok ty values (w.typfigury, ) Relacyjna baza danych Wielok ty idwielok ta number(9) PK typfigury varchar(15) LiczbaWierzch number(3) wbaziedanych boolean Logiczny model danych logika biznesowa Odwzorowanie O/R Fizyczny model danych

53 Architektura przetwarzania O/RM O-R DB OO DB O/RM Aplikacja OQL DBMS dane Przetwarzanie obiektów Aplikacja Przetwarzanie obiektów QBE SODA NQuery DBMS obiekty Aplikacja Przetwarzanie obiektów OQL DBMS Przetwarzanie danych dane obiekty Rozwi zania O/RM Odwzorowanie modelu obiektowego w relacyjny Odwzorowanie prostych atrybutów Odwzorowanie OID Odwzorowanie sieci dziedziczenia klas Odwzorowanie zwi zków mi dzy klasami Odwzorowanie atrybutów klas Zarz dzanie transakcjami Zarz dzanie obiektami

54 Dodatkowe atrybuty implementacyjne Oprócz odwzorowania atrybutów informacyjnych w O/RM niezb dne jest utrzymywanie dodatkowych atrybutów implementacyjnych Wielok t #typfigury string #liczbawierzcho ków integer +Powierzchnia() : Float +Przesu (Float, Float) +DodajWierzcho ek(punkt) jestwierzcho kiem [1] [3..*] Punkt #X : Float #Y : Float +K t() : Float +Odleg o () : Float +Przesu (Float, Float) tworzkraw d Z [2] [2] Wielok ty idwielok ta number(9) PK typfigury varchar(15) LiczbaWierzcho ków number(3) wbaziedanych boolean Klucze podstawowe i obce Zapewnienie trwa o ci danych Znaczniki czasowe Punkty idpunktu number(10) PK idwielok ta number(9) FK X number(5,2) Y number(5,2) wbaziedanych boolean Fizyczny model danych Dodatkowe atrybuty implementacyjne Narz dzia O/RM wspieraj korzystanie z atrybutów implementacyjnych. Na przyk ad w JPA przewidziano np. definiowane identyfikatorów obiektów, wersji obiektów lub atrybutów informuj cych o klasie public class Osoba implements public Integer getversion() @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="seq_store") }

55 Przyk adowa definicja klas Dany model klas przetwarzanych przez aplikacje bazy danych Osoba Samochód +imi : String +nr_rejestracyjny : String +nazwisko : String [1] [0..*] +producent : String +wiek : integer posiada +model : String +p e : P e +moc : Integer {non complete, overlapping} Pracownik +etat: String +p aca: float +firma: Sring Student +Uczelnia: String +Kierunek: String +rokstudiów: integer Odwzorowanie prostych atrybutów Przyk ad odwzorowania klas w schemat relacyjnej bazy danych za pomoc adnotacji j zyka Java w public class Osoba implements Serializable { public String imi ", nullable = false, length = 25); public String }

56 Odwzorowanie OID W JPA mo liwe okre lanie OID obiektów (@id) oraz sposobu generowania jego warto Dost pne s nast puj ce sposoby generowania warto ci OID: TABLE - relacja dedykowana do generowania OID IDENTITY atrybut relacji przechowuj cej obiekty SEQUENCE systemowy sekwenser AUTO automatycznie jedno z public class Osoba implements Serializable { private @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="seq_store") public Integer getid() {... } Cecha Id nie posiada wszystkich cech OID. Odwzorowanie zwi zków W JAP mo liwe jest odwzorowanie zwi zków typu: 1:1 M:N Jako zwi zków jedno lub dwukierunkowych. Do okre lenia si y powi zania s u y opcja Cascade: CascadeType.PERSIST oznacza, e utrwalenie danego obiektu poci ga za sob automatyczne utrwalenie obiektu powi zanego. CascadeType.MERGE oznacza, e dla od czonego od bazy danych obiektu, modyfikacje obiektu powi zanego b d synchronizowane metod MERGE razem z obiektem g ównym. CascadeType.REMOVE oznacza, e usuni cie danego obiektu poci gnie za sob usuni cie obiektu powi zanego. CascadeType.ALL wszystkie powy sze. Trwa e zwi zki s implementowane za pomoc wspó dzielonych kluczy podstawowych (1:1), pary klucz podstawowy, klucz obcy lub za pomoc relacji po czeniowych.

Obiektowe bazy danych

Obiektowe bazy danych Obiektowe bazy Obiektowy model Wykład prowadzi: Tomasz Koszlajda Plan wykładu Przesłanki dla nowej generacji systemów baz Podstawowe elementy obiektowego modelu Konstruktory złożonych typów Abstrakcyjne

Bardziej szczegółowo

Odwzorowanie obiektowo-relacyjne. Wykład opracował: Tomasz Koszlajda

Odwzorowanie obiektowo-relacyjne. Wykład opracował: Tomasz Koszlajda Odwzorowanie obiektowo-relacyjne Wykład opracował: Tomasz Koszlajda Odwzorowanie obiektowo-relacyjne Odwzorowanie obiektowej architektury systemu informatycznego w relacyjne struktury danych bazy danych

Bardziej szczegółowo

Obiektowe bazy danych

Obiektowe bazy danych Obiektowe bazy danych Wykład prowadzi: Tomasz Koszlajda Plan wykładu Model ODMG Język ODL Język ODL Język OQL Integracja obiektowej bazy danych z obiektowymi językami programowania Przykład obiektowej

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

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

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

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

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

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

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

Postanowienia ogólne. Usługodawcy oraz prawa do Witryn internetowych lub Aplikacji internetowych

Postanowienia ogólne. Usługodawcy oraz prawa do Witryn internetowych lub Aplikacji internetowych Wyciąg z Uchwały Rady Badania nr 455 z 21 listopada 2012 --------------------------------------------------------------------------------------------------------------- Uchwała o poszerzeniu możliwości

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

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

System kontroli wersji SVN

System kontroli wersji SVN System kontroli wersji SVN Co to jest system kontroli wersji Wszędzie tam, gdzie nad jednym projektem pracuje wiele osób, zastosowanie znajduje system kontroli wersji. System, zainstalowany na serwerze,

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

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

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

Wartości domyślne, szablony funkcji i klas

Wartości domyślne, szablony funkcji i klas Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2012 Bogdan Kreczmer Niniejszy dokument

Bardziej szczegółowo

Zarządzanie Zasobami by CTI. Instrukcja

Zarządzanie Zasobami by CTI. Instrukcja Zarządzanie Zasobami by CTI Instrukcja Spis treści 1. Opis programu... 3 2. Konfiguracja... 4 3. Okno główne programu... 5 3.1. Narzędzia do zarządzania zasobami... 5 3.2. Oś czasu... 7 3.3. Wykres Gantta...

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

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca 2009. Norbert Potocki db4o

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca 2009. Norbert Potocki db4o Wprowadzenie - podstawy - technikalia Przydatne wiadomości Wprowadzenie 1 czerwca 2009 Wprowadzenie - podstawy - technikalia Przydatne wiadomości Wprowadzenie = bjects = database for objects w pełni obiektowa

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

Sieci komputerowe cel

Sieci komputerowe cel Sieci komputerowe cel współuŝytkowanie programów i plików; współuŝytkowanie innych zasobów: drukarek, ploterów, pamięci masowych, itd. współuŝytkowanie baz danych; ograniczenie wydatków na zakup stacji

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

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

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4 Utrwalanie danych zastosowanie obiektowego modelu danych warstwy biznesowej do generowania schematu relacyjnej bazy danych Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4 1. Relacyjne

Bardziej szczegółowo

0.1 Hierarchia klas. 0.1.1 Diagram. 0.1.2 Krótkie wyjaśnienie

0.1 Hierarchia klas. 0.1.1 Diagram. 0.1.2 Krótkie wyjaśnienie 0.1 Hierarchia klas 0.1.1 Diagram 0.1.2 Krótkie wyjaśnienie Po pierwsze to jest tylko przykładowe rozwiązanie. Zarówno na wtorkowych i czwartkowych ćwiczeniach odbiegaliśmy od niego, ale nie wiele. Na

Bardziej szczegółowo

Charakterystyka systemów plików

Charakterystyka systemów plików Charakterystyka systemów plików Systemy plików są rozwijane wraz z systemami operacyjnymi. Windows wspiera systemy FAT oraz system NTFS. Różnią się one sposobem przechowywania informacji o plikach, ale

Bardziej szczegółowo

Obiektowe bazy danych

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

Bardziej szczegółowo

Obiektowe bazy danych

Obiektowe bazy danych Obiektowe bazy danych Obiektowy model danych Wykład prowadzi: Tomasz Koszlajda Obiektowe bazy danych Obiektowy model danych Tematyka obiektowych baz danych obejmuje trzy jednostki wykładowe. Pierwszy wykład

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Tydzień 6 RSC i CSC Znaczenie terminów CSC Complete nstruction Set Computer komputer o pełnej liście rozkazów. RSC Reduced nstruction Set Computer komputer o zredukowanej liście

Bardziej szczegółowo

Warunki Oferty PrOmOcyjnej usługi z ulgą

Warunki Oferty PrOmOcyjnej usługi z ulgą Warunki Oferty PrOmOcyjnej usługi z ulgą 1. 1. Opis Oferty 1.1. Oferta Usługi z ulgą (dalej Oferta ), dostępna będzie w okresie od 16.12.2015 r. do odwołania, jednak nie dłużej niż do dnia 31.03.2016 r.

Bardziej szczegółowo

Wiedza niepewna i wnioskowanie (c.d.)

Wiedza niepewna i wnioskowanie (c.d.) Wiedza niepewna i wnioskowanie (c.d.) Dariusz Banasiak Katedra Informatyki Technicznej Wydział Elektroniki Wnioskowanie przybliżone Wnioskowanie w logice tradycyjnej (dwuwartościowej) polega na stwierdzeniu

Bardziej szczegółowo

Komunikat dla osób rozliczających umowy w sprawie nowego sposobu rozliczania umów w związku z likwidacją II fazy rozliczeń.

Komunikat dla osób rozliczających umowy w sprawie nowego sposobu rozliczania umów w związku z likwidacją II fazy rozliczeń. Cel wprowadzenia nowego modelu: Komunikat dla osób rozliczających umowy w sprawie nowego sposobu rozliczania umów w związku z likwidacją II fazy rozliczeń. 1. Unifikacja procesu rozliczeń w skali całego

Bardziej szczegółowo

Kompozycja i dziedziczenie klas

Kompozycja i dziedziczenie klas Programowanie obiektowe Kompozycja i dziedziczenie klas Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Kompozycja i dziedziczenie klas

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

POLITYKA PRYWATNOŚCI SKLEPU INTERNETOWEGO

POLITYKA PRYWATNOŚCI SKLEPU INTERNETOWEGO POLITYKA PRYWATNOŚCI SKLEPU INTERNETOWEGO www.tokyotey.pl 1. Zagadnienia wstępne. 1. Pod pojęciem Serwisu rozumie się stronę internetową znajdującą się pod adresem www.tokyotey.pl wraz z wszelkimi podstronami

Bardziej szczegółowo

Harmonogramowanie projektów Zarządzanie czasem

Harmonogramowanie projektów Zarządzanie czasem Harmonogramowanie projektów Zarządzanie czasem Zarządzanie czasem TOMASZ ŁUKASZEWSKI INSTYTUT INFORMATYKI W ZARZĄDZANIU Zarządzanie czasem w projekcie /49 Czas w zarządzaniu projektami 1. Pojęcie zarządzania

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

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

Tworzenie modelu obiektowego

Tworzenie modelu obiektowego Metody strukturalne tworzenia oprogramowania, opierają się na wyróżnianiu w tworzonym oprogramowaniu dwóch rodzajów składowych: pasywnych odzwierciedlających fakt przechowywania w systemie pewnych danych

Bardziej szczegółowo

Konfiguracja historii plików

Konfiguracja historii plików Wielu producentów oprogramowania oferuje zaawansowane rozwiązania do wykonywania kopii zapasowych plików użytkownika czy to na dyskach lokalnych czy w chmurze. Warto jednak zastanowić się czy instalacja

Bardziej szczegółowo

epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji

epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji Projekt współfinansowany ze środków Europejskiego Funduszu Rozwoju Regionalnego w ramach Programu Operacyjnego Innowacyjna Gospodarka

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

INTERAKTYWNA APLIKACJA MAPOWA MIASTA RYBNIKA INSTRUKCJA OBSŁUGI

INTERAKTYWNA APLIKACJA MAPOWA MIASTA RYBNIKA INSTRUKCJA OBSŁUGI INTERAKTYWNA APLIKACJA MAPOWA MIASTA RYBNIKA INSTRUKCJA OBSŁUGI Spis treści Budowa okna aplikacji i narzędzia podstawowe... 4 Okno aplikacji... 5 Legenda... 5 Główne okno mapy... 5 Mapa przeglądowa...

Bardziej szczegółowo

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy Instrukcja obsługi programu 2.11. Przygotowanie programu do pracy - ECP Architektura inter/intranetowa System Informatyczny CELAB Przygotowanie programu do pracy - Ewidencja Czasu Pracy Spis treści 1.

Bardziej szczegółowo

Post-relacyjne bazy danych

Post-relacyjne bazy danych Post-relacyjne bazy danych Historia języka SQL 1. Sequel-XRM 2. Sequel/2 SQL 3. ANSI SQL 1986 (ISO 1987) 4. X/Open (UNIX), SAA(IBM) 5. ANSI SQL 1989 6. ANSI/ISO SQL 92 Entry level 7. ANSI SQL 92 (SQL 2)

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

Aplikacje internetowe oparte na kluczowych technologiach Java Enterprise(Servlet,JSP,JDBC, )

Aplikacje internetowe oparte na kluczowych technologiach Java Enterprise(Servlet,JSP,JDBC, ) Kod szkolenia: Tytuł szkolenia: JEE/JSP Aplikacje internetowe oparte na kluczowych technologiach Java Enterprise(Servlet,JSP,JDBC, ) Dni: 5 Opis: Adresaci szkolenia: Szkolenie adresowane jest do programistów

Bardziej szczegółowo

PROCEDURA ADMINISTROWANIA ORAZ USUWANIA

PROCEDURA ADMINISTROWANIA ORAZ USUWANIA Załącznik nr 5 do umowy nr 11/DI/PN/2013 PROCEDURA ADMINISTROWANIA ORAZ USUWANIA BŁĘDÓW I AWARII W APLIKACJI CENTRALNEJ Rozdział 1. ADMINISTROWANIE APLIKACJĄ CENTRALNĄ 1. Wykonawca zobowiązany jest do

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

DE-WZP.261.11.2015.JJ.3 Warszawa, 2015-06-15

DE-WZP.261.11.2015.JJ.3 Warszawa, 2015-06-15 DE-WZP.261.11.2015.JJ.3 Warszawa, 2015-06-15 Wykonawcy ubiegający się o udzielenie zamówienia Dotyczy: postępowania prowadzonego w trybie przetargu nieograniczonego na Usługę druku książek, nr postępowania

Bardziej szczegółowo

Edycja geometrii w Solid Edge ST

Edycja geometrii w Solid Edge ST Edycja geometrii w Solid Edge ST Artykuł pt.: " Czym jest Technologia Synchroniczna a czym nie jest?" zwracał kilkukrotnie uwagę na fakt, że nie należy mylić pojęć modelowania bezpośredniego i edycji bezpośredniej.

Bardziej szczegółowo

Projektowanie i programowanie obiektowe (materiały do wykładu cz. VI)

Projektowanie i programowanie obiektowe (materiały do wykładu cz. VI) Projektowanie i programowanie obiektowe (materiały do wykładu cz. VI) Jacek Cichosz www.zssk.pwr.wroc.pl Katedra Systemów i Sieci Komputerowych Politechnika Wrocławska Dziedziczenie 221 Dziedziczenie Dziedziczenie

Bardziej szczegółowo

Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach.

Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach. Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach. 1 PROJEKTY KOSZTOWE 2 PROJEKTY PRZYCHODOWE 3 PODZIAŁ PROJEKTÓW ZE WZGLĘDU

Bardziej szczegółowo

WYKŁAD 8. Postacie obrazów na różnych etapach procesu przetwarzania

WYKŁAD 8. Postacie obrazów na różnych etapach procesu przetwarzania WYKŁAD 8 Reprezentacja obrazu Elementy edycji (tworzenia) obrazu Postacie obrazów na różnych etapach procesu przetwarzania Klasy obrazów Klasa 1: Obrazy o pełnej skali stopni jasności, typowe parametry:

Bardziej szczegółowo

Oprogramowanie FonTel służy do prezentacji nagranych rozmów oraz zarządzania rejestratorami ( zapoznaj się z rodziną rejestratorów FonTel ).

Oprogramowanie FonTel służy do prezentacji nagranych rozmów oraz zarządzania rejestratorami ( zapoznaj się z rodziną rejestratorów FonTel ). {tab=opis} Oprogramowanie FonTel służy do prezentacji nagranych rozmów oraz zarządzania rejestratorami ( zapoznaj się z rodziną rejestratorów FonTel ). Aplikacja umożliwia wygodne przeglądanie, wyszukiwanie

Bardziej szczegółowo

Polityka prywatności strony internetowej wcrims.pl

Polityka prywatności strony internetowej wcrims.pl Polityka prywatności strony internetowej wcrims.pl 1. Postanowienia ogólne 1.1. Niniejsza Polityka prywatności określa zasady gromadzenia, przetwarzania i wykorzystywania danych w tym również danych osobowych

Bardziej szczegółowo

Wdrożenie modułu płatności eservice dla systemu Virtuemart 2.0.x

Wdrożenie modułu płatności eservice dla systemu Virtuemart 2.0.x Wdrożenie modułu płatności eservice dla systemu Virtuemart 2.0.x Wersja 02 Styczeń 2016 Centrum Elektronicznych Usług Płatniczych eservice Sp. z o.o. Spis treści 1. Wstęp... 3 1.1. Przeznaczenie dokumentu...

Bardziej szczegółowo

Obiektowe bazy danych Obiektowe i obiektowo-relacyjne bazy danych

Obiektowe bazy danych Obiektowe i obiektowo-relacyjne bazy danych Obiektowe bazy danych Obiektowe i obiektowo-relacyjne bazy danych Wykład prowadzi: Tomasz Koszlajda Obiektowe bazy danych Obiektowe i obiektowo-relacyjne bazy danych W ramach niniejszego wykładu zostaną

Bardziej szczegółowo

Elementy i funkcjonalno

Elementy i funkcjonalno Konsola operatora Konsola operatora zapewnia dost p do najwa niejszych informacji o po czeniu i aktualnym statusie abonentów, dzi ki czemu u atwia przekazywanie po cze. Konsola przewy sza swoimi mo liwo

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych

Bardziej szczegółowo

Odpowiedzi na pytania zadane do zapytania ofertowego nr EFS/2012/05/01

Odpowiedzi na pytania zadane do zapytania ofertowego nr EFS/2012/05/01 Odpowiedzi na pytania zadane do zapytania ofertowego nr EFS/2012/05/01 1 Pytanie nr 1: Czy oferta powinna zawierać informację o ewentualnych podwykonawcach usług czy też obowiązek uzyskania od Państwa

Bardziej szczegółowo

ZARZĄDZENIE WEWNĘTRZNE Nr 10 / 2006 WÓJTA GMINY RABA WYŻNA z dnia 07 lutego 2006 roku

ZARZĄDZENIE WEWNĘTRZNE Nr 10 / 2006 WÓJTA GMINY RABA WYŻNA z dnia 07 lutego 2006 roku ZARZĄDZENIE WEWNĘTRZNE Nr 10 / 2006 WÓJTA GMINY RABA WYŻNA z dnia 07 lutego 2006 roku w sprawie: wprowadzenia regulaminu naboru zatrudniania pracowników w Urzędzie Gminy w Rabie Wyżnej Na podstawie art.

Bardziej szczegółowo

Systemy mikroprocesorowe - projekt

Systemy mikroprocesorowe - projekt Politechnika Wrocławska Systemy mikroprocesorowe - projekt Modbus master (Linux, Qt) Prowadzący: dr inż. Marek Wnuk Opracował: Artur Papuda Elektronika, ARR IV rok 1. Wstępne założenia projektu Moje zadanie

Bardziej szczegółowo

PRAWA ZACHOWANIA. Podstawowe terminy. Cia a tworz ce uk ad mechaniczny oddzia ywuj mi dzy sob i z cia ami nie nale cymi do uk adu za pomoc

PRAWA ZACHOWANIA. Podstawowe terminy. Cia a tworz ce uk ad mechaniczny oddzia ywuj mi dzy sob i z cia ami nie nale cymi do uk adu za pomoc PRAWA ZACHOWANIA Podstawowe terminy Cia a tworz ce uk ad mechaniczny oddzia ywuj mi dzy sob i z cia ami nie nale cymi do uk adu za pomoc a) si wewn trznych - si dzia aj cych na dane cia o ze strony innych

Bardziej szczegółowo

REGULAMIN Komendy Powiatowej Policji w Świeciu z dnia 12 września 2011 r. naboru na wolne stanowiska w Korpusie Służby Cywilnej

REGULAMIN Komendy Powiatowej Policji w Świeciu z dnia 12 września 2011 r. naboru na wolne stanowiska w Korpusie Służby Cywilnej Komenda Powiatowa Policji w Świeciu L. Dz. 7924/11 REGULAMIN Komendy Powiatowej Policji w Świeciu z dnia 12 września 2011 r. naboru na wolne stanowiska w Korpusie Służby Cywilnej Celem regulaminu jest

Bardziej szczegółowo

System do kontroli i analizy wydawanych posiłków

System do kontroli i analizy wydawanych posiłków System do kontroli i analizy wydawanych posiłków K jak KORZYŚCI C jak CEL W odpowiedzi na liczne pytania odnośnie rozwiązania umożliwiającego elektroniczną ewidencję wydawanych posiłków firma PControl

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

Katedra Informatyki i Automatyki Politechnika Rzeszowska. Administrowanie bazą danych Oracle za pomocą programu DBA Studio. I.

Katedra Informatyki i Automatyki Politechnika Rzeszowska. Administrowanie bazą danych Oracle za pomocą programu DBA Studio. I. Katedra Informatyki i Automatyki Politechnika Rzeszowska www.kia.prz-rzeszow.pl Administrowanie bazą danych Oracle za pomocą programu DBA Studio I. Wprowadzenie Duże bazy danych pracują zwykle w konfiguracji

Bardziej szczegółowo

Miejski System Zarządzania - Katowicka Infrastruktura Informacji Przestrzennej

Miejski System Zarządzania - Katowicka Infrastruktura Informacji Przestrzennej Miejski System Zarządzania - Katowicka Infrastruktura Informacji Przestrzennej Geodezyjne referencyjne bazy danych: Ewidencja Gruntów i Budynków Instrukcja użytkownika Historia zmian Wersja Data Kto Opis

Bardziej szczegółowo

OPIS PRZEDMIOTU ZAMÓWIENIA DO ZAPYTANIA KE1/POIG 8.2/13

OPIS PRZEDMIOTU ZAMÓWIENIA DO ZAPYTANIA KE1/POIG 8.2/13 Zapytanie ofertowe - Działanie PO IG 8.2 Warszawa, dnia 13.12.2013 r. OPIS PRZEDMIOTU ZAMÓWIENIA DO ZAPYTANIA KE1/POIG 8.2/13 ISTOTNE INFORMACJE O PROJEKCIE: Celem projektu "Wdrożenie zintegrowanego systemu

Bardziej szczegółowo

GENERALNY INSPEKTOR OCHRONY DANYCH OSOBOWYCH

GENERALNY INSPEKTOR OCHRONY DANYCH OSOBOWYCH GENERALNY INSPEKTOR OCHRONY DANYCH OSOBOWYCH dr Edyta Bielak-Jomaa Warszawa, dnia 1 kwietnia 2016 r. DOLiS 035 2332/15 Prezydent Miasta K. WYSTĄPIENIE Na podstawie art. 19a ust. 1 ustawy z dnia 29 sierpnia

Bardziej szczegółowo

P 0max. P max. = P max = 0; 9 20 = 18 W. U 2 0max. U 0max = q P 0max = p 18 2 = 6 V. D = T = U 0 = D E ; = 6

P 0max. P max. = P max = 0; 9 20 = 18 W. U 2 0max. U 0max = q P 0max = p 18 2 = 6 V. D = T = U 0 = D E ; = 6 XL OLIMPIADA WIEDZY TECHNICZNEJ Zawody II stopnia Rozwi zania zada dla grupy elektryczno-elektronicznej Rozwi zanie zadania 1 Sprawno przekszta tnika jest r wna P 0ma a Maksymaln moc odbiornika mo na zatem

Bardziej szczegółowo

WARUNKI TECHNICZNE ARCHIWIZACJI DOKUMENTÓW

WARUNKI TECHNICZNE ARCHIWIZACJI DOKUMENTÓW Załącznik nr 1 WARUNKI TECHNICZNE ARCHIWIZACJI DOKUMENTÓW 1. PRZEDMIOT ZAMÓWIENIA Przedmiotem zamówienia jest utworzenie bazy danych elektronicznego archiwum dokumentów Powiatowego Ośrodka Dokumentacji

Bardziej szczegółowo

Regulamin Zarządu Pogórzańskiego Stowarzyszenia Rozwoju

Regulamin Zarządu Pogórzańskiego Stowarzyszenia Rozwoju Regulamin Zarządu Pogórzańskiego Stowarzyszenia Rozwoju Art.1. 1. Zarząd Pogórzańskiego Stowarzyszenia Rozwoju, zwanego dalej Stowarzyszeniem, składa się z Prezesa, dwóch Wiceprezesów, Skarbnika, Sekretarza

Bardziej szczegółowo

Metody dostępu do danych

Metody dostępu do danych Metody dostępu do danych dr inż. Grzegorz Michalski Na podstawie materiałów dra inż. Juliusza Mikody Jak działa JDO Podstawowym zadaniem JDO jest umożliwienie aplikacjom Javy transparentnego umieszczenia

Bardziej szczegółowo

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce)

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce) emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce) Zastosowanie Rozszerzenie to dedykowane jest sklepom internetowych zbudowanym w oparciu

Bardziej szczegółowo

Sieć komputerowa grupa komputerów lub innych urządzeo połączonych ze sobą w celu wymiany danych lub współdzielenia różnych zasobów, na przykład:

Sieć komputerowa grupa komputerów lub innych urządzeo połączonych ze sobą w celu wymiany danych lub współdzielenia różnych zasobów, na przykład: Sieci komputerowe Sieć komputerowa grupa komputerów lub innych urządzeo połączonych ze sobą w celu wymiany danych lub współdzielenia różnych zasobów, na przykład: korzystania ze wspólnych urządzeo, np.

Bardziej szczegółowo

SBQL. język zapytań dla obiektowych baz danych. Kamil Adamczyk. Uniwersytet Warszawski 20.IV.2009

SBQL. język zapytań dla obiektowych baz danych. Kamil Adamczyk. Uniwersytet Warszawski 20.IV.2009 SBQL język zapytań dla obiektowych baz danych Kamil Adamczyk Uniwersytet Warszawski 20.IV.2009 Spis treści 1. Wstęp 2. Obiektowe bazy danych Model danych Języki zapytań Dostępne produkty 3. Sbql Główne

Bardziej szczegółowo

System Zarządzania Relacyjną Bazą Danych (SZRBD) Microsoft Access 2010

System Zarządzania Relacyjną Bazą Danych (SZRBD) Microsoft Access 2010 System Zarządzania Relacyjną Bazą Danych (SZRBD) Microsoft Access 2010 Instrukcja do zajęć laboratoryjnych Część 1. ĆWICZENIE 1 ZADANIE 1 Utworzyć bazę danych Osoby, składającą się z jednej tabeli o następującej

Bardziej szczegółowo

REJESTRATOR RES800 INSTRUKCJA OBSŁUGI

REJESTRATOR RES800 INSTRUKCJA OBSŁUGI AEK Zakład Projektowy Os. Wł. Jagiełły 7/25 60-694 POZNAŃ tel/fax (061) 4256534, kom. 601 593650 www.aek.com.pl biuro@aek.com.pl REJESTRATOR RES800 INSTRUKCJA OBSŁUGI Wersja 1 Poznań 2011 REJESTRATOR RES800

Bardziej szczegółowo

Zobacz to na własne oczy. Przyszłość już tu jest dzięki rozwiązaniu Cisco TelePresence.

Zobacz to na własne oczy. Przyszłość już tu jest dzięki rozwiązaniu Cisco TelePresence. Informacje dla kadry zarządzającej Zobacz to na własne oczy. Przyszłość już tu jest dzięki rozwiązaniu Cisco TelePresence. 2010 Cisco i/lub firmy powiązane. Wszelkie prawa zastrzeżone. Ten dokument zawiera

Bardziej szczegółowo

EdgeCAM 12.0 brak moŝliwości instalacji na Windows 2000

EdgeCAM 12.0 brak moŝliwości instalacji na Windows 2000 EdgeCAM 12.0 PL Skrótowy opis nowości EdgeCAM 12.0 brak moŝliwości instalacji na Windows 2000 Uwaga!!! Aby zaktualizować EdgeCAM do wersji 12.0 wymagane jest posiadanie opieki technicznej przynajmniej

Bardziej szczegółowo

Jak rozwi zania SAP BusinessObjects wspieraj dzia alno NBP analityka w Narodowym Banku Polskim

Jak rozwi zania SAP BusinessObjects wspieraj dzia alno NBP analityka w Narodowym Banku Polskim Jak rozwi zania SAP BusinessObjects wspieraj dzia alno NBP analityka w Narodowym Banku Polskim Dariusz Popis Maciej Wojtyniak AGENDA 1. Kim jeste my? 2. Dlaczego wybrali my aplikacj SAP BusinessObjects

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

Archiwum Prac Dyplomowych

Archiwum Prac Dyplomowych Archiwum Prac Dyplomowych Instrukcja dla studentów Ogólna procedura przygotowania pracy do obrony w Archiwum Prac Dyplomowych 1. Student rejestruje pracę w dziekanacie tej jednostki uczelni, w której pisana

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

Microsoft Management Console

Microsoft Management Console Microsoft Management Console Konsola zarządzania jest narzędziem pozwalającym w prosty sposób konfigurować i kontrolować pracę praktycznie wszystkich mechanizmów i usług dostępnych w sieci Microsoft. Co

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

Programowanie Zespołowe

Programowanie Zespołowe Programowanie Zespołowe Systemy kontroli wersji dr Rafał Skinderowicz mgr inż. Michał Maliszewski Systemy kontroli wersji Śledzenie zmian, np.: w kodzie źródłowym Łączenie zmian dokonanych w plikach Ułatwienie

Bardziej szczegółowo

Instrukcja sporządzania skonsolidowanego bilansu Miasta Konina

Instrukcja sporządzania skonsolidowanego bilansu Miasta Konina Załącznik Nr 1 Do zarządzenia Nr 92/2012 Prezydenta Miasta Konina z dnia 18.10.2012 r. Instrukcja sporządzania skonsolidowanego bilansu Miasta Konina Jednostką dominującą jest Miasto Konin (Gmina Miejska

Bardziej szczegółowo

Mapowanie obiektowo-relacyjne z wykorzystaniem Hibernate

Mapowanie obiektowo-relacyjne z wykorzystaniem Hibernate Wirtualne przedsiębiorstwo II Mapowanie obiektowo-relacyjne z wykorzystaniem Hibernate Łukasz Macierzyński 157588 Daniel Nikończuk 157621 Kacper Oko 157626 Agenda 1. Co to jest mapowanie obiektowo-relacyjne

Bardziej szczegółowo

Spis tre±ci. Przedmowa... Cz ± I

Spis tre±ci. Przedmowa... Cz ± I Przedmowa.................................................... i Cz ± I 1 Czym s hurtownie danych?............................... 3 1.1 Wst p.................................................. 3 1.2 Denicja

Bardziej szczegółowo

DOTACJE NA INNOWACJE ZAPYTANIE OFERTOWE

DOTACJE NA INNOWACJE ZAPYTANIE OFERTOWE Rentis S.A. ul. Krakowska 204 02-219 Warszawa Warszawa, dnia 20.10.2014 r. ZAPYTANIE OFERTOWE W związku z realizacją projektu pn. Wdrożenie systemu B2B pomiędzy Global Rent a Car S.A. i jego partnerami

Bardziej szczegółowo

SQL. Ćwiczenia praktyczne. Wydanie II

SQL. Ćwiczenia praktyczne. Wydanie II Idź do Spis treści Przykładowy rozdział Katalog książek Katalog online Zamów drukowany katalog Twój koszyk Dodaj do koszyka Cennik i informacje Zamów informacje o nowościach Zamów cennik Czytelnia Fragmenty

Bardziej szczegółowo

KOMISJA WSPÓLNOT EUROPEJSKICH. Wniosek DECYZJA RADY

KOMISJA WSPÓLNOT EUROPEJSKICH. Wniosek DECYZJA RADY KOMISJA WSPÓLNOT EUROPEJSKICH Bruksela, dnia 13.12.2006 KOM(2006) 796 wersja ostateczna Wniosek DECYZJA RADY w sprawie przedłużenia okresu stosowania decyzji 2000/91/WE upoważniającej Królestwo Danii i

Bardziej szczegółowo