1ヶ月でWebデザイン・プログラミングスキルをオーダーメイドのカリキュラムで学べるスクール、それがWebCamp。

「数億規模スタートアップのCTO講師」と「エンジニアキャリア専門のポテパン」が贈る、実践型Rubyスクール。

言語だけじゃダメ?プログラマーならデータベースの基本を知っておこう

Pocket

はじめに

プログラマーなら言語の他にも覚えておきたいものがもう一つあります。それは「データベース」です。あなたがデータベースアーキテクトでなくてもDBの知識は必要になります。この記事では、データベース初心者のためにデータベースの基本的な知識を解説していきます。ぜひご一読して概要だけでも理解しておきましょう。

そもそもデータベースってなに?

データベースとは、データを保存しておく場所です。データベースを管理するソフトウェア(データベース管理システム、DBMS)を指す場合もあります。一般的にデータベースはファイルシステム上に構築されますが、DBMSによってはメモリ上にデータベースを作成して高速化を図る場合もあります。

データベースを使わなくてもファイルなどにデータを保存しておくことはできますが、大量のデータをファイルに読み書きするのは非効率です。データベースを使うことでより効率的にデータを管理でき、整合性や障害耐性も高めることができます。

データベースの種類

リレーショナルデータベース(RDB)

今日、最も一般的なデータベースといえば、リレーショナルデータベース(RDB)でしょう。データを複数の表のようなものに分けて管理します。

これを「テーブル」といいます。

リレーショナル(関係)という名前がついているのは、それぞれのテーブルに関係性を持たせることができるからです。RDBについては後ほど詳しく説明します。

代表的なRDBMSは次のとおりです。

  • Oracle
  • SQL Server
  • MySQL

NoSQL

NoSQLはRDBMSの弱点を補うために開発されたデータベースの総称です。一口にNoSQLといっても、ドキュメント型や列指向、キーバリューストアなど複数の種類があります。

RDBMSよりもスケールしやすく、パフォーマンスが確保しやすいというメリットがあります。

単独で使われることもあれば、RDBMSと併用されることもあります。

代表的なNoSQLは次のとおりです。

  • MongoDB
  • HBase
  • Cassandra

リレーショナルデータベースの要素

データベース

ここでいうデータベースは、データを格納する場所を指します。一般的には、単一または複数のファイルになるでしょう。ファイルがひとつでも複数でも、概念としてはひとつのデータベースを構成します。

テーブル

リレーショナルデータベースで中心となるのは「テーブル」です。初心者の方はエクセルを思い浮かべるとイメージしやすいでしょう。全てのデータはテーブルに格納され、取得もテーブルから行います。

たとえば、学生のデータを格納するテーブルなら次のようになります。

学生番号 氏名 教室番号
A001 田中太郎 1
A002 山田勝俊 1
A003 鈴木一郎 2

列(カラム)

上記のテーブルでいうと、学生番号や氏名、教室番号が「列(カラム)」になります。いうまでもありませんが、同じ列には同じ種類のデータを格納し、テーブル内でデータを整理しておきます。ただし、データの挿入は列単位ではなく、次に説明する行単位で行います。

行(レコード)

「行(レコード)」は、上記テーブルの横列のことです。基本的に、データは行ごとに挿入したり更新したりします。同様に削除も行単位で行います。

リレーション(関係)

最後にRDBで重要な「リレーション(関係)」について説明しておきましょう。先ほどの学生テーブルとは別に、次の教室テーブルがあるとします。

教室番号 教室名
1 1F1A
2 1F1B
3 2F2A

先ほどの学生テーブルと上記教室テーブルは「教室番号」という共通の列を持っており、相互に関連付けることができます。つまり、学生が在籍している教室名がわかるというわけです。

なぜ別々に保存するかというと、冗長なデータを持たせないためです。教室名をそれぞれの学生の行に持たせるとデータが重複し、もし教室名が変更されたら複数の行を修正することになります。別のテーブルに分割しておくことで、一箇所のみの修正で済むようになります。また、ひとつのテーブルが肥大化することを防ぐ効果もあります。

リレーショナルデータベースはSQLで操作する

リレーショナルデータベースは、通常「SQL」で操作します。SQLは問い合わせ言語の一種で、プログラミング言語とは異なります。テーブルの作成や変更・削除、データの挿入や更新・削除などデータベースに対するさまざまな操作が可能です。手作業でSQLを実行することもありますが、多くはプログラムにSQLを実行させることになるでしょう。データベースに関係する部分ではお世話になるので、ぜひ習得しておきましょう。

まとめ

たいていのプログラムではデータを保存する必要があり、そのためにデータベースが使用されます。データベースに直接触れることがなくても、知識だけはしっかりと持っておきましょう。

投稿者:プロスタ編集部

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

初心者がプログラミングで挫折しない学習方法を無料動画で公開中。オンラインに特化したプログラミングスクール「TechAcademy(テックアカデミー)」が解説。

この記事が気に入ったら
いいね!しよう

プロスタの最新情報をお届けします

あわせて読みたい

関連記事

ページ上部へ戻る