2013년 8월 13일 화요일

[3주차 2일] DBMS

DBMS(DataBase Management System)

: 개발자 대신 File 입출력을 하면서 Data를 저장, 조회, 변경, 삭제등의 작업을 하고 데이터를 효율적이고, 체계적으로 관리해주는 전문 소프트웨어로 MySQL, Oracle MS-SQL, DB2 등이 있다.
이중에서 data와 data사이의 관계까지 관리하는 것이 RDBMS(Relation DBMS)이다.

- 개발자가 File I/O 로부터 상당부분 자유로워 질수 있게 되었다.
- Data의 중복을 제거해준다.
- 결함을 제거해준다(무결)

Application은 DBMS에 명령어(SQL)을 보내면 DBMS는 read/write를 수행하고 결과를 Applicatoin에 보내준다.



DBMS의 발전

- Applicatoin에서 DBMS에 socket / server socket을 이용해서 Networking을 할 때 ID/Password, protocol 등이 필요한다.

DBMS마다 protocol이 다르다.



Native API(Vender API)의 등장

:  c/c++로 작성된 함수들의 모임으로, SQL문을 DBMS프로토콜에 맞추어 서버에 전달하고 서버에서 보낸 결과를 리턴해주는 열할을 수행 한다.

* 이걸로서 이전보다 DBMS로의 접근이 수월 해진다.
* DBMS마다 다른 DBMS API를 사용하기 때문에 함수의 사용이 달라서 프로그램을 재작성 해야 한다.



ODBC(Open DataBase Connectivity) API 명세

: DBMS마다 다른 DBMS API를 사용해서 함수의 사용이 달라서 통일이 되지 않았던 것을 MS사가 "ODBC API 명세"로 모든기능들을 포함해서 통일을 한다.
ODBC를 각각의 Native API를 호출하는 역할을 수행한다.
이것 역시도 c/c++로 작성되었다.

* 하나의 Application을 개발하고 여러개의 DBMS에 연결이 가능하다.
* 모든 DBMS에서 모든 함수를 구현해 놓은 것이 아니라 호환이 안 되는 경우도 발생한다.

ex>
    ODBC API에 정의된 기능이 120개라고 가정하자.
    Oracle  : 115개 구현
    MySQL : 98개 구현
    엑셀     : 40개 구현
    엑세스  : 60개 구현 
위와 같은 ODBC API에 모든 기능에 대해서 모드DBMS가 다 정의를 해놓은 것이 아니기 때문에 해당 기능이 구현 안 되있는 DBMS에서는 작동이 안 될 수도 있다.




JDBC

: java로 만들어진 프로그램에서 Type1~Type4에 따라서 ODBC, Native API, 직접호출하는 열할을 수행한다.
나중에 조금 더 자세히 알아보도록 하자.











댓글 없음:

댓글 쓰기