1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu cơ sở dữ liệu trong bộ nhớ giải quyết bài toán đa giao dịch

78 586 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 78
Dung lượng 1,45 MB

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

Nội dung

Lý do chính mà hệ quản trị CSDL quan hệ hiện tại không thể thực hiện các truy vấn yêu cầu đủ nhanh là dữ liệu phải được lấy ra từ đĩa cứng.Hệ thống hiện đại sử dụng rộng rãi của bộ nhớ đ

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

Trang 2

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

NGUYỄN VĂN TÙNG

NGHIÊN CỨU CƠ SỞ DỮ LIỆU TRONG BỘ NHỚ

GIẢI QUYẾT BÀI TOÁN ĐA GIAO DỊCH

Chuyên ngành: Khoa học máy tính

Mã số: 60.48.01

LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH

NGƯỜI HƯỚNG DẪN KHOA HỌC

TS Hoàng Đỗ Thanh Tùng

Trang 3

LỜI CAM ĐOAN

Tôi xin cam đoan luận văn “Nghiên cứu Cơ sở dữ liệu trong bộ nhớ giải quyết bài toán đa giao dịch” này là công trình nghiên cứu của riêng tôi Luận văn này do tôi tự tìm hiểu, thử nghiệm và thu thập từ nhiều nguồn dưới sự hướng dẫn chỉ bảo cặn kẽ của thầy giáo TS Hoàng Đỗ Thanh Tùng Các số liệu trong luận văn là trung thực với thử nghiệm Luận văn này chưa từng được công bố trước đây

Học viên

Nguyễn Văn Tùng

Trang 4

MỤC LỤC

MỤC LỤC i

LỜI CẢM ƠN iii

BẢNG DANH MỤC CÁC CHỮ VIẾT TẮT iv

DANH MỤC CÁC HÌNH VẼ v

MỞ ĐẦU 1

Chương 1 GIẢI PHÁP THỜI GIAN THỰC CHO GIAO DỊCH CƠ SỞ DỮ LIỆU 2 1.1 Xu hướng giao dịch cơ sở dữ liệu thời gian thực 2

1.2 Khái quát về giao dịch cơ sở dữ liệu 4

1.2.1 Khái niệm 4

1.2.2 Trạng thái của giao dịch 6

1.3 Bài toán đa giao dịch trong ứng dụng trực tuyến 7

1.4 Giải pháp sử dụng cơ sở dữ liệu trong bộ nhớ 8

1.5 Lợi thế khi sử dụng cơ sở dữ liệu trong bộ nhớ 12

1.6 Kết luận chương 1 14

Chương 2 CƠ SỞ DỮ LIỆU TRONG BỘ NHỚ 15

2.1 Kiến trúc hệ thống cơ sở dữ liệu trong bộ nhớ 15

2.1.1 Lợi thế của đánh địa chỉ trực tiếp và thường trú bộ nhớ 15

2.1.2 Các vấn đề với đánh địa chỉ trực tiếp 16

2.1.3 Tổ chức dữ liệu thường trú bộ nhớ 17

2.2 Các cấu trúc chỉ mục 25

2.2.1 Các cấu trúc chỉ mục đã có 25

2.2.2 T Tree 29

2.3 Xử lý truy vấn 36

2.4 Khôi phục 37

2.5 Kiểm soát đồng thời 41

2.5.1 Cấu trúc khóa 42

2.5.2 Các khóa quan hệ 44

2.5.3 Các khóa bản ghi 44

Trang 5

2.5.4 Các khóa vị từ 45

2.5.5 Các khóa thành phần chỉ mục 46

2.6 Kết luận chương 2 46

Chương 3 THỬ NGHIỆM VÀ ĐÁNH GIÁ 48

3.1 Cơ sở dữ liệu trong bộ nhớ của Oracle TimesTen 48

3.1.1 So sánh TimesTen và các CSDL thông thường 48

3.1.2 Kiến trúc của TimesTen 50

3.1.3 Ứng dụng kết nối đến Data Store 52

3.1.4 Data Availability và Integrity 53

3.2 Thử nghiệm và đánh giá 60

3.2.1 Môi trường thử nghiệm 60

3.2.2 Thử nghiệm 62

3.2.3 Đánh giá 65

3.3 Kết luận chương 3 66

KẾT LUẬN VÀ HƯỚNG NGHIÊN CỨU 67

TÀI LIỆU THAM KHẢO 68

Trang 6

LỜI CẢM ƠN

Lời đầu tiên, tôi xin chân thành cảm ơn Ban giám hiệu và các thầy cô giáo Trường Đại học Công nghệ thông tin và Truyền thông - Đại học Thái Nguyên, Viện Công nghệ thông tin - Viện Khoa học và Công nghệ Việt Nam vì những hỗ trợ, hướng dẫn và các bài giảng hết sức ý nghĩa, quan trọng trong suốt quá trình tôi được đào tạo tại Trường

Tôi xin bày tỏ lòng biết ơn sâu sắc đến thầy giáo TS Hoàng Đỗ Thanh Tùng

đã tận tình hướng dẫn và định hướng tôi trong nghiên cứu, đưa ra những chỉ bảo cặn

kẽ trong quá trình thực hiện luận văn này

Lời cảm ơn chân thành của tôi xin được gửi tới Lãnh đạo và đồng nghiệp của tôi tại trường Trung cấp nghề Công nghiệp tàu thủy Phà Rừng đã tạo điều kiện thuận lợi, hỗ trợ tôi giải quyết công việc để tôi có thể theo học chương trình này Đồng cảm ơn các bạn bè trong lớp Cao học CK09C đã cùng thảo luận, cung cấp cho tôi tài liệu, tư liệu rất qúy giá để xây dựng nội dung luận văn và học tập

Tôi xin cảm ơn sự giúp đỡ, động viên, chia sẻ của gia đình, bạn bè đã dành cho tôi trong quá trình học tập và nghiên cứu

Học viên

Nguyễn Văn Tùng

Trang 7

BẢNG DANH MỤC CÁC CHỮ VIẾT TẮT

ACID Atomicity, Consistency,

Isolation, Durability

Tính nguyên tử, tính nhất quán, tính cô lập, tính bền

CSDL Cơ sở dữ liệu

DBMS Database Management System Hệ quản trị cơ sở dữ liệu

IMDB In-Memory Database Cơ sở dữ liệu trong bộ nhớ MMDB Main Memory Database Cơ sở dữ liệu trong bộ nhớ

RDBMS

Relational Database Management System Hệ quản trị cơ sở dữ liệu quan hệ

Trang 8

DANH MỤC CÁC HÌNH VẼ

3 Hình 1.3 Các bước thực hiện giao dịch chuyển khoản từ tài khoản

14 Hình 2.10 Các phép tái cân bằng T Tree đặc biệt 36

15 Hình 2.11 Cấu trúc khối kiểm soát khóa quan hệ 43

16 Hình 2.12 Cấu trúc khối kiểm soát khóa giao dịch 44

17 Hình 3.1: So sánh giữa các công cụ disk-based RDBMS và

Trang 9

TT Tên hình Trang

24 Hình 3.8 Khôi phục dữ liệu từ log và checkpoint files 56

26 Hình 3.10 Master và Subscriber Replication Agents 57

27 Hình 3.11 Ví dụ về các cấu hình replication 58

28 Hình 3.12 Replication trong Hot standby và load balancing 59

31 Hình 3.15 Insert dữ liệu vào MS SQL Server 2008 trên ổ cứng

32 Hình 3.16 Insert dữ liệu vào MS SQL Server 2008 trên ổ cứng

34 Hình 3.18 Dữ liệu trong MS SQL Server 2008 65

35 Hình 3.19 Biểu đồ so sánh thời gian insert 1 triệu bản ghi 66

Trang 10

MỞ ĐẦU

Ngày nay, xu thế công nghệ thông tin toàn cầu cũng như sự phát triển mạng internet, cả thế giới đã được kết nối không khoảng cách Như một tất yếu, các chính phủ và các doanh nghiệp cần có những hệ thống, ứng dụng và Cơ sở dữ liệu (CSDL) trực tuyến (online) phục vụ tức thời (real time) có thể đáp ứng hàng triệu người dùng cuối ở khắp mọi nơi Để đáp ứng xu thế này, điện toán đám mây (cloud computing) đang là mô hình công nghệ thông tin hứa hẹn nhất

Khác với mô hình tính toán lưới (Grid computing) trong đó yêu cầu thực thi có thể được phép “đợi lúc CPU rảnh” thì Mô hình tính toán trong Clouds hoàn toàn khác, nhiều người dùng được sử dụng tài nguyên để giao dịch đồng thời và đảm bảo chất lượng dịch vụ tức thời nhưng lại phải đúng thứ tự Hay nói cách khác, bắt buộc

hệ thống phải xử lý tuần tự và đáp ứng thời gian thực cho hàng triệu giao dịch Vì vậy, vấn đề này đang là nỗi lo lắng nhất cho các hệ thống trực tuyến đang phát triển nhanh chóng, khi mà các giải pháp xử lý song song không còn nhiều tác dụng Ví

dụ như giao dịch ngân hàng trực tuyến, giao dịch chứng khoán, mua hàng trực tuyến, kiểm soát các phương tiện giao thông…

Vì vậy, với hệ thống phải xử lý đa giao dịch với số lượng vô cùng lớn mà vẫn đảm bảo thời gian thực thì có 4 xu hướng cải tiến kỹ thuật cho CSDL là xử lý song song, thay đổi kiến trúc CSDL, thay đổi cơ chế hoạt động, và sử dụng bộ nhớ trong (in-Memory)

Trong luận văn này tôi tập trung nghiên cứu, tìm hiểu CSDL trong bộ nhớ nhằm giải quyết bài toán cho các hệ thống có số lượng giao dịch lớn đáp ứng truy vấn thời gian thực Thử nghiệm với hệ thống Oracle TimesTen để đưa ra đánh giá đối với CSDL trong bộ nhớ

Luận văn được chia làm 3 chương:

