3.1 GIỚI THIỆU TỔNG QUAN VỀ ORACLE INTERMEDIA [7]
3.1.7 Lƣu trữ đa phƣơng tiện
Đa phƣơng tiện có thể đƣợc lƣu trữ trong các kiểu đối tƣợng
interMedia, hoặc là trực tiếp trong BLOBs hoặc BFILEs. Ta sẽ thu đƣợc lợi ích lớn nhất từ việc lƣu trữ đa phƣơng tiện trong các kiểu đối tƣợng interMedia. Tuy nhiên, nhiều đặc tính của interMedia là sẵn có để đa phƣơng tiện đƣợc lƣu trữ trong BLOB và BFILE sử dụng giao diện quan hệ.
Giao diện quan hệ interMedia cho phép ngƣời phát triển sử dụng các phƣơng thức tĩnh của kiểu đối tƣợng interMedia với đa phƣơng tiện mới và tồn tại mà đƣợc lƣu trữ dƣới dạng BLOB và BFILE để di chuyển dữ liệu đa phƣơng tiện giữa hệ thống file cục bộ và CSDL, để phân tích và trích chọn thuộc tính của dữ liệu đa phƣơng tiện, và để lƣu trữ các thuộc tính theo dạng XML trong những cột quan hệ riêng lẻ. Ngƣời phát triển không bị đòi hỏi thay đổi lƣợc đồ ứng dụng đã có của họ hoặc tới một trong số các kiểu đối tƣợng interMedia để mang lại thuận lợi cho giao diện quan hệ này. Những phƣơng thức tĩnh interMedia cũng có thể đƣợc sử dụng để thực hiện các phép toán xử lý ảnh nhƣ là cắt, co dãn, nén, chuyển đổi khuôn dạng. Tất cả các kiểu đối tƣợng ORDAudio, ORDDoc, ORDImage và ORDVideo đều chứa một thuộc tính về kiểu ORDSource và các phƣơng thức để thao tác với nguồn dữ liệu đa phƣơng tiện.
3.1.7.1 Lƣu trữ dữ liệu đa phƣơng tiện
interMedia có thể lƣu trữ dữ liệu đa phƣơng tiện nhƣ một nguồn bên trong CSDL, dƣới kiểm soát giao dịch nhƣ đối với BLOB. Nó cũng có thể
tham chiếu ngoài tới dữ liệu đa phƣơng tiện số hoá nhƣ một nguồn bên ngoài (một file cụ thể trong hệ điều hành) trong một hệ thống file cục bộ, hay một URL trên một máy chủ HTTP, hay một nguồn do ngƣời dùng định nghĩa trên các máy chủ khác. Mặc dù cơ chế lƣu trữ ngoài này là đặc biệt thuận tiện cho việc tích hợp tập dữ liệu đa phƣơng tiện đã có với CSDL, nhƣng dữ liệu đa phƣơng tiện không chịu sự kiểm soát giao dịch nếu chúng không đƣợc lƣu trữ trong CSDL.
BLOB đƣợc lƣu trữ trong các bảng CSDL theo cách tối ƣu không gian và cung cấp hiệu quả truy cập. Những BLOB lớn không thể đƣợc lƣu trữ cùng lúc (những BLOB có kích thƣớc dƣới 4K có thể đƣợc lƣu trữ cùng lúc) với dữ liệu dòng khác. Phụ thuộc vào kích thƣớc của BLOB, một mục định vị đƣợc lƣu trữ trong hàng còn BLOB thực sự (lên tới 4 GB) đƣợc lƣu trữ trong không gian bảng khác. Mục định vị có thể đƣợc xem nhƣ một con trỏ chỏ tới vị trí thực sự của giá trị BLOB. Khi ta lựa chọn 1 BLOB, tức là ta đang lựa chọn mục định vị thay vì lựa chọn giá trị, mặc dù điều này đƣợc thực hiện một cách trong suốt. Một thuận lợi của thiết kế này là các mục định vị BLOB phức tạp có thể tồn tại trong một hàng đơn.
Vì BFILE không chịu sự kiểm soát giao dịch của CSDL, ngƣời dùng có thể thay đổi nguồn bên ngoài mà không có sự cập nhật trong CSDL, nhƣ thế gây ra một mâu thuẫn với mục định vị BFILE. Các kiểu đối tƣợng ORDAudio, ORDDoc, ORDImage, ORDVideo cung cấp các phƣơng thức bao trùm để thực hiện các việc sau:
- Đặt nguồn dữ liệu theo cách cục bộ hay bên ngoài - Thay đổi thời gian cập nhật lần cuối của một đối tƣợng
- Đặt thông tin về kiểu nguồn bên ngoài, vị trí và tên của dữ liệu - Truyền dữ liệu vào trong hay ra ngoài CSDL
- Thu nhận thông tin về nội dung dữ liệu cục bộ nhƣ là độ dài, vị trí hay các thao tác của nó tới BLOB, đƣa nội dung vào một BLOB tạm thời, hay xoá nó.
- Truy cập nguồn dữ liệu bằng cách mở, đọc, viết, cắt gọn và đóng nó.
3.1.7.2 Truy vấn dữ liệu đa phƣơng tiện
Khi đƣợc lƣu trữ trong CSDL, dữ liệu đa phƣơng tiện có thể đƣợc truy vấn và thu nhận bằng việc sử dụng các cột chữ số hoặc các thuộc tính đối
tƣợng khác nhau của bảng để tìm ra dòng chứa dữ liệu mong muốn. Ví dụ, ta có thể lựa chọn một video clip từ bảng Training mà ở đó tên khoá học là “Oracle Database Concepts”.
Dữ liệu đa phƣơng tiện có thể đƣợc truy vấn bằng cách trích chọn siêu dữ liệu, bằng các cột của bảng quan hệ khác, bằng nội dung, nhƣ là tìm kiếm ảnh theo nội dung với việc đánh chỉ mục đặc trƣng tuỳ ý.
3.1.7.3 Truy cập và thao tác với dữ liệu đa phƣơng tiện
Các ứng dụng truy cập và thao tác dữ liệu đa phƣơng tiện sử dụng SQL, PL/SQL, OCI hay JAVA thông qua các kiểu đối tƣợng quan hệ ORDAudio, ORDDoc, ORDImage, ORDVideo.
Cú pháp để truy cập thuộc tính đối tƣợng trong một đối tƣợng kết hợp là ký hiệu dấu chấm (ngoại trừ Java):
variable.data_attribute
Cú pháp cho phƣơng thức viện dẫn của một đối tƣợng kết hợp cũng là ký hiệu dấu chấm (ngoại trừ Java):
variable.function(parameter1,parameter1,…)
Một tập đầy đủ các phƣơng pháp truy cập (get) và thiết đặt (set) đối với thuộc tính đa phƣơng tiện đƣợc cung cấp để truy cập thuộc tính đối với mỗi loại đa phƣơng tiện.
3.1.7.4 Trích chọn siêu dữ liệu
interMedia cung cấp khả năng để trích chọn nội dung và khuôn dạng siêu dữ liệu từ các nguồn đa phƣơng tiện (các file ảnh, âm thanh, video), tập hợp và tổ chức siêu dữ liệu này nhƣ một XML đƣợc khuôn dạng CLOB. Khi siêu dữ liệu đã đƣợc trích chọn và lƣu trữ, ta có thể chỉ mục siêu dữ liệu hoàn toàn dựa trên text và tìm kiếm đa phƣơng tiện theo chủ đề sử dụng Oracle Text. Do đó, CSDL có thể đƣợc truy vấn để xác định dữ liệu đa phƣơng tiện dựa trên siêu dữ liệu đã đƣợc trích chọn từ đa phƣơng tiện.
Công cụ chú thích Oracle interMedia (Oracle interMedia Annotator) cho phép viết ứng dụng để đọc dữ liệu đa phƣơng tiện, trích chọn siêu dữ liệu, kết hợp những siêu dữ liệu khác nhau, và sau đó đẩy dữ liệu đa phƣơng tiện và tất cả siêu dữ liệu kết hợp vào trong CSDL. Nó cho phép tuỳ chọn các chú thích để mô tả dữ liệu rõ thêm và tải chú thích và dữ liệu đa phƣơng tiện vào trong một CSDL. Sử dụng công cụ chú thích Oracle interMedia nếu cần mở
rộng các khuôn dạng hay siêu dữ liệu đã hỗ trợ, hoặc nếu muốn kết hợp siêu dữ liệu khác.
3.1.7.5 Xử lý ảnh
interMedia hỗ trợ xử lý ảnh, nhƣ là chuyển mã khuôn dạng ảnh, cắt ảnh, co dãn ảnh, tạo ra những hình ảnh nhỏ. Hơn nữa, khi khuôn dạng file ảnh đích là RAW Pixel (RPIX) hoặc Microsoft Windows Bitmap (BMPF),
interMedia hỗ trợ nhiều phép toán để thay đổi các tính chất khuôn dạng .