Oracle数据库从入门到精通系列之十八:详细总结Oracle数据库核心知识点

news2025/1/17 17:56:43

Oracle数据库从入门到精通系列之十八:详细总结Oracle数据库核心知识点

  • 一、Oracle数据库核心概念
  • 二、Oracle非容器数据库
  • 三、Oracle容器数据库
  • 四、容器数据库和非容器数据库的区别
  • 五、Oracle数据库多租户
  • 六、Oracle数据库多租户数据库模型
  • 七、Oracle数据库类型
  • 八、Oracle数据库创建表和插入数据
  • 九、查询当前所在的数据库
  • 十、查询当前数据库所有的表

一、Oracle数据库核心概念

  1. 数据库实例:一个运行在物理服务器上的单个Oracle数据库。一个物理服务器上可以运行多个Oracle数据库实例,每个实例都拥有自己的系统进程和内存结构。

  2. 数据库:一个由数据表、索引、触发器、存储过程、视图等组成的数据集合。Oracle数据库可以被分成多个逻辑区域,称为表空间(tablespaces),每个表空间包含多个数据文件(data files)。

  3. 数据字典:Oracle数据库中的元数据信息,记录了数据库对象的定义和属性信息。数据字典由系统表(system tables)和视图(views)组成,可以通过SQL查询来访问数据字典信息。

  4. 实例配置文件:包含了Oracle数据库实例的配置信息,如内存分配、日志的生成和维护、数据缓存等参数的设置。

  5. 进程和线程:Oracle数据库实例由多个后台进程和线程组成,负责执行各种系统任务,如监控、维护数据库、管理内存结构,并处理用户请求。

  6. 数据库用户和授权:Oracle数据库中的用户是授权访问数据库的实体。每个用户拥有自己的登录名和密码,可以访问指定的数据表、视图、存储过程等对象。

  7. 事务处理:Oracle数据库支持ACID事务(原子性、一致性、隔离性和持久性),确保在数据处理过程中的正确性和一致性。

  8. 高可用性和容错性:Oracle数据库提供了多种机制来实现高可用性和容错性,如RAC集群、数据保护和复制、备份和恢复等。

二、Oracle非容器数据库

  • Oracle数据库非容器数据库是指没有采用多租户数据库模型的Oracle数据库。在非容器数据库中,所有的数据库对象都是在实例级别创建和管理的,不具备多租户和隔离功能。每个数据库对象(例如表空间、表、索引、用户)都是直接在实例级别创建和管理的,所有的数据库对象都是全局可见的。
  • 非容器数据库优点是运维管理比较简单,不需要涉及到多个容器和子容器,SQL语句也比较简单,直接针对单个数据库对象进行查询和操作。同时,非容器数据库在资源管理和性能优化方面也具备一定的优势,可以通过单个实例和全局参数进行优化和调整。
  • 但是,非容器数据库也存在一些缺点,例如不能提供多租户和隔离功能,也不适合在一个实例中运行多个应用程序,容易导致资源冲突和干扰。同时,非容器数据库在数据库对象管理和版本控制方面也相对比较困难,需要手动进行管理和维护,容易出现数据错误、重复等问题。

三、Oracle容器数据库

  • Oracle数据库容器数据库是指采用多租户数据库模型的Oracle数据库。在容器数据库中,一个Oracle数据库主实例作为多个租户的容器,每个租户拥有自己的私有数据库。容器数据库支持多个租户共享同一个物理数据库实例,并且可以保证每个租户之间的数据彻底隔离,从而实现了更好的资源利用和管理灵活性。
  • 容器数据库实现需要借助Oracle Container Database(CDB)和Pluggable Database(PDB)的概念和特性。CDB是一个包含多个PDB的容器数据库,每个PDB都是一个独立的数据库实例,但是共享CDB的系统资源和Oracle实例。每个PDB都可以被视为一个租户的私有数据库,它可以被单独管理和配置,而且数据之间是完全隔离的。在容器数据库中,CDB可以被看作是容器数据库的容器,PDB可以被看作是容器数据库的租户。容器数据库可以实现更好的资源利用和管理灵活性,是企业中部署 Oracle 数据库的一种新型架构。

四、容器数据库和非容器数据库的区别

  • Oracle数据库的容器数据库和非容器数据库的区别在于它们如何组织和管理各种数据库对象。
  • 非容器数据库中,所有的数据库对象都是直接在实例级别创建和管理的
  • 容器数据库则引入了多个逻辑容器,每个容器可以包含多个数据库。每个容器都有自己的数据字典、系统表空间和用户表空间,可以独立管理和分配资源。

