【プログラミング用語】DB:データベースとは?




どうも高妻です。Twitterでプログラミングのことや暗号通貨のことをつぶやいているのでよかったらフォローしてください。  

データベース

DB:データベースを簡単に説明すると、WEBサービスで使用しているデータを保存しておくサーバーのことです。

データにはどんなものがあるのか

インスタグラムを例にデータにはどのような種類があるかざっと並べます。

  • ユーザー名やEmailアドレスなどのログイン情報
  • ユーザーのフォローとフォロワー情報
  • 動画や写真などの投稿情報
  • 投稿された動画、写真い対するいいねとコメントの回数

ユーザー名やコメントなどのテキスト情報、フォロー/フォロワー数の数値情報、写真/動画などのコンテンツなどです。

サービスの機能が多くなればなるほどこのデータの種類が増えるので非常に複雑になります。

スマホゲームになるとこのデータの種類は100を超えるのでデータベースの設計がすごく大変になります。

データベースの種類

では次にデーテベースの種類についてです。

データベースを大きく2つに分けるとRDB:リレーショナルデーテベースとNoSQLと呼ばれる種類に分けることができます。

RDBとNoSQLには非常に多くの種類があり、それぞれ用途が分かれます。

RDBとNoSQLの違いですが、データの持ち方が全然違います。RDBにはテーブルと言われるデータの集まりがあり、テーブル間で関係のあるデータを紐付ける使い方が基本となります、。

NoSQLにもテーブルというものがありますが、テーブル間でデータを紐付けるということをしません。NoSQLでは基本的にテーブル内でデータが完結します。

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

RDBとは、「テーブル」といわれる表形式の構造でデータを管理するデータベースです。

RDBにはMySQLやOracle、PostgreSQLなどがあり多くのサービスで使われます。

RDBはデータを恒久的に保存する必要がある場合や、データの整合性が重要な場合に使用します。その他にもデータ検索に強いといった特徴やテーブル同士に繋がり(リレーショナル)をもたせることができます。

RDB
  • MySQL
  • Oracle
  • PostgreSQL
  • Redshift
  • BigQuery

KVS:キーバリューストア

リレーショナルデータベースと異なり、テーブル間につながりを持ちません。KVSの特徴としてデータ取得が早、キャッシュとしてつかわれることが多いです。

KVS
  • MongoDB
  • Cassandra
  • DynamoDB
  • Redsis
  • Memcached

まだまだ書きたいですがここに書ききれなくなるのでこれくらいにしておきます。

これらのデータベースはそれぞれに特徴がありサービスの性質によって使い分けなければいけません。

なので一言でデータベースと言っても学ぶべきことはものすごく多く、それぞれのデータベースを実業務で使えるようになるにはかなりの学習時間を必要とします。

まとめ

一言にデータベースといっても非常に多くの種類があることがわかったかと思います。

この分野にはデータベーススペシャリストという資格もあるほど高度な知識を必要とします。なので、地道に学習してデータベースの力を最大限扱えるようになっていきましょう。

プログラミングを学び始めた人は下の記事もぜひ読んでみてください。

>>プログラミング未経験から最速でエンジニアになる学習方法

The following two tabs change content below.

高妻智一

2013年CyberAgent新卒入社 スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。 2018年仮想通貨のスマホウォレットを提供するGinco Incにブロックチェーンエンジニアとして入社。






よく読まれている関連記事はこちら



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です