JPH02146677A - リレーシヨナル・データベース・システム - Google Patents

リレーシヨナル・データベース・システム

Info

Publication number
JPH02146677A
JPH02146677A JP1089567A JP8956789A JPH02146677A JP H02146677 A JPH02146677 A JP H02146677A JP 1089567 A JP1089567 A JP 1089567A JP 8956789 A JP8956789 A JP 8956789A JP H02146677 A JPH02146677 A JP H02146677A
Authority
JP
Japan
Prior art keywords
data
column
character
byte
database
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP1089567A
Other languages
English (en)
Inventor
Philip Yen-Tang Chang
フイリツプ・エン‐タンク・チヤング
Robert William Engles
ロバート・ウイリアム・エンジエルズ
David Francis Obermann
デヴイド・フランシス・オバーマン
Mary Kathleen Trumble
マリイ・キヤスリーン・トランブル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH02146677A publication Critical patent/JPH02146677A/ja
Pending legal-status Critical Current

Links

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

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は、コンピユータ化されたデータベースに関し、
さらに詳しくは、リショーナル・データベースのカラム
内での2バイ1へ・キャラクタ・セラl〜・データと1
バイ1へ・キャラクタ・セット・データの使用に関する
B、従来技術及びその問題点 データベースは、将来のユーザがらのリフストに応じた
検索のために、大量のデータをストアするのに使われる
。ユーザは、アプリケーション・プログラムであること
もあるし、入力デバイスを通じてデータベース・システ
ムとインターラクトするエンド・ユーザであってもよい
。関連づけられたデータのグループは、普通にリレーシ
ョナル・データベースで使われているように、データ・
ファイルまたはテーブルと呼ばれる。テーブル中のデー
タの行(ロー)は論理レコードと呼ばれ、データのカラ
ム(欄)はフィールドと呼ばれる。リレーショナル・デ
ータベース・システムでは、ユーザは、データをテーブ
ルとしてのみ知覚し、その他の組織形態、たとえばデー
タの階層構造の形では知覚しない。
これらのデータベース・システムは、典型的な場合、デ
ータベース・マネジャーという、ユーザ・インタフェー
スを介して入力される様々なコマンドに応答してデータ
を記憶・編集・更新・挿入・削除・検索するコンピュー
タ・プログラムが、含まれている。データベース・マネ
ジャーは、データベースに対するユーザからのすべての
リクエストを処理し、上記のような様々な機能を実行す
る。
特に、データ検索に関しては、サーチ・コマンド、つま
りデータベース・マネジャーがそれに応答して要求デー
タを供給するところの1間合せ″を定式化するために、
多数のコンピュータ言語が考案されている。これらの間
合せは、基本的には、コンピュータ及び関連するデータ
ベース・マネジャーをして所望のサーチを実行させるべ
く符号化されたサーチ・インス1ヘラクションである。
データベースでの問合せを定式化するためのこれらの言
語には、いくつかの問題点がある。まず、間合せ言語の
多くが普通のプログラミング言語と異なっている。した
がって、ユーザにプロゲラミンクの経験があっても、デ
ータベースから有意なデータを取り出すためだけに、全
く新しいコマンドのセットを学習しなければならなかっ
た。コンピュータ経験が全くないユーザ、例えば多くの
ターミナル・オペレータの場合には、データベースとイ
ンターラクトするためだけに、1種のコンピュータ・プ
ログラミングを学習しなければならなかった。さらに、
かかる間合せ言語は高度かつ複雑なシンタックス及びセ
マンティクス・ルールを必要とするので、データを首尾
よく検索できる人間は、高度かつ高価な訓練をつんだ少
数の者に限られていた。このため、かかるコンピュータ
・システムのユーティリティに悪影響が及び、広範囲な
数の人間による使用を不可能としていた。
構造化間合せ言語(SQL)は、エンド・ユーザが情報
を検索するべくデータベース・マネジャーとインターフ
ェースするにあたって利用されるインターラクテイブな
間合せ言語であり、かつデータベース・マネジャーを介
してデータベース中のデータにアクセスすべくアプリケ
ーション・プロゲラ11中に埋め込むことのできるデー
タベース・プログラミング言語である。、SQLは、必
要とされる情報のタイプを指定するための簡便な方法で
ある。
かかる間合せ言語の代表は標準間合せ言語、つまり“S
QL”であり、その詳細は、ANADatabase 
1.、arlguage S Q L 、5tanda
rd X3.135−1986、Amerj、can 
National 5tandard In5titu
te刊に記述されている。S Q Lの詳細な説明は、
”TBMDatabase2 S Q L Refer
ence”ドキュメン1一番号5C26−4346−3
,I B M社刊にても行われている。
例えば、第4図に示すような、名前とアドレスを含むデ
ータのローとカラムを有するテーブル■6を作るために
は、ユーザは、テーブル作成(CREATE TABL
E)文を発して、データベースを以下のように規定する
ことになる。
CREATE   TABLE  DIRECTORY
(NAME     CHAR(20)。
ADDRESS  CHAR(50) )テーブル作成
文は、SQLデータ定義文の]−例である。各テーブル
の作成文は、作られるテーブルの名前、カラムの名前、
及びカラムのデータ・タイプを与える。テーブル作成文
は実行可能な文である。つまり、テーブル作成文がユー
ザによってターミナルから入力されると、その時点でシ
ステムはテーブルを作るのである。最初、テーブルは空
である。すなわち、データ行は1つもない。
しかしながら、SQL挿入文を用いることにより、ユー
ザは第4図に示すようなテーブルを作成することができ
る。テーブルを作成し、かつそこにレコードを挿入し終
えたなら、ユーザは、S Q Lデータ操作文を使って
、テーブルからデータを検索することができる。
上述のように、ユーザは、テーブル作成文によっていつ
でもテーブルを作成できるだけでなく、テーブル改造(
ALTERTABLE)文によってカラムを付加するこ
とにより、いつでも既存のテーブルを改造することがで
きる。例えば、第4図のテーブル16にパ市と州(ci
ty and 5tate)”のカラムを付加する場合
、テーブル改造文は次のようになる。
ALTERTABLE  DIRECTORYADD 
 CTTY  5TAYTE  CHAR(20)上記
文により、テーブル” D I RE CT ORY 
”に”CITY  5TATE”のカラムが追加される
。カラム名が指定された後に、該カラムのデータ・タイ
プが指定される。いくつかのデータ・タイプを示すと以
下のにようになる。最後の3つのカテゴリー、CHAR
,VARCHAI又、及びL ON G  V A R
CHA Rを、ココテは、キャラクタ・データ・タイプ
と呼ぶことにする。
TNTEGER符号つきのフルワード2進整数(3]ピ
ツ1へ精度) SMALL、工NT      符号つきのハーフワー
ド2進整数(16ビツ1へ精度) DECIM、A、L       精度2桁の符号つき
パック10進数。
少数点は右から9桁とする。
FLOAT         符号つきの倍精度浮動小
数点数CHAR(ロ)       長さnキャラクタ
の固定長キャラクタ・ス1−リング VARCj−IAR(n)    最大炎をnキャラク
タとする可変長キャラクタ・ストリング。ただ し、4000バイ1〜を越えない。
LONG  VARCI(A、R32,700パイ1〜
を越えない、可変長キャラクタ・ス1−リング この分野については、C,J、Data著、An In
troductjonto Database Sys
tem、Volumel、 、 Fourth Edj
、tion。
Addison−1i1eslcy Publjshi
ng Company Ir+c、、1986を参照さ
れたい。
ユーザが第4図に示すようなデータ挿入を行うとき、処
理システムは、データを現実に示されるとおりには見な
いで、1とOのピッ1へ・スI−リングとして見る。処
理システムによるビット・ス1〜リングの解釈の仕方は
、データのタイプに応じて様々である。データがテキス
I・またはキャラクタなら、処理システムはス1〜リン
グを固定ユニツ1−の形で解釈する。この場合、各ユニ
ツ1へは、キャラクタ、数字、またはその他のテキス1
〜・グラフィックを表わす。普通、これらのユニノ1−
はコード・ポインI・と呼ばれ、通常、特定のビット幅
、例えば8ビツト(1バイト)の幅を持つ。1バイト・
コード・ポイン1〜・スhラテージ、つまりエンローデ
ィング・スキームによれば、1−とOの組合せを変える
ことによって256の異なるコード・ポイン1〜が実現
できる。これらの256個のロー1く・ポイントを使っ
て、様々なキャラクタ、数字、シンボル等を256個ま
で表現することができる。
256個のロー1〜・ポイントからなるグループの各々
は、ロー1へ・ページと呼ばれる。英語で使われるキャ
ラクタと数字及び普通に用いられるいくつかのシンボル
のほとんどを表現するためには、コード・ページ1つで
十分である。コード・ページ21の1例を第2図に示す
。上述の1バイト・コード・ページは、英語を表すのに
は十分である。
しかしながら、日本語には6000を超すシンボルが含
まれるので、上記エンコーディング・スキームは、様々
なシンボルのすべてを表現するのに用い得ない。
したがって、′より豊富な″エンコーディング・スキー
ムが必要とされる。その1例が、日本二[業規格のシフ
1〜JISと呼ばれるものである。シフ1− J I 
S規格は、1」本語キャラクタ・セラ1〜及び日本語で
使われる6000を越すグラフィック・シンボル用のコ
ード・ページを記述している。第3図は、日本語用のロ
ー1−・ページ22の1例を示している。
第3図を参照すると、16進コード○XOoから0x7
Eは、アッパーケースとロアケースの英語アルファベッ
ト及び数字等の1パイ1〜・シンボルを表わす。16進
コート0xA1からOxDFは、半角の片仮名を表わし
ている。J6進コード0x81から0x9F、及び0x
EOから0xECは、約11000〜1.2000個の
日本語シンボルにアクセスするための″導入パイ1〜と
考えることができる。導入バイトは、2バイ1〜・シー
ケンスの第1バイト目である。したがって、これらの約
11000個のシンボルについては、シンボルを識別す
るのに2バイトが必要である。このようにして、2バイ
ト・エンコーディング・スキームが定義される。
さて、日本語では、漢字、平仮名、片仮名という3種類
のキャラクタが使われる。第3図に示すように、片仮名
キャラクタは1バイ1〜・キャラク夕であるけれども、
平仮名と漢字のキャラクタは2バイ1へ・キャラクタで
ある。さらに、日本語ではローマ字も使われる。このこ
とは、第3図において、16進コード0x41〜○x7
Aで示されている。結局、日本語文は、漢字、平仮名、
片仮名、ローマ字、数字及びその他のキャラクタの混合
したものであり、1バイ1−・キャラクタと2バイ1−
・キャラクタの両方が含まれる。
同様に、リレーショナル・データベースが日本語をサポ
ー1−するなら、リレーショナル・データベース中のカ
ラムもまた1バイト・キャラクタと2バイト・キャラク
タを含み得ることになる。
現在のSQLベースのリレーショナル・データベース・
プロダク1へには、(2バイ1へ1パイ1〜の)混合デ
ータを処理しなければならないかどうかを指定するイン
ストレーシミン・オプションがある。
このオプションが指定されたなら、キャラクタ・データ
は混合データとして扱われる。そういうものとして、混
合オプションが指示されると、たとえあるフィールドは
1バイト・データしか含んでいなくても、すべてのフィ
ールドのすへてのデータが混合データとして扱われる。
例えば日本語におけるように、2バイト・キャラクタ・
セットのデータを必要とする環境では、すべてのキャラ
クタを、2バイ1〜・キャラクタ・セット・データと]
バイト・キャラクタ・セラ1へ・データの混合物とみな
さなければならない。混合データを処理するためには、
1バイl−・データの場合よりも複雑なアルゴリズムが
必要になる。結果として、混合データが指示された場合
、リレーショナル・データベースのすべてのデータ・カ
ラムの処理によってパフォーマンスが低下してしまう。
従前は、パーソナル・コンピュータの環境において、テ
ーブル中のあるカラムが1バイト・キャラクタ・セラ1
−・データのみのために用いられることを指定する方法
がなかった。したがって、そのようなカラムにより簡単
なアルゴリズムを適用することができなかった。SQL
言語は、かかる情報を指定し、蓄える方法を提供してい
なかった。
さらに、2バイト・キャラクタ・セット・データ用 と1バイト・キャラクタ・セット・データを混合して用
いる環境では、 C1問題点を解決するための手段 したがって、本発明の目的は、1バイト・データと2バ
イト・データが混在するリレーショナル・データベース
において、データ処理のパフォーマンスを向上させるこ
とにある。
本発明の他の目的は、リレーショナル・データベースの
フィールドに含まれるデータが1バイト・キャラクタ・
セット・データのみであることを指定し、もって当該フ
ィールドのデータにより簡単な処理方法を適用し得るよ
うにすることにある。
本発明のシステムにおいては、SQL言語が拡張される
。カラム毎にキャラクタ・タイプ・データのサブタイプ
を指定するオプション・パラメータが、テーブル作成文
とテーブル改造文に付加さる。サブタイプは、カラムに
含まれることになるデータが混合データなのか純粋」バ
イ1〜・データなのかを表示する。加えて、ユーザがカ
ラムを1バイト・データ用だと指定する場合には、さら
に。
1バイ1−・キャラクタ・セラl−・データ用のコード
・ページを指定することができる。ユーザがカラムを混
合データ用だと指定する場合には、さらに、1バイト・
キャラクタ・セラ1〜・データ用のコート・ページと、
2バイ1〜・キャラクタ・セット・データ用のコード・
ページを、それぞれ指定することができる。
本発明にて用いられるエンコーディング・スキームは、
2つの目的に寄与する。データベース・システム・カタ
ログ内のキャラクタ・カラムの、1バイ1〜・コード・
ページ・71−リビュート(属性)と2バイト・コード
・ページ・アトリビューがゼロであるのかノン・ゼロで
あるのかをチエツクするだけで、システムあるいはアプ
リケーションは、当該キャラクタ・カラムが混合データ
用又は純粋1バイ1〜・データ用の何れとして指定され
ているかを判断することができ、同時に、当該カラムに
つき用いられることになっているロー1〜・ページを判
断することができる。当該カラムに含まれるキャラクタ
・サブタイプを表示するフラグはコートページそれ自体
であり、該フラグを使って当該カラムについての特殊な
トランスレーション等を実行することができる。例えば
、1バイト・コード・ページ・アトリビュートがノン・
ゼロ値であり、2バイト・コート・ページ・アトリビュ
ートがゼロであるならば、該カラムは1バイ1〜・キャ
ラクタ・セラ1へ・データのみに対応するよう指定され
ている。加えて、ノン・ゼロである1バイト・コード・
ページ・アトリビュートの値は、特定のコード・ページ
を指示する値なのである。
また、1バイト・ロー1へ・ページと2バイト・コード
・ページの71ヘリビユー1〜が両方ともノン・ゼロで
あるならば、該カラムの内容は、2バイト・キャラクタ
・セット・データと1バイト・キャラクタ・セット・デ
ータを両方持つ混合データである。加えて、この場合の
ノン・ゼロの数値は、1バイト・データにつき使用され
ることになっているコード・ページと2バイト・データ
につき使用されることになっているコード・ページを、
それぞれ指示する。
本発明によれば、データベース・プロダクト及びユーザ
・アプリケーションが、切捨、サブストリング等のデー
タ処理アルゴリズムに関連して、キャラクタ・カラム中
のデータをどのように扱うべきかを知ることが可能にな
る。カラムが1バイト・キャラクタ・セット・データ専
用であるなら、データ処理を大幅に簡略化できよう。本
発明を使わなければ、混合データという最悪のケースを
想定していなければならないのである。なお、本発明の
ようにカラム毎に別個のコード・ページを指示すること
によって、カラム毎に違った照合順序を適用することが
可能になる。
D、実施例 第1A図と第1B図は、本発明を実施するのに用いられ
る処理装置の概要を示す。
第1A図は、IBM社のパーソナル・システム/2(商
標)で用いられているような、パーソナル・コンピュー
タ・アーキテクチャの1例を示す。
このアーキテクチャの焦点は、マイクロプロセッサ1か
らなる。マイクロプロセッサ1はバス2につながれる。
バス2は、データ・ラインのセット、アドレス・ライン
のセット、及びコントロール・ラインのセットからなる
。複数のI10デバイス、メモリ、記憶装置3〜8が、
それぞれアダプタ9〜14を介して、バス2に接続され
ている。例えば、デイスプレィ4はIBMパーソナル/
システム・カラー・デイスプレィ8514であってよく
、その場合は、アダプタ10をプレナ・ボードに集積化
することができる。その他のデバイス3,5〜8及びア
ダプタ9,11〜14は、IBMパーソナル・システム
/2の一部として含まれていてもよいし、■BM社製の
プラグ・イン・オプションとしてアベイラブルであって
もよい。例えば、RAM、6.ROM7.及びこれに対
応するアダプタ12.13は、IBMパーソナルシステ
ム/2の標準装備ではあるけれども、RAM6を補うた
めにプラグ・イン・メモリ・エクスパンション・オプシ
ョンを介してROMをさらに付加してもよい。
ROM7の中には、マイクロプロセッサ1によって実行
される、BIO8(基本人出力オペレー=16 ティング・システム)として知られる複数の命令が記憶
されている。BIO8は、コンピュータの基本動作をコ
ントロールする。O8,/2 (商標)等のオペレーテ
ィング・システムはメモリ6にロードされ、ROM7に
記憶されたBIO8と協同する。もっとも、BIO8の
一部ないし全部をROM7ではなくメモリ6に記憶させ
てもよい。そうすることにより、基本的なシステム動作
の修正を、BIOSプログラムの変更によって吸収し、
かつ変更したBIOSプログラムをRAM6に即座にロ
ードすることができる。
パーソナル・システム/2とO8/2に関しては、以下
のマニュアルを参照されたい。
Technj、cal  Reference  Ma
nual、personal  System/2 (
Model 50.60 systems)、 IBM
コーポレーション、パーツ・ナンバー68X2224 
、オーダー・ナンバー568X−2224,Techn
ical Reference Manual。
Personal System/2 (Model 
80)、 IBMコーポレーション、パーツ・ナンバー
68X2256 、オーダー・ナンバー568X−22
56,TBM OperatingSystem/2v
ersjon 1.O5tandard Edjtio
n Technj、calReference、 IB
Mコーポレーション、パーツ・ナンバー6280201
.、オーダー・ナンバー5871.−AAA。
Iacobucci、 Ed、 O3/2 Progr
ammer’s Guide。
McGraty Hil]、、1988゜本発明の装置
では、リレーショナル・データベース・マネジャー等の
アプリケーション・プログラム20は、メモリ6にロー
ドされたり、あるいはメディア5に常駐したりする。メ
ディア5はデイスケソhまたはハート・ファイルを含む
が、これに限定されるものではない。リレーショナル・
データベース・マネジャー20は、オペレーティング。
・システム15の拡張と考えてもよい。リレーショナル
・デ・−タベース・マネジャー20は、リレーショナル
・データベース・マネジャー・タスクの包括的なセット
であり、マイクロプロセッサ1にインストラクションを
与えて、第1A図及び第1B図に示される処理システム
をしてリレーショナル・データベース機能を営ませる。
メモリ6にロードされたアプリケーション・プロゲラ1
1]8は、メモリ6に先にロードされたオペレーティン
グ・システムと協同する。
第]−A図及び第1− B図の処理システムにおいて、
オペレータは、キーボード3のオペレータ・コンl−ロ
ール・キーを介して、レリーショナル・データベース・
マネジャー20にアクセスする。バス2を介してデイス
プレィ4、メディア・ス1−レージ5、及びメモリ6に
接続されたプロセッサ]は、キーボードによってドライ
ブされる。ユーザが、キーボード3を介して、リレーシ
ョナル・ケージベース・マネジャー20とインターラク
トするアプリケーション・プログラムとインターラフ1
〜するとき、リレーショナル・データベース・マネジャ
ー20とそのケージはデイスプレィ4を通じてユザーに
表示される。データベース・マネジャー20とインター
ラフ1〜するユーザーに加えて、アプリケーション】8
も、アプリケージ9ン18中のSQLコマンドを介して
データベース・マネジャー20とインターラフI−する
ことができる。
上述のリレーショナル・データベース・システムでは、
1バイト・キャラクタ・データを処理するよりも、混合
キャラクタ・データを処理する方が、高価である。なぜ
なら、混合データの場合は、1バイト・データの後に必
ずキャラクタ境界が来るとは限らないからである。例え
ば、キャラクタ・データを移動させることを伴うオペレ
ーションについて考えてみると、1バイ1−・データの
方が速やかに実行できる。なぜなら、あるアドレスから
別のアドレスへ、何バイトかのデータ(キャラクタ)を
単純に移せばよいからである。しかるに、混合キャラク
タの場合は、バイ1−境界をまたぐことがあるので、あ
るアドレスから別のアドレスへデータを移すアルゴリズ
ムは、キャラクタの境界を決めるアルゴリズム、及び、
キャラクタ・データのインテグリテイを維持するアルゴ
リズムを伴わねばならない。
混合キャラクタ・データによって例えば日本語をサポー
1−するり1ノーシヨナル・データベース・システムに
おいて、本発明のシステム及び方法によれば、ユーザー
が、カラム毎にキャラクタ・夕イブのサブタイプを、1
バイ1〜・データまたは混合データのどちらかに指定で
きるようになる。ユーザーは、テーブル作成文またはテ
ーブル改造文によってカラムが作られつつあるときに、
カラムのキャラクタ・タイプのサブタイプを指定するこ
とができる。
第5A図及び第5B図には、テーブル作成文32とテー
ブル改造文34が示されている。これらは、指定された
カラム名33.35のキャラクタ・データ・タイプのサ
ブタイプ37.39を生成するために、ユーザーが用い
る。カラム名]、 (column−name ’L 
)33、35についてのサブタイプFOR5BC8DA
TA37は、カラム名1につき1バイト・キャラクタ・
セット・データを指定する。カラム名2(33,35)
についてのサブタイプFORM丁XED  DATA3
9は、カラム名2につき、〕−バイトど2バイトの混合
したキャラクタ・セット・データ髪指定する。
これらのSQL文32.34及びその中で指定されたザ
ブタイプは、本発明のシステム内で以下のようして処理
される。リレーショナル・データベース・マネジャー2
0のカーネル42についての説明は第6図で、リレーシ
ョナル・データ・サービスRDS25の構造についての
説明は第8図で、また流れ図は第7図で、それぞれ行う
プレコンパイラ43は、ソース・プログラム18から埋
込SQL文を抽出してリレーショナル・データベース・
マネジャー20の基本システム・ユーティリティー(B
SU)4]に渡す(ステップ71.第7図)。BSU4
1は、S Q L文をRDS25に渡す(ステップ72
)。RDS25は、S Q L文をコンパイルするS 
Q Lコンパイラ24へのインターフェースである(ス
テップ73)。S Q Lコンパイラ24は、解釈可能
コードを生成する(ステップ74)。解釈可能ローI−
はR,DS25のランタイム・インタープリタ−52に
よって実行される(ステップ75)。このロー1−はR
DS25のカタログ・サービス・ルーチン54を呼び、
データベース・カタログ23を更新する(ステップ76
)。
」二記ステップは、リレーショナル・データベース・マ
ネジャー20のカーネル42の構成要素と機能(第6図
)及びR,D S 25の構成要素と機能(第6図、第
8図)について説明した後、疑似コードとフローチャー
1へを参照しながら詳述する。
RDS25は、S Q Lテープル作成文及びテーブル
を改造文から由来するテーブルの生成と操作を準備する
。RDS25は、データベース・カタログ23の管理も
行う。データベース・カタログ自体はリレーショナル・
データベース内のテーブルであり、リレーショナル・デ
ータベースが常駐しているファイル・システムの中、例
えば第]A図のメディア5の上に、常駐する。
データベース・カタログ23は、2次的なデータベース
・オブジェク1〜であり、データベース・マネジャーに
よってセットアツプされ、かつ維持される。カタログ・
テーブルはすへてデータベース・生成時に生成され、レ
リーシミナル・データベース・テーブルとしてインブリ
メン1〜される。カタログ・テーブルは、カーネルによ
って独占的に使用され維持されるものを除き、ユーザー
作成チープルと異ならない。もっとも、ユーザーがカタ
ログ・テーブルに間合せすることは許される。いくつか
のカタログ・テーブルはシステムによって維持され、ユ
ーザー・テーブルに関する情報及びプログラムを持つ。
第6図のリレーショナル・データ・サービス(RDS)
25は、プレコンパイラ43とアプリケーション18に
とって、データベース・マネジャー20のカーネル42
へのインターフェースである。プレコンパイラは、SQ
Lコンパイラ24を呼び出して、SQL文をコンパイル
する。アプリケーションは、コンパイルされた形のSQ
L文を実行(解釈)する。
リレーショナル・データベース・マネジャーのカーネル
42は、リレーショナル・データ・サービス(RDS)
25.SQLコンパイラ24、ソー1へ・リス1〜・サ
ービス(SLS)44.データ・マネーシメンI〜・サ
ービス(DMS)45.インデックス・マネジャー(I
DX)46.データサービス(DSV)47.データ・
プロテクション・サービス(DI)S)48.バッファ
、プール・サービス(BPS)49、及びオペレーティ
ング・システム・サービス(O8S)50を含む。
S Q Lコンパイラ24は、S Q L文をコンパイ
ルする。SQLコンパイラは、本発明のシステム及び方
法において、3つの大きな機能を持つ。SQLコンパラ
イは、解析、セマンティクス、及びコード生成機能を提
供する。パーサは、レキシカル・チェツキングとシンタ
ックス・チェツキングを行い、解析木を築く。セマンテ
ィック機能は、カタログ・ルックアップと文のセマンテ
ィック゛チェツキングを含む。コード生成段階では、ア
クセス・セクションの残りとともに、スレッド化コード
(threada+rJ−code)が生成される。
5LS44は、ソーティング及び−時的なりレーション
(・リスl−)管理機能を提供する。DMS45は、デ
ータベースの物理的モデルを提供し、かつ物理的テーブ
ル操作を提供する。IDX46は、物理的なインデック
ス操作を提供する。DSV47は、データ値比較、デー
タ変換、及び算術を行う。
DP348は、トランザクション管理、コンカレンシー
・コン1−ロール、及びリカバリーを提供する。
BPS49は、バッファ及びファイル管理と170機能
とを提供する。○5S50は、メモリ・アレンジメンI
・機能を提供する。
RD S 25の要素が第8図に示される。アプリケー
ション・インタフェース51は、プレコンパイラ43、
アプリケーション18、及びユーティリティーからのリ
クエストを処理しかつ経路指定する。インタープリタ−
52は、スレッド化コードをS Q L文のオブジェク
1〜・コードとして使って、該SQL文をコンパイルさ
れた形で実行(解釈)する。
インタープリタ−52は、スレッド化コード中のオペレ
ータ、例えばデータベース・オペレータ(テーブル・ア
クセス、マージ、ジョイン等)や式オペレータ(加算、
比較等)の各々について、適切なルーチンを呼び出す。
アクセス・プラン・マネジャー53は、カタログ内およ
びメモリ内のアクセス・プランを管理し、かつカタログ
内およびメモリ内のアクセス・セクションを管理する。
カタログ・サービス54は、カタログ操作のための、D
MS45に対するインターフェースである。ラン・スタ
ティックス55は、テーブルとインデックスに関する統
計資料を集めるDMS45へのインターフェースである
テーブル作成文32またはテーブル改造文34が、キャ
ラクタ・カラム33.35上にFORMIXED  D
ATAパラメータ39またはFOR5BC8DATA3
7を持つならば、第1表及び第2表に示すように、デー
タベース伽カタログ23が以下のような変更を受ける。
第1表のS Y S T A、 B LESと第2表の
SYSCOLUMNは、データベース・カタログ・テー
ブル23の2つのテーブルである。S Y S T A
 B LE Sでは、新しいテーブルまたはビュー(ν
jew)が生成される度に、1つの行が挿入される。自
分自身を含めて、カタログ・テーブルは、すへてこのテ
ーブルにエン1へり一を持つ。SYSCOLUMNSで
は、テーブルまたはビューのカラムが定義される度に、
1つの行が挿入される。すべてのカタログ・テーブルは
このテーブルにもエントリーを持つ。
第1表のS Y S T A、 B L E Sを参照
すると、PACKED  DESC(パック記述)のカ
ラムでは、FORMIXED  DATAとして指定さ
れたカラムについて、内部データ・タイプCHARMI
XED、VARCHARMIXED、またはL ON 
G  V A R,CHA RM I X E Dが符
号化される。この内部データ・タイプは、データベース
・マネジャーによって、混合データ処理をキャラクタ・
カラムに適用すべきか否かを決定するのに用いられる。
FORMIXED  DATAもFOR5BC8DAT
Aも指定されず、かつFORBIT  DATAも指定
されないなら、2バイl−・バージョンのプロダクトで
はMIXED  DATAが想定される。FORBIT
D A、 T Aは、本実施例において、2進データを
保持するのに用いられる。キャラクタ・カラム内にあっ
てキャラクタ・データとして処理すべきでない2進デー
タは、FORBIT  DATAとして指定される。し
かしながら1本発明の他の実施例ではこの付加的なりラ
ス分けは必要でない。
第2表のSYSCOLUMNSを参照すると、カラムC
0LTYPE(カラムのデータ・タイプ)では、現実の
SQLデータ・タイプCHAR,VARCHAR,LO
NG  VARCHARが符号化される。第2表ないし
第4表のカラムC0DEPAGE及びDBC8CODE
PGでは、以下のような情報が符号化される。
データベース・システム・カタログ23のSYSCOL
UMNSテーブル28のカラムCOT−T Y PEに
ついて問合せがあると、次のようなことが起こる。SY
SCOLUMNSテーブル28のC0LTYPEカラム
がCHAR,VARCHAR,L○N G  V A 
RCI−(A R等のキャラクタ・データ・タイプを表
示しているなら、コード・ページ・カラムC0DEPA
GE及び2バイ1へ・キャラクタ・セラ1−・コード・
ページ・カラムDBC8CODEPGに問合せをして、
キャラクタ・タイプのサブタイプを決定することができ
る。
本発明のエンコーディング・スキームによれば、第4表
に示される如く、高度でかつ効率よくサブタイプが決定
される。C0DEPAGEとDBC8CODEPGのカ
ラムがそれぞれゼロ値を持つ場合、サブセラ1〜はFO
RBIT  DATAを指定し、データをキャラクタ・
データとして処理しない。C0DEPAGEカラムがノ
ン・ゼロ値を持ち、かつD B CS COD E I
? Gカラムがゼロ値を持つ場合、カラムは、1−ハイ
ド・オンリーのデータについて指定されたことになる。
C0DEI) A G EとDBC8CODEPGのカ
ラムがそれぞれノン・ゼロ値を持つ場合、カラムは混合
データとなるが、これはカラムのサブタイプが特に指定
されなかった場合のデフォルト値である。さらに、CO
D E P A G E 力”) ムまたはDBC8C
ODEPGカラムがノン・セロ値なら、そのノン・ゼロ
値に従って、該データベースの当該カラムに用いられる
特定のロー1〜・ページが指定される。
FORBIT  DATAの場合は、当該データをキャ
ラクタ・データとして処理すべきではないので、コート
・ページの指定は行われない。
本発明の」二連のシステム及び方法を、以下の疑似コー
ドによって説明する。疑似コードの説明は、後で第9図
ないし第13図を参照して行う。
略語: CD−(パック記述による)カラム記述D D L−デ
ータ定義言語 DMS−データ・マネーシメン1〜・サービスI) テ
ーブル作成文とテーブル改造文には、MIXED及び5
BCSキヤラクタ・サブタイプのためのサポーI・を付
加する。
■) カラムにC0DEPAGEアトリビュート用のサ
ポー1〜を付加する。
注意: ステップA)とステップB)はオフ・ラインで
一度に実行され、新たなSQ Lパーサを生成する。
A)  SQLパーサ文法テーブルを修正して、以下の
プロダクションを追加する。
Co1.umnType   = Character
Type CharacterOptionChara
cterOptj、on=空ForMixed (FO
R0PTIONノー1へを生成する) ForSBC3(FOR0PTIONノード生成する。
ForMixed    =  FORMIXED D
ATA MjxedOptjonFor 5BC3=F
OR5BC3DATA SBC5OptionMixe
dOption  =空 (CodePage、 CodePage)SBC3O
ptjon  =空 (CodePage) CodePage    =  IntegerB)新
たなパーサ・テーブルを生成する。
(オフ・ライン・パーサ・ジェネレータ及び新たな文法
テーブルを用いる。) C)SQLコンパイラを呼んで、テーブル作成文又はテ
ーブル変造文をコンパイルする。
(SQLコンパイラ・パーサ・フェーズ)注意:入力は
SQL文。
出力は解析木。
/*IF(テーブル作成文)*/ /* テーブル作成文用の解析木を生成する。*//*
  ELSE (テーブル改造文)*//* テーブル
改造交圧の解析木を生成する。*//*  ENDIF
*/ /*  IF(FORMIXIED又はFOR5BC3
パラメータが存在する*/ /* 解析木の中にFOR0PTIONノー1−を生成
する*/ ■アイ・ビー・エム・コーポレーション1988第9図
は、上記疑似ロー1くが実行される様子を示す。まず、
S Q Lコンパイラが呼ばれて、SQ■1文がコンパ
イルされる。SQLパーサ・フェーズでは、S Q L
コンパイラが、テーブル作成文またはテーブル改造文の
ための解析木ノードを生成する(ステップ101)。S
QL文にてFORMIXED、FOR5BC8、または
FORBITが表示されていたなら、FOR0PTIO
N解析本が生成される(ステップ103.105)。S
QL文にてローl〜・ページ・パラメータが定義されて
いたなら(ステップ107) 、コード・ページ解析木
ノー1くが生成される(ステップ109)。
(SQLコンパイラ・コード生成フェース)注意二人力
は解析木。
出力は更新されたパック記述と解釈可 能ロー1く。
/*IF(テーブル作成文)*/ /*  DDLテーブル作成命令コードを、スレッド化
コ−1’の形でストアする。*/ /* IELSE (テーブル改造文)*//*DDL
テーブル改造命令コードを、スレッド化ローI−の形で
スI−アする。*/ /* ENDIF*/ /*解析木トラバース・ポインタを、解析本ルー1〜・
ノー1−を示すように初期化する。*/ ■アイ・ビー・エム・ローポレーシ竺ン1988第10
図及び上記疑似コードを参照して、S Q Lコンパイ
ラのコード生成フェーズを説明する。そのすへてのノー
ドが第9図に示す如くして先行して生成されたところの
解析木が、コード生成フェーズの入力である(ステップ
■11)。S Q L文がテーブル生成文でテーブル改
造文でもないならば(ステップ113) 、SQL文は
通常の如く処理される。S Q L文がテーブル生成文
またはテーブル改造分の何れかであるならば、当該文に
対応する命令コードが生成される(ステップ117)。
コード生成フェーズの間、解析木のルー1〜・ノートが
ポイン1−される(ステップ119)。
/*     解析木のトラバース*//*DOw++
n、p   (エラーが検出されず、かつまだ解析木を
1〜ラバースする必要があるとき)*//* 5WIT
CH(解析木ノード・タイプ)*//*CASE  ヘ
ッダ・カラム・リスト・ノー1〜・タイプ(CDのスタ
ー1〜)*/ /*  CDパック記述フィールドを初期設定するルー
チンを呼ぶ /* END CASE*/ /* Ca5e  カラム名識別子ノード・タイプ*/
/*  CD構造体とカラム名についてストレージを割
り当てる。*/ /*IF(スi〜レージの割当に成功) TIIEN*
//*1′その他″カラム情報のセラ1〜・アップ*/
/*  CDコード・ページ#]−をデータベース5B
CSコード・ページに初期設定する。
/*  CDコード・ページ#2をデータベース5BC
Sコード・ページに初期設定する。/*パック記述長さ
を更新する。木/ /* ENDIF*/ /* END CASE*/ /* case  FOR0PTION  ノート・タ
イプ*//* 5IIITCH(FOR0PTIONの
サブタイプ)*//* case  FORBIT D
ATAノード・タイプ*//大5ltlITC1l (
CDのカラム・タイプ(先行ノー1への処理中にセラ1
〜される))*/ /* caseカラム・タイプ−CHARMIXED*
//*CIIARカラム・タイプをCDタイプ・フィー
ルドにス1ヘアする。*/ /* DI) CASE*/ /* Ca5eカラム・タイプ−VARCIIARMI
χED*/ /*VARCHARカラム・タイプをCDタイプ・フィ
ールドにストア する。
/* END  cASE*/ /* Ca5e  カラム・タイプ= LONVARC
IIAIt MIXED*/ /*LONG  VARCHARカラム・タイプをCD
タイプ・フィールドにストアする。
*/ /* END CASE*/ /l ENDSWITCHカラム・タイプ*//* C
Dコローページ#1と#2をOにセットする。*//*
 END CASE FORBIT*//* case
 1バイト・キャラクタ・セラ1−・ノード・タイプ*
