Tạo Liên Kết Bảng

Một phần của tài liệu Giáo trình Hệ quản trị cơ sở dữ liệu (Nghề: Kỹ thuật sửa chữa, lắp ráp máy tính - Cao đẳng): Phần 1 - Trường CĐ nghề Việt Nam - Hàn Quốc thành phố Hà Nội (Trang 29 - 35)

2.4.1 Các loại quan hệ trong cơ sở dữ liệu ACCESS

Để hạn chế việc lƣu trữ dữ liệu trùng lắp dẫn đến kích thƣớc lƣu trữ lớn và khó khăn trong việc bảo trì, ta thƣờng chọn lọc và lƣu trữ dữ liệu trên nhiều Table khác nhau. Tuy nhiên, khi đó giữa các Table này thƣờng có sự liên hệ với nhau bằng cách trong Table này xuất hiện Field khóa chính của một Table khác. Field này đƣợc gọi là khóa ngoại.

Mục tiêu của việc khai báo quan hệ là phục vụ cho việc liên kết thông tin. Đồng thời để tạo sự phụ thuộc của dữ liệu khi nhập.

2.4.1.1 Quan hệ một -một (1-1)

Trong quan hệ một -một, mỗi bản ghi trong bảng A có tƣơng ứng với một bản ghi trong bảng B và ngƣợc lại mỗi bản ghi trong bảng B có tƣơng ứng duy nhất một bản ghi trong bảng A.

Ví dụ:Cho 2 bảng dữ liệu

Bảng Danhsach(Masv, ten, Ngaysinh, gioitinh) và bảng Diemthi(Masv, diem)

Hình 2.14. Bảng Danhsach và diemthi có mối quan hệ 1-1 dựa trên trường Masv.

2.4.1.2 Quan hệ một nhiều ( 1-∞)

Là mối quan hệ phổ biến nhất trong CSDL, trong quan hệ một nhiều : Một bản ghi trong bảng A sẽ có thể có nhiều bản ghi tƣơng ứng trong bảng B, nhƣng ngƣợc lại một bản ghi trong bảng B có duy nhất một bản ghi tƣơng ứng trong bảng A.

Ví dụ: Trong một khoa của một trƣờng học nào đó có nhiều sinh viên, những mộtsinh viên thuộc một khoa nhất định. Ta có 2 bảng dữ liệu nhƣ sau:

Bảng Danhsachkhoa(Makhoa, tenkhoa, sodthoai) Bảng danhsachsv(Makhoa, Ten, Quequan, lop)

Hình 2.15. Bảng Danhsachkhoa và bảng danhsachsv có mối quan hệ 1-∞ dựa trên trường Makhoa.

2.4.1.3 Quan hệ nhiều nhiều( ∞-∞ )

Trong quan hệ nhiều nhiều, mỗi bản ghi trong bảng A có thể có không hoặc nhiều bản ghi trong bảng B và ngƣợc lại mỗi bản ghi trong bảng B có thể có không hoặc nhiều bản ghi trong bảng A.

Khi gặp mối quan hệ nhiều- nhiều để không gây nên sự trùng lặp và dƣ thừa dữ liệu thì ngƣời ta tách quan hệ nhiều-nhiều thành 2 quan hệ một-nhiều bằng cách tạo ra một bảng phụ chứa khóa chính của 2 bảng đó.

Ví dụ: Một giáo viên có thể dạy cho nhiều trƣờng và một trƣờng có nhiều giáo viêntham gia giảng dạy. Đây là một mối quan hệ nhiều-nhiều

Bảng Danhsachgv(Magv,ten)

Bảng Danhsachtruong(Matruong, Tentruong) Tạo ra bảng Phancongday(Magv, matruong)

Trong đó Bảng Danhsachgv và bảng Phancongday có mối quan hệ 1-∞ dựa trên trƣờng Magv.

Bảng Danhsachtruong và bảng Phancongday có mối quan hệ 1-∞ dựa trên trƣờng Matruong.

2.4.2 Các bƣớc tạo liên kết bảng và hiệu chỉnh dây quan hệ

2.4.2.1 Các bước tạo liên kết bảng

Bƣớc 1: Tạo liên kết (RelationShip) giữa các Table:

Microsoft Access là một hệ quản trị cở sở dữ liệu nên có thể lấy dữ kiện từ nhiều table khác nhau nếu các Table này có mối quan hệ với nhau. Muốn vậy, phải khai báo mối quan hệ giữa các Table liên quan.

a. Định nghĩa quan hệ giữa các Table:

- Quy định mối quan hệ: Đóng tất cả các Table đang mở, không thể tạo hay hiệu chỉnh các quan hệ giữa các Table đang mởl. Muốn quy định mối quan hệ, phải mở cửa sổ Relationships

- Hiển thị cửa sổ Relationships:

Bƣớc 1.1: Vào Database Tools \ Relationships

Hình 2.16. Tạo quan hệ cho bảng

Bƣớc 1.2: Đƣa các bảng (Tables) tham gia thiết lập quan hệ thông qua hộp thoại Show Tables (nếu chƣa thấy hộp thoại này dùng thực đơn Relationship | Show table):

Từ cửa sổ Show Table chọn các bảng - Tables (hoặc truy vấn – Queries) cần thiết lập quan hệ bằng cách: Chọn tên bảng (tên truy vấn) ->Add.

- Quy định về mối quan hệ giữa các table trong cửa sổ relationships Drag Field từ Table chính đến Field của Table quan hệ.

Hình 2.18. Cách kết nối quan hệ giữa các bảng

Hộp thoại Edit Relationships hiển thị, hộp thoại có hai phần:

+ Phần trên: ghi tên cac 1 Field đƣợc khai báo tham gia mối quan hệ. + Phần dƣới: ghi các sự lựa chọn về mối quan hệ

Hình 2.19. Các thuộc tính trong quan hệ

Trong trƣờng hợp muốn thiết lập các thuộc tính đảm bảo toàn vẹn dữ liệu (Enforce Referential Integrity) cho quan hệ hãy thực hiện chọn (checked) 3 mục chọn sau:

Để đồng ý thiết lập các thuộc tính đảm bảo toàn vẹn dữ liệu;

Đảm bảo toàn vẹn dữ liệu khi cập nhật dữ liệu giữa 2 bảng liên quan. Khi đó, nếu giá trị trƣờng khoá liên kết ở bảng 1 bị thay đổi, toàn bộ giá trị trƣờng khoá liên kết ở bảng nhiều cũng bị thay đổi theo.

Đảm bảo toàn vẹn dữ liệu khi xoá dữ liệu giữa 2 bảng liên quan. Khi đó, nếu một bản ghi ở bảng có quan hệ 1 bị xoá, toàn bộ các bản ghi có quan hệ với bản ghi hiện tại sẽ đƣợc tự động xoá ở bảng có quan hệ nhiều (nếu xoá 1 CHA, toàn bộcác con của cha đó sẽ tự động bị xoá khỏi bảng CON);

Hộp Relationship Type: cho biết kiểu quan hệ giữa 2 bảng đang thiết lập:

- One – To – One Kiểu 1-1 - One – To – Many Kiểu 1- ∞

- Indeterminate Không xác định đƣợc kiểu liên kết

Tuỳ thuộc vào kiểu khoá của các trƣờng tham gia liên kết mà Access tự xác định ra đƣợc kiểu liên kết giữa 2 bảng. Dƣới đây là một số kiểu liên kết đƣợc Access tự động xác định:

Có hai vấn đề xảy ra khi kết nối cơ sở dữ liệu: Vấn đề 1: Khi bảng chƣa có dữ liệu

Chúng ta sẽ kết nối cơ sỡ dữ liệu bình thƣờng nhƣ trên.

Nhƣng khi nhập liệu chúng ta phải chú ý nhập dữ liệu cho những bảng có quan hệ một (One) trƣớc, sau đó ta mới nhập những bảng có quan hệ nhiều (Many)

Nếu không thi hành các bƣớc nhƣ trên ta sẽ bị thông báo lỗi

Lúc này các bạn tắt bảng mình đang nhập liệu mở bảng có quan hệ một (One) ra nhập liệu)

Vấn đề 2:Khi bảng đã có dữ liệu khi kết nối sẽ rất dễ xảy ra lỗi

Hình 2.21. Thông báo lỗi khi không đảm bảo các thuộc tính trong kết nối quan hệ

Lúc này để sửa lỗi là vấn đề rất phức tạp.

Chúng ta sẽ xóa tất cả dữ liệu trong bảng thông báo có lỗi. Tiếp tục kết nối relationships

Sau đó nhập liệu lại

Chú ý: Để tránh trƣờng hợp nhập liệu quá lâu, chúng ta nên copy tất cả các dữ liệu trên. Sau khi kết nối, sẽ paste dữ liệu vào lại. khi làm xong Access sẽ tự động tao ra một bảng mới. Đó là những record lỗi của bảng trên

b. Vấn đề toàn vẹn tham chiếu:

Toàn vẹn tham chiếu là hệ thống các nguyên tắcđƣợc sử dụng để đảm bảo mối quan hệ giữa các mẫu tin trong các Table quan hệ. khi toàn vẹn tham chiếu đƣợc thiết lập thì không thể ngẫu nhiên xóa hay thay đỗi các dữ liệu của các quan hệ

Điều kiện để toàn vẹn tham chiếu:

- Field tƣơng ứng từ table chính phải là khóa chính

- Field quan hệ có cùng kiểu dữ liệu với Field khóa chính

- Cả hai Table quan hệ phải cùng thuộc một hệ quản trị Cơ Sở Dữ Liệu Bƣớc 2: Nhập dữ liệu (mẫu tin ) cho Table

Do thiết lập Relationships ở trên, ta nên nhập dữ liệu sau khi đã tạo Relationships. Và phải tuân theo các nguyên tắc sau:

- Nhƣng khi nhập liệu các bạn phải chú ý nhập dữ lệiu cho những bảng có quan hệ một (One) trƣớc, sau đó ta mới nhập những bảng có quan hệ nhiều (Many)

- Khi nhập một trị vào Field tƣơng ứng của Table quan hệ thì trị này phải đã có trong Field mục khóa chínhcủa Table chính

- Không thể xóa mẫu tin trong Table chính nếu trong Table quan hệ tồn tại mẫu tin có quan hệ với nhiều mẫu tin muốn xóa

2.4.2.2 Hiệu chỉnh dây quan hệ

- Xóa dây quan hệ: nhấp phải vào dây quan hệ → Chọn Delete

- Hiệu chỉnh thông số cho dây quan hệ: nhấp phải vào dây quan hệ→Chọn Edit Relationship

- Xóa bảng ra khỏi của sổ Relationship: nhấp chọn bảng → Bấm Delete

Một phần của tài liệu Giáo trình Hệ quản trị cơ sở dữ liệu (Nghề: Kỹ thuật sửa chữa, lắp ráp máy tính - Cao đẳng): Phần 1 - Trường CĐ nghề Việt Nam - Hàn Quốc thành phố Hà Nội (Trang 29 - 35)

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

(87 trang)