DBとは(文系新入社員向けIT用語説明)

前置き

私の説明は、文系新入社員向けに、漏れなくダブりなく説明することでは”ありません”。7割の精度で素早く用語を理解することを目指しています。
そのため、敢えて間違った説明をしていきます。理由は単純。IT独自の用語が多すぎるし、時代とともに意味が変わるし、どんどん増えていくため、専門家を目指すのでなければ、ざっとした本質的な理解で十分です。特に新入社員は。

3秒理解:DB(データベース)を一言で言えば

(行と列で構成された)表(の集まり)です。

3秒どころか1秒で表現できるので、多少余計な情報を入れました。
では具体的に行・列・表、そしてデータベースの関係について説明します。

例えば5教科の試験結果があるとしたら、国語、数学、理科、社会、英語などがそれぞれ列名になり、試験結果の点数が列の値になります。
試験は自分だけではないため、誰の5教科の点数かわかるようにするために「名前」列を追加します。
このように「名前」が同じ人の5教科の成績を合わせて”行”と呼びます。

各クラス・学年単位の成績表が集まるとデータベースになります
  • 列の集合体が行(ぎょう)

  • 行の集合体が表

  • 表の集合体がDB(データベース)

上図のように一人に特定出来る列をデータベースの世界では”ユニーク”と呼び、この”一人に特定出来る列”には、素早く見つけるためのタグ(ポストイットみたいなイメージ)として主キー(プライマリキー)というのが設定される事が多いです。これで探す(検索)するのが早くなります。

背景:リレーショナルデータベースって何?

この行と列で構成されたデータベースの正式名称はリレーショナルデータベースと呼びます。
データベースが作られた当初は、今よりもHDD容量がなく、メモリ容量もないため、如何に情報を簡潔に表現できるかが重要でした。
しかしデータベースそのものは、大量のデータを貯めておく仕組みのため、この相反する状態を解決する必要があります。
そこでたとえば100万行に田中太郎に関する行がある場合、
田中太郎は8バイト(データのサイズと思ってください)x 100万行になります。これを田中太郎を1という数字に置き換えた場合、1バイト分のサイズしか消費しないため、結果7バイト x  100万行分というサイズを圧縮する事が出来ます。
しかしそれだけだと、田中太郎は1、鈴木花子は2と番号を暗記しておく必要があります。それはそれで無駄な手間になるため、下表の「学生表」のように、別途「学生ID」と「名前」の対応表を作る事で解決します。

塾などではざっくり上記のような表が存在ます。

どの学生がどのコースを受講しているかは、以下のように表現することでデータベースサイズを最適化しています。

コードだけで対応表が作れている。

ただこれだけだと大した事がないですが、学生表の学生IDと、「学生とコースの関連表」の学生IDが「関連している」と設定する事で、もし学生が退学(削除)した場合、自動的に「学生とコースの関連表」の対応する行(レコード)が削除されます。このように表の列同士の関係性(リレーション)を定義することで、不要なデータも一緒に削除出来たり、削除を禁止したりするのがリレーショナルデータベースの特徴です。

そしてリレーショナルデータベースでは、SQLと呼ばれる言語(指示規則)を使ってデータベース内の行の登録・更新・削除、検索を行います。基本的に一般的にデータベースと言われるものはリレーショナルデータベースと思ってください。

しかしリレーショナルデータベースには大きな欠点もあります。

失敗: リレーショナルDBの大きな問題

当初リレーショナルベータベースは、銀行のオンラインシステムなど厳密なルールに基づくデータを扱う分野においては威力を発揮しました(今でも発揮しています)
しかし、近年様々な分野でWEBアプリケーションが作成されるようになると
アプリケーションの仕様の変更・追加に対してリレーショナルデータベースが簡単に変更出来ないケースが発生し、WEBアプリケーションの発展の足を引っ張る事が多くなってきました。
具体的に言いますと、スマホゲームやオンラインゲームのように一年に何度もアップデートがかけられ、ゲームが大きく様変わりするときに合わせて、SQLを修正したり、表を修正・追加する事で、WEBアプリケーションに不具合が発生し、メンテナンスに多大な時間が取られるような事態が多発しました。

そこで、そもそもWEBアプリケーションにそぐわないSQL文を廃止し、
表形式ではなく、皆さんが使っているパソコンのフォルダとファイル構成のような階層型と呼ばれる形式でデータを表現するNOSQLと呼ばれるデータベースが誕生しました。

行動:習うより慣れろ

我が社では業務によってたくさんのデータベースに触れる機会があります。
開発系のであればSQL文とNOSQL系それぞれ使い方を覚えます。

最初は代表的なデータベースであるOracle社のOracle Databaseの資格試験(Bronze,Silver)あたりから始めてもらいます。
資格取得を通してぜひSQLの使い方を学んでください。

NoSQL系のデータベースとしては、mongoDBが有名ですが、構築の手間のないgoogle社のFirebase(Firestore)から触れていく事を勧めています。
開発の研修を受ける際には、DBをOracle,Firebaseそれぞれでどんな検索の仕方になるか違いを確かめてみてください。



この記事が気に入ったらサポートをしてみませんか?