Thiết lập mối quan hệ giữa các bảng

Một phần của tài liệu GIÁO TRÌNH Mô đun HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ACCESS NGHỀ QUẢN TRỊ MẠNG MÁY TÍNH TRÌNH ĐỘ CAO ĐẲNG (Trang 37 - 50)

6.1 Tại sao phải tạo mối quan hệ giữa các bảng

Các bảng trong một cơ sở dữ liệu theo mơ hình quan hệ thường ngay sau khi thiết kế xong, các bảng phải được tạo mối quan hệ (relationship). Khi thiết lập xong mối quan hệ, tính nhất quán của dữ liệu được đảm bảo tốt hơn, và cũng qua mối quan hệ cĩ thể trao đổi qua lại dữ liệu giữa các bảng.

6.2 Các loại quan hệ giữa các bảng

30

 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 SinhVien(MaSV, Ten, NgaySinh, GioiTinh) và bảng KetQua(MaSV, Diem)

Bảng SinhVien và KetQua cĩ mối quan hệ 1-1 dựa trên trường MaSV.

b. 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ột sinh viên thuộc một khoa nhất định. Ta cĩ 2 bảng dữ liệu như sau:

Bảng DMKHOA (MaKhoa, TenKhoa, sodthoai) Bảng SinhVien(Makhoa, Ten, Quequan, lop)

31

 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ố 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ên tham gia giảng dạy. Đây là một mối quan hệ nhiều- nhiều

Bảng DSGV(MaGV, TenGV)

Bảng DSTRUONG(MaTruong, TenTruong) Tạo ra bảng PHANCONG(MaGV, MaTruong)

 Bảng DanhSachGV và bảng PHANCONG cĩ mối quan hệ 1- ∞ dựa trên trường MaGV.

 Bảng DSTruong và bảng PHANCONG cĩ mối quan hệ 1- ∞ dựa trên trường MaTruong.

7.3 Thiết lập mối quan hệ giữa các bảng

 Tại cửa sổ Database, thực hiện lệnh Tools/ Relationships (Hoặc Click vào biểu tượng Relationships trên thanh cơng cụ)

32 Hình 2.21. Mở cửa sổ relationships

 Trong cửa sổ Show Table chọn thẻ Table và chọn các bảng cần thiết lập quan hệ, sau đĩ chọn Add và Close.

 Trong cửa sổ Relatioships sẽ xuất hiện tất cả các bảng ta vừa chọn. Ở cửa sổ này ta kéo trường liên kết của bảng quan hệ vào trường của bảng được quan hệ (table related), trên màn hình xuất hiện hộp thoại:

 Bật chức năng Enforce Referential Integrity (Nếu muốn quan hệ này bị ràng buộc tham chiếu tồn vẹn), và thiết lập thuộc tính tham chiếu tồn vẹn trong quan hệ (cĩ 2 thuộc tính: Cascade Update Related Fields và Cascade Delete Related Records)

 Chọn nút Create

33 Hình 2.23. Cửa sổ Edit Relationships

Chú ý:

Quan hệ cĩ tính tham chiếu tồn vẹn sẽ đảm bảo các vấn đề sau:

 Khi nhập dữ liệu cho trường tham gia quan hệ ở bên nhiều thì phải tồn tại bên một

 Khơng thể xố một bản ghi của bảng bên một nếu trong quan hệ đã tồn tại những bản ghi bên nhiều cĩ quan hệ với bản ghi bên một đĩ

Trường hợp vi phạm các quy tắc trên sẽ nhận được thơng báo lỗi

Thiết lập thuộc tính tham chiếu tồn vẹn trong quan hệ

 Nếu chọn thuộc tính “Cascade Update Related Field”, khi dữ liệu trên khố chính của bảng bên một thay đổi thì Access sẽ tự động cập nhật thay đổi đĩ vào các trường tương ứng (cĩ quan hệ) trên các bảng bên nhiều, hay nĩi cách khác, dữ liệu ở bảng bên nhiều cũng thay đổi theo.

 Nếu chọn thuộc tính “Cascade Delete Related Records”, khi dữ liệu trên bảng bên một bị xố thì dữ liệu trên bảng bên nhiều cũng sẽ bị xố.

a. Kiểu kết nối (Join type)

 Trong quá trình thiết lập quan hệ giữa các bảng, nếu khơng chọn nút Create, chọn nút Join Type để chọn kiểu liên kết

