天津大学硕士研究生《数据库技术》课件_第1页
天津大学硕士研究生《数据库技术》课件_第2页
天津大学硕士研究生《数据库技术》课件_第3页
天津大学硕士研究生《数据库技术》课件_第4页
天津大学硕士研究生《数据库技术》课件_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第 2 2 章章 数据库技术数据库技术2.1 2.1 数据库技术的三个阶段数据库技术的三个阶段2.2 2.2 数据库概述数据库概述4.4.数据处理数据处理 对数据进行采集、整理、编码、输入、存储、加工对数据进行采集、整理、编码、输入、存储、加工/ /计计算、分类、检索、传输、输出等工作的过程。又称为信息处算、分类、检索、传输、输出等工作的过程。又称为信息处理。理。5.5.数据库数据库 (DB database )(DB database ) 具有一定的组织方式、存储在计算机外部存储器中的、具有一定的组织方式、存储在计算机外部存储器中的、相互关联的、可共享的数据集合。相互关联的、可共享的数据集

2、合。6.6.数据库管理系统数据库管理系统 (DBMS database management system )(DBMS database management system ) 用于建立、操纵、运行管理、维护和控制管理数据库的用于建立、操纵、运行管理、维护和控制管理数据库的程序集合。程序集合。 通常为用户提供数据定义语言(通常为用户提供数据定义语言(DDLDDL)、数据操纵语言)、数据操纵语言(DMLDML)和数据控制语言()和数据控制语言(DCLDCL)等。)等。7.7.数据库语言数据库语言 交互式语言、宿主型语言、自包含语言交互式语言、宿主型语言、自包含语言8.8.数据库系统数据库系统

3、database system (DBS)database system (DBS) 硬件硬件OS OS DBMS DBMS DB DB DBA DBA 用户用户其中其中: : DBA DBA(Database AdministratorDatabase Administrator)数据库管理)数据库管理员,全面负责数据库系统的管理、维护、正常使员,全面负责数据库系统的管理、维护、正常使用。用。 数据库系统的组成,如下图所示。数据库系统的组成,如下图所示。数据库系统的构成数据库系统的构成数据库数据库DBDBMS数据库管理数据库管理系统系统DBA完成某一功能的应用程序完成某一功能的应用程序1 1

4、应用程序应用程序2 2应用程序应用程序n nDBAP 1DBAP 2DBAP n计计 算算 机机 系系 统统二、二、数据库系统的三级模式结构数据库系统的三级模式结构应用A应用B应用C应用D外模式外模式1 1外模式外模式2 2外模式外模式3 3概念模式概念模式内模式内模式数据库外模式外模式/ /概念模式映象概念模式映象概念模式概念模式/ /内模式映象内模式映象DBMSDBMSOSOS19781978年由美国年由美国ANSI/SPARCANSI/SPARC数据库管理系统研究组提出数据库管理系统研究组提出1.1.三级模式三级模式l外模式:又称子模式或用户模式,是数据库用户看到的数外模式:又称子模式或

5、用户模式,是数据库用户看到的数据视图。既描述用户视图中记录的组成、相互联系等。据视图。既描述用户视图中记录的组成、相互联系等。l概念模式:又称模式或逻辑模式,是数据库中全体数据的概念模式:又称模式或逻辑模式,是数据库中全体数据的逻辑结构和特征的描述。逻辑结构和特征的描述。l内模式:又称存储模式,使数据在数据库系统内部的表示,内模式:又称存储模式,使数据在数据库系统内部的表示,即为数据的物理结构和存储方式的描述。即为数据的物理结构和存储方式的描述。2.2.两级映像两级映像 外模式外模式/ /概念模式映像;概念模式概念模式映像;概念模式/ /内模式映像内模式映像3.3.两级独立性两级独立性l逻辑独

6、立性:当数据的全局逻辑结构发生变化时,应用程逻辑独立性:当数据的全局逻辑结构发生变化时,应用程序不变。序不变。l物理独立性:当数据的存储结构发生变化时,应用程序不物理独立性:当数据的存储结构发生变化时,应用程序不变。变。三、数据库的数据模型三、数据库的数据模型 1.1.数据模型数据模型 是描述数据及数据间关系的工具。是描述数据及数据间关系的工具。 包括三个部分:数据结构;数据操作;完整性约束规则。包括三个部分:数据结构;数据操作;完整性约束规则。2.2.数据模型的类型数据模型的类型概念数据模型概念数据模型:用于将现实世界抽象为信息世:用于将现实世界抽象为信息世界。独立于计算机软件和硬件。如实体

7、界。独立于计算机软件和硬件。如实体- -联系模型。联系模型。结构数据模型结构数据模型:将信息世界抽象为计算机世界。:将信息世界抽象为计算机世界。独立于计算机硬件,依赖于计算机软件独立于计算机硬件,依赖于计算机软件(DBMS).(DBMS).现实世界客观事物的抽象过程现实世界客观事物的抽象过程 现实世界信息世界:概念模型机器世界:具体DBMS支持的数据模型转换三、实体三、实体- -联系模型(联系模型(E-RE-R模型)模型) 1.1.实体实体 客观存在并相互区别的事物。客观存在并相互区别的事物。 如:具体的人、事、物;抽象的学生、选课等。如:具体的人、事、物;抽象的学生、选课等。2.2.实体集实

8、体集 性质相同的同类实体的集合。性质相同的同类实体的集合。 如:所有的学生、所有的课程。如:所有的学生、所有的课程。 3.3.属性属性 实体所具有的某一特性。实体所具有的某一特性。 包含:属性的型:学生的姓名,系别包含:属性的型:学生的姓名,系别 属性的值:张三,计算机系属性的值:张三,计算机系4.4.实体型实体型 用实体名及其属性名集合来抽象和刻画同类实体。用实体名及其属性名集合来抽象和刻画同类实体。 例如:学生(学号、姓名、系别例如:学生(学号、姓名、系别) 5.5.实体集间的联系实体集间的联系(1) (1) 一对一联系(一对一联系(1:11:1) 如如: :班级与班长班级与班长 部门与经

9、理部门与经理(2) (2) 一对多联系(一对多联系(1:n1:n) 如如: :班级与学生班级与学生 公司与职工公司与职工(3) (3) 多对多联系(多对多联系(m:nm:n) 如如: :学生与课程学生与课程 职工与任务职工与任务学生课程选课mn部门经理领导11公司职工工作1m四、结构数据模型四、结构数据模型 根据描述数据库的根据描述数据库的模式模式所使用的数据模型,可分为层次所使用的数据模型,可分为层次型、网状型、关系型和面向对象型四种型、网状型、关系型和面向对象型四种基本类型基本类型 。1.1.层次型层次型 代表系统:代表系统:IBMIBM的的IMS 20IMS 20世纪世纪6060年代年代

10、 数据结构:树型结构数据结构:树型结构 优点:数据模型简单,能描述优点:数据模型简单,能描述1 1:1 1、1 1:n n联系、存取效联系、存取效率高。率高。 缺点:不能描述缺点:不能描述m m:n n联系,必须事先确定存取路径,难联系,必须事先确定存取路径,难以改变实体集间的关系。以改变实体集间的关系。层次数据模型层次数据模型2. 2. 网状型网状型 代表系统:代表系统: CODASYLCODASYL的的DBTGDBTG 数据结构:图结构数据结构:图结构 优点:能描述优点:能描述m m:n n联系,存取效率高。联系,存取效率高。 缺点:必须事先确定存取路径,难以改变实体缺点:必须事先确定存取

11、路径,难以改变实体集间的关系集间的关系 ,难学难用。,难学难用。网状数据模型网状数据模型3. 3. 关系型关系型 代表系统:代表系统: ISO ISO 关系数据语言关系数据语言SQLSQL 数据结构:关系(可看作规范的二维表)数据结构:关系(可看作规范的二维表) 优点:以集合论和数理逻辑作为理论基础,优点:以集合论和数理逻辑作为理论基础,能描述多对多联系,存取效率较高,结构简单,操能描述多对多联系,存取效率较高,结构简单,操作灵活,易学易用。作灵活,易学易用。 缺点:难以描述非结构化数据。缺点:难以描述非结构化数据。 是目前主流类型。是目前主流类型。关系数据模型关系数据模型3. 3. 具有较高

12、的数据独立性具有较高的数据独立性 物理数据独立性:内模式改变时,不影响模式、物理数据独立性:内模式改变时,不影响模式、外模式和应用程序。外模式和应用程序。 逻辑数据独立性:模式改变时,不影响外模式逻辑数据独立性:模式改变时,不影响外模式和应用程序。和应用程序。四、数据库的基本特征四、数据库的基本特征 与文件系统相比较,数据库有以下基本特征:与文件系统相比较,数据库有以下基本特征:1. 1. 数据是结构化的:描述数据与数据间的联系,将数据是结构化的:描述数据与数据间的联系,将整个组织的数据结构化成一个数据整体。整个组织的数据结构化成一个数据整体。2. 2. 数据共享,具有较小的数据冗余度,容易扩

13、充。数据共享,具有较小的数据冗余度,容易扩充。4. 4. 统一的数据控制和数据恢复功能统一的数据控制和数据恢复功能 数据完整性控制、数据安全性控制、数据并发数据完整性控制、数据安全性控制、数据并发性控制、数据恢复性控制、数据恢复2.2 2.2 关系数据库关系数据库例如:例如:姓名姓名张三张三李四李四王五王五性别性别男男女女= =张三张三 男男张三张三 女女李四李四 男男李四李四 女女王五王五 男男王五王五 女女关系关系2.2.元组元组 关系中的一个元素。关系中的一个元素。3.3.元数元数 一个关系中的所含属性的个数。一个关系中的所含属性的个数。4.4.关键字关键字 一个关系中能唯一标识每个元组

14、的属性集合。也称为码。一个关系中能唯一标识每个元组的属性集合。也称为码。主关键字:被选中的关键字。候选关键字:未被选中的关键主关键字:被选中的关键字。候选关键字:未被选中的关键字。字。5.5.关系模式关系模式 关系中的所含属性的集合。记为关系中的所含属性的集合。记为R (R (A1,A2,AnA1,A2,An ) )。如:如:关系模式:学生(学号、姓名、性别、年龄、籍贯)关系模式:学生(学号、姓名、性别、年龄、籍贯)6.6.关系数据库关系数据库 关系模式及其各关系当前值的集合。关系模式及其各关系当前值的集合。7. 7. 关系的基本性质关系的基本性质1) 1) 关系中的属性是同质的,一属性的值同

15、类型关系中的属性是同质的,一属性的值同类型2) 2) 一个关系中的属性名是唯一的一个关系中的属性名是唯一的3) 3) 属性的次序可任意调换属性的次序可任意调换4)4)关系中的属性是不可再分的数据项关系中的属性是不可再分的数据项5) 5) 元组的次序可任意调换元组的次序可任意调换6) 6) 同一关系中无重复元组同一关系中无重复元组, ,即唯一性即唯一性关系模式 关系的“型”或元组的结构共性 表头表头 (关系模式)元组元组二、关系模型的完整性二、关系模型的完整性 域完整性域完整性属性值应是域中值或为空。属性值应是域中值或为空。如:职工年龄在如:职工年龄在18601860之间,月份在之间,月份在11

16、2112之间之间2. 2. 实体完整性实体完整性 关系表中的所有的表都必须有主码,而且表中不允关系表中的所有的表都必须有主码,而且表中不允许存在如下的记录:许存在如下的记录: 无主码值的记录;无主码值的记录; 主码值相同的记录主码值相同的记录 如:职工关系中的职工编号如:职工关系中的职工编号3. 3. 用户定义的完整性用户定义的完整性如:规定职工奖金不得超过该部门平均工资的如:规定职工奖金不得超过该部门平均工资的30%30%二、关系模型的完整性二、关系模型的完整性4.4.参照完整性约束参照完整性约束 外码:取作本表属性之一的外表主码(主码值先在其主表中生成,后在其他表中引用) 外码的取值只能是

17、参照表中主码的有效值或空值。外码的取值只能是参照表中主码的有效值或空值。 如:职工关系中的部门编号或为空,或一正确值如:职工关系中的部门编号或为空,或一正确值 n 1职工部门(ENO,DNO,ENAME) (DNO,DNAME) 三、关系运算三、关系运算1.1.传统的集合运算传统的集合运算1) 1) 并运算并运算: RS: RS 同类关系同类关系R R、S S的所有元组合并,删去重复的元组的所有元组合并,删去重复的元组c c4 4b bd d4 4a ac c2 2a aC CB BA Ac c4 4b bd d6 6a ad d4 4a aC CB BA Ac c4 4b bc c2 2a

18、ad d6 6a ad d4 4a aC CB BA ARSRSc c4 4b bd d4 4a ac c2 2a aC CB BA Ac c4 4b bd d6 6a ad d4 4a aC CB BA Ac c2 2a aC CB BA ARSRS2) 2) 差运算:差运算: R RS S 同类关系同类关系R R与与S S的差,由属于的差,由属于R R而不属于而不属于S S的所有元组组成的的所有元组组成的集合构成集合构成c c4 4b bd d4 4a ac c2 2a aC CB BA Ac c4 4b bd d6 6a ad d4 4a aC CB BA Ac c4 4b bd d4

19、4a aC CB BA ARSRS3) 3) 交运算:交运算: RSRS 同类关系同类关系R R与与S S的交由既属于的交由既属于R R又属于又属于S S的元组组成的集合构的元组组成的集合构成成RS=R-RS=R-(R-SR-S)c c4 4b bd d4 4a ac c2 2a aC CB BA Ac c4 4b bd d6 6a ad d4 4a aD DC CB BRSRS4) 4) 笛卡儿积:笛卡儿积: R RS S 关系关系R R、 S S不要求同类不要求同类c c4 4b bd d4 4a ad d6 6a ad d4 4a ad d4 4a ad d4 4a ad d4 4a a

20、c c4 4b bc c4 4b bc c4 4b bd d6 6a ac c4 4b bc c4 4b bc c2 2a ac cc c2 22 2a aa ad d6 6a ad d4 4a aR.CR.CR.BR.BR.AR.AS.DS.DS.CS.CS.BS.B2.2.专门的关系运算专门的关系运算1)1)选择运算选择运算CSCSM M2222F FS6S6MAMAF F2020E ES5S5CICIF F1919D DS4S4MAMAM M1919C CS3S3CSCSF F2121B BS2S2CSCSM M2020A AS1S1DEPDEPSEXSEXAGEAGESNSNS#S#C

21、SCSM M2222F FS6S6CSCSF F2121B BS2S2CSCSM M2020A AS1S1DEPDEPSEXSEXAGEAGESNSNS#S#S DEP=CS(S) ?求计算机系?求计算机系(CS)的学生基本情况的学生基本情况 F(R) 其中:其中:F F是一个条件表达式(逻辑表达式或表达式)是一个条件表达式(逻辑表达式或表达式)CSCSM M2222F FS6S6MAMAF F2020E ES5S5CICIF F1919D DS4S4MAMAM M1919C CS3S3CSCSF F2121B BS2S2CSCSM M2020A AS1S1DEPDEPSEXSEXAGEAGE

22、SNSNS#S#按给定的条件选取其中的若干个元组,组成新的关系按给定的条件选取其中的若干个元组,组成新的关系 逻辑运算符:逻辑运算符:布尔运算符:布尔运算符:ANDANDORORNOTNOT2 2)投影运算)投影运算CSCSM M2222F FS6S6MAMAF F2020E ES5S5CICIF F1919D DS4S4MAMAM M1919C CS3S3CSCSF F2121B BS2S2CSCSM M2020A AS1S1DEPDEPSEXSEXAGEAGESNSNS#S#CSCSF FMAMAE ECICID DMAMAC CCSCSB BCSCSA ADEPDEPSNSNCICIMA

23、MACSCSDEPDEPS?对学生姓名和所在系属性取投影?对学生姓名和所在系属性取投影 SN,DEP(S)?查询学生关系中都有哪些系?查询学生关系中都有哪些系 DEP(S) Attr(S)其中:其中:AttrAttr是关系是关系S S的一个属性子集的一个属性子集3 3)连接运算)连接运算c c4 4a3a3d d4 4a2a2c c2 2a1a1C CB BA A1010e e4 4d dE ED D1010e ec c4 4a3a31010e ed d4 4a2a21010e ec c2 2a1a14 4d dc c2 2a1a1E ED DC CB BA ARS4 4d dc c4 4a3

24、a34 4d dd d4 4a2a21010e ec c4 4a3a31010e ed d4 4a2a21010e ec c2 2a1a14 4d dc c2 2a1a1E ED DC CB BA ARS 其中:其中:F F是一个条件表达式(逻辑表达式或布尔表达式)是一个条件表达式(逻辑表达式或布尔表达式)RFS= F(RS)RB20(S) S#( C#=C2(SC)1.求年龄超过求年龄超过20岁学生的姓名和性别岁学生的姓名和性别2.求选修求选修C2课程的学生学号课程的学生学号3.求选修求选修C2课程的学生学号、姓名课程的学生学号、姓名 S#,SN( ) SS.S#=SC.S#and C#=C

25、2 SC S#,SN( )SS.S#=SC.S#( S#, C#( SC) C# ( C)4.求选修了全部课程的学生学号和姓名求选修了全部课程的学生学号和姓名2.3 SQL2.3 SQL语言语言二、二、 SQLSQL数据定义语言数据定义语言DDL (Data Definition Language) DDL (Data Definition Language) 1. 1. 基本表基本表 - - 实际存放数据的表实际存放数据的表3) 3) 删除基本表删除基本表 DROP TABLE DROP TABLE 表名表名; ;如如: DROP TABLE Student;: DROP TABLE Stu

26、dent;2) 2) 修改基本表修改基本表 ALTER TABLE ALTER TABLE 表名表名 ADD ADD 新列名新列名 类型类型; ;如如: ALTER TABLE Student ADD Sex CHAR(2); : ALTER TABLE Student ADD Sex CHAR(2); 1) 1) 定义基本表定义基本表 CREATE TABLE CREATE TABLE 表名表名 ( (列名列名1 1 类型类型 NOT NULLNOT NULL , ,列名列名2 2 类型类型 NOT NULL ) NOT NULL ) 其他参其他参数数;如如: CREATE TABLE St

