RDBMSはどのように流行と見なすことができますか?


11

2003年にコンピューティングAレベルを完了し、2007年にコンピューティングの学位を取得し、SQLの使用が多い企業での取引を学び、ストレージにリレーショナルデータベースを使用するというアイデアを思いつきました。

そのため、開発は比較的初心者でしたが、次のようなコメント(/software//q/89994/12436)を読むのに驚きました。

[一部の開発者]は[SQL]を軽deし、それとRDBMSは流行だと思います

明らかに、有能な開発者は適切なジョブに適切なツールを使用し、ストレージ用のフラットファイルまたは別のソリューションが適切な場合にリレーショナルデータベースを作成しませんが、RDBMは非常に多くの状況で役立ちます。流行と考えられますか?


1
コンテキストを入力してください-そのコメントはどこで読みましたか?
エランガルペリン

8
何でも、すべてはどこかで誰かによって流行と見なされます。
ペテルトレック

非常に本当のペーター、理由だけに興味がありますか?
StuperUser

5
そのような人々は通常、彼らが促進したい別のパラダイムを持っています。これはリレーショナルデータベースの考え方に反します。したがって、リレーショナルデータベースは不良であり、廃止する必要があります。まだクリティカルマスに達していないオブジェクト指向データベースを見てください。

回答:


28

キーは、リレーショナルを表すRDBMS のRにあります。一般的な考えに反して、テーブル間の関係を意味するのではなく、各テーブルが単語の数学的な意味での関係であるという事実を意味します

リレーショナルモデルは非常に重要な意味を持ちます。関係に合わせてデータをモデル化し、そのモデル正規化する必要があります。アプリケーションがオブジェクト指向モデルとして設計されている場合、リレーショナルモデルは適切ではありません。これは、オブジェクトリレーショナルインピーダンスの不整合として広く知られています

この不一致に対する1つのアプローチはORM(オブジェクト関係マッパー)であり、これは多くの人気を得ています。しかし、それらは真の解決策ではなく、問題の回避策のようなものです。彼らはまだクラス継承をリレーショナルモデルにマッピングする問題を本当に解決していません。

オブジェクトとリレーショナルの不一致に対する真の解決策はOODBMSesであり、残念ながらそれほど多くの牽引力を得ることはできませんでした。OOBDをネイティブでサポートする人気のあるエンジンはPostgreSQLです。これはハイブリッドOO / RDBMSです。もう1つのOODBMSはZope Object DBです。これはPythonで構築され、一般的なセットアップではRDBMSを基礎となるエンジンとして使用します。

別のアプローチは、アプリケーションまたはミドルウェアレベルでより多くのロジックを実装し、基礎となるストレージにNoSQLソリューションを使用することです。

OODBMSもNoSQLも「単なるフラットファイル」ではありません。


2
@ダニエル:彼は確かに、リレーショナルモデルが解決策を必要とする問題だとは言わなかった。-彼はあなたが言った正確に何言っている場合は、オブジェクト指向のパラダイムにあなたのソフトウェアをモデル化することにコミットしている、その後、リレーショナルモデルが問題です。
Carson63000

1
@カーソン:私の謝罪、しかしそれは私が答えを読む方法ではありません。@vartecは次のように述べています。「本当の解決策はOODBMSです(残念ながらあまり注目されていませんでした)。」私は敬意を持って同意しません。本当の解決策は、リレーショナルモデルを理解し、それを効果的に使用することです。OODBMSは、データモデルにOOの原則を使用する必要がある場合の貧弱な人のソリューションです。これは確かに普遍的なケースではありません。
ダニエル・プライデン

1
@Daniel:オブジェクト指向のパラダイムでソフトウェアをモデリングすることにコミットしている場合、OODBMSが真のソリューションであると彼は言ったと思います。リレーショナルモデル自体が問題であり、OODBMSがそれを解決したわけではありません。しかし、とにかく、Vartecを正しく理解したかどうかを議論するポイントはあまりありません。:-)
Carson63000

1
@ダニエル:コンテキスト重要です。私は、リレーショナルモデルはOOPのコンテキストで問題であるとよく言っています。さて、OOPが普遍的であるかどうかは、この答えの範囲を超えています。ところで。OODBMSは「貧乏人の解決策」ではありませんが、ORMはそうです。
バルテック

