关系数据库基础
关系模型的基本概念
关系模型
近几十年,最重要,应用最广泛的数据库模型;
关系模型详细解释:
关系——关系是一张二维表,简称表,表示数据的逻辑结构,描述的是实体与实体之间的联系,将联系归结为一个简单的二维关系;
每一行表示一个记录(元组),每一列,表示一个属性(其属性值,称为域),每个属性表示一个字段,属性名就是字段名,属性值为各行字段值,可采用笛卡尔积的方式对其进行定义,R(D1,D2,...,Dn),R表示关系名,n是关系的度或目(列数)
域,是属性的取值范围,是一组具有相同数据类型值的集合;不同的属性可以具有相同的域,属性A的域可以用DOM(A)表示,每个属性对应一个域
关系模型
以二维表的结构表示的实体关系,用键表示实体间的数据模型,键唯一标识一个记录,键可以是单一属性或属性的组合
关系模型组成:关系数据结构,关系操作,关系完整性约束三部分;关系模型是关系数据库的构建基础,所有关系数据库都支持关系模型
元数:属性的列数
基数:记录的行数
(老师讲数据存储底层逻辑相同,底层变,要求整体都变)
关系的类型和性质
关系的三种类型:基本关系(基本表),查询表,视图表
关系的属性:与联系相关的各实体的码或联系自身的属性
基本表:实际存在的表,实际存储数据的二维表
查询表:查询结果构成的表
视图表:基本表+其它导出表
关系的性质:
1.关系的属性/字段/列是同质的,每一列中的数据项(属性值/字段值)是同一类型,即要求同列同类同域
2.每一列是原子值,不可再分
3.没有一行记录完全相同
4.关系中的行不分先后顺序
5.任何两列不能同名,不同的列可以来自同一域,列的类型值可以相同
关系的模式
对关系结构的特征描述,可形式地表示为R(U,D,DOM,F)
R是关系名,U是属性,D是域,DOM是属性在域上的映射,F是约束条件(属性之间数据的依赖关系集合),可简单表示为R(U),R(A1,A2,A3,...,An)A1,A2,A3,...An为属性名
关系模式主要确定两方面的内容
1.关系模式指明了关系的结构,即构成的属性(列)及其域(具体关系数据库中常为属性的数据和长度),以及属性与域之间的映射关系
2.关系模式说明了属性间的相互关联关系和属性本身的约束条件
关系模型的完整性
关系模型的完整性规则——关系的某种约束性条件,保证数据的正确相容性
关系的不变性——实体完整性,参照完整性,关系必须满足的约束条件,由系统自动支持(实现)
参照完整性
参照完整性是实体与实体之间的联系,用关系描述,关系与关系间,数据与数据间,属性与属性间存在约束
定义:若F是关系R的一个或一组属性,但不是R的键,K是关系S的主键,若F与主键K相对应,则称F是关系R的外键;并称关系R为参照关系,关系S为被参照关系/目标关系
外码不一定与主码同名,当外码与主码属于不同的关系时,二者取相同的名字,主属性,主键不可为空
要点:明白什么是外键,什么是参照关系,什么是被参照关系
如,学生(学号,身份证号,姓名,性别,专业编号,出生日期,家庭地址);主键为学号(唯一性)专业编号(F)是关系学生(关系R)的一个属性
专业(专业编号,专业名称),专业编号(K)是专业(关系S)的主键
在学生关系中,专业编号对应学号(F与主键K相对应)则,专业编号是关系学生的外键
在关系上,学生为参照关系,专业为被参照关系/目标关系,即在学生关系调用相关数据时,如专业名称,会主动参照专业关系,此时专业成为被参照关系
参照完整性体现在两方面,实现多表之间的联系,外键的取值必须是另一表的主键的有效值或空值
实体完整性
每个关系,有且仅有一个主键,且主键不能为空,每个主键值唯一,确保数据的正确,可靠,完整
用户自定义完整性
是应用领域的约束条件,保证数据在规定的范围内取值,针对某一具体关系数据库的条件约束,是某一具体实际应用所涉及的数据必须满足的语义要求
用户定义的完整性是对数据表中字段属性的约束,包括属性的值域,类型,宽度和小数点位数等约束,由定义时所需要什么样的数据格式和形态决定
数据库待解决问题:
1.如何在插入数据时让每一行的数据能够不完全重复,关系表要求每一行数据都不完全重复,但SQL实际操作过程中,只要把同一条插入指令执行两次就会在数据表中写入两行完全相同的元组
2.属性中外键列输入的值必须与外键本身的值相同,否则会报错;
理解话就是外键是另一个表的主键