求解?表空间,表,用户这三者之间的 关系与区别?
Posted *(00)*
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求解?表空间,表,用户这三者之间的 关系与区别?相关的知识,希望对你有一定的参考价值。
发表于: 2012-02-11 16:40:58
|
#1 得分:0回复于: 2012-02-11 16:55:59
表空间:一个数据库划分为一个或多个逻辑单位,该逻辑单位称为表空间(TABLESPACE)。一个表空间可将相关的逻辑结构组合在一起。
表:表(table)为数据库中数据存储的基本单位,其数据按行、列存储。每个表具有一表名和列的集合。每一列有一个列名、数据类型、宽度或精度、比例。一行是对应单个记录的列信息的集合。 用户:即user,通俗的讲就是访问oracle数据库的“人”。在oracle中,可以对oracle用户的各种安全参数进行控制,以维护数据库的安全性,这些概念包括模式(schema)、权限、角色、存储设置、空间限额、存取资源限制、数据库审计等。 |
|
#2 得分:0回复于: 2012-02-11 17:06:03
我也只有大半年的经验,以下我现在的理解:
表空间:创建表空间会在物理磁盘上建立一个数据文件,作为数据库对象(用户、表、存储过程等等)的物理存储空间; 用户:创建用户必须为其指定表空间,如果没有显性指定默认表空间,则指定为users表空间;创建用户后,可以在用户上,创建表、存储过程等等其他数据库对象; 表:是数据记录的集合; 创建过程: 表空间--->用户--->表; 所属关系: 表空间 包含 用户 包含 表; |
|
#3 得分:0回复于: 2012-02-11 17:24:06
表空间 和 用户 都是 system objects 平级 归属于数据库
表是schema objects 归属于用户 表和用户是从属关系 表和表空间没关系 表中数据装载在表空间的data文件上 用户和表空间没关系 用户的属性“默认表空间”和表空间是多对一关系 |
|
#4 得分:0回复于: 2012-02-11 18:17:28
那表属于表空间,但是不同的用户有不同的表,这样有点迷糊啊!比如说一张emp表属于scott用户,但是却属于xxxspace 表空间,那现在admin用户对xxxspace 表空间操作时能操作emp表吗?
|
|
#5 得分:0回复于: 2012-02-11 21:31:03
用户要隶属于一个表空间,表存在表空间,但不等于这个用户拥有表空间上所有内容。
用户就一住户,表空间是一栋楼,表是一件家具。你虽然住在这个楼里,不代表这个楼里所有的家具都是你的。 |
|
#6 得分:0回复于: 2012-02-11 22:32:41
那我们需要表空间干什么呢?每个用户管理各自的表不是很好吗?几个用户的表放在一个表空间里不是会产生混乱吗?而且我们好像也没怎么用表空间啊?
|
|
#7 得分:0回复于: 2012-02-12 14:13:51
表一定是存在表空间中,用户属于表空间,但用户是否有权利操作表空间,具体看是否具体权限。
|
|
|
#8 得分:0回复于: 2012-02-12 22:23:08
把它看成房子,人,房间来理解……
|
|
#9 得分:0回复于: 2012-02-12 23:16:11
一个用户可以使用一个或多个表空间,一个表空间也可以供多个用户使用。
|
#11 得分:0回复于: 2012-02-13 08:43:58
表属于用户
表空间和用户没什么隶属关系。一个用户可能使用多个表空间,一个表空间也可能属于多个用户。 表空间是存储空间的最大管理单元。 用户是用于组织逻辑对象的最大单元。 |
|
|
#12 得分:20回复于: 2012-02-13 12:33:03
你应该找一本oracle的书,看一下,你就明白了,oracle的体系结构
block < extent < 段 表空间是有多个段组成的,一个段可能又分了多个区间,一个区间有多个oracle 数据块 而用户,也有用户对应的user表空间(这个是系统默认的空间) 举个例子: create user zsd identified by "" default tablespace PUB_ZSD_SPACE(这个是你想用户放置的表空间) temporary tablespace TEMP01(临时空间就是临时放置的表空间) profile DEFAULT; 如果你在这个用户下,建立一个表zsd_test那么这张表就会放在和用户表空间一样的地方 create table zsd_test( EMPLOYEE_ID VARCHAR2(32), IAM_UID VARCHAR2(32) ) tablespace PUB_ZSD_SPACE pctfree 10 initrans 1 maxtrans 255 storage ( initial 2M minextents 1 maxextents unlimited ); 你看,两个表空间是一致,工作上这些应该够用了,希望能对你有帮助。 |
#13 得分:0回复于: 2012-02-13 14:25:45
5楼精辟啊!!
|
|
|
#14 得分:0回复于: 2012-02-13 20:35:56
大楼 住户 房间 lz你说为什么现在城市里是一幢幢大楼,而不是一间间房间 |
#15 得分:0回复于: 2012-02-13 22:16:00
谢谢了!我自己在慢慢体会下
|
|
#16 得分:0回复于: 2012-02-13 22:20:09
对了,忘了还有一个问题,如果我删除一个表空间,那么属于表空间的表也会被删除吗?
|
|
#17 得分:0回复于: 2012-02-13 22:53:15
一幢大楼没了,房间还会存在吗,?呵呵,,, |
|
|
#18 得分:0回复于: 2012-02-14 09:18:12
表空间是最大的逻辑结构,它没了什么就都没了
|
#19 得分:0回复于: 2012-02-14 09:36:34
记录下 学习了
|
|
|
#20 得分:0回复于: 2012-02-14 10:21:25
对这个又有更深一点的了解,谢谢各位!
|
|
#21 得分:0回复于: 2012-02-14 17:40:26
用户都会有一个默认表空间,一个用户下创建的表会默认放在一个表空间内,但是你可以在建表语句中指定另一个表空间,也就是说用户下的表并不是一定要放在默认表空间里,多个用户也可以使用同一个表空间。用户和表空间是多对多关系。
一张表(一个对象)一定是在一个表空间里的,不能被分割,是一对多关系,但是对这张表的字段创建的索引(另一个对象)不一定和表在同一个表空间里。 一张表一定只属于一个用户,同时对这张表的字段创建的索引一定是属于同一个用户。 |
以上是关于求解?表空间,表,用户这三者之间的 关系与区别?的主要内容,如果未能解决你的问题,请参考以下文章