1. Trang chủ
  2. » Giáo án - Bài giảng

bài giảng cơ sở sữ LIỆU

67 215 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 67
Dung lượng 219,14 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

sửa bài giảng cơ sở dữ liệu PHẦN A: KIẾN THỨC CƠ BẢN CHƢƠNG I: CÁC KHÁI NIỆM CƠ BẢN VỀ CƠ SỞ DỮ LIỆU I. MỘT SỐ KHÁI NIỆM CƠ BẢN Thí dụ trong một thƣ viện có quá nhiều sách, để biết chúng hiện đang nằm ở đâu, trên giá nào và có thể tìm kiếm dễ dàng thì các tên sách cần đƣợc sắp xếp lại theo thứ tự. Đối với mỗi cuốn sách ngƣời ta không chỉ ghi tên của chúng, mà còn ghi nhớ cả tên tác giả, năm xuất bản, nhà xuất bản, số trang,… Nếu nhƣ chỉ có một số lƣợng nhỏ những cuốn sách thì ngƣời ta có thể tìm kiếm ngay và lƣu thông tin của chúng bằng thủ công. Nhƣng nếu có quá nhiều sách thì việc làm thủ công không còn thích hợp, phải sử dụng một cơ sở dữ liệu để lƣu trữ thông tin của chúng. Đối với danh bạ điện thoại cũng vậy, thông tin về từng con ngƣời đƣợc lƣu trữ để tra cứu thuận tiện. Các cơ sở dữ liệu (CSDL) dùng để lƣu trữ các thuộc tính và các đối tƣợng của thế giới thực, xử lý và tìm kiếm dữ liệu trong hầu hết các tổ chức, từ kinh doanh, bảo hiểm, giáo dục, đến thƣ viện,… Công nghệ CSDL có thể sử dụng trên máy tính đơn hoặc nhiều máy tính nối nhau (mạng), trong quy mô rộng lớn. 1. Định nghĩa cơ sở dữ liệu (CSDL) Cơ sở dữ liệu là tập hợp có tổ chức của các dữ liệu về thế giới thực trong một lĩnh vực nào đó có liên quan với nhau về mặt logic. Chúng đƣợc lƣu trữ ở bộ nhớ ngoài. 2. Định nghĩa môn cơ sở dữ liệu Môn CSDL là lĩnh vực của tin học chuyên nghiên cứu các cơ chế, nguyên lý, phƣơng pháp tổ chức các nhóm dữ liệu trên các bộ nhớ ngoài nhằm phục vụ cho việc khai thác dữ liệu đƣợc tốt hơn. 3. Định nghĩa dữ liệu Khi nói đến dữ liệu là nói để những sự kiện đã biết; Chẳng hạn trong CSDL về các cuốn sách, dữ liệu bao gồm các sự kiện nhƣ tên sách, năm xuất bản, nhà xuất bản,… hay trong CSDL về số điện thoại, gồm tên ngƣời quen, số điện thoại, địa chỉ của họ. Các dữ liệu tuân theo loại dữ liệu đƣợc mô tả trƣớc và đƣợc thể hiện dƣới dạng văn bản, hình ảnh, âm thanh thậm chí cả những đoạn video. Chẳng hạn CSDL về thƣ viện có thể lƣu ảnh của bạn đọc. Dữ liệu là các sự kiện, văn bản, đồ họa, hình ảnh và đoạn phim video có ý nghĩa trong môi trường của người dùng.

Trang 1

PHẦN A: KIẾN THỨC CƠ BẢN

CHƯƠNG I:

CÁC KHÁI NIỆM CƠ BẢN VỀ CƠ SỞ DỮ LIỆU

I MỘT SỐ KHÁI NIỆM CƠ BẢN

Thí dụ trong một thư viện có quá nhiều sách, để biết chúng hiện đang nằm ở đâu,trên giá nào và có thể tìm kiếm dễ dàng thì các tên sách cần được sắp xếp lại theo thứ

tự Đối với mỗi cuốn sách người ta không chỉ ghi tên của chúng, mà còn ghi nhớ cả têntác giả, năm xuất bản, nhà xuất bản, số trang,… Nếu như chỉ có một số lượng nhỏnhững cuốn sách thì người ta có thể tìm kiếm ngay và lưu thông tin của chúng bằng thủcông Nhưng nếu có quá nhiều sách thì việc làm thủ công không còn thích hợp, phải sửdụng một cơ sở dữ liệu để lưu trữ thông tin của chúng Đối với danh bạ điện thoại cũngvậy, thông tin về từng con người được lưu trữ để tra cứu thuận tiện

Các cơ sở dữ liệu (CSDL) dùng để lưu trữ các thuộc tính và các đối tượng của thếgiới thực, xử lý và tìm kiếm dữ liệu trong hầu hết các tổ chức, từ kinh doanh, bảo hiểm,giáo dục, đến thư viện,… Công nghệ CSDL có thể sử dụng trên máy tính đơn hoặcnhiều máy tính nối nhau (mạng), trong quy mô rộng lớn

1 Định nghĩa cơ sở dữ liệu (CSDL)

Cơ sở dữ liệu là tập hợp có tổ chức của các dữ liệu về thế giới thực trong một lĩnhvực nào đó có liên quan với nhau về mặt logic Chúng được lưu trữ ở bộ nhớ ngoài

2 Định nghĩa môn cơ sở dữ liệu

Môn CSDL là lĩnh vực của tin học chuyên nghiên cứu các cơ chế, nguyên lý,phương pháp tổ chức các nhóm dữ liệu trên các bộ nhớ ngoài nhằm phục vụ cho việckhai thác dữ liệu được tốt hơn

3 Định nghĩa dữ liệu

Khi nói đến dữ liệu là nói để những sự kiện đã biết; Chẳng hạn trong CSDL về cáccuốn sách, dữ liệu bao gồm các sự kiện như tên sách, năm xuất bản, nhà xuất bản,…hay trong CSDL về số điện thoại, gồm tên người quen, số điện thoại, địa chỉ của họ.Các dữ liệu tuân theo loại dữ liệu được mô tả trước và được thể hiện dưới dạng vănbản, hình ảnh, âm thanh thậm chí cả những đoạn video Chẳng hạn CSDL về thư viện

có thể lưu ảnh của bạn đọc

Dữ liệu là các sự kiện, văn bản, đồ họa, hình ảnh và đoạn phim video có ý nghĩa trong môi trường của người dùng.

II KHUNG NHÌN DỮ LIỆU (VIEW OF DATA)

1 Sự trừu tượng hoá dữ liệu

Những người sử dụng không phải luôn thành thạo về máy tính, vì vậy các nhà tinhọc phải che dấu sự phức tạp về biểu diễn bên trong của dữ liệu máy tính thông quanhiều mức trừu tượng hoá dữ liệu để làm đơn giản hoá sự tương tác giữa người sửdụng và hệ thống

a.Mức vật lý (physical level):

Mức thấp nhất của sự trừu tượng hoá, mô tả cách thức dữ liệu được lưu trữthực sự

Ví dụ: Các mẫu tin được lưu thành những khối liên tiếp nhau (bye, từ nhớ,…).

Trình biên dịch che dấu các chi tiết này không cho người lập trình thông thường biết, trừ những người quản trị CSDL

b.Mức luận lý (logical level):

Mức trung gian, mô tả những dữ liệu nào được lưu trữ trong CSDL và mối liênkết giữa chúng Người quản trị CSDL (database administrator) và các nhà lập trìnhthường xuyên làm việc ở mức này

Cơ sở dữ liệu

Trang: 1

Trang 2

c Mức quan niệm (conceptual level) hay con gọi là mức khung nhìn (view level):

Đây là mức cao nhất của sự trừu tượng hoá Mặc dù mức luận lý đã đơn giảnhoá đi nhiều nhưng do CSDL có kích thước quá lớn, nó vẫn còn phức tạp Nhiều người

sử dụng chỉ cần truy xuất một phần CSDL trong toàn bộ CSDL Vì vậy khung nhìnđược đặt ra để mô tả chỉ một phần của toàn bộ CSDL cho một nhóm người sử dụng nào

đó Ngoài ra, khung nhìn còn cung cấp cơ chế an toàn để ngăn ngừa người sử dụng truyxuất trái phép các phần thẩm quyền

2 Tính độc lập dữ liệu

Tính độc lập dữ liệu là tính bất biến của các chương trình ứng dụng đối với cácthay đổi trong cấu trúc lưu trữ và chiến lược truy xuất dữ liệu Hay nói cách khác, độclập dữ liệu là việc tách các mô tả dữ liệu ra khỏi các chương trình ứng dụng sử dụng dữliệu đó

III ƯU VÀ KHUYẾT ĐIỂM KHI TIẾP CẬN CƠ SỞ DỮ LIỆU

1 Những ưu điểm khi tiếp cận CSDL

a Giảm bớt dư thừa dữ liệu:

Khi có hai hệ ứng dụng khác nhau cùng đòi hỏi những tập dữ liệu như nhau thìchỉ lưu trữ một lần và dùng chung cho cả hai hệ nói trên Tuy nhiên việc dư thừa dữliệu không thể hết được; chẳng hạn như các dữ liệu liên kết các tập tin dữ liệu khácnhau vẫn được lưu trữ trên nhiều tập tin

b Có thể tránh được sự không nhất quán trong dữ liệu lưu trữ:

Nếu dữ liệu lưu trữ ở nhiều nơi khác nhau thì có thể không nhất quán do nhữngthao tác cập nhật Ở đây CSDL đã giảm được dư thừa thì khả năng rủi ro do thay đổigiá trị cũng giảm đi

c Tăng tính dùng chung dữ liệu:

Một CSDL được thiết kế để phục vụ chung cho tất cả các ứng dụng Mỗi nhómngười dùng nhìn nhận CSDL như chỉ có một mình họ sử dụng dữ liệu

d Tính chuẩn hoá cao:

Khi dữ liệu được sử dụng trong nhiều lĩnh vực thì chúng càng ngày càng đượcchuẩn hoá cho phù hợp với nhiều nhu cầu; việc theo chuẩn chung cho phép tăng hiệuquả sử dụng dữ liệu

e Tăng tính an toàn dữ liệu:

Người quản trị CSDL có thể cho phép một nhóm người sử dụng nào đó sửdụng chỉ một nhóm dữ liệu thuộc thẩm quyền, bằng một mật mã đã được định trước.Đồng thời cũng có thể kiểm tra các ý đồ truy xuất đến dữ liệu mật

f Có thể giữ được sự toàn vẹn dữ liệu:

CSDL chỉ được chứa các dữ liệu đúng Nhờ sự quản lý tập trung, nó cho phépngười quản trị định ra các thủ tục kiểm tra cần thiết khi thực hiện các thao tác cập nhật

Ví dụ: Số lượng hàng bán không thể vượt quá số lượng hàng đang tồn.

g Có thể đảm bảo tính độc lập dữ liệu cao.

f Giảm bớt việc bảo trì các chương trình.

2 Giá phải trả cho ứng dụng CSDL

Như với bất kỳ quyết định kinh doanh nào, ứng dụng theo hướng CSDL cần trảgiá và chịu một vài rủi ro như cần đến nhân sự mới và chuyên sâu, chi phí quản lý vàthực hiện, giải quyết va chạm tâm lý…

a Nhu cầu về nhân sự mới, chuyên môn: Cần phải thuê hay tự đào tạo các chuyên gia

công nghệ thông tin để phân tích, thiết kế, thực hiện CSDL trong tổ chức Mặc kháccông nghệ ngày càng phát triển nhanh đã khiến các hệ thống CSDL thường xuyên cậpnhật tri thức cho các cán bộ

b Chi phí về quản lý, thực hiện: Hệ thống quản trị CSDL nhiều người dùng thường lớn

và phức tạp, đòi hỏi nhiều người tham gia và bảo trì Người ta cần tính đến chi phí thiết

bị máy tính, chi phí phần mềm, chi phí truyền thông

Trang 3

c Chi phí chuyển đổi hệ thống: Trước khi áp dụng CSDL, tổ chức đã xử lý dữ liệu theo

phương pháp thủ công, hay sử dụng hệ thống xử lý tệp Để chuyển công nghệ xử lý dữliệu sang cách tiếp cận mới, tổ chức cần có kinh phí chuyển các mô hình cũ sang môhình mới, chuyển đổi dữ liệu cho phù hợp với môi trường mới

d Nhu cầu sao chép và khôi phục dữ liệu: Tuy không mong muốn, nhưng đôi khi vẫn

xẩy ra rủi ro với CSDL như mất dữ liệu, hỏng phần mềm, hư phần cứng,…Hệ thốngCSDL có các công cụ cho phép sao chép dữ liệu phòng khi hỏng hóc và khôi phục lại

dữ liệu khi xảy ra sự cố

e Va chạm về quan điểm sử dụng CSDL: Trước khi CSDL được áp dụng trong tổ chức,

người ta cần thống nhất về mô tả dữ liệu, các khuôn dạng thể hiện dữ liệu,… Sau khihình thành CSDL, việc sử dụng dữ liệu của CSDL cần đạt hiệu quả Cần khuyến khíchcác bộ phận phát huy tốt hệ thống CSDL vì rất có thể một số bộ phận nào đó muốn độcquyền thông tin hay e ngại dùng hệ thống tự động hoá, cho nên có xu hướng giảm hiệuquả của CSDL

IV HỆ THỐNG CSDL

1 Hệ thống xử lý tệp cổ điển

Trong hệ thống xử lý tệp trước đây thì các bộ phận của công ty được tổ chức lưutrữ dữ liệu theo từng tập tin độc lập, không có liên quan với nhau Các ứng dụng củamỗi bộ phận được phát triển riêng lẽ và chỉ truy cập đến dữ liệu của riêng bộ phận đó,không có một mô hình tổng thể cho toàn công ty Hệ thống này nhanh hơn thao tác thủcông nhưng còn nhiều hạn chế:

- Dễ xẩy ra tình trạng dữ liệu bị trùng lắp, phán tán, thiếu nhất quán

Ví dụ:

Trong một trường đại học, kết quả học tập của sinh viên được lưu ở phòngĐào tạo, đồng thời cũng được lưu ở Phòng tài vụ để căn cứ vào đó mà phát học bổng

cho sinh viên (gây dư thừa dữ liệu) Nhưng nếu kết quả học tập của một sinh viên đã bị

sút giảm, em này đáng lý không còn được nhận học bổng như trước nữa Nhưng dophòng tài vụ không cập nhật kịp thời thông tin này nên vẫn tiếp tục duy trì học bổng cho

em (gây dữ liệu không nhất quán).

- Số lượng dữ liệu tăng nhanh

Hệ thống CSDL là hệ thống thông tin, cho phép người sử dụng dùng chung các

dữ liệu có trong hệ thống Khái niệm dùng chung, chia sẽ dữ liệu được dùng rộng rãitrong nhiều ứng dụng với nghĩa nhiều người dùng cùng truy cập một dữ liệu tại cùngmột thời điểm Vì vậy, hệ quản trị CSDL cần điều khiển sự tương tranh giữa các thaotác của nhiều ứng dụng Có thể thao tác này cần cập nhật dữ liệu trong khi thao tác khácchỉ đọc dữ liệu này Chẳng hạn trong hệ thống quản lý sách, nơi này cho độc giả mượnmột cuốn sách, đang thể hiện trạng thái đánh dấu “đã cho mượn” vào thông tin củacuốn sách trong CSDL thì nơi khác cũng đang cho độc giả khác mượn cuốn sách đó

Hệ thống CSDL còn đảm bảo tính an toàn và toàn vẹn của dữ liệu Dữ liệu an toàn

có nghĩa giữ được bí mật Máy tính ngăn cản các truy cập không hợp lệ và khôi phụccác sai sót trên dữ liệu nếu chẳng may sự an toàn không đảm bảo được Người ta hay

đề cập tính toàn vẹn của dữ liệu khi nói về tính an toàn Tính toàn vẹn liên quan đến cácđiều kiện mà dữ liệu cần thỏa mãn Các điều kiện, hay các ràng buộc trên dữ liệu cũngquan trọng đối với dữ liệu Chẳng hạn số sách đã đăng ký trong hệ thống quản lý sáchphải luôn bằng tổng số sách trong kho và số sách độc giả mượn Quản lý các sai sót dữliệu và điều khiển tính toàn vẹn dữ liệu đòi hỏi qui trình phức tạp trong hệ quản trịCSDL

Trang 4

3 Các thành phần của hệ thống CSDL

Nhìn tổng quát, hệ thống CSDL gồm những thành phần sau:

- Người dùng: Người dùng là người tiếp xúc với dữ liệu thông qua các ứng dụng, tức làthực hiện các phép như thêm, xoá, thay đổi dữ liệu hay yêu cầu nhận các dữ liệu từCSDL

- Ứng dụng: Các chương trình, phần mềm cho phép người dùng truy cập dữ liệu đềuđược coi như ứng dụng của hệ thống CSDL

- Hệ quản trị CSDL: Hệ quản trị CSDL là phần mềm ứng dụng dùng để tạo mới, bảo trì

và đảm bảo truy cập có điều khiển đến các CSDL của người dùng

- Dữ liệu: Là thông tin liên quan đến ứng dụng, được lưu trữ trong các tập tinCSDL

- Hệ thống chủ: Hệ thống chủ là hệ thống máy tính quản lý các tập tin Nó thựchiện việc truy cập tập tin dữ liệu Vai trò của hệ quản trị CSDL là yêu cầu các phươngtiện lưu trữ tập tin phục vụ các ứng dụng Do vậy, hệ quản trị CSDL là phần mềm nằmtrong phần mềm của hệ thống chủ

- Cơ sở dữ liệu: CSDL là tập các dữ liệu liên quan logic với nhau, được thiết kế để phục

vụ các nhu cầu về thông tin của nhiều người dùng trong tổ chức

- Giao diện người dùng: Giao diện người dùng hay giao diện người sử dụng là các phương tiện cho phép người dùng thao tác với các thành phần của hệ thống CSDL

- Người quản trị CSDL: Người quản trị CSDL là người có quyền điều khiển tập trungtrên toàn bộ hệ thống, về cả dữ liệu lẫn các chương trình truy xuất các dữ liệu đó Họchuyên về công nghệ thông tin, có nhiệm vụ tạo mới CSDL và cài đặt các điều khiển kỹthuật

- Người phát triển hệ thống: Những người như phân tích viên hệ thống, lập trình viên được gọi là người phát triển hệ thống

V HỆ QUẢN TRỊ CSDL

Hệ quản trị CSDL là một hệ thống phần mềm nhằm cung cấp cho người sử dụng mộtmôi trường vừa thích hợp, vừa hiệu quả để khai thác CSDL theo 3 chức năng mô tả,lưu trữ, tìm kiếm, và cập nhật dữ liệu

Như vậy, HQTCSDL phải được thiết kế sao cho quản trị được một khối lượng lớn

dữ liệu Công việc quản trị này bao gồm:

- Định nghĩa các cấu trúc để lưu trữ thông tin

- Cung cấp cơ chế để sử dụng thông tin

- Tạo sự an toàn cho dữ liệu cho dù có bất trắc của hệ thống

VI TIẾN HÓA CỦA CÁC HỆ THỐNG CSDL

1 Lịch sử của các hệ thống CSDL

Các hệ thống CSDL được giới thiệu vào những năm 60 của thế kỉ XX và đã pháttriển liên tục trong hàng chục năm qua Một số công nghệ về CSDL đã phát triển lâu dàinhư mô hình quan hệ có từ năm 1970 nhưng các hệ thống CSDL theo mô hình quan hệ

có ý nghĩa thương mại chỉ vào những năm 80 Các hệ thống CSDL đã khắc phục đượcnhiều hạn chế của hệ thống xử lý tệp truyền thống Để đánh giá những gì đã đạt đượctrong thời gian qua của các hệ thống CSDL, người ta luôn nhìn nhận việc phát triển,tiến hoá theo các mục đích:

- Cần thiết đảm bảo độc lập giữa chương trình và dữ liệu, giảm chi phí bảo trì

- Mong muốn quản lý nhiều loại dữ lịêu và cấu trúc dữ liệu phức tạp

- Yêu cầu truy cập dễ dàng đến dữ liệu, cho dù người dùng là chuyên viên công nghệ thông tin hay không

a Từ năm 1960-1970: Các hệ thống xử lý tệp vẫn còn thông dụng trong giai đoạn này.

Tuy nhiên, các hệ thống CSDL đầu tiên đã được giới thiệu, dù còn cồng kềnh Thực ra,

mô hình phân cấp và mô hình mạng đã tạo nên thế hệ thứ nhất cho hệ thống CSDL

Trang 5

b Từ năm 1970-1980: Các hệ thống theo thế hệ thứ nhất vẫn được phát huy và có nhiều

sản phẩm thương mại Tuy nhiên, hai mô hình phân cấp và mạng vẫn được dùng rộngrãi mặc dù chúng vẫn có các nhược điểm như: Các thủ tục tìm kiếm bản ghi, người takhó truy cập dữ liệu; tính độc lập giữa chương trình và dữ liệu chưa thật tốt; chưa có

cơ sở lý thuyết hoàn thiện

c Từ năm 1980-1990: Mô hình quan hệ của E.F.Codd đã khắc phục nhược điểm của hai

mô hình CSDL trên Mô hình CSDL quan hệ tạo nên các hệ thống CSDL thế hệ thứ hai.Các hệ thống quan hệ được bán nhiều trên thị trường và chiếm ưu thế so với các hệthống CSDL khác Người ta dùng ngôn ngữ SQL và các ngôn ngữ khác để truy cập dữliệu

d Từ năm 1990-2000: Những năm này, người ta vẫn sử dụng các CSDL trong những năm

80 của thế kỷ XX để quản trị dữ liệu với cấu trúc phức tạp như dữ liệu kế toán tài chính,

dữ liệu đa phương tiện (âm thanh, đồ hoạ, hình ảnh) Trong những năm 90, vấn đềhướng đối tượng không những được đề cập trong ngành CSDL mà còn trong nhiềungành tin học khác Tuy nhiên cho đến nay chẳng có mấy hệ thống CSDL hướng đốitượng xuất hiện trên thị trường

e Từ năm 2000 trở đi: Trong chục năm tới, công nghệ về CSDL có thể có những đột phá

đáng ngạc nhiên Tuy nhiên người ta vẫn vạch ra các hướng vững chắc:

- Các kiểu dữ liệu phức tạp được quản lý tốt hơn Chúng gồm dữ liệu đa chiều, phù hợpvới các ứng dụng của kho dữ liệu

- Phát triển tiếp tục các máy chủ cực lớn Người ta dựa vào hệ quản trị CSDL quan hệhướng đối tượng để thiết lập các CSDL có khả năng quản lý nhiều loại dữ liệu đa dạng,thuận tiện cho các ứng dụng CSDL trên mạng Internet

- Các CSDL phân tán sẽ trở thành hiện thực Do vậy các tổ chức có thể phân bố các dữliệu tại nhiều địa điểm xa nhau về không gian

- Việc lưu trữ dữ liệu theo địa chỉ và nội dung sẽ thông dụng hơn Điều này cho phépngười dùng truy cập dữ liệu theo nội dung của dữ liệu, mà không cần biết cách thứctruy cập các dữ liệu này

- Các công nghệ về CSDL, trí tuệ nhân tạo và các dịch vụ thông tin sẽ tạo nên môi trườngtruy cập dữ liệu dễ dàng hơn, chẳng hạn giao tiếp bằng ngôn ngữ tự nhiên

Mô hình phân cấp và mô hình mạng được coi là đại diện cho các hệ thống CSDL thế

hệ thứ nhất Mô hình quan hệ đại diện cho hệ thống CSDL thế hệ thứ hai Các mô hìnhCSDL thế hệ sau được kể ra gồm mô hình hướng đối tượng, mô hình phân tán, môhình suy diễn

2 Mô hình phân cấp (Hierarchical model)

- Mô hình phân cấp hay mô hình CSDL dạng cây được tổ chức theo cấu trúc từ trênxuống dưới giống như cây lộn ngược Mỗi nút tương ứng với một kiểu dữ liệu, có thể

có một hoặc nhiều trường, mô tả thực thể và một nhánh cây tạo nên một liên kết giữakiểu dữ liệu này với kiểu dữ liệu khác Mỗi nút đều có một nút cha và nhiều nút con, trừnút gốc là không có cha

- Ví dụ:

CÁ NHÂN

SỐ CMTND

NƠI CẤP NGÀY CẤP

QUÊ QUÁN ĐC THƯỜNG

TRÚ ĐỊA CHỈ

HỌ TÊN

Trang 6

- Tuy nhiên, mô hình chỉ thể hiện được quan hệ 1-n, tức là mô tả được trường hợp nútcha có nhiều nút con như một phòng thì có thể có nhiều nhân viên hay một phòng cóthể có nhiều dự án, còn trường hợp ngược lại thì không Chẳng hạn nếu một dự án màthuộc về nhiều phòng thì dự án phải được lưu ở nhiều nơi khác nhau Điều này gây dưthừa dữ liệu và lãng phí không gian lưu trữ.

- Điểm nổi bật trong các thủ tục truy xuất đến một đối tượng trong mô hình phân cấp làđường dẫn đi từ gốc đến phần tử cần xét trong cây phân cấp

3 Mô hình mạng

- Mô hình mạng được biểu diễn như một đồ thị có hướng Mỗi nút có thể nối với mộtnút bất kỳ để biểu diễn một liên kết 1-n thông qua con trỏ liên kết Sự khác nhau chínhgiữa hệ thống mạng và hệ thống phân cấp là mô hình mạng không ràng buộc về số vàhướng của các liên kết thiết lặp giữa các nút

- Theo mô hình quan hệ, dữ liệu được thể hiện trong bảng hai chiều, gồm các dòng vàcột Các bảng gọi là các “quan hệ”, các dòng gọi là các “bộ” và cột là “thuộc tính”.Theo cách nhìn của các mô hình trước thì mỗi dòng là một bản ghi, các thuộc tính chobiết ý nghĩa của các giá trị trong bản ghi

CÁ NHÂN

HỘ GIA ĐÌNH

SỐ CMTND

Trang 7

- Cơ sở dữ liệu quan hệ dùng các thuộc tính để liên kết dữ liệu giữa các bảng khác nhauthay vì dùng con trỏ để liên kết tập bản ghi như trong mô hình mạng Chẳng hạn thuộc

tính canhanID của bảng KHÁCH HÀNG và thuộc tính Cá nhân của bảng ĐƠN HÀNG

là hai thuộc tính dùng để liên kết hai bảng quan hệ này Đi sâu vào chi tiết của mô hìnhquan hệ sẽ được giới thiệu trong Chương III

- Thế hệ thứ ba của hệ quản trị nhằm đáp ứng các yêu cầu về:

+ Các ứng dụng mới của công nghệ thông tin

+ Khai thác trong môi trường phức tạp như phân tán, không đồng nhất,…+ Xử lý các dữ liệu hướng đối tượng và thực hiện suy diễn trên các dữ liệu

- Theo cách tổ chức CSDL truyền thống, người ta có thể viết đoạn chương trình riêng để

mô tả các phương thức và dùng một giao diện để liên kết với hệ quản trị Tuy nhiênđiều quan trọng cần lưu ý là: trong CSDL truyền thống phần chương trình này là độclập, còn trong CSDL hướng đối tượng thì chương trình này được mô tả như một đốitượng của CSDL Vậy bằng công cụ đối tượng và phương thức, người ta có thể lưu trữ

và chia sẻ không những cấu trúc của đối tượng CSDL, mà còn cả các hành vi của cácđối tượng

- Tuy tiếp cận hướng đối tượng được phổ biến vào đầu những năm 90 của thế kỷ XXnhưng đến nay vẫn chưa có nhiều CSDL thuộc loại này do nó còn nhiều khuyết điểm:

+ Chưa thống nhất rõ ràng các lĩnh vực của lý thuyết

+ Chưa có phương pháp luận thiết kế CSDL hướng đối tượng theo cách hìnhthức như việc chuẩn hoá trong CSDL quan hệ Rất ít hướng dẫn thiết kế CSDL hướngđối tượng cho phép tối ưu hoá Điều này khiến hệ thống không hiệu quả

+ Các hệ thống chưa có khả năng cho phép người dùng hỏi các câu hỏi tùy ý.+ Hệ thống thiếu các luật về tính toàn vẹn tổng quát

Trang 8

Người dùng hệ thống tệp

Hệ thống điều hành máy tính

Chương trình ứng dụng

CSDLTệp dữ liệu

chứa các dữ liệu về ứng dụng, được đặt tên.

Các tệp trên máy tính được lưu trên các phương tiện nhớ ngoài như băng, đĩa từ,…Đĩa từ được coi như đại diện cho phương tiện nhớ, cho phép truy cập trực tiếp Điềunày có nghĩa hệ thống tới ngay bản ghi trên tệp mà không cần xét lần lượt một số bảnghi khác Băng từ thường được lấy làm ví dụ về phương tiện nhớ tuần tự, có nghĩangười ta cần xét lần lượt các bản ghi trên tệp trước khi thấy bản ghi cần thiết Trướckhi xây dựng CSDL với qui mô khoa học, người ta đã từng sử dụng hệ quản trị tệp, gồmcác tệp trên băng từ, đĩa từ, và truy cập nhờ các ngôn ngữ lập trình trong hệ thống điềuhành Còn CSDL về bản chất cần bộ nhớ truy cập trực tiếp và có hệ thống quản trị độc

lập với hệ thống điều hành máy tính

Hình 1: Hệ thống quản trị tệp và hệ quản trị CSDL

Hệ thống điều hành máy tính đảm bảo việc vào/ra của dữ liệu Nó là tập các chươngtrình nửa cố định, đảm bảo giao diện giữa chương trình ứng dụng và phần cứng máytính Hệ thống điều hành cho phép chương trình ứng dụng dùng các dịch vụ như quản

lý bộ nhớ, thao tác vào/ra Còn hệ quản trị CSDL thì tự đảm bảo các dịch vụ này Dịch

vụ chính trong hệ quản trị CSDL là quản lý các tệp vật lý

Mỗi trang trên đĩa có số trang, cho biết vị trí tương đối trên đĩa Qui ước này chophép thông tin cập nhật của một trang được ghi đúng chỗ Người quản lý đĩa có tráchnhiệm quản lý các số trang và dùng mã chuyên dụng đối với thiết bị để đọc/ghi trangđặc biệt của đĩa

Người dùng CSDL

Hệ quản trị CSDL

Trang 9

Trang 6

Trang 2Trang 1

II TỔ CHỨC DỮ LIỆU Ở MỨC VẬT LÝ

1 Chỉ số

Định nghĩa chỉ số (index):

Chỉ số là bảng dữ liệu hay cấu trúc dữ liệu dùng để xác định vị trí

của các bản ghi trong tệp theo điều kiện nào đó.

Định nghĩa tổ chức tệp theo chỉ số (indexed file organization):

Tổ chức tệp theo chỉ số là kỹ thuật lưu trữ các bản ghi của tệp

theo cơ chế tuần tự hay không tuần tự, sử dụng bảng chỉ số cho

phép phần mềm truy cập nhanh đến bản ghi cần thiết.

Ví dụ:

Người ta có tập các dòng trong bảng sau:

Thửa đất ThuadatID Diện

17 112,5 Trung Hoà, Nhân Chính, Thanh Xuân

63 321,9 Cổ Nhuế, Từ Liêm

44 50 Trung Hoà, Nhân Chính, Thanh Xuân

32 98 Trung Hoà, Nhân Chính, Thanh Xuân

71 123 Cổ Nhuế, Từ Liêm

12 245,7 Cổ Nhuế, Từ Liêm

81 300,7 Hoàn Kiếm, Hai Bà TrưngGiả sử cần tìm thửa đất ở Cổ Nhuế, Từ Liêm và mỗi bản ghi cần đến một phépđọc, để tìm thấy dòng tin đầu tiên thỏa điều kiện chúng ta phải mất 6 phép đọc Nhưngnếu cần liệt kê tất cả các thửa đất ở Cổ Nhuế, Từ Liêm chúng ta phải rà soát tất cả cácdòng tin; dòng nào cũng kiểm tra xem địa chỉ là Cổ Nhuế, Từ Liêm không Việc tìmkiếm này sẽ nhanh hơn nếu chúng ta dùng chỉ số theo tên chi nhánh Chỉ số là tập giá trịđược sắp xếp Chúng ta có thể hình dung bảng chỉ số như mục lục của cuốn sách, đượcxếp theo thứ tự từ vựng, Căn cứ vào thông tin cần tra cứu, chúng ta đến được trang sáchcần thiết

Nếu mỗi dòng trong CSDL sử dụng một trang nhớ thì chỉ số đối với chi nhánh có dạng sau:

Hình 2: Bảng chỉ số trỏ đến bộ nhớ.

Trong thí dụ trên, thay vì duyệt nhiều dòng để trả lời câu hỏi, với bảng chỉ sốchúng ta chỉ cần đọc dòng chỉ số, rồi theo con trỏ nhảy đến vị trí cần tìm Nhưng thí dụnày còn quá xa thực tế Với số lượng bản tin như vậy thì thường chỉ chiếm tối đa mộttrang nhớ và việc có lập bảng chỉ số hay không có thì thời gian dò tìm cũng chẳng khácbiệt nhau là bao Tuy nhiên những quan hệ lớn sẽ chiếm nhiều trang đĩa, việc quét toàn

bộ quan hệ để tìm một số dòng sẽ dẫn đến việc tìm trên tất cả các trang, trừ khi chúng tadùng bảng chỉ số Bảng chỉ số có kích thước nhỏ hơn bảng dữ liệu thực, vậy nên đọc vàtải bảng chỉ số sẽ nhanh hơn rất nhiều Sau khi đọc bảng chỉ số, hệ thống chỉ tìm trongcác trang liên quan đến chỉ số, tức các trang có thể có các bản tin cần tìm Bảng quan hệcàng lớn, số các bản tin yêu cầu càng ít thì việc dùng chỉ số càng hiệu quả

Mọi việc sẽ đơn giản nếu bảng chỉ số của chúng ta chỉ chiếm một trang nhớ Tuynhiên, với các bài toán lớn, bản thân bảng chỉ số đã chiếm nhiều trang Khi đó thậm chí

Hai Bà Trưng 6 •

Thanh Xuân 1,3,4 •

Từ Liêm 2,5,7 • Trang 3 Trang 4

Trang 5 Trang 7

Trang 10

10 17 89

Hình 3: Bảng chỉ số theo cây cân bằng.

Tổ chức dữ liệu dạng cây đã được giới thiệu như một cấu trúc dữ liệu Cây chỉ số

sẽ dùng các trang nhớ Mỗi trang sẽ ghi một số nhất định các chỉ số, chẳng hạn trong thí

dụ mỗi trang ghi được hai chỉ số Tùy theo thiết kế để tìm kiếm sau này, cây cân bằng

có thể lấy giá trị chỉ số tại gốc là chỉ số đầu tiên; các chỉ số lớn hơn sẽ được lưu trongcác nút phải của cây; chỉ số nhỏ hơn chỉ số tại gốc sẽ được lưu trong nút trái của cây.Riêng nút gốc cây có một giá trị chỉ số Tại mỗi nút số con trỏ tùy thuộc vào số chỉ số

có trong từng nút Nút có một chỉ số sẽ có hai con trỏ, con trỏ trái trỏ đến những nút cógiá trị nhỏ hơn; con trỏ phải trỏ đến những nút có giá trị lớn hơn Nếu nút có 2 chỉ số thì

sẽ có 3 con trỏ cho nút đó Con trỏ trái trỏ đến những nút có giá trị nhỏ hơn chỉ số trái;con trỏ phải trỏ đến những nút có giá trị nhỏ hơn chỉ số phải; con trỏ giữa trỏ đến nhữngnút có giá trị nằm trong khoảng hai giá trị chỉ số

Việc tìm kiếm trên cây tùy thuộc theo thủ tục duyệt cây, căn cứ vào thiết kế câylúc đầu Chẳng hạn để tìm dòng có chỉ số 17, từ gốc người ta sang trái do 17<18, rồithấy 17>10, người ta sang phải Khi thấy trang với chỉ số 17, người ta theo con trỏ đếnđược nơi có dữ liệu cần tìm

Sở dĩ cây có tên cân bằng là vì độ sâu của nhánh trái và phải là như nhau Tốc độtìm kiếm một phần tử tùy thuộc vào độ sâu của nó Trong trường hợp chúng ta có thêmvào hoặc xoá bớt những bản tin thì cây có thể không duy trì được sự cân bằng, dẫn đếntốc độ tìm kiếm không còn tối ưu như trước Để khắc phục tình trạng này chúng ta cần

sử dụng thuật toán để sắp xếp lại các chỉ số sau cho cây cân bằng

* Ưu và khuyết điểm của việc dùng bảng chỉ số:

a.Ưu điểm:

- Tìm kiếm nhanh

- Có thể kiểm tra sự có mặt của dữ liệu dựa vào bảng chỉ số

b. Khuyết điểm:

- Chi phí công sức và bộ nhớ cho việc tạo và bảo quản chỉ số

- Khi cập nhật dữ liệu nhất thiết phải cập nhật cả bảng chỉ số

- Khi bổ sung giá trị mới, cây chỉ số mất tính cân đối, gây tình tạng phải nhiều lần tổ chức lại cây

2 Hàm băm

Định nghĩa tổ chức tệp băm:

Tổ chức tệp băm là cách tổ chức cho phép xác định địa chỉ của mỗi bản ghi dữ liệu theo thuật toán băm.

Trang 11

Định nghĩa thuật toán băm (hashed algorithm):

Thuật toán băm là chương trình chuyển giá trị khoá chính thành số

thứ tự tương đối của bản ghi, tức là địa chỉ tương đối trong tệp.

Vấn đề đầu tiên là chúng ta phải tính toán hàm băm để chuyển đổi các khoá củabản ghi (các khoá có thể là những số nguyên hay các ký tự ngắn) thành các địa chỉtương đối trong tệp Đây là một tính toán số học có các tính chất tương tự như các bộphát sinh số ngẫu nhiên Chúng ta cần một hàm chuyển đổi các khoá thành các sốnguyên trong khoảng [0 M-1] trong đó M là số mẫu tin có thể chứa vừa đủ trong sốlượng không gian nhớ có sẵn Vậy nên phương pháp này có đặc trưng là phải biết toàn

bộ không gian nhớ trước khi phân bố cho bất kỳ bản ghi nào

Ví dụ:

Chúng ta dự định lưu trữ 1000 bản ghi vào trong vùng nhớ có khả năng lưu trữ

1400 bản ghi Giả sử khoá của các bản ghi có giá trị trong khoảng từ 0 đến 99999, vàkhông gian nhớ được đánh địa chỉ tương đối từ 0 đến 1399 Hàm băm của chúng ta sửdụng là:

địa chỉ = phần dư (giá trị khoá / kích thước không gian nhớ)

123

…113

…0

Hình 4: Phân bố địa chỉ các bản ghi vào trong không gian nhớ

dựa vào hàm băm đã cho.

Yêu cầu đặt ra đối với hàm phân bố địa chỉ (hàm băm) là không quá phức tạp,nhưng đảm bảo các bản ghi được phân bố rải khắp không gian nhớ Một hàm băm lýtưởng làm một hàm mà dễ dàng tính và gần giống như một hàm “ngẫu nhiên”

Do khả năng của hàm địa chỉ mà đôi khi hai hay nhiều bản ghi được phân bốcùng một địa chỉ Các bản ghi trùng địa chỉ được gọi là “bản ghi tràn” Vấn đề tiếp theo

là chúng ta cần phải giải quyết tình trạng xung đột địa chỉ, có thể thực hiện theo cácphương pháp sau:

a Sử dụng vùng nhớ riêng cho các bản ghi tràn:

Khi lưu trữ, nếu chúng ta truy cập đến một vị trí trong không gian nhớ mà ở

đó đã có bản ghi khác thì dùng con trỏ để đi sang vùng nhớ tràn cho các bản ghi, lưu trữbản ghi này vào đó Khi muốn tìm bản ghi tràn vừa mới được lưu trữ, chúng ta cũng đitheo con trỏ vật lý đó

…28005600

Trang 12

Không gian nhớ chính

0 Titi 1

2 TutuTutu, 32, 15 Hàng Quạt

b Lưu trữ các bản ghi tràn trên cùng không gian nhớ:

Khi xảy ra xung đột các bản ghi, người ta không trỏ tới vùng nhớ tràn riêng

mà tiếp tục dò tìm trong không gian nhớ để tìm một chỗ cho bản ghi tràn Có thể tìmxuống dưới hay lên trên để tìm vị trí khác cho bản ghi tràn Giữa bản ghi thứ nhất vàbản ghi sau có cùng địa chỉ được nối với nhau bằng con trỏ để truy cập dễ dàng

Ví dụ:

Hình 6: Lưu trữ trên không gian nhớ.

III ĐIỀU KHIỂN TƯƠNG TRANH

UPDATE tài khoản

SET số dư = số dư – 100

WHERE số tài khoản = 10002;

UPDATE tài khoản

SET số dư = số dư + 100

WHERE số tài khoản = 20002;

Hai đoạn lệnh thực hiện việc chuyển 100 từ tài khoản 10002 sang tài khoản

20002 Hai đoạn này thực hiện hai giao tác đơn.

Không gian nhớ bổ sung

0 Titi1

2 TotoHàm băm

Không giannhớ chính

0 Titi1

2 Tutu

3 Toto

Trang 13

c Tính chất:

Giao tác phải đảm bảo 4 tính chất:

- Tính nguyên tố (atomicity): Giao tác phải được thực hiện hoàn toànhoặc không được thực hiện gì cả

- Tính nhất quán (consistency): Giao tác phải đảm bảo tính nhất quán củaCSDL Nếu CSDL đã nhất quán khi giao tác bắt đầu, nó vẫn phải nhấtquán sau khi giao tác chấm dứt

- Tính riêng biệt (isolation): Mặc dù nhiều giao tác có thể được khai tháccạnh tranh nhau nhưng phải bảo đảm đối với mỗi cặp giao tác Ti và Tj,hoặc Tj kết thúc trước khi Ti bắt đầu, hoặc Tj phải bắt đầu sau khi Ti đãkết thúc Phần này sẽ được bàn nhiều trong phần 2 (điều khiển tươngtranh)

- Tính bền vững (durability): Kết quả của một giao tác đã hoàn tất phảiluôn được bảo lưu, cho dù hệ thống có thể bị trục trặc nào đó

d Trạng thái của giao tác:

Giao tác có 3 trạng thái sau:

- Hoàn tất (commit): Sau khi thực hiện giao tác xong, HQTCSDL kiểmtra thấy thỏa các ràng buộc toàn vẹn và các ràng buộc khác, giao tácđược xác nhận là đúng CSDL sẽ ở trạng thái mới, nhận những kết quả

do giao tác đem lại

- Thoái bộ (roll back/rollback): Các ràng buộc không thỏa, hoặc dongười sử dụng không muốn chấp nhận giao tác nên mặc dù giao tác đãthực hiện, CSDL phải trở về trạng thái ban đầu

- Thất bại (fail): Giao tác không thực hiện được trọn vẹn

2 Điều khiển tương tranh

- Vấn đề tương tranh thường xẩy ra trong hệ thống nhiều người dùng Nhiều người cùngtruy cập đồng thời một số đối tượng như các dòng quan hệ, các bảng, các thuộc tínhhay khung nhìn,… Chúng ta cần điều khiển tương tranh để các giao tác có thể thực hiệnmột cách song hành nhằm tăng hiệu xuất sử dụng tài nguyên máy tính, tăng hiệu xuấtcủa CSDL Nếu không có điều khiển tương tranh, việc truy cập đồng thời của nhiềungười dùng sẽ đe dọa tính toàn vẹn dữ liệu Để minh họa ý này, dưới đây chúng ta xemxét một số nguy cơ khi khai thác các giao tác theo cách tương tranh

a Mất dữ liệu:

Giả sử chúng ta có hai giao tác được đặt tên là TA và TB gồm các

lệnh: TA: UPDATE tài khoản

SET số dư = số dư + 100 WHERE số tài khoản = 10002;

TB: UPDATE tài khoản SET

số dư = số dư + 200WHERE số tài khoản = 10002;

Thi hành đúng thì tài khoản 10002 sẽ tăng lên 300 Tuy nhiên khi hai giao tácthực hiện đồng thời, có thể xảy ra sự cố Xét thao tác cập nhật trong ngôn ngữ SQLngười ta thấy chúng gồm các phép toán sau:

1 Tới bản ghi cần thiết

2 Thay đối giá trị trong bộ nhớ trong

3 Ghi lại vào bản ghi ban đầu

Cả hai giao tác trên đều truy cập bản ghi ứng với tài khoản 10002, cùng thayđổi và cùng ghi lại vào bản ghi đó Như vậy có thể xẩy ra các sự kiện theo thời giannhư sau:

1 TA đọc bản ghi tài khoản 10002, giá trị số dư trên đó là 150

2 TB đọc bản ghi tài khoản 10002, có số dư là 150

3 TA tăng số dư thành 250 = 150 + 100 Việc này thực hiện trong bộ nhớ trong với biến trung gian ứng với số dư

Trang 14

4 TB tăng số dƣ thành 350 = 150 + 200.

Trang 15

TA: UPDATE tài

khoản SET số

dư = số dư – 100

WHERE số tài khoản = 10002;

IF số dư < 0 THEN rollback ELSE commit;TB: DELETE FROM

tài khoản WHERE số dư <

0;

Giao tác thứ nhất TA khấu trừ số dư 100 và sẽ khôi phục nếu số dư

âm Giao tác thứ hai TB, kiểm tra để xóa các tài khoản có số dư âm Có thểxảy ra quá trình sau:

1 TA đọc bản ghi tài khoản 10002, giá trị số dư trên đó là 50

2 TA giảm số dư, thu được kết quả trong bộ nhớ trong là –50

3 TA ghi vào CSDL, số dư là –50

4 TB tìm thấy tài khoản 10002 có số dư âm

5 TB xóa tài khoản 10002 theo điều kiện đã định

6 TA khôi phục cập nhật, nhưng tài khoản đã bị hủy

Chúng ta gọi đây là hiện tượng không khẳng định phụ thuộc Giaotác TB đã truy cập dữ liệu mà dữ liệu này chưa được khẳng định Trườnghợp này còn nguy hiểm hơn cả trường hợp mất dữ liệu

c Phân tích không bền vững:

Tính không bền vững của dữ liệu thường xẩy ra trong trường hợptruy cập tập các bản ghi mà một số bản ghi này đang được giao tác khác cậpnhật Giả sử có hai giao tác TA và TB với các lệnh sau:

sum(số dư)FROM tài khoản;

TB: UPDATE tài

khoản SET

số dư = số

dư - 100WHERE số tài khoản = 10003;

UPDATE tài khoảnSET số dư = số dư + 100 WHERE số tài khoản = 10001;

Trang 17

8 TB cập nhật tài khoản 10001, nâng số dư thành 200.

Đúng ra số dư phải 400 vì giao tác thứ hai không ảnh hưởng đến tổng chung

Do giao tác TB xen vào các phép toán của giao tác TA nên kết quả không theo ý muốn.Chúng ta gọi hiện tượng này là phân tích không bền, tức thời điểm này phân tích thấy

400, thời điểm khác lại là 300

- Để tránh các hiện tượng như trên người ta dùng kỹ thuật khoá Việc khoá qui định bất

kỳ dữ liệu nào được người dùng tìm kiếm để cập nhật cần được khoá lại, hay từ chốimọi truy cập của người dùng khác, cho đến khi việc cập nhật hoàn tất hay bị hủy bỏ

- Trong cùng một thời điểm, nếu hai giao tác cùng truy cập một đối tượng thì một tronghai giao tác phải đợi giao tác kia giải phóng khoá Theo giao thức này, sẽ hình thànhmột hàng đợi các giao tác có cùng yêu cầu

- Tuy nhiên không phải lúc nào cũng cần khoá, khi cả hai giao tác chỉ cần đọc dữ liệu.Thực chất việc khoá chỉ thích hợp cho nhu cầu cập nhật dữ liệu Vì vậy người ta tạo rahai loại khoá: khoá S (shared) dùng cho các giao tác có nhu cầu đọc dữ liệu; khoá X(exclusive) dùng cho các giao tác có nhu cầu cập nhật dữ liệu Người ta có giao thứckhoá sau:

+ Khi một đối tượng có khoá S, các yêu cầu khoá S khác có thể truy cập đốitượng này Giao tác cần đối tượng này theo khoá X cần đợi tất cả các khoá S giải phóngđối tượng này

+ Khi đối tượng có khoá X, người ta không tiến hành khoá nào khác trên đốitượng này Tất cả các giao tác yêu cầu khoá, cả X lần S đều phải đợi cho đến khi khoá

X được giải phóng

- Tuy nhiên, hệ thống cần lưu ý thời gian các khoá được giải phóng Chẳng hạn có haigiao tác TA và TB:

1 TA khoá S đối tượng 1, khoá S đối tượng 2, rồi khoá X đối tượng 1

2 TB khoá S đối tượng 1, khoá X đối tượng 1, rồi khoá S đối tượng 2

Giả sử chúng ta cho giải phóng đối tượng ngay sau khi đã kết thúc công việcliên quan đến nó và giao tác TA yêu cầu khoá trước, có thể xảy ra các dãy sự kiện saunếu hai giao tác thực hiện đồng thời:

1 TA khoá S đối tượng 1

2 TB khoá S đối tượng 1

3 TA giải phóng khoá S trên đối tượng 1 Nó khoá S đối tượng 2

4 TB giải phóng khoá S trên đối tượng 1

5.TB khoá X đối tượng 1 Việc này được phép do TA và TB đã giải phóng đốitượng 1

6 TA giải phóng khoá S trên đối tượng 2 TA ở trạng thái đợi khoá X đối tượng 1

7 TB giải phóng khoá X trên đối tượng 1 Đặt khoá S lên đối tượng 2

8 TA khoá X đối tượng 1

9 TB giải phóng khoá S trên đối tượng 2

10 TA giải phóng khoá X trên đối tượng 1

Như vậy TB đã cập nhật đối tượng 1 trước TA Điều này trái với giả thuyết TA

là giao tác trước về logic phải được thực hiện trước Để đảm bảo được lịch tuần tựngười ta dùng giao thức khoá hai pha Giao thức này qui định một giao tác không đượckhoá một đối tượng khi nó đã giải phóng đối tượng này

Định nghĩa Giao thức khóa hai pha:

Giao thức khoá hai pha là thủ tục yêu cầu khoá các giao tác cần khoá trước khi mở khoá bất kỳ giao tác nào.

Trang 18

32 Đào Văn Quít 323343346

71 Nguyễn Văn Cam 123464545

Ví dụ:

CANHAN(canhanID,Hoten,soCMTND) là sơ đồ quan hệ của Nhân Viên

4 Miền giá trị và thuộc tính

Miền là phạm vi giá trị có thể dùng cho một thuộc tính Nó phải nhận giá trị đơn.Miền tương tự về mặt khái niệm với kiểu dữ liệu trong lập trình Cũng như kiểu dữliệu, miền không chỉ xác định tập các giá trị gán cho thuộc tính, mà còn xác định cácthao tác được phép sử dụng trên các dữ liệu Chẳng hạn đối với dữ liệu số chúng ta mới

có thể áp dụng các phép toán số học, cộng, trừ, nhân, chia,… Nếu nhìn khía cạnh khác,miền còn có ý nghĩa ngữ nghĩa Chẳng hạn cân nặng và chiều cao của một người đềunhận giá trị số, nhưng hai số này không thể so sánh với nhau được

