Tiêu biểu cho cơ sở dữ liệu dạng file là*.mdb Foxpro Cơ sở dữ liệu quan hệ: dữ liệu được lưu trữ trong các bảng dữ liệu gọi là các thực thể, giữa các thực thể này có mối liên hệ với nh
Trang 1CƠ SỞ DỮ LIỆU
Máy tính đã trở nên thông dụng trong mỗi cơ quan, gia đình Máy tính chỉ thật sự
có ý nghĩa khi mà nó thay con người quản lý, lưu trữ và xử lý một lượng thông tin lớn
mà con người không thể kiểm soát nổi Bạn là người có nhiều bạn bè và quen biết rộng, và bạn không muốn quên ngày sinh của những người thân cũng như số điện thoại của những người quen Bạn sử dụng một cuốn sổ nhỏ để ghi lại họ tên, địa chỉ,
số điện thoại và ngày sinh của từng người Cuốn sổ này rất tiện lợi vì bạn có thể tra bất cứ thứ gì mà bạn ghi lại trong sổ Như vậy, bạn đã có một cơ sở dữ liệu đơn giản chứa đựng các thông tin cần thiết về mọi người
Tuy nhiên, khi số người lên đến hàng trăm hoặc hơn, bạn sẽ thấy ghi sổ cũng còn bất tiện: bạn không thể tìm nhanh chóng số điện thoại của một người nếu bạn ghi chép tuần tự người này tiếp sau người kia mà không sắp xếp theo một trật tự nhất định nào
đó Còn nếu có sắp xếp, ví dụ theo thứ tự ABC của tên ở mỗi trang, bạn sẽ thấy một số trang có rất nhiều và lấn sang trang của chữ khác, còn một số lại rất ít Hơn nữa, bạn lại cần ghi cả địa chỉ cơ quan của những người đó Trong số đó có vài người làm cùng một nơi và bạn không muốn ghi lại
Đây có lẽ là thời điểm thích hợp để máy tính cho thấy tác dụng của nó Bạn sẽ cần phải sử dụng một chương trình máy tính (ứng dụng) chuyên biệt có sẵn để nhập tất cả
dữ liệu này vào máy tính và nó sẽ quản lý thông tin giúp bạn
Bạn có thể chia các thông tin ra thành hai phần, các thông tin về cá nhân và các thông tin về cơ quan công tác Nó sẽ tương tự như hai bảng 1và 2 Như vậy, bạn đã có một cơ sở dữ liệu (database) chứa thông tin về những người quen Cơ sở dữ liệu này gồm hai bảng (table): người quen và cơ quan công tác
Trang 21 Tại sao phải có một cơ sở dữ liệu? Khái niệm CSDL
Hệ thống các tệp tin cổ điển
Cho đến nay vẫn còn một số đơn vị kinh tế, hành chính sự nghiệp… sử dụng mô hình hệ thống các tệp tin cổ điển: chúng được tổ chức riêng rẽ, phục vụ cho một mục đích của một đơn
vị hay một đơn vị con trực thuộc cụ thể
Thông tin được tổ chức riêng rẽ ở nhiều nơi nên việc cập nhật dễ làm mất tính nhất quán dữ liệu
Hệ thống thông tin được tổ chức thành các hệ thống file riêng lẻ nên thiếu sự chia sẻ thông tin giữa các nơi
Qua phân tích trên, chúng ta nhận thấy việc tổ chức dữ liệu theo hệ thống tệp tin hoàn toàn không phù hợp với những hệ thống thông tin lớn Việc xây dựng một hệ thống thông tin đảm bảo được tính nhất quán dữ liệu, đáp ứng được nhu cầu khai thác đồng thời của nhiều người là thực sự cần thiết
Khái niệm CSDL
CSDL (Database) = Tập hợp dữ liệu được tổ chức có cấu trúc liên quan với nhau và được lưu trữ trong máy tính CSDL được thiết kế, xây dựng cho phép người dùng lưu trữ dữ liệu, truy xuất thông tin hoặc cập nhật dữ liệu
CSDL được tổ chức có cấu trúc: Các dữ liệu lưu trữ có cấu trúc thành các bản ghi (record), cáctrường dữ liệu (field) Các dữ liệu lưu trữ có mối quan hệ (relational) với nhau
Khả năng truy xuất thông tin từ CSDL:CSDL được cấu trúc để
dễ dàng truy cập, quản lý và cập nhật dữ liệu
Ưu điểm của cơ sở dữ liệu
Từ khái niệm trên, ta thấy rõ ưu điểm nổi bật của CSDL là
- Giảm sự trùng lặp thông tin xuống mức thấp nhất và do đó đảm bảo được tính nhất quán và toàn vẹn dữ liệu (Cấu trúc của cơ sở dữ liệu được định nghĩa một lần Phần định nghĩa
Trang 3cấu trúc này gọi là meta-data, và được Catalog của HQTCSDL lưu trữ)
- Đảm bảo sự độc lập giữa dữ liệu và chương trình ứng dụng (Insulation between programs and data): Cho phép thay đổi cấu trúc, dữ liệu trong cơ sở dữ liệu mà không cần thay đổi chương trình ứng dụng
- Trừu tượng hoá dữ liệu (Data Abstraction): Mô hình dữ liệu được sử dụng để làm ẩn lưu trữ vật lý chi tiết của dữ liệu, chỉ biểu diễn cho người sử dụng mức khái niệm của cơ sở dữ liệu
- Nhiều khung nhìn (multi-view) cho các đối người dùng khác nhau: Đảm bảo dữ liệu có thể được truy xuất theo nhiều cách khác nhau Vì yêu cầu của mỗi đối tượng sử dụng CSDL là khác nhau nên tạo ra nhiều khung nhìn vào dữ liệu
là cần thiết
Đa người dùng (multi-user): Khả năng chia sẻ thông tin cho nhiều người sử dụng và nhiều ứng dụng khác nhau
Vấn đề CSDL cần giải quyết
Để đạt được các ưu điểm trên, CSDL đặt ra những vấn đề cần giải quyết Đó là
Tính chủ quyền của dữ liệu: Do tính chia sẻ của CSDL nên chủ quyền của CSDL dễ bị xâm phạm
Tính bảo mật và quyền khai thác thông tin của người
sử dụng: Do có nhiều người được phép khai thác CSDL nên cần thiết phải có một cơ chế bảo mật và phân quyền hạn khai thác CSDL
Tranh chấp dữ liệu: Nhiều người được phép cùng truy cập vào CSDL với những mục đích khác nhau: Xem, thêm, xóa hoặc sửa dữ liệu Cần phải có cơ chế ưu tiên truy cập dữ liệu hoặc giải quyết tình trạng xung đột trong quá trình khai thác cạnh tranh Cơ chế ưu tiên có thể được thực hiện bằng việc cấp quyền (hay mức độ) ưu tiên cho từng người khai thác
Đảm bảo dữ liệu khi có sự cố: Việc quản lý dữ liệu tập trung có thể làm tăng nguy cơ mất mát hoặc sai lệnh thông tin khi có sự cố mất điện đột xuất hoặc đĩa lưu trữ bị hỏng Một số
hệ điều hành mạng có cung cấp dịch vụ sao lưu ảnh đĩa cứng (cơ chế sử dụng đĩa cứng dự phòng - RAID), tự động kiểm tra
và khắc phục lỗi khi có sự cố Tuy nhiên, bên cạnh dịch vụ của
hệ điều hành, để đảm bảo an toàn cho CSDL, nhất thiết phải
có một cơ chế khôi phục dữ liệu khi có sự cố xảy ra
Trang 4VD về CSDL:
2 Phân loại:
Cơ sở dữ liệu được phân chia ra nhiều loại khác nhau:
Cơ sở dữ liệu dạng file: dữ liệu được lưu trữ dưới dạng các file có thể là text, ascii, *.dbf Tiêu biểu cho cơ sở dữ liệu dạng file là*.mdb Foxpro
Cơ sở dữ liệu quan hệ: dữ liệu được lưu trữ trong các bảng
dữ liệu gọi là các thực thể, giữa các thực thể này có mối liên
hệ với nhau gọi là các quan hệ, mỗi quan hệ có các thuộc tính, trong đó có một thuộc tính là khóa chính Các hệ quản trị hỗ trợ cơ sở dữ liệu quan hệ như: MS SQL server, Oracle, MySQL
Cơ sở dữ liệu hướng đối tượng: dữ liệu cũng được lưu trữ trong các bảng dữ liệu nhưng các bảng có bổ sung thêm các tính năng hướng đối tượng như lưu trữ thêm các hành vi, nhằm thể hiện hành vi của đối tượng Mỗi bảng xem như một lớp dữ liệu, một dòng dữ liệu trong bảng là một đối tượng Các hệ quản trị có hỗ trợ cơ sở dữ liệu hướng đối tượng như:
MS SQL server, Oracle, Postgres
Cơ sở dữ liệu bán cấu trúc: dữ liệu được lưu dưới dạng XML, với định dạng này thông tin mô tả về đối tượng thể hiện trong các tag Đây là cơ sở dữ liệu có nhiều ưu điểm do lưu trữ được hầu hết các loại dữ liệu khác nhau nên cơ sở dữ liệu bán cấu trúc là hướng mới trong nghiên cứu và ứng dụng
Trang 53 Ngôn ngữ CSDL
Ngôn ngữ cơ sở dữ liệu là ngôn ngữ đặc biệt, mà làm một hoặc nhiều điều sau đây:
Ngôn ngữ định nghĩa dữ liệu - định nghĩa kiểu dữ liệu và các mối quan hệ giữa chúng
Ngôn ngữ thao tác dữ liệu - thực hiện các nhiệm vụ như chèn, cập nhật, hoặc xóa dữ liệu xuất hiện
Ngôn ngữ truy vấn - cho phép tìm kiếm thông tin và tính toán thông tin nguồn gốc
Ngôn ngữ cơ sở dữ liệu cụ thể đối với một mô hình dữ liệu cụ thể
ví dụ đáng chú ý bao gồm:
SQL kết hợp vai trò của các định nghĩa dữ liệu, thao tác dữ liệu, và truy vấn trong một ngôn ngữ
SQL là một chuẩn ngôn ngữ mô hình đối tượng
XQuery là một ngôn ngữ truy vấn XML tiêu chuẩn thực hiện bởi hệ thống cơ sở dữ liệu XML
SQL / XML kết hợp XQuery với SQL
4 Các thuật ngữ trong CSDL:
Table (Bảng): Là một thành phần cơ bản trong chương trình quản trị cơ sở dữ liệu quan hệ Bảng được hình thành khi sắp xếp các thông tin có liên quan với nhau theo hàng và cột Các hàng tương ứng với các bản ghi (record) dữ liệu và các cột tương ứng với trường dữ liệu Các bạn hãy xem bảng Người quen Các hàng là người, mỗi hàng tương ứng với một người Các cột là trường (hay lĩnh vực) của thông tin Ta có các cột Họ tên, Ngày sinh, Điện thoại, Địa chỉ, Tên cơ quan
Record (bản ghi): trong chương trình quản trị cơ sở dữ liệu, đây là một đơn vị hoàn chỉnh nhỏ nhất của dữ liệu, được lưu trữ trong những trường hợp dữ liệu đã được đặt tên Trong một cơ
sở dữ liệu dạng bảng, bản ghi dữ liệu đồng nghĩa với hàng (row) Bản ghi chứa tất cả các thông tin có liên quan với mẫu tin mà cơ
sở dữ liệu đang theo dõi Ví dụ, trong cơ sở dữ liệu về Người quen, bản ghi sẽ liệt kê tên người quen, số điện thoại, ngày sinh, địa chỉ
và tên cơ quan Hầu hết các chương trình đều hiển thị các bản ghi
dữ liệu theo hai cách: theo các mẫu nhập dữ liệu và theo các bảng
dữ liệu Các bản ghi dữ liệu được hiển thị dưới dạng các hàng ngang và mỗi trường dữ liệu là một cột
Field (Trường dữ liệu): trong chương trình quản trị cơ sở
dữ liệu, đây là không gian dành cho một mẫu thông tin trong bản ghi dữ liệu Trong chương trình quản trị CSDL dạng bảng với dữ liệu được tổ chức theo hàng và cột, thì trường dữ liệu tương ứng với các cột Như ở bảng Cơ quan, ta có các trường Tên cơ quan, Địa chỉ, Thành phố, Số điện thoại, Lĩnh vực hoạt động
Trang 6 RDBM - Relation Database Management (Quản lý cơ
sở dữ liệu quan hệ): là một cách quản lý cơ sở dữ liệu, trong đó dữ liệu được lưu trữ trong các bảng dữ liệu hai chiều gồm các cột và các hàng, có thể liên quan với nhau nếu các bảng đó có một cột hoặc một trường chung nhau
quản trị cơ sở dữ liệu): một chương trình ứng dụng trên máy tính cung cấp các công cụ để truy tìm, sửa chữa, xóa và chèn thêm dữ liệu Các chương trình này cũng có thể dùng để thành lập một cơ
sở dữ liệu và tạo ra các báo cáo, thống kê
DBMS hiện có cung cấp các chức năng khác nhau cho phép quản lý của một cơ sở dữ liệu và dữ liệu của nó có thể được phân loại thành bốn nhóm chức năng chính:
1 Định nghĩa dữ liệu - Tạo, chỉnh sửa và loại bỏ các định nghĩa để xác định việc tổ chức dữ liệu
2 Cập nhật - Insertion, sửa đổi và xóa bỏ các dữ liệu thực tế
3 Retrieval - Cung cấp thông tin trong một hình thức sử dụng trực tiếp hoặc để chế biến tiếp bởi các ứng dụng khác Các
dữ liệu lấy ra có thể được làm sẵn có trong một hình thức cơ bản giống như nó được lưu trữ trong cơ sở dữ liệu hoặc trong một hình thức mới thu được bằng cách thay đổi hoặc kết hợp dữ liệu hiện có từ các cơ sở dữ liệu
4 Quản trị - Đăng ký và giám sát người dùng, việc bảo mật
dữ liệu, giám sát thực hiện, duy trì tính toàn vẹn dữ liệu, xử
lý đồng thời kiểm soát, và khôi phục thông tin đó đã bị hỏng bởi một số sự kiện như một sự thất bại hệ thống bất ngờ
Các chương trình quản trị cơ sở dữ liệu liên quan khá thông dụng hiện nay tại Việt Nam là Foxpro, Access cho ứng dụng nhỏ,
DB 2, MS SQL và Oracle cho ứng dụng vừa và lớn
Primary key (khóa chính ): là một giá trị dùng để phân biệt bản ghi này với bản ghi khác Giá trị của khóa chính trong mỗi bản ghi là duy nhất trong cả bảng (table) Có thể xem số chứng minh nhân dân như một khóa chính và không người nào giống người nào
5 Các mô hình CSDL
Các CSDL có thể khác nhau về chức năng và mô hình dữ liệu (data model)
Mô hình dữ liệu sẽ quyết định cách thức lưu trữ và truy cập dữ liệu
Trang 7Tùy từng ngữ cảnh quan hệ giữa các thành phần dữ liệu trong CSDL, mô hình phức hợp được áp dụng để việc lưu trữ và truy xuất
dữ liệu đạt hiệu quả cao nhất
Các mô hình:
Mô hình dữ liệu file phẳng (Flat file)
Dạng file phẳng thường là file kiểu văn bản chứa dữ liệu dạng bảng
Mô hình dữ liệu mạng (Network model)
Các file riêng biệt trong hệ thống file phẳng được gọi là các bản ghi Tập hợp bản ghi cùng kiểu tạo thành một kiểu thực thể dữ liệu Các kiểu thực thể kết nối với nhau thông qua mối quan hệ cha-con Mô hình dữ liệu mạng biểu diễn bởi một đồ thị có hướng, và các mũi tên chỉ từ kiểu thực thể cha sang kiểu thực thể con
Mô hình dữ liệu phân cấp (Hierarchical model)
Tổ chức theo hình cây, mỗi nút biểu diễn một thực thể dữ liệu Liên hệ dữ liệu thể hiện trên liên hệ giữa nút cha và nút con Mỗi nút cha có thể có một hoặc nhiều nút con, nhưng mỗi nút con chỉ có thể có một nút cha
Trang 8 Mô hình dữ liệu quan hệ (Relational model)
Trong mô hình dữ liệu quan hệ, không có các liên kết vật lý
Dữ liệu được biểu diễn dưới dạng bảng với các hàng và các cột
Dữ liệu trong hai bảng liên hệ với nhau thông qua các cột chung Có các toán tử để thao tác trên các hàng của bảng
Mô hình dữ liệu hướng đối tượng (Object-Oriented model) Bao gồm các đối tượng Mỗi đối tượng bao gồm các thuộc tính, phương thức (hành vi) của đối tượng Các đối tượng trao đổi với nhau thông qua các phương thức Một đối tượng có thể được sinh ra từ việc thừa kế từ đối tượng khác, nạp chồng (hay định nghĩa lại) phương thức của đối tượng khác…