Chương 1: Giải pháp thời gian thực cho giao dịch cơ sở dữ liệu

Chương 2: Cơ sở dữ liệu trong bộ nhớ

Chương 3: Thử nghiệm và đánh giá

Trang 11

Chương 1 GIẢI PHÁP THỜI GIAN THỰC CHO GIAO

DỊCH CƠ SỞ DỮ LIỆU 1.1 Xu hướng giao dịch cơ sở dữ liệu thời gian thực

Cơ sở dữ liệu (CSDL) truyền thống đã hình thành từ rất sớm có một vai trò quan trọng trong các ứng dựng trên thực tế Đặc điểm của các giao dịch trong CSDL truyền thống là yêu cầu về tính nhất quán Điều này thể hiện ở trong việc lưu trữ dữ liệu thống nhất, nghĩa là tránh được tình trạng trùng lặp thông tin và có cơ chế điều khiển truy xuất dữ liệu hợp lý, đó là tránh được việc tranh chấp dữ liệu và bảo đảm dữ liệu luôn đúng đắn tại mọi thời điểm Thông thường các thực hiện giao dịch và xử lý truy vấn trong CSDL là cố gắng nhằm đạt được một số lượng lớn giao dịch được thực thi và thời gian đáp ứng nhanh nhất có thể

Ngày nay, với sự phát triển của công nghệ, ngoài việc đảm bảo các tính chất của giao dịch, giao dịch với số lượng lớn thì phải đảm bảo được thời gian đáp ứng của các giao dịch, đó là đảm bảo tính thời gian thực cho hệ thống Các lĩnh vực cần đáp ứng thời gian thực bao gồm cơ sở hạ tầng mạng, viễn thông, thị trường tài chính, chứng khoán, hàng không, thương mại điện tử, doanh nghiệp với các ứng dụng điển hình như hệ thống điều khiển không lưu, giao dịch cổ phiếu chứng khoán, đặt chỗ máy bay, du lịch, hệ thống điều khiển robot, thi trực tuyến, hội họp trực tuyến Dưới đây là một số lĩnh vực có xu hướng giao dịch CSDL thời gian thực

Trong lĩnh vực hoạt động doanh nghiệp, việc ứng dụng một hệ quản trị CSDL (Database Management System - DBMS) là rất quan trọng DBMS là một hệ thống phần mềm tạo điều kiện cho quá trình xác định, xây dựng, thao tác, và chia sẻ CSDL giữa các người dùng khác nhau và các ứng dụng Nó củng cố tất cả các hoạt động trong một ứng dụng doanh nghiệp và hiệu suất của các ứng dụng doanh nghiệp phụ thuộc nhiều vào hiệu suất của các DBMS Khi hệ quản trị CSDL quan

hệ ra đời đã hỗ trợ giao dịch một các hiệu quả và rất tin cậy Nhưng khi khối lượng

dữ liệu lớn hơn, hệ quản trị CSDL quan hệ không còn có thể hiệu quả phục vụ các yêu cầu của các ứng dụng doanh nghiệp Đặc biệt nó không thể xử lý giao dịch trên

Trang 12

toàn bộ CSDL một cách kịp thời Lý do chính mà hệ quản trị CSDL quan hệ hiện tại không thể thực hiện các truy vấn yêu cầu đủ nhanh là dữ liệu phải được lấy ra từ đĩa cứng.Hệ thống hiện đại sử dụng rộng rãi của bộ nhớ đệm để lưu trữ dữ liệu thường xuyên truy cập trong bộ nhớ chính nhưng đối với các truy vấn xử lý lượng lớn dữ liệu, đọc ổ đĩa vẫn được yêu cầu Đơn giản chỉ cần truy cập và đọc dữ liệu từ đĩa cứng có thể mất một số lượng đáng kể thời gian Vì vậy đối với doanh nghiệp đòi hỏi phải có phương án thay thế để giảm các chi phí và thời gian xử lý của hệ thống quản lý dữ liệu trên đĩa là rất cần thiết

Hình 1.1 là một ví dụ về đề xuất của Bill Gates vào năm 1994, Information at the fingertips, khi đó ông hình dung ra một tương lai mà trong đó bất kỳ thông tin nào đều có sẵn ở bất cứ đâu Việc tham gia cuộc họp có thể ở nhiều địa điểm khác nhau, tất cả các trình duyệt, truy vấn, thao tác cùng thông tin đều trong thời gian thực [17]

Hình 1.1 Hội họp trong tương lai

Trong lĩnh vực tài chính, những cán bộ kiểm soát tài chính là những người đặc biệt gặp khó khăn với khối lượng dữ liệu ngày càng gia tăng Do thời gian trả lời dữ liệu chậm, họ bị buộc phải giới hạn khung thời gian phân tích trong vài ngày thay vì vài tháng hay vài quý Điều này dẫn tới một loạt chậm trễ, bao gồm cả việc đóng sổ cuối mỗi kỳ tài chính Vì vậy việc phân tích dữ liệu khối lượng lớn và môi trường

mô hình linh động đồng nghĩa với việc quyết toán tài chính nhanh hơn và hiểu biết

Trang 13

sâu sắc hơn về những dữ liệu tài chính chi tiết ở các khung thời g ian rộng hơn cần một phương án thay thế thích hợp so với hệ thống CSDL thông thường

Trong lĩnh vực đào tạo và thi trực tuyến, việc tham gia của hàng trăm, hàng nghìn thí sinh tham gia trong cả nước đòi hỏi hệ thống phải xử lý lượng giao dịch rất lớn Ngay sau khi thi xong, thí sinh có thể biết ngay điểm và thứ hạng của mình trên hệ thống Điều này đòi hỏi thời gian xử lý phải nhanh, đáp ứng được thời gian thực

Hình 1.2 Hệ thống thi trực tuyến

Qua các xu hướng này, chúng ta có thể nhận thấy rằng giao dịch CSDL thời gian thực đang là một xu hướng tất yếu, cần được tìm hiểu và áp dụng Tiếp theo, chúng ta tìm hiểu giao dịch CSDL hoạt động như thế nào?

1.2 Khái quát về giao dịch cơ sở dữ liệu

1.2.1 Khái niệm

Giao dịch (Transaction) là tập hợp các lệnh tạo thành một đơn vị làm việc logic, hoặc nó được thực hiện một cách đầy đủ hoặc bị hủy bỏ hoàn toàn Thường giao dịch được tạo ra bởi các chương trình người dùng được viết trong ngôn ngữ xử

Trang 14

lý dữ liệu bậc cao hoặc ngôn ngữ lập trình (vd: SQL, C++, Java)

Ví dụ: Chuyển tiền từ tài khoản A sang tài khoản B là một giao dịch:

 Kiểm tra tiền trong tài khoản A (có ≥ X không?)

 A = A – X

 B = B + X

Giao dịch có tính chất ACID ACID là từ viết tắt các chữ cái đầu của bốn từ tiếng Anh atomicity, consistency, isolation, và durability Các tính chất ACID trong trường hợp này sẽ đảm bảo các giao dịch được thực hiện một cách đáng tin cậy:

 Tính nguyên tử (Atomicity) Một giao dịch có nhiều thao tác khác biệt thì hoặc

là toàn bộ các thao tác hoặc là không một thao tác nào được hoàn thành Chẳng hạn việc chuyển tiền có thể thành công hay trục trặc vì nhiều lý do nhưng tính nguyên tử bảo đảm rằng một tài khoản sẽ không bị trừ tiền nếu như tài khoản kia chưa được cộng số tiền tương ứng

 Tính nhất quán (Consistency) Một giao dịch hoặc là sẽ tạo ra một trạng thái mới và hợp lệ cho dữ liệu, hoặc trong trường hợp có lỗi sẽ chuyển toàn bộ dữ liệu về trạng thái trước khi thực thi giao dịch

 Tính cô lập (Isolation) Một giao dịch đang thực thi và chưa được xác nhận phải bảo đảm tách biệt khỏi các giao dịch khác

 Tính bền vững (Durability) Dữ liệu được xác nhận sẽ được hệ thống lưu lại sao cho ngay cả trong trường hợp hỏng hóc hoặc có lỗi hệ thống, dữ liệu vẫn đảm bảo trong trạng thái chuẩn xác

Ví dụ về tính chất ACID: Giao dịch chuyển 50$ từ tài khoản A sang tài khoản B:

Hình 1.3 Các bước thực hiện giao dịch chuyển khoản

từ tài khoản A sang tài khoản B

 Tính nguyên tử: Nếu giao dịch lỗi sau bước 3 và trước bước 6, hệ thống phải đảm bảo việc cập nhật không được phản ánh trong CSDL

Trang 15

 Tính nhất quán: Tổng của A và B thì không thay đổi sau khi thực thi giao dịch (Dù giao dịch thành công hay thất bại)

 Tính bền vững: Kết quả sau khi thực thi giao dịch được ghi lại lâu dài trong CSDL

 Tính cô lập: Nếu giữa bước 3 và bước 6, một giao dịch khác được thực hiện một cách đan xen không mong muốn Vì vậy trạng thái không nhất quán vẫn

có thể xảy ra

1.2.2 Trạng thái của giao dịch

Khi giao dịch được thực hiện: Hoặc là giao dịch hoàn tất thành công, hoặc bị hủy bỏ hoàn toàn

Vì mục đích phục hồi, hệ thống cần lưu lại các trạng thái CSDL khi giao dịch bắt đầu, kết thúc, hoàn tất hay bị bỏ qua Do vậy hệ thống phục hồi cần lưu vết của các hoạt động sau:

 BEGIN_TRANSACTION: Đánh dấu điểm bắt đầu thực thi giao dịch

 READ/WRITE: Đánh dấu hoạt động đọc, ghi các mục trong CSDL

 END_TRANSACTION: Đánh dấu điểm kết thúc của giao dịch

 COMMIT_TRANSACTION: Cho biếtgiao dịch hoàn tất thành công

 ROLLBACK (ABORT): Giao dịch kết thúc không thành công, những thay đổi