27、udent ( Sno CHAR(10) NOT NULL ,: CREATE TABLE Student ( Sno CHAR(10) NOT NULL , Sn CHAR(10), Age NUMBER(2); Sn CHAR(10), Age NUMBER(2);2.2.索引索引 加速存取数据加速存取数据 2) 2) 删除索引删除索引 DROP INDEX DROP INDEX 索引名索引名; ; 如如: DROP INDEX ISno ;: DROP INDEX ISno ;1) 1) 定义索引定义索引 CREATE UNIQUE INDEX CREATE UNIQUE INDEX 索

28、引名索引名 ON ON 基表名基表名 ( (列名列名1 1 次序次序 , ,列名列名2 2 次序次序 ) ) 其他参数其他参数;其中其中: : 次序次序- ASC- ASC表示升序表示升序, ,为缺省值为缺省值 DESCDESC表示降序表示降序如如: CREATE INDEX ISno ON Student ( Sno);: CREATE INDEX ISno ON Student ( Sno);三、三、SQLSQL的的DMLDML语言语言1. 1. 查询语句查询语句格式格式工程工程零件零件供应商数据库供应商数据库上海上海4040为民为民S5S5天津天津3030丰盛泰丰盛泰S4S4北京北京40

29、40东方红东方红S3S3北京北京2020盛锡盛锡S2S2天津天津3030精益精益S1S1CITYCITYSTATUSSTATUSSNAMESNAMESNOSNOS南京南京半导体厂半导体厂J5J5唐山唐山机车厂机车厂J4J4天津天津船厂船厂J3J3长春长春一汽一汽J2J2北京北京三建三建J1J1CITYCITYJNAMEJNAMEJNOJNOJP红红2121齿轮齿轮P4P4黑黑3535凸轮凸轮P3P3绿绿1919螺栓螺栓P2P2红红1717螺母螺母P1P1WEIGHTWEIGHTCOLORCOLORPNAMEPNAMEPNOPNO300300P3P3S3S3100100P2P2S3S320020

30、0P5P5S2S2300300P5P5S2S2500500P3P3S2S2400400P3P3S2S2150150P3P3S2S2100100P3P3S2S2300300P2P2S1S1200200P1P1S1S1100100P1P1S1S1200200P1P1S1S1JNOJNOPNOPNOSNOSNOSPJQTYQTYJ1J1J2J2J3J3J2J2J5J5J4J4J2J2J1J1J4J4J5J5J2J2J1J1400400P3P3S5S5150150P3P3S5S5100100P3P3S5S5300300P2P2S5S5200200P1P1S4S4100100P1P1S4S4200200

31、P1P1S4S4JNOJNOPNOPNOSNOSNOQTYQTYJ4J4J2J2J1J1J4J4J5J5J2J2J1J1SELECT SELECT * * FROM S; FROM S;例例2. 2. 列出全体供应商的编号、名称和所在城市列出全体供应商的编号、名称和所在城市. .SELECT SNOSELECT SNO,SNAMESNAME,CITY FROM S;CITY FROM S;例例3. 3. 列出供应列出供应“P2”P2”零件的最大数量零件的最大数量. .SELECT SELECT MAXMAX(QTYQTY) FROM SPJFROM SPJ WHERE PNO=P2; WHER

32、E PNO=P2;例例4. 4. 按供应按供应“P2”P2”零件数量的降序列出供应商的编零件数量的降序列出供应商的编号号. .SELECT SNOSELECT SNO,QTY FROM SPJQTY FROM SPJ WHERE PNO=P2 WHERE PNO=P2 ORDER BY QTY DESC ORDER BY QTY DESC;MAX(MAX(列名列名) MIN() MIN(列名列名) SUM() SUM(列名列名) AVG() AVG(列名列名) COUNT() COUNT(列名列名) )称为聚合函数称为聚合函数 例例5.5.列出供应了列出供应了“P2”P2”或或“P3”P3”零

33、件的供应商的编号零件的供应商的编号. .SELECT SNO FROM SPJSELECT SNO FROM SPJ WHERE PNO=P2 OR WHERE PNO=P2 OR PNO=P3 PNO=P3 ;SELECT SNO FROM SPJSELECT SNO FROM SPJ WHERE WHERE PNO IN PNO IN (P2P2,P3P3) ;SELECT SELECT DISTINCTDISTINCT SNO FROM SPJ SNO FROM SPJ WHERE WHERE PNO IN PNO IN (P2P2,P3P3) ;为了避免重复列出的供应了为了避免重复列出

34、的供应了“P2”P2”或或“P3”P3”零件零件的供应商的编号,可写为:的供应商的编号,可写为:或或例例6.6.列出供应了列出供应了“P2”P2”或或“P3”P3”零件的供应商的编号和名零件的供应商的编号和名称称. .SELECT DISTINCT SNOSELECT DISTINCT SNO,SNAMESNAME FROM S FROM S,SPJSPJ WHERE WHERE PNO IN PNO IN (P2P2,P3P3) AND S.SNO=SPJ.SNO AND S.SNO=SPJ.SNO ;Select distinct sno Select distinct sno ,snam

35、e sname from s from s where sno in (Select sno where sno in (Select sno from spj from spj where where pno in pno in (P2,P3)(P2,P3) ); ); 或或谓词谓词LIKELIKE 的用法是:的用法是: 列名列名 NOT LIKE NOT LIKE 匹配串匹配串在在“匹配串匹配串”中,可出现以下通配符:中,可出现以下通配符: % % 表示若干个任意字符表示若干个任意字符 _ _(下划线)(下划线) 表示一个任意字符表示一个任意字符例例7.7.列出所在城市为列出所在城市为“天

36、津天津”的供应商的情况的供应商的情况. .SELECT SELECT * * FROM S FROM S WHERE CITY= WHERE CITY=天津天津 ;这样的语句不能列出所在城市为这样的语句不能列出所在城市为“天津市天津市”、 “ “ 天天津津”、“中国天津中国天津”等供应商的情况等供应商的情况. .可使用谓词可使用谓词LIKELIKE查询。查询。SELECT SELECT * * FROM S FROM S WHERE CITY LIKE % WHERE CITY LIKE %天津天津% % ;上面的语句写为:上面的语句写为:例例8. 8. 列出至少供应某工程三种以上零件的供应商

37、信列出至少供应某工程三种以上零件的供应商信息和相应工程编号。息和相应工程编号。SELECT JNO, S.SELECT JNO, S.* * FROM S, SPJ FROM S, SPJ WHERE S.SNO=SPJ.SNO WHERE S.SNO=SPJ.SNO GROUP BY JNO, SNOGROUP BY JNO, SNO HAVING COUNT(HAVING COUNT(* *)2)2 ORDER BY JNO, SNO ORDER BY JNO, SNO;这个语句的执行过程:这个语句的执行过程:100100P3P3S2S2J1J1JNOJNOPNOPNOSNOSNO将将SP

38、J按按JNO、SNO分组分组QTYQTY300300P3P3S3S3J1J1100100P2P2S2S2J2J2200200P5P5S2S2J3J3300300P5P5S2S2J2J2500500P3P3S2S2J5J5400400P3P3S2S2J4J4150150P3P3S2S2J2J2300300P2P2S1S1J4J4200200P1P1S1S1J5J5100100P1P1S1S1J2J2200200P1P1S1S1J1J1JNOJNOPNOPNOSNOSNOQTYQTY150150P3P3S5S5J2J2100100P3P3S5S5J1J1300300P2P2S5S5J4J42002

39、00P1P1S4S4J5J5100100P1P1S4S4J2J2200200P1P1S4S4J1J1400400P3P3S5S5J4J4将各分组按将各分组按HAVING子句计算,子句计算,结果为:结果为:JNO SNO SNAME STATUS CITY J2 S2 盛锡盛锡 20 20 北京北京例例9.9.列出供应了列出供应了“P2”P2”和和“P3”P3”零件的供应商的编号和名零件的供应商的编号和名称称. .SELECT S.SNO, S.SNAMESELECT S.SNO, S.SNAME FROM FROM SPJ S1, SPJ S2SPJ S1, SPJ S2,S,S WHERE

40、S1.SNO=S2.SNO WHERE S1.SNO=S2.SNO AND S2.SNO=S.SNO AND S2.SNO=S.SNO AND S1.PNO=P2 AND S1.PNO=P2 AND S2.PNO=P3 AND S2.PNO=P3 ORDER BY S.SNO ORDER BY S.SNO;其中其中: :SPJ S1, SPJ S2SPJ S1, SPJ S2表示自连接表示自连接 S1.SNO=S2.SNOS1.SNO=S2.SNO表示自连接条件表示自连接条件例例10.10.列出供应了列出供应了“P2”P2”零件的供应商的编号和名称零件的供应商的编号和名称. .SELECT S

41、NO, SNAMESELECT SNO, SNAME FROM S FROM S WHERE WHERE EXISTSEXISTS (SELECT (SELECT * * FROM SPJ FROM SPJ WHERE PNO=P2 WHERE PNO=P2 AND AND S.SNO=SNOS.SNO=SNO););其中其中: : EXISTSEXISTS是谓词是谓词, ,其用法为其用法为: : NOT NOT EXISTSEXISTS ( (子查询子查询) )INSERT INTO INSERT INTO 表名表名 (列名表列名表) VALUES () VALUES (常量表常量表););

