Odwzorowanie obiektowo-relacyjne. Wykład opracował: Tomasz Koszlajda
|
|
- Wiktoria Lipińska
- 8 lat temu
- Przeglądów:
Transkrypt
1 Odwzorowanie obiektowo-relacyjne Wykład opracował: Tomasz Koszlajda
2 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
3 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
4 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
5 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
6 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") }
7 Przykładowa definicja klas Dany model klas przetwarzanych przez aplikacje bazy danych Osoba +imię : String +nazwisko : String [1] [0..*] +wiek : integer +płeć : Płeć posiada {non complete, overlapping} Samochód +nr_rejestracyjny : String +producent : String +model : String +moc : Integer Pracownik +etat: String +płaca: float +firma: Sring Student +Uczelnia: String +Kierunek: String +rokstudiów: integer
8 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 nullable = false, length = 25); public String }
9 Odwzorowanie OID W JPA możliwe określanie OID obiektów (@id) oraz sposobu generowania jego 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 public class Osoba implements Serializable { private @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="seq_store") public Integer getid() {... } Cecha Id nie posiada wszystkich cech OID.
10 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.
11 Odwzorowanie związków Przykład implementacji związku 1:N w public class Samochód implements Serializable = {CascadeType.REMOVE} public Właściciel GetWłaściciel() { return właściciel; }... }
12 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() {...
13 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
14 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
15 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
16 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 {... }
17 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
18 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 {... 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
19 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
20 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
21 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
23 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ół optymistyczny protokół pesymistyczny liczba konfliktów
24 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.
25 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.
26 Działanie algorytmu Przykład synchronizacji dwóch transakcji T 1 i T 2. T 1 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.
27 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.
28 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
29 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.
30 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
31 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
32 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();
33 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
34 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()
35 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
36 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(); }
37 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ę.
38 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
39 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.
40 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
41 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.
42 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
43 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
44 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
45 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
46 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
47 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
Obiektowe bazy danych
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
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
Wielowersyjne metody synchronizacji transakcji
Wielowersyjne metody synchronizacji transakcji Jednowersyjne algorytmy synchronizacji Wszystkie modyfikacje danych polegają na zniszczeniu starej wartości danych i wpisaniu w jej miejsce nowej wartości.
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
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
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
Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe
Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe -- Definicje relacji i utworzenie stanu początkowego dla ćwiczeń z synchronizacji transakcji DROP TABLE Konta cascade constraints; DROP TABLE
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)
Java Persistence API - zagadnienia zaawansowane
Program szkolenia: Java Persistence API - zagadnienia zaawansowane Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Java Persistence API - zagadnienia zaawansowane Java-EE-jpa-pro
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
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
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
1 Przetwarzanie transakcyjne Cechy transakcji Rozpoczęcie i zakończenie Punkty bezpieczeństwa... 3
Plan wykładu Spis treści 1 Przetwarzanie transakcyjne 1 1.1 Cechy transakcji................................. 2 1.2 Rozpoczęcie i zakończenie........................... 3 1.3 Punkty bezpieczeństwa.............................
przykłady problemów; realizacja dostaw części od producenta do klienta:
Przetwarzanie transakcyjne Transakcja zestaw operacji pod szczególną kontrolą transakcja to sekwencja operacji, która musi zakończyć się sukcesem w całości - w przeciwnym wypadku musi powrócić stan początkowy
BAZY DANYCH. Transakcje. opracowanie: Michał Lech
BAZY DANYCH Transakcje opracowanie: Michał Lech Plan wykładu 1. Transakcje - co to jest? 2. Mechanizmy transakcji 3. Reguły ACID 4. Niekorzystne zjawiska 5. Poziomy izolacji 6. Polecenia PostgreSQL transakcji
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
Bazy danych tworzenie aplikacji bazodanowych ORM / JPA
Bazy danych tworzenie aplikacji bazodanowych ORM / JPA ORM (Object Relationa Mapping)/ORB (Object Relational Broker) to nazwa mechanizmu tłumaczenia obiektowej postaci danych wykorzystywanej w aplikacjach
Transakcje. (c) Instytut Informatyki Politechniki Poznańskiej
ransakcje Definicja i własności transakcji, zatwierdzanie i wycofywanie, punkty bezpieczeństwa, spójność, anomalie współbieżnego dostępu do danych, poziomy izolacji transakcji, blokady, zakleszczenie Definicja
Wzorce dystrybucji i wspólbieżności autonomicznej
Wzorce dystrybucji i wspólbieżności autonomicznej 1. Wzorce dystrybucji, fasada zdalna (Remote Facade), obiekt transfery danych (Data Transfer Object), 2. Wzorce współbieżności autonomicznej, blokada optymistyczna
Wzorce logiki dziedziny
Wzorce logiki dziedziny 1. Wzorce logiki dziedziny skrypt transakcji (Transaction Script), brama tabeli (Table Data Gateway), model dziedziny (Domain model), strategia (Strategy), moduł tabeli (Table Module),
Przykładowa baza danych BIBLIOTEKA
Przykładowa baza danych BIBLIOTEKA 1. Opis problemu W ramach zajęć zostanie przedstawiony przykład prezentujący prosty system biblioteczny. System zawiera informację o czytelnikach oraz książkach dostępnych
Bazy danych. Dr inż. Paweł Kasprowski
Plan wykładu Bazy danych Architektura systemów zarządzania bazami danych Realizacja zapytań algebra relacji Wielodostęp do danych - transakcje Dr inż. Paweł Kasprowski pawel@kasprowski.pl Aplkacja przechowująca
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
Oracle PL/SQL. Paweł Rajba.
Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 7 Dynamiczny SQL i PL/SQL Pierwotny dynamiczny SQL Pierwotny dynamiczny DDL Pierwotny dynamiczny DML i SELECT Pakiet DBMS_SQL Transakcje
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
Jarosław Kuchta Projektowanie Aplikacji Internetowych. Projektowanie warstwy danych
Jarosław Kuchta Projektowanie Aplikacji Internetowych Projektowanie warstwy danych Zagadnienia Sposoby zapisu danych zewnętrznych Odwzorowanie dziedziny problemu w dziedzinę danych Normalizacja relacyjnej
JAVA PERSISTENCE API CZĘŚĆ 2 ASPEKTY ZAAWANSOWANE. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska
JAVA PERSISTENCE API CZĘŚĆ 2 Waldemar Korłub ASPEKTY ZAAWANSOWANE Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska JPA w aplikacji Java EE Połączeniem z bazą danych zarządza serwer aplikacji
Ustawienie na poziomie sesji (działa do zmiany lub zakończenia sesji zamknięcia połączenia).
POZIOMY IZOLACJI TRANSAKCJI 1. Microsoft SQL Server 2012 (od SQL Server 2005) W systemie SQL Server można wybrać sposób sterowania współbieżnością. Podstawowy sposób to stosowanie blokad. Wykorzystywane
Programowanie obiektowe
Programowanie obiektowe Wykład 13 Marcin Młotkowski 24 maja 2018 Plan wykładu 1 Trwałość obiektów 2 Marcin Młotkowski Programowanie obiektowe 509 / 553 Plan wykładu Trwałość obiektów 1 Trwałość obiektów
BEAN VALIDATION. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska
BEAN VALIDATION Waldemar Korłub Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska Bean Validation Uniwersalny mechanizm walidacji danych we wszystkich warstwach aplikacji Warstwa interfejsu,
Programowanie wielowarstwowe i komponentowe
Programowanie wielowarstwowe i komponentowe HIBERNATE CD. Rodzaje relacji Jeden do wielu Pojedyncza Osoba ma wiele Wpisów Wiele do jednego Wiele Wpisów należy do jednej Osoby Jeden do jednego Pojedyncza
3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota
Laboratorium nr 3 1 Bazy Danych Instrukcja laboratoryjna Temat: Wprowadzenie do języka SQL, tworzenie, modyfikacja, wypełnianie tabel 3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota 1)
PODSTAWY BAZ DANYCH. 5. Modelowanie danych. 2009/ Notatki do wykładu "Podstawy baz danych"
PODSTAWY BAZ DANYCH 5. Modelowanie danych 1 Etapy tworzenia systemu informatycznego Etapy tworzenia systemu informatycznego - (według CASE*Method) (CASE Computer Aided Systems Engineering ) Analiza wymagań
Pojęcie bazy danych. Funkcje i możliwości.
Pojęcie bazy danych. Funkcje i możliwości. Pojęcie bazy danych Baza danych to: zbiór informacji zapisanych według ściśle określonych reguł, w strukturach odpowiadających założonemu modelowi danych, zbiór
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
Metody dostępu do danych
Metody dostępu do danych dr inż. Grzegorz Michalski Na podstawie wykładów dra inż. Juliusza Mikody Obiekt interfejsu Session Jest to podstawowy interfejs komunikacji pomiędzy aplikacją, a API Hibernate
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
Rozdział 17. Zarządzanie współbieżnością zadania
Rozdział 17. Zarządzanie współbieżnością zadania Transakcja DML 1. Uruchom narzędzie Oracle SQL Developer i przyłącz się do bazy danych. Następnie rozpocznij nową transakcję, zmieniając pracownikowi o
Projektowanie aplikacji z bazami danych
Systemy mapowania relacyjno-obiektowego Instytut Informatyki Uniwersytet Wrocławski Plan wykładu Wprowadzenie do trwałości Niedopasowanie paradygmatów Architektura warstwowa Czym jest ORM? Problemy i pytania
Relacyjne bazy danych. Podstawy SQL
Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umożliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.
Wykład V. Indeksy. Struktura indeksu składa się z rekordów o dwóch polach
Indeksy dodatkowe struktury służące przyśpieszeniu dostępu do danych o użyciu indeksu podczas realizacji poleceń decyduje SZBD niektóre systemy bazodanowe automatycznie tworzą indeksy dla kolumn o wartościach
Podejście obiektowe do relacyjnych baz danych Hibernate.
Podejście obiektowe do relacyjnych baz danych Hibernate. Plan wykładu Czym jest Hibernate? Jakie są zalety pracy z Hibernate? Jak skonfigurować Hibernate? Jak korzystać z Hibernate? Praktyczne przykłady
Projektowanie warstwy danych
Jarosław Kuchta Internetowych Projektowanie warstwy danych qhta@eti.pg.gda.pl J.Kuchta@eti.pg.gda.pl Zagadnienia Sposoby zapisu danych zewnętrznych Odwzorowanie dziedziny problemu w dziedzinę danych Normalizacja
Algorytmy zarządzania współbieżnym wykonywaniem transakcji część II
Algorytmy zarządzania współbieżnym wykonywaniem transakcji część II Wykład przygotował: Tadeusz Morzy BD wykład 9 Kontynuujemy prezentację i omówienie algorytmów zarządzania współbieżnym wykonywaniem transakcji.
Właściwości transakcji
Transakcje Właściwości transakcji Transakcja jednostka operowania na bazie danych podlegająca kontroli i sterowaniu System zarządzania transakcjami ma za zadanie takie sterowanie operacjami na bazie danych,
Microsoft SQL Server Podstawy T-SQL
Itzik Ben-Gan Microsoft SQL Server Podstawy T-SQL 2012 przełożył Leszek Biolik APN Promise, Warszawa 2012 Spis treści Przedmowa.... xiii Wprowadzenie... xv Podziękowania... xix 1 Podstawy zapytań i programowania
Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia
Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia Składowe wyzwalacza ( ECA ): określenie zdarzenia ( Event ) określenie
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ą
Bazy danych wykład dziewiaty Transakcje. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa)
Bazy danych wykład dziewiaty Transakcje Konrad Zdanowski Uniwersytet Kardynała Stefana Wyszyńskiego, Warszawa dziewiaty Transakcje 1 / 42 Outline 1 Transakcje Problemy interakcji 2 Metody usuwania konfliktów
Procedury i funkcje składowane
Procedury i funkcje składowane Zmienne podstawienia i zmienne wiązane, podprogramy, procedury składowane, typy argumentów, wywoływanie procedur, funkcje składowane, poziomy czystości funkcji, funkcje tablicowe
Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści
Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, 2016 Spis treści Wprowadzenie Podziękowania xiii xvii 1 Podstawy zapytań i programowania T-SQL 1 Podstawy
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
Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych
Plan wykładu Bazy danych Wykład 9: Przechodzenie od diagramów E/R do modelu relacyjnego. Definiowanie perspektyw. Diagramy E/R - powtórzenie Relacyjne bazy danych Od diagramów E/R do relacji SQL - perspektywy
1 Wprowadzenie do J2EE
Wprowadzenie do J2EE 1 Plan prezentacji 2 Wprowadzenie do Java 2 Enterprise Edition Aplikacje J2EE Serwer aplikacji J2EE Główne cele V Szkoły PLOUG - nowe podejścia do konstrukcji aplikacji J2EE Java 2
Bazy danych 2. Wykład 6 Transakcje
Bazy danych 2 Wykład 6 Transakcje Transakcje Def. Transakcjami nazywamy logiczne jednostki pracy które wprowadzają zmiany do bazy danych lub które wyszukują dane O transakcjach mówimy w kontekście: aktualizacji
Iwona Milczarek, Małgorzata Marcinkiewicz, Tomasz Staszewski. Poznań, 30.09.2015
Iwona Milczarek, Małgorzata Marcinkiewicz, Tomasz Staszewski Poznań, 30.09.2015 Plan Geneza Architektura Cechy Instalacja Standard SQL Transakcje i współbieżność Indeksy Administracja Splice Machince vs.
PODSTAWY BAZ DANYCH 13. PL/SQL
PODSTAWY BAZ DANYCH 13. PL/SQL 1 Wprowadzenie do języka PL/SQL Język PL/SQL - rozszerzenie SQL o elementy programowania proceduralnego. Możliwość wykorzystywania: zmiennych i stałych, instrukcji sterujących
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
Obiektowość BD Powtórka Czas odpowiedzi. Bazy Danych i Systemy informacyjne Wykład 14. Piotr Syga
Bazy Danych i Systemy informacyjne Wykład 14 Piotr Syga 18.01.2019 Motywacja Ograniczenia relacyjnych baz danych proste typu i struktury klucze (w tym sztuczne) relacje między tabelami uwzględniane w triggerach
Internetowe bazy danych
Wyższa Szkoła Technologii Teleinformatycznych w Świdnicy Internetowe bazy danych wykład 3 dr inż. Jacek Mazurkiewicz e-mail: Jacek.Mazurkiewicz@pwr.wroc.pl Typy tabel MySQL domyślny MyISAM inne możliwe:
Plan ćwiczenia. Rozdział 17. zarządzania współbieżnością. Dostęp współbieżny a dostęp spójny. Spójność bazy danych
Plan ćwiczenia Rozdział 17 Zarządzanie współbieżnością Definicja i własności transakcji, zatwierdzanie i wycofywanie, punkty bezpieczeństwa, spójność, anomalie współbieżnego dostępu do danych, poziomy
Struktura drzewa w MySQL. Michał Tyszczenko
Struktura drzewa w MySQL Michał Tyszczenko W informatyce drzewa są strukturami danych reprezentującymi drzewa matematyczne. W naturalny sposób reprezentują hierarchię danych toteż głównie do tego celu
SZKOLENIE: Administrator baz danych. Cel szkolenia
SZKOLENIE: Administrator baz danych. Cel szkolenia Kurs Administrator baz danych skierowany jest przede wszystkim do osób zamierzających rozwijać umiejętności w zakresie administrowania bazami danych.
15. Funkcje i procedury składowane PL/SQL
15. Funkcje i procedury składowane PLSQL 15.1. SQL i PLSQL (Structured Query Language - SQL) Język zapytań strukturalnych SQL jest zbiorem poleceń, za pomocą których programy i uŝytkownicy uzyskują dostęp
DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ];
Braki w SQL obsługi zdarzeń i sytuacji wyjątkowych funkcji i procedur użytkownika definiowania złożonych ograniczeń integralnościowych Proceduralny SQL Transact- SQL używany przez Microsoft SQL Server
Programowanie obiektowe
Programowanie obiektowe Wykład 5 Marcin Młotkowski 23 marca 2017 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 50 Historia Początkowe założenia Projekt OAK Sterowanie urządzeniami
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
E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze
Funkcje użytkownika Tworzenie funkcji Usuwanie funkcji Procedury składowane Tworzenie procedur składowanych Usuwanie procedur składowanych Wyzwalacze Wyzwalacze a ograniczenia i procedury składowane Tworzenie
Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.
Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne. 1 Perspektywa Perspektywa (ang. view) jest strukturą
K1A_W11, K1A_W18. Egzamin. wykonanie ćwiczenia lab., sprawdzian po zakończeniu ćwiczeń, egzamin, K1A_W11, K1A_W18 KARTA PRZEDMIOTU
(pieczęć wydziału) KARTA PRZEDMIOTU 1. Nazwa przedmiotu: BAZY DANYCH 2. Kod przedmiotu: 3. Karta przedmiotu ważna od roku akademickiego: 2014/2015 4. Forma kształcenia: studia pierwszego stopnia 5. Forma
Model relacyjny. Wykład II
Model relacyjny został zaproponowany do strukturyzacji danych przez brytyjskiego matematyka Edgarda Franka Codda w 1970 r. Baza danych według definicji Codda to zbiór zmieniających się w czasie relacji
Opisy efektów kształcenia dla modułu
Karta modułu - Bazy Danych II 1 / 5 Nazwa modułu: Bazy Danych II Rocznik: 2012/2013 Kod: BIT-2-105-s Punkty ECTS: 4 Wydział: Geologii, Geofizyki i Ochrony Środowiska Poziom studiów: Studia II stopnia Specjalność:
Wykład XII. optymalizacja w relacyjnych bazach danych
Optymalizacja wyznaczenie spośród dopuszczalnych rozwiązań danego problemu, rozwiązania najlepszego ze względu na przyjęte kryterium jakości ( np. koszt, zysk, niezawodność ) optymalizacja w relacyjnych
Baza danych sql. 1. Wprowadzenie
Baza danych sql 1. Wprowadzenie Do tej pory operowaliście na listach. W tej instrukcji pokazane zostanie jak stworzyć bazę danych. W zadaniu skorzystamy z edytora graficznego struktury bazy danych, który
MongoDB. wprowadzenie. dr inż. Paweł Boiński, Politechnika Poznańska
MongoDB wprowadzenie dr inż. Paweł Boiński, Politechnika Poznańska Plan Historia Podstawowe pojęcia: Dokument Kolekcja Generowanie identyfikatora Model danych Dokumenty zagnieżdżone Dokumenty z referencjami
Zasady transformacji modelu DOZ do projektu tabel bazy danych
Zasady transformacji modelu DOZ do projektu tabel bazy danych A. Obiekty proste B. Obiekty z podtypami C. Związki rozłączne GHJ 1 A. Projektowanie - obiekty proste TRASA # * numer POZYCJA o planowana godzina
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
Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/
Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/ Aplikacja internetowa tworzona na podstawie bazy danych. Programowanie komponentowe 2, Zofia
Język SQL podstawy zapytań
Język SQL podstawy zapytań 1 Plan prezentacji 1. Krótka historia języka SQL 2. Cechy języka SQL 3. Przykładowa baza danych 4. Podstawy zapytań - operacje na modelu relacyjnym 5. Polecenie SELECT zapytania
Kurs programowania aplikacji bazodanowych
Wykład 5 Instytut Informatyki Uniwersytet Wrocławski Plan wykładu Wprowadzenie do XPO Podstawowe obiekty Utrwalanie obiektów Transakcje i współbieżność Wzorzec unit of work Odwzorowanie dziedziczenia Asocjacje
P o d s t a w y j ę z y k a S Q L
P o d s t a w y j ę z y k a S Q L Adam Cakudis IFP UAM Użytkownicy System informatyczny Aplikacja Aplikacja Aplikacja System bazy danych System zarządzania baz ą danych Schemat Baza danych K o n c e p
Kurs programowania aplikacji bazodanowych
Wykład 6 Instytut Informatyki Uniwersytet Wrocławski Plan wykładu CastleProject i wzorzec ActiveRecord Wybrane możliwości Castle ActiveRecord Inicjalizja i konfiguracja Tworzenie klasy encji, dziedziczenie
Relacyjne bazy danych. Podstawy SQL
Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umoŝliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.
Hurtownie danych. 31 stycznia 2017
31 stycznia 2017 Definicja hurtowni danych Hurtownia danych wg Williama Inmona zbiór danych wyróżniający się następującymi cechami uporządkowany tematycznie zintegrowany zawierający wymiar czasowy nieulotny
Tworzenie komponentów logiki biznesowej i warstwy dostępu do danych w oparciu o EJB3.0/JPA lub EJB 3.1/JPA2
Kod szkolenia: Tytuł szkolenia: EJB Tworzenie komponentów logiki biznesowej i warstwy dostępu do danych w oparciu o EJB3.0/JPA lub EJB 3.1/JPA2 Dni: 3 Opis: Adresaci szkolenia: Szkolenie adresowane jest
Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT
Studia podyplomowe Inżynieria oprogramowania współfinansowane przez Unię Europejska w ramach Europejskiego Funduszu Społecznego Projekt Studia podyplomowe z zakresu wytwarzania oprogramowania oraz zarządzania
Tworzenie raportów XML Publisher przy użyciu Data Templates
Tworzenie raportów XML Publisher przy użyciu Data Templates Wykorzystanie Szablonów Danych (ang. Data templates) jest to jedna z metod tworzenia raportów w technologii XML Publisher bez użycia narzędzia
Bazy danych 2. Wykład 1
Bazy danych 2 Wykład 1 Sprawy organizacyjne Materiały i listy zadań zamieszczane będą na stronie www.math.uni.opole.pl/~ajasi E-mail: standardowy ajasi@math.uni.opole.pl Sprawy organizacyjne Program wykładu
ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko. Typy rozproszonych baz danych. Systemy klient-serwer. Klient-serwer: Przykład
ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko Typy rozproszonych baz Systemy typu klient-serwer (jeden serwer) Jednorodna rozproszona baza (kilka serwerow, jeden system zarzadzania baza ) Niejednorodna
Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (3) Wykład 11 Repository, Unit of Work Wiktor Zychla 2016
Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (3) Wykład 11 Repository, Unit of Work Wiktor Zychla 2016 Repository dodatkowa warstwa abstrakcji na obiektową warstwę dostępu do danych.
PRZESTRZENNE BAZY DANYCH WYKŁAD 2
PRZESTRZENNE BAZY DANYCH WYKŁAD 2 Baza danych to zbiór plików, które fizycznie przechowują dane oraz system, który nimi zarządza (DBMS, ang. Database Management System). Zadaniem DBMS jest prawidłowe przechowywanie
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.
Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE
Język DML Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE Systemy Baz Danych, Hanna Kleban 1 INSERT Instrukcja INSERT dodawanie
Zarządzanie bazą danych. Bazy Danych i Systemy informacyjne Wykład 4. Piotr Syga
Bazy Danych i Systemy informacyjne Wykład 4 Piotr Syga 26.10.2018 Procedury review Przypomnienie składni procedur Tworzenie DELIMITER $$ CREATE PROCEDURE zliczacz (OUT wynik INT) BEGIN operacje... END
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,
SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści
SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop. 2016 Spis treści O autorach 11 Podziękowania 12 Część I Wprowadzenie do języka SQL 13 Godzina 1. Witamy w świecie języka SQL 15
Bazy danych. Andrzej Łachwa, UJ, /15
Bazy danych Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 12/15 WSPÓŁBIEŻNOŚĆ Serwer bazodanowy nie może obsługiwać klientów sekwencyjnie: wszyscy musieli by czekać
Bazy danych 9. SQL Klucze obce Transakcje
Bazy danych 9. SQL Klucze obce Transakcje P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2005/06 Klucze obce Klucze obce powiazanie indeksowanej kolumny jakiejś tabeli z indeksowana kolumna
Bazy danych 1. Wykład 5 Metodologia projektowania baz danych. (projektowanie logiczne)
Bazy danych 1 Wykład 5 Metodologia projektowania baz danych (projektowanie logiczne) Projektowanie logiczne przegląd krok po kroku 1. Usuń własności niekompatybilne z modelem relacyjnym 2. Wyznacz relacje
Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/
Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/ Aplikacja internetowa tworzona na podstawie bazy danych. Programowanie komponentowe 2, Zofia