Download as pdf or txt
Download as pdf or txt
You are on page 1of 43

CHỦ ĐỀ 5.

HƯỚNG NGHIỆP VỚI TIN HỌC


BÀI 16. CÔNG VIỆC QUẢN TRỊ CƠ SỞ DỮ LIỆU
I. LÝ THUYẾT
Câu 1: Trong các tổ chức, những CSDL phục vụ công tác quản lí có thể rất lớn, mỗi CSDL có thể gồm rất
nhiều bảng với những quan hệ phức tạp. Không phải ai cũng biết rõ CSDL của đơn vị mình, ngay cả với những
nhân viên tin học nếu không tìm hiểu chi tiết. Vậy làm thể nào để có thể vận hành duy trì cho các CSDL hoạt
động thông suốt, luôn sẵn sàng đáp ứng được nhu cầu khai thác? Có cần những cán bộ chuyên trách quản trị
CSDL không?
Trả lời:
Để vận hành và duy trì một CSDL hoạt động thông suốt, luôn sẵn sàng đáp ứng được nhu cầu khai thác, cần
có những cán bộ chuyên trách quản trị CSDL. Những cán bộ này sẽ có trách nhiệm giám sát và quản lý các
bảng dữ liệu, quan hệ giữa các bảng, thiết lập các quy tắc để đảm bảo tính toàn vẹn và nhất quán của dữ liệu.
Các cán bộ quản trị CSDL cũng phải thường xuyên thực hiện các tác vụ như sao lưu dữ liệu, bảo mật thông
tin, kiểm tra và khắc phục các sự cố liên quan đến CSDL. Họ cũng cần cập nhật và nâng cấp CSDL theo yêu
cầu của đơn vị, để đảm bảo sự phát triển liên tục và tăng hiệu quả sử dụng của CSDL.
Ngoài ra, việc tạo ra các hướng dẫn sử dụng CSDL cho nhân viên cũng là một phần quan trọng trong công tác
quản trị CSDL. Điều này giúp đảm bảo các nhân viên có thể khai thác CSDL một cách hiệu quả và đồng nhất.

I. NHÀ QUẢN TRỊ CƠ SỞ DỮ LIỆU


Quản trị CSDL là hoạt động nhằm đảm bảo cho việc sử dụng CSDL thông suốt và hiệu quả. Quản trị CSDL
có các nhiệm vụ:
+ Cài đặt và nâng cao các hệ QTCSDL;
+ Tạo lập, điều chỉnh CSDL;
+ Đảm bảo tài nguyên cho các hoạt động CSDL;
+ Đảm bảo an toàn và bảo mật cho dữ liệu.

Câu 1: Nếu hoạt động cơ bản là khai thác các CSDL phục vụ ứng dụng tin học thì theo em, hoạt động quản trị
CSDL tương ứng gồm những công việc gì?
Trả lời:
Cài đặt và cập nhật các hệ QTCSDL
Tạo lập và điều chỉnh CSDL
Đảm bảo tài nguyên cho các hoạt động CSDL
Đảm bảo an toàn, bảo mật.

Câu 2: Kể ra các nội dung quản trị CSDL.

Trang 1
Trả lời:
Cài đặt và nâng cấp các hệ QTCSDL
Tạo lặp điều chỉnh CSDL
Đảm bảo tài nguyên cho các hoạt động CSDL
Đảm bảo an toàn và bảo mật cho dữ liệu.

Câu 3: Trong ba nhóm đối tượng những người làm phần mềm, sử dụng phần mềm quản lí và quản trị CSDL,
ai là người chịu trách nhiệm chính mỗi công việc sau đây: Cập nhật dữ liệu, Thiết kế dữ liệu, Sao lưu dữ liệu?
Trả lời:
Trong ba nhóm đối tượng đó, người chịu trách nhiệm chính mới công việc cập nhật dữ liệu, thiết kế dữ liệu và
sao lưu dữ liệu là nhóm quản trị CSDL.
Nhóm quản trị CSDL có trách nhiệm quản lý và bảo vệ dữ liệu, thiết kế cơ sở dữ liệu để lưu trữ dữ liệu một
cách hợp lý và dễ quản lý, cập nhật dữ liệu khi có sự thay đổi và đảm bảo tính toàn vẹn của dữ liệu thông qua
sao lưu và phục hồi dữ liệu.

II. PHẨM CHẤT VÀ NĂNG LỰC CỦA NHÀ QUẢN TRỊ CSDL
- Nhà quản trị CSDL cần có kiến thức cơ bản về CSDL, biết thiết kế CSDL và sử dụng thành thạo hệ QTCSDL.
- Tính cách tỉ mỉ, cẩn thận, kiên nhẫn, kĩ năng phân tích rất cần thiết với nhà quản trị CSDL khi phải xử lí tình
huống.
- Khả năng học tập suốt đời, giúp nhà quản trị CSDL nâng cao bản lĩnh nghề nghiệp.
- Để trở thành nhà quản trị CSDL tốt, cần được học kiến thức một cách bài bản ở các trường đại học chuyên
ngành, rèn luyện kĩ năng trong các khóa học nghề nghiệp về quản trị CSDL, về các hệ QTCSDL cụ thể và rèn
luyện trong công việc thực tế.

Câu 1: Căn cứ vào các công việc cần thực hiện để quản trị CSDL, anh hãy đề xuất những kiến thức, kĩ năng
và phẩm chất cần có của nhà quản trị CSDL.
Trả lời:
Kiến thức về cơ sở dữ liệu: Bao gồm các khái niệm về hệ quản trị cơ sở dữ liệu, mô hình dữ liệu, ngôn ngữ
truy vấn SQL, các kỹ thuật thiết kế cơ sở dữ liệu, các chuẩn mã hóa và bảo mật dữ liệu.
Kiến thức về hệ thống máy tính: Bao gồm các kiến thức về phần cứng máy tính, hệ điều hành, mạng máy tính,
phần mềm quản trị CSDL và các công nghệ liên quan đến CSDL.
Kỹ năng quản lý dự án: Kỹ năng này rất cần thiết trong việc quản trị CSDL để đảm bảo tiến độ, chi phí và chất
lượng dự án.
Kỹ năng giải quyết vấn đề: Đây là kỹ năng cần thiết để xử lý các vấn đề kỹ thuật, bảo mật và quản lý trong quá
trình quản trị CSDL.

Trang 2
Tư duy phân tích và sáng tạo: Nhà quản trị CSDL cần có tư duy phân tích để phát hiện ra những vấn đề tiềm
ẩn và đưa ra các giải pháp thích hợp.
Tinh thần trách nhiệm và chịu trách nhiệm: Quản trị CSDL đảm nhiệm trách nhiệm quan trọng về bảo mật và
bảo vệ dữ liệu, đòi hỏi người quản trị phải có trách nhiệm cao và sẵn sàng chịu trách nhiệm với các quyết định
của mình.

Câu 2: Có thể học kiến thức và rèn luyện kĩ năng quản trị CSDL ở đâu?
Trả lời:
Có nhiều cách để học kiến thức và rèn luyện kỹ năng quản trị CSDL, bao gồm:
Học tập trực tuyến: Có rất nhiều trang web và các khóa học trực tuyến miễn phí hoặc trả phí như Coursera,
Udemy, edX, Pluralsight, LinkedIn Learning, Codecademy và W3Schools.
Đi học ở các trường đại học hoặc các trung tâm đào tạo chuyên nghiệp.
Tự học thông qua các tài liệu và sách chuyên ngành.
Tham gia các cuộc thi và dự án liên quan đến CSDL để rèn luyện kỹ năng.
Thực hành trên các phần mềm quản trị CSDL

Câu 3: Hãy kể ra các phẩm chất và năng lực cần có của một nhà quản trị CSDL.
Trả lời:
Một nhà quản trị CSDL cần phải có những phẩm chất và năng lực sau:
Nhà quản trị CSDL cần có kiến thức cơ bản về CSDL, biết thiết kế CSDL và sử dụng thành thạo CSDL.
Tính cách tỉ mỉ, cẩn thận, kiên nhẫn, kĩ năng phân tích rất cần thiết với nhà quản trị CSDL khi phải xử lí tình
huống.
Khả năng học tập suốt đời, giúp nhà quản trị CSDL nâng cao bản lĩnh nghề nghiệp.
Để trở thành nhà quản trị CSDL tốt, cần được học kiến thức một cách bài bản ở các trường đại học chuyên
nghành, rèn luyện kĩ năng trong các khóa học nghề nghiệp về quản trị CSDL, về các hệ QTCSDL cụ thể và
rèn luyện trong công việc thực tế.

Câu 4: Cần làm gì để có các kiến thức và kĩ năng cần thiết về quản trị CSDL.
Trả lời:
Để có các kiến thức và kỹ năng cần thiết về quản trị cơ sở dữ liệu (CSDL), ta có thể thực hiện các bước sau:
Tìm hiểu về cơ sở dữ liệu
Học về hệ quản trị cơ sở dữ liệu
Luyện tập tạo và quản lý CSDL
Tham gia khóa học về quản trị CSDL.

Trang 3
III. CƠ HỘI VIỆC LÀM
- Nhu cầu nhân lực quản trị CSDL tăng theo nhu cầu phát triển các ứng dụng tin học sử dụng CSDL.
- Có thể tìm được rất nhiều địa chỉ tuyển dụng nhờ công cụ tìm kiếm trên Internet.

Câu 1: Tại sao nhu cầu nhân lực về quản trị CSDL ngày một tăng?
Trả lời:
Nhu cầu tuyển dụng nhân lực về quản trị cơ sở dữ liệu ngày càng tăng do tính toàn cầu hóa và số hóa, sự tăng
trưởng của Big Data, yêu cầu bảo mật và an ninh dữ liệu, khả năng tích hợp và tương tác giữa các hệ thống
khác nhau cùng với cơ hội việc làm và mức lương cao trong lĩnh vực này.

LUYỆN TẬP
Câu 1: Hãy tìm danh sách ít nhất 5 trường đại học có đào tạo CSDL hay tin học quản lí.
Trả lời:
Đại học Kinh tế - Luật
Đại học Khoa học Tự nhiên
Đại học Kinh tế TP HCM
Đại học Ngân hàng TP HCM
Đại học Công nghệ thông tin
Đại học Công nghệ - ĐHQG Hà Nội.

Câu 2. Hãy tìm một số địa chỉ cung cấp các dịch vụ đào tạo để cấp chứng chỉ về CSDL của các công ti như
IBM, Oracle, Microsoft.
Trả lời:
Microsoft Certificated: Azure Data Fundamentals
IBM
Oracle
Microsoft.

