SQL Server第2次课.ppt

上传人:gsy****95 文档编号:88512604 上传时间:2023-04-26 格式:PPT 页数:90 大小:768KB
返回 下载 相关 举报
SQL Server第2次课.ppt_第1页
第1页 / 共90页
SQL Server第2次课.ppt_第2页
第2页 / 共90页
点击查看更多>>
资源描述

《SQL Server第2次课.ppt》由会员分享,可在线阅读,更多相关《SQL Server第2次课.ppt(90页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1.2.3 组织层次数据模型 n从数据的组织方式的角度来描述信息 n最常用的数据模型有四种:n层次模型n网状模型n关系模型n面向对象模型 关系模型n关系模型就是用关系表示现实世界中实体以及实体之间联系的数据模型。n包括:(1)关系数据结构;(2)关系数据操作;(3)关系完整性约束。1 关系模型的数据结构 n把数据看成是二维表中的元素,而这个二维表就是关系;n用关系(表格数据)表示实体和实体之间联系的模型称为关系数据模型n示例:学生基本信息表。学生信息表学号姓名年龄性别政治面貌系专业2010001张三2010002201000320100042010005关系模式 关系的“型”或元组的结构共性

2、表头表头(关系模式)元组元组属性1属性2属性n关系模型中的基本术语 n关系:关系就是二维表。并满足如下性质:n关系表中的每一列都是不可再分的基本属性;n表中的各属性不能重名。(行、列次序并不重要)关系模型中的基本术语n元组:表中的每一行称作是一个元组,它相当于一个记录值。n属性:表中的每一列是一个属性值集,列可以命名,称为属性名。二维表的结构称为关系模式;或者说关系模式就是二维表的表框架或结构,它相当于文件结构或记录结构。关系模式REL(A1,A2,An)关系名称各属性名称关系模式的例题n图1-12银行关系:银行(银行代码,银行名称,电话,负责人)n图1-12贷款关系 贷款(银行代码,法人代码

3、,贷款日期,贷款金额,贷款年限)候选关键字n如果一个属性集的值能够唯一表示一个关系的元组而不含有多余属性,则称该属性集为候选关键字。n简言之,候选关键字就是能唯一表示一个关系的元组的最小的属性集。n学生档案表。学号各不相同。候选关键字学号学号姓名姓名年龄年龄性别性别政治面貌政治面貌系系专业专业20100012010001张三张三20100022010002201000320100032010004201000420100052010005候选关键字n候选关键字可以有一个属性组成,也可以由多个属性组成。n确定候选关键字与实际的语义、设计者的意图有关。候选关键字nP12-例题1 银行(银行代码,银

4、行名称,负责人)nP12-例题2:各家银行电话不同 银行(银行代码,银行名称,电话,负责人)nP12-例题3:贷款(银行代码,法人代码,贷款日期,贷款金额,贷款年限)P12P12-题目1银行代码法人代码贷款日期贷款金额贷款年限Y001p01 Y003p02 Y003p03P12-题目2银行代码法人代码贷款日期贷款金额贷款年限Y001p01 Y003p01 Y003p02 Y001p02 P12-题目3银行代码法人代码贷款日期贷款金额贷款年限Y001p012010-8-3 Y001p01 2010-8-4 Y001p022010-8-3 Y001p022010-8-66、主关键字n有时一个关系中

5、有多个候选关键字,这时就可以选择其中一个作为主关键字,简称关键字,或者主码,主键。n用于惟一地确定一行数据的一个属性或最小属性组。n每一个关系有且仅有一个主关键字。n主关键字的选取与具体的语义和系统需求相关。主关键字例题例题3 贷款(银行代码,法人代码,贷款日期,贷款金额,贷款年限)(假设一个法人只能贷一次款,一家银行可以有多个法人贷款)候选关键字:法人代码 主关键字:法人代码 当一个关系中有一个候选关键字时,则此候选关键字就是主关键字。7、主属性n包含在任一候选关键字中的属性称为主属性。n主属性未必在主码中。n例题1 银行(银行代码,银行名称,负责人)n例题2:各家银行电话不同 银行(银行代

6、码,银行名称,电话,负责人)8、非主属性n不包含在任一候选关键字中的属性称为非主属性。n例题1 银行(银行代码,银行名称,负责人)n例题2:各家银行电话不同 银行(银行代码,银行名称,电话,负责人)9、外部关键字n如果一个属性集不是所在关系的关键字,但是是其他关系的关键字,则该属性集称为外部关键字。n也称为外码或外键。外部关键字例题n贷款关系 (银行代码,法人代码,贷款日期,贷款金额,贷款年限)。外部关键字一般定义在联系中,用于表示两个或多个实体之间的关联关系。它实际上是表中的一个(或)多个属性,它参照某个其他表的主关键字,当然也可以是候选关键字。10、参照关系和被参照关系n在关系数据库中可以

7、通过外部关键字使两个关系关联,这种联系通常是一对多的,其中主关系称为被参照关系,从关系称为参照关系。n银行;贷款关系参照关系和被参照关系银行(银行代码,银行名称,负责人)贷款(银行代码,法人代码,贷款日期,贷款金额,贷款年限)学生(学号,姓名,专业,。)选课(学号,课程号,成绩)1.2.3.2关系模型的数据操作 主要包括:n传统的集合运算n专门的关系运算n关系数据操作关系模型的数据操作 n传统的集合运算:并、交、差、笛卡尔积n专门的关系运算:选择、投影、连接n关系数据操作:查询、插入、删除和修改数据n关系的基本运算包括选择、投影和联接。选择:从指定的关系中选择满足给定条件的元组组成新的关系。如

8、下图从关系成绩中选择计算机大于90的元组组成关系S1。专门的关系运算 投影:从指定关系的属性集合中选取若干个属性组成新的关系。如从关系成绩中选择“学号”、“姓名”、“英语”组成新的关系S2。专门的关系运算 联接:将两个关系中的元组按指定条件组合,生成新的关系。如将成绩1和成绩2按相同学号合并组成新的关系S3。专门的关系运算1.2.3.3关系模型的数据完整性约束 n数据完整性是指数据库中存储的数据是有意义的或正确的。n主要包括三大类:n实体完整性n参照完整性(引用完整性)n用户定义的完整性(域完整性,语义完整性)实体完整性n实体完整性指的是关系表中的所有的表都必须有主码,而且表中不允许存在如下的

9、记录:n无主码值的记录n主码值相同的记录 若属性A是基本关系R的主属性,则属性A不能取空值。实体完整性规则规定了关系的所有主属性都不可以取空值,而不仅仅是主关键字不能取空值。实体完整性例题银行代码银行名称电话负责人备注Y001p012010-8-3 Y002p02 2010-8-4 Y003p032010-8-8 Y004p042010-8-6参照完整性n不允许引用“主表内不存在的数据”。n外码:取作本表属性之一的外表主码(主码值先在其主表中生成,后在其他表中引用)学生课程修课(SNO,SNAME,)(CNO,CNAME,)(SNO,CNO,Grade,)外码引用例1 n 1职工部门(ENO,

10、DNO,ENAME)(DNO,DNAME)外码引用例2P14.例题4,5n例题4银行(银行代码,银行名称,电话,城市代码)城市(城市代码,城市名称)n例题5银行(银行代码,银行名称,电话)法人(法人代码,法人名称,经济性质,注册资金)贷款(银行代码,法人代码,贷款日期,贷款金额,贷款期限)参照完整性n参照完整性定义了外部关键字与主关键字之间的参照规则。参照完整性规则的内容:如果属性F是关系R的外部关键字,它与关系S的主关键字K相对应,则对于关系R中的每个元组在属性F上的值必须为:(1)或者取空值(F的每个属性均为空值);(2)或者等于S中某个元组的主关键字值。参照完整性n例题4银行(银行代码,

11、银行名称,电话,城市代码)城市(城市代码,城市名称)思考:贷款关系中的两个外部关键字“银行代码”和“法人代码”是否可取空值?用户定义的完整性n用户定义的完整性也称为域完整性或语义完整性。n按应用语义,属性数据有:n类型与长度限制:方便计算机操作n取值范围限制:防止属性值与应用语义矛盾语义许可取值范围约束例:成绩取n0.100,n优、良、中、及格、不及格 日期n入学日期 毕业日期1.2.4 实体联系模型向关系模型的转换实体联系模型向关系模型的转换n实体联系模型向关系模型的转换要解决的问题:(1)如何将实体和实体间的联系转换为关系模式;(2)如何确定这些关系模式的属性和关键字。将实体联系模型向关系

12、模型的转换就是要将实体、实体的属性和实体间的联系转换为关系模式。遵循的原则:(1)对于E-R图中的每个实体都应该转换为一个关系模式;(2)对于E-R图中的联系,需要根据实体联系方式的不同,采用不同的手段加以处理。实体联系模型向关系模型的转换二元联系的常用处理办法nP16,表1-3银行行长负责银行代码银行名称行长代码行长名称111:n关系的处理银行职员工作银行代码职员代码职员名称银行名称所在部门1nm:n关系的处理银行法人贷款银行代码法人代码法人名称银行名称经济性质mn贷款日期贷款金额1.3 数据库系统的结构 n数据库系统的三级模式结构 n数据库的二级模式映象功能与数据独立性 数据库系统的结构n

13、数据库系统的结构是数据库系统的一个总框架,可以从不同的角度考查数据库系统的结构。n从数据库管理系统的角度:采用三级模式结构,这是数据库系统内部的体系结构;n从数据库最终用户的角度:集中式结构、文件服务器结构、C/S结构、B/S结构,这是数据库系统外部的体系结构。1.数据库系统模式的概念 n模式是数据库中全体数据的逻辑结构和特征的描述n仅仅涉及型的描述,不涉及具体的值。n模式的一个具体值称为模式的一个实例。n模式是相对稳定的,实例是相对变动的。n数据模式描述某一类事物的结构、属性、类型和约束,实质上是用数据模型对一类事物的模拟,而实例是反映某类事物的某一时刻的当前状态。2.数据库系统的三级模式结

14、构 外模式(用户模式、子模式)n用户对现实系统中感兴趣整体的局部数据结构的描述。n是DB整体数据结构的子集或局部重构。n用外模式定义语言表达。n是保证数据库安全的一个措施。n外模式对应视图。模式(逻辑模式)n也称为逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据描述。n是数据库系统结构的中间层 n用模式定义语言表达。例,对关系数据库,定义:表头结构、属性取值范围、。n在关系数据库中,模式对应表。内模式(存储模式)n数据的存储结构的描述(数据的组织与存储)。n用数据库、索引定义语言描述。例,对RDB,定义数据文件的位置、索引的依据等。n内模式对应存储文件。数据库系统的三级

15、模式结构n在数据库系统中,外模式可以有多个,而模式、内模式只有一个。n内模式是整个数据库实际存储的表示,而模式是整个数据库实际存储的抽象,外模式是概念模式的某一部分的抽象表示。数据库的二级模式映象功能与数据独立性 n数据库系统的三级模式是对数据的三个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑地、抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式。n为了能够在内部实现这三个抽象层次的联系和转换,数据库管理系统在三级模式之间提供了两层映象:n外模式/模式映象n模式/内模式映象模式/内模式映象 n当存储结构改变时,可(由DBA)用内模式定义语句,调整内模式定义,从而保持

16、模式不变。数据和程序物理独立(存储独立)外模式/模式映象 n当模式改变时,可用外模式/模式定义语句,调整外模式/模式映象定义,从而保持外模式不变。数据和程序逻辑独立(概念独立)记住:n模式带来了存储数据独立性(物理独立性)。n外模式带来了概念数据独立性(逻辑独立性)。n各模式之间的映象(转换)是DBMS自动完成的。两个独立性是由两个映象提供的。1.4 关系数据库理论基础 n问题的提出 n解决问题的办法模式分解1.问题的提出 n关系数据库逻辑设计问题 n构造几个关系模式?n每个关系由哪些属性组成?例:S-L-C(Sno,Sdept,SLOC,Cno,Grade)其中:SLOC为学生住处(宿舍楼)

17、,设每个系的学生住在一个地方。主码为(Sno,Cno)关系模式中存在什么问题 SnoSdeptSLOCCnoGrade9812101计算机2公寓DB809812101计算机2公寓OS859821101信息1公寓C909821101信息1公寓DS 849821102信息1公寓OS 78教务管理系统n例:教务管理系统,需要存储下列信息:学号,姓名,系名,系主任名,课名,成绩 SNO,SNAME,SDEPT,MNAME,CNAME,GRADE设计一个关系模式:S=SNO,SNAME,SDEPT,MN,CNAME,G教务管理系统学号系别系主任课程名成绩01001电子系张三C+语言9501001电子系张

18、三密码学9001001电子系张三数字信号处理8501002电子系张三C+语言9401002电子系张三密码学9001002电子系张三数字信号处理8801003计科系李四C+语言9201003计科系李四操作系统9101003计科系李四编译原理9001004数学系王五数学分析96存在问题n数据冗余问题 n数据更新问题 n数据插入问题 n数据删除问题 1.4.2 规范化一、函数依赖二、1NF三、2NF四、3NF一、数据依赖一、数据依赖(1of4)n关系模式回顾n一个关系模式可写成一个五元组:R(U,D,DOM,F)其中 R:关系名,U:属性组,D:属性域,DOM:属性到域的映射。F:数据依赖集(属性间

19、)n为简化起见,把关系模式看作一个三元组:R n仅当定义在U上的集合r满足F时,R才称为关系模式R的一个关系。一、数据依赖(2 of 4)n数据依赖n数据依赖:是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系n数据依赖是现实世界属性间相互联系的抽象,是数据内在的性质n数据依赖是语义的体现数据依赖的分类n数据依赖共有三种:n函数依赖(Functional Dependency,FD)n多值依赖(Multivalued Dependency,MVD)n连接依赖(Join Dependency,JD)二、函数依赖n函数依赖定义:设R(U)是一个关系模式,U是R的属性集合(如U=A1,An

20、。X,Y为U的子集。如果R(U)的的所有关系r 都存在着:X的每一个值,都有Y的唯一值与之相对应,则称:X函数决定函数决定Y,或Y函数依赖X。记作XY。否则,记作XY称为X不能函数决定不能函数决定Y。nX XY Y可理解为可理解为:X有一个值,则Y有唯一的值与之相对应;而Y的一个值是否与唯一的X值对应,不去管。函数依赖n例题9。P22n例题10。P222、非平凡函数依赖与平凡函数依赖nXY,但Y不包含于X,则称X Y是非平凡函数依赖。否则为平凡函数依赖。例如:(法人代码,银行代码,贷款日期)贷款金额决定因素n若XY,则X就做决定因素。n法人代码法人名称。n(法人代码,银行代码,贷款日期)贷款金

21、额完全函数依赖n若XY,并且对于X的任意真子集X,有X Y,则称为Y完全依赖于X,记作:n若XY,但Y不完全依赖于X,则称为Y部分依赖于X,记作:传递函数依赖n若XY,YZ,则称为Z传递依赖于X,记作函数依赖的练习1n例题1 有关系模式SC(Sno,Sname,Cno,Credit,Grade)则,函数依赖关系有:SnoSname(Sno,Cno)Sname(Sno,Cno)GradePn例题2 有关系模式S(Sno,Sname,Dept,Dept_master),其中,各属性的含义分别为:学号,姓名,所在系和系主任(假设一个系只有一个系主任)则函数依赖关系有:Sno Sname Sno De

22、ptDept Dept_master所以,Sno Dept-master函数依赖的练习2函数依赖nS-L-C(Sno,Sdept,SLOC,Cno,Grade)SnoSdeptSLOCCNOGrade9901计算机2公寓Db909901计算机2公寓Os809901信息1公寓C669902信息1公寓DS782.解决问题的办法模式分解 n模式分解即把一个关系模式分解成两个或多个关系模式,在分解的过程中消除那些“不良”的属性依赖关系,从而获得好的关系模式。n分解过程中不能破坏原来的应用语义 n所谓属性依赖关系是指:模式中的某个属性的值可以由模式中其他属性惟一确定。n分解过程:消除部分依赖和传递依赖。

23、S-L-C被分解为如下三个关系模式 Student(Sno,Sdept)SC(Sno,Cno,Grade)SLoc(Sdept,SLoc)一、范式定义一、范式定义n范式定义n范式(NF)是符合某一种级别的关系模式的集合。n5NF4NFBCNF3NF2NF1NFn若R(U,F)符合x范式的要求,则称R为x范式,记作:RxNF1NF 2NF 3NF4NFBCNF5NF规范化的关系 n第一范式(1NF):每个列都是基本项的关系(即不包含非原子项的属性)即为第一范式。我们前边所列出的所有表都属于第一范式。n不满足1NF的数据库模式不能称为关系数据库n满足1NF的数据库并不一定是一个好的关系模式第一范式

24、(1NF)n例1:学生(学号,姓名,学院,地址,选修课程成绩(课程号,课程名,成绩)表数据如下:学号姓名学院地址选修课程成绩(课程号,课程名,成绩)9901张丽管理管201C001,高等数学,909901张丽管理管201C002,英语,809901张丽管理管201C003,计算机,669902李锋电子电101C004,法律,78第一范式(1NF)学号姓名学院地址课程号课程名成绩9901张丽管理管201C001高等数学909901张丽管理管201C002英语809901张丽管理管201C003计算机669902李锋电子电101C004法律78第二范式(2NF)n第二范式(2NF):若1NF表中每

25、个非码主属性都完全依赖于主码,则属于第二范式。n例:将属于第一范式的SLC进行投影分解,消除其中的部分函数依赖,就可达到第二范式。SC(Sno,Cno,Grade)2NF SL(Sno,Sdept,Sloc)2NF如何判断一个表是否满足第二范式如何判断一个表是否满足第二范式n(1)找出表的关键字。n(2)如果只有一个关键字,若每一个非关键字都依赖于这个关键字,则表满足第二范式,否则不是。n(3)如果有两个或两个以上的关键字,那么,把这些关键字看成是一个组合关键字,若每一个非关键字都能完全依赖于组合关键字,则表满足第二范式,否则不是。第一范式转换成第二范式的方法:第一范式转换成第二范式的方法:n

26、找出依赖关系,将能完全依赖于主键的字段从表中提取出来,同主键一起组成一个新的关系。n表二(学号,姓名,学院,地址,课程号,课程名,成绩)的依赖关系如下:第一范式转换成第二范式第一范式转换成第二范式n应该拆分成三个表:n表A(学号、姓名、学院、地址)n表B(课程号、课程名)n表C(学号、课程号、成绩)第三范式(3NF)n通过分析,发现表A仍然在一定程度上存在上面提及的三个问题,要消除和减少它们,还得把它分解成满足更高范式(即3NF)的表.n满足第三范式的判断方法:满足第三范式的判断方法:n判断表在满足第二范式的基础上是否有传递依赖的情况,判断表在满足第二范式的基础上是否有传递依赖的情况,如果有,

27、不是第三范式,否则是。如果有,不是第三范式,否则是。将非第三范式规范为第三范式的方法:将非第三范式规范为第三范式的方法:n把产生传递依赖关系的非关键字段抽出来,同关键字一起建立新的把产生传递依赖关系的非关键字段抽出来,同关键字一起建立新的表。表。n例:表例:表A(学号学号,姓名,学院,地址,姓名,学院,地址)中,存在地址传递依赖于学号中,存在地址传递依赖于学号的关系,即:的关系,即:n学号学号学院,学院学院,学院地址。地址。n把地址从原表中分出来,同关键字一起建立新的表形成表把地址从原表中分出来,同关键字一起建立新的表形成表A1(学学院院、地址)、地址),原表就可消除了传递依赖关系。表原表就可消除了传递依赖关系。表A分解为:分解为:n表表A1(学院学院、地址)、地址)n表表A2(学号学号、姓名、学院)、姓名、学院)小结 n表的规范化中,1NF是要满足每个字段都是不可再分的;2NF是在1NF的基础上消除部分依赖关系(只保留完全依赖),3NF是在2NF的基础上进一步消除传递依赖关系。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