0
Tải bản đầy đủ (.pdf) (61 trang)

Các đặc điểm của PostgreSQL

Một phần của tài liệu NGHIÊN CỨU GIẢI PHÁP NÂNG CAO TỐC ĐỘ HIỂN THỊ DỮ LIỆU TRÊN BẢN ĐỒ TRỰC TUYẾN (Trang 29 -29 )

- Hoạt động được trên nhiều hệ điều hành như: Linux, UNIX (AIX, BSD, HP- UX, SGI IRIX, Mac OS X, Solaris, Tru64) và Windows.

- Lưu trữ (dạng nhị phân) các đối tượng có dữ liệu lớn như hình ảnh, âm thanh, hoặc video.

- Hỗ trợ các ngôn ngữ như C/C++, Java, .Net, Perl, Python, Ruby, Tcl, ODBC. - PostgreSQL có các tính năng phức tạp như kiểm soát truy cập đồng thời nhiều phiên bản (MVCC), khôi phục dữ liệu tại từng thời điểm (Recovery), quản lý dung lượng bảng (tablespaces), sao chép không đồng bộ, giao dịch lồng nhau (savepoints), sao lưu trực tuyến hoặc nội bộ.

- PostgreSQL hỗ trợ bộ ký tự quốc tế, hỗ trợ bảng mã nhiều byte, Unicode và cho phép định dạng, sắp xếp và phân loại ký tự văn bản (chữ hoa, thường). PostgreSQL còn được biết đến với khả năng mở rộng để nâng cao cả về số lượng dữ liệu quản lý và số lượng người dùng truy cập đồng thời. Đã từng có những hệ thống PostgreSQL hoạt động trong môi trường thực tế thực hiện quản lý vượt quá 4 terabyte dữ liệu.

Bảng 1.2. Các khả năng của hệ quản trị dữ liệu PostgreSQL

- Có hầu hết các truy vấn SQL với các kiểu dữ liệu như Integer, Numeric, Boolean, Char, Varchar, Date, Interval và Timestamp.

- Tạo index giúp quá trình truy vấn đạt hiệu quả cao hơn.

- Hỗ trợ các chức năng tìm kiếm tổng quát hóa có thể “gắn” các chỉ mục vào giúp quá trình tìm kiếm được thực hiện trên phạm vi rộng hơn như: Compound, Unique, Partial, Functional indexes.

- Cho phép người dùng tạo các kiểu dữ liệu mới, các hàm, các thủ tục…

- PostgreSQL không quy định những hạn chế trong việc sử dụng mã nguồn của phần mềm nên có thể được dùng, sửa đổi và phổ biến bởi người dùng cho bất kỳ mục đích nào.

- Hỗ trợ đa người dùng: dữ liệu không gian có xu hướng là các dữ liệu tham chiếu, tức là được chia sẻ bởi nhiều người dùng. Lưu trữ dữ liệu trong hệ quản trị cơ sở dữ liệu sẽ cung cấp những lợi ích như: truy cập từ xa thông qua các chuẩn giao tiếp như: JDBC, ODBC, PERL/DBI...làm tăng tính bảo mật cho dữ liệu: một số người

dùng có toàn quyền tuy nhiên một số người dùng chỉ có thể đọc hay không được nhìn thấy.

- Cho phép thực hiện các câu truy vấn truyền thống: Select, Update, Insert.... - Cho phép thực hiện các câu truy vấn không gian với phần mở rộng PostGIS: ST_Distance, ST_DWithin, ST_Intersects…

1.3.3. Ƣu nhƣợc điểm của PostgreSQL

1.3.3.1. Ưu điểm

- Dễ cấu hình, thích ứng tốt, độ tin cậy cao. - Hỗ trợ tốt với PHP và Java.

- Là một phần mềm mã nguồn mở. - Tuân thủ các chuẩn của SQL.

1.3.3.2. Nhược điểm

- Bị giới hạn về số lượng và độ lớn dữ liệu.

- Tốc độ truy cập chậm hơn MySQL (mã nguồn mở) - Cộng đồng người sử dụng tương đối ít.

Các bảng so sánh dưới đây sẽ tóm tắt các ưu nhược điểm của PostgreSQL so với các hệ quản trị CSDL khác:

Bảng 1.3. So sánh tính năng hỗ trợ hệ điều hành hỗ trợ

Windows MacOS Linux Unix

DB2 có không có có

Microsoft SQL Server

có không không không

MySQL có có có có

Oracle có có có có

PostgreSQL có có có có

Bảng 1.4. So sánh hiệu suất lưu trữ số liệu

Độ lớn CSDL tối đa. Độ lớn bảng tối đa Độ lớn hàng tối đa. Số cột tối đa cho mỗi hàng DB2 512 TB 512 TB 32677 B 1012 Microsoft SQL Server 524258 TB 524258 TB không giới hạn 20000

MySQL không giới hạn 16 TB 64 KB 4096

Oracle không giới hạn không giới hạn

không giới hạn

1000

Bảng 1.5. So sánh một số tính năng cơ bản

Union Intersect Except

Inner joins Outer joins Inner selects Merge joins DB2 có có có có có có có Microsoft SQL Server có có có có có có có

MySQL có không không có có có có

Oracle có có có có có có có

PostgreSQL có có có có có có có Bảng 1.6. So sánh phương thức quản lý và phân vùng

Range Hash Composite (Range+Hash) List

DB2 có có có có

Microsoft SQL Server

có không không không

MySQL có có có có Oracle có có có có PostgreSQL có có có có Mã hóa mạng có nguồn gốc Bảo vệ Brute-force Quy định mật khẩu phức tạp Chứng nhận an toàn DB2 có ? có có Microsoft SQL Server có ? có có

MySQL có không không không

Oracle có có có có

PostgreSQL có không không có

Từ 5 bảng trên có thể thấy, Microsoft SQL Server và MySQL nhìn chung có hiệu năng kém hơn so với 3 DBMS còn lại. Trong 3 DBMS này, Oracle và DB2 là các

phần mềm thương mại trong khi PostgreSQL là phần mềm mã nguồn mở. Do DBMS được yêu cầu quản lý dữ liệu không quá lớn, PostgreSQL thích hợp hơn với đầy đủ các tính năng cơ bản như DB2 và Oracle. Về bảo mật, do cơ sở dữ liệu của ta thực chất được quản lý theo cây thư mục nên bảo mật được chuyển sang cho hệ điều hành nhiều hơn là cho DBMS. Các tính năng bảo mật hiện có của PostgreSQL, dù không đầy đủ bằng DB2 và Oracle, đủ để đảm bảo vấn đề bảo mật của cơ sở dữ liệu.

1.3.4. Module PostGIS

PostGIS được Refraction Research Inc phát triển, như một dự án nghiên cứu công nghệ CSDL không gian. PostGIS hỗ trợ đối tượng địa lý cho CSDL đối tượng quan hệ PostgreSQL. PostGIS “kích hoạt khả năng không gian” cho PostgreSQL, cho phép PostgreSQL sử dụng như một CSDL không gian phụ trợ cho các hệ thống thông tin địa lý (GIS). PostGIS được sử dụng như một CSDL không gian, nên nó bao gồm tất cả các đặc điểm của CSDL không gian. Ngoài ra, nó còn có những đặc trưng như:

+ Các kiểu dữ hình học như Point, Linestring, Polygon, Multipoint, multilinestring, Multipolygons và Geometrycollection. Các kiểu dữ liệu hình học này được lưu trữ như những đối tượng hình học.

+ Các toán tử không gian cho phép xác định các phép đo không gian địa lý như tính

diện tích, tính khoảng cách, tính độ dài, và tính chu vi. PostGIS hỗ trợ các hàm như: ST_Area(), ST_Length(), ST_Perimeter(), ST_Distance()…các hàm này thường thực hiện chức năng kiểu phép đo.

+ Các toán tử không gian cho phép xác định không gian địa lý. Các thao tác như phép

hợp, so sánh sự khác nhau giữa các đối tượng hình học. Các toán tử được PostGIS hỗ trợ để làm việc này có thể là: ST_Difference(): trả về phần khác nhau giữa 2 đối tượng hình học hay hàm ST_Buffer()…

+ PostGIS cung cấp việc đánh chỉ mục không gian tốc độ cao sử dụng GisT hoặc R- tree. Công cụ đánh chỉ mục không gian mà PostGIS hỗ trợ làm tăng tốc cho truy vấn không gian đặc biệt là trên bảng dữ liệu lớn.

+ Chỉ mục hỗ trợ chọn lọc, cung cấp việc thực hiện truy vấn bản đồ pha trộn truy vấn không gian hoặc truy vấn không có không gian.

CHƢƠNG 2. GIẢI PHÁP NÂNG CAO TỐC ĐỘ HIỂN THỊ DỮ LIỆU ĐỊA LÝ TRÊN BẢN ĐỒ TRỰC TUYẾN

2.1. Nguyên nhân làm chậm tốc độ hiển thị khi số lƣợng đối tƣợng lớn

Máy tính luôn phải cấp phát bộ nhớ cho quá trình hiển thị các đối tượng trên màn hình. Khi số lượng điểm tăng lên sẽ chiếm dụng nhiều bộ nhớ, đồng thời quá trình vẽ lại các đối tượng trên màn hình khi người sử dụng tương tác với bản đồ sẽ tốn nhiều gian hơn. Đây là nguyên nhân chính ảnh hưởng tới tốc độ hiển thị dữ liệu trên Web khi người sử dụng thực hiện các thao tác như thay đổi tỷ lệ bản đồ hoặc di chuyển bản đồ với tần suất cao. Mục đích của quá trình gộp điểm nhằm gom những đối tượng gần nhau hoặc bị chồng đè lên nhau và thể hiện thành một đối tượng đại diện. Bằng cách này, các đối tượng đại diện sẽ được tạo ra, thay thế cho các đối tượng trước đây và có số lượng ít hơn nhiều lần. Do đó máy tính (trình duyệt) chỉ quản lý ít hơn các đối tượng đang hiển thị mà không ảnh hưởng tới nội dung bản đồ khi người dùng xem ở từng mức zoom cụ thể.

2.2. Giới thiệu các kĩ thuật phân cụm.

Hiện nay có rất nhiều các thuật toán khác nhau được sử dụng để xây dựng các nhóm phân biệt từ cơ sở dữ liệu lớn. Trong phần này, học viên sẽ trình bày về hai thuật toán phân cụm cổ điển và một số thuật toán khác liên quan đến những vấn đề và tập dữ liệu cụ thể.

2.2.1. Các thuật toán phân cụm cơ bản.

 Thuật toán phân cấp: Thuật toán phân cấp tạo ra một chuỗi lồng nhau các nhóm con, phân rã tập dữ liệu/đối tượng có thứ tự phân cấp theo một tiêu chí nào đó. Mỗi mức phân rã là sự gộp (hay tách) hai cụm từ mức phân rã cao hơn hoặc thấp hơn. Có hai loại phân rã:

- Nhóm gộp có thứ bậc - bottom up: + Bắt đầu với những cụm chỉ là 1 phần tử

+ Ở mỗi bước, gộp 2 cụm gần nhau thành 1cụm.

+ Khoảng cách giữa 2 cụm: 2 điểm gần nhất từ 2 cụm, hoặc khoảng cách trung bình, vv...

- Nhóm phân chia có thứ bậc - top down: + Bắt đầu với 1 cụm bao gồm tất cả dữ liệu + Phân chia 2 cụm con

+ Tiếp tục phân chia trên 2 cụm con

+ Kết quả sinh ra là sơ đồ hình cây, thể hiện các mức phân rã.

Thuật toán phân cấp bottom up bắt đầu với mỗi đối tượng bằng việc coi nó là một cụm riêng biệt sau đó sáp nhập các cụm này theo phép đo khoảng cách. Quá trình

phân cụm dừng lại khi mọi đối tượng được gộp trong một nhóm duy nhất hoặc bất kỳ nhóm nào mà người dùng mong muốn. Thuật toán top down thì theo một quy trình ngược lại.

Hình minh họa dưới đây thể hiện các phương pháp khác nhau của thuật toán phân cấp. Hình 2.1a và 2.1b minh họa việc gộp 2 cụm thành một hoặc tách 1 cụm thành 2 cụm con. Hình 2.1c và 2.1d thể hiện sự khác nhau giữa việc nhóm p1 với p2 và nhóm p3 với p4 với các bước thao tác tương tự nhau.

Hình 2.1a. Thuật toán phân cụm phân cấp 1 ( L.Kaufman & P.J. Rousseeuw, 1990); hình 2.1b. Sơ đồ cây 1 (Periklis Andritsos, 2002)

Hình 2.1c. Thuật toán phân cụm phân cấp 2 ( L.Kaufman & P.J. Rousseeuw, 1990); hình 2.1d. Sơ đồ cây 2 (Periklis Andritsos, 2002)

 Thuật toán phân vùng: Thuật toán phân vùng (hình 2.2) phân chia các đối tượng dữ liệu thành các nhóm nhỏ hay cụm không chồng lấp nhau, tức là mỗi đối tượng dữ liệu nằm trong một cụm riêng. Vì thế thuật toán này trái ngược với thuật toán phân cấp. Phân chia Gộp Đối tượng Phân chia Gộp Đối tượng Phân rã Gộp

Hình 2.2: Thuật toán phân vùng (L.Kaufman & P.J. Rousseeuw, 1990) Hai thuật toán phân vùng và phân cấp có thể tích hợp với nhau. Có nghĩa là kết quả do thuật toán phân cấp tạo ra có thể được phát triển nhờ các bước phân vùng.

2.2.2. Các độ đo sử dụng trong phân cụm.

Giả sử trong một miền dữ liệu D, một phần tử dữ liệu p được biểu diễn bằng một véc tơ có số chiều là n (p1, p2,…,pn), trong đó mỗi chiều biểu diễn một thuộc tính mô tả phần tử dữ liệu p. Tùy thuộc vào kiểu giá trị biểu diễn mà độ tương tự giữa hai phần tử p1 và p2 có thể được tính toán bằng các cách khác nhau. Ở đây, học viên chỉ đề cập đến cách tính khoảng cách cho trường hợp giá trị biểu diễn pi các thuộc tính là liên tục (hay là các số thực).

 Độ đo khoảng cách Manhattan:

 Độ đo khoảng cách Euclide:

 Độ đo khoảng cách Minkowski:

Các điểm ban đầu Phân cụm phân vùng

(2.1)

(2.2)

Từ công thức tính độ đo khoảng cách Minkowski, khi q = 1 là độ đo Manhattan, khi q = 2 là độ đo Euclide.

2.3. Gộp nhóm với thuật toán phân vùng K-means

2.3.1. Giới thiệu về thuật toán phân vùng K-means

K-means là một trong những thuật toán đơn giản nhất được sử dụng để giải quyết các vấn đề phân cụm đã biết và là một trong những thuật toán phân vùng được sử dụng phổ biến. Thuật toán này do Mac - Queen đề xuất năm 1967, sau đó được JA Hartigan và MA Wong phát triển vào năm 1975. Mac - Queen cho rằng K-means là một thuật toán gán mỗi đối tượng vào một cụm có trọng tâm (centroid ‐ mean) gần nhất (Li, ZL, 1997). Thuật toán k-means cơ bản hoạt động dựa trên phương pháp giảm thiểu sai số bình phương và quy trình hoạt động của nó như sau:

- Chọn ngẫu nhiên k dữ liệu điểm từ toàn bộ tập dữ liệu và dùng các điểm này như tâm của k cụm, sau đó xác định tọa độ của tâm (hình 2.4)

Hình 2.4. Gán k tâm cụm một cách ngẫu nhiên (L.Kaufman & P.J. Rousseeuw, 1990)

- Tính toán khoảng cách Euclide của mỗi dữ liệu điểm với mỗi tâm cụm sau đó gán dữ liệu điểm vào cụm mà nó có khoảng cách gần tâm nhất (hình 2.5)

Hình 2.5. Gán mỗi điểm vào một cụm gần nhất (L.Kaufman & P.J. Rousseeuw, 1990)

- Tính toán lại tâm cụm của mỗi cụm mới hình thành để khoảng cách sai số bình phương của mỗi cụm là nhỏ nhất (hình 2.6)

Hình 2.6. Tâm của mỗi cụm dịch chuyển sau khi được tính toán lại (L.Kaufman & P.J. Rousseeuw, 1990)

Hình 2.7. Gán lại các điểm vào các cụm gần nhất và lặp lại quy trình này (L.Kaufman & P.J. Rousseeuw, 1990)

- Lặp lại các bước 2 và 3 đến khi tâm các cụm không thay đổi

- Thuật toán dừng lại khi những thay đổi về vị trí của các điểm bằng không hoặc nhỏ hơn giá trị cho sẵn nào đó, và mỗi đối tượng chỉ được gán cho 1 cụm.

Thuật toán k-means khá đơn giản và dễ sử dụng để phân loại một tập dữ liệu cho trước thông qua một số nhất định các cụm (giả sử là k cụm) được quy ước trước. Ý tưởng chính của thuật toán này là xác định k tâm của k cụm, độ chính xác của thuật toán này phụ thuộc cơ bản vào việc lựa chọn những điểm ban đầu. Để độ chính xác cao hơn, những điểm ban đầu cần có độ khác biệt nhất định.

2.3.2. Cấu trúc của thuật toán phân vùng K-means

Phần này học viên sẽ mô tả về cấu trúc của thuật toán k-means. Thuật toán chạy trên một tập m các đối tượng không gian X= { 𝑥1,𝑥2,….𝑥𝑚}với 𝑥𝑖 ∈ 𝑅𝑛 là một véc tơ n chiều trong không gian Euclidean và i=1, 2,...m. Tập dữ liệu có thể được biểu diễn

bằng ma trận cỡ m x n như sau:

𝑥

11

𝑥

12

… 𝑥

1𝑛

𝑥

……..21

𝑥

22

… 𝑥

2𝑛

𝑥

𝑚1

𝑥

𝑚2

… 𝑥

𝑚𝑛

(2.4)

Trong đó, mỗi hàng biểu diễn một đối tượng với n thuộc tính. Dựa trên khái niệm tương tự, các đối tượng tương tự nhau được đưa vào cùng một cụm. Một cụm 𝑐𝑗 là một tập con của m đối tượng đầu vào. Đối tượng m có thể được phân vào k cụm

khác nhau C = {𝑐1,𝑐2, … … 𝑐𝑘} , trong đó 𝑐𝑗 ∈ 𝑅𝑛 và j= 1, 2,..,k dựa trên một số đo tương tự. K (số lượng cụm) phải nhỏ hơn n (số lượng thuộc tính), nếu không kết quả sẽ quy về trường hợp mỗi đối tượng là một cụm với sai số bằng 0. Mỗi đối tượng được gán vào một và chỉ một cụm và mỗi cụm được xác định bằng một tâm, ký hiệu là 𝜇𝑗. Như đã đề cập ở phần trước, k-means là thuật toán phân vùng m dữ liệu điểm thành K cụm chứa mj điểm vì thế mục đích của thuật toán này là giảm thiểu công thức tính sai số bình phương.

Trong đó, 𝑥𝑖− 𝜇𝑗 là phép đo khoảng cách được chọn sẵn giữa điểm 𝑥𝑖 và tâm cụm µ𝑗, là một chỉ số về khoảng cách của m dữ liệu điểm tới tâm cụm tương ứng.

Thuật toán được bắt đầu bằng việc chọn m điểm trong 𝑅𝑑 như đại diện “tâm” cho K

cụm ban đầu. Cách thức chọn các điểm đầu tiên này bao gồm việc lấy mẫu ngẫu nhiên từ tập dữ liệu, thiết lập nó như một giải pháp phân cụm cho một nhóm nhỏ dữ liệu hoặc xáo trộn toàn bộ ý nghiã của cả tập dữ liệu k lần. Sau đó thuật toán lặp lại giữa hai bước đến khi đạt được hội tụ. Bước đầu tiên (gán điểm) là đưa mỗi điểm về một

Một phần của tài liệu NGHIÊN CỨU GIẢI PHÁP NÂNG CAO TỐC ĐỘ HIỂN THỊ DỮ LIỆU TRÊN BẢN ĐỒ TRỰC TUYẾN (Trang 29 -29 )

×