42、2. 2. 插入语句插入语句格式格式或者或者INSERT INTO INSERT INTO 表名表名 ( (列名表列名表) () (子查询子查询););例例1.1.插入一个插入一个供应商的情况供应商的情况. .例例2.2.把把SPJSPJ中中QTY=100QTY=100的供应商号、零件号和工程号的供应商号、零件号和工程号插插入入到到SPJ2SPJ2中中. .Create table spj2 (sno char(6) not null,Create table spj2 (sno char(6) not null, pno char(10), jno char(10); pno char(10

43、), jno char(10);Insert into spj2 (sno,pno,jno)Insert into spj2 (sno,pno,jno) (Select sno (Select sno,pnopno,jno from spj where qty=100);jno from spj where qty=100);INSERT INTO INSERT INTO S S VALUES (VALUES (S6, S6, 恒利恒利,25, ,25, 兰州兰州););DELETE FROM DELETE FROM 表名表名 WHERE WHERE 条件条件;3. 3. 删除语句删除语句格式

44、格式例例1.1.删除一个删除一个供应商的情况供应商的情况. .例例2. 2. 从从SPJSPJ中中删除删除STATUS30STATUS30的供应商的供应信息的供应商的供应信息. .DELETE DELETE FROM FROM SPJ SPJ WHERE SNOWHERE SNO ININ (SELECT SNO FROM S (SELECT SNO FROM S WHERE STATUS 30 ); WHERE STATUS 30 );DELETE FROM DELETE FROM S S WHERE SNO=WHERE SNO=S1S1; ;UPDATE UPDATE 表名表名 SET S

45、ET 列名列名= =表达式表达式,列名列名= =表达式表达式 WHERE WHERE 条件条件;4. 4. 修改语句修改语句格式格式例例1.1.修改一个修改一个供应商的供应商的STATUS.STATUS.例例2. 2. 把把SPJSPJ中全体红色零件的供应量增加中全体红色零件的供应量增加30%.30%.UPDATE UPDATE SPJ SPJ SET QTY=QTY SET QTY=QTY* *1.31.3 WHERE PNO WHERE PNO ININ (SELECT PNO FROM P (SELECT PNO FROM P WHERE WHERE COLOR=COLOR=红红 );)

46、;UPDATE UPDATE S SET STATUS=50 S SET STATUS=50 WHERE SNO=WHERE SNO=S1S1; ; 视图视图 视图是虚表,从一个或几个基本表(或视图)导出视图是虚表,从一个或几个基本表(或视图)导出 视图的优点视图的优点( (用途用途) ) (1) (1)简化用户的操作:能够为复杂的查询构造视图,简化用户的操作:能够为复杂的查询构造视图,能够隐藏数据的复杂性能够隐藏数据的复杂性 (2)(2)使不同用户共享同一个数据库,减少冗余使不同用户共享同一个数据库,减少冗余 (3)(3)提供了一定的逻辑独立性提供了一定的逻辑独立性 (4)(4)有利于数据的

47、安全保密有利于数据的安全保密1) 1) 定义视图定义视图格式格式 CREATE VIEW CREATE VIEW 视图名视图名 ( (列名表列名表) AS ) AS 子查询子查询例例1 1 创建一个有关计算机系学生情况的视图创建一个有关计算机系学生情况的视图CS_SCS_S。 CREATE VIEW CS_S CREATE VIEW CS_S AS SELECT Sno,Sn,Age,Sex AS SELECT Sno,Sn,Age,Sex FROM Student FROM Student WHERE Dept=CS WHERE Dept=CS;3) 3) 删除视图删除视图 格式:格式: D

48、ROP VIEW DROP VIEW 视图名视图名例例3 3 删除计算机系学生情况的视图删除计算机系学生情况的视图CS_SCS_S。 DROP VIEW CS_S;DROP VIEW CS_S;2) 2) 查询视图查询视图例例2 2 查找视图查找视图CS_SCS_S中小于中小于2020岁者。岁者。 SELECT SELECT * * FROM CS_S WHERE Age20 FROM CS_S WHERE Age20;4) 4) 视图的更新视图的更新 视图的更新最终是对基表的更新。视图的更新最终是对基表的更新。例例4 4 UPDATE CS_S UPDATE CS_S SET SN= SET

49、 SN=朱克朱克 WHERE SNO=S1WHERE SNO=S1; UPDATE S UPDATE S SET SN= SET SN=朱克朱克 WHERE SNO=S1 AND Dept=CSWHERE SNO=S1 AND Dept=CS;转换为转换为: :2. 2. 收权语句收权语句三、三、DCLDCL语言语言格式:格式:REVOKE GRANT OPTION FOR REVOKE GRANT OPTION FOR 权力表权力表 ON ON 对象类型对象类型 对象名对象名 FROM FROM 用户名表;用户名表;例:将例:将zhangzhang用户对表用户对表T1T1的查询权限收回的查询

