实例→表空间→用户→表
(一)一个运行着的数据库程序就是一个实例(SID/Instance_name)(一台主机上可以运行多个数据库)
实例是操作系统中访问数据库所需要的一系列的进程和内存的集合。即使没有任何数据文件,实例也可以启动。但是要想访问数据库,必须把数据库文件加载进实例中。实例和数据库的区别可以简单概括为:实例是临时的,它只在相关的进程和内存集合存在时存在,而数据库是永久的,只要文件存在它就存在。一个实例只能对应一个数据库,但是一个数据库可以由多个实例对应(如RAC)。RAC就是多个实例同时打开一个数据库文件的系统,在结构上是多台机器,每台机器运行一个实例,每个实例都打开同一个数据库 (这个是用磁盘共享技术实现的),这些实例之间需要同s步高速缓存,这样保证多个实例是完全一致的,不会相互冲突乃至覆盖。
1,数据库实例名(instance_name):用于和操作系统之间的联系。 操作系统与数据库之间的交互则必须使用数据库实例名。数据库安装完成后,数据库实例名称存储在参数文件中,同时存储在注册表中。
(二)一个实例下可以分配多个表空间(namespace)
(三)一个表空间下可以建立多个用户(User)
(四)默认会在建用户的同时为该用户建一个同名的schema
(五)一个用户下可以有多张表
(六)SERVICE_NAME:
1,SERVICE_NAME是oracle8i新引进的,8i之前,一个数据库只能由一个实例对应,但是随着高性能的需求,并行技术的使用,一个数据库可以由多个实例对应了,比较典型的应用如RAC。为了充分利用所有实例,并且令客户端连接配置简单,ORACLE提出了SERVICE_NAME的概念。该参数直接对应数据库,而不是某个实例。
2,service_name是这个数据库对外宣称的名字,外面的人要想连接我这个数据库,你就在客户端的连接串里写上service_name。它就像一个部门的名字,这个部门的名称在看门大爷(listener)那里有登记,看门大爷一看你是要找SERVICE_NAME这个部门,就告诉你我们公司确实有这个部门,于是你就找到了,连接就建立了。
(七)JDBC 的三种方式
格式一:jdbc:oracle:thin:@//<host>:<port>/<service_name>
格式二:jdbc:oracle:thin:@<host>:<port>:<SID>
格式三:jdbc:oracle:thin:@<TNSName>
参考内容
1, 一个运行着的数据库程序就是一个实例(电脑上可以运行多个数据库).实例就像一个大仓库.由于仓库太大,我们租给不同的企业,每个企业根据自身的需求划定仓库的一片区域,这片区域称为表空间.企业允许员工在自己这片区域的仓库的房间内放自己的东西.每位员工只有一个房间,当放上你的一件东西后这个房间就属于你,并且以你的名字自动命名.你就是用户,而房间就是方案(schema).你可以在你的房间(方案)里置办不同的器具放不同类的东西如:鞋柜 衣橱 床等等(这些对应着表 索引 视图 触发器等等).你在这些器具里面放的具体的东西比如鞋子 衣服就是数据了.