JDBC(Java Database Connectivity)는 기본적으로 제공되는 API 중의 하나로서
자바 프로그램에서 데이터베이스에 연결하여 데이터를 검색할 수 있게 하는 라이브러리이다.
ex) 연결 풀 기능(connection pooling), 분산 트랜잭션 기능(distributed transactions)
JDBC API는 Two-tier와 Three-tier 처리 모델을 모두 지원한다.
Two-tier(2계층)
클라이언트 계층과 Data 계층으로 이루어져
클라이언트와 서버를 분리하여 어플리케이션과 데이터베이스가 분리되어있기 때문에 데이터베이스의 변경이 편리한 장점을 가지고 있다.
Three-tier(3계층)
3계층 구조에서 각 계층은 물리적으로도 독립적이며 각 계층의 변경이 다른 계층에 의존하지 않는다.
클라이언트 계층은 응용 프로그램의 최상위에 위치하고 있는데 이는 서로 다른 층에 있는 데이터 등과 커뮤니케이션을 한다.
ex) HTML, javascript, CSS, image
이 계층은 비즈니스 로직 계층 또는 트랜잭션 계층이라고도 하는데,
클라이언트 요청에 대해 마치 서버처럼 행동하고, 세 번째 계층의 프로그램에 대해서는 마치 클라이언트처럼 행동한다.
ex) Java EE, ASP.NET, PHP
데이터 계층은 데이터베이스와 그것에 액세스해서 읽거나 쓰는 것을 관리하는 프로그램을 포함한다.
ex) MySQL DB, Oracle DB
DBMS(데이터베이스 관리 시스템)
다수의 사용자를 위하여 데이터가 저장, 접근, 변경되는 기능을 정의한 DB관리 시스템
데이터를 계층 또는 탐색 형식으로 저장한다.
파일 시스템을 사용해 저장하여, 테이블 간에는 아무런 관계가 없다.
ex) Sybase, dbase, Microsoft Access
RDBMS(관계형 데이터베이스 관리 시스템)
RDB(관계형 데이터베이스)
여러 개의 테이블 간에는 공통적인 데이터로 인하여 어떤 관계가 성립될 수 있다.
RDBMS 테이블은 서로 연관되어 있어 DBMS보다 효율적으로 데이터를 저장, 구성 및 관리할 수 있다.
정규화를 통해 중복성을 최소화하며 트랜잭션을 수행하는 것이 더 쉽다.
ex) MySQL, Oracle, MSSQL
SQL - 관계형 데이터베이스에서 사용하기 위해 설계된 언어
JDBC를 이용하여 데이터베이스를 사용하는 전형적인 절차
(JDBC 드라이버 설치)