第1页,共37页第1章数据库管理系统基础知识1.1数据库系统概述一、基本概念1.数据2.数据库(DB)3.数据库管理系统(DBMS)Access小型VFPSQLserverOracle大型DBMSMySQLDB24.数据库系统(DBS)数据库(DB)数据库管理系统(DBMS)开发工具应用系统二、数据管理的三个发展阶段人工管理文件系统数据库系统数据能否保存不能保存可以保存可以保存数据面向的对象某一应用程序某一应用程序整个应用系统数据的共享程度无共享,一组数据只能对应一个应用程序。共享性差,一个数据文件只能对应一个应用程序。共享性高数据的独立性不独立,它是应用程序的一部分。独立性差数据库与应用系统完全分开三、数据库系统的体系结构①单机结构:DBMS、数据库、开发工具、应用系统安装在一台计算机上。②C/S结构:局域网结构客户机:装开发工具、应用系统服务器:装DBMS、数据库③B/S结构:Internet结构第2页,共37页服务器:装DBMS、数据库、开发工具、应用系统客户机:装IE即可四、数据库系统的模式结构1.三级模式①模式:是数据库中全体数据的逻辑结构和特征的描述。a)模式只涉及数据库的结构;b)模式既不涉及应用程序,又不涉及数据库结构的存储;②外模式:是模式的一个子集,是与某一个应用程序有关的逻辑表示。特点:一个应用程序只能使用一个外模式,但同一个外模式可为多个应用程序使用。③内模式:描述数据库结构的存储,但不涉及物理记录。2.两级映像①模式/外模式映像:保证数据库的逻辑独立性;②模式/内模式映像:保证数据库的物理独立性;3.两级映射的意义①使数据库与应用系统完全分开,数据库改变时,应用系统不必改变。②数据的存取完全由DBMS管理,用户不必考虑存取路径。五、数据库管理系统1.DBMS的功能:负责对数据库进行统一的管理与控制。①数据定义:包括定义数据库的模式,内模式和外模式,以及它们的映像,定义有关的约束条件。②数据操纵:包括对数据库进行查询、插入、删除、修改等操作。③数据控制:包括安全性控制、完整性控制、并发控制、数据库恢复。2.DBMS的组成:DDL语言DML语言DCL语言实用程序注意:①SQL集DDL,DML,DCL功能于一体;②SQL既是宿主型语言,又是嵌入式语言;③所有应用程序通过SQL语句才能访问数据库1.2数据模型第3页,共37页1.2.1数据模型的广义分类概念数据模型(简称概念模型)层次模型逻辑数据模型(简称数据模型)网状模型关系模型物理数据模型(简称物理结构)1.2.2概念模型一、三个世界1.现实世界2.信息世界:即根据需求分析画E-R图,E-R图与DBMS无关。3.机器世界:将E-R图转换为某一种数据模型,数据模型与DBMS相关。二、实体及属性1.实体:客观存在并可相互区别的人、事、物。2.属性:3.关键字(码、key):能唯一标识每个实体又不含多余属性的属性组合。一个表的码可以有多个,但主码只能有一个。例:借书表(学号,姓名,书号,书名,作者,定价,借期,还期)规定:学生一次可以借多本书,同一种书只能借一本,但可以多次续借。4.实体型:即二维表的结构例student(no,name,sex,age,dept)5.实体集:即整个二维表三、实体间的联系:1.两实体集间实体之间的联系第4页,共37页1:1联系1:n联系m:n联系2.同一实体集内实体之间的联系1:1联系1:n联系m:n联系四、概念模型:常用E-R图表示。实体型:属性:联系:说明:①E-R图作为用户与开发人员的中间语言。②E-R图可以等价转换为层次、网状、关系模型。例1:学校有若干个系,每个系有若干班级和教研室,每个教研室有若干教员,其中有的教授和副教授每人各带若干研究生。每个班有若干学生,每个学生选修若干课程,每门课程有若干学生选修。用E-R图画出概念模型。第5页,共37页例2:某工厂生产若干产品,每种产品由不同的零件组成,有的零件可用在不同的产品上。这些零件由不同的原材料制成。不同零件所用的材料可以相同。这些零件按所属的不同产品分别放在仓库中,原材料按照类别放在若干仓库中。请用E-R图画出工厂产品、零件、材料、仓库的概念模型。参考答案:1.2.第6页,共37页1.2.3数据类型一、层次模型:用树型结构表示实体之间的联系。①每个节点代表一个实体型。②只能直接处理一对多(含一对一)的实体关系。③查找层次数据库中的记录,速度较慢。二、网状模型:用图结构表示实体之间的联系。①每个节点代表一个实体型。②可以处理多对多的实体关系。③查找网状数据库中的记录,速度最快。三、关系模型:用二维表表示实体之间的联系。1.基本术语:①关系:一个关系就是一个二维表;②元组:二维表的一行,即实体;③关系模式:在实体型的基础上,注明主码。④候选码:一个关系模式可以有多个候选码。⑤主码:任选候选码中的一个。⑥主属性:主码中包含的各个属性。⑦非主属性:不包含在主码中的各个属性。⑧外码:设F是关系R的一个属性,不是R的主码,但却是另一个关系S的主码(或唯一约束),则称F是关系R的外码。例:student(sno,sname,ssex,sage,sdept)Sc(sno,cno,grade)Sc的主码为:(sno,cno);外码为:sno2.特点:①关系模型是建立在严格的数学理论的基础上的;②关系模型的存取路径对用户透明;③查找关系数据库中的记录,速度最慢。小结:数据有三种类型,DBMS就有三种类型,DB亦有三种类型。3.关系的完整性第7页,共37页①实体完整性:指关系的所有主属性都不能取空值。注意:实体完整性不仅仅是主码整体不能取空值。②参照完整性:指一个关系外码的取值必须是相关关系中主码的有效值或空值。例:班级(班名,人数)学生(学号,姓名,性别,密码,班名)在学生表中,班名的取值必须是班级表[班名]的值或空值。1.4关系数据库的规范化1.4.1函数依赖一、有关概念:R表XHKHKMXMDZCJ961C1OS高明D170962C2DBS高飞D272962C4AI高飞D280962C1OS高明D175963C1OS高明D1901.函数依赖:任给R(U),U为属性集,x、y为U的子集,如果对于x的每个值,y有唯一确定的值与之对应,则称x决定y,或y函数依赖于x。记为:x→y。例:KH→KMXM→DZ(XH,KH)→CJKH→(KM,XM)第8页,共37页2.完全函数依赖:若x→y,且对于x的所有真子集x′,都有x′y,则称x完全决定y,或y完全函数依赖于x。记为:yxf。例1:(XH,KH)→CJ但XH→CJKH→CJ故CJKHXHf),(例2:KH→KM则KMKHf结论:若x→y,且x只包含一个属性,则yxf。3.部分函数依赖:若x→y,且存在x的一个真子集x′,满足x′→y,则称x部分决定y,或y部分函数依赖于x。记为:yxp。例1:(KH,KM)→XM但KM→XM则XMKM(KHp),例2:(XH,KH)→DZ但KH→DZ则DZKH(XHp),4.传递函数依赖:第9页,共37页若x→y,y→z,但y∕x,则zxt例:KM→XM,XM→DZ,但XM∕KM二、平凡函数依赖与非平凡函数依赖设x→y,如果y是x的子集,则该依赖是平凡的。如:Sno,sname→sno如果y中至少有一个属性不在x中,则该依赖是非平凡的。如:Sno,sname→sname,sdept如果y中没有一个属性在x中,则该依赖为完全非平凡的。三、函数依赖的推理规则设有关系R,x、y、z为R的一个属性集,则有:①自反律:若xy,则x→y。②增广律:若x→y,则xz→yz。③传递律:若x→y,y→z,则x→z。注意传递律与传递函数依赖的区别。④合并律:若x→y,x→z,则x→yz。⑤分解律:若x→yz,则x→y,x→z。任何一个属性集决定着它的子集。1.4.2问题提出请指出R表存在哪些问题?R表XHKHKMXMDZCJ961C1OS高明D170962C2DBS高飞D272962C4AI高飞D280962C1OS高明D175963C1OS高明D190答:存在问题①数据冗余大;②修改麻烦;③插入异常:应该插入到DB中的数据插不进去。如:新开课程没有学生选修时,新开课程的课程号、课程名插不进去。④删除异常:不应该删除的数据被删掉。如选修某门课的学生毕业了,在删除学生信息的同时,把课程信息也删除掉。第10页,共37页结论:一个好的关系模式应满足:①冗余应尽可能少;②应尽可能避免插入、删除异常;③消去关系中不合适的属性依赖关系。1.4.3范式一、关系规范化1.什么叫范式?指一个关系的非主属性函数依赖于主码的程度。2.什么叫关系规范化?指一个关系从低级范式向高级范式的转换过程。NFNFBCNFNFNFNF543213.应用:关系规范化理论应用在逻辑结构设计阶段。二、第一范式(1NF)1.定义:若关系R的所有属性不能再分,则R∈1NF2.存在问题3.原因:存在非主属性对主码的部分依赖。DZKHXHXMKHXHpp),(),(KMKHXHCJKHXHpf),(),(4.解决办法:消除非主属性对主码的部分依赖,将关系R一分为二。①将满足完全依赖的属性集组成一个关系;②将满足部分依赖的属性集组成另一个关系;R1表R2表XHKHCJKHKMXMDZ961C170C1OS高明D1962C272C2DBS高飞D2962C480C4AI高飞D2962C175963C190R1主码:(XH,KH)R2主码:KH第11页,共37页三、第二范式(2NF)1.定义:若关系R∈1NF,且它的每个非主属性都完全依赖于主码,则称R∈2NF。2.存在问题:①冗余大:R1必要冗余,R2冗余可以修改。②修改麻烦③插入异常:如新来的教师没有上课,则该教师的信息就没办法插入R2表中。④删除异常:若某位教师只授一门课,当该门课不开时,该教师的信息亦被删除。3.原因:存在非主属性对主码的传递依赖。KH→XM,XM→DZ,但XMKH∴DZKHt[传递依赖必须有两个非主属性]4.解决办法:将R2一分为二R21表R22表KHKMXMXMDZC1OS高明高明D1C2DBS高飞高飞D2C4AI高飞R21主码:KHR22主码:XM四、第三范式(3NF)1.定义:若关系R∈2NF,且它的每个非主属性都不传递依赖于主码,则称R∈3NF。2.规范化过程非规范关系↓使每个属性都不能再分1NF↓消去非主属性对主码的部分依赖2NF↓消去非主属性对主码的传递依赖3NF3.结论①若R∈1NF,且主码只含一个属性,则R一定为2NF。②若R∈2NF,且只有0~1个非主属性,则R一定为3NF。③3NF一般控制了数据冗余,一般避免了操作异常。第12页,共37页④范式并非越高越好,适可而止。附加练习题一、简答题1.设有关系R(A,B,C,D,E),属性间的函数依赖关系为:A→B,A→C,C→D,D→E,若把关系R分解为R1(A,B,C)与R2(C,D,E),试确定R1与R2满足的范式等级。2.设关系模式R(A,B,C,D),F是R上成立的FD集,F={AB→CD,A→D}。(1)试说明为什么R不是2NF模式。(2)试把R分解成2NF模式。3.设关系模式R(A,B,C),F是R上成立的FD集,F={C→B,B→A}。(1)试说明为什么R不是3NF模式?(2)试把R分解成3NF模式。4.设有关系模式R(A,B,C,D),F是R上成立的函数依赖集,F={A→B,A→C}。请写出R的主码,并说明理由。5.设关系模式R(S#,C#,TNAME),其属性为学生学号,课程号,任课教师姓名,如果规定,每个学生可选修多门课;每门课只有一个教师任教。(1)写出R的基本FD和主码。(2)说明为什么R不是2NF模式?(3)试把R分解成2NF模式集。二、综合题1.设某商业集团数据库中有一个关系模式为:R(商店编码、顾客编码、消费总额、顾客单位、地址、电话)该模式的关系记载每个顾客在每个商店的累计消费总额。如果规定:①每个顾客在每个
本文标题:《数据库原理》
链接地址:https://www.777doc.com/doc-6411850 .html