Mục 1: Liên kết nội (Inner Join)

Mục 2 và 3 là liên kết ngoại (Outer Join)

b. Điều chỉnh các mối quan hệ

 Mở cửa sổ quan hệ (Tools/ Relatioships)

 Click chuột phải, chọn Edit Relationships

c. Xố các mối quan hệ

 Mở cửa sổ quan hệ (Tools/ Relatioships)

 Chọn mối quan hệ giữa các bảng, nhấn Delete

34

Câu hỏi và bài tập A. Câu hỏi

1. Nêu khái niệm khĩa chính, khĩa ngoại? Khi chọn một trường làm khĩa chính cần chú ý những gì?

2. Trình bày các cách tạo bảng?

3. Giải thích các qui định về tên trường? Cho ví dụ minh họa?

4. Nêu các kiểu dữ liệu cơ bản trong Access?

5. Trình bày thuộc tính Field Size đối với kiểu Text và Number?

6. Nêu thuộc tính Decimal Places?

7. Giải thích thuộc tính Format đối với kiểu chuỗi, Number, DateTime và kiểu YesNo?

8. Input Mask là gì? Nêu các kí tự định dạng trong thuộc tính Input Mask?

9. Caption và default Value là gì?

10. Trình bày cơng dụng thuộc tính Validation rule và Validation Text? Cho ví dụ minh họa?

11. Nêu thuộc tính Allow Zero Length? Chuỗi như thế nào gọi là chuỗi cĩ độ dài bằng 0?

12. Trình bày thuộc tính Indexed?

13. Thuộc tính New Value được sử dụng khi nào? Thiết lập cho thuộc tính New Value như thế nào?

14. Cĩ bao nhiêu cách để lấy dữ liệu cĩ sẵn bằng Lookup? Trình bày thao tác cụ thể của từng cách?

15. Trình bày cách cài đặt khĩa chính?

16. Nêu cụ thể các cách lưu bảng?

17. Trình bày thao tác nhập dữ liệu?

18. Để thay đổi Font chữ mặc định khi nhập dữ liệu cho bảng ta phải thực hiện thao tác gì?

19. Trình bày thao tác sắp xếp dữ liệu và lọc dữ liệu? Cho ví dụ minh họa?

20. Tại sao phải tạo mối quan hệ giữa các bảng?

35

22. Trình bày cách thiết lập mối quan hệ, điều chỉnh và xĩa mối quan hệ giữa các bảng?

B. Bài tập

Bài 1. Các tên trường nào sau đây là hợp lệ ?

a. Mã sinh viên, Ten !SV b. MaSV, TenSV

c. Ma[sv], Tên sinh viên d. Ma.SV, Tên :SV

Bài 2. Hãy qui định thuộc tính Input Mask cho các trường sau :

a. Trường MaSV : Tự động viết hoa, cĩ 2 kí tự đầu là chữ, 3 kí tự sau là số b. Trường DienThoai : Dữ liệu nhập vào là 10 kí tự số, 3 kí tự đầu đặt trong ngoặc ( ).

Bài 3. Mở CSDL QuanLySinhVien.mdb đã tạo ở chương 1

Tạo cấu trúc các Table như sau:

a. DMKhoa (Danh mục khoa)

Field Name Data Type Field Size Format Required

MaKH Text 2 >[Blue] Yes

TenKhoa Text 30 Yes

MaKH được lấy từ danh sách định sẵn gồm {NN,TH,HH,DT,CK,DP}

b. SinhVien (Sinh Viên)

Field Name Data Type Field Size Format Required

MaSV Text 3 >[Blue] Yes

HoSV Text 30 Yes

TenSV Text 15 Yes

GioiTinh Yes/No Yes

NgaySinh Date/Time dd/mm/yy Yes

NoiSinh Text 10

DiaChi Text 20

36

MaKH Text 2 Yes

HocBong Number Long Integer MaSV cĩ 3 kí tự, kí tự đầu là chữ, 2 kí tự sau là số. GioiTinh thì hiển thị là Nam, Nữ

MaKH được lấy từ giá trị của trường MaKH trong bảng DMKhoa HocBong phải luơn luơn lớn hơn hoặc bằng 0.

c. MonHoc (Mơn học)

Field Name Data Type Field Size Format Required

MaMH Text 2 > Yes

TenMH Text 20 Yes

