资源预览内容
第1页 / 共41页
第2页 / 共41页
第3页 / 共41页
第4页 / 共41页
第5页 / 共41页
第6页 / 共41页
第7页 / 共41页
第8页 / 共41页
第9页 / 共41页
第10页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
数据库原理一数据库原理一课程课程复习、习题分析复习、习题分析2024年9月11日第第1 1章章 数据库发展史数据库发展史 1. 1. 数据管理技术的发展数据管理技术的发展(3 3阶段)阶段) 人工管理阶段人工管理阶段 文件系统阶段(倒排文件系统文件系统阶段(倒排文件系统 ) 数据库阶段数据库阶段 文件系统的缺陷文件系统的缺陷 (数据冗余性、数据不一致性、数据联系弱)(数据冗余性、数据不一致性、数据联系弱) 第第1 1章章 数据库发展史数据库发展史2. 2. 数据库技术的产生(数据库技术的产生(3 3件事情)件事情) 进入数据库阶段的标志是进入数据库阶段的标志是2020世纪世纪6060年代末的三件大事:年代末的三件大事:19681968年年IBMIBM公司研制的公司研制的IMSIMS系统系统-典型的层次典型的层次DBS;DBS;19691969年美国年美国CODASYLCODASYL组织组织 DBTGDBTG报告提出报告提出-网状网状DBSDBS的概念的概念; ;19701970年美国年美国IBMIBM公司的公司的E.F.CoddE.F.Codd发表的论文提出发表的论文提出-关系模型的思想关系模型的思想 数据库阶段的特点:数据库阶段的特点: 采用数据模型表示复杂的数据结构采用数据模型表示复杂的数据结构( (数据库的三级体系结构数据库的三级体系结构) ); 有较高的数据独立性有较高的数据独立性( (逻辑数据独立性、物理数据独立性逻辑数据独立性、物理数据独立性) ); 数据库系统为用户提供了方便的用户接口;数据库系统为用户提供了方便的用户接口; 数据库系统提供四方面的数据控制功能:数据库的并发控制,数据库系统提供四方面的数据控制功能:数据库的并发控制, 数据库的恢复,数据的完整性,数据安全性。数据库的恢复,数据的完整性,数据安全性。 对数据的操作以数据项为单位,增加了系统的灵活性。对数据的操作以数据项为单位,增加了系统的灵活性。3. 3. 数据库技术的术语数据库技术的术语 DB DB DBMS DBMS DBS DBS DBA DBA DDDD4. 4. 数据库技术的发展数据库技术的发展第第2 2章章 数据库系统结构数据库系统结构 1. 1. 数据描述数据描述 从事物的特性到计算机中的具体表示,分别经历了三个阶段从事物的特性到计算机中的具体表示,分别经历了三个阶段: : 概念设计中的数据描述概念设计中的数据描述(实体、属性、实体集、实体标识符)(实体、属性、实体集、实体标识符) 逻辑设计中的数据描述逻辑设计中的数据描述(记录、字段、文件、关键码)(记录、字段、文件、关键码) 物理设计中的数据描述物理设计中的数据描述(位、字节、字、块、桶、卷)(位、字节、字、块、桶、卷) 注意他们的差别:注意他们的差别: 概念设计中的数据描述与逻辑数据描述的差别;概念设计中的数据描述与逻辑数据描述的差别; 逻辑数据描述与物理数据描述的差别。逻辑数据描述与物理数据描述的差别。 2. 2. 数据模型数据模型: :表示实体类型及实体间联系的模型表示实体类型及实体间联系的模型概念概念数据数据模型模型(对现实世界的第一层抽象)(对现实世界的第一层抽象)是按用户的观点对数据建模,强调其语义表达能力是按用户的观点对数据建模,强调其语义表达能力。 (独立于计算机系统的模型,用于建立信息世界的数据模型独立于计算机系统的模型,用于建立信息世界的数据模型)。 逻辑数据模型逻辑数据模型 “结构数据模型结构数据模型”:对现实世界的第二层抽象对现实世界的第二层抽象 是直接面向数据库的逻辑结构,与是直接面向数据库的逻辑结构,与DBMSDBMS无关。无关。 ( (从计算机的观点对数据建模,从计算机的观点对数据建模,用于建立机器世界的数据模型用于建立机器世界的数据模型) ) 概念数据模型概念数据模型-实体联系模型实体联系模型(ER模型模型)在在ER模型中有四个基本成分:模型中有四个基本成分:矩形框矩形框表示实体类型表示实体类型;菱形框菱形框表示联系类型(实体间的联系)表示联系类型(实体间的联系);椭圆形框椭圆形框表示实体类型和联系类型的属性表示实体类型和联系类型的属性;用直线连接用直线连接:实体与属性;:实体与属性;联系与属性;联系与属性;实体与实体;实体与实体;相应的命名均记人各种框中。相应的命名均记人各种框中。对于关键码的属性,在属性名下划一横线。对于关键码的属性,在属性名下划一横线。 数据联系的描述数据联系的描述联系的元数:与一个联系有关的实体集的个数联系的元数:与一个联系有关的实体集的个数联系的类型:联系的类型:一对一(一对一(1:1)一对多(一对多(1:n)多对多(多对多(m:n)一元联系:一元联系: 二元联系:二元联系:三元联系:三元联系:收银员收银员 商品商品顾客顾客运动员运动员职职 工工零零 件件学号学号学生学生班级班级 学生学生课程课程学生学生 建立建立ERER模型的步骤如下:模型的步骤如下: 首先确定实体类型和联系类型,首先确定实体类型和联系类型, 接着把实体类型和联系类型组合成接着把实体类型和联系类型组合成ERER图图; ; 然后确定实体类型和联系类型的属性,然后确定实体类型和联系类型的属性, 再确定实体类型的键,在属于键的属性名下划一横线。再确定实体类型的键,在属于键的属性名下划一横线。 (包括第六章(包括第六章ERER模型的扩充)模型的扩充) 逻辑数据模型逻辑数据模型:面向数据库逻辑结构的模型。:面向数据库逻辑结构的模型。逻逻辑辑数数据据模模型型( (三三要要素素) ):数数据据结结构构、数数据据操操作作和和数数据完整性约束。据完整性约束。 数据结构数据结构是指对实体类型和实体间联系的表达和实现;是指对实体类型和实体间联系的表达和实现; 数据操作数据操作是指对数据库的检索和更新(包括插入、是指对数据库的检索和更新(包括插入、 删除、修改)两类操作的实现;删除、修改)两类操作的实现; 数据完整性约束数据完整性约束给出数据及其联系应具有的制约和依赖给出数据及其联系应具有的制约和依赖 规则。规则。 逻辑数据模型主要有:逻辑数据模型主要有:层次模型:层次模型:用用树型结构树型结构来表示实体类型及实体之间联系的模型来表示实体类型及实体之间联系的模型称为层次模型。(数据之间的联系通过称为层次模型。(数据之间的联系通过指针指针实现)实现)网状模型:网状模型:用用有向图结构有向图结构表示实体类型及实体间联系的模型表示实体类型及实体间联系的模型称为网状模型。(数据之间的联系通过称为网状模型。(数据之间的联系通过指针指针实现)实现)关系模型:关系模型:用用二维表格结构二维表格结构来表示实体集。来表示实体集。( (数据之间的联系数据之间的联系是通过是通过外键和主键间外键和主键间联系实现的联系实现的即:公共属性即:公共属性)面向对象模型:面向对象模型:数据之间嵌套、递归联系是通过对象标识符实现的数据之间嵌套、递归联系是通过对象标识符实现的4. . 数据库的体系结构数据库的体系结构 三级模式结构三级模式结构 三级结构和两级映象三级结构和两级映象 数据独立性定义数据独立性定义 两级数据独立性两级数据独立性: : 物理数据独立性、逻辑数据独立性物理数据独立性、逻辑数据独立性用户用户1 1用户用户2 2用户用户n n外模式外模式局部逻辑结构局部逻辑结构映像功能映像功能(逻辑独立性)(逻辑独立性)模式模式全局逻辑结构全局逻辑结构映像功能映像功能(物理独立性)(物理独立性)内模式内模式数据库的物理结构数据库的物理结构 5. .数据库管理系统数据库管理系统 DBMSDBMS的工作模式的工作模式:应用程序应用程序DBMSDB数据请求低层指令 数据(处理结果) 数据(查询结果)DBOSDBMS数数据据字字典典应用程序应用程序DB的系统缓冲区的系统缓冲区外模式外模式模式模式内模式内模式 用户访问数据的过程用户访问数据的过程 : DBMS DBMS的主要功能的主要功能: 1 1数据库的定义功能数据库的定义功能 2 2数据库的操纵功能数据库的操纵功能 3 3数据库的保护功能数据库的保护功能4 4数据库的维护功能数据库的维护功能 5. 5. 数据字典数据字典 DBMSDBMS的模块组成的模块组成从模块结构来观察,从模块结构来观察,DBMSDBMS由两大部分组成:由两大部分组成:查询处理器和存储管理器。查询处理器和存储管理器。 查询处理器有四个主要成分:查询处理器有四个主要成分:DDLDDL编译器,编译器,DMLDML编译器,嵌入编译器,嵌入式式DMLDML的预编译器及查询运行核心程序。的预编译器及查询运行核心程序。 存储管理器有四个主要成分:权限和完整性管理器,事务管存储管理器有四个主要成分:权限和完整性管理器,事务管理器,文件管理器及缓冲区管理器。理器,文件管理器及缓冲区管理器。查查询询处处理理器器存存储储管管理理器器应用程序应用程序目标码目标码嵌入型嵌入型DML预编译器预编译器DML编译器编译器DDL编译器编译器查询运行查询运行核心程序核心程序权限和完权限和完整性管理器整性管理器事务事务管理器管理器缓冲区缓冲区管理器管理器文件文件管理器管理器数据库管理系统:数据库管理系统:模块结构模块结构6、数据库系统、数据库系统DBSDBS DBSDBS的组成的组成:数据库数据库DB硬件硬件软件软件数据库管理员数据库管理员DBA DBS DBS的全局结构的全局结构 DBSDBS结构的分类结构的分类 DBSDBS的效益的效益 数据库管理员数据库管理员DBADBA:DBADBA是控制数据整体结构的一组人员,负责是控制数据整体结构的一组人员,负责 DBSDBS的正常运行,承担创建、监控和维护数据库结构的责任。的正常运行,承担创建、监控和维护数据库结构的责任。 DBADBA的主要职责:的主要职责:定义模式定义模式定义内模式定义内模式与用户的联络。包括定义外模式、应用程序的设计、与用户的联络。包括定义外模式、应用程序的设计、提供技术培训等专业服务。提供技术培训等专业服务。定义安全性规则,对用户访问数据库的授权。定义安全性规则,对用户访问数据库的授权。定义完整性规则,监督数据库的运行。定义完整性规则,监督数据库的运行。数据库的转储与恢复工作。数据库的转储与恢复工作。第第3 3章章 关系运算关系运算1、基本概念、基本概念关系模型:关系模型:用二维表格表示实体集,用关键码表示实体间用二维表格表示实体集,用关键码表示实体间联系的数据模型;联系的数据模型;关键码:关键码:超键、候选键、主键和外键;超键、候选键、主键和外键;(P.37)关系的定义和关系的定义和特点特点;(P.36-P.37,P.41 )三类完整性规则:三类完整性规则:实体完整性规则、参照完整性规则、实体完整性规则、参照完整性规则、用户定义的完整性规则;用户定义的完整性规则;(P.40-P.41)过程性语言与非过程性语言:过程性语言与非过程性语言:过程性语言:编程时必须指出过程性语言:编程时必须指出“干什么干什么”及及“怎么干怎么干”的语言的语言;非非过过程程性性语语言言:编编程程时时只只须须指指出出“干干什什么么”,不不必必指指出出“怎怎么么干干”。过程性语言过程性语言非过程性语言非过程性语言编编程程时时,必必须须指指出出“怎怎么么干干”编编程程时时,不不必必指指出出“怎怎么么干干”由用户进行数据导航由用户进行数据导航由系统进行数据导航由系统进行数据导航单记录处理方式单记录处理方式集合处理方式集合处理方式属于属于3GL3GL范畴范畴属于属于4GL4GL范畴范畴C语言,层次、网状语言,层次、网状DMLDML等等关系关系DMLDML,软件开发工具等,软件开发工具等非过程性语言与过程性语言的区别非过程性语言与过程性语言的区别关系运算包括:关系代数和关系演算两类。关系运算包括:关系代数和关系演算两类。2、关系代数(关系代数(P.42P.51)理论基础:)理论基础:集合运算集合运算五个基本操作五个基本操作(并、差、笛卡儿积、投影、选择);(并、差、笛卡儿积、投影、选择);四个组合操作四个组合操作(交、联接、自然联接、除);(交、联接、自然联接、除);三个扩充的关系代数操作三个扩充的关系代数操作(外联接、外部并、半联接);(外联接、外部并、半联接);3、关系演算关系演算(P.52-P.56)理论基础:理论基础:谓词演算谓词演算元组关系演算和域关系演算的原子公式、公式的定义。元组关系演算和域关系演算的原子公式、公式的定义。无限关系无限关系(指元组个数为无穷多个的关系);(指元组个数为无穷多个的关系);无穷验证无穷验证(验证公式真假时需要进行无限次验证)。(验证公式真假时需要进行无限次验证)。关系关系演算的安全性和等价性。演算的安全性和等价性。4、查询优化、查询优化(P.57-P.64)关系代数表达式的优化问题;关系代数表达式的优化问题;关系代数表达式的等价变换规则;关系代数表达式的等价变换规则;优化的策略;优化的策略;优化算法、优化算法、例例3.24 关系代数表达式的运用技巧关系代数表达式的运用技巧(1)一般规则)一般规则对于只涉及到选择、投影、联接的查询可用下列表达式表示:对于只涉及到选择、投影、联接的查询可用下列表达式表示:(RS)或者或者(RS)(2)对于否定的操作,一般要用差操作表示对于否定的操作,一般要用差操作表示;例如例如:“检索不学检索不学C2C2课的学生姓名课的学生姓名”。 不能用下式表示:不能用下式表示:SNAME,AGE(CNOC2(SSC)一定要用一定要用“差差”的形式:的形式:SNAME,AGE(S)SNAME,AGE(CNO=C2(SSC)(3)(3)对对于于具具有有“全全部部”或或“包包含含”问问题题的的检检索索,一一般般要要用用除除法法操操作作表表示。示。 例例:“检索学习检索学习全部课程全部课程的学生学号的学生学号”:SNO,CNO(SC)CNO(C)不能表示为:不能表示为:SNO(SCCNO(C)第第4 4章章 关系数据库语言关系数据库语言SQL SQL (P.67-P.97)(P.67-P.97)1.SQLSQL数据库的体系结构,数据库的体系结构,SQLSQL的组成。的组成。2. SQL2. SQL的数据定义的数据定义:SQLSQL模式、基本表和索引的创建模式、基本表和索引的创建和撤销,和撤销,SQL提供的数据类型提供的数据类型。3.SQLSQL的数据查询:的数据查询:SELECTSELECT语句的格式,单表和多表查询,语句的格式,单表和多表查询, 基本表的联接操作基本表的联接操作,聚合和分组,集合操作。聚合和分组,集合操作。 4.SQLSQL的数据更新:的数据更新:插入、删除和修改语句。插入、删除和修改语句。5.视图的创建和撤消,视图的创建和撤消,对视图更新操作的限制对视图更新操作的限制。6. 6. 嵌入式嵌入式SQLSQL:预处理方式,使用规定,使用技术预处理方式,使用规定,使用技术。 内容分析内容分析 SELECTSELECT语句是语句是SQLSQL的核心内容,应掌握下列内容。的核心内容,应掌握下列内容。 1 1SELECTSELECT语句的来历语句的来历 在关系代数中最常用的式子是下列表达式:在关系代数中最常用的式子是下列表达式: A1,A1,An,An(F F(R(R1 1R Rm m) 这里这里R R1 1、R Rm m为关系,为关系,F F是公式,是公式,A A1 1、A An n为属性。为属性。 为此为此SQLSQL设计成设计成SELECTSELECTFROMFROMWHEREWHERE句型:句型:SELECT ASELECT A1 1,A An nFROM RFROM R1 1,R Rm mWHERE FWHERE F 该句型是从关系代数表达式演变来的,但该句型是从关系代数表达式演变来的,但WHEREWHERE子句中的条件表子句中的条件表 达式达式F F要比关系代数中公式更灵活。要比关系代数中公式更灵活。 2 2SELECTSELECT语句中出现的基本表名,语句中出现的基本表名,应理解为基本表中的元组变应理解为基本表中的元组变 量,而列名应理解为元组分量。量,而列名应理解为元组分量。 3 3SELECTSELECT语句的语义通常有三种情况(语句的语义通常有三种情况(SQLSQL标准标准): : 以学生表以学生表S S(SNOSNO,SNAMESNAME,AGEAGE,SEXSEX)为例说明。)为例说明。 第一种情况第一种情况:SELECT:SELECT语句中未使用分组子句语句中未使用分组子句, ,也未使用聚合操作也未使用聚合操作, 那么那么SELECTSELECT子句的语义是对查询的结果执行投影操作。子句的语义是对查询的结果执行投影操作。 如:如:SELECT SNOSELECT SNO,SNAMESNAME FROM S FROM S WHERE SEX= WHERE SEX= M M ; 第二种情况:第二种情况:SELECTSELECT语句中未使用分组子句,但在语句中未使用分组子句,但在SELECTSELECT子句中子句中 使用了聚合操作,此时使用了聚合操作,此时SELECTSELECT子句的语义是对查询结子句的语义是对查询结 果执行聚合操作。果执行聚合操作。 如:如:SELECT COUNTSELECT COUNT(* *),),AVGAVG(AGEAGE) FROM S WHERE SEX=FROM S WHERE SEX= M M ; 该语句是求男同学的人数和平均年龄。该语句是求男同学的人数和平均年龄。 第三种情况:第三种情况:SELECTSELECT语句使用了分组子句和聚合操作语句使用了分组子句和聚合操作, ,此时此时SELECTSELECT 子句的语义是子句的语义是对查询结果的每一分组去做聚合操作。对查询结果的每一分组去做聚合操作。 例例:求平均人数大于十人的男同学每一年龄的人数。:求平均人数大于十人的男同学每一年龄的人数。 SELECT AGESELECT AGE,COUNTCOUNT(* *) FROM SFROM S WHERE SEX= WHERE SEX=男男 AND COUNT(*)10; AND COUNT(*)10; 例例:求平均人数大于十人的男同学每一年龄的人数。:求平均人数大于十人的男同学每一年龄的人数。 SELECT AGESELECT AGE,COUNTCOUNT(* *) FROM SFROM S WHERE SEX= WHERE SEX=男男 GROUP BY AGE HAVING COUNT(*)10 GROUP BY AGE HAVING COUNT(*)10 ; SQL SQL的数据更新:的数据更新:插入、删除和修改语句插入、删除和修改语句(P.89-P.91) 数据插入数据插入 1 1、插入单个元组:、插入单个元组: INSERT INTO INSERT INTO 基本表名(列名表)基本表名(列名表) VALUES VALUES (元组值)(元组值) 2 2、插入子查询的结果:、插入子查询的结果: INSERT INTO INSERT INTO 基本表名(列名表)基本表名(列名表) SELECT SELECT 查询语句;查询语句; 数据删除数据删除删除关系中满足条件的元组语句的句法如下:删除关系中满足条件的元组语句的句法如下: DELETE FROM DELETE FROM WHERE WHERE 数据修改数据修改 UPDATE UPDATE 基本表名基本表名 SET SET 列名列名= =值表达式值表达式 ,列名,列名= =值表达式值表达式 WHERE WHERE 条件表达式条件表达式 视图的更新操作视图的更新操作 (P.91-P.92)(P.91-P.92) 对于视图元组的更新操作(对于视图元组的更新操作(INSERTINSERT、DELETDELET、UPDATAUPDATA),有以下),有以下三条规则:三条规则: 如如果果一一个个视视图图是是从从多多个个基基本本表表使使用用联联接接操操作作导导出出的的,那那么么不不允许对这个视图执行更新操作。允许对这个视图执行更新操作。 如如果果在在导导出出视视图图的的过过程程中中,使使用用了了分分组组和和聚聚合合操操作作,也也不不允允许对这个视图执行更新操作。许对这个视图执行更新操作。 如如果果视视图图是是从从单单个个基基本本表表使使用用选选择择、投投影影操操作作导导出出的的,并并且且包包含含了了基基本本表表的的主主键键或或某某个个候候选选键键,那那么么这这样样的的视视图图称称为为“行行列列子子集视图集视图”,并且可以被执行更新操作。,并且可以被执行更新操作。 在在SQL2SQL2中中, ,允允许许更更新新的的视视图图在在定定义义时时, ,必必须须加加上上“WITH WITH CHECK CHECK OPTIONOPTION”短语。短语。 嵌入式嵌入式SQLSQL的使用技术的使用技术: :嵌入式嵌入式SQLSQL的实现,有两种处理方式:的实现,有两种处理方式:1 1、扩充宿主语言的编译程序,使之能处理、扩充宿主语言的编译程序,使之能处理SQLSQL语句;语句; 2 2、采用预处理方式。、采用预处理方式。目前多数系统采用后一种方式。目前多数系统采用后一种方式。目标程序目标程序宿主语言十嵌入式宿主语言十嵌入式SQLSQL 预预 处处理理程程序序 宿主语言十函数调用宿主语言十函数调用宿主语言编译宿主语言编译程程序序 嵌入式嵌入式SQLSQL使用时必须解决的问题使用时必须解决的问题为为区区分分SQLSQL语语句句与与宿宿主主语语言言语语句句,在在所所有有的的SQLSQL语语句句前前必必须须加加上上 前前缀缀标标识识“EXEC EXEC SQL”SQL”,并并以以“END END EXEC”EXEC”作作为为语语句句结结束束标志。标志。 数据库工作单元和主程序工作单元之间的通讯数据库工作单元和主程序工作单元之间的通讯 允允许许嵌嵌入入的的SQLSQL语语句句引引用用宿宿主主语语言言的的程程序序变变量量 (称称为为共共享享变变量量)。在在引引用用这这些些变变量量时时必必须须在在这这些些变变量量前前加加冒冒号号“ “ :”作作为为前缀标识,以示与数据库中变量有区别前缀标识,以示与数据库中变量有区别; ; 引入游标机制:引入游标机制: 将集合操作转换为单元组处理。将集合操作转换为单元组处理。 与游标有关的语句:与游标有关的语句: 定义游标语句(定义游标语句( DECLARE DECLARE ) 打开游标语句(打开游标语句(OPENOPEN) 游标推进语句(游标推进语句(FETCHFETCH)关闭游标语句(关闭游标语句(CLOSECLOSE) 嵌入式嵌入式SQLSQL的使用技术的使用技术 第六章第六章 实体联系模型实体联系模型 实体联系模型实体联系模型(ER(ER模型模型):):概念模型设计方法。概念模型设计方法。 实体与属性的基本概念实体与属性的基本概念, ,属性的分类属性的分类, ,联系的元数、联系的元数、连通词、基数。连通词、基数。 扩展的实体联系模型的表示方法扩展的实体联系模型的表示方法; ;如何使用实体联系模型进行概念设计的方法如何使用实体联系模型进行概念设计的方法 ERER模型到关系模型的转换规则模型到关系模型的转换规则
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号