オブジェクト指向、Javaを取り入れた
新しい業界標準「SQL99」詳細解説
第三章 SQLJと今後の標準化動向(3)
オブジェクトリレーショナル機能の応用例
■SQL/MM全文検索(フルテキスト)
SQL/マルチメディア・全文検索(SQL/Multimedia Fulltext、SQL/MMフルテキスト)は、文字テキストへのさまざまな探索を可能にする規格である。1999年11月末現在、最終仕様案の審議中の段階なので細部の仕様が変更される可能性があるが、大筋は決まっていることと、SQL99でサポートされるユーザ定義関数の応用例としてご紹介する。
これまで文字テキストにが格納されている表の列に対して探したい文字列が存在するかどうかを検索するために、LIKE述語やSIMILAR述語を使用してきた。しかしそれらの述語は、文章の構造にはいっさい関係なく、単に比較値の文字列(あるいは文字コード)が存在するかどうかを調べるものである。それに対してSQL/MM全文検索が規定しようとしている関数CONTAINSなどを使えば、文章の構造や文意に沿ったより高度な検索を行うことができる。次のような文が表MyDocsのある行のTextBody列に格納されているとして、どのような検索ができるかを説明する。
例文:
As assumed by this International Standard, every text value is associated
with a specific language. (この国際規格によって仮定されているように、各テキストの値は、特定の言語に関連している)
単一語探索の場合: 結果: |
単一のことばである文字列「specific」を探索する。探索したい文字列は、CONTAINS関数の第2パラメタの単一引用符「'」の中に二重引用符「"」で囲む。ところでこの検索は次のような従来のLIKE述語でも表現可能である。CONTAINS関数の戻り値のデータ型は第二章で紹介した真理値で、ここでは真(true)を整数の1で表している。
SELECT * FROM MyDocs
WHERE TextBody LIKE '% specific %' ;
なお、CONTAINS関数のパラメタの比較値は、次のように複数個を組み合わせて指定することができる。
("specific" | "particular" ) & "language" & NOT "defact"
単フレーズ探索(成句探索): |
フレーズ探索(成句探索)は、 複数のことばから構成されるフレーズ(成句、熟語)「specific language」を探索する。
コンテキスト探索 : |
上記のコンテキスト探索は、同じ文中に「text」と「language」がある文を探索する。CONTAINS関数の第2引数中のIN SAME SENTENCESは、コンテキスト探索を指示するオプションである。SENTENCEの代わりにPARAGRAPHを指定すれば、段落中に比較値が存在するどうかを探索できる。このように文章構造を意識した探索をLIKE述語で表現することは困難である。
停止語処理(ストップワード): |
停止語とは、thisやis、andなどのように一般に探索の比較値にする必要がないことばである。この例は停止語を除いて探索を行えることを示している。ただし何を停止語にするかは実装に任されていて、必要であればユーザがあらかじめ登録することになるだろう。
語幹探索: |
語幹が同じもの、あるいは語尾変化に影響されない探索を行う。この例では複数形「values」だけでなく単数形「value」は探索対象になる。
概念探索: |
概念探索は、比較値と良く似たものを探す。一種のあいまい検索だが、その基準は実装にまかされている。
ランキング: |
RANK関数は、比較値の出現頻度順を返却するなどの目的に使用されることを意図しているが、その具体的な目的と基準は、実装に任せられている。
<参考> IBMのUDBには、オブジェクトリレーショナル機能を使用して、文章を検索するテキストエキステンダー、静止画データを検索するイメージエキステンダー、音声データを検索するオーディオエキステンダー、ビデオデータを検索するビデオエキステンダー、地理情報を検索するスペーシャルエキステンダーという関連製品がある(スペーシャルエキステンダーを除いて日本で発表済み)。 ■ファジー探索 ■シソーラス探索(類義語探索) 図38 シソーラスに登録する類義語の関係
ここで、THESAURUSは、類義語探索を行うことを指定し、\udbwork\thesauは、類義語辞書が登録されているパスを指定し、COUNTは類義語を探す範囲を示す。 検索1は、「球技」から同義語(シノニム)を含めて2つ下の類義語までを探す。検索2は、「テニス」から同義語と一つ下の類義語を探すが、兄弟関係にある野球などの類義語は探索範囲外である。検索3は、「ラケット」から親と兄弟関係の類義語が探索範囲である。このようにそれぞれのアプリケーション分野に対応した適切な類義語辞書が提供されれば、独自の文献検索への応用が可能となるだろう。 |
■SQL/MM地理情報(スペーシャル)
SQL/マルチメディア・地理情報(SQL/Multimedia Spacial、SQL/MMスペーシャル)は、もともとOpen GISコンソーシアムという業界団体が開発した仕様をベースにして、SQL99の標準化に合わせて、今年国際標準になった規格である。二次元の地理情報を表現する技術的な方法はすでに確立していて、地理情報を検索する製品は市場に出ているのだが、流通性や拡張性に欠けるという問題があった。そこでSQL99で可能になったラージオブジェクト型、ユーザー定義構造型、およびユーザー定義関数を応用して、すなわち新しいオブジェクトリレーショナルの機能を駆使して二次元の地理情報オブジェクトを対象に検索する基盤を標準化したのがこの規格である。そしてこの標準規格に基づいたアプリケーションのクラスライブラリの流通性を向上させることを目指している。
たとえば、流通業のチェーン店を想定して、販売促進のための宣伝を効果的に打つために役立つ次のような照会を行うことができる。
照会1: |
照会3の例を図39に示した。顧客表と店舗表の所在地列と商圏列が構造型のgeometry型によって定義されている。位置列には地図上の点位置情報が格納されていて、店舗表の商圏列には地図上の面(領域)情報が格納されている。そしてSELECT文ではdistance関数によって店舗の所在地(点)と顧客の所在地(点)との距離を計算し、within関数によって各店舗の商圏(多角形)内に顧客の所在地(点)が存在するかどうかを調べている。
図39 SQL/MM地理情報検索の例
このように、地理情報オブジェクトの位置関係を検査する関数を利用して、さまざまな照会を行うことができる。
とびら 新しい業界標準「SQL99」詳細解説 SQL99の背景と特徴 |
第二章 柔軟さを増したデータ構造
ユーザー定義可能な新しいデータ |
第三章 ストアドプロシージャとSQLJ クライアント/サーバ環境のための機能強化
|
「Master of IP Network総合インデックス」 |
- 完全HTTPS化のメリットと極意を大規模Webサービス――ピクシブ、クックパッド、ヤフーの事例から探る (2017/7/13)
2017年6月21日、ピクシブのオフィスで、同社主催の「大規模HTTPS導入Night」が開催された。大規模Webサービスで完全HTTPS化を行うに当たっての技術的、および非技術的な悩みや成果をテーマに、ヤフー、クックパッド、ピクシブの3社が、それぞれの事例について語り合った - ソラコムは、あなたの気が付かないうちに、少しずつ「次」へ進んでいる (2017/7/6)
ソラコムは、「トランスポート技術への非依存」度を高めている。当初はIoT用格安SIMというイメージもあったが、徐々に脱皮しようとしている。パブリッククラウドと同様、付加サービスでユーザーをつかんでいるからだ - Cisco SystemsのIntent-based Networkingは、どうネットワークエンジニアの仕事を変えるか (2017/7/4)
Cisco Systemsは2017年6月、同社イベントCisco Live 2017で、「THE NETWORK. INTUITIVE.」あるいは「Intent-based Networking」といった言葉を使い、ネットワークの構築・運用、そしてネットワークエンジニアの仕事を変えていくと説明した。これはどういうことなのだろうか - ifconfig 〜(IP)ネットワーク環境の確認/設定を行う (2017/7/3)
ifconfigは、LinuxやmacOSなど、主にUNIX系OSで用いるネットワーク環境の状態確認、設定のためのコマンドだ。IPアドレスやサブネットマスク、ブロードキャストアドレスなどの基本的な設定ができる他、イーサネットフレームの最大転送サイズ(MTU)の変更や、VLAN疑似デバイスの作成も可能だ。
|
|