
KUDB 특징
1. 다양한 데이터 타입 지원
- 현재 가변길이 데이터 타입을 제외한 거의 모든 자료형을 표현한다. ( 사용자 정의 데이터 타입은 지원하지 않음 )
2. 모바일 환경에 맞게 빠른 처리로 수행이 가능한다.
- B+ Tree를 이용한 인덱스를 이용하며 최대한 모바일 환경에 맞게 메모리를 적극적으로 활용하여 저장영역 엑세스를 최소화 한다.
3. 테이블의 자유로운 생성/변경/삭제가 가능하다.
- 현재 관계는 지원하지 않지만 테이블 단위의 자료를 저장할 수 있으며 이로 인한 조인 연산을 지원한다.
4. 제약 조건을 일부 지원한다.
- 개체 무결성 : PK를 가질수 있으며 이 PK는 널값을 가질 수 없다.
- 도메인 무결성 : 유효한 데이터 타입만이 저장영역에 있을수 있음을 보장한다.
- 참조무결성 : 현재 지원하지 않음( PK/FK 를 저장하는 테이블 생성/유지로 해결 )
5. 다양한 데이터처리 가능
- 관계대수가 표현할 수 있는 모든 연산을 수행할 수 있으며 내부적으로 PK에 해당하는 Selection시 최상의 속도를 보장한다.
6. JOIN연산 지원
- 이 또한 관계대수의 카티젼 프로덕트, 프로젝션 등을 이용하여 수행이 가능하다.
7. 다양한 환경에 이식 가능
- Java로 작성되어 Mobile자바 환경인 CLDC 1.1, MIDP 2.0환경에서 제작 되어 2001년 이후 출시된 거의 모든 휴대폰에서 동작하며, 호환성의 걸림돌인 RecordStore ( 휴대폰의 영속 저장공간 ) 을 클래스파일 대체 로 PC및 기타환경에서도 구동할 수 있게 interface - class 관계로 제작 되었다.
8. 쓰레드에 안전하다.
- 한 모바일 임베디드 어플리케이션에서 다중 쓰레드로 인한 접근에 안전하다. 추후 네트워크가 지원되면 다양한 잠금형식을 지원할 예정이다.
9. 시각적 확인 가능
- PC 에서 Swing을 이용한 B+트리의 삽입/삭제 연산을 보여주는 학습용 자료도 개발되었다.
현재 KUDB 문제점
1. 가변길이 데이터셋 ( varchar, binary, image 등) 미지원
- 해결책 : 바이너리 데이터의 포인터를 가지고 이는 실제 테이블에서 동일한 크기(4byte)를 가지게 한다. 가변길이 데이터만을 가지는 데이타 영역을 가진다.( ex) tablename_VAR )
- 대안의 문제점 : MIDlet Profile의 저장공간인 RecordSet은 물리적인 접근연산의 제약 이 크다. 따라서 가변길이를 유지하기가 힘들다.
- 결론 : 모바일 환경에서의 가변길이 데이타는 속도나 필요성 면에서 크게 의미 가 없어 KUDB Project에서 제외한다.
2. 지능형 인덱스 기록( 현재 KUDB는 인덱스를 메모리에서 저장영역으로 단순저장)
- 현재상황 : 모바일 기기에서 데이타 저장시마다 저장영역에서 인덱스를 갱신하는 연산은 비용을 증가시킨다. 따라서 KUDB에서는 현재 인덱스를 일괄적으로 업데이트 하는 방법을 사용한다.
- 해결책 : Thread를 이용한 유휴상태 파악 및 동적 인덱스 업데이트 필요
- 대안의 문제점 : 유휴상태 파악에의한 불필요한 연산 증가
- 결론 : 최대한 안전하고 빠른 동적 인덱스 업데이트 알고리즘 필요
3. SQL문의 미지원
- 현재상황 : 모바일 기기에서 SQL문장을 파싱하여 사용하는 것은 힙/저장공간영역에서 저장공간 부족을 야기시킨다. 현재 관계대수 최적화 루틴을 제외한 SQL Parser 는 개발완료 상태이나 사용하지 않음. 또한 KUDB의 현재 버전은 네트워크를 지원하지 않는 소규모의 Embedded Database이다.
- 해결책 : 앞으로 모바일 기기의 발전과 함께 개선될 부분이다.
- 대안의 문제점 : 앞으로 KUDB의 버전이 업데이트 되고 다양한 환경(예:PC)에서 사용되게 되면 SQL Parser와 관계대수 최적화가 필수적으로 요구된다. 또한 네트워크를 지원 하는 KUDB버전 개발시 외부에서 Data를 가져가기위해 필수적으로 SQL문장이 필요한다.
4. Transaction 지원의 미비
- 현재상황 : 데이터의 원자성(Atomicity), 일관성(Consistency), 격리성(Isolation), 영속성(Durability) 에 대한 지원이 미비, 또한 Transaction log 에 대한 지원 미비
- 해결책 : 다음 버전의 KUDB에서 지원예정, 현재버전에서는 단순히 여러 쓰레드의 접근 에 대한 안전만 지원.
- 대안의 문제점 : Mobile DB라 해서 ACID속성이 중요하지 않은것은 아니다. 모바일 환경의 제한 과 최대한 타협해야 한다.
5. 다양한 형태의 잠금 필요
- 현재상황 : 단순 쓰레드 제어로 잠금을 구현하고 있다.
- 해결책 : 잠금에 관련된 테이블을 생성하고 이 테이블에 잠금상태 및 격리수준을 저장해 항시 참조하여 데이터 접근을 허용해야 한다.
- 대안의 문제점 : Mobile환경의 COST를 증가시킨다.
6. 뷰의 미지원
- 현재상황 : 현재 KUDB에서 뷰는 지원하지 않고 있다.
- 해결책 : KUDB의 다음 버전에서 지원할 예정이다.

댓글 없음:
댓글 쓰기