この記事では、《RDBMS》について、
業務を通して学習した内容を、備忘録としてまとめています。
- データベースとは…?
- RDBMSとは…?
こういった内容についてまとめています。
※本記事は、自分で学習したことのまとめ用として書いています。
尚、解説で誤った点があれば、スローして頂ければ喜んでキャッチしますのでお願い致します。
前提知識【5つ】
- コンピューターでの処理には、__メモリ__と__ディスク__を使用する。
- 一般的に、メモリは揮発、ディスクは不揮発。
- 一般的に、ハードディスクは速くない。
- __メモリ__は、ハードディスクに比べるとかなり速い。
- __データ__は、ディスクに書き込んでおかないと、電源が切れた途端に消える。
『データベース』 とは…?
『データベース』という言葉は、以下の2つの意味を持ちます。
- 様々なデータを蓄積・管理するもの
- それらのデータを管理するためのソフトウェア(データベース管理システム(DBMS))
おそらく・・・
__普段みなさんが使っている『データベース』という言葉は、上記の『2』の意味が多い__と思います。
※この記事でいう『データベース』も、上記の『2』を指します。
『データベース(DBMS)』 の役割
データを…
- 安全に管理する
- 高速に取り出す
- 『正しい』データを取り出す
を実現すること。
『RDB』 とは…?
__Relational Database(リレーショナルデータベース)__の略語。
関係データベースと訳され、データを複数の表として管理し、表と表の関係を定義することで、複雑なデータの関連性を扱えるようにしたデータベース管理方式。
つまり、__『RDBMS』__は…
__RDBのデータを管理するための仕組み・ソフトウェア__です。
--- 代表的な『RDBMS』 ---
- MySQL
- Oracle DB
- SQL Server
- DB2
- PostgreSQL
『RDBMS』 を構成するキーワード【4つ】
-
データファイル
表データを格納するファイルを『データファイル』と呼び、このデータファイルの中に表を作成して、データを挿入する。 -
テーブル
『行』と『列』からなるデータを格納するための領域。 -
スキーマ
普段使っているOSで言う『フォルダ(ディレクトリ)』のようなもの。
テーブルなど、すべてのオブジェクトは、何らかのスキーマに所属します。これは、OSのファイルが、何らかのディレクトリに所属するのと同じ。 -
SQL(Structured Query Language)
リレーショナルデータベース(RDB:Relational Database)の操作を行うための言語
『RDBMS』 の基本について
Q.1: 『RDBMS』では、どこにデータを格納する…?
➡︎ データを表(テーブル)形式で保管する。
Q.2: テーブルは、どのように管理(区分)する…?
➡︎ スキーマ
Q.3: 『RDBMS』で扱うデータ量のイメージは…?
➡︎ テーブルで数百万〜数千万とか(あるいはそれ以上)
Q.4: データを操作する方法は…?
➡︎ データ操作用言語のSQLを使用する。
Q.5: 『RDBMS』における、主なデータ操作とは…?
➡︎ CRUD(追加、検索、更新(変更)、削除)
Q.6: 『RDBMS』は、同時に一人だけしか使えない…?(同時に複数人使えない…?)
➡︎ 同時に何人ものユーザー(またはプロセス)がデータを参照したり、更新したりする。
Q.7: 『RDBMS』は、1台のサーバーで運用する…?
➡︎ 小規模(データ量が少ない、同時アクセスが少ない)なら1台の運用でも可能。
ただし、安全性を高めたり、処理速度を速くする目的で複数台のDBサーバーで運用するのが
一般的。(レプリケーション)
まとめ| 『RDBMS』 とは…?
俗な言い方かもしれませんが、まとめると、『RDBMS』は…
各スキーマ内のテーブルに、それぞれ何百万件、何千万件ものデータが蓄積されているところに、複数人で同時にデータを追加、更新してもデータが壊れることがなく、
__複数人で同時に検索しても、素早く正しい結果を返してくれるシステム__です。
また・・・
__データが壊れないような工夫もしているし、仮にデータが壊れたとしても、ある程度は元に戻せる仕組み(バックアップ、リストア、リカバリ)を提供__しています。