/ /* 5WITC1+ (CDのカラム・タイプ(先行
ノードの処理中にセットされる))*/ /* caseカラム・タイプ:CHARMIXED*
//* CHARカラム・タイプをCDタイプ・フィー
ルドにス1へアする。*/ /* END CASE*/ /*caseカラム・タイプ0=VARCHARMIX
ED*//* VARCIIARカラム・タイプをCD
タイプ、フィール1くにスーヘアする。*/ /* END CASE*/ /* CaSeカラム・タイプ−LONG VARCH
ARMIXED*//* LONG VARCHARカ
ラム・タイプをCDタイプ・フィール1−にスI〜アす
る。*/ /* END CASE*/ /* EMDSW]1TCIIカラム・タイプ*/1*
 IF (コードページが指定されていた) THEN
*//*コード・ページをセーブ・エリアから取得*/
/*コード・ページCDコードページ#]フィールドに
ス1〜アする。*/ /* COコローページ112フィールドにはOをスト
アする。*/ /* ENDIF*/ /* END CASE 5BC3*//* case
混合(MIXED)キャラクタ・ノード・タイプ /*IF (コード・ページが指定されていた。
Tl+EN */ /*コロー・ページ2をセーブ・エリアから取得する。
*/ /*コロー・ページをCDコード・ページ#1フィール
ドにスI〜アする。*/ /*コロー・ページ1をセーブ・エリアから取得する。
*/ /*コロー・ページをCDコローく・ページ#1フィー
ル1くにストアする。*/ /* ENDIF*/ /* END CASE MIXED*//* END
聞工TCII FORのサブタイプ*//* END 
CASE FOR0PTION*//* caseコー
ドベージ・ノード・タイプ*//*コードページ識別子
をセーブする。水//* IEND CASE*/ /* caseカラムのデータ・タイプ・ノード(Ch
ar、varchar、。
、)*/″ /* 5WITCI+(データ・タイプ)*//* c
aseデータ・タイプ= CHAR*//* CHAR
阿IXEDカラム・タイプをCDタイプ・フィールドに
ストアする。*/ /* END CASE*/ /* caseデータ・タイプ−VARCHAR*//
*IF (長さが指定されていた、つまり、これはVA
RCHAR) TIIEN*/ /* VARC1+ARMIXEDカラム・タイプをC
Dタイプにス1へアする。*/ /* ELSE*/ /* LONG VARCHARM工XEDカラム・タ
イプをCDタイプにス1へアする。*/ /* ENI)IF*/ /* END CASE*/ /* EMD聞ITCHデータ・タイプ*//* Ca
5e CDノー1〜・タイプ(カラム定義の終了)*/
/*ノー・アクション*/ /* END CASE*/ /* ENDSII工TCH解析本ノー解析・タイプ*
//*解枦木のポインタを次のノー1へにインクリメン
1〜する。
*/ /* ENDWHILIE*/ ■アイ・ビー・エム・コーポレーション1988第t 
]、 A図ないし第11E図、及び」二掲の疑似コード
を参照して、ノー1くのタイプに応じて起こるステップ
を説明する。ノードがヘッダ・カラムであるならば(ス
テップ12]、)、パック記述カラムが初期設定される
(ステップ123)。ノードがカラム・ノードであるな
らば(ステップ125) 、パック記述中のカラム記述
のためにストレージ(記憶域)が割り当てられる(ステ
ップJ27)。その後、カラム情報がセラI・・アップ
され(ステップ129)1バイト・コード・ページと2
バイト・コート・ページが、データベースのコード・ペ
ージに初期設定される(ステップ13]、 +33)。
続いてパック記述長さが更新される(ステップ135)
。 ノードがオプションについてのもの、例えばFOR
BIT、FOR5BC8,I?○RMIX、EDなら(
ステップ137) 、各ケースに応して次のようなこと
が行われる。
ノードがFORBITノードまたはFOR5BCSノー
トであり(ステップ139.141.) 、かつカラム
・タイプがCHA RM I X E I)なら(ステ
ップ143.第11B図)、CHARがカラム記述のカ
ラム・タイプ・フィールドにス1−アされる(ステップ
145)。カラム・タイプがV A、 RCHARMI
XEDであるなら(ステップ147)、VARCHAR
がカラム記述タイプ・フィール1(にス1−アされる(
ステップ149)。カラム・タイプがL ON G  
V A RCHA RM I X E Dであるなら(
ステップ]51)、LONG  VARCHARがカラ
ム記述カラム・タイプ・フィールドにストアされる(ス
テップ153)。
第11A図に戻ると、FORBITオプションの場合(
ステップ]39) 、 ]−バイト・コード・ページと
2バイト・コード・ページ用の両方について、コード・
ページがゼロにセラ1〜される(ステップ155.第]
、IC図)。FOR5BCSオプシヨンの場合(ステッ
プ141.第11A図)、コード・ページ・フィール1
−が指定されているなら(ステップ157.第1.IC
図)、当該コード・ページが検索され、カラム記述内の
第1コード・ページとして、つまり1バイ1−・キャラ
クタ・セット・ロー1−・ページとしてス1−アされる
(ステップ159.161)。2バイ1〜・ロー1へ・
ページはゼロにセラ1−される。 第11A図と第11
.D図を参照するに、FORMIXEDオプションが指
定され(第11A図のステップ1.63) 、かつコー
ド・ページがさらに指定されているなら(第1ID図の
ステップ165)、が第2コー1−・ページが検索され
、カラム記述内のロー)ミ・ページ#2の下にス1〜ア
される(ステップ1.67、1.69)。続いて、第1
コード・ページが検索され、カラム記述内にコード・ペ
ージ#1の下にストアされる(ステップ]、7]、 1
73)。
第]、]A図と第1.1. E図を参照するに、ポイン
1〜されているノー1へがデータ・タイプ・ノー1へで
あるなら(第]、IA図のステップ175) 、第]I
F図に示すようなステップが実行される。データ・タイ
プがCHA Rならば、CHARMIXEDがカラム記
述のカラム・タイプ・フィール1〜にスI・アされる(
ステップ177、179)。データ・タイプが■A R
CHA Rであり、長さが指定済であるなら(ステップ
181.183) 、VARCHARMIXEDがカラ
ム記述のカラム・タイプ・フィールドにストアされる(
ステップ185)。長さが指定されていないなら、LO
NG  VARCHARMIXEDがカラム記述のカラ
ム・タイプにストアされる(ステップ187)。
上述のステップは、すべてのノードが処理されてしまう
まで繰り返される。
S Q Lコンパイラが上記ステップを実行した後、リ
レーシ1ナル・データ・サービス(RDS)はインター
プリタ−を読んで、スレッド化コード及び生成されたパ
ック記述を実行する。文がテーブル作成ならば、出力は
、データベース内で生成される新たなテーブルであり、
5YSTABLESカタログ・テーブル内の該新規作成
テーブルの行であり、そして、該新規テーブルのカラム
毎にできるSYSCOLUMNSカタログ・テーブルの
行である。テーブル改造文の場合の出力は、新たに追加
されたカラムに対応するSYSCOLUMNSカタログ
・テーブルの行と、S Y S TA B LESカタ
ログ・テーブル中の改造テーブルについての更新された
行である。以下の擬似ロー1くが、スレッド化コード及
びパック記述の、インタープリタ−による実行ステップ
を示している。
C)ラン・タイム・インタープリタ−を呼んで、テーブ
ル作成文を実行する。
注意二人力は、SQLコンパイラによって生成されたパ
ック記述及びスレッド 化コード。
出力は、データベース中の新規作成テーブル、作成テー
ブルに対応する5YSTABLESカタログ・テーブル
内の行、及び新規テーブルの各カラムに対応するSYS
COLUMNSカタログ・テーブル内の行である。
/*パンク記述から、DMSテーブル記述構造体をセッ
ト・アップする。
/* SMSを呼んでテーブルを作る。
/* 5YSTABt、ESに対して、(パック記述カ
ラムを含む)行を、新規テーブルのために追加する。*
/ /*第1カラム記述へのポインタを得る。*//*テー
ブルについてのパック記述のカラム毎に*//* SY
COIJIMNS C0DEPAGEフイールドをコー
ドページ#1でセットアツプする*/ /* SYCOLUMNS DBC5CODEPGフィ
ールドをコードページ#2でセットアツプする。*/ /* 5YSCOL聞NS C0LTYPEフイールド
をサブタイプではなくキャラクタ・タイプでセットアツ
プする*//* 5WITCtl(パック記述CD中の
カムラ・タイプ)*//* caSeカラム・タイプ=
CIIARMIXED*//* SYSCOLUMNS
のカラム・タイプ・フィールドに“C)JAR”をス1
−アする。*//* END CASE*/ /* Ca5eカラム・タイプ=VARCIIARMI
XED*//* SYSCOLUMNSのカラム・タイ
プ・フィールドにARCIIAR’″をストアする。*
//* END CASE*/ /* caseカラム・タイプ−LONG VARCH
ARMIXED*//* SYSCOLUMNSのカラ
ム・タイプ・フィールドニ”LONGVAR”をス1−
アする。*//* END CASE*/ /* ENDSltlTTHCII*//*行をSYS
COLUMNSに挿入する。*//* ENDFOR*
/ B)ラン・タイム・インタープリタ−を呼んで、テーブ
ル改造文を実行する。
注意二人力は、SQLコンパイラによって生成されたパ
ック記述及びスレッド 化コード。
出力は、データベース中のテーブル に追加された新規カラム記述、5Y STABLESカタログ・テーブル 中の改造テーブルに対応して更新さ れた行、及びSYSCOLUMNS カタログ・テーブル中の新規カラム 毎に設けられた行である。
/*パック記述から、DNSテーブル記述構造体をセッ
ト・アップする。*/ /* DNSを呼んで、データベース中のテーブル記述
を改める。*/ /* 5YSTABLESにおいて、改造テーブルに対
応するパック記述を更新する。*/ /*第1カラム記述へのポインタを得る。*//*テー
ブルについてのパック記述のカラム毎に*//* 5Y
COLU阿NS C0DEPAGEフイール1くをロー
1(ページ#1でセットアツプスル*/ /* SYCOLUMNS DBC3CODEPGフィ
ールドをコートページ#2でセットアツプする*/ /* SYSCOLUMNS C0LTYPEフイール
ドをサブタイプではなくキャラクタ・タイプでセット・
アップする。*//* 5IIITCHパツク記述CD
中のカラム・タイプ*//* Ca5eカラム・タイプ
=CI+ARMIXED*//*SYSCOLUMNS
のカラム・タイプ・フィールドに“CHAR”をストア
する。*/ /* END CASE*/ /* Ca5eカラム・タイプ=VARCHARMIX
ED *//* S’/SCOLUMNSのカラム・タ
イプ・フィールドに”VARCHAR”をス1〜アする
。*//* END CASE*/ /* Ca5eカラム・タイプ=LONG VARCl
lARMIXED*//*SYSCOLUMNSのカラ
ム・タイプ・フィールドに”LONGVAR”をストア
する*/ /* END CASE*/ /* ENDSWITCH*/ /* ENDSIIITHCH*/ /*行をSYSCOLtlMNSに挿入する*//* 
ENDFOR*/ ■アイ・ビー・エム・コーポレーション1988第12
図は、上記擬似コードを説明するためのものである。パ
ック記述(PD)から、DMCテーブル記述がセット・
アップされる(ステップ201)。
DNSは、実際に、新規な物理テーブルまたはカラムを
生成する(ステップ203)。カタログ・サービスは、
行をS Y S T A B L E Sに付加する(
ステップ205)。新規に作成されたテーブルのカラム
毎に、または新規に追加されたカラム毎に、SYSCO
LUMNSの行は増えていく。sysCOLUMNSの
C0DEPAGEカラムは、カラム記述に由来するコー
ドページ1でもってセソ1へされる(ステップ209)
。SYSCOLUMSのD E CS COD E I
) A G Eカラムは、カラム記述に由来するコード
ページ2でもってセットされる(ステップ211)。
カラム記述のカラム・タイプがCI−I A RM I
XEDなら、SYSCOLUMN  C0LTYPEは
CHA Rにセラ1−される(ステップ213.214
)。
カラム記述のカラム・タイプがV A RCHA RM
IXEDなら、SYSCOLUM、NのC0LTYPE
はV A RCHA Rにセラ1−される(ステップ2
]、5.216)。カラム記述のカラム・タイプがLO
NG  VARCHARMIXEDなら、SYSCOL
UMN  C0LTYPEはLONGVA RCHA 
Rにセラ1〜される(ステップ217.21.8)。
カラム記述のカラム・タイプがCI(ARMIXED、
VARCHARMIXED、またはL○N G  V 
A RCHA、 RM I X E D (7)何れで
もないならば、S Y S COL tJ M NのC
OI、TYPEはカラム記述のカラム・タイプにセラ1
〜される(ステップ219)。1つの行が5ysc○L
 U MNSに追加され(ステップ22]) 、次のカ
ラム記述が検索される(ステップ223)。
以下の擬似コードは、5QLDA、(SQL記述子エリ
ア)を指定されたコードページで更新する様子を説明す
る。SQI、DAの詳しい説明及び使用 法については、IBM Systems Appljc
atjon ArchitectureCommon 
Programmj、ng Interface Da
tabaseReference。
IBM  Corporatj、on、Documen
t  Number  5C26−438−0,198
7を参照されたい。
S Q L準備(PRERARE)文または選択記述(
DESCRIBE  of  5LECT)文の処理に
際して、S Q L I) Aをコードページ情報でも
って更新する。
/* while選択リス1〜を処理する*//* j
f リス1−項目がカラムである*//木コーローペー
ジ#1(SBCSコー1ローページ)をパック記述から
5QLDAの5QLDATAフイールドにコピーする。
*/ /*コローページ# 2 (DBCSコート・ページ)
をパックδ己述から5QLDAの5QLINDフィ−ル
ドにコピーする。*/ /* el、seカラムではない*/ /*コードロージ#1(SBCSコード・ページ)ヲデ
ータベース・コード・ページ・エリアからS Q L 
D Aの5QLDATAフイールドにコピーする。
/*コローページ#2(DBCSコード・ページ)をデ
ータベース・コード・ページ・エリアから5QLDAの
S Q L I N Dフィールドにコピーする。
/*  endjf木/ /* cndwhile*/■アイ・ビー−エム・コー
ポレーション1988 第13図は、−」二掲の擬似コードを説明したものであ
る。SQL文が準備でも選択記述でもないならば、5Q
LDAは更新されない(ステップ225゜227) 、
 S Q L文が準備または選択記述であるならば、選
択リストの第1項目が検索される(ステップ229)。
選択リスl−の項目がカラムであるならば(ステップ2
3]、)、5BCSコードページ(コードページ1)が
、パック記述からS Q L I) ATAフィールド
にコピーされる(ステップ233)。
また、DBCSコートページ(コードページ2)は、パ
ック記述からSQL I NDラフイールドへピーされ
る(ステップ235)。選択リストの項目がカラムでな
いならば、5BCSコードページ(コードページ1)が
データベース・コード・ページ・エリアからS Q L
 D A T Aヘコピーされる(ステップ239)。
また、DBCSコード・ページ(コードページ2)は、
データ・ベース・コード・ページ・エリアからS Q 
L 丁N I)へコピーされる(ステップ241)。そ
の後、次の選択リスト項目が検索される(ステップ23
7)。このようにして、選択リストの全項目について−
に記ステップが繰り返される。
以下では、本発明に従ってカラムのサブタイプが混合デ
ータまたは1バイト・キャラクタ・セラ1〜・データに
指定された状態の下で、データベース・テーブルからデ
ータを検索する動作を説明する。
データベース・テーブルからのデータの取出としアプリ
ケーション・プログラムへの該データのリターンは、選
択文及び取出(フェッチ)文を使って行われる。5QL
DA(SQr、記述子エリア)またはホスI〜の変数リ
ストを使って、データベース・マネジャーは、データを
アプリケーション・プロフラノ、中のデータ・エリアへ
移す。キャラクタ・データ・タイプの場合、アプリケー
ション・プログラムでのターゲラ1〜・データ・エリア
の長さがリフニス1〜されたデータベース・データの長
さにより短いならば、データは切り捨てられ、5QLC
Aに警告フラグがセソ1〜される。このことは、上記デ
ータベースの参考文献に記載されている。キャラクタ・
データが混合データであるならば、切捨(trunca
tj、on)によって2バイト・キャラクタが2分され
、その結果最終キャラクタが無効なものとなることのな
いように、切捨時に特殊な処理が必要になる。
第1./1.A図には、混合データ用の切捨アルゴリズ
ムが示されている。HNIIは、ターゲラ1−・エリア
のバイ1〜長を表わしている(ステップ245)。
II F B IIは、切り捨てられたデータの最終デ
ータのアドレスを表わしている(ステップ247)。N
バイ1−のデータが、データベース・データのスター1
へ・ア1くレスからターゲット・アドレスへ移される(
ステップ249)。FBは、(ターゲット・エリアのス
ター1〜地点十N−1)になる(ステップ251)。F
Bの前の、最終キャラクタ境界が決定される(ステップ
253)。FBが2バイ1−・キャラクタの1バイト目
であるならば、FBは1パイ1〜分のスペースと置換さ
れる(ステップ255.257)。そうでなければ、何
のアクションも起こらない。
比較対照のため第14B図に1パイ1〜・データ用の切
捨アルゴリズムを示す。ここでも、II N IIはタ
ーゲット・エリアのバイI・長である(ステップ259
)。次に、Nバイトのデータが、データベース・データ
のスタート・アドレスからターゲラ1〜・アドレスに移
される(ステップ261)。第14A図に示したように
、混合データ切捨アルゴリズムには、第1iB図の1バ
イト・オンリー・データ用アルゴリズムでは不要のステ
ップが含まれている。
第14A図のステップ253に示した最終キャラクタ境
界の決定は、データの長さと内容によっては極めてコス
トのかかるものになり得る。混合データを表示する内部
データ・タイプを付加することによって、切捨を行うラ
ンタイム・コードが、単純な1バイト・ルーチン(第1
.4B図)または高価な混合ルーチン(第4.4A図)
の何れかを、選択的に呼び出ぜるようになる。
5UBSTR5CALARFUNCTI○Nもまた、混
合データよりも」バイト・データの場合により効率が良
い。スカラー関数は、S Q L文の式の代りに使うこ
とができる。S U B S TRは、キャラクタ・デ
ータ・フィールドのサブストリングを返すスカラー関数
である。5UBSTRを含むスカラー関数について、詳
細な’′■BM Database 2SQL Ref
erence” Document Number 5
C26−4346−3゜IBM Corporatjo
nを参照されたい。
5UBSTR関数の第]パラメータは、サブストリング
の抽出対象となるデータベース・キャラクタ・ス1〜リ
ングを指定する。パラメータ2は。
サブストリグのスター1〜・バイ1へ位置である。
パラメータ3は、結果のバイ1へ長である。混合データ
については、上述の切捨アルゴリズムを使って、最終キ
ャラクタが確実に有効となるよう、サブストリグの最終
バイトの処理を行わなしづればならない。結果として得
られたスI・リングが2バイ1へ・キャラクタの第2バ
イ1−から始まることがないことを保証するべく、サブ
ストリングの第1キヤラクタも吟味しなければならない
。このチエツクのためのアルゴリズムが第15図に示さ
れている。
混合データの場合のS U B S T Rの第1キヤ
ラクタの検証(VaH,dati、on )は次の通り
である。rrN″″は、5UBSTRのパラメータ2で
ある(ステップ263)。If S B IIは、サブ
ストリグのスタート・バイトである(ステップ265)
。SBは、(パラメータ1のデータベース・データの7
1−レス+N−1)になる(ステップ267)。QIA
blて、SBの前の最終キャラクタ境界が決定される(
ステップ269)。SBが2バイ1−・キャラクタの第
2バイトであるならば、サブストリングの第1バイトが
1バイトのスペースと置換される(ステップ271.2
73)。そうでないならば、何のアクションもない。
パラメータ1がMIXEDタイプ以外のデータを指示す
るなら、特殊な境界チエツク及びサブストリングの最初
と最後のキャラクタの処理を実行する(ステップ269
.271.273.253.255.257)ためのル
ーチンを呼ぶ必要はない。
アプリケーション・プログラムも、5BCSデータとM
 I X、 E Dデータが識別されることを利用する
ことができる。アプリケーション・プログラムにおいて
、キャラクタ・データが1バイト・オンリーか混合であ
るかに応じて、該キャラクタ・データに特殊な処理を施
す必要が生じ得る。例えば、あるプログラムにおいて、
特定のフィールドにストアされるレボ−1へを生成する
必要が生じ得る。順序立った値の256バイ″l−・テ
ーブルに基づく単純な照合を用いては、混合データをス
トアすることはできない。2バイト・キャラクタのソー
1〜・アルゴリズムは複雑であり、関係する言語に応じ
て変化する。
したがって、データに対して高価なアルゴリズムを適用
しようとする前に、アプリケーション・プログラムがシ
ステム・カタログに問合せをして、テーブル内のカラム
がMIXEDとして定義されているか否かを決定できる
ようにすることは、有用なことである。この結果、一般
的なユーザ・インタフェースまたはレボ−j〜・ジェネ
レータのアプリケーションが、他のアプリケーションに
よって生成されたキャラクタ・データを精巧に処理する
ことが可能になる。なぜなら、作成アプリケーションと
は別個の独立に、キャラクタ・データのタイプに関する
情報がデータベース中にス1〜アされるからである。
アプリケーション・プログラムがシステム・カタログか
ら情報を取得する方法は、以下の通りである。
1)カタログ・テーブルからの選択。
2)$備または5QLDAへの記述。
「これらのSQL動作の詳細は、上記”IBM Dat
abase2 SQL Reference”に記載さ
ている。FORMIXED  DATA及びFOR5B
C8DATAは、SQLデータ・タイプではなくてデー
タ・サブタイプであるので、アプリケーションは、SY
SCOLUMNSのCOL T Y P Eカラムや5
QLDAのS Q LT Y P Eフィールドを調べ
てサブタイプ情報を獲得することができない。その代り
、該情報をアプリケーションに返すために、以下の方法
が用いられる。キャラクタ・データ・タイプについて、
記述(またはINTO節を持つ準備)文にならって、第
5表に示すように、フィールドS Q L D A T
 Aと5QLINDが符号化される。アプリケーション
は、第4表に示されるようなエンコーディング・スキー
ムのために、第2表のSYSCOLUMSの中のC0D
EPAGEカラムとDBC8CODEPGカラムに問い
合わせることもできる。
同様に、アプリケーションは、特殊なコード・ページ支
配キャラクタ・データ・エンコーディングに対して敏感
であってもよい。例えば、アプリケーションは、データ
を検索したり、特にはデータを変更しようと試みる前に
、自分がデータのエンコーディング・スキームを理解で
きるか否かを決定したいと欲するかもしれない。かかる
ニーズをサポートするべく、本発明によれば、アプリケ
ーションは、データベースに問い合わせをして所与のキ
ャラクタ・フィールドのコード・ページを決定できるだ
けでなく、キャラクタ・フィールドのコード・ページ環
境を作成時に宣言することができる。さらに、本発明の
設計によれば、どのカラムのコード・ページ・アトリビ
ュート他のカラムのものとは独立に宣言することができ
るので、複数のコード・ページ環境を収容する先進的な
システム及びアプリケーションが十分にサポートされる
以下では、混合バイ1−・データを許容するリレーショ
ナル・データベース・システムにおいて、1バイト・キ
ャラクタ・セラ1〜・データを指定することの重要性を
説明する。説明のために、以下の取決に従って、」バイ
1−・キャラクタを2バイト・キャラクタと区別するこ
とにする。
1バイ1〜・キャラクタはロア・ケースのアルファベッ
トで表現する。例えば、aT b、c、  の如し。
2バイト・キャラクタは、アッパー・ケースのアルファ
ベラ1〜2文字で表現する。例えば、AA。
BB、CC,の如し。
1例として−IV○RYという名のカラムとHEINZ
という名のカラムをもつ、SAMPLEという名前のテ
ーブルを考えてみよう。ここで、I V ORYは、1
バイトのキャラクタ・ストリング(数値)だけを持つ一
方、HEINZでは、1バイI・・キャラクタ・ストリ
ングと2バイト・キャラクタ・ストリングが混合してい
る。かかるテーブルは、以下のS Q L文を使って作
成できよう。
CREATE   TABT、E   SAMPLE(
IVORY  VARCT−TAR(10)   FO
R8BC8DATA。
HEINZ  VARCHAR(10)   FORM
IXED  DATA) 」二記取決を使うと、IVORYとHEINZ(7)い
くつかの値が以下のように与えられる。
SAMPLE行   IVORY     HEINZ
l−abc           AABBCC2do
g          DDOOg’3       
qwertyu j、op      ZZxCCvB
Bn4−       ]、ast value   
   qQQqQQ上記の表を用いて、1バイ1−・キ
ャラクタのみからなるデータ・ストリングの処理方法と
、1バイ1〜・キャラクタと2パイ1〜・キャラクタの
混成データ・ストリング中 る。
混成ストリングは、ストリングの開始地点からしか解析
できないという特性を持つ。つまり、ストリング中のす
べての先行バイトの性質が決まらなければ、どんなバイ
トも無意味である。説明のために、ユーザ/アプリケー
ションが、IVORYとI−I E I N Zにある
各数値の最終バイI−だけをデリートすることを欲した
としよう。IVORYカラムの数値に用いられる処理方
法は単純である。
ストリングの終端がスキャンされ、ストリングの最終バ
イとが破棄される。これと同じ処理方法をHEINZカ
ラムの数値に用いたならば、ストリングの最終キャラク
タが2パイ1〜・キャラクタであったときに、2バイト
・キャラクタの2バイト目を破棄してしまうことになる
。それゆえ、混合バイ1−・カラムについては、より複
雑な処理アルゴリズムが必要とされる。まず、ストリン
グの最終キャラクタの性質(1バイ1−か2バイトか)
を決定しなければならない。単に最終バイ1−の値をチ
エツクするだけでは足りない。なぜなら、1バイ1〜・
キャラクタと2バイト・キャラクタの2バイト目は、同
しコード・ポイント値を共有するからである。したがっ
て、ストリング中 クタが1バイト・キャラクタかそれとも2バイ1−・・
キャラクタかを決定するためには、複雑な解析−図 アルゴリズムを適用しなければならない。これは明らか
に時間がかかる冗長な作業であるけれども、不可欠であ
る。
SAMPLEテーブルの数値について、この「最終バイ
1−」切捨操作を実行した結果を下に記す。
SAMPLE 行       IVORY     
      IIEINZl、         a 
b c             A A B B2 
        do              D
DOO3qwertyuio       ZZxCC
vBB4        ]、ast valu   
    qQQqもし、あるカラムが1バイト・キャラ