VẬN DỤNG
Câu 1: Hãy tìm ba địa chỉ tuyển dụng nhà quản trị CSDL trong ngành ngân hàng.
Trả lời:
IT Business Analyst (Ngân hàng Á Châu
Senior System Analyst (NTT DATA Vietnam)
Triển khai phần mềm (ERP).

Trang 4
Câu 2: Hãy tìm ba địa chỉ tuyển dụng nhà quản trị CSDL trong các công ty tin học.
Trả lời:
Trưởng Nhóm Quản Trị Cơ Sở Dữ Liệu (DBA) (TẬP ĐOÀN BRG – CÔNG TY CP)
Chuyên Viên Quản Trị Cơ Sở Dữ Liệu (Công Ty CP Chứng Khoán MB)
Chuyên viên Quản trị cơ sở dữ liệu, phòng MIS, Khối Tài chính kế toán (Ngân hàng TMCP Đại Chúng Việt
Nam - PVcomBank).

II. HỆ THỐNG BÀI TẬP TỰ LUẬN


Câu 1. Mục đích của quản trị CSDL là?
• đảm bảo cho các hoạt động liên quan đến CSDL được thông suốt
• đảm bảo cho các hoạt động liên quan đến CSDL được an toàn
• đảm bảo cho các hoạt động liên quan đến CSDL có hiệu qủa cao

Câu 2. Phẩm chất của một nhà quản trị CSDL?


• Cẩn thận, tỉ mỉ
• Khả năng tự học tập
• Kỹ năng ngoại ngữ, chuyên môn cao

III HỆ THỐNG BÀI TẬP TRẮC NGHIỆM


Câu 1. Làm thể nào để có thể vận hành duy trì cho các CSDL hoạt động thông suốt, luôn sẵn sàng đáp ứng
được nhu cầu khai thác?
A. Cần có các phần mềm thông minh mới
B. Cần có các chính sách thích hợp
C. Cần có những nhà quản trị cơ sở dữ liệu để đảm bảo quản lí các dữ liệu liên quan
D. Cả ba đáp án trên đều đúng

Câu 2. Theo lịch sử phát triển, máy tính thay đổi như thế nào về điện năng tiêu thụ?
A. Từ tiêu thụ nhiều điện đến tiêu thụ ít điện năng
B. Từ không tiêu thụ điện năng đến tiêu thụ nhiều điện và đến tiêu thụ ít điện năng
C. Từ tiêu thụ nhiều điện đến tiêu thụ ít điện năng và không tiêu thụ điện năng
D. Đáp án khác

Câu 3. Theo lịch sử phát triển, máy tính thay đổi như thế nào về tốc độ tính toán?
A. Từ không đáng tin cậy đến nhanh nhạy và chính xác
B. Từ nhanh nhạy và chính xác đến đáng tin cậy
Trang 5
C. Từ không đáng tin cậy đến nhanh nhạy và chính xác, đáng tin cậy
D. Đáp án khác

Câu 4. Các hiểu biết về kĩ năng CSDL sẽ hết sức hữu ích cho?
A. Những ai có nhu cầu phát triển năng lực chuyên môn ở những bậc học cao hơn liên quan đến tin học
B. Những công nhân viên chức
C. Những nhân viên văn phòng
D. Đáp án khác

Câu 5. Khả năng học tập suốt đời giúp người quản trị CSDL?
A. Phát triển khả năng chuyên môn
B. Nâng cao bản lĩnh nghề nghiệp
C. Phát triển sáng tạo
D. Đáp án khác

Câu 6. Để QTCSDL thì điều quan trọng nhất là?


A. Phải làm chủ được một hệ QTCSDL
B. Có khả năng ham học hỏi
C. Có kiến thức chuyên môn
D. Đáp án khác

Câu 7. Vì sao người quản trị CSDL cần thường xuyên tạo các bản sao dữ liệu dự phòng?
A. Phù hợp với sự phát triển
B. Tiết kiện điện
C. Để khi gặp sự cố có thể khôi phục dữ liệu kịp thời
D. Cả ba đáp án trên đều sai

Câu 8. Vì sao người quản trị CSDL cần nắm bắt sự phát triển của công nghệ, đánh giá hoạt động của hệ thống?
A. Nâng cấp công nghệ khi cần thiết
B. Để khi gặp sự cố có thể khôi phục dữ liệu kịp thời
C. Phù hợp với sự phát triển
D. Đáp án khác

Câu 9. Vì sao người quản trị CSDL cần thường xuyên theo dõi các số liệu thống kê về tình hình sử dụng?
A. Phù hợp với sự phát triển

Trang 6
B. Để nắm bắt biến động nhu cầu tài nguyên để điều chỉnh hoặc bổ sung
C. Để khi gặp sự cố có thể khôi phục dữ liệu kịp thời
D. Đáp án khác

Câu 10. Vì sao người quản trị CSDL tạo lập và làm hồ sơ về CSDL?
A. Để nắm bắt biến động nhu cầu tài nguyên để điều chỉnh hoặc bổ sung
B. Để khi gặp sự cố có thể khôi phục dữ liệu kịp thời
C. Phù hợp với sự phát triển
D. Để phục vụ hoạt động duy trì và nâng cấp hệ thống sau này

CHỦ ĐỀ 6. THỰC HÀNH TẠO VÀ KHAI THÁC CƠ SỞ DỮ LIỆU


BÀI 17. QUẢN TRỊ CƠ SỞ DỮ LIỆU TRÊN MÁY TÍNH
I. LÝ THUYẾT
Câu 1: Trở lại với các bài toán quản lí điểm, quản lí các bản thu âm (Bài 10 đến Bài 15), em có nhận xét, so
sánh gì về việc cập nhật, chỉnh sửa dữ liệu giữa quản lí thủ công và quản lí CSDL trên máy tính?
Trả lời:
Tính chính xác và độ tin cậy: Quản lý CSDL trên máy tính thường đem lại tính chính xác và độ tin cậy cao
hơn so với quản lý thủ công. CSDL trên máy tính được thiết kế để đảm bảo tính toàn vẹn dữ liệu và hạn chế
các sai sót như nhập sai, tính toán sai, hoặc mất mát dữ liệu. Trong khi đó, quản lý thủ công có nguy cơ cao về
sai sót do con người như ghi nhầm, đọc nhầm, hay không cập nhật đúng thông tin, gây ảnh hưởng đến tính
chính xác của dữ liệu.
Tốc độ và hiệu quả: Quản lý CSDL trên máy tính thường nhanh chóng, tiết kiệm thời gian và công sức hơn so
với quản lý thủ công. Các hoạt động cập nhật và chỉnh sửa dữ liệu trên máy tính thường được tự động hóa và
có thể được thực hiện đồng thời trên nhiều bản ghi, giúp tiết kiệm thời gian và giảm bớt công sức so với quản
lý thủ công mà phải xử lý từng bản ghi một.
Khả năng tra cứu và phân tích dữ liệu: Quản lý CSDL trên máy tính mang lại khả năng tra cứu và phân tích dữ
liệu hiệu quả hơn so với quản lý thủ công. Dữ liệu trong CSDL có thể được tìm kiếm, lọc, và phân tích theo
nhiều tiêu chí khác nhau trong thời gian ngắn, giúp người quản lý dễ dàng đưa ra quyết định hoặc tìm kiếm
thông tin cần thiết. Trong khi đó, quản lý thủ công thường gặp khó khăn trong việc tra cứu và phân tích dữ liệu
đặc biệt khi dữ liệu lớn hoặc phức tạp.
Độ bảo mật và kiểm soát truy cập: Quản lý CSDL trên máy tính cung cấp khả năng kiểm soát truy cập và độ
bảo mật cao hơn so với quản lý thủ công. Dữ liệu trong CSDL có thể được bảo vệ bằng các biện pháp bảo mật
như mã hóa.

I. LỢI ÍCH CỦA VIỆC QUẢN TRỊ CƠ SỞ DỮ LIỆU TRÊN MÁY TÍNH

Trang 7
- Việc ứng dụng CSDL trong quản lí đem lại nhiều lợi ích to lớn: tiện lợi, kịp thời, nhanh chóng, hạn chế sai
sót,…

Câu 1: Các bài toán quản lí cùng với việc lưu trữ dữ liệu, khai thác thông tin đã xuất hiện từ rất lâu trong các
hoạt động kinh tế-xã hội với những nghiệp vụ được vận hành nề nếp, ổn định từ rất nhiều năm,… Hãy cùng
tìm hiểu tại sao lại phải thay đổi thói quen quản lí thủ công, chuyển sang sử dụng máy tính với hệ QTCSDL.
Trả lời:
Việc ứng dụng CSDL trong quản lí đem lại nhiều lợi ích to lớn: Tiện lợi, kịp thời, nhanh chóng, hạn chế sai
sót,...

Câu 2: Hãy nêu vài ví dụ thực tế minh hoạ về việc ứng dụng quản trị CSDL trên máy tính và những lợi ích mà
nó mang lại.
Trả lời:
Dưới đây là một vài ví dụ thực tế minh hoạ về việc ứng dụng quản trị CSDL trên máy tính và những lợi ích mà
nó mang lại:
Hệ thống quản lý khách hàng: Một công ty có một hệ thống quản lý khách hàng trên máy tính, trong đó lưu trữ
thông tin của khách hàng, bao gồm tên, địa chỉ, số điện thoại, email, lịch sử giao dịch, và các thông tin khác.
Nhờ CSDL, nhân viên bán hàng có thể nhanh chóng tra cứu thông tin của khách hàng, cập nhật thông tin mới,
quản lý các hoạt động tiếp thị và dịch vụ chăm sóc khách hàng. Điều này giúp nâng cao chất lượng dịch vụ,
tăng tính chuyên nghiệp, và tối ưu hóa quản lý khách hàng.
Hệ thống quản lý nhân viên: Một doanh nghiệp sử dụng CSDL để quản lý thông tin của nhân viên, bao gồm
hồ sơ nhân viên, thông tin cá nhân, lịch sử công tác, lương thưởng, và các thông tin liên quan khác. Hệ thống
CSDL giúp đơn giản hóa quá trình tuyển dụng, cung cấp dữ liệu chính xác về nhân viên, tính toán lương
thưởng, quản lý chấm công, và đánh giá hiệu suất. Điều này giúp tăng cường tính minh bạch, giảm bớt công
việc thủ công, và nâng cao quản lý nhân sự.
Hệ thống quản lý sản phẩm và kho hàng: Một công ty có một hệ thống CSDL quản lý thông tin về sản phẩm,
kho hàng, đơn đặt hàng, và vận chuyển. CSDL giúp theo dõi số lượng hàng tồn kho, giúp dự đoán và quản lý
nhu cầu cung cấp, và cải thiện quy trình đặt hàng và vận chuyển. Nhờ CSDL, công ty có thể quản lý tối ưu hoá
dòng sản phẩm, đồng bộ hóa thông tin giữa các phòng ban, và cung cấp dịch vụ khách hàng nhanh chóng và
chính xác.
Hệ thống quản lý dự án: Một công ty xây dựng sử dụng CSDL để quản lý dự án, bao gồm kế hoạch, nguồn lực,
tiến độ, và chi phí. CSDL giúp đồng bộ thông tin giữa các bộ phận khácTop of Form.

II. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MYSQL VÀ PHẦN MỀM HEIDISQL


a) Cài đặt và làm việc với MySQL

Trang 8
- Truy cập trang dev.mysql.com/downloads/mysql/ hoặc downloads.mysql.cpm/archives/installer để tải về một
trong các bản: Bản cài tự động, Bản gọn nhẹ và Bản đầy đủ.
- MySQL có sẵn phần mềm khách giúp người dùng có thể kết nối, làm việc với MySQL.
b) Phần mềm HeidiSQL
- Heidi MySQL là một phần mềm mã nguồn mở, miễn phí, giúp kết nối, làm việc với nhiều hệ QTCSDL.
- Truy cập trang www.heidisql.com/download.php để tải về một trong hai bản sau: Bản cài tự động và Bản
Portable.
☞ Kết luận:
- MySQL và HeidiSQL là các phần mềm mã nguồn mở, được nhiều người dùng để quản trị các CSDL.

Câu 1: Hãy sử dụng từ khoá “hệ quản trị CSDL phổ biến” để tìm kiếm thông tin trên Internet và trả lời câu
hỏi "Nếu được lựa chọn, em sẽ chọn hệ QGTCSDL nào để đáp ứng được các tiêu chí nhiều người dùng và là
hệ QTCSDL miễn phí”?
Trả lời:
Nếu được lựa chọn, một hệ quản trị CSDL phổ biến và miễn phí mà có thể đáp ứng được các tiêu chí của nhiều
người dùng là MySQL. MySQL là một hệ quản trị CSDL mã nguồn mở được phát triển bởi Oracle Corporation
và được cộng đồng nguồn mở hỗ trợ và phát triển. Nó là một trong những hệ quản trị CSDL phổ biến nhất trên
thế giới, được sử dụng rộng rãi trong các ứng dụng web, từ các trang web cá nhân, blog, cho đến các công ty
công nghệ lớn.
MySQL đáp ứng được nhiều tiêu chí của người dùng, bao gồm:
Miễn phí: MySQL là một hệ quản trị CSDL mã nguồn mở, do đó hoàn toàn miễn phí để sử dụng, phát triển và
triển khai.
Dễ sử dụng: MySQL có một cộng đồng lớn và hỗ trợ đa dạng, vì vậy việc tìm kiếm tài liệu và giải đáp câu hỏi
là dễ dàng. Nó cũng có giao diện quản lý đồ họa (MySQL Workbench) giúp dễ dàng quản lý và tương tác với
CSDL.
Tính ổn định và đáng tin cậy: MySQL đã được sử dụng rộng rãi trong nhiều năm và đã được kiểm tra, đánh
giá và cải thiện liên tục. Nó cung cấp tính ổn định và đáng tin cậy trong việc quản lý dữ liệu.
Khả năng mở rộng: MySQL hỗ trợ khả năng mở rộng lên đến hàng triệu bản ghi và hàng nghìn người dùng
đồng thời, cho phép phát triển ứng dụng lớn và có khả năng mở rộng trong tương lai.
Vì vậy, nếu đang tìm kiếm một hệ quản trị CSDL miễn phí, phổ biến và đáp ứng được các tiêu chí của nhiều
người dùng, MySQL là một lựa chọn hợp lý.

Câu 2: Khi cài đặt MYSQL, phần mềm cài đặt có yêu cầu em làm điều gì mà cần phải ghi nhớ để sau đó có
thể đăng nhập vào MYSQL không?
Trả lời:
Trang 9
Phần mềm yêu cầu tạo mật khẩu.

LUYỆN TẬP
Câu 1: Thực hành cài đặt MySOQL và cài đặt HeidiSSQL.
Trả lời:
Để thực hiện cài đặt MySQL và HeidiSQL, bạn có thể làm theo các bước sau:
Cài đặt MySQL:
Bước 1: Tải xuống MySQL Community Edition
Truy cập trang web chính thức của MySQL tại địa chỉ: https://dev.mysql.com/downloads/mysql/
Chọn phiên bản phù hợp của MySQL Community Edition dành cho hệ điều hành của bạn và tải xuống.
Bước 2: Cài đặt MySQL
Chạy tệp cài đặt MySQL vừa tải xuống và làm theo hướng dẫn trên màn hình để hoàn thành quá trình cài đặt.
Chú ý lựa chọn các tùy chọn cài đặt, bao gồm ngôn ngữ, cổng kết nối, người dùng và mật khẩu của MySQL.
Bước 3: Khởi chạy dịch vụ MySQL
Sau khi cài đặt hoàn tất, khởi động dịch vụ MySQL trên máy tính của bạn.
Truy cập vào cửa sổ dòng lệnh hoặc terminal (với quyền quản trị) và nhập các lệnh sau (tùy theo hệ điều hành):
Windows: net start mysql
macOS/Linux: sudo service mysql start

Cài đặt HeidiSQL:


Bước 1: Tải xuống HeidiSQL
Truy cập trang web chính thức của HeidiSQL tại địa chỉ: https://www.heidisql.com/download.php
Tải xuống phiên bản phù hợp của HeidiSQL dành cho hệ điều hành của bạn.
Bước 2: Cài đặt HeidiSQL
Chạy tệp cài đặt HeidiSQL vừa tải xuống và làm theo hướng dẫn trên màn hình để hoàn thành quá trình cài
đặt.
Bước 3: Kết nối với MySQL trong HeidiSQL
Mở HeidiSQL sau khi cài đặt thành công.
Chọn tab "Session" trong giao diện chính của HeidiSQL.
Nhập các thông tin kết nối đến MySQL như sau:
Kiểu mạng: Chọn "MySQL (TCP/IP)".
Tên máy chủ/IP: Nhập "localhost" hoặc địa chỉ IP của máy chủ MySQL.
Người dùng: Nhập tên người dùng MySQL (mặc định là "root").
Mật khẩu: Nhập mật khẩu người dùng MySQL (nếu có).
Cổng: Để trống để sử dụng cổng mặc định của MySQL (thường là 3306).

Trang 10
Bấm nút "Open (mở)" để kết nối đến MySQL.
Sau khi hoàn tất các bước trên, bạn đã cài đặt và kết nối thành công MySQL và HeidiSQL, sẵn sàng để quản
lý và làm việc với CSDL MySQL

VẬN DỤNG
Câu 1: Truy cập Internet với các cụm từ khoá thích hợp để tìm hiểu thêm thông tin về MySQL và HeidiSQL.
Trả lời:
MySQL là một hệ quản trị cơ sở dữ liệu (DBMS) mã nguồn mở phổ biến, được sử dụng rộng rãi trong việc
quản lý cơ sở dữ liệu trên các ứng dụng web và hệ thống phức tạp. MySQL cung cấp khả năng lưu trữ và truy
xuất dữ liệu hiệu quả, hỗ trợ nhiều ngôn ngữ lập trình và nhiều nền tảng hệ điều hành, cung cấp tính năng an
ninh và độ tin cậy cao.
HeidiSQL là một công cụ quản lý cơ sở dữ liệu mã nguồn mở dành cho MySQL, MariaDB, Microsoft SQL
Server và PostgreSQL. HeidiSQL cung cấp giao diện đồ họa thân thiện và dễ sử dụng cho việc quản lý cơ sở
dữ liệu, cho phép thực thi các câu lệnh SQL, duyệt dữ liệu, chỉnh sửa bảng, quản lý người dùng, sao lưu và
phục hồi cơ sở dữ liệu, và nhiều tính năng hữu ích khác.
Dưới đây là một số thông tin chung về MySQL và HeidiSQL:
MySQL:
MySQL là một hệ quản trị cơ sở dữ liệu mã nguồn mở, phát triển và duy trì bởi Oracle Corporation. MySQL
được sử dụng rộng rãi trong các ứng dụng web và hệ thống phức tạp, từ các trang web cá nhân cho đến các
công ty lớn và tổ chức trên toàn thế giới.
MySQL cung cấp tính năng an ninh, độ tin cậy cao, hỗ trợ nhiều ngôn ngữ lập trình, và có cộng đồng người
dùng đông đảo và nhiều tài liệu hướng dẫn trực tuyến.
HeidiSQL:
HeidiSQL là một công cụ quản lý cơ sở dữ liệu mã nguồn mở, được phát triển bởi anh/chị guitorres và được
cung cấp miễn phí cho cộng đồng người dùng.
HeidiSQL cung cấp giao diện đồ họa thân thiện, dễ sử dụng, hỗ trợ nhiều hệ quản trị cơ sở dữ liệu, bao gồm
MySQL, MariaDB, Microsoft SQL Server và PostgreSQL.
HeidiSQL cung cấp nhiều tính năng hữu ích cho việc quản lý cơ sở dữ liệu, bao gồm thực thi câu lệnh SQL,
duyệt dữ liệu, chỉnh sửa bảng, quản lý người dùng, sao lưu và phục hồi.

II. HỆ THỐNG BÀI TẬP TỰ LUẬN


Câu 1. Tại sao lại phải thay đổi thói quen quản lí thủ công, chuyển sang sử dụng máy tính với hệ QTCSD?
• Tiện lợi, kịp thời
• Nhanh chóng hơn
• Hạn chế sai sót
Trang 11
Câu 2. So với việc quản lí thủ công thì quản lí CSDL trên máy tính như thế nào?
• Quản lý CSDL trên máy tính cung cấp khả năng kiểm soát truy cập và độ bảo mật cao hơn so với quản
lý thủ công
• Quản lý CSDL trên máy tính thường nhanh chóng, tiết kiệm thời gian và công sức hơn so với quản lý
thủ công
• Quản lý CSDL trên máy tính mang lại khả năng tra cứu và phân tích dữ liệu hiệu quả hơn so với quản
lý thủ công

III HỆ THỐNG BÀI TẬP TRẮC NGHIỆM


Câu 1. Do đâu mà Quản lý CSDL trên máy tính cung cấp khả năng kiểm soát truy cập và độ bảo mật cao hơn
so với quản lý thủ công?
A. Dữ liệu trong CSDL có thể được tìm kiếm, lọc, và phân tích theo nhiều tiêu chí khác nhau trong thời gian
ngắn, giúp người quản lý dễ dàng đưa ra quyết định hoặc tìm kiếm thông tin cần thiết.
B. Các hoạt động cập nhật và chỉnh sửa dữ liệu trên máy tính thường được tự động hóa và có thể được thực
hiện đồng thời trên nhiều bản ghi, giúp tiết kiệm thời gian và giảm bớt công sức so với quản lý thủ công mà
phải xử lý từng bản ghi một
C. Được trải nghiệm nhiều tính năng khác nhau: nghe, gọi, chơi trò chơi, xem video...
D. Dữ liệu trong CSDL có thể được bảo vệ bằng các biện pháp bảo mật như mã hóa

Câu 2. Do đâu mà Quản lý CSDL trên máy tính thường nhanh chóng, tiết kiệm thời gian và công sức hơn so với
quản lý thủ công?
A. Dữ liệu trong CSDL có thể được tìm kiếm, lọc, và phân tích theo nhiều tiêu chí khác nhau trong thời gian
ngắn, giúp người quản lý dễ dàng đưa ra quyết định hoặc tìm kiếm thông tin cần thiết.
B. Các hoạt động cập nhật và chỉnh sửa dữ liệu trên máy tính thường được tự động hóa và có thể được thực
hiện đồng thời trên nhiều bản ghi, giúp tiết kiệm thời gian và giảm bớt công sức so với quản lý thủ công mà
phải xử lý từng bản ghi một
C. Được trải nghiệm nhiều tính năng khác nhau: nghe, gọi, chơi trò chơi, xem video...
D. Dữ liệu trong CSDL có thể được bảo vệ bằng các biện pháp bảo mật như mã hóa

Câu 3. Do đâu mà Quản lý CSDL trên máy tính mang lại khả năng tra cứu và phân tích dữ liệu hiệu quả hơn so
với quản lý thủ công?
A. Dữ liệu trong CSDL có thể được tìm kiếm, lọc, và phân tích theo nhiều tiêu chí khác nhau trong thời gian
ngắn, giúp người quản lý dễ dàng đưa ra quyết định hoặc tìm kiếm thông tin cần thiết.
B. Các hoạt động cập nhật và chỉnh sửa dữ liệu trên máy tính thường được tự động hóa và có thể được thực
hiện đồng thời trên nhiều bản ghi, giúp tiết kiệm thời gian và giảm bớt công sức so với quản lý thủ công mà
Trang 12
phải xử lý từng bản ghi một
C. Được trải nghiệm nhiều tính năng khác nhau: nghe, gọi, chơi trò chơi, xem video...
D. Dữ liệu trong CSDL có thể được bảo vệ bằng các biện pháp bảo mật như mã hóa

Câu 4. Hệ thống quản lý dự án giúp?


A. Đồng bộ thông tin giữa các bộ phận khác
B. Dự đoán và quản lý nhu cầu cung cấp, và cải thiện quy trình đặt hàng và vận chuyển Mạch tích hợp (IC)
C. Đơn giản hóa quá trình tuyển dụng
D. Cung cấp dữ liệu chính xác về nhân viên

Câu 5. MySQL có hạn chế nào sau đây?


A. Dễ sử dụng
B. Miễn phí
C. Giao diện dòng lệnh không thuận tiện với người dùng mới
D. Cả ba đáp án trên đều sai

Câu 6. Do đâu mà Quản lý CSDL trên máy tính cung cấp khả năng kiểm soát truy cập và độ bảo mật cao hơn
so với quản lý thủ công?
A. Dữ liệu trong CSDL có thể được tìm kiếm, lọc, và phân tích theo nhiều tiêu chí khác nhau trong thời gian
ngắn, giúp người quản lý dễ dàng đưa ra quyết định hoặc tìm kiếm thông tin cần thiết.
B. Các hoạt động cập nhật và chỉnh sửa dữ liệu trên máy tính thường được tự động hóa và có thể được thực
hiện đồng thời trên nhiều bản ghi, giúp tiết kiệm thời gian và giảm bớt công sức so với quản lý thủ công mà
phải xử lý từng bản ghi một
C. Được trải nghiệm nhiều tính năng khác nhau: nghe, gọi, chơi trò chơi, xem video...
D. Dữ liệu trong CSDL có thể được bảo vệ bằng các biện pháp bảo mật như mã hóa

Câu 7. MySQL có hạn chế nào sau đây?


A. Dễ sử dụng
B. Miễn phí
C. Giao diện dòng lệnh không thuận tiện với người dùng mới
D. Tốc độ xử lí nhanh

Câu 8. Đâu không phải lí do để thay đổi thói quen quản lí thủ công, chuyển sang sử dụng máy tính với hệ
QTCSDL?
A. Tiện lợi, kịp thời

Trang 13
B. Nhanh chóng hơn
C. Hạn chế sai sót
D. Miễn phí

Câu 9. Do đâu mà Quản lý CSDL trên máy tính thường nhanh chóng, tiết kiệm thời gian và công sức hơn so với
quản lý thủ công?
A. Dữ liệu trong CSDL có thể được tìm kiếm, lọc, và phân tích theo nhiều tiêu chí khác nhau trong thời gian
ngắn, giúp người quản lý dễ dàng đưa ra quyết định hoặc tìm kiếm thông tin cần thiết.
B. Các hoạt động cập nhật và chỉnh sửa dữ liệu trên máy tính thường được tự động hóa và có thể được thực
hiện đồng thời trên nhiều bản ghi, giúp tiết kiệm thời gian và giảm bớt công sức so với quản lý thủ công mà
phải xử lý từng bản ghi một
C. Được trải nghiệm nhiều tính năng khác nhau: nghe, gọi, chơi trò chơi, xem video...
D. Dữ liệu trong CSDL có thể được bảo vệ bằng các biện pháp bảo mật như mã hóa

Câu 10. Hệ thống quản lý dự án giúp?


A. Đồng bộ thông tin giữa các bộ phận khác
B. Dự đoán và quản lý nhu cầu cung cấp, và cải thiện quy trình đặt hàng và vận chuyển
C. Mạch tích hợp (IC)
D. Đơn giản hóa quá trình tuyển dụng

BÀI 18. THỰC HÀNH XÁC ĐỊNH CẤU TRÚC BẢNG VÀ CÁC TRƯỜNG KHÓA
I. LÝ THUYẾT
Câu 1: Ở 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ĩ). 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 ở Bài 13?
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.

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


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

II. XÁC ĐỊNH CẤU TRÚC BẢNG

Trang 14
- Thông tin quản lí bao gồm: 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ừ đó có thể hình dung 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 đó, trường idBanthuam là trường khóa chính.

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


- Phân tích và sắp xếp lại bảng dữ liệu để hạn chế lượng dữ liệu lặp lại.
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ĩ ở 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, idCasi).
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 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).
- Tổng kết lại, 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)

IV. CÁC LOẠI KHÓA


- Mỗi bảng đã có một khóa chính.
- Khóa ngoài của các bảng:
bannhac: .idNhacsi tham chiếu đến idNhac 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.
- Khóa cấm trùng lặp: 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 khóa cấm trùng lặp.

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

Trang 15
Để đơn giản, các trường khóa 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
Câu 1: 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.
Trả lời:
Tổ chức cơ sở dữ liệu (CSDL) âm nhạc với các bảng được mô tả như trên sẽ mang lại nhiều lợi ích, bao gồm:
Quản lý thông tin về các ca sĩ (casi) và nhạc sĩ (nhacsi): CSDL sẽ cho phép lưu trữ và quản lý thông tin về các
ca sĩ và nhạc sĩ, bao gồm các trường như idcasi, tencasi, idnhacsi, tennhacsi. Điều này giúp tổ chức có thể dễ
dàng tra cứu và quản lý thông tin cá nhân, thông tin hoạt động nghệ thuật, tác phẩm âm nhạc của các ca sĩ và
nhạc sĩ một cách hiệu quả.
Quản lý thông tin về các ban nhạc (bannhac) và bản thu âm (banthuam): CSDL cũng cho phép lưu trữ và quản
lý thông tin về các ban nhạc và bản thu âm của các ban nhạc. Các thông tin như idbannhac, tenbannhac, idnhacsi
sẽ giúp tổ chức có thể theo dõi và quản lý hoạt động của các ban nhạc, bao gồm cả thông tin về các tác phẩm
âm nhạc mà các ban nhạc đã thực hiện.
Quản lý quan hệ giữa ca sĩ, ban nhạc và nhạc sĩ: CSDL giúp tổ chức có thể quản lý các mối quan hệ giữa các
ca sĩ, ban nhạc và nhạc sĩ thông qua các khóa ngoại như idcasi, idbanthuam, idnhacsi. Điều này giúp tổ chức
có thể theo dõi và quản lý các hoạt động nghệ thuật, dự án âm nhạc và các tác phẩm hợp tác giữa các ca sĩ, ban
nhạc và nhạc sĩ.
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.

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?
Trả lời:
Để thêm thông tin ngày sinh của các nhạc sĩ, ca sĩ vào CSDL, bạn 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. Bạn có thể đặt tên cho trường này là "ngaysinh" hoặc tên tương
tự để thể hiện thông tin ngày sinh của các nghệ sĩ.
Sau khi thêm trường "ngaysinh" vào bảng "nhacsi" và "casi", CSDL sẽ có cấu trúc như sau:

Trang 16
Bảng casi:
idcasi (khóa chính)
tencasi
ngaysinh
Bảng banthuam:
idbanthuam (khóa chính)
idbannhac
idcasi
Bảng bannhac:
idbannhac (khóa chính)
tenbannhac
idnhacsi
Bảng nhacsi:
idnhacsi (khóa chính)
tennhacsi
ngaysinh
Sau khi thực hiện thay đổi này, bạn 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.

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?
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ố), bạn 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. Dưới đây là một ví dụ về cách thực hiện thay đổi này:
Bảng casi:
idcasi (khóa chính)
tencasi
ngaysinh
noisinh_id (khóa ngoại tham chiếu tới bảng noisinh)
Bảng banthuam:
idbanthuam (khóa chính)
idbannhac
idcasi
Bảng bannhac:

Trang 17
idbannhac (khóa chính)
tenbannhac
idnhacsi
Bảng nhacsi:
idnhacsi (khóa chính)
tennhacsi
ngaysinh
noisinh_id (khóa ngoại tham chiếu tới bảng noisinh)
Bảng noisinh:
idnoisinh (khóa chính)
tennoisinh
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 "idnoisinh" là khóa chính và cột "tennoisinh" là nơi lưu trữ tên tỉnh/thành phố.
Sau khi thực hiện thay đổi này, bạn 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 "noisinh_id" 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 bạn 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.

VẬN DỤNG
Câu 1: 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ố.
Trả lời:
Bước 1: Phân tích yêu cầu
Bài toán: Quản lí danh sách tên quận/huyện của các tỉnh thành phố.

Yêu cầu: Cần lưu trữ danh sách tên quận/huyện của các tỉnh thành phố.
Bước 2: Xác định các thực thể (entities)
Tỉnh thành phố: Là đơn vị hành chính cấp 1, có tên và mã duy nhất.
Quận/Huyện: Là đơn vị hành chính cấp 2, có tên và mã duy nhất, thuộc về một tỉnh/thành phố.
Bước 3: Xác định các mối quan hệ (relationships)
Mối quan hệ giữa Tỉnh thành phố và Quận/Huyện: Tỉnh thành phố có thể có nhiều quận/huyện thuộc về nó, vì
vậy đây là mối quan hệ một-nhiều (one-to-many). Mã duy nhất của tỉnh thành phố sẽ được sử dụng làm khóa
chính trong bảng Tỉnh thành phố, và mã của tỉnh thành phố sẽ là khóa ngoại trong bảng Quận/Huyện để tham
chiếu đến tỉnh/thành phố tương ứng.

Trang 18
Bước 4: Thiết lập cấu trúc CSDL Dựa trên phân tích ở trên, ta có thể thiết lập cấu trúc CSDL gồm các bảng
sau:
Bảng Tỉnh thành phố:
MaTinhThanhPho (khóa chính)
TenTinhThanhPho
Bảng Quận/Huyện:
MaQuanHuyen (khóa chính)
TenQuanHuyen
MaTinhThanhPho (khóa ngoại tham chiếu tới bảng Tỉnh thành phố)
Trong đó, bảng "Tỉnh thành phố" lưu trữ thông tin về các tỉnh thành phố, bao gồm mã và tên của chúng. Bảng
"Quận/Huyện" lưu trữ thông tin về các quận/huyện, bao gồm mã, tên và mã của tỉnh/thành phố mà chúng thuộc
về.
Bước 5: Cài đặt mô hình dữ liệu Sau khi thiết lập cấu trúc CSDL, bạn có thể cài đặt mô hình dữ liệu cho bài
toán quản lí danh sách tên quận/huyện của các tỉnh thành phố bằng cách sử dụng các công cụ, ngôn ngữ lập
trình hoặc hệ quản trị cơ sở dữ liệu phù hợp. Ví dụ như sử dụng SQL để tạo các bảng, định nghĩa các trường

II. HỆ THỐNG BÀI TẬP TỰ LUẬN


Câu 1. Làm sao để từ các thông tin và yêu cầu bất kì của một tập hợp dữ liệu liên quan người ta lại đi đến được
CSDL với các bảng cụ thể?
• Nhờ việc xác định cấu trúc bảng và các khóa chính
• Nhờ việc xác định khóa ngoài
• Nhờ việc tạo liên kết giữa các bảng

Câu 2. Tổ chức cơ sở dữ liệu (CSDL) âm nhạc với các bảng mang lại lợi ích gì?
• 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 ban nhạc (bannhac) và bản thu âm (banthuam)
• Quản lý quan hệ giữa ca sĩ, ban nhạc và nhạc sĩ

II HỆ THỐNG BÀI TẬP TRẮC NGHIỆM


Câu 1. Làm sao để từ các thông tin và yêu cầu bất kì của một tập hợp dữ liệu liên quan người ta lại đi đến được
CSDL với các bảng cụ thể?
A. Nhờ việc xác định cấu trúc bảng và các khóa chính
B. Nhờ việc xác định khóa ngoài
C. Nhờ việc tạo liên kết giữa các bảng
D. Cả ba đáp án trên đều đúng
Trang 19
Câu 2. Em có thể Tra cứu và tìm kiếm dữ liệu dễ dàng do đâu?
A. 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
B. Đá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
C. Cả hai đáp án trên đều đúng
D. Cả hai đáp án trên đều sai

Câu 3. 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?
A. Cần xóa bỏ cấu trúc CSDL và thay bằng cấu trúc khác
B. Thêm các trường vào CSDL
C. 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
D. Đáp án khác

Câu 4. Để thêm thông tin ngày sinh của các nhạc sĩ, ca sĩ vào CSDL, bạn cần?
A. 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. 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. Cần xóa bỏ cấu trúc CSDL và thay bằng cấu trúc khác
D. Đáp án khác

Câu 5. Để thực hiện mô hình quản lí danh sách tên quận/huyện của các tỉnh thành phố em phải xác định mối
quan hệ giữa?
A. Tỉnh thành phố và Quận/Huyện
B. Tính và Thị trấn
C. Tỉnh và thị xã
D. Huyện và thị trấn

Câu 6. Để thực hiện mô hình quản lí danh sách tên quận/huyện của các tỉnh thành phố, em có thể xác định khóa
chính trong trong bảng Tỉnh thành phố là
A. Mã của huyện
B. Mã của thị trấn
C. Mã của tỉnh thành phố
D. Mã của thị xã

Trang 20
Câu 7. Để thực hiện mô hình quản lí danh sách tên quận/huyện của các tỉnh thành phố, em có thể xác định khóa
ngoại trong bảng Quận/Huyện là?
A. Mã của huyện
B. Mã của thị trấn
C. Mã của tỉnh thành phố
D. Mã của thị xã

Câu 8. Để thực hiện mô hình quản lí danh sách tên quận/huyện của các tỉnh thành phố, trong
bảng Quận/Huyện thì MaTinhThanhPho sẽ là?
A. Khóa chính
B. Khóa ngoại tham chiếu tới bảng Quận/Huyện
C. Khóa ngoại tham chiếu tới bảng Tỉnh thành phố
D. Đáp án khác

Câu 9. Để tạo lập bảng thì cần?


A. Tổng kết tất cả các thông tin cần quản lý
B. Phân tích và sắp xếp lại dữ liệu
C. Cùng xem xét lại các bài toán quản lý
D. Tất cả đều đúng

Câu 10. Để tổ chức lại bảng dữ liệu thì cần?


A. Phân tích và sắp xếp lại dữ liệu để hạn chế dữ liệu lặp lại
B. Tổng kết tất cả các thông tin cần quản lý
C. Cùng xem xét lại các bài toán quản lý
D. Tất cả đều đúng

BÀI 19. THỰC HÀNH TẠO LẬP CƠ SỞ DỮ LIỆU VÀ CÁC BẢNG


I. LÝ THUYẾT
Câu 1: Việc đầu tiên để làm việc với một CSDL là tạo lập. Với HeidiSQL, việc tạo lập CSDL và các bảng đơn
giản được thực hiện như thế nào?
Trả lời:
Để tạo lập CSDL và các bảng đơn giản bằng HeidiSQL, bạn có thể làm theo các bước sau:
Bước 1: Mở HeidiSQL và kết nối đến cơ sở dữ liệu của bạn (nếu đã có). Nếu chưa có cơ sở dữ liệu, bạn có thể
tạo mới một cơ sở dữ liệu bằng cách nhấp chuột phải vào "Root" trong danh sách các kết nối và chọn "Create
new".

