2016-12-03 6 views
0

SQL Serverに数十億行のテーブルがあります。私は、データが読み取り専用(不変)で、常にデータベースに挿入された後に変更されないようにしたい。SQL Serverを使用してデータの整合性を保証する方法は?

私の現在の考えは、SHA3ハッシュアルゴリズムを使用してハッシュチェーンを作成することです。上記

HASH(current_row) = HASH(HASH(previous_row) + current_row) # as the hash content of the current row 

ソリューションは、以下の欠点があります。

  1. それはあまりにも長い間、すべてのレコードのハッシュが前のレコードのハッシュに関連しているとして、数十億行が存在する場合がかかる場合があります。

  2. 並列処理は許可されていません。

パフォーマンスを考慮して、データの整合性を確認する最も実用的な方法は何ですか?

+0

@marc_sしかし、データベース自体が読み取り専用の場合はどうすればデータを挿入できますか? – ichbinblau

答えて

2

データの完全性は何かを意味します。一部のユーザーが何かを更新および削除しないようにする必要がある場合は、そのユーザーに更新および削除許可を提供しないでください。

読み込みが実行可能かどうかは、許可とは無関係です。フェッチのシナリオを知り、正しいインデックスを設定する必要があります。それで十分でない場合は、他の高度な技術が必要になるかもしれません(シャーディング、複製されたスレーブからの読み取りのみ)

+0

データベースがハッキングされている場合はどうなりますか? – ichbinblau

+1

ハッキングされていますか?それは広すぎます。あなたのシステムがハッキングされたら、あなたはあまりにも多くの問題を抱えています。システムがハッキングされたときの問題を防ぐには、データをそのシステムに入れないでください。 – cherouvim

+0

次にデータはどこに置くべきですか?どのシステムが絶対に安全ですか? – ichbinblau

関連する問題