Khóa ngoại (foreign 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 52)

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

I.5. Khóa ngoại (foreign key)

Khóa ngoại còn được gọi là ràng buộc toàn vẹn về phụ thuộc tồn tại. Cũng giống như khóa nội, khóa ngoại rất phổ biến trong cơ sở dữ liệu quan hệ. Chúng ta lần lượt xem xét hai ví dụ ngay bên dưới.

Ví dụ: Xét hai quan hệ DMKH và DDH

DMKH(makh, tenkh, diachi, dthoai) DDH(sodh, ngayddh, makh, ngaygiaodk)

Trong quan hệ DDH, sự tồn tại của bộ d :

d = ( ‘037/99’, {09/06/1999} , ‘DTK’ , {12/06/1999} )

hoàn toàn phụ thuộc vào sự tồn tại của một bộ k trong quan hệ DMKH :

k=( ‘DTK’, ‘Dang Thanh Khoa’, ’82 Su Thien Chieu, ‘8650960’ )

Nếu trong quan hệ DMKH không tồn tại một bộ k nào thỏa mãn điều kiện : k.makh = ‘DTK’ thì trong quan hệ DDH không được phép tồn tại bất kỳ một bộ d nào mà : d.makh = ‘DTK’.

Thuộc tính makh của quan hệ DDH được gọi là khóa ngoại của quan hệ này và ta ký hiệu :

DDH[makh] DMKH[makh]

Bảng DMKH được gọi là bảng cha (parent table) và DDH được gọi là bảng con (child table). Ví dụ: Xét hai quan hệ DDH và CTDDH

DDH(sodh, ngayddh, makh, ngaygiaodk) CTDDH(sodh, mahh, sl, sotien)

Trong quan hệ CTDDH, sự tồn tại của bộ c :

c = ( ‘037/99’, ‘HP 5L’ , 1 , 7 000 000 )

hoàn toàn phụ thuộc vào sự tồn tại của một bộ d trong quan hệ DDH :

d = ( ‘037/99’, {09/06/1999} , ‘DTK’ , {12/06/1999} )

Nếu trong quan hệ DDH không tồn tại một bộ d nào thỏa mãn điều kiện : d.sodh = ‘037/99’ thì trong quan hệ CTDDH không được phép tồn tại bất kỳ một bộ c nào mà : c.sodh = ‘037/99’. Thuộc tính sodh của quan hệ CTDDH được gọi là khóa ngoại của quan hệ này và ta ký hiệu :

CTDDH[sodh] DDH[sodh]

Hai ví dụ trên là hai trường hợp điển hình về khóa ngoại và sau đây, chúng tôi sẽ giới thiệu hai dấu hiệu hình thức tương ứng với hai trường hợp trên.

Giả sử có hai bảng Q, R và KQ , KR lần lượt là các khóa của Q và R.

9 Khóa ngoại tham chiếu: Nếu KQ ⊆ R+ \ KR (khóa nội của bảng Q là thuộc tính không khóa của bảng R) thì ta có một phụ thuộc tồn tại của R vào Q và ký hiệu :

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

R[ KQ ] ⊆ Q[ KQ ]

9 Khóa ngoại phân cấp: Nếu ( KQ ⊆ KR ) (khóa nội của bảng Q nằm trong khóa nội của bảng R) thì ta có một phụ thuộc tồn tại của R vào Q và ký hiệu :

R[ KQ ] ⊆ Q[ KQ ]

Bảng Q là bảng cha, bảng R là bảng con và KQ là khóa ngoại của bảng R.

Trong phần kế tiếp, chúng tôi sẽ giới thiệu công việc thiết kế thành phần dữ liệu của ứng dụng tin học.

Chú ý:

Phải biết cách biểu diễn ràng buộc toàn vẹn khoá ngoại

II. Công cụ DB-Main

Sử dụng công cụ DB-Main để chuyển đổi sơ đồ quan niệm dữ liệu sang sơ đồ logic dữ liệu. Gồm có các chức năng chính sau đây:

II.1. Chức năng chuyển đổi tự động sơ đồ quan niệm dữ liệu của bộ công cụ DB Main

Các bước thực hiện:

9 Mở tập tin .LUN chứa sơ đồ quan niệm dữ liệu,

9 Nhấp chuột vào biểu tượng tương ứng với sơ đồ quan niệm dữ liệu,

9 Chọn Product, Copy product từ thực đơn hệ thống để tạo sơ đồ logic dữ liệu (cho đến thời điểm này, hai sơ đồ quan niệm dữ liệu và sơ đồ logic dữ liệu hoàn toàn giống nhau),

9 Xác định những thông tin liên quan đến sơ đồ logic dữ liệu (tên, tên tắt, phiên bản, ...) tương tự như sơ đồ quan niệm dữ liệu,

9 Nhấp đúp chuột vào hình tượng ứng với sơ đồ logic dữ liệu để mở sơ đồ này,

9 Chọn Transform, Relational model từ thực đơn hệ thống để chuyển sang mô hình quan hệ.

II.2. Phát sinh script file tạo cơ sở dữ liệu bằng DB Main

Các bước thực hiện: 9 Mở sơ đồ logic dữ liệu,

9 Chọn Quick DB, SQL từ thực đơn hệ thống và cho biết tên tập tin script.

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

Bài 7 THIẾT KẾ THAØNH PHẦN DỮ LIỆU Tóm tắt

Lý thuyết 8 tiết - Thực hành 10 tiết

Mục tiêu Các mục chính Bài tập bắt

buộc

Bài tập làm thêm

Nắm được các bước thực hiện trong giai đoạn thiết kế thành phần dữ liệu của một UDTH dựa theo mô hình thác nước

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 52)

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

(151 trang)