LỜI MỞ ĐẦUMột nhóm nhỏ các loại dữ liệu như số nguyên, số thực, kí tự, chuỗi kí tự, ngàytháng được hổ trợ bởi các hệ thống quản trị CSDL quan hệ có thể coi là đủ để đápứng cho các thao t
Trang 1LỜI MỞ ĐẦU
Một nhóm nhỏ các loại dữ liệu như số nguyên, số thực, kí tự, chuỗi kí tự, ngàytháng được hổ trợ bởi các hệ thống quản trị CSDL quan hệ có thể coi là đủ để đápứng cho các thao tác thông thường của các trình ứng dụng truyền thống như là cáctrình xử lý dữ liệu hành chính
Hiện nay với sự phát triển của khoa học và kỹ thuật, rất nhiều loại dữ liệu có kếtcấu phức tạp xuất hiện, ví dụ như dữ liệu của các trình CAD/CAM, dữ liệu về cácđối tượng không gian, dữ liệu liên quan đến đối tượng đa phương tiện như audio,video, hình ảnh,… Điều này làm nảy sinh nhu cầu các hệ thống quản trị CSDL cuốicùng cũng phải hổ trợ các loại dữ liệu phức tạp này Đó chính là động cơ ra đời của
hệ thống CSDL đối tượng ngày nay
Ứng dụng CSDL đối tượng em đã thực hiện đề tài về website chia sẻ hình ảnhtrực tuyến, cung cấp một website để các cá nhân , doanh nghiệp có thể chia sẻ,quảng bá hình ảnh thương hiệu của mình, tìm kiếm đối tác cũng như các hoạt độnggiao dịch
Qua đó người dùng có thể gõ một vài từ khóa để tìm kiếm được các thông tin,địa điểm của các dịch vụ, điểm đến tốt nhất trên internet là hoạt động không thểthiếu được, giúp mọi người xích lại gần nhau hơn bằng việc chia sẻ, thế giới trở nênphẳng hơn
Trang 2CHƯƠNG 1 TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU ĐỐI TƯỢNG
1.1 Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS)
Mô hình quan hệ trong cơ sở dữ liệu quan hệ dựa trên kiến trúc của database.Một database bao gồm một tập các table (relation) với các cột và dòng dữ liệu, mỗicột xác định một thuộc tính của quan hệ trong khi mỗi dòng chứa dữ liệu của cácthực thể Và có thể sử dụng SQL(Standard Query Language) để thao tác dữ liệu
Trang 3Ngoài ngôn ngữ thao tác dữ liệu SQL, cơ sở dữ liệu quan hệ không hỗ trợ cácngôn ngữ hướng đối tượng hiện nay như C++, Java và các kiểu dữ liệu trong table
là các kiểu dữ liệu cơ bản và đơn trị
1.2 Hệ quản trị cơ sở dữ liệu hướng đối tượng (OODBMS)
Hệ quản trị này được tạo ra để khắc phục những hạn chế của cơ sở dữ liệu quan
hệ, cho phép lưu trữ các dữ liệu lớn và phức tạp, bởi nó hỗ trợ các kiểu dữ liệu dongười dùng định nghĩa Hỗ trợ các tính năng hướng đối tượng cho phép kết hợpgiữa lập trình hướng đối tượng và cơ sở dữ liệu một cách dễ dàng Vì hướng đối
tượng nên OODBMS(Object-Oriented DataBase Management System)có khả
năng tái sử dụng, độ ổn định và tin cậy cao Các quan hệ được biểu diễn một cáchtường minh, có khả năng điều hướng và kết hợp để truy xuất thông tin, điểu này làmtăng hiệu suất truy cập so với cơ sở dữ liệu quan hệ
Ưu điểm:
Khả năng mô hình hóa phong phú
Có khả năng mở rộng
Không còn thiếu tương ứng giữa ngôn ngữ lập trình và ngôn ngữ CSDL
Ngôn ngữ có tính biểu hiện cao hơn
Hỗ trợ sự tiến triển của sơ đồ
Hỗ trợ các giao dịch kéo dài
Có khả năng áp dụng các trình ứng dụng chuyên sâu về CSDL và cải tiếnhiệu suất
Hệ quản trị cơ sở dữ liệu đối tượng cho phép người dùng tự định nghĩaphương thức truy cập dữ liệu và cách thể hiện nó như thế nào
Trang 4Nhược điểm:
Thiếu mô hình dữ liệu toàn thể
Thiếu cơ sở lý thuyết và thiếu chuẩn
Thiếu hổ trợ về khung nhìn và an toàn bảo mật
Hệ quản trị cơ sở dữ liệu đối tượng khá phức tạp, không truy xuất đượcbằng SQL
1.3 Hệ quản trị cơ sở dữ liệu quan hệ hướng đối tượng (ORDBMS)
Hệ quản trị cơ sở dữ liệu quan hệ đối tượng ra đời có thể nói là cầu nối giữa mô
hình quan hệ và mô hình hướng đối tượng Ưu điểm của ORDBMSlà kết hợp các
tính năng của cả hai mô hình, cho phép quản lý các kiểu dữ liệu phức tạp như hìnhảnh, audio, video,… với các chức năng sẵn có như quản trị giao dịch, phục hồi,tương tranh, xử lý và tối ưu hóa truy vấn, đồng thời tận dụng được các tính nănghướng đối tượng hỗ trợ tốt cho các ứng dụng lập trình hướng đối tượng, , …
Hệ quản trị cơ sở dữ liệu đối tượng cho phép thao tác dữ liệu bằng cả ngôn ngữDDML và SQL mà đã quen thuộc với người dùng cơ sở dữ liệu quan hệ
Với hệ quản trị cơ sở dữ liệu quan hệ đối tượng, các tổ chức có thể tiếp tục duytrì các ứng dụng đã phát triển trên cơ sở dữ liệu quan hệ đã có sẵn đồng thời có thểbắt đầu phát triển các hệ thống hướng đối tượng một cách song song
1.4 Các ứng dụng của hệ quản trị cơ sở dữ liệu quan hệ đối tượng
Trang 5Với các ưu điểm của mình, hệ quản trị cơ sở dữ liệu quan hệ đối tượng được ứngdụng nhiều trong các ứng dụng như:
• CSDL siêu văn bản
• Thiết kế có sự trợ giúp của máy tính
• Công nghệ phần mềm có sự trợ giúp của máy tính
• Hình ảnh và y học
• Xuất bản số
• Hệ thống đa phương tiện
• Hệ thống thông tin địa lý(GIS: Geographical InformationSystem)
• Hệ thống tin học văn phòng (OIS: Office InformationSystem)
• Các Website tươngtácvàđộng
1.5 Các tính năng quan hệ đối tượng trong oracle
• Hỗ trợ các kiểu dữ liệu do người dùng định nghĩa.TYPE
• Hỗ trợ các kiểu dữ liệu tập hợp: VARRAY, NESTED TABLE
• Hỗ trợ tính đa hình và kế thừa
• Hỗ trợ kiểu tham chiếu REF (reference) đến một đối tượng
Trang 6CHƯƠNG 2 XÂY DỰNG WEBSITE CHIA SẺ HÌNH ẢNH TRỰC TUYẾN2.1 Mô tả bài toán
Website chia sẻ hình ảnh trực tuyến cho phép người dùng xem các hình ảnh vàcác thông tin kèm theo của bức hình, vị trí của bức hình (khách sạn, nhà hàng,ATM ) tại một vị trí cụ thể trên bản đồ thành phố Người dùng có thể tìm kiếm cácbức hình này thông qua các tags của bức hình và trong phạm vi nào đó tới một địađiểm trên bản đồ Nếu người dùng có đăng nhập hệ thống thì sẽ được quyền đăng
tải các bức hình để chia sẻ Tùy theo phân quyền người dùng là thành viên cấp cao thì sẽ được đăng tải không giới hạn các bức hình, người dùng là thành viên bình
thường thì chỉ được đăng tải có giới hạn số lượng bức hình hoặc số lượng không
gian đĩa đã chiếm dụng Còn nếu người dùng là khách thì sẽ có đăng tải nhưng quy
định ngày hết hạn đăng tải
Cơ sở dữ liệu hệ thống thể hiện được các thông tin sau:
Thông tin về Photo
Mỗi một bức hình (photo) được định danh bởi photo ID và được đăngtải bởi một người dùng (user) Mỗi bức hình có thông tin về thời gian
và địa điểm chụp hình Mỗi bức hình có vài tags (keywords mô tảhình) và một mô tả(description) cho bức hình đó Một photo đượcchụp bởi một camera Mức độ bảo mật của bức hình có thể là publichoặc private Một photo có thể thuộc một hoặc nhiều Album
Trang 7 Thông tin về User
Mỗi user có một user_id duy nhất Mỗi user có tên, ngày sinh, thôngtin liên lạc Thông tin liên lạc bao gồm email và số điện thoại User cóthể là khách hoặc thành viên (member) Thành viên cấp cao(member_pro) có thêm thông tin về phí thường niên Thành viên bìnhthường có giới hạn về số bức hình được upload và dung lượng tối đađươc upload.User có thể bình luận trên các bức hình mà họ muốnhoặc add favorite Mỗi bình luận(comment) có nội dung miêu tả(description) và thời gian
Thông tin về Camera
Camera có định danh duy nhất camera_id, brand_name vàmodel_number
Thông tin về Album
Một photo có thể thuộc hơn một album Một Album có nhiều photo.Mỗi album có thông tin về ngày tạo và mô tả Mỗi album cũng có tínhbảo mật hoặc là public hoặc private
Thông tin về Session
Mỗi session có thời gian bắt đầu (starttime), thời gian kết thúc(endtime) và khoảng thời gian từ lúc đăng nhập đến khi kết thúc.Thông tin về user được tham chiếu đến user trong hệ thống
Trang 82.2 Thiết kế cơ sở dữ liệu
2.2.1 Thiết kế mức ý niệm
Hình 1: Class diagram
Trang 92.2.2 Thiết kế mức logic (sử dụng Oracle 11g)
Hình 2: Logical diagram
2.2.3 Thiết kế mức vật lý (sử dụng Oracle 11g code)
create type Location_t as object(
Trang 10AlbumOwner ref user_t);
create or replace type NT_albums as table of ref Album_t;
Trang 11create or replace type member_basic_t under member_t(
Ownner ref user_t,
CaptureBy ref Camera_t,
FavoriteBy NT_users,
Belong NT_Albums);
/
create or replace type NT_photos as table of ref Photo_t;
create or replace type PhotoComment_t as object(
Photo ref photo_t,
Usr ref user_t,
Trang 12Ownner ref user_t,
CaptureBy ref Camera_t,
Trang 13create table TAlbum of Album_t( primary key (AlbumId))
nested table has store as table_Album_pho;
/
create table TCamera of Camera_t( primary key (CameraId))
nested table phototaken store as table_photo_takenby;
/
create table TSession of Session_t( primary key (SessionId));
/
create table TPhoto of Photo_t(
primary key (PhotoId))
nested table favoriteby store as table_favUsr_of_pho,
nested table PhotoTags store as table_photoTag,
nested table belong store as table_Album_belongto;
/
create table TUser of user_t(
primary key (usrId))
nested table Sess store as tableSess_of_usr,
nested table PhotosOwn store as tablePhotoOwn,
nested table PhotosFavorite store as tablePhotos_fav;
Trang 142.3 Thiết kế kiến trúc hệ thống
Hình 3: Mô hình kiến trúc hệ thống
Lớp giao diện: tương tác với người sử dụng, thu thập thông tin đồng thời
hiển thị kết quả cho người sử dụng Lớp này sử dụng các dịch vụ do lớpbusiness cung cấp
Lớp Business: bao gồm các thực thể tương tác với nhau, thực hiện các
nhiệm vụ chính của hệ thống, các thao tác mang tính chất luận lý và cácluật yêu cầu cho nghiệp vụ Các thao tác chi tiết của lớp này hoàn toàn vôhình với lớp giao diện, lớp giao diện không cần quan tâm thao tác chi tiếtcủa lớp Business Lớp này sử dụng các dịch vụ do lớp DataAccess cungcấp
Lớp DataAccess: thực hiện nhiệm vụ lưu trữ và truy xuất thông tin từ cơ
sở dữ liệu và cung cấp dịch vụ cho lớp Business
Trang 152.4 Hiện thực ứng dụng
2.4.1 Giao diện upload hình ảnh
Sau khi đã đăng nhập, người dùng có thể bắt đầu upload hình ảnh
Trang 162.4.2 Giao diện chỉnh sửa thông tin hình ảnh upload
Trang 17 Sau khi đã upload ảnh ưa thích, trang web sẽ tự động được chuyển sangtrang chỉnh sửa thông tin cho ảnh đó.
Cho phép người dùng là khách hoặc thành viên thêm mới, xóa, sửa các bứchình của mình
2.4.3 Giao diện duyệt hình ảnh đã upload
Trang 18 Người dùng có thể duyệt những ảnh mà mình đã upload lên
2.4.4 Giao diện tìm kiếm hình ảnh với phạm vi "public"
Trang 19 Các bức ảnh mà người khác đăng với phạm vi "public" (dành cho cộng đồngxem).
2.4.5 Giao diện xem thông tin hình ảnh và đánh dấu “thích ảnh”
Trang 20 Nếu là khách vãng lai không có tài khoản thì có thể tìm kiếm theo tags vàxem thông tin của ảnh
Nếu là người có tài khoản nhưng không phải là người đăng ảnh thì có thểđánh dấu cho biết mình thích bức ảnh đó
KẾT LUẬN
Trang 21Báo cáo trình bày được các khái niệm cơ bản, ưu điểm và nhược điểm của baloại hệ quản trị cơ sở dữ liệu Các ứng dụng thường gặp của hệ quản trị cơ sở dữliệu quan hệ đối tượng, cũng như các tính năng quan hệ đối tượng trong Oracle.
Đồng thời cũng trình bày được cách hiện thực một đối tượng trong cơ sở dữliệu quan hệ đối tượng Thể hiện được tính kế thừa, cách tham chiếu đến một đốitượng
Tuy nhiên do thời gian và nguồn lực hạn chế nên chương trình chỉ giới hạn ởnhững chức năng cơ bản nhất nhưng minh họa được cách tiếp cận với hệ quản trị cơ
sở dữ liệu quan hệ đối tượng, cách thiết kế quan hệ đối tượng và sự ánh xạ giữa cơ
sở dữ liệu quan hệ đối tượng với lập trình hướng đối tượng
Em rất mong nhận được sự góp ý của Thầy và các bạn Một lần nữa em xin
chân thành cảm ơn Thầy PGS.TS Đỗ Phúc đã tận tình hướng dẫn để em hoàn
thành đề tài này
Trang 22TÀI LIỆU THAM KHẢO
[1]Wikipedia Object-relational database.[Online]
http://en.wikipedia.org/wiki/Object-relational_database
[2]Informix Object-Relational DBMS - The Next Wave [Online].
http://db.cs.berkeley.edu/papers/Informix/www.informix.com/informix/corpinfo/zines/whitpprs/illuswp/wave.htm
[3] Oracle Database Express Edition 11g Release 2 [Online].
http://www.oracle.com/technetwork/products/express-dition/downloads/index.html?ssSourceSiteId=ocomen
[4] Defining Object Types [Online].
http://www.desitrainings.com/gt-gt-oracle-11g-sql-pl-sql-training-by-ocp-certified-[7] Object-Relational Database Management System (ORDBMS).[Online].
http://www.techopedia.com/definition/8715/object-relational-database-management-system-ordbms
[8] Slide bài giảng CSDL hướng đối tượng (OODB).[Online].
Phan-A
http://www.scribd.com/doc/96371291/Bai-Giang-He-CSDL-Doi-Tuong-31-5-2012-[9] Các loại trình ứng dụng cơ sở dữ liệu [Online].