50、权限收回 REVOKE SELECT ON TABLE T1 FROM zhangREVOKE SELECT ON TABLE T1 FROM zhang格式:格式: GRANT GRANT 权力表权力表 TO TO 用户名用户名 IDENTIFIED BY IDENTIFIED BY 口令口令 或或 GRANT GRANT 权力表权力表 ON ON 对象类型对象类型 对象名对象名 TO TO 用户名表用户名表 WITH GRANT OPTIONWITH GRANT OPTION 其中其中:WITH GRANT OPTION -WITH GRANT OPTION -允许权限的传递允许权限的传递

51、例:将对表例:将对表T1T1的查询权限授予的查询权限授予zhangzhang用户用户 GRANT SELECT ON TABLE T1 TO zhangGRANT SELECT ON TABLE T1 TO zhang1 . 1 . 授权语句授权语句四、典型的关系数据库管理系统四、典型的关系数据库管理系统1 . Oracle1 . Oracle2 . DB 22 . DB 23 . Informix3 . Informix4 . SYBASE4 . SYBASE5 . SQL Server5 . SQL Server6 . Access6 . Access7 . xBASE7 . xBASEd

52、BASEdBASEFoxBASEFoxBASEFoxProFoxProVisual FoxProVisual FoxPro2.4 2.4 数据库设计数据库设计使用维护数据库实施数据库设计物理结构设计逻辑结构设计概念结构一、数据库设计步骤一、数据库设计步骤系统需求分析概念概念设计设计阶段阶段需求分析阶段需求分析阶段需求分析阶段需求分析阶段熟悉熟悉业务业务活动活动明确明确用户用户需求需求确定确定系统系统边界边界分析分析系统系统功能功能分析分析系统系统数据数据编写编写分析分析报告报告调查调查机构机构情况情况数据字典数据流程图用户数据库设计人员逻辑逻辑设计设计阶段阶段概念结构设计阶段概念结构设计阶段概

53、念设计阶段概念设计阶段合并合并取消取消冲突冲突修改修改重构重构消除消除冗余冗余数据字典数据流程图需求需求分析分析阶段阶段抽象抽象数据数据设计设计局部局部视图视图局部E-R图初步E-R图基本E-R图E-RE-R图实例图实例职工号职工号姓名姓名性别性别年龄年龄职称职称书号书号书名书名简介简介价格价格课程名课程名学分学分课程号课程号专业系专业系班编号班编号成绩成绩学员学员学号学号姓名姓名性别性别年龄年龄教师教师参考书参考书讲授讲授课程课程mnp选修选修mn领导领导1n学生学生组成组成班级班级n1物理物理设计设计阶段阶段逻辑结构设计阶段逻辑结构设计阶段逻辑结构设计阶段逻辑结构设计阶段模式模式优化优化设

54、计设计用户用户子子模式模式概念概念设计设计阶段阶段转化转化为为数据数据模型模型关系关系规范规范化化逻辑模型基本E-R图实施实施阶段阶段数据库物理设计阶段数据库物理设计阶段数据库物理设计阶段数据库物理设计阶段逻辑逻辑设计设计阶段阶段确定确定数据库的数据库的物理物理结构结构评价评价数据库的数据库的物理物理结构结构物理模型逻辑模型运行运行维护维护阶段阶段数据库实施阶段数据库实施阶段数据库实施阶段数据库实施阶段物理物理设计设计阶段阶段定义定义数据库数据库结构结构数据装载数据装载数据库系统物理模型编写应用程序编写应用程序数据库数据库试运行试运行二、关系数据库的规范化二、关系数据库的规范化1 1、关系数据

55、库的规范化、关系数据库的规范化规规范范化化步步骤骤1NF2NF3NFBCNF4NF5NF消除非主属性对码的部分函数依赖消除非主属性对码的部分函数依赖消除非主属性对码的传递函数依赖消除非主属性对码的传递函数依赖消除主属性对码的部分和传递函数依赖消除主属性对码的部分和传递函数依赖消除多值依赖消除多值依赖消除连接依赖消除连接依赖消除决定属性集消除决定属性集非码的函数依赖非码的函数依赖2.2.函数依赖函数依赖SNO(SN,AGE,SEX,DEPT)SNO(SN,AGE,SEX,DEPT)例例1 1 学生关系:学生关系:S(SNO,SN,AGE,SEX,DEPT)S(SNO,SN,AGE,SEX,DEPT)。1) 1) 函数依赖函数依赖 设设X,YX,Y是关系是关系R R的两个属性集合的两个属性集合( (子集子集) ),若对于任,若对于任一一X X值,都有相应

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论