Trang 21
Bước 2: Sau khi kết nối đến cơ sở dữ liệu, bạn có thể chọn cơ sở dữ liệu đó trong danh sách cơ sở dữ liệu được
hiển thị bên trái của HeidiSQL.
Bước 3: Nhấp chuột phải vào tên cơ sở dữ liệu và chọn "Create new" để tạo bảng mới.
Bước 4: Đặt tên cho bảng mới và thiết lập các trường cho bảng đó. Ví dụ, bạn có thể đặt tên bảng là
"TinhThanhPho" và thêm các trường "MaTinhThanhPho" (kiểu dữ liệu: INT, khóa chính),
"TenTinhThanhPho" (kiểu dữ liệu: VARCHAR).
Bước 5: Nhấp chuột phải vào bảng vừa tạo và chọn "Create new" để thêm bảng mới khác. Làm tương tự để
tạo các bảng "QuanHuyen" với các trường tương ứng như "MaQuanHuyen" (kiểu dữ liệu: INT, khóa chính),
"TenQuanHuyen" (kiểu dữ liệu: VARCHAR), "MaTinhThanhPho" (kiểu dữ liệu: INT, khóa ngoại).
Bước 6: Sau khi đã tạo các bảng, bạn có thể thiết lập các quan hệ giữa các bảng bằng cách thiết lập khóa ngoại.
Ví dụ, bạn có thể nhấp chuột phải vào trường "MaTinhThanhPho" trong bảng "QuanHuyen" và chọn "Foreign
key setup" để thiết lập khóa ngoại này tham chiếu đến bảng "TinhThanhPho" và trường "MaTinhThanhPho"
của bảng đó.
Bước 7: Lưu lại các thay đổi và đóng cửa sổ tạo lập cơ sở dữ liệu.
Sau khi hoàn thành các bước trên, bạn đã tạo lập thành công CSDL và các bảng đơn giản trong HeidiSQL. Bạn
có thể sử dụng các câu lệnh SQL hoặc giao diện đồ họa của HeidiSQL để thêm, sửa đổi, xóa dữ liệu trong các
bảng này theo yêu cầu của bạn.
Tạo lập CSDL mymusic
Tạo lập bảng

I. TẠO LẬP CSDL MYMUSIC


- Nháy nút phải chuột ở vùng danh sách các CSDL đã có, chọn thẻ Tạo mới, chọn Cơ sở dữ liệu. Nhập mymusic,
chọn OK.
- Bộ mã kí tự mặc định là Unicode 4 type: utf8mb4, đối chiếu so sánh xâu theo utf8mb4_general_ci.

II. TẠO LẬP BẢNG


a) Khai báo tạo lập bảng, các trường và kiểu dữ liệu
- Tạo lập bảng nhacsi (idNhacsi, tenNhacsi), idNhacsi kiểu INT, tenNhacsi kiểu VARCHAR (255).
- Nháy nút phải chuột ở vùng danh sách các CSDL đã có, chọn thẻ Tạo mới, chọn Bảng. Nhập tên: nhacsi,
chọn Thêm mới để thêm trường.
- Nhập tên: idNhacsi, chọn kiểu dữ liệu INT, bỏ đánh dấu ô Allow NULL.
- Chọn AUTO_INCREMENT, dưới nhãn Mặc định và chọn OK.
- Để thêm khai báo trường tiếp theo, nhấn Ctrl+Insert hoặc nháy nút phải chuột vào phần dưới dòng idNhacsi
và chọn Add column.
- Nhập: tenNhacsi, chọn kiểu VARCHAR, độ dài 255, giá trị mặc định là kí tự rỗng ''.

Trang 22
b) Khai báo khóa chính
- Ấn định idNhacsi là khóa chính: Nháy nút phải chuột vào dòng khai báo idNhacsi và chọn Create new index
-> PRIMARY.
- Để sửa khóa chính đã khai báo nhầm này, hãy nháy đúp chuột vào ô tenNhacsi ở dưới ô PRIMARY KEY ở
phần trên và chọn lại idNhacsi.
- Sau đó nháy chuột vào ô bên cạnh dưới ô PRIMARY.

c) Lưu kết quả


- Cuối cùng chọn Lưu để lưu lại khai báo bảng nhacsi. Ở vùng hiển thị phía trái sẽ xuất hiện tên bảng nhacsi
dưới dòng tên CSDL mymusic.

LUYỆN TẬP
Câu 1: Khai báo tạo lập bảng casi như thiết kế ở Bài 18.
Trả lời:
Tạo bảng Casi: Nháy nút phải chuột ở vùng danh sách các CSDL đã có, chọn thẻ tạo mới, chọn Bảng. Nhập
tên: Casi, chọn thêm mới để thêm trường: idcasi, tencasi, chọn Khai báo khóa chính và lưu bảng.

VẬN DỤNG
Câu 1: Hãy lập CSDL quản lí tên các Quận/Huyện, Tỉnh/Thành phố của Việt Nam. Tạo bảng Tỉnh/Thành phố.
Trả lời:
Sử dụng phần mềm HEIDISQL để tạo lập CSDL
Nháy nút phải chuột vùng danh sách các CSDL đã có. Chọn thẻ tạo mới, chọn cơ sở dữ liệu. Nhập tên CSDL,
chọn Ok
Tạo bảng Tỉnh/Thành phố: Nháy nút phải chuột ở vùng danh sách các CSDL đã có, chọn thẻ tạo mới, chọn
Bảng. Nhập tên: Tỉnh/Thành phố, chọn thêm mới để thêm trường: idtenthanhpho, tenthanhpho, tenquan
(huyen) chọn Khai báo khóa chính và lưu bảng.

II. HỆ THỐNG BÀI TẬP TỰ LUẬN


Câu 1. Để thực hiện tạo bảng thì cần phải?
• Xác định cấu trúc bảng
• Khai báo cấu trúc bảng

Câu 2. Cần phải xác định và khai báo gì để tạo lập bảng?
• Tên bảng
Trang 23
• Kiểu dữ liệu
• Khai báo kích thước của mỗi trường

III HỆ THỐNG BÀI TẬP TRẮC NGHIỆM


Câu 1. Việc đầu tiên để làm việc với một CSDL là?
A. Thu thập
B. Xử lý
C. Tạo lập
D. Cả ba đáp án trên đều đúng

Câu 2. Việc đầu tiên để tạo lập một CSDL quan hệ là ?


A. Thu thập dữ liệu
B. Xử lý dữ liệu
C. Tạo ra một hay nhiều bảng
D. Cả ba đáp án trên đều sai

Câu 3. Mở HeidiSQL và kết nối đến cơ sở dữ liệu của bạn (nếu đã có). Nếu chưa có cơ sở dữ liệu, bạn có thể
tạo mới một cơ sở dữ liệu bằng cách nhấp chuột phải vào?
A. "Create database"
B. "Create new"
C. "Root"
D. Đáp án khác

Câu 4. Sau khi kết nối đến cơ sở dữ liệu, bạn có thể chọn cơ sở dữ liệu đó trong?
A. Danh sách cơ sở dữ liệu được hiển thị bên dưới của HeidiSQL
B. Danh sách cơ sở dữ liệu được hiển thị bên phải của HeidiSQL
C. Danh sách cơ sở dữ liệu được hiển thị bên trái của HeidiSQL
D. Đáp án khác

Câu 5. Để tạo bảng mới trong HeidiSQL, em chọn?


A. "Create database"
B. "Root"
C. "Create new"
D. Đáp án khác

Trang 24
Câu 6. Sau khi đã tạo các bảng, bạn có thể thiết lập các quan hệ giữa các bảng bằng cách?
A. Thiết lập khóa phụ
B. Thiết lập khóa chính
C. Thiết lập khóa ngoại
D. Đáp án khác

Câu 7. Để Tạo bảng Cas: thì em cần?


A. Nháy nút trái chuột ở vùng danh sách các CSDL đã có, chọn thẻ tạo mới, chọn Bảng
B. Nhấn giữ nút phải chuột ở vùng danh sách các CSDL đã có, chọn thẻ tạo mới, chọn Bảng
C. Nháy nút phải chuột ở vùng danh sách các CSDL đã có, chọn thẻ tạo mới, chọn Bảng
D. Cả ba đáp án trên đều đúng

Câu 8. Khi chọn thêm mới để thêm trường thì một trường mới hiện ra với tên mặc định là?
A. Cột mới
B. Trường mới
C. Column 1
D. Row 1

Câu 9. Để ấn định khóa chính thì ta thực hiện?


A. Chọn Create new index -> Primary
B. Chọn Create new index -> Key
C. Chọn Create new index -> Unique
D. Chọn Create new index -> Fulltext

Câu 10. 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?
A. Cần xóa bỏ cấu trúc CSDL và thay bằng cấu trúc khác
B. Thêm các trường vào CSDL
C. 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
D. Đáp án khác

BÀI 20. THỰC HÀNH TẠO LẬP BẢNG CÓ KHÓA NGOÀI


I. LÝ THUYẾT
Câu 1: Các em đã biết, khoá ngoài có tác dụng liên kết dữ liệu giữa các bảng. Khi tạo bảng có khoá ngoài,
việc thiết lập khoá ngoài được thực hiện như thế nào?

Trang 25
Trả lời:
Khi tạo bảng trong cơ sở dữ liệu có hỗ trợ khoá ngoài (foreign key), việc thiết lập khoá ngoài được thực hiện
bằng cách xác định cột trong bảng hiện tại là khoá ngoài, và chỉ định bảng mà khoá ngoài này tham chiếu đến
(bảng gốc).

I. KHAI BÁO BẢNG BANNHAC VỚI CÁC TRƯỜNG IDBANNHAC, TENBANNHAC


- Chọn thẻ Tạo mới, chọn Bảng. Nhập tên: bannhac, chọn Thêm mới để thêm trường dữ liệu, một trường với
tên mặc định Column1 sẽ xuất hiện phía dưới.
- Nhập tên: idBannhac, chọn kiểu dữ liệu INT, bỏ đánh dấu ô Allow NULL, nháy chuột vào ô No default để
chọn giá trị mặc định là AUTO_INCREMENT.
- Để khai báo thêm trường tiếp theo, nhấn Ctrl+Insert hoặc nháy nút phải chuột vào phần dưới dòng idBannhac
và chọn Add column.
- Nhập: tenBannhac, chọn kiểu VARCHAR, độ dài 255, giá trị mặc định là kí tự rỗng ".

II. KHAI BÁO CÁC TRƯỜNG LÀ KHÓA NGOÀI


- Các trường là khóa ngoài của bảng là các trường tham chiếu đến một trường khóa chính (k) của một bảng
khác vì vậy cần được khai báo giá trị mặc định phù hợp với giá trị tương ứng của k.
- Ví dụ bảng bannhac, trường idNhacsi tham chiếu đến trường idNhacsi (kiểu INT) của bảng nhacsi nên giá trị
của trường này cũng là INT và giá trị mặc định là một số nguyên, chẳng hạn số 0.

III. KHAI BÁO CÁC TRƯỜNG KHÓA


a) Khai báo khóa chính: idBannhac
- Nháy chuột phải chuột vào ô idBannhac, chọn Create new index, chọn PRIMARY.
b) Khai báo khóa cấm trùng lặp
- Cặp (tenBannhac, idNhacsi) không được trùng lặp giá trị nên phải khai báo khóa cấm trùng lặp. Đánh dấu
hai trường này, nháy nút phải chuột vào cùng đánh dấu và chọn Create new index, chọn UNIQUE.
c) Khai báo các khóa ngoài
- Để khai báo khóa ngoài idNhacsi, chọn thẻ Foreign keys.
- Nháy chuột vào ô dưới dòng Columns và chọn trường khóa ngoài là idNhacsi rồi chọn OK.
- Nháy chuột vào ô phía dưới Reference table để chọn bảng tham chiếu là nhacsi và chọn OK.
- Tiếp theo chọn trường tham chiếu trong bảng nhacsi.
- Cuối cùng nháy chuột chọn Lưu để kết thúc khai báo và khởi tạo bảng bannhac.

LUYỆN TẬP
Câu 1: Hãy tạo lập bảng banthuam.

Trang 26
Trả lời:
Tạo bảng banthuam: Nháy nút phải chuột ở vùng danh sách các CSDL đã có, chọn thẻ tạo mới, chọn Bảng.
Nhập tên: Banthuam, chọn thêm mới để thêm trường: idbanthuam, idbannhac, idcasi và Khai báo khóa chính
và lưu bảng.

VẬN DỤNG
Câu 1: Hãy tạo lập bảng Quận/Huyện trong CSDL quản lí tên Quận/Huyện, Tỉnh/Thành phố.
Trả lời:
Tạo bảng quanhuyen: Nháy nút phải chuột ở vùng danh sách các CSDL đã có, chọn thẻ tạo mới, chọn Bảng.
Nhập tên: quanhuyen, chọn thêm mới để thêm trường: idquanhuyen, tenquanhuyen, dientich, danso. Khai báo
khóa chính và lưu bảng.

II. HỆ THỐNG BÀI TẬP TỰ LUẬN


Câu 1. Bảng banthuam có các trường nào dưới đây?
• idbanthuam
• idbannhac
• idcasi

Câu 2. Để tạo bảng banthuam thì em cần?


• Nháy nút phải chuột ở vùng danh sách các CSDL đã có, chọn thẻ tạo mới, chọn Bảng
• Nhập tên: Banthuam
• Thêm các trường của bảng

III HỆ THỐNG BÀI TẬP TRẮC NGHIỆM


Câu 1. Khoá ngoài có tác dụng?
A. Thể hiện dữ liệu chính
B. Liên kết các dữ liệu trong bảng với nhau
C. Liên kết dữ liệu giữa các bảng
D. Cả ba đáp án trên đều đúng

Câu 2. Vệc thiết lập khoá ngoài được thực hiện như thế nào?
A. Việc thiết lập khoá ngoài được thực hiện bằng cách xác định cột trong bảng hiện tại là khoá ngoài
B. Việc thiết lập khoá ngoài được thực hiện bằng cách chỉ định bảng mà khoá ngoài này tham chiếu đến (bảng
gốc)
C. Việc thiết lập khoá ngoài được thực hiện bằng cách xác định cột trong bảng hiện tại là khoá ngoài, và chỉ
Trang 27
định bảng mà khoá ngoài này tham chiếu đến (bảng gốc)
D. Cả ba đáp án trên đều sai

Câu 3. Để chọn giá trị mặc định là AUTO_INCREMENT thì nháy chuột vào ô?
A. Allow NULL
B. Add column
C. No default
D. Đáp án khác

Câu 4. Các trường là khóa ngoài của bảng là ?


A. Các dữ liệu trong một cột liên kết đến một cột của bảng khác
B. Các ô trong bảng liên kết đến một ô của bảng khác
C. Các trường tham chiếu đến một trường khóa chính của bảng khác
D. Cả ba đáp án trên đều đúng

Câu 5. Cần khai báo giá trị mặc định phù hợp với?
A. Giá trị tương ứng của hàng
B. Giá trị tương ứng của cột
C. Giá trị tương ứng của k
D. Đáp án khác

Câu 6. Tên các trường không được trùng lặp giá trị nên phải khai báo khóa?
A. Chính
B. Phụ
C. Cấm trùng lặp
D. Đáp án khác

Câu 7. Để khai báo khóa cấm trùng lặp ta dùng?


A. Chọn Create new index -> Primary
B. Chọn Create new index -> Key
C. Chọn Create new index -> Unique
D. Chọn Create new index -> Fulltext

Câu 8. Để khai báo khóa ngoài chọn thẻ?


A. "Create database"

Trang 28
B. "Create new"
C. "Root"
D. Foreign keys

Câu 9. Để chọn bảng tham chiếu ta chọn ô?


A. "Create database"
B. "Create new"
C. Reference table
D. Foreign keys

Câu 10. Để tạo bảng mới trong HeidiSQL, em chọn?


A. "Create database"
B. "Root"
C. "Create new"
D. Đáp án khác

BÀI 21. THỰC HÀNH CẬP NHẬT VÀ TRUY XUẤT DỮ LIỆU CÁC BẢNG
I. LÝ THUYẾT
Câu 1: Cập nhật và truy xuất dữ liệu là hai công việc chính khi làm việc với một CSDL. HeidiSQL hỗ trợ việc
thực hiện các công việc đó như thế nào với những bảng đơn giản, không có khoá ngoài?
Trả lời:
HeidiSQL là một công cụ quản lý CSDL mã nguồn mở hỗ trợ việc thực hiện cập nhật và truy xuất dữ liệu trong
các bảng đơn giản không có khoá ngoài theo các bước sau:
Truy xuất dữ liệu: Bằng cách chọn bảng cần truy xuất và sử dụng truy vấn SQL, bạn có thể truy xuất dữ liệu
trong bảng.
Cập nhật dữ liệu: HeidiSQL cung cấp giao diện đồ họa cho phép bạn chỉnh sửa, thêm mới hoặc xoá dữ liệu
trong các bảng.

I. THÊM MỚI DỮ LIỆU VÀO BẢNG NHACSI


- Chọn bảng nhacsi, chọn thẻ Dữ liệu, ta thấy hai trường idNhacsi và tenNhacsi nhưng chưa có dữ liệu.
- Để thêm vào một hàng dữ liệu mới có thể nhấn phím Insert hoặc chọn biểu tượng hay nháy nút phải chuột
lên vùng dữ liệu của bảng và chọn Chèn hàng. Một hàng dữ liệu rỗng sẽ xuất hiện. Tiếp theo nháy đúp chuột
vào từng ô trên hàng đó để nhập dữ liệu tương ứng cho từng trường.

Trang 29
- Trường idNhacsi có kiểu INT, AUTO_INCREMENT (tự động điền giá trị) nên không cần nhập dữ liệu cho
trường này. Nháy đúp chuột vào ô ở cột tenNhacsi để nhập tên Nhạc sĩ, nhấn phím Enter, sau đó nhấn phím
Insert để nhập hàng mới.
- Tiếp tục thực hành nhập thêm dữ liệu để nắm vững những thao tác nhập dữ liệu.

II. CHỈNH SỬA DỮ LIỆU TRONG BẢNG NHACSI


- Nháy đúp chuột vào ô dữ liệu cần sửa và nhập lại.

III. XÓA DÒNG DỮ LIỆU TRONG BẢNG NHACSI


- Để xóa các dòng dữ liệu trong bảng nhacsi, hãy đánh dấu những dòng muốn chọn.
- Nhấn tổ hợp phím Ctrl+Delete trên bàn phím hoặc chọn biểu tượng để xóa. Phần mềm sẽ có lời nhắc yêu cầu
khẳng định muốn xóa. Nếu chắc chắn muốn xóa, nháy chuột chọn OK.

LUYỆN TẬP
Câu 1: Cập nhật dữ liệu vào bảng casi.
Trả lời:
Bước 1: Tạo bảng casi
Bước 2: Chọn add để cập nhật dữ liệu cho bảng casi

Câu 2: Truy xuất dữ liệu bảng casi theo các tiêu chí khác nhau.
Trả lời:
Để truy xuất dữ liệu từ bảng "casi" theo các tiêu chí khác nhau, bạn có thể sử dụng ngôn ngữ truy vấn cơ sở dữ
liệu (SQL) để tạo các câu truy vấn phù hợp. Dưới đây là một số ví dụ về cách truy xuất dữ liệu từ bảng "casi"
theo các tiêu chí khác nhau:
Truy xuất tất cả các dòng dữ liệu từ bảng "casi":
sqlCopy code
SELECT * FROM casi;

Truy xuất dữ liệu các ca sĩ có "idcasi" là 1:


SELECT * FROM casi WHERE idcasi = 1;

Truy xuất dữ liệu các ca sĩ có "tencasi" chứa từ khóa "Hoa":


SELECT * FROM casi WHERE tencasi LIKE '%Hoa%';

Truy xuất dữ liệu các ca sĩ có "tencasi" bắt đầu bằng chữ "N":

Trang 30
SELECT * FROM casi WHERE tencasi LIKE 'N%';

Truy xuất dữ liệu các ca sĩ theo thứ tự tên theo thứ tự từ A đến Z:
SELECT * FROM casi ORDER BY tencasi ASC;

Truy xuất dữ liệu các ca sĩ theo thứ tự "idcasi" giảm dần:


SELECT * FROM casi ORDER BY idcasi DESC;

Truy xuất dữ liệu các ca sĩ có "idcasi" nằm trong danh sách (1, 2, 3):
SELECT * FROM casi WHERE idcasi IN (1, 2, 3);

VẬN DỤNG
Câu 1: Thực hành cập nhật và truy xuất dữ liệu bảng Tỉnh/Thành phố trong CSDL quản lí danh sách tên
Quận/Huyện, Tỉnh/Thành phố.
Trả lời:
Thực hành cập nhật dữ liệu bảng Tỉnh/Thành phố trong CSDL quản lí danh sách tên Quận/Huyện, Tỉnh/Thành
phố:
Bước 1: Tạo bảng Tỉnh/Thành phố
Bước 2: Cập nhật dữ liệu:
Truy xuất dữ liệu:
SELECT matinh_thanhpho, tentinh_thanhpho
FROM Tinh_Thanhpho;
II. HỆ THỐNG BÀI TẬP TỰ LUẬN
Câu 1. Đâu là công việc chính khi làm việc với một CSDL?
• Cập nhật dữ liệu
• Truy xuất dữ liệu

Câu 2. Để xóa các dòng dữ liệu trong bảng, ta thực hiện?


• Đánh dấu những dòng muốn chọn và nhấn tổ hợp phím Ctrl+Delete
• Đánh dấu những dòng muốn chọn và chọn biểu tượng x màu đỏ

III HỆ THỐNG BÀI TẬP TRẮC NGHIỆM


Câu 1. HeidiSQL hỗ trợ việc thực hiện Cập nhật dữ liệu như thế nào với những bảng đơn giản, không có khoá
ngoài??
A. Bằng cách chọn bảng cần chỉnh sửa, bạn có thể thêm mới, chỉnh sửa hoặc truy xuất dữ liệu trong bảng
Trang 31
B. Bằng cách chọn bảng cần truy xuất và sử dụng truy vấn SQL, bạn có thể truy xuất dữ liệu trong bảng
C. HeidiSQL cung cấp giao diện đồ họa cho phép bạn chỉnh sửa, thêm mới hoặc xoá dữ liệu trong các bảng
D. Cả ba đáp án trên đều sai

Câu 2. HeidiSQL hỗ trợ việc thực hiện Truy xuất dữ liệu như thế nào với những bảng đơn giản, không có khoá
ngoài??
A. Bằng cách chọn bảng cần chỉnh sửa, bạn có thể thêm mới, chỉnh sửa hoặc truy xuất dữ liệu trong bảng
B. HeidiSQL cung cấp giao diện đồ họa cho phép bạn chỉnh sửa, thêm mới hoặc xoá dữ liệu trong các bảng
C. Bằng cách chọn bảng cần truy xuất và sử dụng truy vấn SQL, bạn có thể truy xuất dữ liệu trong bảng
D. Cả ba đáp án trên đều sai

Câu 3. Để truy xuất dữ liệu từ bảng "casi" theo các tiêu chí khác nhau, có thể sử dụng?
A. Trực tiếp lọc ra các dữ liệu thủ công
B. Đặt lệnh và thực hiện lệnh
C. Ngôn ngữ truy vấn cơ sở dữ liệu (SQL) để tạo các câu truy vấn phù hợp
D. Cả ba đáp án trên đều đúng

Câu 4. Muốn truy xuất tất cả các dòng dữ liệu từ bảng "casi" ta dùng ?
A. SELECT * FROM casi WHERE tencasi LIKE '%Hoa%';
B. SELECT * FROM casi WHERE idcasi = 1;
C. SELECT * FROM casi;
D. SELECT * FROM casi WHERE tencasi LIKE 'N%';

Câu 5. Muốn truy xuất các ca sĩ theo thứ tự tên theo thứ tự từ A đến Z ta dùng ?
A. SELECT * FROM casi WHERE tencasi LIKE '%Hoa%';
B. SELECT * FROM casi WHERE idcasi = 1;
C. SELECT * FROM casi ORDER BY tencasi ASC;
D. SELECT * FROM casi WHERE tencasi LIKE 'N%';

Câu 6. Muốn truy xuất dữ liệu các ca sĩ có "idcasi" nằm trong danh sách (1, 2, 3) ta dùng ?
A. SELECT * FROM casi WHERE tencasi LIKE '%Hoa%';
B. SELECT * FROM casi WHERE idcasi = 1;
C. SELECT * FROM casi WHERE idcasi IN (1, 2, 3);
D. SELECT * FROM casi WHERE tencasi LIKE 'N%';

Trang 32
Câu 7. Muốn truy xuất dữ liệu các ca sĩ theo thứ tự "idcasi" giảm dần ta dùng ?
A. SELECT * FROM casi WHERE tencasi LIKE '%Hoa%';
B. SELECT * FROM casi WHERE idcasi = 1;
C. SELECT * FROM casi ORDER BY idcasi DESC;
D. SELECT * FROM casi WHERE tencasi LIKE 'N%';

Câu 8. Muốn truy xuất dữ liệu các ca sĩ có "idcasi" là 1 ta dùng ?


A. SELECT * FROM casi WHERE tencasi LIKE '%Hoa%';
B. SELECT * FROM casi WHERE idcasi = 1;
C. SELECT * FROM casi;
D. SELECT * FROM casi WHERE tencasi LIKE 'N%';

Câu 9. Muốn truy xuất dữ liệu các ca sĩ có "tencasi" bắt đầu bằng chữ "N" ta dùng ?
A. SELECT * FROM casi WHERE tencasi LIKE '%Hoa%';
B. SELECT * FROM casi WHERE idcasi = 1;
C. SELECT * FROM casi;
D. SELECT * FROM casi WHERE tencasi LIKE 'N%';

