Database là gì?
Từ việc thả tim cho bức ảnh bạn thân trên Facebook, đến việc đặt mua món đồ yêu thích trên Shopee, hay đơn giản là chuyển khoản cho người thân qua ứng dụng ngân hàng, tất cả những tương tác tưởng chừng đơn giản này đều ẩn chứa một "bí mật" công nghệ cơ bản. Bí mật đó nằm ở một khái niệm có vẻ khô khan nhưng lại đóng vai trò then chốt trong thế giới số: Database - hay còn gọi là cơ sở dữ liệu.
Database đóng vai trò nền tảng trong thế giới số hiện đại. Từ ứng dụng trên điện thoại, website mua sắm, cho đến các hệ thống tài chính phức tạp, tất cả đều dựa vào database để lưu trữ, quản lý và truy xuất thông tin một cách hiệu quả. Vậy database thực chất là gì? Hãy cùng mình tìm hiểu trong bài viết này.
Khái niệm cơ bản về Database
Database về cơ bản là một tập hợp có tổ chức của các dữ liệu có liên quan đến nhau. Dữ liệu ở đây có thể là bất kỳ thông tin gì có ý nghĩa, từ tên, số điện thoại, địa chỉ của bạn bè, cho đến số lượng sản phẩm trong kho của một cửa hàng, hay lịch sử giao dịch của khách hàng trên một sàn thương mại điện tử.
Hãy hình dung database như một kho chứa thông tin khổng lồ, được thiết kế để lưu trữ dữ liệu một cách có hệ thống và logic. Các chương trình ứng dụng khác nhau có thể truy cập vào database này để đọc, thêm, sửa, hoặc xóa dữ liệu, tùy thuộc vào mục đích sử dụng.
Đặc điểm của Database
Về cơ bản, một database điển hình sẽ có 3 đặc trưng
Phản ánh thế giới thực: Database thực chất là một bản sao kỹ thuật số của một phần thế giới thực, thường được gọi là “universe of discourse” (UoD). Những thay đổi trong thế giới thực sẽ được cập nhật vào cơ sở dữ liệu. Ví dụ, cơ sở dữ liệu của một trường đại học có thể chứa thông tin về sinh viên, giảng viên, và các môn học. Khi có sinh viên mới nhập học, giảng viên mới được tuyển dụng, hoặc môn học mới được mở, thông tin này sẽ được thêm vào cơ sở dữ liệu. Điều này giúp cơ sở dữ liệu luôn phản ánh chính xác và kịp thời các khía cạnh của cuộc sống hàng ngày tại trường đại học.
Tính logic và nhất quán: Hãy tưởng tượng bạn có một danh sách tên của những người bạn quen biết. Danh sách này tuy có chứa thông tin, nhưng lại rời rạc và không giúp ích gì nhiều. Nhưng nếu bên cạnh mỗi cái tên, bạn còn ghi thêm số điện thoại và địa chỉ của họ, thì bỗng nhiên danh sách này trở nên hữu ích hơn rất nhiều - nó đã trở thành một cuốn sổ địa chỉ hoàn chỉnh! Tương tự như vậy, cơ sở dữ liệu cũng cần có sự liên kết giữa các thông tin để tạo ra ý nghĩa. Khi các thông tin này được tổ chức và liên kết một cách hợp lý, chúng sẽ tạo thành một cơ sở dữ liệu có giá trị, giúp chúng ta dễ dàng tìm kiếm, phân tích và sử dụng thông tin.
Mục đích cụ thể: Cơ sở dữ liệu không phải là thứ gì đó được tạo ra một cách ngẫu nhiên, mà nó được thiết kế và xây dựng với dữ liệu và mục tiêu cụ thể trong đầu. Ví dụ, khoa Công nghệ của một trường đại học muốn tạo ra một danh sách những sinh viên có thành tích học tập xuất sắc để trao thưởng. Để làm được điều này, họ cần thu thập và lưu trữ thông tin về điểm trung bình của tất cả sinh viên trong khoa. Một cơ sở dữ liệu được thiết kế riêng cho mục đích này sẽ giúp họ lưu trữ và quản lý thông tin một cách hiệu quả, từ đó dễ dàng lọc ra những sinh viên có điểm số cao nhất để đưa vào danh sách danh dự.
Nói một cách đơn giản, database không chỉ là một kho lưu trữ thông tin tĩnh, mà còn liên tục tương tác với thế giới thực. Người dùng có thể thay đổi dữ liệu trong database, hoặc các sự kiện bên ngoài cũng có thể tác động đến nó.
Ví dụ, điểm số của một học sinh được cập nhật sau kỳ thi sẽ làm thay đổi data trong database của trường học. Database đáng tin cậy là database có khả năng cập nhật những thay đổi này một cách nhanh chóng và chính xác, để luôn phản ánh đúng thực tế mà nó đại diện.
Cấu trúc của Database
Hãy tưởng tượng database như một cuốn sổ ghi chép khổng lồ, trong đó mỗi trang là một bảng (table) chứa đựng thông tin về một chủ đề cụ thể. Ví dụ, một bảng có thể chứa thông tin về tất cả sinh viên trong trường học, một bảng khác chứa thông tin về các sản phẩm trong cửa hàng, v.v.
Mỗi bảng lại được chia thành nhiều hàng (row) và cột (column). Mỗi hàng tương ứng với một đối tượng (object) cụ thể. Một hàng còn được gọi là một “record”. Còn các cột trong bảng là tập hợp các sự kiện mà chúng ta theo dõi về loại đối tượng đó. Một cột còn được gọi là “attribute”.
Ví dụ, trong bảng sinh viên, mỗi hàng sẽ chứa bản ghi thông tin (record) về một sinh viên cụ thể. Các cột lại chứa các thuộc tính thông tin (attribute) chi tiết về đối tượng đó. Ví dụ, các cột trong bảng sinh viên có thể là "Họ và tên", "Ngày sinh", "Mã số sinh viên", "Điểm trung bình",...
Tuy nhiên, database không chỉ đơn giản là một tập hợp các bảng riêng lẻ. Giống như một câu chuyện được tạo thành từ nhiều chương liên kết với nhau, các bảng trong database cũng được kết nối với nhau thông qua các mối quan hệ dữ liệu.
Ví dụ, trong một cửa hàng trực tuyến, bảng "Product" chứa thông tin về các sản phẩm, bảng "Customer" chứa thông tin về khách hàng, và bảng "Order" chứa thông tin về các đơn hàng. Mỗi đơn hàng sẽ liên kết với một khách hàng cụ thể và bao gồm một hoặc nhiều sản phẩm. Sự liên kết này được thể hiện thông qua các khóa ngoại (foreign key), là các cột trong một bảng tham chiếu đến khóa chính (primary key) của một bảng khác.
Nhờ các mối quan hệ này, chúng ta có thể dễ dàng truy xuất thông tin liên quan từ nhiều bảng khác nhau. Ví dụ, khi xem chi tiết một đơn hàng, chúng ta có thể biết được thông tin về khách hàng đã đặt hàng, cũng như thông tin về các sản phẩm trong đơn hàng đó.
Ví dụ minh họa về Database
Để hiểu rõ hơn về vai trò của database, hãy cùng xem xét hai ví dụ thực tế trong lĩnh vực Fintech (Công nghệ tài chính) và Ecommerce (Thương mại điện tử):
Fintech
Hãy tưởng tượng bạn đang sử dụng ví điện tử Momo. Mỗi khi bạn chuyển tiền, thanh toán hóa đơn, hay nạp tiền điện thoại, tất cả những thông tin này đều được lưu trữ an toàn trong database của Momo.
Database này không chỉ ghi nhận số dư trong ví của bạn, mà còn lưu lại toàn bộ lịch sử giao dịch: bạn đã chuyển bao nhiêu tiền cho ai, vào thời điểm nào, thanh toán những hóa đơn gì,... Thậm chí, thông tin về thẻ tín dụng hay tài khoản ngân hàng liên kết với ví Momo cũng được cất giữ cẩn thận.
Nhờ có database, Momo có thể hiển thị số dư chính xác trong ví, cung cấp lịch sử giao dịch chi tiết, và hỗ trợ bạn giải quyết các vấn đề liên quan đến giao dịch. Hơn nữa, database còn giúp Momo phân tích thói quen chi tiêu của bạn để đưa ra gợi ý tài chính cá nhân hóa.
E-commerce
Giờ thử hình dung khi bạn đang lướt Shopee để tìm một chiếc điện thoại mới. Bạn thấy hàng trăm mẫu mã, giá cả khác nhau, kèm theo đánh giá của những người mua trước. Tất cả những thông tin này không tự nhiên mà có, chúng được lưu trữ và quản lý trong một hệ thống database khổng lồ của Shopee.
Database này giống như một "siêu thị thông tin", chứa đựng mọi thứ bạn cần biết về sản phẩm: từ tên gọi, mô tả chi tiết, giá bán, hình ảnh minh họa, cho đến số lượng sản phẩm còn trong kho. Khi bạn quyết định đặt mua, thông tin đơn hàng của bạn (bao gồm sản phẩm đã chọn, số lượng, địa chỉ nhận hàng, phương thức thanh toán) cũng được ghi lại cẩn thận trong database.
Không chỉ dừng lại ở đó, database của Shopee còn lưu trữ thông tin về hàng triệu khách hàng khác, cùng với lịch sử mua sắm, đánh giá sản phẩm, và thậm chí là những món hàng bạn đã thêm vào giỏ hàng nhưng chưa thanh toán. Nhờ có database, Shopee có thể dễ dàng hiển thị những sản phẩm bạn có thể quan tâm dựa trên lịch sử mua sắm của bạn, gửi thông báo về các chương trình khuyến mãi hấp dẫn, và cung cấp dịch vụ chăm sóc khách hàng tốt hơn.
Nói cách khác, database là "trái tim" của Shopee, giúp họ vận hành một cách trơn tru và hiệu quả, đồng thời mang đến trải nghiệm mua sắm trực tuyến tốt nhất cho người dùng.
So sánh Database trong Fintech và Ecommerce
Nhân việc lấy 2 ví dụ trên, mình sẽ làm một bảng so sánh sơ lược để các bạn hiểu thêm về một số khía cạnh của Database giữa 2 môi trường
Database Sofware
Sự bùng nổ của công nghệ thông tin và lượng dữ liệu khổng lồ được tạo ra mỗi ngày đã thúc đẩy sự phát triển mạnh mẽ của các công ty chuyên về giải pháp database. Các doanh nghiệp ngày càng nhận ra tầm quan trọng của việc lưu trữ, quản lý và khai thác dữ liệu hiệu quả để đưa ra quyết định kinh doanh sáng suốt, tối ưu hóa hoạt động và nâng cao trải nghiệm khách hàng.
Chính vì vậy, thị trường database đã trở nên sôi động hơn bao giờ hết, với sự xuất hiện của nhiều nhà cung cấp giải pháp đa dạng, đáp ứng nhu cầu ngày càng cao của các doanh nghiệp thuộc mọi quy mô và lĩnh vực.
Mình sẽ giới thiệu sơ lược một số công ty cung cấp giải pháp database nổi bật để bạn khám phá thêm:
Oracle: Ông lớn trong lĩnh vực database, Oracle cung cấp giải pháp toàn diện, mạnh mẽ và đáng tin cậy cho các doanh nghiệp lớn, đặc biệt là trong lĩnh vực tài chính và ngân hàng, với khả năng xử lý khối lượng dữ liệu khổng lồ và đảm bảo tính bảo mật cao.
MySQL: Là một trong những hệ quản trị cơ sở dữ liệu quan hệ phổ biến nhất, MySQL được ưa chuộng bởi tính mở, dễ sử dụng và khả năng mở rộng linh hoạt. Các ứng dụng web và mạng xã hội lớn như Facebook, Twitter, Youtube đều tin tưởng sử dụng MySQL.
PostgreSQL: Đối thủ cạnh tranh trực tiếp với MySQL, PostgreSQL nổi bật với khả năng xử lý dữ liệu địa lý (geospatial data) mạnh mẽ nhờ tiện ích mở rộng PostGIS, phù hợp cho các ứng dụng bản đồ và định vị.
MongoDB: Dành cho những ai yêu thích sự linh hoạt, MongoDB là một cơ sở dữ liệu NoSQL cho phép lưu trữ dữ liệu phi cấu trúc dưới dạng các tài liệu (document). MongoDB thường được sử dụng trong các dự án phát triển ứng dụng web và di động hiện đại.
Redis: "Ông vua" về tốc độ, Redis là một kho lưu trữ dữ liệu trong bộ nhớ (in-memory data store), thường được sử dụng để xây dựng hệ thống cache và tăng tốc độ truy xuất dữ liệu.
Mỗi nhà cung cấp đều có những thế mạnh riêng, việc lựa chọn giải pháp phù hợp sẽ phụ thuộc vào nhu cầu cụ thể của từng doanh nghiệp. Rất có thể trong quá trình phát triển sản phẩm, bạn sẽ nghe đội ngũ của mình nhắc đến những cái tên trên. Và nếu có cơ hội tham gia vào quá trình tích hợp hay sử dụng chúng, bạn sẽ cần đọc những tài liệu chuyên sâu mà họ cung cấp. Đây thực sự là cơ hội tuyệt vời để hiểu sâu về database solution!
PM nên hiểu gì về “Database”
Mình nghĩ bản thân cũng giống nhiều bạn trẻ khác khi bắt đầu với Product Management. Chúng mình dành nhiều thời gian để trau dồi những kiến thức cơ bản về phân tích người dùng, thiết kế tính năng, tổ chức và điều phối nguồn lực . . . nhưng hạn chế trong việc hiểu rõ những concept cơ bản như “Database”. Khi đã tham gia đủ sâu, bạn sẽ thấy việc hiểu về cơ sở dữ liệu là một kỹ năng cực thiết yếu đối với Product Manager (PM).
Khi hiểu về database, bạn sẽ biết cách thiết kế tính năng sao cho tối ưu, tránh gây quá tải cho hệ thống. Ví dụ, nếu bạn muốn thêm một tính năng tìm kiếm sản phẩm, bạn cần biết cách cấu trúc database để việc tìm kiếm diễn ra nhanh chóng và chính xác.
Hiểu về database cũng giúp bạn giao tiếp hiệu quả hơn với các thành viên khác. Bạn sẽ nhận ra mức độ thực tiễn về mặt kỹ thuật trong những yêu cầu mà bạn đưa ra cho nhóm phát triển. Giảm bớt tính phi thực tế, đồng thời đóng góp ý kiến vào việc tối ưu hoá database là một cách tiếp cận cực kỳ hữu ích giúp bạn nhận được sự đánh giá và hỗ trợ tích cực từ các SE (Software Engineer) hoặc DE (Data Engineer) về sau.
Chưa kể đến việc hiểu về database là nền tảng để bạn bắt đầu học về truy vấn cơ sở dữ liệu, sử dụng các lệnh cơ bản phục vụ cho mục đích truy xuất dữ liệu. Nếu muốn phát triển kĩ năng Data-driven Decision Making, đây chắc chắn là learning path bạn không thể bỏ qua (hi vọng chúng ta sẽ có một bài viết khác về chủ đề này)
Nếu bạn mới bắt đầu với lĩnh vực Product Management, mình mong bạn dành nhiều thời gian hơn vào việc xây dựng nền tảng kiến thức vững chắc về Database. Dưới đây là 5 câu hỏi cơ bản mình nghĩ bạn nên dành thêm thời gian để nghiên cứu:
Database là gì và tại sao nó quan trọng trong việc xây dựng sản phẩm?
Các loại database phổ biến (Relational, NoSQL) có đặc điểm gì và phù hợp với loại sản phẩm nào?
Các khái niệm cơ bản về thiết kế database như bảng (table), trường (field), khóa chính (primary key), khóa ngoại (foreign key) là gì?
Làm thế nào để truy vấn cơ sở dữ liệu và hiểu các lệnh SQL cơ bản? (Một trong những nội dung bạn có thể học ở đây: https://hellopm.co/sql-for-product-managers-the-definitive-guide/)
Cách bảo mật cơ sở dữ liệu và bảo vệ dữ liệu người dùng?
Kết bài, mình sẽ share chiếc clip này để bạn xem thêm. Mong bạn đã có một khoảng thời gian hữu ích khi đọc chiếc post này.