3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

無料で使えるDBはどれを選ぶ?~ SQLite・SQL Server・PostgreSQL・MySQLなど6種類を比較~

3
Posted at

はじめに

C#でシステム開発をする場合、どのデータベースを選べば良いのでしょうか。

現在は無料で利用できる高性能なデータベースが数多く存在し、小規模システムから大規模システムまでライセンス費用を掛けずに開発できる時代になりました。

本記事ではC#との相性を中心に、無料で利用でき商用システムでも採用されている代表的なデータベースを比較します。

対象とするデータベースは以下です。

  • SQLite
  • SQL Server Express
  • PostgreSQL
  • MySQL Community Edition
  • MariaDB
  • LiteDB

各DBの特徴

SQLite

特徴

サーバーを必要とせず、アプリケーションに組み込んで利用できます。

データベースは1つのファイルとして保存されるため、配布やバックアップが非常に簡単です。
ゼロ設定で利用でき、ACIDトランザクションにも対応しています。

メリット

  • インストール不要
  • 配布が簡単
  • バックアップはファイルコピー

デメリット

  • 同時書き込みが多い用途には向かない
  • 多数のクライアントから同時にアクセスするサーバー用途には向かない

向いている用途

  • 小規模アプリ
  • デスクトップアプリ
  • モバイルアプリ
  • 個人ツール

SQL Server Express

特徴

Microsoftが提供する無料版SQL Serverです。
Visual StudioやEntity Frameworkとの相性は抜群で、C#開発では最も扱いやすいデータベースと言えます。
SQL Serverと同じエンジンを使えますが、Expressにはリソース面の制限があります。

メリット

  • Visual Studioとの親和性が高い
  • Entity Frameworkが使いやすい
  • SQL Server Management Studioが利用できる

デメリット

  • データベース容量制限
  • サーバーのインストールが必要
  • 大規模用途には制限がある

向いている用途

  • 社内システム
  • 業務システム
  • 中小企業向けシステム

PostgreSQL

特徴

近年、人気が高まっているオープンソースRDBです。
SQL標準への対応が充実しており、大規模システムでも十分利用できます。MVCCによる高い同時更新性能や豊富な拡張機能が特徴です。

メリット

  • 高性能
  • SQL標準への対応が豊富
  • JSON対応が強力
  • GIS(PostGIS)が利用可能

デメリット

  • 初心者には少し難しい
  • 構築・運用に必要な知識が多い

向いている用途

  • Webサービス
  • API
  • 大規模システム
  • GIS

MySQL Community Edition

特徴

世界中で利用されている定番RDBです。
Webシステムでは非常に高いシェアがあります。

メリット

  • 情報が豊富
  • 軽快
  • 多くのクラウドサービスが対応

デメリット

  • PostgreSQLと比べて、SQL標準への対応が少ない

向いている用途

  • Webアプリ
  • ECサイト
  • CMS

MariaDB Community Server

特徴

MySQLから派生したオープンソースデータベースです。
MySQLから派生したため、MySQLとの高い互換性を持っています。

メリット

  • MySQL互換
  • オープンソース
  • 高速

デメリット

  • MySQLとの細かな差異がある

向いている用途

  • Linuxサーバー
  • Webサービス

LiteDB

特徴

LiteDBは.NET向けの組み込み型NoSQLデータベースです。
SQLiteのように1ファイルで管理できますが、SQLではなくC#オブジェクトをそのまま保存できます。

メリット

  • DLLだけで動作
  • オブジェクト保存が簡単
  • インストール不要

デメリット

  • RDBのようなSQLベースの利用方法ではない
  • 他言語との連携が難しい

向いている用途

  • 設定ファイル
  • キャッシュ
  • ローカルデータ

DB比較表

項目 SQLite SQL Server Express PostgreSQL MySQL MariaDB LiteDB
種類 RDB RDB RDB RDB RDB NoSQL
サーバー 不要 必要 必要 必要 必要 不要
インストール 不要 必要 必要 必要 必要 不要
単一ファイル × × × ×
EF Core ×
同時アクセス
C#/.NETとの親和性
学習難易度

用途別おすすめ

用途 DB 理由
勉強 SQLite 設定不要なので学習しやすい
デスクトップアプリ SQLite ファイル一つで完結
社内システム SQL Server Express C#と相性が良く、保守しやすい
Webシステム PostgreSQL 性能・機能・拡張性のバランスが優れている
Linuxサーバー PostgreSQL
MariaDB
OSSとの相性が良く、多くのホスティング環境で利用できる
大規模システム PostgreSQL 高い性能と拡張性を持つ

SQLite vs SQL Server Express

C#で開発する場合、SQLiteか、SQL Serverかで悩むケースが多いです。
難しい問題ではありますが、以下を参考にして頂ければと思います。

SQLiteを選ぶ

  • PC単体で動く
  • データベースサーバーを用意できない
  • 同時アクセスが少ない
  • PCごとにデータベースを持たせる
  • アプリとDBを一緒に配布したい

SQL Server Expressを選ぶ

  • 複数PCから利用する
  • 社内システム
  • 同時アクセスが多い
  • データをサーバーで一元管理したい
  • 将来SQL Serverを使いたい

無料DBを利用するときの注意点

「無料」と「何の制約もなく利用できる」は同じ意味ではありません。

データベースには、それぞれライセンスが設定されています。

例えば、

  • SQLite
  • PostgreSQL
  • SQL Server Express
  • MySQL Community Edition
  • MariaDB Community Server
  • LiteDB

では、ライセンス体系がそれぞれ異なります。

特に商用システムで利用する場合は、

  • 自社内で利用する
  • 顧客へ納品する
  • DBを含めてアプリケーションを再配布する
  • SaaSとして提供する

など、利用形態によって確認すべきライセンス条件が変わる場合があります。

そのため、「無料だから大丈夫」と判断せず、実際の利用形態に合わせて各DBのライセンスを確認することが重要です。

おわりに

無料で利用できるデータベースでも、十分に実用的なシステムを構築できます。

それぞれに得意分野があるため、「一番良いデータベース」はなく「用途に合ったデータベース」を選ぶことが重要です。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?