DBの種類について
初めに
システムの構築と並行して普段何となくの理解ですましいてたインフラ分野の知識をしっかり理解もしたく、この記事を書きます。1回目はDBの種類についてです。
AWSのRDSサービスを業務で触る機会があり、Oracle・PostgreSQLなどを触ったりしてきましたが、特に決められた種類をそのまま構築等していただけだったのでそれぞれの特徴・使い分けなどをちゃんと理解していませんでした。そこでDBエンジンの種類が色々あるのは知っているレベルの私が調べた結果をまとめてみます。
データベースの種類
上記でデータベースの種類でOracle・PostgreSQLなどど書きましたが、それより大枠の種類もあります。(Oracle・PostgreSQLはリレーショナル型)
4種類に分類でき、以下の種類になります。
・階層型
・ネットワーク型
。リレーショナル型
。NoSQL型
種類 | 概要 | AWSサービス |
---|---|---|
階層型 | ノードと呼ばれる特定情報の集まりでデータを蓄積。家系図のような構造。 | - |
ネットワーク型 | 階層型とデータの構造が近いが、重複データを持たず、複数の親データと直接結びつけて管理。 | - |
リレーショナル型 | 表形式でデータが蓄積。 | RDS,Aurora等 |
NoSQL型 | 基本構造はリレーショナル型と同じだがSQLを使用しない | ElastiCache,DynamoDB等 |
リレーショナル型について
この4種類の中で一番使用する機会が多いであろうリレーショナル型に焦点をあてます。AWSサービスでいうところのRDSになります。(Auroraはサービスとして独立しておらずRDSのデータベースエンジンを選択する場面で選択できます)
RDSでは下記の6種類のDBエンジンが選べます
・MySQL
・MariaDB
・PostgresSQL
・Oracle
・MicrosoftSQL
・Aurora
Aurora-MySQL
Aurora-PostgreSQL
MySQL
現在急速にシェアを伸ばしている。Oracle開発。無料で機能も豊富。Linux,Windows,Macでも稼働できる。ほかのDBシステムとの互換性に定評あり。
MariaDB
MySQLから派生した。MySQLをベースにして新機能追加やソースオードの改善が組み込まれている。
PostgresSQL
オープンソース。SQLとNoSQLを両方扱える。拡張性が高い。多くの追加機能を持っている。
Oracle
Oracle社が開発。世界中のサイトで利用されている。自動化機能を備えていて、拡張やパッチ適用等の運用工ストを削減できる。
MicrosoftSQL
Oracleと人気を二分にしている。Windows上で使用したい場合にお勧め。GUI操作で管理できる。
Aurora
クラウド向けにAWSが開発したRDBのサービス。MySQLとPostgreSQLと互換性のあるバージョンがある。クラスター構成とインスタンスとストレージが分割されている。高可用性。
※RDSの中の1選択ですが、Auroraという1つのサービスとしてとらえたほうがわかりやすい印象です。
一度仕事で触れましたがアーキテクチャの理解に結構時間がかかりました。。
ログの種類について
タイトルとはずれてしまうんですが、DBのログを触る機会があったので簡単にまとめておきます。
・アラートログ
DBインスタンスで発生した起動などの管理操作のメッセージ履歴。トラブル調査では初めにアラートログを確認する。
→Linuxでいうところの/var/log/messageに近そう
・監査ログ
データベースに対するユーザーのアクションを記録するファイル。意図しないデータベースに対する捜査の原因調査に使用する。
→AWSでいうCloudTrailに近そう
・リスナーログ
クライアントからの接続要求(クライアントのホスト名等)と、その要求の成功可否が出力される。
・トレースログ
インスタンス上の各プロセス(バックグラウンドプロセス等)が個別のトレースファイルに情報を出力する。アラートログに「Error in file xxx.trc」のような出力がある場合などに確認する。
→アプリログみたいなイメージ?
まとめ
ここまで簡単に各データベースエンジンの特徴をまとめましたがはっきり言ってあんまり腑に落ちてはいないです。(笑)
シェアや無料or有料などの概要についてはわかりましたが細かい機能などについては実際設計を担当するとなった際にシステムの要件などを考慮して決めるものなのかなといったものなのだと思いました。
次回はLinuxのディストリビューション、bashなどのシェルについての記事を書こうかなと思っています。
♯# 参考ページ
https://meetsmore.com/product-services/databases/media/99426
https://www.acrovision.jp/career/?p=1912
https://offers.jp/media/programming/a_359
https://atmarkit.itmedia.co.jp/ait/articles/1704/07/news008_2.html