java

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ java ] in KIDS
글 쓴 이(By): hell (나누구야)
날 짜 (Date): 1997년12월28일(일) 09시10분24초 ROK
제 목(Title): [JDBC] Getting Started 한글판(1-3)



1.1.4 2-티어(tier) 그리고 3-티어(tier) 모델들 
JDBC API는 데이터베이스 접근에 대해서 2-tier와 3-tier 모델 모두를 지원한다. 
2-tier 모델에서는 자바 애플릿 또는 어플리케이션이 데이터베이스와 직접 
통신한다. 
이것은 접근한 특정 DBMS와 통신할 수 있는 JDBC 드라이버가 필요하다. 
사용자의 SQL문을 데이터베이스로 전달하고, 그 SQL문의 결과를 사용자에 되돌려 
준다. 
데이터베이스는 사용자가 네트워크를 통해 연결한 다른 머신상에 위치할 것이다. 
이것은 사용자의 머신이 클라이언트, 그리고 데이터베이스를 가지고 있는 머신이 
서버로써 클라이언트/서버 구성에 속한다. 
네트워크는 인트라넷이 될 수 도 있고, 인터넷이 될 수도 있다. 

[그림 : 2-tier 모델] 

3-tier 모델에서는 명령들을 서비스의 "미들티어(middle-tier)"로 보내고, 그리고 
나서 SQL문을 데이터베이스로 보낸다. 데이터베이스는 SQL문을 처리하고 결과를 
미들티어로 되돌려주며, 그런다음 그것을 사용자에게 전송한다. MIS 관리자는 
미들티어가 기업 데이터로 만들 수 있는 일종의 최신정보와 억세스에 대한 관리를 
유지하는 것이 가능하기 때문에 3-tier 모델에 매우 매력을 느낀다. 다른 장점은 
미들티어가 있을때에는, 사용자는 미들티어에 의해 해석되어지는 사용하기 쉬운 
하이레벨 API를 가지고 적절한 로우레벨 호출을 할 수 있다는 것이다. 결국 많은 
경우에서 3-tier 구조는 성능적 이점을 제공할 수 있다. 

[그림 : 3-tier 모델] 

지금까지 미들티어는 전형적으로 C나 C++과 같은 언어로 작성되어 졌고, 이것은 
빠른 성능을 제공했다. 
그러나 자바 바이트코드를 유효한 특정 머신 코드로 변환하는 최적화 컴파일러의 
도입으로, 미들티어를 자바로 구현하는 것이 가능해졌다. 
자바의 견고성, 멀티쓰래딩 그리고 보안 형태들을 이용하는 것이 가능하므로 
자바를 이용하는 것은 큰 프러스 요인이 된다. 
JDBC는 자바 미들티어로부터 데이터베이스 접근을 허용하도록 하는 것이 중요하다. 


1.1.5 SQL 일치 

Structured Query Language(SQL)은 관계 데이터베이스에 접근하기 위한 표준 
언어이다. 
한가지 어려운 점은 비록 대부분의 DBMS들이 기본적인 기능을 위해서는 SQL의 
표준형식을 사용하지만, 
더욱 고도의 기능을 사용하기위해서 최근에 정의된 표준 SQL 문장이나 문법을 
따르지 않는다는 것이다. 
예를 들어, 저장 프로시져(stroed procedure), 외부 결합(outer join) 그리고 서로 
호환되지 않는 것들을 
모든 데이터베이스들이 지원하지는 않는다. 
정말로 표준이 되는 SQL의 부분에 더욱 많은 기능이 포함되도록 확장되어지기를 
기대한다. 
그러나 그러는 동안에도 JDBC API는 지금 있는 SQL을 지원해야한다. 

JDBC API가 이러한 문제를 해결하는 한가지 방법은 어떠한 질의(query) 스트링도 
갖고 있는 DBMS 드라이버를 통해 
전달되도록 허용하는 것이다. 이것은 어플리케이션이 요청된 SQL 기능만큼을 
자유로이 사용할 수 있다는 것을 의미한다. 
그러나 몇몇 DBMS들에서 에러가 발생할 수도 있다. 사실상 어플리케이션 질의는 
심지어 SQL이 아니거나 
문서, 이미지 질의와 같은 특정 DBMS를 위해 만들어진 전문적인 파생적 SQL이 
되어도 된다. 

JDBC가 SQL 일치의 문제를 처리하는 두 번째 방법은 ODBC 스타일의 escape절을 
제공하는 것이다. 
이것은 4.1.5장 "Statement 객체내의 SQL Escape문"에서 논의되어질 것이다. 

escape문장은 몇몇 SQL 차이의 공통적인 영역을 위한 표준 JDBC 문장을 제공한다. 
예를 들어, 날짜 리터럴과 저장 프로시져 호출을 위한 escape들이 있다. 

복잡한 어플리케이션에서 JDBC는 세가지 방법으로 SQL 일치를 처리한다. 
JDBC는 어플리케이션이 각 DBMS의 요구사항과 특성을 적용할 수 있도록 
DatabaseMetaData 인터페이스를 사용하여 DBMS에 대한 설명적인 정보를 제공한다. 

JDBC API가 고수준 데이터베이스 접근 툴과 API를 위한 기본 API로 사용되기 
때문에, 
JDBC는 또한 그것을 토대로한 어떠한 것들을 위해서 일치 문제를 언급해야만 한다. 
"JDBC COMPLIANT" 칭호는 사용자들이 기대할 수 있는 JDBC 기능의 표준 레벨을 
설정하기 위해서 만들어졌다. 
이러한 칭호를 사용하기 위해서는 드라이버가 적어도 ANSI SQL-2 Entry Level을 
지원해야한다
(ANSI SQL-2는 1992년에 미국 국제표준기구(American National Standards 
Institute)에 의해 적용된 표준을 말한다. 
Entry Level은 특정 SQL의 특성들의 목록을 말한다). 
드라이버 개발자들은 JDBC API와 이용가능한 테스트 슈트(suite)를 사용하여 
자신의 드라이버가 이러한 표준을 만족하는지 확인할 수 있다. 

"JDBC COMPLIANT" 칭호는 밴더의 JDBC 사용이 JavaSoft에 의해 제공된 일치검사에 
통과했다는 것을 나타낸다. 
이러한 일치검사는 JDBC API에 정의된 모든 클래스들과 메쏘드들의 존재를 
검사하고, 가능한대로 SQL Entry Level 기능을 사용할 수 있는지 검사한다. 
물론 이러한 검사가 철저한 것은 아니며, JavaSoft는 현재 밴더 사용을 상품화하지 
않고 이러한 일치 정의를 JDBC 구현에 약간의 신뢰도를 제공한다. 
데이터베이스 밴더, 연결 밴더, 인터넷 서비스 밴더 그리고 어플리케이션 
제작자들에 의한 
JDBC API가 광범위한 호평을 받으면서 JDBC는 빠르게 자바 데이터베이스 접근을 
위한 표준이 될 것이다.
 
~~moom~~ ~~moom~~ ~~moom~~ ~~moom~~ ~~moom~~ ~~moom~~ ~~moom~~ ~~moom~~ ~~moom~
KAIST전기및전자공학과학부96김태홍 URL :: http://volt.kaist.ac.kr/~dodo
dodo@ohm dodo@csqueen dodo96@nownuri hell@kids nextism@ara 
~~moom~~ ~~moom~~ ~~moom~~ ~~moom~~ ~~moom~~ ~~moom~~ ~~moom~~ ~~moom~~ ~~moom~
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.