미국 버클리대학교 M.스톤브레이커 교수는 세계 최고로 권위있는 데이터베이 스관련 학술대회 가운데 하나인 VLDB93(Very Large Data Base)에서 90년대의 데이터베이스 연구는 기술이 아니고 응용에 초점을 맞춰야 한다"고 주장 했다. 응용하는데는 클라이언트-서버(Client-Server)와 객체(Object)등 두 개념이 중심이 된다.
이 두개념은 공통점이 있다. 둘 다 자연스럽다는 것이다. 그렇기 때문에 막연하며 혼동을 줄수 있다. 따라서 만족스럽지 못한 평범한 정의밖에 내릴 수없다. 고객-서버클라이언트-서버는 유행이 아니고 정보처리 모형이며 더 나아가 사회적 패러다임이다. 표준에 충실한 개방적인 구조를 가지며 그 중심에는 언제나 데이터베이스가 있다.
고객서버정의 클라이언트-서버모형은 협력경쟁하는 사회에서 인간중재자를 없앰으로써 사용자 중심으로 서비스를 향상시키는 모형이다.
데이터베이스를 이용하여 응용하는데 대표적으로 *사용자 인터페이스 *응 용과 그 개발환경 *DBMS(SQL, 현재 그리고 미래의 DBMS)와 같은 세가지 수준의 기능을 정의할 수 있다.(통신망과 시스템관리는 제외)이 세가지 기능은 어떻게 분리하여 분산시키는가에 따라서 클라이언트-서버구조의 세대를 나눠볼 수 있다. <그림1>부터 <그림3>이 이를 보여 준다.(가트너그룹이 제안한 것과 일관성이 있다) 클라이언트-서버 구조를 자세히 정의하는 8가지 황금률을 소개하면 다음과같다. *제1법칙:지역내 처리의 자율성과 공통자료에 대한 쉬운 접근성 *제2법칙: 클라이언트와 서버의 지속적인 작용 *제3법칙:서버의 위치로부터의 독립 제4법칙 트랜잭션 관리로부터의 독립 *제5법칙:자료의 일관성 유지로부터의 독립 *제6법칙:클라이언트의 응용, 통신망 그리고 데이터베이스 서버로부터 의 독립 *제7법칙:개방구조 *제8법칙:전체 구조를 조정하기 위한 집중된 통제관리이다. 이 법칙들은 <그림2>의 제2세대 클라이언트-서버구조에서 증명된다. 마지막법칙은 분산 DBMS구조인 제3세대 클라이언트-서버구조에서 조정기능도 분산 된다. 클라이언트-서버의 실용적 접근:OSS(One-Stop Ser-vicing)모형 클라이언트-서버단어에서 중요한 부분은 대시(-)이다. 이는 사이모(middlewa re)를 가리키는데 어떤 통신망을 통해서도, 어떤 서버에 저장된 자료라도,어 떤 클라이언트가 사용하는 도구에서라도 필요한 응용을 가능하게 하는 도구 이다. 최근 들어 3가지 확실히 구분되는 전략을 갖는 사이모들이 한창 성장 하고 있다.
-고객측을 확장하는 도구 서버측을 확장하는 도구 독립적인 도구 클라이언트응용과 서버사이를 연결하기 위해 원격 프러시저 호출(RPC:Remote Procedure Call)을 이용하려면 시스템 개발자 수준의 전문지식과 경험이 필요하다. 그런데 RPC로 자동 번역해 주는 제4세대언어(4GL)제품이 존재하여클라이언트응용과 서버의 연결을 쉽게 해준다.
<그림4>는 여러 종류의 클라이언트도구와 서버를 각각 연결하는 조합을 보여준다. 이런 스파게티식 구조는 복잡하고 진화와 유지보수 측면에서 문제가 많다. 앞에서 열거한 법칙중 제3과 제8법칙은 거의 지켜지지 않는다.
현재 one-stop shopping이란 개념으로 성공하고 있는 대형 유통업체에서 아이디어를 빌려와 <그림5>와 같은 OSS(One-stop servicing)구조를 제안할 수있다. 이 모형은 클라이언트서버-구조의 성공의 근간이며 기존의 독자적인 시스템 에서 개방 시스템을 이용한 클라이언트-서버구조로 점진적으로 이주할수 있도록 해준다.
중개자 서버는 클라이언트-서버 황금률의 제3과 제8법칙을 구현하며 *기존 가치를 인정함 *이기종 서버, 여러도구들 그리고 새 응용의 통합 *유일한 중개자 서버를 통한 상호운용성의 집중적인 관리 *보다 쉬운 개발과 통제된 유지보수와 같은 장점이 있다.
중개자 서버에 집중된 구조에서 가장 큰 단점인 신뢰성 문제는 신뢰성이 있는 새로운 구조를 갖는 서버기계를 사용하거나 서버를 이중화하여 고장감내 를 고려함으로써 극복할 수 있다.
연구분야에서는 *자료나 자료처리의 적절한 분산방법 *파일과 제3세대 언어로 개발한 응용을 SQL서버응용으로 바꾸는 방법 *조직내 정보발생원에서 나온 자료들을 분석하여 의사결정에 필요한 정보로 가공하는 방법과 같은 문제들을 찾아냈다.
서버에서 취급하는 자료모형은 기본적으로 관계모형이고 그 표준접속방식은S QL로 생각한다.
관계 데이터베이스 서버 관계모형의 구조적 개념으로는 정의역과 관계 두가지가 있다. 전형적인 관계를 수립하려면 집합(SET)과 TUPLE(카테이션 곱하기) 연산을 순서대로 적용하면 된다. 정의역 개념은 실제 자료값들을 다룰때 의미적인 처리를 하는데 중요하다. 이 개념은 객체지향기법을 수용하는 확장된 관계모형에서 더욱 발전 적으로 쓰인다. <그림6>은 관계를 구성하는 2단계의 과정을 보여준다.
SQL서버는 자료를 저장하고 관리하는 자료서버일 뿐만 아니라 일처리도 관리 해 준다. 자료의 관리와 자료접근 통제를 이용하는 응용개발을 쉽게 하기 위해 "자료 무결성(integrity)"과 "트랜잭션(transaction)"의 개념과 성질을 정의하고 있다. 예를 들어 무결성의 성질을 CRUDE(Column, Reference, Us- ers, Domain, Entity)로 표현하고 트랜잭션처리는 ACID성질을 지켜야 한다. SQL서버는 과거의 전통적인 온-라인 거래처리에서 주역일 뿐만 아니라이제는 의사결정시스템과 같은 새로운 응용분야에서도 중심이 되고 있다는것이다. 객체 우연의 일치로 "객체"의 나이도 관계자료모형의 나이와 같이 올해 25살이다.
달(Dahl)이70년대초에 오슬로의 교통문제를 모형화하기 위해 제안한 SIMULA 에서 객체 상속개념을 소개했다. 관계모형과 다른 점이 있다면 처음 제안된 후 한참 있다가 그래픽 사용자 인터페이스의 성공적인 정착과 함께 다시등장 하여 지금은 세상을 풍미하고 있다.
객체의 두번째 기회는 클라이언트-서버구조와 분산처리에 있다. 분산시스템 에서 이종의 구성자원들사이에 대화를 가능하게 해주는 것도 객체개념이다.
OMG(Object Management Group)에서 제안한 CORBA(Common Object Request Bro ker Architecture)에 관한 일들은 이런 야망을 품고 있다.
객체란 소프트웨어 공학, 데이터베이스 그리고 컴퓨터통신분야에서 두루 통용되는 막연하면서도 통일적인 개념이다. 객체는 분산 시스템에서 소프트웨어 상호운용성을 보장하는 기초이며, OSS모형에서 중개자 서버의 가장 자연 스러운 후보다.
이제 객체가 관계 데이터베이스에 미칠 영향을 살펴보고 그들이 어떻게 통합 될지도 개관해 보자.
*영속성관리(2차 기억장치에 저장하는 것임) *자료의 강력한 구조화(자료 모형을 통함) *보안과 트랜잭션 관리 *자연스러운 인터페이스(그리고 표준 SQL) 객체지향 접근은 앞에서 클라이언트-서버구조를 설명하면서 분리한 인터페이스 4GL, DBMS 등 세 계층을 한 개념으로 통일시킬 수 있다. 클라이언트-서버는 사용자의 생산성을 높인다면 객체저항은 개발자의 생산성을 높여준다. 참을수 없는 객체의 경박성 관계모형은 집합론과 서술계산론이란 강력하고 유일한 형식적인 기초가 있는데 비해 객체지향은 형식적이고 유일한(최근에 시장 법칙에 의해 한두개가정해짐 모형이 없다. 객체지향 프로그래밍 언어이든 객체지향 DBMS이든 제품의 개수만큼 객체 모형이 있다.
미국 국립표준연구소(ANSI)의 객체지향 데이터베이스 그룹(OODBTG X3-SPARC)에서 3백개의 객체 시스템을 살펴보고 "객체는 구별할 수 있는 그 무엇"이란 공통분모만을 얻었다. 이의 정의를 좀더 구체화하면 다음과같다. 객체 정의 객체란 소프트웨어 조직단위로 그 재산과 상속성 그리고 짧은 기간중 외부와교류하는 방식과 같은 타고난 성질을 표현한다.
미래DBMS에 관한 성명발표가 세번 있었다.
*1989년 Banchihonc-tal *1990년 Gray, Sto-nebraker et al. *1994년 Date 인데 2개의 마지막 성명발표는 진화적 접근법의 요체를 포함하는데 확장관계 모형에 객체 모형의 특성을 통합하는 것을 제안하고 있다. 객제지향 DBM S에 대한 또 다른 접근법은 ONTOS, OBJECTIVITY, IDL등 제품과 연결된 Per- sistant C 이다. 여기선 첫번째 접근법에 집중한다.
관계모형을 보완할 수 있는 객체지향의 특성은 다음 네가지로 요약해 볼 수있다. *재사용성(객체상속장치) *시스템이 지원하는 객체식별 *복합객체구성 캡슐화 클래스 메소드, 메시지)인데 이제부터는 각 성질을 간단히 살펴보자. 재사용성 객체지향 기법과 그 성공의 원천은 무엇보다도 객체들사이에 상속장치를 고려한 것이다. 한 객체는 이번 클래스에 속하는데 이 클래스들은 상속관계를 표현한 그래프의 한마디(node)이다.
객체식변 객체의 첫번째 성질이 바로 이 객체식별이다. 핵심이 되는 특성은 객체지향 시스템이 지원해야 할 기본 사항이며 객체지향 개념에서 이야기 거리는 많지않다. 관계모형의 주요키 개념이 보다 일반화되어 시스템이 지원한다고 볼수 있다.
참조가 될만한 공식적인 모형이 없는 상황에서 그래도 가장 합리적인 객체지 향 데이터베이스 접근법은 1994년 C.데이트가 발표한 성명을 꼽을 수 있다.
정의역개념을 확장하여 사용자가 정의한 캡슐화된 복합자료 형태를 수용하고 SQL의 강력함을 변질시키지 않았기 때문이다. 이 정의역개념은 1970년 코드 가 관계모형을 처음 제안할 때부터 있었지만 SQL1992(일명 SQL2)에 와서야제대로 고려되었다. 그렇지만 기존 제품과의 호환성을 유지하기 위해 SQL199 2에서도 필수사항이 아니라 선택사항이다. 데이터의 제안에선 앞에서 늘어놓은 네가지 특성 즉 재사용성, 객체식별, 복합객체, 캡슐화를 자연스럽게 통합하였다. 캡슐화 encapsulation 캡슐화는 객체지향 프로그램의 중심 개념이다. 객체는 검은 상자와 일치한 다. 그 속 내용 즉 소프트웨어의 구현은 완전히 감추고 오로지 외부 인터페이스만으로 알려진다. 이 인터페이스가 바뀌지 않는다면 객체를 바꿀 수도있고 재사용할 수도 있다.
미래에 프로그램을 더 잘 한다는 것은 객체를 재사용하거나 패키지 소프트웨어를 이용하여 어떤 목적을 달성하기 위해 프로그램을 덜 한다는 의미이다.
객체의 외부 인터페이스는 메서드(method)라 부르는 연산들의 집합으로 구성 된다. 클래스(class)는 같은 성질의 객체들을 모아서 그 개념적인 모습을 표현하는 것이다. 객체는 어떤 클래스의 한 순간의 실체화이다.
관계 데이터베이스에서는 한 객체를 하얀 상자로 볼 수 있다. 왜냐하면 모든 객체는 한가지 구조만(관계 또는 테이블)가지며 이 객체를 취급할 때도 SQL 이 정의한 일반화된 관계 연산들만을 이용한다. 객체지향데이터베이스에서 다루는 객체는 이런 의미에선 회색 상자정도로 생각할 수 있다.
복합객체구성 관계 모형에서는 집합과 Tu-ple이란 구성자를 순서대로 적용하여 객체를 구성하는 반면<그림6>객체지향에서는 복합객체 구성을 지원한다. 관계자료모형 을 확장하면서 가장 중요하게 고려하는 것이 바로 복합객체를 표현하고 구성 하는 능력을 더하는 것이다.
맺음말 클라이언트-서버 접근법은 메시지 교환장치가 기초이다.(이는 기존 파일전송 보다 모든 면에서 낫다) 한 객체를 마치 메시지를 받아 처리하는 서버로 볼수 있다.
흥미로운 연구 주제 가운데 몇가지를 소개하면 다음과 같다.
*앞에서 제안한 OSS 모형을 이용하여 독자시스템에서 클라이언트-서버시스템으로 이주하는 방법인데 객체지향 기법이 적절한 후보일 것 같다.
*클라이언트-서버 모형에 따른 분석과 설계방법. 즉 자료와 처리를 분산시키거나 중복하는 적절한 방법이다.
제3세대 관계모형 정의. 이는 의견수렴이 된 객체지향의 장점을 통합하고 현재 관계 데이터베이스를 사용한 클라이언트-서버 응용 프로그램을 계속 존속 하게 해줄 수 있다. 객체지향 관계모형에 대한 정당성을 지금 한창 보여주고있다. 예 C 나 EIFFEL에서 정의역 개념을 이용한 캡슐화) 아직 기다리고있는 것은, 이 기술 발전이 가져다줄 멀티미디어 서버에 관련된 새로운 응용 서비스와 여러 기본구조를 이용한 개발을 도와주는 사이모이다. 물론 그에관한 표준도 기다려야 한다.