2010-07-01 22 views
5

Tôi luôn tự hỏi về một tính năng có liên quan (đối với tôi) nhưng không tồn tại của tất cả các cơ sở dữ liệu quan hệ mà tôi đã làm việc với: không thể sử dụng các bảng không gian tên. Ví dụ:Có phải không gian tên bảng cơ sở dữ liệu tồn tại?

trong MySQL, bạn có thể đủ điều kiện bảng với tên cơ sở dữ liệu, chẳng hạn như dbname.tablename, với cơ sở dữ liệu hoạt động như một "tiền tố" hoặc "không gian tên". Tuy nhiên, tính năng này dừng ở đây và không đưa bạn đi xa. Hỗ trợ không gian tên sẽ cấp cho bạn khả năng có cú pháp như dbname.namespace.table. Bạn có thể nhóm liên quan bảng vào không gian tên khác nhau, chẳng hạn như (cho một blog)

db.userdata.logininfo 
db.userdata.preferences 
db.postdata.content 
db.postdata.acls 

hoặc

db.blog.whatever 
db.wiki.whatever 
db.common.auth 

này sẽ cho phép ở lại trong cơ sở dữ liệu tương tự (khai thác tất cả những ưu điểm của thiết lập như vậy) trong khi đồng thời cung cấp một môi trường linh hoạt và tự tài liệu hơn. Hầu hết thời gian, tuy nhiên, tôi thấy rằng dấu gạch dưới trong tên bảng được sử dụng để phục vụ mục đích này như là một cách giải quyết rõ ràng.

Câu hỏi của tôi là: làm DBMS với tính năng như vậy tồn tại (có thể với một tên khác)? liệu nó có được coi là không đủ quan trọng trong thực tiễn thiết kế cơ sở dữ liệu để được hỗ trợ?

Trả lời

0

MS SQL Server (2005+) có các lược đồ mà bạn có thể hiểu là không gian tên (xem mẫu AdventureWorks).

Trong bảng Oracle luôn được sở hữu bởi người dùng, nhưng truy cập bảng có thể được cấp cho người dùng khác, vì vậy bạn có thể đạt được chức năng tương tự.

Bạn cũng có thể sử dụng số nhận dạng được trích dẫn (MS [], Oracle "") để sử dụng lược đồ đặt tên "namespace.name".

3

Tôi cho rằng đây được gọi là lược đồ trong SQL Server. Nó được giới thiệu trong SQL Server 2005. Các bảng thuộc về các lược đồ, và được gọi thông qua ký hiệu dấu chấm, chẳng hạn như owner.schema.tablename, ví dụ: dbo.HumanResources.Employee.

Here is one of many explanations lược đồ trong AdventureWorks, một cơ sở dữ liệu mẫu thường được sử dụng cho SQL Server.

Bây giờ bạn biết rằng đó là tên SQL Server sử dụng, bạn có thể tìm thấy nhiều thông tin về nó. Dưới đây là một vài bài viết cung cấp một số cái nhìn sâu sắc vào những lợi ích của tính năng này:

Benefit from SQL Server 2005's new schema convention

Security Enhancements in SQL Server 2005: Schema

0

Tôi chưa từng thấy một không gian tên thứ bậc trên bảng cơ sở dữ liệu, nhưng bạn có thể sử dụng lược đồ trong SQL Server 2005+ để làm điều này. Các cấu trúc tương tự cũng tồn tại trong các nền tảng DBMS khác.

Oracle có phạm vi mô-đun cho mã thủ tục được lưu trữ (được gọi là gói) cung cấp cho bạn các không gian tên cấp mô-đun cho mã. Không có gì tương đương tồn tại trong T-SQL, mặc dù các thủ tục lưu sẵn có thể tồn tại trong các lược đồ.

Các vấn đề liên quan