当前位置: 首页 > news >正文

【Oracle】 - 数据库的实例、表空间、用户、表之间关系

Oracle是一种广泛使用的关系型数据库管理系统,它具有高性能、高可靠性、高安全性等特点。1Oracle数据库的结构和组成是一个复杂而又有趣的话题,本文将介绍Oracle数据库的四个基本概念:数据库、实例、表空间和用户,以及它们之间的关系和作用。

数据库

数据库是指存储在磁盘上的一系列物理文件,这些文件包括数据文件、控制文件、联机日志文件、参数文件等,它们记录了数据库的数据和元数据。2数据库是Oracle数据库的核心,它是数据的持久化存储和管理的基础。

数据库的名称是由全局数据库名(Global Database Name)决定的,它是数据库的唯一标识,一般不会修改。全局数据库名由数据库名(DB_NAME)和域名(DB_DOMAIN)组成,例如:orcl.example.com。全局数据库名在安装Oracle数据库时就要指定,它会写入控制文件和数据字典中,也会影响到数据库的连接和访问。

实例

实例是指在内存中分配的一块共享内存区域(SGA)和一组后台进程(或线程),它们用于访问和控制数据库。3实例是Oracle数据库的运行时环境,它是数据库的动态部分,它可以启动和关闭,也可以有多个实例同时运行。

实例的名称是由实例名(Instance Name)决定的,它也叫做系统标识符(SID),它是实例的唯一标识,一般与数据库名相同。4实例名是由参数instance_name决定的,它会写入参数文件中,也会影响到数据库的连接和访问。

数据库和实例的关系

数据库和实例是Oracle数据库的两个重要组成部分,它们之间有着密切的关系。5一般来说,一个数据库只能被一个实例访问,这种模式叫做单实例数据库(Single Instance Database)。但是,在某些情况下,一个数据库可以被多个实例访问,这种模式叫做多实例数据库(Multi Instance Database),也叫做Oracle Real Application Clusters(RAC)。RAC是Oracle数据库的一种高可用性和高性能的解决方案,它可以实现数据库的负载均衡和故障转移。

表空间

表空间是数据库的逻辑划分,它是一组数据文件的集合,用于存储数据库对象,如表、索引、视图等。6表空间是数据库的组织和管理的单位,它可以根据不同的用途和需求进行划分,例如:系统表空间(SYSTEM)用于存储系统对象,用户表空间(USERS)用于存储用户对象,临时表空间(TEMP)用于存储临时数据等。

表空间的名称是由表空间名(Tablespace Name)决定的,它是表空间的唯一标识,可以由用户自定义。表空间的创建和管理是由SQL语句实现的,例如:

–创建表空间 CREATE TABLESPACE db_test DATAFILE ‘D:\oracle\product\10.2.0\userdata\db_test.dbf’ SIZE 50M7 AUTOEXTEND ON;

–查看表空间 SELECT TABLESPACE_NAME, STATUS, CONTENTS FROM DBA_TABLESPACES;

–删除表空间 DROP TABLESPACE db_test INCLUDING CONTENTS AND DATAFILES;

用户

用户是数据库的访问者和使用者,它是一种数据库对象,用于标识数据库的登录者和拥有者。用户可以拥有自己的数据库对象,也可以访问其他用户的数据库对象,这取决于用户的权限和角色。用户是数据库的安全和控制的基础,它可以实现数据库的身份认证和访问控制。

用户的名称是由用户名(User Name)决定的,它是用户的唯一标识,可以由用户自定义。用户的创建和管理是由SQL语句实现的,例如:

–创建用户 CREATE USER utest IDENTIFIED BY utestpwd DEFAULT TABLESPACE db_test TEMPORARY TABLESPACE temp;

–查看用户 SELECT USERNAME, DEFAULT_TABLESPACE, TEMPORARY_TABLESPACE FROM DBA_USERS;

–删除用户 DROP USER utest CASCADE;

表是数据库的基本对象,它是一种二维的数据结构,用于存储数据。表由行和列组成,每一行代表一条记录,每一列代表一个属性。表是数据库的数据源和目标,它是数据库操作的对象和结果。

表的名称是由表名(Table Name)决定的,它是表的唯一标识,可以由用户自定义。表的创建和管理是由SQL语句实现的,例如:

–创建表 CREATE TABLE emp ( empno NUMBER(4) PRIMARY KEY, ename VARCHAR2(10), job VARCHAR2(9), mgr NUMBER(4), hiredate DATE, sal NUMBER(7,2), comm NUMBER(7,2), deptno NUMBER(2) REFERENCES dept(deptno) );

–查看表 SELECT TABLE_NAME, TABLESPACE_NAME FROM USER_TABLES;

–删除表 DROP TABLE emp;

表空间、用户和表的关系

表空间、用户和表是数据库的三个重要对象,它们之间有着密切的关系。一般来说,一个用户可以拥有多个表空间,一个表空间可以包含多个表,一个表只能属于一个表空间和一个用户。8这种关系可以用下图表示:

表空间、用户和表的关系决定了数据库的存储和访问的方式。例如:

–用户utest在表空间db_test中创建了表emp CREATE TABLE utest.emp ( empno NUMBER(4) PRIMARY KEY, ename VARCHAR2(10), job VARCHAR2(9), mgr NUMBER(4), hiredate DATE, sal NUMBER(7,2), comm NUMBER(7,2), deptno NUMBER(2) REFERENCES dept(deptno) ) TABLESPACE db_test;

–用户utest可以直接访问自己的表emp SELECT * FROM emp;

–用户scott可以访问utest的表emp,如果有权限的话 SELECT * FROM utest.emp;

举例

我们通过一个生动的例子来理解Oracle数据库中实例、表空间、用户和表的关系。

假设我们正在建设一个城市(Oracle数据库)。这个城市有许多建筑物(数据文件),包括住宅、商店、办公楼等。这些建筑物都分布在不同的街区(表空间)中。

现在,我们需要一位市长(实例)来管理这个城市。市长负责协调城市的运作,包括维护公共设施、规划城市发展等。

在这个城市中,我们有许多居民(用户)。每个居民都在城市中拥有自己的房产(表)。他们可以在自己的房产中存储自己的物品(数据),也可以访问其他居民的房产(如果被授权的话)。

例如,我们有一个名叫Alice的居民,她在ResidentialArea街区中拥有一栋房子,这栋房子就是一个表,名叫Alice_House。在这个表中,Alice存储了她的一些个人物品,比如家具、电器等。

同时,我们还有一个名叫Bob的居民,他在CommercialArea街区中拥有一家商店,这家商店也是一个表,名叫Bob_Shop。在这个表中,Bob存储了他出售的一些商品信息。

在这个例子中,我们可以看到,实例(市长)是用来管理整个数据库(城市)的,表空间(街区)是用来组织数据文件(建筑物)的,用户(居民)是数据库的使用者,他们在表空间中创建和管理自己的表(房产)。希望这个例子能帮助你更好地理解Oracle数据库中实例、表空间、用户和表的关系。如果你还有其他问题,欢迎随时向我提问。我会尽我最大的努力来帮助你。谢谢你的理解和耐心。。

总结

本文介绍了Oracle数据库的四个基本概念:数据库、实例、表空间和用户,以及它们之间的关系和作用。通过理解这些概念,可以更好地理解和使用Oracle数据库,也可以更好地进行数据库的设计和优化。希望本文对你有所启发和帮助。

http://www.lryc.cn/news/274884.html

相关文章:

  • ssm基于HTML5的交流论坛的设计与实现+vue论文
  • JDBC*
  • Zookeeper注册中心实战
  • 1-02VS的安装与测试
  • ctfshow——PHP特性
  • K8S陈述式资源管理
  • 详解Python内置函数 !!!
  • 使用Vue3 + Vite创建uni-app项目(Webstorm)
  • 【js】js实现多个视频连续播放:
  • 使用openssl 生成pfx格式证书时报错:unable to load certificates
  • 微信小程序 分享按钮 监听用户分享成功
  • 数据结构-怀化学院期末题
  • 跟cherno手搓游戏引擎【1】:配置与入口点
  • 25计算机专业考研经验贴之准备篇
  • 机器人相关知识
  • 八股文打卡day22——操作系统(5)
  • SQL Server 权限管理
  • ReentrantLock底层原理学习一
  • 数字孪生在增强现实(AR)中的应用
  • 【数据仓库与联机分析处理】多维数据模型
  • 【网络面试(3)】浏览器委托协议栈完成消息的收发
  • Kotlin: Jetpack — ViewModel简单应用
  • 【Java技术专题】「攻破技术盲区」攻破Java技术盲点之unsafe类的使用指南(打破Java的安全管控— sun.misc.unsafe)
  • 私有云平台搭建openstack和ceph结合搭建手册
  • debug mccl 02 —— 环境搭建及初步调试
  • ros python 接收GPS RTK 串口消息再转发 ros 主题消息
  • 2024年网络安全竞赛-页面信息发现任务解析
  • ARM DMA使用整理
  • 移动通信原理与关键技术学习(第四代蜂窝移动通信系统)
  • 光明源@智慧厕所技术:优化生活,提升卫生舒适度