Aheo hỏi xem đó có phải là ok to have a table with just one column hay không. Làm thế nào về một không có cột, hoặc, cho rằng điều này có vẻ khó khăn để làm trong hầu hết các DBMS "quan hệ" hiện đại, một mối quan hệ không có thuộc tính?Quan hệ với không có thuộc tính
Trả lời
Sản phẩm DEE và Descartes tạo thành một monoid. Trong thực tế, nếu bạn có toán tử tóm tắt quan hệ ngày tháng, bạn sẽ sử dụng DEE làm quan hệ nhóm của bạn để có được các tổng số lớn. Có nhiều ví dụ khác mà DEE thực tế hữu ích, ví dụ: trong một thiết lập chức năng với một toán tử nối nhị phân, bạn sẽ nhận được tham số nhị phân join = foldr tham gia dee
Một bảng có một cột đơn là một tập hợp - miễn là bạn không quan tâm đến việc sắp xếp các giá trị hoặc kết hợp bất kỳ thông tin nào khác với chúng, có vẻ như tốt. Bạn có thể kiểm tra tư cách thành viên trong đó, và về cơ bản đó là tất cả những gì bạn có thể làm. (Nếu bạn không có một ràng buộc UNIQUE
trên cột đơn, tôi đoán bạn cũng có thể đếm số lần xuất hiện ... một multiset).
Nhưng những gì trong đám cháy sẽ một bảng không có cột (hoặc một mối quan hệ không có thuộc tính) nghĩa - hoặc, làm thế nào nó sẽ là bất kỳ tốt ?!
Điều đó có ý nghĩa gì và có hay không là hai điều hoàn toàn khác nhau ... –
Và đó là lý do tại sao tôi hỏi cả hai câu hỏi (tham gia bởi một OR, ;-) - nếu một trong hai câu hỏi có câu trả lời hay, tôi muốn nghe nó! -) –
Ah, bây giờ tôi được tiết lộ bí mật. :-) Điều này có nghĩa là quan hệ (hoặc "bảng") có chứa một tuple hợp lệ (hoặc "hàng") hoặc nó không có. Đó là kiểu quan hệ boolean. –
Hm. Vì vậy, việc thiếu các "ví dụ thực tế" đã đến với tôi, và tôi đã cố gắng hết sức. Có lẽ đáng ngạc nhiên, tôi có một nửa ở đó!
cjs=> CREATE TABLE D(); CREATE TABLE cjs=> SELECT COUNT (*) FROM D; count ------- 0 (1 row) cjs=> INSERT INTO D() VALUES(); ERROR: syntax error at or near ")" LINE 1: INSERT INTO D() VALUES();
Tôi đã nhận thấy rằng một số hệ thống cơ sở dữ liệu sẽ không chấp nhận câu lệnh 'CREATE' không có cột, và một số làm nhưng sau đó không chấp nhận câu lệnh' INSERT' có giá trị bằng không. – seh
Có chính xác hai mối quan hệ không có thuộc tính, một với một bộ trống và một không có. Trong số The Third Manifesto, Ngày và Darwen (phần nào) đã đặt tên cho chúng là TABLE_DEE
và TABLE_DUM
(tương ứng).
Chúng hữu ích trong phạm vi chúng là danh tính của một loạt các toán tử quan hệ, đóng vai trò tương đương với 1 và 0 trong đại số thông thường.
Một bảng có một cột sẽ có ý nghĩa như một tra cứu đơn giản. Giả sử bạn có danh sách các chuỗi bạn muốn lọc đối với văn bản được nhập của người dùng. Bảng đó sẽ lưu trữ các từ bạn muốn lọc ra.
Nhưng đó là một bảng với một cột nhiều hơn cột với không có cột, mà là trên quan tâm ở đây. Tuy nhiên, bạn đã khám phá ra ý tưởng về một vị từ trong một thế giới quan hệ, điều đó là tốt. –
"Có chính xác hai quan hệ không có thuộc tính, một với một bộ trống và một không có. Ngày và Darwen (phần nào) đã đặt tên chúng là TABLE_DEE và TABLE_DUM (tương ứng)
Chúng hữu ích trong phạm vi chúng là danh tính của một loạt các toán tử quan hệ, đóng vai trò tương đương với 1 và 0 trong đại số bình thường. "
Và tất nhiên, chúng cũng đóng vai trò "TRUE" và "FALSE" trong đại số boolean. Có nghĩa là chúng hữu ích khi các mệnh đề như "Cửa hàng mở" và "Báo thức được thiết lập" sẽ được thể hiện trong cơ sở dữ liệu. Một hệ quả của điều này là chúng cũng có thể được sử dụng một cách hữu ích trong bất kỳ biểu thức nào của đại số quan hệ cho các thuộc tính của chúng về "hoạt động như một IF/ELSE": tham gia vào TABLE_DUM có nghĩa là không giữ tuples nào từ đối số khác, tham gia TABLE_DEE có nghĩa là giữ lại tất cả. Vì vậy, tham gia R với một relvar S có thể bằng TABLE_DEE hoặc TABLE_DUM, là RA tương đương với "nếu S sau đó R khác FI", với FI đứng cho quan hệ trống rỗng.
Rất khó để thấy tiện ích của TABLE_DEE và TABLE_DUM từ phối cảnh Cơ sở dữ liệu SQL. Sau khi tất cả nó không được đảm bảo rằng nhà cung cấp db yêu thích của bạn cho phép bạn tạo một hoặc khác.
Cũng rất khó để thấy tiện ích của TABLE_DEE và TABLE_DUM trong đại số quan hệ. Người ta phải nhìn xa hơn thế.Để giúp bạn có được một hương vị như thế nào các hằng số có thể trở nên sống động xem xét đại số quan hệ đưa vào hình dạng toán học thích hợp, đó là gần như nó có thể đại số Boolean. D & D Đại số A là một bước theo hướng này. Sau đó, người ta có thể thể hiện các hoạt động đại số cổ điển quan hệ thông qua các phép toán cơ bản hơn và hai hằng số trở nên thực sự tiện dụng.
- 1. SqlAlchemy - Lọc theo mối quan hệ Thuộc tính
- 2. Quan hệ CoreData giữa các thực thể và thuộc tính
- 3. SQLAlchemy DetachedInstanceError với thuộc tính thông thường (không phải là một mối quan hệ)
- 4. Thuộc tính trên các mối quan hệ nhiều-nhiều (Hibernate)
- 5. nhiều đối với nhiều mối quan hệ với các thuộc tính sử dụng chú thích
- 6. Làm thế nào để có mối quan hệ với một mối quan hệ luôn được nhúng
- 7. Phép tính quan hệ Tuple
- 8. Cách xác định mối quan hệ m: n với các thuộc tính bổ sung trong Squeryl?
- 9. Mối quan hệ kho dữ liệu cốt lõi với các thuộc tính được tìm nạp
- 10. tính toán thuộc tính hệ quả với một hệ thống xếp hàng
- 11. Mục tiêu của thuộc tính mối quan hệ không thể được xác định
- 12. Các mối quan hệ "to-nhiều" có nên được mô hình hóa như là các thuộc tính không?
- 13. Hiển thị các thuộc tính hệ thống Java với Swing
- 14. NSFetchedResultsController với mối quan hệ không cập nhật
- 15. Thiết lập thuộc tính hệ thống với "sbt run"
- 16. không có thuộc tính
- 17. Có và thuộc về nhiều mối quan hệ với nhiều cơ sở dữ liệu
- 18. Spring + JPA có nhiều mối quan hệ với nhau
- 19. psql: không tìm thấy mối quan hệ bất chấp quan hệ hiện có
- 20. grails base.dir thuộc tính hệ thống
- 21. Thuộc tínhError: đối tượng 'int' không có thuộc tính '_sa_instance_state'
- 22. AllowMultiple không hoạt động với Thuộc tính Thuộc tính?
- 23. Các biểu mẫu lồng nhau trong đường ray - thuộc tính truy cập trong quan hệ has_many
- 24. Thay đổi thuộc tính hệ thống user.home
- 25. Cầu tàu - đặt thuộc tính hệ thống
- 26. Thực hiện mối quan hệ Nhiều-với-Nhiều với Backbone-Quan hệ
- 27. Thiết kế Neo4j: Thuộc tính vs "Nút và mối quan hệ"
- 28. Thuộc tính PythonError: Đối tượng không có thuộc tính
- 29. tham chiếu thuộc tính trong các mô hình với các mối quan hệ thuộc về thông qua một không gian tên lồng nhau
- 30. Ninject 2.0: Tiêm thuộc tính không có thuộc tính
Điều đó có nghĩa là gì? "Mối quan hệ không có thuộc tính là gì?" Bạn có thể đưa ra bất kỳ loại ví dụ thực tế nào không? –
Tôi nghĩ rằng vấn đề là không có ví dụ thế giới thực ... – jerryjvl
"TẠO TABLE dee()" theo sau là "INSERT INTO DEE VALUES()" nên thực hiện thủ thuật, nếu DBMS của bạn thực sự quan hệ. –