Câu 10. Muốn truy xuất dữ liệu các ca sĩ có "tencasi" chứa từ khóa "Hoa" ta dùng ?
A. SELECT * FROM casi WHERE tencasi LIKE '%Hoa%';
B. SELECT * FROM casi WHERE idcasi = 1;
C. SELECT * FROM casi;
D. SELECT * FROM casi WHERE tencasi LIKE 'N%';

BÀI 22. THỰC HÀNH CẬP NHẬT BẢNG DỮ LIỆU CÓ THAM CHIẾU
I. LÝ THUYẾT
Câu 1: Khi cập nhật một bảng có khoá ngoài, dữ liệu của trường khoá ngoài phải là dữ liệu tham chiếu được
đến một trường khoá chính của một bảng tham chiếu. HeidiSQL hỗ trợ kiểm soát điều này như thế nào?
Trả lời:
HeidiSQL cung cấp tính năng hỗ trợ kiểm soát khóa ngoài trong quá trình cập nhật dữ liệu trên bảng, giúp đảm
bảo tính nhất quán và tính toàn vẹn của dữ liệu trong CSDL.

I. NHIỆM VỤ 1. CẬP NHẬT BẢNG BANNHAC


a) Thêm mới dữ liệu vào bảng bannhac

Trang 33
- Chọn bảng bannhac, nháy chuột chọn thẻ Dữ liệu, ta thấy các trường idBannhac, tenBannhac, idNhacsi nhưng
chưa có dữ liệu.
- Thực hiện nhập dữ liệu.
- Trường idNhacsi có kiểu INT, AUTO_INCREMENT nên không cần nhập dữ liệu cho trường này. Nháy đúp
chuột vào ô ở trường tenBannhac để nhập tên bản nhạc.
- Trường idNhacsi là trường khóa ngoài, đã được khia báo tham chiếu đến trường idNhacsi của bảng nhacsi,
vì vậy để đảm bảo tính nhất quán, giá trị hợp lệ chỉ có thể lấy từ các giá trị của idNhacsi có trong bảng nhacsi.
Nháy đúp chuột vào ô nhập trường idNhacsi và chọn tên nhạc sĩ trong hộp danh sách.

b) Sửa chữa, cập nhật dữ liệu trong bảng bannhac


- Thao tác sửa chữa dữ liệu trong bảng bannhac nếu phát hiện có sai sót, chỉ cần nháy đúp chuột vào ô dữ liệu
muốn sửa.

c) Xóa dữ liệu trong bảng bannhac


- Thực hiện tương tự các bước ở Bài 21 để xóa các dòng dữ liệu trong bảng bannhac.

d) Xóa dữ liệu trong bảng nhacsi


- Bảng bannhac đã có dữ liệu với trường idNhacsi tham chiếu đến trường idNhacsi của bảng nhacsi. Do vậy ta
không thể tùy tiện xóa các dòng của bảng nhacsi. MySQL sẽ kiểm tra và ngăn chặn việc xóa các dòng trong
bảng nhacsi mà giá trị trường idNhacsi đã có trong trường idNhacsi của bảng bannhac.

e) Truy xuất dữ liệu trong bảng bannhac


- Việc truy xuất dữ liệu trong bảng bannhac là hoàn toàn tương tự như truy xuất dữ liệu trong bảng nhacsi.

II. NHIỆM VỤ 2
- Cách tương tác với giao diện Quản lí danh sách các bản nhạc:
+ Để nhập dữ liệu bản nhạc mới, người dùng phải nhập tên bản nhạc, chọn nhạc sĩ từ hộp danh sách phía dưới
sau đó chọn Nhập.
+ Để tìm một bản nhạc có thể nhập vài từ của tên bản nhạc, cũng có thể chọn nhạc sĩ nếu biết, sau đó nháy
chuột chọn Tìm.

+ Danh sách các bản nhạc đã có trong CSDL được thể hiện ở bảng phía dưới thành nhiều trang, mỗi trang 10
dòng. Có thể nhảy chuột vào hộp danh sách trang đề chọn trang.

Trang 34
+ Muốn sửa một bản nhạc nào đó, nháy chuột vào phím radio trên dòng đó, thông tin của bản nhạc sẽ được
hiển thị ở phần phía trên của giao diện để người dùng sửa chữa, thay đổi,... Nháy chuột chọn Nhập để lưu lại
kết quả thay đổi.
+ Muốn xoá một hay nhiều bản nhạc nào đó trong danh sách đã có: nháy chuột vào các checkbox ở đầu các
dòng tương ứng và chọn Xoá.

LUYỆN TẬP
Câu 1: Cập nhật dữ liệu vào bảng banthuam.
Trả lời:
Bước 1: Mở CSDL Mymusic, mở bảng banthuam để cập nhật dữ liệu
Bước 2: Cập nhật dữ liệu

Câu 2: Truy xuất dữ liệu bảng banthuam theo các tiêu chí khác nhau.
Trả lời:
Dưới đây là một số ví dụ về truy vấn SQL để truy xuất dữ liệu từ bảng "banthuam" với các tiêu chí khác nhau:
Truy xuất tất cả dữ liệu từ bảng "banthuam":
SELECT * FROM banthuam;

Truy xuất dữ liệu từ bảng "banthuam" với điều kiện cụ thể trên trường "idbannhac":
SELECT * FROM banthuam WHERE idbannhac = 1; -- Giả sử giá trị idbannhac cần tìm là 1

Truy xuất dữ liệu từ bảng "banthuam" với điều kiện kết hợp giữa nhiều trường:
SELECT * FROM banthuam WHERE idcasi = 2 -- Giả sử giá trị idcasi cần tìm là 2 AND banthuam >= 100;
-- Giả sử giá trị banthuam cần tìm là lớn hơn hoặc bằng 100

Truy xuất chỉ một số trường cụ thể từ bảng "banthuam":


SELECT idbannhac, idcasi FROM banthuam;

Truy xuất dữ liệu từ bảng "banthuam" sắp xếp theo một trường cụ thể:
SELECT * FROM banthuam ORDER BY idbannhac ASC; -- Giả sử muốn sắp xếp theo trường idbannhac
tăng dần.

VẬN DỤNG
Câu 1: Hãy thực hành cập nhật và truy xuất bảng Quận/Huyện trong CSDL quản lí danh sách tên các
Quận/Huyện, Tỉnh/Thành phố.

Trang 35
Trả lời:
Mở bảng quanhuyen để cập nhật dữ liệu:
Truy xuất bảng quanhuyen:
Truy xuất tất cả dữ liệu từ bảng "quanhuyen":
SELECT * FROM quanhuyen;

Truy xuất dữ liệu từ bảng "quanhuyen" với điều kiện cụ thể trên trường "idquanhuyen":
SELECT * FROM quanhuyen WHERE idquanhuyen = 1; -- Giả sử giá trị idquanhuyen cần tìm là 1

Truy xuất dữ liệu từ bảng "quanhuyen" với điều kiện kết hợp giữa nhiều trường:
SELECT * FROM quanhuyen WHERE danso > 1000000 -- Giả sử giá trị danso cần tìm là lớn hơn 1.000.000
AND dientich < 1000; -- Giả sử giá trị dientich cần tìm là nhỏ hơn 1000

Truy xuất chỉ một số trường cụ thể từ bảng "quanhuyen":


SELECT idquanhuyen, tenquanhuyen FROM quanhuyen;

Truy xuất dữ liệu từ bảng "quanhuyen" sắp xếp theo một trường cụ thể:
SELECT * FROM quanhuyen ORDER BY danso DESC; -- Giả sử muốn sắp xếp theo trường danso giảm dần
(DESC)

II. HỆ THỐNG BÀI TẬP TỰ LUẬN


Câu 1. Nếu giá trị của trường khoá ngoài không hợp lệ thì?
• HeidiSQL sẽ thông báo lỗi
• Không cho phép bạn thực hiện thao tác cập nhật

Câu 2. Việc HeidiSQL hỗ trợ kiểm soát việc cập nhật dữ liệu của trường khoá ngoài giúp?
• Đảm bảo tính toàn vẹn dữ liệu trong các bảng có khoá ngoài
• Tránh việc cập nhật dữ liệu không đúng hoặc gây ra sự cố

III HỆ THỐNG BÀI TẬP TRẮC NGHIỆM


Câu 1. Khi cập nhật một bảng có khoá ngoài, dữ liệu của trường khoá ngoài phải là?
A. Biểu thức logic một bảng khác
B. Biểu thức kí tự liên kết với một ô trong bảng
C. Dữ liệu tham chiếu được đến một trường khoá chính của một bảng tham chiếu
D. Cả ba đáp án trên đều đúng
Trang 36
Câu 2. HeidiSQL hỗ trợ kiểm soát việc cập nhật dữ liệu của trường khoá ngoài bằng cách?
A. Đảm bảo rằng giá trị của trường khoá chính phải là giá trị tham chiếu đến một trường khoá chính của bảng
tham chiếu
B. Đảm bảo rằng giá trị của trường khoá ngoài phải là giá trị tham chiếu đến một bảng khác
C. Đảm bảo rằng giá trị của trường khoá ngoài phải là giá trị tham chiếu đến một trường khoá chính của bảng
tham chiếu
D. Cả ba đáp án trên đều sai

Câu 3. Khi người dùng cập nhật dữ liệu trong bảng chứa khoá ngoài, HeidiSQL sẽ?
A. Kiểm tra giá trị của các trường trong bảng để đảm bảo rằng nó phải là giá trị tham chiếu đến một trường
khoá chính của bảng tham chiếu
B. Kiểm tra giá trị của trường khoá ngoài để đảm bảo rằng nó phải là giá trị tham chiếu đến một trường khoá
chính của bảng tham chiếu
C. Kiểm tra các giá trị trong bảng
D. Cả ba đáp án trên đều đúng

Câu 4. Để truy vấn dữ liệu trong sql ta sử dụng?


A. Mệnh đề ORDER BY
B. Cú pháp câu lệnh SELECT
C. Dùng toán tử BETWEEN…AND
D. Đáp án khác

Câu 5. Để truy xuất dữ liệu từ bảng "banthuam" với điều kiện cụ thể trên trường "idbannhac" ta dùng câu lệnh?
A. SELECT * FROM banthuam;
B. SELECT * FROM banthuam ORDER BY idbannhac ASC;
C. SELECT idbannhac, idcasi FROM banthuam;
D. SELECT * FROM banthuam WHERE idbannhac = 1; -- Giả sử giá trị idbannhac cần tìm là 1

Câu 6. Để truy xuất tất cả dữ liệu từ bảng "banthuam" ta dùng câu lệnh?
A. SELECT * FROM banthuam;
B. SELECT * FROM banthuam ORDER BY idbannhac ASC;
C. SELECT idbannhac, idcasi FROM banthuam;
D. SELECT * FROM banthuam WHERE idbannhac = 1; -- Giả sử giá trị idbannhac cần tìm là 1

Câu 7. Để truy xuất dữ liệu từ bảng "banthuam" với điều kiện kết hợp giữa nhiều trường ta dùng câu lệnh?

Trang 37
A. SELECT * FROM banthuam WHERE idcasi = 2 -- Giả sử giá trị idcasi cần tìm là 2 AND banthuam >=
100; -- Giả sử giá trị banthuam cần tìm là lớn hơn hoặc bằng 100
B. SELECT * FROM banthuam ORDER BY idbannhac ASC;
C. SELECT idbannhac, idcasi FROM banthuam;
D. SELECT * FROM banthuam WHERE idbannhac = 1; -- Giả sử giá trị idbannhac cần tìm là 1

Câu 8. Để truy xuất dữ liệu từ bảng "banthuam" sắp xếp theo một trường cụ thể ta dùng câu lệnh?
A. SELECT * FROM banthuam;
B. SELECT * FROM banthuam ORDER BY idbannhac ASC;
C. SELECT * FROM banthuam ORDER BY idbannhac ASC; -- Giả sử muốn sắp xếp theo trường idbannhac
tăng dần
D. SELECT * FROM banthuam WHERE idbannhac = 1; -- Giả sử giá trị idbannhac cần tìm là 1