Khi xác định một thuộc tính người ta cần tính đến tên và miền của thuộc tính Cácgiá trị gán cho thuộc tính cần thỏa mãn các ràng buộc về miền Chẳng hạn tuổi của mộtngười được thể hiện bằng số, và nhận giá trị từ 1 đến 300

Giả sử Di là miền giá trị của thuộc tính Ai, ta viết:

Di = dom(Ai) i = 1 nCác Di (i=1 n) không nhất thiết phải khác nhau, có nghĩa là các thuộc tính khácnhau có thể lấy trị trên cùng một miền giá trị Miền giá trị không được chứa giá trị rỗng

Trang 19

6 Khoá của quan hệ

a Khoá (khoá chính – primary key)

Khoá của quan hệ là một tập nhỏ nhất các thuộc tính mà các giá trị của các thuộc tính này dùng để phân biệt các bộ với nhau

b Siêu khoá

Là một tập thuộc tính có chứa khoá Như vậy, khoá là một trường hợp có chứa

khóa c Khoá ngoại

Là một tập thuộc tính không phải là khoá (primary key) của quan hệ R, nhưng

là khoá của quan hệ S khác (R≠S) Lúc này quan hệ S gọi là quan hệ cha, R gọi là quan

hệ con

II RÀNG BUỘC TOÀN VẸN TRÊN CSDL QUAN HỆ

1 Khái niệm chung

Ràng buộc toàn vẹn trên CSDL quan hệ giúp cho ứng dụng trở nên thực tế hơn,hợp lý hơn và nhất quán hơn Chẳng hạn ngày sinh không thể lớn hơn ngày tháng hiệntại, điểm không thể vượt quá 10 Các ràng buộc này kiểm tra một bộ trước khi thuộc vềmột quan hệ, kiểm tra các thao tác cập nhật trên quan hệ

2 Ràng buộc trên một quan hệ

a Ràng buộc về miền giá trị

Đây là loại ràng buộc xác định các giá trị dữ liệu nhập vào có hợp với kiểu dữ liệu và phạm vi giá trị của thuộc tính qui định hay không

