- 1.72 MB
- 2022-04-29 14:23:32 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
'天津大学硕士研究生数据库技术课件
2.1数据库技术的三个阶段人工管理阶段文件系统阶段数据库系统阶段时间50年代中期以前50年代后期-60年代中期60年代后期—应用背景科学计算科学计算、管理大规模管理硬件背景无直接存取存储设备磁盘、磁鼓大容量磁盘软件背景没有操作系统有操作系统(文件系统)有DBMS处理方式批处理批处理联机实时处理批处理联机实时处理分布处理
三、数据库的数据模型1.数据模型是描述数据及数据间关系的工具。包括三个部分:数据结构;数据操作;完整性约束规则。2.数据模型的类型概念数据模型:用于将现实世界抽象为信息世界。独立于计算机软件和硬件。如实体-联系模型。结构数据模型:将信息世界抽象为计算机世界。独立于计算机硬件,依赖于计算机软件(DBMS).
现实世界客观事物的抽象过程现实世界信息世界:概念模型机器世界:具体DBMS支持的数据模型转换人的认识抽象
三、实体-联系模型(E-R模型)1.实体客观存在并相互区别的事物。如:具体的人、事、物;抽象的学生、选课等。2.实体集性质相同的同类实体的集合。如:所有的学生、所有的课程。3.属性实体所具有的某一特性。包含:属性的型:学生的姓名,系别……属性的值:张三,计算机系……4.实体型用实体名及其属性名集合来抽象和刻画同类实体。例如:学生(学号、姓名、系别……)
5.实体集间的联系(1)一对一联系(1:1)如:班级与班长部门与经理(2)一对多联系(1:n)如:班级与学生公司与职工(3)多对多联系(m:n)如:学生与课程职工与任务学生课程选课mn部门经理领导11公司职工工作1m
四、结构数据模型根据描述数据库的模式所使用的数据模型,可分为层次型、网状型、关系型和面向对象型四种基本类型。1.层次型代表系统:IBM的IMS20世纪60年代数据结构:树型结构优点:数据模型简单,能描述1:1、1:n联系、存取效率高。缺点:不能描述m:n联系,必须事先确定存取路径,难以改变实体集间的关系。
层次数据模型
2.网状型代表系统:CODASYL的DBTG数据结构:图结构优点:能描述m:n联系,存取效率高。缺点:必须事先确定存取路径,难以改变实体集间的关系,难学难用。
网状数据模型
3.关系型代表系统:ISO关系数据语言SQL数据结构:关系(可看作规范的二维表)优点:以集合论和数理逻辑作为理论基础,能描述多对多联系,存取效率较高,结构简单,操作灵活,易学易用。缺点:难以描述非结构化数据。是目前主流类型。
关系数据模型学号姓名性别年龄籍贯0101李勇男20江苏0102刘晨女19山东0103王明女20北京0199张立男18陕西学生情况简表
3.具有较高的数据独立性物理数据独立性:内模式改变时,不影响模式、外模式和应用程序。逻辑数据独立性:模式改变时,不影响外模式和应用程序。四、数据库的基本特征与文件系统相比较,数据库有以下基本特征:1.数据是结构化的:描述数据与数据间的联系,将整个组织的数据结构化成一个数据整体。2.数据共享,具有较小的数据冗余度,容易扩充。4.统一的数据控制和数据恢复功能数据完整性控制、数据安全性控制、数据并发性控制、数据恢复
2.2关系数据库一、基本概念1.关系定义设有属性A1、A2、…、An分别在域D1、D2、…、Dn中取值,则笛卡儿积D1╳D2╳…╳Dn的一个子集,称为域D1、D2、…、Dn上的一个关系。记为R。例如:姓名张三李四王五╳性别男女=张三男张三女李四男李四女王五男王五女关系
2.元组关系中的一个元素。3.元数一个关系中的所含属性的个数。4.关键字一个关系中能唯一标识每个元组的属性集合。也称为码。主关键字:被选中的关键字。候选关键字:未被选中的关键字。5.关系模式关系中的所含属性的集合。记为R(A1,A2,…,An)。如:关系模式:学生(学号、姓名、性别、年龄、籍贯)6.关系数据库关系模式及其各关系当前值的集合。
7.关系的基本性质1)关系中的属性是同质的,一属性的值同类型2)一个关系中的属性名是唯一的3)属性的次序可任意调换4)关系中的属性是不可再分的数据项5)元组的次序可任意调换6)同一关系中无重复元组,即唯一性
关系模式关系的“型”或元组的结构共性表头(关系模式)元组属性1属性2…属性n
二、关系模型的完整性域完整性属性值应是域中值或为空。如:职工年龄在18~60之间,月份在1~12之间2.实体完整性关系表中的所有的表都必须有主码,而且表中不允许存在如下的记录:无主码值的记录;主码值相同的记录如:职工关系中的职工编号3.用户定义的完整性如:规定职工奖金不得超过该部门平均工资的30%
二、关系模型的完整性4.参照完整性约束外码:取作本表属性之一的外表主码(主码值先在其主表中生成,后在其他表中引用)外码的取值只能是参照表中主码的有效值或空值。如:职工关系中的部门编号或为空,或一正确值n1职工部门(ENO,DNO,ENAME)(DNO,DNAME)
三、关系运算1.传统的集合运算1)并运算:R∪S同类关系R、S的所有元组合并,删去重复的元组c4bd4ac2aCBAc4bd6ad4aCBAc4bc2ad6ad4aCBARSR∪S
c4bd4ac2aCBAc4bd6ad4aCBAc2aCBARSR-S2)差运算:R-S同类关系R与S的差,由属于R而不属于S的所有元组组成的集合构成
c4bd4ac2aCBAc4bd6ad4aCBAc4bd4aCBARSR∩S3)交运算:R∩S同类关系R与S的交由既属于R又属于S的元组组成的集合构成R∩S=R-(R-S)
c4bd4ac2aCBAc4bd6ad4aDCBRSR×S4)笛卡儿积:R×S关系R、S不要求同类c4bd4ad6ad4ad4ad4ad4ac4bc4bc4bd6ac4bc4bc2acc22aad6ad4aR.CR.BR.AS.DS.CS.B
2.专门的关系运算1)选择运算CSM22FS6MAF20ES5CIF19DS4MAM19CS3CSF21BS2CSM20AS1DEPSEXAGESNS#CSM22FS6CSF21BS2CSM20AS1DEPSEXAGESNS#SDEP=‘CS’(S)?求计算机系(CS)的学生基本情况F(R)其中:F是一个条件表达式(逻辑表达式或表达式)CSM22FS6MAF20ES5CIF19DS4MAM19CS3CSF21BS2CSM20AS1DEPSEXAGESNS#按给定的条件选取其中的若干个元组,组成新的关系逻辑运算符:布尔运算符:AND∧OR∨NOT
2)投影运算CSM22FS6MAF20ES5CIF19DS4MAM19CS3CSF21BS2CSM20AS1DEPSEXAGESNS#CSFMAECIDMACCSBCSADEPSNCIMACSDEPS?对学生姓名和所在系属性取投影SN,DEP(S)?查询学生关系中都有哪些系DEP(S)Attr(S)其中:Attr是关系S的一个属性子集
3)连接运算c4a3d4a2c2a1CBA10e4dED10ec4a310ed4a210ec2a14dc2a1EDCBARS4dc4a34dd4a210ec4a310ed4a210ec2a14dc2a1EDCBAR×S其中:F是一个条件表达式(逻辑表达式或布尔表达式)RFS=F(R×S)RB20(S))S#(C#=‘C2’(SC))1.求年龄超过20岁学生的姓名和性别2.求选修C2课程的学生学号3.求选修C2课程的学生学号、姓名S#,SN()SS.S#=SC.S#andC#=‘C2’SCS#,SN()SS.S#=SC.S#(S#,C#(SC)÷C#(C))4.求选修了全部课程的学生学号和姓名
2.3SQL语言一、SQL概述SQL---StructuredQueryLanguage1974~1979年,在IBM的SystemR上实现。1986.10批准为美国标准。不久被接受为国际标准。1989年公布SQL89国际标准。1992年公布SQL92国际标准,常称为SQL2。1999年公布SQL99国际标准,常称为SQL3。SQL具有以下特点:1.功能丰富2.语言简洁,高度非过程化,容易学习使用3.即可交互使用,又可嵌入到高级程序设计语言中4.便于移植
二、SQL数据定义语言DDL(DataDefinitionLanguage)1.基本表--实际存放数据的表3)删除基本表DROPTABLE表名;如:DROPTABLEStudent;2)修改基本表ALTERTABLE表名ADD新列名类型;如:ALTERTABLEStudentADDSexCHAR(2);1)定义基本表CREATETABLE表名(列名1类型[NOTNULL][,列名2类型[NOTNULL]]……)[其他参数];如:CREATETABLEStudent(SnoCHAR(10)NOTNULL,SnCHAR(10),AgeNUMBER(2));
2.索引–加速存取数据2)删除索引DROPINDEX索引名;如:DROPINDEXISno;1)定义索引CREATE[UNIQUE]INDEX索引名ON基表名(列名1[次序][,列名2[次序]]…)[其他参数];其中:次序---ASC表示升序,为缺省值DESC表示降序如:CREATEINDEXISnoONStudent(Sno);
SELECT[DISTINCT]目标表达式[,目标表达式]…FROM基表名/视图名[,基表名/视图名]…[WHERE条件][GROUPBY子句][ORDERBY子句];三、SQL的DML语言1.查询语句格式
工程—零件—供应商数据库上海40为民S5天津30丰盛泰S4北京40东方红S3北京20盛锡S2天津30精益S1CITYSTATUSSNAMESNOS南京半导体厂J5唐山机车厂J4天津船厂J3长春一汽J2北京三建J1CITYJNAMEJNOJP红21齿轮P4黑35凸轮P3绿19螺栓P2红17螺母P1WEIGHTCOLORPNAMEPNO300P3S3100P2S3200P5S2300P5S2500P3S2400P3S2150P3S2100P3S2300P2S1200P1S1100P1S1200P1S1JNOPNOSNOSPJQTYJ1J2J3J2J5J4J2J1J4J5J2J1400P3S5150P3S5100P3S5300P2S5200P1S4100P1S4200P1S4JNOPNOSNOQTYJ4J2J1J4J5J2J1
例1.列出全体供应商的情况.SELECT*FROMS;例2.列出全体供应商的编号、名称和所在城市.SELECTSNO,SNAME,CITYFROMS;例3.列出供应“P2”零件的最大数量.SELECTMAX(QTY)FROMSPJWHEREPNO=‘P2’;例4.按供应“P2”零件数量的降序列出供应商的编号.SELECTSNO,QTYFROMSPJWHEREPNO=‘P2’ORDERBYQTYDESC;MAX(列名)MIN(列名)SUM(列名)AVG(列名)COUNT(列名)称为聚合函数
其中:IN称为谓词,用法是:列名[NOT]IN(常数表或SELECT语句)例5.列出供应了“P2”或“P3”零件的供应商的编号.SELECTSNOFROMSPJWHEREPNO=‘P2’ORPNO=‘P3’;SELECTSNOFROMSPJWHEREPNOIN(‘P2’,‘P3’);SELECTDISTINCTSNOFROMSPJWHEREPNOIN(‘P2’,‘P3’);为了避免重复列出的供应了“P2”或“P3”零件的供应商的编号,可写为:或
例6.列出供应了“P2”或“P3”零件的供应商的编号和名称.SELECTDISTINCTSNO,SNAMEFROMS,SPJWHEREPNOIN(‘P2’,‘P3’)ANDS.SNO=SPJ.SNO;Selectdistinctsno,snamefromswheresnoin(Selectsnofromspjwherepnoin(‘P2’,‘P3’));或
谓词LIKE的用法是:列名[NOT]LIKE‘匹配串’在“匹配串”中,可出现以下通配符:%表示若干个任意字符_(下划线)表示一个任意字符例7.列出所在城市为“天津”的供应商的情况.SELECT*FROMSWHERECITY=‘天津’;这样的语句不能列出所在城市为“天津市”、“天津”、“中国天津”等供应商的情况.可使用谓词LIKE查询。SELECT*FROMSWHERECITYLIKE‘%天津%’;上面的语句写为:
例8.列出至少供应某工程三种以上零件的供应商信息和相应工程编号。SELECTJNO,S.*FROMS,SPJWHERES.SNO=SPJ.SNOGROUPBYJNO,SNOHAVINGCOUNT(*)>2ORDERBYJNO,SNO;这个语句的执行过程:
100P3S2J1JNOPNOSNO将SPJ按JNO、SNO分组QTY300P3S3J1100P2S2J2200P5S2J3300P5S2J2500P3S2J5400P3S2J4150P3S2J2300P2S1J4200P1S1J5100P1S1J2200P1S1J1JNOPNOSNOQTY150P3S5J2100P3S5J1300P2S5J4200P1S4J5100P1S4J2200P1S4J1400P3S5J4将各分组按HAVING子句计算,结果为:JNOSNOSNAMESTATUSCITYJ2S2盛锡20北京
例9.列出供应了“P2”和“P3”零件的供应商的编号和名称.SELECTS.SNO,S.SNAMEFROMSPJS1,SPJS2,SWHERES1.SNO=S2.SNOANDS2.SNO=S.SNOANDS1.PNO=‘P2’ANDS2.PNO=‘P3’ORDERBYS.SNO;其中:SPJS1,SPJS2表示自连接S1.SNO=S2.SNO表示自连接条件
例10.列出供应了“P2”零件的供应商的编号和名称.SELECTSNO,SNAMEFROMSWHEREEXISTS(SELECT*FROMSPJWHEREPNO=‘P2’ANDS.SNO=SNO);其中:EXISTS是谓词,其用法为:[NOT]EXISTS(子查询)
INSERTINTO表名[(列名表)]VALUES(常量表);2.插入语句格式或者INSERTINTO表名(列名表)(子查询);例1.插入一个供应商的情况.例2.把SPJ中QTY=100的供应商号、零件号和工程号插入到SPJ2中.Createtablespj2(snochar(6)notnull,pnochar(10),jnochar(10));Insertintospj2(sno,pno,jno)(Selectsno,pno,jnofromspjwhereqty=100);INSERTINTOSVALUES(‘S6’,‘恒利’,25,‘兰州’);
DELETEFROM表名[WHERE条件];3.删除语句格式例1.删除一个供应商的情况.例2.从SPJ中删除STATUS<30的供应商的供应信息.DELETEFROMSPJWHERESNOIN(SELECTSNOFROMSWHERESTATUS<30);DELETEFROMSWHERESNO=‘S1’;
UPDATE表名SET列名=表达式[,列名=表达式]…[WHERE条件];4.修改语句格式例1.修改一个供应商的STATUS.例2.把SPJ中全体红色零件的供应量增加30%.UPDATESPJSETQTY=QTY*1.3WHEREPNOIN(SELECTPNOFROMPWHERECOLOR=‘红’);UPDATESSETSTATUS=50WHERESNO=‘S1’;
视图视图是虚表,从一个或几个基本表(或视图)导出视图的优点(用途)(1)简化用户的操作:能够为复杂的查询构造视图,能够隐藏数据的复杂性(2)使不同用户共享同一个数据库,减少冗余(3)提供了一定的逻辑独立性(4)有利于数据的安全保密1)定义视图格式CREATEVIEW视图名[(列名表)]AS子查询
例1创建一个有关计算机系学生情况的视图CS_S。CREATEVIEWCS_SASSELECTSno,Sn,Age,SexFROMStudentWHEREDept=’CS’;3)删除视图格式:DROPVIEW视图名例3删除计算机系学生情况的视图CS_S。DROPVIEWCS_S;2)查询视图例2查找视图CS_S中小于20岁者。SELECT*FROMCS_SWHEREAge<20;
4)视图的更新视图的更新最终是对基表的更新。例4UPDATECS_SSETSN=‘朱克’WHERESNO=‘S1’;UPDATESSETSN=‘朱克’WHERESNO=‘S1’ANDDept=‘CS’;转换为:
2.收权语句三、DCL语言格式:REVOKE[GRANTOPTIONFOR]权力表[ON对象类型对象名]FROM用户名表;例:将zhang用户对表T1的查询权限收回REVOKESELECTONTABLET1FROMzhang格式:GRANT权力表TO用户名[IDENTIFIEDBY口令]或GRANT权力表[ON对象类型对象名]TO用户名表[WITHGRANTOPTION]其中:WITHGRANTOPTION---允许权限的传递例:将对表T1的查询权限授予zhang用户GRANTSELECTONTABLET1TOzhang1.授权语句
四、典型的关系数据库管理系统1.Oracle2.DB23.Informix4.SYBASE5.SQLServer6.Access7.xBASEdBASEFoxBASEFoxProVisualFoxPro
2.4数据库设计使用维护数据库实施数据库设计物理结构设计逻辑结构设计概念结构一、数据库设计步骤系统需求分析
概念设计阶段需求分析阶段需求分析阶段熟悉业务活动明确用户需求确定系统边界分析系统功能分析系统数据编写分析报告调查机构情况数据字典数据流程图用户数据库设计人员
逻辑设计阶段概念结构设计阶段概念设计阶段合并取消冲突修改重构消除冗余数据字典数据流程图需求分析阶段抽象数据设计局部视图局部E-R图初步E-R图基本E-R图
E-R图实例职工号姓名性别年龄职称书号书名简介价格课程名学分课程号专业系班编号成绩学员学号姓名性别年龄教师参考书讲授课程mnp选修mn领导1n学生组成班级n1实体集联系属性
物理设计阶段逻辑结构设计阶段逻辑结构设计阶段模式优化设计用户子模式概念设计阶段转化为数据模型关系规范化逻辑模型基本E-R图
实施阶段数据库物理设计阶段数据库物理设计阶段逻辑设计阶段确定数据库的物理结构评价数据库的物理结构物理模型逻辑模型
运行维护阶段数据库实施阶段数据库实施阶段物理设计阶段定义数据库结构数据装载数据库系统物理模型编写应用程序数据库试运行
二、关系数据库的规范化1、关系数据库的规范化规范化步骤1NF2NF3NFBCNF4NF5NF消除非主属性对码的部分函数依赖消除非主属性对码的传递函数依赖消除主属性对码的部分和传递函数依赖消除多值依赖消除连接依赖消除决定属性集非码的函数依赖
2.函数依赖SNO→(SN,AGE,SEX,DEPT)例1学生关系:S(SNO,SN,AGE,SEX,DEPT)。1)函数依赖设X,Y是关系R的两个属性集合(子集),若对于任一X值,都有相应的Y值存在,则称Y函数依赖于X。记作X→Y。例2学生关系中(SN,AGE,SEX,DEPT)完全函数依赖于SNO。2)完全函数依赖设X→Y,且任何时刻,对于一个X值,都有唯一的Y值存在,则称Y完全函数依赖于X。记作XY。
例3已知如下材料-供应商关系:MS(M#,S#,QTY,CITY,CODE)假设一个供应商仅在一个城市。3)传递函数依赖设X→Y,且Y→X,Y→Z,则称Z传递函数依赖于X。M#S#QTYCITYCODECODE传递函数依赖于S#
3.关系的1、2、3NF1NF若关系R的属性均是不可再分的数据项,则R∈1NF。学生成绩登记表907085907586成绩M1M9M4M7M2M1师号赵钱孙李周赵教师334653学分6060801209060学时DBDSOSMAPHDB课名课号9899年级CSCS专业张三李四姓名男女性别C1C2C3C4C5C1课程成绩S1S2学号1NF的关系可能造成:插入异常修改异常删除异常数据冗余
2NF若关系R∈1NF,且每个非主属性都完全依赖于R的主码,则R∈2NF。可通过投影运算将MS转化为若干个2NF的关系:例4对于材料-供应商关系MS(M#,S#,QTY,CITY,CODE),由于非主属性CODE和CITY不是完全依赖于MS的主码(M#,S#),故MS不是2NF的。MS(M#,S#,QTY)S(S#,CITY,CODE)
3NF若关系R∈2NF,且不存在非主属性对R主码的传递函数依赖,则R∈3NF。可通过投影运算将S转化为若干个2NF的关系:例5对于材料-供应商关系MS(M#,S#,QTY)和S(S#,CITY,CODE),S(S#,CITY,CODE),由于非主属性CODE传递函数依赖于S的主码S#,故S不是3NF的。S(S#,CITY)CC(CITY,CODE)
说明:1、一般应用中,3NF已能满足要求;2、并非关系的范式级别越高越好,因为关系的范式级别越高,查询时就可能需要较多的连接运算,会降低系统的整体效率,所以要根据应用的具体情况而定。三、数据库技术的新发展1、分布式数据库2、智能数据库3、数据库机4、面向对象数据库5、数据仓库与数据挖掘end
结束语谢谢大家聆听!!!71'
您可能关注的文档
- 最新大视觉三大顶级集训营课件PPT课件
- 最新大豆大区间震荡不具备大幅上涨动力课件PPT课件
- 最新大象版五年级科学下册单元试题ppt课件PPT课件
- 最新大隐静脉曲张护理查房于新彤ppt课件PPT课件
- 最新大雁塔小学北师大四下包装课件PPT课件
- 最新大黄鱼Rac基因cDNA全长克隆及分析PPT课件PPT课件
- 最新天正CAD课件PPT课件
- 最新天正立面图、剖面图课件PPT课件
- 最新天正课件005楼梯与室外设施ppt课件PPT课件
- 最新天津大学船舶与海洋工程8结构力学课件第一课件PPT课件
- 最新天然气简介ppt课件PPT课件
- 最新太平小学三年级Unit2MyfamilyPartALet’ssay课件PPT课件
- 最新太空生活趣事多PPT课件PPT课件
- 最新太空生活趣事多课件PPTppt课件
- 最新夫琅禾费圆孔衍射ppt课件PPT课件
- 最新头、面、颈——评估 PP课件PPT课件
- 最新奇妙的对联ppt课件PPT课件
- 最新奇怪的大石头课件PPT课件