do giao dịch tạo ra phải bị hủy bỏ (undone)

Hình 1.4 Trạng thái của giao dịch

END TRANSACTION ABORT

ABORT

Trang 16

1.3 Bài toán đa giao dịch trong ứng dụng trực tuyến

Một trong những vấn đề gây ảnh hưởng nhất đến tốc độ hồi đáp truy vấn trực tuyến thời gian thực là hệ thống CSDL cho các ứng dụng (trực tuyến) thời gian thực (Real-time application) Ứng dụng thời gian thực có thể chia ra làm hai loại, ứng dụng giao dịch thời gian thực và ứng dụng phân tích thời gian thực Có 4 xu hướng cải tiến kỹ thuật cho CSDL là xử lý song song, thay đổi kiến trúc CSDL, thay đổi cơ

chế hoạt động, và sử dụng bộ nhớ (in-Memory)

Trong những năm gần đây, CSDL trong bộ nhớ đang được các tổ chức và công ty nghiên cứu trên thế giới tập trung để giải quyết các bài toán xử lý dữ liệu lớn và phân tán áp dụng cho các ứng dụng trực tuyến trong mô hình điện toán đám mây Khác với mô hình tính toán lưới (Grid computing) trong đó yêu cầu thực thi

có thể được phép “đợi lúc CPU rảnh” thì mô hình tính toán trong đám mây hoàn toàn khác, rất nhiều người dùng được sử dụng tài nguyên để truy vấn đồng thời vì vậy cần đảm bảo chất lượng dịch vụ tức thời nhưng tôn trọng trình tự người truy vấn Hay nói cách khác, bắt buộc hệ thống phải xử lý trình tự và đáp ứng thời gian thực cho có thể đến hàng triệu người truy vấn Vấn đề này đang là nỗi lo lắng nhất cho các hệ thống trực tuyến đang phát triển nhanh chóng, khi mà các giải pháp xử lý song song không còn nhiều tác dụng Các công ty thương mại như Oracle cũng như các công ty mã nguồn mở cũng đã nghiên cứu và triển khai

Thực trạng là hệ thống thi trực tuyến Violypic bị treo khi có 3000 connection cùng một thời điểm, do đó đã phải cải tiến CSDL tạm thời, hay các sàn chứng khoán xử lý hàng triệu giao dịch trong mỗi giây, và đã bắt đầu sử dụng IMDB (In-Memory Database) IMDB chính là giải pháp cho những hệ thống có đa giao dịch

hay rất nhiều giao dịch xảy ra đồng thời và cần xử lý thời gian thực

Ở Việt Nam, các nghiên cứu về CSDL đáp ứng thời gian thực còn rất ít trong khi nền kinh tế thì phát triển rất nhanh để kịp ngang bằng với thế giới Vì vậy, sớm bắt đầu nghiên cứu và áp dụng công nghệ này là cần thiết

Trang 17

1.4 Giải pháp sử dụng cơ sở dữ liệu trong bộ nhớ

Người dùng ngày nay luôn muốn truy cập thông tin nhanh để đưa ra những quyết định chính xác ở bất kỳ thời điểm nào, vì vậy CSDL là nguồn tài nguyên hết sức cần thiết và quan trọng

Một chương trình máy tính chuyên biệt phổ biến dành cho CSDL chính là hệ quản trị CSDL DBMS Đó là nơi cung cấp phương pháp chuẩn hóa về tính toàn vẹn

dữ liệu, thiết lập các mối quan hệ dữ liệu phức tạp, đảm bảo truy nhập thông tin nhanh và hiệu quả Nhưng điểm hạn chế của các hệ thống DBMS là thường kết hợp với thao tác nhập/xuất (I/O) trên ổ đĩa, một tiến trình cơ học có thể làm giảm hiệu năng của máy tính

Tuy nhiên, trong những thập niên trở lại đây, các nhà cung cấp phần mềm đã tập trung phát triển CSDL bên trong bộ nhớ (In-Memory database – IMDB hoặc còn gọi là CSDL bộ nhớ chính MMDB - Main Memory Database) nhiều hơn IMDB được mô tả như là một mô hình DBMS mới giúp tăng tốc độ lưu trữ, truy xuất và phân loại thông tin bằng cách lưu giữ tất cả dữ liệu trong bộ nhớ chính Khi IMDB chưa xuất hiện, DBMS đã dùng bộ nhớ đệm để giữ các bản ghi được cập nhật thường xuyên trong RAM giúp truy xuất nhanh Ngoài ra, một số DBMS truyền thống khác có bảng bộ nhớ để giữ các tập dữ liệu trong bộ nhớ Đôi khi, DBMS được triển khai trên đĩa RAM (RAM disk - bộ nhớ RAM giả lập thành

ổ đĩa cứng, khi mất nguồn điện, toàn bộ dữ liệu trên RAM disk sẽ mất) và gần đây

Ưu điểm của IMDB:

 Nhiều người dùng có thể truy cập dữ liệu đồng thời với thời gian phản hồi xác định và các giao dịch diễn ra nhanh theo thời gian thực

Trang 18

 Tổ chức hợp lý hóa việc quản lý dữ liệu, gỡ bỏ các lớp dư thừa đặc thù trong các hệ quản trị dữ liệu DBMS trên ổ đĩa

 Các giải thuật tìm kiếm trong truy cập vào bộ nhớ được tối ưu hóa

 Trong biên dịch tìm kiếm, IMDB trỏ trực tiếp vào vùng bộ nhớ của các yếu tố

dữ liệu

 Đảm bảo việc truy nhập trực tiếp đến dữ liệu

Điểm mạnh của IMDB loại bỏ cách quản lý bộ nhớ đệm (cache) cũng như thiết bị I/O, giúp tăng hiệu năng hệ thống so với DBMS trên ổ đĩa với bộ nhớ đệm Cache là nơi lưu trữ sẵn các dữ liệu được dự đoán là sẽ phục vụ yêu cầu của các ứng dụng hay hệ thống nhằm tăng tốc độ xử lý (không phải tốn thời gian tìm kiếm)

Bộ nhớ đệm chỉ tăng tốc khi trích xuất/đọc thông tin Trong trường hợp cập nhật hay tạo ra bản ghi mới trong CSDL, thông tin phải được ghi vào cache, sau đó vào đĩa Tuy nhiên, có lúc cache thiếu tính linh hoạt vì trong lúc người dùng thực hiện nhiều thao tác ghi/đọc liên tục có thể kích thước cache không đủ lớn để đáp ứng Lúc đó người dùng không thể tác động vào những bản ghi quan trọng, vì dữ liệu đã được lưu trữ tự động bởi các thuật toán Khi cache đầy, một số dữ liệu sẽ được ghi vào hệ thống tập tin với tốc độ được tính bằng micro giây

Ưu điểm nữa của IMDB là không cần "gánh" thêm vai trò nhập/xuất tập tin Ngay từ đầu, tiêu chí của IMDB là tối ưu hóa để giảm thiểu việc chiếm nhiều bộ nhớ và rút ngắn chu kỳ xử lý trong CPU, vì vậy CSDL bên trong bộ nhớ chỉ dưới 100KB, thay vì từ 100KB cho đến hàng megabyte so với các kiến trúc CSDL khác Việc này là do:

 Loại bỏ những phần "thừa" và không còn phù hợp trong CSDL trên ổ đĩa, chẳng hạn như tất cả tiến trình cache và nhập/xuất tập tin

 Xóa bỏ những tính năng không cần thiết trong các ứng dụng Ví dụ, bộ định tuyến không cần tách riêng giữa máy khách/chủ để quản lý dữ liệu định tuyến

 Trong lúc đó, đối với CSDL trên ổ đĩa thì thao tác đọc/ghi là mối đe dọa lớn nhất về mặt hiệu năng, vì vậy các hệ thống này đã dùng phương pháp ghi đè

để hạn chế ảnh hưởng

Trang 19

Hạn chế của IMDB:

Điểm hạn chế của IMDB chính là nội dung lưu trữ trong bộ nhớ chính không

cố định (volatile memory), nghĩa là cần phải cấp nguồn liên tục để lưu trữ nội dung thông tin đó - mất điện là mất hết Do đó, IMDB đã thêm vào một số cơ chế để tăng tính ổn định và có thể duy trì nội dung nhớ khi không có điện:

 Lưu nhanh tập tin (snapshot file), lưu kịp thời tình trạng lúc đó Cách này sẽ lưu theo định kỳ Nếu hệ thống máy tính hỏng và phải khởi động lại thì cùng lúc đó CSDL cũng phải hoàn tất việc lưu lại thông tin được cập nhật gần nhất

 Thực hiện lưu nhật ký (log) để khi có bất kỳ sự thay đổi nào trong CSDL cũng

có thể tự động phục hồi trong IMDB

 Trong IMDB cũng có thể giữ nội dung nhớ bằng cách duy trì một hay nhiều bản sao của CSDL Giải pháp này được gọi là bản sao CSDL Các CSDL bản chính và bản sao có thể được duy trì bởi nhiều tiến trình hay tiểu trình trong cùng phần cứng và chúng có thể nằm trên 2 hay nhiều bo mạch trong cùng máy chủ với “bus” truyền dữ liệu tốc độ cao hay chạy trên từng máy tính trong mạng LAN và có thể tồn tại ở các cấu hình khác

 Khác với RAM, NVRAM (non-volatile RAM) không bị mất dữ liệu khi tắt nguồn Tính năng này được tận dụng để chạy chung với pin của CMOS, lưu các thông số của hệ thống như: số serial, hãng sản xuất, ngày sản xuất, địa chỉ MAC của card mạng Một kiểu mới hơn của NVRAM gồm có FeRAM (Ferroelectric RAM), MRAM (Magnetoresistive RAM) và PRAM (Phase change RAM) được thiết kế để bộ nhớ không bị mất dữ liệu khi không có điện

Ứng dụng của IMDB:

IMDB được xem là mô hình CSDL nhúng hay hệ thống CSDL máy khách/chủ thời gian thực IMDB chạy trên hệ điều hành cung cấp các phản hồi trong các ứng dụng như định tuyến, chuyển mạch trong viễn thông

Ngoài ra, IMDB có thể kiểm soát CSDL trong thiết bị nghe nhạc MP3 và xử

lý trình dữ liệu trong bộ giải mã (set-top box) Bên cạnh đó, IMDB cũng hướng đến

Trang 20

các ứng dụng không nhúng, ví dụ, các số liệu tính toán hay các ứng dụng khác trong thị trường tài chính Thêm vào đó, IMDB còn có thể sử dụng để truy xuất dữ liệu tức thời hay một số ứng web như thương mại điện tử, mạng xã hội hay để lưu trữ dữ liệu vào các hệ thống CSDL dùng ổ đĩa Đôi khi, các ứng dụng dành cho doanh nghiệp cũng cần lưu trữ dữ liệu lớn bên trong bộ nhớ

Theo báo cáo của McObject, IMDB 64 bit đã triển khai trên máy chủ SGI Altix 4700 160 nhân chạy phiên bản SUSE Linux Enterprise Server 9 từ Novell CSDL đã tăng đến 1,17 terabyte và có thể đạt đến 15,54 triệu bản ghi Đối với câu lệnh SELECT đơn giản, IMDB xử lý được 87,78 triệu giao dịch truy vấn trên một giây thông qua giao diện trình ứng dụng (API) và đạt 28,14 triệu giao dịch/giây qua API SQL ODBC

Sybase đã giới thiệu phiên bản đầu tiên về phần mềm hệ thống CSDL hoạt động toàn bộ trên bộ nhớ, đó là Adaptive Server Enterprise 15.5 Theo Sybase, trong lĩnh vực tài chính, có từ 300.000 đến 400.000 phiên giao dịch diễn ra trong một giây và IMDB thích hợp dùng để phân tích nhanh lượng thông tin lên đến hàng terabyte Công ty cũng hy vọng rằng IMDB sẽ giúp tốc độ giao dịch nói trên sẽ đạt mức một triệu lượt giao dịch trong một giây Ngoài ra, một số nhà cung cấp phần mềm hàng đầu đã giới thiệu những gói sản phẩm dựa trên IMDB, ví dụ Oracle cũng giới thiệu gói Oracle TimesTen In-Memory Database 11G kể từ lúc Oracle mua lại Công ty TimesTen năm 2005; IBM đã tung ra sản phẩm solidDB sử dụng công nghệ IMDB [2]

Khi bộ nhớ chính ngày càng trở nên rẻ hơn và dung lượng lớn hơn, nó trở lên khả thi để lưu trữ CSDL, làm cho MMDB trở lên thực tế Bởi vì dữ liệu có thể truy cập trực tiếp trong bộ nhớ, MMDB có thể cung cấp thời gian đáp ứng và thông lượng giao dịch tốt hơn nhiều so với CSDL thông thường Điều này là đặc biệt quan trọng đối với các ứng dụng thời gian thực mà các giao dịch phải được hoàn thành đúng thời hạn được quy định nên trong luận văn này tôi đi sâu tìm hiểu về CSDL trong bộ nhớ để có thể giải quyết được các hệ thống có giao dịch lớn đòi hỏi đáp ứng thời gian thực

Trang 21

1.5 Lợi thế khi sử dụng cơ sở dữ liệu trong bộ nhớ

 Tiết kiệm chi phí

Chi phí quản lý CSDL hiện chiếm tới hơn 25% ngân sách công nghệ thông tin của một doanh nghiệp Do các IMDB sử dụng hệ thống phần cứng đòi hỏi ít điện năng hơn so với hệ thống quản lý dữ liệu truyền thống vì vậy các doanh nghiệp có thể hạn chế được đáng kể chi phí đầu tư vào phần cứng và chi phí bảo trì

IMDB cũng giúp giảm thiểu gánh nặng lên tổng chi phí dành cho công nghệ thông tin của doanh nghiệp, giúp giảm thiểu đáng kể số lượng nhân viên trước kia chỉ chuyên giải quyết các yêu cầu báo cáo Đặc biệt, với giải pháp IMDB, việc triển khai không bị gián đoạn, cho phép các doanh nghiệp tiếp tục hoạt động một cách dễ dàng và nhanh chóng

 Hoạt động đơn giản và hiệu quả hơn

Sự chuyển đổi sang IMDB cho phép toàn bộ hệ thống công nghệ được gỡ bỏ

ra khỏi cấu trúc công nghệ thông tin của doanh nghiệp, giảm thiểu sự phức tạp và

cơ sở hạ tầng mà hệ thống cũ yêu cầu Việc giảm thiểu sự phức tạp này cho phép các dữ liệu được khôi phục gần như ngay lập tức, giúp các phòng ban làm việc hiệu quả hơn

IMDB cho phép các doanh nghiệp dễ dàng phân chia các phân hệ của trí tuệ doanh nghiệp, giúp các phòng ban sử dụng thuận tiện hơn Các phòng ban có thể hoạt động độc lập mà không làm ảnh hưởng tới khối lượng dữ liệu trung tâm Và có

lẽ quan trọng nhất là các doanh nghiệp không còn phải phụ thuộc vào đội ngũ nhân viên công nghệ thông tin để có được cái nhìn tổng quan vào những dữ liệu kinh doanh

Hiệu quả quản lý thu được cũng cho phép những người dùng doanh nghiệp đang đi công tác có thể tự truy vấn thông qua các thiết bị di độn g Thiết bị này trở nên rất quan trọng bởi ngày càng nhiều doanh nghiệp sử dụng công nghệ di động trong các hoạt động kinh doanh

 Cung cấp đầy đủ thông tin

Trang 22

IMDB giúp các doanh nghiệp dễ dàng có được một cái nhìn toàn diện vào tất

cả các dữ liệu kinh doanh , thay vì bị giới hạn bởi những thông tin ít ỏi được trích xuất và lưu trữ từ kho dữ liệu Công nghệ này cho phép các doanh nghiệp có thể chuyển đổi từ việc phân tích sau mỗi giao dịch phát sinh (phân tích “quá khứ”) sang việc quyết định trên thời gian thực và chuyển mô hình kinh doanh từ đối phó sang

mô hình đi trước đón đầu và lập kế hoạch hiệu quả

Khi kết hợp với các giải pháp phân tích front-end (tiền phương) thân thiện , chẳng hạn như nền tảng trí tuệ doanh nghiệp SAP BusinessObjects 4.0, bất kỳ ai trong doanh nghiệp cũng có thể xây dựng các truy vấn và biểu đồ riêng mà không cần am hiểu quá nhiều về các hệ thống công nghệ thông tin

 Quản lý khách hàng

Các phòng quản lý khách hàng có thể kết hợp các dữ liệu khác nhau một cách nhanh chóng và dễ dàng để phân tích tình hình kinh doanh của khách hàng tại thời điểm hiện tại và quá khứ, ở ngay tại văn phòng hay thông qua các thiết bị di động Nhờ khả năng tương tác và truy vấn các dữ liệu trong bộ nhớ, các doanh nghiệp có thể thử nghiệm nhiều hơn với các dữ liệu để thiết kế các chiến dịch bán hàng và tiếp thị ấn tượng Đội ngũ bán hàng có thể tự truy cập và có được

những thông tin cần thiết, cho phép họ hiểu khách hàng rõ hơn

 Quản lý chuỗi cung ứng

Với hệ thống quản lý truyền thống dựa trên công nghệ ổ cứng , việc xử lý dữ liệu thường được tiến hành vào cuối ngày , có nghĩa rằng các doanh nghiệp thường chậm trễ trong việc xử lý các cảnh báo về nguồn cung ứng quan trọng Nhưng với IMDB các doanh nghiệp có thể nhìn một cách toàn diện vào chuỗi cung cầu chỉ trong một vài giây Họ có được cái nhìn sâu sắc tổng thể về tình hình kinh doanh của doanh nghiệp trong thời gian thực

 Tài chính

Những cán bộ kiểm soát tài chính là những người đặc biệt gặp khó khăn với khối lượng dữ liệu ngày càng gia tăng Do thời gian trả lời dữ liệu chậm , họ bị buộc phải giới hạn khung thời gian phân tích trong vài ngày thay vì vài tháng hay vài

Trang 23

quý Điều này dẫn tới một loạt chậm trễ, bao gồm cả việc đóng sổ cuối mỗi kỳ tài chính Với IMDB, việc phân tích dữ liệu khối lượng lớn và môi trường mô hình linh động đồng nghĩa với việc quyết toán tài chính nhanh hơn và hiểu biết sâu sắc hơn

về những dữ liệu tài chính chi tiết ở các khung thời gian rộng hơn

 Thay đổi cách thức hoạt động của doanh nghiệp

IMDB là phương án thay thế tốt nhất giúp giảm thiểu chi phí của hệ thống quản lý dữ liệu trên đĩa truyền thống Đối với những doanh n ghiệp tiên phong áp dụng công nghệ bộ nhớ trong, những kết quả khả quan như việc cải thiện rõ rệt hiệu quả trong khâu quản lý doanh nghiệp , tiết kiệm chi phí đầu tư cho công nghệ thông tin sẽ mang lại những lợi thế cạnh tranh cao

Với những tính năng hữu ích, công nghệ bộ nhớ trong tạo điều kiện cho các doanh nghiệp Việt Nam giảm thiểu chi phí đầu tư và vận hành hệ thống phần cứng, giúp họ tập trung vào việc phân tích thông tin nhằm đi tắt đón đầu được những xu hướng thị trường cũng như thị hiếu của người tiêu dùng để chuẩn bị tốt hơn cho các hoạt động mở rộng doanh nghiệp [1]

1.6 Kết luận chương 1

Nội dung của chương đã trình bày một số hệ thống thường phải xử lý lượng giao dịch lớn, khái niệm giao dịch và một số tính chất cũng như trạng thái của giao dịch Đồng thời để đáp ứng được việc xử lý của các hệ thống đã nêu, chương này cũng đề ra giải pháp thay thế hệ thống CSDL thông thường bằng CSDL trong bộ nhớ, đưa ra được ưu điểm, nhược điểm, lợi thế của việc sử dụng IMDB đối với các lĩnh vực áp dụng công nghệ thông tin Tiếp theo, Chương 2 sẽ tìm hiểu về CSDL trong bộ nhớ

Trang 24

Chương 2 CƠ SỞ DỮ LIỆU TRONG BỘ NHỚ 2.1 Kiến trúc hệ thống cơ sở dữ liệu trong bộ nhớ

Hệ thống CSDL thường trú bộ nhớ chính không yêu cầu quản lý bộ nhớ đệm,

do đó các quan hệ trong hệ thống CSDL thường trú bộ nhớ chính có thể được neo đậu tại các vị trí cố định ở bộ nhớ trong suốt thời gian tồn tại của chúng Ngoại trừ trong các trường hợp mà các quan hệ trải qua sự phát triển liên tục và sự giảm sút trong một số lượng lớn, các bản ghi dữ liệu sẽ ở lại trong các vị trí xác định bên trong các quan hệ của chúng trong các giai đoạn dài, cho phép chúng được tham chiếu trực tiếp bởi địa chỉ bộ nhớ Cách đánh địa chỉ trực tiếp này ảnh hưởng đến các hoạt động CSDL mà tham chiếu đến các thực thể CSDL riêng lẻ Chi phí của tham chiếu một bản ghi thông qua một con trỏ bản ghi là không cao trong bộ nhớ chính, nó chỉ là chi phí chuyển tiếp bộ nhớ, vì vậy các con trỏ bản ghi có thể được

sử dụng ở bất kỳ bản sao nào của các bản ghi hoặc các giá trị trường bản ghi nào đó được sử dụng Với bản chất kích thước cố định, nhỏ của các con trỏ bản ghi và khả năng tham chiếu các bản ghi ngẫu nhiên ảnh hưởng đến nhiều vùng trong kiến trúc CSDL thường trú bộ nhớ

2.1.1 Lợi thế của đánh địa chỉ trực tiếp và thường trú bộ nhớ

Việc sử dụng các con trỏ bản ghi trong vị trí của các giá trị trường thực tế mang lại một số lợi ích cho các cấu trúc chỉ mục Thứ nhất, một con trỏ bản ghi đơn cho phép một chỉ mục với khả năng truy cập đến cả giá trị thuộc tính của một bản ghi và bản thân bản ghi đó, do đó làm giảm kích thước chỉ mục Thứ hai, điều này giúp loại bỏ sự phức tạp trong việc xử lý các trường dài, các trường có độ dài thay đổi, các kỹ thuật nén, và các nhu cầu tính toán mức độ lưu trữ cho chỉ mục Thứ ba,

di chuyển các con trỏ có xu hướng nhẹ nhàng hơn so với di chuyển (thường là dài hơn) các giá trị thuộc tính khi cập nhật chỉ mục Cuối cùng, vì một con trỏ bản ghi đơn cho phép truy xuất tới bất kỳ trường nào trong bản ghi nên các chỉ mục đa thuộc tính cần các cơ chế đơn giản hơn

Sử dụng các con trỏ bản ghi cũng có lợi cho các quan hệ tạm (Temporary relation) Các quan hệ tạm chứa các kết quả truy vấn không cần giữ các bản sao của

Trang 25

các bản ghi tham gia trong tập trả lời truy vấn; đơn giản chúng có thể chứa các con trỏ tới chúng Các trường bản ghi khi có trong tập câu trả lời truy vấn thì có thể được xác định bởi một mô tả (descriptor) nhờ đó mà có thể trích xuất được dữ liệu

để thể hiện kết quả của truy vấn (ví dụ: tên trường dữ liệu) Vì vậy các quan hệ tạm yêu cầu ít không gian hơn bởi vì chúng lưu trữ các các con trỏ bản ghi thay vì toàn

bộ dữ liệu và dễ tính toán không gian lưu trữ của chúng; tất nhiên, số kết quả các bản ghi trong một tập câu trả lời truy vấn không thể được biết trước, nhưng các yêu cầu không gian cho các bản ghi kết quả riêng lẻ có thể biết, bởi vì chúng có chứa các con trỏ bản ghi có kích thước cố định Hơn nữa các quan hệ tạm chứa các con trỏ bản ghi tạo ra ít tốn kém vì ít dữ liệu cần được sao chép

Cũng giống như các kết quả truy vấn có thể được lưu trữ như các con trỏ bản ghi trong một quan hệ tạm, chúng có thể cũng được lưu trữ như các con trỏ bản ghi trong một quan hệ bình thường Khi một phép toán join phức tạp có thể phải thực hiện thường xuyên sẽ thích hợp hơn nếu thực hiện phép toán join một lần và lưu trữ các kết quả (như các con trỏ bản ghi) vào một trong các quan hệ mà liên quan đến phép toán join đó Con trỏ bản ghi được lưu trữ thể hiện cho một liên kết giữa bản ghi mà chứa con trỏ bản ghi và bản ghi đang được trỏ tới Một khi các liên kết đã được lưu trong một quan hệ, các kết quả join tương ứng có thể được lấy ra bằng cách đơn giản là quét quan hệ chứa các liên kết

Một lợi thế khác của bộ nhớ thường trú là liên quan tới lập lịch Vì các ổ đĩa không được dùng để đọc thông tin CSDL trong quá trình xử lý giao dịch thông thường và các giao dịch không bao giờ bị ngắt bởi I/O ổ đĩa, các giao dịch có thể được kiểm soát một phần đưa ra khi chúng rời CPU Đó là khả năng cho một giao dịch báo CPU rằng không nên được ưu tiên trong một hoạt động cụ thể, chẳng hạn như trong quá trình chỉnh sửa tới một cấu trúc dữ liệu hệ thống trong khi giao dịch

đó đang thực thi trong một phiên cụ thể

2.1.2 Các vấn đề với đánh địa chỉ trực tiếp

Địa chỉ trực tiếp của các bản ghi mang lại nhiều lợi ích nhưng nó cũng tạo nên một số vấn đề Càng có nhiều thực thể CSDL tham chiếu tới một bản ghi trực tiếp

Trang 26

thì chi phí cập nhật càng lớn khi bản ghi đó di chuyển, trong trường hợp đó tất cả các con trỏ trỏ tới bản ghi đó phải được cập nhật vị trí mới của bản ghi May thay là

sự thay đổi vị trí bản ghi là hiếm, chỉ gây ra khi tái tổ chức lại quan hệ vì một số lượng lớn bị xóa hoặc khi trường có độ dài thay đổi của bản ghi tràn không gian sẵn

có của một phân vùng Có thể là trong tình huống mọi bản ghi trong một quan hệ đang được định vị lại do tổ chức lại quan hệ, các chỉ mục của quan hệ nên đơn giản

là xây dựng lại

2.1.3 Tổ chức dữ liệu thường trú bộ nhớ

Trong phần này giới thiệu cấu trúc của các phân đoạn và các phân vùng, chúng là các đơn vị cơ bản của địa chỉ và phân bổ bộ nhớ dùng để quản lý tất cả các đối tượng CSDL; cấu trúc của các quan hệ, các quan hệ tạm, các chỉ mục; các mục CSDL mà mô tả các nội dung của các quan hệ và các chỉ mục

2.1.3.1 Các phân đoạn và các phân vùng

Khả năng đánh địa chỉ trực tiếp của các thực thể CSDL cho thấy rằng các lân cận vật lý gần của các bản ghi là không quan trọng trong hiệu suất lấy dữ liệu (thực vậy, các bản ghi của một quan hệ có thể được rải trên khắp bộ nhớ) Tuy nhiên, các thành phần khác của CSDL yêu cầu các bản ghi (và các thành phần chỉ mục) được

tổ chức với thiết kế cụm và mô-đun Vì lý do quản lý bộ nhớ, các quan hệ và các chỉ mục mỗi cái có một không gian bộ nhớ riêng biệt, cho phép chúng tạo, tổ chức lại hoặc phá hủy mà không ảnh hưởng tới các quan hệ và các chỉ mục khác Các hoạt động checkpoint ghi vào các phần đĩa của các quan hệ hoặc các chỉ mục; có các bản ghi dữ liệu sắp xếp trong một tổ chức phi cụm sẽ làm cho thủ tục checkpoint quá phức tạp

Mọi đối tượng CSDL (quan hệ, chỉ mục, hoặc cấu trúc dữ liệu hệ thống) được lưu trữ trong phân đoạn logic của chúng Các phân đoạn bao gồm các phân vùng có kích thước cố định, đó là cấp phát đơn vị bộ nhớ cho bộ nhớ cơ sở ánh xạ phần cứng Các phân vùng đại diện cho một đơn vị đầy đủ của bộ nhớ; các thực thể CSDL được lưu trữ trong các phân vùng và không vượt qua ranh giới phân vùng Các phân vùng cũng được sử dụng như đơn vị truyền dữ liệu vào ổ cứng trong các

Trang 27

hoạt động của checkpoint Kích thước phân vùng tối ưu được xác định bởi nhiều yếu tố: Hiệu suất lưu trữ, hỗ trợ bảng phân vùng cơ sở và hiệu suất checkpoint Như vậy, chọn lựa và kích thước tối ưu liên quan đến việc xử lý một danh sách cân đối Một kích thước phân vùng lớn có thể dẫn đến phân mảnh quá nhiều bộ nhớ trong hoặc có thể gây ra quá nhiều dữ liệu sạch phải ghi trong một hoạt động checkpoint Mặt khác, một kích thước phân vùng nhỏ có thể gây nên một số lượng lớn của phân vùng cần cho một đối tượng, do đó tạo ra nhiều không gian không cần thiết cho các mục mà giữ thông tin phân vùng và cho bộ nhớ cơ sở ánh xạ phần cứng

Hình 2.1 Cấu trúc phân đoạn

Các phân vùng được đánh địa chỉ offset logic từ điểm bắt đầu phân đoạn của chúng (Hình 2.1) Sau khi tạo ra, một phân đoạn sẽ bao gồm một tập các phân vùng tiếp giáp (Hình 2.1a) Khi các thực thể trong phân đoạn bị xóa và có thể tổ chức lại, một vài phân vùng có thể được loại bỏ, do đó tạo ra “các lỗ hổng” trong phân đoạn Các phân vùng lân cận logic không làm ảnh hưởng đến việc phát hiện ra các địa chỉ

bộ nhớ không hợp lệ, vì chúng được giữ bởi phần cứng ánh xạ bộ nhớ cơ sở sử dụng một bảng phân vùng của phân đoạn Tạo ra một phân vùng mới cho một phân đoạn liên quan tới tạo ra một phần tử mới trong bảng phân vùng của phân đoạn và phân phối bộ nhớ vật lý cho phân vùng mới Danh mục quan hệ duy trì một phần tử

Trang 28

cho mỗi phân vùng trong một quan hệ, vì vậy các địa chỉ phân vùng hợp lệ mới có thể được tạo ra sử dụng danh sách này

2.1.3.2 Các quan hệ

Các phân vùng quan hệ là các đơn vị độc lập của bộ nhớ mà chứa các bản ghi của các quan hệ và các bản ghi không vượt qua ranh giới phân vùng Một phân vùng quan hệ chứa thông tin kiểm soát, một danh sách bản ghi mà phát triển từ dưới lên và String Space Heap được phát triển từ trên xuống (Hình 2.2) Bộ kiểm soát thông tin mô tả trạng thái của phân vùng, bao gồm tính toán số lượng không gian trống của String Space Heap, một con trỏ trỏ vào một danh sách các khe bản ghi tự

do, tính toán các khe bản ghi sử dụng, tính toán số byte String Space Heap sử dụng

và một chốt kiểm soát khối mà hạn chế truy cập tới phân vùng trong quá trình các hoạt động cập nhật

Hình 2.2 Cấu trúc phân vùng quan hệ

Vì các địa chỉ bộ nhớ được sử dụng định danh bản ghi nên các bản ghi thay đổi vị chí càng ít càng tốt Do đó, các bản ghi được tạo độ dài cố định vì vậy mà các bản ghi mới được chèn vào có thể dễ dàng điền đầy các lỗ hổng bị bỏ lại bởi các bản ghi bị xóa trước đó, như vậy tránh được sự cần thiết cho việc tổ chức lại danh sách bản ghi để phục hồi các khối bộ nhớ Các chuỗi có độ dài thay đổi được lưu trữ riêng trong String Space Heap và các địa chỉ offset của chuỗi được lưu trữ trong các bản ghi có độ dài cố định Mặc dù tính sẵn sàng tiếp theo của khe bản ghi dữ liệu tự

do được sử dụng để giữ một bản ghi được chèn mới trong khi đang xử lý bình

Kiểm soát thông tin

String Space Heap

Danh sách bản ghi Không gian trống

Trang 29

thường, nó có thể là cần thiết để phân bổ một khe cụ thể trong quá trình khôi phục;

do đó danh sách các khe bản ghi tự do được quản lý như là một danh sách liên kết kép Các bản ghi chứa thông tin kiểm soát mô tả trạng thái của khe bản ghi (bản ghi hợp lệ hoặc bản ghi bị xóa) và khả năng các giá trị của trường là rỗng Khi đó phải

có chỗ cho một cờ trạng thái và hai con trỏ để duy trì danh sách kép rỗng Các bản ghi có một yêu cầu kích thước tối thiểu bằng với kích thước của cờ cộng với kích thước của hai danh sách con trỏ Độ dài của bản ghi và thông tin địa chỉ offset của trường không cần được lưu trữ với các bản ghi riêng biệt, vì thông tin này là không đổi đối với một quan hệ Do đó nó chỉ được lưu trữ một lần trong phần tử mục của

quan hệ

Vì rằng các lỗ hổng gây ra bởi việc xóa được cho phép có trong không gian bản ghi của các phân vùng quan hệ, di chuyển trực tiếp cần yêu cầu cấu trúc bổ sung để liên kết bản ghi hợp lệ trong một chuỗi Thay vì, di chuyển trực tiếp của một phân vùng quan hệ không được phép, tất cả các truy cập tới quan hệ được thực hiện thông qua một chỉ mục và tất cả các quan hệ được yêu cầu phải có ít nhất một chỉ mục

2.1.3.3 Các quan hệ tạm

Các quan hệ tạm chứa các kết quả truy vấn trung gian và cuối cùng Hầu hết các kết quả truy vấn bao gồm thông tin mà thực sự tồn tại trong CSDL, nhưng một vài truy vấn tính toán các giá trị mới (ví dụ: các truy vấn chứa các phép toán tổng hợp) Khi không có các giá trị tính toán, các quan hệ tạm gồm có một danh sách các con trỏ bản ghi và một bộ mô tả kết quả mà thể hiện tên các trường thuộc quan hệ tạm (Mỗi bản ghi kết quả có thể chứa vài con trỏ bản ghi, mỗi con trỏ bản ghi tương ứng với một bản ghi riêng biệt với các trường tham gia trong bản ghi kết quả cuối cùng) Bộ mô tả đóng vai trò vị trí của phép chiếu (projection), sự trích trọn trường là không cần thiết

Khi một quan hệ tạm thực hiện chứa các giá trị tính toán, cấu trúc của nó hầu như đồng nhất với một quan hệ thông thường trừ trường hợp đối với bộ mô tả bổ sung Chỉ trong các trường hợp hiếm hoi thì các phân vùng quan hệ tạm sẽ chứa các

Trang 30

không gian chuỗi, vì là sẽ yêu cầu một truy vấn mà sử dụng một phép tổng hợp để tạo ra các chuỗi có độ dài thay đổi mới Không như các quan hệ thông thường, một quan hệ tạm có thể được viếng thăm trực tiếp bởi vì không có các lỗ hổng trong danh sách bản ghi, tuy nhiên cũng có khả năng có các chỉ mục trong một quan hệ tạm

Một ví dụ điển hình của quan hệ tạm đó là giả sử có quan hệ Nhan_vien và quan hệ Phong (Hình 2.3) được liên kết trên các trường Ma_Phong của chúng Với truy vấn: Lấy tên nhân viên, tuổi nhân viên và tên phòng cho tất cả các nhân viên có tuổi dưới 65 Mỗi kết bản ghi kết quả trong danh sách tạm sẽ chứa một cặp con trỏ bản ghi, một con trỏ trỏ tới bản ghi Nhan_vien và một con trỏ trỏ tới bản ghi Phong,

và bảng mô tả kết quả liệt kê các trường trong mỗi quan hệ xuất hiện trong bảng kết quả

Hình 2.3 Quan hệ và Thiết kế chỉ mục 2.1.3.4 Các chỉ mục

Không giống như các phân vùng quan hệ, các phân vùng chỉ mục không có các thực thể CSDL mà được tham chiếu từ bên ngoài phân đoạn của chúng Các phân vùng chỉ mục đơn giản là các khối nhớ từ các nút chỉ mục, các bảng chỉ mục

và các thành phần chỉ mục hỗn hợp khác được cấp phát Do vậy, tổ chức lại một

Trang 31

phân đoạn chỉ mục chỉ ảnh hưởng tới chính nó Điều này đặt ra ràng buộc trên thiết

kế cấu trúc chỉ mục vì với mỗi thành phần cấu trúc chỉ mục phải thích hợp trong một phân vùng đơn May mắn điều này không phải là vấn đề cho bất kỳ các cấu trúc chỉ mục bộ nhớ chính nào

Nhớ rằng các chỉ mục chỉ chứa các con trỏ bản ghi, vì các con trỏ bản ghi cung cấp truy cập tới các điểm đầu và các trường của của các bản ghi Hình 2.3 đưa

ra một ví dụ về hai chỉ mục được dựng lên cho quan hệ Nhan_vien (Các chỉ mục này được thể hiện như các bảng được sắp xếp cho đơn giản) Nếu các con trỏ bản ghi sử dụng trong các cấu trúc chỉ mục thực sự trỏ tới điểm bắt đầu của các bản ghi, sau đó mỗi phép toán so sánh trong các lộ trình chỉ mục sẽ yêu cầu một tính toán địa chỉ offset để xác định vị trí trường khóa (key field) Thay vì các con trỏ bản ghi sử dụng trong các chỉ mục trỏ trực tiếp tới trường khóa (hoặc tới trường khóa thứ nhất trong trường hợp một chỉ mục đa thuộc tính), do đó loại bỏ phần tính địa chỉ offset này để xác định trường khóa, trong khi cần phải một tính toán địa chỉ offset phủ định để xác định tiêu đề của mỗi bản ghi nhận được trong quá trình tìm kiếm Tuy nhiên giả định rằng tính trung bình số bản ghi tham chiếu trong phép tìm kiếm sẽ lớn hơn số các bản ghi nhận được Thậm chí trong trường hợp các chỉ mục đa thuộc tính tránh được chi phí tính toán địa chỉ offset của trường thứ nhất là một tiết kiệm đáng kể, như hầu hết các so sánh liên quan chỉ trường thứ nhất - các trường khác được so sánh duy chỉ khi giá trị trường thứ nhất bằng với giá trị tìm kiếm

Các chỉ mục có thể được khóa trên nhiều kiểu và định dạng khác nhau của dữ liệu Ví dụ các con trỏ bản ghi của một chỉ mục có thể tham chiếu trực tiếp các số nguyên, số thực, bit có đọ dài cố định hoặc chuỗi ký tự hoặc các giá trị do người dùng định nghĩa có độ dài cố định Chúng có thể tham chiếu các trường bản ghi mà chứa các địa chỉ offset với chuỗi bit có độ dài thay đổi, chuỗi ký tự có độ dài thay đổi hoặc các giá trị do người dùng định nghĩa có độ dài thay đổi Chúng có thể tham chiếu các trường chứa các con trỏ bản ghi mà trong một lần tham chiếu của các kiểu

dữ liệu đã đề cập trên đây hoặc ngay cả các con trỏ bản ghi dữ liệu khác Nếu một

lộ trình so sánh phải được xác định phương pháp so sánh để sử dụng cho mỗi so

Trang 32

sánh thì nó có thể dễ dàng dành nhiều thời gian quyết định cho phương pháp so sánh riêng hơn là thực hiện so sánh Thay vì sử dụng một lộ trình so sánh mục đính chung, mỗi chỉ mục có lộ trình so sánh liên quan tới nó mà được liên kết động với code chỉ mục chung khi chỉ mục được sử dụng Lộ trình so sánh cho một chỉ mục được biên dịch và được lưu trữ trong phần tử mục của chỉ mục khi chỉ mục được tạo

và code chỉ mục chung chứa một bước nhảy tới một lộ trình so sánh chỉ mục cụ thể thay vì lộ trình so sánh chung Lộ trình so sánh biên dịch này cũng cho phép người dùng cung cấp các kiểu riêng của chúng và các lộ trình so sánh, nhờ đó tạo kiểu cấu trúc của CSDL có khả năng mở rộng, lộ trình so sánh tương tự có thể được sinh ra cho các phép toán join và project

2.1.3.5 Các liên kết

Một liên kết là một con trỏ bản ghi mà được lưu trữ như một giá trị trường trong một bản ghi Bản chất là liên kết một cặp bản ghi - bản ghi mà chứa con trỏ bản ghi và bản ghi được trỏ tới Các liên kết cung cấp một phương thức cho tiền tính toán các phép toán join và lưu trữ các kết quả trong các quan hệ ban đầu Ví dụ, trong Hình 2.4 cho ta thấy làm thế nào các quan hệ Hình 2.3 sẽ được kết nối với một liên kết trực tiếp duy nhất từ quan hệ Nhan_vien tới quan hệ Phong

Hình 2.4 Ví dụ liên kết

Chỉ các con trỏ bản ghi đơn được lưu trữ trong các trường, do đó chỉ các mối quan hệ một-một và nhiều-một được hỗ trợ (Hình 2.4 cho thấy một mối quan hệ nhiều một giữa quan hệ Nhan_vien và quan hệ Phong) Các mối quan hệ nhiều-nhiều là có thể nhưng chúng lưu trữ các con trỏ nhiều bản ghi trong một bản ghi (tức là một chuỗi các con trỏ bản ghi) sẽ là khó, các tình huống phức tạp sẽ phát sinh nếu chuỗi này của các con trỏ bản ghi phát triển và lớn hơn so với một phân vùng đơn

Trang 33

Các liên kết được duy trì bởi hệ thống CSDL và chúng sẽ luôn bao gồm các địa chỉ bản ghi hợp lệ hoặc các giá trị rỗng Khi một bản ghi mà được tham chiếu bởi một liên kết được xác định lại vị trí, liên kết đó sẽ được tìm thấy và được cập nhật để trỏ tới vị trí mới của bản ghi Nếu các bản ghi bị xóa, các liên kết trả lại một giá trị rỗng Có một mối quan hệ giữa các liên kết và các khóa ngoại Các khóa ngoại được định nghĩa bởi Date [8] là các thuộc tính chúng xác định duy nhất các bản ghi của các quan hệ khác Tính toàn vẹn tham chiếu quan hệ chỉ ra rằng khóa ngoại phải trỏ tới một bản ghi hợp lệ hoặc nó phải rỗng Do đó các liên kết dường như là một cơ chế tuyệt vời cho việc duy trì toàn vẹn tham chiếu

Do các liên kết là trực tiếp một chiều bởi vì giới hạn mối liên hệ một/nhiều-một, nó có thể khó để xác định vị trí tất cả các nơi giữ các liên kết cho một bản ghi khi bản ghi di chuyển Có một giải pháp cho vấn đề tồn tại này Đó là khả năng tạo các chỉ mục trên các trường liên kết của các quan hệ, sử dụng các con trỏ bản ghi như là các giá trị khóa thực sự, do đó cung cấp truy cập tới các nơi giữ của các liên kết cho một giá trị liên kết đưa ra (ví dụ, địa chỉ bản ghi) Tất nhiên nó cũng cần thiết để duy trì một danh sách của tất cả các quan hệ tham gia trong mối quan hệ liên kết nhằm tìm kiếm những chỉ mục này Điều này có thể được thực hiện bởi việc ghi lại cặp quan hệ mà tham gia trong mối liên hệ liên kết trong một mục liên kết Một ví dụ là làm thế nào các liên kết cho một bản ghi riêng biệt có thể

một-được tìm thấy, giả sử bản ghi T a của quan hệ R a di chuyển Thứ nhất, các mục liên kết được tìm kiếm (thông qua chỉ mục) để tìm tất cả các quan hệ mà chứa các liên

kết với quan hệ R a Sau đó với mỗi quan hệ như vậy, liên kết chỉ mục tương ứng với

quan hệ R a được tìm kiếm cho địa chỉ của bản ghi T a, trường liên kết thích hợp của

mỗi bản ghi tìm thấy được cập nhật với địa chỉ mới của bản ghi T a

2.1.3.6 Các mục cơ sở dữ liệu

Các mục CSDL cung cấp thông tin về cấu trúc của CSDL bao gồm thông tin quan hệ cụ thể, thuộc tính cụ thể và chỉ mục cụ thể Cùng với các chức năng mục thông thường, các mục của hệ thống CSDL thường trú bộ nhớ cung cấp thông tin cụ thể tới các khía cạnh bộ nhớ thường trú của nó: Các phần tử mục liên kết chứa

Trang 34

thông tin về cặp quan hệ mà tham gia trong mối quan hệ liên kết Các phần tử mục quan hệ chứa thông tin vị trí đĩa phân vùng, và các phần tử mục chỉ mục chứa thông tin code lộ trình so sánh chỉ mục

2.2 Các cấu trúc chỉ mục

Các cấu trúc chỉ mục thiết kế cho bộ nhớ chính là khác so với những thiết kế cho các hệ thống dựa trên ổ đĩa Mục tiêu chính cho một cấu trúc chỉ mục hướng ổ đĩa là tối thiểu hóa số truy cập ổ đĩa và tối thiểu hóa không gian ổ đĩa Một cấu trúc chỉ mục hướng bộ nhớ chính được chứa trong bộ nhớ chính, do đó không có các truy cập ổ đĩa để tối thiểu hóa Vì thế mục tiêu chính của một cấu trúc chỉ mục bộ nhớ chính là giảm tổng thể thời gian tính toán trong khi sử dụng bộ nhớ ít nhất có thể

Có nhiều cấu trúc dữ liệu có sẵn để xem xét như các cấu trúc chỉ mục bộ nhớ chính Có hai loại chính: Những cấu trúc mà bảo toàn sắp xếp dữ liệu và những cấu trúc mà ngẫu nhiên dữ liệu Những cấu trúc chỉ mục được giới thiệu ở đây là: Array, AVL Tree, B Tree, Chained Bucket Hashing, Linear Hashing và Extendible Hashing Trong phần này mô tả ngắn gọn lần lượt từng cấu trúc một và giới thiệu chi tiết cấu trúc T Tree T Tree là một cấu trúc bảo toàn thứ tự cây được thiết kế đặc biệt cho việc sử dụng trong bộ nhớ chính

2.2.1 Các cấu trúc chỉ mục đã có

Array được sử dụng như các cấu trúc chỉ mục trong dự án OBE của IBM [4] Chúng sử dụng không gian tối thiểu, miễn là kích thước được biết trước hoặc sự phát triển đó không phải là vấn đề Hạn chế lớn nhất của mảng là sự dịch chuyển dữ liệu là O(N) cho mỗi cập nhập, vì vậy nó dường như không thực tế tí nào ngoại trừ

là một môi trường chỉ đọc

AVL Tree [6] được sử dụng như là các chỉ mục trong AT&T Bell Laboratories Silicon Database Machine AVL Tree được thiết kế như một cấu trúc dữ liệu bộ nhớ chính (Hình 2.5) Nó sử dụng một tìm kiếm cây nhị phân, nó rất nhanh bởi vì tìm kiếm nhị phân là bản chất của cấu trúc cây - các phép toán số học là không cần thiết Các cập nhật luôn ảnh hưởng tới một nút lá và có thể dẫn đến cây không cân

Trang 35

bằng, vì vậy cây được giữ cân bằng bởi các phép quay AVL Tree có một bất lợi chính đó là việc tận dụng không gian lưu trữ kém Mỗi nút cây chứa duy nhất một phần tử dữ liệu, vì vậy có hai con trỏ và một số thông tin kiểm soát cho mỗi phần tử

dữ liệu

B Tree [9] được thích hợp tốt với ổ đĩa sử dụng bởi vì chúng là các cây rộng, nông và chỉ đòi hỏi truy xuất một số nút để lấy một giá trị (Hình 2.5) Hầu hết các

hệ thống CSDL sử dụng một phiên bản của B Tree, B+Tree giữ tất cả dữ liệu thực

sự trong các lá của cây Tuy nhiên, đối với bộ nhớ chính thì B Tree là thích hợp hơn B+Tree bởi vì không có ưu điểm hiệu suất thực để giữ tất cả dữ liệu trong các lá và làm như vậy đòi hỏi nhiều không gian hơn B Tree tốt cho việc sử dụng bộ nhớ bởi

vì việc tận dụng không gian lưu trữ của chúng là tốt (tỉ lệ con trỏ trỏ tới dữ liệu là nhỏ, vì các nút lá giữ duy nhất các phần tử dữ liệu và chúng bao gồm một tỉ lệ phần trăm lớn của cây); tìm kiếm là khá nhanh (một số ít các nút được tìm với một tìm kiếm nhị phân); và cập nhật là nhanh (sự dịch chuyển dữ liệu liên quan đến chỉ một nút)

Hình 2.5 Các chỉ mục được cấu trúc cây

Con trỏ trái

B Tree

Data control

Con trỏ phải

data 1 data 2 … data n

Control Nút B Tree

Trang 36

Chained Buket Hashing [11] là một cấu trúc tĩnh sử dụng trong cả bộ nhớ và ổ đĩa Nó rất nhanh bởi vì nó là một cấu trúc tĩnh - nó không bao giờ phải tổ chức lại

dữ liệu Nhưng chất lượng tĩnh này cũng mang đến một bất lợi; vì là tĩnh nên nó có thể hành xử rất kém trong một môi trường động do kích thước của bảng băm phải được biết trước hoặc đoán được trước khi bảng được điền Nếu ước lượng kích thước quá ít thì hiệu suất có thể thấp; nếu kích thước quá lớn thì nhiều không gian

bị lãng phí Tốt nhất, có một số không gian lãng phí vì rằng mỗi phần tử dữ liệu có một con trỏ liên quan với nó

Extendible Hashing [19] sử dụng một bảng băm động lớn lên cùng dữ liệu, vì vậy kích thước bảng băm không cần biết trước (Hình 2.6) Một nút băm chứa vài phần tử và phân chia vào hai nút khi hiện tượng tràn xuất hiện Thư mục phát triển với lũy thừa của hai, gấp đôi bất cứ khi nào một nút tràn và đã đạt được chiều sâu tối đa cho một kích thước thư mục riêng biệt Một vấn đề với Extendible Hashing là bất kỳ nút nào đó có thể gây ra thư mục để phân chia, vì vậy thư mục có thể phát triển rất rộng nếu hàm băm không ngẫu nhiên đầy đủ

Linear Hashing [21] cũng sử dụng một bảng băm động nhưng nó khác hoàn toàn với Extendible Hashing (Hình 2.6) Một bảng băm tuyến tính phát triển tuyến tính vì nó phân chia các nút trong thứ tự tuyến tính xác định trước - trái ngược với Extendible Hashing mà phân chia các nút khi bị tràn Quyết định phân chia một nút

và mở rộng thư mục trong một cách được kiểm soát có thể dựa trên tiêu chí khác so với các nút tràn, miễn là vài lợi ích qua sự phân chia không được kiểm soát của Extendible Hashing Thứ nhất, các vùng chứa có thể được sắp đặt tuần tự, cho phép địa chỉ vùng chứa được tính toán từ địa chi cơ sở - thư mục là không cần thiết Thứ hai, trường hợp mà kích hoạt một nút phải phân chia có thể dựa trên việc tận dụng không gian lưu trữ, chi phí không gian lưu trữ không đổi đối với một số phần tử cho trước

Trang 37

Hình 2.6 Hàm băm dựa trên các chỉ mục

Modified Linear Hashing được định hướng hơn theo hướng bộ nhớ chính so với các phiên bản thông thường được đề cập ở trên (Hình 2.6) Việc sử dụng các nút

kề nhau thay vì một thư mục, Linear Hashing thường có thể lãng phí không gian với các nút rỗng khi một nút tương ứng với một mục băm không có các phần tử dữ liệu Cũng vậy, trừ khi một giản đồ thông minh có thể được thực hiện với cơ chế ánh xạ

Trang 38

bộ nhớ ảo, các nút tiếp giáp phải đƣợc sao chép vào trong một khối nhớ lớn hơn khi bảng băm phát triển Modified Linear Hashing sử dụng một thƣ mục giống nhƣ Extendible Hashing, ngoại trừ nó phát triển tuyến tính, và nó sử dụng chuỗi các nút đơn mục mà đƣợc cấp phát từ vùng nhớ chung (Không nhƣ Chained Bucket Hashing, có nhiều phần tử đặc trƣng trên giá trị băm, vì vậy các nút nhiều phần tử

có thể đƣợc sử dụng ở đây để tăng việc sử dụng bộ nhớ) Tiêu chí phân chia đƣợc dựa trên hiệu suất, ví dụ: độ dài trung bình của chuỗi băm thay vì việc sử dụng bộ nhớ Theo dõi độ dài chuỗi băm trung bình cung cấp thêm kiểm soát trực tiếp quá tìm kiếm trung bình và cập nhật thời gian so với theo dõi việc sử dụng bộ nhớ

Trang 39

Hình 2.7 T Tree

Có ba kiểu T Node khác nhau Một T Node mà có hai cây con được gọi là một nút nội bộ Một T Node mà có một con trỏ con rỗng và một con trỏ con không rỗng được gọi là nút nửa lá Mộ T Node mà có hai con trỏ con rỗng được gọi là một nút

lá Đối với mỗi nút nội bộ A có một lá tướng ứng (hoặc nửa lá) mà chứa giá trị dữ liệu đó là phần tử trước với giá trị nhỏ nhất trong A và cũng có một lá (hoặc nửa lá)

mà chứa phần tử tiếp sau với giá trị lớn nhất trong A Giá trị phần tử trước được gọi

là cận dưới lớn nhất của nút nội bộ A và phần tử tiếp sau được gọi là cận trên nhỏ nhất của A, như trong Hình 2.8 Đối với một nút N và một giá trị X, nếu X nằm giữa phần tử nhỏ nhất của N và phần tử lớn nhất của N, khi đó gọi là N bao giá trị

X Từ khi dữ liệu trong một T Node được giữ trong thứ tự được sắp xếp, phần tử ngoài cùng bên trái của nó là phần tử nhỏ nhất trong nút và phần tử ngoài cùng bên phải là lớn nhất

data1 data2 data3 … datan

control

Con trỏ con trái Con trỏ con phải

T Node

Con trỏ cha

Ngày đăng: 08/11/2014, 21:44

HÌNH ẢNH LIÊN QUAN

Hình 2.5. Các chỉ mục đƣợc cấu trúc cây - Nghiên cứu cơ sở dữ liệu trong bộ nhớ giải quyết bài toán đa giao dịch
Hình 2.5. Các chỉ mục đƣợc cấu trúc cây (Trang 35)
Hình 2.7. T Tree - Nghiên cứu cơ sở dữ liệu trong bộ nhớ giải quyết bài toán đa giao dịch
Hình 2.7. T Tree (Trang 39)
Hình 2.8. Giá trị giới hạn của Nút A - Nghiên cứu cơ sở dữ liệu trong bộ nhớ giải quyết bài toán đa giao dịch
Hình 2.8. Giá trị giới hạn của Nút A (Trang 40)
Hình 2.9. Các phép tái cân bằng T Tree - Nghiên cứu cơ sở dữ liệu trong bộ nhớ giải quyết bài toán đa giao dịch
Hình 2.9. Các phép tái cân bằng T Tree (Trang 44)
Hình 2.10. Các phép tái cân bằng T Tree đặc biệt  2.2.2.3. Các thuộc tính khác của T Tree - Nghiên cứu cơ sở dữ liệu trong bộ nhớ giải quyết bài toán đa giao dịch
Hình 2.10. Các phép tái cân bằng T Tree đặc biệt 2.2.2.3. Các thuộc tính khác của T Tree (Trang 45)
Hình 2.12. Cấu trúc khối kiểm soát khóa giao dịch  2.5.2. Các khóa quan hệ - Nghiên cứu cơ sở dữ liệu trong bộ nhớ giải quyết bài toán đa giao dịch
Hình 2.12. Cấu trúc khối kiểm soát khóa giao dịch 2.5.2. Các khóa quan hệ (Trang 53)
Hình 3.1: So sánh giữa các công cụ disk-based RDBMS và TimesTen - Nghiên cứu cơ sở dữ liệu trong bộ nhớ giải quyết bài toán đa giao dịch
Hình 3.1 So sánh giữa các công cụ disk-based RDBMS và TimesTen (Trang 58)
Hình 3.2. Các thành phần trong TimesTen - Nghiên cứu cơ sở dữ liệu trong bộ nhớ giải quyết bài toán đa giao dịch
Hình 3.2. Các thành phần trong TimesTen (Trang 59)
Hình 3.5: TimesTen ODBC và JDBC APIs - Nghiên cứu cơ sở dữ liệu trong bộ nhớ giải quyết bài toán đa giao dịch
Hình 3.5 TimesTen ODBC và JDBC APIs (Trang 61)
Hình 3.8.  Khôi ph ụ c d ữ  li ệ u t ừ  log và checkpoint files - Nghiên cứu cơ sở dữ liệu trong bộ nhớ giải quyết bài toán đa giao dịch
Hình 3.8. Khôi ph ụ c d ữ li ệ u t ừ log và checkpoint files (Trang 65)
Hình 3.10. Master and Subscriber Replication Agents - Nghiên cứu cơ sở dữ liệu trong bộ nhớ giải quyết bài toán đa giao dịch
Hình 3.10. Master and Subscriber Replication Agents (Trang 66)
Hình 3.12. Replication trong Hot standby và load balancing - Nghiên cứu cơ sở dữ liệu trong bộ nhớ giải quyết bài toán đa giao dịch
Hình 3.12. Replication trong Hot standby và load balancing (Trang 68)
Hình 3.16. Insert dữ liệu vào MS SQL Server 2008 trên ổ cứng HDD - Nghiên cứu cơ sở dữ liệu trong bộ nhớ giải quyết bài toán đa giao dịch
Hình 3.16. Insert dữ liệu vào MS SQL Server 2008 trên ổ cứng HDD (Trang 73)
Hình 3.18. Dữ liệu trong MS SQL Server 2008  3.2.3. Đánh giá - Nghiên cứu cơ sở dữ liệu trong bộ nhớ giải quyết bài toán đa giao dịch
Hình 3.18. Dữ liệu trong MS SQL Server 2008 3.2.3. Đánh giá (Trang 74)
Hình 3.19. Biểu đồ so sánh thời gian insert 1 triệu bản ghi - Nghiên cứu cơ sở dữ liệu trong bộ nhớ giải quyết bài toán đa giao dịch
Hình 3.19. Biểu đồ so sánh thời gian insert 1 triệu bản ghi (Trang 75)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

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