【でーたべーす】

データベース とは?

💡 データを「整理して大量に保管・高速検索」するための専用システム
📌 このページのポイント
データベース ― テーブルとリレーション ユーザーテーブル ID 名前 メール 1 田中 tanaka@... 2 佐藤 sato@... 3 鈴木 suzuki@... 注文テーブル 注文ID ユーザーID 商品 101 1 ノートPC 102 2 マウス 103 1 キーボード 1:N テーブル間をIDで関連付け(リレーション)して管理 主キー(PK)で一意に識別 外部キー(FK)で参照
データベースのイメージ
ひよこ ひよこ

データベースって普通のファイルと何が違うの?

ペンギン先生 ペンギン先生

テキストファイルでもデータは保存できるけど、大量データの高速検索・複数人の同時アクセス・データの整合性保証などはDBが格段に優れている。100万件のデータから特定の条件で検索するのに、DBなら0.01秒で終わる。

ひよこ ひよこ

MySQLPostgreSQLってどっちがいいの?

ペンギン先生 ペンギン先生

用途によるけど、どちらも優秀。MySQLはWebアプリで広く使われ速い・軽量。PostgreSQLは高機能・標準SQL準拠・拡張性が高い。最近はCloudネイティブ環境でAurora(MySQL/PostgreSQL互換)も普及している。

ひよこ ひよこ

NoSQLって何?

ペンギン先生 ペンギン先生

テーブル形式ではないデータベースの総称。MongoDBJSONのようなドキュメント型)・Redis(KVSで超高速)・Cassandra(大規模分散)などがある。柔軟なデータ構造や大規模スケーリングが得意な反面、結合(JOIN)などの複雑なクエリはRDBが向いている。

ひよこ ひよこ

データベースの選び方ってどう判断すればいいの?

ペンギン先生 ペンギン先生

まず「データの構造が決まっているか」が最初の判断ポイントだよ。決まっているならRDB(PostgreSQL/MySQL)、柔軟に変えたいならNoSQL。次に「規模と速度の要件」で、超高速なキャッシュならRedis、大規模分析ならBigQuery全文検索ならElasticsearch。実は「Polyglot Persistence(多言語永続化)」という考え方があって、1つのシステムで複数種類のDBを用途ごとに使い分けるのが現代のベストプラクティスなんだ。たとえばメインはPostgreSQLキャッシュRedis、検索はElasticsearchという組み合わせがよくあるよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
データベースって出てきたら「大量のデータを効率的に格納・管理・検索するためのシステム」と思えばOK!
📖 おまけ:英語の意味
「Database」 = データの基盤・データを格納する土台
💬 1960年代に大型コンピュータで生まれた概念。現代のWebサービスのほぼ全てがデータベースを使って動いている
← 用語集にもどる