Câu hỏi lý thuyết ôn tập môn Cơ sở dữ liệu có lời giải | Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh
Câu hỏi lý thuyết ôn tập môn Cơ sở dữ liệu có lời giải của Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh với những kiến thức và thông tin bổ ích giúp sinh viên tham khảo, ôn luyện và phục vụ nhu cầu học tập của mình cụ thể là có định hướng ôn tập, nắm vững kiến thức môn học và làm bài tốt trong những bài kiểm tra, bài tiểu luận, bài tập kết thúc học phần, từ đó học tập tốt và có kết quả cao cũng như có thể vận dụng tốt những kiến thức mình đã học vào thực tiễn cuộc sống. Mời bạn đọc đón xem!
Môn: Cơ sở dữ liệu (DBSY230184)
Trường: Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh
Thông tin:
Tác giả:
Preview text:
lOMoARcPSD| 36625228
• Giải thích khái niệm dữ liệu (data) và cho thí dụ
Dữ liệu (data) là một khái niệm cơ bản trong hệ quản trị cơ sở dữ liệu quan hệ (RDBMS).
Theo định nghĩa, dữ liệu là các sự kiện, hoạt động hay các ghi chép về một đối
tượng, sự vật nào đó mà người sử dụng muốn lưu trữ và quản lý trong hệ thống cơ sở dữ liệu.
Ví dụ: thông tin cá nhân của sinh viên, lịch sử mua hàng của khách hàng, thông
tin sản phẩm, doanh thu bán hàng hàng tháng, v.v.
Trong RDBMS, dữ liệu được tổ chức, lưu trữ và truy xuất dưới dạng các bảng có
quan hệ với nhau. Mỗi bảng chứa các bản ghi (record), mỗi bản ghi lưu trữ các
giá trị dữ liệu của một thực thể nào đó.
Ví dụ bảng SinhViên có các cột MSSV, HọTên, NgàySinh, Lớp, Khoa, đây là các
dữ liệu mô tả thông tin chi tiết của một sinh viên.
Một số đặc điểm của dữ liệu trong RDBMS:
• Dữ liệu được tổ chức thành các cột và hàng có cấu trúc rõ ràng.
• Dữ liệu không bị trùng lặp nhờ sử dụng khóa chính và các ràng buộc toàn vẹn.
• Dữ liệu được lưu trữ riêng biệt với các ứng dụng và bộ xử lý.
• Dữ liệu có quan hệ với nhau giữa các bảng thông qua khóa ngoại.
• Dữ liệu có thể truy vấn, thao tác và báo cáo linh hoạt thông qua ngôn ngữ SQL.
Như vậy, có thể thấy dữ liệu là thành phần cốt lõi, quan trọng nhất trong một
hệ thống quản trị cơ sở dữ liệu, là cơ sở để thực hiện các chức năng khác nhau của hệ thống.
• Giải thích khái niệm thông tin (information)
Thông tin (information) là một khái niệm quan trọng trong khoa học máy tính và công nghệ thông tin.
Theo định nghĩa, thông tin là những dữ liệu đã được xử lý, tổ chức và trình bày
một cách có ý nghĩa, hữu ích cho người sử dụng. Thông tin mang lại giá trị và
lợi ích thiết thực cho người tiếp nhận nó. Ví dụ:
• Dữ liệu: Ngày 20/11/2022, hoá đơn BH29839, sản phẩm A, số lượng 10. lOMoARcPSD| 36625228
• Thông tin: Vào ngày 20/11/2022, đã bán được 10 sản phẩm A có trong hoá đơn BH29839.
Ta thấy, thông tin đã liên kết những dữ liệu lẻ tẻ thành một ý nghĩa có giá trị sử dụng rõ ràng hơn.
Một số đặc điểm của thông tin:
• Có tính cụ thể, rõ ràng, dễ hiểu.
• Đúng ngữ cảnh, phù hợp và liên quan tới người dùng.
• Đầy đủ, trung thực và chính xác.
• Cập nhật, kịp thời và sẵn sàng khi cần.
• Dễ truy nhập, tra cứu và sử dụng.
• Hỗ trợ ra quyết định và giải quyết vấn đề.
Như vậy, có thể thấy thông tin chính là kết quả của việc xử lý và tổ chức dữ liệu
sao cho có ý nghĩa và mang lại lợi ích thiết thực nhất cho người sử dụng. Thông
tin là nền tảng quan trọng để đưa ra các quyết định đúng đắn.
• Định nghĩa về cơ sở dữ liệu
Cơ sở dữ liệu (database) là tập hợp các dữ liệu có tổ chức, được lưu trữ và truy
xuất một cách có hệ thống để phục vụ mục đích cụ thể. Cụ thể hơn:
• Cơ sở dữ liệu là tập hợp có cấu trúc các dữ liệu liên quan với nhau, được
lưu trữ trên máy tính để phục vụ nhu cầu tra cứu và sử dụng thông tin của người dùng.
• Cơ sở dữ liệu được thiết kế, tổ chức và quản lý bởi hệ quản trị cơ sở dữ liệu (DBMS).
• Dữ liệu trong cơ sở dữ liệu được mô tả, truy xuất và thao tác thông qua
một ngôn ngữ đặc biệt gọi là ngôn ngữ truy vấn (Query Language).
• Các ứng dụng của cơ sở dữ liệu rất phong phú, từ quản lý doanh nghiệp,
ngân hàng, bệnh viện, cho tới thương mại điện tử, mạng xã hội, v.v.
Như vậy, có thể hiểu cơ sở dữ liệu là nơi lưu trữ và quản lý dữ liệu một cách có
hệ thống phục vụ nhu cầu sử dụng thông tin trong các ứng dụng cụ thể. Cơ
sở dữ liệu là một thành phần không thể thiếu trong hệ thống thông tin hiện đại.
• Định nghĩa về Hệ quản trị cơ sở dữ liệu (DBMS) lOMoARcPSD| 36625228
Hệ quản trị cơ sở dữ liệu (Database Management System - DBMS) là phần mềm
hệ thống được thiết kế để quản lý việc tạo lập, duy trì và sử dụng cơ sở dữ liệu. Cụ thể hơn:
• DBMS là phần mềm cho phép người dùng tạo, cập nhật, quản trị cơ sở
dữ liệu một cách thuận tiện và hiệu quả.
• DBMS quản lý việc truy cập, bảo mật và toàn vẹn dữ liệu.
• DBMS hỗ trợ ngôn ngữ truy vấn (SQL) để truy xuất dữ liệu một cách linh hoạt.
• Các chức năng chính của DBMS bao gồm: định nghĩa dữ liệu, truy vấn,
cập nhật, báo cáo, sao lưu phục hồi, đồng bộ hóa, v.v.
• Các DBMS phổ biến hiện nay là Oracle, MySQL, Microsoft SQL Server, PostgreSQL, MongoDB, v.v.
Như vậy, DBMS là phần mềm quan trọng, cho phép tạo lập và quản lý cơ sở dữ
liệu một cách hiệu quả. DBMS là “bộ não” của hệ thống quản trị cơ sở dữ liệu.
• Liệt kê một số hệ quản trị cơ sở dữ liệu (DBMS) phổ biến
Dưới đây là một số hệ quản trị cơ sở dữ liệu (DBMS) phổ biến:
• Oracle: DBMS được sử dụng rộng rãi nhất, phù hợp cho các hệ thống lớn.
Cung cấp các tính năng bảo mật và độ tin cậy cao.
• MySQL: DBMS mã nguồn mở, phổ biến với các ứng dụng web và di động.
Hoạt động tốt trên nền tảng Linux.
• Microsoft SQL Server: DBMS của Microsoft, tích hợp tốt với các sản phẩm
Microsoft khác. Giao diện quản trị thân thiện.
• PostgreSQL: DBMS mã nguồn mở, mạnh mẽ và có độ tin cậy cao. Hỗ trợ
nhiều kiểu dữ liệu và chức năng mở rộng.
• MongoDB: DBMS dạng NoSQL, lưu trữ dữ liệu dạng document. Hoạt động
tốt với dữ liệu phi cấu trúc.
• Microsoft Access: DBMS nhỏ gọn, thường đi kèm với Office. Thích hợp với
các ứng dụng quy mô nhỏ.
• SQLite: DBMS nhỏ gọn, nhanh và đa nền tảng. Thường được tích hợp sẵn trong các ứng dụng.
Đây là một số DBMS tiêu biểu, phổ biến hiện nay. Mỗi DBMS có những ưu điểm
và nhược điểm riêng, phù hợp với những ứng dụng cụ thể. lOMoARcPSD| 36625228
• Một hệ quản trị cơ sở dữ liệu (DBMS) thường bao gồm các thành phần nào ?
Một hệ quản trị cơ sở dữ liệu (DBMS) thường bao gồm các thành phần chính sau:
1. Ngôn ngữ định nghĩa dữ liệu (DDL): Ngôn ngữ cho phép định nghĩa cấu
trúc dữ liệu như tạo bảng, cột, khóa, giới hạn, mối quan hệ, chỉ mục, v.v.
Ngôn ngữ tiêu chuẩn là SQL.
2. Ngôn ngữ thao tác dữ liệu (DML): Ngôn ngữ cho phép thực hiện các thao
tác trên dữ liệu như chèn, cập nhật, xóa dữ liệu. Cũng sử dụng SQL.
3. Ngôn ngữ truy vấn (DQL): Ngôn ngữ cho phép truy vấn và truy xuất dữ
liệu từ cơ sở dữ liệu dưới dạng báo cáo. Sử dụng SQL.
4. Bộ xử lý truy vấn: Thành phần phân tích và xử lý các truy vấn, tối ưu hóa hiệu năng truy vấn.
5. Quản trị và kiểm soát: Quản lý người dùng, phân quyền truy cập, sao lưu
dữ liệu, phục hồi thảm họa, v.v.
6. Giao diện người dùng: Cho phép người dùng tương tác với DBMS thông
qua ứng dụng hoặc trình duyệt web.
7. Các dịch vụ và công cụ hỗ trợ: Hỗ trợ import/export dữ liệu, tạo báo cáo,
giám sát hệ thống, tối ưu hóa, v.v.
Như vậy, DBMS bao gồm nhiều thành phần khác nhau để đảm bảo quản lý và
vận hành cơ sở dữ liệu một cách hiệu quả.
• Siêu dữ liệu (Metadata) là gì ?
Siêu dữ liệu (Metadata) là dữ liệu mô tả về dữ liệu. Cụ thể hơn:
• Siêu dữ liệu cung cấp thông tin về cấu trúc, đặc tính, quan hệ, nguồn gốc,
cách thức sử dụng. . của dữ liệu.
• Ví dụ siêu dữ liệu: tên bảng, tên cột, kiểu dữ liệu của cột, khóa chính, khóa
ngoại, giá trị mặc định, người tạo, thời gian tạo.. của các đối tượng trong cơ sở dữ liệu.
• Siêu dữ liệu giúp document hóa cơ sở dữ liệu, hiểu rõ nguồn gốc và ý nghĩa của dữ liệu. lOMoARcPSD| 36625228
• Siêu dữ liệu hỗ trợ tìm kiếm, truy xuất và phân tích dữ liệu một cách hiệu quả.
• Siêu dữ liệu thường được lưu trữ trong các thư viện siêu dữ liệu hoặc các
công cụ quản lý siêu dữ liệu.
Như vậy, siêu dữ liệu là "dữ liệu về dữ liệu", cung cấp các thông tin hữu ích để
làm việc hiệu quả với dữ liệu.
• Chi tiết về 3 nhóm đối tượng chính là người sử dụng, quản trị viên
v nh phát triển, mỗi nhóm có vai trò v nhu cầu sử dụng khác nhau
đối với cơ sở dữ liệu
Có 3 loại đối tượng chính sử dụng cơ sở dữ liệu:
1. Người sử dụng cuối (End-user) • Là những người trực tiếp sử dụng
các ứng dụng của cơ sở dữ liệu.
• Thường chỉ được cấp quyền truy cập và sử dụng cụ thể vào các phần dữ liệu nhất định.
• Ví dụ: nhân viên bán hàng, kế toán, bác sĩ, giáo viên,. sử dụng các ứng dụng
cơ sở dữ liệu của công ty.
2. Quản trị cơ sở dữ liệu (Database Administrators) • Quản lý,
vận hành, bảo trì cơ sở dữ liệu và hệ thống DBMS. •
Quyết định cấu trúc dữ liệu, phân quyền, sao lưu dữ liệu, hiệu năng và bảo mật hệ thống. •
Cần có kiến thức chuyên sâu về cơ sở dữ liệu.
3. Lập trình viên ứng dụng (Application Developers) •
Phát triển các ứng dụng phần mềm tương tác với cơ sở dữ liệu. •
Sử dụng ngôn ngữ lập trình và các công cụ để truy cập, thao tác dữ liệu. •
Cần hiểu rõ mô hình dữ liệu và cách vận hành của cơ sở dữ liệu.
Như vậy có 3 nhóm đối tượng chính là người sử dụng, quản trị viên và nhà phát
triển, mỗi nhóm có vai trò và nhu cầu sử dụng khác nhau đối với cơ sở dữ liệu. •
Nêu nhiệm vụ của DBA, Database designer, System Analyst, lOMoARcPSD| 36625228
Application Programmer
Dưới đây là nhiệm vụ chính của một số đối tượng liên quan đến cơ sở dữ liệu:
1. DBA (Database Administrator - Quản trị cơ sở dữ liệu): •
Quản lý, cài đặt, nâng cấp hệ thống cơ sở dữ liệu. •
Kiểm soát và bảo mật dữ liệu. •
Sao lưu và phục hồi dữ liệu. •
Tối ưu hóa hiệu năng cơ sở dữ liệu. •
Giám sát và khắc phục sự cố.
2. Database Designer - Người thiết kế cơ sở dữ liệu: •
Phân tích yêu cầu nghiệp vụ của tổ chức. •
Thiết kế mô hình dữ liệu conceptual, logical, physical. •
Chuẩn hóa cơ sở dữ liệu, đảm bảo tính toàn vẹn. •
Lựa chọn công nghệ cơ sở dữ liệu phù hợp.
3. System Analyst - Chuyên viên phân tích hệ thống: •
Phân tích yêu cầu nghiệp vụ của khách hàng. •
Xác định yêu cầu dữ liệu cần thiết. •
Đưa ra khuyến nghị về giải pháp công nghệ. •
Lập kế hoạch và điều phối dự án.
4. Application Programmer - Lập trình viên ứng dụng: • X y dựng
chương trình ứng dụng tương tác với cơ sở dữ liệu. •
Sử dụng các công cụ và ngôn ngữ lập trình để kết nối và thao tác dữ liệu. •
Viết các câu truy vấn, cập nhật dữ liệu trong mã nguồn. •
Tối ưu hóa hiệu năng truy vấn và xử lý dữ liệu.
Như vậy mỗi vị trí đòi hỏi các kỹ năng và trách nhiệm khác nhau đối với cơ sở dữ liệu.
• Mô hình dữ liệu (Data Model) là gì ? lOMoARcPSD| 36625228
Mô hình dữ liệu (Data Model) là một mô hình khái niệm (conceptual model)
được sử dụng để mô tả cấu trúc dữ liệu trong hệ thống cơ sở dữ liệu. Một số
đặc điểm của mô hình dữ liệu:
• Mô tả các đối tượng dữ liệu, mối quan hệ giữa chúng và các ràng buộc trên dữ liệu.
• Trừu tượng hóa dữ liệu, độc lập với hệ quản trị CSDL cụ thể.
• Cho phép nhìn nhận dữ liệu một cách logic, dễ hiểu và gần với thế giới thực.
• Là cơ sở để thiết kế cơ sở dữ liệu vật lý.
• Các mô hình dữ liệu thường dùng: mô hình thực thể - kết hợp (ER Model),
mô hình quan hệ (Relational Model), mô hình mạng (Network Model),. .
• Ngôn ngữ mô hình hóa dữ liệu phổ biến: UML (Unified Modeling Language).
Như vậy, mô hình dữ liệu là bước quan trọng trong thiết kế cơ sở dữ liệu, giúp
người thiết kế có cái nhìn tổng quát về dữ liệu trước khi xây dựng cấu trúc lưu trữ cụ thể. --------------
Mô hình dữ liệu (Data Model) là một mô hình trừu tượng mô tả cấu trúc dữ liệu
của hệ thống. Mô hình dữ liệu định nghĩa các đối tượng dữ liệu, mối quan hệ
giữa chúng và các ràng buộc trên dữ liệu. Một số loại mô hình dữ liệu phổ biến:
• Mô hình thực thể - kết hợp (ER Model): Sử dụng các thực thể, thuộc tính
và mối quan hệ để mô tả dữ liệu.
• Mô hình quan hệ (Relational Model): Dữ liệu được tổ chức thành các bảng có quan hệ với nhau.
• Mô hình cơ sở dữ liệu đối tượng (Object Database Model): Dựa trên mô
hình OOP với các lớp, đối tượng có quan hệ với nhau.
• Mô hình dữ liệu mạng (Network Model): Tổ chức dữ liệu thành các mối quan hệ có hướng.
• Mô hình dữ liệu nhân bản (Hierarchical Model): Dữ liệu có cấu trúc phân cấp, cây.
Mục đích của mô hình dữ liệu là cung cấp cái nhìn tổng quan về dữ liệu, từ đó
thiết kế cơ sở dữ liệu hoặc hệ thống lưu trữ, truy xuất dữ liệu một cách hiệu quả.
• Giải thích 3 loại mô hình: mô hình mức khái niệm, mô hình dữ liệu
mức logic và mô hình dữ liệu mức vật lý lOMoARcPSD| 36625228
Ba loại mô hình dữ liệu chính trong thiết kế cơ sở dữ liệu là:
1. Mô hình dữ liệu mức khái niệm (Conceptual data model) •
Mô tả các thực thể, thuộc tính và mối quan hệ giữa chúng. •
Không chứa thông tin kỹ thuật cụ thể. •
Ví dụ: mô hình E-R, diagram lớp UML.
2. Mô hình dữ liệu mức logic (Logical data model) •
Mô tả dữ liệu dưới dạng mô hình dữ liệu cụ thể như mô hình quan hệ hoặc đối tượng. •
Chứa thông tin về kiểu dữ liệu, khóa, quan hệ bảng,. . nhưng không phụ
thuộc vào hệ quản trị cơ sở dữ liệu cụ thể. •
Ví dụ: mô hình quan hệ, mô hình dữ liệu đối tượng.
3. Mô hình dữ liệu mức vật lý (Physical data model) •
Mô tả cách lưu trữ dữ liệu trên phương tiện lưu trữ thực tế. •
Phụ thuộc vào hệ quản trị cơ sở dữ liệu. •
Chứa thông tin về bảng, index, view, trigger,. .
Như vậy các mô hình ở mức trừu tượng khác nhau và phục vụ trong các giai
đoạn thiết kế cơ sở dữ liệu. •
Trình bày kiến trúc 3 mức của 1 hệ cơ sở dữ liệu
Kiến trúc 3 mức của hệ cơ sở dữ liệu bao gồm: 1. External/Conceptual Level •
Là mức trừu tượng cao nhất, che giấu chi tiết triển khai vật lý. •
Mô tả dữ liệu ở dạng các thực thể và mối quan hệ giữa chúng. •
Sử dụng mô hình E-R, UML để biểu diễn. •
Người dùng chỉ cần biết dữ liệu mình cần, không cần quan tâm chi tiết bên dưới. lOMoARcPSD| 36625228 2. Logical Level •
Còn gọi là conceptual-to-internal mapping. •
Ánh xạ mô hình thực thể-kết hợp xuống mô hình cụ thể như quan hệ, mạng,. . •
Quy định rõ ràng trên cấu trúc dữ liệu. 3. Physical Level •
Mô tả cách lưu trữ vật lý trên phương tiện lưu trữ. •
Phụ thuộc hệ quản trị csdl: cách lưu trữ file, index, bảng,. . •
Tối ưu hiệu năng, tốc độ truy xuất.
Như vậy, kiến trúc 3 mức giúp tách biệt người dùng và dữ liệu khỏi các chi tiết triển khai phía dưới. •
Cho thí dụ về kiến trúc 3 mức của 1 hệ cơ sở dữ liệu
Dưới đây là ví dụ minh họa kiến trúc 3 mức của hệ cơ sở dữ liệu quản lý sinh viŒn:
1. Mức Conceptual (mô hình E-R) •
Thực thể: SinhVien, Lop, MonHoc •
Thuộc tính: MSSV, HoTen, NgaySinh, MaLop, TenLop, MaMH, TenMH •
Mối quan hệ: SinhVien theo học Lop, Lop học MonHoc
2. Mức Logical (mô hình quan hệ) •
Bảng SinhVien (MSSV, HoTen, NgaySinh, MaLop) • Bảng Lop (MaLop, TenLop) • Bảng MonHoc (MaMH, TenMH) •
Khóa ngoại: SinhVien.MaLop tham chiếu Lop.MaLop 3. Mức Physical lOMoARcPSD| 36625228
• SinhVien (file SV.dat, index MSSV) • Lop (file Lop.dat, index MaLop) •
MonHoc (file MH.dat, index MaMH) •
Lưu trữ trên ổ đĩa, tối ưu hóa truy xuất bằng index.
Như vậy, từ mô hình Conceptual, chúng ta ánh xạ xuống mô hình Logical rồi
xuống Physical để triển khai cơ sở dữ liệu vật lý. •
Tính độc lập dữ liệu là gì ?
Tính độc lập dữ liệu (Data Independence) là khả năng tách biệt lớp truy cập dữ
liệu của người dùng với cấu trúc lưu trữ vật lý bên dưới. Có hai loại độc lập dữ liệu:
1. Độc lập logic (Logical Independence): •
Người dùng không bị ảnh hưởng bởi thay đổi bên trong mô hình dữ liệu
logic (VD: thay đổi schema). •
Đảm bảo độc lập giữa lớp truy cập dữ liệu với mô hình dữ liệu logic.
2. Độc lập vật lý (Physical Independence):
• Người dùng không bị ảnh hưởng bởi thay đổi về cách lưu trữ vật lý (VD:
chuyển từ file sang DBMS).
• Đảm bảo độc lập giữa mô hình dữ liệu logic với mô hình dữ liệu vật lý.
Tính độc lập dữ liệu giúp hệ thống có tính mở, dễ bảo trì và nâng cấp. Người
dùng và lập trình viên không cần quan tâm tới những thay đổi bên dưới.
• Trình bày tính độc lập dữ liệu vật lý và tính độc lập logic cho thí dụ
1. Tính độc lập dữ liệu vật lý (Physical Independence): Ví dụ:
• Ban đầu dữ liệu lưu trữ dưới dạng các file riêng lẻ.
• Sau này chuyển sang sử dụng hệ quản trị CSDL (VD: SQL Server) để lưu trữ dữ liệu.
Những thay đổi về cách lưu trữ vật lý không ảnh hưởng tới người dùng. Họ vẫn
truy cập dữ liệu thông qua giao diện như cũ.
2. Tính độc lập dữ liệu logic (Logical Independence): lOMoARcPSD| 36625228 Ví dụ:
• Ban đầu sử dụng mô hình dữ liệu mạng để thiết kế CSDL.
• Sau này chuyển sang mô hình quan hệ.
Những thay đổi về mô hình dữ liệu logic không ảnh hưởng tới người dùng. Họ
vẫn truy vấn dữ liệu thông qua cùng giao diện.
Như vậy, tính độc lập dữ liệu giúp người dùng không phụ thuộc vào các thay
đổi bên trong hệ thống, đem lại tính linh hoạt và dễ nâng cấp.