Bảng tính - Excel, Google Trang tính hoặc một trang tính có tên khác - là những công cụ thực sự thú vị và mạnh mẽ. Nhưng sau đó, cơ sở dữ liệu cũng vậy. Khi nào bạn nên gắn bó với một bảng tính? Khi nào bạn nên chuyển lên cơ sở dữ liệu?
Đây là phần tiếp theo của bài viết trước của tôi “Bảng tính so với Cơ sở dữ liệu:Đã đến lúc chuyển đổi?” nơi chúng ta đã thảo luận về những nhược điểm phổ biến nhất của việc sử dụng bảng tính để sắp xếp nhiều dữ liệu. Trong bài viết này, chúng ta sẽ tìm hiểu cách một cơ sở dữ liệu giải quyết những vấn đề đó.
Sử dụng Cơ sở dữ liệu để Tổ chức Dữ liệu
Phương châm của tôi là “sử dụng công nghệ phù hợp với nhu cầu của bạn”. Nếu bạn có thể điều hành doanh nghiệp của mình thông qua trang tính, thật tuyệt! Nếu bạn cần một cơ sở dữ liệu đơn giản, MS Access là một lựa chọn không tồi. Nhưng nếu những sản phẩm này không phù hợp với bạn, có thể bạn sẽ cần một cơ sở dữ liệu tùy chỉnh và một ứng dụng web. Cơ sở dữ liệu sẽ lưu trữ dữ liệu của bạn; ứng dụng web sẽ là một cách thân thiện với người dùng để tương tác với cơ sở dữ liệu và giao tiếp với lớp dữ liệu.
Hoạt động kinh doanh dịch vụ giả tưởng của chúng tôi không phức tạp lắm, vì vậy chúng tôi có thể cung cấp năng lượng cho nó bằng cách sử dụng một mô hình dữ liệu khá đơn giản. Nếu bạn nhìn vào hình ảnh bên dưới, bạn sẽ thấy rằng mọi thứ chúng ta cần chỉ được lưu trữ trong năm bảng:client_type
, client
, service
, replacement
và has_service
.
Quy tắc chính của thiết kế cơ sở dữ liệu là giữ dữ liệu trong thế giới thực có liên quan ở một nơi . Trong trường hợp này, chúng tôi sẽ giữ tất cả client
dữ liệu trong bảng khách hàng. Bằng cách này, chúng tôi sẽ tránh lưu trữ cùng một dữ liệu ở nhiều vị trí (loại dư thừa không tốt đã đề cập trước đó). Nếu chúng tôi thay đổi bất kỳ điều gì liên quan đến khách hàng, chúng tôi sẽ chỉ thực hiện một lần trong bảng này. Điều này sẽ cải thiện đáng kể chất lượng dữ liệu và tốt cho hiệu suất.
Bảng tiếp theo chứa dữ liệu trong thế giới thực là service
bàn. Một lần nữa, chúng tôi có thể lưu trữ tất cả các chi tiết liên quan đến dịch vụ của chúng tôi tại đây và chúng tôi có thể thực hiện các thay đổi đối với dữ liệu một cách khá hiệu quả.
client
bảng và service
bảng là các thực thể trong thế giới thực có thể tồn tại mà không có bảng khác. Tuy nhiên, việc tạo cơ sở dữ liệu với các thực thể không liên quan không có ý nghĩa quá nhiều - nó giống như việc khách hàng không có sản phẩm hoặc dịch vụ mà không có người mua. Vì vậy, chúng tôi sẽ liên hệ hai bảng này bằng cách sử dụng has_service
bàn. Để lưu trữ thông tin về những khách hàng có dịch vụ nào, chúng tôi sẽ sử dụng các khóa ngoại hoạt động như các tham chiếu đến khách hàng và dịch vụ đó. Các khóa ngoại này trỏ trở lại các bản ghi trong bảng dịch vụ và máy khách. Chúng tôi cũng có thể lưu giữ bất kỳ thông tin bổ sung nào liên quan đến từng mối quan hệ khách hàng-dịch vụ trong bảng này.
client_type
bảng được sử dụng giống như một từ điển lưu trữ mọi loại ứng dụng khách có thể có. Tốt nhất là giữ các phân đoạn khác nhau trong các bảng từ điển riêng biệt (ví dụ:nếu chúng tôi có các loại khách hàng và loại vai trò nhân viên, chúng tôi sẽ lưu trữ chúng trong các bảng khác nhau). Tuy nhiên, chúng tôi chỉ cần một bảng vì đây là một mô hình đơn giản.
Bảng cuối cùng trong mô hình của chúng tôi là replacement
bàn. Chúng tôi sẽ sử dụng nó để liên quan đến hai dịch vụ:dịch vụ mà chúng tôi muốn thay thế và dịch vụ thay thế. Điều này mang lại cho chúng tôi sự linh hoạt trong việc cung cấp cho khách hàng các dịch vụ thay thế cho các dịch vụ hiện có (giống như thay đổi từ gói gọi điện thoại di động này sang gói gọi điện thoại di động khác).
Ưu điểm của Cơ sở dữ liệu
Cơ sở dữ liệu phức tạp hơn để thiết lập so với bảng tính, nhưng điều này thực sự mang lại cho chúng một số lợi thế đáng kể về tính toàn vẹn và bảo mật của dữ liệu:
Các phím và ràng buộc
Cơ sở dữ liệu có các quy tắc và kiểm soát tích hợp sẵn, nếu được sử dụng đúng cách, sẽ ngăn chặn hầu hết các vấn đề về chất lượng và hiệu suất dữ liệu. Khóa chính (cột xác định duy nhất từng bản ghi trong bảng) và khóa ngoại (cột tham chiếu đến bản ghi trong bảng khác) rất quan trọng đối với an toàn dữ liệu, nhưng xác định khóa thay thế hoặc DUY NHẤT (chứa dữ liệu duy nhất cho mỗi bản ghi trong bảng ) cũng rất hữu ích.
Trong cơ sở dữ liệu quan hệ, các khóa liên quan đến dữ liệu từ các bảng khác nhau. Khóa chính của bảng luôn là DUY NHẤT, trong khi khóa ngoại tham chiếu khóa chính từ một số bảng khác. Tham chiếu đó liên quan đến dữ liệu từ hai bảng này (ví dụ:khóa ngoại trong has_service
bảng liên hệ dữ liệu khách hàng với các dịch vụ mà họ có). Nó cũng sẽ cảnh báo chúng tôi nếu chúng tôi sắp xóa khóa chính được tham chiếu trong một số bảng khác. Điều này sẽ ngăn chúng tôi xóa các bản ghi vẫn cần thiết (làm tài liệu tham khảo) trong một bảng khác.
Các ràng buộc xác định loại dữ liệu có thể được nhập vào một trường. Chúng ta có thể chỉ định rằng dữ liệu phải có giá trị (NOT NULL), xác định định dạng cho số điện thoại, chỉ chứa các chữ cái, v.v. Điều này có nghĩa là chúng tôi có thể tránh các vấn đề về dữ liệu do những người nhập sai loại dữ liệu vào một trường.
Bảo mật và Quyền
Một tính năng cơ sở dữ liệu rất quan trọng khác là kiểm soát quyền truy cập vào dữ liệu của bạn . Điều này cung cấp cho bạn khả năng đặt không chỉ ai có thể truy cập cơ sở dữ liệu của bạn mà còn kiểm soát những gì họ có thể xem hoặc sửa đổi. Đây là một phần rất lớn của bảo mật dữ liệu. Ví dụ:bạn có thể xác định vai trò người dùng cho phép nhân viên thay đổi chi tiết khách hàng nhưng không thay đổi chi tiết dịch vụ. Bạn cũng có thể đặt ra các quy tắc mà nhân viên có thể thay đổi hoặc xóa dữ liệu. Đó là một phương pháp tiêu chuẩn tốt để đảm bảo rằng mọi người chỉ có quyền truy cập vào dữ liệu họ cần để thực hiện công việc của mình.
Tất nhiên, chúng tôi có thể cố gắng tạo lại các chức năng này trong các trang tính (ít nhất là theo một cách nào đó), nhưng đó chắc chắn sẽ là “sáng tạo lại bánh xe”.
Chúng ta không thể chỉ sử dụng một bảng tính?
Tất nhiên chúng tôi có thể. Chúng tôi có thể tạo các trang tính theo cùng một mẫu được sử dụng trong mô hình dữ liệu. Điều đó sẽ giải quyết nhiều vấn đề về dữ liệu, nhưng…
Sao chép mô hình dữ liệu trong trang tính chắc chắn không phải là một lựa chọn lý tưởng. Chúng tôi sẽ mất tất cả những lợi thế mà hệ thống cơ sở dữ liệu cung cấp cho chúng tôi, tất cả các quy tắc và ràng buộc để giữ cho dữ liệu “khỏe mạnh”, tất cả những thứ ngăn chặn việc xóa ngẫu nhiên và các lỗi khác. Chúng tôi sẽ mất khả năng tối ưu hóa và nếu tập dữ liệu đủ lớn, hiệu suất sẽ có tác động.
Ngay cả khi chúng tôi đã giải quyết được điều đó, thì việc chia sẻ dữ liệu thì sao, ví dụ:có nhiều người dùng sử dụng cùng một trang tính cùng một lúc? Điều này sẽ gây ra những vấn đề về tính toàn vẹn và hiệu suất của dữ liệu nào? Điều này ngược lại với việc giữ mọi thứ đơn giản.
Vì vậy, nếu bạn cho rằng trang tính không thể đáp ứng nhu cầu kinh doanh của mình, có thể bạn đã hướng tới cơ sở dữ liệu. Nếu bạn thấy mình bị mắc kẹt với dữ liệu được lưu trữ trong trang tính và bạn muốn chuyển sang cơ sở dữ liệu, bạn nên:
- Tạo mô hình cơ sở dữ liệu để lưu trữ dữ liệu của bạn một cách tối ưu.
- Xây dựng ứng dụng với cơ sở dữ liệu ở chế độ nền.
- Xóa dữ liệu của bạn, chuyển đổi dữ liệu (nếu cần) và nhập dữ liệu đó vào cơ sở dữ liệu.
- Chỉ tiếp tục làm việc với cơ sở dữ liệu.
Bạn Nên Chọn Cái nào - Bảng tính hay Cơ sở dữ liệu?
Trong bài viết hôm nay, chúng ta đã tìm hiểu cách cơ sở dữ liệu giải quyết các vấn đề bằng cách sử dụng trang tính để sắp xếp nhiều dữ liệu. Lời khuyên của tôi là luôn đi cùng với giải pháp đơn giản nhất cho vấn đề của bạn . Nếu bảng tính hoạt động tốt, hãy sử dụng chúng. Nhưng nếu bạn là một công ty dựa trên dữ liệu, bạn nên bắt đầu sử dụng cơ sở dữ liệu càng sớm càng tốt. Bạn càng đợi lâu để dọn dẹp và di chuyển dữ liệu của mình, quá trình này sẽ càng trở nên khó khăn hơn.