データベースを
学んでみよう
本講義とは別にデータベースの構築をはじめる前に知っておきたい情報を集めた"データベースのきほん"というコンテンツがございます。
こちらも併せて学習すると、さらにデータベースへの理解が深まります。
もくじ
1. データベースとかテーブルってなに?
データベースとは
"データベース"の中にたくさんの"テーブル"が入っていて、テーブルのひとつひとつは"カラム"と"レコード"で構成されています。
Excelで例えるなら、ブックが「データベース」、シートが「テーブル」って
感じだね!
データベース (Database)
テーブル (Table)
カラム (Column)
レコード (Row)
データを整理して保存するための大きな箱のようなもの。データを効率的に管理し、必要なときにアクセス可能。
データベース内のデータを整理するための一つ一つの棚のようなもの。特定の種類の情報を保存。
テーブル内のデータの属性(項目)を示す。表の縦の列。特定のデータの種類(属性)を表す。
テーブル内の個々のデータのセットを示す。表の横の行。特定の実態に関する情報。
学校のデータベース(生徒、教師、クラス、成績などの情報を含む)
生徒テーブル、教師テーブル、クラステーブル
生徒テーブルの「名前」、「年齢」、「学年」カラム
生徒テーブルの1行(田中太郎、15歳、3学年)
テーブルについてもっと詳しく
データはテーブルに格納され、これらのテーブルの間にリレーションを持たせることができます。
例えば下図の例ではユーザーテーブルと住所テーブルのようにテーブルが分かれています。これらはどちらのテーブルにも存在する"ユーザーID"でテーブル同士を結合することで、テーブルに関連性を持たせてひとつの情報として参照することが可能となります。
2. 行型データベースとカラム型データベース
いきなり難しい話題だけど、Dr.Sumは一般的な「行型データベース」ではなく
「カラム型データベース」なので、その特長を覚えておこう!
カラム型データベースとは?
伝統的な行(ロー)ごとにデータを保存する行型データベースとは異なり、同じカラムのデータを連続して保存します。
カラム型データベースの特徴
- 行型データベース:各行のすべてのデータを一緒に保存します。例えば、名前、年齢、住所が一行にまとめて保存されます。
- カラム型データベース:各カラムのデータを別々に保存します。例えば、名前のカラムだけ、年齢のカラムだけ、住所のカラムだけが連続して保存されます。
- 行型データベース:全行から必要なデータを取得します。
- カラム型データベース:必要なカラムだけデータを取得します。
カラム型データベースの利点
例えば、全てのユーザーの年齢だけを取得する場合、年齢のカラムだけを読み取れば良いので効率的です。
例えば、年齢のカラムは数値データなので、圧縮しやすいです。
カラム型データベースの使用例
3. データ型
データ型とは?
テーブルにはどんなデータでも格納できる訳じゃないよ。たとえば、次の[メニューテーブル]に対し、[値段]や[残数]のカラムには文字データや日付データを格納されないようにすべきだね。
このようにカラムごとに指定可能な格納できるデータの種類のことを、データ型というんだよ。
基本的なデータ型
文字列型(VARCHAR)
整数型(NUMERIC,INTEGER)
日付型(DATE)
日時型(TIMESTAMP)
文字列型は、文字の列を表すデータ型である。文字、単語、文章などを保存する。
整数型は、整数を表すデータ型である。小数点を含まない数値を扱う。
日付型は、日付を表すデータ型である。通常、年、月、日の形式で表される。
日付と時刻を組み合わせたデータ型であり、年、月、日、時間、分、秒を含む情報を格納する。
"Hello", "123 Main St", "abc123"
1, 23, -45
2024-06-12, 2023-01-01
2024-08-01 14:30:00
名前、住所、メッセージなど
数量、カウント、IDなど
誕生日、イベントの日付、記録の日付
データの作成日時や更新日時の記録など
4. NULL
NULLとは何か?
「値が存在しない」状態には、値が決まっていない場合や、値がわからない場合が該当するよ。
例えば、次の社員テーブルがあったとします。
社員テーブルには「役職コード」というカラムがあり、この「役職コード」は、役職マスターの「役職コード」と紐づけることで、どの社員がどの役職に就いているかがわかります。
社員テーブル
役職マスター
佐藤さんは役職に就いていないため、「役職コード」の値が入れられない状態なので、このような場合にNULLが使用されるね。
NULLの特長
0は数値が存在することを意味し、空文字列も値が存在しますが、NULLは「データが存在しない」ことを意味します。
例えば、NULL + 1はNULLですし、NULL = NULLも真(True)ではなく、NULLです。
NULLは良いもの?悪いもの?
NULLに対してマイナスなイメージを持ってしまうかもしれません。
その例を見てみましょう。
NULLの使用例
データベースのテーブル
NULLの処理
- データベースでは、NULLをチェックするためにIS NULLやIS NOT NULLを使います。
- 例:SELECT * FROM テーブル WHERE 退職日 IS NULL;(退職日がNULLのレコードを取得)
- SQLでは、NVL関数を使ってNULLを別の値に置き換えることができます。
- 例:SELECT NVL(退職日, '未登録') FROM テーブル;(退職日がNULLの場合、'未登録'を表示)
NULLが入っているとそもそもそのプログラムは退職日を更新することを考えていないと認められるため、NULLであることが正しいと理解できます。
まとめ
ゼロや空文字列とは異なり、NULLはデータの欠落や未登録を意味します。
NULLの概念を理解することで、データベースのデータ管理やクエリの作成がより正確に行えるようになります。