mofflog

---人生の3%ぐらい役立つブログ---

プログラミングで用いる有名・主流のデータベースの種類・特徴

f:id:moffle8:20190526134329p:plain

こんにちはもっふるでs

 

プログラミングでWebサービスなどを使っている際にデータベース(DB)は非常に重要な要素のひとつです。

 

データベースとはその名のとおりデータ(情報)格納する容器でたとえばユーザーの情報やコンテンツなどを保存したり、管理したりする際に用います。

 

データベースがあることによって大量なデータもぐちゃぐちゃにならずに整理整頓して格納されるので各データへのアクセスや編集などの管理も楽になります。

 

そんなデータベースもいろいろなところから様々なサービスが提供されていて有料・無料のものから大規模・小規模向けなど種類によってその特徴なども様々です。

 

初めてデータベースを使うとき何を選んでいいか迷うこともあると思うので簡単にデータベースの種類や特徴をまとめていきます。

 

無料で使える(個人・中小規模開発向け)

MySQL

数あるデータベースの中でも有名、代表的なもので大量のデータも高速で処理することができるので国外・国内かかわらず多くの場所で使われています。

 

無料でもそのパワフルさから「Google」や「Yahoo!」にも採用されておりその機能性の高さも伺えます。 

 

もちろん個人開発でも使用するのにも普通に使うことができますし、PHPではデフォルトでMySQLを用いるのでPHPを勉強している人などは一緒に使っていくと良いでしょう。

MySQL

 

SQLite

文字通り軽量なデータベースで、ほかのDBと比べても機能などは最もコンパクトですが、シンプルがゆえに扱いやすくそこまで大規模にしない・サクサク作っていきたい小規模の開発に向いています。

 

サーバとしてではなくアプリケーションとして作動するのが特徴で、Ruby on RailsなんかではデフォルトでSQLiteが導入されています。複雑な要素が少ないのではじめてDBを触ってみたいという人の第一歩としてもおすすめです。

SQLite Home Page

 

PostgreSQL

SQLと同じくオープンソースで無料で使用することができる高機能なデータベース。MySQLと比べると若干知名度は劣るが、それに劣らず高性能で機能的にも申し分ありません。

 

またPaaSなどで採用されることもあり、たとえばAWSやherokuなどのクラウド開発サービスでもpostgresが使われるのでそのようなサービスを使う人は覚えておいたほうが良いでしょう。

日本PostgreSQLユーザ会 | 日本PostgreSQLユーザ会

 

MariaDB

MySQLの派生・改良版として新しくうまれたデータベースで、MySQLと互換性があるためMySQLのデータベース接続クライアントを使用できる。拡張性や処理性能も高いため近年ではMySQLを以前から使っていた企業たちが続々とMariaDBに移行していて今後注目のデータベースとなっています。

MariaDB – 日本語 - MariaDB Knowledge Base

 

使用は有料(法人・大規模開発向け)

Oracle Database

歴史的にも世界初での商用(有料)データベースで、現在でもなお商用において一位二位のシェアを誇っているデファクトスタンダードなデータベース。長年のノウハウが詰まっていて処理速度の速さなど機能面においても抜群の信頼性があり、多くの企業もこれを導入しています。

Database | Cloud Database | Oracle 日本

 

Microsofr SQL Server

マイクロソフトがOracleに対抗するためリリースした高機能なデータベースサーバーで、主に法人向けに設計されており費用も高額になってきます。ほかにも組み込み系や小規模開発など幅広い分野を対応可能で汎用性が高いのが特徴だったり、.NETなどWindows系の言語との親和性も高く扱いやすくなっています。

SQL Server ダウンロード | マイクロソフト

 

Web系

Web SQL

Google ChromeやFirefoxなどのブラウザ上で動作するデータベースでたとえばCookieなどのようにアプリーケーションデータをクライアント側で保存・管理するために用いるデータベースです。HTML5に標準仕様となる予定もありましたがいろいろあって白紙になり、Edgeなどでは使えませんが、Chromeやsafariなどで現在もまだ使用することができます。

Web SQL Database

 

Indexed DB

Web SQLと同じくブラウザ上で動作するデータベースで、JAvaScriptベースでありブラウザのWebStrage(保存機能)よりも大容量のデータを扱うことができるようになっています。モバイルアプリでの開発にも向いていることから今後そちらの面で注目のデータベースになっています。

IndexedDB API - Web API | MDN

 

NoSQL系

Redis

所謂NoSQLとよばれるタイプでその名のとおりSQLを使わず、ビックデータなどRDBが苦手とする分野の処理をする際に主に用いられます。ネットワーク接続された永続化可能なインメモリデータベースで、リスト・セットなどのデータ構造が行えるのが特徴です。また対応するプログラミング言語も幅広くサポートしています。

Redis

 

MongoDB

Redisと同じくNoSQLのドキュメント志向データベースで、主にJSON形式のデータを格納して管理することができるようになってます。構造的にも扱いやすくなっているので、RDBに慣れきっている人でも割となじみ易いと思います。

The most popular database for modern apps | MongoDB

 

まとめ

データベースにはその用途や開発規模などによってそれぞれ使われる種類が異なっていきます。データベースを使用することにより自分が作成するアプリケーションの幅も大きく変わってます。

 

プログラミング言語などもそうですがデータベースもひとつ覚えてしまえば後は応用が聞いて学習効率も上がるので、まずは簡単でシンプルなものから少しずつ覚えていくと良いでしょう( ・ㅂ・)و ̑̑