Ràng buộc trong CSDL Quản lý sinh viên với SQL Server - Phần 2

Khóa Thực chiến SQL cùng Kteam - Dự án quản lý sinh viên

5.0 (7 đánh giá)
Tạo bởi K9 Cập nhật lần cuối 6 năm trước 41.823 lượt xem 7 bình luận
Tác giả/Dịch giả: K9
Học nhanh

Danh sách bài học

Ràng buộc trong CSDL Quản lý sinh viên với SQL Server - Phần 2

Yêu cầu cần có

Để bắt đầu việc tham gia khóa học, hãy đảm bảo bạn đã có các yêu cầu sau:

  1.  Có tài khoản trên website Howkteam.com để xem tài liệu & truy cập livestream hướng dẫn.
  2.  Có CÀI ĐẶT PHẦN MỀM SQL SERVER.
  3.  Đã tham gia group facebook CỘNG ĐỒNG HỎI ĐÁP KTEAM để có thể trao đổi các vấn đề liên quan trọng bài học với cộng đồng.

Lịch trình khóa học

Thời gian học: 20h ngày 17/07/2019

Mỗi buổi học sẽ diễn ra từ 1 - 2h nhằm đảm bảo lượng kiến thức bạn tiếp thu được tốt nhất. Có thể nắm bắt, hiểu sâu và tự giải quyết các vấn đề tương tự. 

Trong đó mỗi buổi học tương ứng 100%: 

  • 30% thời gian đầu tiên: Giải quyết bài tập của bài trước, giải quyết câu hỏi của các bạn về bài tập đó. (nếu có)
  • 10% thời gian tiếp theo: Tổng quan kiến thức đã học ở bài trước, giới thiệu kiến thức sẽ áp dụng tại bài này.
  • 30% thời gian tiếp theo: Đi vào nội dung bài mới.
  • 20% thời gian tiếp theo: Trao đổi thảo luận các câu hỏi của các bạn về bài học mới.
  • 10% thời gian cuối cùng: Bài tập + định hướng cách giải. 

Hình thức học 

  • Các bạn truy cập Khóa học thực chiến SQL  trên web  Howkteam.com  để xem nội dung buổi học 15 phút trước livestream. (yêu cầu có tài khoản user)
  • Trong thời gian công chiếu, bạn có thể đặt câu hỏi LIÊN QUAN ĐẾN KIẾN THỨC VÀ NỘI DUNG KHÓA HỌC trong phần bình luận của bài viết hoặc phần livestream. (Vào các thời gian thảo luận &  giải đáp người hướng dẫn sẽ giải đáp và cùng thảo luận với các bạn về các câu hỏi đó)
  • Ngoài ra, bạn có thể tham gia bình luận để giải đáp cho các thành viên đó, nếu phần kiến thức được hỏi nằm trong hiểu biết của bạn. Kteam luôn khuyến khích sự hỗ trợ từ cộng đồng đến với mọi người.
  • Khóa học thực chiến SQL sẽ chia thành nhiều phần, với mỗi phần tương ứng một bài tập lớn diễn ra trong vòng 5 - 7 ngày liên tiếp nhau vào các khung giờ cố định.

Khảo sát khóa học

Như đã thông báo trong khảo sát trước, nhằm đánh giá & xác định chất lượng kiến thức truyền tải, Kteam sẽ tiến hành khảo sát với các thành viên trong khóa học này. Hy vọng nhận được sự hỗ trợ từ các bạn tham gia khóa học. 

  • Cụ thể, sau mỗi buổi học bạn sẽ nhận được file khảo sát để xem xét mức độ hiểu bài & giải đáp những thắc mắc mà bạn còn chưa kịp hỏi hoặc chưa được trả lời trong quá trình công chiếu vì thời gian giới hạn. 
  • Các thành viên hoàn thành file khảo sát sau buổi học, sẽ nhận mail thông báo về livestream tiếp theo qua email cũng như nhận được sự giám sát tiến độ và đảm bảo kết quả sau khóa học. 

Kết

Trong bài này,chúng ta đã tìm hiểu về Ràng buộc trong dự án quản lý sinh viên. Buổi học đã được diễn ra vào lúc 20h ngày 17/07/2019 tại phần trình chiếu của bài  Ràng buộc trong dự án quản lý sinh viên - phần 2 trên Howkteam.com

Lưu ý: Sau bài học, Kteam sẽ gửi mail Khảo sát & giải đáp câu hỏi đến mail đã đăng ký của các bạn. Hoàn thành mail trước buổi học tiếp theo để xác nhận đã tham gia buổi học và đăng ký nhận đường dẫn kèm học liệu cho buổi học tiếp theo.

Ở bài sau, chúng ta sẽ  TỔNG KẾT KHÓA & GIẢI ĐÁP THẮC MẮC

Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của bạn để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó” 


Tải xuống

Tài liệu

Nhằm phục vụ mục đích học tập Offline của cộng đồng, Kteam hỗ trợ tính năng lưu trữ nội dung bài học Ràng buộc trong CSDL Quản lý sinh viên với SQL Server - Phần 2 dưới dạng file PDF trong link bên dưới.

Ngoài ra, bạn cũng có thể tìm thấy các tài liệu được đóng góp từ cộng đồng ở mục TÀI LIỆU trên thư viện Howkteam.com

Đừng quên likeshare để ủng hộ Kteam và tác giả nhé!


Thảo luận

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.

Tác giả/Dịch giả

K9

Nhà sáng lập Howkteam.com, KQuiz.vn & tác giả các khóa học C#, Auto, Unity3D, Python....

Với mong muốn mang đến kiến thức chất lượng, miễn phí cho mọi người, với tâm huyết phá bỏ rào cản kiến thức từ việc giáo dục thu phí. Tôi đã cùng đội ngũ Kteam đã lập nên trang website này để thế giới phẳng hơn.
Hãy cùng chúng tôi lan tỏa kiến thức đến cộng đồng! 

Khóa học

Khóa Thực chiến SQL cùng Kteam - Dự án quản lý sinh viên

sql, kteam, howkteam,cơ sở dữ liệu, bài tập cơ sở dữ liệu

Trong các khóa học SỬ DỤNG SQL SERVER PHÂN TÍCH THIẾT KẾ PHẦN MỀM, Kteam đã đề cập đến các kiến thức cần thiết để bạn có thể bắt đầu xây dựng một cơ sở dữ liệu với SQL server và truy vấn qua CSDL đó.

Ở combo Thực chiến SQL, chúng ta sẽ cùng nhau phân tích các CSDL đó từ đặc tả và ứng dụng các kiến thức đã học ở hai khóa trên vào việc giải quyết các yêu cầu thực tế của một CSDL. Trong bộ khóa học này các bạn sẽ đi qua các kiến thức từ cơ bản đến nâng cao qua các dự án khác nhau.

Nào! Chúng ta sẽ cùng nhau tìm hiểu dự án đầu tiên THỰC CHIẾN SQL CÙNG DỰ ÁN QUẢN LÝ SINH VIÊN

Đánh giá

5.0
7 đánh giá
Đánh giá
5
7
4
3
2
1
Vo Tan Duc đã đánh giá 3 năm trước

Hy vọng anh sẽ có nhiều khóa thực chiến hơn nữa! Hay quá anh ơi. Em quen giọng anh rồi. Mong anh ra nhiều series thực chiến về phần mềm, sql, tool,...

Kỳ Quan đã đánh giá 3 năm trước

minhthuybxlc đã đánh giá 4 năm trước

Khóa học hay, rất đáng đế học. Em cảm ơn anh và team nhiều ạ.

DongTV đã đánh giá 4 năm trước

Dofy_7 đã đánh giá 6 năm trước

Rõ ràng, dễ hiểu.

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
Vo Tan Duc đã bình luận 2 năm trước

Mong anh ra nhiều series thực chiến hơ nữa để em học hỏi được nhiều kinh nghiệm thực tế từ anh

DongTV đã bình luận 4 năm trước

/*    Buổi 2 - Câu 6.Sinh viên chỉ có thể dự thi các môn học có trong chương trình học
                    và thuộc về khoa mà sinh viên đó đang theo học */
    
    -- Tạo TRIGGER kiểm tra kết quả thi mà môn học có thuộc về khoa mà sinh viên đó đang theo học k? 
    ALTER TRIGGER dbo.TVDT_Check_Mon_Hoc_SV
    ON dbo.Ket_Qua
    FOR INSERT, UPDATE
    AS
    BEGIN                
        IF NOT EXISTS (SELECT * FROM Ket_Qua AS KQ
                    WHERE KQ.MaMH IN
                    (SELECT * FROM [dbo].[TVDF_DS_Mon_Phai_Hoc](KQ.MaSV))
                    )
            BEGIN
                RAISERROR(N'Sinh viên không đủ điều kiện dự thi kỳ thi này !', 16, 1)
                ROLLBACK TRANSACTION
            END
    END
    GO

DongTV đã bình luận 4 năm trước

/*    Buổi 2 - Câu 7.Hãy bổ sung vào quan hệ Lớp thuộc tính Si_So và kiểm tra sĩ số
                    của một lớp phải bẳng số lượng sinh viên đang theo học
                    => Thêm thuộc tính Si_So vào table Lop
                    => Viết TRIGGER kiểm tra sự thay đổi Si_So khi Sinh viên thay đổi */
   -- Add Si_So vào table Lớp
    ALTER TABLE dbo.Lop
    ADD Si_So INT;
    GO
   -- TRIGGER kiểm tra sự thay đổi sỉ số khi INSERT/UPDATE số lượng Sinh viên thay đổi
    ALTER TRIGGER TVDT_Update_Si_So
    ON dbo.Sinh_Vien 
    FOR INSERT, UPDATE
    AS
    BEGIN
        DECLARE @Si_So INT
        DECLARE @Ma_Lop VARCHAR(10)

        SELECT @Ma_Lop = I.Ma_Lop FROM Inserted AS I

        SELECT @Si_So = COUNT(*) FROM dbo.Sinh_Vien AS SV
        WHERE @Ma_Lop = SV.Ma_Lop 

        UPDATE dbo.Lop
        SET Si_So = @Si_So
        WHERE Lop.Ma_Lop = @Ma_Lop
    END 
    GO
    -- TRIGGER kiểm tra sự thay đổi sỉ số khi DELETED số lượng Sinh viên thay đổi
    ALTER TRIGGER TVDT_Delete_Si_So
    ON dbo.Sinh_Vien 
    FOR  DELETE
    AS
    BEGIN
        DECLARE @Si_So INT
        DECLARE @Ma_Lop VARCHAR(10)

        SELECT @Ma_Lop = D.Ma_Lop FROM Deleted AS D

        SELECT @Si_So = COUNT(*) FROM dbo.Sinh_Vien AS SV
        WHERE @Ma_Lop = SV.Ma_Lop 

        UPDATE dbo.Lop
        SET Si_So = @Si_So
        WHERE Lop.Ma_Lop = @Ma_Lop
    END 
    GO 

DongTV đã bình luận 4 năm trước

/*    Buổi 2 - Câu 5.Năm bắt đầu khóa học của một lớp không thể nhỏ hơn năm thành lập của khoa quản lý lớp đó */
    CREATE TRIGGER dbo.TVDT_Nam_Khoa_Hoc
        ON dbo.Khoa_Hoc
        FOR INSERT, UPDATE
        AS
        BEGIN
            IF EXISTS (SELECT KH.Nam_Bat_Dau FROM Inserted AS KH                        
                        LEFT JOIN dbo.Lop AS L ON L.Ma_Khoa_Hoc = KH.Ma_Khoa_Hoc
                        LEFT JOIN dbo.Khoa AS K ON K.Ma_Khoa = L.Ma_Khoa
                        WHERE KH.Nam_Bat_Dau < K.Nam_Thanh_Lap)
            BEGIN
                RAISERROR(N'Năm bắt đầu khóa học của một lớp không thể nhỏ hơn năm thành lập của Khoa !', 16, 1)
                ROLLBACK TRANSACTION
            END
        END
    GO


    CREATE TRIGGER dbo.TVDT_Nam_Khoa
        ON dbo.Khoa
        FOR INSERT, UPDATE
        AS
        BEGIN
            IF EXISTS (SELECT KH.Nam_Bat_Dau FROM Inserted AS K                        
                        LEFT JOIN dbo.Lop AS L ON L.Ma_Khoa = K.Ma_Khoa
                        LEFT JOIN dbo.Khoa_Hoc AS KH ON KH.Ma_Khoa_Hoc = L.Ma_Khoa_Hoc
                        WHERE KH.Nam_Bat_Dau < K.Nam_Thanh_Lap)
            BEGIN
                RAISERROR(N'Năm bắt đầu khóa học của một lớp không thể nhỏ hơn năm thành lập của Khoa !', 16, 1)
                ROLLBACK TRANSACTION
            END
        END
    GO

DongTV đã bình luận 4 năm trước

/*    Buổi 2 - Câu 4.Sinh viên chỉ được thi tối đa 2 lần cho một môn học */
    
    -- Cách 1: Dùng CHECK
    ALTER TABLE dbo.Ket_Qua
    ADD CONSTRAINT TVDT_Max_Lan_Thi
    CHECK (Lan_Thi <= 2)
    GO 

     --Cách 2: Dùng Trigger
    CREATE TRIGGER TVDT_Max_Lan_Thi
    ON dbo.Ket_Qua
    FOR INSERT, UPDATE 
    AS 
    BEGIN
        IF EXISTS (SELECT * FROM Inserted WHERE Inserted.Lan_Thi > 2)
            BEGIN
                RAISERROR(N'Sinh viên chỉ được thi tối đa 2 lần cho một môn học !', 16, 1)
                ROLLBACK TRANSACTION
            END
    END 
    GO

Không có video.