問題タブ [rdbms]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - SQL Server での JDBC 挿入時にキーを自動生成
JDBC 挿入でキーを自動生成できる一般的なクロス RDMS の方法はありますか? たとえば、主キー、id、および int 値を持つテーブルがある場合:
そして挿入を行います
java.sql.SQLException: Cannot insert the value NULL into column 'id' が発生します。
これは完全に RDMS に依存しているように感じます。私たちはSQL Server 2005を使用しており、設定しました
運のないテーブルで。
database - PostgreSQLタイムスタンプフィールドのデータ破損
次のスキーマを持つPostgreSQLテーブルがあります-
次に、次のようなデータを含むデータをテーブルに挿入しました-
そして、DBでデータをチェックすると、次のようになります-
1946年より前の日付のデータを挿入しようとするまでは、すべてが順調でダンディです-
上記の結果を見てください。タイムゾーンの値が+05:30から+06:30にどのように変化したかに注目してください
1942年より前の日付を挿入すると、実際にはさらに悪化します-
これで、タイムゾーン値が完全にマングルされ、日付を解析できなくなりました。
これについて何か助けていただければ幸いです。
私のタイムゾーンはアジア/コルカタ(GMT + 05:30)です。
更新:次のように明示的にTZを指定してデータを入力してみました-
それでもうまくいきませんでした。
sql - RDBS クエリに複雑なインデックスを使用する場合と単純なインデックスを使用する場合は?
フィールド (id、名前、住所、電話番号、コメント) を持つ TEST という名前のテーブルが DB スキーマにあるとします。さて、そのテーブルに対してさまざまなクエリの大規模なセットを実行することがわかっているので、次の質問は、ID_NAME_INDX (ID と名前のインデックス) のようなインデックスを作成する時期と理由、および作成する方が効率的な時期です。 IDフィールドのインデックスと名前フィールドのインデックスを個別に(どのタイプのクエリを意味するかによって)?
rdbms - メイン メモリ DB とオブジェクト DB
現在、データベース ベンダーを選択しようとしています。
仲間のデータベース開発者からの個人的な意見を求めているだけです。
私の質問は、特に次のような人々を対象としています。
1) 以前にディスク (ハイブリッド) へのレプリケーションをサポートするメイン メモリ DB (MMDB) を使用したことがある (つまり、 ExtremeDB )
また
2) Versant Object Databaseおよび/またはObjectivity Databaseおよび/またはProgress ObjectStoreを使用したことがある
質問は本当に: あなたの経験に基づいて、私のアプリケーションに適したデータベース ベンダーをお勧めできるかどうかです。
私のアプリケーションは商用のリアルタイム (ハイパフォーマンス) オブジェクト指向 C++ GIS アプリであり、多くの緯度/経度検索を行う必要があります (つまり、特定のエリアで、そのエリア内の一致するすべてのターゲットを検索します)。 ..R ツリー インデックス)。
データベースに保存したいデータの型はすべてオブジェクトとしてモデル化されており、それらは std::list と std::vector を使用しているため、当然オブジェクト データベースは理にかなっているように思えます。従来の RDBMS はおそらく私が実際に探しているものではないことを確信するのに十分な記事を読みました。
- パフォーマンス (リスト/ベクターなどの動的長データの結合または複数のテーブル)
- プログラミングの容易さ (インピーダンスのミスマッチ)
ただ、性能面では、
入力データは、約 40 MB/秒でシステムに供給されています。
したがって、システムは 1 秒あたり約 350 回の挿入の速度でデータベースへの挿入も行います (各オブジェクトは 64KB から 128KB まで変化します)。
- データベースは、複数のスレッドを介して一貫して検索および更新されます。
私の理解では、ここにリストしたすべてのオブジェクト DB はデータベース オブジェクトを格納するためにキャッシュを使用します。ExtremeDB は、特にメモリ用に設計されているため、キャッシュ ロジックなどのオーバーヘッドを回避できると主張しています。
だから..私は少し混乱しています。オブジェクト DB はリアルタイム システムで使用できますか? MMDB と同じくらい「高速」ですか?
database - リレーショナル データベースとオブジェクト指向データベースのどちらが優れているか、抑制されますか?
近い将来、RDBMS や OODBMS は廃止されるのでしょうか?
今日、私は両者の相違点に関するかなりの数の記事を読みましたが、ほとんどの記事は OODBMS を支持しているようです。RDBMS は、まだ十分に開発されていない OODBMS によって抑圧されるということですか? そうでない場合、なぜそう思うのですか?
sql - データのSQLテーブルをポインターのテーブルに変換する方法は?
すべての値が文字列であるタプル (id、姓、名、職業) の SQL テーブルがあるとします (わかりました、明らかにidがキーです)。
実際の値を含む他のテーブルへのポインターのみを保持するタプル (id、lastid、firstid、occupid) を持つテーブルに変換したいと考えています。名前と職業の例のドメインがこの操作に最適でない場合は、お詫び申し上げます。
明らかに、データを保持する他のテーブルを作成するには、一意のすべての姓を取得し、自動生成されたキーを使用してそれらを新しいテーブルに挿入する必要があります。名前や職業も同じです。
それを行った後、ポインター (つまり、外部キー) を含む新しいテーブルを生成できる単一の変換はありますか?
重要な場合、実装では SQLite を使用します。
sql - SQL update ステートメントの構成 - 効率への影響
column_name = value マッピングの順序がファイルの物理レイアウトと一致しない更新ステートメントを RDBMS に送信した場合、(理論的には) 更新操作の効率に影響しますか?
あまり効果がないことは十分承知の上で、主に興味本位で質問させていただきます。
mysql - DB を正規化する必要がありますか?
DB (MySQL など) のスキーマを設計する場合、テーブルを完全に正規化するかどうかという問題が生じます。
一方では結合 (および外部キー制約など) が非常に遅く、他方では冗長なデータと不整合の可能性があります。
ここで「最後に最適化する」のは正しいアプローチですか? つまり、標準化された DB を作成し、最適な速度向上を達成するために非正規化できるものを確認します。
このアプローチに関する私の懸念は、十分に高速ではない可能性のある DB 設計に落ち着くということですが、その段階で (既存のデータをサポートしながら) スキーマをリファクタリングすることは非常に苦痛です。これが、「適切な」RDBMS プラクティスについて学んだことを一時的にすべて忘れて、「フラット テーブル」アプローチを一度だけ試してみたくなる理由です。
この DB が挿入を多用するという事実は、決定に影響を与えるべきでしょうか?
mysql - データベースの質問:単純なリレーショナルテーブルを非リレーショナルに変更しますか?
(開発中の)MySQLデータベース上で実行されているWebアプリケーションがあります。アプリケーションをGoogleAppEngineに移行することを検討しており、単純なリレーショナルデータベースモデルを非リレーショナルアプローチに変換する方法をよりよく理解したいと思います。
私は長年のリレーショナルデータベース担当者であり、BigTableなどの列ベースのDBの経験はありません。Googleがリレーショナルデータベースの小規模な展開もサポートしている場合に備えて、私の質問は一般的なものであり、Googleに固有のものではないことを述べたいと思います。単純なリレーショナルモデルを非リレーショナルDBで表現する方法を理解したいと思います。
私のデータベース(簡略化)は次のとおりです。
名前とIDが付いたアイテムがたくさんあります。各アイテムには複数のプロパティがあり、各プロパティにはいくつかのパラメータがあります(各プロパティの名前と「重要性」についてのみ説明しましたが、さらに多くのパラメータがあります)。私は数千万のアイテムを持っており、それぞれに数百のプロパティがあります。
使用シナリオ:入力としてItemNameを受け取り、itemsテーブルでそのIDを検索し、そのIDですべてのプロパティをフェッチします。次に、(メモリ内の)プロパティのリストに対して分析を実行し、結果を返します。
作業の90%は、パラメーターに基づくルックアップです。パラメーターは、(私が正しく理解していれば)非リレーショナルDBの問題点です。
推奨されるアプローチは何ですか?
sql - RDBMS は古い接続をどのように処理しますか?
RDBMS への接続をセットアップしてから、ネットワーク プラグをヤンクすることを検討してください。(接続が NAT ゲートウェイを通過し、ゲートウェイがその接続を消去することを決定した場合も、同じ効果が得られます。)
その時点で、RDBMS サーバーはクエリなどを待機していますが、これは決して発生しません。また、TCP 接続はそのネットワーク上にないため、クライアントによって閉じられることはありません。おそらく、サーバーは接続が開いているとまだ信じているため、サーバーも閉じません。
典型的な RDBMS は、タイムアウトや TCP を介した単純なキープアライブ メカニズムの実装でこれを処理しますか? Oracle、SQL Server、および MySQL でこれを経験したことのある人はいますか?
編集; さらに掘り下げると、mysql は非アクティブ状態が 8 時間続くと接続をパージすることが示唆されます。