KR920003456B1 - 관련 데이타베이스 시스템 및 그 시스템내 칼럼 데이타 처리방법 - Google Patents

관련 데이타베이스 시스템 및 그 시스템내 칼럼 데이타 처리방법 Download PDF

Info

Publication number
KR920003456B1
KR920003456B1 KR1019890004569A KR890004569A KR920003456B1 KR 920003456 B1 KR920003456 B1 KR 920003456B1 KR 1019890004569 A KR1019890004569 A KR 1019890004569A KR 890004569 A KR890004569 A KR 890004569A KR 920003456 B1 KR920003456 B1 KR 920003456B1
Authority
KR
South Korea
Prior art keywords
data
column
database system
byte
mixed
Prior art date
Application number
KR1019890004569A
Other languages
English (en)
Other versions
KR890016470A (ko
Inventor
앤탱 창 필립
윌리암 인글스 로버트
프란시스 오버맨 데이빗
캐드린 트럼블 메리
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
하워드 지. 피거로아
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션, 하워드 지. 피거로아 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR890016470A publication Critical patent/KR890016470A/ko
Application granted granted Critical
Publication of KR920003456B1 publication Critical patent/KR920003456B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

내용 없음.

Description

관련 데이타베이스 시스템 및 그 시스템내 칼럼 데이타 처리방법
제1도는 관련 데이타베이스내 간단한 데이타 테이블도.
제2도는 영어에서 단일 바이트 데이타에 대해 사용되는 샘플 코드 페이지도.
제3도는 일본어에 대한 샘플 코드 페이지도.
제4a도 및 제4b도는 본 시스템의 관련 데이타베이스 시스템에 대한 일반화된 도면.
제5a도는 칼럼이 혼합된 데이타 또는 단일 바이트 데이타를 갖는 것으로 지정하기 위해 문자데이타형의 보조형태를 규정하기 위한 작성데이블 문구도.
제5b도는 칼럼이 혼합된 데이타 또는 단일 바이트 데이타를 갖는 것으로 지정하기 위해 문자데이타형의 보조형태를 규정하기 위한 변경 데이블 문구도.
제6도는 관련 데이타베이스 메니저의 성분에 대한 블록 다이어그램.
제7도는 본 발명의 방법내의 전체 단계를 도시하는 일반화된 프로우챠트.
제8도는 관련 데이타 서비스의 성분을 도시하는 블록 다이어그램.
제9도는 데이타베이스 시스템 카타로그내 시스템테이블도.
제10a, 10b, 10c도는 데이타베이스 시스템 카타로그내 시스템컬럼의 다이어그램.
제11도는 SQL 컴파일러의 SQL 파서 위상의 플로우챠트.
제12도는 SQL 컴파일러의 코트발생 위상의 플로우챠트.
제13a, 13b, 13c, 13d, 13e도는 본 발명의 방법 및 시스템의 슈도 코드를 예시하는 상세한 플로우 다이어그램.
제14도는 발생된 코드 및 팩된 설명의 실행에 대한 플로우 다이어그램.
제15도는 코드 페이지로 SQLDA를 업데이팅하는 플로우 다이어그램.
제16a도는 혼합된 데이타용 절삭 알고리즘의 플로우 다이어그램.
제16b도는 단일 바이트 데이타용 절삭 알고리즘의 플로우 다이어그램.
제17도는 혼합된 데이타용 감산 알고리즘의 플로우 다이어그램.
제18도는 본 발명의 방법 및 시스템에 대한 SQLDATA 및 SQLIND내 인코딩 스케임도.
* 도면의 주요부분에 대한 부호의 설명
1 : 마이크로프로세서 4 : 디스플레이
7 : 리드 온리 메모리 20 : 응용 프로그램
21 : 코드 페이지
본 발명은 계산 처리된 데이타베이스에 관한 것으로 특히, 관련 데이타베이스의 칼럼내 더블 바이트 문자셋트 데이타 및 단일 바이트 문자 셋트 데이타의 사용에 관한 것이다.
데이타베이스는 사용자의 요청에 따라 장래에 회수하기 위해 방대한 량의 데이타를 저장하기 위해 사용된다. 사용자는 응용 프로그램을 다루거나 입력장치를 통해 데이타베이스 시스템과 상호 작용하는 최종 사용자가 될 수 있다. 관련된 데이타 그룹은 보통 관련 데이타베이스에서 사용되듯이 데이타 파일, 또는 테이블이라고 부른다. 데이블내의 데이타 로우는 논리 레코드로, 데이타 칼럼은 필드라고 부른다. 관련 데이타베이스 시스템에서, 사용자는 테이블로서만 데이타를 감지하며, 어떤 다른 조직형태로 예를 들면, 데이타의 계층 구조로 감지하지는 않는다.
이러한 데이타베이스 시스템은, 사용자 인터페이스를 통해 들어온 여러 가지 명령들에 응답하여 데이타를 저장, 편집, 업데이팅, 삽입, 삭제 및 회수하기 위한 데이타베이스 메니저라고 부르는 컴퓨터 프로그램을 구비한다. 데이타베이스 메니저는 위에 열거된 여러 기능을 수행하기 위해 사용자로부터 테이바베이스의 모든 요청을 조정한다.
특히, 데이타 회수에 대해서, 데이타베이스 메니저가 용청된 데이타를 제공하는데 응답하는 조사명령 또는 "퀴리(queries)"를 형성하기 위해 여러 컴퓨터 언어가 고안되었다. 이러한 쿼리는 기본적으로, 컴퓨터 및 관련된 데이타베이스 메니저가 요구된 조사를 수행하기 위해 인zh드된 조사 명령이다.
데이타베이스 쿼리를 형성하기 위해서는 여러문제가 이러한 언어들과 관련된다. 먼저, 많은 쿼리언어들은 종래의 프로그램밍 언어와 다른다. 프로그램밍 경험이 있는 데이타베이스 사용자는 데이타베이스로부터 의미있는 데이타를 얻기 위해서 전체적으로 새로운 명령 셋트를 알아내는 것이 요구된다. 어떤 종류의 컴퓨터에도 경험이 없는 단말기 작동자와 같이 그러한 경험이 없는 사용자는 데이타베이스와 상호 작용하기 위해 컴퓨터 프로그래밍의 형식을 알 필요가 있다. 더우기, 그러한 쿼리 언어는 매우 복잡한 신텍스 및 의미 규정에 대한 지식을 필요로 하며, 따라서 성공적으로 데이타 검색이 가능한 인원이 고도로 그리고 많은 자금을 들어 훈련된 소수의 사람에게만 제한된다. 또, 이것은 그러한 컴퓨터 시스템의 사용에 역효과를 주며 여러 사람이 사용하는 것을 금하고 있다.
구성된 쿼리 언어(SQL)는 정보를 검색하기 위해 데이타베이스와의 인터페이이스에 이용하기 위해 최종 사용자를 위한 상호 작용 쿼리 언어이며, 데이타베이스 메니저를 통해 데이타베이스내 데이타를 엑세스하기 위한 응용 프로그램내에 넣어질 수 있는 데이타베이스 프로그램밍 언어이다. SQL은 필용한 정보의 형태를 규정하기 위한 쉬운 방법이다.
그러한 쿼리 언어의 대표예에 미합중국, 뉴욕 10018, 뉴욕, 브로드웨이 1430호의 아메리칸 네셔널 스탠다드 인스태튜트 인코포레이티드, 스탠다드 X3, 135-1986의 표준 퀴리 언어 또는 드레프트 프로포졀에 상술된 "SQL", ANA 데이타베이스 언어 SQL이 있다. SQL의 상세한 논의는 IBM 코포레이션의 서류번호 SC26-4346-3의 "IBM 데이타베이스 2 SQL 참조"에 설명되어 있는데, 이 두 개는 여기에 참고로 사용된다.
예를 들면, 사용자가 제1도에 도시된 바와 같이 이름 및 주소를 포함하는 데이타의 로우 및 칼럼을 갖는 데이블 16을 작성하기 위해서, 사용자는 다음과 같은 데이타베이스를 정의하기 위해 작성 테이블 문구를 나타낸다. 즉,
작성 테이블 목록
(이름 문자(20)
주소 문자(50))
상기 작성 테이블 문구는 예를 들면 SQL 데이타 정의 문구이다. 각각의 작성 테이블 문구는 선택되는 테이블의 이름, 그 칼럼의 이름 및 그 칼럼의 데이타 형태를 제공한다. 상기 작성 테이블 문구는 실행가능한 문구인데, 즉, 상기 작성 테이블 문구가 사용자에 의해 단말기에서 가입되면, 시스템은 그때 테이블을 구성한다. 초기에, 상기 테이블은 비어 있게 되는데, 말하자면 데이타 로우가 없다. 그러나, SQL 삽입 문구를 사용하므로, 사용자는 제1도에 도시된 바와 같은 테이블을 작성할 수 있다. 테이블을 작성하여 그것에 기록한 후에, 사용자는 SQL 데이타 조작 문구를 통해 테이블로부터 데이타를 검색할 수 있다.
한 테이블이 상기된 작성 테이블 문구를 통해 사용자에 의해 어떤 시간에 작성될 수 있을뿐 아니라, 현재의 테이블도 변경 테이블 문구를 통해 사용자에 의해 어떤 시간에 변경될 수 있다. 예를 들면, 제1도의 테이블(16)이 "시 및 주"에 대한 칼럼을 추가하므로 변경되려면, 상기 변경 테이블 문구는 다음과 같이 나타난다. 즉,
변경테이블목록
시-주문자(20)추가
상술된 문구는 테이블 "목록"에 "시-주" 칼럼을 추가한다. 칼럼 이름이 규정된 후에, 상기 칼럼의 데이타 형이 규정된다. 일부 데이타형은 다음과 같다. 마지막 세개의 범주, 문자, 가변문자 및 긴 가변문자는, 여기서 문자 데이타형으로 언급된다.
정수 부호가 붙은 풀워드 이진 정수(31비트 정도)
스몰정수 부호가 붙은 하프워드 이진정수(15비트 정도)
10진수 P숫자 정도의 부호 팩형 10진수로서, 우측으로부터 10진 소숫점 8인 숫자로 가정됨.
부동 부호가 붙은 이중정도 부동 소숫점 수
문자(n) 길이가 n문자인 고정된 길이의 문자열
가변문자(n) 4000바이트를 초과하지 않는 최대 길이 n문자의 가변길이 문자열
긴 가변문자 32.700바이트를 넘지 않는 가변길이 문자열
이러한 영역의 부가적인 정보를 위해, 여기에 참조된 다음 참조문헌, 즉, 1986년 에디슨-웨슬리 출판사, 씨.제이.데이트 데이타베이스 시스템 입문 제4판 제1권이 제안된다.
사용자가 제1도에 도시된 바와 같이 데이타를 삽입할 때, 처리 시스템은 실제로 도시되는 것이 아니라 처리 시스템에 의해 데이타의 형태에 따른 여러 방식으로 번역되는 비트 1 및 0의 열도 데이타를 보게 된다. 상기 데이타가 텍스트나 문자이면, 상기 처리 시스템은 고정된 유니트내 열을 번역하는데, 여기서 각 유니트는 문자, 숫자 또는 다른 텍스트 그래픽을 표시한다. 이 유니트는 보통 코드점으로 불리우며, 보통 8비트(1바이트)와 같은 특정한 비트폭을 갖는다. 단일 바이트 코드점 방식 즉, 인코딩 스케임은 8개의 1 및 0의 여러 조합을 갖는 가능한 256개의 서로 다른 코드점을 허용한다. 이러한 256개의 서로 다른 코드점으로 256개까지의 서로 다른 문자, 숫자 기호 등을 표현할 수 있다.
256개의 코드점으로 된 각 그룹은 코드 페이지라고 부른다. 하나의 코드 페이지는 보통 사용되는 일부 부가적인 기호와 함께 영어로 된 대부분의 문자 및 숫자를 표시하기에 충분하다. 코드 페이지(21)의 한 예가 제2도에 도시된다.
상술된 단일 바이트 코드 페이지는 영어로 표현하기에 충분하다. 그러나, 일본어가 6,000개 이살의 기호를 포함하므로, 상기 인코딩 스케임은 서로 다른 기호 모두를 표시하기 위해 사용될 수 없다.
그러므로, "리처"인코딩 스케임이 필요한데, 이를테면 시프트된 지스라고 하는 일본국 산업 표준의 변형에서 제공된다. 시프트된 지스 표준은 기록된 일본어에서 사용되는 6,000개 이상의 그래픽 기호에 대한 일본 문자 셋트 및 코드 페이지에 대해 기술한다. 상기 시프트된 지스 표준은, 서류번호 C-H 3-3220-050호의 "IBM 등록 그래픽 문자 셋트 및 코드 페이지"와 서류번호 C-H 3-3220-024호의 "IBM 일본어 그래픽 문자 셋트, 한자"공고에 기술되어 있다. 일본어에 대한 코드 페이지 22의 예는 제3도에 도시된다.
제3도에 있어서, 16진수 코드 0×00 내지 0×7E는 상부 및 하부 경우에 숫자 및 영문자와 같은 단일 바이트 기호를 표시한다. 16진수 코드 0×A1 내지 0×DF는 반 크기의 가다가나로 공지된 단일 바이트 일본어 기호를 표시한다. 16진수 코드 0×81 내지 0×9F, 0×EO 내지 0×FC는 일부 11,000-12,000 일본어 기호를 엑세스하는 "안내 바이트"로 생각될 수 있다. 상기 안내 바이트는 더블 바이트 순서의 제1바이트이다. 그러므로, 이러한 11,000 또는 그정도의 일본어 기호에 대해서, 기호를 확인하는데 두 개의 바이트가 필요하다. 이것은 더블 바이트 인코딩 스케임을 규정한다.
각각 다른 일본어 기호에 대해 제3도에 도시된 바와 같은 코드 페이지의 중요성은 일본어의 일부 부가적인 배경 지식을 갖는다면 쉽게 알 수 있다.
일본어에서 사용되는 세가지 형태의 일본어 문자가 있다. 그것들에는 한자, 히라가나, 가다가나가 있다. 한자는 표의문자이다. 단일 한자 또는 한자의 열은 워드를 나타낸다. 컴퓨터에 사용하는데는 약 7,000개의 규정된 한자가 있다.
히라가나 및 가다가나 문자는 표음문자이다. 그 각각은 음성을 나타낸다. 대강 50개의 히라가나와 대강 50개의 가다가나 문자가 있다. 히라가나 문자는 한자를 접속시키는데, 예를 들면 -잉과 같은 어미로 사용된다. 가다가나 문자는 대응하는 한자를 갖지 않은 단어, 예를 들면 어떤 영어 단어와 같이 일본어에 대해 외국어 단어에 사용된다. 이러한 단어는 음성상으로 즉, 외국어가 어떻게 발음하는가에 기초해서 가다가나 문자에 의해 표현된다. 일반적 규칙으로, 히라가나는 문법적 어미를 표시하는데, 가다가나는 단어를 강조하거나 외국어 용어를 표시하는 것과 같은 특별한 의미로 사용된다. 전형적인 일본어로 기록된 문장은 한자, 히라가나 및 가다가나 문자가 혼합되어 있다.
제3도를 참조하여 설명되었듯이, 가다가나 문자는 단일 바이트 문자 0×A1 내지 0×DF이며, 히라가나 및 한자는 더블 바이트 문자이다. 일본어에서 하나의 어귀내에 단일 및 더블 바이트 문자를 혼합하는 것이 일반적임이 명백하다.
예를 들면, 한자는 그 어귀내의 문장에 따라서 하나의 발음 이상을 갖을 수 있다. 그러나, 각각의 히라가나 문자 및 가다가나 문자에 대해서는 하나의 발음만이 있다. 따라서 일본어 워드는 하나자가 존재하면 한자로 표시될 수 있으며, 그 발음이 히라가나(더블 바이트 문자) 또는 가다가나(단일 바이트 문자)로 기록될 수 있다.
그에 더해서, 일본어에서는 로마 알파벳이, 제3도의 16진법 코드 0×41 내지 0×7A로 표시된 바와 같이 사용된다. 26개의 표음 기호로 구성되는 로마자는 영어와 일본어 워드의 발음을 표기하는데 사용된다. 로마자는 주로 일본어 문자가 표시할 수 없는 음을 구성하기 위해 기호 및 전문적 분야에서 사용된다. 로마자(단일 바이트) 열은 독특하게 더블 바이트 문자로 표시된 일본어 워드의 일본어 발음을 표시한다. 일본어로 기록된 문장은 한자, 히라가나, 가다가나, 로마자, 숫자 및 다른 문자로 혼합되어 있다. 이것에는 단일 바이트 및 더블 바이트 문자가 혼합된 문자가 포함된다.
그처럼, 관련된 데이타베이스내의 칼럼은, 관련된 데이타베이스가 일본어를 제공할 때 단일 및 더블 바이트 문자의 혼합 문자를 구비한다.
통상의 SQL에 기초한 관련 데이타베이스 결과는 혼합된(더블 바이트 및 단일 바이트) 데이타가 처리되어야 하는지 여부를 규정하는 설치 선택권을 갖는다. 이 선택권이 규정되면, 문자 데이타는 혼합된 것으로 취급된다. 그처럼, 혼합된 선택권이 규정되면, 모든 필드내의 모든 데이타는 일부 필드가 단일 바이트 데이타만을 포함한다 할지라도 혼합된 데이타로 취급된다. 더블 바이트 문자 셋트 데이타를 요구하는 일본어와 같은 것에서, 모든 문자는 혼합된 더블 바이트 문자 셋트 데이타 및 단일 바이트 문자 셋트 데이타로 가정되어야 한다. 단일 바이트 데이타에 대해서 보다 혼합된 데이타를 처리하는데 더 복잡한 알고리즘이 필요하다. 그결과, 관련 데이타베이스내 모든 칼럼 데이타 처리는 혼합된 데이타가 규정되면 수행이 감소된다.
먼저, 개인 컴퓨터에서, 테이블내 어떤 칼럼이 단일 바이트 문자 셋트 데이타에 대해서만 사용되도록 가정하는 방법이 없으면, 간단한 알고리즘이 이러한 칼럼에 적용될 수 있다. 상기 SQL 언어는 그러한 정보를 규정 및 저장하기 위한 방법을 제공하지 않는다. 또한, 혼합된 더블 바이트 문자 셋트 데이타 및 단일 바이트 문자 셋트 데이타를 사용하는 경우에, 여러 코드 데이타가, 혼합된 데이타에 반해서 단일 바이트 문자 셋트 데이타만을 사용할 때 효율적일 것이다.
그러므로 본 발명의 목적은 혼합된 단일 및 너블 바이트 데이타가 있을 때 관련 데이타베이스내 데이타 처리 수행을 증가시키는 것이다.
본 발명의 또다른 목적은 관련 데이타베이스내 필드가, 더 간단한 처리 방법이 상기 데이타 필드에서 사용되도록 단일 바이트 문자 셋트 데이타가 됨을 설명하기 위한 것이다.
본 발명의 시스템 및 방법은 SQL 언어에도 확장해서 적용될 수 있다. 선택 파라메터는 작성 테이블 문자 및 칼럼 베이시스당 문자형 데이타의 보조형을 규정하는 변경 테이블에 부가된다. 상기 보조형은 상기 데이타가 혼합된 또는 순수한 단일 바이트 데이타를 구비하는지 여부를 표시한다. 이에 더해서, 사용자가 단일 바이트 데이타에 대한 칼럼을 규정하면, 사용자는 단일 바이트 문자 셋트 데이타에 대한 코드 페이지를 규정할 수 있다. 사용자가 칼럼이 혼합된 데이타에 대한 것임을 규정하면, 사용자는 단일 바이트 문자 셋트 데이타에 대해 사용되는 코드 페이지 및 더블 바이트 문자 셋트 데이타에 대해 사용되는 코드 페이지를 규정할 수 있다.
본 발명의 시스템 및 방법에서 사용된 인코딩 스케임은 두가지 목적에서 사용된다. 데이타베이스 시스템 목록내 문자 칼럼의 단일 바이트 코드 페이지 및 더블 바이트 코드 페이지 특성이 제로인지 제로가 아닌지를 간단히 체크하여, 시스템 또는 응용은 문자 칼럼이 혼합된 데이타인지 또는 순수한 단일 바이트 데이타인지를 결정할 수 있으며, 동시에 그 칼럼에 대해 코드 페이지(들)이 사용되는지를 결정할 수 있다. 어떤 문자 보조형이 칼럼내에 포함되는지를 표시하는 플레그는 코드 페이지 그 자체이며, 칼럼에 대해 특별한 번역을 수행하기 위해 사용될 수 있다.
예를 들면, 단일 바이트 코드 페이지 특성이 제로가 아니며 더블 바이트 코드 페이지 특성이 제로이면, 칼럼은 단일 바이트 문자 셋트 데이타에 대해서만 규정된다. 이에 더해서, 제로가 아닌 단일 바이트 코드 페이지 특성의 값은 특정한 코드 페이지를 규정할 값이 될 수 있다. 단일 바이트 코드 페이지 및 더블 바이트 코드 페이지 특성이 모두 제로가 아니면, 칼럼은 더블 바이트 문자 셋트 데이타와 단일 바이트 문자 셋트 데이타를 갖는 혼합된 데이타를 포함한다. 이에 더해서, 제로가 아닌 값은 단일 바이트 데이타에 사용되는 코드 페이지와 더블 바이트 데이타에 사용되는 코드 페이지를 규정한다.
본 발명의 시스템 및 방법으로 데이타베이스 결과 및 사용자 응용은 절삭, 섭스트링 등과 같은 데이타 조정 알고리즘에 대해 문자 칼럼내 데이타 처리방법을 알 수 있다. 칼럼이 단일 바이트 문자 셋트 데이타에만 사용되면, 데이타 처리는 매우 간단해진다. 이러한 시스템 및 방법이 없이도, 혼합된 데이타의 "최악의 경우"가 가정된다. 이에 의해서, 칼럼에 대한 분리된 코드 페이지의 규정은 여러 대조 순서가 칼럼 베이시스에 적용되게 한다.
먼저 제4a 및 4b도의 블록 다이어그램을 참조하여, 본 발명을 수행하기 위해 사용되는 처리 장치의 일반화된 도면이 도시된다.
제4a도는, IBM 퍼스널과 시스템/2에서 사용되는 구성과 같은 전형적인 퍼스널 컴퓨터 구조를 도시한다.
이 구성의 촛점은, 인텔 80286 또는 80386 또는 그와 유사한 마이크로프로세서인 마이크로프로세서(1)이다. 마이크로프로세서(1)는 한 셋트의 데이타 라인, 한 셋트의 어드레스 라인 및 한 셋트의 제어 라인을 갖는 버스(2)에 접속된다. 다수의 I/O 장치 또는 메모리 또는 저장 장치(3-8)는 분리된 어댑터(9-14)를 통해 버스(2)에 접속된다. 예를 들면, 디스플레이(4)는 IBM 퍼스널/시스템 칼라 디스플레이 8514가 될 수 있는데 여기서 어뎁터(10)는 평평한 판에 장치된다. 다른 장치(3,5-8) 및 어뎁터(9,11-14)는 IBM 퍼스널 시스템/2의 일부로서 포함되거나 IBM사로부터 플러그-인 옵션으로 사용된다. 예를 들면, 랜덤 엑세스 메모리(6) 및 리드 온리 메모리(7) 및 그 대응 어뎁터(12,13)는 메모리(6)를 보충하기 위한 부가적인 랜덤 엑세스 메모리가 플러그-인 메모리 확장 옵션을 통해 부가된다 할자라도, IBM 퍼스널 시스템/2내의 표준 기재로서 구비된다.
마이크로프로세서(1)에 의해 실행되도록, 기본 입/출력 작동 시스템 또는 BIOS로 공지된 다수의 명령이 리드 온리 메모리(7)에 저장된다. 상기 BIOS는 컴퓨터의 근본 작용을 제어한다. OS/2와 같은 작동 시스템(15)는 메모리(6)로 적재되며 ROM(7)내에 저장된 BIOS와 함께 실행된다. 본 기술에 숙련된 사람이라면 상기 BIOS의 부분 또는 그 모두가 랜덤 엑세스 메모리(6)에 쉽게 적재되는 BIOS 시스템에 생긴 변화에 의해 기술 시스템 작용에 수정이 가해지도록 ROM(7)보다 메모리(6)에 저장되게 하기 위해서 퍼스널 컴퓨터 시스템이 구성된다는 것을 잘 알고 있다.
퍼스널 시스템/2, 작동 시스템 OS/2에 대한 더 상세한 정보는, 다음 참조 문헌에 나와 있다. IBM 코포레이션 파트 넘버 68X2224, 오더 넘버 S68X-2224, "기술 참조 매뉴얼, 퍼스널 시스템/2(모델 50,60시스템)", IBM 코포레이션, 파트 넘버 68X2256, 오더 넘버 S68X-2256, "기술 참조 매뉴얼, 퍼스널 시스템/2(모델 80)", IBM 코포레이션 파트 넘버 6280201, 오더 넘버 5871-AAA, "IBM 작동 시스템/2 변형 1.0 표준판 기술 참조", 1988년 맥그로우 힐, 아이아코브키판 "OS/2 프로그래머의 안내".
본 발명의 장치에서, 관련 데이타베이스 메니저와 같은 응용 프로그램(20)은 메모리(6)에 적재되거나 매체(5)에 있게 된다. 매체(5)는 디스켓 또는 하드 파일을 포함하나, 그것에 제한되지는 않는다. 관련 데이타베이스 메니저(20)는 작동 시스템(15)의 확장으로 여겨진다. 관련 데이타베이스 메니저(20)은 제4a 및 4b도에 도시된 처리 시스템이 관련 데이타베이스 기능을 수행하도록 마이크로프로세서(1)에 명령을 제공하는 관련 데이타베이스 메니저 작업의 넓은 셋트를 구비한다. 메모리(6)로 적재된 응용 프로그램(18)은 먼저 메모리(6)는 적재된 작동 시스템과 결합되어 실행된다.
제4a 및 4b도의 처리 시스템에서, 작동기는 키보드(3)상의 작동기 제어키를 통해 관련 데이타베이스 메니저(20)를 엑세스한다. 키보드는 상기 프로세서(1)를 구동시키는데 상기 프로세서는 버스(2)를 통해 매체 저장기(5) 및 메모리(6)는 물론 디스플레이(4)에 접속된다. 사용자가 관련 데이타베이스 메니저(20)와 상호 작용하는 응용 프로그램과 키보드(3)를 통해 상호 작용하므로, 관련 데이타베이스 메니저(20) 및 그 데이타는 디스플레이(4)를 통해 사용자에게 표시된다. 사용자가 관련 데이타베이스 메니저(20)와 상호 작용하는 외에도, 응용 프로그램(18)은 응용 프로그램(18) 내 SQL 명령을 통해 데이타베이스 메니저(20)와 상호 작용할 수 있다.
전술된 관련 데이타베이스 시스템에서, 혼합된 문자 데이타 처리는 문자 경계가 각 데이타 바이트 후에 반드시 발생할 필요는 없으므로 단일 바이트 문자 데이타 처리보다 비용이 더 든다. 이것은 이동 문자 데이타를 포함하는 어떤 작용이 다수 바이트의 데이타(문자)를 하나의 어드레스에서 다른 어드레스로 간단히 이동시키므로 단일 바이트 데이타에 대해 비교적 빨리 수행될 수 있음을 의미한다. 혼합된 문자가 바이트 경계를 연장시키므로, 하나의 어드레스에서 다른 어드레스로 데이타를 이동시키기 위한 알고리즘은, 문자 경계를 결정하며 문자 데이타의 집적을 유지시키기 위한 측정처리를 행하는 알고리즘에 의해 수행되어야 된다.
혼합된 문자 데이타가 일본어와 같은 것을 다루는 관련 데이타베이스 시스템에서, 본 발명의 시스템 및 방법은 사용자에게 단일 바이트 또는 혼합된 데이타로서 하나의 칼럼당 문자 형태의 보조 형태를 규정하기 위한 수단을 제공한다. 사용자는 칼럼의 문자형태의 보조형태를 규정할 수 있다. 왜냐하면 칼럼이 작성 테이블 또는 변경 테이블 문구에서 작성되기 때문이다.
제5a 및 제5b도에 도시된 바와 같이, 작성 테이블 및 변경 테이블 문구(32,34)가 표시되는데 사용자는 규정된 칼럼 이름(33,35)의 문자 데이타 형태의 보조형태(37,39)를 작성하기 위해 사용한다. 칼럼-이름 1(33,35)에 대한 보조형태의 FOR SBCS 데이타(37)는 단일 바이트 문자 셋트 데이타에 대한 칼럼-이름 1을 규정한다. 칼럼-이름 2(33,35)에 대한 보조형태 FOR 혼합된 데이타(39)는 혼합된 단일 바이트 및 더블 바이트, 문자 셋트 데이타에 대한 칼럼-이름 2를 규정한다.
이러한 SQL 문구(32,34) 및 이 문구내에서 규정된 보조형태는 다음과 같이 본 발명의 시스템내에서 처리된다. 제6도에 도시된 바와 같은 관련 데이타베이스 메니저(20)의 커낼(42) 구조 및 제8도에 도시된 바와 같은 관련 데이타 서비스(25) 구조 그리고 제7도에 도시된 바와 같은 플로우 다이어그램이 참조된다.
프리컴파일러(43)는 원시 프로그램(18)으로부터 구체화된 SQL 문구를 추출하여 제7도의 단계(71)에서와 같이 관련 데이타베이스 메니저(20)의 기본 시스템 이용(41)으로 전달된다. 기본 시스템 이용(41)은 SQL 문구를 관련 데이타 서비스(25)를 통해 전달된다. 관련 데이타 서비스(25)는 단계(73)에서, SQL 문구를 컴파일하는 SQL 컴파일러(24)와의 인터페이스이다. SQL 컴파일러(24)는 단계(74)에서 번역이 가능한 코드를 발생하며 상기 코드는 단계975)에서 관련 데이타 베이스(25)의 런타임번역기 (52)에 의해 실행된다. 이 코드는 단계(76)에서 데이타베이스 카타로그(23)를 업데이트하는 관련 데이타 서비스(25)의 카타로그 서비스 루틴(54)을 호출한다.
상기 단계들은, 제6도의 구성성분 및 관련 데이타베이스 메니저(20)의 커넬(42)의 기능 그리고 제6도, 제8도의 구성성분 및 관련 데이타 서비스(25)의 기능에 대해 논한 후에 슈도 코드 및 플로우 다이어그램을 참조하여 설명된다.
관련 데이타 서비스(25)는, SQL 작성 테이블 및 변경 테이블 문구로부터의 테이블 작성 및 조작을 위해 제공된다. 관련 데이타 서비스(25)는 데이타베이스 카타로그(23)를 관리한다. 데이타베이스 카타로그는 자신의 관련 데이타베이스내의 테이블이며, 그것들은 파일 시스템내에 있으며 상기 파일내에서 관련 데이타베이스 제4a도의 매체(5)상에서와 같은 곳에 존재한다.
데이타베이스 카타로그(23)는, 데이타베이스 메니저에 의해 설치 및 유지되는 2차 데이타베이스 목표이다. 모든 카타로그 테이블은 데이타베이스가 작성될 때 작성되며, 관련 데이타베이스 테이블로서 수행된다. 상기 카타로그 테이블은, 사용자에 의해 처리된다 할지라도 커넬에 의해 배타적으로 사용 및 유지되는 것이 아니라 사용자 작성 테이블과 마찬가지이다. 여러 카타로그 테이블이 상기 시스템에 의해 유지되며 사용자 테이블 및 프로그램에 대한 정보를 포함한다.
제6도의 관련 데이타 서비스(25)는 프로컴파일러(43) 및 응용 프로그램(18)용 데이타베이스 메니저(20)의 커넬(42)에 대한 인터페이스이다. 상기 프로컴파일러는 SQL 문구를 컴파일하기 위해 SQL 컴파일러(24)를 호출한다. 상기 응용 프로그램은 그 컴파일된 형태로 SQL 문그를 실행(번역)한다.
관련 데이타베이스 메니저의 커넬(42)의 관련 데이타 서비스(25), SQL 컴파일러(24), 솔트/리스트 서비스(44), 데이타 메니지먼트 서비스(45), 인덱스 메니저(46), 데이타 서비스(47), 데이타 보호 서비스(48), 버퍼 풀 서비스(39), 작동 시스템 서비스(50)를 구비한다.
SQL 컴파일러(24)는 SQL 문구를 컴파일한다. 상기 SQL 컴파일러는 본 발명의 시스템 및 방법에서 세개의 주요 기능을 갖는다. SQL 컴파일러는, 파싱(parsing), 세멘틱스 및 코드 재생을 제공한다. 파서는 어휘 및 구분 체킹을 수행하며, 파스 트리를 작성한다. 상기 어휘 기능은 카타로그 룩업, 및 문구의 어휘체킹을 포함한다. 코드 발생에서, 연장 코드는 나머지 엑세스부와 함께 발생된다.
상기 솔트/리스트 서비스(44)는 솔팅 및 일시관련(리스트) 메니지먼트 기능을 제공한다. 데이타 메니지먼트 서비스(45)는 데이타베이스의 물리적 모델과 물리적 데이블 조작을 제공한다. 인텍스 메니저(46)는 물리적 인덱스 조작을 제공한다. 데이타 서비스(47)는 데이타 값 비교, 데이타 변환 및 수학을 제공한다. 데이타 보호 서비스(48)는 취급 메니지먼트, 동시 제어 및 재생을 제공한다. 버퍼 풀 서비스(49)는 버퍼 및 파일 메니지먼트 및 I/O 기능을 제공한다. 작동 시스템 서비스(50)는 메모리 메니지먼트를 제공한다.
관련 데이타 서비스(25)의 성분이 제8도에 도시된다. 응용 인터페이스(51)는 제6도의 프로컴파일러(43)와, 응용 프로그램(18), 이용으로부터 요청을 조정 및 전달한다. 번역기(52)는, 문구의 목적 코드에 대한 연장 코드를 사용하여 컴파일된 형태로 SQL 문구를 실행(번역)한다. 번역기(52)는 데이타베이스 작동기(테이블 억세스, 병합, 결합등) 및 표시 작동기(가산, 비교등)와 같은 연장 코드에서 각 작동기에 대한 적당한 루틴을 호출한다. 엑세스 플랜 메니저(53)는 카타로그 및 메모리내 엑세스 플랜을 관리하여, 카타로그 및 메모리내의 엑세스부를 관리한다. 카타로그 서비스(54)는 카타로그의 조작을 위한 데이타 메니지먼트 서비스(45)(제6도)에 대한 인터페이스이다. 실행 스탯(55)은, 테이블 및 인덱스상에서 통계를 모으는 데이타 메니지먼트 서비스(45)(제6도)에 대한 인터페이스이다.
작성 테이블(32) 또는 변경 테이블(34) 문구가 문자 칼럼(33,35)상에서 FOR 혼합 데이타 파라메타(39)와 FOR SBCS 데이타(37)를 포함할 때, 다음 변화가 제9 및 10a도에 도시된 바와 같은 데이타베이스 카타로그(23)에 일어난다. 제9도의 SYSTABLES(37), 제10a도의 SYSCOLUMNS(28)은 데이타베이스 카타로그 테이블(23)내 두 개의 테이블이다. SYSTABLES(27)에서, 각각의 새로운 테이블 또는 작성되는 뷰에 대해 하나의 로우가 삽입된다. 모든 카타로그 테이블은 그 자신을 포함하여 이 테이블내에서 엔트리를 갖는다. SYSCOLUMNS(28)에서, 각각의 테이블 또는 뷰의 각각의 정의된 칼럼에 대해 하나의 로우가 삽입된다. 모든 카타로그 테이블은 이 테이블내에서 엔트리를 갖는다.
제9도의 SYSTABLES(27)를 참조하면, 칼럼 PACKES-DESC(팩된 표시)(91)에서, 혼합된 문자, 혼합된 가변문자 또는 혼합된 긴 변수의 내부 데이타 형태는 FOR MIXED DATA로서 규정된 칼럼에 대해 인코드된다. 이 내부 데이타 형태는 혼합된 데이타 처리를 문자 칼럼에 인가하는지 여부를 결정하기 위한 데이타베이스 메니저에 의해 사용된다. FOR MIXED DATA로도 FOR SBCS DATA도 규정되지 않거나, FOR BIT DATA가 규정되지 않으면, FOR MIXED DATA는 결과의 더블 바이트 변형으로 가정된다. FOR BIT DATA는 본 발명의 실시예에서 이진 데이타를 수용하기 위해 사용된다. 문자 데이타로 처리되지 않은 문자 칼럼내 어떤 이진 데이타는 FOR BIT DATA로 규정된다. 그러나, 본 발명의 다른 실시예에서, 이 부가적인 분류는 필요치 않다.
제10a도의 SYSCOLUMNS(28)을 참조하면, 제10a도 칼럼 COLTYPE(칼럼에 대한 데이타 형태)에서, 문자, 가변문자, 김 가변문자의 실제 SQL 데이타 형태가 인코드된다. 제10a,10b,10c도의 칼럼 CODEPAGE(94) 및 DBCSCODEPG(95)내에서 다음 정보가 인코드된다.
데이타베이스 시스템 카타로그(23)의 SYSCOLUMN 테이블(28)내 칼럼 형태(93)상에 쿼리가 있으면, 다음이 발생된다. 시스템 칼럼(28)내 칼럼 형태(93)가 문자, 가변문자, 긴 가변문자와 같은 문자 데이타 형태를 표시하면, 코드 페이지 칼럼, CODEPAGE((4) 및, 더블 바이트 문자 셋트 코드 페이지 칼럼 DBCSCODEPG(95)가 문자 형태의 보조형태를 결정하기 위해 쿼리될 수 있다.
본 발명의 인코딩 스케임은 제10c도에 도시된 바와 같이 보조형태를 결정하는 빠르고 효율적인 방법을 허용한다. CODEPAGE 및 DBCSCODEPG 칼럼(94,95)가 각각 제로값을 갖으면, 보조형태는 문자 데이타로서 처리되지 않는 데이타인 FOR BIT DATA를 규정한다. CODEPAGE 칼럼(95)이 제로값을 갖으면, 상기 칼럼은 단지 데이타뿐인 단일 바이트에 대해 규정되었다. CODEPAGE 칼럼(94)이 제로값을 갖지 않으며 DBCSCODEPG 칼럼(95)이 제로값을 갖으면, 상기 칼럼은 단일 바이트만을 데이타에 대해 규정되었다. CODEPAGE 칼럼(94)이 제로값을 갖지 않으며, DBCSCODEPG 칼럼(95)이 제로값을 갖지 않으면, 상기 칼럼은 칼럼의 보조형태가 특별히, 규정되지 않을 때 결함값인 혼합된 데이타이다. 더우기, CODEPAGE 칼럼(94) 또는 DBCSCODEPG 칼럼(95)내 값이 제로값이 아니면, 그 비 제로값은 데이타베이스의 그 컬럼에 대해 사용되는 특별한 코드 페이지를 규정하는 값이 된다. FOR BIT DATA의 경우에, 그 데이타가 문자 데이타로서 처리되지 않기 때문에 어떤 코드 페이지도 규정되지 않는다.
본 발명의 상술된 시스템 및 방법의 양호한 실시예는 다음 슈도 코드로 예시된다. 다음 슈도 코드는 제11 내지 15도를 참조하여 후술된다.
약자
CD-칼럼 설명(팩된 설명내의)
DDL-데이타 정의 언어
DMS-데이타 메니지먼트 서비스
Ⅰ) 작성 테이블 및 변경 테이블 문구에 MIXED 및 SBCS 문자 보조형태를 위해 추가 지지
Ⅱ) 칼럼상에서 CODEPAGE 특성을 위해 추가 지지
주의 : 단계 A) 및 B)는 새로운 SQL 파서를 작성하기 위해 한 번 수행되며, 오프-라인이다.
A) 다음 결과를 추가하기 위해 SQL 파서 문법 테이블을 수정한다.
칼럼형태=문자형태 문자옵션
문자옵션=비어있음
=FOR MIXED(FOR OPTION 노드 발생)
=FOR SBCS(FOR OPTION 노드 발생)
For Mixed=FOR MIXED DATA
Mixed Option
For SBCS=FOR SBCS DATA
SBCSOption
Mixes Option=비어 있음
=(Code Page, Code Page)
SBCSOption=비어 있음
=(Code Page)
Code Page=정수
B) 새로운 파서 테이블 발생
(오프-라인 파서 발생기 및 새로운 문법 테이블을 사용하여)
C) 작성 테이블 또는 변경 테이블 문구를 컴파일하기 위해 SQL 컴피일러를 호출
(SQL 컴파일러 파서 형태)
주의 : 입력은 SQL 문구
출력은 파스 트리
/* IF(작성 테이블 문구) */
/* 작성 테이블 문구에 대한 파스 트리발생 */
/* ELSE(변경 테이블 문구) */
/* 변경 테이블 문구에 대한 파스 트리발생 */
/* ENDIF */
/* IF(FOR MIXED 또는 FOR SBCS 문구존재) */
/* 파스 트리내 (FOR OPTION)노드발생 */
1988년 IBM 코포레이션 판권
제11도 및 상술된 슈도 코드에 있어서, 다음 작용이 수행된다. SQL 컴파일러는 SQL 문구를 컴파일하기 위해 호출된다. SQL 파서 상태에서, SQL 컴파일러는 단계(101)에서와 같이 작성 테이블 문구 또는 변경 테이블 문구에 대한 파스 트리 노드를 발생한다. FOR MIXED 또는 FOR SBCS 또는 FOR BIT가 SQL 문구내에서 표시되었다면, FOR OPTION 파스 트리는 단계(103,105)에서와 같이 발생된다. 단계(107)에서와 같이 SQL 문구에 정의된 코드 페이지 파라메타가 있으면, 코드 페이지 파스 트리 노드는 단계(109)에서와 같이 발생된다.
(SQL 컴파일러 코드발생 상태)
주의 : 입력은 파스트리
출력은 업데이트되었으며 팩된 설명 번역가능한 코드
/* IF(작성 테이블 문구)*/
/* 연장된 코드내에 DDL 작성 테이블 오피코드 저장*/
/* ELSE(변경 테이블 문구) */
/* 연장된 코드내에 DDL 변경 테이블 오피코드 저장 */
/* ENDIF */
/* 파스 트리 측정점을 파스 트리 루트 노드에 초기화시킴 */
1988년 IBM 코포레이션 판권
제12도 및 상술된 슈도 코드에 있어서, SQL 컴파일러의 코드 발생 코드가 설명된다. 제11도에서 미리 발생된 바와 같은 모든 노드를 갖는 파스 트리는 단계(111)에서와 같이 코드 발생 상태에 대한 입력이다. SQL 문구가 단계(113)에서와 같이, 작성 테이블도 아니며 변경 테이블도 아니면, SQL 문구는 단계(115)에서와 같이 통상의 처리이다. SQL 문구가 작성 테이블 문구이거나 변경 테이블 문구이면, 그 문구에 대한 OP 코드는 단계(117)에서와 같이 작성된다. 코드 발생 상태중에, 파스 트리 루트 노드는 단계(119)에서와 같이 지적된다.
/* 측정 파스 트리 */
/* DO WHILE(어떤 에러도 검출되지 않았으며 파스 트리가 측정될 필요가 있음) */
/* SWITCH(파스 트리 노드 형태) */
/* 케이스 헤더 칼럼 리스트 노드 형태(CD의 시작) */
/* CD 팩된 설명 필드를 초기화하기 위한 루틴을 호출 */
/* END CASE */
/* 케이스 칼럼 이름 확인기 노드 형태 */
/* CD 구조 및 칼럼 이름에 대한 저장 할당 */
/* IF(성공적으로 저장이 할당) THEN */
/* 여러자기 칼럼 정보를 설정 */
/* CD 코드페이지 #1를 데이타베이스 SBCS 코드페이지로 초기화 */
/* CD 코드페이지 #2를 데이타베이스 DBCS 코드페이지로 초기화 */
/* 팩된 설명의 길이를 업데이트 */
/* ENDIF */
/* END CASE */
/* 케이스 FOR OPTION 노드 형태 */
/* 스위치(FOR OPTION의 보조 형태) */
/* 케이스 FOR BIT DATA 노드 형태 */
/* 스위치(CD내 칼럼 형태(전의 노드의 처리중에 셋트)) */
/* 케이스 칼럼 형태=혼합된 문자 */
/* CD 형태 필드내에 문자 칼럼 형태를 저장 */
/* END CASE */
/* 케이스 칼럼 형태=혼합된 가변문자 */
/* CD 형태 필드내에 가변문자 칼럼 형태 저장 */
/* END CASE */
/* 케이스 칼럼 형태=혼합된 긴 가변문자 */
/* CD 형태 필드내에 긴 가변문자 칼럼 형태 저장 */
/* END CASE */
/* ENDSWITCH 칼럼 형태 */
/* CD 코드페이지 #1 및 #2를 0로 셋트 */
/* END CASE FOR BIT */
/* 케이스 SINGLE BYTE CHARACTER SET 노드 형태 */
/* 스위치(CD내 칼럼 형태(전의 노드의 처리중에 셋트)) */
/* 케이스 칼럼 형태=혼합된 문자 */
/* CD 형태 필드내에 문자 칼럼 형태를 저장 */
/* END CASE */
/* 케이스 칼럼 형태=혼합된 가변문자 */
/* CD 형태 필드내에 가변문자 칼럼 형태 저장 */
/* END CASE */
/* 케이스 칼럼 형태=혼합된 긴 문자 */
/* CD 형태 필드내에 긴 가변문자 칼럼 형태 */
/* END CASE */
/* ENDSWITCH 칼럼 형태 */
/* IF(코드페이지가 규정됨) THEN */
/* 세이브 영역으로부터 코드페이지를 얻음 */
/* CD 코드페이지 #1 필드에 코드페이지를 저장
/* CD 코드페이지 #2 필드에 0를 저장 */
/* ENDIF */
/* END CASE SBCS */
/* 케이스 혼합된 문자 코드 형태 */
/* IF(코드페이지가 규정됨) THEN */
/* 세이브 영역으로부터 코드페이지를 얻음 */
/* CD 코드페이지 #2 필드에 코드페이지를 저장 */
/* 세이브 영역으로부터 코드페이지 1을 얻음 */
/* CD 코드페이지 #1 필드에 코드페이지를 저장 */
/* ENDIF */
/* END DASE MIXED */
/* FOR의 ENDSWITCH 보조형태) */
/* END CASE FOR OPTION */
/* 케이스 코드페이지 노드 형태 */
/* 세이브 코드페이지 확인기 */
/* END CASE */
/* 칼럼에 대한 케이스 데이타 형태 노드(문자, 가변문자..) */
/* SWITCH(데이타 형태) */
/* 케이스 데이타 형태=문자 */
/* CD 형태 필드내에 혼합된 문자 칼럼 형태를 저장 */
/* END CASE */
/* 케이스 데이타 형태=가변문자 */
/* IF(길이가 규정됨. 즉, 이것이 가변문자임)THEN */
/* CD 형태에 혼합된 가변문자 칼럼 형태를 저장 */
/* ELSE */
/* CD 형태내의 혼합된 긴 가변문자 칼럼을 저장 */
/* ENDIF */
/* END CASE */
/* ENDSWITCH 데이타 형태 */
/* 케이스 CD 노드 형태(칼럼 정의의 끝) */
/* 작용없음 */
/* END CASE */
/* ENDSWITCH 파스 트리 노드 형태 */
/* 다음 노드로 파스 트리 포인터를 증가 */
/* ENDWHILE */
1988넌 IBM 코포레이션 판권
제13a 내지 13e도와 상기 열거된 슈도에 있어서, 다음 단계가 노드 형태에 따라서 발생된다. 노드가 단계(121)에서와 같이 헤더 칼럼이면, 팩된 설명 칼럼은 단계(123)에서와 같이 초기화된다. 노드가 단계(125)에서와 같이 칼럼 노드이면, 팩된 설명내의 칼럼 설명에 대한 저장은 단계(127)에서와 같이 할당된다. 그때 상기 칼럼정보는 단계(129)에서와 같이 설정되며, 단일 바이트 코드페이지 및 더블 바이트 코드페이지는 단계(131,133)에서와 같이 데이타 베이스의 코드페이지로 초기화된다. 팩된 설명 길이는 단계(135)에서와 같이 업데이트된다.
노드가 단계(137)에서와 같이 FOR BIT, FOR SBCS 또는 FOR MIXED와 같은 FOR 옵션이면, 다음이 상기 케이스의 각각에 대해 발생한다.
그것이 단계(141,139)에서와 같이 FOR SBCS 노드 또는 FOR BIT 노드이거나 제13b도의 단계(143)에서와 같이 칼럼 형태가 혼합된 문자이면, 문자는 단계(145)에서와 같이 칼럼 설명 칼럼 형태 분야에 저장된다. 칼럼 형태가 단계(147)에서와 같이 혼합된 가변문자이면, 상기 가변문자는 단계(149)에서와 같이 칼럼 설명 형태내에 저장된다. 칼럼 형태가 단계(151)에서와 같이 혼합된 긴 가변문자이면, 긴 가변문자는 단계(153)에서와 같이 칼럼 설명 칼럼 형태 필드내에 저장된다.
제3A도에 있어서, 단계(139)에서와 같이 FOR BIT 옵션의 경우에, 단일 바이트 코드페이지 및 더블 바이트 코드페이지에 대한 코드페이지는 제13c도의 단계(155)에서와 같이 제로로 설정된다. 제13a도의 단계(141)에서와 같이 FOR BIT 옵션의 경우에, 제13c3D의 단계(157)에서와 같이 코드페이지 필드가 규정되면, 그 코드페이지는 검색되어 단계(159,161)에서와 같이 제1코드페이지, 단일 바이트 문자 셋트 페이지에 대한 칼럼 설명에 저장된다. 더블 바이트 코드페이지는 제로로 설정된다.
제13a 및 제13b도에 있어서, 제13a도의 단계(163)에서 FOR MIXED 옵션이 규정되며, 제13d도의 단계(165)에서와 같이 코드페이지가 규정되는 경우에, 제2코드페이지는 단계(167,169)에서와 같이 코드페이지 #2하에서 칼럼 설명내에서 검색 및 저장된다. 제1코드페이지는 단계(171,173)에서와 같이 코드페이지 #1하에서 칼럼 설명내에서 검색 및 저장된다.
제13a 및 13e도에 있어서, 지적되는 노드가 제13a도의 단계(175)에서와 같이 데이타 형태 노드이면 다음 단계가 제13e도에 도시된 바와 같이 발생된다. 상기 데이타 형태가 문자이면, 혼합된 문자는 단계(177,175)에서와 같이 칼럼 설명 칼럼 형태 필드에 저장된다. 단계(181,183)에서와 같이 데이타 형태가 가변문자이며 길이가 규정되면, 혼합된 가변문자가 단계(185)에서와 같이 칼럼 설명 칼럼 형태 필드내에 저장된다. 길이가 규정되지 않으면, 혼합된 긴 가변문자는 단계(187)에서와 같이, 칼럼 설명 칼럼 형태내에 저장된다.
상술된 단계는 모든 노드가 상술된 방식으로 처리될때까지 반복된다. SQL 컴파일러가 상술된 단계를 수행한 후, 관련 데이타 서비스는 연장된 코드와 발생된 팩된 설명을 연장시키기 위해 번역기를 호출한다. 출력은 문구가 작성 테이블 문구일때 데이타 베이스에서 발생된 새로운 테이블, 새롭게 작성된 테이블에 대한 SYSTABLES 카타로그 테이블내의 로우 및 새로운 테이블의 각 칼럼에 대한 SYSCOLUMNS 카타로그 테이블내 로우이다. 변경 테이블에 대한 출력은 추가된 새로운 각 칼럼에 대한 SYSCOLUMNS 카타로그내의 로우 및 SYSTABLES 카타로그 테이블내 변경된 테이블에 대한 업데이트된 로우이다. 다음 슈도 코드는 연장된 코드 및 번역기에 의해 발생된 팩된 설명을 실행하는 단계를 예시한다.
C) 작성 테이블 문구를 실행하기 위한 호출런-타임 번역기
주의 : 입력은 :
SQL 컴파일러에 의해 발생된 연장된 코드 및 팩된 설명
출력은 :
데이타 베이스 발생된 새로운 테이블; 작성된 테이블에 대한 SYSTABLES 카타로그 테이블내 로우; 새로운 테이블의 각 칼럼에 대한 SYSCOLUMNS 카타로그 테이블내 로우;
/* 팩된 설명으로부터 DMS 테이블 설명 구조를 설정 */
/* 테이블을 작성하기 위한 호울 DMS */
/* SYSTABLES로, 새로운 테이블에(팩된 설명 칼럼을 포함함)로우 추가 */
/* 제1칼럼 설명에 대한 포인터를 얻음 */
/* 테이블에 대한 팩된 설명의 각 칼럼에 대하여 */
/* 코드페이지 #1로부터 SYSCOLUMNS CODE PAGE 필드를 설정 */
/* 코드페이지 #2로부터 SYSCOLUMNS CODE PAGE 필드를 설정 */
/* 보조형태가 아니라, 문자형태로 SYSCOLUMNS COLTYPE 필드를 설정 */
/* SWITCH(팩된 설명 CD내 칼럼 형태) */
/* SYSCOLUMNS 칼럼 형태 필드내 "문자"저장 */
/* END CASE */
/* 케이스 칼럼 형태=혼합된 가변문자 */
/* SYSCOLUMNS 칼럼 형태 필드내 "가변문자"저장 */
/* END CASE */
/* 케이스 칼럼 형태=혼합된 긴 가변문자 */
/* SYSCOLUMNS 칼럼 형태 필드 내 "긴 가변문자"저장 */
/* END CASE */
/* ENDSWITCH */
/* 로우를 SYSCOLUMN으로 삽입 */
/* ENDFOR */
B) 변경 테이블 문구를 실행하기 위해 턴-타임 번역기를 호출한다.
주의 : 입력은 :
SQL 컴파일러에 의해 발생된 연장된 코드 및 팩된 설명.
출력은 :
데이타 베이스내 테이블에 추가된 새로운 칼럼 설명.
변경된 테이블에 대한 SYSTABLES 카타로그 테이블내에서 업데이트된 로우.
테이블의 각각의 새로운 칼럼에 대한 SYSCOLUMNS 카타로그 테이블내 로우.
/* 팩된 설명으로부터의 DMS 테이블 설명구조를 설정 */
/* 데이타 베이스내 테이블 설명을 변경하기 위해 DMS를 호출 */
/* SYSTABLES내에서, 변경된 테이블에 대한 팩된 설명 칼럼을 업데이트 */
/* 제1칼럼 설명에 대한 포인터를 얻음 */
/* 테이블에 대한 팩된 설명의 각 칼럼에 대하여 */
/* 코드페이지 #1로부터 SYSCOLUMNS CODE PAGE 필드를 설정 */
/* 코드페이지 #2로부터 SYSCOLUMNS DBCSCODPG 필드를 설정 */
/* 보조형태가 아니라, 문자형태로 SYSCOLUMNS COLTYPE 필드를 설정 */
/* SWITCH(팩된 설명 CD내 칼럼 형태) */
/* 케이스 칼럼 형태=혼합된 문자 */
/* SYSCOLUMNS 칼럼 형태 필드내에 "문자"를 저장 */
/* END CASE */
/* 케이스 칼럼 형태=혼합된 가변문자 */
/* SYSCOLUMNS 칼럼 형태 필드내 "가변문자"저장 */
/* END CASE */
/* 케이스 칼럼 형태=혼합된 긴 가변문자 */
/* SYSCOLUMNS 칼럼 형태 필드내 "긴 가변문자"저장 */
/* END CASE */
/* ENDSWITCH */
/* 로우를 SYSCOLUMN으로 삽입 */
/* ENDFOR */
1988년 IBM 코포레이션 판권
제14도를 참조하면, 위에 열겨된 슈도 코드가 설명된다. 데이타 메니지먼트 서비스 테이블 설명은 단계(201)에서와 같이 팩된 설명으로부터 설정된다. 데이타 메니지먼트 서비스는 단계(203)에서와 같이 새로운 외형 테이블 또는 칼럼을 실제로 작성한다. 카타로그 서비스는 단계(205)에서와 가이 SYSTABLES에 로우를 가산한다. SYSCOLUMNS내 로우는 새롭게 작성된 테이블 또는 새롭게 추가된 칼럼의 각 칼럼에 추가된다. SYSCOLUMNS CODEPAGE 칼럼은 단계(209)에서와 같이, 칼럼 설명으로부터의 코드페이지 1로 설정되며, SYSCOLUMNS DBCSCODEPG 칼럼은 단계(211)에서와 같이 칼럼 설명으로부터의 코드페이지 2로 설정된다.
칼럼 설명 칼럼 형태가 결합된 문자이면, SYSCOLUMN COLTYPE는 단계(213,214)에서와 같이, 문자로 설정된다. 칼럼 설명 칼럼 형태가 혼합된 가변문자이면, SYSCOLUMN COLTYPE는 단계(215,216)에서와 같이 가변문자로 설정된다. 칼럼 설명 칼럼 형태가 혼합된 긴 가변문자이면, SYSCOLUMN COLTYPE는 단계(217,218)에서와 같이, 긴 가변문자로 설정된다. 칼럼 설명 칼럼 형태가 혼합된 문자, 혼합된 가변문자도 아니고, 혼합된 긴 가변문자도 아니면, SYSCOLUMN COLTYPE는 단계(219)에서와 같이 칼럼 설명 칼럼 형태로 설정된다. 로우는 단계(221)에서와 같이 SYSCOLUMNS으로 가산되며 다음 칼럼 설명은 단계(223)에서와 같이 검색된다.
다음 슈도 코드는 규정된 코드페이지로 SQLDA를 업데이팅 하는 것을 설명한다. 보충설명 및 SQLDA 사용에 대해, 참조되는 다음 매뉴얼이 제안된다. 1987년 IBM 코포레이션, 서류번호 SC26-438-0의 "IBM 시스템 응용 설계 공통 프로그래밍 인터페이스 데이타 베이스 참조".
SELECT 문구의 SQL PREPARE 또는 DESCRIBE를 처리하는 동안 코드페이지 정보로 SQLDA를 업데이트.
/* SELECT 리스트를 처리하는 동안 */
/* 리스트 아이템이 칼럼이면 */
/* 팩된 설명으로부터 SQLDA SQLDATA 필드로 코드페이지 #1(SBCS 코드페이지)를 복사 */
/* 팩된 설명으로부터 SQLDA SQLIND 필드로 코드페이지 #2(DBCS 코드페이지)를 복사 */
/* 그외 칼럼이 아니면 */
/* 데이타 베이스 코드페이지 지역으로부터 SQLDA SQLDATA 필드로 코드페이지 #1(SBCS 코드페이지)를 복사 */
/* 데이타 베이스 코드페이지 지역으로부터 SQLDA SQLIND 필드로 코드페이지 #2(DBCS 코드페이지)를 복사 */
/* endif */
/* endwhile */
1988년 IBM 코포레이션 판권.
제15도를 참조하여, 상기 열거된 슈도 코드가 설명된다. SQL 문구가 SELECT의 DESCRIBE나 PREPARE가 아니면, 단계(225,227)에서와 같이 SQLDA는 업데이트 되지 않는다. SQL 문구가 SELECT의 DESCRIBE나 PREPARE이면, 선택 리스트의 제1아이템은 단계(229)에서와 같이 검색된다. 선택 리스트 아이템이 단계(231)에서와 같이, 칼럼이면, SBCS 코드페이지(코드페이지 1)는 단계(233)에서와 같이 팩 설명으로부터 SQLDATA 필드로 복사된다. DBCS 코드페이지(코드페이지 2)는 단계(235)에서와 같이 팩 설명으로부터 SQLIND 필드로 복사된다. 선택 리스트 아이템의 칼럼이 아니면, SBCS 코드페이지(코드페이지 2)는 단계(239)에서와 같이 데이타 베이스 코드페이지 지역으로부터 SQLDATA로 복사된다. DBCS 코드페이지(코드페이지 2)는 단계(241)에서와 같이 데이타 베이스 코드페이지 지역으로부터 SQLIND로 복사된다. 다음 선택 리스트 아이템은 단계(237)에서와 같이 검색되며, 상기 단계들은 단계(243)에서와 같이 모든 선택 리스트 아이템에 대해 반복된다.
다음은, 본 발명의 시스템 및 방법에서와 같이 혼합된 데이타 또는 단일 바이트 문자 셋트 데이타로서 보조형태로 규정된 칼럼을 갖는 데이타 베이스 테이블로부터의 데이타 검색 작용을 예시한다.
데이타는 데이타 베이스 테이블로부터 검색되어 SELECT 및 FETCH 문구를 사용하는 응용 프로그램으로 되돌아간다. SQLDA(SQL 설명기 지역) 또는 호스트 가변리스트를 사용하여, 데이타 베이스 매니저는 데이타를 응용 프로그램내 데이타 지역으로 이동시킨다. 문자 데이타 형태에 대해, 응용 프로그램내 목표 데이타 지역의 길이가 요청된 데이타 베이스 데이타의 길이보다 짧으면, 상기 데이타는 절삭되며 경고 플래그는 상술된 데이타 베이스 참고 문헌에 기술된 바와 같이 SQLCA내에 셋트된다. 문자 데이타가 혼합된 데이타이면, 절삭이 더블-바이트문자를 이분하지 않도록 절삭중에 특별한 처리가 요구되는데, 이것은 무효의 최종 문자를 발생한다.
혼합된 데이타를 위한 절삭 알고리즘은 제16a도에 도시된다. "N"은, 단계(245)에서와 같이 목표 지역의 바이트내 길이를 나타낸다. "FB"는 단계(247)에서와 같이 절삭된 데이타의 최종 바이트의 어드레스를 나타낸다. "N"바이트데이타는 단계(249)에서와 같이 데이타 베이스의 스타트 어드레스로부터 목표 어드레스로 이동된다. FB는 단계(251)에서와 같이, 목표 지역 +N-1의 스타트가 된다. FB가 더블 바이트 문자의 제 1 바이트이면, FB는 단계(255,257)에서와 같이, 단일 바이트 공간으로 대치된다. 그렇지 않으면, 작용이 없다.
비교적, 단일 바이트데이타에 대한 절삭 알고리즘은 제16b도에 도시된다. 다시, "N"은, 단계(259)에서와 같이 목표 지역의 바이트내 단일 바이트내 길이이다. 다음에, N 바이트데이타는 단계(261)에서와 같이, 데이타 베이스 데이타의 어드레스로부터 목표 어드레스로 이동된다. 예시된 바와 같이, 제16a도의 혼합된 데이타 절삭 알고리즘은 제16b도의 단일 바이트만의 데이타를 위해 필요치 않은 단계를 구비한다. 제16a도의 단계(253)에서 마지막 문자 경계를 결정하는 것은 데이타의 내용 및 길이에 의존하는 것으로 특별히 비용이 많이 든다. 혼합된 데이타를 표시하는 내부 데이타 형태를 추가시키는 것은 절삭시키는 런타임코드가 제16b도의 단순한 단일-바이트 루틴 또는 제16a도의 더 비싸게 혼합된 루틴을 선택적으로 호출하게 한다.
SUBSTR 기능의 제1파라메타는 섭스트링이 추출되는 데이타 베이스 문자열을 규정한다. 파라메타 2는 섭스트링의 스타링 바이트 위치이다. 파라메타 3은 결과 바이트의 길이이다. 혼합된 데이타에 대해 섭스트링의 최종 바이트는 마지막 문자가 유효해지도록 상술된 절삭 루틴을 이용하여 처리되어야 한다. 섭스트링의 제1문자는 결과 열이 더블 바이트 문자의 제2바이트로 시작하지 않도록 검사되어야 한다.
이 체크 알고리즘은 제17도에 도시된다. 혼합된 데이타에 대한 SUBSTR 제1문자에 대한 유효화는 다음과 같다. "N"은 단계(263)에서와 같이 SUBSTR의 스타트 바이트이다. "SB"는 단계(265)에서와 같이 섭스트링의 스타트 바이트이다. "SB"는 단계(267)에서와 같이 카라메타 1 데이타 베이스 데이타 +N-1의 어드레스가 된다. SB전의 마지막 문자 경계는 단계(269)에서와 같이 결정된다. SB가 더블 바이트 문자의 제2바이트이면, 섭스트링의 제1바이트는 단계(271,273)에서와 같이 단일 바이트 공간으로 대치된다. 그렇지 않으면, 작용이 없다.
파라메타 1이 혼합된 형태가 아니면, 단계(269,271,273,253,255 및 257)에서와 루틴이 같이 섭스트링의 스타트 및 마지막 문자를 체킹 및 처리하는 특별한 경계를 수행하도록 요청하는 것이 필요하지 않다. 그렇지 않으면, 작용이 없다.
응용 프로그램은 SBCS 데이타 및 혼합된 데이타의 확인을 이용할 수 있다. 응용 프로그램은 단일 바이트인지 혼합된 바이트인지에 따라서 문자 데이타에 대해 특별히 처리한 필요가 있다. 예를 들면, 프로그램은 특정필드상에서 솔트되는 레포트를 발생하기를 원할 수 있다. 혼합된 데이타는 정해진 값의 256 바이트 테이블에 기초한 샘플 수집으로 솔트될 수 없다. 더블-바이트 문자에 대한 솔팅 알고리즘은 복잡하며, 관련된 언어에 따라 변한다.
그러므로 응용이, 비싼 값으로 알고리즘을 데이타에 인가하기 전에, 시스템 카타로그를 쿼리하며 테이블내의 칼럼이 혼합된 것으로 정의되는지 여부를 결정할 수 있는 것이 유용하다. 이것은 일반화된 사용자 인터페이스 또는 레포트 발생기 응용이 다른 응용에 의해 작성된 문자 데이타의 복잡한 처리를 행하게 한다. 왜냐하면 문자 데이타의 형태에 관한 정보가 작성 응용과는 별개로 데이타 베이스에 저장되기 때문이다.
응용 프로그램이 시스템 카타로그로부터 정보를 얻는 방법은 1) 카타로그 테이블로부터 SELECET 2) SQLDA에 대한 PREPARE 또는 DESCRIBE이다. 이 SQL 작용은 IBM 코포레이션, 서류번호 SC26-4346-3 "IBM 데이타 베이스 2 SQL 참조"에 설명된다. FOR MIXED DATA 및 FOR SBCS DATA가 SQL 데이타 형태가 아닌 데이타 보조형태이므로, 상기 응용은 SYSCOLUMNS의 COLTYPE 칼럼 또는 SQLDA의 SQLTYPE 필드를 검사할 수 없으며 보조형태 정보를 얻을 수 없다. 그 대신에 다음 방법이 정보를 상기 응용으로 리턴시키는데 제공된다. 문자 데이타 형태에 대해 필드 SQLDATA 및 SQLIND는 DESCRIBE(또는 INTO절을 갖는 PREPARE)문구후에 제18도에 도시된 바와 같이 인코드된다. 상기 응용은 제10c도에 도시된 바와 같은 인코딩 스케임에 대한 제10a도의 SYSCOLUMNS내 DBCSCODEPG 칼럼(95) 및 CODEPAGE 칼럼(94)를 쿼리할 수 있다.
유사하게, 문자 데이타 인코딩을 지배하는 특정 코드페이지에 응용이 가능하다. 예를 들면 응용은 그러한 데이타를 검색하기 전에 특히 변경하기 전에 데이타의 인코딩 스케임을 이해하는지 여부를 판단하고자 할 것이다. 이러한 필요에 부응해서, 본 발명은 응용이 주어진 문자필드의 코드페이지를 결정하는 데이타 베이스를 쿼리할 뿐만 아니라 응용이 문자필드의 코드페이지 주변을 선언할 수 있다. 이에 더해서, 본 발명의 설게로 각 칼럼의 코드페이지 특성이 다른 칼럼의 특성으로부터 독립적으로 선언되므로, 다수의 코드페이지 환경을 수용하는 진보된 시스템 및 응용이 완전히 수행된다.
다음은 혼합된 바이트데이타를 허용하는 관련 데이타 베이스 시스템내 단일 바이트 문자 셋트 데이타 규정의 중요성을 예시한다. 예시된 목적을 위해서, 단일 바이트 문자는 다음을 이용하는 더블 바이트 문자로부터 분리된다.
-단일 바이트 문자는 하부 케이스 알파벳트, 예를 들면, a,b,c...로 표시된다.
-더블 바이트 문자는 더블 상부 케이스 알파벳트, 예를 들면, AA,BB,CC,...로 표시된다.
예로서, 2 칼럼의 소위 IVORY 및 HEINZ를 갖는 테이블 이름 SAMPLE를 고려해 볼 수 있다. 여기서 IVORY는 단일 바이트 문자열(값)을 포함하며 HEINZ는 혼합된 단일 바이트 및 더블 바이트 문자열을 포함한다. 그러한 테이블은 다음 SQL 문구로 작성될 수 있었다.
작성 테이블 샘플(SBCS 데이타에 대한 IVORY 문자(10), 혼합된 데이타에 대한 HEINZ 문자(10)) 단일 바이트 및 더블 바이트 문자의 표시를 위해 설정된 종래 예를 사용하여, IVORY 및 HEINZ에 대한 일부값은 아래와 같이 제공된다.
Figure kpo00001
상술된 샘플 테이블을 사용하여, 다음은 순수한 단일 바이트 문자로 구성된 데이타 열처리 방법과 단일 바이트 및 더블 바이트 문자로 구성된 데이타 열처리 방법의 일부 차이를 예시한다.
혼합된 열은 열의 시작으로부터 파스될 수 있다는 성질을 갖는다. 즉, 상기 열의 모든 선행 바이트 성질이 결정되지 않았으면 상기 열의 어떤 바이이트도 의미를 갖지 않는다. 예시하기 위해, IVORY 및 HEINZ내 각 값의 마지막 바이트만을 삭제하기를 원하는 사용자 및 응용을 가정해본다. IVORY 칼럼의 값에 대해 사용되는 선행 방법은 곧바르다. 상기 열의 끝은 검사되어, 상기 열의 마지막 바이트가 폐기된다. 이 동일 처리 방법이 HEINZ 칼럼값에 대해 사용되었으면, 그러한 알고리즘은 상기 열의 마지막 문자가 더블 바이트 문자일 때 더블 바이트 문자의 제2바이트를 폐기한다. 그러므로 더 복잡한 처리 알고리즘이 혼합된 바이트 칼럼에 대해 필요로 한다. 먼저, 상기 열의 마지막 성질(단일 바이트 또는 더블 바이트)이 결정되어야 한다. 마지막 바이트를 간단히 체킹하는 것을 불충분하다. 왜냐하면 단일 바이트 문자 및 제2더블 바이트 문자의 제2바이트가 코드점 값을 공유하기 때문이다. 따라서, 열의 마지막 문자가 단일 바이트 또는 더블 바이트 문자인지를 결정하기 위해, 복잡한 파싱 알고리즘이 작용되어야 한다. 이것은 시간이 소모되며 지루한 일이지만, 불가피하다.
우리의 SAMPLE 테이블 값이 이 "마지막 바이트" 절삭 작용에 대한 결과는 아래와 같다.
Figure kpo00002
먼저 칼럼이 단일 바이트 문자열을 포함한다고 가정하면, 양호하게 수행되며 혼합된 단일 바이트 및 더블 바이트 문자열에서 작용하는 방법에서 간단한 개선을 제공하는 그러한 칼럼에 대한 절삭 알고리즘을 사용하는 것이 가능하다. "FOR SBCS DATA" 옵션은 데이타 베이스 사용자 및 응용이 이 칼럼 특성을 규정하게 한다.
또 다른 예가 순수한 단일 바이트 문자열 처리에 대해 혼합된 열처리의 가중된 복잡성을 나타내므로, "보조열"기능이 고려된다. 이 열 작동기는 초기 바이트 위치 및 길이의 규정에 의해 문자열이 일부 선택을 허용한다.
절삭을 위해 접하게 되는 순수한 그리고 혼합된 열 사이의 동일처리 차는 보조열 기능에 적용된다. 순수한 단일 바이트 값으로부터 보조열이 선택되면, 상기 열의 n번째 바이트로 주사될 필요가 있다(여기서 n은 문자가 보조열을 시작하도록 규정하는 보조열 기능의 아규먼트이다.). 이 바이트는 결과적으로 다음 m-1바이트를 더하여 선택된다(여기서 m은 문자내 보조열의 규정된 길이이다). 그러나, 혼합된 단일 바이트 및 더블 바이트 열이 처리되면, 보조열내 제1 및 마지막 바이트의 성질은 보조열내 문자가 하게 되도록 결정되어야 한다. 그러한 관련된 알고리즘의 수행 위법은 중요해질 수 있다.
요약하면, 상기 예는 순수한 단일 바이트와 단일 바이트 및 더블 바이트의 혼합 열 사이의 근본적인 차이를 명확한 알려준다. 순수한 단일 바이트 열내의 어떤 바이트는 문자이다. 상기 열에서 선행하는 바이트의 성질을 알지 않고도 혼합된 열내의 임의의 바이트에 대해 아무것도 말할 수 없다.
이 차이의 영향은 순수한 단일 바이트값의 열 작용(그러므로 칼럼)은 일반적으로 단일 및 더블 바이트의 혼합된 값의 동일 작용보다 더 빠르고 간단하다. 따라서, 이러한 차이에 민감한 알고리즘으로 결합된 순수한 또는 혼합된 칼럼을 선언하는 기능은 상단한 수행상의 잇점을 갖는다. 이것은 FOR SBCS DATA 및 FOR MIXED DATA 칼럼 설명에 대한 강한 동기이다.
본 발명의 관련 데이타 베이스 시스템에서 다음이 특히 도시 및 설명된다. SQL 언어에 대한 확장은, 사용자/응용이 데이타 베이스 테이블내 칼럼이 단일 바이트 문자 셋트 데이타만을 포함하는지 또는 혼합된 단일 바이트 문자 셋트 데이타 및 더블 바이트 문자 셋트 데이타를 포함하는지를 규정하도록 제공된다. 칼럼이 단일 바이트 문자 셋트 데이타 또는 혼합된 데이타를 포함하는지 규정하는 것은 문자, 가변문자 및 긴 가변문자를 포함하는 문자 데이타 형태의 보조형태를 규정하므로 성취된다. 사용자 응용은, 칼럼이 작성 테이블 문구 또는 변경테이블 문구에서 FOR SBCS 또는 FOR MIXED 또는 FOR BIT 데이타를 규정하므로 작성 또는 가산되듯이 칼럼내 문자 데이타의 보조형태를 규정할 수 있다.
단일 바이트데이타 또는 혼합된 데이타에 대해 보조형태를 규정함과 아울러 상기 사용자/응용은 코드페이지가 데이타 베이스내 테이블의 칼럼에 대해 사용되도록 규정할 수 있다. 초기에 본 발명의 데이타 베이스 매니저내에서, 보조형태는 데이타 베이스 시스템 카타로그내에 저장된 것으로 문자 데이타 형태의 코드페이지 특성으로서 기록된다. 이 인코딩 스케임은 칼럼이 단일 바이트 문자 셋트 데이타 또는 혼합된 데이타용인지 여부를 결정하며 동시에 데이타 베이스 시스템 카토로그내 코드페이지 칼럼을 단순히 쿼리하므로 그 칼럼에 대해 사용되는 정확한 코드페이지를 아는 효율적인 방법을 제공한다.
전술된 발명이 특히 양호한 실시예를 참조하여 도시 및 설명되었지만, 본 기술에 숙련된 사람이라면 청구범위에서 벗어나지 않는한 다른 변형이 가능함을 알 수 있다.

Claims (37)

  1. 단일 바이트 문자 셋트 데이타 및 더블 바이트 문자 셋트 데이타로 혼합된 데이타를 갖는 관련 데이타 베이스 시스템에 있어서, 상기 관련 데이타 베이스 시스템의 적어도 하나의 테이블내에 적어도 하나의 칼럼을 포함하며, 상기 적어도 하나의 테이블내 상기 적어도 하나의 칼럼이 단지 단일 바이트 문자 셋트 데이타를 갖는지를 규정하도록 한 언어를 관련 데이타 베이스로 확장시키기 위한 수단을 포함하는 것을 특징으로 하는 관련 데이타 베이스 시스템.
  2. 제1항에 있어서, 한 언어를 관련 데이타 베이스로 확장시키기 위한 상기 수단이, 관련 데이타 베이스 시스템내 테이블을 발생하는 언어의 문구내 문자 데이타 형태의보조형태를 규정하기 위한 수단을 구비하는 것을 특징으로 하는 관련 데이타 베이스 시스템.
  3. 제1항에 있어서, 한 언어를 관련 데이타 베이스를 확장시키기 위한 상기 수단이, 칼럼을 관련 데이타 베이스 시스템내 테이블에 가산하는 언어의 문구내 문자 데이타 형태의 보조형태를 규정하기 위한 수단을 구비하는 것을 특징으로 하는 관련 데이타 베이스 시스템.
  4. 제1항에 있어서, 상기 적어도 하나의 하나의 칼럼에 사용되는 코드페이지를 규정하기 위한 수단을 구비하는 것을 특징으로 하는 관련 데이타 베이스 시스템.
  5. 제1항에 있어서, 상기 언어를 확장하기 위한 상기 수단이, 상기 적어도 하나의 테이블내 상기 적어도 하나의 칼럼이 단일 바이트 문자 셋트 데이타를 갖는지를 규정하기 위해 SQL 언어의 작성 테이블 문구를 확장하기 위한 수단을 구비하는 것을 특징으로 하는 관련 데이타 베이스 시스템.
  6. 제1항에 있어서, 상기 언어를 확장하기 위한 상기 수단이, 상기 적어도 하나의 테이블내 상기 적어도 하나의 칼럼이 단지 단일 바이트 문자 셋트 데이타를 갖는지를 규정하도록 SQL 언어의 변경 테이블을 확장하기 위한 수단을 구비하는 것을 특징으로 하는 관련 데이타 베이스 시스템.
  7. 단일 바이트 문자 셋트 데이타 및 더블 바이트 문자 셋트 데이타로 혼합된 데이타를 갖는 관련 데이타 베이스 시스템에 있어서, 상기 관련 데이타 베이스 시스템의 적어도 하나의 테이블내 적어도 하나의 칼럼을 포함하며, 상기 적어도 하나의 테이블내 상기 적어도 하나의 칼럼에 대해 코드페이지 확인기를 규정하기 위한 관련 데이타 베이스에 언어를 확장하기 위한 수단을 포함하는 것을 특징으로 하는 관련 데이타 베이스 시스템.
  8. 제7항에 있어서, 언어를 확장하기 위한 상기 수단이, 상기 적어도 하나의 테이블내 상기 적어도 하나의 칼럼에 대한 코드페이지 확인기를 규정하도록 SQL 언어의 작성 테이블 문구를 확장하기 위한 수단을 구비하는 것을 특징으로 하는 관련 데이타 베이스 시스템.
  9. 제7항에 있어서, 언어를 확장하기 위한 상기 수단이, 상기 적어도 하나의 테이블내 상기 적어도 하나의 칼럼에 대한 코드페이지 확인기를 규정하도록 SQL 언어의 변경 테이블 문구를 확장하기 위한 수단을 구비하는 것을 특징으로 하는 관련 데이타 베이스 시스템.
  10. 단일 바이트 문자 셋트 데이타 및 더블 바이트 문자 셋트 데이타로 혼합된 데이타를 갖는 관련 데이타 베이스 시스템에 있어서, 상기 관련 데이타 베이스 시스템의 적어도 하나의 테이블내에 다수의 칼럼을 구비하며, 상기 칼럼중 하나를 단일 바이트 문자 셋트 데이타로서 규정하기 위한 수단을 구비하는 것을 특징으로 하는 관련 데이타 베이스 시스템.
  11. 제10항에 있어서, 상기 규정을 위한 수단이 상기 칼럼중 상기 하나를 FOR SBCS DATA로서 규정하기 위한 수단을 구비하는 것을 특징으로 하는 관련 데이타 베이스 시스템.
  12. 제10항에 있어서, 상기 규정을 위한 수단이 문자데이트 형태의 보조형태를 규정하기 위한 수단을 구비하는 것을 특징으로 하는 관련 데이타 베이스 시스템.
  13. 제10항에 있어서, 상기 칼럼중 하나가, 테이블이 작성될 때 단일 바이트 문자 셋트 데이타에 대해 규정되는 것을 특징으로 하는 관련 데이타 베이스 시스템.
  14. 제10항에 있어서, 상기 칼럼중 상기 하나가, 상기 테이블에 가산될 때 단일 바이트 문자 셋트 데이타에 대해 규정되는 것을 특징으로 하는 관련 데이타 베이스 시스템.
  15. 제10항에 있어서, 상기 칼럼중 다른 것을 단일 바이트 문자 셋트 데이타 및 더블 바이트 문자 셋트 데이타의 혼합된 데이타로 규정하기 위한 제2수단을 구비하는 것을 특징으로 하는 관련 데이타 베이스 시스템.
  16. 제15항에 있어서, 상기 칼럼중 상기 다른 것은 규정된 FOR MIXED DATA인 것을 특징으로 하는 관련 데이타 베이스 시스템.
  17. 제15항에 있어서, 상기 칼럼중 상기 다른 것은 상기 테이블이 작성될 때 단일 바이트 문자 셋트 데이타와 더블 바이트 문자 셋트 데이타의 혼합된 데이타에 대해 규정되는 것을 특징으로 하는 관련 데이타 베이스 시스템.
  18. 제15항에 있어서, 상기 칼럼중 상기 다른 것은, 그것이 상기 테이블에 가산될 때 단일 바이트 문자 셋트 데이타와 더블 바이트 문자 셋트 데이타의 혼합된 데이타에 대해 규정되는 것을 특징으로 하는 관련 데이타 베이스 시스템.
  19. 단일 바이트 문자 셋트 데이타 및 더블 바이트 문자 셋트 데이탁 혼합된 데이타를 관련 데이타 베이스 시스템에 있어서, 상기 관련 데이타 베이스 시스템내 적어도 하나의 테이블내에 다수의 칼럼을 포함하며, 상기 칼럼중 적어도 하나의 문자 데이타 형태의 보조형태를 규정하기 위한 수단을 포함하며, 다수의 데이타 베이스 시스템 카타로그중 하나에서 적어도 하나의 코드페이지 특성으로 보조형태를 기록하기 위한 수단을 구비하는 것을 특징으로 하는 관련 데이타 베이스 시스템.
  20. 제19항에 있어서, 칼럼에 대한 코드페이지와 상기 칼럼이 단일 바이트 문자 셋트 데이타만을 포함하는지를 동시에 상기 데이타 베이스 시스템 카타로그중 적어도 하나을 쿼리하기 위한 수단을 구비하는 것을 특징으로 하는 관련 데이타 베이스 시스템.
  21. 단일 바이트 문자 셋트 데이타 및 더블 바이트 문자 셋트 데이탁 혼합된 데이타를 갖는 관련 데이타 베이스 시스템에 있어서, 상기 관련 데이타 베이스 시스템내 적어도 하나의 테이블내에 다수의 칼럼을 포함하며, 상기 칼럼중 적어도 하나의 문자 데이타 형태의 보조형태를 규정하므로 문자 셋트 데이타와 혼합된 데이타를 갖는 것으로 상기 칼럼을 테깅하기 위한 수단을 포함하며, 다수의 데이타 베이스 시스템 카타로그중 하나의 적어도 하나의 코드페이지 특성에 의해 보조형태를 기록하기 위한 수단을 포함하는 것을 특징으로 하는 관련 데이타 베이스 시스템.
  22. 관련 데이타 베이스 시스템에 있어서, 상기 데이타 베이스내의 다수의 칼럼 데이타를 포함하며, 상기 칼럼중 적어도 하나에 대해 제1코드페이지를 규정하기 위한 수단을 포함하며, 상기 칼럼중 적어도 다른 하나에 대해 제2코드페이지를 규정하기 위한 수단을 포함하는 것을 특징으로 하는 관련 데이타 베이스 시스템.
  23. 더블 바이트 문자 셋트 데이타와 단일 바이트 문자 셋트 데이타를 갖는 다수의 칼럼데이타를 갖는 관련 데이타 베이스 시스템에 있어서, 상기 더블 바이트 데이타 및 단일 바이트 데이타에 대한 제1처리 알고리즘을 포함하며, 단일 바이트 데이타에 대한 상기 다수의 칼럼 셋트를 지정하기 위한 수단을 포함하며, 단일 바이트 데이타로서 지정된 상기 칼럼데이타 셋트를 처리하기 위해, 상기 제1처리 알고리즘 보다 빠른 제2처리 알고리즘을 포함하는 것을 특징으로 하는 관련 데이타 베이스 시스템.
  24. 관련 데이타 베이스 시스템에 있어서, 데이타 테이블내 다수의 칼럼을 포함하며, 상기 다수의 칼럼 각각에 대해 다수의 문자 데이타 형태를 규정하기 위한 수단을 포함하며, 상기 문자 데이타 형태의 다수의 보조형태를 규정하는 수단을 포함하는 것을 특징으로 하는 관련 데이타 베이스 시스템.
  25. 제24항에 있어서, 상기 규정된 보조형태에 기초한 상기 칼럼의 데이타를 처리하기 위한 수단을 구비하는 것을 특징으로 하는 관련 데이타 베이스 시스템.
  26. 제24항에 있어서, 상기 관련 데이타 베이스 시스템의 SQLDA 구조에서, 상기 보조형태의 코드페이지 특성을 기록하기 위한 수단을 구비하는 것을 특징으로 하는 관련 데이타 베이스 시스템.
  27. 제24항에 있어서, 데이타 베이스 시스템과 카타로그의 단일 바이트 코드페이지 칼럼 및 더블 바이트 코드페이지 칼럼내 보조형태의 다수의 코드페이지 특성을 기록하기 위한 수단을 구비하는 것을 특징으로 하는 관련 데이타 베이스 시스템.
  28. 제27항에 있어서, 상기 칼럼중 어느 하나에 대한 문자 데이타의 보조형태와 상기 칼럼중 어느 하나에 대한 다수의 코드페이지 특성을 동시에 결정하기 위해 데이타 베이스 시스템 카타로그를 쿼리하기 위한 수단을 구비하는 것을 특징으로 하는 관련 데이타 베이스 시스템.
  29. 혼합된 데이타를 갖는 관련 데이타 베이스 시스템내의 칼럼데이타를 처리하기 위한 방법에 있어서, 칼럼데이타를 단일 바이트 문자 셋트 데이타로서 태깅하며, 혼합된 데이타의 칼럼을 처리하기 위한 제2알고리즘보다 빠른 제1알고리즘으로 상기 태그된 칼럼데이타를 처리하는 단계를 구비하는 것을 특징으로 하는 혼합된 데이타를 갖는 관련 데이타 베이스 시스템내의 칼럼데이타 처리방법.
  30. 혼합된 데이타를 갖는 관련 데이타 베이스 시스템내의 칼럼데이타 처리방법에 있어서, 관련 데이타 베이스 시스템내 테이블을 작성하기 위한 문구에서, 칼럼에 대한 문자 데이타 형태의 보조형태를 규정하며, 관련 데이타 베이스 시스템의 시스템 카타로그에서, 문자 데이타 형태의 적어도 하나의 코드페이지 특성에 의해 보조형태를 저장하는 단계를 구비하는 것을 특징으로 하는 혼합된 데이타를 갖는 관련 데이타 베이스 시스템내의 칼럼데이타 처리방법.
  31. 제30항에 있어서, 상기 칼럼의보조형태와 상기 칼럼의 코드페이지를 동시에 결정하기 위해 상기 시스템 카타로그를 쿼링하는 단계를 구비하는 것을 특징으로 하는 혼합된 데이타를 갖는 관련 데이타 베이스 시스템내의 칼럼데이타 처리방법.
  32. 제30항에 있어서, 상기 문구에서, 상기 칼럼에 대한 적어도 하나의 코드페이지를 규정하는 단계를 구비하는 것을 특징으로 하는 혼합된 데이타를 갖는 관련 데이타 베이스 시스템내의 칼럼데이타 처리방법.
  33. 혼합된 데이타를 갖는 관련 데이타 베이스 시스템내의 칼럼데이타 처리방법에 있어서, 칼럼을 관련 데이타 베이스 시스템내에 존재하는 테이블에 가산하기 위한 문구에서, 칼럼에 대한 문자 데이타 형태의 보조형태를 규정하며, 관련 데이타 베이스 시스템의 시스템 카타로그에서, 문자 데이타 형태의 적어도 하나의 코드페이지 특성에 의해 보조형태를 저장하는 단계를 구비하는 것을 특징으로 하는 혼합된 데이타를 갖는 관련 데이타 베이스 시스템내의 칼럼데이타 처리방법.
  34. 제33항에 있어서, 상기 칼럼의 보조형태와 상기 칼럼의 코드페이지를 동시에 결정하기 위해 시스템 카타로그를 쿼링하는 단계를 구비하는 것을 특징으로 하는 혼합된 데이타를 갖는 관련 데이타 베이스 시스템내의 칼럼데이타 처리방법.
  35. 제33항에 있어서, 상기 문구에서, 상기 칼럼에 대한 적어도 하나의 코드페이지를 규정하는 단계를 구비하는 것을 특징으로 하는 혼합된 데이타를 갖는 관련 데이타 베이스 시스템내의 칼럼데이타 처리방법.
  36. 혼합된 데이타를 갖는 관련 데이타 베이스 시스템내의 칼럼데이타 처리방법에 있어서, 상기 칼럼에 대해 문자 데이타 형태의 보조형태를 규정하며, 시스템의 단일 바이트 코드페이지 칼럼내에 코드페이지를 확인하는 제1값을 기록하며, 보조형태가 단일 바이트 문자 셋트 데이타일때 시스템 카타로그의 더블 바이트 코드페이지 칼럼내에 제2값인 제2값을 기록하는 단계를 구비하는 것을 특징으로 하는 혼합된 데이타를 갖는 관련 데이타 베이스 시스템내의 칼럼데이타 처리방법.
  37. 혼합된 데이타를 갖는 관련 데이타 베이스 시스템내의 칼럼데이타 처리방법에 있어서, 상기 칼럼에 대한 문자 데이타 형태의 보조형태를 규정하며, 시스템 카타로그의 단일 바이트 코드페이지 칼럼내에 제1코드페이지를 확인하는 제1값을 기록하며, 상기 보조형태가 단일 바이트 문자 셋트 데이타 및 더블 바이트 문자 셋트 데이타를 갖는 혼합된 데이타일 때 시스템 카타로그의 더블 바이트 코드페이지 칼럼내에 제2코드페이지를 확인하는 제2값을 기록하는 단계를 구비하는 것을 특징으로 하는 혼합된 데이타를 갖는 관련 데이타 베이스 시스템내의 칼럼데이타 처리방법.
