データベースプログラマは多くのことを行います。まず、予想されるレコード数で適切に実行されるように、データベース構造を設計します。数千のレコードで正常に機能する設計構造は、数百万のレコードでデータベースを使用できなくする可能性があります。また、データの整合性を長期にわたって維持し、不正な変更や盗難からデータを保護する必要があります。彼らは、正規化、非正規化のタイミングと理由を完全に理解する必要があります。パフォーマンスとデータの整合性を確保する方法を理解する必要があります。セキュリティと、データの盗難や悪意のある変更を防ぐ方法を理解する必要があります。
クエリをパフォーマンス調整します。実行に数分かかるクエリをミリ秒に変更しました。24時間以上かかっていたプロセスを30分未満に変更しました。挿入の速度と選択の速度のバランスをとるインデックス構造を設計および維持します。
複雑なクエリ、特にレポートクエリを記述します。個人的には、要件が複雑であるため、1000行を超えるクエリを記述しました。彼らはまだ迅速に実行する必要があり、実際に実行しました。
データウェアハウスとそれに付随するETLプロセスを作成して、それらをサポートします。多くの場合、他のソースからデータを取り込むプロセスを作成する必要があり、一部のクライアントデータベースから自分のデータベースにフィールドをマッピングする方法を理解する必要があります。これらは、データタイプ、データサイズ、必須フィールド、ルックアップ値、等
データベース要件の変化に応じて、すでに所有している100,000,000レコードを損なうことなく、データベースの使用を完全に停止することなく、リファクタリングする方法を決定する必要があります。大規模なデータベースには、数千のテーブル、ストアドプロシージャ、およびユーザー定義関数が含まれる場合があります。このような構造を理解するには、変更によってどのような影響を受けるか、どのように影響するかを理解するのに時間とスキルが必要です。
規制および復旧の理由でデータを監査する方法を設計します。次に、それらの監査テーブルからデータを回復する方法を設計します。データの問題を調査して、問題がインポートプロセスのバグ、他のユーザーが提供した不正なファイル、アプリケーションからの不正な挿入/更新、または不正アクセスによるものかどうかを調べます。彼らは、アプリケーションプログラマーがハッカーが攻撃するための穴を開けたときに、不良データを修正する方法を見つけます。
多くの場合、あるシステムから新しいシステムへのデータ変換に関与しています。これには、あるCOTS製品から会社が購入したばかりの新しい製品にデータを移動することが含まれる場合があります。前述のインポートと同様に、これらは複雑なプロセスであり、計画と実行に数か月かかることがあり、広範なテストが必要です。インポートとは異なり、データベースプログラマは異種のデータ構造を制御できない場合があります。