Ví dụ: Cho sơ đồ quan hệ: THUADAT(dientich,

Ví dụ: Cho sơ đồ quan hệ:

GIAYCHUNGNHAN(SoGCN, ngayNOP, coquanduyet, ngayQUYETDINH)RB: ngayNOP <= ngayQUYETDINH

c Ràng buộc liên bộ

Ràng buộc liên bộ là ràng buộc về dữ liệu giữa các dòng (bản tin) trên mộtquan

hệ

Ví dụ: Cho sơ đồ quan hệ:

RUTTIEN(SoRT, ngayR, Sotien, TK)

RB: Một ngày không được rút quá một lần cho một tài khoản

d Ràng buộc về khoá

Khoá chính không được mang trị rỗng (NULL), do đó một bộ có khoá mang trịrỗng sẽ không được thêm vào quan hệ

3 Ràng buộc trên nhiều quan hệ

a Ràng buộc tham chiếu (Ràng buộc về khoá ngoại)

- Ràng buộc tham chiếu là qui định cho biết hoặc là giá trị của khoá ngoại cầnkhớp với một trong những giá trị khoá chính của quan hệ cha, hoặc là giá trị khoá ngoại

là rỗng

Ví dụ: Cho hai quan hệ:

THUADAT thuadatID Diện thích MDSD

Trang 20

MDSD Kí

hiệu tenMDSDONT Đất ở nông thônNNP Đất nông nghiệpLUA đất trồng lúaTheo hai bảng quan hệ trên thì thuadatID là khoá ngoại của bảng THUADAT

và là khoá chính của bảng MDSD Giả sử chúng ta thêm bộ (13, 243, LUC) vào bảngTHUADAT thì sẽ vi phạm ràng buộc toàn vẹn tham chiếu vì trong bảng MDSD không

có đơn vị với mã số LUC Nếu chúng ta thêm bộ (LUC, Đất trồng lúa nước) vào bảngMDSD trước việc thêm bộ (13, 243, LUC) vào bảng THUADAT thì việc này khôngxâm phạm ràng buộc toàn vẹn

- Tính toàn vẹn tham chiếu liên quan đến vấn đề đặc biệt về sự nhất quán, đảm bảo tínhtoàn vẹn khi cập nhật thông tin, tức thêm, xoá hay sửa các dòng của bảng quan hệ.Chẳng hạn khi chúng ta sửa mã đơn vị trong bảng đơn vị thì không thể không cập nhậtgiá trị này trong bảng nhân viên Do vậy khi cập nhật thông tin, chúng ta thực hiện theo

ba chiến lược sau:

* Hạn chế (Restriction):

Với chiến lược hạn chế, người ta cấm bất kỳ thay đổi nào đối với khoáchính nếu có khoá ngoại tham chiếu đến nó Do vậy yêu cầu xoá mã số NC hay thay NCbằng một mã khác là không được phép

* Thông tầng (Cascade):

Theo nguyên tắc thông tầng, khi cần cập nhật tại một dòng của bảng quan

hệ cha, chúng ta cần lần lượt thực hiện cùng phép cập nhật ấy tại các dòng của các bảngcon liên quan Chẳng hạn thay đối dòng có mã đơn vị là NC thì không những thay đổitại bảng DONVI mà còn thay đổi tại bảng NHANVIEN

* Thiết lặp giá trị rỗng:

Theo nguyên tắc thiết lặp giá trị rỗng, khi cập nhật một dòng của bảngquan hệ cha, chúng ta cần gán giá trị NULL cho tất cả các khoá ngoại của các bảng liênquan

Chú ý: Khi có sự thay đổi các giá trị trong một bảng gây ảnh hưởng đến khoá

ngoại của bảng khác thì hệ thống cần đề xuất các lựa chọn để người dùng quyết địnhcập nhật khoá ngoại hay chuyển về giá trị rỗng Tác động ảnh hưởng này được nhìntheo một chiều; chỉ các khoá ngoại của bảng NHANVIEN thay đổi theo các khoá chínhcủa bảng DONVI Tuy nhiên chúng ta có thể đề cập các trường hợp mà việc thay đổicủa khoá ngoại gây ảnh hưởng đến bảng dữ liệu kia (bảng quan hệ cha) Ngoài ra, việcxoá các dòng trong bảng NHANVIEN có gây ảnh hưởng ngược đến bảng DONVIkhông?

Nhìn chung tính toàn vẹn tham chiếu yêu cầu các khoá ngoại cần cậpnhật theo các phép toán thực hiện trên khoá chính của bảng liên quan Nếu không đảmbảo được việc cập nhật hợp lý thì cần gán giá trị rỗng cho khoá ngoài

b Ràng buộc liên thuộc tính - liên quan hệ

Ràng buộc liên thuộc tính – liên quan hệ là ràng buộc về dữ liệu giữa các thuộc tính trên nhiều quan hệ khác nhau

Ví dụ: Cho hai sơ đồ quan hệ:

ĐH(SoĐH, ngayĐ, hang, SLĐ)

GH(SoGH, ngayG, SoĐH, SLG)

RB: ngayĐ <= ngayG

c Ràng buộc liên bộ - liên quan hệ

Ràng buộc liên bộ – liên quan hệ là ràng buộc về dữ liệu giữa các dòng (bộ) trên nhiều quan hệ khác nhau

Trang 21

ĐEAN

(b)

maPPHONG

Ví dụ: Cho hai sơ đồ quan hệ:

SV(maSV, htenSV, NS, maL)

LOP(maL, tenL)

RB: Một lớp phải có ít nhất 10 sinh viên

d Ràng buộc thuộc tính tổng hợp

Ràng buộc này được xác định trong trường hợp một thuộc tính A của quan hệ

R được tính toán từ các thuộc tính của các quan hệ khác

Ví dụ 1: Cho hai sơ đồ quan hệ:

ĐH(SoĐH, ngayĐ, SLĐ, SLcon)

GH(SoGH, ngayG, SoĐH, SLG)

RB: Slcon = SLĐ - tổng SLG

Ví dụ 2: Với hai sơ đồ:

HĐ(SoHĐ, ngayHĐ, ngayxuat, tongTG)

CTHĐ(SoCT, ngay, SoHĐ, SL, ĐG)

RB: Tổng trị giá của một hoá đơn = tổng (SL x ĐG)

e Ràng buộc do chu trình

Một CSDL có thể được biểu diễn bằng một đồ thị vô hướng Trong đồ thị này,

ta có 2 loại nút: nút thuộc tính và nút quan hệ Một cung vô hướng trong đồ thị nối một

nút thuộc tính A với một nút quan hệ R khi A thuộc R

Ví dụ: Đồ thị biễu diễn 4 sơ đồ quan hệ sau:

ĐEAN(soĐA, tenĐA, phongPT)

NV(maNV, tenNV, maP)

Trang 22

e, ký hiệu R(e) cho ta quan hệ P(U) như sau:

P(U) = R(e) = {t ∈ R | Sat(t,e)}

trong đó hàm logic Sat(t,e) kiểm tra bộ t thỏa điều kiện e được xác định như sau:

+ Thay mọi xuất hiện của thuộc tính A trong biểu thức chọn e bằng trị tương ứng của A trong bộ t, t.A, ta thu được một mệnh đề logic A

+ Tính trị của b Nếu là đúng (True) thì bộ t thỏa điều kiện e; ngược lại, nếutrị b là sai (False) thì bộ t không thỏa điều kiện e

THUA-DAT = THUADAT(sohieutobd = 139545-9-a ∧ ONT)kết quả:

THUA-DAT thuadatID diện

tích số hiệutờ bđ loaidat2210117.03.35 133,7 4 ONT

Trang 23

R[X] được tính theo 2 bước sau:

+ Xoá các cột không thuộc X của bảng R

+ Xoá bớt các dòng không giống nhau trong bảng kết quả P(X): chỉ giữ lại một dòng trong số các dòng giống nhau

Trang 24

Cho 2 quan hệ sau:

BIENCHE maNV hotenNV chucvu donvi mucLG

Trang 25

KQ = NHANVIEN – LANHĐAOkết quả:

KQ maNV hotenNV chucvu donvi mucLG

NHAHANG ten diachi phuong quan

Huy Hoàng 504 Điện Biên Phủ 14 3Tương Lai 229 Ngô Chí Thanh 6 5Sinh Đôi 300 Lý Thái Tổ 6 10Đông Nam Á 230 Ngô Gia Tự 10 1

KHACHSAN ten diachi phuong quan

Viễn Đông 2 Lê Lợi 5 1Huy Hoàng 504 Điện Biên Phủ 14 3Ánh Hồng 151 Đặng Dung 2 PNTương Lai 229 Ngô Chí Thanh 6 5Tìm các nơi vừa là khách sạn, vừa là nhà hàng

NH_KS = NHAHANG & KHACHSAN

Trang 26

kết quả:

NH_KS ten diachi phuong quan

Huy Hoàng 504 Điện Biên Phủ 14 3Tương Lai 229 Ngô Chí Thanh 6 5

6 Phép kết nối tự nhiên

a Định nghĩa:

Phép kết nối tự nhiên hai quan hệ R(U) và S(V), ký hiếu R∗S, cho ta quan hệchứa các bộ là sự phối hợp của bộ u trong quan hệ R với tất cả các bộ v trong quan hệ Ssao cho các trị trên miền thuộc tính chung của hai bộ này là như nhau

P(UV) = R∗S = {u∗v | u ∈ R, v ∈ S, u.M = v.M, M = U ∩ V}

Nếu M = U ∩ V = ∅, R∗S sẽ là phép tích Descartes trong đó mỗi bộ của quan

hệ R sẽ được ghép với mọi bộ của quan hệ S

Trang 27

b Ví dụ:

Cho 2 quan hệ sau:

20/09/1994 013 A01 Dầu lửa lít20/09/1994 013 A02 Xăng lít20/09/1994 013 B01 Đường trắng kg20/09/1994 013 B02 Đường vàng kg21/09/1994 014 A01 Dầu lửa lít21/09/1994 014 A02 Xăng lít21/09/1994 014 B01 Đường trắng kg21/09/1994 014 B02 Đường vàng kg22/09/1994 015 B01 Đường trắng kg22/09/1994 015 B02 Đường vàng kg

A01 Dầu lửa lít

B01 Đường trắng kgB02 Đường vàng kgLiệt kê những ngày cùng mã nhân viên mà cả 4 mặt hàng đều có bán:

KQ = DM : HANGkết quả:

20/09/1994 01321/09/1994 014

Trả về trung bình cộng các giá trị trong thuộc tính A của quan hệ R:

Avg(R,A) = Sum(R,A) / Card(R) nếu Card(R) ≠ 0

Trang 28

9 Một vài ký hiệu khác cho các phép toán quan hệ

Phép toán Ký hiệu Ký hiệu khác

chiếu R[X] Πx(R)kết nối tự nhiên R * S R ⋈ Scộng R + S R ∪ Sgiao R & S R ∩ S

chia R : S R ÷ S

IV PHÉP TÍNH QUAN HỆ

Trong phần này, chúng ta sẽ đi sâu vào hai khai niệm của phép tính quan hệ đó là

“phép tính quan hệ trên miền” và “phép tính quan hệ trên bộ”

1 Công thức của phép tính quan hệ (Formulas of Relational Calculus)

Công thức là những biểu thức mà nó biểu diễn những quan hệ, có thể là nhữngquan hệ không xác định Mỗi công thức có tập hợp những biến “tự do” (free) tương ứngvới những biến được khai báo là toàn cục trong thủ tục gần ngay Những biến khác xuấthiện trong công thức là những biến “giới hạn” (bound) tương tự biến cục bộ trong thủtục Lược đồ quan hệ cho một công thức là một tập hợp những thuộc tính tương ứngvới những biến tự do của công thức

Tương tự biến toàn cục và biến cục bộ của thủ tục, có thể có hai biến thể cùng tên

X đề cập hai lần khai báo X khác nhau Một có thể là giới hạn trong khi cái kia là tự do.Nghĩa là chúng ta phải phân biệt giữa biến thể của những biến giới hạn và biến thể củanhững biến tự do

a p(X1,…,Xn) là một công thức, trong đó p là biểu tượng vị từ, X1,…,Xn là biến hoặchằng Vị từ p miêu tả một quan hệ; tất cả những biến thể của những biến giữa X1,…,Xn

là tự do

b Mỗi phép so sánh toán học X θ Y là một công thức, trong đó X, Y là biến hoặc hằng; θ

là 1 trong 6 toán tử so sánh số học như =, >,… Chúng ta quan tâm đến biến thể của X

và Y (nếu chúng là biến) bởi vì nó tự do trong công thức X θ Y Trong nhiều trườnghợp, X θ Y miêu tả một quan hệ không xác định, tập hợp tất cả những cặp (X,Y) màtham gia trong quan hệ θ Những công thức mà nối với nhau bằng logical AND địnhnghĩa một quan hệ xác định thì công thức X θ Y có thể được xem như toán tử “chọn”

c Nếu F1 và F2 là những công thức thì F1 ∧ F2 là một công thức với nghĩa “cả hai F1 và F2đều đúng” Tương tự, F1∨ F2 cũng là một công thức với nghĩa “ít nhất 1 trong 2 F1 hoặc

F2 là đúng” ¬ F1 cũng là một công thức với nghĩa “F1 không đúng” Lưu ý: Một thểhiện của biến s có thể giới hạn trong F1, nhưng một thể hiện khác của s là tự do trong

F2

d Nếu F là một công thức thì (∃X) F là một công thức với nghĩa “có ít nhất một giá trị của

X mà khi thay thế nó cho tất cả những thể hiện của X trong F thì làm cho công thức trởnên đúng” Chúng ta đọc (∃X) là “Tồn tại X” (∃X) và (∀X) (được giới thiệu sau) đượcgọi là lượng từ Tất cả những thể hiện của X trong F là bị giới hạn bởi lượng từ (∃X) vàđược xem là giới hạn trong công thức (∃X) F

e Nếu F là một công thức thì (∀X) F cũng là một công thức với nghĩa “bất kỳ giá trị nàochúng ta chọn, nếu chúng ta thay thế giá trị đó cho tất cả những thể hiện tự do của Xtrong F thì công thức trở nên đúng” Chúng ta đọc (∀X) là “Với mọi X” Giống như(∃X), lượng từ (∀X) ràng buộc tất cả những thể hiện tự do của X trong F, vì vậy nhữngthể hiện này là bị chặn trong (∀X)F

Trang 29

f Chúng ta có thể sử dụng các dấu ngoặc để bao các công thức lại khi cần Nếu không có

dấu ngoặc thì trật tự ước tính là:

¬, (∀X), (∃X) có độ ưu tiên cao nhất và được nhóm từ bên phải nhất khi chúng xuất hiện liên tiếp

∧ có độ ưu tiên kế tiếp và nhóm từ bên trái

∨ có độ ưu tiên thấp nhất và nhóm từ bên trái

Ví dụ: Công thức:

(∀X)¬p(X,Y) ∨ q(Y) ∧ r(X)nếu được đặt trong dấu ngoặc đơn thì:

((∀X)(¬p(X,Y))) ∨ (q(Y) ∧ r(X))

g Ví dụ:

Công thức đại số quan hệ:

Πcust (σINAME = „Brie‟ (INCLUDES ⋈ ORDERS)liên quan đến những quan hệ:

INCLUDES(O#, INAME, QUANTITY)ORDERS(O#, DATE, CUST)

Trong phép tính quan hệ, toán tử kết nối được phản ánh bằng logical ANDcùng những biến được chọn tương ứng với những thuộc tính của những quan hệ tham

gia vào quá trình kết nối Chúng ta có thể bắt đầu với những công thức includes(N, I, Q)

và orders(N, D, C) tương ứng với những quan hệ INCLUDES và ORDERS với biến N

được sử dụng trong cả hai biến thể của thuộc tính O# Khi đó:

INCLUDES ⋈ ORDERSđược mô tả bằng công thức sau:

includes(N, I, Q) orders(N, D, C)

Phép chọn ITEM = „Brie‟ được quản lý bởi logical AND của công thức bêntrên với công thức nhân, I = „Brie‟ Kế đến là phép chiếu trên thuộc tính CUST chothấy rằng chúng ta chỉ quan tâm đến sự tồn tại của một vài giá trị cho mỗi biến N, I, Q,

và D để tạo thành công thức:

includes(N, I, Q) orders(N, D, C) ∧ I = „Brie‟

là đúng Chúng ta có thể sử dụng lượng từ ∃ áp dụng cho công thức trên để nó trở thành công thức:

(∃N)(∃I)(∃Q)(∃D) (includes(N, I, Q) orders(N, D, C) ∧ I = „Brie‟)

Công thức trên chỉ đúng khi và chỉ khi I = „Brie‟ Chúng ta có thể bỏ lượng

từ (∃I) nếu chúng ta thay thế thể hiện của I bằng hằng „Brie‟ Với nổi lực nhỏ, chúng ta

có thể chứng minh 2 công thức là tương đương:

(∃N)(∃Q)(∃D) (includes(N, „Brie‟, Q) orders(N, D, C))

2 Phép tính quan hệ trên miền

a Biểu thức của phép tính quan hệ trên miền:

Những công thức có thể được sử dụng để diễn tả những truy vấn một cách đơngiản Mỗi công thức có một hoặc nhiều biến tự do định nghĩa một quan hệ mà nhữngthuộc tính của nó tương ứng với những biến tự do này Biểu thức biễu diễn phép tínhtrên miền có dạng:

{X1…X2 | F(X1…X2)} (1)nghĩa là tập hợp những bộ a1…an mà khi chúng ta thay thế ai cho Xi, 1 ≤ i ≤ n, công thứcF(a1…an) là đúng

Ngôn ngữ truy vấn chứa những biểu thức dạng (1) đựơc gọi là phép tính quan

hệ trên miền (DRC) Các biến là những bộ phận của bộ trong khi phép tính quan hệ trên

bộ (giới thiệu sau) thì các biến là đại diện cho tất cả các bộ

Những quan hệ định nghĩa bởi biểu thức DRC thì không cần phải xác định Ví

Trang 30

là một biểu thức DRC hợp lý định nghĩa tập hợp những cặp (X,Y) mà không có trong quan hệ của vị từ p.

b Chuyển từ đại số quan hệ sang phép tính quan hệ trên miền:

Định lý : Mỗi truy vấn có thể biểu diễn trong đại số quan hệ thì có thể biểu

diễn trong phép tính quan hệ trên miền

- Sau đây chúng ta xem xét 5 trường hợp tương ứng với 5 phép toán cơ bản của đại số quan hệ:

* Trường hợp 1: E = E 1 E 2

Chúng ta có thể giả sử rằng E, E1, và E2 tất cả đều có ngôi k Theo giảthuyết qui nạp, có công thức DRC F1 và F2 định nghĩa quan hệ E1 và E2 tương ứng.Bằng cách thay thế những biến tự do vào trong công thức (chúng ta giả sử cả hai côngthức F1 và F2 có những biến là X1…Xk), và những biến này tương ứng với những bộphận của các bộ trong E, E1, E2 theo một trật tự đặc biệt đó, X1…Xk Công thức cho Elà:

Đặt quan hệ E1 có ngôi n Bằng giả thuyết quy nạp, có một công thức

F1(X1,…,Xn) tương ứng với quan hệ E1 Đặt j1,…,jn-k (thuộc danh sách {1,…,n}) màkhông xuất hiện trong khoảng i1,…,ik Thì một bộ µ trong quan hệ E nếu và chỉ nếu cótồn tại những giá trị của những bộ phận j1,…,jn-k mà chúng ta có thể kết hợp µ với những

bộ phận này sinh ra một bộ trong E1 Trong giới hạn phép tính quan hệ, chúng ta cócông thức:

F(X i ,…,X i ) = (X j )(X j )(…)(X j )F 1 (X 1 ,…,X n)

* Trường hợp 4: E = E 1 x E 2

Đặt F1(X1,…,Xn) và F2(Y1,…,Ym) là những công thức tương ứng với E1

và E2 Đổi tên biến nếu cần thiết, chúng ta giả sử rằng cả hai không có những biếnchung Công thức cho E là:

F(X 1 ,…,X n , Y 1 ,…,Y m ) = F 1 (X 1 ,…,X n ) F 2 (Y 1 ,…,Y m )

* Trường hợp 5: E = σA (E 1 )

Chúng ta giả sử A là một phép chọn đơn giản có dạng i θ j hoặc i θ a.Theo giả thuyết quy nạp, có một công thức F1(X1,…,Xk) tương ứng cho E1, thì côngthức F1∧ Xiθ Xj hoặc F1∧ Xiθ a tương ứng cho E, tùy thuộc vào dạng của A

broke(X) ∧ (∃X)likes(X,Y) (2)Chúng ta cần thấy rằng công thức (2) thể hiện của X trong broke là tự do, trong khi thể hiện của X trong likes là giới hạn bởi lượng từ tồn tại

Trang 31

Công thức cuối cùng thu được bằng cách áp dụng trường hợp 2 cho

likes(X,Y) và công thức (2) ở trên:

{XY | likes(X,Y) ∧¬(broke(X) ∧ (∃Z)likes(Z,Y)}

3 Phép tính quan hệ trên bộ

a Biểu thức của phép tính quan hệ trên bộ:

Phép tính quan hệ trên bộ, hay TRC, là một dạng của phép tính quan hệ mànhững biến đại diện cho những bộ chứ không là những bộ phận của bộ Để đề cập đến

bộ phận i của bộ µ, chúng ta sử dụng µ[i] Công thức của TRC được định nghĩa mộtcách đệ quy, và cấu trúc của công thức TRC là hoàn toàn giống cấu trúc của công thứcDRC Cơ bản là:

- Nếu p là một vị từ và µ là một biến bộ, thì p(µ) là công thức nhân với nghĩa “bộ µ ở trong quan hệ p”

- X θ Y là một công thức nhân nếu θ là một toán tử số học, còn X và Y là những hằnghoặc những tham chiếu bộ phận; Cuối cùng thì nó có dạng µ[i] trong đó µ là biến bộ,còn i là chỉ số bộ phận hay là thuộc tính

Nếu F1 và F2 là những công thức TRC, µ là một biến bộ xuất hiện tự do trong F,thì những công thức sau là công thức TRC:

Ví dụ: Cho công thức DRC sau:

{XY | likes(X,Y) ∧¬(broke(X) ∧ (∃Z)likes(Z,Y)}

Từ công thức này chúng ta có thể chuyển nó thành công thức TRC nếuchúng ta sử dụng bộ µ thay cho (X,Y), v thay cho X trong broke và ρ thay cho (Z,Y)trong likes Kết quả là:

{µ(2) | likes(µ) ∧¬ ((∃v(1))(broke(v) ∧ v[1] = µ[1]) ∧ (∃ρ(2))(likes(ρ) ∧ρ[2] = µ[2])}

Chú ý cách mà công thức nhân v[1] = µ[1] thay thế mối quan hệ màtrong DRC được biểu diễn bằng biến cùng tên X trong likes và trong broke Chúng takhông thể sử dụng µ như đối số cho broke bởi vì broke là một bộ đơn trong khi likes làmột bộ đôi Tương tự, ρ[2] = µ[2] thay thế cho biến cùng tên Y

b.Chuyển từ đại số quan hệ sang phép tính quan hệ trên bộ:

Bổ đề: Bất kỳ một truy vấn có thể biểu diễn trong đại số quan hệ thì có thể biểu

diễn trong phép toán quan hệ trên bộ

- Sau đây chúng ta xem xét 5 trường hợp tương ứng với 5 phép toán cơ bản của đại số quan hệ:

Trang 32

* Trường hợp 1: E = E 1 E 2

Có hai công thức dựa trên phép tính quan hệ trên bộ F1 và F2 tương ứngvới E1 và E2 Biến bộ tự do đơn độc trong F1 và F2 là µ Bởi vì E1 và E2 có cùng ngôi nênbiến bộ tự do trong F1 và F2 cũng phải có cùng ngôi, vì thế việc đổi tên là được phép(nếu cần thiết) Công thức TRC của E là:

F 1 F 2

* Trường hợp 2: E = E 1 – E 2

Như trong trường hợp 1, chúng ta giả sử rằng có 2 công thức F1(µ) và

F2(µ) tương ứng với E1 và E2 Khi đó công thức TRC cho E là:

Chúng ta giả sử A là một phép chọn đơn giản có dạng i θ j hoặc i θ a Đặt

F1(µ) là công thức TRC tương ứng với E1 Công thức TRC cho E là:

F 1 (µ) ∧µ[i] θµ[j] hoặc F 1 (µ) ∧µ[i] θ a

phụ thuộc vào dạng của A

- Ví dụ: Chúng ta hãy chuyển biểu thức đại số sau thành phép tính trên bộ:

likes(X,Y) – (broke(X) x πy(likes(X,Y)))

Đầu tiên, 3 thể hiện của những vị từ sẽ được đổi thành likes(λ),broke(µ) và likes(v) theo thứ tự xuất hiện trong biểu thức trên Đối với πy(likes(X,Y)),chúng ta phải để ra một biến bộ mới ρ áp dụng trường hợp 3 chuyển thành (v) (likes(v)

∧ρ[1] = v[2]).

Đối với broke(X) x πy(likes(X,Y)) chúng ta phải đưa vào một biếnmới, bộ phận thứ nhất của biến đôi này phải cân bằng với bộ phận đơn của µ và bộ phậnthứ hai của biến đôi này phải cần bằng với bộ phận đơn của biến ρ Chúng ta có thể gọibiến mới này bằng bất cứ tên gì mà chúng ta thích, nhưng ở đây nó được gọi là λ làhoàn toàn có ý nghĩa Lý do là ở bước tiếp theo, chúng ta phải thực hiện phép trừ côngthức nên biến bộ tự do của hai công thức tham gia vào phép trừ phải như nhau Vì vậychúng ta có:

Trang 33

CHƯƠNG IV:

NGÔN NGỮ THAO TÁC DỮ LIỆU

Ở chương III chúng ta đã tìm hiểu về đại số quan hệ và phép tính quan hệ Trongchương này chúng ta sẽ xem xét 2 ngôn ngữ hỏi (còn gọi là ngôn ngữ thao tác dữ liệu)được xây dựng dựa trên nền tản của hai khái niệm này Ngôn ngữ hỏi đầu tiên là ngônngữ ALPHA dựa trên phép tính quan hệ, còn ngôn ngữ thứ hai mà chúng ta sẽ xem xét

là ngôn ngữ SQL dựa trên đại số quan hệ Mục đích của hai ngôn ngữ này là giúp người

sử dụng tiếp cận với CSDL chẳng hạn như tìm kiếm, cập nhật,… các bộ của quan hệ

A NGÔN NGỮ CON DỮ LIỆU ALPHA

Ngôn ngữ con dữ liệu ALPHA do E.F Codd đề xướng và được sử dụng khá điểnhình trong các HQTCSDL như INGRES, DAMAS Để thuận tiện cho việc trình bày,cần thống nhất một số quy định sau:

{ }: Biểu thức định nghĩa tập (tức là các quan hệ)

Dấu hai chấm (:): Có ý nghĩa là “sao cho” hoặc “trong đó”

Hạng thức đứng trước dấu hai chấm biểu thị một bộ của quan hệ và hạng thứcđứng sau dấu hai chấm là điều kiện hoặc tân từ để xác định bộ đứng trước dấu hai chấm.Mỗi người sử dụng cần phải có một vùng làm việc W để kết quả tìm được sẽ xếp vào vùng này Vùng này tạo thành miền liên lạc giữa người sử dụng và CSDL

I BIỂU THỨC ALPHA

Biểu thức ALPHA được ký hiệu là:

{<T1, T2,…, Tn> : P}

trong đó Ti, i = 1 n, là tên các thuộc tính và P là điều kiện hoặc tân từ

Biểu thức nhằm xác định quan hệ của những n bộ dạng (v1,…,vn), vi ∈

DOM(Ti), i=1 n, sao cho bộ đó có thỏa tân từ P

Danh sách <T1, T2,…, Tn> gọi là danh sách đích, P còn gọi là biểu thức đánh giá

dụ: Một CSDL gồm 3 quan hệ Quan hệ S (các hãng cung ứng), quan hệ P (các

mặt hàng) và quan hệ SP (các mặt hàng đã cung cấp) Quan hệ S chứa dữ liệu về mỗihãng cung ứng: số hiệu hãng, tên hãng, tình trạng và địa chỉ Quan hệ P chứa dữ liệu vềmỗi mặt hàng: số hiệu mặt hàng, tên mặt hàng, màu sắc, trọng lượng và nơi lưu khomặt hàng đó Quan hệ SP chứa dữ liệu về các mặt hàng đã được cung cấp: số hiệu hãngcung ứng, số hiệu mặt hàng và số lượng hàng gửi đi

S S# SNAME STATUS CITYS1 Smith 20 LondonS2 Jones 10 ParisS3 Blacke 30 Paris

SP S# P# QTY

S1 P1 300S1 P2 200S1 P3 400S2 P1 300S2 P2 400S3 P2 200

Ngày đăng: 13/07/2018, 14:57

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w