KR1019890004569A 1988-04-08 1989-04-07 관련 데이타베이스 시스템 및 그 시스템내 칼럼 데이타 처리방법 KR920003456B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US179,191 1980-08-18
US17919188A 1988-04-08 1988-04-08

Publications (2)

Publication Number Publication Date
KR890016470A KR890016470A (ko) 1989-11-29
KR920003456B1 true KR920003456B1 (ko) 1992-05-01

Family

ID=22655603

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019890004569A KR920003456B1 (ko) 1988-04-08 1989-04-07 관련 데이타베이스 시스템 및 그 시스템내 칼럼 데이타 처리방법

Country Status (8)

Country Link
EP (1) EP0336579A3 (ko)
JP (1) JPH02146677A (ko)
KR (1) KR920003456B1 (ko)
CN (1) CN1037603A (ko)
BR (1) BR8901648A (ko)
CA (1) CA1290455C (ko)
GB (1) GB8815987D0 (ko)
PT (1) PT90209B (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2105847C (en) * 1993-09-09 1996-10-01 Adrian Storisteanu Method of editing text in column sensitive environments
CN106294498A (zh) * 2015-06-09 2017-01-04 阿里巴巴集团控股有限公司 一种数据处理方法和设备
US11797561B2 (en) * 2021-02-11 2023-10-24 International Business Machines Corporation Reducing character set conversion
CN115659314B (zh) * 2022-12-13 2023-04-07 合肥喆塔科技有限公司 一种基于混合数据的数据服务方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60177386A (ja) * 1984-02-23 1985-09-11 松下電器産業株式会社 文書処理装置

Also Published As

Publication number Publication date
BR8901648A (pt) 1989-11-21
KR890016470A (ko) 1989-11-29
PT90209A (pt) 1989-11-10
CA1290455C (en) 1991-10-08
PT90209B (pt) 1995-06-30
EP0336579A2 (en) 1989-10-11
JPH02146677A (ja) 1990-06-05
EP0336579A3 (en) 1992-09-02
GB8815987D0 (en) 1988-08-10
CN1037603A (zh) 1989-11-29

Similar Documents

Publication Publication Date Title
Lin et al. Nl2bash: A corpus and semantic parser for natural language interface to the linux operating system
US5675818A (en) System and methods for improved sorting with national language support
US7512575B2 (en) Automated integration of terminological information into a knowledge base
US6182062B1 (en) Knowledge based information retrieval system
Peterson Computer programs for detecting and correcting spelling errors
JP4658420B2 (ja) 文字列の正規化表示を生成するシステム
CN109840256B (zh) 一种基于业务实体的查询实现方法
US5758314A (en) Client/server database system with methods for improved soundex processing in a heterogeneous language environment
US5640587A (en) Object-oriented rule-based text transliteration system
US20090024384A1 (en) Data processing method and system, program for realizing the method, and computer readable storage medium storing the program
US7415405B2 (en) Database script translation tool
Taft et al. Ada 2012 reference manual. Language and standard libraries: international standard ISO/IEC 8652/2012 (E)
US20150033105A1 (en) System and Method of translation management, including concurrent user-directed presentation and execution of normalised and Romanised function and function parameter names, within Microsoft Excel for Windows (Excel) for non-English and non-Roman script languages.
JPS6175957A (ja) 機械翻訳処理装置
Raymond et al. Markup reconsidered
KR920003456B1 (ko) 관련 데이타베이스 시스템 및 그 시스템내 칼럼 데이타 처리방법
Colazzo et al. Multi-user hypertextual didactic glossaries
Simons et al. Multilingual data processing in the CELLAR environment
Joffe et al. Computational features of the dictionary application" TshwaneLex"
Davis et al. Creating global software: Text handling and localization in Taligent's CommonPoint application system
Lu et al. A Multilingual Database Management System for Ideographic Languages
Smith et al. MICROARRAS: An Overview
UNIXVersion Tru64 UNIX
JPH0258166A (ja) 知識検索方法
Sparrman A technique for command language syntax analysis

Legal Events

Date Code Title Description
A201 Request for examination
G160 Decision to publish patent application
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee