日期:2014-05-17  浏览次数:20471 次

看王珊的《数据库系统概论》第四版,感觉她把模式(schema)和数据库等同起来了?
按照书中3.2的描述,以下为原文:
“3.2 学生-课程数据库
  在本章中用学生-课程数据库作为例子来讲解SQL的数据定义、数据操纵、数据查询和数据控制语句的具体应用。
  为此,首先要定义一个学生-课程模式S-T(见3.3.1中【例1】。学生-课程数据库中包括以下3个表,他们的定义见3.3.1中【例5】、【例6】、【例7】。”

然后 3.3.1 模式的定义与删除这一节, 第一个例子就是模式的创建语句,就是上面提到的【例1】 ,create schema "s-t"....
后面就是在这个“S-T"中建立表。在这几个地方,对“S-T”这个对象,王珊老师一会称为“模式”,一会称为“数据库”,语句用的是create schema ,而且自始至终没有介绍 create database 语句。
阅读这一段,给我的感觉就是schema等同于database。但是按照我的理解,这两个显然是不一样的,schema是database 下面的一个框架,一个database可以包含多个schema,我记得sql server 和oracle都是这样的,mysql好像不支持schema。
大家怎样理解?主要是王珊老师太有名了。。。所以我没啥底气。新手啊。

------解决方案--------------------
schema为架构名称,也可以理解为表的所有者,如dbo,和数据库完全两把事,你对他的意思理解有误,人家也没说schema等同于database
像你选表时,写全了,数据库第一位,架构第二位,表第三位
select * from [databasename].[schemaname].[tablename]
如果是其他数据库可能还要加servername
select * from [servername].[databasename].[schemaname].[tablename]
http://msdn.microsoft.com/zh-cn/library/ms189462.aspx

------解决方案--------------------
我现在手上没她的书,忘记原文了,我记得她说的架构好像有几层的吧。不过记得她更多强调【模式】