データベースオペレーター – ウィキペディア

before-content-x4

a データベースオペレーター リクエストの単一のサブステップの実行に責任があるデータベースリクエストの一部です。問い合わせのために、データベースが評価計画を作成し、その実行が要求された結果を提供します。

after-content-x4

回路図は、データベース演算子を結び目として含む評価計画です。保存されたデータテーブルは、木の葉にあります。そこから、リクエストの結果がルートで利用可能になるまで、オペレーターからオペレーターに渡されます。ツリーもとして使用されます オペレーターバウム 専用。

通常、データベースへのリクエストは、SQL要求としてリレーショナルデータベースのデータベース管理システムに送信されます。ここでは、要求に応答するために必要なリレーショナル操作にパーサーによって分割されます。

区別が行われます

  • 論理演算子
  • 物理演算子

一方 論理演算子 リレーショナル代数の数学的操作を表し、 物理演算子 論理演算子を実装する実行可能アルゴリズム。

リレーショナル代数は、他のすべての演算子を形成できる次の論理演算子を定義します。

各論理演算子は、非常に異なる物理演算子によって実行できます。データベース管理システムは、特別なケースでどの実装が最適かという用語で決定できます。また、ネスティングによって論理演算子から導出できる派生演算子もあります。専門的で派生したオペレーターは共同演算子であり、この重要な操作を可能な限り効率的に実装するために、選択とクロス製品を連続して実行します。さらに、差分演算子と部門オペレーターは他の派生演算子です。

原則として、同じリクエストを非常に異なる方法で計算できます。これは、要求と既存のデータに応じて非常に異なる場合があります。これは、両方の実行計画が量で同じ結果であるため、数学的に同等であることを意味します。したがって、最新のデータベース管理システムには、可能なすべての実行計画の量から最も効率的なものを選択する複雑なリクエストオプティマーがあります。

after-content-x4

論理最適化 [ 編集 | ソーステキストを編集します ]

まず、論理的な最適化がここで行われます。結果に影響を与えることなく、リクエストを数学的に単純化できるかどうかを調べます。これは、オペレーターツリーが同等のツリーに変換されることを意味します。通常、複数の選択演算子が同じデータソースまたは選択演算子で排除され、常に努力の削減につながり、可能な限りツリー内を移動します。

物理的最適化 [ 編集 | ソーステキストを編集します ]

次のステップでは、物理的な最適化が行われます。これで、オプティマイザーが手術に最適なアルゴリズムを選択します。彼は、データソースのカーディナリティ、つまり処理する必要がある要素の数、および関係に関する既存のインデックスを考慮しています。インデックス結合などのインデックスがある場合にのみ非常に高速なアルゴリズムがあります。

各オペレーターは、オペレーターツリーの結び目です。したがって、彼は1つまたは2つのデータソースと、データを別のオペレーターに渡すことができるデータ出力を正確に持っています。通常、演算子は1つの反復剤としてです ONCインターフェイス 実装。 ONC オープン、ネクスト、クローズの略です。したがって、オペレーターは一緒です 開ける 最初にオープンしました。それから オペレーターが配信する要素が反復されています。反復ステップごとに、オペレーターはデータソースの非常に多くの要素を要求します。結果関係の新しい結果要素を計算する必要があります。最後に、オペレーターのシステムリソースを次のようにリリースする 近い 閉じられます。

サンプル要求のオペレーターツリー

2つの関係があるとします 住所 次の属性が与えられます。

person.id
個人的
person.name
Person.birth Date
anschrift.id
address.speren_id
address.strasse
アドレス。ort

その後、マーブルクからの全員へのリクエストは次のように見えます。

選択する  p 名前  から   p   住所  a  どこ  a 位置  =  ' マーブルク '   p id  =  a person_id ;  

右側の画像は、リクエストがオペレーターツリーとしてどのように表示されるかを示しています。ツールselect2obaum [初め] 選択クエリをオペレーターツリーにインタラクティブに変換する可能性を提供します。

今日までのデータベース演算子の実装は、メインスペースまたはハードディスクスペースへのアクセスが発生した場合の大きな速度の違いによって説明されていることは注目に値します。通常はBツリーまたはB*ツリーの樹木状のデータ構造の操作であっても、実装されています。このような速度ボトルの首が排除される限り、パフォーマンスが低い、または問題のようなデータ構造も使用できます。メモリ組織のスピードボトルの首は、ノイマンのボトルネックに似ています。ストレージ階層も参照してください。

  • xxl 教育と研究の目的のためのJava-データベースライブラリで
  1. select2obaum fh-koeln.deで
after-content-x4