容器数据库的优点是它可以提供更好的隔离性和多租户功能,支持让多个应用程序在同一个实例中运行,而不会互相干扰。容器数据库还可以提供更灵活的数据库管理和多版本控制功能,使得各个数据库对象之间的依赖关系更加清晰和明确。

然而,在使用容器数据库时,也需要了解一些容器数据库特有的概念和管理方法,例如,需要使用特定的SQL语句来查询容器和子容器中的各种对象,需要使用多个命令来管理和操作各个容器和数据库对象,需要保证所有的容器和子容器都具有足够的系统资源和权限等等。

五、Oracle数据库多租户

  • Oracle数据库多租户是指在一个物理数据库实例中,为多个不同的应用程序提供数据存储和管理服务。不同的应用程序被视作不同的租户,每个租户拥有自己的私有数据库,具备完全独立的资源分配、数据库对象管理和数据隔离等特性。在多租户模型中,租户之间的数据是完全隔离的,每个租户可以使用自己的数据库对象和数据,同时也能够共享相同的物理资源,从而降低了企业数据库资源浪费和管理成本。
  • Oracle数据库多租户模型使用Pluggable Database(PDB)的概念和特性来实现,每个PDB可以被视为一个租户的私有数据库。PDB在CDB上运行,并且共享CDB的系统资源和Oracle实例。每个PDB可以被单独管理和配置,而且数据之间是完全隔离的。在多租户模型中,CDB可以被看作是容器数据库的容器,PDB可以被看作是容器数据库的租户。Oracle数据库多租户模型可以提升数据库的效率,降低开发和维护成本,是现代化企业数据库应用的首选架构。

六、Oracle数据库多租户数据库模型

Oracle数据库的多租户数据库模型是一种新型的数据库架构,它将一个Oracle数据库主实例作为多个租户的容器,每个租户拥有自己的私有数据库。多租户数据库模型支持多个租户共享同一个物理数据库实例,并且可以保证每个租户之间的数据彻底隔离,从而实现了更好的资源利用和管理灵活性。

在多租户数据库模型中,所有的数据库对象都是在租户级别管理和分配的,比如表空间、表、索引、用户等。每个租户拥有自己的表空间和用户,可以独立管理和分配资源。租户可以根据自己的需求和实际情况,灵活地调整和配置自己的资源。

多租户数据库模型的实现需要借助Oracle Container Database(CDB)和Pluggable Database(PDB)的概念和特性。CDB是一个包含多个PDB的容器数据库,每个PDB都是一个独立的数据库实例,但是共享CDB的系统资源和Oracle实例。每个PDB都可以被视为一个租户的私有数据库,它可以被单独管理和配置,而且数据之间是完全隔离的。在多租户数据库模型中,CDB可以被看作是多租户数据库的容器,PDB可以被看作是多租户数据库的租户。

七、Oracle数据库类型

Oracle数据库支持多种数据类型,包括:

  1. 数字类型(Number):用于存储数字数据,包括整数、小数等。

  2. 字符类型(Char、Varchar2、Nchar、Nvarchar2):用于存储字符数据,包括单字节字符和多字节字符。

  3. 日期类型(Date、Timestamp):用于存储日期和时间数据。

  4. 布尔类型(Boolean):用于存储逻辑值(True或False)。

  5. 二进制类型(Raw、Long Raw、Blob、Bfile):用于存储二进制数据,包括图像、音频、视频等。

  6. 大对象类型(Clob、Bfile):用于存储超大字符数据或二进制数据。

  7. 几何类型(SDO_GEOMETRY):用于存储空间数据,包括点、线、面等。

  8. XML类型(XmlType):用于存储XML文档数据。

除了以上基本的数据类型,Oracle数据库还支持自定义数据类型,可以使用用户定义类型(User-defined types)来创建自定义数据类型。

八、Oracle数据库创建表和插入数据

创建表:

  • 创建了一个名为employees的表,包含id、name、department和salary四个字段,其中id是主键
CREATE TABLE employees (
  id NUMBER(10) PRIMARY KEY,
  name VARCHAR2(50),
  department VARCHAR2(50),
  salary NUMBER(10, 2)
);

插入数据:

  • 使用INSERT INTO语句向employees表插入了三条数据,分别对应三个员工的信息
NSERT INTO employees (id, name, department, salary)
VALUES (1, 'John Doe', 'Finance', 5000.00);

INSERT INTO employees (id, name, department, salary)
VALUES (2, 'Jane Doe', 'Sales', 6000.00);

INSERT INTO employees (id, name, department, salary)
VALUES (3, 'Bob Smith', 'Marketing', 5500.00);

查询数据:

SELECT * FROM employees

在这里插入图片描述

九、查询当前所在的数据库

SELECT ora_database_name FROM dual;
ORA12C

十、查询当前数据库所有的表

该命令将返回当前用户所拥有的所有表的表名。

SELECT table_name FROM user_tables;
TB
T
TCHAR
TNUM

在这里插入图片描述
如果想查询其他用户下的表,可以使用以下命令:
<owner_name>为要查询的用户的名称。

SELECT table_name FROM all_tables WHERE owner='<owner_name>';

如果想查询数据库中所有的表,不论是哪个用户创建的,可以使用以下命令:

SELECT table_name FROM dba_tables;

需要注意的是,使用dba_tables需要具备DBA权限。如果没有DBA权限,可以使用all_tables查询当前用户所拥有的所有表,或者使用user_tables查询当前用户自己创建的表。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/678320.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

实训四:索引与视图 - MySQL开发技巧 - 索引

MySQL开发技巧 - 索引 任务描述相关知识索引是什么索引的分类索引的创建和删除查询表中索引 编程要求测试说明代码参考&#xff1a; 任务描述 本关任务&#xff1a;按照要求完成索引的创建。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a; 索引是什么&#…

【Leetcode60天带刷】day31回溯算法——455.分发饼干 ,376. 摆动序列 , 53. 最大子序和

​ 题目&#xff1a; 455. 分发饼干 假设你是一位很棒的家长&#xff0c;想要给你的孩子们一些小饼干。但是&#xff0c;每个孩子最多只能给一块饼干。 对每个孩子 i&#xff0c;都有一个胃口值 g[i]&#xff0c;这是能让孩子们满足胃口的饼干的最小尺寸&#xff1b;并且每块…

Android 13(T) - binder阅读(3)- binder相关的类

原先准备在binder阅读&#xff08;3&#xff09;中记录ServiceManager的使用&#xff0c;但是写着写着发现&#xff0c;如果不了解和binder相关的类&#xff0c;那么阅读起来将会由很多困惑&#xff0c;所以就先来记录binder相关的类了。记录完发现特别凌乱…先就这样吧。 1 UM…

【致敬未来的攻城狮计划】打卡3:点亮LED

点亮LED 本文主要参考文章&#xff1a;【致敬未来的攻城狮计划】— 连续打卡第十一天&#xff1a;FSP固件库开发点亮第一个灯。_嵌入式up的博客-CSDN博客 在32阶段我们已经接触过类似做法了。初始化引脚模式&#xff08;可以手动库函数&#xff0c;或者在工具包图形化界面里配…

实训四:索引与视图 - MySQL开发技巧 - 视图

MySQL开发技巧 - 视图 任务描述相关知识视图的定义创建视图操作视图删除视图 编程要求测试说明参考代码 任务描述 本关任务&#xff1a;通过学习视图&#xff0c;创建一个单表视图和一个多表视图。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a; 视图的定义…

工地扬尘智能监测系统 yolov7

工地扬尘智能监测系统通过yolov7网络算法模型技术&#xff0c;实时监测工地施工中的扬尘情况。工地扬尘智能监测系统利用AI视频智能分析技术&#xff0c;并将数据传输到数据中心进行分析。YOLOv7 的发展方向与当前主流的实时目标检测器不同&#xff0c;研究团队希望它能够同时支…

数据库管理-第八十四期 X10M来了(20230624)

数据库管理 2023-06-24 第八十四期 X10M来了1 Intel -> AMD2 PMEM -> XRMEM3 DDR4 -> DDR54 Flash cards总结 第八十四期 X10M来了 在第四十三期的时候&#xff0c;我曾经憧憬过Exadata X10M的到来&#xff0c;Oracle于6月22日正式公布Exadata X10M系列。其实5月已经…

chatgpt赋能python:Python在电气行业中的应用——从数据分析到自动化控制

Python在电气行业中的应用——从数据分析到自动化控制 介绍 Python语言作为一种高级编程语言&#xff0c;越来越受到电气行业的关注。随着互联网、物联网以及大数据时代的到来&#xff0c;电气行业需要将传统的工业控制与现代化的数据分析、智能决策等技术相结合&#xff0c;…

Java——《面试题——Dobbo篇》

