一个数据库对应多个实例;一个实例对应多个用户;一个表空间可以给多个用户使用;一个用户只能分配一个表空间;
它们之间的关系:
1. 数据库与实例:
• 数据库是存储数据的实体,实例是访问数据库的工具。
• 一个实例对应一个数据库(或多个实例对应一个数据库)。
2. 数据库与表空间:
• 数据库由一个或多个表空间组成。
• 表空间是数据库中数据存储的逻辑结构。
3. 表空间与用户:
• 每个用户与一个默认表空间关联。
• 用户创建的表或其他对象存储在该表空间中。
4. 用户与表:
• 用户是表的拥有者。
• 用户通过权限可管理和访问自己的表或其他用户的表。
5. 表空间与表:
• 表是存储在表空间中的逻辑结构。
• 表空间提供表的物理存储支持。
1.Oracle 数据库(Database):数据的物理存储。
查询当前全局数据库名:select name from v$database;
• 定义:数据库是 Oracle 系统中数据的存储实体,是存储结构和管理的逻辑集合。它包含数据文件、控制文件、日志文件等物理存储组件。
• 作用:数据库是所有数据存储的核心。
① 非全局数据库:例如MySQL:一个应用是一个数据库。
② Oracle全局数据库名:【全局数据库:装上Oracle后它只有一个数据库,不会建很多数据库。】就是一个数据库的标识,在安装时就要想好,以后一般不修改,修改起来也麻烦,因为数据库一旦安装,数据库名就写进了控制文件,数据库表,很多地方都会用到这个数据库名。
③ 启动数据库:也叫全局数据库,是数据库系统的入口,它会内置一些高级权限的用户如SYS,SYSTEM等。我们用这些高级权限账号登陆就可以在数据库实例中创建表空间,用户,表了。
2. 实例(Instance):一系列后台进程。
实例出现的背景:有的时候我们需要用一台服务器装多套的Oracle,并且希望它们之间不会起冲突。因此通过Oracle解决方案:只用装一套Oracle,可以装多套实例,通过实例来区分。等价于装了很多套Oracle。
查询当前数据库实例名:select instance_name from v$instance;
• 定义:实例是用于访问数据库的内存和后台进程的组合。
• 作用:实例负责管理数据库的操作,为用户提供对数据库的访问。
• 关系: 一个实例通常对应一个数据库,但在 Oracle RAC(集群)中,多个实例可以共享一个数据库。
开发时要连接数据库,就得连接数据库实例名:
jdbc:oracle:thin:@localhost:1521:orcl(orcl就为数据库实例名)
3. 表空间(Tablespace):管理数据文件dbf。
从大到小:理解管理国家,划分成“省市县乡村”,要管理数据库也一样需要具体划分层级。
创建表空间:
Create TableSpace 表空间名称 DataFile 表空间数据文件路径
Size 表空间初始大小 Autoextend on;
查看已经创建好的表空间:
select default_tablespace, temporary_tablespace,username from dba_users;
• 定义:表空间是逻辑存储结构,用于管理数据库的数据存储,实际数据存储在表空间关联的数据文件中。
• 作用:
• 表空间是数据库中存储对象(如表、索引等)的逻辑容器。
• 每个数据库至少有一个表空间(如 SYSTEM 表空间)。
• 关系:
• 一个数据库可以包含多个表空间。
• 表空间进一步划分为段(Segment)、区(Extent)和块(Block)。
4. 用户(User)
用户是在表空间下建立的。用户登陆后只能看到和操作自己有权限的表,ORACLE的用户与 MySQL的数据库【MySQL非全局数据库:例如MySQL:一个应用就得建立一个数据库。】类似,因此Oracle每建立一个应用就需要创建一个用户。
查看数据库用户:select * from dba_users;
创建新用户:
CREATE USER 用户名 IDENTIFIED BY 密码 DEFAULT TABLESPACE 表空间(默认USERS) TEMPORARY TABLESPACE 临时表空间(默认TEMP) ;
GRANT dba TO 创建的新用户;-- dba为最高级权限
GRANT CONNECT TO 创建的新用户;
GRANT RESOURCE TO 创建的新用户;
• 定义:用户是数据库的访问主体,是数据库对象(如表、视图等)的拥有者。
• 作用:
• 用户负责创建和管理数据库对象。
• 用户与表空间相关联,每个用户默认有一个“默认表空间”,存储其创建的对象。
• 关系:
• 用户必须在数据库中定义。
• 用户可以访问或操作(通过权限)属于自己或其他用户的对象。
5. 表(Table)
• 定义:表是数据库中存储数据的基本结构,是行和列的集合。
• 作用:
• 表用于存储和组织数据。
• 关系:
• 表是用户拥有的数据库对象。
• 表存储在用户的默认表空间中。
6. 总结示例
• 一个数据库 DB1 包含表空间 TS1 和 TS2。
• 用户 USER1 和 USER2 分别默认使用表空间 TS1 和 TS2。
• USER1 创建了表 TABLE1,该表的数据存储在表空间 TS1 中。
• 数据库实例 INST1 启动后允许用户访问 DB1,对表 TABLE1 执行查询或修改操作。
通过这样的层次结构,Oracle 数据库实现了高效的数据管理和访问控制。