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 trung cấp) (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 (adsbygoogle = window.adsbygoogle || []).push({});

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ầnthiế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 (adsbygoogle = window.adsbygoogle || []).push({});

- 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 trung cấp) (Trang 29 - 35)