LoginSignup
0
0

More than 1 year has passed since last update.

[Rails]モデルによるデータベース操作について(初歩)

Posted at

はじめに

こないだ、面接でデータベースに関しての質問に対して惨敗したので、データベースの学習をしっかりやってこうと思いました。

手始めにRailsでデータベースを操作するために用いられるModelとデータベースについてまとめてみました。

ORM

まずはこの用語ORMですが Object Relational Mappingの略でリレーショナルデータベースのデータをオブジェクト思考のプログラミング言語でオブジェクトとして使用するために変換する技術のことです。

RailsのActiviRecordのメソッド(createとかdestroyとか)もORMです。
そして、例えばdestroyを使ったときにはその裏ではSQLという言語が実行されています。

私はこの時点でリレーショナルデータベースってなんだっけとなりました。

RDB(リレーショナルデータベース)

リレーショナルデータベースはデータを複数の表(テーブル)として管理し、様々な表(テーブル)同士の関係を定義をすることで、複雑なデータの関連性を扱えるデータベースのことです。

SQL(Structured Query Language)

SQLはデータベースを操作するための言語で、もっと言えば、リレーショナルデータベースを操作するための言語になります。ActiveRecordのメソッドは実際には実行されるときSQLに変換されています。

このSQLという言語は大きく三つの命令に分類されます。

データを定義 DDL (Data Definition Language)

データを操作 DML (Data Manipulation Language)

テータを制御 DCL (Data Control Language)

そしてそれぞれの命令の代表的なものを紹介します。

DDL

命令 機能
CREATE データベースやテーブルの作成
ALTER データベースやテーブルの更新
DROP データベースやテーブルの削除

DML(ちなみに私はこれを面接で突っ込まれて一つも答えることができませんでした。)

命令 機能
INSERT データの登録
UPDATE データの更新
DELETE データの削除
SELECT データの検索

DCL

命令 機能
COMMIT DBの変更の確定
ROLLBACK DBの変更の取り消し
GRANT ユーザーに操作権限を付与
REBOKE ユーザーの操作権限を無効化

またSQLはどの種類のリレーショナルデータベースであったとしても基本的に使うことができます。
なぜならSQLはISO(国際基準化機構)で規格化が行われているからです。

私はまだリレーショナルデータベースはMySQLしか使ったことはないですが、他のPostgreSQLやSQLiteという他のリレーショナルデータベースでも利用可能ということです。

最後に

データベースの扱いは学習していたつもりでしたが、今まで記述として書くことがほとんどなかったため、ほとんど覚えていませんでした。
サーバーサイドにおいてデータベースの知識と理解は必要不可欠になるので、しっかり復習と新たな学習は継続して行なっていきたいです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0