架构究竟意味着什么?存储过程和表可以有不同的模式吗?

时间:2011-06-28 06:00:38

标签: sql sql-server-2008

架构究竟是什么意思?存储过程和表可以有不同的模式吗? 如何通过模式指定结构? 是通过方案存储peoceduer识别对象吗?

3 个答案:

答案 0 :(得分:2)

架构是指数据库表以及它们如何相互关联。存储过程也是数据库的一部分,但不是模式的一部分。

了解更多http://en.wikipedia.org/wiki/Database_schema

<强>更新: 错误地提到存储过程不是数据库模式的一部分。

onedaywhen的答案是正确的。

答案 1 :(得分:2)

这是主观的。 Wikipedia告诉我们,

  

在关系数据库中,架构   定义表,字段,   关系,观点,索引,   包,程序,功能,   队列,触发器,类型,序列,   物化视图,同义词,数据库   链接,目录,Java,XML模式,   和其他元素。

..这与@ niktrs的答案不一致,因为他明确地从架构中排除了程序。

我经常不得不强制执行DBMS不支持的数据库约束(例如,需要CHECK约束中的子查询)并且我已经从基表中删除更新权限并进行了验证必须用于更新表的'助手'存储过程。在这些马戏团中,我可以说存储过程是模式的一部分。

实际上,如果在SO上我请求提问者,“请发布你的架构”并且他们发布了他们的存储过程(如果它与问题相关)那么我就不会抱怨;)

答案 2 :(得分:1)

SQL Server中的模式与.net中的“名称空间”类似。它自SQL Server 2005以来才被正确实现,所以我不会进入古代历史

Schema还引用了常用的表定​​义,键等。这就是你所说的“结构”的意思。这个含义与名称空间感

是分开的和不同的

名称空间意义上的模式意味着您可以在数据模式中使用表,但在WebGUI模式或桌面模式中存储过程。 WebGUI.GetOrders将引用Data.Order表。

这样做的一个优点是安全性更容易:您在架构上授予而不是在对象上