1 of 40

Sách kết nối tri thức – Định hướng tin học ứng dụng.

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

2 of 40

Ở bài 13, các em đã phần nào thấy được lợi ích khi tổ chức CSDL của website âm nhạc với nhiều bảng mà không phải là một bảng với đầy đủ tất cả các thông tin về mỗi bản thu âm (tên bản nhạc, tên nhạc sĩ, tên ca sĩ).

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

3 of 40

Tuy nhiên, làm thế nào để từ yêu cầu ban đầu (quản lí danh sách các bản thu âm với đầy đủ thông tin tên bản nhạc, tên nhạc sĩ, tên ca sĩ) người ta lại đi đến được CSDL với các bảng như đã trình bày ở Bài 13?

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

4 of 40

Gợi ý trả lời:

Ta phải xác định cấu trúc bảng và các  khóa chính, khóa ngoài, tạo liên kết giữa các bảng.

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

5 of 40

Nhiệm vụ. Xác định các bảng dữ liệu, cấu trúc của chúng và các trường khóa cho cơ sở dữ liệu của một website âm nhạc

Hướng dẫn:

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

6 of 40

1. XEM XÉT BÀI TOÁN

Cùng xem xét lại bài toán quản lí các bản thu âm nhạc. Ta sẽ quy ước nói đến nhạc sĩ sáng tác bản nhạc là nói đến tên một nhạc sĩ hay tên một nhóm nhạc sĩ sáng tác bản nhạc đó. Tương tự như vậy, ta cũng quy ước khi nói đến tên ca sĩ là nói đến một ca sĩ hay một nhóm ca sĩ biểu diễn tác phẩm. Dưới đây là một ví dụ về một bản ghi chép lại thông tin các bản thu âm.

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

7 of 40

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

8 of 40

2. TẠO LẬP BẢNG

Tổng kết tất cả các thông tin cần quản lí, viết ra thành dãy: Số hiệu bản thu âm (STT), tên bản nhạc, tên nhạc sĩ sáng tác, tên ca sĩ thể hiện. Từ đó em có thể hình dung về một bảng dữ liệu tên là banthuam, với các trường idbanthuam (để lưu số hiệu bản thu âm), tenBannhac (để lưu tên bản nhạc), tenNhacsi (để lưu tên nhạc sĩ), tenCasi (để lưu tên ca sĩ) và viết mô tả ngắn gọn ở dạng:

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

9 of 40

banthuam(idBanthuam, tenBannhac, tenNhacsi, tenCasi)

Trong bảng này, trường idbanthuam xác định duy nhất một bản thu âm nên được lấy làm khoá chính của bảng. Nhóm cả ba trường tenBannhac, tenNhacsi, tenCasi cũng xác định duy nhất một bản thu âm, nên nhóm các trường này cũng có thể dùng làm khoá chính của bảng, nhưng rõ ràng dùng idBanthuam là ngắn gọn và thuận lợi hơn. Có thể viết lại mô tả bảng trên với tên trường khoá chính có gạch chân như sau:

banthuam(idBanthuam, tenBanthuam, tenNhacsi, tenCasi)

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

10 of 40

3. TỔ CHỨC LẠI BẢNG DỮ LIỆU

Phân tích và sắp xếp lại để hạn chế lượng dữ liệu lặp lại.

Một ca sĩ có thể là người thể hiện nhiều bản nhạc khác nhau nên trường tenCasi có giá trị lặp lại, tên ca sĩ lại dài, làm lớn dung lượng lưu trữ và khó khăn khi cần sửa chữa. Ví dụ, trong Bảng 18.1 ca sĩ Trần Khánh thể hiện hai bản nhạc (ở dòng số 3 và 9), khi cần sửa chữa tên của ca sĩ, sẽ phải tìm sửa ở tất cả những dòng có tên ca sĩ này.

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

11 of 40

Để khắc phục hạn chế này, cách làm tốt hơn là lập bảng casi(idCasi, tenCasi) với trường khoá là idCasi và thay tenCasi trong bảng banthuam bởi idCasi. Như vậy, idCasi trong bảng banthuam sẽ là khoá ngoài tham chiếu đến khoá chính idCasi trong bảng casi.

banthuam(idBanthuam, tenBannhac, tenNhacsi, idCasi)

casi(idCasi, tenCasi)

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

12 of 40

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

13 of 40

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

14 of 40

Tương tự, một bản nhạc có thể có nhiều bản thu âm khác nhau do những ca sĩ khác nhau thể hiện. Ví dụ, trong Bảng 18.1, bản nhạc Trường ca Sông Lô xuất hiện ở dòng số 2 và số 9. Do đó, cách tốt hơn là tạo bảng bannhac(idBannhac, tenBannhac, tenNhacsi) với trường khoá là idbannhac và thay cặp (tenBannhac, tenNhacsi) trong bảng banthuam bởi idBannhac.

banthuam(idBanthuam, idBannhac, idCasi)

casi(idCasi, tenCasi)

bannhac(idbannhac, tenBannhac, tenNhacsi)

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

15 of 40

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

16 of 40

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

17 of 40

Tên nhạc sĩ trong bảng bannhac bị lặp lại do một nhạc sĩ có thể sáng tác nhiều bản nhạc; Ví dụ, trong bảng 18.1, nhạc sĩ Văn Cao xuất hiện trong hai dòng số 2 và số 6; vì vậy lại lập bảng nhacsi(idNhacsi, tenNhacsi) và thay thế trường tenNhacsi trong bảng bannhac bởi idNhacsi.

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

18 of 40

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

19 of 40

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

20 of 40

Các bảng dữ liệu thu được bây giờ sẽ là:

casi(idCasi, tenCasi)

nhacsi(idNhacsi, tenNhacsi)

bannhac(idBannhac, tenBannhac, idNhacsi)

banthuam(idbanthuam, idBannhac, idCasi)

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

21 of 40

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

22 of 40

4. CÁC LOẠI KHÓA

- Mỗi bảng đã có một khoá chính (tên trường được gạch chân).

- Khoá ngoài của các bảng:

bannhac: idNhacsi tham chiếu đến idNhacsi trong bảng nhacsi.

banthuam: idBannhac tham chiếu đến idBannhac trong bảng bannhac.

idCasi tham chiếu đến idCasi trong bảng casi.

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

23 of 40

Có thể tóm tắt lại về cấu trúc các bảng và quan hệ của các bảng theo tham chiếu từ khoá ngoài đến khoá chính ở dạng sơ đồ như Hình 18.2.

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

24 of 40

- Khoá cấm trùng lặp giá trị (Unique): Cặp (tenBannhac, idNhacsi) trong bảng bannhac không được trùng lặp giá trị. Cặp (idbannhac, idCasi) cũng không được trùng lặp giá trị. Để ghi nhớ điều này người ta cũng nói rằng các trường này phải đặt khoá cấm trùng lặp.

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

25 of 40

5. VỀ CÁC KIỂU DỮ LIỆU CỦA CÁC TRƯỜNG

Để đơn giản, các trường khóa chính thường có kiểu dữ INT và tự động tăng giá trị (AUTO_INCREMENT).

Các trường tên tenNhacsi, tenCasi, tenBannhac có thể chọn là xâu kí tự có độ dài tối đa 255 kí tự (VARCHAR (255)).

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

26 of 40

Câu hỏi (trang 90): Em hãy chỉ ra những lợi ích có được khi tổ chức CSDL âm nhạc với các bảng như đã trình bày trong bài học.

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

27 of 40

Gợi ý trả lời:

Những lợi ích có được khi tổ chức CSDL âm nhạc với các bảng như đã trình bày trong bài học đó là:

- Quản lý thông tin về các ca sĩ (casi) và nhạc sĩ (nhacsi).

- Quản lý thông tin về các bản nhạc (bannhac) và bản thu âm (banthuam).

- Quản lý quan hệ giữa ca sĩ, bản nhạc và nhạc sĩ.

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

28 of 40

- Tra cứu và tìm kiếm dữ liệu dễ dàng: CSDL âm nhạc với các bảng được thiết kế hợp lý giúp tổ chức có thể dễ dàng tra cứu và tìm kiếm dữ liệu, từ đó đáp ứng nhanh chóng nhu cầu tìm kiếm thông tin của người dùng hoặc nhân viên trong tổ chức.

- Tối ưu hóa hoạt động tổ chức: Quản lý CSDL âm nhạc giúp tổ chức có thể tối ưu hóa hoạt động, từ việc quản lý dữ liệu, phân tích và bảo mật.

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

29 of 40

Luyện tập 1 (trang 90): Có thể có những nhạc sĩ, ca sĩ trùng tên nên người ta muốn quản lí thêm thông tin ngày sinh của các nhạc sĩ, ca sĩ. Để làm được việc đó, CSDL cần thay đổi như thế nào?

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

30 of 40

Gợi ý trả lời:

- Để thêm thông tin ngày sinh của các nhạc sĩ, ca sĩ vào CSDL, ta cần thêm một trường mới vào bảng "nhacsi" và bảng "casi" để lưu trữ thông tin ngày sinh. Có thể đặt tên cho trường này là "ngaysinh" để thể hiện thông tin ngày sinh của các nghệ sĩ.

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

31 of 40

- Sau khi thực hiện thay đổi này, ta có thể lưu trữ thông tin ngày sinh của các nhạc sĩ, ca sĩ vào CSDL và sử dụng nó cho việc quản lí và truy vấn dữ liệu liên quan đến thông tin ngày sinh của các nghệ sĩ một cách dễ dàng.

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

32 of 40

Luyện tập 2 (trang 90): Nếu muốn quản lí thêm thông tin nơi sinh của nhạc sĩ, ca sĩ (tên tỉnh/thành phố), CSDL cần thay đổi như thế nào?

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

33 of 40

Gợi ý trả lời:

Để thêm thông tin nơi sinh của nhạc sĩ, ca sĩ (tên tỉnh/thành phố), ta cần thay đổi cấu trúc CSDL bằng cách thêm một bảng mới để lưu trữ thông tin này.

Bảng casi:

idcasi (khóa chính)

tencasi

ngaysinh

id_noisinh (khóa ngoại tham chiếu tới bảng noisinh)

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

34 of 40

Bảng banthuam:

idbanthuam (khóa chính)

idbannhac

idcasi

Bảng bannhac:

idbannhac (khóa chính)

tenbannhac

idnhacsi

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

35 of 40

Bảng nhacsi:

idnhacsi (khóa chính)

tennhacsi

ngaysinh

id_noisinh (khóa ngoại tham chiếu tới bảng noisinh)

Bảng noisinh:

id_noisinh (khóa chính)

tennoisinh

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

36 of 40

Trong đó, bảng "noisinh" là bảng mới được thêm vào để lưu trữ thông tin nơi sinh của nhạc sĩ, ca sĩ, bao gồm cột “id_noisinh" là khóa chính và cột "tennoisinh" là nơi lưu trữ tên tỉnh/thành phố.

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

37 of 40

Sau khi thực hiện thay đổi này, ta có thể lưu trữ thông tin nơi sinh của các nhạc sĩ, ca sĩ vào bảng "noisinh" và sử dụng cột “id_noisinh" trong các bảng "nhacsi" và "casi" để tham chiếu tới thông tin nơi sinh trong bảng "noisinh". Điều này cho phép chúng ta quản lí và truy vấn dữ liệu liên quan đến thông tin nơi sinh của các nghệ sĩ một cách dễ dàng.

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

38 of 40

Nhiệm vụ. Xác định các bảng dữ liệu, cấu trúc của chúng và các trường khóa cho cơ sở dữ liệu của một website âm nhạc

1. XEM XÉT BÀI TOÁN

2. TẠO LẬP BẢNG

3. TỔ CHỨC LẠI BẢNG DỮ LIỆU

4. CÁC LOẠI KHÓA

5. VỀ CÁC KIỂU DỮ LIỆU CỦA CÁC TRƯỜNG

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

39 of 40

1. Làm phần VẬN DỤNG (SGK trang 90)

2. Xem trước bài 19 (SGK trang 91)

Thực hành tạo lập cơ sở dữ liệu và các bảng

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang

40 of 40

Các em làm 10 câu hỏi trắc nghiệm Online để củng cố bài.

1. Đăng nhập vào trang thaycai.net

2. Nháy chọn Tin học 11

3. Nháy chuột vào ☛ Trắc nghiệm (từ bài 1 đến bài 31, mỗi bài 10 câu).

4. Nháy chuột vào Trắc nghiệm: Bài 18-Thực hành xác định cấu trúc bảng và các trường khoá

Website: thaycai.net Youtube: Thầy Cải-Quốc Thái-An Giang