目录
一、基本概念
数据
数据是数据库中存储的基本对象,它是描述事物进行的符号记录。通常数据有多种表现形式,如文本,图形,图像等等(经过数字化后保存在计算机中)。数据的解释是指对数据含义的说明,数据的含义称为数据的语义,数据与语义是不可分的。
数据库
是长期储存在计算机内有组织的,可共享的大量数据集合,是存放数据的仓库。特征:(1)数据按一定的数据模型组织、描述和储存。(2)可共享。(3)冗余度较小。(4)数据独立性较高。(5)易扩展。
数据管理
利用计算机对数据进行有效的收集、存储、处理和应用的过程。
(1)人工管理阶段
数据和程序是一个整体,一个程序中的数据无法被其他程序使用,因此程序之间存在大量的重复数据。特点:数据不共享,数据独立性差,数据不能长期保存,数据由应用程序保存。
(2)文件系统阶段
有了磁盘等存储设备,有了操作系统和专门管理数据的应用软件(一般称为文件系统),处理方式有批处理,联机实时处理。在这种条件下,诞生了文件系统阶段。特点:文件可以长期保存。数据独立性差。数据面向程序。数据共享性差。数据结构比较简单。
(3)数据库系统阶段
在大规模数据管理,大容量磁盘,有数据库管理系统的背景下,出现了数据库系统阶段。特点:数据结构化。较高的数据共享性。较高的数据独立性。数据有DBMS统一管理和控制。
数据库系统组成
数据库系统= 硬件+软件(DBMS + 操作系统 + 各种工具)+人员(数据管理人员,用户等);
最基本组成部分:数据库,数据库管理系统,应用程序。
数据库系统的特点
1.数据结构化(数据之间有联系:选课文件中的学号必须是student文件中的某个学生的学号)
2.数据的共享性高(并发共享),冗余度低且易扩充
3.数据独立性高
4.数据由数据管理系统统一管理和控制
二、数据库系统的结构
数据模型
概念:对现实世界数据特征的模拟和抽象,用来描述数据是如何组织、存储和操作的。
组成元素:数据结构(对象与对象之间的联系),数据操作(对对象的一些操作)和数据的完整性约束(数据的约束条件)
分类:包括下面的概念模型,逻辑模型,物理模型。
(1)概念模型——E-R模型重点
基本概念:实体(现实对象集合),属性(实体具有的某一特征),码(唯一标识实体的属性集),域(取值范围),实体型(用实体名及属性名集合来抽象同类实体),实体集(同一类型实体集合)。例子如下:
实体之间的联系:一对一(1:1),一对多(1:n),多对多(m:n),单个实体之间的联系(可以有三种,但此次只列举 职工:领导 可以是1:n,某一职工领导若干职工,某一职工仅被一名领导直接领导)。
概念模型表示(E-R模型):实体-概念模型包括实体(用矩形表示),联系(用菱形表示)和属性(用椭圆表示)。注意:联系可能会产生新的属性。属性必须不可分,不能包含其他属性,不能与其他实体有联系。
(2)逻辑模型
有层次模型,网状模型,关系模型。层次模型用树型结构表示,网状模型用图结构表示,关系模型用二维表格表示。
(3)概念模型转换为逻辑模型
实体的转换:——>学生(学号,姓名,性别)。
联系的转换:(1)1:1联系(与某一端对应的关系模式合并):合并后的关系属性包括自身关系的属性和另一关系的主码及联系本身的属性:合并后的关系主码不变。
(2)1:n联系(与n端对应的关系模式合并):合并后关系的属性:在n端关系中加入1端关系的主码和联系本身的属性,合并后关系的主码不变。
(3) m:n联系(必须将联系转化为一个关系):该联系相连的各实体主码和联系本身的属性转换为该关系中的属性。两个实体的主码共同构成主码,联系本身的属性构成属性。
三、关系数据库基础
(1)关系概念
关系概念
在关系数据库中,关系指的是多个集合间笛卡尔积的子集,但描述方式采用的是表格的描述方式。
关系模式
关系的描述称为关系模式,一般表示为:关系名(属性1,属性2,...属性n),例如:师生关系(教师,学生);
相关概念
元组:关系中的每一行数据称为一个元组。
属性:关系中的每一列称为一个属性,列的名字称为属性名。
域:属性的取值范围。
码:指的是具有唯一性的属性,可以唯一确定表中的一个元组,它可以是一个属性构成,也可以是多个属性共同构成。
主码:一个关系的所有码构成候选码,选定一个候选码作为元组标识,称为主码。
外码:用来把不同的关系表链接起来,关系R中的属性k不是R的主码,而是另一个关系S的主码,则该属性k是关系R的外码。
(2)关系的完整性约束
域完整性约束:内容必须在规定的范围内取值。
实体完整性:主属性不能取空值。
参照完整性:(1)主码:是第一个关系表(关系R)中的属性,不是第一个关系表的主码,但是却是第二个关系表(关系S)的主码,则称该属性为第一个关系表的外码。并称关系 R 为参照关系,关系 S 为被参照关系或目标关系。(2)若属性(组)F 是基本关系 R 的外码,它与基本关系 S 的主码 K 相对应,则对于 R 中每个元组在 F 上的值必须为:取空值或者等于 S 中某个元组的主码值。
用户定义完整性:必须满足相应的语义要求,其就是业务规则。
(3)关系操作
查询操作(下面的关系代数)和修改操作(增删查改);
(4)关系代数
是以关系作为运算对象的一组高级运算集合。传统运算交并补差不多介绍,着重介绍笛卡尔积和专门的关系运算。
1.笛卡尔积:
实现多表连接,属性数量m+n,元组数量m*n。
2.选择σ:
表示方法:σ<选择条件>(R) σ(sigma) 表示选择操作,<选择条件>是作用于关系R的一个布尔表达式。如:σ <age>17∧sex=’女’> (student) 是查询年龄大于17的女同学的信息。
从行角度进行计算。
3.投影:
表达方法:π<属性列表>(R) 投影运算是从关系R中选择某些属性列并丢弃掉其它列(属性)而得到一个新的关系,投影运算得到的结果关系仅包含有<属性列表>中列出的属性,并且其顺序和属性列表的顺序一致。
从列角度进行计算。可减少元组数目。如果属性列表只包含R的非主属性,那么结果关系中就有可能会出现重复的元组,这时投影运算将会去除结果中的重复元组。
4.连接:
表达方式:R ⋈<AθB> S=σ<AθB> (R × S) 连接也称θ连接, 是从两个关系的笛卡尔积中选取满足某规定条件的全体元组,形成一个新的关系。
两种常用的连接运算:(1)等值连接:θ 为“=”的连接运算称为等值连接,它是从关系R与S的笛卡尔积中选取A、B属性值相等的那些元组。(2)自然连接:若A、B是相同的属性组,就可以在结果中把重复的属性去掉。这种去掉了重复属性的等值连接称为自然连接。