数据库系统概述
数据库的基础概念
- 数据:数据库中存储的基本对象,描述事物的符号记录,有多样的表现形式。注意:数据与语义是不可分的。
- 数据库(DataBase,DB):DB是长期存储在计算机内,有组织的,可共享的大量数据的集合。
- 数据库管理系统(DataBase Management System,DBMS):DBMS是一个位于用户与操作系统之间的一层系统软件,用于组织与存储,管理和维护数据。
- 数据库系统(DataBase System,DBS):DBS由DB,DBMS,DBA,应用程序等构成的存储,管理,处理和维护数据的系统。
数据管理技术的发展
\quad
数据管理是指对数据进行分类、组织、编码、存储、检索和维护,是数据处理的中心问题。
\quad
数据管理技术发展过程:
- 人工管理阶段
- 文件系统阶段
- 数据库系统阶段
-
\quad 数据管理技术的发展动力:应用需求的推动,计算机软硬件的发展。
DBS的结构
\quad
从数据库应用开发人员角度看,DBS通常采用三级模式结构,指DBS是由外模式、模式和内模式三级结构构成。
模式,也称为逻辑模式,是数据库全体数据的逻辑结构和特征的描述。注意:一个DB只有一个逻辑模式,且逻辑模式以某种数据模型为基础。
外模式,也称子模式或用户模式,通常是模式的子集,是数据库用户能够看到和使用的局部数据的逻辑结构和特征的描述,一个DB可以有多个外模式。
内模式,也称存储模式,是数据物理结构和存储方式的描述,是数据在DB内部的组织方式,一个DB只有一个内模式。
DB的两级映像和数据独立性
\quad
在DB的三级模式的结构中,模式是DB的中心和关键,内模式依赖于模式,但是独立于用户视图,而外模式面向具体的程序,定义在模式之上,但是独立于存储方式和存储设备。DBMS在这三级模式之间提供两层映像:外模式/模式映像,模式/内模式映像。也正是这两层映像保证了DBS能够具有较高的逻辑独立性和物理独立性。
\quad
对应于同一模式,可以有任意多个外模式,对于每一个外模式都有一个外模式/模式映像,它定义了该模式与模式之间的对应关系。当模式改变时,外模式/内模式映像做相应的改变,可以使外模式保持不变。应用程序时依赖外模式编写的,从而应用程序不需要修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
\quad
DB只有一个模式,也只有一个内模式,所以模式/内模式映像是唯一的,它定义了数据的逻辑结构与存储结构的对应关系。当DB的存储结构改变时,模式/内模式做相应的改变,可以使模式保持不变,从而应用程序也不改变,保证了数据与程序的物理独立性,简称数据的物理独立性。
数据模型
\quad
数据模型是对现实世界数据特征的抽象。数据模型是DBS的核心和基础。
\quad
数据模型可分成两大类(两个不同层次):概念模型;逻辑模型和物理模型。
- 概念模型(信息模型)是按照用户的观点对数据和信息建模,主要用于数据库设计。
- 逻辑模型主要包括网状模型、层次模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型等。按计算机系统的观点对数据建模,用于DBMS实现。
- 物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方式,是面向计算机系统的。
概念模型
1.信息世界中的基本概念
- 实体:客观存在并且可相互区别的事物,eg 学生,班级,课程。
- 属性:实体所具有的某一特性。一个实体可以由若干属性构成。例如 学生实体可以由学号,姓名,性别,出生年月,班级等属性组成。
- 码:唯一表示实体的属性集称为码
- 实体型:即实体类型,用实体名及其属性名集合来抽象和刻画同类实体
- 实体集:同一类型实体的集合称为实体集
- 联系: 实 体 内 部 ‾ \underline{实体内部} 实体内部以及 实 体 之 间 ‾ \underline{实体之间} 实体之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系,实体之间的联系通常是指不同实体集之间的联系。
2.E-R方法(E-R模型)
\quad
概念模型是对信息世界的建模,能够方便准确地表示出上述信息世界的常用概念。
\quad
概念模型的表示方法有很多,最为常用的是实体-联系方法(Entity-Relationship Approach),该方法用E-R图来描述概念模型。其通用的表示方式如下:
- 实体:用矩形框表示,将实体名写在框内
- 属性:用椭圆框表示,将属性名写在框内,用连线将实体和属性连接
- 联系:用菱形框表示,将联系名写在框内,用连线将相关的实体连接,并在连线旁标注联系类型(一对一:“1:1”,一对多:“1:n”,多对多:“m:n”)
1)单个实体型内的联系
2)两个实体型之间的联系
3)两个以上实体型之间的联系
逻辑模型
\quad (逻辑)数据模型的组成三要素:数据结构,数据操作,数据的完整性约束条件。
- 数据结构:描述数据库的组成对象以及对象间的联系。
- 数据操作:对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。
主要的操作有查询和更新(插入,删除,修改)两大类,(即增删改查CRUD,增加(Create)、检索(Retrieve)、更新(Update)和删除(Delete) )。 - 数据的完整性约束:一组完整性规则(给定的数据模型中数据及其联系所具有的制约和依存规则),用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。
常用的数据模型:
关系模型
\quad
使用表格表示实体和实体之间关系的数据模型称为关系数据模型。
\quad
关系型数据库是目前最流行的数据库,同时也是被普遍使用的数据库,如MySQL就是一种流行的数据库。支持关系数据模型的数据库管理系统称为关系型数据库管理系统。
关系模型相关术语:
- 关系:一个关系对应通常说的一张表。
关系有三种类型:基本关系(通常又称为基本表/基表)、查询表和视图表,其中基本表是实际存在的表,是实际存储数据的逻辑表示;查询表是查询结果对应的表,视图表是由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。 - 元组:表中的一行即为一个元组,关系可以看作有意义的元组构成的集合。
- 属性/字段:表中的一列即为一个属性,给每一个属性起一个名称即属性名。
- 域:是一组具有相同数据类型的值的集合。属性的取值范围来自某个域。关系可以看作一组域的笛卡尔积或其笛卡尔积的子集。
- 候选码:唯一标识一个元组的属性或属性组。
- 主码/键:一个关系可以有一个/多个候选码,确定其中一个为主码。
- 主属性:存在于任一候选码中的属性。
- 全码:当候选码中包括所有属性,则称该候选码为全码。
- 外键:关系R中的非主码属性为另一关系的主码,则称该属性为R的外键。
- 关系模式:对关系的描述,关系名(属性1,属性2,…,属性n)。其中主键加上下划线。
关系模型的数据结构:关系必须是规范化的,满足一定的规范条件
关系模型的完整性约束:包括实体完整性约束,参照完整性约束,用户自定义约束。
- 实体完整性:要求关系中的主键不能重复且不能取空值。空值指的是不知道、不存在或无意义的值。
- 参照完整性:要求关系中的外键要么取空值,要么取被参照关系中的某个元组的主键值。
- 用户自定义完整性:是用户针对具体的应用环境定义的完整性约束条件。
数据库设计
\quad
数据库设计是指对应一个给定的应用环境,构造优化的数据逻辑模式和物理结构,并据此建立数据库及其应用环境,使之能够有效地存储和管理数据,满足各种用户的应用需求。
\quad
按照结构化系统设计的方法,考虑数据库及应用系统开发全过程,将数据库设计分为以下6个阶段:
- 需求分析
- 概念设计
- 逻辑结构设计
- 物理结构设计
- 数据库实施
- 数据库运行与维护
关系数据库设计
- 分析需求,概念设计,画E-R图
——需求分析
准确了解与分析用户需求(包括数据与处理)
——概念设计
\quad
将需求分析得到的用户需求抽象为概念模型的过程称为概念设计,主要采用E-R方法绘制E-R图.
——逻辑设计
\quad
将概念模型转换为某个关系型DBMS所支持的逻辑数据模型,并对其进行优化。详细介绍E-R图转换为关系模型。
1)E-R图向关系模型的转换
\quad
概念模型转换为关系模型,转换内容:由于E-R图由实体型、实体的属性和实体型之间的联系三个要素组成,关系模型的逻辑结构是一组关系模式的集合。故将E-R图转换为关系模型要做的就是将实体型、实体的属性和实体型之间的联系转化为关系模式。
转换原则:
1.一个实体型转换为一个关系模式
实体的属性→关系的属性,实体的码→关系的码
2.实体型间的联系的转换
(1) 一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
① 转换为一个独立的关系模式
关系的属性:与该联系相连的各实体的码以及联系本身的属性
关系的码:任一实体的码
②与某一端实体对应的关系模式合并
合并后关系的属性:加入对应关系的码和联系本身的属性
合并后关系的码:不变
(2)一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
①转换为一个独立的关系模式
关系的属性:与该联系相连的各实体的码以及联系本身的属性
关系的码:n端实体的码
②与n端对应的关系模式合并
合并后关系的属性:在n端关系中加入1端关系的码和联系本身的属性
合并后关系的码:不变
注:可以减少系统中的关系个数,一般情况下更倾向于采用这种方法
(3)一个m:n联系转换为一个关系模式
关系的属性:与该联系相连的各实体的码以及联系本身的属性
关系的码:各实体码的组合
(4)三个或三个以上实体间的一个多元联系转换为一个关系模式。
关系的属性:与该多元联系相连的各实体的码以及联系本身的属性
关系的码:各实体码的组合
(5)具有相同码的关系模式可合并
目的:减少系统中的关系个数
合并方法:将其中一个关系模式的全部属性加入到另一个关系模式中,然后去掉其中的同义属性(可能同名也可能不同名),适当调整属性的次序。
2)确定字段数据类型,定义约束条件
\quad
完整性约束
3)数据模型的优化
\quad
关系型数据库的优化通常以规范化理论为指导。 规范化是通过最小化数据冗余来提升数据库设计质量的过程,规范化是基于函数依赖以及一系列范式定义的,最为常用的是第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。
函数依赖
\quad
函数依赖表示根据一个属性/属性集X 的值可以找到另一个属性/属性集Y的值,说明X决定了Y,Y函数依赖于X,记为X→Y。
注意:
-
平凡函数依赖于非平凡函数依赖
-
完全函数依赖与部分函数依赖
-
传递函数依赖
码
注意 :所谓码就是能唯一标识实体的属性,他是整个实体集的性质,而不是单个实体的性质。它包括超码,候选码,主码,有时指的是其中某个,视情况而定 。
即包含全部属性的候选码是全码
范式
范式是符合某一种级别的关系模式的集合
- 1NF:指数据库的每一个字段都是不可再分割的基本数据项,1NF遵从原子性,属性不可再分。
- 2NF:要求每个非主属性完全依赖任何一个候选码,不是部分依赖(针对复合主键而言)
- 3NF:要求每个字段和主键直接相关,而不是间接相关,即非主键字段之间不能相互依赖。
注意: 满足第三范式则一定满足一二范式,高一级范式是在低一级范式的基础上建立的,所以在讨论第三范式前,关系模式一定不存在非主属性对主键的部分依赖。
可见,在1NF限定了一个关系模式的所有字段都是不可分的基本数据项之后,2NF消除了非主属性对主键的部分函数依赖,3NF消除了传递函数依赖。
——物理数据库设计
\quad
确定数据库的存储结构,文件类型。通常DBMS为了保证其独立性和可移植性,承担了大部分任务,数据库设计人员只需考虑硬件、操作系统的性能,为数据表选择合适的存储引擎,设置索引等。
——数据库实施
\quad
使用sql语句创建数据库、数据表,编写与调试应用程序等
——数据库运行与维护
\quad
数据库系统正式进入运行,在允许后进行一些维护、调整、备份和升级等工作。