Tìm hiểu về hệ quản trị cơ sở dữ liệu SQL và NoSQL

44 772 12
Tìm hiểu về hệ quản trị cơ sở dữ liệu SQL và 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

Tìm hiểu về Hệ quản trị cơ sở dữ liệu quan hệ (SQL) và Hệ quản trị cơ sở dữ liệu phi quan hệ (NoSQL).Các đặc điểm, đặc trưng đặc biệt của SQL và NoSQL Các loại cơ sở dữ liệu thường dùng điển hình trong SQL và NoSQL.

Tìm hiểu Hệ quản trị sở liệu SQL NoSQL Tích hợp liệu từ nhiều nguồn CSDL khác Mục Lục Lời mở đầu Trong thời buổi đại ngày nay, đặc biệt với bùng nổ cách mạng 4.0 Không thể phủ nhận tầm quan trọng ngành công nghệ thông tin tất ngành kinh tế, buôn bán, tài chính, thương mại, giao thương, du lịch, … Với tất ngành nay, liệu phần khơng thể thiếu mang lại giá trị to lớn đáp ứng nhu cầu thiết yếu cho ngành, doanh nghiệp, cá nhân,… Trong đó, tra cứu thông tin chức quan trọng để đáp ứng nhu cầu Vì việc xây dựng hệ thống tra cứu cần thiết với nguồn liệu phong phú đa dạng Để CSDL lớn, liệu thu thập từ nhiều nguồn khác Tuy nhiên với nhu cầu hệ thống khác nhau, nhu cầu sử dụng hệ quản trị sở liệu khác (khác mặt cấu trúc, trường, kiểu liệu,….) Do đó, việc thu thập liệu từ nhiều nguồn tích hợp vào CSDL trở nên khó khăn Do đó, chúng tơi đưa giải pháp để giải vấn Trong phần tiếp theo, chúng tơi trình bày nội dung SQL NoSQL, phân tích hệ quản trị CSDL phổ biến Sau đưa thiết kế để giải vấn đề việc tích hợp liệu hệ quản trị sở liệu khác Phần I: Các hệ quản trị sở liệu quan hệ - - - - - Hệ quản trị sở liệu DBMS Một lượng lớn thông tin hữu ích tồn dạng văn bản, giá trị liệu tài sản quan trọng Tuy nhiên, khả quản lý lượng lớn thơng tin, nhanh chóng truy cập đến thơng tin cần thiết quan trọng Điều nghĩa thơng tin chưa đủ, phải biết cách sử dụng cho thật hiệu Từ thực tế dẫn đến suy nghĩ là: cần phải hệ thống quảnliệu thật mạnh mẽ hiệu Để quản lý lượng lớn liệu phức tạp, người sử dụng phải cơng cụ - hỗ trợ tính đơn giản thao tác lại hiệu trích lọc thơng tin Dữ liệu thông tin liên quan đến đối tượng (ví dụ người, vật, việc, ) lưu trữ máy tính Dữ liệu mơ tả nhiều dạng khác (như ký tự, ký hiệu, hình ảnh, , âm ) sở liệu tập hợp liệu biểu diễn hoạt động tổ chức liên quan đến Ví dụ, sở liệu trường đại học chứa thơng tin về: Sinh viên, giáo viên, môn học,… Hệ quản trị sở liệu, gọi DBMS (Database Management System) phần mềm thiết kế để lưu trữ quản lý lượng lớn liệu Sử dụng DBMS hướng tới cách tiếp cận mới, lưu trữ liệu tệp tin độc lập viết ứng dụng cụ thể để quản lý chúng Bằng việc lưu trữ liệu DBMS thay việc lưu trữ vào file riêng rẽ, sử dụng chức DBMS để quảnliệu dễ dàng Với dung lượng liệu khổng lồ số lượng lớn người sử dụng đồng thời, tính mà DBMS hỗ trợ trở nên vô quan trọng thiếu Những lợi ích DBMS: ● Độc lập liệu: Những chương trình ứng dụng nên độc lập tối đa việc biểu diễn lưu trữ liệu DBMS cung cấp khung nhìn trừu tượng liệu cách ly với lưu trữ vật lý liệu ● Truy cập liệu hiệu quả: Hàng loạt tính DBMS giúp lưu trữ truy cập sở liệu hiệu Những tính đặc biệt quan trọng liệu lưu trữ thiết bị lưu trữ ● ● ● ● Toàn vẹn an toàn liệu: Nếu liệu luôn truy cập thông qua DBMS, DBMS thiết đặt ràng buộc tồn vẹn liệu Ví dụ, trước thêm thơng tin lương nhân viên, DBMS kiểm tra số lương khơng vượt q số tiền phòng Quản trị liệu: Khi vài người dùng chia sẻ liệu, người quản trị hệ thống đưa đề xuất mang lại hiệu đáng kể Những chuyên gia kinh nghiệm hiểuliệu quản lý nhóm người sử dụng sử dụng phần sở liệu, từ họ đưa cách thức tổ chức liệu để giảm tối đa thừa truy cập trở nên hiệu Truy cập đồng thời khôi phục liệu: DBMS lập lịch cho việc truy cập đồng thời đến liệu để người sử dụng cảm giác người sử dụng liệu khoảng thời gian Thêm vào đó, DBMS bảo vệ người sử dụng tránh ảnh hưởng hệ thống gặp cố Giảm thời gian phát triển ứng dụng: DBMS hỗ trợ nhiều tính quan trọng sử dụng nhiều ứng dụng truy cập tới liệu lưu trữ DBMS Thông qua lược đồ mức cao (highlevel interface), ứng dụng phát triển nhanh chóng dễ dàng nhiều cơng việc DBMS hỗ trợ thay bạn phải xây dựng chương trình ứng dụng Các mơ hình sở liệu - - - Mơ hình liệu tập khái niệm sử dụng để mô tả cấu trúc sở liệu cung cấp thao tác cần thiết để đạt trừu tượng hoá Cấu trúc sở liệu bao gồm: kiểu liệu, mối quan hệ ràng buộc liệu Mơ hình sở liệu loại mơ hình liệu xác định cấu trúc logic sở liệu định cách liệu lưu, tổ chức cách sử dụng Một số mơ hình sở liệu: ● Mơ hình quan hệ (Relational Model): Sử dụng bảng để lưu liệu mối quan hệ bảng Mỗi bảng nhiều cột (field) cột tên Mỗi dòng record ● Mơ hình mạng (Network Model): Dữ liệu thể tập ghi(records) mối quan hệ liệu thể liên kết (links) Các kiểu thực thể kết nối với thơng qua mối quan hệ cha-con ● Mơ hình phân cấp (Hierarchical Model): Tổ chức theo hình cây, nút biểu diễn thực thể liệu Mỗi nút cha nhiều nút nút nút cha Do mơ hình liệu phân cấp kiểu quan hệ: 1-1, 1-N ● Mơ hình hướng đối tượng (Object-oriented Data Models): sở liệu bao gồm đối tượng: Mỗi đối tượng bao gồm thuộc tính, phương thức đối tượng, Các đối tượng trao đổi với thông qua phương thức, Một dối tượng sinh từ việc kế thừa từ đối tượng khác Các hệ quản trị sở liệu quan hệ RDBMS (Relational Database Management System) 3.1 khái niệm - - RDBMS hệ quản trị sở liệu dựa mô hình quan hệ để làm việc với liệu, liệu lưu trữ đối tượng sở liệu gọi bảng Với bảng, cột tương ứng với thuộc tính giữ kiểu liệu khác ghi Mỗi ghi(record) sở định nghĩa với key tương ứng với hàng bảng Với thuộc tính hàng thể cột bảng Các quan hệ coi tập hợp chứa loạt thuộc tính mà đại diện cho sở liệu thông tin lưu trữ Khi định nghĩa bảng để thêm ghi phần tử ghi phải tương ứng với kiểu liệu định nghĩa (như kiểu integer, date, ) 3.2 Đặc điểm RDBMS - - Ưu điểm: ● Cấu trúc dạng bảng đơn giản dễ dàng cho người sử dụng ● Cho phép người dùng sử dụng CRUD (create, read, update delete) với ghi cách dễ dàng câu lệnh ● RDBMSs cho phép nhiều người sử dụng truy cập database lúc Người sử dụng sử dụng chức quản lý giao dịch khố tích hợp để truy cập liệu thay đổi Điều giúp khắc phục cố xảy nhiều người làm việc liệu ngăn ngừa người dùng truy cập sử dụng liệu cập nhật phần ● RDBMS cho phép quản trị sở liệu hạn chế quyền truy cập tới người dùng uỷ quyền cấp đặc quyền cho người dùng cá nhân dựa loại nhiệm vụ mà họ cần thực ● Tính ACID (Atomicity, Consistency, Isolation, Durability) transaction đảm bảo ● Tính tồn vẹn liệu cao, ràng buộc liệu khóa chính, khóa ngoại, quan hệ nhiều, nhiều nhiều Thích hợp với hệ thống cần bảo mật cao ngân hàng, thương mại điện tử,… ● Với database ch uẩn 3, liệu đảm bảo tính đồng tồn vẹn (consistency) Nhược điểm ● ● ● ● ● ● ● Việc mapping bảng database với object code rắc rối phức tạp Performance bị chậm phải join nhiều bảng để lấy liệu Việc thay đổi cấu trúc liệu (Thêm/xóa bảng thêm/xóa field) mệt mỏi, kéo theo vơ số thay đổi code) Không làm việc với liệu khơng cấu trúc (un-structure) RDBMS thiết kế để chạy máy chủ Khi muốn mở rộng, khó chạy nhiều máy (clustering) Vì liệu mở rộng theo chiều dọc, nên khả lưu trữ xử lý khó khăn chi phí tốn Khi liệu tăng lên cao, chi phí query độ phức tạp tăng theo Đặc biệt với query xếp, so sánh,… 3.3 Một số hệ quản trị sở liệu quan hệ phổ biến: - - - SQL chuẩn ANSI (American National Standards Institute Viện tiêu chuẩn quốc gia Hoa kỳ) truy xuất hệ thống CSDL Các câu lệnh SQL sử dụng để truy xuất cập nhật liệu CSDL Ngôn ngữ SQL IBM sử dụng hệ quản trị CSDL System R vào năm 70, hệ ngôn ngữ SQL (SEQUEL2) IBM công bố vào tháng 11 năm 1976 Năm 1989, viện tiêu chuẩn quốc gia Hoa kỳ (ANSI) công nhận SQL ngôn ngữ chuẩn để truy cập CSDL quan hệ văn ANSI SQL89 Năm 1989, tổ chức tiêu chuẩn quốc tế (ISO) công nhận SQL ngôn ngữ chuẩn để truy cập CSDL quan hệ văn ISO 9075-1989 SQL phát triển sử dụng rộng rãi ngày với hệ quản trị CSDL (RDBMS) như: SQL Server,MySQL, SQLite, Oracle,…vì lợi ích to lớn mang lại Trong hầu hết ứng dụng, lợi ích mang lại số lý sau: • Tính ACID (Atomicity, Consistency, Isolation, Durability) transaction đảm bảo • Với database chuẩn 3, liệu đảm bảo tính đồng tồn vẹn (consistency) • nhiều driver cho ngơn ngữ: Java, C#, PHP… Lập trình SQL sử dụng để chèn, tìm kiếm, cập nhật, xóa ghi sở liệu Điều khơng nghĩa SQL khơng thể làm điều Trong thực tế làm nhiều thứ, không giới hạn, tối ưu hóa bảo trì sở liệu số hệ quản trị sở liệu quan hệ như: MySQL, Oracle, SQL Server Ms, Sybase, sử dụng SQL Sẽ vài HQTCSDL phổ biến phân tích a Microsoft SQL Server - SQL Server hệ quản trị sở liệu quan hệ (Relational Database Management System (RDBMS) ) sử dụng câu lệnh SQL để trao đổi liệu máy Client máy cài SQL Server - SQL Server tối ưu để chạy mơi trường sở liệu lớn lên đến Tera-Byte phục vụ lúc cho hàng ngàn user SQL Server kết hợp “ăn ý” với server khác Microsoft Internet Information Server (IIS), E-Commerce Server, Proxy Server… - Đặc điểm: ● SQL ngôn ngữ tựa tiếng Anh ● SQL ngơn ngữ phi thủ tục, không yêu cầu ta cách thức truy nhập CSDL Tất thông báo SQL dễ sử dụng khả mắc lỗi ● SQL cung cấp tập lệnh phong phú cho cơng việc hỏi đáp DL: Chèn, cập nhật, xố hàng quan hệ Tạo, sửa đổi, thêm xoá đối tượng CSDL Điều khiển việc truy nhập tới sở liệu đối tượng CSDL để đảm bảo tính bảo mật sở DL Đảm bảo tính quán ràng buộc CSDL - Ưu điểm: ● SQL sử dụng lượng liệu lớn từ database cách nhanh chóng hiệu ● Câu lệnh đơn giản, ngắn gọn, dễ nhớ dễ dàng sử dụng ● Được tối ưu hóa với công nghệ nên tốc độ cao ● Tất yêu cầu phức tạp công việc thực ● SQL database sử dụng tiêu chuẩn lâu đời, ANSI ISO áp dụng ● Việc sử dụng SQL chuẩn giúp việc quản lý database dễ dàng - Nhược điểm: ● Khơng đối tượng Form (để tạo giao diện ứng dụng), Report (để tạo báo cáo), module (lập trình ứng dụng CSDL) ● Ta cần sử dụng công cụ bên ngồi để lập trình cho ứng dụng CSDL SQL: Visual Basic.Net, C#.net, ADO.Net, , Crystal Report b MySQL - MySQL sở liệu khả mở rộng phổ biến Nó giàu tính năng, sản phẩm mã nguồn mở mạnh mẽ website ứng dụng online Việc bắt đầu với - - - MySQL dễ dàng nhà phát triển dễ dàng tiếp cận với lượng lớn thông tin sở liệu internet MySQL ví dụ Hệ Quản trị sở liệu quan hệ sử dụng Ngơn ngữ truy vấn cấu trúc (SQL) Tuy nhiên Mysql khơng bao qt tồn câu truy vấn cao cấp SQL Server Vì Mysql đáp ứng việc truy xuất đơn giản trình vận hành website, thích hợp cho ứng dụng truy cập CSDL internet giải hầu hết toán PHP, Perl số đặc điểm MySQL: ● MySQL phần mềm quản trị CSDL dạng server-based (gần tương đương với SQL Server Microsoft) ● MySQL quảnliệu thông qua CSDL, CSDL nhiều bảng quan hệ chứa liệu ● MySQL chế phân quyền người sử dụng riêng, người dùng quản lý nhiều CSDL khác nhau, người dùng tên truy cập mật tương ứng để truy xuất đến CSDL ● Khi ta truy vấn tới CSDL MySQL, ta phải cung cấp tên truy cập mật tài khoản quyền sử dụng CSDL Nếu khơng, khơng làm giống quyền chứng thực người dùng SQL Server Ưu điểm: ● Mysql phần mềm mã nguồn mở phổ biến dễ dàng người sử dụng, chạy nhiều flatform việc sử dụng ● Sự linh hoạt flatform đặc tính bật MySQL với phiên hỗ trợ Linux, Unix, Windows, MySQL cho phép tùy biến hoàn tồn theo ý muốn, thêm vào u cầu thích hợp cho database server ● MySQL đáp ứng khả xử lý yêu cầu khắt khe hệ thống, MySQL đưa “cơng cụ” cần thiết cho hệ thống doanh nghiệp khó tính tiện ích tải tốc độ cao, nhớ cache chế xử lý nâng cao khác ● Bảo mật: nhiều tính bảo mật, số cấp cao xây dựng MySQL ● Do MySQL engine xử lý tốc độ cao khả chèn liệu nhanh, hỗ trợ tốt cho chức chuyên dùng cho web,…nên 10 - - - Neo4j hệ quản trị sở liệu đồ thị giới thiệu vào năm 2007 công bố phiên 1.0 vào năm 2010 Hiện neo4j hệ quản trị sở liệu đồ thị sử dụng nhiều Ngày hàng ngàn cơng ty tổ chức sử dụng lĩnh vực quản lý mạng, phân tích phần mềm, nghiên cứu khoa học, routing, mạng xã hội Tổ chức liệu Neo4J: ● Node: đơn vị Neo4J, chứa nội dung, thuộc tính đối tượng ● Label: node nhiều label, dùng để dịnh danh node thành phần thiếu truy vấn liệu ● Relationship: hiểu cạnh nối node, cho biết mối liên hệ node - Từ cách tổ chức liệu thấy Neo4J phù hợp CSDL nhiều mối liên hệ, routing ví dụ CSDL mạng xã hội - Ưu điểm: ● Lưu trữ nhỏ gọn nhớ đệm cho đồ thị, khả mở rộng lưu trữ hàng tỉ nút sở liệu hệ thống phần cứng vừa phải ● hỗ trợ đầy đủ ACID (Atomicity, Consistency, Isolation and Durability) 30 Cụ thể hóa mối quan hệ thời điểm tạo, kết khơng cho truy vấn thời gian phức tạp Nhược điểm: ● Không phù hợp cho liệu quan hệ ● Việc tìm kiếm theo khoảng không khả thi Neo4J ● - Ví dụ NoSQL - Xét ví dụ CSDL quan hệ quản lý danh bạ, với bảng Contact bao gồm số thuộc tính sau: Contact id firstname lastname gender telephone email address country - - Đối với CSDL quan hệ, xây dựng CSDL quản lý danh bạ với contact tối đa telephone, email, address Tuy nhiên, thực tế với người sử dụng nhiều số điện thoại, nhiều email, nhiều địa Với liệu lưu trữ linh hoạt vậy, lẽ CSDL quan hệ không lựa chọn phù hợp phải tạo schema cứng nhắc mối quan hệ phức tạp bảng, đồng thời khó mở rộng Đối với liệu này, NoSQL lựa chọn phù hợp với tính linh hoạt mà khả mở rộng dễ dàng, phù hợp với ứng dụng mà khó xác định schema liệu linh hoạt Dưới ví dụ contact sử dụng NoSQL: 31 - Ở ví dụ này, ta chưa lưu trường gender, date_of_birth v.v thêm vào trường mà không cần thiết cho người khác Nhưng khơng vấn đề sở liệu NoSQL linh hoạt việc này, ta thêm xóa trường tùy ý 32 Phần III: Chuyển đổi liệu hệ quản trị sở liệu SQL-SQL, SQL → NoSQL, NoSQLSQL SQL - SQL - - - Đối với hệ quản trị CSDL quan như: MySQL, SQL Server, Oracle, SQLite, lưu trữ liệu theo dạng bảng(table), hàng(row) record (hoặc tuple) Chúng cấu trúc, lược đồ, mối quan hệ ràng buộc bảng, chúng tuân theo chuẩn SQL-99 Vì vậy, chuyển đổi liệu qua hệ quản trị CSDL khả thi mặt thiết kế lược đồ Tuy nhiên, với hệ quản trị sở liệu số định nghĩa mặt kiểu liệu cú pháp truy vấn đơi chút khác biệt bất cập chuyển đổi liệu từ Hệ quản trị csdl sang hệ quản trị csdl khác số cách để chuyển đổi liệu như: sử dụng CSV file XML file Json file để làm file trung gian Với cách này, ta làm bước sau, giả sử RDMBSs: RDBMS A (source) RDBMS B(destination): ( ảnh minh hoạ) ● ● B1: dump database table RDBMS A thành file CSV XML định dạng tương tự B2: Tạo database tables RDBMS B giống với database thuộc RDBMS A với trường kiểu liệu tương ứng 33 B3: Load file CSV or XML vào database table nằm RDBMS B Mặc phải xử lý tay, cách kiểm sốt khác kiểu liệu RDBMS dễ dàng thực Tuy nhiên với CSDL lược đồ lớn phức tạp, dễ bị nhầm lẫn Ngồi ra, ta sử dụng tools hữu ích như: ● SSIS (SQL Server Integration Services) Hướng dẫn cài đặt link SSIS công cụ dùng để thực tác vụ tích hợp liệu, ELT(Extract, Transform, Loading) data, Chuyển hóa kiểu liệu khác nhau,… Nó khả tích hợp từ nhiều nguồn liệu, thực chuẩn hoá load liệu đến database tập trung ● Pentaho Data Intergration(PDI) tools ETL mạnh mẽ dùng để tổng hợp, chuyển đổi xử lý liệu nhiều tính như: chuyển đổi liệu từ DB sang DB khác, xuất liệu từ DB excel file csv nhanh chóng,… Hướng dẫn sử dụng Pentaho link ● SQL Server Migration Assistant (SSMA) công cụ sử dụng để tự động chuyển đổi DB như: Oracle, MySQL, Microsoft Access, DB2 sang SQL Server Để tìm hiểu thêm, truy cập: link ● SQLines Data công cụ hữu ích cho việc chuyển đổi liệu RDBMSs (MySQL ßà SQL Server, MySQL ßà Oracle, SQL Server ßà Oracle, SQL Server PostgreSQL, Oracle PostgreSQL) Link download: link ● - - NoSQLNoSQL - - - Như trình bày trên, NoSQL loại loại cấu trúc khác nhau, loại điểm mạnh riêng mà loại khác thay Chính vậy, việc chuyển đổi liệu từ loại CSDL sang loại CSDL khác khơng khả thi Ví dụ: Việc chuyển đổi CSDL dạng đồ thị graph database sang dạng document oriented database khó thực hiện, đối tượng (nodes) Graph mối quan hệ nodes khác liệu dạng document lại mối quan hệ ghi với thực chi phí lớn Trong đó, việc chuyển đổi liệu từ document sang column family ngược lại khả thi, loại csdl dựa mơ hình key-value store quan hệ đóng gói lại dạng object (document store) dạng record (column family) Mặt khác, với document ghi lưu dạng JSON Còn với column family, 34 ghi biểu diễn row giống với RDBMS Ta dễ dàng chuyển đổi liệu từ column family document cách lấy record chuyển đổi sang định dạng JSON Hình minh hoạ bên dưới: Column family to Document - Ngược lại, để chuyển đổi từ document column family, trước tiên ta phải định nghĩa schema phù hợp tương ứng với toàn ghi nằm document, sau chuyển ghi từ document sang column family Vì liệu lưu theo dạng cột nên chuyển đổi tốn chi phí cho thao tác đọc ghi SQLNoSQL - - Với tính chất SQL NoSQL nêu trên, liệu lưu NoSQL liệu khơng cấu trúc Vậy nên việc chuyển đổi liệu từ SQLNoSQL trở nên dễ dàng NoSQL lưu trữ data chủ yếu dạng JSON khơng u cầu kiểu liệu, khơng gặp khó khăn việc xác định kiểu liệu thực mapping Tuy nhiên loại NoSQL mapping được, để lựa chọn phù hợp loại NoSQL, ta cần phải hiểu cấu trúc loại 35 - - - phải phù hợp với loại liệu mà ta muốn mapping, từ lựa chọn CSDL phù hợp để việc mapping tính khả thi Khi muốn mapping data từ SQL → NoSQl, số tính chất SQL chuyển sang sử dụng NoSQL như: join, transaction, ACID… khiến cho liệu bị hạn chế Nếu liệu liên quan đến việc giao dịch hay bn bán, ngân hàng khơng nên sử dụng NoSQL để lưu trữ Để chuyển đổi liệu từ SQL → NoSQL, ta sử dụng file định dạng JSON, XML, CSV để làm file trung gian để chuyển đổi: Giả sử mapping data từ MySQL Document database Mỗi đối tượng lưu trữ nhiều tables MySQL, ta dễ dàng lấy thông tin đối tượng thông qua mối quan hệ bảng chuyển sang dạng JSON Với liệu dạng JSON, việc import vào Document database trở nên đơn giản dễ dàng thực (ví dụ minh hoạ bên dưới): 36 Một ví dụ Relation database mapping data sang MongoDB: 37 NoSQLSQL - - Với RDBMS lưu trữ liệu cấu trúc, cần định nghĩa lược đồ (schema) cố định rõ tables, columns kiểu liệu column nằm table, đồng thời xác định mối quan hệ bảng (một-một, một-nhiều, nhiều-nhiều,…), khố chính, khố ngoại,… Trong khái niệm không tồn NoSQL, NoSQL lưu trữ liệu cách linh hoạt với liệu cấu trúc, khơng cấu trúc bán cấu trúc, mối quan hệ liệu liên quan đóng gói thành đối tượng, ghi lưu thành documents, document cấu trúc khác nhau… Chính khác vậy, nên việc mapping data từ NoSQLSQL khó khăn nhiều so với SQL NoSQL Để mapping data từ NoSQL → SQl, ta cần xác định cụ thể vấn đề sau: ● Ta cần định nghĩa schema cụ thể, xác định tất bảng tạo fields documents loại liệu cụ thể (ví dụ: Học Sinh khác với giáo viên, đơn hàng khác với khách hàng) Sau xác định kiểu liệu fields ● Xác định mối quan hệ bảng (một-một, một-nhiều, nhiều-một, nhiều-nhiều,…), xác định khố chính, khố ngoại ● Tuỳ theo loại database NoSQL, cần phải xử lý liệu cho chuyển từ trạng thái tự nhiên sang trạng thái phù hợp với schema SQL, sau export file JSON CSV ● Từ file JSON CSV, cần tách liệu đưa vào tables SQL cho phù hợp Ví dụ minh hoạ: 38 - Để chuyển data từ NoSQL → SQL, liệu nằm NoSQL phải loại (ví dụ: đơn hàng khách hàng trộn lẫn được) Khi liệu chuyển từ NoSQL → SQL, bảng trở nên rộng phải bao phủ tồn fields documents đồng thời tồn nhiều ghi mà field giá trị null Chính vậy, tốn chi phí liệu cực lớn 39 Phần IV Thiết kế hệ thống tích hợp liệu từ nhiều nguồn SQL, NoSQL - - - Việc xây dựng hệ thống tích hợp liệu từ nhiều nguồn với loại CSDL khác SQL, NoSQL khó khăn phức tạp, cần phải hiểu rõ loại CSDL thuộc loại SQL NoSQL mặt cấu trúc, lược đồ, cách lưu trữ, mối quan hệ,… Từ phân tích trình bày phía loại CSDL khác cách chuyển đổi liệu từ CSDL sang CSDL khác, đề xuất thiết kế tổng quan hệ thống tích hợp liệu từ nhiều nguồn khác thuộc loại SQL NoSQL hình bên dưới: Hình bên mơ tả hệ thống chuyển đổi liệu từ nhiều nguồn, liệu từ nhiều nguồn thể database: DB1, DB2, DB3 Giả sử liệu từ nhiều nguồn khác thuộc loại chủ đề (ví dụ: Tin tức, Thông tin sinh viên, Thông tin khách hàng, … ) Các database liệu tích hợp vào Data Intergration Channel thơng qua APIs cung cấp sẵn xếp thành hàng đợi Sau 40 - - - - tích hợp vào Data Integration Channel, liệu lại xử lý qua Data Transformer Service để biến đổi thành liệu theo cấu trúc chung phù hợp với mục đích sử dụng Trước xử lý liệu, ta cần xác định lược đồ chung cho tất liệu, xác định tất trường bảng, sau xác định tên kiểu liệu cho trường Với đầu vào loại database liệu, Data Transformer Service tác vụ xử lý giống exceptions, nhiệm vụ chúng biến đổi loại liệu khác thành liệu lược đồ xác định trước Vì liệu từ nhiều nguồn nhiều loại khác (khác mặt cấu trúc, các, tên trường, ….) nên Data Transformer Service sinh để xử lý loại database liệu xác định Vì nhiều database liệu khác sinh nhiều Data Transformer Service Cụ thể Data Transformer Service làm gì? Vì nhiều loại database liệu từ nguồn khác nhau, loại database định nghĩa đối tượng khác về: tên trường, số lượng column table, kiểu liệu trường,… Nhiệm vụ Data Transformer Service gộp trường ý nghĩa thành trường nhất, đồng thời gộp kiểu liệu trường thuộc DB khác lại (ví dụ tuổi định nghĩa DB A integer, DB B long, ta mapping thành kiểu liệu int),… Ví dụ: CSDL A định nghĩa đối tượng sinh viên bao gồm trường như: tên_sv, mssv, lớp, ngay_sinh CSDL B định nghĩa đối tượng sinh viên bao gồm trường: TEN, SHSV, NGAYSINH, LOP, QUEQUAN, SDT, EMAIL Với ví dụ trên, ta thấy tên_sv TEN khái niệm tên sinh viên, SHSV MSSV ý nghĩa, ngay_sinh NGAYSINH ý nghĩa,… ta thấy CSDL B xác định đối tượng sinh viên nhiều trường so với CSDL A Để gộp CSDL thành CSDL tổng quát, cần phải gộp trường nghĩa CSDL thành trường đồng thời giữ thông tin đầy đủ tất trước Vì vậy, trường hợp này, ta phải xác định CSDL sinh viên bao gồm trường: Name, Student_code, Date of birth, Class, Address, Phone, Email Sau Sẽ Data Transformer Service nhiệm vụ biến đổi CSDL A,B CSDL chung Dữ liệu sau xử lý qua Data Transformer Service lưu vào Database trung gian gọi là: Intermediate DB Sau chuyển đổi, 41 chắn nhiều ghi tồn giá trị null nhiều trường Do đó, ta cần kiểm tra lọc xố bỏ trường giá trị tồn nhiều giá trị null để tiết kiệm nhớ Giúp cho liệu trở nên chuẩn chỉnh Sau lọc cột không cần thiết, liệu chuyển đổi sang Standardization DB Lúc này, tuỳ theo mục đích sử dụng mà liệu chuẩn hoá đánh mục cho phù hợp Ví dụ: muốn xếp danh sách theo cột giá trị name, ta sử dụng non cluster index để đánh mục trường name Kết luận Từ phân tích trình bày cho thấy để tích hợp liệu từ nhiều nguồn khác nhau, trước tiên cần tìm hiểu chi tiết hệ quản trị sở liệu cần tích hợp cách thức tổ chức liệu loại Từ đưa phương pháp phù hợp, tránh rủi ro không cần thiết, đáp ứng nhu cầu sử dụng với cách thiết kế hệ thống tích hợp liệu, chúng tơi mong triển khai cách khả thi áp dụng vào thực tế Tài liệu tham khảo ● ● ● ● ● ● ● ● ● https://dl.acm.org/citation.cfm?id=166656 http://www.academia.edu/download/33559632/V2I800154.pdf https://ieeexplore.ieee.org/abstract/document/6106531 https://www.researchgate.net/profile/Yishan_Li/publication/261079289_A_p erformance_comparison_of_SQL_and_NoSQL_databases/links/564fbcf708 aeafc2aab3ff73.pdf https://ieeexplore.ieee.org/abstract/document/7311143/ http://citeseerx.ist.psu.edu/viewdoc/download? doi=10.1.1.741.4607&rep=rep1&type=pdf https://ieeexplore.ieee.org/abstract/document/7379485/versions https://viblo.asia/p/tim-hieu-tong-quan-he-thong-co-so-du-lieu-va-he-quantri-co-so-du-lieu-924lJXGmKPM https://www.studytonight.com/dbms/overview-of-dbms.php 42 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● https://searchsqlserver.techtarget.com/definition/database-managementsystem https://searchdatamanagement.techtarget.com/definition/RDBMS-relationaldatabase-management-system http://whatisdbms.com/what-is-sql-applications-advantages-anddisadvantages/ https://linhdevelopers.wordpress.com/2014/09/23/gioi-thieu-sqlite-co-so-dulieu-quan-he-nhung-ma-nguon-mo/ https://www.codecademy.com/articles/what-is-rdbms-sql https://viettuts.vn/sql/rdbms-la-gi https://viblo.asia/p/tim-hieu-ve-nosql-Zzb7vDNYMjKd https://techblog.vn/gioi-thieu-ve-nosql-database http://nosql-database.org/ https://en.wikipedia.org/wiki/NoSQL https://stackoverflow.com/questions/5244437/pros-and-cons-of-mongodb https://www.tutorialspoint.com/neo4j/neo4j_features_advantages.htm https://www.tutorialspoint.com/cassandra/cassandra_introduction.htm https://www.quora.com/What-are-the-differences-between-the-SQL-andNoSQL-databases?fbclid=IwAR0cBWxG0eKJcacrvDRIPAouoDd2xnlKIvNbl-VLEqWqvvkfRoHRAF0XGo https://www.quora.com/What-is-the-difference-between-NoSQL-SQL-andMySQL?fbclid=IwAR1hSMgSmssU3UiDDpOJ0CasxEHeYXJFQfOUV9IjiXICt765_NoMT033ZY https://blog.panoply.io/sql-or-nosql-that-is-the-question? fbclid=IwAR1pypa46sTSTk4KwzHBAx49cJjgtbjSbJJWzfk9Jo7pOK3zBU CyawR6atY https://www.digitalocean.com/community/tutorials/a-comparison-of-nosqldatabase-management-systems-and-models? fbclid=IwAR3aER5P5h6jY4iA4JTAcrjQjHR6bKch0M8bwYgTvjnv5sBV_SfxGuYSFs https://dba.stackexchange.com/questions/5/what-are-the-differencesbetween-nosql-and-a-traditional-rdbms?fbclid=IwAR21ifhFqjco_DgmxtuPYxGxhLBGAaQZyd0N3bbU9f8bdIBN7qR9auJSu8 https://stackoverflow.com/questions/10028805/transfer-data-from-onedatabase-to-another-database https://dba.stackexchange.com/questions/35426/how-to-import-tables-datain-mysql-from-sql-server https://docs.microsoft.com/en-us/sql/ssma/sql-server-migration-assistant? view=sql-server-2017 43 ● ● ● ● ● ● ● http://engineering.vtvcab.vn/cai-dat-va-su-dung-pentaho-pdi-de-chuyen-dulieu-giua-cac-csdl/ https://www.mssqltips.com/sqlservertip/2613/export-data-from-mysql-tosql-server/ https://www.quora.com/How-do-I-transfer-data-from-the-SQL-Serverdatabase-to-MongoDB https://dba.stackexchange.com/questions/56731/how-to-convert-sql-serverdatabase-file-to-mongodb https://stackoverflow.com/questions/34855040/how-to-migrate-data-frommongodb-to-mysql https://stackoverflow.com/questions/45729637/convert-mongodb-collectionto-mysql-database https://stackoverflow.com/questions/27119381/how-to-import-data-frommongodb-to-mysql 44

Ngày đăng: 26/03/2019, 15:55

Từ khóa liên quan

Mục lục

  • Lời mở đầu

  • Phần I: Các hệ quản trị cơ sở dữ liệu quan hệ

    • 1. Hệ quản trị cơ sở dữ liệu DBMS

    • 2. Các mô hình cơ sở dữ liệu

    • 3. Các hệ quản trị cơ sở dữ liệu quan hệ RDBMS (Relational Database Management System)

      • 3.1 khái niệm

      • 3.2 Đặc điểm của RDBMS

      • 3.3 Một số hệ quản trị cơ sở dữ liệu quan hệ phổ biến:

        • a. Microsoft SQL Server

        • b. MySQL

        • c. SQLite

        • d. PostgreSQL

        • e. Bảng so sánh

        • 4. Ví dụ về SQL

        • Phần II: Các hệ quản trị cơ sở dữ liệu phi quan hệ - NoSQL

          • 1. NoSQL

            • a. Khái niệm

            • b. Các đặc điểm của NoSQL

            • 2. Phân loại NoSQL

              • a. Key-value stores

              • b. Document Oriented database

              • c. Column-oriented databases (column-family)

              • d. Graph databases

              • 3. Các hệ quản trị cơ sở dữ liệu NoSQL phổ biến hiện nay

                • a. MongoDB

                • b. Cassandra

                • c. Neo4J

Tài liệu cùng người dùng

Tài liệu liên quan