Tải bản đầy đủ (.docx) (33 trang)

Tiểu luận môn cơ sở dữ liệu nâng cao MẠNG XÃ HỘI VỚI NEO4J Social Network

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (613.44 KB, 33 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN

CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT

ĐỀ TÀI:
MẠNG XÃ HỘI VỚI NEO4J
Social Network

Giảng viên hướng dẫn : PGS.TS. Đỗ Phúc
Sinh viên thực hiện: Trần Duy Phong
MHHV:CH1101160


Cơ sở dữ liệu nâng cao

PGS.TS Đỗ Phúc
MỤC LỤC

Trần Duy Phong – CH1101160

Trang 2


Cơ sở dữ liệu nâng cao

PGS.TS Đỗ Phúc

CHƯƠNG I: MẠNG XÃ HỘI
1. Khái niệm mạng xã hội


Mạng xã hội, hay gọi là mạng xã hội ảo, (tiếng Anh: social network) là dịch vụ nối
kết các thành viên cùng sở thích trên Internet lại với nhau với nhiều mục đích khác nhau
không phân biệt không gian và thời gian.
Mạng xã hội có những tính năng như chat, e-mail, phim ảnh, voice chat, chia sẻ
file, blog và xã luận. Mạng đổi mới hoàn toàn cách cư dân mạng liên kết với nhau và trở
thành một phần tất yếu của mỗi ngày cho hàng trăm triệu thành viên khắp thế giới. Các
dịch vụ này có nhiều phương cách để các thành viên tìm kiếm bạn bè, đối tác: dựa theo
group (ví dụ như tên trường hoặc tên thành phố), dựa trên thông tin cá nhân (như địa chỉ
e-mail hoặc screen name), hoặc dựa trên sở thích cá nhân (như thể thao, phim ảnh, sách
báo, hoặc ca nhạc), lĩnh vực quan tâm: kinh doanh, mua bán...
Hiện nay thế giới có hàng trăm mạng mạng xã hội khác nhau, với MySpace và
Facebook nổi tiếng nhất trong thị trường Bắc Mỹ và Tây Âu; Orkut và Hi5 tại Nam Mỹ;
Friendster tại Châu Á và các đảo quốc Thái Bình Dương. Mạng xã hội khác gặt hái được
thành công đáng kể theo vùng miền như Bebo tại Anh Quốc, CyWorld tại Hàn Quốc,
Mixi tại Nhật Bản và Facebook tại Việt Nam.
Về cơ bản, mạng xã hội giống như một trang web mở với nhiều ứng dụng khác
nhau. Mạng xã hội khác với trang web thông thường ở cách truyền tải thơng tin và tích
hợp ứng dụng. Trang web thơng thường cũng giống như truyền hình, cung cấp càng
Trần Duy Phong – CH1101160

Trang 3


Cơ sở dữ liệu nâng cao

PGS.TS Đỗ Phúc

nhiều thông tin, thơng tin càng hấp dẫn càng tốt cịn mạng xã hội tạo ra các ứng dụng mở,
các công cụ tương tác để mọi người tự tương tác và tạo ra dịng tin rồi cùng lan truyền
dịng tin đó.

Sự ra đời ồ ạt của các mạng xã hội (Social Network) thời gian gần đây ở Việt Nam
cũng như trên toàn thế giới đã tạo ra một làn sóng mới kích thích sự phát triển của kênh
truyền thông cộng đồng.
Thời kỳ trăm hoa đua nở của các mạng xã hội tất yếu dẫn đến việc phân khúc thị
trường ngày một nhỏ hơn, cạnh tranh giữa các mạng ngày một gay gắt hơn. Điểm nổi bật
của Social Network mà ai cũng nhận thấy đó là tính kết nối và chia sẻ rất mạnh mẽ. Nó
phá vỡ những ngăn cách về địa lý, ngơn ngữ, giới tính lẫn quốc gia. Những gì bạn làm,
bạn nghĩ, cả thế giới có thể chia sẻ với bạn chỉ trong tích tắc.
Social Network site hay mạng xã hội là mạng được tạo ra để tự thân nó lan rộng
trong cộng đồng thông qua các tương tác của các thành viên trong chính cộng đồng đó.
Mọi thành viên trong mạng xã hội cùng kết nối và mỗi người là một mắt xích để tạo nên
một mạng lưới rộng lớn truyền tải thơng tin trong đó.
Chúng ta cần phân biệt hai khái niệm Social Media (truyền thông công chúng)
và Social Network (mạng xã hội). Hãy xét trên hai phần cơ bản của truyền thông: sản
xuất nội dung và phân phối nội dung (khác với phát hành). Trong khi mạng xã hội đề cập
đến một tập hợp các phần tử (thành viên) và các quan hệ liên kết giữa chúng thì Social
Media đề cập tới hình thức sản xuất và phân phối nội dung. Như vậy, ngay cả MySpace
hay Facebook, tự thân nó khơng phải Social Media vì nó khơng sản xuất mà cũng không
phân phối, mà là mạng xã hội, nhưng nó cung cấp mơi trường để các blogger sản xuất và
phân phối. Social Mediakhông hề phụ thuộc vào Social Network. Ví dụ nếu ai đó lập một
trang web cá nhân để đưa các bài viết và quan điểm cá nhân của mình lên, vậy là đã sản
xuất nội dung, nhờ Internet phân phối chính là Social Media.
Với những đặc điểm đó, lợi ích mà mạng xã hội có thể mang lại cho doanh nghiệp bao
gồm:
Trần Duy Phong – CH1101160

Trang 4


Cơ sở dữ liệu nâng cao


PGS.TS Đỗ Phúc

-

Thiết lập mối quan hệ với số đông khách hàng mục tiêu.
Khả năng lan truyền thơng tin nhanh chóng.
Các hoạt động trực tuyến sẽ truyền cảm hứng cho các cuộc hội thoại trong "thế

-

giới thực".
Thông tin cá nhân khá chân thực về người dùng.
Cơ hội để kể chuyện về doanh nghiệp và sản phẩm của bạn đồng thời tăng độ

-

nhận biết thương hiệu.
Gia tăng trải nghiệm của người dùng.

Về mặt bản chất, mạng xã hội chính là hình thức làm marketing truyền miệng trên
môi trường Internet. "Tiếng lành đồn xa, tiếng dữ đồn xa", với khả năng lan truyền thông
tin nhanh như vận tốc ánh sáng, mạng xã hội có thể trở thành "kẻ hủy diệt" doanh nghiệp
một khi những tin tức bất lợi được lan truyền vượt quá khả năng kiểm soát của doanh
nghiệp. Vì thế, thâm nhập các mạng xã hội tập trung đơng đảo nhóm khách hàng mục
tiêu để hiểu rõ hơn nhu cầu của họ, đồng thời hạn chế tối đa các rủi ro cho doanh nghiệp
là việc tất yếu mà các marketer nên làm.
2. Lịch sử mạng xã hội
Mạng xã hội xuất hiện lần đầu tiên năm 1995 với sự ra đời của trang Classmate
với mục đích kết nối bạn học, tiếp theo là sự xuất hiện của SixDegrees vào năm 1997 với

mục đích giao lưu kết bạn dựa theo sở thích.
Năm 2002, Friendster trở thành một trào lưu mới tại Hoa Kỳ với hàng triệu thành
viên ghi danh. Tuy nhiên sự phát triển quá nhanh này cũng là con dao hai lưỡi: server của
Friendster thường bị quá tải mỗi ngày, gây bất bình cho rất nhiều thành viên.
Năm 2004, MySpace ra đời với các tính năng như phim ảnh (embedded video) và
nhanh chóng thu hút hàng chục ngàn thành viên mới mỗi ngày, các thành viên cũ của
Friendster cũng lũ lượt chuyển qua MySpace và trong vòng một năm, MySpace trở thành
mạng xã hội đầu tiên có nhiều lượt xem hơn cả Google và được tập đoàn News
Corporation mua lại với giá 580 triệu USD.
Năm 2006, sự ra đời của Facebook đánh dấu bước ngoặt mới cho hệ thống mạng
xã hội trực tuyến với nền tảng lập trình "Facebook Platform" cho phép thành viên tạo ra
những cơng cụ (apps) mới cho cá nhân mình cũng như các thành viên khác dùng.
Trần Duy Phong – CH1101160

Trang 5


Cơ sở dữ liệu nâng cao

PGS.TS Đỗ Phúc

Facebook Platform nhanh chóng gặt hái được thành cơng vược bực, mang lại hàng trăm
tính năng mới cho Facebook và đóng góp khơng nhỏ cho con số trung bình 19 phút mà
các thành viên bỏ ra trên trang này mỗi ngày.
Cấu thành
Nút (node): Là một thực thể trong mạng. Thực thể này có thể là một cá nhân, một
doanh nghiệp hoặc một tổ chức bất kỳ nào đó
Liên kết (tie): là mối quan hệ giữa các thực thể đó. Trong mạng có thể có nhiều
kiểu liên kết. Ở dạng đơn giản nhất, mạng xã hội là một đơn đồ thị vô hướng các mối liên
kết phù hợp giữa các nút. Ta có thể biểu diễn mạng liên kết này bằng một biểu đồ mà các

nút được biểu diễn bởi các điểm còn các liên kết được biểu diễn bởi các đoạn thẳng.
Mục tiêu
Tạo ra một hệ thống trên nền Internet cho phép người dùng giao lưu và chia sẻ
thơng tin một cách có hiệu quả, vượt ra ngoài những giới hạn về địa lý và thời gian.
Xây dựng lên một mẫu định danh trực tuyến nhằm phục vụ những yêu cầu công
cộng chung và những giá trị của cộng đồng.
Nâng cao vai trò của mỗi công dân trong việc tạo lập quan hệ và tự tổ chức xoay
quanh những mối quan tâm chung trong những cộng đồng thúc đẩy sự liên kết các tổ
chức xã hội.
3. Phân tích mạng xã hội
Phân tích mạng xã hội là phương pháp phân tích kết nối giữa cá nhân, nhóm hay
cơ quan bằng một hoặc nhiều loại hình cụ thể phụ thuộc lẫn nhau chẳng hạn như bạn bè,
quan hệ họ hàng, sở thích chung, cơng việc, và nhiều mối quan hệ khác nhau. Phân tích
mạng xã hội là xem các mối quan hệ xã hội về lý thuyết mạng bao gồm các nút và các
quan hệ ( còn được gọi là các kết nối). Các node mạng có mối liên hệ giữa các actor trong
network.
Trần Duy Phong – CH1101160

Trang 6


Cơ sở dữ liệu nâng cao

PGS.TS Đỗ Phúc

Phân tích mạng xã hội đã nổi lên như một kỹ thuật quan trọng trong xã hội học
hiện đại. Nó cũng đạt đến tầm ảnh hưởng như các phân tích về nhân chủng học, sinh học,
nghiên cứu thơng tin, kinh tế. Phân tích mạng xã hội đã trở thành một chủ đề phổ biến.
Phân tích mạng xã hội đã chuyển từ những khái niệm mơ hồ tới một cách tiếp cận phân
tích theo khng mẫu. Các nhà phân tích đã tập trung nghiên cứu phân tích các tương tác

thay vì phân tích hành vi cá nhân. Sự khác biệt giữa chúng phụ thuộc phần lớn vào các
nhà phân tích có thể thu thập dữ liệu. Ví dụ như các cơng ty, trường học, hoặc một nhóm
trên mạng xã hơi, nhà phân tích sẽ có thơng tin đầy đủ về các dữ liệu
3.1. Lịch sử về phân tích mạng xã hội
Đầu tiên chúng ta thảo luận về lịch sử của phân tích mạng nhằm đưa ra một số ý
tưởng về các vấn đề cần bàn luận, Sau đó chúng ta sẽ định nghĩa các khái niệm cơ bản.
Các nghiên cứu trước đây về phân tích mạng thuộc các lĩnh vực phân tích tâm lý giáo
dục, phát triển của trẻ, xã hội học, nhân loại học (anthropology).
Vào Thế kỷ 19, Durkheim đã viết “sự kiện xã hội”—hay hiện tượng được tạo qua
sự tương tác giữa các cá nhân, tuy vậy hàm chứa thực tế là sự độc lập của các chủ thể cá
nhân (individual actor).
Bước sang thế kỷ 20, Simmel là học giả đầu tiên suy nghĩ tường tận về các thuật
ngữ cho mạng xã hội. Simmel đã khảo sát cách đối tác thứ 3 có thể tác động lên quan hệ
giữa hai cá nhân và cách thức cần thiết để các cấu trúc tổ chức hay quan chức hành chính
điều hành tương tác trong các nhóm lớn. Một trong các ví dụ đầu tiên về nghiên cứu
mạng theo lối thực nghiệm là vào năm 1922, của Almack “Ảnh hưởng của sự thông minh
vào việc lực chọn mối kết hợp.” Almack đã hỏi học sinh ở trường tiểu học tại California
cách chọn bạn. Sau đó ông ta kết hợp chỉ số IQ của người chọn và người được chọn và
đưa ra giả thuyết về tác động của các lựa chọn là chủ thể chọn và lựa chọn là đồng cấp
độ thông minh. Năm 1926, Wellman ghi nhận các cặp cá nhân thường chơi thân nhau.
Cô đã ghi lại các dữ liệu về các thuộc tính chiều cao, học lực, IQ,…..và cũng phát hiện ra
sự đồng cấp về cấp độ.
Trần Duy Phong – CH1101160

Trang 7


Cơ sở dữ liệu nâng cao

PGS.TS Đỗ Phúc


3.2. Một số khái niệm
Nút là cá nhân trong đồ thị hay hệ thống. (Nếu mạng của các nhà lập pháp thì mỗi
nút là một nhà lập pháp).
Đồ thị hay hệ thống hay mạng là tập các đơn vị có hay khơng có các liên kết với
nhau
“Cung” là kết nối giữa 2 nút.
Lân cận N của nút là tập các nút kết nối trực tiếp với nút đó.
Bậc (degree): bậc ki của nút là số các nút trong lân cận của nó
Trong một đồ thị hay mạng khơng có hướng cung là thuận nghịch(reciprocal),
nghĩa là nếu A được nối với B thì B được xem là nối với A. Trong đồ thị hay mạng có
hướng, các cung là khơng thuận nghịch—A có thể nối với B, nhưng B không nối với A
(mũi tên của cung chỉ chiều kết nối.)
Betweenness: Trong lý thuyết đồ thị và phân tích mạng xã hội, có những cách
khác nhau để xác định tầm quan trọng tương đối của một đỉnh trung tâm trong đồ thị(ví
dụ một người quan trọng như thế nào trong một mạng lưới xã hội, hoặc tầm ảnh hưởng
của một căn phòng trong tòa nhà hoặc sử dụng một con đường trong mạng lưới đô thị.
Có 4 cách xác định được sử dụng rộng rãi trong phân tích mạng: degree centrality,
betweenness, closeness, and eigenvector centrality.
-

Degree centrality: Được định nghĩa là số lượng liên hệ mà một node đó có,
để có được Degree centrality mức độ cao nhất thì node đó phải kết nối với
tất cả các node khác và các node khác cũng chỉ được kết nối với node trung
tâm. Cơng thức tính Degree centrality là

-

Betweenness centrality: là một đỉnh trung tâm của đồ thị. Đỉnh này có dựa
trên nhiều con đường ngắn nhất (shortest path) giữa các đỉnh khác có


Trần Duy Phong – CH1101160

Trang 8


Cơ sở dữ liệu nâng cao

PGS.TS Đỗ Phúc

betweeness cao hơn. Đối với đồ thị n đỉnh, Betweeness centrality được tính
như sau

-

Closeness centrality: Trung bình của tổng chiều dài của tất cả con đường
đi ngắn nhất từ một node đến các node cịn lại. Ta có cơng thức



Hệ số cụm - Clustering Coefficients

Clustering Coefficients được Watts & Strogatz đề xuất vào năm 1998 nhằm đo
mức độ gần nhau của các nút và lân cận của nó từ một đồ thị con đầy đủ (complete
graph) trong một đồ thị hay mạng lớn hơn. Clustering coefficient của nút là số các nối kết
thực sự giữa các lân cận của một nút cụ thể. Clustering coefficient được xem như là phần
trăm của các kết nối khả dĩ.Clustering coefficient cho toàn bộ hệ thống là số trung bình
của clustering coefficient cho từng nút.
Cơng thức của clustering coefficient cho hệ thống. N=Số nút. C=clustering
coefficient cho từng nút i.


Lưu ý clustering coefficient của đồ thị vô hướng có chút khác biệt so với
clustering coefficient của đồ thị có hướng—có 2 lần các nối kết khả dĩ, cạnh khơng thuận
nghịch được đếm là một nối kết cịn cạnh thuận nghịch được đến là 2 nối kết.
Trong một đồ thị vô hướng nếu một nút được nối với 4 nút khác và giữa 4 nút này
chỉ có nút đầu và nút thứ 3 được nối kết, clustering coefficient là 1/6. (1 nối kết thực thụ
trong 6 nối kết có thể). Clustering phản ánh cách nối kết các láng giềng của bạn với nhau.

Trần Duy Phong – CH1101160

Trang 9


Cơ sở dữ liệu nâng cao

Trần Duy Phong – CH1101160

PGS.TS Đỗ Phúc

Trang 10


Cơ sở dữ liệu nâng cao

PGS.TS Đỗ Phúc

CHƯƠNG II. NEO4J
1. Cơ sở dữ liệu NoSQL
Đây là thuật ngữ chung cho các hệ CSDL khơng sử dụng mơ hình dữ liệu quan hệ.
NoSQL đặc biệt nhấn mạnh đến mơ hình lưu trữ cặp giá trị - khóa và hệ thống lưu trữ

phân tán.
Thuật ngữ NoSQL được giới thiệu lần đầu vào năm 1998 sử dụng làm tên gọi
chung cho các hệ CSDL quan hệ nguồn mở nhỏ không sử dụng SQL để truy vấn.
Vào năm 2009, Eric Evans, nhân viên của Rackspace giới thiệu lại thuật ngữ
NoSQL khi Johan Oskarsson của Last.fm muốn tổ chức một hội thảo về cơ sở dữ liệu
nguồn mở phân tán. Thuật ngữ NoSQL đánh dấu bước phát triển của thế hệ CSDL mới:
phân tán (distributed) + không ràng buộc (non-relational).
NoSQL storage đặc biệt phổ dụng trong thời kỳ Web 2.0 bùng nổ, nơi các mạng
dịch vụ dữ liệu cộng đồng cho phép người dùng tạo hàng tỷ nội dung trên web. Do đó, dữ
liệu lớn rất nhanh vượt qua giới hạn phần cứng cần phải giải quyết bằng bài tốn phân
tán.


Tốt hơn SQL
Các hệ CSDL quan hệ (RDBM) hiện tại bộc lộ những yếu kém trong những tác vụ

như đánh chỉ mục một lượng lớn dữ liệu, phân trang, hoặc phân phối luồng dữ liệu media
(phim, ảnh, nhạc, ...). CSDL quan hệ được thiết kế cho những mơ hình dữ liệu khơng q
lớn trong khi các dịch vụ mạng xã hội lại có một lượng dữ liệu cực lớn và cập nhật liên
tục do số lượng người dùng quá nhiều.
Thế hệ CSDL mới - NoSQL - giảm thiểu tối đa các phép tính tốn, tác vụ đọc-ghi
liên quan kết hợp với xử lý theo lô (batch processing) đảm bảo được yêu cầu xử lý dữ
liệu của các dịch vụ mạng xã hội. Hệ CSDL này có thể lưu trữ, xử lý từ lượng rất nhỏ đến

Trần Duy Phong – CH1101160

Trang 11


Cơ sở dữ liệu nâng cao


PGS.TS Đỗ Phúc

hàng petabytes dữ liệu với khả năng chịu tải, chịu lỗi cao nhưng chỉ đòi hỏi về tài nguyên
phần cứng thấp.
NoSQL thiết kế đơn giản, nhẹ, gọn hơn so với RDBMs. Ngoài memory cached, dữ
liệu nhỏ,… các NoSQL dạng này đặc biệt thích hợp cho thiết bị cầm nơi mà bộ nhớ và
tốc độ xử lý hạn chế hơn so với máy tính thông thường. Khi khối lượng dữ liệu cần lưu
trữ và lượng vào/ra cực lớn, RDBM đòi hỏi khắt khe và cao về phần cứng, chi phí thiết
lập, vận hành đắt thì các mơ hình lưu trữ phân tán trong NoSQL trở nên vượt trội. Thiết
kế đặc biệt tối ưu về hiệu suất, tác vụ đọc-ghi, ít địi hỏi về phần cứng mạnh và đồng
nhất, dễ dàng thêm bớt các node khơng ảnh hưởng tới tồn hệ thống,…
Các mơ hình dữ liệu đặc thù của NoSQL cũng cấp API tự nhiên hơn so với việc
dùng RDBM.
Những ràng buộc về giấy phép sử dụng cùng với một khoản phí khơng nhỏ cũng
là ưu thế. Chấp nhận NoSQL đồng nghĩa với việc bạn tham gia vào thế giới nguồn mở
nơi mà bạn có khả năng tùy biến mạnh mẽ các sản phẩm, thư viện theo đúng mục đích
của mình.
Bảng dưới đây đưa ra một số so sánh giữa RDBM và NoSQL.
Tính năng

Hiệu suất

CSDL quan hệ

NoSQL
Cực tốt

Kém hơn SQL
Relational giữa các table


Khả năng mở rộng Hạn chế về lượng.
Hiệu suất đọc-ghi

Bỏ qua SQL
Bỏ qua các ràng buộc dữ liệu
Hỗ trợ một lượng rất lớn các node.

Kém do thiết kế để đảm bảo sự Tốt với mơ hình xử lý lơ và những
vào/ra liên tục của dữ liệu

tối ưu về đọc-ghi dữ liệu.

Thay đổi số node Phải shutdown cả hệ thống. Không cần phải shutdown cả hệ
trong hệ thống

Việc thay đổi số node phức tạp.

Trần Duy Phong – CH1101160

Trang 12

thống.


Cơ sở dữ liệu nâng cao

PGS.TS Đỗ Phúc
Việc thay đổi số node đơn giản,
khơng ảnh hưởng đến hệ thống.


Phần cứng



Địi hỏi cao về phần cứng.

Đòi hỏi thấp hơn về giá trị và tính
đồng nhất của phần cứng

Đặc điểm
Về cơ bản, thiết kế của NoSQL lựa chọn mơ hình lưu trữ dữ liệu theo cặp giá trị

‘key-value’. Khái niệm node được sử dụng như trong các hệ thống phân tán. Việc lưu trữ
dữ liệu có thể chấp nhận trùng lặp, tức dữ liệu được nhân bản ra nhiều node khác nhau.
Một yêu cầu truy vấn dữ liệu có thể gửi tới nhiều máy cùng lúc, khi một máy nào đó bị sự
cố cũng khơng ảnh hưởng nhiều tới tồn bộ hệ thống. Để đảm bảo tính ‘thời gian thực’
trong các hệ thống xử lý lượng lớn, thông thường người ta sẽ tách biệt CSDL ra làm 2
hoặc nhiều CSDL. CSDL nhỏ đảm bảo đọc-ghi liên tục, khi đạt tới ngưỡng thời gian
hoặc dung lượng, CSDL nhỏ sẽ được gộp vào CSDL lớn có thiết kế tối ưu cho tác vụ
đọc.
 Một số đặc điểm:
- Phi quan hệ (hay không ràng buộc): relational - ràng buộc - thuật ngữ sử

dụng đến các mối quan hệ giữa các bảng trong cơ sở dữ liệu quan hệ
(RDBM) sử dụng mơ hình gồm 2 loại khóa: khóa chính và khóa phụ
(primary key + foreign key) để ràng buộc dữ liệu nhằm thể hiện tính nhất
quán dữ liệu từ các bảng khác nhau. Non-relational là khái niệm không sử
-


dụng các ràng buộc dữ liệu cho nhất qn dữ liệu.
Lưu trữ phân tán: mơ hình lưu trữ phân tán các tập tin hoặc dữ liệu ra nhiều
máy khác nhau trong mạng LAN hoặc Internet dưới sự kiểm sốt của phần

-

mềm.
Nhất qn cuối: tính nhất qn của dữ liệu không cần phải đảm bảo ngay
tức khắc sau mỗi phép ghi. Một hệ thống phân tán chấp nhận những ảnh
hưởng theo phương thức lan truyền và sau một khoảng thời gian (không

Trần Duy Phong – CH1101160

Trang 13


Cơ sở dữ liệu nâng cao

PGS.TS Đỗ Phúc

phải ngay tức khắc), thay đổi sẽ đi đến mọi điểm trong hệ thống để cuối
cùng dữ liệu trên hệ thống sẽ trở lại trạng thái nhất quán.
- Triển khai đơn giản, dễ nâng cấp và mở rộng.
- Mơ hình dữ liệu và truy vấn linh hoạt. …
• Ứng dụng NoSQL
Nhiều người chấp nhận NoSQL là do vấn đề chi phí hoặc ý thức hệ, nói khơng với
nguồn đóng. Việc đó cũng đồng nghĩa với việc chấp nhận sự non nớt và những hỗ trợ
kém hơn. Nếu bạn vẫn thích thiết kế mơ hình dữ liệu dạng bảng, CSDL SQL sẽ là lựa
chọn.
NoSQL đặc biệt thích hợp cho các ứng dụng cực lớn (dịch vụ tìm kiếm, mạng xã

hội ,…) và nhỏ. Với những ứng dụng vừa và lớn thì RDBMs vẫn thích hợp hơn.
Thiết kế NoSQL chấp nhận tính nhất quán yếu và có thể khơng dùng đến
‘transaction’. Với những ứng dụng đòi hỏi sự chặt chẽ của dữ liệu, cần ‘transaction’ đảm
bảo tính tồn vẹn, cơ sở dữ liệu truyền thống là lựa chọn thích hợp hơn. NoSQL thích
hợp cho các mơ hình lưu trữ dữ liệu có tính đặc thù như object oriented, document
oriented, xml database,…
Thường chúng ta sử dụng rất hạn chế những khả năng mà các CSDL RDBM cung
cấp nhưng vẫn phải trả phí cho nó. Nếu khơng cần đến các tính năng cao cấp, khơng cần
các chức năng của SQL hoặc rất ghét viết các câu lệnh SQL thì hãy nghĩ đến NoSQL.


Có 4 loại NO SQL
 Key Value Store
Mơ hình lưu trữ dữ liệu dưới cặp giá trị key-value trong đó việc truy xuất, xóa, cập

nhật giá trị thực thông qua key tương ứng. Với sự bổ trợ bởi các kỹ thuật BTree, B+Tree,
Hash,... dữ liệu có thể tồn tại trên RAM hoặc đĩa cứng, phân tán hoặc không phân tán.
Hầu hết các NoSQL database đều là key-value store. Dưới đây là một số đặc tính
có thể được hỗ trợ trong sản phẩm dạng này:
-

Key/value cache in RAM: memcached, Citrusleaf database, Velocity, Redis, Tuple
space,...

Trần Duy Phong – CH1101160

Trang 14


Cơ sở dữ liệu nâng cao


PGS.TS Đỗ Phúc

-

Key/value save on disk: Memcachedb, Berkeley DB, Tokyo Cabinet, Redis,...
Eventually Consistent Key Value Store: Amazon Dynamo, Voldemort, Dynomite, KAI,

-

Cassandra, Hibari, Project Voldemort,…
Ordered key-value store: NMDB, Memcachedb, Berkeley DB,...
Distributed systems: Apache River, MEMBASE, Azure Table Storage, Amazon

Dynamo,.
o Điểm mạnh:
- Mơ hình dữ liệu đơn giản
- Khả năng mở rộng cao
o Điểm yếu:
- Không thể tạo khóa ngoại
- Khó khăn trong dữ liệu phức tạp
• Wide Column Store / Column Families

Hệ cơ sở dữ liệu phân tán cho phép truy xuất ngẫu nhiên/tức thời với khả năng lưu
trữ một lượng cực lớn data có cấu trúc. Dữ liệu có thể tồn tại dạng bảng với hàng tỷ bản
ghi và mỗi bản ghi có thể chứa hàng triệu cột. Một triển khai từ vài trăm cho tới hàng
nghìn commodity hardware dẫn đến khả năng lưu trữ hàng petabytes nhưng vẫn đảm bảo
high performance. Dưới đây là một số sản phẩm thông dụng: Hadoop/HBase – Apache,
BigTable – Google, Cassandra - Facebook/Apache, Hypertable - Zvents Inc/Baidu,
Cloudera, SciDB, Mnesia, Tablets,…

o Điểm mạnh:
- Hỗ trợ dữ liệu nửa cấu trúc
- Đánh chỉ mục tự động theo cột
- Khả năng mở rộng cao
o Điểm yếu:
- Khó khăn trong interconnected data
• Document Store

Thực chất là các document-oriented database - một thiết kế riêng biệt cho việc lưu
trữ document. Các cài đặt có thể là giả lập tương tác trên relational database, object
database hay key-value store. Một số sản phẩm tiêu biểu: Apache Jackrabbit, CouchDB,
IBM Lotus Notes Storage Format (NSF), MongoDB, Terrastore, ThruDB, OrientDB,
RavenDB,...
o Điểm mạnh:

Đơn giản, mơ hình dữ liệu mạnh mẽ
Trần Duy Phong – CH1101160

Trang 15


Cơ sở dữ liệu nâng cao

PGS.TS Đỗ Phúc

- Khả năng mở rộng cao
o Điểm yếu:
- Khó khăn trong interconnected data
- Mơ hình truy vấn bị giới hạn các khóa và chỉ mục
- Thiếu map reduct cho các truy vấn lớn

• Graph Database

Graph database là một dạng cơ sở dữ liệu được thiết kế riêng cho việc lưu trữ
thông tin đồ họa như cạnh, nút, properties. Một số sản phẩm tiêu biểu: Neo4J, Sones,
AllegroGraph, Core Data, DEX, FlockDB, InfoGrid, OpenLink Virtuoso,...
o Điểm mạnh:
- mơ hình dữ liệu đầy sức mạnh
- Truy vấn nhanh cho các dữ liệu có kết nối
o Điểm yếu:
- Khó khăn trong việc sharding, đang chờ sự phát triển.
- Phải thay đổi cách nghĩ, khái niệm về cơ sở dữ liệu đồ thị

Một graph chứa các nút và các mối quan hệ
Một graph lưu trữ record trong các nút (đỉnh) và các nút có các thuộc tính
Một graph đơn giản nhất là một nút đơn lẻ, một record mà có các giá trị (được đặt
tên) thì được xem như là các thuộc tính. Một nút có thể bắt đầu với một thuộc tính và
phát triển dần thành vài triệu thuộc tính. Tuy nhiên, vài triệu thuộc tính có thể bất tiện, do
đó, nó có thể được phân tán thành nhiều nút, với các mối quan hệ (cạnh) với nhau.
Các nút được tổ chức bởi các mối quan hệ, các mối quan hệ này cũng có các thuộc
tính.
Các mối quan hệ tổ chức các nút thành các cấu trúc bất kỳ, cho phép một graph
giống như một List, một Tree, một Map, một Entity hỗn hợp nào đó – bất kỳ cái nào có
thể kết hợp thành phức tạp hơn, đa dạng về cấu trúc liên kết.

Trần Duy Phong – CH1101160

Trang 16


Cơ sở dữ liệu nâng cao


PGS.TS Đỗ Phúc

2. Neo4J
2.1. Những điểm nổi bật
Là một cơ sở dữ liệu mạnh mẽ khả năng mở rộng và hiệu suất cao, Neo4j là thích
hợp cho các doanh nghiệp triển khai đầy đủ hoặc một tập hợp con của các máy chủ đầy
đủ có thể được sử dụng trong các dự án có trọng lượng nhẹ.
Nó có tính năng:
• Các giao dịch ACID đúng
• tính sẵn sàng cao
• quy mơ đến hàng tỷ các nút và các mối quan hệ
• tốc độ cao truy vấn thơng qua traversals
hành vi của ACID thích hợp cách là nền tảng của dữ liệu độ tin cậy.Neo4j thực thi tất cả
các hoạt động đột biến xảy ra trong một giao dịch, đảm bảo dữ liệu phù hợp.vững
mạnh này kéo dài từ đồ thị trường hợp duy nhất được nhúng để cài đặt nhiều máy chủ sẵn
sàng cao.
Quản lý giao dịch.
Đáng tin cậy lưu trữ đồ thị có thể dễ dàng được thêm vào bất kỳ ứng dụng
nào.Một đồ thị sở hữu động sản có thể mở rộng kích thước và độ phức tạp như ứng dụng
phát triển, ảnh hưởng rất ít về hiệu suất.Cho dù bắt đầu phát triển mới, hoặc làm tăng
chức năng hiện có, Neo4j chỉ giới hạn bởi phần cứng vật lý. Một ví dụ máy chủ duy nhất
có thể xử lý một đồ thị của hàng tỷ các nút và các mối quan hệ. Khi dữ liệu thông qua là
không đủ, cơ sở dữ liệu đồ thị có thể được phân phối giữa nhiều máy chủ trong một cấu
hình sẵn sàng cao.Xem 23 Chương, sẵn sàng cao học more.The lưu trữ cơ sở dữ liệu đồ
thị tỏa sáng khi lưu trữ dữ liệu đa dạng về kết nối.Truy vấn được thực hiện thông qua
traversals, mà có thể thực hiện hàng triệu của traversal bước mỗi giây.Một bước traversal
giống như một tham gia trong một RDBMS.
Trần Duy Phong – CH1101160


Trang 17


Cơ sở dữ liệu nâng cao

PGS.TS Đỗ Phúc

2.2. Neo4j – Cơ sở dữ liệu đồ thị
Một co sở dữ liệu đồ thị lưu trữ dữ liệu trong một đồ thị, chung nhất của cấu trúc
dữ liệu, có khả năng tiếp cận dữ liệu một cách rất dễ. Đồ thị có thể bắt đầu bằng một node
duy nhất, một node có thể bắt đầu với một thuộc tính, và cũng có thể phát triển thành
nhiều node. Tại một số node, chúng ta sẽ phân phối dữ liệu và các node khác, và tổ chức
chúng thành những mối quan hệ rõ ràng.
Đồ thị chứa các node và các mối quan hệ

Những mối quan hệ của các node được tổ chức thành một cấu trúc, cho phép đồ
thị biểu diễn như là một danh sách, một cây, một bản đồ, hoặc một dạng phức tạp hơn
Truy vấn đồ thị với một Traversal. Traversal cho phép chúng ta truy vấn một đồ
thị, bắt đầu từ một nude rồi đến các node liên quan bằng một thuật toán

Trần Duy Phong – CH1101160

Trang 18


Cơ sở dữ liệu nâng cao

PGS.TS Đỗ Phúc

Chỉ số tra cứu các node hoặc các mối liên hệ


Neo4j là một cơ sở dữ liệu đồ thị
Ta có thể hình dung như sau

Trần Duy Phong – CH1101160

Trang 19


Cơ sở dữ liệu nâng cao

PGS.TS Đỗ Phúc

Các đơn vị cơ bản hình thành nên một cơ sở dữ liệu đồ thị là nút và mối quan hệ. Trong
Neo4j, cả nút và mối quan hệ đều có thể chứa các thuộc tính.
Nút
Các nút thường được sử dụng để biểu diễn các thực thể, chúng có thể có các mối quan hệ
và thuộc tính

Trần Duy Phong – CH1101160

Trang 20


Cơ sở dữ liệu nâng cao

PGS.TS Đỗ Phúc

Ví dụ một nút chỉ chứa một thuộc tính “name”


Mối quan hệ

Các mối quan hệ giữa các nút là một phần quan trọng của một cơ sở dữ liệu đồ thị.
Chúng cho phép tìm dữ liệu có liên quan nhau. Cũng giống như nút, các mối quan hệ có
thể có các thuộc tính

Một mối quan hệ kết nối giữa hai nút, một nút bắt đầu và một nút kết thúc.

Trần Duy Phong – CH1101160

Trang 21


Cơ sở dữ liệu nâng cao

PGS.TS Đỗ Phúc

Một mối quan hệ ln ln có hướng, chúng có thể được xem như là một mối quan hệ
“đi” hoặc “đến” tới một nút, được sử dụng để duyệt đồ thị:

Trong Neo4j hướng của mối quan hệ có thể được lờ đi nếu nó khơng hữu ích trong ứng
dụng.
Một nút có thể có mối quan hệ với chính bản thân nó

Để nâng cao việc duyệt đồ thị, các mối quan hệ đều có kiểu hay gọi cách khác là được
gán nhãn. Ví dụ dưới đây là một mạng xã hội đơn giản với hai kiểu mối quan hệ.

Để tìm một người theo sau thì duyệt theo mối quan hệ có kiểu “follows”, cịn nếu tìm một
người chặn một người khác thì duyệt theo mối quan hệ có kiểu “blocks”
`

Thuộc tính

Cả nút và mối quan hệ đều có thể có thuộc tính.
Trần Duy Phong – CH1101160

Trang 22


Cơ sở dữ liệu nâng cao

PGS.TS Đỗ Phúc

Các thuộc tính là các cặp key-value với key là kiểu string. Các giá trị thuộc tính có thể là
kiểu cơ bản (integer, long, float, …) hay một mảng của một kiểu cơ bản. Ví dụ String, int
và int[] là các giá trị hợp lệ cho thuộc tính.

Đường đi

Một đường đi là một hay nhiều nút với các mối quan hệ kết nối, thường được truy hồi
như là một kết quả truy vấn hay duyệt đồ thị.

Trần Duy Phong – CH1101160

Trang 23


Cơ sở dữ liệu nâng cao

PGS.TS Đỗ Phúc


Đường đi ngắn nhất có chiều dài là 0 giống như sau:

Một đường đi có chiều dài là 1

Duyệt

Duyệt một đồ thị có nghĩa là viếng thăm các nút của đồ thị, theo các mối quan hệ với
một vài luật. Trong hầu hết các trường hợp, chỉ một đồ thị con được viếng thăm khi đã
biết trong đó có các nút và mối quan hệ cần tìm.
Neo4j với API cho phép duyệt chọn một cách duyệt cụ thể. Với mức cơ bản, có thể chọn
cách duyệt theo chiều sâu hay chiều rộng.
Trần Duy Phong – CH1101160

Trang 24


Cơ sở dữ liệu nâng cao

PGS.TS Đỗ Phúc

Key Player

Ta đã biết lợi ích như thế nào trong việc marketing trên mạng xã hội cũng như tầm quan
trọng của các key player (“loa phóng thanh”) trên mạng xã hội đối với việc marketing.
Do đó, vấn đề là phải nhận dạng, tìm ra được các key player.
Có các độ đo tìm key player như
Degree Centrality

CD(v) là độ đo degree centrality của nút (đỉnh) v.
deg(v) là số cạnh liên thuộc với nút v

n là số cạnh
Betweenness Centrality

CB(v) là độ đo betweenness centrality của nút (đỉnh) v.
s,v,t (tập đỉnh của đồ thị)
σ st = là tổng shortest path từ đỉnh s đến đỉnh t của toàn network
σ st(v) = tổng shortest path từ đỉnh s đến đỉnh t đi qua đỉnh v
Closeness Centrality

CC(v) là độ đo closeness centrality của nút (đỉnh) v.
dG (v,t) là số bước đi nhỏ nhất từ đỉnh v tới đỉnh t.
n là số đỉnh

Trần Duy Phong – CH1101160

Trang 25


×