クタ・ストリングだけを持つことが事前に推測されるな
らば、かかるカラムについて、1バイト・2バイト・キ
ャラクタ混成ストリングに作用する方法よりもはるかに
効率がよくて簡単な切捨アルゴリズムを使用できる。”
FOR5BC8DATA”オプションによって、ユーザ
は、かようなカラム・71−リビュー1−を指定できる
ようになる。
純粋1バイト・キャラクタ・ストリングに比して混成ス
トリングの方が処理の複雑さが増すことの説明例として
、「プラス1〜リング」関数を考えてみよう。このスI
〜リング・オペレータによれば、キャラクタ・ストリン
グの一部分の選択が可能になるが、その際、第1−パイ
1〜位置(プラス1へリングの先頭バイトの位置)と長
さが指定される。
切捨の場合に遭遇したのと同様の、純粋1バイ1−・ス
トリングと混成ス[−リンクの間に生しる処理の差異が
、プラス1〜リング関数にもあてはまる。
純粋1バイト値のサブストリングを選択する場合には、
ストリングをnハイド−目までスキャンするだけでよい
。(ここで、nは、サブストリングが始まるキャラクタ
を指示する、プラスj・リング関数の引数である。)続
いて、このバイトに後続の(m−1)パイ1〜をプラス
したものが結果どして選択される。(ここで、mは、サ
ブストリングの指定キャラクタ長である。)しかしなが
ら、1バイト・2バイト混成ストリングを処理対象とす
るとき、プラス1−リング中のキャラクタの有効性を確
保すべく、プラス1へリングの最初と最後のハイドの性
質を決定しなければならない。このような複雑なアルゴ
リズムを採用する結果のパフォーマンスの低下には甚大
なものがある。
まとめると、上記説明は、純粋1バイ1−・ス1〜リン
グと1バイト・2バイI−混成ストリングの根本的相違
をハイライ1へするものであった。純粋1バイ1−・ス
トリングにおいては、その中のどのバイトもキャラクタ
である。しかるに、混成スj・リングにおいては、ス1
へリング内のどのパイ1〜についても、先行バイトの性
質を知らずには何も言えない。
「この差異の結果、純粋1バイ1へ・ス1〜リング(及
び、カラム)に対するストリング操作は、1バイト・2
バイl〜混成ス1〜リングについての同じ操作よりも、
はるかに速く、かつ簡単である。したがって、カラムを
純粋または混成の何れかとして宣言し得ることは、かか
る差異に敏感なアルゴリズムと結合することによって、
顕著なパフォーマンスの改善をもたらす。これが、FO
RSBC8DATA、FORMIXED   DATA
というカラム宣言をなそうとするに至った、大きな動機
である。
本発明のリレーショナル・データベース・システムでは
、以下のことを特に明示し、記述した。
SQL言語を拡張することによって、ユーザ/アプリケ
−シコンは、データベース・テーブル中のカラムに含ま
れるデータが1パイ1〜・キャラクタ・セラ1〜・デー
タだけなのが、それとも1パイ1〜・キャラクタ・セッ
ト・データど2バイ1へ・キャラクタ・セラ1へ・デー
タが混在しているのかを、指定できるようになる。カラ
ムが1パイ1〜・キャラクタ・セット・データのみを持
つのが、それとも混合データを持つのかの指定は、CI
−(AR,VARCHA R1及びL ON G  V
 A RCI−(A Rを含むキャラクタ・データ・タ
イプのザブタイプを指定することによって達成される。
ユーザ/アプリケーションは、カラムの作成または追加
時に、テーブル作成文またはテーブル改造文において 
FOR5BC8DATA、、FORMIXEDD A、
 T A 、またはFORErT  DATAの何れか
を指定することによって、カラム中のキャラクタ・デー
タのサブタイプを指定することができる。
サブタイプが1バイト・データか混合データかを指定で
きることに併せて、ユーザ/アプリケーションは、さら
に、データベース中のテーブルのカラム使われるコード
ページを指定することができる。本発明のデータベース
・マネジャーの内部では、サブタイプが、キャラクタ・
データ・タイプのコード・ページ・アトリビュートの見
地で、データベース・システム・カタログにスI−され
る(第4表参照)。このエンコーディング・スキームに
よれば、データベース・システム・カタログ内のコード
・ページ・カタログに問い合わせるだけで、カラムが1
バイ1−・キャラクタ・セラ1−・データ対応なのか、
それとも混合データ対応なのかを決定し、同時に、使用
される正しいコード・ページを知ることのできる、有効
な方法が提供される。
5YSTABLES (システム・テ ブル) 第1表 第5表 E1発明の効果 本発明によれば、1バイト・キャラクタ・データと2バ
イト・キャラクタ・データが混在するリレーショナル・
データ・ベース・システムにおけるデータ処理のパフォ
ーマンスが向上する。
【図面の簡単な説明】
第1A図及び第1B図は、それぞれ本発明のリレーショ
ナル・データベース・システムの概観図である。 第2図は、1バイト・データについて用いられるコード
・ページの1例の説明図である。 第3図は、日本語について用いられるコード・ページの
1例の説明図である。 第4図は、リレーショナル・データ・ベースのデータ・
テーブルの1例の説明図である。 第5A図は、カラムに含まれるデータが混合データか1
バイト・データかを指示するための、キャラクタ・デー
タ・タイプのサブタイプを指示することのできる、テー
ブル作成文の構造を示す説明図である。第5B図は、カ
ラムに含まれるデータが混合データか1バイト・データ
かを指示するための、キャラクタ・データ・タイプのサ
ブタイプを指示することのできる、テーブル改造文の構
造を示す説明図である。 第6図は、リレーショナル・データベース・マネジャー
のコンポーネントを示す図ブロック図である。 第7図は、本発明の方法に含まれる渚ステップの全体的
な関係を示す概括的なフロー・チャー1〜=76 である。 第8図は、リレーショナル・データ・サービスのコンポ
ーネントを示すブロック図である。 第9図は、SQLコンパイラのS Q Lパーサ・フェ
ーズを説明するフロー・チャートである。 第10図は、SQLコンパイラのコード生成フェーズを
説明するフロー・チャー1・である。 第1]、A図、第11B図、第11C図、及び第11E
図は、本発明を実現する疑似コートを説明するための詳
細なフロー・チャー1・である。 第12図は、生成されたコード及びパ記述の実行を説明
するフロー・チャー1・である。 第13図に、5QLDAのコード・ページの内容の更新
を説明するフロー・チャー1・である。 第1.4A図は、混合データについての切捨方法を説明
するフロー・チャートである。 第1.4B図は、1バイト・データについての切捨方法
を説明するフロー・チャー1・である。 第15図は、混合データについてのサブストリング・ア
ルゴリズムのフロー・チャー1・である。 第7図

Claims (1)

  1. 【特許請求の範囲】 1バイト・キャラクタ・データと2バイト・キャラクタ
    ・データが混在するリレーショナル・データベース・シ
    ステムであって、 上記リレーショナル・データベース・システムの少なく
    とも1つのテーブル中の少なくとも1つのカラムと、 上記カラムが1バイト・キャラクタ・データのみを持つ
    のか否かを指定するための手段 を含む、リレーショナル・データベース・システム。
JP1089567A 1988-04-08 1989-04-07 リレーシヨナル・データベース・システム Pending JPH02146677A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US179191 1980-08-18
US17919188A 1988-04-08 1988-04-08

Publications (1)

Publication Number Publication Date
JPH02146677A true JPH02146677A (ja) 1990-06-05

Family

ID=22655603

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1089567A Pending JPH02146677A (ja) 1988-04-08 1989-04-07 リレーシヨナル・データベース・システム

Country Status (8)

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

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 合肥喆塔科技有限公司 一种基于混合数据的数据服务方法

Citations (1)

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

Patent Citations (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
KR920003456B1 (ko) 1992-05-01
GB8815987D0 (en) 1988-08-10
KR890016470A (ko) 1989-11-29
EP0336579A3 (en) 1992-09-02
CA1290455C (en) 1991-10-08
BR8901648A (pt) 1989-11-21
EP0336579A2 (en) 1989-10-11
PT90209A (pt) 1989-11-10
CN1037603A (zh) 1989-11-29
PT90209B (pt) 1995-06-30

Similar Documents

Publication Publication Date Title
US5787452A (en) Client/server database system with methods for multi-threaded data processing in a heterogeneous language environment
US5758314A (en) Client/server database system with methods for improved soundex processing in a heterogeneous language environment
US6400287B1 (en) Data structure for creating, scoping, and converting to unicode data from single byte character sets, double byte character sets, or mixed character sets comprising both single byte and double byte character sets
US5596752A (en) System for creating, editing, displaying, and executing rules-based programming language rules having action part subsets for both true and false evaluation of the conditional part
EP1315086B1 (en) Generation of localized software applications
EP1128277A2 (en) Data processing method and system, program for realizing the method, and computer readable storage medium storing the program
US7447624B2 (en) Generation of localized software applications
US5287444A (en) Message processing system
US5432930A (en) System for accessing cobol data files by generating a dictionary of NF.sup.2
US7278100B1 (en) Translating a non-unicode string stored in a constant into unicode, and storing the unicode into the constant
JPS59163661A (ja) 図式的言語による照会を線型言語の照会に翻訳する計算装置
JPS6120129A (ja) 複数コ−ド系情報処理方式
US5819303A (en) Information management system which processes multiple languages having incompatible formats
CN112667563A (zh) 一种文档管理及操作方法和系统
US7051278B1 (en) Method of, system for, and computer program product for scoping the conversion of unicode data from single byte character sets, double byte character sets, or mixed character sets comprising both single byte and double byte character sets
Dewan et al. An approach to support automatic generation of user interfaces
JPS6175957A (ja) 機械翻訳処理装置
Barnett et al. Syntactic analysis by digital computer
JPH02146677A (ja) リレーシヨナル・データベース・システム
McLeod et al. RISS: A generalized minicomputer relational data base management system
Senko DIAM II: The binary infological level and its database language-FORAL
JP2001060164A (ja) データ処理方法およびデータ処理システム並びにその実施装置及びその処理プログラムを記録した記録媒体
Cline et al. CAIRS—an established retrieval system under constant development
JP2988304B2 (ja) 文字列管理装置
Barker Syntactic definition and parsing of molecular formulae: Part 1 Initial syntax definition and parser implementation