Gỉa sử bạn được giao cho quyền truy cập Cơ sở dữ liệu (CSDL) khi mới nhận việc, làm sao để bắt đầu tìm hiểu cục CSDL này? Có quy trình nào cho việc này không?

Có chứ bạn ơi ✌ Cũng không như cách để tán Crush mặc dù không có bảng quy tắc chung và thống nhất nhưng mà vẫn có một quy chuẩn chung nè 🤣

1. Lên chiến lược tấn công Crush (Gói cơ bản)

Ông bà ta có câu: “Biết người biết ta trăm trận trăm thắng”, câu nói này đúng cho cả trong công việc (và cả cách để tán đổ Crush luôn à nhen 😎).

Okay việc đầu tiên mà các bạn cần làm là phải biết được một số thông tin về CSDL của bạn, ở đây là CSDL AdventureWorks. Và để nắm được các thông tin đó bạn cần có các chiến lược và công cụ bao gồm:

  • Lược đồ CSDL: Nhằm có cái nhìn khái quát nhất tới mối quan hệ giữa các bảng trong CSDL.
  • Các nghiệp vụ liên quan: Siêu quan trọng vì CSDL là nơi tập trung dữ liệu từ tất cả hoặc một phần các nghiệp vụ của doanh nghiệp.
  • Những lưu ý đặc biệt của từng bảng dữ liệu liên quan tới nghiệp vụ mà mình quan tâm: Sẽ là rất mơ hồ khi nói lưu ý đặc biệt nhưng các bạn có thể hiểu giống như các Crush vậy, mỗi người sẽ có những đặc điểm riêng mà chỉ khi ta “gãi” trúng thì mới bắt chuyện đúng được nè 🤣 (Ở đây gãi = truy vấn; bắt chuyện đúng = truy vấn ra dữ liệu chính xác).
  • Cuối cùng quan trọng nhất phải tiếp cận được các tài liệu hoặc biết được hệ thống đang dùng ngoài truy vấn trực tiếp trên bảng dữ liệu thì còn dùng những Store Procedure(SP) hay Views nào đặc biệt không

Q&A: Tổng hợp các câu hỏi và trả lời các chiến lược cơ bản bên trên

Nghiệp vụ là gì nhỉ? Nghiệp vụ nếu hiểu ở góc nhìn sản phẩm phần mềm là những dịch vụ, chức năng mà hệ thống thực hiện. Ví dụ chức năng đăng nhập cũng là một nghiệp vụ

Q1

Trong thực tế thì làm sao để nhận biết các nghiệp vụ khác nhau khi xem CSDL? Ừmm thì cũng không có ranh giới nào nhiều đâu, thông thường thì có vài cách như: Phân từng nghiệp vụ ra từng CSDL riêng; Dùng Schema định danh bảng khác nhau; Tệ hơn nữa là phải dùng tài liệu đặc tả; Còn tệ tệ bét bè nữa là “Truyền miệng” 🤣

Q2

Tại sao quan trọng nhất phải biết được hệ thống có những SP hay Views nào quan trọng? SP hay Views nói không ngoa nhưng nó giống kiểu quân sư tình yêu giữa bạn và Crush vậy, nhờ có nó mới đảm bảo hiệu suất giữa hai đứa (ở đây là hệ thống với CSDL) và cả bảo mật kín tiếng nữa (Chọc thẳng vào CSDL là việc hết sức nguy hiểm nếu chẳng may quên phân quyền giới hạn và người kia xóa luôn cái bảng của bạn – Hy hữu nhưng có à nhen)

Q3

Okay bước tiếp theo mình sẽ chỉ chi tiết cho từng chiến lược nhen

2. DATABASE DIAGRAM – Dễ mà hữu hiệu

Chức năng tạo biểu đồ CSDL được tích hợp sẵn trong công cụ SSMS mà lần trước mình có giới thiệu tới các bạn rùi á. Sau khi đăng nhập thì các bạn mở cửa sổ Object Explorer lên (Ấn F8 hoặc vào View > Object Explorer)

B1: Bung Database ra thì các bạn sẽ thấy thư mục đầu tiên chính là nơi chứa các bảng vẽ CSDL

Ngay dòng đầu tiên luôn nè

B2: Chuột phải vào thư mục Database Diagram > New Database Diagram

B3: Sửa lỗi 🤣

Đời không như mơ

Tại sao lại lỗi? Thật ra cái này không phải lỗi mà là yêu cầu từ phía Microsoft nếu như bạn muốn dùng công cụ Design Database bằng Diagram thì chỉ có User có quyền db_owner mới bật nó lên được

Kì nhỉ

Ở trên mình có nói tới chữ công cụ thì đúng vậy á, không chỉ cung cấp cho ta mối quan hệ giữa các bảng dữ liệu bằng lược đồ trực quan, chúng ta còn có thể thao tác trên đó như tạo thêm mối quan hệ mới giữa các bảng, …

Qúa dữ

Cần lưu ý rằng bật công cụ Design Database Diagram thì cần có db_owner role nhưng tạo Diagram thì ai cũng tạo được sau khi bật. Có cái chỉ có db_owner mới thấy hết tất cả Diagram tạo bởi các User còn User A không thể thấy Diagram của User B.[

Quan trọng nè

Thực ra còn một lỗi khá khó chịu nữa, màn hình hình văng lỗi đây.

Lỗi này thật ra rất dễ fix

Lỗi này thì nếu bạn mới cài SQL Server vào máy mình và nhảy luôn vài tút này của mình làm theo thì chắc là sẽ không bị đâu, nhưng đời đâu như mơ mà hen :v nên là nếu có mắc lỗi thì đọc bài viết này để sửa hoặc có thể đơn giản nhất là dùng dòng lệnh sau đây

-- Replace YourDatabaseName by your real database name 😂
ALTER AUTHORIZATION ON DATABASE::YourDatabaseName TO sa
GO

Mấy bồ thực hiện theo các bước dưới đây để sửa lỗi nhen, siêu đơn giản à:

  • Chuột phải vào Database > Properties
  • Tiếp theo cửa sổ Database Properties sẽ xuất hiện. Mấy chế mở trang Files (Thanh bên trái) rồi điền vào mục Owner chữ sa
  • giờ thì kiểm tra lại xem đã dùng được chức năng tạo Lược đồ chưa theo các bước hướng dẫn ở trên: Chuột phải Database Diagram Folder > New Database Diagram. Nếu xuất hiện thông báo dưới đây là thành công

Thông báo này là sao? Ừm thì ý nó là khi tạo Lược đồ thì trước hết Database Engine sẽ tự tạo một vài đối tượng trong CSDL bao gồm bảng dbo.sysdiagrams, một vài cái SP như sp_creatediagram, sp_upgraddiagrams … vào CSDL của hệ thống (Nó khác CSDL AdventureWorks nhen, nó là CSDL mặc định của Server) 😁

Giai đáp bí ẩn nè

Cũng cần lưu ý nữa là nếu chưa nhấn đồng ý ở cửa số trên thì khi nhấp chuột phải vào thư mục Database Diagrams chúng ta sẽ thấy có thêm một lựa chọn nữa là Install Diagram Support cũng chính là chức năng cài thêm các đối tượng như trong cửa sổ thông báo trên 🤔Khó hiểu nhỉ sao lại phải làm ra một chức năng riêng? Trong khi vẫn bắt người dùng cài đặt để xài


B4: Sau khi hiện thông báo xác nhận bạn có muốn tạo Diagram như trên thì bạn chọn Yes (Sure rùi 🤣). Và đây là màn hình sẽ xuất hiện sau đó:

B5: Chọn các bảng liên quan cần phân tích (Ờ thì có thể chọn hết á nhưng mà chúng ta nên áp dụng chiến lược “chia để trị” 😂)

Ở đây mình sẽ chọn các bảng liên quan tới Production (Phân biệt nhóm bằng chữ được đặt trong ngoặc tròn á). Và đây là kết quả sau khi thêm vào loạt các bảng liên quan (Dùng Ctrl để chọn nhiều bảng)

Nhìn giống cái cây ha

Bạn có thể chọn chỉ hiển thị tên bảng và các cột khóa chính thui để đỡ rồi mắt bằng cách Click chuột vào vùng trắng > Ctrl+A > Chuột phải vào tên bảng bất kỳ > Table View > Keys

Tips nè ❤️

Bạn cũng có thể xóa bất cứ bảng nào không quan tâm. Yên tâm đi nè, không bị mất bảng trong CSDL đâu vì ở đây chỉ là xóa trên bản thiết kế lược đồ thui 😁

Vậy là bạn đã biết được cách tạo một lược đồ CSDL rùi nè. Công cụ là vậy còn phân tích thì phải đi chi tiết ở những bài viết sau. Nhớ theo dõi kênh Youtube vì mình thường cập nhật sớm nhất ở trên Youtube í

3 Bussiness Logic – Nghiệp vụ liên quan

Thật sự thì hiểu được nghiệp vụ của 1 doanh nghiệp thì bạn đã nắm tới 50% thành công trên chặng đường thăng tiến rùi. Thiệt đó, doanh nghiệp càng lớn thì nghiệp vụ nó càng là giá trị cốt lõi của công ty đó chứ không còn là công nghệ đâu ✨✨

Chính vì vậy CSDL cũng có mục đích vô cùng quan trọng là lấy nghiệp vụ làm trọng tâm để lưu trữ dữ liệu. Nên hai “ông kẹ” này dù hai nhưng vẫn là một 😎

Vì nghiệp vụ vô cùng quan trọng nên mới nảy sinh ra một vị trí chuyên về phân tích, phát triển nghiệp vụ là Business Intelligence (BI) và Business Analysis (BA). Dù cho có khác nhau nhiều hay ít về mô tả công việc thì yêu cầu cơ bản nhất của hai vị trí này vẫn là phải biết viết ngôn ngữ SQL và sử dụng thành thạo các công cụ liên quan 😂

Fun fact

Thật ra ở Việt Nam, lằn ranh giữa BA và BI vẫn còn mờ nhạt. Có nơi thì BA là người chịu trách nhiệm phân tích nghiệp vụ dựa trên số liệu để trả lời các câu hỏi WH. Còn có nơi thì BA lại có nhiệm vụ lấy yêu cầu từ người dùng hoặc nội bộ để hoạch định cho team dev xây dựng chức năng mới. Còn BI nhiều công ty cũng vậy nhưng có khi lại tập trung công việc ở tầng xây dựng báo cáo hoặc đánh giá đúng sai số liệu 😢

Đang dạng sinh học ngành nghề

Okay vậy thì chúng ta biết được tầm quan trọng và mối liên quan mật thiết giữa CSDL và nghiệp vụ rùi vậy làm sao để tìm (và) hiểu nghiệp vụ?

Có một số cách cơ bản sau đây mà mình tin là các bạn có thể áp dụng được:

  • Chai mặt: Yes đúng rùi, không sai đâu, mặt dày vào để đi hỏi những đồng nghiệp, anh chị và đặc biệt là anh chị cô chú bác làm ở vị trí BI và BA. Nhưng mà nhớ khôn khéo nhen không dễ bị chửi ó hahahaha 😂
  • Kinh nghiệm: Thật sự thì có một rule khi các bạn đi xin việc mà ai ít để ý tới đó là hãy xin vào nhưng công ty có cùng domain với nhau thì việc liên đới các nghiệp vụ sẽ có một mẫu chung nên chúng ta dễ học hơn.

Domain là gì nhỉ? Ví dụ như Edu thì phải xin tiếp Edu, Ecommerce thì tiếp theo cũng cần liên quan tới Shopping .. Nói chung domain có thể hiểu là lĩnh vực mà doanh nghiệp đang vận hành, kinh doanh.

Note
  • Cuối cùng cũng không kém phần quan trọng đó là áp dụng phương pháp thử và sai + lên kế hoạch để tìm hiểu nhằm giảm thiểu thời gian. Vì bạn thường chỉ có 2 tháng thử việc, đồng thời thử và sai đồng nghĩa với trễ hạn công việc nên lên kết hoạch và thử đúng sai phải có hạn mức nhất định.

4 Kết thúc phần II, hẹn phần III nói tiếp – Bài dài quá rùi 😢

Nói nhiều viết nhiều dễ dẫn đến đọc nhiều mỏi mắt, chán 😂 Nên hẹn các bạn phần sau. Nói chung phần này các bạn cũng nắm được đại khái 2 chiến lược khởi đầu rùi.

Quan trọng nhất nhớ theo dõi Youtube vì viết cỡ nào cũng không bằng demo bằng Video đúng không nè ❤️