DBMS의 종류
1. 계층형 데이터베이스 관리시스템 (HDBMS)
⇒ 에플리케이션 환경의 여러 명의 사용자가 통합된 데이터를 공유
⇒ 파일시스템에서 처리 못한 부수적인 처리들을 어느 정도 DBMS들이 처리
⇒ 그러나 데이터베이스 모델링 및 관리가 용이하지 않음
⇒ Record들을 계층구조로 표현한 데이터 모델
- Database는 세그먼트(레코드 타입)로 이루어진다.
- 한 레코드 타입은 여러 개의 레코드를 포함한다.
- 한 레코드는 필드들로 구성된다.
- 한 필드는 한 개 또는 그이상의 자료항목들(반복그룹)을 포함한다.
- 한 레코드는 다른 레코드 등에 대해 한 개 이상의 포인터들을 가지고 있다.
(부모는 반드시 자식을, 자식은 형제 레코드들의 포인터와 그들만의 자식에 대한 포인터를 가지고 있다.)
- Database Search(검색)는 첫 번째 레코드를 찾아낸 후에 다음 Record를 Pointer로써 읽는다.
- Data사이의 동적(Dynamic)인 상호 연관사항은 존재하지 않는다.
- Database Schema에 대한 동적인 변화는 없다.
- Data Independence의 보장이 안 된다.
즉, Record Format이 변하면 에플리케이션도 모두 바뀌어야 한다.
종류로는 IBM IMS DB 가 있다...

2. 네트워크형 데이터베이스 관리시스템 (NDBMS)
⇒ HDBMS와 특징이 유사하다.
⇒ 데이터베이스는 레코드 타입과 링크(Pointer들의 집합)로 구성된다.
⇒ 한 레코드는 자식들과 형제 레코드들에 대한 포인터와 HDBMS에서 는 불가능했던 부모 레코드들에 대한 포인터를 가질 수있다.
⇒ 데이터 모델링이 복잡하여 사용이 일반화되지 않았다.
종류로는 CODASYL DB 가 있다...

3. 관계형 데이터베이스 관리시스템 (RDBMS)
⇒ SQL(Structured Query Language) 지원
⇒ 이전에 에플리케이션에서 처리해야 했던 많은 기능들을 DBMS가 지원
- 데이터 무결성, 보안, 권한, 트랜젝션 관리, 록킹(Locking)등
⇒ 데이터 모델링이 간편해지고 에플리케이션 개발을 용이하게 지원
⇒ 데이터 모델링이 너무 간단하기 때문에 복합 에플리케이션 (CAD/CAM, CASE, Multimedia, GIS등)에는 적합하지 않음
⇒ 데이터베이스 특징
- 데이터베이스는 테이블들로 구성된다.
- 레코드(로우; 행)는 필드(컬럼)로 구성된다.
- 한 필드는 단지 하나의 Data Item을 갖는다.
- 레코드는 다른 레코드에 대하여 어떤 Pointer라도 갖지 못한다.
- Data사이의 동적(Dynamic)인 상호 관계는 조인(Join)을 통하여 일어난다. 성능 문제가 중요하게 발생함
- 데이터베이스 스키마(Schema)에 대한 동적인 변화들이 가능하다. 예) 테이블에 대한 새로운 필드의 추가, 삭제
- 한 필드는 하나의 Data Item만을 포함한다. 레코드들을 중복시킴으로서 성능 함정에 빠질 수 있다.
- 멀티 미디어 자료 지원이 불가능
종류로는 IBM DB2, ORACLE, INFORMIX, SYBASE, INGRES, MS-SQL 등이 있다...

4. 객체지향형 데이터베이스 관리시스템 (OODBMS)
⇒ 멀티미디어 데이터의 지원이 가능
⇒ 재사용 가능한 객체 모듈의 지원
⇒ 캡슐화(Encapsulation), 계승(유전; Inheritance Hierarchy), 폴리모피즘(다형성; Polymorphism)등 프로그래밍에 도움을 주는 특성의 보유
⇒ 레코드와 레코드 사이의 데이터 검색이나 작업이 포인터(Pointer)에 의하여 이루어지므로 성능 문제가 대두되지 않는다.
⇒ 분석.설계(데이터 모델링)의 품질이 프로그래밍에 절대적인 영양을 준다.
⇒ 상용 DBMS 대부분이 아직 개발자들을 위한 충분한 개발지원도구와 이기종의 시스템이나 운영체제 및 호환을 위한 인터페이스를 갖추고 있지 못하다.
⇒ 객체지향 방법론이 완벽하지 못하다.
종류로는 Objectivity, O2, Versant, Ontos, Gemstone 등이 있다...

5. 객체관계형 데이터베이스 관리시스템 (ORDBMS)
⇒ OODBMS와 특징이 비슷
⇒ OODBMS의 장점과 RDBMS의 장점만을 취함
-RDBMS의 데이터 모델을 그대로 활용하여 어렵고 까다로운 OODBMS의 데이터 모델링 문제를 해결
- 기존의 RDBMS를 기반으로 하는 많은 DB시스템과의 호환이 가능
- RDB의 중요한 문제점들인 반복그룹, 포인터 추적, 자료형의 한계를 제거
- 복잡한 DB Schema Modeling에 대하여 Encapsulation, Inheritance의 잇점 추가
- 로우(행, 레코드)나 컬럼(필드, 속성)이 한 개 이상의 Data Item값을 갖도록 반복그룹의 허용
종류로는 Unisql, Object Store, 순수 RDBMS의 확장 모델등이 있다...

