Các phím cơ bản giúp dễ dàng quản lý cơ sở dữ liệu

Các khóa cơ sở dữ liệu là cách dễ nhất để tạo ra một cơ sở dữ liệu quan hệ hiệu quả

Như bạn đã biết, cơ sở dữ liệu sử dụng các bảng để tổ chức thông tin. (Nếu bạn không quen với khái niệm cơ sở dữ liệu, hãy đọc Cơ sở dữ liệu là gì? ) Mỗi ​​bảng bao gồm một số hàng, mỗi hàng tương ứng với một bản ghi cơ sở dữ liệu duy nhất. Vì vậy, làm thế nào để cơ sở dữ liệu giữ tất cả các hồ sơ này thẳng? Đó là thông qua việc sử dụng các phím.

Khóa chính

Loại khóa đầu tiên chúng ta sẽ thảo luận là khóa chính . Mỗi bảng cơ sở dữ liệu phải có một hoặc nhiều cột được chỉ định làm khóa chính . Giá trị mà khóa này lưu giữ phải là duy nhất cho mỗi bản ghi trong cơ sở dữ liệu.

Ví dụ, giả sử chúng ta có một bảng gọi là Nhân viên có chứa thông tin nhân sự cho mỗi nhân viên trong công ty của chúng tôi. Chúng tôi cần phải chọn một khóa chính thích hợp để xác định duy nhất từng nhân viên. Ý nghĩ đầu tiên của bạn có thể là sử dụng tên của nhân viên. Điều này sẽ không hoạt động rất tốt vì có thể hiểu rằng bạn sẽ thuê hai nhân viên có cùng tên. Một lựa chọn tốt hơn có thể là sử dụng một số ID nhân viên duy nhất mà bạn gán cho mỗi nhân viên khi họ được thuê. Một số tổ chức chọn sử dụng Số an sinh xã hội (hoặc số nhận dạng chính phủ tương tự) cho công việc này vì mỗi nhân viên đã có một và họ được đảm bảo là duy nhất. Tuy nhiên, việc sử dụng số an sinh xã hội cho mục đích này là rất gây tranh cãi do lo ngại về quyền riêng tư. (Nếu bạn làm việc cho một tổ chức chính phủ, việc sử dụng số an sinh xã hội có thể là bất hợp pháp theo Đạo luật bảo mật năm 1974.) Vì lý do này, hầu hết các tổ chức đã chuyển sang sử dụng số nhận dạng duy nhất (ID nhân viên, ID sinh viên, v.v. .) không chia sẻ những lo ngại về quyền riêng tư này.

Khi bạn quyết định một khóa chính và thiết lập cơ sở dữ liệu, hệ thống quản lý cơ sở dữ liệu sẽ thực thi tính duy nhất của khóa.

Nếu bạn cố gắng chèn một bản ghi vào một bảng có khóa chính sao y bản ghi hiện có, quá trình chèn sẽ không thành công.

Hầu hết các cơ sở dữ liệu cũng có khả năng tạo ra các khóa chính của riêng chúng. Ví dụ, Microsoft Access có thể được cấu hình để sử dụng kiểu dữ liệu AutoNumber để gán một ID duy nhất cho mỗi bản ghi trong bảng. Trong khi hiệu quả, đây là một thực hành thiết kế xấu bởi vì nó để lại cho bạn một giá trị vô nghĩa trong mỗi bản ghi trong bảng. Tại sao không sử dụng không gian đó để lưu trữ một cái gì đó hữu ích?

Khóa ngoại

Loại khác là khóa ngoài , được sử dụng để tạo mối quan hệ giữa các bảng. Mối quan hệ tự nhiên tồn tại giữa các bảng trong hầu hết các cấu trúc cơ sở dữ liệu. Quay lại cơ sở dữ liệu của nhân viên của chúng tôi, hãy tưởng tượng rằng chúng tôi muốn thêm một bảng chứa thông tin của bộ phận vào cơ sở dữ liệu. Bảng mới này có thể được gọi là Sở và sẽ chứa một lượng lớn thông tin về toàn bộ bộ phận. Chúng tôi cũng muốn bao gồm thông tin về các nhân viên trong bộ phận, nhưng nó sẽ là dư thừa để có cùng một thông tin trong hai bảng (Nhân viên và Sở). Thay vào đó, chúng ta có thể tạo ra một mối quan hệ giữa hai bảng.

Giả sử rằng bảng Departments sử dụng cột Name Name làm khóa chính. Để tạo mối quan hệ giữa hai bảng, chúng ta thêm một cột mới vào bảng Employees gọi là Department. Sau đó chúng tôi điền vào tên của bộ phận mà mỗi nhân viên thuộc về. Chúng tôi cũng thông báo cho hệ thống quản lý cơ sở dữ liệu rằng cột của Bộ trong bảng Nhân viên là khóa ngoại có tham chiếu đến bảng Departments.

Cơ sở dữ liệu sau đó sẽ thực thi tính toàn vẹn tham chiếu bằng cách đảm bảo rằng tất cả các giá trị trong cột Departments của bảng Employees có các mục tương ứng trong bảng Departments.

Lưu ý rằng không có ràng buộc duy nhất cho khóa ngoại. Chúng tôi có thể (và rất có thể làm) có nhiều hơn một nhân viên thuộc về một bộ phận duy nhất. Tương tự, không có yêu cầu rằng một mục trong bảng Departments có bất kỳ mục nhập tương ứng nào trong bảng Employees. Có thể chúng ta sẽ có một bộ phận không có nhân viên.

Để biết thêm về chủ đề này, hãy đọc Tạo khóa ngoại .