4 データベース基礎

目次

データベースとは

データベースとは、データ(情報)を保存できる箱のようなものです。
このデータベースに入っているデータを利用することで、様々なシステムは成り立っています。

ほぼ全てのシステムでデータベースは利用しています。

データベースのメリット

データベースには以下のメリットがあります。

  1. 大量のデータを保存できる
  2. データを共有できる
  3. 入力ミスを防止できる
  4. 分析しやすい
  5. セキュリティ管理できる

1.大量のデータを保存できる

企業のデータは財産です。データベースでは大量のデータを保存できるので必須です。

2.データを共有できる

データベースは複数人が同時にアクセスできるため、情報共有がしやすいです。

3.入力ミスを防止できる

データには規則を設定できるため、誤ったデータの入力などを防止することができます。

4.分析しやすい

データベースは規則に従ってデータが保存されているため、欲しい情報を見つけやすくなります。

5.セキュリティ管理できる

データベースは管理下で動くため、いつ誰がアクセスしたかなどの記録を残すことができます。これによってセキュリティ面での管理もしやすいです。

DBMSとは

DBMS(Database Management System)とは、データベース管理システムのことで、データベースを管理できるソフトウェアです。
データベースを箱とすると、DBMSは箱を開けるために必要なものです。
代表的なDBMSは以下が挙げられます。

・Oracle Database
・Microsoft SQL Server
・MySQL
・PostgreSQL

テーブルとは

テーブルとは、データを入れている箱のようなもので、エクセルのような上下のセルで表すことができます。
縦の列をカラム、横の行をレコードと呼びます。
例を見た方が早いので、見てみましょう。

上記で顧客テーブルのIDカラムが2のレコードを取得するとした場合は、「2、佐藤、31」というデータを取得できます。

また、テーブルとカラムには物理名論理名が存在します。
・物理名:実際のテーブル名・カラム名(基本英語)
・論理名:人が見てわかりやすい名前を付けたテーブル名・カラム名(基本日本語)

物理名論理名
顧客テーブルcustomer顧客
IDカラムidID
名前カラムname名前
年齢カラムage年齢

次のキャプチャで紹介するSQLなど、実際のデータを操作する際には物理名を使います。
ただ、人がコミュニケーションする際やデータを他の人が見た際には論理名を使います。

マスタデータとは

マスタデータとは、基本となるデータのことです。
マスタデータには、最初からデータを入れておき、変更することはたまにしか(期初や期末など)行わないものになります。

例えば、社員マスタや商品マスタなどがよくあるマスタデータです。
社員マスタには、社員番号・社員名・年齢・性別などが、商品マスタには、商品コード・商品名・金額などがデータとして登録されています。

【スライド資料】データベースについて

SQLとは

SQLは、データベースを操作する言語です。
この言語を用いてデータベースのデータを操作するので、必須の知識です。
DBMSとにて非なるものなので、以下イメージです。

SQLのメイン3種類

SQLは主に下記の3種類の命令文が使われます。

  1. データ定義言語(Data Definition Language/DDL)
  2. データ操作言語(Data Manipulation Language/DML)
  3. データ制御言語(Data Control Language/DCL)

1.データ定義言語(Data Definition Language)(DDL)

データ定義言語は、テーブル自体を作成・削除・設定の変更などのSQL命令文です。
DDLで利用される命令文としては、次のようなものがあります。

  • CREATE(テーブルの作成)
  • ALTER(テーブル構造の変更)
  • DROP(テーブルの削除)
  • TRUNCATE(テーブル内全データの削除)

CREATE(テーブルの作成)

CREATE TABLE テーブル名(カラム名1 カラム型1,カラム名2 カラム型2,・・・);

カラム型1のカラム名1、カラム型2のカラム名2…のテーブル名を作成する

ALTER(テーブル構造の変更)

ALTER TABLE 変更前テーブル名 RENAME TO 変更後テーブル名;

変更前テーブル名を変更後テーブル名に変更する

ALTER TABLE テーブル名 RENAME COLUMN 変更前カラム名 TO 変更後カラム名;

テーブル名の変更前カラム名を変更後カラム名に変更する

DROP(テーブルの削除)

DROP TABLE テーブル名;

テーブル名を削除する

TRUNCATE(テーブル内全データの削除)

TRUNCATE TABLE テーブル名;

テーブル名内のデータを削除する(テーブルは残る)

※DROPやTRUNCATEはテーブルやデータを削除するので使用時は要注意です。

2.データ操作言語(Data Manipulation Language)(DML)

データ操作言語は、データベースに対してデータを検索・追加・更新・削除などを行うSQL命令文です。
DMLで利用される命令文としては、次のようなものがあります。

  • SELECT(データの検索)
  • INSERT(データの追加)
  • UPDATE(データの更新)
  • DELETE(データの削除)

これらの一般的なデータ操作をCRUD操作と呼びます。

  • Create(作成):DMLではINSERT
  • Read(参照):DMLではSELECT
  • Update(更新):DMLではUPDATE
  • Delete(削除):DMLではDELETE

CRUD(クラッド)操作という名前は覚えておきましょう。(作る・見る・更新する・削除する)

SELECT(データの検索)

SELECT * FROM テーブル名;

テーブル名から全カラムを検索する

SELECT カラム名1, カラム名2, ・・・ FROM テーブル名;

テーブル名からカラム1,カラム2…を検索する

SELECT * FROM テーブル名 WHERE 条件;

テーブル名から条件に一致したもののみを検索する

INSERT(データの追加)

INSERT INTO テーブル名(カラム名1, カラム名2,・・・)VALUES(‘値1′,’値2’,・・・);

テーブル名のカラム名1に値1を、カラム名2に値2を…追加する

UPDATE(データの更新)

UPDATE テーブル名 SET カラム名1 = 値1, カラム名2 = 値2,・・・ ;

テーブル名のカラム名1の値を値1に、カラム名2の値を値2に…更新するする

DELETE(データの削除)

DELETE FROM テーブル名 WHERE 条件;

テーブル名から条件に一致するカラムを削除する

3.データ制御言語(Data Control Language)(DCL)

データ制御言語は、DMLやDDLの利用を制御するためのSQL命令文です。
DCLで利用される命令文としては、次のようなものがあります。
※現場で使用することはほとんどないです。

  • GRANT(権限付与)
  • REVOKE(権限剥奪)

GRANT(権限付与)

GRANT 権限 TO ユーザ;

ユーザに権限を付与する

REVOKE(権限剥奪)

REVOKE 権限 FROM ユーザ;

ユーザから権限を剥奪する

データ操作言語(DML)使用時の注意点

実際の現場では、データ操作言語(DML)を使用することがほとんどです。
その際の注意点として、UPDATEやDELETEを使用する際にはSELECTで正しいデータを指定できているか確認してから実行しましょう

SELECTでデータ(更新対象や削除対象)を取得して、それが正しいことを確認次第、そのSQLのSELECTをUPDATEやDELETEに変更するようにしましょう。

【スライド資料】SQL基礎

確認問題

データベースの主なメリットではないものはどれ?

A. 入力ミスを防止できる
B. データの共有ができる
C. データを物理的に印刷できる
D. セキュリティ管理ができる

正解:C

「DBMS(データベース管理システム)」の役割として正しいものはどれ?

A. データベースを表示するブラウザ
B. データベースにアクセスするための管理ソフト
C. ウェブサイトの見た目を整えるCSSツール
D. 表計算ソフトを自動化するためのマクロ

正解:B

テーブルに関する説明で誤っているものはどれ?

A. テーブルはデータの箱のようなもの
B. 縦の列は「カラム」、横の行は「レコード」と呼ぶ
C. テーブルは1つのデータしか保存できない
D. エクセルのような形でデータを管理できる

正解:C

物理名と論理名の組み合わせとして正しいものはどれ?

A. 物理名:年齢、論理名:age
B. 物理名:name、論理名:名前
C. 物理名:顧客、論理名:customer
D. 物理名:性別、論理名:gender

正解:B

「マスタデータ」に関する説明として最も適切なものはどれ?

A. 毎日更新されるデータ
B. 一時的に保存されるテスト用データ
C. 期初や期末などにたまに変更される基本データ
D. ログイン履歴などのアクセス情報

正解:C

SQLの説明として最も適切なものはどれ?

A. データベースをインストールするソフト
B. データベースのデータを操作する言語
C. プログラムの実行速度を測るシステム
D. サーバーの容量を管理する機能

正解:B

次のうちデータ定義言語(DDL)に該当するものはどれ?

A. SELECT
B. INSERT
C. UPDATE
D. CREATE

正解:D

データベースから条件に一致するデータのみを検索するSQLはどれ?

A. SELECT * FROM テーブル名;
B. SELECT * FROM テーブル名 WHERE 条件;
C. INSERT INTO テーブル名 VALUES (…);
D. DELETE FROM テーブル名;

正解:B

次のSQLはどんな操作をするか?

UPDATE users SET age = 30 WHERE id = 5;

A. usersテーブルのidが5のデータを削除する
B. ageが30のデータをusersテーブルに追加する
C. idが5のレコードのageを30に更新する
D. usersテーブルのすべてのデータを30歳にする

正解:C

次のうちCRUD操作の「R」に該当するものはどれ?

A. INSERT
B. SELECT
C. UPDATE
D. DELETE

正解:B

目次