ブログBlog
DBMSについての基礎知識
投稿日:2020年07月16日 テクノロジー
こんにちは、江宮です!
少し前まで軽い肺炎を患ってしまい、こんな時期ですから会社関係者の皆様方には大変ご迷惑をおかけしてしまいました。
幸いPCR検査を含む複数の検査結果で陰性でしたので、最悪の事態は避けられました。
しかし万一陽性だったとしたら、自分の職場、妻の職場、子供を預けている保育園などでたくさんの方々を巻き込んでしまっていたので、この度は事の重大さを痛感した次第です。
さて、今日はDBMS(データベース管理システム)についてまとめてみようと思います。
DBMSとは
一言で言うなら「DB(データベース)を効率的に利用するための、統合的に管理するシステム」のことです。
まず、DB(データベース)の定義ですが、「コンピュータによって実現された、検索や蓄積が容易にできるよう整理された情報の集まり」です。
DBは単なる情報の集まりではなく、効率的な運用を目的としたファイル形式であり、現在主に使用されているのはテーブルという概念でデータを格納しているRDB(リレーショナルデータベース)です。
DBMS(データベース管理システム)はDBファイルを利用する上で、データの共有化やデータ保護、データ検索、更新などの処理を提供する統合ソフトウェアとも言えます。
私たちが日常で「データベース」と呼んでいるものは、狭義では「DBファイル」のことで、広義では「DBMS」を含んでいますね。
DBMSの機能
DBMSの主な機能は以下の通りです。
- データベース言語
SQLです。DBMSに対してさまざまな指示を伝えます。 - データ独立性
データとプログラムとを分離する独立性です。片方を修正しても、もう片方の修正は最低限で済みます。 - データ完全性
データ型や制約によって不正なデータの登録や更新を防ぎます。DBのデータを扱う上でのルールです。 - トランザクション処理
予約システムなど、異なるユーザーからの同時実行処理において整合性を保ちます。ACIDという概念に基づいています。 - セキュリティ
主にログインやパスワード処理や、アクセス制限を設けることによって、不正な処理を防ぎます。 - 障害復旧
トランザクション障害、システム障害、記憶媒体の障害からの復旧を行います。
DBMSの種類
DBMSの種類はたくさんありますが、主なものを挙げてみます。
- Oracle Dababase
米国オラクル (Oracle) が開発・販売している、RDBMS(関係データベース管理システム)です。大企業向けの市場で高いシェアを誇っていますが、高機能である反面、システムや操作方法を理解するのが非常に困難で、ユーザビリティも低いと言われています。Oracle DatabaseはRDBMS(リレーショナルデータベース管理システム)の歴史を作り、未だDBMSのリーディング・プロダクトですが、高コストであり、オープンソースDBMSの機能レベルがOracleに近づいてきたために、近年では脱オラクルの風潮があります。 - MySQL
世界でもっとも普及しているオープンソースのRDBMSとして知られており、市場シェアでは他のオープンソース・データベースを圧倒しています。Webサイトの構築環境にLAMPが挙げられますが、高速で使いやすいMySQLはそのコンポーネントの一つとしても知られています。 - Microsoft SQL Server
マイクロソフト社が開発しているRDBMSです。企業規模に応じた複数の種類から構成されており、その規模に合わせて機能や性能が異なっていますが、とりわけ中小企業向けで高いシェアを有しています。近年は競合ベンダーから多数の製品が提供されている上、オープンソースDBも普及しており、競争が激化しています。 - PostgreSQL
オープンソースのRDBMですが、商用同様の高機能性・安定性を持っていて、少しずつシェアを伸ばしてきています。また、CPU数が増えた場合の拡張性が高く、接続数が増えても性能が安定しています。 - MongoDB
RDBMSではなく、いわゆるNoSQLと呼ばれるデータベースに分類されるものです。RDBMSのよう にレコードをテーブルに格納するのではなく、「ドキュメント」と呼ばれる構造的データをJSONライクな形式で表現し、そのドキュメントの集合を「コレクション」として管理します。RDBMSのように高度な結合操作を効率的に行うことはできませんが、データの追加・更新・削除・クエリを高速に行うことができます。
他にも、IBM DB2、Redis、Elasticsearch、Microsoft Access、SQLiteなど、数多くあります。
まとめ
独学時にデータベースをさわりたての頃、サーバーとデータベースの違いもよくわかっておらず、黒い画面を見つめながらアプリに必要なソフトのインストールに数日かかっていた時もありました。
MAMPで一括インストールした後HomeBrewやLaravelを入れて、Laravelの設定をいじりすぎたのでまた全部最初から、、とTeratailに投稿しながら悪戦苦闘していましたね。
今度はサーバーやクラウドについても記事かけたらな、と思います。それでは!