Đây là phần thứ hai của loạt bài tập trung vào việc sử dụng SQL Server Management Studio. Bạn sẽ tìm hiểu các khái niệm và vấn đề cốt lõi của thiết kế cơ sở dữ liệu và nhận được hướng dẫn để thiết kế một cơ sở dữ liệu SQL đơn giản với SSMS (SQL Server Management Studio).
Điều kiện tiên quyết
- Phiên bản SQL Server 2016/2017/2019 Express / Developer đã được cài đặt.
- Phiên bản mới nhất của SSMS (SQL Server Management Studio) đã được cài đặt.
- Người đọc có kiến thức cơ bản về cơ sở dữ liệu SQL và các công cụ trên.
- Các khái niệm thiết kế cơ sở dữ liệu cơ bản đã rõ ràng.
- Người đọc đã quen thuộc với kịch bản thiết kế Sinh viên-Giảng viên được thảo luận trong phần 1.
Vui lòng tham khảo Tìm hiểu thiết kế cơ sở dữ liệu với SQL Server Management Studio SSMS Phần 1 để biết thêm thông tin về các yêu cầu trên.
Thiết kế Cơ sở dữ liệu Sinh viên-Giảng viên với SSMS
Chúng tôi bắt đầu tạo cơ sở dữ liệu SQL đơn giản của mình với sự trợ giúp của SSMS. Tuy nhiên, tốt hơn hết là bạn nên có một bản tóm tắt về cơ sở dữ liệu đã lên kế hoạch trước khi chúng ta bắt đầu thiết kế nó.
Bản tóm tắt cơ sở dữ liệu dành cho sinh viên-giảng viên
Chúng ta đã nói về một cơ sở dữ liệu đơn giản bao gồm ba bảng sau:
- Sinh viên . Bảng này chứa các bản ghi của sinh viên.
- Người hướng dẫn . Bảng này lưu trữ thông tin về tất cả các giảng viên.
- Người hướng dẫn sinh viên . Phần này cho chúng tôi biết Giáo viên nào được chỉ định cho học sinh nào.
Quan trọng: nhiều sinh viên có thể được phân bổ cho một giáo viên hướng dẫn và hơn một Giáo viên hướng dẫn có thể được chỉ định cho một sinh viên (đối với các môn học khác nhau).
Nói cách khác, nhiều sinh viên có thể có nhiều người hướng dẫn.
Thay thế Bảng dành cho sinh viên-giảng viên bằng Bảng dành cho khóa học
Hãy để chúng tôi tinh chỉnh một chút cơ sở dữ liệu sinh viên-giảng viên - chúng tôi đổi tên bảng Sinh viên-Giảng viên bằng bảng Khóa học.
Theo cách này, dễ hiểu hơn là mỗi Khóa học có thể có nhiều sinh viên và mỗi Người hướng dẫn có thể có nhiều sinh viên cho cùng một Khóa học.
Chúng tôi đang lập kế hoạch cho các cột sau cho các bảng này:
- Sinh viên:StudentId, Name.
- Người hướng dẫn:Người hướng dẫn, Tên.
- Khóa học:CouseId, Name, StudentId, CoachId.
Khởi động SSMS (SQL Server Management Studio)
Nhập SSMS trong hộp tìm kiếm của Windows và nhấp vào nó trong danh sách kết quả để khởi chạy phần mềm:
Lưu ý rằng bạn sẽ thấy phiên bản mà bạn đã cài đặt. Trong trường hợp của chúng tôi, đó là SSMS (SQL Server Management Studio) phiên bản 18.0.
Kết nối với SQL Server Database Engine
Trong Trình khám phá đối tượng cửa sổ, nhấp vào Kết nối , rồi chọn Công cụ cơ sở dữ liệu :
Chọn tên Máy chủ (tên của Máy chủ SQL bạn đã cài đặt trên máy của mình). Kết nối với Công cụ cơ sở dữ liệu dựa trên cài đặt mặc định của bạn. Trong trường hợp của chúng tôi, chúng tôi sử dụng chế độ Xác thực Windows:
Tạo cơ sở dữ liệu SQL StudentInstructor mới
Sau khi kết nối, nhấp chuột phải vào Cơ sở dữ liệu trong Trình khám phá đối tượng và nhấp vào Cơ sở dữ liệu mới… như hình dưới đây:
Nhập tên của cơ sở dữ liệu StudentInstructor . Nhấp vào OK, để lại cài đặt mặc định, trừ khi bạn phải thay đổi chúng:
Cơ sở dữ liệu sẽ được tạo ngay bây giờ.
Mở rộng cùng một Cơ sở dữ liệu để định vị nó:
Tạo Bảng Sinh viên
Bây giờ chúng ta cần tạo các bảng trong cơ sở dữ liệu StudentInstructor.
Mở rộng StudentInstructor nút cơ sở dữ liệu:nhấp vào nó, sau đó nhấp chuột phải vào Bảng.
Đi tới Mới -> Bảng… như sau:
Chúng ta sẽ thêm lần lượt các cột vào bảng. Chúng tôi bắt đầu với StudentId .
Nhập StudentId tên cột và chọn int Loại dữ liệu, vì nó sẽ là số (chỉ với số):
Đặt khóa chính
StudentId cột cũng sẽ là khóa chính của bảng. Nó sẽ giúp chúng tôi xác định một học sinh (hàng / bản ghi) duy nhất.
Nhấp chuột phải vào mũi tên trỏ đến StudentId và nhấp vào Đặt khóa chính :
Thêm danh tính vào Khóa chính (StudentId)
Danh tính được đặt cho một cột sẽ tự động tăng giá trị của nó khi các bản ghi mới được chèn vào. Nó giống như một số sê-ri, sẽ tăng lên theo mỗi bản ghi mới.
Nếu chúng tôi không thiết lập cột khóa chính làm cột nhận dạng, chúng tôi sẽ thêm ID cho mỗi bản ghi mới theo cách thủ công. Đây, bạn nên thiết lập nó.
Ví dụ:bản ghi đầu tiên được chèn vào bảng Student sẽ có id tự động 1 và bản ghi tiếp theo sẽ là StudentId 2, v.v. Đó là nếu chúng ta thiết lập Identity.
Cuộn xuống Thuộc tính cột cửa sổ sau StudentId cột khóa chính được chọn cho đến khi bạn tìm thấy Đặc điểm nhận dạng tài sản.
Đặt Đặc điểm nhận dạng như sau (bắt đầu bằng là Danh tính) :
Đặc điểm nhận dạng :Đúng
(là Danh tính) :Đúng
Gia tăng danh tính :1
Hạt giống danh tính :1
Thêm cột Tên vào Bảng Sinh viên
Tiếp theo, thêm một cột khác - Tên để bàn. Sử dụng varchar (45) Loại dữ liệu và bỏ chọn Cho phép giá trị rỗng như sau:
Hãy nhớ rằng VARCHAR (45) đại diện cho dữ liệu ký tự (kiểu) lên đến 45 ký tự được lưu trữ trong cột (Tên). Khi chúng tôi bỏ chọn Cho phép Nulls , chúng tôi phải cung cấp giá trị này cho cột để lưu một Sinh viên ghi lại.
Lưu bảng (Sinh viên)
Bước quan trọng nhất là lưu các thay đổi của bạn. Trong trường hợp của chúng tôi, chúng tôi lưu bảng mới được tạo bằng cách chỉ cần nhấp vào nút Lưu biểu tượng đĩa trên thanh công cụ hoặc bằng phím tắt CTRL + S .
Nhập tên của bảng - Sinh viên - khi lưu nó:
Xem Bảng Sinh viên (Trình khám phá Đối tượng)
Khi bảng được lưu thành công, hãy mở rộng Bảng nút của StudentInstructor cơ sở dữ liệu để định vị bảng mới được tạo:
Tạo Bảng Người hướng dẫn với Các cột Tên và Tên Người hướng dẫn
Tương tự, nhấp chuột phải vào Bảng nút một lần nữa. Lần này, hãy tạo một bảng mới có tên là Người hướng dẫn .
Sau đó, thêm một cột mới có tên là CoachId trong tổng số int kiểu dữ liệu và đặt nó làm khóa chính như hình dưới đây:
Bước tiếp theo là thêm Danh tính vào cột Người hướng dẫn :
Sau đó, thêm Tên cột VARCHAR (45) kiểu dữ liệu cho Người hướng dẫn Bảng và không cho phép Nulls đối với cột này, giống như đối với Tên cột Sinh viên bảng:
Lưu và xem một bảng hướng dẫn (Object Explorer)
Lưu bảng bằng cách nhấn CTRL + S hoặc nhấp vào biểu tượng Lưu. Đặt tên bảng là Người hướng dẫn .
Nhấp chuột phải vào Bảng trong StudentInstructor cơ sở dữ liệu và nhấp vào Làm mới để xem cả hai bảng ngay bây giờ:
Tạo Bảng Khóa học với Cột Khóa Chính CourseId với Danh tính
Chúng tôi phải thêm một bảng nữa vào cơ sở dữ liệu - Khóa học bảng này sẽ chứa id từ cả bảng Sinh viên và Người hướng dẫn. Sẽ có một mối quan hệ nhiều-nhiều (nhiều sinh viên có thể được phân bổ cho nhiều người hướng dẫn, theo yêu cầu của chúng tôi).
Tạo bảng mới Khóa học với CourseId khóa chính:
Thêm danh tính vào cột giống như cách chúng tôi đã làm đối với StudentId và Người hướng dẫn cột.
Thêm các cột Name, StudentId và CourseId
Tiếp theo, thêm Tên cột thuộc loại VARCHAR (45) tới Khóa học bảng theo sau bằng cách thêm StudentId và CourseId cột của int kiểu dữ liệu:
Đừng quên bỏ chọn Cho phép Nulls để đảm bảo rằng bản ghi sẽ không được lưu nếu không nhập các giá trị cột này.
Bằng cách này, chúng tôi đảm bảo rằng a Khóa học phải có một Sinh viên và một người hướng dẫn trước khi nó có thể được lưu trong cơ sở dữ liệu. Trên hết, Học sinh và Người hướng dẫn phải tồn tại trong bảng gốc của chúng.
Lưu và Kiểm tra nhanh
Lưu bảng và đặt tên là Khóa học:
Cuối cùng, Làm mới tất cả các bảng và xem bảng mới được tạo cùng với những bảng khác trong Trình khám phá đối tượng :
Thêm tất cả các bảng vào sơ đồ cơ sở dữ liệu
Bây giờ, chúng ta cần tạo mối quan hệ giữa các bảng để cả Sinh viên và Người hướng dẫn các bảng được kết nối với Khóa học bảng thông qua các khóa chính của chúng.
Ví dụ: StudentId trong Học sinh bảng được kết nối với StudentId trong Khóa học bàn. Tương tự, CoachId trong Người hướng dẫn bảng được kết nối với CoachId trong Khóa học bảng.
Chúng ta có thể đạt được điều đó với sơ đồ cơ sở dữ liệu.
Đi tới StudentInstructor cơ sở dữ liệu trong Trình khám phá đối tượng và nhấp chuột phải vào Sơ đồ cơ sở dữ liệu -> Sơ đồ cơ sở dữ liệu mới :
Nhấp vào Có :
Sử dụng CTRL để chọn tất cả các bảng hiện có và thêm chúng vào Sơ đồ cơ sở dữ liệu :
Xem sơ đồ cơ sở dữ liệu và sắp xếp lại các bảng (nhấp vào bảng và di chuyển nó) để tạo Khóa học bàn đứng ở giữa, giữa Học sinh và Người hướng dẫn bảng:
Liên kết Bảng Sinh viên với Bảng Khóa học
Chúng ta cần tạo mối quan hệ giữa Sinh viên và Khóa học bằng cách kết nối StudentId trong Sinh viên bảng với StudentId trong Khóa học bảng.
Kéo khóa StudentId và thả nó vào cột StudentId trong Bảng khóa học . Nhấp vào OK :
Nó sẽ tạo ra mối quan hệ khóa ngoài giữa các bảng Khóa học và Sinh viên - nó đảm bảo rằng chỉ những sinh viên được lưu trong bảng Sinh viên mới được lưu trong bảng Khóa học:
Liên kết Bảng giảng viên với Bảng khóa học
Tương tự, bạn phải liên kết Người hướng dẫn bảng với Khóa học bảng sao cho Mã người hướng dẫn cột khóa chính của Người hướng dẫn bảng sẽ được chuyển đến CoachId trong Khóa học bảng.
Bằng cách này, chúng tôi đảm bảo rằng Người hướng dẫn khóa chính tồn tại dưới dạng Khóa ngoại trong Khóa học bàn. Có nghĩa là chúng tôi có thể lưu trữ bất kỳ người hướng dẫn nào hàng từ Khóa học bảng chỉ khi Người hướng dẫn đó tồn tại trong Người hướng dẫn ban đầu bàn. Bằng cách này, chúng tôi duy trì tính nhất quán và tính toàn vẹn của cơ sở dữ liệu theo thông lệ tiêu chuẩn.
Lưu Sơ đồ Cơ sở dữ liệu
Cuối cùng, lưu sơ đồ cơ sở dữ liệu bằng cách nhấp vào nút Lưu biểu tượng trên thanh công cụ:
Thêm dữ liệu vào Bảng Sinh viên
Đã đến lúc thêm một số dữ liệu vào các bảng đã tạo, bắt đầu từ bảng Sinh viên. Chúng tôi sẽ thêm bản ghi của ba học sinh vào bảng.
Nhấp chuột phải vào Sinh viên và nhấp vào Chỉnh sửa 200 hàng hàng đầu (đừng lo lắng, bạn sẽ không chỉnh sửa 200 hàng):
Nhập các tên sau và nhấp vào Enter để lưu các bản ghi này:
Sau đó, đóng cửa sổ - nhấp vào dấu thập ở trên cùng bên phải hoặc nhấn CTRL + F4.
Xin lưu ý rằng StudentIds 1,2 và 3 được tự động phân bổ cho các bản ghi. Chúng tôi sẽ sử dụng chúng sau trong Khóa học bảng.
Thêm dữ liệu vào Bảng hướng dẫn
Bây giờ, chúng tôi cần thêm hai người hướng dẫn có tên Martin và Asad . Do đó, hãy thêm dữ liệu sau vào Người hướng dẫn bảng:
Tương tự, hãy ghi nhớ id 1 và 2 này. Bạn có thể đóng cửa sổ này ngay bây giờ.
Thêm dữ liệu vào Bảng Khóa học
Chúng tôi có học sinh ở một bên và giáo viên hướng dẫn ở bên kia. Nhưng chúng tôi chỉ có thể thêm những sinh viên đã có trong bảng Sinh viên và điều này cũng áp dụng cho người hướng dẫn.
Hãy để chúng tôi đăng ký cả ba sinh viên vào Cơ sở dữ liệu khóa học và chỉ định một người hướng dẫn cho Khóa học này nữa:
Xem Mục lục Khóa học
Để xem dữ liệu, hãy nhấp chuột phải vào Khóa học bảng -> Chọn 1000 hàng hàng đầu:
Xin chúc mừng! Bạn đã học thiết kế thành công một cơ sở dữ liệu đơn giản với SSMS (SQL Server Management Studio). Bên cạnh đó, chúng tôi đã đào tạo cách chèn các bản ghi mới và xem dữ liệu đã chèn.
Việc cần làm
Bây giờ bạn có thể thiết kế cơ sở dữ liệu với SSMS, hãy thử những điều sau để cải thiện kỹ năng của bạn hơn nữa:
- Thử xem nội dung của bảng dành cho Học viên và Giảng viên.
- Thử thêm một khóa học khác có tên là Business Intelligence và ghi danh tất cả ba sinh viên vào Khóa học đó, cùng với việc chỉ định người hướng dẫn Asad (Người hướng dẫn:2)
- Hãy nhớ rằng bạn có thể cải thiện thiết kế cơ sở dữ liệu thực tế từ bài viết bằng những điều sau:
- Đổi tên Khóa học bảng dưới dạng Lớp bảng;
- Xóa Tên cột từ Lớp bảng;
- Thay thế CourseId với ClassId cột;
- Tạo một Khóa học riêng biệt bảng với các cột CourseId và Name, giống như đối với bảng Sinh viên và Giảng viên;
- Thêm một CourseId mới vào bảng Lớp học và liên kết CourseId của Khóa học Bảng với CourseId trong cột Lớp giống như Sinh viên và Giáo viên hướng dẫn.