DB schema的意义

对于数据库的schema一直不太理解它到底是个什么东西,今天就请教了我的超级无敌老师--百度百度百度,三遍不够就10遍吧,终于还是有蛮多收获的:

 

理解1:

今天看到了Schema一词,对于它的理解网上也是说法很多,有一种受到认可的程度比较大,暂且先使用一下:

"首先我来做一个比喻,什么是Database,什么是Schema,什么是Table,什么是Column,什么是Row,什么是User?我们可以把Database看作是一个大仓库,仓库分了很多很多的房间,Schema就是其中的房间,一个Schema代表一个房间,Table可以看作是每个Schema中的床,Table(床)就被放入每个房间中,不能放置在房间之外,那岂不是晚上睡觉无家可归了。然后床上可以放置很多物品,就好比Table上可以放置很多列和行一样,数据库中存储数据的基本单元是Table,现实中每个仓库放置物品的基本单位就是床, User就是每个Schema的主人,【所以Schema包含的是Object,而不是User】,其实User是对应于数据库的(即User是每个对应数据库的主人),既然有操作数据库(仓库)的权利,就肯定有操作数据库中每个Schema(房间)的权利,就是说每个数据库映射的User有每个Schema(房间)的钥匙,换句话说,如果他是某个仓库的主人,那么这个仓库的使用权和仓库中的所有东西都是他的(包括房间),他有完全的操作权,可以扔掉不用的东西从每个房间,也可以放置一些有用的东西到某一个房间,当然也可以拆除一个房间(Remove Schema)。呵呵,和现实也太相似了吧。我(仓库的管理员)还可以给User分配具体的权限,也就是他到某一个房间能做些什么,是只能看(Read-Only),还是可以像主人一样有所有的控制权(R/W),这个就要看这个User所对应的角色Role了,至于分配权限的问题,我留在以后单独的blog中详述。比喻到这里,相信大家都清楚了吧。"
————————————————
版权声明:本文为CSDN博主「Rui_dlut」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/rui_dlut/article/details/6737046

 

理解2:

模式(schema) 是用于 在一个 大项目中的 各个 小项目
每个 小项目的表, 放在 各自的 模式(schema) 下面.
这样, 遇到 小项目里面. 有 相同名字的 表的话, 不会发生冲突.

例如一个 公司的 系统.
里面分2个 子系统, 分别为 财务系统 和 人力资源系统.
这2个 子系统, 共用一个数据库
.
那么 财务系统的表, 可以放在 财务的 模式(schema).
人力资源系统的表,放在 人力资源系统的模式里面。

这2个 子系统, 能够 互相访问 对方的表
但是又不因为 表重名 的问题,影响对方。

上一篇:xml文件中 aop的配置


下一篇:查看数据库容量大小