データベースを使ってプログラムを開発するには?
データベースと連携してプログラムを開発する必要がある。プログラムでデータを読み書きしても、
データベースは表形式を扱う
プログラムはオブジェクトを扱う
と扱うデータの種類が異なり、どう扱うかが問題になる。その問題を解消したのが、ORMだったんですね。
ORM(Object Relational Mapping)とは?
データベースとオブジェクト指向プログラミング言語(JavaやRubyなど)の「翻訳者」として機能しているプログラム技術または仕組みのこと
・UserテーブルからIDを条件にレコードを取得する場合
<SQLの場合>
SELECT * FROM USER WHERE ID = 1 LIMIT 1;
<RailsのActive Recordの場合>
User.find(1)
Active Recordを使って分かるのが、
①データベースの「テーブル」を、オブジェクト指向プログラミング言語の「クラス」として扱っている
②「クラス」に紐づくメソッドを使ってデータベースを操作するので、SQLより短く直感的で分かりやすい
ORMデザインパターンの種類について
①Active Record
データベースの各テーブルをモデルとして扱います。そしてActive Recordを使うORMは、CRUDメソッドを用意していて、オブジェクトを生成しやすくなる。
画像取得元:https://blog.colopl.dev/entry/2022/08/31/110152
②Data Mapper
Active Recordと違って、テーブル操作の機能を集めたDataMapperが存在し、モデルとテーブルの仲介役となる。
画像取得元:https://blog.colopl.dev/entry/2022/08/31/110152
調べてみて分かったこと
「データベースは表形式」「プログラムはオブジェクト」とデータの種類が異なっても、翻訳機能を持つORMフレームワークのおかげで、オブジェクト指向プログラミング言語を使ってデータベースを操作できる