7

データベース プロジェクトのアーキテクチャの構築を開始する必要がありますが、エンジン間の違いがよくわかりません。

これら 3 つのエンジンのそれぞれの長所と短所を説明できる人はいますか? それらのいずれかを選択する必要がありますが、私が実際に知っていることはこれだけです。

  • Mysql & Postgres:
    • 無料だがオラクルほど良くない
    • セキュリティ上の問題としての Mysql (これは本当ですか?)
  • オラクル:
    • 世界最高のデータベースエンジン
    • 高い

誰かがそれらの間の他の違いをクリアできますか? これは低予算の中規模/大規模 (約 100 から 200 のテーブルを考えている) プロジェクトですが、何を選択しますか? そして、より高い予算で?

4

4 に答える 4

12

数年前、私は翻訳エンジンを書かなければなりませんでした。1セットのSQLをフィードすると、現在接続されているエンジンの方言に変換されます。私のエンジンは、Postgres(AKA PostgreSql)、Ingres、DB2、Informix、Sybase、Oracle、そしてANTSで動作します。率直に言って、Oracleは私の最も嫌いなものです(詳細は以下を参照)...残念ながら、mySqlとSQL Serverはリストに含まれていません(当時、どちらも深刻なRDBMSとは見なされていませんでしたが、時代は変わります)。

エンジンの品質やパフォーマンス、およびバックアップの作成と復元の容易さに関係なく、主な違いは次のとおりです。

  • データ型
  • 制限
  • 無効
  • 予約語
  • nullセマンティクス(以下を参照)
  • 引用セマンティクス(一重引用符'、二重引用符 "、またはいずれか)
  • ステートメント完了セマンティクス
  • 関数のセマンティクス
  • 日付処理(「now」などの定数キーワードおよび入出力関数形式を含む)
  • インラインコメントが許可されているかどうか
  • 属性の最大長
  • 属性の最大数
  • 接続セマンティクス/セキュリティパラダイム。

すべての変換データに飽きることなく、1つのデータ型lvarcharのサンプルを次に示します。

oracle = varchar(%x)sybase = text db2 = "long varchar" informix = lvarchar postgres = varchar(%x)ants = varchar(%x)ingres = varchar(%x、%y)

私の見解では、すべての最大の問題はヌル処理です。Oracleは、空白の入力文字列をnull値にサイレントに変換します。...どこかで、ずっと前に、誰かが「Nullの17の意味」などについて行った記事を読みました。本当のポイントは、nullは非常に価値があり、null文字列と空の文字列の違いは便利で自明ではありません!オラクルはこれについて大きな間違いを犯したと思います。他のどれもこの振る舞いをしていません(私が今まで見たことがあります)。

私の2番目に嫌いなのはANTSでした。他のすべてとは異なり、ANTSは、他の誰も絶対にやらない完璧な構文の愚かなルールを強制しました。また、標準に完全に準拠する唯一のDB企業である可能性がありますが、コードを書くためのお尻。

私のお気に入りはPostgresです。_real_world_の状況では非常に高速で、優れたサポートがあり、オープンソース/無料です。

于 2008-10-20T00:46:11.270 に答える
4

異なる SQL 実装間の違いは、少なくとも内部では大きく異なります。このボードは、それらすべてを数えるのに十分ではありません。

質問する必要がある場合は、その問題について有効で根拠のある決定を下す立場にあるかどうかも自問する必要があります。

MYSQL と Postgres の比較については、こちらを参照してください。

オラクル社はExpress (XE) エディションも提供しており、機能は縮小されていますが、無料で使用できます。また、最初から知識が少ない場合は、自分で学習する必要があります。私はどれかを選択し、それを使用して学習を開始します.

于 2008-10-19T16:28:23.523 に答える
3

ウィキペディアの比較表を参照してください: http://en.wikipedia.org/wiki/Comparison_of_object-relational_database_management_systems && http://en.wikipedia.org/wiki/Comparison_of_relational_database_management_systems

オラクルは最高かもしれませんし、そうでないかもしれません。高価ですが、それが最善というわけではありません。

DB2を見たことがありますか?サイベース?テラデータ?MSSQL?

于 2008-10-19T16:25:22.530 に答える
2

低予算のシナリオでは、オラクルは問題外だと思います。100 ~ 200 のテーブルは大きくなく、通常、スキーマ内のテーブルの量は尺度ではありません。データセットとスループットは.

ご覧いただけますhttp://www.mysqlperformanceblog.com/ (およびその優れた書籍) で、MySQL が大規模な展開をどのように処理できるかを確認してください。

一般に、最近のほとんどの RDBMS は、非常に本格的なアプリケーションで必要となるほとんどすべてのことを実行できます。

于 2009-03-03T21:08:39.370 に答える