DBMS(데이터베이스 관리 시스템)의 장단점
1. 장점
⇒ 데이터 중복의 최소화
파일 시스템에서는 각 응용 프로그램마다 자신의 파일이 개별적으로 관리 유지되기 때문에 전체적으로 저장되는 데이터의 입장에서 보면 상당히 많은 데이터가 같은 내용을 표현하면서 중복적으로 저장되고 있다. 그러나, 데이터베이스는 데이터를 통합하여 구성함으로써 이러한 중복을 사전에 통제할 수 있다. 이것은 물론 데이터의 중복을 완전히 배제한다는 것을 의미하는 것은 아니다. 왜냐하면 통합 데이터베이스 환경속에서도 성능 향상의 이유로 데이터의 중복이 불가피할 때가 있기 때문이다.

⇒ 데이터의 공용
같은 내용의 데이터를 여러 가지 구조로 지원해 줄 수 있는 DBMS의 복잡하고도 정교한 기법 때문에 데이터베이스의 데이터 공용이 가능하다. 이것은 기존 여러 응용 프로그램들이 수행하던 데이터에 대한 유지 관리 부담을 면제시켜 줄뿐만 아니라 새로 개발하는 응용 프로그램에 대해서도 데이터 구성에 신경 쓸 필요없이 응용 자체에만 전념할 수 있게 해준다는 것을 의미한다.

⇒ 데이터의 일관성 유지
현실 세계의 어느 한 사실을 나타내는 두 개의 데이터가 있을 때 오직 하나의 데이터만이 변경되고 다른 하나는 변경되지 않는다면 데이터간의 불일치성, 즉 모순성을 갖게 된다. 모순성을 내포한 데이터베이스는 서로 상충되는 정보를 제공하게 되고 데이터베이스의 유용성을 저해하게 된다. 데이터베이스는 관리 시스템은 바로 이 데이터의 중복을 제어하고 중앙 집중식 통제를 통해 데이터의 일관성을 유지할 수 있다.

⇒ 데이터의 무결성 유지
무결성이란 데이터베이스에 저장된 데이터값과 그것이 표현하는 현실세계의 실제값이 일치하는 정확성을 말한다. 데이터 중복성이 완전히 제거된다고 하더라도 허용되지 않는 값이나 부정확한 데이터가 여러 가지 경로에 의해 데이터베이스에 잠입될 수 도 있다. 데이터베이스 관리 시스템은 데이터베이스가 생성 조작될 때마다 제어 기능을 통해 그 유효성을 검사함으로써 데이터의 무결성을 유지할 수 있다.

⇒ 데이터의 보안 보장
DBMS는 데이터베이스를 중앙 집중식으로 총괄, 관장함으로써 데이터베이스의 관리 및 접근을 효율적으로 통제할 수 있다. 이것은 DBMS가 정당한 사용자, 허용된 데이터와 연산등을 확인 검사함으로써 모든 데이터에 대해 철저한 보안을 제공한다.
일반적으로 같은 내용의 데이터가 여러 파일에 분산 관리될 때 같은 수준의 보장되기는 상당히 어렵다.

⇒ 표준화
DBMS의 중앙 통제 기능을 통해 데이터의 기술양식, 내용, 처리방식, 문서화 양식등에 관한 표준화를 범기관적으로 시행할 수 있다.

⇒ 전체 데이터 요구의 조정
한 기관의 모든 응용 시스템들이 요구하는 데이터들을 전체적으로 수집 분석하고 상충되는 데이터 요구는 조정해서 기관 전체에 가장 유익한 구조로 조직하여 효율적인 정보처리 효과를 얻게 할 수 있다.

2. 단점
⇒ 운영비의 증대
DBMS는 가격으로 보아 고가의 제품이고 컴퓨터 시스템의 지원을 많이 사용한다. 특히, 주기억장치를 많이 차지하기 때문에 DBMS를 운영하기 위해서는 메모리 용량이 더 필요하게 되고, 더 빠른 CPU를 요구하게 된다. 결과적으로 시스템 운영비의 오버헤드를 가중시키게 된다.

⇒ 자료 처리의 복잡화(DB데이타의 처리방법이 복잡해져 전문화된 프로그래머가 필요.)
데이터 베이스에는 상이한 여러 타입의 데이터가 서로 관련되어 있다. 응용 프로그램은 이러한 상황속에서 여러 가지 제한점을 가지고 작성되고 수행될지도 모른다. 다라서, 응용 시스템은 설계 시간이 길어지게 되고 보다 전문적, 기술적이 되어야 하기 때문에 고급 프로그래머가 필요하게 된다.

⇒ 복잡한 예비와 회복
데이터베이스는 그 구조가 복잡하고 여러 사용자가 동시에 공용하기 때문에 문제가 일어났을 때 정확한 이유나 상태를 파악하기 어려울 뿐만 아니라 여기에 대한 예비(Backup, 백업)조치나 사후회복 (Recovery, 복구)기법을 수립해 놓는 것도 매우 어렵다.

⇒ 시스템의 취약성
데이터베이스 시스템은 통합된 시스템이기 때문에 그 일부의 고장이 전체 시스템을 정지시켜 시스템 신뢰성과 가용성을 저해할 수 있다. 이것은 특히 데이터베이스에 의존도가 높은 환경에서는 아주 치명적인 약점이 아닐 수 없다.
Posted by dcmru
,