230 likes | 380 Views
Hibernate. ORM za Javu. U samom početku. Relacijski model baza podataka E.F.Codd, 1970. karakteristike modela temelji u matematičkoj teoriji brz pristup podacima pojačan integritet podataka prvi komercijalni relacijski DBMS 1978. - Multics Relational Data Store. SQL.
E N D
Hibernate ORM za Javu
U samom početku... • Relacijski model baza podataka • E.F.Codd, 1970. • karakteristike modela • temelji u matematičkoj teoriji • brz pristup podacima • pojačan integritet podataka • prvi komercijalni relacijski DBMS • 1978. - Multics Relational Data Store
SQL • jezik za definiciju i manipulaciju podacima (DDL/DML) • nastao iz jezika SEQUEL • Oracle V2 • prvi RDBMS s podrškom za SQL • 1986. – postao svjetski standard
OOP • revolucija u programskom inžinjerstvu • novi oblik podataka, razredi (eng. classes) • mogućnost definiranja novih tipova • novi pojmovi: • nasljeđivanje • polimorfizam • enkapsulacija
ODBC (Open DataBase Connectivity) • nastao 1992. • Microsoft & Simba Technologies • prvo programsko sučelje za povezivanje s bazom podataka • JDBC – DBC sučelje za Javu
Trajnost • potreba za očuvanjem podataka • svi podaci privremeni (eng. transient) • trajnost (eng. persistence) • sposobnost podataka da nadžive proces koji ih je stvorio • ostvaruje se pohranjivanjem u baze podataka • postoji ozbiljan problem!
Nepodudarnost objekta i relacije • različito shvaćanje pojma “podatak” • OOP • entitet je objekt • objekti su povezani • nasljednoj hijerarhiji, polimorfni • relacijski model • enititet je n-torka • veze • spajanje tablica, strani ključevi
Nepodudarnost objekta i relacije • Moguća rješenja: • odbacivanje OOP • odbacivanje relacijskog modela • OODBMS? • nisu prihvatljiva • Postoji li rješenje?
ORM • preslikavanje objekata u relacije (eng. Object/Relation Mapping) • posredovanje između baze podataka i aplikacije • rezultat: • virtualna objektno orjentirana baza podataka!
ORM • posrednik između aplikacije i baze • algoritmi optimizacije • međuspremnik podataka • sakriva komunikaciju s bazom - transparentnost (eng. transparency) • više razina implementacije
ORM - Prednosti • veća produktivnost • lakše održavanje • bolje performanse • prenosivost
Hibernate • open-source ORM paket • namijenjen radu u Java okruženju • .NET verzija paketa – NHibernate
Hibernate - osobine • fleksibilnost razvojnog procesa • podržani razni scenariji razvoja • podrška za većinu DBMS-a na tržištu • podrška za višedretvenost
Hibernate - osobine • optimizacijski algoritmi • napredne metode dohvaćanja • HQL • objektno orjentirani upitni jezik • podrška za čisti SQL
Hibernate - konfiguracija • XML konfiguracijske datoteke • postavke veze • XML datoteke za preslikavanje • definicija preslikavanja podataka • definicija veza trajnih objekata • specificiranje algoritama i metoda dohvaćanja
Hibernate - sučelje • objektno sučelje prilagođeno Javi • veza s bazom predstavljena kao objekt • osnovne operacije bez korištenja upita • dodatni objekti za postavljanje upita (HQL/SQL)
Hibernate - komunikacija • komunikacija pomoću sjednica (eng. session) i transakcija (eng. transaction)
Hibernate – trajni objekti • minimalna ograničenja oblika trajnih razreda • podrška za nasljeđivanje i polimorfizam • strani ključevi u tablici - reference u aplikaciji
Hibernate – trajni objekti • relacijski funkcionalne kolekcije • automatsko nadziranje promjena trajnih objekata • prirodna implementacija integritetskih ograničenja
Hibernate - Demonstracija • Aplikacija videoteka
Hibernate - budućnost • velika podrška • široka online zajednica • razvoj u koraku s objektnom tehnologijom
Korisni linkovi • www.hibernate.org • službene stranice • forum.hibernate.org • forum Hibernate zajednice