SoTiet Number byte Yes

Số tiết phải luơn luơn lớn hơn 0, mặc nhiên là 45. d. KetQua (Kết quả)

Field Name Data Type Field Size Format Required

MaSV Text 2 > Yes

MaMH Text 2 > Yes

Diem Number Single

MaSV được lấy từ giá trị của trường MaSV trong bảng SinhVien. MaMH được lấy từ giá trị của trường MaMH trong bảng MonHoc. Diem thì từ 0 đến 10, mặc định là 0.

Lưu ý: Các Khĩa chính trong bảng là in đậm và gạch dưới

 Hãy thiết lập mối quan hệ (Relationships) cho các bảng

 Nhập liệu cho các bảng như sau:

Table:DMKhoa

MaKH TenKhoa

NN Ngoại ngữ

TH Tin Học

37 DT Điện tử CK Cơ khí DP Đơng Phương Table: SinhVien Ma SV Ho SV Ten SV Gioi Tinh Ngay Sinh Noi Sinh DiaChi Quan Ma KH Hoc Bong

A01 Nguyễn thị Hải Nữ 23/02/97 Sài Gịn 12 B Võ văn Tần Q3 TH 10000 A02 Trần văn Chính Nam 24/12/97 Sài Gịn 34 Nguyễn Bỉnh Khiêm Q1 TH 120000

A03 Lê Bạch Yến Nữ 21/02/96 Hà Nội 765 PasTeur Q3 TH 140000

A04 Trần anh Tuấn Nam 20/11/97 Long An 12 Điện biên Phủ BT NN 80000 A05 Trần thanh Triều Nam 13/02/97 Hà Nội 3 Nguyện thiện thuật Q3 NN 80000

A06 Nguyễn văn Chính Nam 31/12/95 Sài Gịn 12 lê Lợi Q5 NN

B01 Trần Thanh Mai Nữ 12/08/97 Bến tre 32 Lê lai Q1 DP

B02 Trần thu Thủy Nữ 01/01/97 Sài gịn 45 Nguyễn Thái sơn BC HH B03 Lê thị Thanh Nữ 01/01/95 Sài gịn 345 Nguyễn Kiệm Q1 HH

B04 Trần trọng Kim Nam 20/12/77 Sài gịn 123 Lê văn sỹ Q1 DT 120000 C01 Tào hồng Thiên Nam 01/07/78 Sài gịn 56 Hịang Diệu TB TH

C02 Hịang minh Châu Nam 03/05/76 Sài gịn 102 Kỳ Đồng TB DT C03 Phan quỳnh Hương Nữ 05/05/79 Sài gịn 234 Phạm văn hai GV CK

Table : MONHOC

MaMH TenMH SoTiet

01 Cơ sở Dữ liệu 45

02 Trí tuệ Nhân tạo 45

03 Truyền Tin 45 04 Đồ Họa 60 05 Văn Phạm 60 06 Đàm thọai 60 07 Vật Lý Nguyên Tử 45 08 Vật Lý Địa Cầu 45

38 09 Triết học Đơng Phương 75

10 Triết Học Tây Phương 75

Table: KETQUA

MaSV MaMH Diem

A01 01 2 A01 03 7 A02 01 5 A02 03 10 A02 05 9 A02 06 6.5 A03 01 5 A03 03 3 A03 05 10 A04 05 4 A05 06 8 A06 01 7 B01 03 3 B01 02 6 B02 04 10 B02 01 7 B03 03 6 B04 05 3 B04 06 4

 Hãy sắp xếp theo trường MaKh tăng dần trong bảng DMKhoa

 Hãy sắp xếp theo trường NoiSinh, Quan giảm dần trong bảng SinhVien

 Hãy lọc các sinh viên cĩ tên là Chính

 Hãy lọc các sinh viên cĩ nơi sinh là Sài gịn hoặc Hà nội

39

 Hãy lọc các sinh viên cĩ ngày sinh từ 1/1/1995 đến 1/1/1997

Bài 4. Hãy tạo CSDL cĩ tên là QuanLyBanHang.mdb, gồm các bảng sau :

Hãy thiết lập các tên trường, thuộc tính tương ứng với các dữ liệu cho ở các bảng sau :

Bảng: KhachHang

MaKH HoTenKH Diachi DienThoai

