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 ±â¼ú¿¡ ´ëÇØ °ü¿©Çϰí ÀÖ´Â ¸ðµç ºÐ¾ß¿¡¼ ¿ÂÈûÀ» ±â¿ï¿©¾ß ÇÒ °ÍÀÌ´Ù.
±×·² ¼ö Àֱ⸦ ±â´ëÇϸé¼, ÀÌ ±ÛÀ» °¡¸§ÇÑ´Ù.