AAAAAAAAAA2
Chương 1
TỔNG QUAN
1.1. Các khó khăn trên hệ thống xử lư file truyền thống
Cách tiếp cận truyền thống đối với các hệ thống thông tin thường chỉ tập trung
vào các nhu cầu xử lư dữ liệu của các pḥng riêng lẻ trong một tổ chức mà không xem
xét tổ chức này như là một tổng thể. Các hệ thống thông tin này đáp ứng các yêu cầu
của những người sử dụng bằng cách viết một chương tŕnh mới đối với mỗi ứng dụng
riêng lẻ, thường là một chương tŕnh được phát triển tại một thời điểm. Mỗi chương
tŕnh ứng dụng hay một hệ thống theo yêu cầu sẽ được thiết kế để đáp ứng các yêu
cầu của một pḥng đặc biệt hay một nhóm người sử dụng cụ thể. Do vậy, không có
một kế hoạch tổng thể hay một mô h́nh hướng đến sự tăng trưởng các ứng dụng mới
trong tương lai.
Mỗi ứng dụng tin học mới được thiết kế một cách điển h́nh với một tập các
file dữ liệu riêng của nó. Nhiều dữ liệu trong các file mới có thể đă xuất hiện trong
các file đang tồn tại sẽ phải được cấu trúc lại, mà đến lược nó, các chương tŕnh đang
tồn tại sử dụng cùng các file này cũng phải được sửa lại hay viết lại hoàn toàn. Với lư
do này, thiết kế các file mới với mỗi ứng dụng được yêu cầu thường là đơn giản hơn
và cũng ít rủi ro hơn.
Ví dụ 1.1. Xem xét một phần của hệ thống Quỹ tiết kiệm trong Ngân hàng lưu giữ thông tin về khách hàng và các tài khoản tiết kiệm của Ngân hàng. Một cách để lưu trữ thông tin này trên máy tính là lưu trữ nó trong các file hệ thống bền vững. Để cho phép người sử dụng thao tác những thông tin này, hệ thống có một số các chương tŕnh ứng dụng thao tác các file đó, chẳng hạn như:
_ Chương tŕnh thêm một tài khoản mới.
_ Chương tŕnh ghi nợ (ghi có) một tài khoản
_ Chương tŕnh tính số dự của một tài khoản.
Các chương tŕnh ứng dụng này được viết bởi các nhà lập tŕnh hệ thống để đáp ứng các yêu cầu tin học hoá của Ngân hàng.
Các chương tŕnh ứng dụng mới có thể bổ sung thêm vào hệ thống khi các nhu cầu mới nảy sinh.
4
Phần 1: Nguyên lư các hệ quản trị cơ sở dữ liệu
Hệ thống xử lư file điển h́nh vừa mô tả được hỗ trợ bởi một hệ điều hành nào đó. Các bản ghi khá ổn định và tồn tại lâu dài được lưu trữ trong các file khác nhau và các chương tŕnh ứng dụng khác nhau được viết để trích ra các bản ghi từ các file thích hợp hay bổ sung thêm các bản ghi mới vào các file đó.
Tuy nhiên, khi qui mô kinh doanh của các tổ chức và nhu cầu xử lư thao tác dữ liệu với các mục đích khác nhau theo các qui định khác nhau tăng lên, một số vấn đề nghiêm trọng có thể nảy sinh.
Các hệ thống trên cơ sở file được phát triển với các ứng dụng đặc biệt, do vậy
việc lưu trữ thông tin của các tổ chức trong các hệ thống file có một số bất lợi chính
sau:
_ Dư thừa dữ liệu và tính không nhất quán dữ liệu: Do các file và các
chương tŕnh ứng dụng được tạo lập bởi các nhà lập tŕnh khác nhau trong khoảng thời
gian dài, các file khác nhau có thể có các qui cách khác nhau và các chương tŕnh có
thể được viết bằng một số ngôn ngữ lập tŕnh khác nhau. Hơn nữa, v́ các file được tạo
lập đối với mỗi chương tŕnh ứng dụng riêng, do vậy cùng một tập các dữ liệu của tổ
chức có thể được lưu trữ lại trong mỗi chương tŕnh ứng dụng, có nghĩa là một số
thông tin có thể lặp lại trên một số file khác nhau và các tài nguyên phần cứng sẽ bị
lăng phí.
Ví dụ 1.2. Địa chỉ, số điện thoại của một khách hàng đặc biệt có thể xuất hiện trong một file chứa các bản ghi tài khoản tiết kiệm và trong một file chứa các bản ghi số dư tài khoản. Sự dư thừa này den đến giá truy nhập và giá lưu trữ cao hơn.
V́ các dữ liệu được lưu trữ trong các file có thể được thay đổi một cách độc
lập bới các chương tŕnh ứng dụng sử dụng chúng, nội dung của các khoản mục dữ
liệu trong chương tŕnh ứng dụng này có thể không tŕnh với cùng các khoản mục dữ
liệu đó trong một chương tŕnh ứng dụng khác. Điều này den đến tính không nhất
quán dữ liệu, có nghĩa là các bản sao khác nhau của cùng một khoản mục dữ liệu
không giống nhau.
Ví dụ 1.3. Địa chỉ của khách hàng bị thay đổi trong bản ghi tài khoản tiết kiệm
nhưng không được phản ánh trong bản ghi số dư tài khoản đối với khách hàng đó.
_ Khó khăn trong truy nhập dữ liệu: Giả sử rằng một trong các nhân viên của
Ngân hàng cần t́m danh sách tên các khách hàng sống trong một thành phố nào đó.
Nhân viên này hfi pḥng xử lư dữ liệu để đưa ra một danh sách như vậy. V́ yêu cầu
này không được dự tính trước, hệ thống gốc được thiết kế không có sgn một chương
5
Phần 1: Nguyên lư các hệ quản trị cơ sở dữ liệu
tŕnh ứng dụng để đáp ứng yêu cầu này. Tuy nhiên, có một chương tŕnh ứng dụng
đưa ra tất cả danh sách các khách hàng. Bấy giờ, nhân viên Ngân hàng đứng trước 2
sự lựa chọn: Hoặc sử dụng danh sách tất cả khách hàng và trích ra những thông tin
cần thiết bằng tay hoặc nhờ pḥng xử lư dữ liệu đề nghị một nhà lập tŕnh hệ thống
viết chương tŕnh ứng dụng mới để đáp ứng yêu cầu này. Cả hai lựa chọn hiển nhiên
đều không được thoả măn. Giả sử rằng, một chương tŕnh như vậy được viết, và sau
vài ngày, cũng nhân viên đó cần một danh sách khác. Cũng như vậy, một chương
tŕnh đưa ra danh sách đó không tồn tại và nhân viên này lại đứng trước hai sự lựa
chọn và không lựa chọn nào thoả măn. Điều này có thể nói rằng môi trường xử lư file
không cho phép các dữ liệu cần thiết được t́m kiếm trong một phương pháp hiệu quả
và tiện lợi.
_ Cô lập và hạn chế chia sẽ dữ liệu: Với phương pháp tiếp cận truyền thống, mỗi ứng dụng có các file dữ liệu riêng của nó và những người sử dụng ít có cơ sở dữ liệu hội chia sẽ dữ liệu ngoài các ứng dụng riêng của họ. Một hậu quả của việc chia sẽ dữ liệu bị hạn chế là cùng các dữ liệu phải lưu trữ trong nhiều file ứng với các ứng dụng khác nhau do khi thiết kế phát triển các ứng dụng mới, người thiết kế thường khó khai thác các dữ liệu chứa trong các file đang tồn tại trong khi các file mới được thiết kế lặp lại nhiều dữ liệu đang tồn tại.
_ Các vấn đề về toàn vẹn: Các giá trị dữ liệu được lưu trữ trong cơ sở dữ liệu
phải thoả măn các kiểu ràng buộc toàn vkn nhất định. Các nhà phát triển làm hiệu lực
các ràng buộc này trong hệ thống bằng cách thêm các đoạn mă tương ứng vào các
chương tŕnh ứng dụng. Tuy nhiên, khi các ràng buộc mới được bổ sung thêm đối với
cơ sở dữ liệu, sẽ rất khó thay đổi các chương tŕnh để làm hiệu lực các ràng buộc mới
này. Vấn đề này phức tạp hơn khi các ràng buộc đó lôi kéo một số khoản mục dữ liệu
từ các file khác nhau.
_ Các vấn đề về độ tin cậy: Một hệ thống máy tính cũng như một thiết bị điện tử hay cơ sở dữ liệu học nào đó có thể bị lỗi. Trong nhiều ứng dụng, vấn đề mấu chốt là khi một lỗi xuất hiện và được ḍ t́m phát hiện, dữ liệu phải được phục hồi đến trạng thái toàn vkn tồn tại trước khi xảy ra lỗi.
Ví dụ 1.4. Xét chương tŕnh ứng dụng chuyển 500USD từ tài khoản A đến tài khoản B. Nếu hệ thống xảy ra lỗi khi thực hiện chương tŕnh, có thể rằng, 500USD đă chuyển đi từ tài khoản A những chưa được ghi có vào tài khoản B, kết quả là cơ sở dữ liệu ở trong một trạng thái không toàn vkn dữ liệu.
6
Phần 1: Nguyên lư các hệ quản trị cơ sở dữ liệu
_ Các dị thường truy nhập đồng thời: Để tăng hiệu năng tổng thể của hệ
thống và thời gian đáp ứng nhanh nhất có thể, nhiều hệ thống cho phép nhiều người
sử dụng truy nhập dữ liệu đồng thời. Trong một môi trường như vậy, sự tương tác của
các truy nhập đồng thời có thể den đến kết quả của một trạng thái không toàn vkn dữ
liệu.
Ví dụ 1.5. Xét tài khoản Ngân hàng A có 5000USD. Nếu hai khách hàng đến rút quỹ ( Rút 50USD và 100 USD tương ứng) từ tài khoản A vào cùng một thời điểm. Kết quả của các thực hiện đồng thời này có thể den đến tài khoản này ở trong một trạng thái không đúng đsn (hay không toàn vkn). Giả sử rằng, các chương tŕnh rút thực hiện yêu cầu rút bao gồm các thao tác: đọc giá trị tài khoản, giảm giá trị này đi một giá trị bằng số tiền cần rút và ghi kết quả trả lại. Nếu hai chương tŕnh chạy đồng thời, cả hai có thể cùng đọc 500USD và ghi lại 450USD, 400USD tương ứng. Phụ thuộc vào chương tŕnh nào ghi giá trị sau cùng, tài khoản A có thể chứ 450USD hoặc 400USD chứ không phải giá trị đúng của nó là 350USD.
_ Các vấn đề về an toàn: Không phải mọi người sử dụng của hệ thống đều có thể truy nhập tất cả dữ liệu trong hệ thống.
Ví dụ 1.6. Trong hệ thống Ngân hàng, các nhân viên tài vụ của Ngân hàng chỉ cần nh́n thấy một phần của cơ sở dữ liệu chứa thông tin về nhân viên khách hàng. Họ không cần thiết truy nhập vào thông tin về các tài khoản khách hàng. Do các chương tŕnh ứng dụng được bổ sung vào hệ thống theo phương pháp thêm dần, việc bst tuân thủ các ràng buộc an toàn như vậy là khá khó khăn.
_ Sự phụ thuộc dữ liệu của các chương tŕnh ứng dụng: Do định nghĩa file được chứa trong các chương tŕnh ứng dụng, nếu các nội dung file và các khuôn dạng bản ghi cần được thay đổi, các chương tŕnh ứng dụng cũng phải thay đổi theo
1.2. Các hệ cơ sở dữ liệu
1.2.1. Các khái niệm cơ bản
Cơ sở dữ liệu là ǵ?
Một tổ chức (Xí nghiệp, trường học, Ngân hàng.....) có nhiều ứng dụng tin học khác nhau nhưng tất cả các ứng dụng đó cùng được tiến hành trên một nguồn dữ liệu chung th́ không ǵ tốt hơn là triển khai các ứng dụng đó trên một cơ sở dữ liệu sở dữ liệu hợp nhất cho phép quản lư tập trung tất cả dữ liệu xí nghiệp.
7
Phần 1: Nguyên lư các hệ quản trị cơ sở dữ liệu
Các chương tŕnh ứng dụng Người sử dụng trực tuyến
H́nh 1.1. Cơ sở dữ liệu hợp nhất
Trên h́nh vẽ 1.1, chúng ta nh́n thấy thành phần cơ sở dữ liệu hợp nhất là một bộ sưu tập các dữ liệu chứa trên các phương tiện lưu trữ như đĩa từ hay băng từ...Những người sử dụng trực tuyến hay các chương tŕnh ứng dụng có thể sử dụng chung hay chia sẽ cơ sở dữ liệu này.
Có thể thực hiện các thao tác t́m kiếm, sửa đổi, bổ sung...
Như vậy, có thể định nghĩa: Cơ sở dữ liệu là một bộ sưu tập các dữ liệu tác
nghiệp được lưu trữ lại và được các hệ ứng dụng của một cơ quan cụ thể nào đó sử
dụng.
Như thế, có thể định nghĩa hệ cơ sở dữ liệu là một hệ thống gồm 4 thành phần:
_ Cơ sở dữ liệu hợp nhất: Cơ sở dữ liệu của hệ có 2 tính chất tối thiểu hoá dư
thừa và được chia sẻ.
_ Người sử dụng: Bao gồm những người truy cập vào cơ sở dữ liệu, những người viết các chương tŕnh ứng dụng và những người điều khiển toàn bộ hệ thống hay c̣n gọi là người quản trị cơ sở dữ liệu.
_ Phần mềm hệ quản trị cơ sở dữ liệu. _ Phần cứng.
Hệ quản trị cơ sở dữ liệu là ǵ?
Hệ quản trị cơ sở dữ liệu là một hệ thống phần mềm cho phép tạo lập cơ sở dữ liệu và điều khiển mọi truy nhập đối với cơ sở dữ liệu đó.
1.2.2. Các khả năng của một hệ quản trị cơ sở dữ liệu
8
Phần 1: Nguyên lư các hệ quản trị cơ sở dữ liệu
Có hai khả năng cho phép phân biệt các hệ quản trị cơ sở dữ liệu với các kiểu hệ thống lập tŕnh khác:
_ Khả năng quản dữ liệu tồn tại lâu dài.
Đặc điểm này nói lên rằng có một cơ sở dữ liệu tồn tại trong một thời gian dài,
nội dung cơ sở dữ liệu này là các dữ liệu mà một hệ quản trị cơ sở dữ liệu truy nhập
và quản lư.
_ Khả năng truy nhập các khối lượng dữ liệu lớn một cách hiệu quả.
Đặc điểm này phân biệt một hệ quản trị với một hệ thống xử lư file cũng quản lư dữ liệu tồn tại lâu dài nhưng nói chung không cung cấp các truy nhập nhanh chóng đến các bộ phận dữ liệu tuỳ ư.
Ngoài ra, khi xem xét đặc điểm của hệ quản trị cơ sở dữ liệu c̣n có một số khả năng khác mà có thể thấy hầu hết trong các hệ quản trị cơ sở dữ liệu thương mại:
_ Hỗ trợ ít nhất một mô h́nh dữ liệu hay một sự trừu tượng toán học mà qua
đó người sử dụng có thể quan sát dữ liệu.
_ Đảm bảo tính độc lập dữ liệu.
_ Hỗ trợ các ngôn ngữ cấp cao nhất định cho phép người sử dụng định nghĩa cấu trúc của dữ liệu, truy nhập dữ liệu và thao tác dữ liêu.
_ Quản trị giao dịch, có nghĩa là cung cấp các truy nhập đồng thời, đúng đsn
đối với cơ sở dữ liệu từ nhiều người sử dụng tại một thời điểm.
_ Điều khiển truy cập, có nghĩa là khả năng hạn chế truy cập đến các dữ liệu
bởi những người sử dụng không được cấp phép và khả năng kiểm tra tính đúng đsn
của dữ liệu.
_ Phục hồi dữ liệu, có nghĩa là khả năng phục hồi, không làm mất mát dữ liệu đối với các lỗi hệ thống.
a . Sự trừu tượng hoá dữ liệu.
Để cho hệ thống có thể sử dụng được, nó phải tra cứu hay t́m kiếm dữ liệu một cách hiệu quả. Điều này den đến việc thiết kế các cấu trúc dữ liệu phức tạp để biểu dixn dữ liệu trong cơ sở dữ liệu này. Do nhiều người truy nhập vào các hệ cơ sở dữ liệu không được đào tạo về máy tính, người phát triển phải che dấu tính phức tạp đối với những người sử dụng thông qua một số mức trừu tượng để dơn giản hoá các tương tác của người sử dụng đối với hệ thống.
9
Phần 1: Nguyên lư các hệ quản trị cơ sở dữ liệu
Mức vật lư: Mức thấp nhất của sự trừu tượng mô tả dữ liệu được lưu trữ một cách thực sự như thế nào? Tại mức vậy lư, các cấu trúc dữ liệu mức thấp phức tạp được mô tả chi tiết.
Mức logic:Mức cao hơn tiếp theo của sự trừu tượng mô tả những dữ liệu nào được lưu trữ trong cơ sở dữ liệu và các mối quan hệ nào tồn tại giữa các dữ liệu này. Mức logic của sự trừu tượng được xác định bởi người quản trị cơ sở dữ liệu, cụ thể phải quyết định những thông tin ǵ được lưu trữ trong cơ sở dữ liệu.
Mức khung nh́n: Mức cao nhất của sự trừu tượng mô tả chỉ một phần của toàn
bộ cơ sở dữ liệu. Mặc dù sử dụng các cấu trúc đơn giản hơn mức logic, một số phức
tạp ven c̣n tồn tại do kích thước lớn của cơ sở dữ liệu. Nhiều người sử dụng của hệ
cơ sở dữ liệu không quan tâm đến tất cả những thông tin này. Thực chất, những người
sử dụng này chỉ cần truy nhập một phần cơ sở dữ liệu. Do vậy sự tương tác của họ với
hệ thống này được đơn giản hoá và mức khung nh́n của sự trừu tượng được xác định.
Hệ thống có thể cung cấp nhiều khung nh́n đối với cùng một cơ sở dữ liệu..
Mối quan hệ giữa 3 mức trừu tượng được minh hoạ trong h́nh 2.
Khung nh́n 1 Mức khung nh́n Khung nh́n n
Mức Vật lư
Mức Logic
H́nh 1.2. Ba mức trừu tượng dữ liệu
Sự tương tự đối với khái niệm các kiểu dữ liệu trong các ngôn ngữ lập tŕnh có thể làm sáng tf sự phân biệt giữa các mức trừu tượng.
Ví dụ 1.7 Trong ngôn ngữ lập tŕnh Pascal chúng ta khai báo một bản ghi như sau:
Type Khachhang=record
Hoten:String;
The_BH:String;
T_Pho:String;
Duong_pho:String;
End;
10
Phần 1: Nguyên lư các hệ quản trị cơ sở dữ liệu
Đoạn mă này định nghĩa một kiểu bản ghi Khachhang với 4 trường. Mỗi trường có một kiểu dữ liệu. Một Ngân hàng tiết kiệm có thể có một bản ghi như vậy, chẳng hạn như sau:
Taikhoan(tài khoản) với các trường So_taikhoan và Doi_ung.
Nhanvien (Nhân viên) với các trường Hotennvien và Luong.
Tại mức vật lư, một bản ghi Khachhang, Taikhoan hay Nhanvien có thể được mô tả như một khối nhớ. Chương tŕnh dịch ngôn ngữ này che dấu các mức chi tiết này đối với người lập tŕnh. Tương tự, các hệ cơ sở dữ liệu che dấu nhiều chi tiết lưu trữ thấp nhất đối với người lập tŕnh ứng dụng. Người quản trị cơ sở dữ liệu có thể biết những chi tiết nhất định về tổ chức dữ liệu vật lư. Tại mức logic, mỗi bản ghi như vậy được mô tả bởi định nghĩa kiểu như được minh họa trong đoạn mă trên và mối quan hệ giữa các kiểu bản ghi này được xác định. Những người lập tŕnh cũng như người quản trị thường làm việc tại mức trừu tượng này.
Mức khung nh́n, những người sử dụng máy tính nh́n thấy một tập các chương tŕnh ứng dụng mà che dấu những chi tiết về các kiểu dữ liệu. Tương tự, tại mức khung nh́n, một số khung nh́n của cơ sở dữ liệu được xác định và những người sử dụng cơ sở dữ liệu nh́n thấy các khung nh́n này. Ngoài sự che dấu những chi tiết của mức logic đối với cơ sở dữ liệu này, các khung nh́n cũng cung cấp một cơ sở dữ liệu chế an toàn để ngăn chặn những người sử dụng khfi sự truy nhập các bộ phận dữ liệu. Ví dụ 1.8. Một khách hàng của một Ngân hàng chỉ nh́n thấy một phần cơ sở dữ liệu chứa thông tin về tài khoản của anh ta và anh ta không thể truy nhập đến các thông tin liên quan đến lương của các nhân viên Ngân hàng.
Các thể hiện và các sơ đồ
Các cơ sở dữ liệu thay đổi theo thời gian khi thông tin được thêm vào hay xóa
đi. Tập hợp các thông tin được lưu trữ trong cơ sở dữ liệu tại một thời điểm đặc biệt
gọi là một thể hiện của cơ sở dữ liệu sở dữ liệu. Một thiết kế tổng thể của cơ sở dữ
liệu gọi là sơ đồ cơ sở dữ liệu. Các sơ đồ ít khi bị thay đổi, thậm chí không thay đổi.
Tính độc lập dữ liệu
Khả năng thay đổi một định nghĩa sơ đồ trong một mức mà không ảnh hưởng đến định nghĩa sở đồ trong mức cao hơn tiếp theo gọi là tính độc lập dữ liệu. Có hai mức độc lập dữ liệu.
11
Phần 1: Nguyên lư các hệ quản trị cơ sở dữ liệu
Độc lập dữ liệu ở mức vật lư là khả năng thay đổi sơ đồ vật lư mà không den đến các chương tŕnh ứng dụng phải viết lại. Các thay đổi ở mức vật lư đôi khi là cần thiết để tăng hiệu năng hệ thống.
Độc lập dữ liệu ở mức logic là khả năng thay đổi sơ đồ logic mà không den đến các chương tŕnh ứng dụng phải viết lại. Các thay đổi tại mức logic là cần thiết bất kể khi nào cấu trúc logic của cơ sở dữ liệu bị sửa đổi. Chẳng hạn như khi các tài khoản được thêm vào hệ thống Ngân hàng.
Độc lập dữ liệu mức logic là khó đạt được hơn so với độc lập dữ liệu mức vật lư do các chương tŕnh ứng dụng phụ thuộc nhiều vào cấu trúc logic của dữ liệu mà họ đang truy nhập.
b. Các ngôn ngữ cơ sở dữ liệu
Một hệ cơ sở dữ liệu cung cấp hai kiểu ngôn ngữ khác nhau: Một ngôn ngữ đặc tả sơ đồ cơ sở dữ liệu và một ngôn ngữ biểu dixn các truy vấn và các cập nhật dữ liệu.
Ngôn ngữ định nghĩa dữ liệu (Data Definition Language-DDL)
Một sơ đồ cơ sở dữ liệu đặc tả bởi một tập các định nghĩa được biểu dixn bởi một ngôn ngữ đặc biệt gọi là ngôn ngữ định nghĩa dữ liệu. Kết quả việc dịch các lệnh của ngôn ngữ này là một tập các bảng được lưu trữ trong một file đặc biệt gọi là từ điển dữ liệu ha thư mục dữ liệu.
Ngôn ngữ thao tác dữ liệu (Data Manipulation Language-DML)
Các mức trừu tượng mà chúng ta đă thảo luận trong phần trước không chỉ áp dụng đối với định nghĩa và cấu trúc dữ liệu mà đối với cả thao tác dữ liệu. Các yêu cầu thao tác dữ liệu bao gồm:
_ T́m kiếm thông tin được lưu trữ trong cơ sở dữ liệu. _ Thêm thông tin mới vào cơ sở dữ liệu.
_ Xóa thông tin từ cơ sở dữ liệu sở dữ liệu.
_ Thay đổi thông tin được lưu trữ trong cơ sở dữ liệu.
Một ngôn ngữ thao tác dữ liệu là một ngôn ngữ cho phép những người sử dụng truy nhập hay thao tác dữ liệu được tổ chức bởi một mô h́nh dữ liệu thích hợp. Có hai kiểu ngôn ngữ thao tác dữ liệu cơ sở dữ liệu bản.
Các DML thủ tục đ̣i hfi một người sử dụng phải đặc tả dữ liệu nào cần t́m kiếm và t́m kiếm những dữ liệu này như thế nào?
Các DML phi thủ tục đ̣i hfi một người sử dụng phải đặc tả dữ liệu nào cần t́m kiếm và t́m kiếm mà không phải đặc tả những dữ liệu này như thế nào?
12
Phần 1: Nguyên lư các hệ quản trị cơ sở dữ liệu
c. Xử lư câu hỏi
Công việc của bộ xử lư câu hfi là biến đổi một truy vấn hay một thao tác cơ sở
dữ liệu được biểu dixn tại một mức rất cao (Ví dụ như biểu dixn bởi một DML nào
đó) thành một dăy các yêu cầu đối với các dữ liệu được lưu trữ trong cơ sở dữ liệu.
Thường phần khó nhất của nhiệm vụ xử lư câu hfi là tối ưu hóa câu hfi, có nghĩa là
lựa chọn một kế hoạch thực hiện tốt nhất hay lựa chọn một dăy các yêu cầu đối với hệ
thống lưu trữ để trả lời truy vấn này nhanh nhất. Các truy vấn phức tạp thường cho
phép chúng ta ssp xếp lại tŕnh tự các phép toán và có thể có một số lớn các kế hoạch
thực hiện có thể.
d. Quản trị giao dịch
Các hệ cơ sở dữ liệu cho phép người sử dụng nhóm một hay nhiều thao tác tra cứu hay thay đổi cơ sở dữ liệu thành một giao dịch.
Một giao dịch là tập hợp các thao tác mà được xử lư như một đơn vị không
chia cst được. Thông thường, một số thao tác trên cơ sở dữ liệu tạo thành một đơn vị
logic công việc. Ta hăy xét ví dụ chuyển khoản, trong đó một số tiền x được
chuyển từ tài khoản A (A:=A-x ) sang một tài khoản B ( B:=B+x ). Một yếu tố cần
thiết là cả hai thao tác này hoặc cùng xảy ra hoặc không hoạt động nào xảy ra cả.
Việc chuyển khoản phải xảy ra trong tính toàn thể của nó hoặc không. Đ̣i hfi toàn
thể-hoặc-không này được gọi là tính nguyên tử. Một yếu tố cần thiết khác là sự thực
hiện việc chuyển khoản bảo tồn tính nhất quán của cơ sở dữ liệu: giá trị của tổng A +
B phải được bảo tồn. Đ̣i hfi về tính chính xác này được gọi là tính nhất quán.
Cuối cùng, sau khi thực hiện thành công hoạt động chuyển khoản, các giá trị của
account A và B phải bền vững cho dù có thể có sự cố của hệ thống. Đ̣i hfi về
tính bền vững này được gọi là tính lâu bền. Sự đảm bảo tính chất này là trách nhiệm
của thành phần quản trị giao dịch. Nếu không có sự cố, tất cả giao dịch hoàn tất thành
công và tính nguyên tử được hoàn thành dx dàng. Tuy nhiên, do các sự cố, một giao
dịch có thể không hoàn tất thành công sự thực hiện của nó. Nếu tính nguyên tử được
đảm bảo, một giao dịch thất bại không gây hiệu quả đến trạng thái của cơ sở dữ liệu.
Như vậy, cơ sở dữ liệu phải được hoàn lại trạng thái của nó trước khi giao dịch bst
đầu. Hệ cơ sở dữ liệu phải có trách nhiệm phát hiện sự cố hệ thống và trả lại cơ sở
dữ liệu về trạng thái trước khi xảy ra sự cố.
Khi một số giao dịch cạnh tranh cập nhật cơ sở dữ liệu, tính nhất quán của dữ liệu có thể không được bảo tồn, ngay cả khi mỗi giao dịch là chính xác. Bộ điều khiển cạnh tranh có trách nhiệm điều khiển các trao đổi giữa các giao dịch cạnh tranh để đảm bảo tính thống nhất của CSDL.
Thường một hệ cơ sở dữ liệu cho phép nhiều giao dịch thực hiện đồng thời.
e. Quản lư lưu trữ
13
Phần 1: Nguyên lư các hệ quản trị cơ sở dữ liệu
Các cơ sở dữ liệu thường đ̣i hfi một khối lượng lớn không gian lưu trữ. Các cơ sở dữ liệu hợp nhất thường được đo trong thuật ngữ gigatytes hay với các cơ sở dữ liệu lớn là terabytes. Do bộ nhớ chính của máy tính không thể lưu trữ nhiều thông tin như vậy, các thông tin này được lưu trữ trên các thiết bị nhớ ngoài.
Bộ quản lư lưu trữ là một Môđun chương tŕnh cung cấp giao diện giữa các dữ
liệu được lưu trữ trong cơ sở dữ liệu mức thấp và các chương tŕnh ứng dụng hay các
truy vấn được đệ tŕnh với hệ thống. Bộ quản lư lưu trữ có trách nhiệm tương tác với
bộ quản lư file. Dữ liệu thô được lưu trữ trên đĩa từ sử dụng hệ thống xử lư file thường
được cung cấp bởi một hệ điều hành nào đó. Bộ quản lư lưu trữ dịch các lệnh của
ngôn ngữ DML khác nhau thành các lệnh hệ thống xử lư file ở mức thấp nhất. Do
vậy, bộ quản lư lưu trữ có trách nhiệm lưu trữ, t́m kiếm và cập nhật dữ liệu trong cơ
sở dữ liệu này.
1.2.3. Kiến trúc của một hệ quản trị cơ sở dữ liệu
H́nh 1.3 chỉ ra các thành phần chủ yếu của một hệ quản trị cơ sở dữ liệu. Tại đáy của kiến trúc, chúng ta nh́n thấy một sự biểu dixn của thiết bị nhớ ngoài lưu trữ các dữ liệu và siêu dữ liệu. Chú ư rằng thành phần này chứa không chỉ các dữ liệu được lưu trữ trong cơ sở dữ liệu mà cả các siêu dữ liệu, tức là các thông tin về cấu trúc của cơ sở dữ liệu.
Các thay đổi sơ đồ Các truy vấn
Bộ xử lư câu hfi
Bộ quản lư lưu trữ
Dữ liệu
Siêu dữ liệu
Các thay đổi dữ liệu
Bộ quản trị giao
dịch
H́nh 1.3. Các thành phần chính của một hệ quản trị cơ sở dữ liệu
14
Phần 1: Nguyên lư các hệ quản trị cơ sở dữ liệu
Ví dụ 1.9. Nếu một hệ quản trị cơ sở dữ liệu là hệ quản trị cơ sở dữ liệu quan hệ, các siêu dữ liêu bao gồm tên các quan hệ, tên các thuộc tính của các quan hệ và các kiểu dữ liệu đối với các thuộc tính này.
Trong h́nh 1.3, chúng ta thấy một bộ quản lư lưu trữ mà nhiệm vụ của nó là lấy ra các thông tin được yêu cầu từ những thiết bị lưu trữ dữ liệu và thay đổi những thông tin này khi được yêu cầu bởi các mức trên nó của hệ thống. Bộ xử lư câu hfi điều khiển không chỉ các câu hfi mà cả các yêu cầu thay đổi dữ liệu hay siêu dữ liệu. Nhiệm vụ của nó là t́m ra một cách tốt nhất một thao tác được yêu cầu và phát ra các lệnh đối với bộ phận quản lư lưu trữ để thực thi thao tác đó.
Thành phần bộ quản trị giao dịch có trách nhiệm đảm bảo tính toàn vkn của hệ
thống này. Nó phải đảm bảo rằng một số thao tác thực hiện đồng thời không cản trở
mỗi thao tác khác và hệ thống sẽ không mất dữ liệu thậm chí khi lỗi hệ thống xảy ra.
Nó tương tác với bộ xử lư câu hfi, do vậy nó phải biết dữ liệu nào được thao tác bởi
các thao tác hiện thời để tránh sự đụng độ các hành động và nó có thể cần thiết làm trx
một số truy vấn nhất định hay một số thao tác để các đụng độ này không xảy ra. Nó
tương tác với bộ phận quản lư lưu trữ bởi v́ các sơ đồ đối với việc bảo vệ dữ liệu
thường kéo theo việc lưu trữ một nhật kư các thay đổi đối với dữ liệu. Bởi việc ssp
thứ tự các thao tác một cách thực sự, nhật kư sẽ chứa một bản ghi đối với mỗi thay đổi
để sau khi gặp lỗi hệ thống, các thay đổi chưa được ghi vào đĩa có thể được thực hiện
lại.
Tại đỉnh kiến trúc, chúng ta nh́n thấy ba kiểu thao tác đối với hệ quản trị cơ sở dữ liệu này.
Các truy vấn: Đây là các thao tác hfi đáp về dữ liệu được lưu trữ trong cơ sở dữ liệu. Chúng được sinh ra theo hai cách khác nhau:
_ Thông qua một giao diện truy vấn chung. Ví dụ, một hệ quản trị cơ sở dữ liệu quan hệ cho phép người sử dụng đánh các truy vấn SQL mà nó được chuyển qua bộ xử lư câu hfi và được trả lời.
_ Thông qua các giao diện chương tŕnh ứng dụng. Một hệ quản trị cơ sở dữ
liệu điển h́nh cho phép những người lập tŕnh viết các chương tŕnh ứng dụng gọi đến
hệ quản trị cơ sở dữ liệu này và truy vấn cơ sở dữ liệu. Các truy vấn được đệ tŕnh
thông qua một giao diện đặc biệt có thể chứ các hộp đối thoại. Một người sử dụng
không thể hfi các câu hfi tùy ư thông qua giao diện này, nhưng nói chung sẽ dx dàng
15
Phần 1: Nguyên lư các hệ quản trị cơ sở dữ liệu
hơn đối với người sử dụng khi hfi một câu hfi thích hợp thông qua giao diện này so với việc phải viết một truy vấn trực tiếp bởi SQL.
Các cập nhật dữ liệu. Đây là các thao tác thay đổi dữ liệu, ví dụ thêm, xóa, sửa
đổi dữ liệu trong cơ sở dữ liệu. Giống như các truy vấn, chúng có thể được phát ra
hoặc thông qua một giao diện chung hoặc thông qua giao diện của một chương tŕnh
ứng dụng.
Các thay đổi sơ đồ. Các lệnh này thường được phát ra bởi một người sử dụng được cấp phép, thường là những người quản trị cơ sở dữ liệu mới được phép thay đổi sơ đồ của cơ sở dữ liệu hay tạo lập một cơ sở dữ liệu mới.
1.2.4. Người quản trị cơ sở dữ liệu
Một trong những lư do chính đối với việc sử dụng các hệ quản trị cơ sở dữ liệu
là có một sự điều khiển tập trung cả dữ liệu và các chương tŕnh truy nhập dữ liệu này.
Một con người có trách nhiệm điều khiển một cách tập trung toàn bộ hệ thống được
gọi là người quản trị cơ sở dữ liệu. Các nhiệm vụ của người quản trị cơ sở dữ liệu này
bao gồm:
_ Định nghĩa sơ đồ
Người quản trị cơ sở dữ liệu tạo lập các sơ đồ cơ sở dữ liệu gốc bằng cách viết
một tập các định nghĩa môt tả các cấu trúc dữ liệu mà chúng được dịch bởi bộ dịc
DDL thành một tập các bảng được lưu trữ một cách lâu dài trong từ điển dữ liệu.
_ Xác định cấu trúc lưu trữ và phương pháp truy nhập
Người quản trị cơ sở dữ liệu tạo lập các cấu trúc lưu trữ và phương pháp truy nhập thích hợp bằng cách viết một tập các định nghĩa mà chúng được dịch bởi bộ dịch ngôn ngữ định nghĩa dữ liệu và lưu trữ dữ liệu.
_ Tuyên bố ủy quyền và truy nhập dữ liệu
Việc tuyên bố các kiểu ủy quyền khác nhau cho phép người quản trị cơ sở dữ liệu qui định những bộ phận nào của cơ sở dữ liệu những người sử dụng khác nhau có thể truy nhập. Những thông tin ủy quyền này được cất giữ trong một cấu trúc hệ thống đặc biệt mà có thể được tra cứu bởi hệ cơ sở dữ liệu bất cứ khi nào một truy nhập dữ liệu định đi vào hệ thống.
_ Đặc tả các ràng buộc toàn vẹn
Các giá trị dữ liệu được lưu trữ trong cơ sở dữ liệu thường phải thfa măn
những ràng buộc toàn vkn nhất định. Ví dụ, chẳng hạn số giờ làm việc của một nhân
16
Phần 1: Nguyên lư các hệ quản trị cơ sở dữ liệu
viên trong một tuần không được vượt quá 80giờ. Một ràng buộc như vậy phải được đặc tả một cách tường minh bởi người quản trị cơ sở dữ liệu. Các ràng buộc toàn vkn này được cất giữ trong một cấu trúc hệ thống đặc biệt mà có thể được tra cứu bởi hệ cơ sở dữ liệu bất cứ khi nào một cập nhật dữ liệu xảy ra trong hệ thống.
1.2.5. Người sử dụng cơ sở dữ liệu
Mục đích chính của một hệ cơ sở dữ liệu là cung cấp một môi trường đối với t́m kiếm thông tin từ cơ sở dữ liệu và lưu trữ những thông tin mới vào cơ sở dữ liệu. Có ba nhóm người sử dụng khác nhau được phân biệt bởi cách họ mong muốn tương tác với hệ thống.
_ Người lập tŕnh ứng dụng
Đây là những người chuyên nghiệp về máy tính tương tác với hệ thống thông qua các lời gọi DML mà được nhúng trong một chương tŕnh được viết bởi ngôn ngữ chủ. Các chương tŕnh này được gọi chugn là các chương tŕnh ứng dụng.
Do cú pháp của DML thường được biểu thị khác với cú pháp của ngôn ngữ chủ, các lời gọi DML thường được bst đầu bằng một kư hiệu đặc biệt sao cho đoạn mă tương ứng có thể được sản sinh. Một bộ tiền xử lư đặc biệt gọi là bộ tiền dịch DML, biến đổi các chỉ thị DML thành các lời gọi thủ tục chu n trong ngôn ngữ chủ. Chương tŕnh kết quả sau đó được chạy thông qua chương tŕnh dịch ngôn ngữ chủ mà nó sinh ra đoạn mă đích tương ứng.
_ Người phân tích dữ liệu
Đây là những người sử dụng tương tác với hệ thống không thông qua các chương
tŕnh ứng dụng. Thực chất họ phát biểu các yêu cầu của họ bởi một ngôn ngữ truy vấn
dữ liệu. Mỗi truy vấn như vậy được đệ tŕnh đối với bộ xử lư câu hfi mà nhiệm vụ của
nó là phân tách chỉ thị DML thành các lệnh mà bộ quản lư lưu trữ có thể hiểu được.
Các nhà phân tích đệ tŕnh các truy vấn để khai thác dữ liệu được xếp vào nhóm người
sử dụng này.
_ Người sử dụng đầu cuối
Đây là những người sử dụng b́nh thường tương tác với hệ thống bởi việc thực hiện một trong các chương tŕnh ứng dụng có sgn được viết từ trước.
1.3. Sự phân loại các hệ cơ sở dữ liệu
Trong thực tế, tuỳ theo qui mô để người sử dụng có thể phát triển một hệ cơ sở dữ liệu nhf hoặc lớn.
17
Phần 1: Nguyên lư các hệ quản trị cơ sở dữ liệu
Có hai loại kiến trúc hệ cơ sở dữ liệu: tập trung và phân tán.
1.3.1. Các hệ cơ sở dữ liệu tập trung
Với một hệ cơ sở dữ liệu tập trung, tập tất cả các dữ liệu được định vị tại một trạm đơn lẻ. Những người sử dụng tại các trạm từ xa nói chung có thể truy nhập cơ sở dữ liệu thông qua các công cụ truyền thông dữ liệu.
a. Hệ cơ sở dữ liệu cá nhân
Các hệ cơ sở dữ liệu cá nhân thường một người sử dụng đơn lẻ mà họ vừa thiết kế và tạo lập cơ sở dữ liệu, vừa cập nhật cơ sở dữ liệu và bảo tŕ cơ sở dữ liệu. Nói cách khác, họ là vừa người quản trị cơ sở dữ liệu đồng thời là người viết chương tŕnh, đồng thời cũng là người sử dụng cuối của hệ.
__
Cơ sở dữ liệu
H́nh 1.4. Hệ cơ sở dữ liệu cá nhân
b. Hệ cơ sở dữ liệu sở dữ liệu trung tâm
_ _
_ _
_ _
Cơ sở dữ liệu
H́nh 1.5. Hệ cơ sở dữ liệu trung tâm
18
Phần 1: Nguyên lư các hệ quản trị cơ sở dữ liệu
Trong các tổ chức lớn, dữ liệu mà hầu hết các ứng dụng có thể truy nhập được lưu trữ trên một máy tính trung tâm. Trong nhiều hệ thống, những người sử dụng từ xa có thể truy nhập cơ sở dữ liệu này thông qua các thiết bị đầu cuối và các móc nối truyền dữ liệu. Tuỳ thuộc vào qui mô tổ chức, máy tính trung tâm này thường là một dàn hay một máy vi tính. Các hệ cơ sở dữ liệu trung tâm thường lưu trữ các cơ sở dữ liệu tích hợp rất lớn và được nhiều người sử dụng truy nhập. Các ứng dụng điển h́nh như hệ thống bán vé máy bay, hệ thống tàu hoả...
c. Hệ cơ sở dữ liệu khách/chủ
Một kiến trúc khách/chủ được thiết kế với sự phân tải công việc trên một mạng
máy tính trong đó các máy khách có thể chia sẽ các dịch vụ của một máy chủ đơn lẻ.
Một máy chủ là một ứng dụng phần mềm cung cấp các dịch vụ quản lư file hay cơ sở
dữ liệu, quản lư truyền thông....đối với các máy khách đang yêu cầu. Một máy khách
là một ứng dụng phần mềm yêu cầu các dịch vụ từ một hay nhiều máy chủ. Thông
thường, ứng dụng máy chủ (máy chủ cơ sở dữ liệu ) được định vị trên một máy tính
riêng trong mạng cục bộ.
Mục đích chính của một kiến trúc khách/chủ là cho phép các ứng dụng máy khách truy nhập dữ liệu được quản lư bởi máy chủ. Giao diện người sử dụng và logic của ứng dụng kinh doanh được xử lư trên máy khách, trong khi sử lư cơ sở dữ liệu được thực hiện trên máy chủ cơ sở dữ liệu.
_
_
Mạng cục bộ
_
__
Cơ sở dữ liệu
H́nh 1.6. Hệ cơ sở dữ liệu khách/chủ
19
Phần 1: Nguyên lư các hệ quản trị cơ sở dữ liệu
1.3.2. Các hệ cơ sở dữ liệu phân tán
Ngày nay, nhiều tổ chức phân bố trên nhiều vị trí địa lư khác nhau như các thành phố khác nhau hay các quốc gia khác nhau. Trong những trường hợp như vậy, việc xây dựng các hệ cơ sở dữ liệu tập trung đối với các tổ chức này thường là không thực tế và không kinh tế.
Một cơ sở dữ liệu phân tán là một cơ sở dữ liệu logic đơn lẻ mà được trải ra về mặt vật lư trên nhiều máy tính ở nhiều vị trí địa lư khác nhau. Có hai kiểu chung nhất của các hệ cơ sở dữ liệu phân tán là: hệ cơ sở dữ liệu phân tán thuần nhất và hệ cơ sở dữ liệu phân tán không thuần nhất.
H́nh 1.7. Các hệ cơ sở dữ liệu phân tán
20
Phần 1: Nguyên lư các hệ quản trị cơ sở dữ liệu
a. Hệ cơ sở dữ liệu phân tán thuần nhất
Khi áp dụng đối với các hệ cơ sở dữ liệu, thuật ngữ thuần nhất có nghĩa là công nghệ cơ sở dữ liệu là như nhau (hay ít nhất có thể tương thích) tại mỗi vị trí địa lư khác nhau cũng có thể tương thích.
Trong h́nh trên, cơ sở dữ liệu của hệ được phân tán trên ba nút (hay ba vị trí
địa lư). Đối với các hệ cơ sở dữ liệu phân tán thuần nhất này, các điều kiện sau đây có
thể tồn tại:
_ Các hệ điều hành máy tính tại mỗi vị trí địa lư là như nhau hay ít nhất chúng có khả năng tương thích cao.
_ Các mô h́nh dữ liệu được sử dụng tại mỗi vị trí địa lư là như nhau.
_ Các hệ quản trị cơ sở dữ liệu được sử dụng tại mỗi vị trí địa lư là như nhau hay ít nhất chúng có khả năng tương thích cao.
_ Dữ liệu tại các vị trí khác nhau có các định nghĩa và khuôn dạng chung.
Các hệ cơ sở dữ liệu phân tán thuần nhất đơn giản hoá việc chia sẻ dữ liệu giữa những người sử dụng khác nhau.
b. Hệ cơ sở dữ liệu phân tán không thuần nhất
Trong hầu hết các tổ chức, các hệ cơ sở dữ liệu liên quan đến một chu kỳ dài không được chỉ đạo và lập kế hoạch c n thận. Các máy tính khác nhau và các hệ điều hành khác nhau có thể được sử dụng tại mỗi vị trí địa lư. Các mô h́nh dữ liệu khác nhau và các hệ quản tri cơ sở dữ liệu khác nhau cũng có thể được lựa chọn sử dụng. Ví dụ, một vị trí có thể sử dụng công nghệ cơ sở dữ liệu quan hệ mới nhất, trong khi một vị trí khác có thể lưu trữ dữ liệu sử dụng các file truyền thống hay các cơ sở dữ liệu mạng, phân cấp cũ hơn.
Phức tạp hơn nữa, dữ liệu trên các vị trí thường không tương thích. Các mâu thuen điển h́nh bao gồm các khác biệt về cú pháp (sự biểu dixn khác nhau của các khoản mục dữ liệu tại hai vị trí) và các khác biệt về ngữ nghĩa.
21
Phần 1: Nguyên lư các hệ quản trị cơ sở dữ liệu
Câu hỏi
1. Nêu và phân tích các điểm khác nhau chính giữa một hệ thống xử lư file và một hệ quản trị CSDL là ǵ ?
2. Liệt kê các nhiệm vụ của nhà quản trị CSDL. Đối với mỗi nhiệm vụ, giải thích rơ những vấn đề nảy sinh nếu nhiệm vụ đó không được hoàn thành.
3. Sử dụng một mảng hai chiều kích c‚ n x m như một ví dụ để minh hoạ sự khác
nhau:
a. Giữa ba mức trừu tượng dữ liệu
b. Giữa sơ đồ và thể hiện
4. Trong các hệ thống client-server tiêu biểu, máy server thường mạnh hơn máy client
rất nhiều: Có bộ xử lư nhanh hơn thậm chí có thể có nhiều bộ xử lư, có bộ nhớ lớn
hơn, có dung lượng đĩa lớn hơn. Ta xét một kịch bản trong đó các máy client và các
máy server là mạnh như nhau. Xây dựng một hệ thống client-server theo kịch bản như
vậy có ưu nhược điểm ǵ ? Kịch bản nào phù hợp hơn với kiến trúc server dữ liệu ?
22
Phần 1: Nguyên lư các hệ quản trị cơ sở dữ liệu
Chương 2
CÁC MÔ H̀NH DỮ LIỆU
Quá tŕnh thiết kế một cơ sở dữ liệu bắt đầu với một sự phân tích những thông
tin nào của thế giới thực cơ sở dữ liệu phải lưu trữ và các mối quan hệ giữa các thành
phần của những thông tin này. Thông thường cấu trúc cơ sở dữ liệu hay c̣n gọi là sơ
đồ cơ sở dữ liệu được đặc tả bởi một ngôn ngữ đặc biệt hay một tập các kư hiệu thích
hợp để biểu thị một thiết kế cơ sở dữ liệu. Mô h́nh dữ liệu là một h́nh thức toán học
với một tập các kư hiệu được mô tả dữ liệu và một tập các phép toán được sử dụng để
thao tác dữ liệu này. Có nhiều loại mô h́nh dữ liệu như: mô h́nh mối quan hệ thực
thể (Entity Relationship Model), mô h́nh quan hệ (Relational Model), mô h́nh mạng
(Network Model),…tuy nhiên không thể nói mô h́nh nào là tốt nhất cho các hệ thống
cơ sở dữ liệu mà tuỳ theo đặc thù của các loại dữ liệu, tuỳ theo yêu cầu của các phép
xử lư mà chúng ta có thể chọn mô h́nh cơ sở dữ liệu thích hợp.
2.1. Mô h́nh thực thể liên kết
Mô h́nh thực thể liên kết (Mô h́nh ER) dựa trên cơ sở nhận thức của thế giới thực bao gồm tập các đối tượng cơ sở được gọi là các thực thể và một tập các liên kết giữa các đối tượng này. Mô h́nh dữ liệu ER là một trong các mô h́nh dữ liệu ngữ nghĩa. Khía cạnh ngữ nghĩa của mô h́nh ở chổ cố gắng biểu diễn các ngữ nghĩa của dữ liệu trong thế giới thực.
2.1.1. Các khái niệm cơ sở
Có 3 kư hiệu cơ bản mà mô h́nh thực thể liên kết sử dụng: Các tập thực thể, các tập liên kết và các thuộc tính.
a. Các tập thực thể.
Một thực thể là một đối tượng cụ thể hay trừu tượng trong thế giới thực mà nó tồn tại và có thể phân biệt được với các đối tượng khác. Chẳng hạn như một sinh viên trong một lớp học là một thực thể. Một nhóm các thực thể giống nhau tạo thành một tập thực thể. Ví dụ như tập thực thể sinh viên.
b. Các thuộc tính và khoá
Các tập thực thể có các đặc tính được gọi là các thuộc tính. Mỗi thuộc tính có một miền giá trị.
23
Phần 1: Nguyên lư các hệ quản trị cơ sở dữ liệu
Việc lựa chọn các thuộc tính thích đáng đối với các tập thực thể là một bước
quan trọng trong việc thiết kế sơ đồ cơ sở dữ liệu khái niệm.
Mỗi thuộc tính hay một tập các thuộc tính mà giá trị của nó xác định duy nhất
mỗi thực thể trong tập thực thể được gọi là khoá đối với tập thực thể này. Về nguyên
tắc, mỗi tập thực thể có một khoá do chúng ta giả định rằng mỗi thực thể là phân biệt
với các thực thể khác.
Ví dụ 2.1. Tập thực thể sinh viên trong một trường Đại học, khi đó có thể sử dụng MASV (mă số sinh viên) là một khoá.
c. Các liên kết
Một liên kết là một sự kết hợp giữa một số thực thể. Chẳng hạn, có thể xác
định một liên kết mà nó kết hợp một sinh viên A với một lớp B. Liên kết này nói rằng
sinh viên A là một thành viên của lớp B. Một tập liên kết là một tập các liên kết cùng
kiểu.
Một cách h́nh thức, một liên kết giữa các tập thực thể là một danh sách có thứ
tự các tập thực thể, một tập thực thể có thể xuất hiện nhiều hơn một lần trong danh
sách.
Nếu có một liên kết R giữa các tập thực thể E1, E2, …Ek th́ một thể hiện của R là một tập các k-bộ. Chúng ta gọi một tập như vậy là tập các liên kết. Mỗi k-bộ (e1, e2, ..ek) trong tập liên kết R với ei là một thể hiện Ei là một thể hiện của R.
d. Các phân cấp “is-a”
Chúng ta nói A là-một B, nếu tập thực thể B thực sự là tổng quát hoá của tập
thực thể A, hay nói một cách khác A là một kiểu đặc biệt của B. Mục đích của các
liên kết “là-một” giữa các tập thực thể A và B là như vậy A có thể kế thừa các thuộc
tính của B, nhưng A cũng có thể bổ sung thêm một số thuộc tính riêng mà B không
có.
Ví dụ 2.2. Một trường Đại học có tập thực thể Sinh viên với các thuộc tính như Mă
sinh viên, Tên sinh viên, quê quán. Nếu chúng ta xét tập thực thể sinh viên Khoa CNT
trong tập thực thể Sinh viên trên th́ những sinh viên này có thêm các thuộc tính Khả
năng lập tŕnh, Thiết kế Web…… Như vậy ta nói Sinh viên CNTT “là-một” Sinh
viên.
2.1.2. Sơ đồ thực thể liên kết (sơ đồ ER)
Việc tóm tắt những thông tin cần lưu trữ trong một cơ sở dữ liệu đối với một
thiết kế sử dụng các sơ đồ ER là rất có ích. Trong sơ đồ ER, chúng ta sử dụng các kư
24
Phần 1: Nguyên lư các hệ quản trị cơ sở dữ liệu
hiệu sau để biểu diễn các thành phần của sơ đồ:
- Các h́nh chữ nhật biểu diễn các tập thực thể.
- Các h́nh Oval biểu diễn các thuộc tính, chúng được nối đến với các tập thực
thể bởi các cạnh không định hướng. Có thể gạch chân đối với thuộc tính khoá của tập
thực thể.
- Các h́nh thoi biểu diễn các liên kết. Chúng được nối đến các tập thực thể bởi các cạnh có thể định hướng hoặc không định hướng.
Ví dụ
Số ĐVHT
Mă SV
Sinh viên
Ngàysinh Họ SV
Tên SV
2.1.3. Chức năng của các liên kết
Điểm thi
Mă MH
Lần Điểm
Môn học
Tên MH
Để mô h́nh hoá thế giới thực một cách thích hợp, người ta cần phân loại các liên kết phù hợp với thực tế có bao nhiêu thực thể từ một tập thực thể có thể kết hợp với bao nhiêu thực thể của tập thực thể khác.
a. Liên kết một-một
Có nghĩa là với mỗi thực thể trong tập thực thể này có nhiều nhất mỗi thực thể trong tập thực thể kia và ngược lại.
b. Liên kết một-nhiều
Trong liên kết một-nhiều, một thực thể trong tập thực thể E1 được kết hợp với không hoặc nhiều thực thể trong tập thực thể E2, nhưng một thực thể trong tập thực thể E2 liên kết với duy nhất với một thực thể trong tập thực thể E1. Liên kết này được gọi là một-nhiều từ E1 đến E2.
Khái niệm liên kết một-nhiều có thể được tổng quát hoá thành các liên kết giữa nhiều hơn hai tập thực thể.
c. Liên kết nhiều-nhiều
Trong liên kết nhiều-nhiều, một thực thể trong tập thực thể E1 được kết hợp với không hoặc nhiều thực thể trong tập thực thể E2 và ngược lại một thực thể trong tập thực thể E2 liên kết với không hoặc thực thể trong tập thực thể E1.
25
Phần 1: Nguyên lư các hệ quản trị cơ sở dữ liệu
Trong khi các liên kết nhiều-nhiều xuất hiện khá thường xuyên trong thực tế, chúng ta phải xem xét các liên kết này được biểu thị như thế nào trong sơ đồ khái niệm của cơ sở dữ liệu thực sự. Nhiều mô h́nh dữ liệu không cho phép biểu thị trực tiếp các liên kết nhiều-nhiều, thay vào đó đ̣i hỏi chúng phải được biến đổi thành một số liên kết một-nhiều bởi một số kỹ thuật nào đó.
d. Xác định kiểu liên kết trong các sơ đồ ER
Nếu R là liên kết một-một giữa tập thực thể A và tập thực thể B, chúng ta vẽ các mũi tên từ R đến cả A và B.
A R B
Nếu R là liên kết nhiều-nhiều giữa tập thực thể A và tập thực thể B, chúng ta vẽ các cạnh không định hướng từ R đến cả A và B.
A R B
Nếu R là liên kết một-nhiều giữa tập thực thể A và tập thực thể B, chúng ta vẽ mũi tên từ R đến A và cạnh không định hướng từ R đến B.
A R B
2.2. Mô h́nh dữ liệu quan hệ
2.2.1. Các khái niệm cơ bản
a. Quan hệ
Định nghĩa 2.1. Cho D1, D2, ….,Dn là n miền giá trị, r là một quan hệ trên các miền D1, D2,….,Dn nếu r là một tập con nào đó các n-bộ được sắp có dạng (d1, d2,….dn) sao cho di∈Di với i = 1..n.
Dễ dàng nhận thấy theo định nghĩa, một quan hệ r trên các miền D1, D2, ….,Dn chính là một tập con của tích Đề-các n miền đó.
Rơ ràng, một quan hệ được biểu diễn dưới dạng một bảng, mỗi ḍng biểu diễn một bộ của quan hệ.
26
Phần 1: Nguyên lư các hệ quản trị cơ sở dữ liệu
Để dễ dàng tham chiếu đến các thành phần của các bộ mà không cần biết thứ tự của thành phần trong các bộ được sắp, người ta thường đặt tên cho các thành phần. Chúng ta gọi tên của một thành phần là một thuộc tính.
Định nghĩa 2.2. Cho U ={A1, A2,….An} là một tập hữu hạn các thuộc tính. Với mỗi thuộc tính Ai có miền giá trị tương ứng là Dom(Ai). Khi đó, r là quan hệ xác định trên tập thuộc tính U nếu: r ⊆ Dom(A1) × Dom(A2) × ……. ×Dom(An)
b. Khoá và siêu khoá
Định nghĩa 2.3. Cho r xác định trên tập thuộc tính U với U ={A1, A2,….An}. Một tập con K ⊆ U được gọi là siêu khoá của quan hệ r nếu với bất kỳ hai bộ t1, t2 thuộc r, t1 ≠ t2, đều tồn tại một thuộc tính A thuộc K sao cho t1[A] ≠ t2[A].
Theo định nghĩa, nếu K là siêu khoá của một quan hệ th́ không tồn tại hai bộ thuộc quan hệ khác nhau mà có giá trị bằng nhau trên mọi thuộc tính của K. Do đó, giá trị của K xác định duy nhất một bộ của quan hệ.
Định nghĩa 2.4. Cho r xác định trên tập thuộc tính U với U ={A1, A2,….An}. Một tập con K ⊆ U được gọi là khoá của quan hệ r nếu K là siêu khoá của r và bất kỳ tập con thật sự K’ của K không là siêu khoá.
Trong một quan hệ có thể có nhiều khoá, người ta chọn một khoá làm khoá chính, các khoá khác được xem là khoá dự tuyển.
Định nghĩa 2.5. Một tập con K ⊆ U được gọi là khoá ngoài của quan hệ r xác định
trên tập thuộc tính U tham chiếu đến quan hệ r’ nếu K là khoá chính của quan hệ r’.
2.2.2. Biến đổi các sơ đồ ER sang mô h́nh quan hệ
a. Biến đổi các tập thực thể
Một tập thực thể E được biến đổi thành một quan hệ mà sơ đồ quan hệ của nó bao gồm các thuộc tính của tập thực thể. Mỗi bộ của quan hệ biểu diễn một thực thể trong thể hiện hiện thời của E.
Nếu E là một tập thực thể mà các thực thể của nó xác định thông qua một liên kết với một tập thực thể F nào đó th́ sơ đồ quan hệ tương ứng với E chỉ chứa các thuộc tính trong khoá của F.
b. Biến đổi các liên kết
Một liên kết R giữa các tập thực thể E1, E2, ….Ek được biến đổi thành một
quan hệ mà sơ đồ quan hệ của nó bao gồm các thuộc tính trong khoá của mỗi E1, E2,
….Ek.
c. Các khoá của các sơ đồ quan hệ
27
Phần 1: Nguyên lư các hệ quản trị cơ sở dữ liệu
Nếu một sơ đồ quan hệ được biến đổi từ một tập thực thể, khoá của tập thực thể chính là khoá của sơ đồ quan hệ.
Nếu một sơ đồ quan hệ được biến đổi từ một liên kết nhiều-nhiều th́ khoá của sơ đồ quan hệ thường là tập tất cả các thuộc tính.
Nếu một sơ đồ quan hệ được biến đổi từ một liên kết một-một giữa hai tập thực thể E và F th́ khoá của E và khoá của F cả hai đều là khoá của sơ đồ quan hệ biểu diễn liên kết này.
Nếu một sơ đồ quan hệ được biến đổi từ một liên kết một-nhiều từ Ek vào Ek-1, ….E1 th́ tập các thuộc tính là hợp của các khoá của Ek-1, ….E1 thường là khoá của sơ đồ quan hệ này.
d. Các sơ đồ quan hệ với khoá chung
Khi hai sơ đồ quan hệ có khoá chung chúng ta có thể tổ hợp các thuộc tính của hai sơ đồ quan hệ và thay thế hai sơ đồ quan hệ này bởi một sơ đồ quan hệ mới với tập thuộc tính là hợp của hai tập thuộc tính của hai sơ đồ quan hệ ban đầu.
2.3. Mô h́nh dữ liệu mạng
Mô h́nh dữ liệu mạng là một mô h́nh sơ đồ thực thể liên kết với tất cả các liên
kết được hạn chế là liên kết một-nhiều. Hạn chế này cho phép chúng ta sử dụng đồ thị
có hướng đơn giản để biểu diễn dữ liệu trong mô h́nh này. Trong mô h́nh mạng, các
tập thực thể được chuyển thành các kiểu bản ghi logic. Các kiểu bản ghi logic bao
gồm một tập các trường, mỗi trường chứa giá trị là một số nguyên hay một xâu kư
tự…Tập tên các trường và các kiểu của chúng cấu thành qui cách bản ghi logic.
2.3.1. Định danh bản ghi
Có thể có một sự tương tự gần gũi giữa các thuật ngữ của mô h́nh mạng và các thuật ngữ trong mô h́nh quan hệ như sau:
Qui cách bản ghi logic Sơ đồ quan hệ
Bản ghi logic Bộ
Kiểu bản ghi Tên quan hệ
Tuy nhiên, có một sự khác biệt quan trọng giữa các bộ của quan hệ và các bản ghi của
kiểu bản ghi. Trong mô h́nh quan hệ hướng giá trị, các bộ chính là các giá trị đối với
các thành phần của bộ. Hai bộ có cùng giá trị trên các thuộc tính được xem là như
nhau. Mặt khác, mô h́nh mạng là mô h́nh hướng đối tượng. Các bản ghi của mô h́nh
mạng có thể được quan sát như có một khoá ẩn mà thực chất là địa chỉ bản ghi hay
28
Phần 1: Nguyên lư các hệ quản trị cơ sở dữ liệu
định danh của đối tượng được biểu diễn bởi bản ghi. Định danh đối tượng duy nhất này phục vụ cho việc phân biệt các bản ghi.
2.3.2. Các móc nối
Trong mô h́nh mạng, các liên kết hai ngôi một-nhiều được gọi là các móc nối. Chúng ta vẽ một đồ thị có hướng được gọi là một mạng mà thực chất là một sơ đồ thực thể liên kết đơn giản hoá để biểu diễn các kiểu bản ghi và các móc nối của chúng. Các nút tương ứng với các kiểu bản ghi, nếu có một móc nối giữa hai kiểu bản ghi T1 đến T2 và móc nối này là một-nhiều từ T1 đến T2 th́ chúng ta vẽ một cung từ nút T2 đến T1 và nói rằng móc nối này từ T2 đến T1. Các nút và các cung được gán nhăn bởi tên của các kiểu bản ghi và tên của móc nối.
2.4. Mô h́nh dữ liệu phân cấp
Một mô h́nh phân cấp đơn giản là một mô h́nh mạng mà là một rừng (tập các cây) trong đó tất cả các móc nối trỏ theo hướng từ con đến cha.
2.4.1. Thuật toán biến đổi mô h́nh mạng đơn giản
Chúng ta bắt đầu tại một nút có nhiều móc nối đi vào và không có móc nối đi ra và đặt nó là gốc của cây. Chúng ta gắn vào cây mọi nút có thể gắn. Khi chúng ta không thể thêm một nút nào khác vào cây đó, ta sẽ bắt đầu với một cây khác, một nút cha chưa được gắn sẽ được chọn làm nút gốc và gắn mọi nút vào cây mà chúng ta có thể. Thực tế, mỗi nút có thể xuất hiện trong rừng này một hay nhiều lần trên các cây khác nhau. Đến đây chúng ta đă có một mô h́nh phân cấp.
2.4.2. Sự lặp lại các kiểu bản ghi
Chúng ta có thể thấy việc biến đổi mô h́nh mạng đôi khi có những bản ghi có thể xuất hiện nhiều hơn một lần. Sự lặp lại này gây ra một số vấn đề như sau:
Chúng ta lăng phí không gian bộ nhớ v́ chúng ta phải lưu trữ lặp lại dữ liệu
trong các bản ghi này một số lần.
Tính không nhất quán tiềm tàng có thể xuất hiện nếu chúng ta thay đổi giá trị trong một bản sao nào đó của một bản ghi nhưng lại quên không thay đổi giá trị của bản sao khác.
Việc khắc phục phục và tránh những vấn đề nảy sinh ở trên mà nguyên nhân chính là sự lưu trữ lặp lại một số dữ liệu trong cơ sở dữ liệu là một mục tiêu quan trọng của vấn đề thiết kế cơ sở dữ liệu.
29
Phần 1: Nguyên lư các hệ quản trị cơ sở dữ liệu
2.5. Mô h́nh dữ liệu hướng đối tượng
Hiện nay, có một số lớn các đề nghị và một số cài đặt của các mô h́nh dữ liệu có khả năng nắm bắt bản chất của các ngôn ngữ truy vấn hướng đối tượng. Các mô h́nh này được lấy các tên gọi khác nhau như mô h́nh dữ liệu ngữ nghĩa, mô h́nh dữ liệu chức năng. Đặc điểm chung của các mô h́nh này là chúng hỗ trợ:
Định danh đối tượng. Mỗi thực thể trong thế giới thực được mô h́nh hoá vào trong cơ sở dữ liệu được gọi là một đối tượng. Mỗi một đối tượng được xác định duy nhất bởi định danh đối tượng. Định danh đối tượng do hệ thống sinh ra và được quản lư bởi hệ thống.
Các đối tượng phức tạp. Một cách điển h́nh, các mô h́nh này cho phép cấu
trúc các kiểu dữ liệu mới từ các kiểu dữ liệu đă có bởi cấu trúc bộ và cấu trúc tập.
Sự phân cấp kiểu. Chúng cho phép có các kiểu con với các tính chất đặc biệt
riêng của nó.
Tiếp theo chúng ta sẽ đi t́m hiểu một số khái niệm cơ bản trong mô h́nh dữ liệu hướng đối tượng.
2.5.1. Cấu trúc đối tượng
Tập các cấu trúc đối tượng có thể định nghĩa trong mô h́nh của chúng ta là rất gần với tập các sơ đồ có thể của các cơ sở dữ liệu trong mô h́nh phân cấp. Chúng ta có thể định nghĩa một tập các kiểu đối tượng cho phép cùng với sự cài đặt vật lư dự định của chúng một cách đệ qui như sau:
Kiểu dữ liệu nguyên tố, có nghĩa là số nguyên, số thực hay chuỗi kư tự có độ dài cố định hay độ dài thay đổi, là một kiểu đối tượng.
Nếu T là một kiểu đối tượng th́ SETOF(T) cũng là một kiểu đối tượng. Một đối tượng có kiểu là SETOF(T) là một tập hợp các đối tượng có kiểu T. Do vậy, SETOF(T) c̣n được gọi là kiểu tập.
Nếu T1, T2…., Tk là các kiểu đối tượng th́ TUPLEOF(T1, T2, ..Tk) là một kiểu đối tượng. Một kiểu đối tượng này là một k-bộ, trong đó thành phần thứ i của k-bộ có kiểu Ti. Do vậy, TUPLEOF(T1, T2, ..Tk) c̣n được gọi là kiểu bộ.
2.5.2. Các lớp và các phương thức
Một mô h́nh dữ liệu hướng đối tượng không bị hạn chế đối với kư hiệu của
kiểu đối tượng. Kư hiệu cơ sở thực sự là lớp mà nó là một kiểu đối tượng và một tập
30
Phần 1: Nguyên lư các hệ quản trị cơ sở dữ liệu
các phương thức hay các thao tác được thực hiện trên các đối tượng với cấu trúc đối tượng của lớp này.
2.5.3. Sự phân cấp lớp
Một thành phần chủ yếu khác trong mô h́nh dữ liệu hướng đối tượng là kư
hiệu của các lớp con và sự phân cấp giữa các lớp, một sự h́nh thức hoá của các liê kết
“là-một”.
Giả sử chúng ta có một lớp C và chúng ta muốn định nghĩa một lớp con D. Chúng ta bắt đầu với cùng cấu trúc đối tượng với lớp con D như đối với lớp C và với cùng tập các phương thức đối với lớp con D như đối với lớp C. Sau đó chúng ta có thể thay đổi lớp C như sau:
Nếu cấu trúc đối với lớp C là một kiểu bộ có dạng: TUPLEOF(T1, T2, ..Tk) th́ chúng ta có thể thêm một số thuộc tính đối với cấu trúc bộ này đặc trưng riêng cho các đối tượng thuộc lớp con D.
Chúng ta có thể tạo các phương thức mới mà chỉ áp dụng đối với lớp con D.
Chúng ta có thể định nghĩa lại các phương thức của lớp C để nó có một ư nghĩa mới đối với lớp con D.
Bạn đang đọc truyện trên: Truyen247.Pro