版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
重庆航天职业技术学院/detail/235897295数据库应用(SQLServer)模块2关系模型与逻辑设计能运用关系模型的基本知识将概念模型转化为关系模型。能应用范式理论对关系模型进行规范化和优化。能根据完整性规则对关系模型进行实体完整性、用户定义完整性和参照完整性设计。模块2关系模型与逻辑设计
任务设计2.1认识关系模型2.2认识关系操作2.3认识关系完整性约束2.4认识E-R模型到关系模型的转换2.5认识关系规范化2.6任务训练模块2关系模型与逻辑设计2.1任务1:认识关系模型掌握关系模型的基本概念1
理解术语的不同对照
2任务目标:2.1任务1:认识关系模型逻辑设计阶段的任务是设计数据库的逻辑结构,将概念结构转换为某个DBMS所支持的数据模型(如关系模型),并对其进行优化。目前应用最广泛的关系数据库都是用关系数据模型(简称关系模型)来组织数据的,关系模型以关系代数为基础处理数据库中的数据,并且拥有许多性能良好的关系数据库管理系统(RDBMS)作为软件支持。2.1.1关系模型组成要素1.关系模型组成要素关系模型由数据结构、数据操作和数据完整性约束3部分组成。(1)关系数据结构
数据结构是所研究的对象类型的集合。这些对象是数据库的组成成分,它们包括两类,一类是与数据类型、内容、性质有关的对象,另一类是与数据之间的联系有关的对象。
关系模型的数据结构非常单一,在关系模型中,概念世界的实体及实体间各种联系均用关系来表示。在用户看来,关系模型中的逻辑结构是二维表的集合。数据结构用于描述系统的静态特征。DBMS的DDL实现数据库的数据结构定义功能。2.1.1关系模型组成要素(2)关系数据操作数据操作是指对数据库中各种数据对象允许执行的操作的集合,包括操作及有关的操作规则,主要有检索和更新(包括插入、删除、修改)两大类操作。数据模型必须定义这些操作的确切含义、操作符号、操作规则及实现操作的语言。数据操作用于描述系统的动态特性。DBMS的DML实现数据库的数据操作功能。(3)关系数据完整性约束数据的约束是一组完整性规则的集合。完整性规则是数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态及状态的变化,以保证数据的正确性、有效性和一致性。DBMS的DDL和DCL实现数据库的数据完整性约束功能。2.1.1关系模型组成要素2.关系模型的特点(1)数据结构单一数据结构单一也称模型概念单一化,特点如下:•关系的定义用关系表示(元关系)。•实体和实体之间的联系也是关系。•关系的运算对象和运算结果都是关系。(2)采用集合运算•关系是元组的集合,所以对关系的运算就是集合运算。•关系的运算对象和结果都是集合,可采用数学上的各种集合运算。2.1.1关系模型组成要素2.关系模型的特点(3)数据完全独立•只需告诉系统“做什么”,不需要指出“怎么做”。•程序和数据各自独立。(4)数学理论支持•有集合论、数理逻辑作为其基础。•能够以数学理论为依据对数据进行严格定义、运算和规范化。2.1.2关系模型平时大家接触得最多的各种应用程序,但其实际上只是处理数据的程序,它的数据信息是从某个数据源得到的,这个数据源之一就是数据库(DataBase,DB)。数据库好像是一个数据仓库,存放着与应用程序相关的一些基础数据,且这些数据通常以二维表的形式存放,表与表之间互相关联,这种存放数据的模型就是关系模型,以关系模型创建的数据库称为关系数据库。2.1.2关系模型1.关系关系(Relation)是满足一定条件的二维表。在关系模型中,无论概念世界中的实体还是实体之间的联系均由关系(二维表)来表示,并且满足以下特性。关系(表)的每一元组(行)定义实体集的一个实体,每一列定义实体的一个属性。每一列表示一个属性,且列名不能重复。关系必须有一个主码(关键字),用来唯一表示一个元组(行),即实体。列的每个值必须与对应属性的类型相同。列是不可分割的最小数据项。行、列的顺序无关紧要。2.1.2关系模型名称定义说明关系一个由行和列组成的二维表学生表、课程表和选课表都是一个关系元组表中的一行即为一个元组一行信息就是一个元组属性表中的一列即为一个属性学生表中的学号、姓名、性别等码能唯一确定表中一个元组的属性学生表中的学号,课程表中的课程号域属性的取值范围如成绩在0~100之间,性别为男或女分量元组中的一个属性如某个学生姓名为“张三”,就是姓名的一个分量名称定义说明候选码(CandidateKey)能唯一表示关系中的一个元组的属性或属性组,则称该属性或属性组为候选码,候选码可以有多个学生情况表中的学号,若再增加一个属性身份证号码的话,两者均为候选码,因能唯一标识关系中任一元组(学号或身份证号是不重复的)主码(PK)(PrimaryKey)关系中的某个属性或属性组能唯一确定一个元组,即确定一个实体,一个关系中的主码只能有一个,主码也称为码或关键字学生情况表的学号、课程表中的课程号,选课表中的学号和课程号的组合外码(FK)(ForeignKey)一个关系中的属性或属性组不是本关系的主码,而是另一关系的主码,则称该属性或属性组是该关系的外码,也称为外键课程号在课程表中是主码,但在选课表中是外码2.1.2关系模型2.关系模式为了形象化地表示一个关系,引入关系模式来表示关系。对关系的描述,一般为关系名(属性1,属性2,……,属性n),若某一属性或属性组为主码,用下划线表示。例如:教务管理系统学生选课部分的3个关系模式分别如下。学生(学号,姓名,性别,出生日期,专业)Student(SID,Sname,Sex,Birthday,Specialty)课程(课程编号,课程名,学时,学分)Course(CID,Cname,Period,Credit)选课表(学号,课程号,成绩)SC(SID,CID,Grade)主键:学号,课程号,学号和课程号组合键PK:SID,CID,SID和CID外码:学号,课程号FK:SID,CID2.2任务2:认识关系操作理解关系的传统集合运算1掌握专门的数据库关系运算2任务目标:2.2任务2:认识关系操作关系操作是以关系代数为基础的,用对关系的运算来表达各种操作。一类是传统的集合运算,如并、交、差等,另一类是专门用于数据库操作的关系运算,如选择、投影和连接等。2.2.1传统集合运算传统的集合运算是二目运算,包括并、交、差、广义笛卡尔积四种运算。设关系R和关系S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域,t是元组变量(仅用于并、交、差),关系R为喜欢跳舞的学生,关系S为喜欢唱歌的学生,分别如表2-3和表2-4所示。2.2.1传统集合运算1.并(Union)记作R∪S公式:R∪S={t|t∈R∨t∈S}语义:t元组属于R或者属于S。图示:如图2-2所示。
【例2-1】运算出喜欢羽毛球或喜欢篮球的学生,如表2-5所示。2.2.1传统集合运算2.差(Difference)记作R-S公式:R-S={t|t∈R∧t
S}语义:t元组属于R,但不属于S
图示:如图2-3所示。
【例2-2】运算出喜欢羽毛球但不喜欢篮球的学生,如表2-6所示。2.2.1传统集合运算3.交(Intersection)记作R∩S公式:R∩S={t|t∈R∧t∈S}=R-(R-S)语义:t元组属于R并且属于S。
【例2-3】运算出既喜欢羽毛球又喜欢篮球的学生,如表2-7所示。2.2.1传统集合运算4.笛卡尔积(CartesianProduct)假设关系R为n列(n个属性),k1行(k1个元组);关系S为m列(m个属性),k2行(k2个元组)。语义:笛卡尔积仍是一个关系,该关系的结构是R和S结构之连接,即前n个属性来自R,后m个属性来自S,该关系的值是由R中的每个元组连接S中的每个元组所构成元组的集合。公式:R
S={t|t=﹤tr,ts﹥∧tr
R
ts
S}注意:新关系的属性个数等于n+m,元组个数等于k1*k2。【例2-4】关系R中,n=2,k1=2,关系S中,m=3,k2=4,笛卡尔积后如图2-5所示。2.2.2专门的关系运算专门的关系运算既可以从关系的水平方向进行,也可以从关系的垂直方向进行,包括投影、选择和连接3种运算。1.投影假设t是关系R中的一个元组,A是要从R中投影出的属性子集。公式:ΠA(R)={t.A|t∈R}语义:从关系R中按所需顺序选取若干个属性构成新的关系。注意:新关系的元组数小于或等于原关系的元组数,新关系的属性数不多于原关系中的属性数。投影操作是从列的角度进行的运算。【例2-5】运算出学生情况关系R(如图2-6)中的学生学号、姓名、性别的情况,投影运算结果如图2-7所示。提示:图2-6检索语句为:select*fromstudent
图2-7检索语句为:selectSID,Sname,Sexfromstudent2.2.2专门的关系运算2.2.2专门的关系运算
2.选择选择又称为限制(Restriction),它是在关系R中选择满足给定条件的元组。假设t是关系R中的一个元组,F(t)为元组逻辑表达式。公式:σF(t)(R)={t|t∈R∧F(t)=‘真’}语义:选择运算实际上是从关系R中选取使逻辑表达式F(t)为真的元组。注意:运算结果的元组数不多于原关系中的元组数,选择是从行的角度进行的运算。【例2-6】运算出学生情况关系R(如图2-6)中选择男生,如图2-8所示。提示:图2-8检索语句为:select*fromstudentwhereSex='男'2.2.2专门的关系运算
3.连接(Join)假设A和B分别是关系R和S的属性,记作R.A和S.B。t是连接关系中的一个元组。公式:语义:对两个关系R和S的笛卡尔积,按相应属性值的比较条件θ进行选择,生成一个新关系,也称为θ连接。(1)等值连接(equi-join)如果在R和S的连接运算中,比较条件为等于,即R×S+选择(θ为=),则在关系R和S的笛卡尔积中,按相应属性值的比较条件θ进行选择,这是最有实际意义的一种连接。(2)自然连接(Naturaljoin)是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉,即等值连接+去重复属性,记作:思考与练习1.现有如下关系:患者(患者编号,患者姓名,性别,出生日期,所在单位)医疗(患者编号,医生编号,医生姓名,诊断日期,诊断结果)其中,医疗关系中的外码是()。A.患者编号B.患者姓名C.患者编号和患者姓名D.医生编号和患者编号2.关系代数的R∩S运算等价于(
)。A.
R-(R-S)
B.
S-(R-S)
C.
R∪(R-S)
D.
S∪(R-S)参考答案:1.A2.A2.3任务3:认识关系完整性约束掌握关系完整性约束的基本概念1掌握关系完整性约束的设计
2任务目标:2.3任务3:认识关系完整性约束关系完整性约束是保证关系模型(表)中数据的正确性、一致性和有效性,防止数据被破坏。关系完整性包括实体完整性、用户定义完整性和参照完整性三个方面。每种完整性都对应相应的完整性规则,需要用户在定义关系数据库时给出相应的定义。2.3.1实体完整性2.3.2用户(含域)定义完整性2.3.3参照完整性2.4任务4:认识E-R模型到关系模型的转换掌握实体转换为关系模式的方法1掌握联系转换为关系模式的方法2任务目标:2.4任务4:认识E-R模型到关系模型的转换E-R图向关系模型的转换,要解决的问题是如何将实现实体和实体间的联系转换为关系模式,如何确定这些关系模式的属性和码。本节将介绍把E-R图中实体、实体的属性和实体之间的联系转换为关系模式遵循的原则。2.4.1实体(E)转换为关系模式的方法一个实体转换为一个关系模式,实体的属性就是关系的属性,实体的主码就是关系的主码,ER图中有几个实体就转换为几个关系。例如:学生实体转换为关系模式。实体学生:学生(学号、姓名、性别、出生日期、专业)主键:学号关系模式:Student(SID,Sname,Sex,Birthday,Speciality)PK:SID2.4.2联系(R)转换为关系模式的方法ER模型向关系模型转换时,除了将实体转换为关系外,还需要将实体之间的联系正确转换为关系。实体之间的联系类型不同,转换规则也不同。1.一对一(1:1)将联系与任意端实体所对应的关系模式合并,并加入另一端实体的主码和联系本身的属性。【例2-10】假设实体班级(班级号,班级名)与实体班长(学号、姓名)之间的任职联系是1:1的联系。ER模型如图2-14所示,试将其转换为关系模型。将联系与任意端实体所对应的关系模式合并,加入另一端实体的码和联系的属性。实体班级(班级号,班级名)与实体班长(学号、姓名)转换为关系分别为:Class(ClassID,ClassName)PK:ClassIDMonitor(SID,Name,ClassID,EmployedDate)PK:SIDFK:ClassID2.4.2联系(R)转换为关系模式的方法2.一对多(1:n)将联系与多端实体所对应的关系模式合并,加入一端实体的主码和联系的属性。【例2-11】图书管理系统中,实体读者类型与实体读者的联系是1:n的。ER模型如图2-15所示,试将其转换为关系模型。实体读者(读者编号、姓名)和实体读者类型(类型编号、类型名称、限借数量、限借天数)转换为关系分别为:Reader(RID,Rname)PK:RIDReaderType(TypeID,Typename,LimitNum,LimitDays)PK:TypeID由于读者类型与读者之间的联系是一对多(1:n),将联系的属性借阅数量和一端的主码放在多端,故此ER图转换后的关系为
Reader(RID,Rname,TypeID,Lendnum),增加外键(FK):TypeID,读者类型实体转换后的关系不变。2.4.2联系(R)转换为关系模式的方法3.多对多(m:n)将联系转换为一个关系模式。将联系相连的各实体的主码和联系本身的属性转换为关系的属性。【例2-12】教务管理系统之学生选课子系统中,实体学生和实体课程的联系是多对多(m:n)的。ER模型如图2-16所示,试将其转换为关系模型。2.4.2联系(R)转换为关系模式的方法
实体学生(学号,姓名,性别,出生日期,专业)和实体课程(课程号,课程名,学时,学分)之间的联系是多对多(m:n)的,转换为关系后新增一关系选课(学号,课程号,成绩),转换后的关系模式为:Student(SID,Sname,Sex,Birthday,Specialty)PK:SIDCourse(CID,Cname,Period,Credit)PK:CIDSC(SID,CID,Grade)PK:SID和CIDFK:SID,CID2.4.2联系(R)转换为关系模式的方法【例2-13】图书管理系统中借阅ER模型如图2-17,试将其转换为关系模型。2.4.2联系(R)转换为关系模式的方法首先,将中文实体、联系和属性名转换为英文标识的标准命名标识符。读者:Reader,读者编号:RID,姓名:Rname,读者类型:TypeID,已借数量:Lendnum。图书:Book,图书编号:BID,书名:Bname,作者:Author,出版社:PubComp,出版日期:PubDate,定价:Price。借阅:Borrow,借期:LendDate,还期:ReturnDate。实体读者和实体图书的联系是多对多的,借阅联系转换成一个关系模式Borrow,其属性有读者编号RID和图书编号BID,再加上两个实体的联系借期LendDate和还期ReturnDate,由于实体读者类型和实体读者的联系是1:n,见图2-16,则转换后的关系模式为:Reader(RID,Rname,ReaderType,Lendnum)PK:RIDBook(BID,Bname,Author,PubComp,PubDate,Price)PK:BIDBorrow(RID,BID,Lendate,Lendnum)PK:RID、BID和LendateFK:RID,BID读者类型可进行拆分,将在2.5节对图书管理系统的数据模型进行规范化。2.5任务5:认识关系规范化掌握关系规范化的基本概念
1掌握对关系规范化的方法
2任务目标:2.5任务5:认识关系规范化数据系统逻辑设计的好坏要看数据库模式设计的好坏,一个数据模式设计的好坏又主要看所含的各个关系模式设计的好坏。如果各个关系模式结构合理、功能简单明确、规范化程度较高,就能确保所建立的数据库具有较少的数据冗余、较高的数据共享度、较好的数据一致性以及灵活和方便的数据更新能力。为了建立冗余较小、结构合理的数据库,构造数据库时必须遵循一定的规则,在关系数据库中这种规则就是范式。关系数据库的关系必须满足一定的要求,即满足不同的范式。基本概念解释如下。不规范:产生数据冗余,带来很多问题。规范:提高数据的结构化、共享性、一致性和可操作性。范式:规范化的程度和级别。规范化:在关系数据库中每个关系都需要进行规范化,使之达到一定的规范化程度。目前共有6种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、BC范式(BCNF)、第四范式(4NF)和第五范式(5NF),规范化程度依次增高,一般数据库要求满足到第三范式,所以本节只介绍到三范式。2.5.1第1范式1NF(FirstNormalForm)如果一个关系模式R的每个属性的域都只包含单纯值,而不是一些值的集合或元组,即关系模式R中的所有属性都是不可再分的,则称R是第一范式,记为R∈2NF。第一范式是最基本的范式。【例2-14】有一学生情况关系如表2-8所示,对其进行规范化。属性联系方式可以再分,不符合1NF的要求,方法一将联系方式属性进行分割,结果如表2-9所示;方法二分解为两个关系,如表2-10,2-11所示。
学号姓名性别联系方式手机座机2009051001杨静女13451690036028-861245782009051002夏宇男010-85265324010-852653242.5.1第1范式1NF(FirstNormalForm)2.5.2第2范式2NF(SecondNormalForm)如果关系模式R∈1NF,且它的任一非主属性都完全函数依赖于任一候选关键字,则称R满足第二范式,记为R∈2NF。提示:在一个关系R中,若某个非主属性数据项依赖于全部关键字称之为完全函数依赖;若某个非主属性数据项依赖于部分关键字称之为部分函数依赖。例如:关系模式:学生(学号,姓名,课程号,分数),其中候选关键字为{学号,课程号},依赖关系有:{学号,课程号}→分数,学号→姓名,此依赖关系说明非主属性依赖于部分主码,存在部分函数依赖。2.5.2第2范式2NF(SecondNormalForm)【例2-15】有一学生关系表,如表2-12所示。在此关系中,主码为(学号,课程号),其中,姓名、性别、出生日期、专业属性都依赖于学号,成绩属性依赖于学号和课程号,故必须将此关系分成两个表,如表2-13和表2-14所示。学号姓名性别出生日期专业课程号成绩2009051001杨静女1990-5-5计算机应用技术16020010962009051002夏宇男1989-4-27计算机应用技术16020012782009055001王丽女1991-7-5软件技术1602001067学号姓名性别出生日期专业2009051001杨静女1990-5-5计算机应用技术2009051002夏宇男1989-4-27计算机应用技术2009055001王丽女1991-7-5软件技术学号课程号成绩2009051001160200109620090510021602001278200905500116020010672.5.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026湖北十堰市茅箭区教育局所属学校招聘教师120人备考题库附答案详解(a卷)
- 2026新疆伊犁州霍城县良繁中心会社会招聘村干部1人备考题库及完整答案详解一套
- 2026江苏省连云港市第一人民医院招聘20人备考题库附答案详解(综合题)
- 2026湖南省益阳市教育系统第二批紧缺(急需)人才引进和公开招聘84人备考题库参考答案详解
- 2026北京市中科启元学校招聘备考题库及完整答案详解
- 2026安徽铜陵市安徽工业职业技术学院人才引进9人(第二批)备考题库带答案详解
- 2026年台州市临海市中小学公开招聘新教师53人备考题库及一套参考答案详解
- 2026重庆水务环境集团所属重庆市环卫集团有限公司招聘20人备考题库含答案详解(考试直接用)
- 2026广东广州从化城市建设投资集团有限公司(第一批)招聘17人备考题库及答案详解(有一套)
- 2026广东湛江市殡葬管理所招聘临聘人员2人备考题库附答案详解(黄金题型)
- 2023湖南高考历史真题
- 厦门市民族与宗教事务局补充招考1名非在编人员模拟预测(共500题)笔试参考题库+答案详解
- JJG 1192-2023电动汽车非车载充电机校验仪
- 飞轮储能技术基础
- SEW电机制动器课件
- 生产车间日常安全检查表
- 休克-最新课件
- 口腔固定修复体制作教学大纲
- 2B Lesson 15 The mud bath
- 铸件尺寸公差ISO806232007中文
- 大型活动策划与管理课程标准
评论
0/150
提交评论