Anh em khi tìm hiểu Database Developer chắc chắn là có biết về database (hệ cơ sở dữ liệu). Nhìn sơ cái tên có thể đoán ra Database Developer là lập trình viên liên quan tới cơ sở dữ liệu. Nhưng có phải ông lập trình viên này ăn rồi ngồi viết query lấy data này, xoá dữ liệu kia?
Mà khác với anh em Frontend Developers hay Backend Developers. Suốt ngày ngồi lò mò với dữ liệu vậy có sinh ra nhàm chán quá mà trầm cảm không?


1. Database Developer cụ thể là làm gì?
Tất nhiên rồi, không có định nghĩa không hình dung được Database Developer là làm gì đâu?
“Database Developers commonly work to a process known as the Software Development Life Cycle (SDLC), which contains six stages: analysis, design, development and testing, implementation, documentation, and evaluation. They work in the IT department of tech–driven organisations in a broad range of industries.”
Database Developer thường làm việc cho một quy trình thường gọi là Quy trình phát triển phần mềm (SDLC), bao gồm sau quá trình chính là phân tích, thiết kế, phát triển và kiểm thử, hiện thực, tài liệu và đánh giá. Họ làm việc trong IT department của nhiều nghành công nghiệp. Họ cũng có thể làm việc tự do cho một loạt khách hàng khác nếu muốn.
À rồi, vậy Database developers vẫn tham gia vào quá trình phát triển phần mềm như những anh em khác trong đội Frontend, Backend hay Product Owner. Nhưng focus vào hệ cơ sở dữ liệu.
Không phải chỉ ăn rồi ngồi rõ query. Một số nhiệm vụ chính của DB Developer bao gồm:
- Thiết kế hệ cơ sở dữ liệu (Designing database systems – cái này không dễ đâu nha).
- Tạo và cập nhật tài liệu liên quan tới hệ cơ sở dữ liệu (Creating and updating database documentation).
- Thu thập yêu cầu của dự án bằng cách liên hệ với các bên có liên quan (Gathering project requirements by liaising with stakeholders).


Anh em nhớ chỉ là một số nhiệm vụ chính thôi nha. Trong thực tế Database Developer có thể tham gia vào quá trình kiểm thử phần mềm. Bản thân có thể kết hợp mượt mà với QC (quality control) vì bản thân ông Database Developer hiểu rất rõ về dữ liệu hệ thống.
Ngoài ra phần tài liệu về hệ cơ sở dữ liệu cũng quan trọng không kém. Dùng loại nào, có function, có function hay store procedure nào không? Database trigger như nào?,… Tất cả đều được ghi vào tài liệu rõ ràng và cụ thể.
2. Vai trò, vị trí của DB Developers
Rõ ràng là dữ liệu là thứ sống còn với bất cứ ứng dụng hay hệ thống nào. Dữ liệu là thứ quý giá, được bảo vệ kỹ càng. Mà đã là người làm việc với thứ quý giá thì auto trở nên quan trọng đúng không anh em?.
Là người trực tiếp làm việc với Database (hệ cơ sở dữ liệu), tham gia vào quá trình thiết kế hệ cơ sở dữu liệu. Database developers có vai trò vô cùng quan trọng trong dự án.


Thiết kế hệ cơ sở dữ liệu mà không đúng hoặc không adapt được với requirement thì xem như ứng dụng không thể hoàn thành.
Nếu thiết kế hệ cơ sở dữ liệu bị sai mà vẫn đem vào vận hành thì còn thảm hoạ hơn, khi dữ liệu đã là production mà nó còn sai thì anh em chỉ có đường ngồi nhìn.
Anh em Backend developer cần có data test hoặc có câu queries này chạy chậm, hay query chưa đúng business (lấy ra đúng thứ cần lấy) thì biết hỏi ai. Có Database developer thì còn nói gì nữa.
Rồi chị QC cần có dữ liệu để mock test nhưng mà nhìn vào danh sách một đống bảng biểu thư từ thì chị ấy tiền đình ra (do một phần ở nhà có con nhỏ, phóng đại lên tý cho điêu thôi). Mà tạo mock data thì nhờ ai. Lại nhờ Database developer chứ ai?
Một số ví dụ trên cho ta biết Database developer là một vị trí quan trọng trong quá trình phát triển phần mềm. Vậy giờ muốn trở thành Database developer thì cần có những kỹ năng nào?
Đây, có ngay đây!
Tham khảo Jobs Database Developer hấp dẫn trên TopDev
3. Các kỹ năng cần có của Database Developers
Tất nhiên là mỗi vị trí đều đòi hỏi những kỹ năng riêng. Database Developer cũng vậy. Đã liên quan tới hệ cơ sở dữ liệu thì sẽ yêu cầu những kỹ năng làm việc với DB.
Cụ thể liệt kê đưới đây:
- Hiểu biết về SQL, T-SQL và PL/SQL, DB2 – Proficient knowledge of SQL, T-SQL and PL / SQL, DB2
- Kinh nghiệm với Oracle database – Experience with Oracle databases
- Hiểu biết về hệ cơ sở dữ liệu NoSQL – Knowledge of non-relational databases like NoSQL
- Chuẩn bị data – Knowing how to prepare data
- Ước lượng tiền – Ability to perform cost calculations
- Integratioin hệ thống và kiểm thử chất lượng – system integration and quality testing
- Hiểu biết về hệ điều hành như Windows hoặc Linux – Knowledge of operating systems like Windows and Linux
- Hiểu biết về ngôn ngữ lập trình như C++ hay Java – Knowledge of programming languages like C ++, Java, C#, etc.
- Hiểu biết về HTML – Experience with page description languages like HTML


3.1 Nice to have – có thêm càng tốt
Ủa gì có code Java, C++ luôn hở? Tất nhiên rồi anh em ơi, vẫn cần có tư duy lập trình và tốt nhất là nên biết một ngôn ngữ lập trình nào đó. Kỹ sư hệ thống hay kiến trúc phần nhiều họ cũng từ developers đi lên. Nên cũng biết về code, như bài viết về Data Analyist cũng có phân tích với anh em về điểm này rồi.


Phía trên chỉ viết về Oracle với database. Nhưng anh em nếu có kinh nghiệm với các hệ cơ sở dữ liệu khác như Postgres, MySQL, MariaDB càng tốt.
Một số kỹ năng khác nếu có thì là điểm cộng lớn như:
- Chuẩn bị dữ liệu test – Kiểu mock data phục vụ cho IT (Integrations test), RT (Regression test)
- Migration data từ hệ cơ sở dữ liệu này qua hệ cơ sở dữ liệu khác (từ Oracle qua Postgres, …). Trước nhớ có đợt Oracle đắt qua các công ty thường chuyển qua hệ cơ sở dữ liệu Postgres.
4. Con đường cho Database Developers
Nói về hiểu biết thì mức độ hiểu biết về hệ cơ sở dữ liệu của Database developer nhất thiết phải sâu và rộng hơn so với Backend developer. Kinh nghiệm về thiết kế DB cũng phải dày dặn hơn. Những kinh nghiệm này có được do đã trải qua nhiều lần sai trước đó về mặt dữ liệu.
Về hướng đi thi Database develops có thể chuyển qua Data Analytics, Computer Science hoặc Solution Architect nếu muốn. Tất nhiên các hướng đi về Computer Science đòi hỏi nỗ lực lớn để học thêm (không những về kinh nghiệm làm việc mà còn các kiến thức khác về toán học).


Nếu lựa chọn theo hướng Solutions Architect thì cần kinh nghiệm code và hiểu biết rộng hơn về ngôn ngữ lập trình và hệ thống. SA đòi hỏi cái nhìn và góc nhìn bao quát rộng, không chỉ gói gọn ở hệ cơ sở dữ liệu.
5. Tham khảo
- Types of Databases – GeeksforGeeks (4 loại của hệ cơ sở dữ liệu)
- Top Database Design Books in 2021 – Vertabelo (tổng hợp các cuốn sách nói về thiết kế hệ cơ sở dữ liệu). Có cuốn Database Design and Relational Theory rất hay. Anh em có thể tham khảo.
- SQL trigger là gì? – Ưu, nhược điểm
Cảm ơn anh em đã đón đọc – Thank you for your time – Happy coding!
Tác giả: Kiên Nguyễn
Có thể bạn quan tâm:
- Bộ câu hỏi phỏng vấn Fullstack Developer hay và khó
- Lưu RegisteredClient vào database trong Spring Authorization Server
- Giới thiệu về GraphQL. Cách giải quyết những hạn chế của RESTful API
Xem thêm Việc làm IT hấp dẫn trên TopDev
Ép Kiểu & Comment Source Code trong Java
Bài viết được sự cho phép của tác giả Nhựt Danh
Bài hôm nay chúng ta sẽ nói về 2 vấn đề “nhỏ”, đó là ép kiểu và comment source code. Bạn cũng nên biết nhỏ ở đây là nhỏ về tổng số chữ viết, chứ thực ra hai vấn đề hôm nay đều rất quan trọng cho các bài học kế tiếp đấy nhé. Với kiến thức về ép kiểu, chúng là kiến thức nền để bạn hiểu rõ cách sử dụng các kiểu dữ liệu khác nhau trong các ứng dụng của bạn. Còn comment source code sẽ trở thành phong cách viết code sao cho có đầy đủ chú thích dễ hiểu cho chính bạn và những người khác đọc source code của bạn sau này.
Nào để hiểu nó là gì, mời bạn đến với bài học.
Khái Niệm Ép Kiểu
Trước khi đi sâu vào tìm hiểu về ép kiểu, mình cũng xin nhắc lại một chút, là chúng ta đã từng làm quen với việc khai báo một biến (hoặc hằng), khi đó bạn cần chỉ định một kiểu dữ liệu cho biến hoặc hằng đó trước khi sử dụng. Việc khai báo một kiểu dữ liệu ban đầu như vậy mang tính tĩnh. Có nghĩa là nếu bạn định nghĩa biến đó là kiểu int, nó sẽ mãi là kiểu int, nếu bạn định nghĩa nó là kiểu float, nó sẽ mãi là kiểu float. Có bao giờ bạn thắc mắc nếu đem hai biến có kiểu dữ liệu khác nhau này vào tính toán với nhau, liệu nó sẽ tạo ra một biến kiểu gì? Và liệu chúng ta có thể thay đổi kiểu dữ liệu của một biến, hay một giá trị đã được khai báo hay không?
Câu hỏi trên cũng chính là nội dung của bài ép kiểu hôm nay. Cụ thể có thể mô tả ép kiểu như sau, ép kiểu là hình thức chuyển đổi kiểu dữ liệu của một biến sang một biến mới có kiểu dữ liệu khác. Vậy việc ép kiểu này không làm thay đổi kiểu dữ liệu của biến cũ, nó chỉ giúp bạn tạo ra một biến mới với kiểu dữ liệu mới, và mang dữ liệu từ biến cũ sang biến mới này. Khái niệm là vậy, còn mục đích là gì các bạn hãy đọc tiếp bài học hôm nay nhé.
Nên nhớ là vì các bạn chỉ mới làm quen với kiểu dữ liệu nguyên thủy, nên ép kiểu hôm nay cũng chỉ nói đến ép kiểu dữ liệu nguyên thủy mà thôi.
Phân Loại Ép Kiểu
Nếu phân loại ép kiểu dựa vào khả năng lưu trữ của biến, thì chúng ta có hai loại ép kiểu sau.
Tham khảo việc làm Java hấp dẫn trên TopDev
Kiểu phân loại thứ hai được chia làm hai dạng, đó là ngầm định và tường minh như mình có nhắc đến trên đây. Việc chia thành hai dạng này mang tính đặt tên để gọi đến, với lại để cho bạn nắm được cách gọi phòng khi bạn đọc tài liệu đâu đó có dùng đến các từ này, bản chất của nó vẫn tương ứng với phân biệt theo khả năng lưu trữ trên kia.
Bài Thực Hành Số 1
Bài thực hành này sẽ giúp bạn làm quen với dạng ép kiểu ngầm định. Với cách ép kiểu này bạn chú ý là chúng ta không cần làm gì cả, cứ code đi rồi hệ thống sẽ tự thực hiện việc ép kiểu thôi. Bạn hãy nhìn code sau.
Bạn thấy với b ban đầu được khai báo là kiểu byte với giá trị 50. Sau phép gán cho biến s (giá trị là short) thì giá trị 50 trong biểu thức này được chuyển tự động thành kiểu giữ liệu short cao hơn và gán vào biến s. Tương tự cho các phép gán vào i, l, f, d.
Dòng cuối cùng in ra “What type is it?” cho thấy một dạng ép kiểu ngầm định khác của hệ thống. Khi này bạn không khái báo trước một kiểu dữ liệu nào cả mà dùng hai biến có các kiểu int và float vào biểu thức. Bạn thấy hệ thống sẽ tự ép kiểu dữ liệu nhỏ hơn về kiểu lớn hơn, cụ thể lúc này là ép int về float và thực hiện phép cộng với hai số float. Kết quả chúng ta có một kiểu float in ra màn hình.
Bạn hãy so sánh kết quả in ra như hình sau.
Nhưng nếu bạn thử trắc nghiệm bằng cách kêu hệ thống ép một kiểu dữ liệu lớn hơn về kiểu nhỏ hơn xem. Hệ thống sẽ báo lỗi ngay. Và vì vậy bạn cần phải can thiệp mục kế tiếp dưới đây.
Bài Thực Hành Số 2
Quay lại ví dụ báo lỗi trên đây, hệ thống đã từ chối tự động ép kiểu ngầm định, vậy nếu vẫn có nhu cầu muốn ép kiểu thì bạn hãy ép kiểu tường minh cho nó, lúc này bạn cần dùng đến cấu trúc ép kiểu tường minh mà mình có đưa ra ở trên kia, như vầy.
Bạn hãy nhìn vào dòng
short s = (short) i;
, dòng này sẽ ép kiểu giá trị của i về short và gán cho biến s. Việc bạn chỉ định ép kiểu với (short) nhìn vào là biết ý đồ ngay, vì vậy mới có cái tên là tường minh.
Bạn hãy xem một ví dụ nữa thực tế hơn, có một số trường hợp bạn muốn bỏ dấu thập phân của một kiểu số thực, cách nhanh nhất để làm điều này là ép kiểu số thực này về một kiểu số nguyên. Cách ép kiểu này thực chất là làm mất giá trị của biến một cách… cố tình.
Kết quả của việc ép kiểu này được in ra như sau, bạn chú ý dòng in ra kiểu int nhé, mất tiêu phần thập phân rồi.
Comment Source Code
Vì kiến thức về ép kiểu ngắn quá, nên mình nói luôn về comment source code ở bài này. Hai kiến thức này không ăn nhập gì với nhau hết, nhưng nó sẽ giúp bổ trợ tốt cho bạn trong quá trình code đấy.
Sở dĩ mình dùng từ comment chứ không dịch sang tiếng Việt là vì để tránh hiểu lầm thôi, vì đa số các bạn đều biết comment nghĩa là “bình luận”, nhưng thực ra mục đích của comment trong việc code lại chính là “ghi chú” hay “chú thích”. Nó giúp bạn giải nghĩa cho một số dòng code, bạn có thể comment thoải mái ở bất kỳ đâu trong source code, trình biên dịch sẽ bỏ qua các comment này khi build, do đó sẽ không có lỗi xảy ra với chúng.
Cách Thức Comment
Bạn có 3 cách comment như sau.
. Khi trình biên dịch gặp ký hiệu //, nó sẽ bỏ qua tất cả các ký tự từ // đến ký tự cuối cùng của dòng đó. Như vậy với mỗi // sẽ giúp bạn comment được 1 dòng.
. Khi trình biên dịch gặp ký hiệu /*, nó sẽ bỏ qua tất cả các ký tự từ /* đến hết */. Cách comment này có thể giúp bạn comment được nhiều dòng cùng lúc.
. Tương tự như trên nhưng bạn chú ý có hai dấu * khi bắt đầu. Cách comment này giúp trích xuất ra các tài liệu hướng dẫn. Người ta gọi là document. Cách comment này mình đã nói rõ hơn ở bài viết này.
Bài Thực Hành Số 3
Với bài thực hành này bạn hãy tiến hành gõ comment tổng hợp “3 trong 1” sau đây, mình đã gộp cả ba cách comment được nói ở trên vào một chương trình. Thực ra thì bạn không cần phải comment quá nhiều như ví dụ, bạn nên comment khi cần thiết phải giải nghĩa cho một dòng code lạ nào đó, hoặc ghi chú tác giả dòng code đó là bạn, hoặc ngày sửa chữa dòng code này,…
Kết Luận
Bạn vừa xem qua các cách thức ép kiểu trong Java, và các cách thức comment source code. Bài học này tuy nhẹ nhưng rất quan trọng nhé, bạn sẽ sử dụng việc ép kiểu và thực hiện việc comment thường xuyên trong các project của mình.
Bài viết gốc được đăng tải tại yellowcodebooks.com
Xem thêm:
Tìm việc làm IT mọi cấp độ tại TopDev