Tagged

OR dismatch

A collection of 6 posts

OR dismatch

The paradigm mismatch

Hibernate를 공부하는 중인데요. 객체와 Relation간의 어떤 차이들이 있는 것인지 궁금해서 살짝 공부해 봤습니다. The problem of graularity=> 알갱의 크기가 달라서 생기는 문제 The problem of subtypes=> 객체의 상속을 Relation에서 표현하기 위한 문제 The problem of identity=> 객체와 그에 해당하는 row를 식별하는 문제 Problems relating to associations=>

fetching

The problem of data navigation

참조 : Java Persistence With Hibernate 객체에서는 . 을 사용해서 다른 객체로 이동하곤 합니다. 하지만 SQL db에서 데이타를 이런식으로 가져오는 것은 효율적이지 않습니다. db의 성능을 높이는 방법으로 SQL 쿼리 숫자를 줄이는 겁니다. 그래서 연관된 table 간의 join을 이용해서 data를 가져 옵니다. 만약에 Member에 있는 데이타만 관심이 있다면 Select * From member; 이렇게 하면

Association

Problems relating to associations

참조 : Java Persistence With Hibernate 객체에서는 객체들의 관계를 reference를 사용해서 나타내지만 관계형 DB에서는 외례키로 나타내기 때문에[footnote]이밖에 데이타 무결성을 위해서도 사용된다.[/foonote] 발생하는 문제입니다. 방향성에 대한 차이 Object Reference는 고유의 방향성이 있다. 참조 하는 쪽과 참조 되는 쪽이 있다는 말인듯 합니다. 따라서 양방향성을 설정 하려면 두 번 설정해 줘야

Equality

The problem of identity

참조 : Java Persistence With Hibernate Java에는 두 가지의 동일성에 대한 표현[footnote]Equality를 나타내는 equals()와 Object identity를 나타내는 == 이 있습니다.[/footnote]이 있고 DB에서의 row에 대한 identity는 주키로 나타내기 때문에 발생하는 문제 입니다.[footnote]단순히 동일성 표현 방법의 갯수가 차이 나서 그런 것은 아닙니다.[/footnote] 9.2.2에 보시면

mapping class inheritance

The problem of subtypes

참조 : Java Persistence with Hibernate 객체에서는 상속이라는 것이 있는데 DB에는 그런게 없기 때문에 발생하는 문제입니다. 객체는 클래스라는 타입이 있고 이러한 타입이 상속되는 반면에 DB에 있는 Table은 type이 아니기 때문에 supertable 이나 subtable 같은 단어는 없습니다. 5장 5.1 “Mapping class inheritance”(p192)에서 이 문제에 대한 해결 방법이

coarse-grained

The problem of graularity

참조 : Java Persistence With Hibernate 객체는 덩어리의 사이즈가 다양하고 DB에는 덩어리라고 할 수 있는 것이 테이블과 레코드밖에 없기 때문에 생기는 불일치를 말합니다. 덩어리 사이즈에 대한 이해가 쉽지 않았습니다. 예전에 corse-grained와 fine-grained에 대해서 OpenSeed 온라인 강좌에 댓글로 질문을 올렸었는데요. 그 때 승택님께서 답변을 해주셨지만 사실..그땐 잘 이해를 못했었습니다. 지금 다시