日期:2014-05-16 浏览次数:20351 次
?
【什么是schema?】
?? ?究竟什么是schema?这个问题困扰了我很久。
?? ?我们只讨论数据库中的schema,而不讨论XML中的schema。
?
?? ?在wiki上,这样解释schema:
?? ?In a relational database, the schema defines the tables, views, indexes, packages,
?? ?procedures, functions, queues, triggers, types, sequences, materialized views, synonyms,
?? ?database links, directories, Java, XML schemas, and other elements.
?? ?而实际上,schema就是数据库对象的集合。
?
【为什么schema有存在的必要?】 ? ?
?? ?为了区分各个集合,我们需要给这个集合起个名字,其实这个名字就是schema。
?? ?举例说明:访问scott用户下的emp表,通过select from emp 其实,
?? ?这sql语句的完整写法为select from scott.emp。对于数据库来说,不同的用户,有不同schema。有不同的表。
?? ?实际在使用上,schema和user完全一样,没有什么区别,在出现schema名的地方也可以出现user名。
?
【什么是模式】:
?? ?数据库中的模式指的就是schema。
?? ?CSDN中这样解释模式:
?? ? ? ?可以在不同模式下创建相同表名
?? ? ? ?DB2系统访问表对象时使用模式名.表对象
?? ? ? ?对于不指明模式的表对象 以当前登录用户模式作为隐含模式访问。
?
【什么是表空间?】
?? ?wiki这样解释:
?? ?表空间是实际的数据存储的地方。
?? ?一个数据库schema可能存在于多个表空间,相似地,一个表空间也可以为多个schema服务。
?
【表空间的作用】:
?? ?通过使用表空间,管理员可以控制磁盘的布局。
?? ?表空间的最常用的作用是优化性能,
?? ?例如,一个最常用的索引可以建立在非常快的硬盘上,
?? ?而不太常用的表可以建立在便宜的硬盘上,比如用来存储用于进行归档文件的表。
?
【db2数据库中的默认表空间】
?? ?hp用户的表空间是userspace1.
?? ?如果你新建立了表空间,则将表建立在你所建立的表空间上,除非你指定了。