tìm hiểu cơ sở dữ liệu đa phương tiện
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM TPHCM KHOA CÔNG NGHỆ THÔNG TIN
LỚP TIN HỌC 4 - -
TÌM HIỂU CƠ SỞ DỮ LIỆU
ĐA PHƯƠNG TIỆN
BÁO CÁO NGHIÊN CỨU MÔN: CƠ SỞ DỮ LIỆU NÂNG CAO
Giáo viên hướng dẫn: ThS Nguyễn Đặng Kim Khánh
Sinh viên thực hiện:
Đinh Văn Quyên – K35.103.061 Nguyễn Ngọc Nhất Linh – K35.103.031
Lê Thị Kim Nga – K35.103.037
– Nhóm 04 –
TP.HCM,12/2012
Trang 2MỤC LỤC
BẢNG GIẢI THÍCH THUẬT NGỮ VÀ KÝ HIỆU VIẾT TẮT 3
MỞ ĐẦU 5
Trang 3BẢNG GIẢI THÍCH THUẬT NGỮ VÀ KÝ HIỆU VIẾT TẮT
2 Hyperlink Siêu liên kết
3 MDBMS Hệ quản trị CSDL đa phương tiện
5 QoS Quality of Service, chất lượng của dịch vụ
6 CNTT Công nghệ thông tin
7 Media Phương tiện truyền thông
8 OracleDB Oracle Database, cơ sở dữ liệu Oracle
9 BLOB Binary Large Object, kiểu dữ liệu đối tượng nhị
phân kích thước lớn
10 MIME Multipurpose Internet Mail Extensions, một
chuẩn Internet về định dạng cho thư điện tử
11 Bit rate Dung lượng mà thiết bị lưu trữ cần để xử lý một
giây âm thanh (hay video)
12 Sampling rate Số lần lấy mẫu trên một giây của âm thanh
13 VCR Video cassette recorder, đầu thu video
14 CLOB Character large object, kiểu dữ liệu đối tượng kí
tự kích thước lớn
15 XML Extention Markup Language, ngôn ngữ đánh dấu
mở rộng
16 BFILEs File-based large object, kiểu dữ liệu dùng để lưu
trữ một định vị (liên kết) tới một tập tin nhị phânbên ngoài (lưu trữ bên ngoài cơ sở dữ liệu)
17 Scale Thay đổi kích thước ảnh mà vẫn giữ nguyên tỉ lệ
18 URL Universal resource locator, địa chỉ một trang
web trên hệ thống World Wide Web
19 HTTP Hyper Text Transfer Protocol, giao thức truyền
tải siêu văn bản
20 Tablespace Một đơn vị lưu trữ bên trong cơ sở dữ liệu
Oracle, tham khảo thêm tại địa chỉ:http://www.adp-
Trang 421 SQL Structured Query Language, ngôn ngữ truy vấn
có cấu trúc
Trang 5MỞ ĐẦU
Trong thời đại ngày nay, công nghệ thông tin (CNTT) đã phát triển vượt bậc đến mức
ăn sâu vào cuộc sống hàng ngày của con người Sự phát triển của CNTT gắn với các xuhướng như máy tính cá nhân được sử dụng ngày càng phổ biến; công nghệ phần cứngphát triển không ngừng mang đến các thiết bị nghe nhìn có độ phân giải cao, có khả nănghiển thị nội dung đa phương tiện tuyệt vời; bên cạnh đó hạ tầng kỹ thuật mạng được cảithiện đáng kể cho phép nội dung đa phương tiện có thể truyền tải qua mạng nhanh nhất,phục vụ các nhu cầu của người dùng từ giải trí đến công việc Tuy nhiên, cho đến khi nhucầu của người dùng và khả năng đáp ứng về dữ liệu đa phương tiện là rất lớn thì phát sinhmột vấn đề là làm sao quản lý và khai thác dữ liệu đa phương tiện một cách tốt nhất? Các
dữ liệu đa phương tiện hoàn toàn có thể lưu trữ trên đĩa và truy cập một cách truyềnthống, nhưng để đáp ứng yêu cầu nêu trên thì ta cần phải tổ chức chúng thành một cơ sở
dữ liệu (CSDL) đa phương tiện và cần tới một hệ quản trị CSDL đa phương tiện dùng đểquản lý và hỗ trợ khai thác chúng Vậy CSDL đa phương tiện là gì? Tại sao lại cần dùngđến CSDL đa phương tiện? Các nền tảng lý thuyết của CSDL đa phương tiện và ứngdụng của nó là gì? Các nội dung trên chúng ta sẽ cùng tìm hiểu trong đề tài này
-CHƯƠNG I TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU
ĐA PHƯƠNG TIỆN
1 Định nghĩa về cơ sở dữ liệu đa phương tiện:
Cơ sở dữ liệu đa phương tiện là một tập hợp các dữ liệu đa phương tiện có liên quan
với nhau Các kiểu dữ liệu thông hường của một CSDL đa phương tiện bao gồm:
− Văn bản: có mặt trong hầu hết các ứng dụng đa phương tiện nhằm giải thích thêm chonhững dạng dữ liệu không phải là văn bản; đây là loại dữ liệu đa dạng (được sử dụngvới nhiều loại ngôn ngữ khác nhau) và được lưu trữ nhỏ gọn nhất;
− Audio: đây gần như là loại dữ liệu phổ biến nhất với nhiều định dạng khác nhau(mp3, wav, wma, cd, ra, qt…) File audio chưa được chuyển hóa thành dữ liệu số cókích thước lớn (1s chiếm 10Kb) và nó có thể nén dễ dàng (hệ số nén của file mp3 -12:1);
− Hình ảnh: bao gồm ảnh đen trắng, ảnh xám, ảnh màu Hình ảnh có nhiều định dạng(bmp, gif, jpeg, pcx, png…) Một trang ảnh có độ phân giải cao chiếm vài Mb, vàcũng như âm thanh, hình ảnh cũng có thể nén, ví dụ định dạng JPEG có hệ số nénthường lớn hơn 10;
Trang 6− Video kĩ thuật số: là một chuỗi các hình ảnh liên tục nhau Loại dữ liệu này thườngđòi hỏi dung lượng lưu trữ lớn tuy hệ số nén của nó là khá cao Vận tốc truyền và thuvideo kĩ thuật số phải nằm trong khoảng 20-30 hình một giây Trong các loại video kĩthuật số, phim hoạt hình là loại nhỏ gọn và dễ lưu trữ hơn các loại khác vì sử dụng cáchình ảnh tổng hợp có sử dụng các mẫu chuẩn;
− Ảnh vec-tơ là loại ảnh mà các hình vẽ được tạo nên bởi công thức chứ không phải cácđiểm ảnh Ảnh vectơ có 2 dạng: 2 chiều và 3 chiều Ưu điểm của ảnh vec-tơ là có thểthay đổi độ lớn của ảnh mà không làm thay đổi chất lượng ảnh;
− Tích hợp văn bản và hình ảnh;
− Tích hợp audio và video;
− Siêu phương tiện là một dạng biểu diễn phi tuyến tính của dữ liệu đa phương tiện(chứa các hyperlink)
Dữ liệu đa phương tiện được chia thành hai lớp là các dữ liệu liên tục và các dữ liệu
không liên tục Các dữ liệu liên tục bao gồm các dữ liệu âm thanh, video thay đổi theo
thời gian Các dữ liệu không liên tục là các dữ liệu không phục thuộc vào thời gian, cácloại dữ liệu đặc trưng cho dạng này là các dữ liệu văn bản (có hoặc không có định dạng),hình ảnh tĩnh và các đối tượng đồ họa
2 Các đặc trưng của cơ sở dữ liệu đa phương tiện:
Do CSDL đa phương tiện là sự tổng hợp của nhiều dữ liệu đa phương tiện khác nhaunên nó có những đặc trưng nổi bậc như sau:
− Thiếu cấu trúc (Lack of structure): CSDL đa phương tiện thường không có cấu trúc,
do đó các tác vụ chuẩn trên CSDL truyền thống như chỉ số hóa, tìm kiếm nội dung,truy xuất dữ liệu có thể không thực hiện được;
− Tính thời gian (Temporality): Một vài kiểu dữ liệu multimedia như là Video, âm
thanh và hoạt hình đều phụ thuộc vào yếu tố thời gian liên quan mật thiết đến việc lưutrữ, thao tác và mô tả chúng;
− Dung lượng lưu trữ lớn (Massive Volume): các dữ liệu video và âm thanh thường
đòi hỏi các thiết bị lưu trữ lớn;
− Các ứng dụng hỗ trợ (Logistics): các dữ liệu phi chuần có thể đòi hỏi các quy trình
xử lý phức tạp như việc sử dụng các thuật toán nén dữ liệu đối với các ứng dụngCSDL đa phương tiện
3 Sự cần thiết đối với cơ sở dữ liệu đa phương tiện:
Trang 7Như đã trình bày ở phần trên, đối với nhu cầu ngày càng lớn về dữ liệu đa phươngtiện thì sự hiện hữu của CSDL đa phương tiện là hết sức cần thiết Điều này xuất phát từmột số nguyên nhân cơ bản như sau:
− Các dữ liệu đa phương tiện có kích thước lớn và sẽ ảnh hưởng đến việc lưu trữ, truyxuất và truyền tải các nội dung đa phương tiện;
− Cấu trúc của dữ liệu đa phương tiện khác xa so với các CSDL chuẩn;
− Các kiểu dữ liệu có tính chất liên tục (như video và audio) không thể xử lý được trongCSDL chuẩn – vốn chỉ dành để xử lý các kiểu dữ liệu không liên tục như văn bản vàsố;
Ngoài ra, khi nói đến CSDL đa phương tiện thì cũng không thể không nhắc đến hệquản trị CSDL đa phương tiện Nhờ có nó mà dữ liệu đa phương tiện được tổ chức vàkhai thác hợp lý, giải quyết được các vấn đề ở trên
4 Tổ chức nội dung trong cơ sở dữ liệu đa phương tiện:
Ở đây chúng ta xem xét tới 3 kiến trúc áp dụng cho việc tổ chức nội dung của một hệthống CSDL đa phương tiện:
Trang 8Hình 1: Mô tả nguyên lý tự trịKiến trúc dựa trên nguyên lý tự trị đòi hỏi việc tạo ra các thuật toán và cấu trúc dữliệu của mỗi kiểu dữ liệu, ngoài ra nó cũng đòi hỏi các kỹ thuật hỗ trợ cho việc liên kếtchéo giữa các cấu trúc dữ liệu khác nhau này Các công việc này đòi hỏi tính phức tạpcao và đòi hỏi một lượng thời gian lớn cho việc phát triển Bên cạnh các nhược điểm trên,việc xây dựng các cấu trúc chuyên biệt hóa đem đến sự tối ưu cho việc truy xuất đến từngloại dữ liệu khác nhau, và CSDL đa phương tiện được tổ chức theo nguyên lý này thườngđạt được hiệu quả cao trong việc xử lý tìm kiếm Đối với các ngân hàng dữ liệu đã đượcxây dựng sẵn, nơi mà các thuật toán và các cấu trúc dữ liệu đã được sử dụng có hiệu quảthì việc áp dụng nguyên lý tự trị là mô hình kiến trúc thích hợp nhất Các kỹ thuật hướngđối tượng chính là công cụ đắc lực nhất hỗ trợ cho việc triển khai theo nguyên lý nàybằng cách xem mỗi loại dữ liệu nguồn là một đối tượng mà các phương thức của nó cóthể truy cập được từ một CSDL đa phương tiện tổng thể.
4.2 Nguyên lý đồng nhất (uniformity):
Một nguyên lý kiến trúc khác mà chúng ta có thể lựa chọn là nguyên lý đồng nhất,nguyên lý này giúp chúng ta tìm được một cấu trúc tóm tắt chung cho tất cả các loại dữliệu Cấu trúc này có thể được dùng trong việc chỉ số hóa tất cả các loại dữ liệu qua đótạo ra một “chỉ số thống nhất” mà chúng ta có thể dùng để truy cập tới các đối tượng khácnhau Hay nói một cách khác là chúng ta có thể trình bày tất cả các đối tượng khác nhau
Trang 9(ảnh, video, âm thanh, văn bản) trong một cấu trúc dữ liệu duy nhất và qua đó phát triểncác thuật toán để truy vấn cấu trúc dữ liệu này.
Hình 2: Mô tả nguyên lý đồng nhấtTrái ngược với nguyên lý tự trị, nguyên lý đồng nhất đòi hỏi chúng ta phải tìm rađược một cấu trúc dữ liệu chung mà có thể dùng để lưu trữ các thông tin về nội dung củahình ảnh, video, văn bản, âm thanh và các loại dữ liệu khác Điều này đòi hỏi chúng taphải phân tích nội dung của mỗi kiểu dữ liệu và tóm tắt được phần chung của chúng, qua
đó xây dựng một bộ chỉ số dựa trên các yếu tố chung đã được xác định này.ưu điểm nổibật của nguyên lý đồng nhất là dễ dàng triển khai và các thuật toán thường được thựchiện rất nhanh Nhược điểm chính của nguyên lý này là các sự chú giải phải được tạo ratheo một cách riêng nào đó, thường là được tạo ra một cách thủ công hoặc là tự động,việc tạo ra các chú giải một cách thủ công thường đỏi hòi nhiều về mặt thời gian cũngnhư chi phí, mặt khác trong quá trình tạo các chú giải này thường xảy ra sự mất mátthông tin nếu ngôn ngữ dùng để chú giải không trình bày hết được các khía cạnh của nộidung Có thể đưa ra đây một số ví dụ như ngôn ngữ chú giải nội dung của hình ảnh có thểlàm mất các thông tin về bề mặt của một điểm ảnh (pixel) hoặc một nhóm điểm ảnh.Tương tự như vậy ngôn ngữ chú giải nội dung của âm thanh có thể làm mất các thông tin
về biên độ, tần số của tín hiệu tại một thời điểm nào đó
Trang 104.3 Nguyên lý lai (hybrid):
Ý tưởng của nguyên lý này là dựa trên sự kết hợp của 2 nguyên lý đã trình bày ở trên.Kết quả của nguyên lý này là một kiểu dữ liệu nào đó sử dụng chỉ số (index) riêng củachúng, trong khi đó các kiểu dữ liệu khác sẽ sử dụng một chỉ số (Index) “thống nhất”.Loại dữ liệu nào sử dụng kiểu chỉ số nào sẽ phụ thuộc vào các đặc tính khác nhau
Hình 3: Mô tả nguyên lý lai ghépNguyên lý lai tạo tập hợp được các ưu điểm của cả hai nguyên lý nêu trên, đồng thờigiảm thiểu được một số các nhược điểm của chúng Giả sử chúng ta muốn tạo ra mộtCSDL đa phương tiện bao gồm các kiểu dữ liệu M1, …….,Mn, chúng ta bắt đầu bằngviệc phân chia tập này thành 2 phần:
− Phần 1: bao gồm các loại dữ liệu kế thừa từ các nguồn dữ liệu có sẵn, tồn tại sẵn cácchỉ số và các thuật toán để thao tác với chỉ số Với việc bố trí này chúng ta đã tậndụng được lợi thế của các chỉ số và mã nguồn sẵn có
− Phần 2: bao gồm các dữ liệu không được kế thừa từ bất kỳ nguồn nào và do đó không
có sẵn các chỉ số của mình (điều này đồng nghĩa với việc là cũng không có bất kỳthuật toán nào để có thể thao tác với tập chỉ số) Trong trường hợp này việc tiếp cậnxây dựng hệ thống theo nguyên lý đồng nhất là cách thức thích hợp nhất ngay cả khi
là cách tiếp cận này có thể nảy sinh ra việc gây mất mát các thông tin vật lý chi tiết
Trang 11Sau khi đã tiến hành xong việc phân chia, chúng ta bắt đầu tiến hành việc xây dựngcác thuật toán cần thiết để kết hợp các nguồn dữ liệu khác nhau lại bằng việc sử dụng cáctập chỉ số riêng của chúng Cách tiếp cận này giúp chúng ta thừa kế được tối đa các tàinguyên có sẵn, đồng thời giảm thiểu được các công việc phải thực hiện thêm bởi vì cáctệp chỉ số riêng có sẵn đối với mỗi loại dữ liệu đã được tận dụng.
CHƯƠNG II NGÔN NGỮ TRUY VẤN DỮ LIỆU
ĐA PHƯƠNG TIỆN
Ngày nay, với sự phát triển vượt bậc của công nghệ thu giữ (capture) dữ liệu nghenhìn và không gia lưu trữ ngày càng gia tăng đã cho phép tạo ra các bộ sưu tập khổng lồcác dữ liệu đa phương tiện Tuy nhiên, khi CSDL ngày càng phình to ra thì những khókhăn trong việc tìm kiếm một bức ảnh hay video mong muốn lại cũng tăng lên Để giảiquyết vấn đề này, người ta có hai phương pháp đã được phát triển:
− Phương pháp thứ nhất: sử dụng các thông tin được nhập thủ công hay được bao gồm
trong thiết kế của bảng, như tiêu đề, các từ khóa mô tả - thường đã được xác định từtrước trong lược đồ phân loại (classification schemes) Phương pháp này được biết
đến với tên gọi là truy xuất dựa trên thuộc tính (attribute-based retrieval);
− Phương pháp thứ hai: sử dụng các đặc trưng được rút trích từ nội dung của đối tượng
đa phương tiện và sự nhận diện đối tượng để phân loại nội dung dữ liệu đa phương
tiện Phương pháp này được biết đến với tên gọi là truy xuất dựa trên nội dung
(content-based retrieval) Phương pháp này đề xuất ý tưởng sử dụng vectơ đặc trưng –một bộ giá trị số có kích thước cố định được rút trích từ nội dung để truy vấn
Do tính chất phức tạp và độ rộng của phương pháp thứ hai nên nghiên cứu này chỉ tập trung tìm hiểu phương pháp thứ nhất Cụ thể, chúng ta sẽ tìm hiểu một ngôn ngữ truy vấn
đơn giản được xây dựng dựa trên SQL dùng để khai thác dữ liệu đa phương tiện Ở phầntrên chúng ta đã tìm hiểu cách tổ chức dữ liệu theo nguyên lý đồng nhất và lai ghép Việc
mở rộng ngôn ngữ truy vấn SQL sử dụng cho việc truy vấn dữ liệu được xây dựng bởikiến trúc mô tả đồng nhất sẽ là tiền đề để chúng ta tiếp tục mở rộng ngôn ngữ truy vấndùng cho việc khai thác các dữ liệu media được xây dựng theo kiến trúc lai ghép Chúng
ta sẽ cùng tìm hiểu xem xét một hệ thống cơ sở dữ liệu đa phương tiện đơn giản (SMDS– Simple multimedia database system)
1 Truy vấn SMDSs (mô tả đồng nhất):
Các hàm cơ bản của SMDSs bao gồm:
− FindType(Obj): hàm này dùng đối tượng Obj như là dữ liệu đầu vào và trả về kiểu
của đối tượng, ví dụ:
Trang 12+ FindType(image1.gif) = gif.
+ FindType(movie1.mpg) = mpg
− FindObjWithFeature(f): hàm này này sử dụng đặc trưng f là giá trị đầu vào và trả về
một tập tất cả các loại đối tượng media mà có chứa đặc trưng f, ví dụ:
+ FindObjWithFeature(john)= {iml.gif,im2.gif,im3.gif,videol.mpg:[1,5]}
+ FindObjWithFeature(mary)= {videol.mpg:[1,5],videol.mpg:[15,50]}
− FindObjWithFeatureandAttr(f,a,v): hàm này sử dụng đặc trưng f, một thuộc tính
tên a kết hợp với đặc trưng này và một giá trị v là đầu vào Giá trị trả về sẽ là tất cả
các đối tượng obj có chứa đặc trưng và giá trị của thuộc tính a trong đối tượng obj là
v Ví dụ:
+ FindObjWithFeatureandAttr(Big Spender,suit,blue): Truy vấn này yêu cầu tìmtất cả các đối tượng media mà có sự xuất hiện của Big Spender trong bộ đồmàu xanh
− FindFeaturesinObj(Obj): câu truy vấn này đòi hỏi phải tìm tất cả các đặc trưng có
mặt trong một đối tượng media đã cho Kết quả trả về là một tập bao gồm tất cả cácđặc trưng Ví dụ:
+ FindFeaturesinObj (iml.gif): câu truy vấn này yêu cầu trả về tất cả các đặctrưng có trong file ảnh im1.gif
+ FindFeaturesinObj(videol.mpg:[1,15]): câu truy vấn này yêu cầu trả về tất cảcác đặc trưng có trong 15 frame đầu tiên của file video video1.mpg
− FindFeaturesandAttrinObj(Obj): truy vấn này cũng có chức năng tương tự như
hàm trước ngoại trừ việc nó trả về một quan hệ có schema như sau: (Feature,
Attribute,Value) trong đó cặp 3 (f,a,v) xuất hiện trong quan hệ đầu ra nếu tính năng f
xảy ra trong câu truy vấn FindFeaturesinObj(Obj) và thuộc tính a của đặc trưng f
được xác định và có giá trị là v Ví dụ:
+ FindFeaturesandAttrinObj(iml.gif) có thể trả về kết quả được mô tả ở bảngsau:
Trang 13Bảng 1: Bảng mô tả kết quả của truy vấn FindFeaturesandAttrinObj(iml.gif)SMDS-SQL của chúng ta sẽ bao gồm tất cả các câu lệnh chuẩn của SQL có bổ sungthêm một số đặc trưng của dữ liệu đa phương tiện vào SQL (bổ sung thêm vào Select,From, Where)
− Mệnh đề SELECT có thể chứa thực thể media Một thực thể media được định nghĩanhư sau:
+ Nếu m là một đối tượng media liên tục, i và j là 2 số nguyên khi đó m: [i,j] làmột thực thể media thể hiện một tập tất cả các frame của đối tượng media mnằm trong (và chỉ trong) khoảng i và j
+ Nếu m không phải là một đối tượng media liên tục thì khi đó m là một thực thểmedia
+ Nếu m là một thực thể media và a là một thuộc tính của m thì khi đó m.a là mộtthực thể media
− Mệnh đề FROM có thể chứa các thực thể theo mẫu sau:
<media> <source> <M>, có nghĩa là chỉ có các đối tượng media kết hợp với tên của
kiểu media và tên của dữ liệu nguồn được xem xét đến khi thực hiện truy vấn và M là
một biến được xếp loại trên các đối tượng media đó
− Mệnh đề WHERE cho phép có các biểu thức có dạng term IN func_call Trong đó:
+ Term có thể là một biến (trong trường hợp này được sắp xếp trên kiểu trả vềcủa func.call) hoặc là một đối tượng có kiểu đầu ra giống như func.call
+ Func.call là một trong 5 hàm đã nêu ra ở trên
Chúng ta xem xét một vài ví dụ:
Trang 14+ Tìm tất cả các đối tượng ảnh hoặc video có chứa cả Jane Shady và DenisDopeman.
Select M FROM smds source1 M WHERE (FindType(M)= Video OR FindType(M)=Image AND
M IN FindObjWithFeatureand(Jane Shady) AND
M IN FindObjWithFeatureand(Denis Dopeman)
+ Tìm tất cả các ảnh và video mà đối tượng Jane Shady mặc áo vét mầu tím
SELECT M FROM smds source1 M WHERE FindType(M)=Video OR FindType(M)=Image AND
M IN FindObjWithFeatureandAttr(Jane Shady,suit,purple)
+ Tìm tất cả các ảnh có Jane Shady cùng với đối tượng xuất hiện trong đoạnVideo cùng với Denis Hopeman Khác với câu hỏi trước, câu hỏi này đòi hỏiphải có các thao tác kết hợp giữa các loại dữ liệu khác nhau Để thực hiện được
câu hỏi này, chúng ta phải sử dụng các biến mở rộng như là Person, biến này
được dùng để tham chiếu đến đối tượng chưa xác định được danh tính trongđoạn băng video
SELECT M,Person FROM smds source1 M,M1 WHERE (FindType(M)=Image) AND (FindType(M1)=Video) AND
M IN FindObjWithFeature(Jane Shady) AND M1 IN FindObjWithFeature(Big Spender) AND Person IN FindFeaturesinObj (M) AND
Person IN FindFeaturesinObj (M1) AND Person ≠ Jane Shady AND Person ≠ Big Spender
5 Truy vấn dữ liệu đa phương tiện mô tả dưới kiến trúc lai tạo:
Như đã trình bày, SMDS-SQL có thể được sử dụng để truy vấn các đối tượng đaphương tiện lưu trữ trong kiến trúc đồng nhất Trong kiến trúc đồng nhất, tất cả các dữliệu nguồn được truy vấn đều là SMDSs, trong khi trong kiến trúc lai tạo các cách thức
mô tả khác (non-SMDS) cũng được sử dụng Cách thức mô tả dữ liệu kiểu lai tạo thường
có hai phần chính:
− Một tập các đối tượng media được mô tả dưới dạng đồng nhất
Trang 15− Một tập các kiểu media khác nhau mà có cấu trúc để truy nhập và truy vấn riêng.
Để mở rộng ngôn ngữ truy vấn SMDS-SQL thành ngôn ngữ có thể truy vấn được các
dữ liệu được mô tả dưới dạng lai tạo (HM-SQL) các yêu cầu sau bắt buộc phải có:
− HM-SQL phải có khả năng thực hiện tất cả các câu hỏi sử dụng ngôn ngữ riêng đốivới nguồn dữ liệu không đồng nhất này
− HM-SQL phải có cơ chế “joins” hoặc các thao tác đại số nhị phân có trách nhiệm
“joins” giữa 2 nguồn dữ liệu SMDS và non-SMDS
Ngôn ngữ HM-SQL cũng tương tự như ngôn ngữ SQL chuẩn ngoại trừ các mệnh đềSelect, From Where được mở rộng như sau:
− Mệnh đề SELECT và FROM được mở rộng giống như với ngôn ngữ SMDS- SQL
− Mệnh đề WHERE cho phép sự có mặt của biểu thức có dạng Term IN MS: func_call
trong đó:
+ Term:có thể là một biến hoặc là một đối tượng có kiểu đầu ra giống hệt với của
func_call đã được định nghĩa trong media gốc và
+ Nếu MS=SMDS hoặc họ func_call thuộc 1 trong 5 hàm đã đinh nghĩa ở trên
hoặc
+ MS không phải là một nguồn SDMS và func_call là một câu hỏi trong
QL(MS)
− Khi đó, có 2 sự khác nhau giữa SMDS-SQL và HM-SQL là:
+ func_call xuất hiện trong mệnh đề where cần được chú thích một cách tường
minh với media gốc kèm theo và
+ Các câu truy vấn được xây dựng từ các ngôn ngữ truy vấn của từng loại dữ liệunon-SMDS có thể được nhúng vào bên trong câu lệnh truy vấn của HM- SQL.Điều này làm cho HM_SQL trở nên hết sức mạnh mẽ và linh hoạt Căn cứ vàođiều này chúng ta có thể thực thi các câu truy vấn đối với các nguồn dữ liệukhác nhau
Xem xét một vài ví dụ:
− Giả sử chúng ta có 2 nguồn dữ liệu video video1 và video2, nguồn video1 được triểnkhai qua hình thức SDMS, nguồn video2 được triển khai qua hình thức non-SDMS(gọi là videodb) Câu hỏi của chúng ta ở đây là “hãy tìm tất cả các video clip có mặtDenis Hopeman từ cả 2 nguồn dữ liệu video1 và video2 Câu hỏi này có thể được diễnđạt bằng ngôn ngữ HM-SQL như sau:
Trang 16SELECT M FROM smds video1, videodb video2 WHERE M IN smds:FindObjWithFeature(Denis Hopeman) OR
ta muốn tìm kiếm trên cả 3 loại dữ liệu này (video1, video2, idb) có mặt của đối tượngDenis Hopeman thì câu hỏi diễn đạt bằng ngôn ngữ HM-SQL có thể như sau:
Select M From sdms Video1, videodb Video2 Where M IN sdms: FindObjWithFeature(Denis Hopeman) OR
M IN videodb: FindVideoWithObj(Denis Dopeman) UNION
(Select M.file From imagedb idb M Where M In imagedb:getpic(Denis Dopeman)
− Giả sử chúng ta muốn tìm tất cả các đối tượng có mặt cùng với Denis Dopeman trongtất cả các nguồn dữ liệu (video1, video2, idb), câu hỏi sẽ như sau: