SQL là gì? SQL là viết tắt của từ Structured Query Language, nghĩa là ngôn ngữ truy vấn dữ liệu. Có thể coi SQL là ngôn ngữ chung mà bất cứ hệ thống cơ sở dữ liệu quan hệ (RDBMS) nào cũng phải đáp ứng.

Đọc bài phỏng vấn của ITviec với anh Hồng Minh Trí – người có hơn 7 năm làm việc với SQL để biết đầy đủ về SQL là gì và Những tài liệu học SQL tham khảo cho người mới bắt đầu tìm hiểu về ngôn ngữ SQL.

SQL là gì?

SQL là gì? SQL là viết tắt của Structured Query Language, nghĩa là ngôn ngữ truy vấn dữ liệu. Có thể coi ngôn ngữ SQL là ngôn ngữ chung mà bất cứ hệ thống cơ sở dữ liệu quan hệ (RDBMS) nào cũng phải đáp ứng, điển hình như: Oracle Database, SQL Server, MySQL…

Bất kì công ty nào lớn cũng cần xây dựng một hệ thống để lưu trữ cơ sở dữ liệu. Mọi thứ trong cơ sở dữ liệu này sẽ được quy ra thành nhiều bảng, có mối quan hệ với nhau. SQL giúp quản lý hiệu quả và truy vấn thông tin nhanh hơn, giúp bảo trì thông tin dễ dàng hơn.

Khi doanh nghiệp lưu trữ thông tin dạng truyền thống như giấy hay file Excel thì sẽ có nhiều rủi ro như bị mất, sửa, xóa… cũng như phải mất rất nhiều thời gian để lục lại hồ sơ. Chưa kể, một số trường hợp sau khi thêm hoặc sửa thông tin, hồ sơ sẽ không còn hợp lệ.

Trong khi, nếu lưu trữ thông tin vào một hệ thống cơ sở dữ liệu, bạn chỉ cần gõ một câu lệnh SQL ngắn là đã có thể trích xuất được thông tin em cần. Việc thêm/xóa/sửa cũng được thực hiện một cách dễ dàng, nhanh chóng.

Để truy vấn và lấy dữ liệu từ các bảng này (nhằm tổng hợp thành thông tin hữu ích nào đó), người ta dùng đến SQL thông qua các câu query.

PL/SQL là gì?

PL/SQL là viết tắt của Procedural Language/Structured Query Language – một loại ngôn ngữ thủ tục dùng cho Oracle. PL/SQL là một extension (mở rộng) của riêng Oracle.

PL/SQL ra đời để hỗ trợ thêm cho web service. Nếu như SQL có nhiệm vụ truy vấn đến các bảng để trả về dữ liệu thì PL/SQL sẽ thực hiện những công đoạn tiếp theo như: đóng gói kết quả, xử lý cách hiển thị trên giao diện…

Công việc của SQL Developer

Công việc của một SQL Developer tùy thuộc vào yêu cầu của mỗi công ty. Anh Trí chia sẻ,

Về cơ bản, SQL giống như một kỹ năng. Hầu như developer nào cũng sẽ làm việc với SQL dù ít hay nhiều.

Chỉ có ngân hàng hoặc những công ty có hệ thống dữ liệu cực lớn như thì họ mới tuyển developer chuyên làm việc với SQL và chỉ duy nhất SQL mà thôi.

Công việc của một SQL Devloper sẽ:

Còn lại, công việc của một SQL cũng sẽ giống như những lập trình viên khác. Anh Trí chia sẻ thêm về công việc hiện tại của anh khi làm theo mô hình Scrum, chia ra làm nhiều Sprint khác nhau:

Mỗi sáng, anh thường họp với văn phòng bên Úc để báo cáo tình hình công việc: Hôm qua đã làm những gì, hôm nay sẽ làm gì tiếp theo, có khó khăn nào cần hỗ trợ không… rồi mới bắt đầu vào công việc chính.

Công việc của anh là giải quyết từng story cụ thể trong từng Sprint mà Scrum Master đã phân bổ cho mọi người. Những story này thường sẽ được chia điểm tùy theo mức độ phức tạp của requirement.

Phía khách hàng cũng có ràng buộc là trong một Sprint, mỗi một developer phải làm ít nhất bao nhiêu point đó, chứ không ít hơn được.

Để giải quyết story, thời gian của anh vẫn xoay quanh việc coding và unit test (test lại các chức năng cơ bản sau khi develop một chức năng nào đó), sau đó bàn giao lại cho Tester kiểm thử requirement.

Thỉnh thoảng, bọn anh cũng sẽ review code chéo cho nhau khi được yêu cầu để đảm bảo mọi người đều có thể cải thiện kỹ năng coding.

Những tố chất nên có khi làm SQL là gì?

Theo anh Trí, một người muốn làm về SQL thì nên sở hữu 3 tố chất sau đây:

Khi có tư duy lập trình, có nền tảng học về IT tại trường đại học rồi thì bạn sẽ làm quen với SQL rất nhanh. Về cơ bản, các ngôn ngữ lập trình chỉ khác nhau về cú pháp còn bản chất hay logic thì khá tương đồng.

Tuy nhiên, anh Trí cũng chia sẻ thêm rằng điều này cũng không phải yếu tố bắt buộc vì anh thấy có nhiều bạn học kinh tế nhưng chuyển qua học và làm SQL cũng “ổn áp”.

Theo anh Trí, việc học tiếng Anh có nhiều lợi ích:

  1. Hầu hết các tài liệu học SQL hay đều được viết bằng tiếng Anh. Có nhiều bài được dịch sang tiếng Việt nhưng vẫn chưa thật sự “chuẩn” và dễ hiểu.
  2. Khi làm việc trong môi trường công ty nước ngoài, việc phải giao tiếp, tham dự các cuộc họp với người nước ngoài là chuyện đương nhiên nên khả năng tiếng Anh tốt sẽ là một lợi thế khi làm việc.

Nói về kinh nghiệm học tiếng Anh của mình thì anh chia sẻ rằng anh chủ yếu học qua trung tâm. Anh thực hành nói chuyện với thầy cô người bản xứ, làm bài tập về nhà, coi phim không phụ đề trên Youtube, cứ nghe đi nghe lại nhiều lần.

Làm việc với dữ liệu mà sai một ly là đi một dặm.

Anh Trí khuyến khích người mới làm về SQL nên thường xuyên đọc lại log server để biết được nguyên nhân sâu xa gây phát sinh lỗi. Biết được nguyên nhân thì lần sau mới tránh lặp lại lỗi tương tự.

Lộ trình sự nghiệp khi theo SQL là gì?

Cá nhân anh Trí thấy SQL Developer nói riêng, và Database Developer nói chung, có thể phát triển theo 2 hướng phát triển:

Bước tiếp theo thì bạn có thể phấn đấu để trở thành Data Architect – người thiết kế ra cơ sở dữ liệu cho doanh nghiệp. Muốn làm Data Architect thì yêu cầu bắt buộc là phải nắm rõ được hệ thống trước đã nhé.

Ngoài ra, Data Scientist cũng là vị trí đáng cân nhắc. Ngoài kiến thức về SQL, em còn phải biết về xác suất thống kê và ngôn ngữ lập trình khác, thường là Python.

Anh nhận định Data Scientist là hướng đi khá hay và tiềm năng, không chỉ với mảng database mà còn với ngành IT nói chung.

Những SQL Developer phát triển theo hướng quản lý thì có thể làm Business Analyst hoặc Project Manager.

Tài liệu học SQL tham khảo

Sách về SQL thì anh Trí gợi ý những tài liệu học SQL sau đây sẽ phù hợp với người mới bắt đầu:

Còn nếu muốn tìm hiểu riêng về Oracle SQL (cụ thể là PL/SQL), anh gợi ý như sau:

SQL Developer trong ngành nói gì?

Anh Trí chia sẻ rằng,

Anh thấy SQL ra đời rất lâu đời rồi và anh nhận định là SQL sẽ không bao giờ chết.

Hầu hết các ngân hàng, công ty tài chính lớn đều đang sử dụng SQL để phục vụ cho hệ thống quản trị cơ sở dữ liệu Oracle. Mà em biết rồi đó, cái gì họ đã đầu tư nhiều tiền thì rất ít khi họ muốn thay đổi.

Tuy nhiên, Thực tế thì mình học cái gì cũng vậy, nên nhìn ra thị trường và tiên đoán xem ngành mình đang làm có còn chỗ đứng trong 5-10 năm nữa hay không, có còn phát triển được nữa hay không.

Nên mình có thể linh hoạt đáp ứng được xu thế của thị trường vì thị trường không thể đứng im mãi một chỗ được. Nên anh cũng khẳng định rằng các ngôn ngữ truy vấn khác rất cần thiết cho developer.

Anh Trí kể về một trong những sai lầm mà anh đã từng mắc phải trong quá trình làm việc,

Anh nhớ trước đây có một câu query anh viết chưa thực sự tối ưu nên anh quyết định thêm Oracle hint (diễn giải dùng để hướng dẫn Oracle chạy theo ý mình) thì thấy code chạy nhanh hơn hẳn.

Ỷ y là code của mình ngon rồi, cool rồi, anh đưa lên môi trường UAT (User Acceptance Testing). Đây là môi trường để mình test trước khi demo cho khách hàng.

Lúc này, những nhân viên ở các phòng ban khác cùng truy xuất vào câu query của anh để test thử thì bị treo, bị đơ toàn tập.

Sau khi tìm hiểu, anh phát hiện nguyên nhân bị lỗi nằm ở chính cái hint mà anh đã thêm vào. Nó chỉ chạy tốt trong môi trường development – nơi chỉ có 1 user là anh đang làm việc. Còn ở môi trường như UAT – nơi có nhiều user hoạt động cùng lúc thì nó lại chạy rất chậm.

Chính về thế, SQL Developer nên nhớ là câu query có chạy tốt hay không còn phụ thuộc vào dữ liệu ở mỗi môi trường. Không nên dựa hoàn toàn vào môi trường development. Dữ liệu ở môi trường này ít hơn hẳn so với môi trường production.

Kinh nghiệm của anh là nên chủ động test tất cả các trường hợp có thể xảy ra trên nhiều môi trường nhất có thể. Không nên thụ động, không chờ Tester la làng thì mới bắt tay vào sửa.

Có một sự thật ai cũng biết nhưng cũng cần phải nhắc lại đó là đi học và đi làm là hai môi trường hoàn toàn khác nhau.

Anh Trí kể về câu chuyện của bản thân khi đi đến với “phát hiện” này:

Khi học ở trường, anh phải tự thiết kế ra cơ sở quản lý dữ liệu riêng, phục vụ cho đề án chứ không có cơ sở quản lý dữ liệu thực tế của doanh nghiệp để thực hành. 

Anh không biết một hệ thống lớn sẽ hoạt động ra sao, chưa được tiếp xúc với performance issue, không biết câu query của mình sẽ chạy nhanh hay chậm khi đưa vào môi trường có lượng dữ liệu lên đến hàng trăm GB…

Rồi đó, đi làm mới nhận ra thực tế phũ phàng. Câu query của mình không hiệu quả, không trích xuất được đúng dữ liệu mình cần.

Cảm ơn anh Trí vì những chia sẻ rất chân thật và hữu ích!

Tiểu sử:

Anh Hồng Minh Trí tốt nghiệp đại học Huflit ngành Software Engineering năm 2011. Anh đã từng làm việc cho rất nhiều công ty như FE CreditCosatechBPC Banking TechnologiesAmaris và hiện là PL/SQL Developer ở Hansen Technologies.

Tính đến nay, anh Trí đã có hơn 7 năm kinh nghiệm làm việc với SQL, PL/SQL cũng như hệ thống quản trị cơ sở dữ liệu Oracle Database.

Robby2

Leave a Reply

Your email address will not be published. Required fields are marked *