一、数据库基本概念
1.数据库与数据库管理系统
(1)数据库
数据库(DB)是存放数据的仓库,存放的这些数据存在一定的关联,并按照一定的格式存放在计算机上。广义上讲,数据不仅包括数字,还包括文本、图像、音频和视频等。
(2)数据库管理系统
数据库管理系统(DBMS)是管理数据库的系统,它按照一定的数据模型组织数据。
DBMS功能如下:
- 数据定义功能:可以定义数据库中的数据对象。
- 数据操纵功能:可以对数据库表进行基本操纵,如插入、删除、修改、查询等。
- 数据的完整性检查功能:保证用户输入的数据应满足相应的约束条件。
- 数据库的安全性保护功能:保证只有赋予权限的用户才能访问数据中的数据。
- 数据库系统的故障恢复功能:数据运行出现故障时,系统进行数据恢复,以保证数据库的可靠运行。
- 数据库的并发控制功能:使多个应用程序可以在同一时刻并发地访问数据库的数据。
- 在网络环境下访问数据库的功能。
- 提供方便、有效的存取数据库信息的接口和工具。
数据、数据库、数据库管理系统与操作数据库的应用程序,加上支撑它们的应将平台、软件平台与数据库有关的人员一起构成了一个完成数据库系统。如图1.1。
2.关系数模型
(1)数据模型
数据库管理系统根据数据模型对数据进行存储和管理,采用的数据模型主要有:层次模型、网状模型和关系模型。
- 层次模型:以树形层次结构组织数据。图1.2为某学校按层次模型组织的数据示例。
- 网状模型:每一个数据用一个节点表示,每个节点与其他节点都有关系,这样,数据库中的所有节点就构成了一个复杂的网络。图1.3为网状模型组织的数据示例。
- 关系模型:以二维表(关系表)的形势组织数据库中的数据。从用户观点看,关系模型由一组关系组成,每个关系的数据结构是一个规范的二维表。所以一个关系数据库就是由若干个表组成。
例如,在描述学生信息时使用的是‘学生表’,涉及信息主要有:学号、姓名、性别、出生日期、专业、总学分、备注。表1.1描述了一些学生的信息。
表格中的一行称为一个记录,代表一个物理实体;一列称为一个字段或属性,每列的标题称为字段名或属性名。如果给每个关系表取一个名字,则有n个字段的关系结构可表示为:关系表名(字段1,...,字段n)。通常把关系表的结构称为关系模型。
在关系表中,如果一个字段或几个字段组合的值可唯一标记其对应记录,则称该字段或字段组合为主键。例如,表1.1中学生的‘学号’可唯一标识一个学生,则‘学号’为‘学生’表的主键。在关系模式中,一般用横线标出主键。
设表1.1的名字为XSB,关系模式可表示为:XSB(,姓名,性别,出生日期,专业,总学分,备注)。
(2)关系术语
- 关系(Relation):一个关系对应通常说的一张表,如表1.1.
- 元组(Tuple):表中的一行即为一个元组或一个记录。
- 属性(Attribute):表中的一列即为一个属性,给每一个属性起的一个名字即为属性名。
- 域(Domain):属性的取值范围称为该属性的域。如性别的域是(男,女)。
- 关键字或码(Key):也称为码键。表中的某个属性组,它可以唯一确定一个元组,如表1.1中的‘学号’可以唯一确定一名学生,也就称为本关系的主关键字(关系数据库中通常称为主码或主键)。
- 分量(Component):元组中的某一属性的属性值。
- 关系模式(Relation Schema):对关系的描述,一般表示为:关系名(属性1,属性2,...,属性n)。
(3)关系数据模型特点
- 关系必须规范化:关系模型中的每一个关系模式都必须满足一定的要求。
- 模型概念单一:无论实体还是实体之间的联系都用关系表示。对数据检索和更新的结果也是关系(即表)。所以其数据结构简单、清晰、易于理解和使用。
- 集合操作:在关系数据模型中,操作的对象和结果都是元的集合,即关系。
- 存取路径对用户透明:具有更高的数据独立性、更好的安全保密性,简化了程序员的工作和数据库开发、建立的工作。
可知,关系模型组织的数据表达方式简洁直观,插入、删除、修改等操作方便,而按照层次、网状模型足赤的数据表达方式复杂,插入、删除、修改等操作复杂。因此,关系模型得到了广泛的应用,关系型数据库管理系统成为了主流。Oracle数据库正是支持关系数据库模型的数据库管理系统。
关系模型有点虽然图突出,但是也有缺点。由于存取路径对用户透明,查询效率不如非关系型数据模型。因此为了提高性能,必须对用户的查询请求进行优化,这增加了开发数据库管理系统的难度。