1
@vartec:わかりました、私は下票を撤回します。(投稿が編集されない限り、実際に削除することはできません。)オブジェクト指向を含まないソリューションがあることを明確にすることが最善だと思います。そして、はい、ORMはOODBMSよりも悪いことに同意します。
ダニエル・プライデン

13

上記の質問で引用した声明を作成しました。このサイトの開発者に関する私の仮定を検証するための引用が必要な場合は、次の質問に対する私の答えを読んで、まだ受け入れられると思われるものについて受け取ったコメントと下票の反発を確認してください。

経験豊富なプログラマは、データベースクエリを知っている必要がありますか?

LinqやORMにもかかわらず、RDBMSデータベースが使用されている場合、開発者はSQLの高度な知識を持っている必要があると断言しました。

これは非常に人気のない主張でした。これは、RDBMSは本質的にMongoDBのようなNoSQLデータベースよりも劣っているという、あまり重要でない考え方に対する、SQLの重要性に関する意見のかなりの違いのためと思われます。

編集:私の主張にさらに追加するために、ユーザーSK-logicを引用します:

このRDBMSの流行はすべて比較的最近の傾向であることに注意してください。それまでは、さまざまなアプローチがありました。あなたは明らかにあなたの年齢の開発者と一緒に若い会社で働いているので、あなたはより古くてより堅実なストレージアプローチに触れる機会がありません。幸いなことに、この最近の傾向はすでに減少しており、古き良き時代が戻っており、「nosql」と改名されています。


DBを扱う開発者は、SQLを理解して、リレーションの観点からクエリを適切に概念化できることを完全に同意します。ただし、Linq / ORMは、データストアを念頭に置いて記述されたクエリに影響を与えるような方法で、抽象化のクエリを最適化しないことを願っています。
-StuperUser

「このRDBMSの流行は比較的最近の傾向である」と言う人がいる唯一の理由は、あごひげがどれほど灰色かを示すためです。私は1995年にあなたが説明するエンタープライズおよびビジネスアプリケーションの種類に最初に取り組みました-リレーショナルデータベースが支配的でしたが、現在は支配的であり、16年の間に働いたすべての場所で支配的でした。今では明らかに私は何人かの年齢ではありませんが、「比較的最近」と言うとき、「過去20年間」という意味ではありません。
Carson63000

問題は、多くの開発者がRDBMSとSQLを誤って同一視していることです。SQLは、現代の標準では本当にひどい言語です。これは「リレーショナル」言語の欠陥のある不完全な実装です(SQLは本当にリレーショナルではないため、問題の一部です)。これは、過去30年間あまり進化していません。SQLを使用している多くの人はリレーショナルモデルをほとんど理解していません。知っているのはSQLだけであるため、リレーショナルモデルがフラストレーションの原因であると想定しています。
-nvogel

@dportas、確かにSQLは完璧ではありませんが、SQLでTHINKINGを始めたときの生活がどれほど楽になったかを知ることができるほど、すべての仕事にとって非常に重要でした。リレーショナルモデルを教えて、わかりやすい英語で質問をしたら、SQLで「答え」を書くことができます。「彼らが知っているのはSQLだけなので、リレーショナルモデルが欲求不満の原因であると想定している」と言いますが、そうすると彼らはSQLを十分に知りません。インドのプログラマーが貧しい教育で1時間あたり10ドル未満で稼いでいるように、なぜすべてが常に最も一般的なデモネーターに対応する必要があるのか​​。
maple_shaft

@ maple_shaft、SQLで考えている場合、リレーショナル用語で非常に間違っていることを考えています。開発者にとって、SQLのような言語に焦点を当てるのではなく、リレーショナルモデルのような基礎概念を理解することを奨励する必要があります。より多くの人々が基礎概念を理解していれば、SQLはすでにより良いものに置き換えられていたでしょう。
nvogel

9

流行

短時間で非常に人気が出て、ほぼ同じ速度で忘れられるものです。」

RDBMSは古くから(少なくともCSの用語で)存在しているため、他のことを言うつもりであるか無知であると言った人は誰でもいます。


2
私は別のことを言うつもりでした。私の答えは以下をご覧ください。
maple_shaft


3
たぶん、都市部の辞書とは対照的に、本物の辞書を使用した方が良いでしょう。
アーロンノート

