+ All Categories

ORM

Date post: 30-Jul-2015
Category:
Upload: martin-stekl
View: 62 times
Download: 5 times
Share this document with a friend
22
ORM Vzory mapování a možnosti jejich implementace Martin Štekl @stekycz [email protected] 30.3.2013 1
Transcript

ORMVzory mapování a možnosti jejich implementace

Martin Štekl

@stekycz

[email protected]

30.3.2013

1

Co je ORM?

Object-relational mapping

Programovací technika

Mapování dat do objektů z

◦ Databáze

◦ Souborů

◦ REST/SOAP

◦ Jiného úložiště

2

Databáze

Data

◦ Tabulky (číselníky, data, cizí klíče, …)

◦ Pohledy

Logika

◦ Triggery

◦ Funkce

3

ZÁKLADNÍ VZORY

4

Přehled

Table Data Gateway

Row Data Gateway

Data Mapper

Active Record

Martin Fowler, Patterns of Enterprise Application Architecture

5

Table Data Gateway

Jedna tabulka nebo pohled

Základní CRUD

Doménový objekt jen obaluje data a

business logiku

Pracuje s kolekcemi položek

6

Table Data Gateway

7

Row Data Gateway

Jeden řádek tabulky nebo pohledu

Základní CRUD

Doménový objekt jen obaluje data a

business logiku

8

Row Data Gateway

9

Data Mapper

Přístup k objektu i databázi

Doménový objekt

◦ nemá žádný CRUD

◦ je zcela nezávislý

◦ jen obaluje data a business logiku

10

Data Mapper

11

Active Record

Obsahuje data a business logiku

CRUD operace přímo na objektu

Jednoduchý na implementaci

12

Active Record

13

Přístup k datům

Data access layer (DAL)

◦ vrstva pro přístup k persistentním datům

Data access object (DAO)

◦ abstraktní rozhraní pro DAL

◦ každá doména by měla mít vlastní

Data transfer object (DTO)

◦ přenos dat mezi různými částmi aplikace

◦ může se jednat o doménový objekt

14

Data access object

Jednotné rozhraní (CRUD?)

Co všechno má obsahovat?

◦ Základní přístup k datům

◦ Business logiku?

◦ Komunikaci s jinými DAO?

Lze použít jako službu v Nette?

15

NĚCO ZAJÍMAVĚJŠÍHO

16

Implementace

Neznamená použít Doctrine

Neznamená použít jiný framework

Neznamená generovat databázi nebo

model

Znamená dodržovat principy

17

Kam s filtrováním a řazením?

Přímo v kódu

Parametry metod

Pipes and Filters

18

Je to efektivní?

Záleží na implementaci

Optimalizace dotazů

◦ Zbytečné JOINy

Transakce

◦ Automatické

◦ Manuální

◦ Bez transakcí

19

V čem je háček?

Data z více různých úložišť

Cizí klíče (MyISAM)

Nepřímé vazby

Cache

Potřeba psát vlastní SQL dotazy?

Záleží na databázi, implementaci a

požadavcích

20

UKÁZKY KÓDU

21

DĚKUJI ZA POZORNOST

22


Recommended