前文 java——《面试题——基础篇》 Java——《面试题——JVM篇》 Java——《面试题——多线程&并发篇》 Java——《面试题——Spring篇》 Java——《面试题——SpringBoot篇》 Java——《面试题——MySQL篇》​​​​​​ Java——《面试题——SpringCloud》 目录…

springboot+mybatis笔记学习

1.环境搭建 1.引入pom依赖 <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.2</version> </dependency> <dependency><groupId>org…

人工智能(2):机器学习算法分类

根据数据集组成不同&#xff0c;可以把机器学习算法分为&#xff1a; 监督学习无监督学习半监督学习强化学习 1 监督学习 定义&#xff1a; 输入数据是由输入特征值和目标值所组成。 函数的输出可以是一个连续的值(称为回归&#xff09;&#xff0c;或是输出是有限个离散值&…

07- c语言字符串 (C语言)

一 字符串的定义及基本使用 1、什么是字符串 被双引号引用的字符集合&#xff01;例如&#xff1a;”hello” 、”world”&#xff0c;或者是以 \0 结尾的字符数组&#xff01;&#xff01;&#xff01; 比如&#xff1a;char ch[] {h, e, \0} 注意&#xff1a;”hello” 中…

Win10同时安装MYSQL5.7和MYSQL8.0版本

一、准备好两个MySQL版本的压缩包 官网下载网址&#xff1a;https://dev.mysql.com/downloads/ 二、安装 MYSQL5.7 2.1、解压文件夹&#xff0c;然后新建一个 my.ini文件 my.ini文件内容: [mysql] # 设置mysql客户端默认字符集 default-character-setutf8 port 3305 [mysq…

leetcode1.两数之和

个人主页&#xff1a;平行线也会相交 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 平行线也会相交 原创 收录于专栏【LeetCode】 &#x1f353;希望我们一起努力、成长&#xff0c;共同进步。 题目链接 给定一个整数数组 nums 和一个整数目标值 target&am…

FPGA-DFPGL22学习1-上手开发板

文章目录 前言一、FPGA是什么&#xff1f;二、FPGA内部结构1) 可编程输入/输出单元2) 基本可编程逻辑单元3) 嵌入式块 RAM4) 丰富的布线资源5) 底层嵌入功能单元 Logos 系列芯片 前言 和原子哥一起学习FPGA 开发环境&#xff1a;正点原子 ATK-DFPGL22G 开发板 参考书籍&…

mysql没有data和my.ini文件怎么办?

目录 一、前言 二、其他知识 一、前言 data是存储mysql数据的地方&#xff0c;ini是mysql配置文件的地方&#xff0c;要配置文件就可以在ini里面配置就好了。在mysql的安装位置没有发现这两个文件&#xff0c;不是没有&#xff0c;而是在其他地方。&#x1f447; 其实这两个…

【CSS】`top: 50%;` 和 `transform: translateY(-50%);`的区别和联系

top: 50%; 和 transform: translateY(-50%);的区别 在某些情况下&#xff0c;top: 50%; 和 transform: translateY(-50%); 可以达到类似的效果&#xff0c;但它们实际上具有不同的工作原理和应用场景。 top: 50%;&#xff1a;这是一个相对定位属性&#xff0c;用于设置元素相对…

P6739 [BalticOI 2014 Day1] Three Friends

[BalticOI 2014 Day1] Three Friends 题目描述 有一个字符串 S S S&#xff0c;对他进行操作&#xff1a; 将 S S S 复制为两份&#xff0c;存在字符串 T T T 中在 T T T 的某一位置上插入一个字符&#xff0c;得到字符串 U U U 现在给定 U U U&#xff0c;求 S S S…

【吴恩达老师《机器学习》】课后习题4之【神经网络反向传播】(代码注释详细)

前情回顾 上一周是已经给定了神经网络的最优权重参数&#xff0c;接着直接代到前向传播里面去&#xff0c;算得最终的预测值就可以了。 这周呢&#xff0c;需要搭建整个完整的神经网络&#xff0c;并且需要自己去进行训练&#xff0c;找到最终的这个优化的权重参数。 可能需要…

WVP PRO配置实战

WEB VIDEO PLATFORM是一个基于GB28181-2016标准实现的开箱即用的网络视频平台&#xff0c;负责实现核心信令与设备管理后台部分&#xff0c;支持NAT穿透&#xff0c;支持海康、大华、宇视等品牌的IPC、NVR接入。支持国标级联&#xff0c;支持将不带国标功能的摄像机/直播流/直播…