Active Recordとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > Active Recordの意味・解説 

Active Record

(アクティブレコード から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/05/14 02:49 UTC 版)

Active Record(アクティブ・レコード)とは、プログラミングにおいて、企業アプリケーションで頻繁に認められるデザインパターンである。

概要

Active Recordはデータベースからデータを読み出すためのアプローチである。データベーステーブルあるいはビューの1行が1つのクラスにラップされ、オブジェクトのインスタンスがそのデータベースの1つの行に結合される。このクラスはデータベースアクセスのカプセル化も行う[1]。オブジェクトの生成後は、保存メソッドで新しい行がデータベースに追加される。 オブジェクトが更新されると、データベースの対応する行もまた更新される。ラッパークラスはテーブルあるいはビューの各カラムに対するアクセサメソッドを実装するが、それ以外の振る舞い(MVCのモデルが担当すべきロジック)も記述することができる[1]

テーブルとクラスが一対一で結びつくことから非常にシンプルな構造となることが特徴で、後述するRuby on Railsでは、データベース定義からほぼ自動でCRUD操作を備えたクラスを作り出すことを実現している。一方でその性質上、複雑な設計のデータベースとは相性が悪い。[1]

Ruby on Rails

広く使われている実装のひとつは、Ruby on Rails のActive Recordの実装である。例えば、id 列(シリアルな主キー)、name 列(varchar 型)、price 列(money 型あるいは double 型)を持った parts テーブルがあれば、次のようなコードになる。

a = Part.new
a.name = "Sample part"
a.price = 123.45
a.save

上記のコードは与えられた値で新しい行をデータベースに作る。これは次の SQL コマンドにほぼ等価である。

INSERT INTO parts (name, price) VALUES ('Sample part', 123.45);

逆に、データベースを検索するためこのクラスを用いることもできる。

widgetname = "gearbox"
b = Part.where(name: widgetname).first

このコードは、name 列が Ruby 変数 widgetname の値一致する最初の行を取得して、オブジェクトを生成する。取得については、次の SQL コマンドと同義であるが、前述のrubyコードにそれは現れない。

SELECT * FROM parts WHERE name = 'gearbox' LIMIT 1;

別の方法として、上記のコードは次のように短くすることもできる。

b = Part.find_by(name: "gearbox")

脚注

  1. ^ a b c デザインパターンから見たActive Record”. TECHSCORE (2012年5月23日). 2024年4月1日閲覧。

関連項目

外部リンク

  1. ^ Data Mapper”. martinfowler.com. 2024年9月6日閲覧。


このページでは「ウィキペディア」からActive Recordを検索した結果を表示しています。
Weblioに収録されているすべての辞書からActive Recordを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からActive Record を検索

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

辞書ショートカット

すべての辞書の索引

「Active Record」の関連用語

Active Recordのお隣キーワード
検索ランキング

   

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



Active Recordのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのActive Record (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS