数据库中schema,表空间的意思

1.什么是schema?

定义:

A schema is a collection of database objects (used by a user.). Schema objects are the logical structures that directly refer to the database’s data. A user is a name defined in the database that can connect to and access objects. Schemas and users help database administrators manage database security.

也就是说,schema是一个逻辑概念,是数据库对象的集合,数据库对象包括:tables, views, sequences, stored procedures, synonyms, indexes, clusters, and database links。

“我们可以把Database看作是一个大仓库,仓库分了很多很多的房间,Schema就是其中的房间,一个Schema代表一个房间,Table可以看作是每个Schema中的床,Table(床)被放入每个房间中,不能放置在房间之外,那岂不是晚上睡觉无家可归了,然后床上可以放置很多物品,就好比 Table上可以放置很多列和行一样,数据库中存储数据的基本单元是Table,现实中每个仓库放置物品的基本单位就是床, User就是每个Schema的主人,(所以Schema包含的是Object,而不是User),user和schema是一一对应的,每个user在没有特别指定下只能使用自己schema(房间)的东西,如果一个user想使用其他schema(房间)的东西,那就要看那个schema(房间)的user(主人)有没有给你这个权限了,或者看这个仓库的老大(DBA)有没有给你这个权限了。换句话说,如果你是某个仓库的主人,那么这个仓库的使用权和仓库中的所有东西都是你的(包括房间),你有完全的操作权,可以扔掉不用的东西从每个房间,也可以放置一些有用的东西到某一个房间,你还可以给每个User分配具体的权限,也就是他到某一个房间能做些什么,是只能看(Read-Only),还是可以像主人一样有所有的控制权(R/W),这个就要看这个User所对应的角色Role了。”—摘自网络

2.什么是表空间?

在oracle中,数据库是由表空间来组成的,而表空间里面是具体的物理文件—数据文件。我们可以创建数据库并为其指定各种表空间。
本质上是一个或多个数据文件的集合。

3.总结

数据库由表空间来组成,而Schema是各种数据库对象的集合,用户可以通过Schema来访问表等等这些数据库对象,而我们查询的时候通常是没有通过Schema.对象的方式访问,是因为当没有指明该表属于哪一个Schema中的,系统就会自动给我们在表上加上缺省的Schema名,缺省的Schema名就是用户名。
mysql里innodb才有表空间的概念,但是它是全局的,也就是说,所有数据库都用这个表空间。

你可能感兴趣的:(数据库中schema,表空间的意思)