Tôi sẽ chỉ ra rằng (về mặt chức năng) có sự khác biệt LỚN giữa các chu kỳ và / hoặc nhiều đường dẫn trong SCHema và DATA. Trong khi các chu kỳ và có lẽ là đa đường trong DATA chắc chắn có thể xử lý phức tạp và gây ra các vấn đề về hiệu năng (chi phí xử lý "đúng"), chi phí của các đặc điểm này trong lược đồ phải gần bằng không.
Vì hầu hết các chu kỳ rõ ràng trong RDB xảy ra trong các cấu trúc phân cấp (biểu đồ tổ chức, phần, phần phụ, v.v.), thật không may là SQL Server giả định điều tồi tệ nhất; tức là chu trình lược đồ == chu kỳ dữ liệu. Thực tế, nếu bạn đang sử dụng các ràng buộc RI, bạn thực sự không thể xây dựng một chu kỳ trong dữ liệu!
Tôi nghi ngờ vấn đề đa đường là tương tự; tức là, nhiều đường dẫn trong lược đồ không nhất thiết ngụ ý nhiều đường dẫn trong dữ liệu, nhưng tôi có ít kinh nghiệm hơn với vấn đề đa đường.
Tất nhiên nếu SQL Server đã làm cho phép các chu kỳ thì nó vẫn phải chịu độ sâu 32, nhưng điều đó có lẽ phù hợp với hầu hết các trường hợp. (Quá tệ đó không phải là một thiết lập cơ sở dữ liệu!)
Kích hoạt "Thay vì xóa" cũng không hoạt động. Lần thứ hai một bảng được truy cập, kích hoạt được bỏ qua. Vì vậy, nếu bạn thực sự muốn mô phỏng một tầng, bạn sẽ phải sử dụng các thủ tục được lưu trữ với sự có mặt của các chu kỳ. Tuy nhiên, Bộ kích hoạt thay thế sẽ hoạt động cho nhiều trường hợp.
Celko gợi ý một cách "tốt hơn" để thể hiện các hệ thống phân cấp không giới thiệu chu kỳ, nhưng có sự đánh đổi.