So sánh tương đối nhiều đối tượng trong sql năm 2024

Trong cơ sở dữ liệu quan hệ, khóa chính và khóa ngoại là hai ràng buộc rất quan trọng. Đây là đối tượng cơ không thể thiếu trong việc tạo mối quan hệ giữa các bảng với nhau. Trong bài viết này chúng ta hãy cùng tìm hiểu và so sánh khóa chính và khóa ngoại trong SQL.

Xem thêm tại video sau:

So sánh khóa chính và khóa ngoại

Khóa chính là gì?

Khóa chính (primary key) là một ràng buộc được sử dụng để định danh một bản ghi là duy nhất trong bảng dữ liệu. Hiểu đơn giản giống như mỗi người chúng ra có một định danh là căn cước công dân chẳng hạn, từ giá trị căn cước công dân này ta có thể xác định được tất cả thông tin bản thân vì giá trị này là duy nhất trong hệ thống quản lý của nhà nước.

Ngoài ra, khóa chính còn được dùng làm tham chiếu tới một bảng khác mà mình đề cấp đến trong phần sau.

Khóa ngoại là gì?

Khóa ngoại (foreign key) là một ràng buộc được sử dụng để tham chiếu đến giá trị khóa chính của một bảng khác. Như ở phần trên mình đã nói, việc thiết lập khóa chính ngoại việc làm định danh duy nhất cho bản ghi trong bảng nó còn có thể được dùng làm giá trị để từ một bảng khác tham chiếu tới – đó là khóa ngoại.

Tại sao lại phải có khóa ngoại

Ví dụ: Giả sử ta có bảng nhanvien với các bản ghi có giá trị theo các trường:

So sánh tương đối nhiều đối tượng trong sql năm 2024

Ta có thể thấy phần vitri và luong của bản ghi 1,3,4 bị lặp lại, ta hoàn toàn có thể tách bảng kia thành 2 bảng dữ liệu và thiết lập một khóa ngoại liên kết chúng lại như sau:

Thông quan đây ta có thể thấy dữ liệu không còn bị trung lặp lại (điều rất quan trọng với những database có dữ liệu lớn) và ta có thể quản lý dữ liệu dễ hơn.

So sánh khóa chính và khóa ngoại trong SQL

Từ định nghĩa ta có thể thấy khóa chính xác định duy nhất một bản ghi trong bảng, còn khóa ngoại thì là một trường trong bảng và tham chiếu đến khóa chính của một bảng khác.

Giống nhau: Chúng ta có thể tạo nhiều khóa chính hoặc nhiều khóa ngoại trên một bảng.

Ngoài ra khóa chính và khóa ngoại còn có một số điểm khác nhau

  • Giá trị NULL: Khóa chính không nhận giá trị NULL, Khóa ngoại thì có thể – Điều này tương ứng với việc nó không trỏ đến giá trị nào của bảng quan hệ.
  • Chỉ mục (index): Khi khởi tạo khóa chính đồng nghĩa với việc ta đã đánh chỉ mục trên trường, nhóm trường. Còn với khóa ngoại điều này không được xảy ra, nếu muốn đánh thêm chỉ mục trên trường là khóa ngoại thì ta cần thực hiện thêm các câu kệnh thiết lập khóa ngoại.

Kết luận

Khóa chính và khóa ngoại là hai loại khóa được sử dụng trong RDBMS. Sự khác biệt giữa khóa chính và khóa ngoại đã được chúng mình chia sẻ thông qua bài viết trên. Để tìm hiểu thêm các chủ đề hay về SQL, bạn có thể tìm kiếm trong seri về SQL của chúng tôi.

Nếu bạn là newbie có thể tham khảo bài viết này để tìm hiểu lộ trình học DA trong 6 tháng của SmartData

Nếu bạn thấy bài viết hay và hữu ích, bạn có thể tham gia các kênh sau của SmartData để nhận được nhiều hơn nữa:

  • Fanpage
  • Youtube
  • Trang chủ
  • Cộng đồng Data Analyst

Kiên Smart Data

Hiện mình đang là một kỹ sư công nghệ thông tin. Phương châm sống rất đơn giản "Luôn mong muốn chia sẻ và lan tỏa những giá trị tốt đẹp nhất đến những người xung quanh."

Microsoft Visual Studio SQL Data Tools cung cấp chức năng cho phép bạn so sánh cấu trúc của các bảng, thủ tục, view và các đối tượng khác trong CSDL. Có nhiều khi bạn muốn so sánh sự khác nhau giữa 2 CSDL. Ví dụ so sánh 2 CSDL ở môi trường Development và Production với nhau.

Hãy cùng xem qua một kịch bản sử dụng Schema Comparison. Ta có 2 CSDL gọi là Database1 và Database2 mỗi thằng này có bảng gọi là Customer với cùng số trường:

So sánh tương đối nhiều đối tượng trong sql năm 2024

Đầu tiên, mở Visual Studio và tạo một project trống. Trong mục ‘Tool’ chọn ‘SQL Server’ và ‘New Schema Comparison’

So sánh tương đối nhiều đối tượng trong sql năm 2024

Một cửa sổ mới với 2 dropdown menu chọn “Select Source” và “Select Target” mở ra. Và chúng ta có thể kết nối đến cả 2 database, 1 cái là nguồn 1 cái là đích để so sánh.

So sánh tương đối nhiều đối tượng trong sql năm 2024

Chỉ ra các thuộc tính kết nối của database nguồn (Database1) để kết nối tới nó.

So sánh tương đối nhiều đối tượng trong sql năm 2024

Và cùng các bước như vậy chúng ta kết nối đến CSDL đích (Database2). Giờ bạn có cả 2 cài đặt kết nối đến cả 2 CSDL là nguồn và đích, bạn có thể bắt đầu co sánh bằng cách click vào nút “Compare”. Nếu schema của nó giống hệt nhau nó sẽ hiển thị trắng tinh:

So sánh tương đối nhiều đối tượng trong sql năm 2024

Giờ để demo sự so sánh khác nhau, hãy tạo một só othay đổi trên Database1 bằng cách thêm một cột mới là ‘Email’ vào bảng Customer:

So sánh tương đối nhiều đối tượng trong sql năm 2024

Như chúng ta đã làm thì công cụ sẽ thấy được sự khác nhau giữa 2 CSDL và liệt kê chúng ở cửa sổ phía dưới:

So sánh tương đối nhiều đối tượng trong sql năm 2024

Hiện tại chúng ta có 2 lựa chọn để đồng bộ 2 schema: Có thể generate ra 1 script để đồng bộ sự thay đổi lên CSDL đích hoặc để Visual Studio làm tự động việc cập nhật bằng cách click nút “Update”

So sánh tương đối nhiều đối tượng trong sql năm 2024

Nó sẽ tự generate ra script:

So sánh tương đối nhiều đối tượng trong sql năm 2024

Một Script được tạo ra, nó luôn là một cách tốt để xem toàn bộ các lệnh thay đổi trên DB đích trước khi thực thi chúng trên DB đích.

So sánh tương đối nhiều đối tượng trong sql năm 2024

Và cuối cùng là click vào “Update” để cập nhật thay đổi đến CSDL đích (Database2)

So sánh tương đối nhiều đối tượng trong sql năm 2024

Schema Compare rất hữu ích trong các trường hợp bạn muốn so sánh nhiều CSDL trong một ứng dụng phức tạp hoặc các máy chủ phân tán ở các nơi khác nhau hoặc là cần đồng bộ những sự khác biệt về cấu trúc khi deploy phiên bản mới.