고급 java 애플리케이션 구현을 위한 o/r mapping …...5 impedance mismatch 논리적...
TRANSCRIPT
![Page 1: 고급 Java 애플리케이션 구현을 위한 O/R Mapping …...5 Impedance Mismatch 논리적 데이터표현 오브젝트,메써드,상속 테이블,SQL,저장프로시져 규모](https://reader033.vdocuments.pub/reader033/viewer/2022041809/5e56c97d3501c734d32ca41e/html5/thumbnails/1.jpg)
1
고급 Java 애플리케이션구현을위한O/R Mapping Framework
OracleAS TopLink김철웅WAS팀한국오라클
![Page 2: 고급 Java 애플리케이션 구현을 위한 O/R Mapping …...5 Impedance Mismatch 논리적 데이터표현 오브젝트,메써드,상속 테이블,SQL,저장프로시져 규모](https://reader033.vdocuments.pub/reader033/viewer/2022041809/5e56c97d3501c734d32ca41e/html5/thumbnails/2.jpg)
2
차례
개요
TopLink 기술적소개TopLink컴포넌트
– Mapping Workbench– Foundation Library
TopLink 애플리케이션유형과개발절차
![Page 3: 고급 Java 애플리케이션 구현을 위한 O/R Mapping …...5 Impedance Mismatch 논리적 데이터표현 오브젝트,메써드,상속 테이블,SQL,저장프로시져 규모](https://reader033.vdocuments.pub/reader033/viewer/2022041809/5e56c97d3501c734d32ca41e/html5/thumbnails/3.jpg)
3
데이터베이스애플리케이션개발의문제
관계형데이터베이스를이용하는자바애플리케이션의개발의문제점
– 근본적으로다른기술스택
– 다른스킬세트
– 다른프로젝트구성원
– 다른모델링및디자인원칙
“노동집약으로비용이많이듬”
![Page 4: 고급 Java 애플리케이션 구현을 위한 O/R Mapping …...5 Impedance Mismatch 논리적 데이터표현 오브젝트,메써드,상속 테이블,SQL,저장프로시져 규모](https://reader033.vdocuments.pub/reader033/viewer/2022041809/5e56c97d3501c734d32ca41e/html5/thumbnails/4.jpg)
4
문제의근원
오브젝트– 실세계엔티티를디자인하고, 소프트웨어의표현으로사용
– 데이터와코드 ( 상태와행위) 로표현관계형데이터베이스
– 데이터를신뢰성있고, 대용량으로취급하고자함– 테이블로데이터를표현, SQL로데이터를다룸
“Impedance Mismatch”가존재
![Page 5: 고급 Java 애플리케이션 구현을 위한 O/R Mapping …...5 Impedance Mismatch 논리적 데이터표현 오브젝트,메써드,상속 테이블,SQL,저장프로시져 규모](https://reader033.vdocuments.pub/reader033/viewer/2022041809/5e56c97d3501c734d32ca41e/html5/thumbnails/5.jpg)
5
Impedance Mismatch
논리적데이터표현
오브젝트,메써드,상속 테이블,SQL,저장프로시져
규모 수백메가바이트 기가,테라바이트
관계의표현 메모리참조 외래키
유일성표현 내부오브젝트식별자 프라이머리키
주요기술 자바개발, 오브젝트모델링
SQL, 저장프로시져, 데이터관리, 데이터모델링
개발도구 IDE, 소스코드관리도구,오브젝트모델러
스키마디자이너, 쿼리관리자, 성능프로파일러, 데이터베이스구성도구
항목 J2EE 관계형데이터베이스
![Page 6: 고급 Java 애플리케이션 구현을 위한 O/R Mapping …...5 Impedance Mismatch 논리적 데이터표현 오브젝트,메써드,상속 테이블,SQL,저장프로시져 규모](https://reader033.vdocuments.pub/reader033/viewer/2022041809/5e56c97d3501c734d32ca41e/html5/thumbnails/6.jpg)
6
OracleAS TopLink솔루션
OracleAS TopLink는자바와 관계형데이터베이스사이의다양한매핑에주안점을둔강력하고도검증된 “out of the box”솔루션을제공
OracleOracleAS AS TopLinkTopLink
![Page 7: 고급 Java 애플리케이션 구현을 위한 O/R Mapping …...5 Impedance Mismatch 논리적 데이터표현 오브젝트,메써드,상속 테이블,SQL,저장프로시져 규모](https://reader033.vdocuments.pub/reader033/viewer/2022041809/5e56c97d3501c734d32ca41e/html5/thumbnails/7.jpg)
7
애플리케이션 ? 기반구조 ?
Work Smarter
데이터베이스를사용하는일반자바애플리케이션
Work harder
TopLink를사용한자바애플리케이션
TopLink 애플리케이션
애플리케이션개발 : 80기반구조개발 : 20
![Page 8: 고급 Java 애플리케이션 구현을 위한 O/R Mapping …...5 Impedance Mismatch 논리적 데이터표현 오브젝트,메써드,상속 테이블,SQL,저장프로시져 규모](https://reader033.vdocuments.pub/reader033/viewer/2022041809/5e56c97d3501c734d32ca41e/html5/thumbnails/8.jpg)
8
위험요소의제거
• TopLink는미션크리티컬애플리케이션에서검증된제품
• TopLink를사용하는개발시데이터베이스프로그래밍및애플리케이션서버기반구조전문가를필요로하지않음
• TopLink를사용하는애플리케이션의데이터베이스변화에따른매핑의유지보수의용이함
![Page 9: 고급 Java 애플리케이션 구현을 위한 O/R Mapping …...5 Impedance Mismatch 논리적 데이터표현 오브젝트,메써드,상속 테이블,SQL,저장프로시져 규모](https://reader033.vdocuments.pub/reader033/viewer/2022041809/5e56c97d3501c734d32ca41e/html5/thumbnails/9.jpg)
9
애플리케이션개발자/설계자를위한유연성
TopLink는 어떤모델/아키텍처와도연동
다양한모델링접근과툴셋을지원다양한아키텍쳐접근을지원
– 자바오브젝트
– Entity Bean– JSP– Servlet– 세션빈– Message Driven Beans– 2-Tier, 3-Tier, Peer-to-peer– Fat client, thin client
![Page 10: 고급 Java 애플리케이션 구현을 위한 O/R Mapping …...5 Impedance Mismatch 논리적 데이터표현 오브젝트,메써드,상속 테이블,SQL,저장프로시져 규모](https://reader033.vdocuments.pub/reader033/viewer/2022041809/5e56c97d3501c734d32ca41e/html5/thumbnails/10.jpg)
10
데이터베이스설계자를위한유연성
TopLink는어떤데이터베이스디자인과도연동DBA는데이터베이스디자인에만주력
– 자바애플리케이션으로부터데이터베이스를격리
– 데이터디자인이오브젝트모델에독립적이며그역도성립
데이터베이스의사용을극대화– 저장프로시져
– 유연성있는질의옵션
– 데이터변환
![Page 11: 고급 Java 애플리케이션 구현을 위한 O/R Mapping …...5 Impedance Mismatch 논리적 데이터표현 오브젝트,메써드,상속 테이블,SQL,저장프로시져 규모](https://reader033.vdocuments.pub/reader033/viewer/2022041809/5e56c97d3501c734d32ca41e/html5/thumbnails/11.jpg)
11
TopLink 채택의장점
비용절감의효과
성능의향상
생산성의향상
프로젝트의복잡성감소
유연성
![Page 12: 고급 Java 애플리케이션 구현을 위한 O/R Mapping …...5 Impedance Mismatch 논리적 데이터표현 오브젝트,메써드,상속 테이블,SQL,저장프로시져 규모](https://reader033.vdocuments.pub/reader033/viewer/2022041809/5e56c97d3501c734d32ca41e/html5/thumbnails/12.jpg)
12
차례
개요
TopLink 기술적소개TopLink컴포넌트
– Mapping Workbench– Foundation Library
TopLink 애플리케이션유형과개발절차
![Page 13: 고급 Java 애플리케이션 구현을 위한 O/R Mapping …...5 Impedance Mismatch 논리적 데이터표현 오브젝트,메써드,상속 테이블,SQL,저장프로시져 규모](https://reader033.vdocuments.pub/reader033/viewer/2022041809/5e56c97d3501c734d32ca41e/html5/thumbnails/13.jpg)
13
OracleAS TopLink
자바기반애플리케이션의관계형데이터저장을용이하게함
TopLink는퍼시스턴스와관련된자바애플리케이션의개발,배치,실행을단순하고편리하게함
Java application
JDBCOracle
TopLinkSQL
Rows
![Page 14: 고급 Java 애플리케이션 구현을 위한 O/R Mapping …...5 Impedance Mismatch 논리적 데이터표현 오브젝트,메써드,상속 테이블,SQL,저장프로시져 규모](https://reader033.vdocuments.pub/reader033/viewer/2022041809/5e56c97d3501c734d32ca41e/html5/thumbnails/14.jpg)
14
TopLink아키텍쳐
TopLink는 2가지주요컴포넌트로이루어짐– Mapping Workbench
개발시 매핑과 배치설정을지원하는 GUI 도구– Foundation Library
개발을위한 API 와읽기,쓰기,캐싱,트랜잭션,성능등을 유지하는런타임라이브러리로구성
– 다음과같은기술을기반으로구성
JDBC, JTS, J2EE/EJB, 오브젝트/관계형데이터베이스타입
![Page 15: 고급 Java 애플리케이션 구현을 위한 O/R Mapping …...5 Impedance Mismatch 논리적 데이터표현 오브젝트,메써드,상속 테이블,SQL,저장프로시져 규모](https://reader033.vdocuments.pub/reader033/viewer/2022041809/5e56c97d3501c734d32ca41e/html5/thumbnails/15.jpg)
15
차례
개요
TopLink기술적소개TopLink컴포넌트
– Mapping Workbench– Foundation Library
TopLink애플리케이션유형과개발절차
![Page 16: 고급 Java 애플리케이션 구현을 위한 O/R Mapping …...5 Impedance Mismatch 논리적 데이터표현 오브젝트,메써드,상속 테이블,SQL,저장프로시져 규모](https://reader033.vdocuments.pub/reader033/viewer/2022041809/5e56c97d3501c734d32ca41e/html5/thumbnails/16.jpg)
16
Mapping Workbench
O/R 매핑을표현하는메타데이터를생성하고유지하는 GUI
![Page 17: 고급 Java 애플리케이션 구현을 위한 O/R Mapping …...5 Impedance Mismatch 논리적 데이터표현 오브젝트,메써드,상속 테이블,SQL,저장프로시져 규모](https://reader033.vdocuments.pub/reader033/viewer/2022041809/5e56c97d3501c734d32ca41e/html5/thumbnails/17.jpg)
17
메타 데이터 아키텍쳐매핑정보는오브젝트가아닌 XML 디스크립터로유지OracleAS TopLink메타데이터는오브젝트모델혹은스키마에영향을주지않음
Employee E_ID A_IDB_DATEL_NAMEF_NAME
EMPLOYEE
- id- firstName- lastName- address- birthDate
- id- city- state- zip
A_ID ZIPSTATECITY
TopLink
Metadata
Address
ADDRESS
![Page 18: 고급 Java 애플리케이션 구현을 위한 O/R Mapping …...5 Impedance Mismatch 논리적 데이터표현 오브젝트,메써드,상속 테이블,SQL,저장프로시져 규모](https://reader033.vdocuments.pub/reader033/viewer/2022041809/5e56c97d3501c734d32ca41e/html5/thumbnails/18.jpg)
18
Mapping Workbench 개발옵션
IMPO
RTGEN
ERATE
IMPO
RT
(.class)
GENERATE
(.java)관계형데이터베이스
(스키마)자바 IDE
TopLink
Meta-Data(XML)
자바클래스
TopLinkMapping
Workbench
![Page 19: 고급 Java 애플리케이션 구현을 위한 O/R Mapping …...5 Impedance Mismatch 논리적 데이터표현 오브젝트,메써드,상속 테이블,SQL,저장프로시져 규모](https://reader033.vdocuments.pub/reader033/viewer/2022041809/5e56c97d3501c734d32ca41e/html5/thumbnails/19.jpg)
19
Mapping Workbench 지원사항
다양한오브젝트모델을다양한관계형데이터베이스스키마로매핑
– “Meet in the Middle”오브젝트모델로부터스키마를생성
스키마로부터오브젝트모델생성
데이터베이스의상세한정보에대한지식이없어도데이터베이스기능을사용할수있게함
![Page 20: 고급 Java 애플리케이션 구현을 위한 O/R Mapping …...5 Impedance Mismatch 논리적 데이터표현 오브젝트,메써드,상속 테이블,SQL,저장프로시져 규모](https://reader033.vdocuments.pub/reader033/viewer/2022041809/5e56c97d3501c734d32ca41e/html5/thumbnails/20.jpg)
20
단순오브젝트모델의예
Customer
id: intname: StringcreditRating: int
Address
id: intcity: Stringzip: String
11:1 Relationship
![Page 21: 고급 Java 애플리케이션 구현을 위한 O/R Mapping …...5 Impedance Mismatch 논리적 데이터표현 오브젝트,메써드,상속 테이블,SQL,저장프로시져 규모](https://reader033.vdocuments.pub/reader033/viewer/2022041809/5e56c97d3501c734d32ca41e/html5/thumbnails/21.jpg)
21
일반적인 1-1 관계스키마
CUST
ID NAME A_IDC_RATINGADDR
ID CITY ZIP
![Page 22: 고급 Java 애플리케이션 구현을 위한 O/R Mapping …...5 Impedance Mismatch 논리적 데이터표현 오브젝트,메써드,상속 테이블,SQL,저장프로시져 규모](https://reader033.vdocuments.pub/reader033/viewer/2022041809/5e56c97d3501c734d32ca41e/html5/thumbnails/22.jpg)
22
가능한스키마 (1)
CUST
ID NAME C_RATING C_ID
ADDR
ID CITY ZIP
A_ID
CUST_ADDR
C_ID
CUST
ID NAME C_RATE C_ID
ADDR
ID CITY ZIP
CUST
ID NAME CITY ZIPC_RATING
![Page 23: 고급 Java 애플리케이션 구현을 위한 O/R Mapping …...5 Impedance Mismatch 논리적 데이터표현 오브젝트,메써드,상속 테이블,SQL,저장프로시져 규모](https://reader033.vdocuments.pub/reader033/viewer/2022041809/5e56c97d3501c734d32ca41e/html5/thumbnails/23.jpg)
23
가능한스키마 (2)CUST
ID NAME A_ID
ADDR
ID CITY ZIP
CUST_CREDIT
ID C_RATING
CUST
ID NAME
ADDR
ID CITY ZIP
CUST_CREDIT
ID C_RATING A_ID
CUST
ID NAME
CUST_CREDIT
ID C_RATING
ADDR
ID CITY ZIP C_ID
CUST
ID NAME
CUST_CREDIT
ID C_RATING
ADDR
ID CITY ZIP C_ID CUST
ID NAME
ADDR
ID CITY ZIP
CUST_CREDIT
ID C_RATING A_IDCC_ID
![Page 24: 고급 Java 애플리케이션 구현을 위한 O/R Mapping …...5 Impedance Mismatch 논리적 데이터표현 오브젝트,메써드,상속 테이블,SQL,저장프로시져 규모](https://reader033.vdocuments.pub/reader033/viewer/2022041809/5e56c97d3501c734d32ca41e/html5/thumbnails/24.jpg)
24
고급 매핑 지원과 유연성
직접필드매핑, 1-1, 1-N , M-N 매핑을지원– 다양한종류의외래키관계를지원
오브젝트타입, 변환– Enumeration (‘Male’-> ‘M’) 혹은타입변환 (String ->
Number)– 사용자정의변환
집합, 다중테이블– 한행당여러개의오브젝트/ 빈– 다중테이블에오브젝트/빈을매핑
기타 –직렬화된매핑, Direct Collections, Object-Relational Mappings 등
![Page 25: 고급 Java 애플리케이션 구현을 위한 O/R Mapping …...5 Impedance Mismatch 논리적 데이터표현 오브젝트,메써드,상속 테이블,SQL,저장프로시져 규모](https://reader033.vdocuments.pub/reader033/viewer/2022041809/5e56c97d3501c734d32ca41e/html5/thumbnails/25.jpg)
25
차례
개요
TopLink 기술적소개TopLink컴포넌트
– Mapping Workbench– Foundation Library
TopLink애플리케이션유형과개발절차
![Page 26: 고급 Java 애플리케이션 구현을 위한 O/R Mapping …...5 Impedance Mismatch 논리적 데이터표현 오브젝트,메써드,상속 테이블,SQL,저장프로시져 규모](https://reader033.vdocuments.pub/reader033/viewer/2022041809/5e56c97d3501c734d32ca41e/html5/thumbnails/26.jpg)
26
TopLink런타임아키텍쳐
Data Source
TopL
ink Persistence Manager
CacheQuery
TX
Object Data
Conversion
J2EE Services
JTACMP/BMP
ConnectionPools
JDBC
Mappings
Presentation Interface
Application Logic
J2EEServer
Business Entities
![Page 27: 고급 Java 애플리케이션 구현을 위한 O/R Mapping …...5 Impedance Mismatch 논리적 데이터표현 오브젝트,메써드,상속 테이블,SQL,저장프로시져 규모](https://reader033.vdocuments.pub/reader033/viewer/2022041809/5e56c97d3501c734d32ca41e/html5/thumbnails/27.jpg)
27
쿼리 유연성
자바개발자스킬과기존시스템을이용한쿼리유연성
– SQL 과저장프로시져를지원– TopLink쿼리프레임워크를이용하여자바기반쿼리를설계
Java ExpressionsSQL/ Stored Proc
EJBQLOracleAS TopLink
Objects
SQL/Stored Proc
Rows
![Page 28: 고급 Java 애플리케이션 구현을 위한 O/R Mapping …...5 Impedance Mismatch 논리적 데이터표현 오브젝트,메써드,상속 테이블,SQL,저장프로시져 규모](https://reader033.vdocuments.pub/reader033/viewer/2022041809/5e56c97d3501c734d32ca41e/html5/thumbnails/28.jpg)
28
자바오브젝트쿼리
자바개발자의스킬을그대로이용
– SQL 사용을강제받지않음쉬운유지보수
고급쿼리지원
– 데이터베이스특정함수
– Outer-join– 중첩서브쿼리
– 새로운함수생성
쿼리는캐쉬를이용해 “in memory” 로운영할수있음
![Page 29: 고급 Java 애플리케이션 구현을 위한 O/R Mapping …...5 Impedance Mismatch 논리적 데이터표현 오브젝트,메써드,상속 테이블,SQL,저장프로시져 규모](https://reader033.vdocuments.pub/reader033/viewer/2022041809/5e56c97d3501c734d32ca41e/html5/thumbnails/29.jpg)
29
자바 오브젝트 쿼리 예“Widget”을주문한모든고객을찾는예제
–자바개발자를위한사용법 : custExpression.anyOf(“orders”).anyOf(“orderItems”). get(“product”).get("productName").equal(“Widget”)
– SQL로의표현:SELECT t3.ID, t3.FIRST_NAME, t3.LAST_NAME, t3.STREET, t3.CITY,
t3.STATE, t3.ZIP FROM CUSTOMER t3, ORDER t2, ORDER_ITEMS t1, PRODUCT t0 WHERE ((t0.PRODUCT_NAME = 'Widget') AND ((t2.CUST_ID = t3.ID) AND ((t1.ORDER_ID = t2.ID) AND (t0.ID = t1.PRODUCT_ID))))
Customer ProductOrder OrderItem1firstName
lastName
orders
productName
cost
weight
orderDate
cost
orderItems
quantity
discount
product
1 11* *
![Page 30: 고급 Java 애플리케이션 구현을 위한 O/R Mapping …...5 Impedance Mismatch 논리적 데이터표현 오브젝트,메써드,상속 테이블,SQL,저장프로시져 규모](https://reader033.vdocuments.pub/reader033/viewer/2022041809/5e56c97d3501c734d32ca41e/html5/thumbnails/30.jpg)
30
TopLink 런타임기능
Object Traversal – Lazy ReadsJust In Time ReadingCaching트랜잭션지원, 관리Locking성능튜닝옵션
![Page 31: 고급 Java 애플리케이션 구현을 위한 O/R Mapping …...5 Impedance Mismatch 논리적 데이터표현 오브젝트,메써드,상속 테이블,SQL,저장프로시져 규모](https://reader033.vdocuments.pub/reader033/viewer/2022041809/5e56c97d3501c734d32ca41e/html5/thumbnails/31.jpg)
31
차례
개요
TopLink 기술적소개TopLink컴포넌트
– Mapping Workbench– Foundation Library
TopLink애플리케이션유형과개발절차
![Page 32: 고급 Java 애플리케이션 구현을 위한 O/R Mapping …...5 Impedance Mismatch 논리적 데이터표현 오브젝트,메써드,상속 테이블,SQL,저장프로시져 규모](https://reader033.vdocuments.pub/reader033/viewer/2022041809/5e56c97d3501c734d32ca41e/html5/thumbnails/32.jpg)
32
TopLink 애플리케이션유형TL
TL
… DB
CMP Entity Beans: 네번째패턴과유사하지만매핑, 쿼리, 기타TopLink에의한호출은컨테이너가자동적으로관리
BMP Entity Beans: 세번째패턴의확장된형태로퍼시스턴트데이터를엔티티빈으로유지하며, 클라이언트는엔티티빈의인터페이스로접근
Session-Beans, JSP, Servlets with Java Objects: 3-tier 구조로부터확장된형태로세션빈에서퍼시스턴트자바오브젝트로접근하며, 주로 JTS 통합과클라이언트로의직렬화된데이터를취급
Three-Tier: TopLink가 J2EE 서버(애플리케이션서버) 에포함되는매우일반적인패턴으로서버컴포넌트, 웹클라이언트, 자바클라이언트 , XML/CORBA 기반클라이언트로부터접근
Two-Tier: 자바클라이언트에서데이터베이스에 TopLink를이용해직접연결, 애플리케이션서버, 서버환경이필요하지않음
ServerDBTL…
Server
TL…SB
SB… DB
Server
TL… EBBMP Container
DB
Server
TL… EBCMP Container
DB
![Page 33: 고급 Java 애플리케이션 구현을 위한 O/R Mapping …...5 Impedance Mismatch 논리적 데이터표현 오브젝트,메써드,상속 테이블,SQL,저장프로시져 규모](https://reader033.vdocuments.pub/reader033/viewer/2022041809/5e56c97d3501c734d32ca41e/html5/thumbnails/33.jpg)
33
TopLink 개발절차
Mapping Workbench
Transactional Framework(UOW)
Session Manager
Query Framework
TopLink
메타데이터(XML)
Businessmodel
Databaseschema
생성
메타데이터 O/R 매핑
저장한오브젝트관리에TopLink를사용
![Page 34: 고급 Java 애플리케이션 구현을 위한 O/R Mapping …...5 Impedance Mismatch 논리적 데이터표현 오브젝트,메써드,상속 테이블,SQL,저장프로시져 규모](https://reader033.vdocuments.pub/reader033/viewer/2022041809/5e56c97d3501c734d32ca41e/html5/thumbnails/34.jpg)
34
Demonstration