[一道笔试题]数据库的主要架构有几种?

samba3 2010-10-08 10:14:25
数据库的架构到底是什么意思,上网搜了一下,却发现搜出来的结果是各说各话。
有的在讨论DBMS的实现类型,有的是建立数据库表和关系的时候选择的结构,有的讨论部署的结构,都不一样。

到底什么是"数据库的架构"呢,主要有哪几种?

谢谢!!!!!
...全文
425 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
samba3 2010-10-08
  • 打赏
  • 举报
回复
ls说的非常好!
王向飞 2010-10-08
  • 打赏
  • 举报
回复
通过对此架构的管理,我们可以更灵活的控制表,视图等权限。
至于部署架构研究,建议你去找这本书看呵呵
http://baike.baidu.com/image/109eb7ecbfd4830163d09f4b
samba3 2010-10-08
  • 打赏
  • 举报
回复
补充一点: 2L说的Schema是不是也要分几种类型呢?
samba3 2010-10-08
  • 打赏
  • 举报
回复
这个是冠群软件QA的笔试题。

我刚才应该把这个问题的背景说的更清楚一些,呵呵。

既然是QA,可能关心的就是部署方面的吧,我猜的。
王向飞 2010-10-08
  • 打赏
  • 举报
回复
感觉你想知道的应该是部署方面的内容,而并不是2楼所说的SCHEMA
samba3 2010-10-08
  • 打赏
  • 举报
回复
看了,但是ls的似乎没有回答我的问题啊。

架构分为几种?
fengyun142415 2010-10-08
  • 打赏
  • 举报
回复
联机丛书。。
hao1hao2hao3 2010-10-08
  • 打赏
  • 举报
回复

SQL Server 2005 联机丛书

用户架构分离 发送反馈
请参阅
全部折叠全部展开 语言筛选器: 全部语言筛选器: 多语言语言筛选器: Visual Basic语言筛选器: C#语言筛选器: C++语言筛选器: J#语言筛选器: JScript
数据库和数据库应用程序的安全注意事项 >
Visual Basic(Declaration)
C#
C++
J#
JScript

SQL Server 2005 切断数据库用户和架构之间的隐式连接。

什么是架构?
架构是形成单个命名空间的数据库实体的集合。命名空间是一个集合,其中每个元素的名称都是唯一的。

例如,为了避免名称冲突,同一架构中不能有两个同名的表。两个表只有在位于不同的架构中时才可以同名。

注意:
在讨论数据库工具时,“架构”还指目录信息,用于说明架构或数据库中的对象。在讨论 Analysis Services 时,“架构”指多维对象,如多维数据集和维度。



从 SQL Server 2000 到 SQL Server 2005
虽然 SQL Server 2000 包含 CREATE SCHEMA 语句,但实际上并不会像上面所定义的那样创建架构。在 SQL Server 2000 中,数据库用户和架构是隐式连接在一起的。每个数据库用户都是与该用户同名的架构的所有者。对象的所有者在功能上与包含它的架构所有者相同。因而,SQL Server 2000 中的完全限定名称的“架构”也是数据库中的用户。因此,从 SQL Server 2000 数据库中删除用户之前,管理员需要删除该用户所拥有的所有对象或更改这些对象的所有者。以包含此对象的 SQL Server 2000 数据库为例:

accounting.ap.george.reconciliation

此对象的所有者为用户“george”。如果管理员需要删除用户“george”,则必须先删除此对象或更改此对象的所有者。在后一种情况下,可以按如下方式将其重命名:

accounting.ap.sandra.reconciliation

转让对象的所有权也会更改其完全限定名称。引用 accounting.ap.george.reconciliation 的任何代码必须经过更新以反映对名称所做的更改。

在 SQL Server 2005 中,架构独立于创建它们的数据库用户而存在。可以在不更改架构名称的情况下转让架构的所有权。并且可以在架构中创建具有用户友好名称的对象,明确指示对象的功能。例如,除了 accounting.ap.sandra.reconciliation 外,您还可以创建名为 accounting.ap.invoice.reconciliation 的架构。因为“invoice”不是用户,所以从数据库中删除用户后,无需更改此名称。这就简化了数据库管理员和开发人员的工作。

用户架构分离的好处
将架构与数据库用户分离对管理员和开发人员而言有下列好处:

多个用户可以通过角色成员身份或 Windows 组成员身份拥有一个架构。这扩展了允许角色和组拥有对象的用户熟悉的功能。


极大地简化了删除数据库用户的操作。


删除数据库用户不需要重命名该用户架构所包含的对象。因而,在删除创建架构所含对象的用户后,不再需要修改和测试显式引用这些对象的应用程序。


多个用户可以共享一个默认架构以进行统一名称解析。


开发人员通过共享默认架构可以将共享对象存储在为特定应用程序专门创建的架构中,而不是 DBO 架构中。


可以用比早期版本中的粒度更大的粒度管理架构和架构包含的对象的权限。


完全限定的对象名称现在包含四部分:server.database.schema.object。



默认架构
SQL Server 2005 还引入了“默认架构”的概念,用于解析未使用其完全限定名称引用的对象的名称。在 SQL Server 2000 中,首先检查的是调用数据库用户所拥有的架构,然后是 DBO 拥有的架构。在 SQL Server 2005 中,每个用户都有一个默认架构,用于指定服务器在解析对象的名称时将要搜索的第一个架构。可以使用 CREATE USER 和 ALTER USER 的 DEFAULT_SCHEMA 选项设置和更改默认架构。如果未定义 DEFAULT_SCHEMA,则数据库用户将把 DBO 作为其默认架构。

授权
许多实体的所有权都可以转让。

请参阅
概念
权限层次结构
主体

其他资源
CREATE SCHEMA (Transact-SQL)
ALTER AUTHORIZATION (Transact-SQL)
CREATE USER (Transact-SQL)
ALTER USER (Transact-SQL)
CREATE SCHEMA (Transact-SQL)
ALTER SCHEMA (Transact-SQL)
sys.schemas (Transact-SQL)





翻译的问题,应该说的就是schema。

34,591

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