求解?表空间,表,用户这三者之间的 关系与区别?

行走的code 2012-02-11 04:40:58
小弟初学oracle,但是在表空间,用户,表这三者之间的关系,有点模糊,希望大牛指导下!
...全文
690 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
Z656017811 2012-02-14
  • 打赏
  • 举报
回复
对这个又有更深一点的了解,谢谢各位!
飞凡的陀螺 2012-02-14
  • 打赏
  • 举报
回复
记录下 学习了
zhshshyang 2012-02-14
  • 打赏
  • 举报
回复
表空间是最大的逻辑结构,它没了什么就都没了
buryMyLove 2012-02-14
  • 打赏
  • 举报
回复
用户都会有一个默认表空间,一个用户下创建的表会默认放在一个表空间内,但是你可以在建表语句中指定另一个表空间,也就是说用户下的表并不是一定要放在默认表空间里,多个用户也可以使用同一个表空间。用户和表空间是多对多关系。
一张表(一个对象)一定是在一个表空间里的,不能被分割,是一对多关系,但是对这张表的字段创建的索引(另一个对象)不一定和表在同一个表空间里。
一张表一定只属于一个用户,同时对这张表的字段创建的索引一定是属于同一个用户。
zhang6793645 2012-02-13
  • 打赏
  • 举报
回复
你应该找一本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
);

你看,两个表空间是一致,工作上这些应该够用了,希望能对你有帮助。
不要悲剧人生 2012-02-13
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 fyhailin 的回复:]
对了,忘了还有一个问题,如果我删除一个表空间,那么属于表空间的表也会被删除吗?
[/Quote]

一幢大楼没了,房间还会存在吗,?呵呵,,,
行走的code 2012-02-13
  • 打赏
  • 举报
回复
对了,忘了还有一个问题,如果我删除一个表空间,那么属于表空间的表也会被删除吗?
行走的code 2012-02-13
  • 打赏
  • 举报
回复
谢谢了!我自己在慢慢体会下
minitoy 2012-02-13
  • 打赏
  • 举报
回复
表属于用户
表空间和用户没什么隶属关系。一个用户可能使用多个表空间,一个表空间也可能属于多个用户。
表空间是存储空间的最大管理单元。
用户是用于组织逻辑对象的最大单元。
mingchaoyan 2012-02-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 fyhailin 的回复:]

那我们需要表空间干什么呢?每个用户管理各自的表不是很好吗?几个用户的表放在一个表空间里不是会产生混乱吗?而且我们好像也没怎么用表空间啊?
[/Quote]
大楼 住户 房间

lz你说为什么现在城市里是一幢幢大楼,而不是一间间房间
ICE-word 2012-02-13
  • 打赏
  • 举报
回复
5楼精辟啊!!
gengwx_2008 2012-02-12
  • 打赏
  • 举报
回复
一个用户可以使用一个或多个表空间,一个表空间也可以供多个用户使用。
wszdx123qq 2012-02-12
  • 打赏
  • 举报
回复
把它看成房子,人,房间来理解……
Rotel-刘志东 2012-02-12
  • 打赏
  • 举报
回复
表一定是存在表空间中,用户属于表空间,但用户是否有权利操作表空间,具体看是否具体权限。
行走的code 2012-02-11
  • 打赏
  • 举报
回复
那我们需要表空间干什么呢?每个用户管理各自的表不是很好吗?几个用户的表放在一个表空间里不是会产生混乱吗?而且我们好像也没怎么用表空间啊?
jdsnhan 2012-02-11
  • 打赏
  • 举报
回复
用户要隶属于一个表空间,表存在表空间,但不等于这个用户拥有表空间上所有内容。

用户就一住户,表空间是一栋楼,表是一件家具。你虽然住在这个楼里,不代表这个楼里所有的家具都是你的。
行走的code 2012-02-11
  • 打赏
  • 举报
回复
那表属于表空间,但是不同的用户有不同的表,这样有点迷糊啊!比如说一张emp表属于scott用户,但是却属于xxxspace 表空间,那现在admin用户对xxxspace 表空间操作时能操作emp表吗?
forgetsam 2012-02-11
  • 打赏
  • 举报
回复
表空间 和 用户 都是 system objects 平级 归属于数据库

表是schema objects 归属于用户

表和用户是从属关系

表和表空间没关系 表中数据装载在表空间的data文件上

用户和表空间没关系 用户的属性“默认表空间”和表空间是多对一关系
yukol 2012-02-11
  • 打赏
  • 举报
回复
我也只有大半年的经验,以下我现在的理解:

表空间:创建表空间会在物理磁盘上建立一个数据文件,作为数据库对象(用户、表、存储过程等等)的物理存储空间;

用户:创建用户必须为其指定表空间,如果没有显性指定默认表空间,则指定为users表空间;创建用户后,可以在用户上,创建表、存储过程等等其他数据库对象;

表:是数据记录的集合;

创建过程: 表空间--->用户--->表;

所属关系: 表空间 包含 用户 包含 表;
dc老师 2012-02-11
  • 打赏
  • 举报
回复
表空间:一个数据库划分为一个或多个逻辑单位,该逻辑单位称为表空间(TABLESPACE)。一个表空间可将相关的逻辑结构组合在一起。
表:表(table)为数据库中数据存储的基本单位,其数据按行、列存储。每个表具有一表名和列的集合。每一列有一个列名、数据类型、宽度或精度、比例。一行是对应单个记录的列信息的集合。
用户:即user,通俗的讲就是访问oracle数据库的“人”。在oracle中,可以对oracle用户的各种安全参数进行控制,以维护数据库的安全性,这些概念包括模式(schema)、权限、角色、存储设置、空间限额、存取资源限制、数据库审计等。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