Khóa chỉ định (candidate key) – Khóa chính (primary key)

Một phần của tài liệu Tài liệu hướng dẫn giải dạy chương trình kỹ thuật viên ngành lập trình học phần 4 phân tích hệ thống (Trang 50)

II. Mô tả các xử lý

I.4. Khóa chỉ định (candidate key) – Khóa chính (primary key)

Một tập hợp K gồm các thuộc tính của quan hệ Q được gọi là khóa chỉ định, hay khóa nội, của Q nếu K có thể được dùng để phân biệt hai bộ bất kỳ trong Q và không có tập hợp nào ít thuộc tính hơn K mà cũng có tính chất này. Nói cách khác, nếu K là khóa chỉ định của Q và q1, q2 là hai bộ bất kỳ của Q thì : q1.K q2.K

Mọi quan hệ Q đều có ít nhất một và có thể có nhiều khóa chỉ định.

Học phần 4 – Phân tích Hệ thống Trang 50/150

Ví dụ: Quan hệ DDH có một khóa chỉ định là

K = { sodh }

Trong những phần sau, nếu không có chú thích gì thêm thì các khóa chỉ định sẽ được gọi tắt là khóa.

Các thuộc tính có tham gia vào một khóa của quan hệ được gọi là thuộc tính khóa và khi mô tả trong một quan hệ sẽ được gạch dưới và thường đặt ở đầu danh sách. Thuộc tính không tham gia vào bất kỳ khóa nào gọi là thuộc tính không khóa.

Ví dụ: Mô tả quan hệ DDH

DDH(sodh, ngayddh, makh, ngaygiaodk)

Trong thực tế, đối với những bảng biểu diễn cho các đối tượng tồn tại khách quan (ví dụ : sinh viên, giảng viên, nhân viên, hàng hóa, ...), người thiết kế cơ sở dữ liệu thường gán thêm cho chúng một thuộc tính giả gọi là mã số để làm khóa (ví dụ : mã số sinh viên, mã số giảng viên, mã số nhân viên, mã số khách hàng, mã số hàng hóa, ...).

Trong trường hợp quan hệ Q có nhiều khóa, khi cài đặt trên một hệ quản trị cơ sở dữ liệu nào đó, người thiết kế có thể chọn một trong số các khóa để tạo chỉ mục chi phối việc truy cập đến các bộ. Khóa này được gọi là khóa chính (primary key) và các khóa còn lại gọi là các khóa tương đương. Khóa chính chỉ thật sự có ý nghĩa trong quá trình khai thác cơ sở dữ liệu và xét trên phương diện lý thuyết, khóa chính hoàn toàn không có vai trò gì khác so với các khóa còn lại. Một số hệ quản trị cơ sở dữ liệu như : Oracle, Microsoft SQL Server, Microsoft Access,.. có hỗ trợ cơ chế kiểm tra tự động tính duy nhất trên khóa chính. Ví dụ, nếu người sử dụng thêm một bộ mới q1 có giá trị khóa chính trùng với giá trị khóa chính của một bộ q2 đã có trong bảng thì hệ thống sẽ báo lỗi và yêu cầu nhập lại một giá trị khác.

Chú ý:

Miền giá trị của các thuộc tính khóa không chứa giá trị null (hay nói cách khác, các thuộc tính khóa không lấy giá trị null)

Người sử dụng không được phép sửa đổi giá trị của thuộc tính khóa (đặc tính locked). Nếu muốn sửa đổi giá trị khóa của một bộ q, người sử dụng phải hủy bỏ bộ này và sau đó thêm vào một bộ q’ với giá trị khóa đã được sửa đổi và lấy lại giá trị những giá trị các thuộc tính không khóa của q cho q’

Kinh nghiệm giảng dạy:

Cho ví dụ giải thích về khoá chỉ định và khoá chính

0

Học phần 4 – Phân tích Hệ thống Trang 51/150

Một phần của tài liệu Tài liệu hướng dẫn giải dạy chương trình kỹ thuật viên ngành lập trình học phần 4 phân tích hệ thống (Trang 50)

Tải bản đầy đủ (PDF)

(151 trang)