版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库应用技术SQL Server 2005SQL Server 2005第2章 关系数据库能力目标:能运用关系数据模型的基本知识将概念模型转换为关系模型。能应用关系规范化方法对关系模型进行规范化和优化。能够根据完整性规则对关系模型进行实体完整性、用户定义完整性和参照完整性的设计。初步认识SQL语言和T-SQL语言。任务设计:将项目的E-R数据模型转换为关系模型。对转换的关系模型进行规范化(3NF)和优化。根据项目需求进行主码设置、外码设置和约束设置。SQL Server 2005第2章 关系数据库知识要求:关系数据模型的基本定义和基本术语。关系的集合运算并、交、差和笛卡尔积。关系的投影、选择
2、和连接运算。关系模型完整性规则的概念。概念模型到关系模型转换的基本方法。关系规范化的基本概念和关系的规范化方法。SQL Server 20052.1 关系模型概述 关系模型组成要素1关系模型特点2SQL Server 20052.1.1 关系模型组成要素关系数据结构 数据结构是所研究的对象类型的集合。 关系操作集合 数据操作是指对数据库中各种数据对象允许执行的操作的集合。 关系完整性约束 数据的约束条件是一组完整性规则的集合。 SQL Server 20052.1.3 关系模型的特点数据结构单一或模型概念单一化实体和实体之间的联系用关系表示关系的定义也是关系(元关系)关系的运算对象和运算结果还
3、是关系采用集合运算关系是元组的集合,所以对关系的运算就是集合运算运算对象和结果都是集合,可采用数学上的集合运算数据完全独立只需告诉系统“做什么”,不需要给出“怎么做”程序和数据各自独立数学理论支持有集合论、数理逻辑做基础以数学理论为依据对数据进行严格定义、运算和规范化SQL Server 20052.2 关系数据结构 关系1 关系术语2 关系术语与其他术语的对照3SQL Server 20052.2.1 关系关系的基本定义关系是满足一定条件的二维表,称为关系(relation),在关系模型中,无论概念世界中的实体还是实体之间的联系均由关系(表)来表示。 例如:学生情况表 Student,表2-
4、1 。SIDSnameSexBirthdaySpecialtyt2005216001赵成刚男1986年5月计算机应用2005216002李敬女1986年1月软件技术2005216003郭洪亮男1986年4月电子商务2005216004吕珊珊女1987年10月计算机网络2005216005高全英女1987年7月电子商务2005216006郝莎女1985年8月电子商务2005216007张峰男1986年9月软件技术2005216111吴秋娟女1986年8月电子商务SQL Server 20052.2.2 关系术语关系术语关系:每个二维表称为一个关系例如:学生情况表Student关系型:表的所有列标
5、题,描述实体或联系的型例如:(SID,Sname,Sex,Birthday,Specialty)关系值:表的列对应的数据,描述实体或联系的值例如:2005216003 ,郭洪亮,男,1986年4月, 电子商务 2005216004 ,吕珊珊,女,1987年10月,计算机网络元组:表中的一行,描述一个实体或联系例如:2005216004,吕珊珊,女,1987年10月,计算机网络SQL Server 20052.2.2 关系术语关系术语属性:表中的一列的标题例如:SID,Sname属性值:表中的一列对应的数据,描述实体或联系的特征例如:2005216003,郭洪亮域:属性的取值范围 主码:表中的某
6、个属性或属性组,能惟一确定一个元组,即确定一个实体例如:SID关系模式:对关系的描述,表示为关系名(属性1,属性2, ,属性n)例如:Student(SID,Sname,Sex,Birthday,Specialty) Course(CID, Cname,Credit) SC(SID, CID,Grade) SQL Server 20052.2.2 关系术语关系术语候选码(Candidate Key):若关系中的某一属性或属性组的值能惟一的标识一个元组,则称该属性或属性组为候选码,候选码可以有多个。 例如:关系Student中的属性SID和Sname(假设没有重名的学生),关系SC中的属性组SI
7、D, CID外码(Foreign Key,FK):一个关系中的属性或属性组不是本关系的主码,而是另一关系的主码,则称该属性或属性组是该关系的外码。也称为外关键字。 例如:关系SC中的属性SID和CID主属性:能作为候选码的属性。 例如:关系Student中的属性SID 和Sname(假设没有重名的学生),关系SC中的属性SID和CID非主属性:除了主属性的其他属性。 例如:关系Student中的属性Sex,Birthday,Specialty 关系SC中的属性SID和CIDSQL Server 20052.2.3 关系术语与其他术语的对照 概念模型中关系理论中关系数据库中某些软件中实体集Ent
8、ity set关系Relation表Table表或数据库文件实体Entity元组Tuple行Row记录Record属性Attribute属性Attribute列Column字段Field主码Primary key主码Primary key关键字Primary key关键字Primary keySQL Server 20052.3 关系数据操作 关系数据操作是以关系代数为基础的,用对关系的运算来表达各种操作。一类是传统的集合运算:并、交、差等,另一类是专门用于数据库操作的的关系运算:选择、投影和连接等。SQL Server 20052.3.1 传统的集合运算设:有两个关系R和S,具有相同的结构,
9、t是元组变量,关系R为喜欢跳舞的学生,S为喜欢唱歌的学生。表2-3 喜欢跳舞的学生关系R Sname Sex 李敬 女 高全英 女 吴秋娟 女 穆金华 男 张欣欣 女 王婷 女表2-4 喜欢唱歌的学生关系S Sname Sex 赵成刚 男 张峰 男 吴秋娟 女 穆金华 男 孙政先 男 王婷 女 吕文昆 男 孙炜 女SQL Server 20052.3.1 传统的集合运算并(Union)公式:RS=ttR t S 语义:t 元组属于R或者属于S。例2-1:喜欢跳舞或喜欢唱歌的学生, RS的关系如表2-5所示。表2-5 RSSnameSex李敬女高全英女吴秋娟女穆金华男张欣欣女王婷女赵成刚男张峰男
10、孙政先男吕文昆男孙炜女SQL Server 20052.3.1 传统的集合运算差(Difference)公式:RS=ttR tS 语义:t 元组属于R,但不属于S。例2-2:喜欢跳舞但是不喜欢唱歌的学生,RS的关系如表2-6所示。 表2-6 R-SSnameSex李敬女高全英女张欣欣女SQL Server 20052.3.1 传统的集合运算交(Intersection)公式:RS=ttR t S 语义:t 元组属于R并且属于S。例2-3:既喜欢跳舞也喜欢唱歌的学生,RS的关系如表2-7所示。 表2-7 RSSnameSex吴秋娟女穆金华男王婷女SQL Server 20052.3.1 传统的集
11、合运算笛卡尔积(Cartesian Product)设:关系R为n列(n个属性),k1行(k1个元组);关系S为m列(m个属性),k2行(k2个元组)。公式:RS=tRtS tR R tS S 语义:笛卡尔积仍是一个关系,该关系的结构是R和S结构之连接,即前n个属性来自R,后m个属性来自S,该关系的值是由R中的每个元组连接S中的每个元组所构成元组的集合。注意:新关系的属性个数等于n+m,元组个数等于k1*k2。SQL Server 20052.3.1 传统的集合运算例2-4 :设关系R和S如表2-8和表2-9所示,RS如表2-10所示。 表2-8 学生关系RSIDSname2005216001
12、赵成刚2005216002李敬表2-9 课程关系SCIDCnameC语言程序设计图像处理网页设计表2-10 学生选课新关系 RSSIDSnameCIDCname2005216001赵成刚C语言程序设计2005216001赵成刚图像处理2005216001赵成刚网页设计2005216002李敬C语言程序设计2005216002李敬图像处理2005216002李敬网页设计SQL Server 20052.3.2 专门的集合运算投影(Projection)设:t是关系R中的一个元组,A是要从R中投影出的属性子集。公式:A(R)= t.At R 语义:从关系R中按所需顺序选取若干个属性构成新关系。注意
13、:新关系的元组数小于等于原关系的元组数,新关系的属性数不多于原关系中的。SQL Server 20052.3.2 专门的集合运算表2-11 关系RSIDSnameSexBirthdaySpecialty2005216001赵成刚男1986年5月计算机应用2005216002李敬女1986年1月软件技术2005216003郭洪亮男1986年4月电子商务2005216004吕珊珊女1987年10月计算机网络2005216005高全英女1987年7月电子商务2005216006郝莎女1985年8月电子商务2005216007张峰男1986年9月软件技术2005216111吴秋娟女1986年8月电子商
14、务表2-12 Sname,Sex (R)SnameSex赵成刚男李敬女郭洪亮男吕珊珊女高全英女郝莎女张峰男吴秋娟女例2-5:列出学生情况表R(表2-11)的学生姓名和性别的情况,投影运算结果如表2-12所示。SQL Server 20052.3.2 专门的集合运算选择(Selection)设:t是关系R中的一个元组,F(t)为元组逻辑表达式。公式:F(t)(R)= ttR F(t)=true语义:从关系中找出满足条件的那些元组称为选择。注意:运算结果的元组数不多于原关系中的元组数。例2-6:在学生情况表2.10 R中选择出男生,如表2-13所示。表2-13 Sex=男(R)SIDSnameSe
15、xBirthdaySpecialty2005216001赵成刚男1986年5月计算机应用2005216003郭洪亮男1986年4月电子商务2005216007张峰男1986年9月软件技术SQL Server 2005连接(Join)设:A,B分别是关系R和S中的属性,t是连接关系中的一个元组。公式:R S=R.AS.B ( RS) AS 语义:两个关系R和S按相应属性值的比较条件连接起来,生成一个新关系,也称为连接。等值连接 RS选择(为)按照两关系中对应属性值相等的条件所进行的连接自然连接 等值连接去重复属性记作:R S2.3.2 专门的集合运算SQL Server 20052.3.2 专门
16、的集合运算例2-7:设学生、选课和课程表如表2-14、表2-15、表2-16所示,学生选课的情况为S SC C的结果,如表2-17所示。 表2-14SSIDSname2005216111吴秋娟2005216112穆金华2005216115张欣欣表2-15 SCSIDCID200521611120052161112005216112200521611220052161152005216115表2-16 CCIDCnameC语言程序设计图像处理网页设计数据结构数据库原理与应用专业英语软件文档的编写美工基础面向对象程序设计SQL Server 20052.3.2 专门的集合运算自然连接结果如下:表2
17、-17 S SC C SIDSnameCIDCname2005216111吴秋娟C语言程序设计2005216111吴秋娟数据结构2005216112穆金华数据库原理与应用2005216112穆金华C语言程序设计2005216115张欣欣图像处理2005216115张欣欣数据库原理与应用SQL Server 20052.3.3 综合运算 例:查询出赵成刚的学号,所选课程号和成绩。 (SID(Sname= 赵成刚(S) SC 运算结果如下表所示: 表2-20新关系运算结果SIDCIDGrade200521600190200521600185200521600196注意:按照选择 投影 连接的运算顺
18、序可以减少运算时间,避免增加时间复杂性。SQL Server 20052.4 关系完整性实体完整性(Entity Integrity) 规则:若属性A是基本关系R的主码,则属性A不能取空值。 例如:建立一个课程情况表(Course),属性学号CID为主码,惟一且不能为空值。CREATE TABLE Course ( CID char(8) NOT NULL PRIMARY KEY, -实体完整性控制 Cname nchar(30) NULL, Credit decimal(3,1) NULL, ) SQL Server 20052.4 关系完整性参照完整性(Reference Integrit
19、y) 规则:参照关系(子表)的外码取值不能超出被参照关系(父表)的主码取值。例如:建立一个学生选课表(SC)。SC是参照关系,Student是被参照关系,SC中外码SID的值或者为空或者等于Student中主码SID的值。 CREATE TABLE SC ( SID char(10) NOT NULL, CID char(8) NOT NULL, Grade numeric(5,1) NULL, PRIMARY KEY(SID,CID), FOREIGN KEY(SID) REFERENCES Student(SID) -参照完整性控制 ) SQL Server 20052.4 关系完整性域(
20、用户)定义完整性 约束:属性取值满足某种条件或函数要求例如:建立一个学生情况表(Student),属性性别Sex的取值必须满足为男或女。CREATE TABLE Student (SID char(10) PRIMARY KEY, -实体完整性控制Sname char(8) NOT NULL,Sex char(2) NULL CHECK(Sex=男 OR Sex=女), -域完整性控制Birthday datetime NULL,Specialty varchar(26) NULL, ) SQL Server 20052.4 关系完整性完整性规则检查为了维护数据库中数据的完整性,在对关系数据库
21、执行插入、删除和修改操作时,要检查是否满足完整性规则。 实体完整性规则:检查主码属性上的值是否已经存在。若不存在,可以执行插入操作,否则不能执行插入操作。参照完整性规则:向参照关系插入,检查外码属性上的值是否在被参照关系的主码属性值中存在。若存在,可以执行插入操作,否则不能执行插入操作。户定义完整性规则:检查输入数据是否符合用户定义的完整性规则。若符合,可以执行插入操作,否则不能执行插入操作。 插入SQL Server 20052.4 关系完整性删除参照完整性规则:删除被参照关系中的行,检查其主码是否被参照关系的外码引用,若没被引用:删除若被引用:拒绝删除 空值删除(外码改为空值) 级联删除(
22、参照关系中的相应行一起删除)修改等价:先删除,后插入(以上两种情况的综合) SQL Server 20052.5 E-R模型到关系模型的转换 实体(E)转换为关系模式12联系(R)转换为关系模式SQL Server 20052.5.1 实体(E)转换为关系模式的方法 一个实体转换为一个关系模式,实体的属性就是关系的属性,实体的码就是关系的码。 例如:学生实体转换为关系模式 实体学生(学号,姓名,性别,出生日期)关系Student(SID,Sname,Sex,Birthday,Specialty)SQL Server 20052.5.2 联系(R)转换为关系模式的方法一对一 将联系与任意端实体所
23、对应的关系模式合并,加入另一端实体的码和联系的属性。例如:实体学校(学校编号,名称)与校长(编号,姓名)之间的任职联系是1:1的联系。学校编号名称任职日期学校任职校长编号姓名11SQL Server 20052.5.2 联系(R)转换为关系模式的方法校长(E)编号(PK)姓名学校(E)学校编号(PK)名称 任职(R)任职日期1 : 1学校(学校编号,名称) 校长(编号,姓名,学校编号,任职日期) SQL Server 2005SQL Server 2005将图中E-R图转换为关系模型。方案1:“负责”与“职工”两关系合并: 职工(职工号,姓名,年龄,产品号); 产品(产品号,产品名,价格);方
24、案2:“负责”与“产品”两关系合并: 职工(职工号,姓名,年龄); 产品(产品号,产品名,价格,职工号). 负责1 产品产品号产品名价格1 职工职工号姓名年龄SQL Server 20052.5.2 联系(R)转换为关系模式的方法一对多将联系与n端实体所对应的关系模式合并,加入1端实体的码和联系的属性。例如:图书实体和读者类型实体的联系是1:n的。 读者编号姓名限借数量读者属于类型读者类型类型编号类型名称n1借阅期限SQL Server 20052.5.2 联系(R)转换为关系模式的方法类型(E)类型编号(PK)类型名称限借数量借阅期限读者(E)读者编号(PK)姓名属于类型(R) 借阅数量n:
25、1 Reader(RID,Rname, TypeID, Lendnum ) ReaderType(TypeID, Typename,LimitNum, LimitDays)SQL Server 2005【例3-2】将含有1:n联系的E-R图转换为关系模型。 仓库(仓库号,地点,面积); 产品(产品号,产品名,价格,仓库号,数量). 仓储n 产品产品号产品名价格1 仓库仓库号地点面积数量SQL Server 20052.5.2 联系(R)转换为关系模式的方法多对多将联系转换成一个关系模式。该联系相连的各实体的码和联系本身的属性转换为关系的属性。例如:教务管理中选课的E-R模型如图所示,学生和课程
26、的联系是多对多的。课程学生选课成绩nmSQL Server 20052.5.2 联系(R)转换为关系模式的方法课程(E)课程编号(PK)课程名称学分学生(E)学生编号(PK)姓名性别出生日期专业 选课(R) 成绩n:m Student(SID,Sname,Sex,Birthday,Specialty) Course(CID, Cname,Credit) SC(SID, CID,Grade)SQL Server 20052.4 关系规范化不规范:产生数据冗余,带来很多问题。规范:提高数据的结构化、共享性、一致性和可操作性。范式:规范化的程度,级别。规范化:在关系数据库中的每个关系都需要进行规范化
27、,使之达到一定的规范化程度。 SQL Server 2005 2.6.1 第一范式1NF(First Normal Form) 定义:所有属性不可再分,即原子属性。记作:R1NF例如:设一个通信录, 属性需要再分,达不到1NF。 学号姓名性别电话手机家庭宿舍2005216111吴秋娟女2005216112穆金华男2005216115张欣欣女2005216117孟霞女SQL Server 2005 2.6.1 第一范式1NF(First Normal Form) 问题:不是二维表,不够1NF解决方法1:在属性上展开学号姓名性别手机家庭电话宿舍电话2005216111吴秋娟女2005216112穆
28、金华男2005216115张欣欣女2005216117孟霞女SQL Server 2005 第一范式1NF(First Normal Form) 解决方法2:分解为二个关系学号姓名性别2005216111吴秋娟女2005216112穆金华男2005216115张欣欣女2005216117孟霞女学号手机家庭电话宿舍电话2005216111200521611220052161152005216117SQL Server 2005第二范式2NF(Second Normal Form)定义所有非主属性完全依赖每个候选关键字。记作R2NF或:取消部分依赖。假设:有一个教师授课的关系模式。TC(TNO,T
29、name,Title,ADDR,CNO,Cname,Level,Credit)PK:(TNO, CNO) SQL Server 2005第二范式2NF(Second Normal Form)问题数据冗余(不同课程同一任教的教师名等)更新异常(冗余带来的不一致)插入异常(没课的教师关键字无值不允许插入)删除异常(没课的教师要删除,致使删除有关记录) SQL Server 20052.6.2 第二范式2NF(Second Normal Form)原因关系属性之间存在部分函数依赖,不够2NF。主码(TNO, CNO)决定Cname,Level,Credit,但是存在主码的一部分CNO就可以决定Cna
30、me,Credit。 (TNO, CNO)Cname,Credit (CNO) Cname, Credit SQL Server 2005第二范式2NF(Second Normal Form)解决办法拆分:原则是概念单一,完整(无损)上述达不到2NF的关系分解如下:多 T (TNO,Tname,Title,ADDR)对 TC(TNO,CNO,Level)多 C( CNO,Cname,Credit)SQL Server 2005第三范式3NF(Third Normal Form)定义所有非主属性都不传递函数依赖每个候选关键字。记作:R3NF 或:取消传递依赖假设:为图书管理系统的数据模式Book增加一个属性ISBN。Books (BID,ISBN,Bname,Author, PubComp, PubDate,Price) PK:BI
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2027年河南省新乡市高职单招职业技能考试模拟试卷及参考答案详解【夺分金卷】
- 萍乡市大学生乡村医生专项计划招聘考试真题2025
- 2025年兵团一中第十二师分校教师招聘笔试真题
- 2027年燕赵专修学院高职高职单招职业技能考试模拟试卷【全优】附答案详解
- 2026年沅江生态职业学院高职单招职业技能考试题库及参考答案详解【A卷】
- 充电桩配套供配电工程设计方案
- 差别化涤纶短纤维项目社会稳定风险评估报告
- 基层卫生院VTE风险评估推广实施细则
- 2027年华岳职业学院高职单招职业技能考试题库附答案详解(考试直接用)
- 临床危重症患者压疮精细化护理
- 香港全校参与模式(融合教育运作指南)简体中文
- 2026年高考语文备考之语言文字运用:构词方式+错别字+语病专练
- 农资产品购买与使用免责协议
- 《公路边坡灾害监测技术指南》
- 腹腔镜手术皮下气肿处理
- 《幼儿园班级管理》:幼儿园班级管理原则
- 耳针法(耳穴埋豆)操作评分标准
- 建筑信息模型施工应用标准
- 华为公司员工手册培训
- 碳酸盐岩的成岩作用课件
- QC工作流程图模板
评论
0/150
提交评论