一、数据库系统
1.1 概述
数据:是数据库中存储的基本对象,是描述事物的符号记录。
数据的分类:文本、图形、图像、音频、视频。
数据库DB:是长期存储在计算机内、有组织的、可共享的大量数据的集合。
数据库的基本特征:数据按一定的数据模型组织、描述和存储;可为各种用户共享; 冗余度较小; 数据独立性较高; 易扩展。
数据库系统DBS:是一个采用了数据库技术,有组织地、动态地存储大量相关数据,方便多用户访问的计算机系统。其由下面四个部分组成:
1、数据库(统一管理、长期存储在计算机内的,有组织的相关数据的集合)
2、硬件(构成计算机系统包括存储数据所需的外部设备)
3、软件(操作系统、数据库管理系统及应用程序)
4、人员(系统分析和数据库设计人员、应用程序员、最终用户、数据库管理员DBA)
数据库管理系统DBMS的功能:
1、实现对共享数据有效的组织、管理和存取。
2、包括数据定义、数据库操作、数据库运行管理、数据的存储管理、数据库的建立和维护等。
1.2 三级模式两级映像
三级模式是指数据库管理系统从三个层次来管理数据,分别是外部层(ExternalLevel)、概念层(Conceptual Level)和内部层(Internal Level)。这三个层次分别对应三种不同类型的模式,分别是外模式(External Schema)、概念模式(Conceptual Schema)和内模式(Internal Schema)。
在外模式与概念模式之间,以及概念模式与内模式之间,还存在映像,即二级映像。
外模式面向应用程序,描述用户的数据视图(View);内模式(又称为物理模式、存储模式)面向物理上的数据库,描述数据在磁盘中如何存储;概念模式(又称为模式、逻辑模式)面向数据库设计人员,描述数据的整体逻辑结构。
1.3 三级模式
概念模式:概念模式类似于表格的列标题,它描述了商品表中包含哪些信息。 下图中,表的横向称为行,纵向称为列,第一行就是列标题,用来描述该列的数据表示什么含义。实际上,概念模式在数据库中描述的信息还有很多,如多张表之间的联系、表中每一列的数据类型和长度等
内模式:在将Excel表格另存为文件时,可以选择保存的文件路径、保存类型(如XLS、XLSX、CSV等格式)等,这些与存储相关的描述信息相当于内模式。在数据库中,内模式描述数据的物理结构和存储方式,如堆文件、索引文件、散列(Hash)文件等
外模式:在打开一个电子表格后,默认会显示表格中所有的数据,这个表格称为基本表。在将数据提供给其他用户时,出于权限、安全控制等因素的考虑,只允许用户看到一部分数据,或不同用户看到不同的数据,这样的需求就可以用视图来实现。下图是视图和基本表的关系
基本表中的数据是实际存储在数据库中的,而视图中的数据是查询或计算出来的。由此可见,外模式可以为不同用户的需求创建不同的视图,且由于不同用户的需求不同,数据的显示方式也会多种多样。因此,一个数据库中会有多个外模式,而概念模式和内模式则只有一个 。
三级模式是数据的三个抽象级别,每个级别关心的重点不同。为了使三级模式之间产生关联,数据库管理系统在三级模式之间提供了二级映像功能。二级映像是一种规则,它规定了映像双方如何进行转换。通过二级映像,体现了逻辑和物理两个层面的数据独立性。
逻辑独立性:外模式/概念模式映像体现了逻辑独立性。逻辑独立性是指当修改了概念模式,不影响其上一层的外模式。例如,将基本表的“库存”和“销量”拆分到另一张表中,此时概念模式发生了更改,但可以通过改变外模式/概念模式的映像,继续为用户提供原有的视图。
物理独立性:概念模式/内模式映像体现了物理独立性。物理独立性是指修改了内模式,不影响其上层的概念模式和外模式。例如,在Excel中将.xls文件另存为.xlsx文件,虽然更换了文件格式,但是打开文件后显示的表格内容一般不会发生改变。在数据库中,更换更先进的存储结构,或者创建索引以加快查询速度,内模式会发生改变。此时,只需改变概念模式/内模式映像,就不会影响到原有的概念模式。
1.4 数据库设计
需求分析:即分析数据存储的要求,产出物有数据流图、数据字典、需求说明书。获得用户对系统的三个要求:信息要求、处理要求、系统要求。
概念结构设计:就是设计E-R图,也即实体-联系图。工作步骤包括:选择局部应用、逐一设计分E-R图、E-R图合并。
E-R图进行合并时,它们之间存在的冲突主要有以下3类:
1、属性冲突。同一属性可能会存在于不同的分E-R图中。
2、命名冲突。相同意义的属性,在不同的分E-R图上有着不同的命名,或是名称相同的属性在不同的分E-R图中代表着不同的意义。
3、结构冲突。同一实体在不同的分E-R图中有不同的属性,同一对象在某一分E-R图中被抽象为实体而在另一分E-R图中又被抽象为属性。
逻辑结构设计:将E-R图,转换成关系模式。工作步骤包括:确定数据模型、将E-R图转换成为指定的数据模型、确定完整性约束和确定用户视图。
物理设计:步骤包括确定数据分布、存储结构和访问方式。
数据库实施阶段:根据逻辑设计和物理设计阶段的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。
数据库运行和维护阶段:数据库应用系统经过试运行即可投入运行,但该阶段需要不断地对系统进行评价、调整与修改。
1.5 数据模型
关系模型是二维表的形式表示的实体-联系模型,是将实体-联系模型转换而来的,经过开发人员设计的;
概念模型是从用户的角度进行建模的,是现实世界到信息世界的第一抽象,是真正的实体-联系模型;
网状模型表示实体类型及其实体之间的联系,一个事物和另外几个都有联系,形成一张网;
面向对象模型是采用面向对象的方法设计数据库,以对象为单位,每个对象包括属性和方法,具有类和继承等特点。
数据模型三要素:数据结构(所研究的对象类型的集合)、数据操作(对数据库中各种对象的实例允许执行的操作的集合)、数据的约束条件(一组完整性规则的集合)。
用E-R图来描述概念数据模型,世界是由一组称作实体的基本对象和这些对象之间的联系构成的;
在E-R模型中,使用椭圆表示属性(一般没有)、长方形表示实体、菱形表示联系,联系的两端要填写联系类型,示例如下图:
实体:客观存在并可相互区别的事物。可以是具体的人、事、物或抽象概念。如人、汽车、图书、账户、贷款;
弱实体和强实体:弱实体依赖于强实体的存在而存在;
实体集:具有相同类型和共享相同属性的实体的集合,如学生、课程;
属性:实体所具有的特性;
属性分类:简单属性和复合属性;单值属性和多值属性;NULL属性;派生属性(可以通过其他属性运算出来,比如年龄可以根据出生日期);
域:属性的取值范围称为该属性的域;
码(key):唯一标识实体的属性集;
联系:现实世界中事物内部以及事物之间的联系,在E-R图中反映为实体内部的联系和实体之间的联系;
联系类型:一对一1:1、一对多1:N、多对多M:N;
两个以上实体型的联系:
关系模型中数据的逻辑结构是一张二维表,由行列组成。用表格结构表达实体集,用外键标识实体间的联系。如下图:
优点:建立在严格的数学概念基础上;概念单一、结构简单、清晰,用户易懂易用;存取路径对用户透明,从而数据独立性、安全性好,简化数据库开发工作;
缺点:由于存取路径透明,查询效率往往不如非关系数据模型;
E-R模型转换为关系模型:每个实体都对应一个关系模式;联系分为三种:
1、1:1联系:联系可以放到任意的两端实体中,作为一个属性(要保证1:1的两端关联),也可以转换为一个单独的关系模式;
2、1:N联系:联系可以单独作为一个关系模式,也可以在N端中加入1端实体的主键;
3、M:N联系:联系必须作为一个单独的关系模式,其主键是M和N端的联合主键。
1.6 关系代数
并:结果是两张表中所有记录数合并,相同记录只显示一次。
交:结果是两张表中相同的记录。
差:S1-S2,结果是S1表中有而S2表中没有的那些记录。
笛卡尔积:S1XS2,产生的结果包括S1和S2的所有属性列,并且S1中每条记录依次和S2中所有记录组合成一条记录,最终属性列为S1+52属性列,记录数为S1*52记录数。
投影(π):实际是按条件选择某关系模式中的某列,列也可以用数字表示。
选择(σ):实际是按条件选择某关系模式中的某条记录。
自然连接的结果显示全部的属性列,但是相同属性列只显示一次,显示两个关系模式中属性相同且值相同的记录。 设有关系R、S如下左图所示,自然连接结果如下右图所示: