SQL
8 bài viết
Cơ sở dữ liệu đồ thị coi quan hệ là công dân hạng nhất. Bài này dựng mô hình tinh thần: property graph là gì (node có label/property, relationship có type/hướng/property), vì sao index-free adjacency thắng self-JOIN nhiều tầng ở truy vấn multi-hop, khi nào NÊN và KHÔNG NÊN dùng graph, cùng các use case ngân hàng lõi — phát hiện gian lận/AML mạng lưới mule, KYC/UBO, entity resolution — và giới thiệu hệ sinh thái Neo4j (Cypher, GDS).
Cách biến dữ liệu ngân hàng thành property graph: nguyên tắc chọn cái gì là node, cái gì là relationship, cái gì là property; hướng và property của quan hệ; chuyển từ mô hình quan hệ (ER, bảng + khoá ngoại) sang đồ thị; nên coi giao dịch là node hay relationship; các anti-pattern (super node, node phình to) và cách mô hình hoá theo mẫu truy vấn (query-first).
Cypher — ngôn ngữ truy vấn đồ thị của Neo4j (đang thành chuẩn GQL/ISO) — với triết lý 'vẽ hình bằng ASCII'. Bài này đi qua các mệnh đề nền tảng MATCH, WHERE, RETURN, CREATE, MERGE, SET, DELETE, WITH, ORDER BY/LIMIT, hàm, alias và parameter; liên tục đối chiếu với SQL để người quen SQL nắm nhanh, qua ví dụ thực tế trên mạng khách hàng–tài khoản–giao dịch.
Cypher nâng cao cho bài toán mạng lưới: đường đi độ sâu thay đổi [:SENT*1..4], shortestPath/allShortestPaths, OPTIONAL MATCH, subquery CALL {}, collect/UNWIND, pattern comprehension, kiểm tra tồn tại pattern, nạp dữ liệu lô (LOAD CSV, UNWIND+MERGE), INDEX/CONSTRAINT và EXPLAIN/PROFILE — minh hoạ trên mạng gian lận: truy vết dòng tiền qua nhiều tài khoản và phát hiện vòng.
Neo4j Graph Data Science (GDS) — thư viện chạy thuật toán đồ thị quy mô lớn. Bài này đi qua khái niệm graph projection (chiếu đồ thị con vào bộ nhớ), rồi các nhóm thuật toán cốt lõi — Centrality, Community Detection, Pathfinding, Similarity, Link Prediction, graph embeddings — với trực giác và ví dụ ứng dụng ngân hàng: kẻ trung gian rửa tiền, vòng gian lận, đường đi dòng tiền, feature cho ML.
Ứng dụng đắt giá nhất của đồ thị trong ngân hàng: phát hiện gian lận và rửa tiền như một hiện tượng MẠNG LƯỚI. Bài đi qua các typology cốt lõi — mule fan-in/fan-out, vòng rửa tiền (cycle), smurfing/structuring, chia sẻ định danh, đường tiền tới blacklist — kèm ví dụ Cypher, cách gắn thuật toán GDS, entity resolution, và sinh feature đồ thị cho mô hình chấm điểm rủi ro.
Đưa Neo4j vào hệ dữ liệu ngân hàng thật: nạp dữ liệu từ RDBMS/warehouse (batch LOAD CSV, neo4j-admin import; streaming CDC qua Debezium + Kafka Connect Neo4j), giữ nhất quán khi Neo4j là lớp phái sinh chứ không phải system of record. Bài cũng bàn hiệu năng (index/constraint, super node, PROFILE, page cache, heap), mô hình triển khai single vs cluster/Aura, khi nào KHÔNG dùng graph, và so sánh Neo4j với Neptune/TigerGraph/JanusGraph/Postgres AGE.
Bài tổng kết series: bản đồ đầy đủ các use case đồ thị trong ngân hàng ngoài fraud/AML — KYC/UBO, khách 360 & entity resolution, recommendation, knowledge graph/GraphRAG, rủi ro liên đới tín dụng, tối ưu mạng lưới ATM/chi nhánh. Kèm kiến trúc tham chiếu core→CDC→Neo4j+GDS→ứng dụng/ML, feature đồ thị cho mô hình, và một BẢNG CHỌN CÔNG CỤ thực chiến: khi nào graph vs RDBMS vs ClickHouse vs search, Neo4j vs Neptune/TigerGraph.