18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 信息时代 > 关系模式(数据库)

关系模式(数据库)

时间:2022-12-24 04:30:01 | 来源:信息时代

时间:2022-12-24 04:30:01 来源:信息时代

    关系模式 : 对关系的逻辑结构和特征的描述。在关系数据库中,关系是一张规范化了的二维表,一张二维表中的数据称为一个关系实例。关系实例由表中的行组成,这些行称为元组,列称为属性。由于关系操作在不断地更新着关系中的数据,关系也就是某一时刻关系模式的当前值。由此可见,关系模式是型,关系是值,关系模式是静态的、稳定的,而关系是动态的。关系模式对关系的描述内容主要分为两部分:
1. 关系的命名结构
关系是元组的集合,关系中的一个元组就是该关系所涉及属性集的笛卡儿积的一个元素,因此,关系模式必须指出这个元组集合的结构,即它由哪些属性构成,这些属性来自哪些域,以及属性与域之间的映象关系等。其次,一个关系通常是由赋予它的元组语义来确定的。元组语义实质上是一个n目谓词(n是属性集中属性的个数)。凡使该n目谓词为真的笛卡儿积中的元素(或者说凡符合元组语义的那部分元素)的全体就构成了该关系模式的关系。因此,关系模式应描述这些关系名、属性名、属性值域。
2.数据完整性约束条件
由于现实世界随着时间在不断地变化,关系模式的关系也在不断地被更新,现实世界的许多已有事实和规定,限定了关系模式中的关系必须满足一定的完整性约束条件。这些约束或者限定了属性的取值范围,例如,学生的考试成绩必须在0~100分之间;或者通过属性值间的相互关联和依赖反映出来,例如,一个学生只能有一个学号且不能为空值等。因此,关系模式应当刻画出这些完整性约束条件,主要体现在: 主键的选择、各种数据依赖和值的限制及各种操作的影响等。
定义一个关系模式为一个五元组,它可形式化地表示为: R(U,D,dom,I,F)。其中,R为关系名,U为组成该关系的属性名集合,D为属性集U中属性所来自的域,dom为属性向域的映象集合,I为一组完整性约束条件,F为属性间数据的依赖关系集合。
通常关系模式也可以简记为: R(U)或R(A1,A2,…,An)。其中,R为关系名,R(U)或R(A1,A2,…,An)为属性名。而域名及属性向域的映象常常直接说明为属性的类型和长度。
例如,学生选课系统中,包含有实体型关系“学生”、“课程”和联系型关系“选修”。学生关系的属性有学号、姓名、性别、年龄和学生所在系,学号为主键;课程关系的属性有课程号、课程名、开课系和任课教师,课程号为主键; 学生和课程之间有多对多的联系(一个学生可选多门课程,一门课程可以被多个学生选修),这种联系通过选修关系实现,选修关系的属性有学号、课程号和成绩,学号和课程号为组合键。其实体-联系图如图1所示,各关系实例如图2所示。


图1 学生选课系统实体-联系图


学生关系


学号姓名性别年龄学生所在系
060403王小倩20计算机
060511肖林21工商管理
060423秦军伟20计算机
062315唐伟强21机械电子


课程关系


课程号课程名开课系开课教师
32521C语言计算机王德芳
32533操作系统计算机李永新
34255英语外语彭大年
35164概率物学张楠


选课关系


学号课程号成绩
06040332521 
06040332533 
06040334255 
06051132521 
06051132255 
06051135164 
06042332521 
06042332533 
06042334255 
06231532521 
06231532255 
06231535164 


图2 学生选课系统关系实例表


则学生选课系统的关系模式集为:
学生关系模式:学生(学号,姓名,性别,年龄,学生所在系);
课程关系模式:课程(课程号,课程名,开课系,任课教师);
选课关系模式: 选课(学号,课程号,成绩)。
关系模式可以用关系数据库语言中的数据定义语言(data definition language,DDL)来定义。如使用SQL中的DDL完成上述各关系模式的定义如下:
CREATE TABLE学生(
学号 INTEGER(6) NOT NULL,
姓名 CHAR(15) NOT NULL,
性别 CHAR(2),
年龄 SMALLINT,
学生所在系 CHAR(20),
CHECK 学号>0,//检验约束
CHECK 年龄>10,//检验约束
PRIMARY KEY(学号) //唯一性约束);
CREATE TABLE课程(
课程号 INTEGER(5) NOT NULL,
课程名 CHAR(30) NOT NULL,
开课系 CHAR(20),
开课教师 CHAR(20),
CHECK 课程号>0,//检验约束
PRIMARY KEY(课程号) //唯一性约束);
CREATE TABLE选修(
学号 INTEGER(6) NOT NULL,
课程号 INTEGER(5) NOT NULL,
成绩 SMALLINT,
PRIMARY KEY(学号,课程号)//唯一性约束
FOREIGE KEY(学号) REFERENCES学生(学号)
           //引用约束
FOREIGE KEY(课程号)REFERENCES
课程(课程号),    //引用约束
CHECK成绩>=0 AND成绩=<100
          //检验约束
);
关系模式定义完成后,再用关系数据库语言中的数据操纵语言(DML)将关系实例中的各元组插入到相应的关系表中。通常,关系数据库系统仅仅只维护关系的一个版本,即关系的“当前”元组集合,这个关系实例称为当前实例。

74
73
25
news

版权所有© 亿企邦 1997-2022 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