java

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



1.1.2 JDBC는 저수준 API 이고 고수준 API들의 기본이다. 

JDBC는 직접 SQL 명령을 호출하는데 사용되는 로우레벨 인터페이스이다.
이러한 동작에 아무런 문제가 없으며 다른 데이터베이스 연결 API보다 사용하기도 
쉽다.
그러나 또한 이것은 하이레벨 인터페이스와 툴들을 만드는데 기초가 되도록 
설계되었다.
하이레벨 인터페이스는 이해하기 쉽고 편리한 API를 사용하여 사용자에게는 
친숙하며 내부에서 
JDBC와 같은 로우레벨 인터페이스로 변환되어진다.
현재 JDBC와 함께 두종류의 하이레벨 API가 개발중에 있다.: 



an embedded SQL for Java.
적어도 하나의 밴더(vendor)는 이것을 만들 계획에 있다.
DBMS들은 데이터베이스에서 사용하기위해 특별하게 만들어진 언어인 SQL을 
사용한다.
JDBC는 자바메쏘드에 String으로 넘겨지는 SQL문이 필요하다.
내포 SQL preprocessor는 프로그래머가 직접 혼합 SQL문들을 자바로 대체하도록 
한다.
: 예를들어 SQL값을 얻거나 제공하기위해서 자바변수를 SQL문내에서 사용할 수 
있다.
내포 SQL preprocessor는 그 다음에 이러한 자바/SQL 혼합문을 JDBC 호출을 갖는 
자바로 바꾼다.


a direct mapping of relational database tables to Java classes. 
JavaSoft와 다른 회사들이 이것을 구현하려는 계획을 발표했다.
이러한 "object/relational" 매핑에서, 테이블의 각 열은 그 클래스의 인스턴스가 
되고, 각 행은 그 인스턴스의 속성에 상응한다.
그래서 자바 프로그래머는 자바 객체를 직접 처리할 수 있다.
데이터를 패치하고 저장하는 요구된 SQL호출은 내부에서 자동적으로 생성된다.
더욱 정교한 매핑도 제공된다.
예를 들어 다중 테이블의 열을 자바 클래스와 결합하는 곳에 이러한 매핑이 
제공된다. 

JDBC에 대한 관심이 커지면서 더욱더 많은 개발자들이 프로그램 작성을 쉽게하기 
위해서 JDBC 기반의 툴들로 작업하고 있다.
프로그래머들은 또한 end-user가 쉽게 데이터베이스에 접근할 수 있게 해주는 
어플리케이션을 만들고 있다.
예를 들면, 선택하려는 데이터베이스 작업을 어플리케이션의 메뉴로 표시하고, 
작업이 선택되면 프롬프트와 선택 작업에 필요한 정보를 입력받기 위한 
블랭크(blank)를 제시한다.
그러다음 타이핑된 요청입력을 가지고 자동적으로 필요한 SQL 명령을 호출한다.
이러한 어플리케이션의 도움을 받아서 사용자들은 SQL 문법을 거의 모른다해도 
데이터베이스 작업을 할 수 있다. 

1.1.3 JDBC : ODBC 그리고 다른 API들 


아마도 현재 관계 데이터베이스에 접근하기위해 가장 많이 사용되는 프로그래밍 
인터페이스는 Micorsoft의 ODBC(Open DataBase Connectivity) API일 것이다. 
이것은 거의 모든 플랫폼상의 거의 모든 데이터베이스에 연결할 수 있다. 
그럼 자바에서 ODBC를 바로 사용하는 것은 어떤가? 

자바에서 ODBC를 사용할 수 있다.
그러나 이것은 조금 후에 언급할 JDBC-ODBC Bridge의 형태로 JDBC의 도움을 받을 
때 가장 잘 동작된다. 
그럼 "왜 JDBC가 필요한가?"에 대해 궁금할 것이다. 
이 질문에 대한 몇 개의 대답이 아래에 있다.: 



ODBC는 C 인터페이스를 사용하므로 자바에서 직접 사용하기에는 적당하지 않다. 
네이티브 C 코드를 자바에서 호출하는 것은 어플리케이션의 보안, 구현, 견고성, 
그리고 자동 이식에 많은 장애가 있다.

ODBC C API에서 자바 API로의 리터럴(literal) 변환을 요구하지 않는다. 
예를 들어, 자바는 포인터가 없고, ODBC는 에러를 발생시키는 것으로 유명한 "void 
*"를 포함하여 많은 포인터들이 사용된다. 
JDBC는 자바 프로그래머에게 자연스러운 객체지향 인터페이스로 변환된 ODBC로 
생각할 수 있다.

ODBC는 배우기가 어렵다. 
간단하고 복잡한 형태가 동시에 존재하고, 심지어 간단한 질의에도 복잡한 옵션을 
가진다. 
그런반면, JDBC는 간단한 것을 간단하게 처리하는 동시에 많은 진보된 능력이 
필요한 곳에 허용되도록 고안되었다.

"pure Java" 해결을 가능하게하기 위해서 JDBC와 같은 자바 API가 필요하다.
ODBC를 사용할때에는 ODBC 드라이버 관리자와 드라이버들를 손수 각 클라이언트 
머신에 인스톨해야한다. 
그러나 완전히 자바로 JDBC 드라이버를 작성하면, JDBC 코드가 네트워크 
컴퓨터부터 메인 프레임까지의 모든 자바 플랫폼들에서 자동적으로 초기화되고, 
이식되고, 안전해진다. 
요약하면, JDBC API는 기본 SQL 추상화와 개념으로의 본연의 자바 인터페이스이다. 
JDBC는 무(無)에서 만들어진 것이 아니라 ODBC를 토대로 만들어졌다. 
그래서 ODBC에 친숙한 프로그래머들은 JDBC를 배우기 쉽다. 
JDBC는 ODBC의 기본적인 디자인 형태를 그래도 가지고 있다. 
사실상 둘다 인터페이스는 X/OPEN SQL CLI(Call Level Inteface)를 기본으로 한다. 
커다란 차이는 JDBC가 자바의 스타일과 장점을 토대로 보강되었다는 것과 물론 
사용하기 쉽다는 것이다. 

최근에 Microsoft는 ODBC이외에 RDO, ADO, OLE DB라는 새로운 API를 내놓았다. 
이러한 디자인은 많은 면에서 JDBC와 같은 방향으로 움직인다. 
즉, ODBC에서 사용될 수 있는 클래스들을 기본으로한 객체지향 데이터베이스가 
되어간다. 
그러나 단지 겉치장만을 하고 있고 주목할 만한 기능은 발견할 수 없다. 
이것은 JDBC가 초기버전에서 진보될 필요가 없다는 것은 아니다. 
그러나 대부분의 새로운 기능은 이전 장에서 설명한 객체/관계 매핑과 내포 SQL와 
같은 고수준 API에 속한다. 
 
~~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] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.