Navicatブログ

データベースに保存すべきではない3つのもの 2024年1月19日 Robert Gravelle

デジタル時代において、データベースは無数のアプリケーションやシステムの情報を管理および整理する上で重要な役割を果たします。貴重なデータの管理者として、企業や開発者は彼らのデータベースに保存されている情報の種類に注意することが不可欠です。データベースはデータを効率的に処理できるように設計されていますが、特定の種類の情報はデータベースに保存すべきではありません。この記事では、データの整合性、セキュリティ、コンプライアンスを維持するためにデータベースに保存することを避けるべき3つのことについて説明します。

1. 重複データと冗長データ

重複したデータや冗長なデータをデータベースに保存することは、最初は無害に見えるかもしれませんが、将来的には多くの問題を引き起こす可能性があります。データが重複すると、ストレージ容量が無駄になるだけでなく、不整合やエラーが発生するリスクも生じます。情報が複数のレコードに重複している場合、1つのインスタンスの更新が見落とされる可能性があり、結果として不一致が発生し、データの精度が損なわれる可能性があります。

これに対処するためには、正規化の原則を念頭に置いてデータベースを設計する必要があります。正規化には、冗長性と依存性を最小限に抑えるためにデータを整理し、各情報が必ず1か所に保存されるようにすることが含まれます。これを行うことにより、ストレージが最適化されるだけでなく、データの一貫性と整合性も強化されます。

2. クレジットカード情報

オンライン取引や電子商取引の分野では、財務情報の保護が最も重要です。クレジットカード情報をデータベースに保存すると、重大なリスクが生じ、Payment Card Industry Data Security Standard(PCI DSS)などの業界標準への準拠に関して深刻な懸念が生じます。PCI DSSは、詐欺を防止し消費者を保護するために、クレジットカードのデータの処理と保護に関する厳格なガイドラインを概説しています。

企業は、クレジットカード情報を直接保存するのではなく、安全な支払いゲートウェイを利用する必要があります。支払いゲートウェイは、顧客、販売者、金融機関の間でのクレジットカード情報の安全な送信を容易にします。これにより、データ侵害のリスクが軽減されるだけでなく、業界規制への準拠も保証されます。

3. 機密の個人識別情報(PII)

社会保障番号、パスポートの詳細、運転免許証番号などの機密の個人情報を、適切な保護策を講じずにデータベースに保存すると、大惨事を招きます。PIIは、個人情報窃盗の主なターゲットであり、悪者の手に渡った場合に不正行為に悪用される可能性があります。データベースに暗号化が適用されている場合でも、復号キーが侵害される可能性があるため、リスクは依然として高いままです。

このリスクを軽減するためには、PIIを処理するためのトークン化技術または仮名化技術を実装することをお勧めします。トークン化では、機密データを一意のトークンに置き換えて、元の情報を判読できなくします。仮名化には、可逆アルゴリズムによる機密識別子の置き換えまたは暗号化が含まれ、許可されたユーザーのための使いやすさを維持しながらデータ保護を確保します。

例外と考慮事項

一部の値は他のフィールドから派生される場合がありますが、パフォーマンス上の理由から例外が発生する場合があります。数百万のレコードがある場合、レコードを循環して毎回動的に答えを計算するのではなく、データベースから実際の値を取得する方が望ましい場合があります。それを念頭に置いて、データベースに保存するとよいフィールドをいくつか示します:

小売価格

商品の小売価格は、多くの場合、原価に税金を加えたものとして計算されます。ただし、この一見単純な概念は、基礎となる価格が変化したり、新しい消費税が発効したりすると複雑になります。計算された価格をデータベースに保存する場合は、コンテキストのために「現在の日付」も必要です。これにより、価格の履歴を把握できるようになり、価格に影響を与える要因が時間の経過とともに変化した場合でも、正確な記録が保証されます。

年齢

誰かの誕生日と今日の日付がわかっている場合、年齢情報を保存する必要はないと思われるかもしれません。ただし、年齢は時間の経過とともに変化することを考慮して、レコードの「現在の日付」と保存時の「現在の年齢」を保存すると、場合によっては複雑な計算が必要なくなります。このアプローチにより、年齢関連情報が正確に保たれ、特定の時点での個人の年齢のスナップショットが提供されます。

計算フィールドを保存する必要がある場合は、Navicat 16 で挿入トリガーをすぐに作成できます。

navicat-trigger (53K)

結論

データベースにどのデータを含めるべきかを知ることは、何を除外すべきかを理解するのと同じくらい重要です。重複データおよび冗長データ、機密の個人情報、動的計算に適した特定の種類の情報の保存を回避することによって、ストレージを最適化するだけでなく、データの一貫性、整合性、セキュリティも強化します。

ブログのアーカイブ
シェア