Oracle数据库

1.数据库简介

1.1 什么是数据库

     简单的说,数据库(database)就是一个存放数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织、存储的,我们可以通过数据提供的多种方法来管理数据库里的数据。

当人们收集了大量的数据后,应该把它们保存起来进入近一步的处理,进一步的抽取有用的信息。当年人们把数据存放在文件柜中,可现在随着社会的发展,数据量急剧增长,现在人们就借助计算机和数据库技术科学的保存大量的数据,以便能更好的利用这些数据资源。   

1.2 数据库的分类

     数据库通常分为层次式数据库,网络式数据库和关系式数据库三种,但是现在主流的是关系型数据库。关系型数据库是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。对数据的操作几乎全部建立在一个或多个关系表格上,通过对这些关联的表格分类、合并、连接或选取等运算来实现数据库的管理。

    关系型数据库诞生40多年了,从理论产生发展到现实产品,例如:Oracle和MySQL,Oracle在数据库领域上升到霸主地位,形成每年高达数百亿美元的庞大产业市场

1.3 常用的关系型数据库

1.3.1 Oracle数据库

    ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。比如SilverStream就是基于数据库的一种中间件。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。

Oracle数据库最新版本为Oracle Database 12c。Oracle数据库12c 引入了一个新的多承租方架构,使用该架构可轻松部署和管理数据库云。此外,一些创新特性可最大限度地提高资源使用率和灵活性,如Oracle Multitenant可快速整合多个数据库,而Automatic Data Optimization和Heat Map能以更高的密度压缩数据和对数据分层。这些独一无二的技术进步再加上在可用性、安全性和大数据支持方面的主要增强,使得Oracle数据库12c 成为私有云和公有云部署的理想平台。

1.3.2 MySQL数据库

MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。

由于MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。

1.3.3 SQL Server数据库

SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。Microsoft SQL Server近年来不断更新版本,1996年,Microsoft 推出了SQL Server 6.5版本;1998年,SQL Server 7.0版本和用户见面;SQL Server 2000是Microsoft公司于2000年推出,目前最新版本是2012年3月份推出的SQL SERVER 2012。

1.4 Oracle数据库的基本概念

1.4.1 Oracle服务器

   Oracle服务器是一个数据管理系统(RDBMS),它提供开放的,全面的,近乎完整的信息管理。是由Oracle数据库和Oracle实例组成。

1.4.2 Oracle数据库和Oracle实例

Oracle数据库:就是位于硬盘上实际存放数据的文件(控制文件,数据文件,日志文件等等),Oracle数据库必须要与内存里的实例合作,才能对外提供数据管理服务。

Oracle实例:位于内存里的数据结构。它由一个共享的内存池和多个后台进程组成,共享的内存池可以被所有的进程访问。用户如果要存取数据库(也就是硬盘上的文件)里的数据,必须通过实例才能实现,不能直接读取硬盘上的文件。

 区别:实例可以操作数据库;在任何时刻一个实例只能与一个数据库关联;大多数情况下,一个数据库只有一个实例对其进行操作。

1.4.3 Oracle数据库的体系结构

Oracle数据库_第1张图片用户进程可以是一般的客户端软件,像Oracle的sqlplus,sql developer,或者是一些驱动程序(比如我们后面需要学习的JDBC)等都属于用户进程。

服务器进程有时也会称为前台进程,当然这是相对于后台进程(比如DBWR:数据库读写器,LGWR:日志写入器等)来说的,服务器进程的主要作用就是处理连接到当前实例的用户进程的请求,对客户端发来的sql进行执行并返回执行结果。

数据缓冲区:是Oracle用来执行sql的工作区域,在更新数据时,用户会话不会直接去更新磁盘上的数据,而是把数据缓存到数据缓冲区,等到用户提交事务,数据才会通过DBWR(数据读写器)写入到硬盘的数据文件中。

日志缓冲区:是一块比较小的内存区域,它是用来短期存储将要写入到磁盘中的重做日志文件的。日志缓冲区存在的意义依然是为了减小磁盘IO,减少用户的等待时间。

共享池:是最复杂的SGA结构,它有许多的子结构:

  • 库缓存:库缓存这块内存区域会按已分析的格式缓存最近执行的代码,这样,同样的sql代码执行多次,就不用重复去进行代码分析,可以很大程度上提高系统性能。
  • 数据字典缓存:存储oracle中对象定义(表,视图,同义词,索引等数据库对象),这样在分析sql代码时,就不用频繁的去磁盘读取数据字典中的数据了。
  • PL/SQL区:缓存存储过程,函数,触发器等数据库对象

数据库文件: 从物理上划分,数据库文件有三种:

  • ctl后缀文件: 控制文件,用来存放登录信息
  • dbf后缀文件:数据库文件,用来存放数据
  • log后缀文件:日志文件,用来记录日志

以上就是简单为大家分享第一章Oracle数据库的简介与学习,后续有读者要连续的话可以点个关注。

你可能感兴趣的:(Oracle,数据库,oracle)