テクノロジー
2017年12月3日O/Rマッピングとは
今回はO/Rマッピングについて学んでいきます。 データベースとのやりとりにおいて必須の技術です。ぜひ正しい知識を身につけましょう。
O/Rマッピング
今回はO/Rマッピングについて学んでいきます。
データベースとのやりとりにおいて必須の技術です。ぜひ正しい知識を身につけましょう。
なぜO/Rマッピングが必要か
プログラミングで扱う情報=レコードはデータベース管理システム(DBMS)内に存在するものなので、それらを操作するためにはデータベース言語である SQL
を使う必要があります。しかしSQLは書き方が複雑だったり、コード量が増えたりしてしまうという難点があります。
SQLを使わずにテーブル操作やレコード操作が可能になったら楽ですね。
そのための機能が O/Rマッピング
なのです。
まず「マッピング」という聞き慣れない言葉から説明していきます。
これは 変換して対応づけるもの
という意味です。
例えば日本という国旗から文字に変換すると JPN
となります。
逆に文字から国旗に変換すると、以下のような日本の国旗となります。
次にO/Rについて説明していきます。
「O」は オブジェクト
、「R」は RDBMS(データベース言語)
を指しています。
つまりO/Rマッピングは オブジェクト指向言語とデータベース言語を変換して対応づけたもの
と捉えていただけると良いと思います。
ActiveRecord
O/Rマッピングを行ってくれる機能を O/Rマッパー
と呼びます。
Railsでは ActiveRecord
という名前です。
モデルの継承元
モデルをよく見ると以下のようにActiveRecordを継承しているのがわかります。
(app/models/blog.rb
)
class Blog < ActiveRecord::Base
AcitveRecordメソッド
オブジェクト指向言語とデータベース言語を変換して対応づける
とは、具体的にどのような手段で実現しているのでしょうか。
それは メソッド
という手段で実現しています。
AcitveRecordが用意しているメソッドを AcitveRecordメソッド
と呼ぶことにします。
AcitveRecordメソッドには大きな特徴があります。それは 実行すると一緒にSQLが実行される
ということです。
このことにより、O/Rマッピングの働きをするのです。
いかがでしたでしょうか。今回は概要のみでしたが、AcitveRecordメソッドの役割が少しでも理解していただければ幸いです。