Database and Java다시 말해, 현재의 Database 기술로는 개방된 환경을 지원하기에는 무리가 따른다는 것이다. 이에 95년중반부터 새로운 이슈로 떠오르고 있는 Java 기술에서 지원하고 있는 JDBC 기술을 개방 환경이라할 수 있는 새로운 컴퓨팅 환경의 신Database 기술로 소개하고자 한다.
Database기술에 대한 새로운 요구를 정리해 보고, JDBC 기술에 대한 소개와 이용에 대해 살펴보고, 이를 통해 앞으로의 Database 기술로써 JDBC 기술을 제안해보고자 한다.
Database(데이터베이스)는 컴퓨터에서 다루는 모든 정보를 어떻게 다룰 것인가에 대한 논의가 이뤄낸 컴퓨터 기술의 한 분야이다.
현재 새로운 컴퓨팅 환경으로 대두되고 있는 월드와이드 웹이라는 개방된 환경에서
정보가 그 어느 때보다도 중요한 의미를 가진 존재가 되어버렸다.
더우기 새로운 Database 기술마저 요구되고 있다.
현재 Database 기술에서 Database는 크게 세가지로 분류가 되는 데,
관계형 데이터베이스, 객체 관계형 데이터베이스, 객체 지향형 데이터베이스가 바로 그것이다.
데이터베이스 모델을 구성요소의 관계 표현(Relationship)에 중점을 둔 데이터베이스 모델을 관계형 데이터베이스라고 한다.
Sybase, Informix, Oracle등과 같은 것들이 있으며, 일반적으로 많이 사용되어 왔던 데이터베이스이다.

데이터베이스 모델을 객체 단위의 관계표현(Object Relationship)에 중점을 둔 데이터베이스 모델을 객체 관계형 데이터베이스라고 한다.
Illustra가 대표적인 데이터베이스이며, 멀티미디어 정보가 많아지면서 점차 이런 형태의 데이터베이스로 구축되고 있는 실정이다.

[그림 2] 객체 관계형 데이터베이스(Object Relational Database)
데이터베이스 모델을 객체수준의 질의(Object-level Query)표현에 중점을 둔 데이터베이스 모델을 객체 지향형 데이터베이스라고 한다.
ObjectStore, VERSANT와 같은 데이터베이스가 이에 속하며, 현재로써는 가장 진보된 형태의 데이터베이스라고 할 수 있겠다.

[그림 3] 객체 지향형 데이터베이스(Object Oriented Database)
웹 환경에서 Database 기술에 어떤 새로운 기술적 요구가 있는지 살펴보기 전에 요즘 인터넷의 이슈중에 이슈라고 할 수 있는 인트라넷 솔루션을 구축한 한 사례를 살펴보자.

[그림 4] 인트라넷 솔루션 구성도
[그림4]는 어느 신문사에서 구축한 인트라넷 솔루션의 구성도이다.
이 인트라넷 솔루션에 대한 요구사항은 다음과 같았다,
새로운 Database 기술에 대한 요구를 일반적인 수준으로 정리를 해 보면 다음과 같다.
"Standard SQL database Access interface in Java Technology"
이 말은 JDBC를 짤막하게 한 마디로 설명한 말이다.
JDBC는 다양한 관계형 데이터베이스들을 위한 일관된 인터페이스를 제공하며,
Java API에는 java.sql 이라는 패키지로 정의되어 있다.
그 내용을 보면, Database Connection, SQL Statements, Result Sets, Database Metadata, 등등을 지원하고 있으며,
각기 다른 Database를 연결하고 있는 다중 드라이버를 지원하기 위한 Driver Manager를 통하여 구현되고 있으며,
Java Applet이나 Java Application에 의해 구현되거나 사용될 수 있다.
또한, 자바이외의 C/C++과 같은 언어로 구현되어 있는 Database Access Libariey들과 Native Method를 사용하여 연결할 수 있다.
이것은 API, Driver Manager, Driver Module 이렇게 3-tier 구조로 되어 있다. 실제로 이 3-tier 구조는 다시 다중 구조로 다단계화될 수가 있는 데, Driver Module이 그것인데 크게 세가지의 경우로 나누어 생각해 볼 수 있다.
이것은 한마디로 말해서, JDBC의 Method 호출을 ODBC 함수 호출로 바꿔주는 드라이버라고 볼 수 있다.
다시 말해서, 기존에 ODBC를 통해 연결되도록 구축되어 있는 시스템의 경우에 새로운 개발없이 기존의 시스템을 이용하여
새로운 솔루션이나 시스템을 웹과 같은 개방된 환경과 연동하고자 한다면, JDBC를 이용할 수가 있다는 말이다.
이 JDBC-ODBC Bridge 부분은 JavaSoft사와 InterSolv Inc. 에서 공동 개발한다.

[그림 5] JDBC와 일반 Database 연결

[그림 6] JDBC와 ODBC와의 연결

[그림 7] OpenChannel Client/Server를 이용한 연결

[그림 8] Applet에서의 이용 시나리오

[그림 9] Application에서의 이용 시나리오

[그림 10] 특별한 경우의 이용 시나리오
import java.net.URL;
import java.sql.*;
class Select {
public static void main(String argv[]) {
try {
// Create a URL specifying an ODBC data source name.
String url = "jdbc:odbc:employee";
// Connect to the database at that URL.
Connection con = DriverManager.getConnection(url, "jbpark", "");
// Excute a SELECT statement
Statement stmt = con.createStatement();
ResultSet rs = stmt.excuteQuery("SELECT a, b, c, d, key FROM
Table1");
// Step through the result rows.
System.out.println("Got result:");
while (rs.next()) {
// get the values from the current row:
int a = rs.getInt(1);
Numeric b = rs.getNumeric(2);
char c[] = rs.getString(3).tocharArray();
boolean d = rs.getBoolean(4);
String key = rs.getString(5);
// Now print out the result:
System.out.print(" key=" + key);
System.out.print(" a=" + a);
System.out.print(" b=" + b);
System.out.print(" c=");
for (int i = 0; i < c.length; i++) {
System.out.print(c[i]);
}
System.out.print(" d=" + d);
System.out.print("\n");
}
stmt.close();
con.close();
} catch (java.lang.Exception ex) {
ex.printStackTrace();
}
}
}
JDBC는 ODBC와 같은 기존의 개방형 Database 연결세트의 상위개념으로써 지원된다.
1996년안 발표될 JDK 1.1에서는 최종 버젼이 발표가 될것으로 예정되어 있다.
Java 기술의 대부분이 그런만큼 아직은 더 주목해야할 기술이다.
그러나, JDBC가 새로운 기술로 자리매김하리라는 것에 대해서는 의심하 여지가 없다.
문제는 얼마나 빨리 사용자와 개발자 모두가 요구하고 있는 수준까지 안정적으로 지원하는 가에 있다.
그러기 위해서는 JDBC 기술에 대해 관여하고 있는 모든 분야에서 온힘을 기울여야 할 것이다.
그럴 수 있기를 기대하면서, 이 글을 가름한다.