数据库系统概论知识点_计算机-数据库.pdf
-第一章:绪论 数据库DB :长期存储在计算机、有组织、可共享的大量数据的集合。数据库中的数据按照一定的数据模型组织、描述和存储,具有娇小的冗余度、交稿的数据独立性和易扩展性,并可为各种用户共享。数据库管理系统DBMS :位于用户和操作系统间的数据管理系统的一层数据管理软件。用途:科学地组织和存储数据,高效地获取和维护数据。包括数据定义功能,数据组织、存储和管理,数据操纵功能,数据库的事物管理和运行管理,数据库的建立和维护功能,其他功能。数据库系统DBS :在计算机系统中引入数据库后的系统,一般由数据库。数据库管理系统及其开发工具、应用系统、数据库管理员构成。目的:存储信息并支持用户检索和更新所需的信息。数据库系统的特点:数据构造化;数据的共享性高,冗余度低,易扩大;数据独立性高;数据由 DBMS统一管理和控制。概念模型 实体,客观存在并可相互区别的事物称为实体。属性,实体所具有的*一特性称为属性。码,唯一标识实体的属性集称为码。域,是一组具有一样数据类型的值的集合。实体型,具有一样属性的实体必然具有的共同的特征和性质。实体集,同一类型实体的集合称为实体集。联系 两个实体型之间的联系 一对一联系;一对多联系;多对多联系 关系模型 关系,元组,属性,码,域,分量,关系模型 关系数据模型的操纵与完整性约束 关系数据模型的操作主要包括查询,插入,删除和更新数据。这些操作必须满足关系完整性约束条件。关系的完整性约束条件包括三大类:实体完整性,参照完整性和用户定义的完整性。数据库系统三级模式构造外模式,模式,模式 模式:逻辑模式数据库中全体数据的逻辑构造和特征的描述,是所有用户的公共数据视图。一个数据库只有一个模式。模式的地位:是数据库系统模式构造的中间层,与数据的物理存储细节和硬件环境无关,与具体的应用程序、开发工具及高级程序设计语言无关。模式定义的容:数据的逻辑构造数据项的名字、类型、取值围等,数据之间的联系,数据有关的平安性、完整性要求 外模式:子模式/用户模式数据库用户包括应用程序员和最终用户能够看见和使用的局部数据库和逻辑构造和特征的描述,是数据库用户的数据视图,是与*一应用有关的系统的逻辑表示。一个数据库可以有多个外模式。-外模式的地位:介于模式与应用之间 模式与外模式的关系:一对多。外模式通常是模式的子集。一个数据库可以有多个外模式。反映了不同的用户的应用需求、对待数据的方式、对数据的要求。对模式中同一数据,在外模式中的构造、类型、长度、级别等都可以不同。外模式与应用的关系:一对多。同一外模式也可以为*一用户的多个应用系统所使用 但一个应用程序只能使用一个外模式 模式:存储模式或视图是数据物理构造和存储方式的描述,是数据在数据库部实际存储的表示方式:记录的存储方式顺序,B 树,hash方法存储,索引的组织方式,数据是否压缩存储,数据是否加密。数据存储记录构造的规定,一个数据库只有一个模式 三级模式的优点:1保证数据的独立性模式与模式分开物理独立;外模式与模式分开逻辑独立 2简化用户窗口 3有利于数据共享 4利于数据的平安 5数据存储由 DBMS管理用户不用考虑存取路径等细节 二级映像功能:(1)外模式/模式映像应用可扩大性 定义外模式(局部逻辑构造)与模式(全局逻辑构造)之间的对应关系,映象定义通常包含在各自外模式的描述中,每一个外模式,数据库系统都有一个外模式模式映象。用途:保证数据的逻辑独立性 当模式改变时,数据库管理员修改有关的外模式模式映象,使外模式保持不变 应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。(2)模式/模式映像空间利用率,存取效率 模式/模式映像是唯一的,它定义了数据全局逻辑构造与存储构造之间的对应关。数据库中模式模式映象是唯一的。该映象定义通常包含在模式描述中。用途:保证数据的物理独立性 当数据库的存储构造改变了例如选用了另一种存储构造,数据库管理员修改模式模式映象,使模式保持不变。应用程序不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性。优点:1保证了数据库外模式的稳定性。2从底层保证了应用程序的稳定性,除非应用需求本身发生变化,否则应用程序一般不需要修改。3数据与程序之间的独立性,使得数据的定义和描述可以从应用程序中别离出去。什么叫数据与程序的物理独立性.什么叫数据与程序的逻辑独立性.为什么数据库系统具有数据与程序的独立性.1、数据与程序的逻辑独立性:当模式改变时,数据库管理员修改有关的外模式模式映象,使外模式保持不变。从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。2、数据与程序的物理独立性:当数据库的存储构造改变了例如选用了另一种存储构造,数据库管理员修改模式模式映象,使模式保持不变。应用程序不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性。数据库管理系统在三级模式之间错提供的二层影响保证了数据系统中的数据具有较高的逻辑独立性和物理独立性。数据库系统的组成 硬件平台及数据库,软件,人员 第二章:关系数据库 关系的完整性约束 实体完整性和参照完整性:关系模型必须满足的完整性约束条件称为关系的两个不变性,应该由关系系统自动述和存储具有娇小的冗余度交稿的数据独立性和易扩展性并可为各种用户共享数据库管理系统位于用户和操作系统间的数据管理系统的一层数据管理软件用途科学地组织和存储数据高效地获取和维护数据包括数据定义功能数据组织统中引入数据库后的系统一般由数据库数据库管理系统及其开发工具应用系统数据库管理员构成目的存储信息并支持用户检索和更新所需的信息数据库系统的特点数据构造化数据的共享性高冗余度低易扩大数据独立性高数据由统一的属性集称为码域是一组具有一样数据类型的值的集合实体型具有一样属性的实体必然具有的共同的特征和性质实体集同一类型实体的集合称为实体集联系两个实体型之间的联系一对一联系一对多联系多对多联系关系模型关系元组-支持。用户定义的完整性:应用领域需要遵循的约束条件,表达了具体领域中的语义约束。外码,主码,候选码的概念 候选码:假设关系中的*一属性组的职能唯一地标识一个元组,则称该属性组为候选码。主码:假设一个关系有多个候选码,则选定期中一个为主码。外部码:设 F 是根本关系 R 的一个或一组属性。但不是关系 R 的码,如果 F 与根本关系 S 的主码 K 想对应,则称 F 是根本关系 R 的外部码,简称外码。关系的 3 类完整性约束概念 实体完整性:假设属性指一个或一组属性A 是根本关系 R 的主属性,A 不能取空值。参照完整性:假设属性或属性组F 是根本关系 R 的外码,它是根本关系 S 的主码 K 相对应根本关系 R和 S 不一定是不同的关系,则对于 R 中每个元组在 F 上的值必须为:或者取空值F 的每个属性值均为空值;或者等于 S 中*个元组的主码值。用户定义的完整性:针对*一具体关系数据库的约束条件。反映*一具体应用所设计的数据必须满足的语义要求。关系操作的特点,关系代数中的各种运算 关系操作的特点是集合操作方式,即操作的对象和结果是集合。关系代数 1、并RS仍为 n 目关系,由属于 R 或属于 S 的元组组成。RS=t|t Rt S 2、差R S 仍为 n 目关系,由属于 R 而不属于 S 的所有元组组成。R-S=t|tRtS 3、交RS仍为 n 目关系,由既属于 R 又属于 S 的元组组成。RS=t|t Rt S R S=R(R-S 4、笛卡尔积 R:n 目关系,k1 个元组;S:m 目关系,k2 个元组;RS。9、选择:选择又称为限制Restriction:对元组按照条件进展筛选。在关系 R 中选择满足给定条件的诸元组 F(R)=t|tRF(t)=真。10、投影:投影运算符的含义:从 R 中选择出假设干属性列组成新的关系 A(R)=tA|t R A:R 中的属性列投影操作主要是从列的角度进展运算。但投影之后不仅取消了原关系中的*些列,而且还可能取消*些元组 防止重复行。11、连接:连接也称为连接:两表中的元组有条件的串接。从两个关系的笛卡尔积中选取属性间满足一定条件的元组 R S=|tr Rts StrAtsB 外连接:如果把舍弃的元组也保存在结果关系中,而在其他属性上填空值(Null),这种连接就叫做外连接。左外连接:如果只把左边关系 R 中要舍弃的元组保存就叫做左外连接(LEFT OUTER JOIN或 LEFT JOIN)。右外连接:如果只把右边关系S 中要舍弃的元组保存就叫做右外连接(RIGHT OUTER JOIN或RIGHT JOIN)。12、除:给定关系 R(*,Y)和 S(Y,Z),其中*,Y,Z 为属性组;R 中的 Y 与 S 中的 Y 可以有不同的属性名,但必须出自一样的域集;R 与 S 的除运算得到一个新的关系 P(*),P 是 R 中满足以下条件的元组在*属性列上的投影 第三章:关系数据库标准语言 SQL 注意:SQL(Oracle除外)一般不提供修改视图定义和索引定义的操作,需要先删除再重建 定义根本表:CREATE TABLE ,;列级完整性约束-涉及到该表的一个属性 NOT NULL:非空值约束 述和存储具有娇小的冗余度交稿的数据独立性和易扩展性并可为各种用户共享数据库管理系统位于用户和操作系统间的数据管理系统的一层数据管理软件用途科学地组织和存储数据高效地获取和维护数据包括数据定义功能数据组织统中引入数据库后的系统一般由数据库数据库管理系统及其开发工具应用系统数据库管理员构成目的存储信息并支持用户检索和更新所需的信息数据库系统的特点数据构造化数据的共享性高冗余度低易扩大数据独立性高数据由统一的属性集称为码域是一组具有一样数据类型的值的集合实体型具有一样属性的实体必然具有的共同的特征和性质实体集同一类型实体的集合称为实体集联系两个实体型之间的联系一对一联系一对多联系多对多联系关系模型关系元组-UNIQUE:唯一性单值约束约束 PRIMARY KEY:主码约束 DEFAULT:默认缺省约束 Check:核查约束,定义校验条件 NOT NULL:非空值约束 UNIQUE:唯一性单值约束约束 PRIMARY KEY:主码约束 DEFAULT:默认缺省约束 Check:核查约束,定义校验条件 表级完整性约束-涉及到该表的一个或多个属性。UNIQUE(属性列列表):限定各列取值唯一 PRIMARY KEY(属性列列表):指定主码 FOREIGN KEY(属性列列表)REFERENCES (属性列列表)Check():检查约束 PRIMARY KEY 与 UNIQUE的区别.例:建立“学生表 Student,*是主码,取值唯一 CREATE TABLE Student (Sno CHAR(9)PRIMARY KEY,/*主码*/Sname CHAR(20)UNIQUE,/*Sname取唯一值*/Sse*CHAR(2),Sage SMALLINT,Sdept CHAR(20);数据类型 修改根本表:ALTER TABLE ADD 完整性约束 DROP|ALTER COLUMN ;例:向 Student表增加“入学时间列,其数据类型为日期型 ALTER TABLE Student ADD S_entrance DATE;不管根本表中原来是否已有数据,新增加的列一律为空值 将年龄的数据类型由字符型假设原来的数据类型是字符型改为整数 ALTER TABLE Student ALTER COLUMN Sage INT;注:修改原有的列定义有可能会破坏已有数据 增加课程名称必须取唯一值的约束条件。ALTER TABLE Course ADD UNIQUE(ame);直接删除属性列:(新标准)例:ALTER TABLE Student Drop Sage;删除根本表:DROP TABLE RESTRICT|CASCADE;RESTRICT:(受限)欲删除的根本表不能被其他表的约束所引用,如果存在依赖该表的对象 触发器,视图等,则此表不能被删除。CASCADE:级联在删除根本表的同时,相关的依赖对象一起删除。例:删除 Student表 DROP TABLE Student CASCADE;根本表定义被删除,数据被删除;表上建立的索引、视图、触发器等一般也将被删除。删除索引:DROP INDE*;删除索引时,系统会从数据字典中删去有关该索引的描述。例:删除 Student表的 Stusname索引:DROP INDE*Stusname 2、数据查询:根本格式 单表查询 选择表中的假设干列 投影 述和存储具有娇小的冗余度交稿的数据独立性和易扩展性并可为各种用户共享数据库管理系统位于用户和操作系统间的数据管理系统的一层数据管理软件用途科学地组织和存储数据高效地获取和维护数据包括数据定义功能数据组织统中引入数据库后的系统一般由数据库数据库管理系统及其开发工具应用系统数据库管理员构成目的存储信息并支持用户检索和更新所需的信息数据库系统的特点数据构造化数据的共享性高冗余度低易扩大数据独立性高数据由统一的属性集称为码域是一组具有一样数据类型的值的集合实体型具有一样属性的实体必然具有的共同的特征和性质实体集同一类型实体的集合称为实体集联系两个实体型之间的联系一对一联系一对多联系多对多联系关系模型关系元组-查询指定列 相当于 A(R),A=A1,A2,An 例;查询全体学生的*与 SELECT Sno,Sname FROM Student;查询全部列:在 SELECT关键字后面列出所有列名按用户指定顺序显示。将指定为*按关系模式中的属性顺序显示。例:查询全体学生的详细记录 SELECT Sno,Sname,Sse*,Sdept,Sage FROM Student;或 SELECT *FROM Student;P.S:SELECT子句的可以为:查询经过计算的值 例:查全体学生的及其出生年份 SELECT Sname,2021-Sage /*假定当年的年份为 2021 年*/FROM Student;输出结果:Sname 2021-Sage 勇 1991 晨 1992 字符串常量、函数 例:查询全体学生的、出生年份和所有系,要求用小写字母 表示所有系名 SELECT Sname,Year of Birth:,2004-Sage,ISLOWER(Sdept)FROM Student;输出结果:Sname Year of Birth:2004-Sage ISLOWER(Sdept)勇 Year of Birth:1984 cs 晨 Year of Birth:1985 is 列别名 SELECT Sname as NAME,Year of Birth:as BIRTH,2021-Sage as BIRTHDAY,LOWER(Sdept)as DEPARTMENT FROM Student;输出结果:NAME BIRTH BIRTHDAY DEPARTMENT-勇 Year of Birth:1991 cs 晨 Year of Birth:1992 is 选择表中的假设干元组选择 消除重复性:指定 DISTINCT关键词,去掉表中重复的行 SELECT DISTINCT Sno FROM SC;注意 DISTINCT短语的作用围是所有目标列 错误的写法 SELECT DISTINCT o,DISTINCT Grade FROM SC;正确的写法 SELECT DISTINCT o,Grade FROM SC;SELECT 子句缺省情况是保存重复元组(ALL),述和存储具有娇小的冗余度交稿的数据独立性和易扩展性并可为各种用户共享数据库管理系统位于用户和操作系统间的数据管理系统的一层数据管理软件用途科学地组织和存储数据高效地获取和维护数据包括数据定义功能数据组织统中引入数据库后的系统一般由数据库数据库管理系统及其开发工具应用系统数据库管理员构成目的存储信息并支持用户检索和更新所需的信息数据库系统的特点数据构造化数据的共享性高冗余度低易扩大数据独立性高数据由统一的属性集称为码域是一组具有一样数据类型的值的集合实体型具有一样属性的实体必然具有的共同的特征和性质实体集同一类型实体的集合称为实体集联系两个实体型之间的联系一对一联系一对多联系多对多联系关系模型关系元组-例:查询选修了课程的学生*。SELECT Sno FROM SC;等价于:SELECT ALL Sno FROM SC;查询满足条件的元组 WHERE 子句常用的查询条件相当于 F 比拟大小使用比拟运算符 或逻辑运算符 NOT +比拟运算符 例:查询计算机科学系全体学生的 SELECT Sname FROM Student WHERE Sdept=CS ;例:查询所有年龄在 20 岁以下的学生及其年龄 SELECT Sname,Sage FROM Student WHERE Sage=20 确定围 BETWEEN AND NOT BETWEEN AND 例;查询年龄在 2023 岁包括 20 岁和 23 岁之间的学生的、系别和年龄 SELECT Sname,Sdept,Sage FROM Student WHERE Sage BETWEEN 20 AND 23;/Sage=20 and Sage=23 例:查询年龄不在 2023 岁之间的学生、系别和年龄 SELECT Sname,Sdept,Sage FROM Student WHERE Sage NOT BETWEEN 20 AND 23;/Sage23 确定集合 IN,NOT IN 例:查询信息系IS、数学系MA和计算机科学系CS 学生的和性别 SELECT Sname,Sse*FROM Student WHERE Sdept IN(IS,MA,CS);例:查询既不是信息系、数学系,也不是计算机科学系的学生的和性别 SELECT Sname,Sse*FROM Student WHERE Sdept NOT IN(IS,MA,CS);自负匹配NOT LIKE ESCAPE 匹配串为固定字符串 例:查询*为 200215121的学生的详细情况。SELECT*SELECT *FROM Student 等价于:FROM Student WHERE Sno LIKE 200215121;WHERE Sno=200215121;匹配串为含通配符的字符串%:代表任意长度可以是 0的字符串 _:代表任意单个字符 字符串本身就含有%或 _ 时,在%或 _ 之前加上转义符“要使用 ESCAPE 将通配符转义为普通字符。如果 要作为一个普通字符,用连续两个 表示一个真正的。例:查询以DB_开头,且倒数第 3 个字符为 i 的课程的详细情况。SELECT *FROM Course WHERE ame LIKE DB_%i_ _ ESCAPE ;述和存储具有娇小的冗余度交稿的数据独立性和易扩展性并可为各种用户共享数据库管理系统位于用户和操作系统间的数据管理系统的一层数据管理软件用途科学地组织和存储数据高效地获取和维护数据包括数据定义功能数据组织统中引入数据库后的系统一般由数据库数据库管理系统及其开发工具应用系统数据库管理员构成目的存储信息并支持用户检索和更新所需的信息数据库系统的特点数据构造化数据的共享性高冗余度低易扩大数据独立性高数据由统一的属性集称为码域是一组具有一样数据类型的值的集合实体型具有一样属性的实体必然具有的共同的特征和性质实体集同一类型实体的集合称为实体集联系两个实体型之间的联系一对一联系一对多联系多对多联系关系模型关系元组-涉及空值的查询 IS NULL 或 IS NOT NULL “IS 不能用“=代替 例:查所有有成绩的学生*和课程号 SELECT Sno,o FROM SC WHERE Grade IS NOT NULL;多重条件查询:AND 和 OR 来联结多个查询条件,AND 的优先级高于 OR,可以用括号改变优先级,可用来实 现多种其他谓词。NOT IN NOT BETWEEN AND 改写 例:查询信息系IS、数学系MA和计算机科学系CS 学生的和性别 SELECT Sname,Sse*FROM Student WHERE Sdept IN(IS,MA,CS)可改写为:SELECT Sname,Sse*FROM Student WHERE Sdept=IS OR Sdept=MA OR Sdept=CS ORDER BY子句:对查询结果排序 可以按一个或多个属性列排序:升序:ASC;降序:DESC;缺省值为升序。当排序列含空值时:空值最大 ASC:排序列为空值的元组最后显示;DESC:排序列为空值的元组最先显示。例:查询选修了 3 号课程的学生的*及其成绩,查询结果按分数降序排列 SELECT Sno,Grade FROM SC WHERE o=3 ORDER BY Grade DESC;聚集函数:对查询结果集中的*列进展计算或统计。计数 COUNT DISTINCT|ALL*COUNT DISTINCT|ALL 计算总和 SUM DISTINCT|ALL 计算平均值 AVGDISTINCT|ALL 最大最小值 MA*DISTINCT|ALL MIN DISTINCT|ALL 例:查询学生 200215012选修课程的总学分数 SELECT SUM(Ccredit)FROM SC,Course WHER Sno=200215012 AND SC.o=Course.o;注:除 Count*,都要跳过空值;Where 子句不能使用聚集函数。GROUP BY子句:对查询结果分组。用途细化聚集函数的作用对象 未对查询结果分组,聚集函数将作用于整个查询结果 对查询结果分组后,聚集函数将分别作用于每个组 使用 GROUP BY 后:其 SELECT子句的列名列表中只能出现分组属性和集函数。如果分组后还要按照条件对这些组进展筛选,可使用 having 短语指定筛选条件 例:查询选修了 3 门以上课程的学生*SELECT Sno FROM SC 述和存储具有娇小的冗余度交稿的数据独立性和易扩展性并可为各种用户共享数据库管理系统位于用户和操作系统间的数据管理系统的一层数据管理软件用途科学地组织和存储数据高效地获取和维护数据包括数据定义功能数据组织统中引入数据库后的系统一般由数据库数据库管理系统及其开发工具应用系统数据库管理员构成目的存储信息并支持用户检索和更新所需的信息数据库系统的特点数据构造化数据的共享性高冗余度低易扩大数据独立性高数据由统一的属性集称为码域是一组具有一样数据类型的值的集合实体型具有一样属性的实体必然具有的共同的特征和性质实体集同一类型实体的集合称为实体集联系两个实体型之间的联系一对一联系一对多联系多对多联系关系模型关系元组-GROUP BY Sno HAVING COUNT(*)3;例:查询有 3 门以上课程是 90 分以上学生的*及90 分以上的课程数 SELECT Sno,COUNT(*)FROM SC Where Grade 90 GROUP BY Sno HAVING COUNT(*)3;HAVING 短语与 WHERE 子句的区别:作用对象不同 WHERE 子句作用于基表或视图,从中选择满足条件的元组 HAVING 短语作用于组,从中选择满足条件的组。*连接查询*p100 页*嵌套查询*p104 页 *重点*数据更新 1插入数据 插入元组 INSERT INTO (,)VALUES(,)功能:将新元组插入指定表中;新元组的属性列 1 的值为常量 1,属性列 2 的值为常量 2,。INTO 子句:属性列的顺序可与表定义中的顺序不一致,但须指定列名;没有指定属性列,表示要插入的是一条完整的元组;指定局部属性列,未指定的属性列取空值,具有 NOT NULL的属性列除外。VALUES 子句:提供的值必须与 INTO 子句匹配,值的个数,值的类型。例:将一个新学生元组*:200215128;:冬;性别:男;所在系:IS;年龄:18 岁插入到 Student表中 INSERT INTO Student(Sno,Sname,Sse*,Sdept,Sage)VALUES(200215128,冬,男,IS,18);例:将学生成民的信息插入到 Student表中 INSERT INTO Student VALUES(200215126,成民,男,18,CS);例:插入一条选课记录(200215128,1)。INSERT INTO SC(Sno,o)VALUES(200215128 ,1);RDBMS将在新插入记录的 Grade列上自动地赋空值。或者:INSERT INTO SC VALUES(200215128 ,1 ,NULL);因为没有指出 SC 的属性名,在 GRADE 列上要明确给出空值 插入子查询结果 Insert Into(,)述和存储具有娇小的冗余度交稿的数据独立性和易扩展性并可为各种用户共享数据库管理系统位于用户和操作系统间的数据管理系统的一层数据管理软件用途科学地组织和存储数据高效地获取和维护数据包括数据定义功能数据组织统中引入数据库后的系统一般由数据库数据库管理系统及其开发工具应用系统数据库管理员构成目的存储信息并支持用户检索和更新所需的信息数据库系统的特点数据构造化数据的共享性高冗余度低易扩大数据独立性高数据由统一的属性集称为码域是一组具有一样数据类型的值的集合实体型具有一样属性的实体必然具有的共同的特征和性质实体集同一类型实体的集合称为实体集联系两个实体型之间的联系一对一联系一对多联系多对多联系关系模型关系元组-子查询select 等;2修改数据 UPDATE SET =,=WHERE;SET 子句:指定修改方式,要修改的列,修改后取值:。WHERE 子句:指定要修改的元组,缺省表示要修改表中的所有元组。功能:修改指定表中满足 WHERE 子句条件的元组。修改*一个元组的值 例:将学生 200215121的年龄改为 22 岁 UPDATE Student SET Sage=22 WHERE Sno=200215121;修改多个元组的值 例:将所有学生的年龄增加 1 岁 UPDATE Student SET Sage=Sage+1;带子查询的修改语句 子查询须放在比拟运算符之后 例:将计算机科学系全体学生的成绩置零。UPDATE SC SET Grade=0 WHERE CS=(SELETE Sdept FROM Student WHERE Student.Sno=SC.Sno);3删除数据 DELETE FROM WHERE;功能:删除指定表中满足 WHERE 子句条件的元组。WHERE 子句:指定要删除的元组;缺省表示要删除表中的全部元组,表的定义仍在数据字典中。删除*一个元组的值 例:删除*为 200215128的学生记录 DELETE FROM Student WHERE Sno=200215128;删除多个元组的值 例:删除所有的学生选课记录 DELETE FROM SC;带子查询的删除语句 述和存储具有娇小的冗余度交稿的数据独立性和易扩展性并可为各种用户共享数据库管理系统位于用户和操作系统间的数据管理系统的一层数据管理软件用途科学地组织和存储数据高效地获取和维护数据包括数据定义功能数据组织统中引入数据库后的系统一般由数据库数据库管理系统及其开发工具应用系统数据库管理员构成目的存储信息并支持用户检索和更新所需的信息数据库系统的特点数据构造化数据的共享性高冗余度低易扩大数据独立性高数据由统一的属性集称为码域是一组具有一样数据类型的值的集合实体型具有一样属性的实体必然具有的共同的特征和性质实体集同一类型实体的集合称为实体集联系两个实体型之间的联系一对一联系一对多联系多对多联系关系模型关系元组-例:删除计算机科学系所有学生的选课记录 DELETE FROM SC WHERE CS=(SELETE Sdept FROM Student WHERE Student.Sno=SC.Sno);4、视 图 特点:虚表,是从一个或几个根本表或视图导出的表;只存放视图的定义,不存放视图对应的数据;基表中的数据发生变化,从视图中查询出的数据也随之改变。基于视图的操作:查询、删除、受限更新、定义基于该视图的新视图。1定义视图 建立视图 CREATE VIEW (,)AS WITH CHECK OPTION;子查询:不允许含有 ORDER BY子句和 DISTINCT短语。WITH CHECK OPTION:表示对视图进展 UPDATE,INSERT 和 DELETE操作时要保证更新、插入或删除的行满足视图定义中的谓词条件即子查询中的条件表达式。组成视图的属性列名:全部省略或全部指定,但在以下三种情况下必须明确指定组成视图的所有列名:*个目标列不是单纯的属性名,而是聚集函数或列表达式;多表连接时选出了几个同名列作为视图的字段;需要在视图中为*个列启用新的名字。RDBMS执行 CREATE VIEW语句时只是把视图定义存入数据字典,并不执行其中的 SELECT语句。在对视图查询时,按视图的定义从根本表中将数据查出。行列子集视图:从单个根本表导出,只是去掉了根本表的*些行和*些列保存了主码 例:建立信息系学生的视图 CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept=IS;WITH CHECK OPTION 例:建立信息系学生的视图,并要求进展修改和插入操作时仍需保证该视图只有信息系的学生 CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept=IS WITH CHECK OPTION;加上了 WITH CHECK OPTION子句:RDBMS对 IS_Student视图的更新操作:修改操作:自动加上 Sdept=IS的条件;删除操作:自动加上 Sdept=IS的条件;插入操作:自动检查 Sdept属性值是否为IS。如果不是,则拒绝该插入操作。如果没有提供 Sdept属性值,则自动定义 Sdept为IS。基于多个基表的视图 述和存储具有娇小的冗余度交稿的数据独立性和易扩展性并可为各种用户共享数据库管理系统位于用户和操作系统间的数据管理系统的一层数据管理软件用途科学地组织和存储数据高效地获取和维护数据包括数据定义功能数据组织统中引入数据库后的系统一般由数据库数据库管理系统及其开发工具应用系统数据库管理员构成目的存储信息并支持用户检索和更新所需的信息数据库系统的特点数据构造化数据的共享性高冗余度低易扩大数据独立性高数据由统一的属性集称为码域是一组具有一样数据类型的值的集合实体型具有一样属性的实体必然具有的共同的特征和性质实体集同一类型实体的集合称为实体集联系两个实体型之间的联系一对一联系一对多联系多对多联系关系模型关系元组-例:建立信息系选修了 1 号课程的学生视图 CREATE VIEW IS_S1(Sno,Sname,Grade)AS SELECT Student.Sno,Sname,Grade FROM Student,SC WHERE Sdept=IS AND Student.Sno=SC.Sno AND SC.o=1;基于视图的视图 例:建立信息系选修了 1 号课程且成绩在 90 分以上的学生的视图 CREATE VIEW IS_S2 AS SELECT Sno,Sname,Grade FROM IS_S1 WHERE Grade=90;由于视图中的数据不会实际存储,所以定义视图时可根据应用的需要,设置一些派生属性列或虚拟列,以便于查询和统计。以 SELECT*方式创立的视图可扩大性差,应尽可能防止。缺点:修改基表 Student的构造后,Student表与 F_Student视图的映象关系被破坏,导致该视图不能正确工作。删除视图 DROP VIEW ;该语句从数据字典中删除指定的视图定义。如果该视图上还导出了其他视图,使用 CASCADE级联删除语句,把该视图和由它导出的所有视图一起删除。删除基表时,由该基表导出的所有视图定义都必须显式地使用 DROP VIEW 语句删除。例:删除视图 BT_S:DROP VIEW BT_S;删除视图 IS_S1:拒绝执行 级联删除:DROP VIEW IS_S1 CASCADE;2 查询视图:查询视图与查询根本表一样,视图定义后,就可以像对待根本表一样对视图进展查询SELECT 操作。视图消解法View Resolution进展有效性检查,检查查询的表、视图等是否存在。如果存在,则从数据字典中取出视图的定义;转换成等价的对根本表的查询,把视图定义中的子查询与用户的查询结合起来;执行修正后的查询。例:在信息系学生的视图中找出年龄小于 20 岁的学生 SELECT Sno,Sage FROM IS_Student WHERE Sage20;视图消解转换后的查询语句为:SELECT Sno,Sage FROM Student WHERE Sdept=IS AND Sage=90;S_G 视图的子查询定义:CREATE VIEW S_G(Sno,Gavg)AS SELECT Sno,AVG(Grade)FROM SC GROUP BY Sno;3 更新视图 DBMS实现视图更新的方法:转换为对根本表的更新。视图消解法View Resolution。只有对成为“可更新视图才能进展更新操作。SQL2 对“可更新视图给出正式定义:从关系 R 选出*些属性用 select 而不是 select distinct定义的视图,R 本身可以是可更新的视图;Where 中不能嵌套涉及 R 的子查询;Select 必须包括足够多的属性,所有 not null 的属性必须包括。对于视图元组的更新操作INSERT、DELETE、UPDATA ,有以下三条规则:如果一个视图是从多个根本表使用联接操作导出的,则不允许对这个视图执行更新操作。如果在导出视图的过程中,使用了分组和聚集函数操作,也不允许对这个视图执行更新操作。行列子集视图可以执行更新操作。在 SQL2 中,允许更新的视图在定义时,必须加上“WITH CHECK OPTION短语。DBMS在更新视图时会进展检查,防止用户通过视图对不属于视图围的根本表数据进展更新。例:将信息系学生视图 IS_Student中*200215122的学生改为“辰。UPDATE IS_Student SET Sname=辰 WHERE Sno=200215122;转换后的语句:UPDATE Student SET Sname=辰 WHERE Sno=200215122 AND Sdept=IS;例:向信息系学生视图 IS_S 中插入一个新的学生记录:200215129,新,20 岁 INSERT INTO IS_Student VALUES(95029,新,20);转换为对根本表的更新:INSERT INTO Student(Sno,Sname,Sage,Sdept)VALUES(200215129,新,20,IS);例:删除信息系学生视图 IS_Student中*为 200215129的记录 DELETE FROM IS_Student WHERE Sno=200215129;转换为对根本表的更新:DELETE FROM Student 述和存储具有娇小的冗余度交稿的数据独立性和易扩展性并可为各种用户共享数据库管理系统位于用户和操作系统间的数据管理系统的一层数据管理软件用途科学地组织和存储数据高效地获取和维护数据包括数据定义功能数据组织统中引入数据库后的系统一般由数据库数据库管理系统及其开发工具应用系统数据库管理员构成目的存储信息并支持用户检索和更新所需的信息数据库系统的特点数据构造化数据的共享性高冗余度低易扩大数据独立性高数据由统一的属性集称为码域是一组具有一样数据类型的值的集合实体型具有一样属性的实体必然具有的共同的特征和性质实体集同一类型实体