Các khái niệm Mô hình dữ liệu Sự hình thức hóa toán học với tập hợp các ký hiệu để mô tả và tập các phép toán được dùng để thao tác đối với các dữ liệu Một số mô hình dữ liệu cơ
Trang 1KỸ THUẬT PHẦN MỀM
Chương III: DATABASE
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
Khoa Điện tử Viễn Thông – Bộ môn Điện tử Tin học
Trang 33.1_ Giới thiệu
3.1.1 Khái niệm cơ bản về cơ sở dữ liệu
a Cơ sở dữ liệu (CSDL) là gì?
b Ưu điểm của CSDL
3.1.2 Kiến trúc một hệ cơ sở dữ liệu
3.1.3 Sơ bộ lịch sử phát triển
3.1.4 Các loại mô hình dữ liệu cơ bản
a Mô hình quan hệ (Relational Data Model)
b Mô hình phân cấp (Hierarchical Data Model)
c Mô hình mạng (Network Data Model)
3.1.5 Tính độc lập dữ liệu
Trang 43.1.1 Khái niệm cơ bản về cơ sở dữ liệu
a Cơ sở dữ liệu (CSDL) là gì?
Đặc điểm của CSDL (DataBase)
Là tập hợp dữ liệu liên quan được lưu trên các bộ nhớ ngoài (đĩa từ,
trống từ ).
Có một tập các chương trình ứng dụng được chạy với các dữ liệu này
và thậm chí dùng để truyền đi xa.
CSDL là một tổ hợp: đó là một tập hợp nhiều loại dữ liệu cho nhiều
người dùng với nhiều mục đích khác nhau
Định nghĩa CSDL
CSDL là một tập hợp các dữ liệu được lưu trữ để phục vụ các hệ
thống ứng dụng
Hệ quản trị CSDL (DBMS-DataBase Management System)
Phần chương trình để có thể xử lý, thay đổi tập hợp các dữ liệu này
Như một bộ diễn dịch (Interpreter) với ngôn ngữ bậc cao
Trang 53.1.1 Khái niệm cơ bản về cơ sở dữ liệu
b Ưu điểm của CSDL
Tại sao ngươi ta cần lưu trữ dữ liệu trong một tổ
hợp như CSDL?
CSDL cung cấp một sự điều khiển tập trung đối với các dữ
liệu trong CSDL
Các phần tử trong hệ thống CSDL
Trang 63.1.1 Khái niệm cơ bản về cơ sở dữ liệu
b Ưu điểm của CSDL (tiếp)
Những ưu điểm của sự điều khiển tập trung
Giảm sự dư thừa dữ liệu cần lưu trữ.
Có thể tránh được những xung đột về dữ liệu được lưu trữ.
Có thể dùng chung dữ liệu đã được lưu trữ
Có thể chuẩn hoá dữ liệu giúp đơn giản hoá các vấn đề về bảo hành
và trao đổi dữ liệu giữa các lần cài đặt.
Có thể áp dụng các phương pháp bảo mật với dữ liệu.
Duy trì được sự thống nhất dữ liệu để đảm bảo CSDL chỉ chứa dữ
liệu chính xác.
Có thể cân đối được các đòi hỏi xung đột nhau.
Dữ liệu là độc lập, độc lập với cấu trúc bộ nhớ, với phương pháp lưu
trữ và tiếp cận thông tin.
Đảm bảo quy tắc toàn vẹn dữ liệu.
Trang 73.1.2 Kiến trúc một hệ cơ sở dữ liệu
Mô hình dữ liệu (Data Model)
Mô hình khái niệm (Conceptual model)
Lược đồ trong (Internal schema)
Cơ sở dữ liệu (DBMS)
Ngôn ngữ Không gian làm việc
Ngôn ngữ Không gian làm việc
Ngôn ngữ Không gian làm việc
Ngôn ngữ Không gian làm việc
(External Model B)
Mô hình ngoài A (Khung nhìn A) (External Model A)
Người sử dụng
Theo mặt cắt dọc
Trang 8a) Các mức của kiến trúc
Mức ngoài (hay còn gọi là khung nhìn)
Mức ngoài liên quan đến cách nhìn, quan niệm của từng
người sử dụng CSDL vì vậy còn gọi là "khung nhìn"
Có nhiều "cách nhìn ở mức ngoài" khác nhau Mỗi cách
nhìn (mỗi khung nhìn) bao gồm sự biểu diễn trừu tượng
của một phần nào đó của CSDL.
Hầu hết các người sử dụng không quan tâm đến tổng thể
toàn bộ CSDL mà chỉ quan tâm đến một phần riêng biệt nào đó của CSDL
Trang 9a) Các mức của kiến trúc (tiếp)
Mức khái niệm
Mức khái niệm cho phép ta định nghĩa một cách nhìn
thống nhất cho người sử dụng.
"Cách nhìn ở mức khái niệm" bao gồm sự biểu diễn trừu
tượng của tổng thể toàn bộ CSDL.
Thực chất đây là mức logic của toàn bộ CSDL
Mức trong (còn gọi là mức vật lý)
Mức trong rất gần với cách lưu trữ trong bộ nhớ máy tính.
CSDL vật lý (CSDL ở mức vật lý) là các tệp dữ liệu theo
một cấu trúc nào đó được lưu trên các thiết bị nhớ ngoài
Liên hệ với cấu trúc lưu trữ ngoài
Trang 10b) Các khái niệm
Khái niệm "thể hiện" (instance)
Một khi CSDL đã được thiết kế, thường người ta chỉ quan
tâm đến "Bộ khung" hay còn gọi là "mẫu" của CSDL
Dữ liệu hiện có trong CSDL gọi là "thể hiện" của CSDL
Mặc dù dữ liệu có thể thay đổi trong một chu kỳ thời gian
nào đó nhưng "bộ khung" của CSDL vẫn không thay đổi
Khái niệm "lược đồ" (schema)
Khái niệm "bộ khung" nêu ở phần trước bao gồm một số
danh mục hoặc chỉ tiêu hoặc một số kiểu của các thực thể trong CSDL
Giữa các thực thể có thể có những mối quan hệ nào đó với
nhau vì vậy người ta thường dùng thuật ngữ "lược đồ" thay cho "bộ khung".
Trang 11b) Các khái niệm (tiếp)
Khái niệm "lược đồ" (schema)
Trang 12Theo mặt cắt ngang
Các thao tác với bộ khung (Schema operations)
Phần xử lý truy vấn (Query Processor)
Phần quản lý lưu trữ (Data Management)
Phần quản lý giao dịch (Transaction Management)
Dữ liệu, Siêu dữ liệu (Data, Meta-data)
Các truy vấn (Query) Các thao tác với dữ liệu (Data operations)
Trang 133.1.2 Kiến trúc một hệ cơ sở dữ liệu
Trang 143.1.3 Sơ bộ lịch sử phát triển
Trước đây:
Những năm 1960: dữ liệu lưu trữ dưới dạng các tệp
CSDL Phân cấp (Hierarchical Model)
CSDL Mạng (Network Model)
Gần đây và hiện nay:
1970, E.F Codd: CSDL Quan hệ (Relational Model)
Phát triển thao xu hướng chuyên môn hoá
Tập trung vào các hệ thống nhỏ (PCs )
Tập trung vào các hệ thống lớn (làm việc với lượng dữ liệu khổng lồ)
Tương lai gần:
Thêm mô hình hướng đối tượng (OO-Model)
Tăng khả năng phát triển các ràng buộc (constraints) và các kích
hoạt (triggers)
Lưu trữ thành các tổ hợp dữ liệu: multimedia
Kho dữ liệu (Data Warehousing) – Khai thác dữ liệu (Data mining)
Trang 153.1.3 Sơ bộ lịch sử phát triển
Một số ví dụ về hệ quản trị CSDL
Btrieve: dữ liệu lưu trữ dưới dạng các tệp
Dạng giống COBOL: dạng mô hình mạng
Trang 16Các khái niệm
Mô hình dữ liệu
Sự hình thức hóa toán học với tập hợp các ký hiệu để mô tả và tập
các phép toán được dùng để thao tác đối với các dữ liệu
Một số mô hình dữ liệu cơ bản sẽ giới thiệu
Mô hình quan hệ (Relational Model):
Mô hình này dựa trên cơ sở khái niệm lý thuyết tập hợp của các quan hệ, tức là tập các k-bộ với k cố định.
Mô hình phân cấp (Hierarchical Model):
Mô hình dữ liệu là một cây, trong đó các nút biểu diễn biểu diễn các tập thực thể, các nút con và nút cha được liên hệ theo một mối quan hệ xác định.
Mô hình mạng (Network Model):
Mô hình được biểu diễn là một đồ thị có hướng.
Ngôn ngữ con dữ liệu
Tập các phép toán được cung cấp để thao tác dữ liệu
3.1.4 Các loại mô hình dữ liệu cơ bản
Trang 17Hình 3.2 Dữ liệu mẫu trong dạng quan hệ.
a Mô hình quan hệ (Relational Data Model)
P P# PNAME COLOR WEIGHT CITY
SP S# P# QTY
S1 P1 300 S1 P2 200 S1 P3 400 S2 P1 300 S2 P2 400 S3 P2 200
Supplier - Hãng cung cấp
Part - Mặt hàng
Shipment – Gửi hàng
Trang 18Nhận xét qua ví dụ:
1. Tóm tắt sự tương ứng giữa các khái niệm
Quan hệ (Relation) Bộ (Tuple) Thuộc tính (Attribute)
Tệp (File) Bản ghi (Record) Trường (Field) Bảng (Table) Hàng (Row) Cột (Column)
Mỗi bảng trong ba bảng trên giống như một tệp tuần tự truyền
thống (Sequential File)
Tuy nhiên có các sự khác biệt đáng kể giữa các bảng này và
các tệp tuần tự truyền thống
Mỗi bảng là một trường hợp riêng của cấu trúc được biết đến
trong toán học - đó là "quan hệ"
Trang 191. Miền (Domain)
Miền là một tập các giá trị mà từ đó các giá trị thực sự sẽ
xuất hiện trên các cột của bảng
Bản thân miền có thể không được ghi nhận một cách tường
minh như là một tập các giá trị thực sự trong cơ sở dữ liệu nhưng nó được định nghĩa trong lược đồ khái niệm và có tên riêng của mình
Ví dụ:
Một đặc điểm nổi bật của cấu trúc dữ liệu quan hệ là các
mối kết nối giữa các bộ (các hàng) được biểu thị chặt chẽ bởi các giá trị dữ liệu trong các cột được rút ra từ một miền chung
Ví dụ:
a Mô hình quan hệ (Relational Data Model)
Trang 201. Bảng là dạng thống nhất
Thực tế, tất cả các thông tin trong cơ sở dữ liệu - các thực
thể (entities) và các mối kết nối (associations) - được biểu diễn trong một dạng thống nhất được gọi là bảng
Như sẽ thấy sau này, đặc tính này không có trong cấu trúc phân cấp và cấu trúc mạng.
Qua quan sát, nhận thấy cấu trúc quan hệ rất đơn giản, dễ
hiểu.
Trang 211. Mô hình quan hệ có sự thống nhất trong tập các
phép toán
Theo quan điểm của người sử dụng, ngôn ngữ con dữ liệu -
tập các phép toán được cung cấp để thao tác dữ liệu trong dạng quan hệ - là rất quan trọng
Ngoài ra, có thể nhận thấy: sự thống nhất trong cách biểu
diễn dữ liệu dẫn đến sự thống nhất tương ứng trong tập các phép toán
Điều này đối nghịch với các cấu trúc phức tạp khác (như
cấu trúc phân cấp, cấu trúc mạng) mà ở đó thông tin có thể được biểu diễn trong một vài cách khác nhau và do đó cần đến một số tập các phép toán
Trang 221. Mụ hỡnh quan hệ cú sự thống nhất trong tập cỏc
cú số hiệu S2.
Next: + Duyệt hãng cung cấp tiếp theo
mà có S# = S2.
+ Có ti m thấy hãng đó không? ̀ Nếu không thì thoát ra.
+ ưa ra P# Đ + i tới Next Đ
Trang 231. Không có dị thường xảy ra đối với thao tác
Trang 24b Mô hình phân cấp (Hierarchical Data Model)
P P# PNAME COLOR WEIGHT CITY
Shipment – Gửi hàng
Trang 25b Mô hình phân cấp (Hierarchical Data Model)
Hình 3.4 Mô hình dữ liệu mẫu trong dạng phân cấp
P1 Nut Red 12 London
Trang 26Nhận xét qua ví dụ:
1. Trong mô hình phân cấp, các thực thể quan hệ với
nhau thông qua cấu trúc cây, tất cả tạo nên một
rừng cây
Người sử dụng thấy bốn cây tách biệt nhau, hay còn gọi là
bốn thể hiện phân cấp, mỗi cây thể hiện cho một mặt hàng
Mỗi cây thể hiện một bản ghi về đơn đặt hàng gồm dữ liệu
mặt hàng, kèm theo dữ liệu nhà cung cấp và số lượng
Kiểu dữ liệu của thực thể đóng vai trò như một gốc (root)
Để xác định chính xác các cây (gốc, chiều đi ) thi cần phải
có một bản thiết kế tổng thể về dữ liệu của các thực thể, các mối liên kết
Trang 271. Trong mô hình phân cấp, các thực thể và các mối
kết nối không được biểu diễn trong một dạng thống nhất
Trong mô hình quan hệ tương ứng đã xét ở trên, chúng ta
có ba tệp dữ liệu đơn giản
Tương tự như vậy, ta có thể đặt mô hình phân cấp của
Hình 3.1.4 tương ứng với một tệp dữ liệu chứa các bản ghi
được sắp xếp thành bốn cây riêng biệt
Tuy nhiên cần lưu ý là tệp như vậy có cấu trúc phức tạp
các bảng ở mô hình quan hệ rất nhiều.
b Mô hình phân cấp (Hierarchical Data Model)
Trang 281. Ngôn ngữ con dữ liệu phức tạp hơn so với ngôn ngữ
con dữ liệu của mô hình quan hệ
Trong cách nhìn phân cấp của dữ liệu, bất kỳ bản ghi phụ
thuộc đã cho nào cũng chỉ mang ý nghĩa đầy đủ khi nó được xét trong một ngữ nghĩa nào đó
Không một thể hiện bản ghi phụ thuộc nào có thể tồn tại
mà không có thể hiện dẫn trước nó
Do đó trong ngôn ngữ con dữ liệu, cần phải bao gồm thêm
một toán hạng để biểu thị ý nghĩa này
Chúng ta sẽ hiểu rõ hơn điều này khi xét hai câu hỏi đối
xứng nhau cho mô hình phân cấp như đã xét cho mô hình quan hệ (Hình 3.1.5).
b Mô hình phân cấp (Hierarchical Data Model)
Trang 29b Mụ hỡnh phõn cấp (Hierarchical Data Model)
Hỡnh 3.5 Hai cõu hỏi mẫu đối với mụ hỡnh phõn cấp.
Hai giải thuật khỏc nhau cho hai cõu hỏi đối xứng
S# = S2 + Có tìm thấy hãng cung cấp đó không?
+ Nếu không thì đi tới Next + Đưa ra P#
Trang 30 Mặc dù hai câu hỏi gốc là đối xứng nhưng hai giải thuật
tương ứng trên Hình 3.1.5 thì không đối xứng (ngược lại với mô hình quan hệ)
Đây là nhược điểm chủ yếu của cách tiếp cận phân cấp vì
nó dẫn đến sự phức tạp không cần thiết cho người sử dụng
Điều này có nghĩa là các chương trình sẽ trở nên phức tạp
hơn sự thực cần thiết và hậu quả là việc viết chương trình,
gỡ rối và bảo trì sẽ đòi hỏi ở người lập trình nhiều thời gian hơn cần thiết.
b Mô hình phân cấp (Hierarchical Data Model)
Trang 311. Tồn tại các dị thường đối với các thao tác lưu
Trang 32Hình 3.6 Dữ liệu mẫu trong mô hình mạng
P1 Nut Red 12 London S1 Smith 20 London
S2 Jones 10 Paris
P2 Bolt Green 17 Paris
S3 Blake 30 Paris
P3 Screw Blue 17 Rome
P4 Screw Red 14 London
300
200 400
200 400
300
Trang 33Nhận xét qua ví dụ:
1. Cũng như trong mô hình phân cấp, dữ liệu được biểu hiện
thông qua các bản ghi (record) và các mối kết nối (link)
Ngoài các kiểu bản ghi biểu diễn nhà cung cấp và các mặt hàng, còn
có kiểu bản ghi thứ ba: các kết nối (link or connector)
Tất cả các thể hiện kết hợp đối với một hãng cung cấp đều đặt trong
một chuỗi mà điểm bắt đầu và kết thúc chuỗi đều ở tại đó
Tương tự, tất cả các thể hiện kết hợp đối với một mặt hàng đã cho
đều đặt trong một chuỗi được bắt đầu và kết thúc tại chính nó
Như vậy, mỗi mối kết hợp được xuất hiện trên đúng hai chuỗi:
Trang 34c Mụ hỡnh mạng (Network Data Model)
1. Mụ hỡnh mạng (Hỡnh 3.6) đối xứng hơn mụ hỡnh phõn cấp
(Hỡnh 3.4), tuy nhiờn, cỏc thủ tục này phức tạp hơn so với cả 2
mụ hỡnh quan hệ và mụ hỡnh phõn cấp
+ Nếu không thấy thì thoát ra
+ Duyệt hãng cung cấp dẫn trước của kết
nối này
+ Đưa ra S#
+ Đi tới thực hiện Next
Q2: Tỡm cỏc số hiệu mặt hàng đang được cung cấp bởi hóng cung cấp cú
số hiệu S2.
+ Duyệt hãng cung cấp tiếp theo [Next]
mà có S# = S2 Next: + Duyệt kết nối tiếp theo cho hãng cung cấp này
+ Có tìm thấy kết nối đó không?
+ Nếu không thấy thì thoát ra + Duyệt mặt hàng dẫn trước của kết nối này
+ Đưa ra P#
+ Đi tới thực hiện Next
Trang 351. Không có các dị thường xảy ra đối với các thao tác
lưu trữ cơ bản:
Phép Chèn (Insert):
Phép xoá (Delete):
Phép thay đổi (Update)
Trang 361. Nhược điểm chính của mô hình mạng là sự phức
tạp, phức tạp từ cấu trúc của chính mô hình đến ngôn ngữ con dữ liệu có liên quan đến nó
Nguồn gốc của sự phức tạp này nằm ở khối lượng thông
tin về cấu trúc của mô hình dữ liệu này
Thông tin phải bao gồm hai phần:
bản ghi
mối liên kết
Các cấu trúc dữ liệu này rất gần với cấu trúc bộ nhớ
Trang 37 Tầm quan trọng
Tính độc lập dữ liệu là mục tiêu chủ yếu của các CSDL
J Date định nghĩa:
Tính độc lập dữ liệu là "tính bất biến của các hệ ứng dụng
đối với các thay đổi trong cấu trúc lưu trữ và chiến lược truy cập"
Phân loại mức độ độc lập
Theo sơ đồ kiến trúc của hệ thống CSDL
Độc lập dữ liệu ở mức logic
Độc lập dữ liệu ở mức vật lý
3.1.5 Tính độc lập dữ liệu
Trang 38 Độc lập dữ liệu ở mức logic
Vấn đề đặt ra:
Có thể cần thiết phải thay đổi lược đồ khái niệm như thêm thông tin các loại khác nhau của các thực thể hoặc bớt, xoá các thông tin về các thực thể đang tồn tại trong CSDL
Trang 39phải viết lại các chương trình đó => độc lập dữ liệu mức vật lý
3.1.5 Tính độc lập dữ liệu
Trang 40 Qua các ví dụ trên => một hệ CSDL phải có
khả năng biểu diễn hai dạng đối tượng:
Trang 41 Sự khác nhau giữa ba loại mô hình đã xét (mô hình
quan hệ, mô hình phân cấp, mô hình mạng):
Thể hiện ở cách thức cho phép người sử dụng quan sát và
thao tác các kết nối
Mô hình quan hệ có nhiều ưu điểm và được nhiều
người quan tâm hơn cả vì:
Mô hình dữ liệu quan hệ có tính độc lập dữ liệu cao
Mô hình dữ liệu quan hệ dễ sử dụng
Điều quan trọng hơn cả, mô hình quan hệ được hình thức
hoá toán học tốt, do đó được nghiên cứu phát triển và cho được nhiều kết quả lý thuyết cũng như ứng dụng trong thực tiễn
3.1.6 Kết luận