😺

Active Recordとはなんですか?

2024/01/17に公開

Active Recordについて、なんとなくスクール時代に見かけていたな~というレベルの理解度だったので改めて何なのか復習します。

Active Recordとは

Active Recordは、Ruby on Railsで使用されるデザインパターンの一つです。Active Recordは、データベースとの対話を簡素化し、オブジェクト指向プログラミングの原則に従ってデータベースとのやり取りを行うための方法を提供します。

Active Recordの主な機能や特徴

1. データベーステーブルとオブジェクトのマッピング

データベーステーブルとアプリケーション内のオブジェクト(モデル)との対応付けを行います。これにより、データベースの行とオブジェクトが一対一に関連付けられ、アプリケーションコードで自然な形でデータベースと対話できます。

2. CRUD操作のサポート

基本的なCRUD操作(作成、読み取り、更新、削除)をサポートします。これにより、オブジェクトを使ってデータベースに新しいレコードを作成したり、既存のレコードを検索・更新・削除したりできます。

3. バリデーション

モデルには、データの妥当性を確認するためのバリデーションルールを定義できます。例えば、メールアドレスの形式や必須フィールドの存在を確認することができます。これにより、データベースに無効なデータが保存されることを防ぎます。

4. 関連付け

Active Recordでは、異なるモデル間に関連を定義することができます。例えば、UserモデルPostモデルを関連付け、あるユーザーが複数の投稿を持つような関係を構築できます。

5. クエリビルダー

SQLを直接書くことなく、Active Recordのメソッドを使用してデータベースクエリを構築できます。例えば、where、order、limitなどのメソッドを組み合わせてデータベースからデータを取得できます。

クエリとは

クエリは、データベースからデータを操作するための処理の命令文のことです。
さまざまな処理欲求を特定の文字列の組み合わせで表現して、データベースの管理システムに命令します。英語では「query」で、「問い合わせ」という意味です。
クエリを活用することで、データベースからデータを抽出、検索、削除、並べ替え、更新するといった操作ができます。

6. コールバック

データベースの操作前や操作後に特定の処理を実行するためのコールバックを定義できます。これにより、データの保存や更新時に特定のロジックを実行できます。

コールバックとは

プログラム内で特定のイベントが発生したときに、あらかじめ定義されたコードや関数が自動的に実行される仕組みを指します。コールバックは、特定の条件や状態が満たされたときに実行されるコードブロックや関数として理解できます。

7. トランザクションサポート

複数のデータベース操作を1つのトランザクションでまとめるサポートも提供しています。これにより、データベースの整合性を保つことができます。

トランザクションとは

データベースにおいて、一連のデータベース操作が全て成功するか、あるいは全て失敗するように保証される単位を指します。トランザクションは、データベースに対する一貫性を維持するために使用されます。トランザクション内で行われる操作は、原子性(Atomicity)、一貫性(Consistency)、分離性(Isolation)、永続性(Durability)の4つのACIDプロパティを満たすように設計されます。

感想

Active Recordについて言葉でしか聞いたことがなかったですが、railsを使用していて気づかないうちに、データベース関係の処理を簡単にできるようになっていたのだと感動しました。
そしていかにデータベース関係の理解が足りていないかということも思い知りました。
これを機にデータベース関係にも少しづつ意識をしていきたいと思います。

参考

https://railsguides.jp/active_record_basics.html
https://runebook.dev/ja/docs/rails/guides/active_record_basics
https://web-camp.io/magazine/archives/78983
https://wa3.i-3-i.info/word12295.html
https://qiita.com/zd6ir7/items/6568b6c3efc5d6a13865

Discussion