oracle数据库,表空间和表之间是什么关系?
大家好!
公司在上一个项目,要用到oracle,之前一直都是用的sqlSERver,现在突然用oracle,感到无从下手,连最基本的链接数据库,建数据库,建表都不知道该从哪里开始,于是上网查了资料被里面的名词比如说“表空间”弄的晕头转向的,以前对sqlserver的认识发现在oracle上不适用了,谁能帮我解释一下oracle数据库中“数据库,表空间和表”这三个名词之间的关系。
另外,怎样在oracle数据库中建数据库,表空间和表。
不甚感激!
------解决方案--------------------一、数据库
数据库顾名思义是数据的集合,而Oracle则是管理这些数据集合的软件系统,它是一个对象关系型的数据库管理系统。
二、表空间
表空间是Oracle对物理数据库上相关数据的逻辑映射。一个数据库在逻辑上被划分成一到若干个表空间,每个表空间包含了在逻辑上相关联的一组结构。每个数据库至少有一个表空间(称之为system表空间)。
每个表空间由同一磁盘上的一个或多个文件组成,这些文件叫数据文件(datafile)。一个数据文件只能属于一个表空间。
三、实例
每一个运行中的数据库都对应着一个Oracle实例。当服务器上的Oracle数据库启动时,Oracle首先会在内存中分配一片区域-称之为System Global Area(SGA),然后启动一个或多个的Oracle进程。
SGA和这些进程合起来就称为一个Oracle的实例。实例中的内存和进程管理器用来高效地访问数据库的数据,同时为单个或多个的用户提供服务。
一个数据库可以由多个实例打开,但任何时刻一个实例只能打开一个数据库。多个实例可以同时运行在同一个机器上,它们彼此访问各自独立的物理数据库。
------解决方案--------------------怎样在oracle数据库中建数据库,表空间和表。
1 建立数据库最简单的是使用DBCA,在DOS里面使用命令"DBCA"即可
2 表空间建立
--创建临时表空间
create temporary tablespace test_temp
tempfile 'E:\oracle\product\10.2.0\oradata\testserver\test_temp01.dbf'
size 32m
autoextend on
next 32m maxsize 2048m
extent management local;
--创建数据表空间
create tablespace test_data
logging
datafile 'E:\oracle\product\10.2.0\oradata\testserver\test_data01.dbf'
size 32m
autoextend on
next 32m maxsize 2048m
extent management local;
--创建用户并指定表空间
create user username identified by password
default tablespace test_data
temporary tablespace test_temp;
3 创建表就简单了,和SQL Server 是一样的
------解决方案--------------------我也是oracle新手
我说下我初从sqlserver接触oracle最疑惑的问题说下,也许对楼主有帮助
首先是建表
在sqlserver2000(不好意思,本人只用过2000)服务运行后,里面可以有好几个数据库(包括temp,pubs什么的)
我们可以自己建库和这些并列,一个库可以有好几个不同的数据文件,可以放在不同的驱动器里面,然后在库里面建表,根据我个人的理解,谁建的表关系不大,反正都在这个库里面
而oracle就不同了,他一个服务就是一个库,库下面是表空间,一个表空间可以有几个不同的数据文件,这点有点象sqlserver的库,然后就是表了,oracle里的表,每个用户有个缺省的表空间,也就是说这个用户建的表会在这个表空间里面,a用户建的表ta,用a用户登录可以直接select * from ta这样访问,而其他用户(有权限的)要用select * from a.ta这样来访问
下面说说工具
我接触过三种,
toad
pl/sql developer (这个最小,才20m不到,有汉化,不过最新的8版,汉化不全,功能不弱)
Oracle自己的 oracle SQL Developer(大概200m)
前两种不是免费软件,当然国内有破解,咱就不说了
第三个是oracle自己出的类似于查询分析器的免费工具,而且有中文版
个人感觉功能对新手来说足够了
可以在官网下载
http://www.oracle.com/technology/global/cn/products/database/sql_developer/index.html
再配合上命令行的工具sqlplus就好了
------解决方案--------------------还忘记了说一个连接到数据库
oracle服务器端不用说,客户端要用这些工具连到数据库
通常都还必须安装oracle的客户端软件
安装以后,在程序组里面有一个net manager,要配一个 "服务命名"大概是这个名字吧,家里装了个xe版,没这个图形工具
反正就是用一个字符串对应上服务器的ip和端口(缺省为1521)
然后在那些工具里就是用这个字符串来代表服务器了
这个图是pl/sql developer的
而用dos命令行工具sqlplus,则是用 sqlplus 用户名/密码@xe 这样来登录
------解决方案--------------------表空间其实只是一个逻辑上的概念而已
个人觉得楼主需要首先对ORACLE整个体系结构有个清楚的认识
http://blog.csdn.net/wh62592855/archive/2009/10/16/4683983.aspx
可以参考下上面的链接