B145 Cửa Hàng số 2 Q4 20 Trần Phú Q2 (08)6547893 D100 Cơng Ty Cổ Phần Đầu tư 22 Ngơ Quyền Q5 (08)6123564 L010 Cửa Hàng Bách Hĩa Q1 155 Trần Hưng Đạo (08)5456123 S001 Cơng Ty XNK Hoa Hồng 123 Trần Phú (08)3564237 S002 Cơng Ty VHP Tân Bình 10 Lý thường Kiệt (08)5545458

Bảng:NhanVien

MaNV HoNV TenNV GioiTinh NgaySinh DiaChi DienThoai 1 Lê văn Tám Nam 12/10/1965 45 Trần Phú 86452345 2 Trần thị Lan Nữ 20/10/1970 15 Nguyễn Trãi Q5

3 Tạ thành Tâm Nam 10/12/1965 20 Võ thị Sáu 85656666 4 Ngơ Thanh Sơn Nam 20/12/1950 22 Trần Phú

5 Lê thị Thủy Nữ 10/10/1970 25 Ngơ Quyền 97654123

Bảng:HoaDon Bảng: ChiTietHD

MaHD MaKH MaNV NgayLapHD NgayNhanHang 1 S001 1 28/06/1999 10/07/1999 2 L010 2 29/06/1999 12/07/1999 3 S002 1 04/07/1999 12/07/1999 4 B145 4 05/07/1999 10/07/1999

MaHD MaSP SoLuong

1 B01 48 1 R01 10 2 B01 25 2 B02 90 2 B03 25 2 R02 20 3 B01 10 4 B01 15 4 R01 20

40 MaHD MaKH MaNV NgayLapHD NgayNhanHang

5 D100 3 06/07/1999 20/07/1999 6 S001 2 07/07/1999 21/07/1999

Bảng:SanPham

MaSP TenSP DonViTinh DonGia

B01 Bia 33 Lon 4000

B02 Bia Tiger Lon 5000

B03 Bia Heneken Lon 6000

R01 Rượu Bình tây Chai 20000 R02 Rượu Napoleon Chai 15000

 Sau đĩ, thiết lập mối quan hệ giữa các bảng và nhập dữ liệu cho các bảng như trên.

Bài 5. Hãy tạo CSDL cĩ tên là QuanLySach.mdb, gồm các bảng sau :

DocGia(MaDocGia, HoDocGia,TenDocGia, NamSinh) Sach(MaSach, TenSach, LanXB, NamXB)

PhieuMuon(MaPM, MaDocGia, NgayMuon) ChiTietPM( MaPM, MaSach, GhiChu)

 Tự thiết lập các thuộc tính cho các trường sao cho phù hợp.

 Sau đĩ, thiết lập mối quan hệ giữa các bảng và nhập dữ liệu cho các bảng như trên (Mỗi bảng ít nhất 5 mẫu tin).

 Hãy sắp xếp theo trường MaDocGia tăng dần trong bảng DocGia

 Hãy sắp xếp theo trường MaDocGia, NgayMuon tăng dần trong bảng PhieuMuon

 Hãy lọc các độc giả cĩ tên là Lan.

 Hãy lọc các sách cĩ năm xuất bản là 1999 hoặc 2000.

 Hãy lọc các phiếu mượn cĩ ghi chú là quá hạn.

Yêu cầu kiểm tra đánh giá kết quả học tập

Phát biểu được khái niệm bảng dữ liệu; Tạo lập được cấu trúc bảng;

41 Thiết lập được các trường, thuộc tính;

42

BÀI 3:

TRUY VẤN DỮ LIỆU (QUERY)

Giới thiệu

Bài học này giới thiệu về các loại truy vấn, cách xác định cũng như khái niệm và các thao tác tạo các loại truy vấn dữ liệu trong MS Access, nhằm phục vụ những nhu cầu của người sử dụng một cách hiệu quả.

Mục tiêu

Phát biểu được khái niệm truy vấn dữ liệu;

Tạo và áp dụng được các truy vấn dựa trên các bảng dữ liệu; Áp dụng được các biểu thức khi xây dựng truy vấn dữ liệu. Thực hiện các thao tác an tồn với máy tính

Một phần của tài liệu GIÁO TRÌNH Mô đun HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ACCESS NGHỀ QUẢN TRỊ MẠNG MÁY TÍNH TRÌNH ĐỘ CAO ĐẲNG (Trang 37 - 50)

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

(158 trang)