Định nghĩa Hệ CSDL phân tán và hệ quản trị CSDL phân tán Hệ cơ sở dữ liệu phân tán Nguyên lý cơ bản của các hệ cơ sở dữ liệu phân tán CSDLPT được xây dựng dựa trên sự hợp nhất của ha
Trang 1LỜI CẢM ƠN
Tôi xin gửi lời cảm ơn chân thành toàn thể các thầy cô trong khoa đào tạo sau đại học trường ĐH Công nghệ thông tin và Truyền thông Thái Nguyên và đặc biệt là PGS.TS Lê Huy Thập đã tận tình chỉ dạy và giúp đỡ để hoàn thành được luận văn này
Trang 2LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của tôi, được xây dựng
từ những số liệu và kết quả thực tiễn khi tôi học tập tại trường ĐH CNTT &
TT Thái Nguyên và ứng dụng dựa trên số liệu của công ty IMAX, chưa từng được công bố hay xuất bản trong bất cứ công trình nào khác
Trang 3DANH MỤC CÁC CHỮ VIẾT TẮT
AQL Algebraic Query Language (Ngôn ngữ vấn tin đại số)
CSDL Cơ sở dữ liệu
CPU Central Processing Unit (Bộ xử lý trung tâm)
OOP Object Oriented Programming (Lập trình hướng đối tượng)
QEP Query Executtion Plan (Chiến lược thực thi vấn tin)
SQL Structured Query Language (Ngôn ngữ truy vấn có cấu trúc)
Trang 5MỤC LỤC
LỜI CẢM ƠN i
LỜI CAM ĐOAN ii
DANH MỤC CÁC CHỮ VIẾT TẮT iii
BẢNG DANH MỤC CÁC KÍ HIỆU iv
MỤC LỤC 1
LỜI MỞ ĐẦU 3
Chương 1 : TỔNG QUAN 4
1.1 Giới thiệu về một số phần mềm tìm kiếm cơ bản và một số hàm tìm kiếm 4
1.1.1 Một số công cụ tìm kiếm cơ bản 5
1.1.2 Giới thiệu hàm tìm kiếm cơ bản trong các ngôn ngữ lập trình 7
1.2 Tổng quan về cơ sở dữ liệu phân tán 9
1.2.1 Định nghĩa Hệ CSDL phân tán và hệ quản trị CSDL phân tán 9
1.2.2 Một số dạng câu vấn tin SQL cơ bản 27
1.2.3.Định nghĩa AQL và cây toán tử 29
1.3 Kết luận chương 31
Chương 2: TÌM KIẾM CÂU SQL TỪ CHƯƠNG TRÌNH NGUỒN, CHUYỂN SANG AQL VÀ VẼ CÂY TOÁN TỬ AQL 33
2.1 Quá trình tối ưu hóa và một số thuật toán tối ưu vấn tin .33
2.1.1Quá trình tối ưu hóa .33
2.1.2 Giới thiệu một số tối ưu hóa câu vấn tin cơ sở dữ liệu phân tán 34
2.1.2.1 Thuật toán INGRES 35
2.1.2.2 Thuật toán System R* 38
2.1.2.3 Thuật toán SDD-1 42
2.2 Thuật toán tìm câu vấn tin SQL, tạo câu vấn tin AQL và vẽ cây toán tử 43
2.2.1.Thuật toán tìm câu vấn tin SQL từ chương trình nguồn 44
Trang 62.2.2 Thuật toán chuyển đổi từ SQL sang AQL : CH_SQL_AQL .48
2.2.3.Thuật toán tạo cây AQL 50
2.2.4.Thuật toán vẽ cây toán tử 51
2.2.5.Ví dụ 53
2.3 Kết luận chương 54
Chương 3: CHƯƠNG TRÌNH ỨNG DỤNG 55
3.1.Tìm câu SQL từ chương trình quản lý hàng hóa tại công ty Imax 55
3.2.Chuyển lệnh SQL sang AQL 59
3.3.Vẽ cây toán tử AQL 61
KẾT LUẬN 62
HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 63
TÀI LIỆU THAM KHẢO 64
Trang 7LỜI MỞ ĐẦU
Nhu cầu quản lí dữ liệu trong lĩnh vực khoa học công nghệ ngày càng cao và trở thành một thách thức lớn Hệ thống xử lí phần cứng dần dần không theo kịp nhu cầu trên do các nguồn dữ liệu trở lên khổng lồ Các giải pháp nhằm tăng tốc độ xử lí liên tục ra đời , trong số đó thì xử lí song song và phân tán ngày càng được quan tâm nghiên cứu và ứng dụng để giải quyết các vấn
đề lớn và phức tạp
Phạm vi nghiên cứu của luận văn này tập trung vào xử lí song song trên một chương trình nguồn có nhiều lệnh SQL có thể thỏa mãn điều kiện song song hóa và tối ưu hóa bới phương pháp song song tự động Việc đó tiến hành bằng cách tìm kiếm vét cạn các lệnh SQL sau đó chuyển sang AQL để tối ưu hóa vấn tin Các vấn đề lần lượt được trình bày trong các chương như sau :
Chương 1 : giới thiệu về một số công cụ tìm kiếm, tổng quan cơ sở dữ liệu (CSDL) phân tán, câu vấn tin SQL, toán tử Aql và cây toán tử
Chương 2 : trình bày các thuật toán tìm câu vấn tin SQL, thuật toán chuyển đổi câu vấn tin SQL sang AQL, thuật toán vẽ cây toán tử AQL
Chương 3 : tạo chương trình mẫu và chạy thử dựa theo số liệu thực tế
Trang 8Chương 1 : TỔNG QUAN 1.1 Giới thiệu về một số phần mềm tìm kiếm cơ bản và một số hàm tìm kiếm
Với việc phát triển càng ngày càng mạnh của mạng truyền thông và Internet, các yêu cầu về việc đáp ứng nhanh chóng khả năng lấy được thông tin hữu ích từ mạng Các yêu cầu này đặt ra cho các nhà phát triển các hệ thống tìm kiếm nhằm đáp ứng nhu cầu tìm hiểu thông tin qua các cụm từ khóa được nhập vào
Các công cụ tìm kiếm dựa trên chương trình tự động và các ứng dụng của điện toán đám mây nhằm lưu trữ và lấy thông tin một cách tốt nhất.Tuy nhiên một điều cơ bản đó là công cụ tìm kiếm không phải con người, chính vì thế có sự khác nhau căn bản giữa con người và công cụ tìm kiếm trong việc đánh giá nội dung của một trang web Công cụ tìm kiếm nội dung theo định hướng, dù được trang bị công nghệ rất hiện đại nhưng công cụ tìm kiếm không đủ thông minh để có thể cảm nhận vẻ đẹp của một mẫu thiết kế, thưởng thức âm thanh hoặc thấy được sự chuyển động của một video nào đó Công cụ tìm kiếm thu thập dữ liệu của trang web nó chỉ nhìn vào các văn bản
cụ thể để cố gắng hiểu trang web này đang muốn nói về vấn đề gì
Công cụ tìm kiếm có 3 bộ phận chính :
Bộ phận thu thập dữ liệu
Bộ phận thu thập dữ liệu là một chương trình thu thập dữ liệu bằng cách đi
từ trang web này sang trang web khác để khám phá nội dung và các liên kết trong trang web đó, đây là quá trình phát hiện các trang web mới, các liên kết mới, dữ liệu này sử dụng để cập nhật cho bộ phận lập chỉ mục
Bộ phận lập chỉ mục
Đây là quá trình xây dựng cơ sở dữ liệu của các từ khóa , cụm từ , các trang web và các trang liên quan đến một lĩnh vực nào đó
Bộ phận xử lí tính toán
Trang 9Đây là quá trình tính toán nhằm cung cấp các kết quả cho người tìm kiếm Bộ phận tính toán sẽ dựa trên các yếu tố khác nhau để phân loại và xếp hạng trang web Các yếu tố này có tầm quan trọng khác nhau và do con người đặt ra, một trong những yếu tố quan trọng nhất để xếp hạng và phân loại là dựa trên chất lượng nội dung và chất lượng của những liên kết đến trang web của bạn
1.1.1 Một số công cụ tìm kiếm cơ bản
Cơ chế hoạt động của Google :
Đầu tiên bộ phận thu thập dữ liệu của Google hay còn gọi là Google Spider xem xét trang web (định dạng HTML) nó lưu ý các từ bên trong trang web nơi nó tìm thấy các từ đó Ví dụ các từ xuất hiện trong các thẻ tiêu đề, thẻ miêu tả nó nhận định đây là phần quan trọng có liên quan đến việc tìm kiếm của người dụng sau này Vì thế với mỗi website thì Google
có nhiều phương pháp để index lại chỉ mục, liệt kê lại các từ khóa chính và
có thể được cập nhật lại để cho hệ thống tìm kiếm diễn ra nhanh hơn, hiệu quả hơn hoặc cả hai
Tiếp theo Google sẽ xây dựng chỉ mục, việc này làm cho các thông tin được tìm thấy một cách nhanh chóng Sau khi tìm thông tin trên trang web, Google Spider nhận ra rằng việc tìm kiếm thông tin trên website là quá trình không bao giờ kết thúc bởi vì các nhà quản trị trang web luôn thay đổi, cập nhật thông tin trên website và điều đó có nghĩa các Spider sẽ liên tục thực hiện nhiệm vụ thu thập dữ liệu
Cuối cùng Google sẽ xử lí, tính toán và mã hóa thông tin để lưu trữ trong cơ sở dữ liệu Và khi có một truy vấn tìm kiếm thì hệ thống sẽ trả về các kết quả có chứa nội dung hữu ích tương ứng với các truy vấn tìm kiếm của người dùng
Google search cũng cho phép người sử dụng khai báo trang web của họ với máy chủ của google, sau đó các máy chủ này sẽ sắp xếp thời gian để tạo
Trang 10chỉ mục cho các trang web được khai báo.Việc sắp xếp thứ tự kết quả tìm kiếm phụ thuộc vào thứ hạng của nó theo phân cấp của Google search nhờ tổng hợp phức tạp keyword, pagerank, sitemap Kết quả tìm kiếm cũng được phân loại theo đối tượng sử dụng khác nhau, nó phụ thuộc vào vị trí địa
lý (lấy theo IP truy cập của người truy cập) Ngoài ra, Google search cũng sử dụngcookies và tính năng lưu trữ thói quen tìm kiếm của người dùng (cá nhân hóa kết quả tìm kiếm) để tạo ra kết quả tìm kiếm Nói chung, việc sắp xếp và hiển thị kết quả của Google search khá phức tạp và nó là bí mật công nghệ mà nhờ đó Google có thể chiếm lĩnh thị trường
Một số công cụ tìm kiếm Việt
Ở Việt Nam đã từng xuất hiện khá nhiều công cụ tìm kiếm như Socbay, Hoatieu, Vinaseek, Xalo, Timnhanh, Monava, phục vụ nhu cầu cho người Việt Tuy nhiên sau khi Việt Nam chuẩn hóa bảng mã unicode, nội dung web Tiếng Việt nhanh chóng được thống nhất và lượng thông tin Tiếng Việt bùng
nổ nhanh chóng, Unicode giúp Tiếng Việt tiến bước hội nhập với thế giới đồng thời tạo điều kiện cho các công cụ nước ngoài không gặp phải khó khăn khi đánh chỉ mục nội dung Tiếng Việt nữa Google nhanh chóng xác lập vị trí vững chắc trên thị trường và đánh bại các đối thủ cạnh tranh là các công cụ tìm kiếm Việt có tiềm lực thua kém rất nhiều
Gần đây thị trường Việt Nam mới xuất hiện 2 đơn vị tham gia vào mảng tìm kiếm là Cốc Cốc và Wada, bước đầu Cốc Cốc đã có kết quả tương đối khả quan Cốc Cốc chính thức được công bố tháng 4 năm 2013, sau 2 tháng ra mắt đã thu hút gần 2 tiệu lượt truy cập Cốc Cốc là một dự
án lập bởi 3 lập trình viên tốt nghiệp ĐH Moscow – Liên bang Nga và được hỗ trợ bởi Yandex , Mail.ru group và Digital Sky Technologies Công cụ tìm kiếm tiếng Việt Cốc Cốc đang trong thế cạnh tranh với Google bằng cơ sở dữ liệu hơn 2,1 tỷ trang Web, trong đó số lượng dữ
Trang 11liệu từ tên miền ".vn", ".com.vn" nhiều gấp hai lần so với Google, riêng
về tìm kiếm địa điểm thì cơ sở dữ liệu địa điểm đồ sộ của Cốc Cốc bao gồm hơn nửa triệu địa điểm tại 171 thành phố và thị xã trên khắp lãnh thổ Việt Nam Cơ sở dữ liệu này cũng bao gồm ảnh chụp theo công nghệ panorama cho phép người dùng có thể quan sát một địa điểm từ tất cả các góc nhìn Cốc Cốc sở hữu lợi thế cạnh tranh ở khả năng phân tích xử lý ngôn ngữ tiếng Việt với các đặc điểm riêng như dấu, âm tiết, từ đồng âm, phân tách từ ngữ và các từ viết tắt
1.1.2 Giới thiệu hàm tìm kiếm cơ bản trong các ngôn ngữ lập trình
Hàm tìm kiếm trong ngôn ngữ C#
Trong ngôn ngữ C# có một số phương thức tìm kiếm cơ bản như find, like,… Trong phần này của luận văn sẽ giới thiệu một số phương thức trên và
ví dụ minh họa của chúng:
Tìm kiếm trong DataTable
Tìm kiếm trong DataView
Tìm kiếm trong DataTable
Tìm kiếm một bản ghi: là lấy thông tin chi tiết của 1 ID hay khóa chính của chúng nhằm xác định chính xác bản ghi muốn tìm Ví dụ, tìm thông tin chi tiết của một khách hàng có mã khách hàng cho trước, tìm thông tin chi tiết của hóa đơn có mã hóa đơn cho trước
DataTable sử dụng phương thức Find của DataTable.Rows Cú pháp phương thức Find như sau:
DataRow DataRowCollection.Find (object key)
Chú ý: Hàm Find tìm giá trị key chỉ trên cột khóa chính vì vậy bảng cần phải có khóa chính
Ví dụ: cho một đoạn mã chương trình như sau:
myTable.PrimaryKey = new DataColumn[]
{my Table Columns[“CustomerID”]}
Trang 12Thực hiện tìm kiếm theo giá trị khóa chính của các bản ghi
Tìm kiếm trong DataView
Một số phương thức tìm kiếm có trong DataView như sau:
Int Find (object): Trả về chỉ số dòng thỏa mãn điều kiện tìm kiếm
DataRowView[] FindRows(object hay object[]): Trả về 1 số DataRowView thỏa mãn điều kiện tìm kiếm
Một số hàm tìm kiếm có trong ngôn ngữ Java
Trong phần này, luận văn giới thiệu một số phương thức tìm kiếm chuỗi trong ngôn ngữ javaScript
Phương thức tìm kiếm chuỗi match():
Ví dụ:
var str = "The rain in SPAIN stays mainly in the plain"; var res = str.match(/ain/g);
kết quả trả về là các chuỗi “ain”,” ain”, “ain”
Định nghĩa và cách sử dụng: Phương pháp match() tìm kiếm một chuỗi trong một chuỗi khác Các giá trị được trả về được thể hiện như một mảng
Lưu ý: nếu các tham số lựa chọn không bao gồm thay đổi g (tìm kiếm tất cả) thì phương thức match() chỉ trả về giá trị đầu tiên
Phương thức này trả về null nếu không có giá trị phù hợp được tìm thấy
Phương thức search():
Phương thức search() tìm kiếm các giá trị chuỗi giữa các biểu thức và
Trang 13đối tượng chuỗi được xác định trước
Cú pháp: str.search(regexp)
Trong đó, str là chuỗi và regexp là biểu thức
Nếu quá trình tìm kiếm thành công, phương thức search() trả về chỉ số của vị trí đầu tiên tìm được ngược lại là giá trị -1
1.2 Tổng quan về cơ sở dữ liệu phân tán
1.2.1 Định nghĩa Hệ CSDL phân tán và hệ quản trị CSDL phân tán
Hệ cơ sở dữ liệu phân tán
Nguyên lý cơ bản của các hệ cơ sở dữ liệu phân tán (CSDLPT) được xây dựng dựa trên sự hợp nhất của hai hướng tiếp cận lý thuyết các hệ cơ sở
dữ liệu (CSDL) và công nghệ mạng máy tính
Động lực thúc đẩy sự phát triển nhanh trong của CSDLPT nhu cầu tích hợp đa dạng các loại dữ liệu (DL) nhằm cung cấp đa dạng các loại hình dịch
Trang 14vụ cho người sử dụng Thêm vào đó, với mục tiêu chia sẻ tài nguyên, khai thác, nâng cao khả năng tích hợp và trao đổi tài nguyên mạng cũng thúc đẩy quá trình sử dụng các hệ thống phân tán
Nhu cầu thu thập, lưu trữ xử lý và trao đổi thông tin ngày càng tăng, các hệ thống xử lý tập trung đã bộc lộ những nhược điểm sau :
Tăng khả năng lưu trữ thông tin là khó khăn, bởi bị giới hạn tối đa của thiết bị nhớ
Độ sẵn sàng phục vụ của CSDL không cao khi số người sử dụng tăng
Khả năng tính toán của các máy tính đơn lẻ đang dần tới giới hạn vật lý
Mô hình tổ chức lưu trữ, xử lý dữ liệu tập trung không phù hợp cho những tổ chức kinh tế, xã hội có hoạt động rộng lớn, đa quốc gia
Những nhược điểm này được khắc phục trong hệ thống phân tán Chính
vì vậy, xu thế tất yêu các hệ thống phân tán sẽ thay thế dần cho các hệ thống tập trung truyền thống
Các hệ CSDL phát triển từ mô hình xử lý dữ liệu sang mô hình xử lý tập trung Trong đó, mỗi ứng dụng định nghĩa một hay nhiều tệp dữ liệu riêng biệt của chúng (hình 1.1) Từ đó, các hệ ứng dụng bất biên đối với sự thay đổi cấu trúc lưu trữ và các chiến lược truy nhập dữ liệu của hệ thống
Hình 1.1: Xử lý dữ liệu truyền thống
Trang 15Hình 1.2: Xử lý CSDL
Trong ngữ cảnh xử lý phân tán, hệ CSDLPT có thể được xem như công
cụ giúp quá trình xử lý dữ liệu dễ dàng và hiệu quả hơn Khái niệm hệ CSDLPT bao gồm khái niệm CSDLPT và hệ quản trị CSDLPT
CSDLPT là một tập các CSDL có quan hệ với nhau về mặt logic và được phân bố trên một mạng máy tính Hệ quản trị CSDLPT là hệ thống phần mềm cho phép quản trị CSDLPT và làm cho sự phân tán đó là trong suốt đối với người sử dụng.Trong mô hình CSDLPT bản thân CSDL có ở trên nhiều máy tính khác nhau Như vậy, đặc trưng của CSDLPT là các CSDL được phân bố trên mạng máy tính và có quan hệ với nhau về mặt logic Đồng thời, cần có một cấu trúc giao diện chung để truy nhập dữ liệu trong hệ thống phân tán
Sự cần thiết của hệ cơ sở dữ liệu phân tán
Trong những năm gần đây, công nghệ CSDLPT phát triển ngày càng mạnh mẽ và thể hiện sự quan trọng của nó trong lĩnh vực công nghệ thông tin Một số nguyên nhân thúc đẩy sự phát triển của các hệ CSDLPT:
Sự phát triển của các cơ cấu tổ chức
Cùng với sự phát triển cuả xã hội, nhiều cơ quan, xí nghiệp có cơ cấu tổ chức không tập trung, hoạt động phân tán trên phạm vi rộng Vì vậy thiết kế
và cài đặt CSDLPT là phù hợp, đáp ứng mọi nhu cầu truy xuất và khai thác
dữ liệu Cùng với sự phát triển của công nghệ viễn thông, tin học, động cơ
Trang 16thúc đẩy kinh tế, việc tổ chức các trung tâm máy tính lớn và tập trung trở thành vấn đề cần nghiên cứu
Cơ cấu tổ chức và vấn đề kinh tế là một trong những nguyên nhân quan trọng nhất của sự phát triển CSDLPT
Giảm chi phí truyền thông
Trong thực tế, sử dụng một số ứng dụng mang tính địa phương sẽ làm giảm chi phí truyền thông Bởi vậy, việc tối ưu hoá tính địa phương của các ứng dụng là một trong những mục tiêu chính của việc thiết kế và cài đặt một CSDLPT
Hiệu quả công việc
Sự tồn tại một số hệ thống xử lý điạ phương đạt được thông qua việc
xử lý song song Vấn đề này có thể thích hợp với một hệ đa xử lý CSDLPT
có thuận lợi trong phân tích dữ liệu phản ánh điều kiện phụ thuộc của các ứng dụng, cực đại hoá tính địa phương của ứng dụng Theo cách này tác động qua lại giữa các bộ xử lý được làm cực tiểu Công việc được phân chia giữa các
bộ xử lý khác nhau và tránh được các tắc nghẽn thông tin trên mạng truyền thông hoặc các dịch vụ chung của toàn hệ thống Sự phân tán dữ liệu phản ánh hiệu quả làm tăng tính địa phương của các ứng dụng
Độ tin cậy và tính sẵn sàng
Cách tiếp cận CSDLPT cho phép truy nhập độ tin cậy và tính sẵn sàng cao hơn Tuy nhiên, để đạt được mục đích đó là vấn đề không đơn giản đòi hỏi kỹ thuật phức tạp Những lỗi xuất hiện trong một CSDLPT có thể xảy ra nhiều hơn do số các thành phần cấu thành lớn hơn Tuy nhiên ảnh hưởng của lỗi chỉ ảnh hưởng tới các ứng dụng sử dụng các site lỗi Vì vậy, sự hỏng hóc của toàn hệ thống hiếm khi xảy ra
CSDLPT là sự tập hợp các dữ liệu thuộc cùng một hệ thống về mặt logic nhưng phân bố trên các site của mạng máy tính Công nghệ CSDLPT là
sự kết hợp giữa hai vấn đề phân tán và hợp nhất:
Trang 17Phân tán : phân tán dữ liệu trên các site của mạng
Hợp nhất : hợp nhất về mặt logic các dữ liệu phân tán sao cho chúng xuất hiện với người sử dụng giống như với CSDL tập trung duy nhất
Công nghệ CSDLPT mới thực sự phát triển trong những năm gần đây nhờ
sự phát triển của kỹ thuật tính toán, kỹ thuật truyền thông và mạng máy tính Những ứng dụng được xây dựng trên CSDLPT đã xuất hiện nhiều trên thị trường và từng bước chứng minh tính ưu việt của nó so với CSDL tập trung
Các đặc điểm của cơ sở dữ liệu phân tán
CSDL phân tán không đơn giản là sự phân bố của các CSDL bởi vì CSDLPT có nhiều đặc điểm khác biệt so với CSDL tập trung truyền thống Phần này so sánh CSDLPT với CSDL tập trung ở một số đặc điểm: điều khiển tập trung, sự độc lập dữ liệu, sự giảm dư thừa dữ liệu, các cấu trúc vật
lý phức tạp để truy xuất hiệu quả
Điều khiển tập trung
Điều khiển tập trung (Centralized Control) là một đặc điểm của CSDL tập trung, toàn bộ dữ liệu được tập trung lại nhằm để tránh sự dư thừa dữ liệu, đảm bảo được tính độc lập của dữ liệu Dữ liệu được quản lý tập trung bởi người quản trị CSDL Chức năng cơ bản của người quản trị CSDL (DBA - Database Administrator) là bảo đảm sự an toàn của dữ liệu Trong các CSDLPT vấn đề điều khiển tập trung không được nhấn mạnh Nói chung, trong các CSDLPT , sự điều khiển được thực hiện theo một cấu trúc điều khiển phân cấp bao gồm hai loại người quản trị CSDL:
Người quản trị CSDL toàn cục (Global Database Administrator) là người có trách nhiệm chính về toàn bộ CSDLPT
Người quản trị CSDL cục bộ (Local Database Administrator) là người có trách nhiệm về CSDL cục bộ của họ
Tuy nhiên, những người quản trị CSDL cục bộ cần phải có những quyền độc lập riêng về CSDL cục bộ của mình mà người quản trị CSDL toàn
Trang 18cục hoàn toàn không có những quyền này và sự phối hợp giữa các vị trí được thực hiện bởi chính những người quản trị cục bộ Đặc điểm này được gọi là sự độc lập vị trí Các CSDLPT có thể khác nhau rất nhiều về mức độ độc lập vị trí Từ sự độc lập vị trí hoàn toàn (không có người quản trị CSDL tập trung) đến sự điều khiển tập trung hoàn toàn
Độc lập dữ liệu
Độc lập dữ liệu (Data Independence) là một đặc điểm của CSDL Độc lập dữ liệu có nghĩa là tổ chức lưu trữ dữ liệu là trong suốt đối với người lập trình ứng dụng Ưu điểm của độc lập dữ liệu là các chương trình không bị ảnh hưởng bởi những thay đổi về tổ chức lưu trữ vật lý của dữ liệu
Trong các hệ CSDLPT, độc lập dữ liệu cũng quan trọng như trong các CSDL tập trung Tuy nhiên, một đặc điểm mới được đưa vào trong khái niệm thông thường của độc lập dữ liệu là sự trong suốt phân tán (Distribution Transparency) Nhờ sự trong suốt phân tán mà các chương trình ứng dụng có thể được viết giống như trong CSDL không được phân tán Vì vậy, tính đúng đắn của các chương trình ứng dụng không bị ảnh hưởng bởi sự di chuyển dữ liệu từ một vị trí này đến một vị trí khác Tuy nhiên, tốc độ thực hiện của các chương trình ứng dụng thì bị ảnh hưởng
Độc lập dữ liệu trong CSDL tập trung được thể hiện thông qua một kiến trúc nhiều mức Các mức này có những mô tả khác nhau về dữ liệu và những ánh xạ biến đổi giữa các mức Sự trong suốt phân tán trong CSDLPT được thể hiện bằng cách bổ sung thêm các mức trong suốt vào kiến trúc nhiều mức của CSDL tập trung
Giảm dư thừa dữ liệu
Trong các CSDL tập trung, sự dư thừa dữ liệu được giảm thiểu, vì tránh sự không nhất quán giữa nhiều bản sao bằng cách chỉ có một bản sao và tiết kiệm vùng nhớ lưu trữ Các ứng dụng chia sẻ chung, truy xuất đến các tập tin dữ liệu
Trang 19Tuy nhiên, trong các CSDLPT, sự dư thừa dữ liệu là một đặc điểm cần thiết.Vì các lý do sau:
Làm tăng tính cục bộ của các ứng dụng nếu dữ liệu được nhân bản tại tất cả các vị trí mà ứng dụng cần dữ liệu này Khi đó, các ứng dụng cục bộ được thực hiện nhanh hơn vì không cần phải truy xuất dữ liệu từ xa
Làm tăng tính sẵn sàng của hệ thống ứng dụng.Vì một vị trí có sự cố sẽ không làm ngưng sự thực hiện của các ứng dụng ở những vị trí khác nếu dữ liệu tại vị trí bị hỏng được nhân bản tại các vị trí khác
Tuy nhiên, sự nhân bản dữ liệu cần phải xem xét kỹ lưỡng dựa vào hai loại ứng dụng cơ bản: ứng dụng chỉ đọc và cập nhật Sự nhân bản dữ liệu giúp cho các ứng dụng chỉ đọc được thực hiện nhanh hơn, nhưng nó làm cho các ứng dụng cập bị thực hiện lâu hơn vì phải cập nhật dữ liệu tại các vị trí được nhân bản
Như vậy, sự nhân bản dữ liệu sẽ là một ưu điểm nếu hệ thống có rất nhiều ứng dụng chỉ đọc và có rất ít ứng dụng cập nhật Trong trường hợp ngược lại thì sự nhân bản dữ liệu lại là một nhược điểm
Độ tin cậy qua các giao dịch phân tán
Hệ quản trị CSDLPT cải thiện độ tin cậy qua các giao dịch phân tán
Do quá trình nhân bản hạn chế các lỗi tại vị trí riêng lẻ, trạm riêng hoặc truyền thông Từ đó, chỉ có một hoặc một số trạm hỏng hóc không đủ để phá
vỡ toàn hệ thống Điều này có nghĩa là, khi có hỏng hóc thì người sử dụng vẫn có thể truy nhập được tới những phần khác trong CSDLPT
Một chuỗi các thao tác CSDL được thực hiện nhằm chuyển trạng thái CSDL nhất quán này sang trạng thái CSDL nhất quán khác là một giao dịch Giao dịch là một đơn vị tính toán cơ bản, nhất quán và tin cậy Các giao dịch có thể được thực hiện đồng thời ngay cả khi có lỗi xảy ra Vì vậy,hệ quản trị CSDL phải
hỗ trợ đầy đủ cho giao dịch đảm bảo rằng việc thực thi đồng thời các giao dịch
Trang 20của người sử dụng sẽ không vi phạm tính nhất quán của CSDL trong khi hệ thống
có lỗi Trong đó, các giao dịch phải thỏa mãn các quy tắc toàn vẹn của CSDL
Cải tiến hiệu năng
Hiệu năng của CSDLPT được cải tiến dựa vào hai điểm:
a) Hệ quản trị CSDLPTcó khả năng phân mảnh CSDL khái niệm và cho phép cục bộ hoá dữ liệu Có hai ưu điểm nổi bật:
Vì mỗi trạm chỉ xử lý một phần CSDL, sự tranh chấp về CPU và các dịch vụ vào/ra không nghiêm trọng như trong các hệ CSDL tập trung
Tính cục bộ làm giảm trễ truy nhập từ xa thường gặp trên các mạng diện rộng
Hầu hết các hệ CSDLPT được cấu trúc nhằm tận dụng tối đa những ưu điểm của tính cục bộ dữ liệu Lợi ích đầy đủ của việc giảm tranh chấp và giảm chi phí truyền chỉ có thể có được bằng cách phân mảnh và phân tán dữ liệu hợp lý
b) Tính song song của các hệ thống phân tán có thể được khai thác
để thực hiện song song liên truy vấn và truy vấn nội bộ Liên truy vấn song song là khả năng thực hiện nhiều truy vấn tại cùng thời điểm, còn nội truy vấn song song là phương pháp tách một truy vấn đơn thành các truy vấn con và mỗi truy vấn con được thực hiện tại các trạm khác nhau, truy nhập các phần khác nhau của CSDLPT
Dễ dàng mở rộng hệ thống
Trong môi trường phân tán, dễ dàng tăng kích thước dữ liệu và hiếm khi cần sửa đổi trong các hệ thống lớn Việc mở rộng thường có thể được thực hiện bằng cách tăng khả năng lưu trữ và xử lý của mạng Rõ ràng là không thể
có được sự gia tăng “khả năng” một cách tuyến tính do phụ thuộc vào chi phí phân tán Tuy nhiên, vẫn có thể có những cải tiến có ý nghĩa Khả năng mở rộng hệ thống dễ dàng mang tính kinh tế, chi phí giảm
Các mô hình cơ sở dữ liệu Client/Server
Nhìn chung mọi ứng dụng CSDL bao gồm các phần:
Trang 21Thành phần xử lý ứng dụng (Application Processing Components)
Thành phần phần mềm CSDL (Database Software Componets)
Bản thân CSDL (The Database Ifself)
Có 5 mô hình kiến trúc vật lý về truy nhập dữ liệu
Mô hình CSDL tập trung (Centralized database model)
Mô hình CSDL theo kiểu file - server (File - server database model)
Mô hình xử lý từng phần CSDL (Database extract processing model)
Mô hình CSDL Client/Server (Client/Server database model)
Mô hình CSDLPT (Distributed database model)
Mô hình cơ sở dữ liệu tập trung
Trong mô hình này, các ứng dụng, hệ quản trị CSDL và CSDL được cài đặt trên cùng một bộ xử lý Ví dụ trên máy tính cá nhân có thể chạy các chương trình ứng dụng có sử dụng phần mềm CSDL Oracle để truy nhập tới CSDL trên đĩa cứng của máy tính cá nhân đó
Mô hình xử lý tập trung phù hợp với hầu hết công việc của nhiều tổ chức, doanh nghiệp Ví dụ một bộ xử lý mainframe chạy phần mềm CSDL IMS hoặc DB2 của IBM có thể cung cấp cho các trạm làm việc ở các vị trí phân tán truy nhập nhanh chóng tới CSDL trung tâm Tuy nhiên, trong rất nhiều hệ thống, cả 3 thành phần của ứng dụng CSDL đều thực hiện trên cùng một máy mainframe do vậy cấu hình này cũng thích hợp với mô hình tập trung
Mô hình cơ sở dữ liệu theo kiểu File Server
Trong mô hình CSDL theo kiểu File Server, các thành phần ứng dụng
và phần mềm CSDL ở trên một hệ thống máy tính và các File dữ liệu vật lý CSDL cài đặt trên hệ thống máy tính khác Một cấu hình như vậy thường được dùng trong môi trường cục bộ, trong đó một hoặc nhiều hệ thống máy tính đóng vai trò của Server lưu trữ các file dữ liệu Mô hình File Server giống với mô hình tập trung cóCSDL và các thành phần ứng dụng, phần mềm CSDL cài đặt trên các máy tính khác nhau Tuy nhiên, các thành phần ứng
Trang 22dụng và phần mềm CSDL có thể có cùng thiết kế để vận hành một môi trường tập trung Hệ điều hành mạng có thể thực hiện cơ chế đồng thời cho phép nhiều người sử dụng cuối có thể truy nhập vào cùng CSDL.
Mô hình xử lý từng phần cơ sở dữ liệu
Mô hình trong đó một CSDL ở xa có thể được truy nhập bởi phần mềm CSDL, được gọi là xử lý dữ liệu từng phần Với mô hình này, người sử dụng
có thể tại một máy tính cá nhân kết nối truy nhập, khai thác CSDL ở xa Với cách tiếp cận này, người sử dụng phải biết chắc chắn là dữ liệu nằm ở đâu và làm như thế nào để truy nhập dữ liệu Phần mềm ứng dụng cần phải có trên cả hai hệ thống máy tính để kiểm soát sự truy nhập dữ liệu và chuyển dữ liệu giữa hai hệ thống Tuy nhiên, phần mềm CSDL chạy trên hai hệ thống không cần biết rằng việc xử lý CSDL từ xa đang diễn ra vì người sử dụng tác động tới chúng một cách độc lập
Mô hình cơ sở dữ liệu Client/Server
Trong mô hình CSDL Client/Server, CSDL được cài đặt trên Server, các ứng dụng trên các máy Client và phần mềm CSDL được cài đặt trên cả Client lẫn Server Trong mô hình này, các thành phần xử lý ứng dụng trên
hệ thống Client đưa ra yêu cầu cho phần mềm CSDL trên máy client, phần mềm này sẽ kết nối với phần mềm CSDL chạy trên Server Phần mềm CSDL trên Server sẽ truy nhập vào CSDL xử lý theo yêu cầu và gửi trả kết quả cho máy Client
Mới nhìn, mô hình CSDL Client/Server có vẻ giống như mô hình File Server, tuy nhiên mô hình Client/Server có rất nhiều thuận lợi hơn mô hình File Server Với mô hình File Server, một giao tác cần truy nhập dữ liệu nhiều lần có thể gây ra tắc nghẽn lưu lượng truyền trên mạng Giả sử người sử dụng tạo ra một vấn tin để lấy dữ liệu tổng số từ 1000 bản ghi, với cách tiếp cận File Server, nội dung của 1000 bản ghi phải được lưu chuyển trên mạng, vì phần mềm CSDL chạy trên máy của người sử dụng phải truy nhập từng bản
Trang 23ghi để thoả mãn yêu cầu của người sử dụng Với cách tiếp cận CSDL Client/Server, chỉ có lời vấn tin khởi động ban đầu và kết quả cuối cùng cần đưa lên mạng, phần mềm CSDL chạy trên máy lưu giữ CSDL sẽ truy nhập các bản ghi cần thiết, xử lý chúng và gọi các thủ tục cần thiết để đưa ra kết quả cuối cùng
Trong mô hình CSDL Client/Server, thường nói đến các phần mềm Front End Software và Back End Software Front End Software được chạy trên thiết bị truy nhập đầu cuối hoặc trên các Workstation, nhằm đáp ứng các yêu cầu xử lý đơn lẻ riêng biệt Nó đóng vai trò của Client trong ứng dụng CSDL Client/Server và thực hiện các chức năng hướng tới nhu cầu của người sử dụng Minh họa mô hình Client/Server được thể hiện tại hình 1.3:
Hình 1.3: Mô hình CSDL Client/Server
Mô hình cơ sở dữ liệu phân tán
Cả hai mô hình File Server và Client/Server đều giả định là dữ liệu nằm trên một bộ xử lý và chương trình ứng dụng truy nhập dữ liệu nằm trên một
bộ xử lý khác, còn mô hình CSDLPT lại giả định bản thân CSDL có ở trên nhiều máy khác nhau
Lợi ích của phân tán dữ liệu trên mạng
c) Việc phân tán dữ liệu tạo cho CSDL có tính tự trị địa phương Tại một site, dữ liệu được chia sẻ bởi một nhóm người sử dụng tại nơi họ làm
Trang 24việc và như vậy dữ liệu được kiểm soát cục bộ, phù hợp đối với những tổ chức phân bố tập trung Cho phép thiết lập và bắt buộc sách lược địa phương đối với việc sử dụng CSDL
Hình 1.4: Mô hình Client – Server nhiều lớp
d) Tính song song trong các hệ CSDLPT có thể nâng cao được hiệu quả truy nhập Tính chất này có thể lợi dụng để xử lý song song các câu hỏi Có hai dạng:
Câu hỏi đồng thời phát sinh tại các trạm khác nhau
Câu hỏi có thể được phân rã thành những câu hỏi thành phần được thực hiện song song tại các trạm khác nhau
e) Trong tổ chức phân tán, tương tranh dịch vụ, CPU, vào/ra ít hơn
so với tổ chức tập trung Độ trễ trong truy nhập từ xa có thể giảm do việc thực hiện địa phương hoá dữ liệu một cách hợp lý
f) Độ tin cậy và tính sẵn sàng được nâng cao trong tổ chức phân tán,
là một trong những mục tiêu cơ bản của tổ chức dữ liệu phân tán Việc tổ chức sao chép dữ liệu cũng có thể đảm bảo cho việc truy nhập CSDL không bị ảnh hưởng khi có sự cố xảy ra đối với một số trạm hoặc kênh truyền sẽ không thể làm sụp đổ cả hệ thống
g) Tổ chức dữ liệu phân tán đem lại hiệu quả kinh tế cao hơn so với
tổ chức tập trung Việc trang bị một hệ thống máy tính nhỏ sẽ có giá thành
Trang 25ít hơn so với một hệ thống máy tính lớn cho cùng một mục đích ứng dụng Hơn nữa, việc truyền thông các dữ liệu nhỏ sẽ tiết kiệm chi phí cũng như thời gian hơn nhiều so với việc truyền thông một dữ liệu lớn
h) Khả năng mở rộng hệ thống và phân chia tài nguyên Việc mở rộng khả năng cho một hệ xử lý phân tán là dễ dàng hơn và cho phép thực hiện tốt hơn
Tổng quan về hệ quản trị cơ sở dữ liệu phân tán
Hệ quản trị CSDLPT là hệ thống phần mềm cho phép quản trị CSDLPT
và làm cho sự phân tán đó là trong suốt đối với người sử dụng Nói cách khác,CSDLPT là CSDL được phân tán một cách vật lý nhưng được thống nhất tổ chức như là một CSDL duy nhất
Như vậy sự phân tán dữ liệu là trong suốt đối với người sử dụng Việc quản lý các dữ liệu phân tán đòi hỏi mỗi trạm (site) cài đặt các thành phần hệ thống sau :
Thành phần quản trị CSDL (Database Management DM)
Thành phần truyền dữ liệu (Data Communication DC)
Từ điển dữ liệu (Data Dictionary DD): thông tin về sự phân tán dữ liệu trên mạng
Trang 26Thành phần CSDLPT (Distributed Database DDB)
Các dịch vụ của hệ thống trên bao gồm:
Các ứng dụng truy nhập CSDL từ xa
Cung cấp các mức trong suốt phân tán
Hỗ trợ quản trị và điều khiển CSDL, bao gồm các bộ công cụ, thu thập thông tin từ các trình tiện ích, cung cấp cách nhìn tổng quan về các file dữ liệu trên mạng
Khả năng mở rộng với các hệ thống khác nhau
Cung cấp khả năng điều khiển đồng thời và phục hồi các giao tác phân tán
Hình 1.5: Hệ quản trị CSDLPT
Các hệ quản trị CSDLPT thường hỗ trợ về điều khiển tương tranh và khôi phục các tiến trình phân tán Khả năng truy cập từ xa có thể thực hiện được bằng 2 cách:
Cách thứ nhất (hình 1.6) trình ứng dụng yêu cầu truy cập từ xa Yêu cầu này được định tuyến tự động bởi DDBMS tới máy chủ chứa dữ liệu Được thực hiện tại máy chủ chứa CSDL và gửi lại kết quả về trạm yêu cầu Cách tiếp cận này được sử dụng cho truy cập từ xa, trong suốt phân tán có thể thực hiện được bằng việc cung cấp các file chung (global) và các truy nhập trước đó có thể địa chỉ hoá một cách tự động tới các trạm ở xa
Trang 27Hình 1.7 chỉ ra một cách tiếp cận khác, chương trình phụ thực hiện tại các trạm ở xa (người lập trình phải tự lập) và các kết quả trả lại cho chương trình ứng dụng
Hệ quản trị CSDLPT hỗ trợ cả hai cách tiếp cận trên Mỗi một cách tiếp cận đều có những thuận lợi và khó khăn riêng Giải pháp thứ nhất cung cấp khả năng trong suốt phân tán cao hơn, trong khi giải pháp thứ hai có thể hiệu quả hơn nếu như có rất nhiều chương trình sử dụng cùng yêu cầu truy nhập Bởi vì, các chương trình phụ có thể thực hiện các yêu cầu từ các trạm ở xa và trả lại kết quả
Hình 1.6: Truy cập CSDL từ xa
Trang 28Hình 1.7: Truy cập từ xa bằng chương trình phụ
Mô hình kiến trúc hệ quản trị cơ sở dữ liệu phân tán
Có ba kiểu kiến trúc tham chiếu cho hệ quản trị CSDLPT: hệ Client Server, hệ quản trị CSDLPTPeer-to-Peer và hệ đa CSDL
Các lựa chọn cài đặt một hệ quản trị CSDLđược tổ chức hệ thống theo các đặc tính: (1) tính tự trị, (2) tính phân tán, (3) tính hỗn hợp (không thuần nhất) của hệ thống (Hình 1.8)
Hình 1.8: Lựa chọn cài đặt hệ quản trị CSDL
Tính tự trị
Xác định chiều của tính tự trị như sau :
Tự trị thiết kế: Mỗi hệ quản trị CSDL riêng lẻ có thể sử dụng mô hình dữ liệu và kỹ thuật quản lý giao dịch theo ý muốn
Tự trị truyền thông: Mỗi hệ quản trị CSDL riêng lẻ tuỳ ý đưa ra quyết định của nó
về loại thông tin mà nó cần cung cấp cho các hệ quản trị CSDL khác hoặc phần mềm điều khiển thực thi toàn cục của nó
Tự trị thực thi: Mỗi hệ quản trị CSDL có thể thực thi các giao dịch được gửi tới nó theo bất kỳ cách nào mà nó muốn
Tính phân tán dữ liệu
Trang 29Tính phân tán dữ liệu đề cập đến dữ liệu trên nhiều vị trí vật lý khác nhau Người sử dụng nhìn dữ liệu bằng khung nhìn dữ liệu Có hai cách phân tán dữ liệu: phân tán kiểu Client/Server và phân tán kiểu ngang hàng Kết hợp với các tùy chọn không phân tán trục kiến trúc cho ba loại kiến trúc khác nhau
Phân tán kiểu Client/Server ngày càng phổ biến Quản trị dữ liệu tại Server và Client cung cấp môi trường ứng dụng và giao diện người sử dụng Nhiệm vụ truyền thông được chia sẻ giữa các Client và Server Hệ quản trị CSDL kiểu Client/Server
là hệ phân tán chức năng Có nhiều cách xây dựng và mỗi cách cung cấp một mức
độ phân tán khác nhau
Trong kiểu ngang hàng không có sự khác biệt giữa chức năng Client và Server Mỗi máy đều có đầy đủ chức năng của hệ quản trị CSDL và có thể trao đổi thông tin với các máy khác để thực hiện các truy vấn và giao dịch Các hệ thống này cũng được gọi là phân tán đầy đủ
Tính hỗn hợp
Do sự khác biệt về phần cứng, các giang thức mạng và cách quản lý dữ liệu có một số dạng hỗn hợp trong các hệ thống phân tán Sự khác biệt lớn nhất liên quan đến các mô hình dữ liệu, ngôn ngữ truy vấn và giao thức quản
lý giao dịch Biểu diễn dữ liệu khác nhau tạo ra sự hỗn hợp Tính hỗn hợp trong ngôn ngữ truy vấn không chỉ thể hiện qua các dạng truy nhập dữ liệu trong các mô hình dữ liệu khác nhau mà còn thể hiện trong cùng một mô hình
dữ liệu.Ngôn ngữ truy vấn khác nhau sử dụng cùng một mô hình dữ liệu thường chọn các phương pháp khác nhau để diễn tả các yêu cầu giống nhau,
ví dụ, DB2 sử dụng SQL, trong khi INGRES sử dụng QUEL
Các thành phần của một hệ quản trị cơ sở dữ liệu phân tán
Một hệ DBMS phân tán gồm 2 phần như trong hình 1.9 Bộ xử lý phía người sử dụng (User Procesor), xử ly tất cả tương tác với người sử dụng và bộ
Trang 30phận thứ 2 của DBMS phân tán là bộ phận xử lý dữ liệu (Data Processor) Bộ
xử lý phía người sử dụng bao gồm:
1) Bộ xử lý giao diện người sử dụng: Có trách nhiệm dịch các lệnh của người sử dụng khi họ gửi đến và định dạng dữ liệu kết quả để gửi nó lại cho người sử dụng
2) Bộ kiểm soát dữ liệu ngữ nghĩa: sử dụng ràng buộc toàn vẹn và xác thực, được định nghĩa như là một phần của lược đồ khái niệm cục
bộ, để kiểm tra xem truy vấn của người sử dụng có được xử lý hay không Thành phần này cũng có trách nhiệm xác thực và một số chức năng khác
3) Bộ phân rã và bộ tối ưu hoá truy vấn toàn cục xác định chiến lược thực thi để giảm thiểu chức năng chi phí, và dịch các truy vấn toàn cục ra thành các truy vấn cục bộ bằng cách sử dụng các lược đồ khái niệm cục bộ, toàn cục và thư mục toàn cục Bộ tối ưu hoá truy vấn có trách nhiệm tạo ra chiến lược thực thi các hoạt động kết nối phân tán
4) Bộ giám sát thực thi phân tán phối hợp thực thi phân tán yêu cầu của người sử dụng .Bộ giám sát thực thi cũng được gọi là bộ quản lý giao dịch phân tán Việc thực thi truy vấn trong hệ phân tán, bộ giám sát thực thi tại một số trạm có thể, và thường, liên lạc với một bộ giám sát thực thi khác
Phần thứ hai của hệ quản trị CSDLPT là bộ xử lý dữ liệu gồm ba thành phần:
1) Bộ tối ưu hoá truy vấn cục bộ hoạt động như là bộ chọn đường dẫn truy nhập Chọn đường truy nhập tốt nhất vào bất kỳ mục dữ liệu nào
2) Bộ quản lý khôi phục cục bộ có trách nhiệm đảm bảo duy trì tính nhất quán trong CSDL cục bộ ngay cả khi có lỗi xảy ra
Trang 313) Bộ hỗ trợ thời gian thực thi truy nhập vào CSDL tùy vào các lệnh trong lịch biểu được tạo ra bởi bộ tối ưu hóa truy vấn Bộ xử lý hỗ trợ thời gian thực thi là giao diện với hệ điều hành và chứa bộ quản lý vùng đệm CSDL (buffer hoặc cache), có trách nhiệm quản lý vùng đệm của bộ nhớ chính và quản lý việc truy nhập dữ liệu
Hình 1.9: Các thành phần của một hệ quản trị CSDLPT
1.2.2 Một số dạng câu vấn tin SQL cơ bản
SQL là một loại ngôn ngữ con dữ liệu quan hệ được xác nhận là rất mạnh Phép toán cơ bản trong SQL là phép ánh xạ, được mô tả về cú pháp như là khối SELECT - FROM - WHERE
Mệnh đề SELECT nghĩa là chọn các thuộc tính ra, hay còn gọi là thuộc tính kết quả, nếu không chỉ ra thuộc tính thì dùng dấu * có nghĩa là tất cả các thuộc tính của quan hệ đang được chỉ ra sau mệnh đề FROM Mạnh đề
Trang 32FROM để chỉ ra quan hệ cần cho việc xử lý Sau mệnh đề WHERE là một biểu thức điều kiện lọc dữ liệu (hay còn gọi là biểu thức logic)
Chú ý: Từ đây về sau chúng ta đồng nhất: quan hệ với bảng, thuộc tính
với cột (column) hay trường (field), bộ (tupe) với bản ghi (record) hay hàng (row)
Khối lệnh Select
Cú pháp như một khối select – from - where
select: Xác định nội dung của các cột cần dưa ra kết quả
from: Xác định các bảng cần lấy thông tin ra
where: Lọc các bản ghi thoả yêu cầu để đưa ra kết quả
Ngoài ra, đễ mở rộng khả năng của ngôn ngữ, khối select - from - where còn được bổ sung thêm các mệnh đề groupe by, having, order by các hàm mẫu và một số phần mềm còn thêm cả mệnh đề contpute, for browse
Trong các phần sau sè trình bày chi tiết tiếng mệnh đề
Dạng tổng quát của khối select được biểu diễn như sau:
SELECT [* | DISTINCT] danh-sách-chiếu
FROM danh_sách_tên_bảng | tên_các_wiev
Trong dó mệnh đề where dược biểu diễn dạng:
WHERE [NOTI BiểuThức PhépSoSánh BiểuThức
WHERE [NOT] tên_cột [ NOT] LlKE xâu_kí_tự
WHERE [NOT] biểu_thức [NOT] BETWEEN biểu_thức AND biểu_thức WHERE [NOT] BiểuThức [NOT] lN ({danhSách | CâuHỏiCon})
Trang 33WHERE [NOT] EXISTS (CâuHỏiCon)
WHERE INOT] BiểuThức PhépSoSánh { ANY I ALL (CâuHỏiCon)} WHERE (NOT] TênCột phépKếtNối TênCột
WHERE [NOT] biểu_thức_logic
WHERE [NOT] biểu_thức { AND | OR } [NOT] biểu_thức
1.2.3.Định nghĩa AQL và cây toán tử
1.2.3.1 Ngôn ngữ truy vấn đại số (AQL)
Gọi r là quan hệ trên tập thuộc tính R={ A1,….,An} Ta luôn giả thiết rằng quan hệ r là tập hữu hạn các bộ Đối với các phép hợp ( ký hiệu ) phép giao (ký hiệu ), phép trừ (ký hiệu -) hai quan hệ tham gia phải khả hợp
Trang 34Phép chiếu trên một quan hệ thực chất là giữ lại một số thuộc tính, còn các thuộc tính khác loại bỏ đi
Giả sử r là quan hệ n ngôi trên tập thuộc tính R = {A1, ,An} và giả sử t là một bộ của r, AR Ký hiệu t[A] là giá trị của bộ t tại thuộc tính A Như vậy nếu X = {B1, ,Bm} thì t[X]=(t[B1],t[B2], ,t[Bm]
Gọi X là một tập con của tập thuộc tính R = {A1, ,An} Phép chiếu trên tập X của quan hệ r được định nghĩa như sau:
X(r) = {t[X] | t r}
Phép chọn (Selection)
Phép chọn dùng để tạo một tập con các bộ trong quan hệ r thoả mãn biểu thức F nào đó Các phép toán trong biểu thức F là <, =, >, <=, >= và cùng với các phép toán Logic là (và), (hoặc), (phủ định) định nghĩa phép chọn như sau: