Oracle初识
ORACLE 数据库系统是美国 ORACLE 公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLENT/SERVER)或B/S 体系结构的数据库之一。
ORACLE 通常应用于大型系统的数据库产品,
ORACLE 数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。
分布式:如果 把一个应用程架在一个服务器上,服务器的负担会很重。分布式就是把程序进行拆解,拆解成很多功能模块,每个功能模块布置在不同的服务器上。运算压力会大大减小
1.ORACLE 数据库具有以下特点:
(1)支持多用户、大事务量的事务处理
(2)数据安全性和完整性控制
(3)支持分布式数据处理
(4)可移植性(不同版本的操作系统都可以安装Oracle,他们之间数据格式是通用的,跨平台)
(5)金融行业应用广泛
2.Oracle和MySQL的对比
对比维度 | Oracle | MySQL |
---|---|---|
类型 / 授权 | 商业数据库(收费),按 CPU / 用户数授权 | 开源数据库(社区版免费,企业版收费) |
定位 | 企业级核心业务(金融、电信等) | 中小型业务、互联网应用、开源项目 |
事务支持 | 强事务(ACID),默认支持 | InnoDB 引擎支持事务,MyISAM 不支持 |
并发与锁机制 | 内置线程池,行级锁优化,高并发稳定性强 | InnoDB 行级锁,MyISAM 表级锁,需手动配置 |
存储过程 / 函数 | PL/SQL 功能强大,支持复杂逻辑 | 支持存储过程,但语法较简单 |
高可用性 | 内置 Data Guard、RAC 集群 | 依赖第三方工具(如 MHA、Galera Cluster) |
安全特性 | 细粒度权限、审计、透明数据加密(TDE) | 基础权限完善,企业版支持审计和 TDE |
大数据支持 | 原生分区表、并行查询、OLAP 优化 | 需通过集群或中间件(如 Sharding-JDBC)扩展 |
开发生态 | 适配 Java/C++,商业工具(PL/SQL Developer) | 适配 Python/PHP,开源工具(phpMyAdmin) |
成本 | 授权费用高,需专业 DBA 维护 | 社区版免费,企业版成本低,维护门槛较低 |
典型场景 | 银行交易系统、数据仓库、高合规性业务 | 电商平台、CMS、微服务架构、非核心业务系统 |
ORACLE 体系结构
1.数据库
Oracle 数据库是数据的物理存储。这就包括(数据文件 ORA 或者 DBF、控制文件、联机日志、参数文件)。其实 Oracle 数据库的概念和其它数据库不一样,这里的数据库是公个操作系统只有一个库。可以看作是 Oracle 就只有一个大数据库。
2.实例
一个Oracle实例( Oracle Instance )有一系列的后台进程( Backguound Processes)和内存结构(Mcmory Structurcs)组成。一个数据库可以有n个实例。
3.数据文件(dbf)
数据文件是数据库的物理存储单位。数据库的数据是存储在表空间中的,真正是在某一个或者多个数据文件中。而一个表空间可以由一个或多个数据文件组成 ,一个数据文件只能属于一个表空间。一旦数据文件被加入到某个表空间后就不能删除这个文件,如果要删除某个数据文件,只能删除其所属于的表空间才行。
4.表空间【相当于一个或多个逻辑文件的名称】
表空间是 Oracle 对物理数据库上相关数据文件(ORA或者DBF文件)的逻辑映射。一个数据库在逻辑上被划分成一到若干个表空间,每个表空间包含了在逻辑上相关联的一组结构,每个数据库至少有一个表空间(称之为system 表空间)
每个表空间由同一磁盘上的一个或多个文件组成,这些文件叫数据文件(datafile)。一个数据文件只能属于一个表空间。
数据库 --> 表空间 --> 段--> 区-->数据块-->磁盘块
由于 oracle 的数据库不是普通的概念,oracle 是有用户和表空间对数据进行管理和存放的。但是表不是有表空间去查询的,而是由用户去查的。因为不同用户可以在同一个表空间建立同一个名字的表!这里区分就是用户了!
用户(一个数据库下有好几个用户)
用户是在表空间下建立的。用户登陆后只能看到和操作自己的表,ORACLE的用户与 MYSQL的数据库类似!每建立一个应用需要创建一个用户。
总结:oracle的强大可以归功于表空间的设计。只有oracle才有表空间,它有利于对数据的管理。
表空间是一个逻辑单位,他关联很多物理单位,这些物理的数据可以分布在不同服务器上。可以减轻磁盘的压力。咱们只需要记住表空间即可。