一、 Oracle 关系数据库
关系模型是关系数据库的基础,它利用关系来描述显示世界。以用户的观点来看,一个关系就是一张二维表。
关系数据模型是由关系数据结构、关系操作和关系的完整性约束三部分组成。
1、数据结构
关系数据模型是由若干个关系模式组成的集合,关系模式的实例为关系,每个关系可以看成由行或列交叉组成的二维表格,表中的一行称为一个元组,可以用来标识实体集中的一个实体。
表中的列称为属性,列名即属性名,表中的属性名不能相同。列的取值范围称为域。同列具有相同的域。
关系数据结构具有以下性质:
属性值具有原子性,不可分解。
没有重复的元组。
理论上没有行序,但是使用时可以有行序。
2、数据库设计
2、1 范式理论
范式理论是设计数据库需要遵循的规则,主要用于消除数据库表中的冗余数据,改进数据库整体组织,
增强数据的一致性,增加数据库设计的灵活性。
目前常用的理论:第一范式、第二范式、第三范式。
1、第一范式
主要特点是:实体的属性不能再分,映射到表就是标的列不能再分。
2、第二范式
要求数据库中的表的每一列都与主键相关。
3、第三范式
要求数据库表中的 每一列数据都与主键直接相关,而不是直接相关。
二、Oracle数据库体系结构
Oracle数据库的体系结构是指Oracle数据库服务的主要组成以及这些组成部分之间的联系和操作方式。
本章节主要介绍数据库提携结构中的物理存储结构、逻辑存储结构、内存结构以及进程结构。对数据字典进行详解。
2、1 物理存储结构
物理存储结构是由存储在磁盘中的操作系统文件组成的,数据库物理存储结构主要包括三类物理文件:
数据文件、控制文件和重要日志文件。
2、1、1 数据文件
数据文件(Data File)是在物理上保存数据库中数据的操作系统文件。一个表空间在物理上可以对应一个
或多个数据文件,而一个数据文件只能属于一个表空间。
2、1、2 控制文件
控制文件(Control File)是一个很小的二进制文件,主要用于描述和维护数据库的物理结构。
在Oracle数据库中,控制文件主要存储数据库中数据文件和日志文件的信息。
2、1、3 日志文件
日志文件主要用于记录数据库中所有修改信息的的文件。通过使用日志文件,不仅可以保证数据安全,
还可以实现数据库备份和恢复。
2、2 逻辑存储结构
Oracle数据库从逻辑存储结构上来讲,主要包括表空间、段、区和数据块。其中,表空间由多个段组成。
段由多个区组成,区由多个数据块组成。其逻辑存储单元从小到大依次为:数据块、区、段和表空间。
2、2、1 表空间
表空间是Oracle 中最大的逻辑存储结构 ,它与物理上的数据文件相对应,每个Oracle数据库都至少有一个表空间,
每个表空间均可对应多个数据文件,表空间的大小等于构成该表空间的所有数据文件大小的总和。
2、3 Oracle内存结构
按照系统对内存的使用方法的不同,Oracle数据库的内存可以分为:系统全局(SGA)、程序全局区(PGA)、
排序区(SORT AREA)、大型池(LARGE POOL)、Java池(JAVA POOL)。
2、3、1 系统全局区(SGA)
系统全局区(SGA)是由一组内存结构组成,它是所有用户进程共享的一块内存区域,可以包含一个数据库实例
的数据或控制信息。
在系统全局区(SGA)中,按照不同的作用分为:数据缓冲区、日志缓冲区和共享池。
数据缓冲区用于存放最近访问的数据库信息。
日志缓冲区用于存储数据库的修改操作信息。
共享池用于保存最近执行的SQL语句、PL/SQL程序的数据字典信息,它是对SQL语句、PL/SQL程序进行语法分析、
编译和执行的内存区域。
2、3、2 程序全局区(PGA)
程序全局区是Oracle系统分配给一个进程的私有内存区域,包含单个用户多服务器数据和控制信息。
2、3、3 排序区
排序区是Oracle系统为排序操作所产生的临时数据提供的内存空间。
2、3、4 大型池
大型池是系统全局区中可选的一个内存结构,用于提供一个大的缓冲区供数据库的备份和恢复操作使用。
2、3、5 Java 池
Java池用于在数据库中支持Java的运行。
2、4 数据字典
数据字典是Oracle自动创建并更新的一组表,主要用来存储数据的详细信息。提供了数据库结构、数据库对象
空间分配和数据库用户等有关信息。
数据字典的所有者为SYS用户,而数据字典表和数据字典视图都被保存在SYSTEM表空间中。
Oracle数据字典是存储在数据库中的所有对象信息的知识库,保存了数据库中的对象和段的信息,
如表、视图、索引、包、存储过程以及用户、权限、角色、审计和约束等相关信息。