Review và góp ý môn Database trong Chứng chỉ 3

Review và góp ý học môn Database trong Chứng chỉ 3

Chia sẻ kiến thức 22/06/2021

Chia sẻ review và góp ý cho môn Database trong Chứng chỉ 3, anh Phạm Minh Hùng muốn giúp các bạn đồng môn có thêm kinh nghiệm học tập, cũng như giúp FUNiX hoàn thiện chương trình, học liệu hơn nữa.

Phạm Minh Hùng (SN1992) nhập học FUNiX từ 2016. Sau một thời gian tạm ngừng FUNiX, anh quay trở lại học với mục tiêu lấy bằng đại học. Anh hiện đã học tới Chứng chỉ 4 của FUNiX. Chia sẻ review và góp ý khi học môn Database trong Chứng chỉ 3, anh Hùng muốn giúp các bạn đồng môn có thêm kinh nghiệm học tập, cũng như giúp FUNiX hoàn thiện chương trình, học liệu hơn nữa khi học môn Database.

Mình vừa học môn Database Introduction và pass môn, môn này là môn mà mình học lâu nhất, tính chắc cũng 2 năm hơn rồi. Lý do học lâu vậy là hồi mình xong Chứng chỉ 2 là mình bắt đầu làm lập trình viên, dừng FUNiX một thời gian dài, và mới quay lại học tiếp gần đây.

Học môn Database mình thấy môn học đã được cập nhật lên phiên bản mới so với hồi trước mình học. Cũng do hồi đó mình học môn Database Introduction phiên bản cũ (để có kiến thức đi làm), nên bây giờ khi có bản mới, mình phải học lại. Vì mình từng học cả 2 phiên bản nên có review cho các bạn và góp ý cho phòng phát triển chương trình của FUNiX.

1. Về nội dung học

Trước tiên là nội dung khi học môn Database, phiên bản mới này FUNiX đầu tư hơn xưa, có nhiều nguồn tài liệu hơn (Coursera và Udemy), hồi trước hình như chỉ có Youtube là chính. Tính ra cũng hơi tiếc chút vì phiên bản mới cắt bớt vài clip mình thấy hay ở phiên bản cũ, nhưng cũng không sao, nội dung của phiên bản mới cover gần như tất cả kiến thức bạn cần biết về SQL.

(Coursera giảng viên giảng cô đọng, súc tích nên lý thuyết đặc, buồn ngủ xỉu)

2. Về nội dung quiz

Đây là phần gây “ức chế” khi học môn Database Introduction. Có khá nhiều câu dạng text input, mà có vẻ chúng không support multiple correct answer, thành ra xTer phải kiêm thêm nhiệm vụ là đoán chữ theo ý người ra đề. Ví dụ như một bài post của mình ở đây.

Thêm nữa, do mình học bằng tiếng Anh, đến khi đọc đề thì toàn tiếng Việt, đáp án thì lúc Việt, lúc Anh, lúc thì thêm những chữ buồn cười như “mới”. Việc này gây ra khó khăn không đáng có trong quá trình học. VD: tra từ dịch, tìm từ dư thừa (“mới”) để thử và sai nhiều lần.

Vậy mình mong muốn là xóa toàn bộ các câu kiểu text input, và thay chúng bằng trắc nghiệm hết.

môn Database
Phạm Minh Hùng (SN1992) nhập học FUNiX từ 2016, review và góp ý khi học môn Database trong Chứng chỉ 3 của anh được đăng trong group xTer FUNiX

3. Về Labs và Assignments

Về labs và assignments khi học môn Database hay, phải nói là hay, những bài tập đề ra giúp sinh viên luyện tập và củng cố kiến thức.

Tuy nhiên vẫn còn điểm yếu ở phần đặt tên các bài làm của người ra đề.Học viên sẽ phải “tốn” vùng nhớ trong não để nhớ cái tên cột/bảng này là cái gì. Fun fact: Mình có phản ánh phần đề ra sai và đã được FUNiX cập nhật lại.

4. Môn Java Desktop cũng vậy nhé.

Phần chấm điểm bài labs và assignments khi học môn Database, mình rất may là gặp được mentors cứng chấm bài quan tâm thực chiến, chứ không phải chú trọng quá thể vào những lý thuyết nhỏ nhặt, tính điểm chấm phẩy câu.

Phần này các bạn cầu trời đi nhé, vì có thể gặp những mentor hiểu/nhớ lý thuyết kiểu khác (đúng hoặc sai) những gì mình học trong khóa. Nếu gặp trúng người chấm theo kiểu dị biệt đó thì điểm bạn sẽ bị thấp một cách bất công. Nếu bạn có thắc mắc thì có thể yêu cầu phòng đào tạo sắp xếp lại một mentor khác chấm.

5. Phần thi cuối môn

Phần thi cuối môn Database Introduction này thì hiện đã được nâng cấp, cải thiện theo thời gian. Tuy nhiên, lần này vẫn có sạn, đó là 2 câu hỏi mình gặp:

5.1 Liệt kê các loại forms trong Database Normalization, và giải thích chúng.

Về lý thuyết thì có nhiều forms: 0th form, 1st form, 2nd form, 3rd form, Boyce-Codd, 4th form, 5th form.

Mentor yêu cầu mình giải thích từng form ra. Đến đây thì mình không trả lời được.

Mình biết có sạn vì mình đã học 2 phiên bản của DBI. Trong phiên bản cũ của môn DBI thì những form này đều được giới thiệu, và lý thuyết của chúng được dạy hết. Tuy nhiên, mình đã chuyển đổi qua version mới nhất, trong phần nội dung lý thuyết ở Coursera, chỉ đề cập đến Boyce Codd normal form (BCNF), mà không nói chi tiết các NF kia.

Mình phải nói đây chính là điểm hay của phiên bản mới, cách mà khóa coursera hướng dẫn design DB theo chuẩn BCNF rất dễ hiểu.

Để mình miêu tả nhé: trong cách cũ, bạn phải đi lên từng bước, từ 0th -> 1st -> … -> BCNF

Lý thuyết đây:

Design considered as BCNF when:

– it is in 3rd normal form (và trc đó là đống khác nữa)

– each determinant is a candidate key

Nhưng đây là cách mà khóa Coursera hướng dẫn:

“A FunctionDependency violates BCNF if the determinant in the functional dependency is not unique in a table”.

Rất trực tiếp, không cần phải vòng vèo qua các loại NF trước.

Trong thực tế, mình cũng không bao giờ đụng phải 1st NF, hay 2nd NF khi đi làm. Background mình từng làm các cty thuần Việt, liên doanh, thuần ngoại quốc, và chả có cty nào dùng chúng cả. Khi design đều thẳng bước tới 3rd NF hoặc BCNF.

Yup, quay lại, mình bị chấm không đạt điểm câu hỏi này, mặc dù nội dung bài học không dạy chúng (version mới).

Lỗi này không phải do mentor, lỗi này do sự không thống nhất giữa bên thiết kế khóa học và mentor chấm thi. Có thể do bên thiết kế khóa học khi roll out version mới mà không thông báo cách thức chấm thi mới cho mentors. Mình mong là lỗi này không xảy ra cho các bạn xter đi sau và những môn sắp tới mình học.

5.2 Liệt kê điểm yếu của Trigger

Cái này thì mình cũng không biết nó chiếm % tổng điểm là bao nhiêu, nhưng câu hỏi khá khiến mình concern.

Trong khóa học cũng có nhắc tới cái này, nhưng rất nhỏ, và mình cho là mình đã trả lời được câu này. Tuy nhiên, mentor liệt kê câu trả lời bằng cách nói khác (và mình cho là cùng nội dung, khác mình).

Mình băn khoăn riêng về phần trigger, theo mình, nên cực kỳ hạn chế sử dụng trigger, tốt nhất là cấm hoàn toàn. Vì trigger là thứ cần có logic riêng của nó để thay đổi data, không nói việc nó ẩn mình chạy khi có yếu tố trigger nó hay mấy yếu tố được liệt kê, chỉ riêng việc nó nằm ở code của database là vấn đề lớn rồi. Tất cả logic (business/app logic) đều nên nằm ở phần code viết bằng programing language chính (VD: java), chứ không nên bị leak sang DB. DB là thuộc persistent layer của infrastructure, nó chỉ nên làm CRUD, cùng lắm là thêm phần quản lý transaction đối với các DB hệ SQL (như SQL Server của khóa này), không nên làm thêm bất kỳ thứ gì khác.

Mình đứng trên góc độ là lập trình viên, thì mình thấy những thứ này (procedure, function, trigger) chỉ cần cưỡi ngựa xem hoa, không cần tập trung chi tiết vào chúng.

Ồ, có thể đối với góc độ khác thì mình sai, mình đoán có thể Data Analyst sẽ rất cần function, nhưng mình nghĩ họ chắc cũng ko nên chọt chọt vô 2 cái kia.

Cái câu 2 này mình cũng không biết góp ý sao, nhưng khá là băn khoăn nếu câu này chiếm điểm lớn.

6. Kết luận

Sau khi thi kết thúc môn, điểm mình cũng vừa đủ qua môn, quá vui vì cũng kết thúc được môn học dài lê thê – tới 2 năm. Đây là tất cả mình nhớ được để review môn, hy vọng chúng góp phần cải tiến môn, nêu có chỗ nào khó nghe, người đọc bỏ qua cho nhé!

>>> Nếu bạn đang có nhu cầu học lập trình trực tuyến, tìm hiểu ngay tại đây:

>>> Xem thêm các chủ đề hữu ích:

 

Quỳnh Anh

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
Chat với FUNiX GPT ×

yêu cầu gọi lại

error: Content is protected !!