Câu 9. Để Truy xuất tất cả dữ liệu từ bảng "quanhuyen" ta dùng câu lệnh?
A. SELECT * FROM quanhuyen WHERE danso > 1000000 -- Giả sử giá trị danso cần tìm là lớn hơn 1.000.000
AND dientich < 1000; -- Giả sử giá trị dientich cần tìm là nhỏ hơn 1000
B. SELECT * FROM quanhuyen WHERE idquanhuyen = 1; -- Giả sử giá trị idquanhuyen cần tìm là 1
C. SELECT * FROM quanhuyen;
D. SELECT idquanhuyen, tenquanhuyen FROM quanhuyen;

Câu 10. Để Truy xuất dữ liệu từ bảng "quanhuyen" với điều kiện cụ thể trên trường "idquanhuyen" ta dùng câu
lệnh?
A. SELECT * FROM quanhuyen WHERE danso > 1000000 AND dientich < 1000;
B. SELECT * FROM quanhuyen WHERE idquanhuyen = 1;
C. SELECT * FROM quanhuyen;
D. SELECT idquanhuyen, tenquanhuyen FROM quanhuyen;

BÀI 23. THỰC HÀNH TRUY XUẤT DỮ LIỆU QUA LIÊN KẾT CÁC BẢNG
I. LÝ THUYẾT
Câu 1: Các bảng có thể có quan hệ với nhau, thể hiện qua khoá ngoại. Nhờ vậy có thể truy xuất dữ liệu từ các
bảng khác theo môi quan hệ. Việc này sẽ được thực hiện cụ thể như thế nào trong giao diện của một hệ
QTCSDL?
Trả lời:
Trong giao diện của một hệ quản trị CSDL, để truy xuất dữ liệu từ các bảng khác theo mối quan hệ thì người
dùng có thể sử dụng các công cụ truy vấn dữ liệu như truy vấn SQL hoặc các công cụ đồ họa. Các công cụ này

Trang 38
thường cung cấp các tính năng đồ họa giúp người dùng thiết kế và tạo các mối quan hệ giữa các bảng và cho
phép người dùng truy xuất dữ liệu từ các bảng khác nhau bằng cách sử dụng các truy vấn SQL.
Cụ thể, để truy xuất dữ liệu từ các bảng có mối quan hệ với nhau, người dùng cần sử dụng câu lệnh JOIN để
kết hợp các bảng với nhau theo khoá ngoài. Câu lệnh JOIN cho phép bạn truy xuất dữ liệu từ nhiều bảng cùng
một lúc bằng cách ghép các bảng lại với nhau theo khoá ngoài.

I. NHIỆM VỤ 1. LẬP DANH SÁCH CÁC BẢN NHẠC VÀ TÊN TÁC GIẢ
- Để lấy ra danh sách các bản nhạc gồm tenBannhac, tenNhacsi, dùng câu truy vấn:
SELECT bannhac.tenBannhac, nhacsi.tenNhacsi
FROM bannhac INNER JOIN nhacsi ON bannhac.idNhacsi = nhacsi.idNhacsi;

II. NHIỆM VỤ 2. LẬP DANH SÁCH CÁC BẢN THU ÂM VỚI ĐỦ CÁC THÔNG TIN IDBANTHUAM,
TENBANNHAC, TENCASI
- Câu truy vấn đúng là:
SELECT banthuam.idBanthuam, bannhac.tenBannhac, casi.tenCasi
FROM banthuam
INNER JOIN bannhac ON banthuam.idBannhac = bannhac.idBannhac
INNER JOIN casi ON banthuam.idCasi = casi.idCasi

III. NHIỆM VỤ 3. TÌM HIỂU MỘT CHỨC NĂNG CỦA ỨNG DỤNG "QUẢN LÝ DỮ LIỆU ÂM
NHẠC"
- Cách tương tác với giao diện này tương tự như với giao diện "Quản lí danh sách các bản nhạc" ở Bài 22, chỉ
khác ở chỗ khi nhập bản thu âm, chỉ có thể chọn tên bản nhạc, tên ca sĩ từ hộp danh sách với những tên đã có
trong CSDL. Danh sách các bản thu âm có đầy đủ các thông tin tường minh tên bản nhạc, tên nhạc sĩ và tên ca
sĩ thể hiện.

LUYỆN TẬP
Câu 1: Lấy danh sách các bản thu âm với đầy đủ các thông tin, idBanthuam, tenBannhac, ten Theloai,
tenNhacsi, tenCasi.
Trả lời:
SELECT bt.idbannhac AS idBanthuam,
bn.tenbannhac AS tenBannhac,
tl.tentheloai AS tenTheloai,
ns.tennhacsi AS tenNhacsi,
cs.tencasi AS tenCasi

Trang 39
FROM banthuam bt
JOIN bannhac bn ON bt.idbannhac = bn.idbannhac
JOIN nhacsi ns ON bn.idnhacsi = ns.idnhacsi
JOIN casi cs ON bt.idcasi = cs.idcasi
JOIN theloai tl ON bn.idtheloai = tl.idtheloai;

VẬN DỤNG
Câu 1: Lấy danh sách các bản thu âm với các thông tin idBanthuam, tenBannhac, tenTheloai, tenCasi các bản
nhạc của nhạc sĩ Văn Cao.
Trả lời:
SELECT bt.idbannhac AS idBanthuam,
bn.tenbannhac AS tenBannhac,
tl.tentheloai AS tenTheloai,
cs.tencasi AS tenCasi
FROM banthuam bt
JOIN bannhac bn ON bt.idbannhac = bn.idbannhac
JOIN nhacsi ns ON bn.idnhacsi = ns.idnhacsi
JOIN casi cs ON bt.idcasi = cs.idcasi
JOIN theloai tl ON bn.idtheloai = tl.idtheloai
WHERE ns.tennhacsi = 'Văn Cao';

Câu 2: Lấy danh sách các bản thu âm với các thông tin idBanthuam, tenBannhac, tenTacgia, tenTheloai các
bản nhạc do ca sĩ Lê Dung thể hiện.
Trả lời:
SELECT bt.idbannhac AS idBanthuam,
bn.tenbannhac AS tenBannhac,
ns.tennhacsi AS tenTacgia,
tl.tentheloai AS tenTheloai
FROM banthuam bt
JOIN bannhac bn ON bt.idbannhac = bn.idbannhac
JOIN nhacsi ns ON bn.idnhacsi = ns.idnhacsi
JOIN casi cs ON bt.idcasi = cs.idcasi
JOIN theloai tl ON bn.idtheloai = tl.idtheloai
WHERE cs.tencasi = 'Lê Dung';

Trang 40
Câu 3: Lấy danh sách các bản thu âm với các thông tin idBanthuam, tenBannhac, tenTacgia, tenCasi các bản
nhạc do ca sĩ Lê Dung thể hiện thuộc thể loại Nhạc trữ tình.
Trả lời:
SELECT bt.idbannhac AS idBanthuam,
bn.tenbannhac AS tenBannhac,
ns.tennhacsi AS tenTacgia,
cs.tencasi AS tenCasi
FROM banthuam bt
JOIN bannhac bn ON bt.idbannhac = bn.idbannhac
JOIN nhacsi ns ON bn.idnhacsi = ns.idnhacsi
JOIN casi cs ON bt.idcasi = cs.idcasi
JOIN theloai tl ON bn.idtheloai = tl.idtheloai
WHERE cs.tencasi = 'Lê Dung' AND tl.tentheloai = 'Nhạc trữ tình';

Câu 4: Thực hành truy xuất bảng Quận/Huyện qua liên kết với bảng Tỉnh/Thành phố.
Trả lời:
Chúng ta có hai bảng trong cơ sở dữ liệu: "tinhthanhpho" và "quanhuyen". Bảng "tinhthanhpho" chứa thông
tin về các tỉnh/thành phố, bao gồm các trường: "id_tinhthanhpho" (khóa chính), "tentinhthanhpho" (tên
tỉnh/thành phố), "quocgia" (quốc gia). Bảng "quanhuyen" chứa thông tin về các quận/huyện, bao gồm các
trường: "id_quanhuyen" (khóa chính), "tenquanhuyen" (tên quận/huyện), "id_tinhthanhpho" (khóa ngoại liên
kết với "id_tinhthanhpho" trong bảng "tinhthanhpho").
Để truy xuất thông tin của quận/huyện kèm theo thông tin của tỉnh/thành phố tương ứng, ta có thể sử dụng truy
vấn SQL sau:
SELECT qh.tenquanhuyen AS tenQuanHuyen,
tp.tentinhthanhpho AS tenTinhThanhPho,
tp.quocgia AS quocGia
FROM quanhuyen qh
JOIN tinhthanhpho tp ON qh.id_tinhthanhpho = tp.id_tinhthanhpho;

II. HỆ THỐNG BÀI TẬP TỰ LUẬN


Câu 1. Các công cụ truy vấn này thường cung cấp các tính năng đồ họa giúp?
• Người dùng thiết kế
• Cho phép người dùng truy xuất dữ liệu từ các bảng khác nhau bằng cách sử dụng các truy vấn SQL
• Tạo các mối quan hệ giữa các bảng

Trang 41
Câu 2. HeidiSQL có hỗ trợ người dùng khi nhập các câu truy vấn theo phương thức nào?
• Dùng màu sắc để trợ giúp quan sát cú pháp của câu truy vấn
• Khi người dùng nhập một tên bảng và dấu . HeidiSQL sẽ hiển thị ngay danh sách tên các trường của
bảng để người dùng lựa chọn

III HỆ THỐNG BÀI TẬP TRẮC NGHIỆM


Câu 1. Các bảng có thể có quan hệ với nhau, thể hiện qua?
A. Khóa chính
B. Khóa phụ
C. Khóa ngoại
D. Cả ba đáp án trên đều đúng

Câu 2. Nhờ khóa ngoại có thể?


A. Một thiết bị điện tử có khả năng xử lý dữ liệu theo một tập hợp của các mệnh lệnh máy tính (hay câu lệnh)
B. Một thiết bị điện tử có khả năng xử lý dữ liệu theo một tập hợp của các mệnh lệnh máy tính (hay câu lệnh)
đã được chứa sẵn bên trong máy một cách tạm thời
C. Truy xuất dữ liệu từ các bảng khác theo mối quan hệ
D. Cả ba đáp án trên đều sai

Câu 3. Trong giao diện của một hệ quản trị CSDL, để truy xuất dữ liệu từ các bảng khác theo mối quan hệ thì
người dùng có thể?
A. Sử dụng các trường dữ liệu
B. Sử dụng các phần mềm truy vấn dữ liệu như truy vấn SQL
C. Sử dụng các phần mềm truy vấn dữ liệu như truy vấn SQL hoặc các công cụ đồ họa
D. Sử dụng các công cụ truy vấn dữ liệu như truy vấn SQL hoặc các công cụ đồ họa

Câu 4. Để truy xuất dữ liệu từ các bảng có mối quan hệ với nhau thì?
A. Người dùng cần sử dụng khóa chính
B. Người dùng sử dụng các phần mềm thứ ba
C. Người dùng cần sử dụng câu lệnh JOIN để kết hợp các bảng với nhau theo khoá ngoài
D. Đáp án khác

Câu 5. Câu lệnh JOIN cho phép?


A. Bạn xử lý thông tin hiệu quả
B. Bạn sử dụng dữ liệu một cách hợp lý

Trang 42
C. Bạn truy xuất dữ liệu từ nhiều bảng cùng một lúc bằng cách ghép các bảng lại với nhau theo khoá ngoài
D. Đáp án khác

Câu 6. Để lấy tên bảng bằng câu lệnh SELECT, chúng ta có thể sử dụng?
A. Table: ......
B. syntax coloring
C. “information_schema. tables”
D. Đáp án khác

Câu 7. SELECT * là?


A. Xác định cột bạn muốn chọn
B. Nơi bạn muốn trích xuất dữ liệu
C. Bạn muốn chọn tất cả các cột trong bảng
D. Cả ba đáp án trên đều đúng

Câu 8. FROM table là?


A. Bạn muốn chọn tất cả các cột trong bảng
B. Xác định cột bạn muốn chọn
C. Nơi bạn muốn trích xuất dữ liệu
D. Cả ba đáp án trên đều đúng

Câu 9. Dấu * trong SELECT* nghĩa là?


A. Xác định cột bạn muốn chọn
B. Nơi bạn muốn trích xuất dữ liệu
C. Bạn muốn chọn tất cả các cột trong bảng
D. Cả ba đáp án trên đều đúng

Câu 10. Nếu muốn dữ liệu kết xuất có cả hai trường nhằm có thể đối chiếu một cách tường minh thì chỉ cần?
A. Đổi tên hai tên trường ( cùng trường) ở hai bảng để phân biệt
B. Đổi định dạng dữ liệu
C. Đặt các dữ liệu sao cho giống nhau
D. Đáp án khác

Trang 43

You might also like