Tải bản đầy đủ (.pdf) (70 trang)

Một số kỹ thuật truy cập trong cơ sở dữ liệu trên bộ nhớ (LV thạc sĩ)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.17 MB, 70 trang )

i
ĐẠI HỌC THÁI NGUYÊN
N
T
N T N V TRU ỀN T

ỌC C N

N U

NM N

P

N

C

MỘT SỐ KỸ T UẬT TRU CẬP
TRON CƠ SỞ DỮ L U TRÊN BỘ N Ớ
Chuyên ngành: Khoa Học Máy Tính
Mã số: 60 48 01 01

LUẬN VĂN T

C SĨ K OA

ỌC MÁ TÍN

Thái Nguyên - 2015


Số hóa bởi Trung tâm Học liệu – ĐHTN




ii
LỜ CẢM ƠN
Để hoàn thành luận văn này, bên cạnh sự nỗ lực của bản thân, tôi đã nhận
đƣợc rất nhiều sự giúp đỡ, động viên và hƣớng dẫn của các thầy cô giáo, bạn bè,
đồng nghiệp và gia đình trong suốt khoá học cũng nhƣ thời gian nghiên cứu đề tài
luận văn.
Tôi xin bày tỏ lòng biết ơn chân thành tới TS. Lê Quang Minh, ngƣời đã tận
tình hƣớng dẫn và giúp đỡ tôi trong quá trình nghiên cứu và viết đề tài.
Tôi xin chân thành cảm ơn các thầy cô trong Hội đồng đã cho tôi những lời nhận
xét cũng nhƣ những ý kiến đóng góp quý báu, giúp tôi hoàn thiện luận văn này.
Tôi xin cảm ơn tới các thầy cô giáo về những bài giảng thú vị và hữu ích; cảm ơn
bạn bè đồng nghiệp về sự cổ vũ tinh thần lớn lao; cảm ơn gia đình đã có sự trợ giúp
về mọi mặt.
Đây là một đề tài liên quan đến lĩnh vực cơ sở dữ liệu trên bộ nhớ, lĩnh vực còn
khá mới mẻ ở Việt Nam. Vì vậy, luận văn không thể tránh khỏi thiếu sót và hạn chế
nhất định. Tôi rất mong nhận đƣợc ý kiến đóng góp của mọi cá nhân, tổ chức quan
tâm đến đề tài để đề tài đƣợc hoàn thiện hơn nữa.
Xin chân thành cảm ơn!
Thái Nguyên, 2015

Số hóa bởi Trung tâm Học liệu – ĐHTN





iii
MỤC LỤC
LỜI CẢM ƠN ...................................................................................................................i
MỤC LỤC ...................................................................................................................... iii
DANH SÁCH HÌNH, ẢNH ............................................................................................iv
DANH SÁCH BẢNG ...................................................................................................... v
BẢNG DANH MỤC CÁC CHỮ VIẾT TẮT .................................................................. v
MỞ ĐẦU .......................................................................................................................... 1
Chƣơng 1. KHÁI QUÁT VỀ CƠ SỞ DỮ LIỆU THỜI GIAN THỰC VÀ VẤN ĐỀ
TRUY CẬP ...................................................................................................................... 4
1.1. Khái quát về xử lý dữ liệu trong cơ sở dữ liệu thời gian thực .................................... 4
1.2. Vấn đề truy cập và xử lý nhanh trong hệ thống cơ sở dữ liệu .................................. 6
1.3. Giải pháp sử dụng cơ sở dữ liệu trong bộ nhớ .......................................................... 8
1.3.1. Giải pháp ....................................................................................................... 8
1.3.2. Kiến trúc hệ thống cơ sở dữ liệu trong bộ nhớ ........................................... 12
1.3.3. Lợi thế khi sử dụng cơ sở dữ liệu trong bộ nhớ .......................................... 22
Chƣơng 2. MỘT SỐ KỸ THUẬT TRUY CẬP TRONG CSDL TRÊN BỘ NHỚ ....... 26
2.1. Tổ chức cấu trúc chỉ mục trong cơ sở dữ liệu trên bộ nhớ ...................................... 26
2.2. Kỹ thuật truy cập trên T- Tree................................................................................. 30
2.3. Kỹ thuật khôi phục và kiểm soát đồng thời trong cơ sở dữ liệu trên bộ nhớ .......... 38
2.3.1. Kỹ thuật khôi phục ...................................................................................... 38
2.3.2. Kiểm soát đồng thời .................................................................................... 41
Chƣơng 3: THỬ NGHIỆM CƠ SỞ DỮ LIỆU TRÊN BỘ NHỚ .................................. 53
3.1. Phát biểu bài toán .................................................................................................... 53
3.2. Lựa chọn giải pháp .................................................................................................. 53
3.2.1. Kết nối trực tiếp hay client/server? ............................................................. 54
3.2.2 Lựa chọn loại cache group sử dụng ............................................................. 55
3.2.3. Lựa chọn cơ chế aging ............................................................................... 57
3.3. Lựa chọn hệ thống phần mềm để thử nghiệm ......................................................... 58
3.4. Kết quả thử nghiệm ................................................................................................. 62

3.4.1. Kết quả thử nghiệm cho hệ thống CustomerCare ...................................... 62
3.4.2 Kết quả thử nghiệm cho hệ thống BCCS_Rating ....................................... 64
Số hóa bởi Trung tâm Học liệu – ĐHTN




iv
KẾT LUẬN VÀ KIẾN NGHỊ........................................................................................ 67
TÀI LIỆU THAM KHẢO .............................................................................................. 68

DANH SÁCH HÌNH, ẢN
Hình 1. 1. Hội họp trong tƣơng lai............................................................................... 5
Hình 1. 2. Hệ thống thi trực tuyến............................................................................... 6
Hình 1. 3. Cấu trúc phân đoạn ................................................................................... 15
Hình 1. 4. Cấu trúc phân vùng quan hệ ..................................................................... 16
Hình 1. 5. Quan hệ và Thiết kế chỉ mục .................................................................... 19
Hình 1. 6. Ví dụ liên kết ........................................................................................... 21
Hình 2. 1. Các chỉ mục đƣợc cấu trúc cây.................................................................. 27
Hình 2. 2. Hàm băm dựa trên các chỉ mục ................................................................ 29
Hình 2. 3. T- Tree ...................................................................................................... 31
Hình 2. 4. Giá trị giới hạn của Nút A ........................................................................ 32
Hình 2. 5. Các phép tái cân bằng T- Tree.................................................................. 36
Hình 2. 6. Các phép tái cân bằng T Tree đặc biệt ..................................................... 37
Hình 2. 7. Cấu trúc khối kiểm soát khóa quan hệ ..................................................... 44
Hình 2. 8. Cấu trúc khối kiểm soát khóa giao dịch ................................................... 49
Hình 3. 1. Mô hình CC trƣớc và sau khi áp dụng TimesTen .................................... 63
Hình 3. 2. Mô hình Rating trƣớc và sau khi áp dụng TimesTen.............................. 65

Số hóa bởi Trung tâm Học liệu – ĐHTN





v
DAN

SÁC

BẢN

Bảng 1. 1. Bảng thống kê thời gian xử lý một bản ghi cƣớc .................................... 59
Bảng 1. 2. Bảng lựa chọn TimesTen ......................................................................... 60
Bảng 1. 3. Bảng lựa chọn tính năng TimesTen ......................................................... 61
Bảng 1. 4. Bảng so sánh response time giữa TimesTen và Oracle ........................... 63
Bảng 1. 5. Bảng so sánh thời gian xử lý khi dùng Oracle và TimesTen .................. 65

BẢN

DANH MỤC CÁC CHỮ VIẾT TẮT

Thuật ngữ

Chi tiết

Ý nghĩa

ACID

Atomicity, Consistency, Isolation,


Tính nguyên tố, tính nhất quán,
tính tách biệt và tính bền vững.

CSDL

và Durability.
Cơ sở dữ liệu

DBMS

Database
Management
System
Isolation,
Durability

Hệtính
quản
cơtính
sở dữ
liệu
côtrị
lập,
bền

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

Hệ(thống) quản lý cơ sở dữ liệu
quan hệ

Management System

Số hóa bởi Trung tâm Học liệu – ĐHTN




1
MỞ ẦU
1. ặt vấn đề
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, 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

mputing) đ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ó
đƣợ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í
nhƣ giao dịch ngân hàng trực tuyến, giao dịch chứng khoán, hệ thống chăm sóc
khách hàng, hệ thống tính cƣớc, 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ý nhiều 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ớ đả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ớ.
Vì vậy, “Một số kỹ thuật truy cập trong cơ sở dữ liệu trên bộ nhớ” đƣợc em
chọn làm đề tài.

Số hóa bởi Trung tâm Học liệu – ĐHTN




2
2. ối tƣợng và phạm vi nghiên cứu
-


Đối tƣợng nghiên cứu: Một số kỹ thuật truy cập cơ sở dữ liệu trên bộ nhớ.

-

Phạm vi nghiên cứu:
 Khái quát về xử lý dữ liệu trong thời gian thực, vấn đề về truy cập và xử
lý nhanh trong hệ thống cơ sở dữ liệu, giải pháp xử dụng cơ sở dữ liệu
trong bộ nhớ.
 Các tổ chức chỉ mục trong cơ sở dữ liệu trên bộ nhớ và kỹ thuật khôi
phục, kiểm soát đồng thời trong cơ sở dữ liệu trên bộ nhớ.
 Mô hình áp dụng và kết quả thực nghiệm.

3.

ƣớng nghiên cứu của đề tài
-

Tìm hiểu xu hƣớng, tình hình nghiên cứu cơ sở dữ liệu trong bộ nhớ,

-

Nghiên cứu các kỹ thuật đƣợc áp dụng trên Cơ sở dữ liệu trong bộ nhớ

-

Nghiên cứu ƣu nhƣợc điểm của Cơ sở dữ liệu trên bộ nhớ.

-


Tổng quát hóa lớp bài toán áp dụng, kiến trúc có thể áp dụng Cơ sở dữ liệu
trên bộ nhớ; Kết quả thử nghiệm.

-

Đƣa ra những đề xuất, ý tƣởng ứng dụng, cải tiến với CSDL trên bộ nhớ.

4. Bố cục của luận văn
-

Mở đầu.

-

Chƣơng 1. Khái quát về cơ sở dữ liệu thời gian thực và vấn đề truy cập

-

Chƣơng 2. Một số kỹ thuật truy cập trong CSDL trên bộ nhớ

-

Chƣơng 3. Thử nghiệm cơ sở dữ liệu trên bộ nhớ

-

Kết luận.

5. Phƣơng pháp nghiên cứu
-


Nghiên cứu lý thuyết: tìm hiểu lý thuyết về Cơ sở dữ liệu trên bộ nhớ trên
các báo, diễn đàn nổi tiếng, các website chính thức của các công ty có sản
phẩm hoặc giải pháp liên quan Cơ sở dữ liệu trên bộ nhớ.

-

Thử nghiệm: tổng quát hóa loại bài toán có thể áp dụng Cơ sở dữ liệu trên bộ
nhớ, chọn lựa một sản phẩm Cơ sở dữ liệu trên bộ nhớ và hệ thống để áp
dụng, rút ra kết quả.
Số hóa bởi Trung tâm Học liệu – ĐHTN




3

6. Ý nghĩa khoa học của đề tài
-

Ý nghĩa khoa học:
 Khái quát về Cơ sở dữ liệu trên bộ nhớ: khái niệm, mô hình kiến trúc,
ƣu nhƣợc điểm.
 Phân tích các kỹ thuật truy cập trong Cơ sở dữ liệu trên bộ nhớ.

-

Ý nghĩa thực tiễn:
 Tổng quát hóa lớp bài toán có thể áp dụng Cơ sở dữ liệu trên bộ nhớ
để tăng hiệu năng.

 Kết quả thử nghiệm

Số hóa bởi Trung tâm Học liệu – ĐHTN




4
Chƣơng 1. K Á QUÁT VỀ CƠ SỞ DỮ L

UT Ờ

AN T ỰC V VẤN

Ề TRU CẬP
1.1. Khái quát về xử lý dữ liệu trong 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ó thể xử lý
Số hóa bởi Trung tâm Học liệu – ĐHTN




5
giao dịch trên 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.( />
Plattner-on-In-Memory-Computing-OLAP-and-OLTP).

Hình 1. 1.

ộ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 thang 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ố hóa bởi Trung tâm Học liệu – ĐHTN




6
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 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 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.


ệ 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. Vấn đề truy cập và xử lý nhanh trong hệ thống cơ sở dữ liệu
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
Số hóa bởi Trung tâm Học liệu – ĐHTN




7
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,
 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 kết nối
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.

Số hóa bởi Trung tâm Học liệu – ĐHTN




8
1.3.

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

iải pháp

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 là ổ đĩa SSD.
IMDB là hệ quản trị CSDL lƣu trữ toàn bộ dữ liệu trong bộ nhớ chính nên
giúp cho việc ghi/đọc trong hệ thống tập tin nhanh hơn nhiều. Quan điểm trong
thiết kế của IMDB là bộ nhớ ngang bằng với không gian lƣu trữ vì hiệu quả sử
dụng bộ nhớ là tối quan trọng.
Ƣ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.
Số hóa bởi Trung tâm Học liệu – ĐHTN




9
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
Số hóa bởi Trung tâm Học liệu – ĐHTN





10
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
ạ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 ổn đị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
Số hóa bởi Trung tâm Học liệu – ĐHTN




11
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 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 .
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
Số hóa bởi Trung tâm Học liệu – ĐHTN




12
đƣợ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.
1.3.2. 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 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ớ.
1.3.2.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ố hóa bởi Trung tâm Học liệu – ĐHTN




13
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 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ệ
Số hóa bởi Trung tâm Học liệu – ĐHTN




14
thống trong khi giao dịch đó đang thực thi trong một phiên cụ thể.
1.3.2.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 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.
1.3.2.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.
1.3.2.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
Số hóa bởi Trung tâm Học liệu – ĐHTN




15
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 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.

a) Phân đoạn mới đƣợc chèn

b) Phân đoạn sau hoạt động cập nhật

Hình 1. 3. 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 1.3). 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 1.3a). 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ỗ
Số hóa bởi Trung tâm Học liệu – ĐHTN




16
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ử 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.
1.3.2.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 1.4). 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 1. 4. 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
Số hóa bởi Trung tâm Học liệu – ĐHTN




17
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 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.
1.3.2.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ó
Số hóa bởi Trung tâm Học liệu – ĐHTN





18
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 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 1.5) đƣợ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ả.

Số hóa bởi Trung tâm Học liệu – ĐHTN




19

Hình 1. 5. Quan hệ và Thiết kế chỉ mục

1.3.2.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 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
1.5 đƣ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
Số hóa bởi Trung tâm Học liệu – ĐHTN




20
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 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.
Số hóa bởi Trung tâm Học liệu – ĐHTN




×