Chuyển đến nội dung chính

Transitive Dependency là gì?

Phụ thuộc bắc cầu xảy ra khi một thuộc tính trong cơ sở dữ liệu phụ thuộc gián tiếp vào thuộc tính khác thông qua một thuộc tính thứ ba, gây dư thừa. Tiếp tục đọc để học cách nhận diện và loại bỏ phụ thuộc bắc cầu trong thiết kế cơ sở dữ liệu.
Đã cập nhật 5 thg 10, 2026  · 5 phút đọc

Khám phá cùng AI

ChatGPTClaudePerplexity

Trong cơ sở dữ liệu, phụ thuộc bắc cầu xảy ra khi một thuộc tính trong bảng phụ thuộc vào một thuộc tính khác, và thuộc tính đó cũng phụ thuộc vào khóa chính. Phụ thuộc bắc cầu là một vấn đề trong chuẩn hóa cơ sở dữ liệu vì nó dẫn đến các lỗi dữ liệu như bất thường khi cập nhật, chèn và xóa; chúng ta sẽ cùng tìm hiểu trong bài viết này. 

Nếu sau bài viết này bạn muốn học thêm, tôi khuyến nghị khóa học Database Design của DataCamp để làm quen với cơ sở dữ liệu quan hệ và cách lưu trữ dữ liệu trong cơ sở dữ liệu. Tôi cũng đề xuất xem hướng dẫn Normalization in SQL để tìm hiểu về các dạng chuẩn trong SQL, ngôn ngữ phổ biến nhất để quản lý cơ sở dữ liệu quan hệ trong ngữ cảnh này.

Tìm hiểu phụ thuộc bắc cầu trong cơ sở dữ liệu

Trong cơ sở dữ liệu quan hệ, phụ thuộc bắc cầu xảy ra khi một thuộc tính phụ thuộc gián tiếp vào thuộc tính khác thông qua một thuộc tính trung gian. Vấn đề này có nghĩa là giá trị của một cột có thể được xác định gián tiếp từ giá trị của hai cột khác. Xem xét bảng sau, gọi là DataCamp_Programs:

Course_or_Skill_Track Instructor Instructor_Title
Data Manipulation in SQL Mona Khalil Data Scientist
SQL Fundamentals Mona Khalil Data Scientist
Introduction to SQL Izzy Weber Data Coach

Từ bảng này:

  • Course_or_Skill_Track → Instructor: Nếu biết khóa học hoặc lộ trình kỹ năng, ta biết giảng viên.

  • Instructor không → Course_or_Skill_Track: Đôi khi giảng viên dạy nhiều hơn một khóa.

  • Instructor → Instructor_Title: Mỗi giảng viên có một chức danh.

Do đó, Course_or_Skill_Track → Instructor_Title là một phụ thuộc bắc cầu. 

Vì sao phụ thuộc bắc cầu gây ra vấn đề

Phụ thuộc bắc cầu có thể gây ra các vấn đề cho cơ sở dữ liệu, chủ yếu liên quan đến dư thừa dữ liệu, bất thường và không nhất quán.

Dư thừa dữ liệu

Dư thừa dữ liệu xảy ra khi cùng một dữ liệu bị lặp lại không cần thiết trong cơ sở dữ liệu, dẫn đến kém hiệu quả. Trong ví dụ bảng DataCamp_Programs, chức danh của giảng viên được lưu nhiều lần cho mỗi khóa họ dạy. Sự lặp lại này lãng phí dung lượng lưu trữ và khiến cơ sở dữ liệu khó bảo trì hơn.

Các bất thường dữ liệu

Bây giờ hãy xem các vấn đề khi cập nhật, chèn và xóa.

Bất thường khi cập nhật

Bất thường khi cập nhật xảy ra khi thay đổi dữ liệu phải được áp dụng ở nhiều nơi do dư thừa. Điều này dẫn đến không nhất quán nếu một số bản ghi được cập nhật còn những bản khác bị bỏ sót. Hãy tưởng tượng, ví dụ, chúng ta dùng truy vấn SQL để cập nhật bảng DataCamp_Programs vì chức danh của Mona Khalil đã đổi thành Lead Data Scientist. Bạn sẽ cần cập nhật thủ công từng hàng nơi chức danh của cô ấy xuất hiện. Nếu bỏ sót dù chỉ một trường hợp, cơ sở dữ liệu sẽ chứa thông tin mâu thuẫn về chức danh hiện tại của cô ấy. 

Course_or_Skill_Track Instructor Instructor_Title
Data Manipulation in SQL Mona Khalil Lead Data Scientist
SQL Fundamentals Mona Khalil Data Scientist
Introduction to SQL Izzy Weber Data Coach

Bất thường khi chèn

Bất thường khi chèn xảy ra khi bạn không thể chèn dữ liệu vào cơ sở dữ liệu vì thiếu dữ liệu bắt buộc khác. Ở những trường hợp khác, bạn có thể chèn dữ liệu nhưng cấu trúc bảng buộc bạn phải đưa vào thông tin không liên quan, dư thừa hoặc bị thiếu, như trong ví dụ dưới đây:

Course_or_Skill_Track Instructor Instructor_Title
Data Manipulation in SQL Mona Khalil Data Scientist
SQL Fundamentals Mona Khalil Data Scientist
Introduction to SQL Izzy Weber Data Coach
TBD Liam Cooper Data Analyst

Bất thường khi xóa

Bất thường khi xóa xảy ra khi việc xóa một bản ghi vô tình loại bỏ thông tin giá trị khỏi cơ sở dữ liệu. Ví dụ, xóa bản ghi chứa Izzy Weber cũng sẽ xóa chức danh giảng viên, có thể dẫn đến mất dữ liệu vì bạn có thể không còn đầy đủ dải chức danh trong hệ thống. Ở đây, chúng ta có thể đã xóa Data Coach khỏi hệ thống hoàn toàn mà không chủ ý.

Course_or_Skill_Track Instructor Instructor_Title
Data Manipulation in SQL Mona Khalil Data Scientist
SQL Fundamentals Mona Khalil Data Scientist

Loại bỏ phụ thuộc bắc cầu với 3NF

Trong ngữ cảnh cơ sở dữ liệu, chuẩn hóa là tổ chức dữ liệu để giảm thiểu dư thừa và cải thiện tính toàn vẹn dữ liệu. Vì lý do này, phụ thuộc bắc cầu thường được thảo luận trong bối cảnh dạng chuẩn ba (3NF), một kỹ thuật chuẩn hóa cơ sở dữ liệu loại bỏ các phụ thuộc để giải quyết vấn đề phụ thuộc bắc cầu. 

Dạng chuẩn ba là một mức độ chuẩn hóa cơ sở dữ liệu loại bỏ phụ thuộc bắc cầu và đảm bảo mọi thuộc tính không khóa chỉ phụ thuộc vào khóa chính. Điều này giúp ngăn ngừa dư thừa và các lỗi do phụ thuộc bắc cầu gây ra. Hãy cân nhắc các bước sau khi chuẩn hóa một database schema.

Nhận diện phụ thuộc bắc cầu

Để phát hiện phụ thuộc bắc cầu trong cơ sở dữ liệu của bạn, hãy chia nhỏ quy trình:

  1. Kiểm tra phụ thuộc hàm trên khóa chính: Bắt đầu bằng cách xác định tất cả các phụ thuộc hàm mà thuộc tính phụ thuộc trực tiếp vào khóa chính. Bước này giúp bạn tập trung vào các mối quan hệ chính trong bảng.
  2. Tìm phụ thuộc gián tiếp: Tiếp theo, kiểm tra xem có thuộc tính không khóa nào (không thuộc khóa chính) phụ thuộc vào các thuộc tính không khóa khác hay không. Nếu bạn thấy một thuộc tính không khóa phụ thuộc vào thuộc tính không khóa khác, mà bản thân thuộc tính đó phụ thuộc vào khóa chính, bạn đã xác định được một phụ thuộc bắc cầu.
  3. Kiểm tra dư thừa hoặc bất thường: Cuối cùng, cân nhắc xem phụ thuộc gián tiếp này có tạo ra dư thừa dữ liệu hoặc khiến việc cập nhật trở nên phức tạp hơn không.

Tách bảng

Sau khi đã nhận diện các phụ thuộc bắc cầu, bạn cần tách bảng để loại bỏ chúng. Bạn sẽ tách bảng thành các bảng nhỏ hơn, nơi các thuộc tính không khóa phụ thuộc trực tiếp vào khóa chính. Bạn cũng sẽ duy trì mối quan hệ giữa các bảng bằng cách liên kết qua khóa ngoại.

Dưới đây là cách bạn có thể tách bảng DataCamp_Programs thành hai bảng để chuẩn hóa và loại bỏ phụ thuộc bắc cầu. Như bạn sẽ thấy, chúng ta tách bảng thành hai bảng. instructor trở thành khóa để liên kết cả hai.   

Bảng 1: courses_table

Course or Skill Track Instructor
Data Manipulation in SQL Mona Khalil
SQL Fundamentals Mona Khalil
Introduction to SQL Izzy Weber

Bảng 1: instructors_table

Instructor Instructor_Title
Mona Khalil Data Scientist
Izzy Weber Data Coach

Cấu trúc này loại bỏ phụ thuộc bắc cầu, nơi Instructor_Title trước đây phụ thuộc vào Course_or_Skill_Track thông qua Instructor. Giờ đây, Instructor_Title chỉ phụ thuộc vào Instructor.

Cách tránh phụ thuộc bắc cầu

Khi thiết kế cơ sở dữ liệu, điều quan trọng là tránh phụ thuộc bắc cầu để duy trì hiệu quả, khả năng mở rộng và tính toàn vẹn dữ liệu. Dưới đây là các thực tiễn tốt giúp giảm thiểu rủi ro dư thừa, bất thường và không nhất quán.

  • Chuẩn hóa trong giai đoạn thiết kế schema: Nếu bạn đang thiết kế cơ sở dữ liệu từ schema, cần cân nhắc dạng chuẩn ba (3NF) ngay từ giai đoạn đầu. Cách tiếp cận này sẽ giúp giảm phụ thuộc bắc cầu bằng cách áp dụng kỹ thuật chuẩn hóa. 
  • Kiểm tra schema định kỳ: Sau khi tạo cơ sở dữ liệu, việc tiến hành kiểm tra định kỳ là quan trọng để đảm bảo nó không phát sinh phụ thuộc bắc cầu.
  • Tránh đơn giản hóa quá mức các mối quan hệ: Luôn lập sơ đồ mối quan hệ và tách các thực thể một cách đúng đắn vào các bảng khác nhau để lưu trữ các thông tin khác nhau.

Kết luận

Phụ thuộc bắc cầu trong cơ sở dữ liệu xảy ra khi một thuộc tính trong bảng phụ thuộc vào một thuộc tính khác, và thuộc tính đó phụ thuộc vào khóa chính. Phụ thuộc bắc cầu luôn ảnh hưởng đến hiệu quả của cơ sở dữ liệu bằng cách tạo ra dư thừa, không nhất quán và các bất thường. Với tư cách là nhà phát triển, việc nhận diện và loại bỏ phụ thuộc bắc cầu là quan trọng để đảm bảo tính toàn vẹn dữ liệu. Bạn cũng nên nhận diện và loại bỏ phụ thuộc bắc cầu ngay trong giai đoạn thiết kế cơ sở dữ liệu. Đạt được dạng chuẩn ba (3NF) sẽ giúp bạn tối ưu hóa cơ sở dữ liệu và cải thiện hiệu quả.

Nếu bạn muốn nâng cao kỹ năng thiết kế cơ sở dữ liệu, tôi khuyến nghị khóa học Creating PostgreSQL Databases của DataCamp để tìm hiểu thêm về thiết kế schema và kiểm soát truy cập cơ sở dữ liệu. Cuối cùng, nếu bạn muốn nâng cao kỹ năng quản trị cơ sở dữ liệu cho big data, tôi khuyến nghị khóa Introduction to Data Modeling in Snowflake để học thêm về quan hệ, mô hình hóa chiều và data vault nhằm xây dựng kho dữ liệu đám mây hiệu quả.


Allan Ouko's photo
Author
Allan Ouko
LinkedIn
Biên tập viên kỹ thuật về Khoa học dữ liệu với kinh nghiệm thực tế trong phân tích dữ liệu, trí tuệ doanh nghiệp và khoa học dữ liệu. Tôi viết nội dung thực tiễn, tập trung vào ngành về SQL, Python, Power BI, Databricks và kỹ thuật dữ liệu, dựa trên công việc phân tích trong thế giới thực. Bài viết của tôi kết nối chiều sâu kỹ thuật với tác động kinh doanh, giúp các chuyên gia chuyển đổi dữ liệu thành những quyết định vững chắc.

Câu hỏi thường gặp về Transitive Dependency

Sự khác nhau giữa phụ thuộc hàm và phụ thuộc bắc cầu là gì?

Phụ thuộc hàm xảy ra khi một thuộc tính phụ thuộc trực tiếp vào khóa chính. Phụ thuộc bắc cầu xảy ra khi một thuộc tính không khóa phụ thuộc vào một thuộc tính không khóa khác, và thuộc tính đó lại phụ thuộc vào khóa chính.

Vì sao phụ thuộc bắc cầu gây vấn đề?

Phụ thuộc bắc cầu dẫn đến dư thừa dữ liệu và các bất thường như bất thường khi cập nhật, chèn và xóa.

Chuẩn hóa dữ liệu là gì?

Chuẩn hóa dữ liệu là quá trình tổ chức cơ sở dữ liệu thành các bảng và cột để giảm dư thừa dữ liệu và cải thiện tính toàn vẹn dữ liệu.

Dạng chuẩn ba (3NF) là gì?

Dạng chuẩn ba (3NF) là một kỹ thuật chuẩn hóa không có phụ thuộc bắc cầu. Trong 3NF, mọi thuộc tính không khóa phải chỉ phụ thuộc vào khóa chính, đảm bảo không tồn tại phụ thuộc gián tiếp.

Chủ đề
SQL
Kỹ thuật Dữ liệu

Học cùng DataCamp

Khóa học

Thiết kế cơ sở dữ liệu

4 giờ
130.9K
Học cách thiết kế cơ sở dữ liệu trong SQL để xử lý, lưu trữ và tổ chức dữ liệu một cách hiệu quả hơn.
Xem chi tiếtRight Arrow
Bắt Đầu Khóa Học
Xem thêmRight Arrow
Liên quan

blog

Claude Opus 4.6: Tính năng, Điểm chuẩn, Bài kiểm tra thực hành và hơn thế nữa

Mô hình mới nhất của Anthropic dẫn đầu ở mã hóa tác tử và lập luận phức tạp. Thêm vào đó, nó có cửa sổ ngữ cảnh 1M.
Matt Crabtree's photo

Matt Crabtree

10 phút

Xem ThêmXem Thêm