Bài 18. Thực hành xác định cấu trúc bảng và các trường khoá

Thực hành xác định cấu trúc bảng và các trường khoá SGK trang 86 lớp 11 Tin học ứng dụng – NXB Kết Nối Tri Thức, mời các em tham khảo cùng Bumbii.

Chủ đề 6. Thực hành tạo và khai thác cơ sở dữ liệu. Bài 18. Thực hành xác định cấu trúc bảng và các trường khoá.

Tham gia cộng đồng học tập Bumbii trên Discord

  • Chia sẻ, hỏi đáp, bàn luận các vấn đề học tập.
  • Gặp gỡ các anh chị, thầy cô có nhiều năm kinh nghiệm.
  • Cập nhật các kiến thức, tài liệu mới nhất.

Tham gia ngay!

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 khoá cho CSDL của một website âm nhạc

Hướng dẫn:

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

Mỗi bản thu âm có các thông tin: tên bản nhạc, nhạc sĩ và ca sĩ thể hiện.

Quy ước:

Nhạc sĩ sáng tác bản nhạc là nhạc sĩ hoặc nhóm nhạc sĩ sáng tác một bản nhạc.

Ca sĩ là ca sĩ hay nhóm ca sĩ biểu diễn.

– Một bản nhạc có thể được một số ca sĩ thể hiện nên sẽ có những bản thu âm khác nhau.

– Không có hai bản thu âm khác nhau cho một bản nhạc có cùng ca sĩ thể hiện.

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:

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 sẽ được lấy làm khoá chính của bảng.

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, tenBannhac, tenNhacsi, tenCasi)

Tham gia cộng đồng học tập Bumbii trên Discord

  • Chia sẻ, hỏi đáp, bàn luận các vấn đề học tập.
  • Gặp gỡ các anh chị, thầy cô có nhiều năm kinh nghiệm.
  • Cập nhật các kiến thức, tài liệu mới nhất.

Tham gia ngay!

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

Phân tích và từng bước đưa ra giải pháp hạn chế dữ liệu lặp lại, dễ kiểm soát tính nhất quán của dữ liệu.

Bước 1. Đầu tiên là hạn chế dữ liệu dư thừa do việc lặp lại tên ca sĩ, có thể khá dài, chiếm nhiều dung lượng lưu trữ.

Do sự lặp lại này, mỗi lần sửa tên một ca sĩ phải chỉnh sửa ở tất cả các dòng có tên ca sĩ này. Nếu sót hoặc sửa khác nhau thì dữ liệu sẽ mất tính nhất quán.

Giải pháp giúp cho việc kiểm soát tính nhất quán tên ca sĩ là tạo bảng:

casi(idCasi, tenCasi).

Khi đó bảng bản thu âm sẽ có dạng:

banthuam(idBanthuam, tenBannhac, tenNhacsi, tenCasi)

Bước 2. Tương tự, đối với bản nhạc, giải pháp là tạo bảng bản nhạc:

bannhac(idBannhac, tenBannhac, tenNhacsi).

Khi đó bảng bản thu âm sẽ có dạng:

banthuam(idBanthuam, idBannhac, idCasi).

Bước 3. Tương tự đối với tên nhạc sĩ trong bảng bản nhạc, giải pháp là tạo bảng nhạc sĩ:

nhacsi(idNhacsi, tenNhacsi).

Bảng bản nhạc sẽ có dạng:

bannhac(idBannhac, tenBannhac, idNhacsi).

CSDL sau khi tổ chức lại gồm 4 bảng như sau:

casi(idCasi, tenCasi)

nhacsi(idNhacsi, tenNhacsi)

bannhac(idBannhac, tenBannhac, idNhacsi)

banthuam(idBanthuam, idBannhac, idCasi)

4. CÁC LOẠI KHOÁ

– 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.

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.

– 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.

Tham gia cộng đồng học tập Bumbii trên Discord

  • Chia sẻ, hỏi đáp, bàn luận các vấn đề học tập.
  • Gặp gỡ các anh chị, thầy cô có nhiều năm kinh nghiệm.
  • Cập nhật các kiến thức, tài liệu mới nhất.

Tham gia ngay!

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

– Các trường khoá chính thường có kiểu INT và tự động tăng giá trị (AUTO_INCREMENT).

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

CÂU HỎI

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.

Đáp án:

Giảm không gian lưu trữ dữ liệu lặp lại (hạn chế dư thừa dữ liệu), thuận lợi cho việc đảm bảo tính toàn vẹn dữ liệu. Giảm thiểu công sức sửa dữ liệu khi cần.

LUYỆN TẬP

Câu 1. 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?

Đáp án:

Bổ sung trường ngày sinh vào các bảng nhacsi, casi.

Câu 2. 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?

Đáp án:

Bổ sung bảng tinh(idTinh, tenTinh) và thêm trường idTinh vào bảng nhacsi.

VẬN DỤNG

Thực hiện các bước phân tích để thiết lập mô hình dữ liệu cho một bài toán quản lí thực tế, ví dụ quản lí danh sách tên quận/huyện của các tỉnh thành phố.

Đáp án:

tinh(idTinh, tenTinh), khoá chính là idTinh.

huyen(idHuyen, tenHuyen, idTinh), khoá chính là idHuyen, khoá ngoài là idTinh.

Xem các bài giải khác tại Giải bài tập SGK lớp 11 định hướng tin học ứng dụng – NXB Kết nối tri thức với cuộc sống

Thông tin liên hệ & mạng xã hội:
Website: https://bumbii.com/
Facebook: https://www.facebook.com/bumbiiapp
Pinterest: https://www.pinterest.com/bumbiitech

0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest

0 Bình luận
Phản hồi nội tuyến
Xem tất cả bình luận
0
Cùng chia sẻ bình luận của bạn nào!x