リレーショナルデータベースと非リレーショナルデータベースの紹介
リレーショナル・データベース
リレーショナル・データベースの利点。
- データの一貫性を保つ(トランザクション処理)
- 標準化を前提としているため、データ更新のオーバーヘッドが少ない(基本的に同じフィールドはすべて1か所)
- Joinなどの複雑なクエリも可能
デメリット
- 高度に同時進行する読み取りと書き込みの要件。ウェブサイトはユーザーの並行性が非常に高く、1秒間に数万回の読み取りと書き込みのリクエストに達することが多く、従来のリレーショナルデータベースでは、ハードディスクI/Oが大きなボトルネックになっていた
- 膨大なデータの読み書きを高効率で行う:膨大なデータを扱うWebサイトでは、リレーショナルデータベースのクエリー効率は非常に低くなる
コンセプト : リレーショナルモデルで構築されたデータベースで、集合代数などの数学的な概念や手法を利用してデータベース内のデータを扱えるようにしたもの。
一般的なリレーショナル・データベース
オラクル
Oracle Databaseは、Oracle RDBMS、または単にOracleとも呼ばれ、Oracle社のリレーショナルデータベース管理システムです。
SQLServer
SQL Serverは、分散型クライアント/サーバーコンピューティング用に設計された、スケーラブルで高性能なデータベース管理システムで、Windows NTと統合して、トランザクションベースのエンタープライズクラスの情報管理システムソリューションを提供します。
サイベース
クライアント/サーバーアーキテクチャに基づくデータベース。一般的なリレーショナルデータベースは、マスター/スレーブモデルに基づいている。マスター/スレーブアーキテクチャでは、すべてのアプリケーションが1台のマシン上で実行されます。ユーザーは単にコマンドを発行するか、あるいは単に端末を通してアプリケーションの実行結果を見るだけである。一方、クライアント/サーバーアーキテクチャでは、アプリケーションは複数のマシンで実行されるように分割されます。あるマシンは、他のシステムのクライアントであったり、他のいくつかのマシンのサーバーであったりする。これらのマシンは、ローカルエリアネットワークまたはワイドエリアネットワークで接続されています。
インフォミックス
Informixは、IBMのリレーショナル・データベース管理システム(RDBMS)ファミリーです。
アクセス方法
Microsoft Office Accessは、マイクロソフトが公開しているリレーショナルデータベース管理システムです。MicrosoftJetデータベースエンジンとグラフィカルユーザーインターフェースの両方の特徴を兼ね備えており、Microsoft Officeのシステムプログラムの1つである。
DB2
DB2は、IBMの分散型データベース・ソリューションです。DB2は、IBMが開発した大規模なリレーショナル・データベース・プラットフォームです。複数のユーザーやアプリケーションが、同じ SQL 文で異なるデータベース、あるいは異なる DBMS からデータを照会することをサポートします。
マイスル
MySQL はオープンソースのリレーショナルデータベース管理システム(RDBMS)で、データベース管理には最も一般的なデータベース管理言語である構造化照会言語(SQL)を使用しています。
vfp
Visual FoxProは、マイクロソフトのデータベースソフトFoxBaseを元にしたアプリケーション開発ソフトで、何度か改良を重ね、Windowsに移植された。特に強力な32ビットデータベース管理システムです。完全な機能を持つツール、極めてユーザーフレンドリーなインターフェース、シンプルなデータアクセス、独自のクロスプラットフォーム技術、良好な互換性、真のコンパイラビリティ、強力なセキュリティを提供し、最も高速で実用的なデータベース管理システムソフトウェアの1つである。
インガース
Ingresは、カリフォルニア大学バークレー校の研究プロジェクトとして1970年代前半に始まり、1980年代前半に終了した比較的初期のデータベースシステムである。バークレー校の他の研究プロジェクトと同様、そのコードはBSDライセンスで提供された。1980年代半ばから、Sybase、Microsoft SQL Server、NonStop SQL、Informixなど、多くの商用データベースソフトウェアがIngresをベースとして生成された。1980年代半ばに発足した後継プロジェクトPostgresからは、PostgreSQL、Illustraが生まれ、あらゆる意味で、Ingresは歴史上最も影響力のあるコンピュータ研究プロジェクトの一つである。
フォックスプロ
FoxProは強力なデータベースであり、現在最も人気のあるデータベース管理ソフトウェアの1つです。FoxProは、FoxBASEに比べ、機能面、性能面でさらに大きな改良を加え、主にウィンドウ、ボタン、リストボックス、テキストボックスなどのコントロールを導入し、システムの開発能力をさらに向上させました。
非リレーショナルデータベース
分類しています。
長所
- コスト NoSqlデータベースはシンプルで導入しやすく、基本的にオープンソースソフトウェアであり、オラクルのように多くの購入・使用コストをかける必要がなく、リレーショナルデータベースと比較して安価である。
- クエリー速度:NoSqlデータベースはキャッシュにデータを格納し、リレーショナルデータベースはハードディスクにデータを格納し、自然なクエリー速度はNoSqlデータベースよりもはるかに少ないです。
- 保存形式。NoSqlデータベースの保存形式は、キー、バリューフォーム、ドキュメントフォーム、イメージフォームなど、基本型とオブジェクトやコレクションなどの形式を保存することができますが、データベースは基本型のみをサポートしています。
- スケーラビリティ。リレーショナル・データベースは、結合や他の複数テーブルのクエリ機構などの制限があり、スケーリングが難しい。
デメリット
- NoSqlは新しい技術であり、10年以上のリレーショナルデータベースとは比較にならないため、メンテナンスするためのツールや材料が限られている。
- Sqlのサポートを提供しておらず、Sqlのような業界標準をサポートしない場合、ユーザーの学習および使用コストが発生します。
- リレーショナルデータベースによる物事の取り扱いを提供しない。
一般的な非リレーショナルデータベース
モンゴルDB
ドキュメント指向のデータベース
MongoDBは、JSON形式のデータ形式を使用するドキュメント指向のデータベースです。Webサイトのデータ保存、コンテンツ管理、キャッシュアプリケーションに最適で、レプリケーションや高可用性機能を有効にするように設定することができます。
MongoDBは拡張性が高く、優れたパフォーマンスを発揮します。C++で記述され、ドキュメントストレージをベースにしています。さらに、MongoDBは全文検索、WANやLANを介した高可用性、簡単に実装できるレプリケーション、水平スケーリング、豊富なドキュメントベースのクエリー、データ処理と集約の大きな柔軟性をサポートしています。
カサンドラ
列指向データベース
これはApache Software Foundationのプロジェクトで、Cassandraは分散型データベースで、フォールトトレランスや単一障害点なしなどのために分散型データストレージをサポートしています。言い換えれば、"Cassandraはデータ損失に耐えられないアプリケーションに最適です"ということです。
CouchDB
ドキュメント指向データベース
これもApache Software Foundationのプロジェクトで、CouchDBもJSON形式でデータを保存するドキュメント指向のデータベースです。ACID互換性があり、MongoDBのように、CouchDBはウェブサイトのデータやコンテンツを保存したり、キャッシュなどを提供するために使用することができます。CouchDB上でJavaScriptによるMapReduceクエリを実行することができます。さらに、CouchDBは非常に便利なWebベースの管理コンソールを提供します。これは、Webアプリケーションに最適です。
ハイパーテーブル
Hypertableは、GoogleのBigTableデータベースシステムをモデルとしており、Hypertableの作成者は、Hypertableの目標を"高可用性、ペタバイト規模のデータベースのオープンソース標準となる"と設定しました。つまり、Hypertableは、大量のデータを複数の安価なサーバに分散して確実に保存できるように設計されているのです。
レディス
キー・バリュー・ストレージ
オープンソースの高機能なKey-Valueストアです。Redisは、キーにハッシュ、セット、ストリング、ソートされたセット、リストを使用するため、データ構造サーバーとも呼ばれます。ハッシュの値の追加、セットの交差演算、文字列の連結、差分、マージなどのアトミックな演算を行うことができる。Redisは、インメモリデータセットで高いパフォーマンスを実現します。また、このデータベースは、ほとんどのプログラミング言語と互換性があります。
リヤック
Riakは最も強力な分散型データベースの1つで、簡単で予測可能なスケーラビリティを提供し、ユーザーにアプリケーションのテスト、プロトタイプ、デプロイを迅速に行う能力を提供し、それによってアプリケーション開発プロセスを簡略化します。
Neo4j
Neo4jは、非常に高いパフォーマンスを誇るNoSQLグラフデータベースです。堅牢で成熟したシステムの特徴をすべて備えており、柔軟でオブジェクト指向のネットワーク構造をプログラマに提供し、開発者は完全なトランザクション機能を備えたデータベースのすべての利点を十分に享受することができます。また、Neo4jは、RDBMSと比較して、特定のアプリケーションのパフォーマンスを向上させることができます。
Hadoop HBase
HBaseは、スケーラブルで分散型のビッグデータストアです。HBaseは、クライアントサイドから簡単にアクセスできるJava API、設定可能で自動化されたテーブルパーティショニング、ブルームフィルタ、ブロックキャッシングなどの機能を提供します。
Couchbase
CouchbaseはCouchDBの派生製品ですが、それでもフル機能を備えたデータベース製品となっています。ドキュメント・データベースへの移行は、MongoDBにプレッシャーを与えるだろう。Couchbaseはすべてのノードでマルチスレッドに対応しており、特にカスタムハードウェアやベアメタルハードウェアでホストされている場合は、スケーラビリティ上の大きなメリットとなる。Couchbaseは、Hadoopとの統合など、いくつかの素晴らしい統合機能のおかげで、データストレージとして素晴らしい選択肢です。
メムキャッシュDB
キー・バリューの一時的な保存
これは分散Key-Valueストレージシステムで、キャッシュソリューションと混同してはならない。その代わり、データを保存し、非常に高速で信頼性の高い方法でそれを取り出すための永続的なストレージエンジンである。memcacheプロトコルに準拠しています。そのストレージバックエンドはBerkeley DBで使用されており、レプリケーションやトランザクションなどの機能をサポートしています。
REVENDB
RAVENDBは第2世代のオープンソースデータベースで、ドキュメント指向でスキーマフリーなため、オブジェクトを簡単に格納することができます。非常に柔軟で高速なクエリを提供し、レプリケーション、マルチテナンシー、シャーディングをすぐにサポートすることで、拡張が非常に容易になります。また、データセキュリティを維持しながら、ACIDトランザクションを完全にサポートします。高いパフォーマンスに加えて、バンドルによる容易なスケーラビリティも提供します。
ヴォルデモート
自動レプリケーション機能を持つ分散ストレージシステムです。自動データパーティショニング機能、透過的なサーバー障害処理、プラグイン可能なシリアライゼーション機能、独立ノード、データバージョニング、様々なデータセンターへのデータ配信機能などを提供します。
リレーショナルデータベースと非リレーショナルデータベース
データベースは数多く存在し、似たような機能を持つものもありますが、この記事で紹介したものは、あくまで代表的な12個です。あなたはそれらを使ったことがありますか?どのような点に魅力を感じ、使ってみようと思われたのでしょうか?あなたの経験や意見を私たちと共有することは大歓迎です!今後ともScripting Houseをよろしくお願いします。
関連
-
Spark SQL 2.4.8 データフレームを操作するための2つの方法
-
SQLインジェクションとその防止、マイベイトの基本的な役割について
-
SQLSERVER 変数文字列を用いたスプライシング ケース詳細
-
MySQLスレーブ遅延1列外部キーチェックとセルフインクリメントロック
-
SqlServerデータベースリモート接続ケースチュートリアル
-
SQL SERVERのコミット・トランザクションのロールバック機構
-
SQL Server のジョブが失敗しました。所有者がサーバーアクセス権を持っているかどうか判断できない
-
SQL SERVERオープンCDC実践講座詳細
-
そのPHP環境の普遍的なパスワードのSQLインジェクションの脆弱性と防御手段
-
sql serverで最初の1000行のデータを削除する方法の例
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
SQL Server テーブルパーティション削除の詳細
-
あるユーザーの連続ログイン日数を求めるSQLクエリ
-
Windows環境でのSqlファイルの一括実行
-
SQL Server 2017がサーバーに接続できない問題解決
-
SQLServerクリーンアップログファイルのメソッド事例詳細
-
SQL ServerのSELECT INTOとINSERT INTOのSELECTのケースを説明する
-
mybatis動的SQL実装ロジックコード詳細
-
NavicatはSQL Serverのデータに接続します。エラー08001に対する完璧な解決策 - Named Pipeline Provider
-
SQLServerにおけるJSONドキュメント型データのクエリ問題を解決する。
-
データベース毎日練習問題、毎日少しづつ進歩(1)