Aaronaught-プリンストンはどうですか?「関心は誇張された熱意で続いた。」wordnetweb.princeton.edu/perl/…–
シャウナ

3

RDBMSの代替は、単なるフラットファイルではありません。私が学校にいたとき、OODBMSは新しいものであり、私の教授はそれが流行であると言ったときに正しかった。さまざまなモデルを見て、傾向に注意してください。OLAPへの依存度が高まっているのを見てきましたが、データをより高速に処理できる新しい多次元システムがすぐそこにあると信じています。


「新たになりたい」=>「新たに賭けたい」?
バイナリウォーリアー

確かに、例としてフラットファイルを使用しました。これは、DBモデルへの良いリンクです。
StuperUser

@Binaryはい、編集してそれを反映します。
クリストファービブス

3

問題は、多くの開発者がRDBMSとSQLを誤って同一視していることです。SQLは、現代の標準では本当にひどい言語です。これは「リレーショナル」言語の欠陥のある不完全な実装です(SQLは完全にリレーショナルではないため、問題の一部です)。これは、過去30年間あまり進化していません。SQLを使用している多くの人はリレーショナルモデルをほとんど理解していません。知っているのはSQLだけであるため、リレーショナルモデルがフラストレーションの原因であると想定しています。


1

文脈がなければ、誰がRDBMが流行と見なされているかを判断するのは困難です。

短期から中期(5〜10年)で、さらに長くなるとは思えません。RDBMは、ほとんどの企業が顧客/注文、乗客/チケットなどであるリレーショナルデータを保存、処理、および取得する効率的かつ効果的な方法を提供します。

オープンソースプロジェクトで人気が高まっているように見えるNoSQLのような他の代替手段があります。

OLAPとして、これらは本当に(私の考えでは)専門家のデータベースであり、企業が企業に関するタイムリーで有用な統計情報を提供し、現在のデータに対して「what if」シナリオを実行できるように設計されています。もちろん、ほとんどすべての場合、この現在のデータはRDMBから取得され、操作されてOLAPデータベースに挿入されました。


1

リレーショナルデータベースは、マイクロコンピューティングが流行しているのと同じ意味で流行しています。


1

簡単な答えはノーです。RDBMSは流行ではありません。LinqPadのWebサイトで何かを読むとき、その目的は製品のライセンスを販売することであることに留意してください。


質問は、それが流行であると考えられる理由についてであり、LinqPadのプロモーションのレトリックではありません。LinqPad標準は無料です。
StuperUser

質問は、LinqPadのプロモーションレトリックを読んだ彼から来ました。彼は塩の粒で取る必要があることを指摘するだけです。
タンディ

ノーそれは、それは上のmaple_shaftさんのコメントから来ていなかったprogrammers.stackexchange.com/questions/89994/...。LinqPadのコピーひとつまみの塩で撮影されましたが、開発者がどちらのステートメントにも同意するかどうかは興味があります。
StuperUser

はい、LinqPadの宣伝のレトリックは、RDBMS 自体を時代遅れにするのではなく、RDBMSを照会するSQLを書くことは時代遅れだということでした。彼らはRDBMSを使用するより良い方法を販売しており、RDBMSの代わりではありません。
Carson63000

@StuperUserとCarson63000:わかった。私の間違い。
タンディ

0

彼らは長い間一緒にいるので、流行は正しい言葉ではありません。テクノロジーは非常に古く、次の次のこと-NoSQLアーキテクチャー-を考え出す時間になるかもしれないという議論を始めることができると思います


0

ウィキデフ。Fadの用語「fad」を次のように定義します 。fadは、大規模な集団の間で発生するあらゆる形態の行動であり、一般に何らかの方法で行動が小説として認識された結果として、一定期間熱狂的に続いています。流行は、それを採用している人々の数が急速に増加し始めると「キャッチ」すると言われています。振る舞いは通常、新規性の認識がなくなるとすぐに消えます。

RDBMSのフォロワーは急速に衰退せず、今後何年も消えることはないので(それを使用する実動アプリケーションの膨大な山のおかげで)、その流行とは言えません。実際、RDBMSのコアコンセプトはかなり安定しており、他の多くのテクノロジーが劇的に変化しました(そして、まだ変化しています)。

RDBMS(およびその主要な手段であるSQL)の概念は、他の多くの製品と同様に、より優れたものに取って代わられる可能性のある技術のステップを表しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.