关系模型的数据结构_第1页
关系模型的数据结构_第2页
关系模型的数据结构_第3页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、关系模型的数据结构关系。关系数据库是表的集合模型中的基本术语关系关系就是二维表,它满足以下几个条件 1)关系表中的每一列都是不可再分的基本属性。(系表)表中的各属性不能重名表中的行、列次序并不重要,即交换列的前后顺序(面)不影响其表达的一个语义。元组表中的每一行数据称为一个元组,它相当于一个记录值属性的实体属性(特征)或记录的字段意义相当。并没有实际意义主键组。主键可以由一个属性组成,也可以由多个属性共同组成。选键,从中选一个作为主键都是可以的。域1440 “年龄”属性的域就是(1440)关系模型的数据操作增删改查关系模型的数据完整性约束数据完整性是指数据库中存储的数据是有意义的,是正确的。主

2、要包括三大类实体完整性是指的是关系数据库中所有的表都必须有主键,而且表中不允许存在以下两种情况无主键值的记录主键值相同的记录因为若记录没有主键值,则此记录在表中一定是无意义的。关系模型中的每一行记录都对应客观存在的一个实例或一个事实,比如,一个学号唯一地确定了一个学生,如果表中存在没有学号的学生记录,则此学生一定不属于正常管理的学生。另外,如果表中存在主键值相等的两个或多个记录,则这两个或多个记录会对应同一个实例,这会出现两种情况。第一,表中的其他值也完全相同,则这些记录就是重复则会出现语义矛盾,哪条记录才是真实的(一行数据称为实体的一个实例。参照完整性参照完整性一般是指多个实体或表之间的关联

3、关系比如表2-3中学生选课信息表所描述的学生必须受限于表2-1学生基本信息表中已有的学生不能在学生选课信息表中描述一个根本就不存在的学生也就是学生选课信息表中学号的取值必须在学生基本信息表中学号的取值范围内这种一个表中某列的取值受限于另一个表的某列的取值范围约東的特点就称为参照完整性在关系数据库中用外键(foreignkey,有时也称为外部关键字或外码)来实现参照完整性。例如只要将学生选课表中的“学号”定义为引用学生基本信息表的“学号”的外键就可以保证选课表中的“学号”的取值在学生基本信息表的已有“学号”范围 内外键实际上是表中的一个(或多个)属性,它引用某个其他表(特殊情况下,也可以是外键所

4、在)主键。下面举例说明如何指定外键2-1学生(学号,姓名,性别,专业号,出生日期)专业(专业号,专业名)是引用了专业关系中的“专业号”的外键2-23其中主键用下划线标识。学生(学号,姓名,性别,专业号,出生日期) 课程(课程号,课程名,学分)选课(学号,课程号,成绩)3须是课程关系中已有的课程,即选课关系中的“课程号”引用了课程关系中的键,而“课程号”是引用了课程关系中的“课程号”的外键。主键必须是非空且不重复的,但外键无此要求。外键可以有重复值,这点从表2-3个关系表示。职工(职工号,职工名,部门号,工资级别) 部门(部门号,部门名)配到了某个部门,则其部门号就有了确定的值(非空值)。用户定

5、义完整性应用语义的要求。用户定义的完整性实际上就是指明关系中属性的取值范围,也就是属性的域,这样可以限制关系中属性的取值类型及取值范围,防止属性的值与应用语义矛盾。例如,学生的考试成绩的取值范围为 0100,人的性别的取值是男,女。关系规范化为什么要关系规范化观察这个表的数据,会发现有以下几个问题个学生修了多少门课,他的基本信息就重复多少遍。改此学生的 SdeptSloc已经有了 SdeptSloc1SnoCnoSnoCno因此不能为空。录的同时也删掉了此学生的其他基本信息。这些都是操作异常,为什么会出现操作异常呢,就是关系模式没有设计好。为了解决这类似的问题,我们就要按照关系规范化去进行设计

6、。关系中的码1:有关系模式:学生(学号,姓名,性别,身份证号,年龄,所在系候选码为:学号,身份证号主属性为:学号,身份证号作主属性为:姓名,性别,年龄,所在系。例 2:有关系模式:选课(学号,课程号,考试次数,成绩)设一个学生对一门课程可以有多次考试,每一次考试有一个考试成绩候选码为:(学号,课程号,考试次数),也为主键主属性为:学号,课程号,考试次数非主属性为:成绩。例 3:有关系模式:授课(教师号,课程号,学年)可以在不同学年开设多次。其候选码为:(教师号,课程号,学年),因为只有(教师号,课程号,学年) 三者才能唯一的确定一个元组。这里的候选码也是主键主属性为:教师号,课程号,学年。没有

7、非主属性。称这种候选码为全部属性的表为全码表。范式1NF第一范式(1NF)是指数据表中的每个字段必须是不可拆分的最小单元。第一范式(1NF)是指数据表中的每个字段必须是不可拆分的最小单元。2NF第二范式(2NF)第二范式(2NF)1NF而不能有任何一列与主键没有关系,也就是说一个表只描述一件事情。足第二范式的。这是一张成绩表,包括学号、课程号、成绩和学分,主键为学号,但是单独将学分和学号拿出来,两个没有关系,所以不满足第二范式。第三范式(3NF)是指必须先满足第二范式(2NF),另外要求表中的每一列只与主键直接相关而不是间接相关。差别的,第三范式保证了表中的字段消除了传递依赖,比如CACAA、B、C以不满足数据库第三范式。如何转换呢?2NF2NF2NF步骤用组成主键的属性集合的每一个子集作为主键构成一个关系模式。将依赖于这些主键的属性放置到相应的关系模式中最后去掉只由主键的子集构成的关系模式例如,对 S-L-C 表,首先分解为如下的三个关系模式(下划线部分表示主键):S-l(Sno,.)C(Cno,.)S-c(Sno, Cno,.)式S-l(Sno, Snam

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论