カーソル_(データベース)とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > カーソル_(データベース)の意味・解説 

カーソル (データベース)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/04/29 06:34 UTC 版)

ナビゲーションに移動 検索に移動

データベースにおけるカーソル: cursor)は、一連のデータに順にアクセスする際の検索条件および「現在位置」を保持するデータ要素である。

概要

一般にデータベースは、同じ種類のデータを数多く蓄積しており、利用者が求めるデータも1件だけではなく複数件になる可能性がある。このようなケースは、カーソルを使って以下のようにイテレータの要領で実現できる。

  1. 利用者は検索条件やソート順序を指定してカーソルを定義する。
  2. パラメータを利用している場合は値を決定し、データへのアクセスを開始する。
  3. カーソル位置のデータを取得する。検索結果の終端なら7へ。
  4. 必要に応じてカーソル位置のデータを変更・削除する。
  5. カーソルを「次のデータ」へと進める。
  6. 3から繰り返し。
  7. 繰り返しの終了後、カーソルを解放する。

システムによっては5において、次のデータに進む以外に、ひとつ前のデータに戻ることも許している。

カーソルを使う理由の一つとして、クエリの結果が多数の行を持つことによる メモリのオーバーランを防ぐことが挙げられる。PL/pgSQLではメモリ問題を引き起こさないようにforループが内部で自動的に カーソルを用いるため、この心配がない。

具体例

SQL

関係データベース用の問い合わせ言語として広く使われているSQLでは、カーソルを用いたアクセスのために一連のステートメントを提供している。「DECLARE CURSOR」でカーソルを宣言し、「FETCH」でカーソル位置のデータを取得するとともに次のデータに進む。データを変更する「UPDATE」や削除する「DELETE」は、「WHERE CURRENT OF カーソル名」を指定することで、カーソル位置のデータを操作できる。使用後は「CLOSE」で解放する。具体的な文法はSQL#カーソル定義・操作を参照。

ODBC

C言語プログラムからSQLを使ってデータベースにアクセスするためのライブラリのひとつとしてODBCがある。ODBCはMicrosoft Windowsで広まった後、業界標準のSQL/CLIJDBCのベースとなった。

カーソル操作に係るSQLステートメントには、以下のように個別のODBC関数が対応している。

ODBCにおけるカーソル操作
ODBC関数 対応するSQLステートメント
SQLPrepare DECLARE CURSOR
SQLExecute OPEN
SQLFetch FETCH
SQLFreeStmt CLOSE

ODBCでは、アプリケーションプログラムがカーソルを直接指定することは、ほとんどない。上記の関数はいずれも「ステートメントハンドル」(Statement Handle)を引数としており[1]、このハンドルが指し示すデータ構造の中にカーソルも含まれているという扱いになる。すなわち、ステートメントハンドルがイテレータの役割を果たしている。

dbm

dbmは関係データベースより単純な、キーと値の対応だけからなるデータベース機能を提供する。ここでもデータベース上の「現在位置」を指し示すために「カーソル」の語が使われている[2]

注意点

  • カーソルは実行中の検索条件や現在位置を保持するために、メモリ容量などの資源を必要とする。カーソルの解放漏れはメモリリークにつながる可能性がある。
  • 標準SQL規格では、トランザクションを終了するとカーソルは破棄される仕様である。しかし、DBMSによっては破棄されずそのままデータにアクセスすることができる。標準SQL規格に準拠した使い方をするのであれば、トランザクション終了後はカーソルを破棄するべきである。

脚注

  1. ^ Microsoft. “ODBC Function Summary” (英語). 2008年6月7日閲覧。
  2. ^ JMプロジェクト. “dbopen” (日本語). 2008年6月7日閲覧。

「カーソル (データベース)」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「カーソル_(データベース)」の関連用語

カーソル_(データベース)のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



カーソル_(データベース)のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのカーソル (データベース) (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2024 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2024 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2024 GRAS Group, Inc.RSS