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

SQL Server Management Studio(SSMS)を使用したデータベース設計の学習–パート2

    これは、SQL ServerManagementStudioの使用法に焦点を当てたシリーズの第2部です。データベース設計のコアコンセプトと問題を学び、SSMS(SQL Server Management Studio)を使用して単純なSQLデータベースを設計するためのウォークスルーを取得します。

    前提条件

    1. SQL Server 2016/2017/2019 Express/Developerエディションがインストールされています。
    2. 最新バージョンのSSMS(SQL Server Management Studio)がインストールされています。
    3. 読者は、SQLデータベースと上記のツールに関する基本的な知識を持っています。
    4. 基本的なデータベース設計の概念は明確です。
    5. 読者は、パート1で説明した学生と教師の設計シナリオに精通しています。

    SQL Server ManagementStudioSSMSを使用したデータベース設計の学習パート1を参照してください。 上記の要件の詳細については、

    SSMSを使用した学生-教師データベースの設計

    SSMSを使用して単純なSQLデータベースの作成を開始します。ただし、設計を開始する前に、計画されたデータベースの要約を用意しておくことをお勧めします。

    学生-インストラクターデータベースの要約

    次の3つのテーブルで構成される単純なデータベースについて説明しました。

    1. 学生 。このテーブルには、学生に属するレコードが含まれています。
    2. インストラクター 。このテーブルには、すべてのインストラクターに関する情報が格納されています。
    3. 学生-インストラクター 。これは、どのインストラクターがどの生徒に割り当てられているかを示しています。

    重要: 複数の学生をインストラクターに割り当てることができ、複数のインストラクターを1人の学生に割り当てることができます(さまざまな科目について)。

    言い換えれば、多くの学生が多くのインストラクターを持つことができます。

    Student-InstructorTableをCourseTableに置き換える

    Student-Instructorデータベースを少し改良してみましょう。Student-Instructorテーブルの名前をCourseテーブルに変更します。

    このように、各コースには複数の学生がいる可能性があり、各インストラクターは同じコースに複数の学生がいる可能性があることを理解しやすくなります。

    これらのテーブルについて、次の列を計画しています。

    1. 学生:StudentId、名前。
    2. インストラクター:InstructorId、名前。
    3. コース:CouseId、Name、StudentId、InstructorId。

    SSMS(SQL Server Management Studio)を起動します

    SSMSと入力します Windows検索ボックス 結果のリストでそれをクリックして、ソフトウェアを起動します。

    インストールしたバージョンが表示されることに注意してください。この例では、SSMS(SQL Server Management Studio)バージョン18.0です。

    SQLServerデータベースエンジンに接続する

    オブジェクトエクスプローラー ウィンドウで、接続をクリックします 、次にデータベースエンジンを選択します :

    サーバー名(マシンにインストールしたSQL Serverの名前)を選択します。デフォルト設定に基づいてデータベースエンジンに接続します。この例では、Windows認証モードを使用します:

    新しいStudentInstructorSQLデータベースを作成する

    接続したら、データベースを右クリックします オブジェクトエクスプローラーのノード 、[新しいデータベース…]をクリックします 以下に示すように:

    データベースの名前を入力しますStudentInstructor OK、をクリックします 変更する必要がない限り、デフォルト設定のままにします:

    データベースを今すぐ作成する必要があります。

    同じデータベースを展開します それを見つけるノード:

    生徒用テーブルを作成する

    次に、StudentInstructorデータベースにテーブルを作成する必要があります。

    StudentInstructorを展開します データベースノード:それをクリックしてから、テーブルを右クリックします。

    新規に移動します ->テーブル… 次のように:

    テーブルに列を1つずつ追加します。 StudentIdから始めます 。

    StudentIdと入力します 列名を選択し、 intを選択します 数値になるためのデータ型(数値のみ):

    主キーの設定

    StudentId 列もテーブルの主キーになります。生徒(行/記録)を一意に識別するのに役立ちます。

    StudentIdを指す矢印を右クリックします 列をクリックし、主キーの設定をクリックします :

    主キー(StudentId)にIDを追加する

    列に設定されたIDは、新しいレコードが挿入されるときにその値を自動的にインクリメントします。これはシリアル番号のようなもので、新しいレコードごとに増加します。

    主キー列をID列として設定しない場合は、新しいレコードごとにIDを手動で追加します。これは、設定することをお勧めします。

    たとえば、Studentテーブルに挿入された最初のレコードには自動ID 1があり、次のレコードはStudentId2などになります。これはIDを設定した場合です。

    列のプロパティを下にスクロールします StudentIdのウィンドウ ID仕様が見つかるまで主キー列が選択されます プロパティ。

    ID仕様を次のように設定します( is Identityで始まる)

    ID仕様 : はい
    (アイデンティティです) : はい
    IDの増分 :1
    アイデンティティシード :1

    生徒テーブルに名前列を追加

    次に、別の列を追加します–名前 テーブルに。 varchar(45)を使用します データ型を選択し、Nullを許可するのチェックを外します 次のように:

    VARCHAR(45)であることを忘れないでください 列(名前)に格納される最大45文字の文字データ(タイプ)を表します。 Nullを許可するのチェックを外すと 、 Student を保存するには、この値を列に指定する必要があります 記録します。

    テーブルを保存する(学生)

    最も重要なステップは、変更を保存することです。この例では、保存をクリックするだけで、新しく作成したテーブルを保存します。 ツールバーまたはキーボードショートカットのディスクアイコンCTRL+ S

    テーブルの名前を入力します–学生 –保存する場合:

    生徒テーブルを表示する(オブジェクトエクスプローラー)

    テーブルが正常に保存されたら、テーブルを展開します StudentInstructorのノード 新しく作成されたテーブルを見つけるためのデータベース:

    InstrutorId列とName列を使用してインストラクターテーブルを作成する

    同様に、テーブルを右クリックします 再びノード。今回は、インストラクターという新しいテーブルを作成します 。

    次に、 InstructorIdという新しい列を追加します int データ型を入力し、以下に示すように主キーとして設定します。

    次のステップは、 IDを追加することです 列にInstructorId

    この後、名前を追加します VARCHAR(45)の列 インストラクターへのデータ型 テーブル。名前の場合と同様に、この列にNullを許可しないでください。 学生の列 テーブル:

    インストラクターテーブルの保存と表示(オブジェクトエクスプローラー)

    CTRL + S を押して、テーブルを保存します ショートカットまたは[保存]アイコンをクリックします。テーブルにインストラクターという名前を付けます 。

    テーブルを右クリックします StudentInstructorの下のノード データベースをクリックし、更新をクリックします 両方のテーブルを今すぐ表示するには:

    IDを使用してCourseId主キー列を使用してコーステーブルを作成する

    データベースにもう1つのテーブルを追加する必要があります–コース テーブル。StudentテーブルとInstructorテーブルの両方からのIDが含まれます。多対多の関係があります(私たちの要件に従って、多くの学生を多くのインストラクターに割り当てることができます)。

    新しいテーブルを作成するコース CourseId 主キー:

    StudentId の場合と同じ方法で、列にIDを追加します。 およびInstructorId 列。

    名前、StudentId、CourseId列を追加

    次に、名前を追加します タイプVARCHAR(45)の列 コースへ テーブルに続いてStudentIdを追加します およびCourseId intの列 データ型:

    Nullを許可するのチェックを外すことを忘れないでください これらの列の値を入力せずにレコードが保存されないようにするため。

    このようにして、 a コース 学生が必要です およびインストラクター データベースに保存する前に。その上、学生 およびインストラクター 元のテーブルに存在する必要があります。

    保存とクイックチェック

    テーブルを保存し、名前はコース:

    最後に、更新 オブジェクトエクスプローラーで、すべてのテーブルを表示し、新しく作成されたテーブルを他のテーブルと一緒に表示します :

    すべてのテーブルをデータベース図に追加

    次に、両方の学生が およびインストラクター テーブルはコースに接続されました 主キーを介してテーブルを作成します。

    たとえば、 StudentId 学生 テーブルはStudentIdに接続されています コースで テーブル。同様に、 InstructorId インストラクター テーブルはInstructorIdに接続されています コースで テーブル。

    データベース図でそれを達成できます。

    StudentInstructorに移動します オブジェクトエクスプローラーのデータベース データベース図を右クリックします ->新しいデータベース図

    はいをクリックします :

    CTRLを使用します キーを押して既存のすべてのテーブルを選択し、それらをデータベース図に追加します :

    データベース図を表示し、テーブルを再配置して(テーブルをクリックして移動)、コースを作成します。 学生の間の真ん中にテーブルスタンド およびインストラクター テーブル:

    学生テーブルとコーステーブルをリンクする

    学生の間に関係を築く必要があります およびコース StudentIdに接続する 学生 StudentIdを含むテーブル コースの列 テーブル。

    StudentIdキーをドラッグします StudentId列にドロップします コーステーブル OKをクリックします :

    外部キー関係を作成します コーステーブルと学生テーブルの間–学生テーブルに保存された学生のみがコーステーブルに保存されるようにします:

    インストラクターテーブルとコーステーブルをリンクする

    同様に、インストラクターをリンクする必要があります コースのあるテーブル InstructorId インストラクターの主キー列 テーブルはInstructorIdに渡されます コースで テーブル。

    このようにして、 InstructorId 主キーは外部キーとして存在します コースで テーブル。これは、インストラクターのを保存できることを意味します コースの行 そのインストラクターが元のインストラクターに存在する場合にのみテーブル テーブル。このようにして、標準的な方法に従ってデータベースの一貫性と整合性を維持します。

    データベース図を保存する

    最後に、[保存]をクリックして、データベース図を保存します。 ツールバーのアイコン:

    生徒テーブルにデータを追加する

    Studentテーブルから始めて、作成したテーブルにデータを追加します。 3人の生徒の記録をテーブルに追加します。

    学生を右クリックします 表をクリックして、上位200行の編集をクリックします。 (心配しないでください。200行を編集することはありません):

    次の名前を入力して、 Enterをクリックします これらのレコードを保存するには:

    次に、ウィンドウを閉じます–右上の十字をクリックするか、CTRL+F4を押します。

    StudentIds 1、2、および3は自動的にレコードに割り当てられることに注意してください。後でコースで使用します テーブル。

    インストラクターテーブルにデータを追加する

    次に、 Martinという名前の2人のインストラクターを追加する必要があります。 およびアサド 。したがって、次のデータをインストラクターに追加します テーブル:

    同様に、これらのID1と2を覚えておいてください。今はこのウィンドウを閉じることができます。

    コーステーブルにデータを追加

    一方には学生がいて、もう一方にはインストラクターがいます。ただし、追加できるのは、すでにStudentテーブルにいる学生のみであり、同じことがインストラクターにも当てはまります。

    3人の学生全員をデータベースに登録しましょう コース このコースにインストラクターを割り当てます 同様に:

    コーステーブルの内容を表示する

    データを表示するには、コースを右クリックします テーブル-> 上位1000行を選択:

    おめでとう!これで、SSMS(SQL Server Management Studio)を使用して単純なデータベースを設計する方法を習得できました。それに加えて、新しいレコードを挿入し、挿入されたデータを表示するようにトレーニングしました。

    やるべきこと

    SSMSを使用してデータベースを設計できるようになったので、スキルをさらに向上させるために次のことを試してください。

    1. 生徒と教師のテーブルの内容を表示してみてください。
    2. ビジネスインテリジェンスという別のコースを追加してみてください 3人の学生全員をそのコースに登録し、インストラクターAsad(InstructorId:2)を割り当てます
    3. 次のことにより、記事から実際のデータベース設計を改善できることを忘れないでください。
      • コースの名前を変更する クラスとしてのテーブル テーブル;
      • 名前の削除 クラスの列 テーブル;
      • CourseIdの置き換え ClassId 列;
      • 別のコースを作成する StudentテーブルとInstructorテーブルの場合と同様に、CourseId列とName列を持つテーブル。
      • 新しいCourseIdを追加する 列をクラステーブルにリンクし、 CourseId をリンクします コース CourseIdのテーブル クラスの列 学生やインストラクターと同じように、テーブル。


    1. 初心者向けのSQLNOT演算子

    2. 2つの接続されたテーブルを作成するためのデータベースの選択?

    3. 日付/時刻からSQLServerの文字列の例へのCONVERT()

    4. ScaleGridでのCOVID-19の準備