概要
GCP環境の主にBigquery周辺で仕事をする際に役立つまとめ
SQLとは
ソフトウェアを操作&管理するデータベース言語です。
SQL=データベース言語
DBMS(データベース管理上)でデータやデータベースを制御するための言語
ユーザーやシステムからの命令を受けてRDB(リレーショナルデータベース)にクエリ(問い合わせ)を行い、結果を返します。返ってきた結果はモニターなどに表示されます。
データベース設計
データベースの設計とは?
現実世界の複数情報に共通する要素を抜き出しデータモデルを作成することです。
データモデル作成は
<概念設計>
⇩ ⇒ 概念モデルが作成
<論理設計>
⇩ ⇒ 論理モデルが作成
<物理設計>
⇒ 物理モデルが作成
という段階行われて作成されます。
概念モデル作成
実体(エンティティ)とつながりを示した関連(リレーションシップ)によって作成される「ERモデル(実体参照モデル)」がよく使用されて表現されます。
論理モデル作成
ERモデルから⇒リレーショナルモデル作成
これはテーブルをリレーショナルモデルとして正規化という適切な形式に変換します。
本時点でデータの型を決定します。
物理モデル作成
モデルを修正を実施します。
論理設計のテーブルの定義からインデックス定義をして性能が向上するようにします。
インデックスとは?
インデックスの作成にはCREATE INDEX文を使用します。
CREATE INDEX スキーマ名.インデックス名 ON インデックスを作成するテーブル名(カラム名, ...)
リレーショナルデータベース(RDBMS)
1行1レコードとするテーブル形式で表します。
主キーでそのテーブルを代表するカラムを指定し、外部キーで別テーブルと関連付けます。
テーブルの設計には正規化と呼ばれる設計手法があり、これでデータの重複をなるべく無くして整合的にデータを取り扱えるようにすることを目指します。
データベースの削除
データを保持したいが削除もしたいという場合には「論理削除」が使用されます。
「物理削除」は完全にレコードデータをデータベースから削除するのですが、「論理削除」は削除カラムを作成して削除が行われた場合に削除カラムで特定のフラグをたてるなどが行われます。「フラグ1は削除有/2は削除無」
まとめ
以上。簡単にデータベース知識の概要を抑えたところで
次回は現場で役立つ意外と使用するクエリをまとめました。