Nghiên cứu về chuyển đổi lược đồ cơ sở dữ liệu quan hệ sang cơ sở dữ liệu NOSQL

89 939 11
Nghiên cứu về chuyển đổi lược đồ cơ sở dữ liệu quan hệ sang cơ sở dữ liệu NOSQL

Đ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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC CÔNG NGHỆ TPHCM - NGUYỄN VĂN HÕA NGHIÊN CỨU VỀ CHUYỂN ĐỔI LƢỢC ĐỒ CƠ SỞ DỮ LIỆU QUAN HỆ SANG CƠ SỞ DỮ LIỆU NOSQL LUẬN VĂN THẠC SĨ Chuyên ngành: Công nghệ thông tin Mã ngành: 60480201 TP HCM, tháng 06/2015 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC CÔNG NGHỆ TPHCM - NGUYỄN VĂN HÕA NGHIÊN CỨU VỀ CHUYỂN ĐỔI LƢỢC ĐỒ CƠ SỞ DỮ LIỆU QUAN HỆ SANG CƠ SỞ DỮ LIỆU NOSQL LUẬN VĂN THẠC SĨ Chuyên ngành: Công nghệ thông tin Mã ngành: 60480201 HƢỚNG DẪN KHOA HỌC: TS.NGUYỄN ĐÌNH THUÂN TP HCM, tháng 06/2015 CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM Cán hướng dẫn khoa học: TS Nguyễn Đình Thuân (Ghi rõ họ, tên, học hàm, học vị chữ ký) Luận vănThạc sĩ bảo vệ Trường Đại học Công nghệ TP HCM ngày… tháng …năm… Thành phần Hội đồng đánh giá Luận văn Thạc sĩ gồm: (Ghi rõ họ, tên, học hàm, học vị Hội đồng chấm bảo vệ Luận văn Thạc sĩ) Họ tên TT Chức danh Hội đồng PGS TSKH Nguyễn Xuân Huy Chủ tịch TS Cao Tùng Anh Phản biện TS Trần Đức Khánh Phản biện PGS TS Lê Hoài Bắc Ủy viên TS Võ Đình Bảy Ủy viên, Thư ký Xác nhận Chủ tịch Hội đồng đánh giá Luận sau Luận văn sửa chữa (nếu có) Chủ tịch Hội đồng đánh giá LV TRƯỜNG ĐH CÔNG NGHỆ TP HCM PHÒNG QLKH – ĐTSĐH CỘNG HÕA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc TP HCM, ngày 08 tháng 06 năm 2015 NHIỆM VỤ LUẬN VĂN THẠC SĨ Họtênhọc viên: Nguyễn Văn Hòa Giới tính: Nam Ngày, tháng, năm sinh: 28/09/1977 Nơi sinh: Kiên Giang Chuyên ngành: Công nghệ thông tin MSHV: 1341860005 I-Tên đề tài: NGHIÊN CỨU VỀ CHUYỂN ĐỔI LƢỢC ĐỒ CƠ SỞ DỮ LIỆU QUAN HỆ SANG CƠ SỞ DỮ LIỆU NOSQL II- Nhiệm vụ nội dung: - Nghiên cứu sở liệu NoSQL: tìm hiểu điều liệu NoSQLvà thao tác, nguyên lý hệ thống nó, server hỗ trợ NoSQL nay, cụ thể sử dụng MongoDB, lại sử dụng MongoDB - Chuyển đổi lược đồ sở liệu quan hệ sang sở liệu NoSQL: tìm hiểu tương quan thành phần lược đồ SQL NoSQL - So sánh tốc độ thực thi số câu truy vấn SQL NoSQL: ưu khuyết điểm SQL NoSQL, ứng dụng NoSQL thực tiễn, hướng phát triển tương lai III- Ngày giao nhiệm vụ: 15/09/2014 IV- Ngày hoàn thành nhiệm vụ: 08/06/2015 V- Cán hướng dẫn: TS Nguyễn Đình Thuân CÁN BỘ HƢỚNG DẪN KHOA QUẢN LÝ CHUYÊN NGÀNH (Họ tên chữ ký) TS NGUYỄN ĐÌNH THUÂN i LỜI CAM ĐOAN Tôi xin cam đoan công trình nghiên cứu riêng Các số liệu, kết nêu Luận văn trung thực chưa công bố công trình khác Tôi xin cam đoan giúp đỡ cho việc thực Luận văn cảm ơn thông tin trích dẫn Luận văn rõ nguồn gốc Học viên thực Luận văn Nguyễn Văn Hòa ii LỜI CẢM ƠN Em xin gửi lời cảm ơn sâu sắc đến thầy Nguyễn Đình Thuân, giúp đỡ, tạo điều kiện cho em hoàn thành tốt luận văn tốt nghiệp Thầy tận tình hướng dẫn đưa nhận xét vô quý giá để đề tài ngày hoàn thiện Những góp ý thầy giúp cho em tiếp cận, hiểu rõ giải vấn đề dễ dàng Đồng thời, em xin bày tỏ lòng biết ơn đến quý thầy, cô Trường Đại Học Công Nghệ Thành Phố Hồ Chí Minh, đặc biệt thầy, cô khoa Công nghệ thông tin tận tình truyền đạt kiến thức, kinh nghiệm cho em từ ngày học tập trường Sự nhiệt tình thầy, cô giúp cho em có kiến thức tảng vững kinh nghiệm thực tiễn quý báu để chúng em hoàn thành tốt nhiệm vụ học tập, làm việc nghiên cứu Bên cạnh đó, em gửi lời cảm ơn đến gia đình, anh, chị, bạn bè động viên, giúp đỡ chúng em nhiều trình học tập sống Thành phố Hồ Chí Minh, ngày 08 tháng 06 năm 2015 Học viên thực Nguyễn Văn Hòa iii MỤC LỤC TÓM TẮT KHÓA LUẬN Chƣơng I TÌM HIỂU NOSQL 1.1 Lý chọn NoSQL 1.1.1 Yếu điểm RDBMs 1.1.2 Đặc điểm bật NoSQL 1.2 So sánh NoSQL RDBMs 1.2.1 Mặt tích cực RDBMs 1.2.2 Mặt tích cực NoSQL 1.2.3 Các loại NOSQL phổ biến 1.2.4 Sự khác RDBMs NoSQL 1.3 Ưu nhược điểm chuyển từ RDBMs sang NoSQL 1.3.1 Ưu điểm 1.3.2 Nhược điểm 1.4 Các trường hợp nên sử dụng mô hình NoSQL Chƣơng II TÌM HIỂU MONGODB 10 2.1 Tóm tắt lịch sử 10 2.2 Các khái niệm MongoDB 10 2.2.1.Văn (Document) 10 2.2.2 Bộ sưu tập (Collection) 12 2.2.3 Chỉ mục (Index) 13 2.3.Các thao tác với MongoDB 16 2.3.1.Thao tác thêm văn 16 2.3.2.Thao tác xóa document, collection 16 2.3.3.Thao tác cập nhật 17 2.3.4.Thao tác truy vấn 17 2.3.5.Làm việc với số (Index) 18 Chƣơng III CHUYỂN ĐỔI LƢỢC ĐỒ RDBMs SANG NoSQL 23 3.1.Tổng quan mô hình quan hệ cho liệu 23 3.1.1.Sự linh hoạt liệu JSON/BSON 24 3.1.2.Những ưu điểm khác mô hình nhúng văn 26 iv 3.2.Biểu diễn quan hệ MongoDB [1] 27 3.2.1.Nhúng văn (embed sub-document) 28 3.2.2.Tham chiếu document (Referencing) 29 3.3.Cách biểu diễn lược đồ MongoDB 31 3.3.1.Biểu diễn thực thể, mối kết hợp lược đồ 31 3.3.2.Cách sử dụng biểu diễn mối kết hợp 1: n [2] 34 3.4.Cơ chế xử lý liệu MongoDB toán tối ưu lược đồ [3] 38 3.5.Các bước chuyển đổi 40 3.5.1.Xác định mục tiêu 41 3.5.2.Thu thập thông tin 41 3.5.3.Phân tích chuyển đổi lược đồ 42 3.5.4.Chuyển đổi liệu 46 3.5.5.Đưa vào quy trình 47 Chƣơng IV CÀI ĐẶT 48 4.1.Tiến hành chuyển đổi lược đồ ứng dụng stackoverflow 48 4.1.1.Xác định mục tiêu 48 4.1.2.Thu thập thông tin 50 4.1.3.Phân tích chuyển đổi lược đồ 61 4.1.4.Thực chuyển đổi 71 4.2.Đánh giá 72 4.2.1.So sánh tốc độ xử lý truy vấn 72 4.2.2.Đánh giá 76 TÀI LIỆU THAM KHẢO 77 v DANH MỤC CÁC TỪ VIẾT TẮT STT Từ viết tắt/ ký hiệu CSDL DOM NoSQL None-Relational SQL / Not-Only SQL MSSQL Hệ quản trị sở liệu Microsoft SQL Server Từ đầy đủ Cơ sở liệu Document Object Model (Mô hình Đối tượng Tài liệu) Relational database management system (Hệ quản RDBMs trị sở liệu quan hệ) Structured Query Language (Ngôn ngữ truy vấn có SQL URL ACID cấu trúc) Uniform Resource Locator (Định vị Tài nguyên thống nhất) Atomicity, consistency, Isolation, (Tính toàn vẹn liệu) Durability vi DANH MỤC BẢNG Bảng 1-1: Sự khác RDBMs MongoDB Bảng 3-1: Bảng ánh xạ thành phần RDBMs NoSQL 23 Bảng 3-2: Mô tả phương pháp thay thể nhớ LRU 40 Bảng 3-3: Xác định liệu cần thiết cho chức 41 Bảng 3-4: Phân tích thực nhúng thực thể 42 Bảng 3-5: Phân tích phân mảnh thực thể 45 Bảng 4-1: Mô tả thành phần thực thể User 51 Bảng 4IV-2: Mô tả thực thể Post 53 Bảng 4-3: Dữ liệu chức liệt kê sanh sách câu hỏi 54 Bảng 4-4: Dữ liệu chức hiển thị chi tiết đăng 55 Bảng 4-5: Dữ liệu chức đăng câu hỏi 56 Bảng 4-6: Dữ liệu chức lịch sử đăng 57 Bảng 4-7: Dữ liệu chức liệt kê Tags 58 Bảng 4-8: Dữ liệu chức liệt kê viết theo Tags 58 Bảng 4-9: Dữ liệu chức liệt kê người dùng 59 Bảng 4-10: Dữ liệu chức xem chi tiết thông tin người dùng 59 Bảng 4-11: Dữ liệu chức liệt kê Badges 60 Bảng 4-12: Dữ liệu chức xem chi tiết Badges 60 Bảng 4-13: Bảng phân tích tần suất sử dụng thực thể Users 62 Bảng 4-14: Bảng phân tích tần suất sử dụng thực thể Posts 62 Bảng 4-15: Bảng tính tần suất sử dụng ưu tiên 68 63  Dung lượng document nhỏ  Số lượng nhúng Badges Users nhỏ Vậy thực nhúng thực thể Badges vào Users Xét tần suất thực thể Posts Comments:  Quan hệ số lượng Posts Comments 1: n  ( ( ) [ ]) Vậy ta không thực nhúng Comments vào Post Xét tần suất thực thể Posts PostLinks:  Quan hệ số lượng Posts PostLinks 1:  ( ( ) [ ])  Dung lượng document nhỏ Vậy thực nhúng thực thể PostLinks vào Posts Xét tần suất thực thể Posts PostTags:  Quan hệ số lượng Posts PostTags 1: n  ( ( ) [ ])  Dung lượng document nhỏ  Số lượng nhúng PostTags Posts nhỏ Vậy thực nhúng thực thể PostTags vào Posts Xét tần suất thực thể Posts PostHistory:  Quan hệ số lượng Posts PostHistory 1: n  ( ( ) [ ]) Vậy ta không thực nhúng PostHistory vào Posts Xét tần suất thực thể Posts Votes:  Quan hệ số lượng Posts Votes 1: n  ( ( ) [ ]) 64 Vậy ta không thực nhúng PostHistory vào Posts Vậy thực nhúng thực thể PostLinks vào Posts Sau phân tích nhúng văn ta kết sau: Các quan hệ thực nhúng bao gồm:  Users Badges  Posts PostLinks  Posts PostTags Các quan hệ thực tham chiếu bao gồm  Posts Comments  Posts PostHistory  Posts Votes  Các quan hệ n – 1: Posts – PostType, PostTags – Tags, Votes – VoteType, PostHistory – PostHistoryType Dựa vào kết luận trên, ta thực phác thảo lược đồ sau: 65 _id Reputation CreationDate DisplayName LastAccessDate WebsiteUrl Location AboutMe Views UpVotes DownVites ProfileImageUrl EmailHash Age AccountId _id PostType AcceptAnswer ParentId CreationDate Score CreationDate ViewCount Body OwnerUserId LastEditorUserId LastEditDate LastActivityDate Title _id Description _id PostId Score Text CreationDate UserId Id (tagname) Id Name Date _id Count AnswerCount CommentCount FarvoriteCount ClosedCount CommunityOwnedDate _id PostHistoryType PostId RevisionGUID CreationDate UserId Comment Text _id PostId VoteType CreationDate BountyAmount CreationDate RelatedPostId LinkTypeId _id Description _id Description L ợc đồ 4-1: Kết au phân tích nhúng văn ản 4.1.3.2.Xác định phân mảnh liệu Ta tiến hành thực xác bước phân tích phần 0, ta biểu đồ sau: Thực thể Cột Trường Tần suất sử dụng ưu tiên ( ) 66 Users 1: n Badges Posts Users.Id 96% Users.Reputation 74% Users.CreationDate 6% Users.DisplayName 76% Users.LastAccessDate 4% Users.WebsiteUrl 4% Users.Location 6% Users.AboutMe 4% Users.Views 4% Users.UpVotes 2% Users.DownVotes 2% Users.ProfileImageUrl 74% Users.EmailHash 0% Users.Age 4% Users.AccountId 0% Badges.Id 74% Badges.UserId 74% Badges.Name 4% Badges.Date 4% Posts.Id 90% Posts.PostTypeId 86% Posts.AcceptedAnswerId 55% Posts.ParentId 55% Posts.CreationDate 92% Posts.Score 57% Posts.ViewCount 84% Posts.Body 90% Posts.OwnerUserId 88% Posts.LastEditorUserId 55% 67 1: n 1: Comments PostLinks 1: n PostTags n: 1: n 1: n Tags PostType PostHistory Posts.LastEditDate 66% Posts.LastAct4ityDate 35% Posts.Title 86% Posts.AnswerCount 64% Posts.CommentCount 0% Posts.FavoriteCount 64% Posts.ClosedDate 0% Posts.CommunityOwnedDate 0% Comments.Id 35% Comments.PostId 35% Comments.Score 35% Comments.Text 35% Comments.CreationDate 35% Comments.UserId 35% PostLinks.Id 20% PostLinks.CreationDate 20% PostLinks.PostId 86% PostLinks.RelatedPostId 86% PostLinks.LinkTypeID 0% PostTags.PostId 92% PostTags.Tag 92% Tags.TagName 70% Tags.Count 70% Tags.ExcerptPostId 70% Tags.WikiPostId 4% PostType.Id 37% PostType.Description 37% PostHistory.Id 2% PostHistory.PostHistoryTypesId 2% 68 n: 2% PostHistory.RevisionGUID 0% PostHistory.CreationDate 0% PostHistory.UserId 2% PostHistory.Comment 0% PostHistory.Text 2% PostHistor PostHistoryTypes.Id yTypes 1: n PostHistory.PostId Votes n: VoteType s 2% PostHistoryTypes.Description 2% Votes.Id 0% Votes.PostId 0% Votes.VoteTypeId 0% Votes.CreationDate 0% Votes.BountyAmount 0% VoteTypes.Id 0% VoteTypes.Description 0% Bảng 4-15: Bảng tính tần suất sử dụng u tiên Theo lược đồ, ta tính được: ̅ Nhìn vào bảng liệu thống kê được, ta thấy số thuộc tính thực thể Posts Users tương đối nhiều, thế, ta xét phân mảnh cho thực thể Xét thực thể Users, ta thấy:  Tổng số thuộc tính 15  Số thuộc tính chọn để phân mảnh ( ̅ ), chiếm tỉ lệ 26.67% (< 50%)  Các thuộc tính chọn không chọn tách thể tính trực quan liệu Vậy, thực thể Users tiến hành phân mảnh 69 Xét thực thể Posts, ta thấy:  Tổng số thuộc tính 18  Số thuộc tính chọn để phân mảnh 14 ( ̅ ), chiếm tỉ lệ 77.78% (> 50%)  Các thuộc tính chọn không chọn tách tính trực quan liệu Vậy, thực thể Posts không tiến hành phân mảnh Sau phân tích phân mảnh ta kết sau: _id Reputation CreationDate DisplayName LastAccessDate WebsiteUrl Location AboutMe Views UpVotes DownVites ProfileImageUrl EmailHash Age AccountId _id Reputation DisplayName ProfileImageUrl _id CreationDate LastAccessDate WebsiteUrl Location AboutMe Views UpVotes DownVotes EmailHash Age AccountId L ợc đồ 4-2: Kết au phân tích phân mảnh thực thể Users 4.1.3.3.Xác định lược đồ sau Để thấy linh hoạt MongoDB 70 Ta xét thực thể Tags, có trường ExcerptPostId WikiPostId, hai trường tham chiếu tới PostID thực thể Posts, có tác dụng viết để trình bày khái niệm Tag, giả sử viết chức Vote, Favorite, Answer, Tag  Mỗi thực thể Tag có viết ExcerptPost WikiPost  Mỗi ExcerptPost WikiPost sử dụng Tag Vậy, quan hệ Tag – ExcerptPost Tag – ExcerptPost quan hệ 1–1 Ở trường hợp nàyta sử dụng phương pháp nhúng, thay cho phương pháp tham chiếu, ta nhúng document có cấu trúc thực thể Post Khi lược đồ cuối sau chuyển đổi sau: 71 _id PostType AcceptAnswer ParentId CreationDate Score CreationDate ViewCount Body OwnerUserId LastEditorUserId LastEditDate LastActivityDate Title _id CreationDate LastAccessDate WebsiteUrl Location AboutMe Views UpVotes DownVotes EmailHash Age AccountId Id (tagname) _id Reputation DisplayName ProfileImageUrl _id Description _id PostId Score Text CreationDate UserId _id Count AnswerCount CommentCount FarvoriteCount ClosedCount CommunityOwnedDate Id Name Date CreationDate RelatedPostId LinkTypeId _id PostHistoryType PostId RevisionGUID CreationDate UserId Comment Text _id Description _id PostId VoteType CreationDate BountyAmount _id Description L ợc đồ 4-3: Kết l ợc đồ cuối 4.1.4.Thực chuyển đổi Ta tiến hành thực xây dựng công cụ chuyển đổi ETL (Extract, Transform, Load), công cụ bao gồm chức là: Tổng hợp liệu nguồn Chuyển đổi, ánh xạ liệu Lưu xuống database đích (Extract) (Transform) (Load) Hình 4-2: Sơ đồ xử lý công cụ ETL 72  Tổng hợp liệu nguồn Tại bước dùng lớp mô đối tượng tương ứng với liệu sở liệu SQL để phục vụ việc chuyển đổi, ánh xạ bước sau Để thuận tiện nhanh chóng, dùng đối tượng ADO NET Entity FW6.0 để mô hỗ trợ thực truy xuất liệu SQL  Chuyển đổi, ánh xạ liệu Tại bước này, công cụ chuyển đổi, ánh xạ liệu cũ sang liệu với cấu trúc BSON Ta thực viết phương thức để hỗ trợ chuyển đổi liệu cũ sang liệu tương ứng với lược đồ CSDL MongoDB mà ta chuyển đổi trước  Lƣu xuống database đích Khi có liệu mới, công cụ thực lưu liệu xuống database MongoDB Hình 4-3: Giao diện công cụ chuyển đổi liệu Chi tiết hình: Chọn sở liệu SQL Server chuyển sang sở liệu Mongo Lƣu ý:  Trước thực bước trên, phải chắn Server MongoDB chạy máy 4.2.Đánh giá 4.2.1.So sánh tốc độ xử lý truy vấn Môi trƣờng thực hiện:  Máy tính dùng Core i3 73  Hệ điều hành Windows  RAM 4GB  SQL Server 2012 EXPRESS  MongoDB 2.6.4 Để thuận tiện theo dõi tốc độ xử lý SQL Server MongoDB, em viết chương trình đơn giản nhằm thể thời gian thực câu truy vấn SQL Server MongoDB Tất lệnh truy vấn chạy process để đảm bảo tính khách quan Chi tiết hình:  Khung số 1: Chọn sở liệu SQL Server chuyển sang sở liệu MongoDB  Khung số 2: Chọn mẫu câu truy vấn sẵn có để so sánh  Khung số 3: Câu lệnh truy vấn SQL câu lệnh truy vấn MongoDB  Khung số 4: Thời gian thực truy vấn SQL MongoDB  Khung số 5: Hiển thị liệu truy vấn SQL MongoDB  Khung số 6: Truy vấn tự nhập Các bước so sánh Chọn mẫu câu truy vấn Combobox “Chọn câu truy vấn” Nhấn nút “Thực thi” để thực truy vấn Xem kết truy vấn khung số khung số 74 Lƣu ý: Trước thực bước trên, phải chắn Server MongoDB chạy máy Các câu lệnh truy vấn mẫu  Truy vấn 1:Lấy tất liệu bảng Posts o SQL Server SELECT * FROM Posts o MongoDB db.Posts.find()  Truy vấn 2: Chọn tất ghi Post c AnswerCount10 o SQL Server SELECT * FROM Posts WHERE AnswerCount!=6 o MongoDB db.Posts.find( {AnswerCount:{$ne:6}})  Truy vấn 3:Chọn tất ghi Post c Titl ký tự đầu Why o SQL Server SELECT * FROM Posts WHERE Title LIKE '%Why%' o MongoDB db.Posts.find({Title: /Why/})  Truy vấn 4: Chọn tất ghi PostHistoryc Po tHi toryTyp I >7 o SQL Server SELECT * FROM PostHistory WHERE PostHistoryTypeId >7 o MongoDB db.PostHistory.find({PostHistoryTypeId :{$gt:7}})  Truy vấn 5: Chọn tất ghi PostHistoryc T xt ký tự đầu Why o SQL Server 75 SELECT * FROM PostHistory WHERE Text LIKE '%Why%' o MongoDB db.PostHistory.find({Text: /Why/}) Kết quả: Để đảm bảo tính xác, kết thực với điều kiện sau:  SQL Server MongoDB số Index  Để giảm thiểu sai số, truy vấn thực đợt tính giá trị trung bình  Trước câu truy vấn, nhớ giải phóng, đảm bảo liệu truy vấn truy cập trực tiếp đến ổ đĩa Lần Lần Lần Lần Lần TB Truy vấn SQL Server 59.819 46.990 46.775 47.790 53.714 51.018 MongoDB 0.040 0.039 0.051 0.041 0.055 0.045 Truy vấn SQL Server 41.868 41.769 37.354 36.455 36.816 38.852 MongoDB 0.034 0.012 0.091 0.080 0.091 0.062 Truy vấn SQL Server 31.655 23.083 23.398 23.354 22.499 24.798 MongoDB 0.076 0.093 0.081 0.106 0.077 0.087 Truy vấn SQL Server 26.469 28.351 27.156 27.797 26.781 27.311 MongoDB 1.493 1.570 1.534 1.560 1.525 1.536 Truy vấn SQL Server 78.488 72.433 73.399 64.177 68.183 71.336 MongoDB 0.082 0.021 0.101 0.075 0.076 0.071 76 4.2.2.Đánh giá 4.2.2.1.Những điểm tích cực sử dụng MongoDB  Tốc độ: Một điểm mạnh quan trọng MongoDB tốc độ đọc ghi ấn tượng, bỏ qua khâu kiểm tra ràng buộc toàn vẹn nên MongoDB đọc ghi nhanh nhiều lần so với RDBMS (cụ thể xem phần kết so sánh tốc độ)  Chi phí thấp hơn: Chi phí bỏ cho việc xử lý liệu giảm đáng kể, yêu cầu đáp ứng nhanh chóng, làm tăng trải nghiệm người sử dụng  Lược đồ đơn giản hơn: Khi sử dụng MongoDB, mô hình liệu thường kiểm soát lập trình viên mà không cần tới quản trị viên sở liệu, lược đồ tối ưu, thân thiện với ứng dụng 4.2.2.2.Những điểm hạn chế sử dụng MongoDB  Do chế MongoDB không hỗ trợ xử lý song song truy vấn lúc, tất truy vấn đưa vào hàng đợi, server xử lý query Để khắc phục điều này, ta tạo nhiều thể MongoDB máy tạo nhiều sở liệu cho khóa tranh chấp Vì việc quản lý thể sở liệu phức tạp  Ưu điểm nhược điểm MongoDB không kiểm tra ràng buộc toàn vẹn, điều làm cho sở liệu không quán xảy xung đột lập trình viên không xử lý bao quát hết trường hợp  Do mô hình chuẩn định nghĩa sở liệu MongoDB nên khó kiểm soát  Do mẻ trình phát triển nên tính ổn định chưa hệ quản trị sở liệu quan hệ 77 TÀI LIỆU THAM KHẢO [1] RDBMS to MongoDB Migration Guide, New York • Palo Alto • Washington, D.C • London • Dublin • Barcelona • Sydney • Tel Av4, 2014, p [2] "6 Rules of Thumb for MongoDB Schema Design," 29 2014 [Online] Available: http://blog.mongodb.org/post/87200945828/6-rules-of-thumb-for- mongodb-schema-design-part-1 [3] "MongoDB Storage," [Online] Available: http://learnmongodbthehardway.com/schema/chapter3/ [4] "MongoDB: The Definit4e Guide," in MongoDB: The Definit4e Guide [5] Extending a Methodology for Migration of the Database Layer to the Cloud Considering Relational Database Schema Migration to NoSQL ftp://ftp.informatik.uni-stuttgart.de/pub/library/medoc.ustuttgart_fi/MSTR3460/MSTR-3460.pdf Access on July, 2014 [...]... “dropDups”: true}) Cách này có thể gây thất thoát dữ liệu, vì vậy cần xem xét kỹ nếu xử lý trên các dữ liệu quan trọng 23 CHƢƠNG III CHUYỂN ĐỔI LƢỢC ĐỒ RDBMS SANG NOSQL 3.1.Tổng quan mô hình quan hệ cho dữ liệu Điều cơ bản nhất trong việc chuyển đổi dữ liệu quan hệ trang lược đồ NoSQL là mô hình hóa lược đồ cho dữ liệu Lược đồ dữ liệu của 2 kiểu dữ liệu là khác nhau, tuy nhiên giữa chúng cũng có một... liệu NoSQL, cách chuyển đổi giữa lược đồ RDBMs sang lược đồ NoSQL Cụ thể trong đề tài này, em sẽ đi tìm hiểu và nghiên cứu chuyển đổi với hệ quản trị dữ liệu MongoDB, đây là một hệ quản trị sử dụng dữ liệu NoSQL phổ biến Để có thể chuyển đổi lược đồ dữ liệu từ RDBMs sang dữ liệu NoSQL, bước đầu tiên chúng ta cần phải hiểu được những điều căn bản về dữ liệu NoSQLvà các thao tác, nguyên lý hệ thống của... giống như hệ cơ sở dữ liệu quan hệ (CSDLQH) Đặc biệt, MongoDB là một Cơ sở dữ liệu hướng tài liệu MongoDB quản lý các dữ liệu thành các tập dạng BSON (Binary JSON), BSON là kiểu dữ đã được mã hóa nhị phân của dạng dữ liệu JSON Các dữ liệu này có thể được lồng vào nhau, hình thành nên một cấu trúc phức tạp, nhưng vẫn dễ dàng truy xuất được nhờ được đánh các chỉ mục Điều này cho phép dữ liệu được thiết... kiểm soát việc bảo mật dữ liệu cũng như tính sẵn sàng cao của dữ liệu Cơ sở dữ liệu quan hệ được thiết kế cho những mô hình dữ liệu không quá lớn trong khi các dịch vụ mạng xã hội lại có một lượng lớn dữ liệu và cập nhật liên tục do số lượng người dùng quá nhiều Do đó cơ sở dữ liệu NoSQL sinh ra với mục tiêu giải quyết các thiếu sót của RDBMS trong các hệ thống phần mềm hiện đại NoSQL sẽ tập trung giải... các bước chuyển đổi[ 1] 40 Hình 3-5: Xác định tần suất thực hiện nhúng 43 Hình 4-1: Mô hình lược đồ use-case RDBMs ứng dụng stackoverflow.com 49 Hình 4-2: Sơ đồ xử lý của công cụ ETL 71 Hình 4-3: Giao diện chính công cụ chuyển đổi cơ sở dữ liệu 72 viii DANH MỤC LƢỢC ĐỒ Lược đồ 3-1: Cấu trúc lược đồ cơ bản thực thể MongoDB 31 Lược đồ 3-2: Cấu trúc lược đồ văn bản nhúng... Lược đồ 3-3: Cấu trúc lược đồ nhúng mảng văn bản trong MongoDB 33 Lược đồ 3-4: Cấu trúc lược đồ nhúng mảng tham chiếu 33 Lược đồ 3-5: Cấu trúc lược đồ tham chiếu thực thể cha 34 Lược đồ 3-6: Ví dụ mô hình phương pháp nhúng mảng văn bản 35 Lược đồ 3-7: Ví dụ mô hình phương pháp nhúng mảng tham chiếu 37 Lược đồ 3-8: Ví dụ mô hình phương pháp tham chiếu thực thể cha 38 Lược đồ. .. của lược đồ phù hợp Có 2 cách phương pháp để tổ chức mô hình lược đồ từ RDBMs sang MongoDB:  Tận dụng lại các cấu trúc lược đồ dữ liệu quan hệ và cách tổ chức dữ liệu của MongoDB hướng kiểu 2-d (2-dimensional) của các hàng và cột trong RDBMs  Tổ chức dữ liệu theo hướng nhúng văn bản đơn hoặc trên mảng (embedded sub-documents and arrays) 24 3.1.1.Sự linh hoạt của dữ liệu JSON/BSON Hầu hết các dữ liệu. .. Key-value pair base Graph database  Wide-column Store Lược đồ được định nghĩa để Không có một định nghĩa trước nào cho lưu trữ dữ liệu có cấu trúc lược đồ, mà lược đồ linh hoạt dựa theo thành phần dữ liệu Được mở rộng theo chiều dọc, Mở rộng theo chiều ngang, nghĩa là nếu nếu chúng ta muốn mở rộng muốn mở rộng cơ sở dữ liệu, chúng ta Khả năng cơ sở dữ liệu thì phải nâng chỉ cần thêm các node và tạo ra... các RDBMS 1.4 Các trƣờng hợp nên sử dụng mô hình NoSQL NoSQL sử dụng đến các mô hình dữ liệu quan hệ, vì thế ở những dữ liệu đòi hỏi sự toàn vẹn của dữ liệu cao như ngân hàng, chứng khoán, các hình thức giao dịch thương mại điện tử … , ở những dạng dữ liệu trên không nên sử dụng NoSQL vì nó không đảm bảo tính toàn vẹn của dữ liệu Ngược lại, ở những dữ liệu, mà tốc độ xử lý được ưu tiên cao hơn, ví dụ... pháp NoSQL bước đầu được phát triển bởi Facebook  MongoDB: là một cơ sở dữ liệu NoSQL nguồn mở, hiệu năng cao, có tính mở rộng cao Được viết bằng C++ Dùng cách lưu trữ BSON (Json được biên dịch) với giấy phép AGPL Thay vì lưu trữ dữ liệu theo các bảng như các cơ sở dữ liệu cổ điển MongoDB lưu cấu trúc dữ liệu thành các văn bản dựa JSON với mô hình động (gọi đó là BSON), khiến cho việc tích hợp dữ liệu ... nghệ thông tin MSHV: 1341860005 I-Tên đề tài: NGHIÊN CỨU VỀ CHUYỂN ĐỔI LƢỢC ĐỒ CƠ SỞ DỮ LIỆU QUAN HỆ SANG CƠ SỞ DỮ LIỆU NOSQL II- Nhiệm vụ nội dung: - Nghiên cứu sở liệu NoSQL: tìm hiểu điều liệu. .. TRƢỜNG ĐẠI HỌC CÔNG NGHỆ TPHCM - NGUYỄN VĂN HÕA NGHIÊN CỨU VỀ CHUYỂN ĐỔI LƢỢC ĐỒ CƠ SỞ DỮ LIỆU QUAN HỆ SANG CƠ SỞ DỮ LIỆU NOSQL LUẬN VĂN THẠC SĨ Chuyên ngành: Công nghệ thông tin Mã ngành:... hiểu liệu NoSQL, cách chuyển đổi lược đồ RDBMs sang lược đồ NoSQL Cụ thể đề tài này, em tìm hiểu nghiên cứu chuyển đổi với hệ quản trị liệu MongoDB, hệ quản trị sử dụng liệu NoSQL phổ biến Để chuyển

Ngày đăng: 09/12/2015, 23:27

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