说一下mysql里面的理解吧schema就是用户[user]所创建的对象[包括表,索引,存储过程等]的集合,这个集合[schema]的名称就是用户的名称。
故:
用户:属于数据库安全管理的范畴
schema:属于数据库对象管理的范畴
虽然他们的名称相同。

解决方案 »

  1.   

    说说 MSSQL2000, MSSQL2005 中的 Schema 概念,MSSQL2000下,Schema 与帐号挂勾,
    因此,说 Schema=帐号,也是可以的。
    因此,Schema 在 MSSQL2000 下可以说几乎没有意义。MSSQL2005下,Schema与帐号间的挂勾分离了。
    指定一个表,
    可以使用 dbname.schemaname.tablename 来指定(虽然MSSQL2000已可这么指定),
    如此,则schema类似一个namespace,
    目的是「让同一数据库下的表可以再分类」。
    比如,你可以用,
    ERPDB.Accounting.MyTable 来命名一个表
    也可以用
    ERPDB.Sales.MyTable 来命名另一个表。
    两个表的表名都叫MyTable,
    但由于Schema不同,故不冲突。这个概念,MSSQL 到 2005 版才支持,
    但我从Rose工具上看来,
    这概念至少在数据库的抽象定义早就是如此了,
    估计 Oracle, DB2 等的数据库中 Schema 的定义应类似于后者(我猜啦)。
      

  2.   

    2 楼上,db2 中的 schema 像你说的那样'属于后者',oracle 的 schema 还有所不同.
      

  3.   

    bflovesnow,多谢指教。能否简略说明一下 Oracle Schema 的不同处﹖
    也让我学习一下,谢谢!