数据模型的组成要素

数据模型的组成要素
数据模型通常由数据结构、数据操作和数据的完整性约束条件三部分组成。
1.1 数据结构
数据结构是描述数据库的组成对象以及对象之间的联系,也就是说,数据结构描述的内容有两类:一类是与对象的类型、内容、性质有关的,如网状模型的数据项、记录,关系模型中的域、属性、关系等;一类是与数据之间联系有关的对象,如网状模型中的系型。总之,数据结构是所描述的对象类型的集合,是对系统静态特性的描述。
1.2 数据操作
数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。
数据库主要有查询和更新(包括插入、删除、修改)两大类操作。操作模型必须定义这些操作的确切含义、操作符号、操作规则(如优先级)以及实现操作的语言。数据操作是对系统动态特性的描述。
1.3 数据的完整性约束条件
数据的完整性约束条件是一组完整性规则(关系的三类完整性约束:实体完整性、参照完整性和用户定义的完整性
1.3.1 实体完整性
若属性A是基本关系R的主属性,则属性A不能取空值。例如:(学号,姓名,课程号,课程名,年龄,性别)这组学生的关系中,学号是主码,学号不能为空,若学号为空则不能表示这位同学是否存在。
规则:
1.实体完整性规则是针对基本关系而言的。一个基本表通常对应先是世界的一个实体集。
2.现实世界中的实体是可以区分的,即他们具有某种唯一性标识
3.关系模型中以主码作为唯一性标识
4.主码中的属性即主属性不能取空值。如主属性取空值,就说明存在某个不可标识的实体,即存在不可取分的实体,与第2点矛盾。
1.3.2 参照完整性
关系间的引用
在关系模型中实体及实体间的联系都是用关系来描述的,因此可能存在这关系与关系间的引用。
学生(学号,姓名,性别,专业号,年龄,班长)
专业(专业号,专业名
在这两组关系中,学生关系引用了专业关系的主码“专业号”。
在学生关系中,“学号”是主码,“班长”是外码,它引用了本关系的“学号”,“班长”必须是确实存在的学生的学号
外码
设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R 的外码。基本关系R 称为参照关系;基本关系S称为被参照关系或目标关系
在这里插入图片描述
关系R和S不一定是不同的关系;目标关系S的主码Ks和参照关系的外码F必须定义在同一个域上;外码并不一定要与相应的主码同名–当外码与相应的主码属于不同关系是,往往取相同的名字,以便于识别
学生(学号,姓名,性别,专业号,年龄,班长)
专业(专业号,专业名)
“专业号”属性是学生关系的外码
专业关系是被参照关系,学生关系为参照关系
在学生的自己的关系中,“班长”是外码,学生关系既是参照关系也是被参照关系。
规则:若属性(或属性组)F是基本关系R的外码他与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:取空值或等于S中某个元组的主码值。
1.3.3 用户自定义的完整性
针对某一具体关系数据库的约束条件,反应某一具体应用所涉及的数据必须满足的语义要求。
关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理他们,而不要由应用程序承担这一功能。
建立一个“学生选课”表SC
CREATE TABLE SC(
Sno CHAR(9),
Cno CHAR(4),
Grade SMALLINT,
PRIMARY KEY(Sno,Cno),
/主码由两个属性构成,必须作为标记完整性进行定义/
FOREIGN KEY(Sno)REFERENCES Student(Sno),
/表级完整性约束条件,Sno是外码,被参照表是Student/
FOPEIGN KEY(Cno)REFERENCES Course(Cno)
/表级完整性约束条件,Cno是外码,被参照表示Course/
);

猜你喜欢

转载自blog.csdn.net/weixin_46880556/article/details/107162847
今日推荐