sql >> データベース >  >> RDS >> Database

データベース設計者になる方法

    データベースモデリングには、いくつかの科学、いくつかの芸術、多くの技術、そしてかなりの一般的な知恵があります。すべての優れたデータベースモデラーは、多くのことを学び、多くのことを実践し、創造性を育み、対人スキルを開発します。

    データベース設計者になるまでの道のりは難しいように思われるかもしれません。しかし、データを操作し、一見何もないように見える構造を提供し、人々が情報の流れの中に隠された真実を見つけるのを助けることを楽しんでいるなら、あなたは間違いなく楽しい旅を見つけるでしょう。

    データモデリングとは

    まず最初に。データモデリングとは何かを明確にしましょう。データモデリングは、データベースに含まれる情報の概念的な表現を作成するプロセスです。このプロセスの結果は、データオブジェクト(情報が保存されるエンティティ)、それらの間の関連付けまたは関係、およびデータベース内の情報を管理するルールまたは制約を含むデータモデルです。

    データモデリングの責任者はデータベース設計者ですが、モデリングはデータベースエンジニアまたはアーキテクトの責任の1つであることがよくあります。データベース設計者の仕事は、単に図を描くだけでなく、ドキュメントを読んだり、ユーザーにインタビューしたりして要件を確認し、それらの要件に適合するデータモデルを作成することも含まれます。これが、データモデリングが必要な理由です。

    データモデルが作成されたら、設計者はそのモデルをサポートし、その進化とライフサイクルをウォークスルーする必要があります。これは、プログラマー、アナリスト、およびモデルを使用する必要のある他の人と緊密に連携することを意味します。また、モデルへの変更のリクエストを受け入れること、モデルを改善するための提案を行うこと、または新しいニーズにモデルを適応させることも意味します。

    データベース設計者のキャリアに向けたステップ

    ローマは一日にして成らず、一夜にしてデータベース設計者になることはありません。フィニッシュラインに到達するには、一連の手順に従う必要があります。それは学位を取得することから始まり、いくつかの特定の知識を深め、ツールの使い方を学び、認定を受け、特定の特定のスキルの専門家になり、最後にあなたが実行したい活動に間接的に関連するスキルを学びます-いわゆる「ソフト」スキル。しかし、一度に一歩ずつ進んでいきましょう。

    1。学位を取得する

    データベース設計者のキャリアにおける最初の重要なマイルストーンは、学位を取得することです。アソシエイトおよび学士号プログラムは、データベース設計とソフトウェア開発の入門的な理解を得たい人にとって最良の道です。準学士課程は、データベース設計とソフトウェアの特定の側面をカバーすると同時に、より一般的な教育とビジネスコースを提供します。学士号プログラムは、さらに多くのビジネス関連のコースを提供し、コンピュータサイエンスまたはソフトウェア開発の分野でより上級の職に就くために卒業生を準備することができます。

    2種類の学位の最も明らかな違いは(費用以外に)、それぞれを取得するのにかかる時間です。フルタイムの学生の場合、準学士課程は通常2年かかります。一方、学士号プログラムは、フルタイムの学生の場合、通常4年かかります。明らかに、4年間の学士号プログラムでは、準学士号プログラムよりもはるかに多くのことを学ぶことができます。

    データベース設計についての短いコースを受講することができます。ただし、短期コースでは通常、コンピュータサイエンスのさまざまな側面に関する予備知識が必要です。コンピュータの知識がない人のために設計されたコースもあります。 Vertabelo Academyには、IT以外の人々のために特別に設計されたそのようなコースが幅広くあります。

    十分な訓練を受けている場合は、学位やコースを受講せずに自分で学ぶこともできます。あなたが読むことができるデータベース設計の本にはたくさんの選択肢があります。履歴書の作成に関しては、この本やデザインに関する本を読んだことを言ってもあまり意味がないことを覚えておいてください。対照的に、コースを受講した学位または少なくとも証明書を持っていると役立ちます。

    2。知識を深める

    データベース設計に関する必要な知識を習得したら、実際の実践でそれを統合および強化します。コースまたは学位で学んだ理論は、解決するために与えられた演習と一緒であっても、データベース設計者としての仕事で直面する問題のアイデアを与えるだけです。ちなみに、この追加の知識は、データベース設計者のポジションのために就職の面接に行かなければならないときのためにあなたをより良く準備します。以下は、データベース設計者になるために習得する必要のあるスキルです。

    正規化、キー、および設計者の本能

    学位やコースを受講した場合でも、本を読んだ場合でも、間違いなく、第1、第2、第3の正規形について何かを学んだことでしょう。しかし、知識を強化するために、さまざまな実体関連図を見て(ERDとは何か、ERDの用途はすでにわかっていると思います)、それらを分析して正規化されているかどうかを確認します。それらがどの正規形であるかを判別できるはずです。

    この図では、同じエンティティが2つの異なる方法で表されています。左側のテーブルがどの正規形で、右側のスキーマがどの形式であるかが一目でわかりますか?

    また、正規化されていないスキーマが引き起こす可能性のある問題を調査することをお勧めします。正規化されていないスキーマと同じデータの正規化されたスキーマが占めるスペースを比較して、違いを確認できます。明らかに、テーブルには妥当な量のデータが入力されています。または、正規化されていないテーブルに対してクエリを実行して、表示される不整合を確認することもできます。

    練習で学ぶことがいくつかあります。まず、主キーなしでテーブルを離れてはいけません。次に、2つのテーブルが関連している場合、両方のテーブルの関連フィールドを関連付ける外部キーを定義する必要があります。これらのヒントを忘れた場合、テーブルに重複する行があったり、マスターと詳細の関係に孤立した要素があったりすると、悪夢に見舞われることになります。

    キーと言えば、おそらく自然キーと代理キーについて聞いたことがあるでしょう。多くの経験を積むまでは、作成する各テーブルにどのタイプのキーを与えるかを時間をかけて考える必要があります。数十のERDを実行すると、正しい関係と各テーブルに最適なキーを使用して、第3正規形でスキーマを簡単に作成するという設計者の本能が身に付きます。

    データウェアハウス:ディメンション、メジャー、スキーマモデル、およびその他の概念

    データベース設計の概念は通常、トランザクション処理を念頭に置いて教えられます。しかし今日、設計者は分析処理のためにデータベースを扱うことが増えています。これらのデータベースはデータウェアハウスと呼ばれ、従来のデータベースとは異なるいくつかの設計アイデアと手法があります。

    データウェアハウスは、従来のリレーショナルモデルを使用して構築されていますが、いくつかの新しい追加の概念があります。たとえば、一部のフィールドはディメンションを表し、一部はメジャーを表します。一部のテーブルはファクトを収集しますが、他のテーブルはディメンションをグループ化します。スター、スノーフレーク、ギャラクシーなど、データウェアハウススキーマの特定の設計モデルが存在するようになりました。

    最後に、データウェアハウスは非​​正規化と呼ばれる手法を導入しています。あなたが考えるかもしれないこととは異なり、非正規化は、以前の正規化の試みを元に戻すことを意味するものではありません。非正規化が何に使用されるかを理解するには、クエリとデータの視覚化を簡素化するためにテーブル設計に冗長性を導入する手法と考えてください。

    3。ツールを選択

    あなたの研究があなたに与える理論的知識とあなたの経験があなたに与える実践的な知識に加えて、あなたはデータベース設計のためのツールを習得しなければなりません。データベース設計者のツールは、データモデルの作成タスクを支援するツールです。

    真実は、優れたデザイナーは鉛筆と紙以外の道具なしで仕事をすることができるということです。しかし、効率的で、可能な限り短い時間でタスクを実行するには、効率を高めるのに役立つツールを使用する必要があります。

    データベース設計者にとって最も時間を節約するツールは、Vertabelo.comプラットフォームなどのERD設計ツールです。これらのツールは、図を描くデータベース設計者の仕事を簡素化し、SQLスクリプトの作成を自動化し、既存のデータベースから図を生成します。

    すべてのデータベース設計者にとってのもう1つの基本的なツールは、SQL言語です。スキーマを作成または変更するにはDDL(データ定義言語)が必要ですが、データベース設計者になるには、データベースから情報を取得するためのSQLクエリの記述方法も知っている必要があります。

    データ分析やデータベース管理者向けの監視およびプロファイリングツールやプログラミング言語など、データベース設計者にとって便利なツールは他にもあります。これらのツールを知っている場合は、それらをリストすることで履歴書に価値が加わります。

    4。認定を受ける

    マスタリングツールについて説明しましたが、履歴書でSQLの記述方法を知っていること、またはERD設計ツールの使用方法を知っていることをどのように証明しますか?これを行うには、特定のコースを受講し、試験を受け、認定を受けます。

    認定には基本的に2つのタイプがあります。特定のツールを習得したことを示すものと、特定のスキルを持っていることを示すものです。どちらも履歴書に表示されると付加価値があります。

    ツールを開発する企業は、多くの場合、トレーニングプログラムを提供しており、これらのトレーニングプログラムのいずれかを完了すると、ツールを習得したことを証明する証明書を取得します。これらの認定は多くの場合無料です。彼らは彼らのツールの使用に関して多くの専門家を認定することに興味を持っているので、あなたに(多くの)料金を請求せずにそれらを使用するようにあなたを訓練することが彼らの最大の利益です。

    SQLプログラミング、NoSQLデータベース管理、ETLプロセス設計などの特定のスキルの認定は、多くの場合費用がかかりますが、主に面接官があなたかどうかを評価する必要がないため、履歴書に多くの価値が追加されます。本当にあなたの仕事をする方法を知っています。すでに学位を取得している場合は、大学院課程が適しています。

    5。ずっと行く

    あなたはすでにデータベース設計者になるための資料を研究し、学びました。あなたはあなたの知識を深めました。コースを受講し、認定を取得しました。データベース設計者になるために何が欠けていますか?重要なタスクを実行する方法を理解し、それらを最初から最後まで実行できること。

    データベースのモデリング

    ERDの描画方法を知っているかもしれませんが、データベースのモデリングにはそれ以上のものが含まれます。データベース設計者になるには、要件の調査と分析から、ダイアグラムを機能するデータベースに変換するためのスクリプトの生成と実行に移行できる必要があります。

    SQLでの複雑なクエリの記述

    返されるはずのデータを返すクエリの問題だけでなく、可能な限り迅速に返すこともできます。 SQLクエリの記述方法を知るということは、データベースエンジンと同じロジックで考えて、要求された情報を収集し、最小限の労力で提供することを意味します。

    パフォーマンスの最適化

    データベースパフォーマンスの最適化には、適切な設計の作成と、パフォーマンスを低下させる操作を検出するためのデータベースアクティビティの監視が含まれます。また、インデックスの作成、スキーマの再設計、データベースエンジンの最適化における潜在的な問題のDBAへの通知など、パフォーマンスの問題をトラブルシューティングする方法を知ることも含まれます。

    データベースの保護

    通常、データベースオブジェクトにアクセス許可と特権を割り当てることはデータベース設計者の仕事ではありませんが、管理者が各データベースユーザーにアクセス許可を正しく割り当てるのを容易にする設計の責任範囲を特定できます。

    6。ソフトスキルを習得する

    この最後のステップは、データベースデザイナーのキャリアでは見過ごされがちですが、これを放置しないでください。多くの場合、以下で説明するソフトスキルは、従来の技術スキルや知識、別名ハードスキルと同じくらい重要です。

    ビジネスの洞察力

    ビジネスの洞察力を持つ設計者は、受け取ったすべての要件をより適切に解釈して適切な次元を与えることができ、それがより優れた設計決定につながります。テーブルに自然キーと代理キーのどちらを使用するかを決定するのと同じくらい簡単なことが、ビジネスにとって重要になる可能性があります。意思決定をビジネス目標に合わせることが、仕事の成功の鍵です。

    コミュニケーションと対人スキル

    良いデザインを作成することは仕事の一部にすぎません。モデルを作成して完成させたら、モデルを提示して説明し、モデルを操作する必要のある人を支援できる必要があります。また、すべてのデザインを改善できることを受け入れる必要があるため、提案や批判を受ける準備をしてください。一般的に、デザイナーとして、あなたはチームの一員です。チームの有用な一部であるということは、チームへの利益を常に考えているチームプレーヤーであることを意味します。

    フィニッシュライン:データベース設計者の仕事

    これらすべてのことを行った場合、おそらくすでにプロのようにデータベースをモデル化しており、伝えるべき多くのストーリーがあります。以下のコメントスペースは、役立つアドバイスや面白い話を共有し、データベース設計者としての私たちの生活を豊かにすることに貢献するためのものです。


    1. ORACLE動的スプールロケーションでスプールを使用する方法

    2. MySQLサーバーがなくなりました-ちょうど60秒で

    3. OracleのLOWER()関数

    4. ODP.NETのデフォルトでOracleCommand.BindByNameを強制的にtrueにする方法はありますか?