数据库系统概论知识点整理.docx

上传人:叶*** 文档编号:34922914 上传时间:2022-08-19 格式:DOCX 页数:15 大小:352.03KB
返回 下载 相关 举报
数据库系统概论知识点整理.docx_第1页
第1页 / 共15页
数据库系统概论知识点整理.docx_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《数据库系统概论知识点整理.docx》由会员分享,可在线阅读,更多相关《数据库系统概论知识点整理.docx(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第一章:绪论数据库DB:长期存储在计算机内, 有组织, 可共享的大量数据的集合。数据库中的数据依据肯定的数据模型组织, 描述和存储,具有娇小的冗余度, 交稿的数据独立性和易扩展性,并可为各种用户共享。数据库管理系统DBMS:位于用户和操作系统间的数据管理系统的一层数据管理软件。用途:科学地组织和存储数据,高效地获得和维护数据。包括数据定义功能,数据组织, 存储和管理,数据操纵功能,数据库的事物管理和运行管理,数据库的建立和维护功能,其他功能。数据库系统DBS:在计算机系统中引入数据库后的系统,一般由数据库。数据库管理系统及其开发工具, 应用系统, 数据库管理员构成。目的:存储信息并支持用户检索

2、和更新所需的信息。数据库系统的特点:数据构造化;数据的共享性高,冗余度低,易扩大;数据独立性高;数据由DBMS统一管理和限制。概念模型 实体,客观存在并可相互区分的事物称为实体。属性,实体所具有的某一特性称为属性。码,唯一标识实体的属性集称为码。域,是一组具有一样数据类型的值的集合。实体型,具有一样属性的实体必定具有的共同的特征和性质。实体集,同一类型实体的集合称为实体集。联系两个实体型之间的联系 一对一联系;一对多联系;多对多联系关系模型 关系,元组,属性,码,域,重量,关系模型关系数据模型的操纵与完整性约束 关系数据模型的操作主要包括查询,插入,删除和更新数据。这些操作必需满意关系完整性约

3、束条件。关系的完整性约束条件包括三大类:实体完整性,参照完整性和用户定义的完整性。数据库系统三级模式构造外模式,模式,内模式模式:逻辑模式数据库中全体数据的逻辑构造和特征的描述,是全部用户的公共数据视图。一个数据库只有一个模式。模式的地位:是数据库系统模式构造的中间层,与数据的物理存储细微环节和硬件环境无关,与具体的应用程序, 开发工具及高级程序设计语言无关。模式定义的内容:数据的逻辑构造数据项的名字, 类型, 取值范围等,数据之间的联系,数据有关的平安性, 完整性要求外模式:子模式/用户模式数据库用户包括应用程序员和最终用户能够望见和运用的局部数据库和逻辑构造和特征的描述,是数据库用户的数据

4、视图,是与某一应用有关的系统的逻辑表示。一个数据库可以有多个外模式。外模式的地位:介于模式与应用之间模式与外模式的关系:一对多。外模式通常是模式的子集。一个数据库可以有多个外模式。反映了不同的用户的应用需求, 对待数据的方式, 对数据保密的要求。对模式中同一数据,在外模式中的构造, 类型, 长度, 保密级别等都可以不同。外模式与应用的关系:一对多。同一外模式也可以为某一用户的多个应用系统所运用但一个应用程序只能运用一个外模式内模式:存储模式或内视图是数据物理构造和存储方式的描述,是数据在数据库内部实际存储的表示方式:记录的存储方式依次,B树,hash方法存储,索引的组织方式,数据是否压缩存储,

5、数据是否加密。数据存储记录构造的规定,一个数据库只有一个内模式三级模式的优点:1保证数据的独立性内模式与模式分开物理独立;外模式与模式分开逻辑独立2简化用户窗口 3有利于数据共享 4利于数据的平安保密5数据存储由DBMS管理用户不用考虑存取路径等细微环节二级映像功能:(1) 外模式/模式映像应用可扩大性定义外模式(局部逻辑构造)与模式(全局逻辑构造)之间的对应关系,映象定义通常包含在各自外模式的描述中,每一个外模式,数据库系统都有一个外模式模式映象。用途:保证数据的逻辑独立性当模式变更时,数据库管理员修改有关的外模式模式映象,使外模式保持不变应用程序是依据数据的外模式编写的,从而应用程序不必修

6、改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。(2) 模式/内模式映像空间利用率,存取效率模式/内模式映像是唯一的,它定义了数据全局逻辑构造与存储构造之间的对应关。数据库中模式内模式映象是唯一的。该映象定义通常包含在模式描述中。用途:保证数据的物理独立性当数据库的存储构造变更了例如选用了另一种存储构造,数据库管理员修改模式内模式映象,使模式保持不变。应用程序不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性。优点:1保证了数据库外模式的稳定性。2从底层保证了应用程序的稳定性,除非应用需求本身发生变更,否那么应用程序一般不须要修改。3数据与程序之间的独立性,使得数据的定义和描

7、述可以从应用程序中别离出去。什么叫数据与程序的物理独立性?什么叫数据与程序的逻辑独立性? 为什么数据库系统具有数据与程序的独立性?1, 数据与程序的逻辑独立性:当模式变更时,数据库管理员修改有关的外模式模式映象,使外模式保持不变。从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。2, 数据与程序的物理独立性:当数据库的存储构造变更了例如选用了另一种存储构造,数据库管理员修改模式内模式映象,使模式保持不变。应用程序不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性。数据库管理系统在三级模式之间错供应的二层影响保证了数据系统中的数据具有较高的逻辑独立性和物理独立性

8、。数据库系统的组成 硬件平台及数据库,软件,人员第二章:关系数据库关系的完整性约束实体完整性和参照完整性:关系模型必需满意的完整性约束条件称为关系的两个不变性,应当由关系系统自动支持。用户定义的完整性:应用领域须要遵循的约束条件,表达了具体领域中的语义约束。外码,主码,候选码的概念候选码:假设关系中的某一属性组的职能唯一地标识一个元组,那么称该属性组为候选码。主码:假设一个关系有多个候选码,那么选定期中一个为主码。外部码:设F是根本关系R的一个或一组属性。但不是关系R的码,假如F与根本关系S的主码K想对应,那么称F是根本关系R的外部码,简称外码。关系的3类完整性约束概念实体完整性:假设属性指一

9、个或一组属性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的全部

10、元组组成。R -S = t|tRtS 3, 交RS仍为n目关系,由既属于R又属于S的元组组成。RS = t|t Rt S RS = R (R-S4, 笛卡尔积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, 连接

11、:连接也称为连接:两张表中的元组有条件的串接。从两个关系的笛卡尔积中选取属性间满意肯定条件的元组R S = | tr Rts StrAtsB 外连接:假如把舍弃的元组也保存在结果关系中,而在其他属性上填空值(Null),这种连接就叫做外连接。左外连接:假如只把左边关系R中要舍弃的元组保存就叫做左外连接(LEFT OUTER JOIN或LEFT JOIN)。右外连接:假如只把右边关系S中要舍弃的元组保存就叫做右外连接(RIGHT OUTER JOIN或RIGHT JOIN)。12, 除 :给定关系R (X,Y) 和S (Y,Z),其中X,Y,Z为属性组;R中的Y与S 中的Y可以有不同的属性名,但

12、必需出自一样的域集;R与S的除运算得到一个新的关系P(X),P是R中满意以下条件的元组在 X 属性列上的投影第三章:关系数据库标准语言SQL留意:SQL(Oracle除外)一般不供应修改视图定义和索引定义的操作,须要先删除再重建定义根本表:CREATE TABLE , , ;列级完整性约束-涉及到该表的一个属性 NOT NULL :非空值约束 UNIQUE:唯一性单值约束约束 PRIMARY KEY:主码约束 DEFAULT :默认缺省约束 Check :核查约束,定义校验条件 NOT NULL :非空值约束 UNIQUE:唯一性单值约束约束 PRIMARY KEY:主码约束 DEFAULT

13、:默认缺省约束 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取唯一值*/Ssex C

14、HAR(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

15、TABLE Course ADD UNIQUE(Cname); 干脆删除属性列:(新标准) 例: ALTER TABLE Student Drop Sage;删除根本表 :DROP TABLE RESTRICT| CASCADE;RESTRICT:(受限) 欲删除的根本表不能被其他表的约束所引用,假如存在依靠该表的对象触发器,视图等,那么此表不能被删除。CASCADE:级联在删除根本表的同时,相关的依靠对象一起删除。例:删除Student表 DROP TABLE Student CASCADE ;根本表定义被删除,数据被删除;表上建立的索引, 视图, 触发器等一般也将被删除 。删除索引 :DR

16、OP INDEX ;删除索引时,系统会从数据字典中删去有关该索引的描述。例: 删除Student表的Stusname索引:DROP INDEX Stusname2, 数据查询:根本格式单表查询 选择表中的假设干列 投影查询指定列 相当于A(R),A= A1,A2,An 例;查询全体学生的学号与姓名SELECT Sno,SnameFROM Student;查询全部列:在SELECT关键字后面列出全部列名按用户指定依次显示。 将指定为 *按关系模式中的属性依次显示。例:查询全体学生的具体记录SELECT Sno,Sname,Ssex,Sdept , SageFROM Student; 或 SELE

17、CT *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(

18、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 DEPARTMENTFROM Student;输出结果:NAME BIRTH BIRTHDAY DEPARTMENT- - - -李勇 Year of Birth: 1991 cs刘晨 Year of Birth: 1992 is选择表中的假设干元组选择消退重复性:指定DISTINCT关键词,去掉表中重复的行 SE

19、LECT DISTINCT Sno FROM SC;留意 DISTINCT短语的作用范围是全部目标列 错误的写法 SELECT DISTINCT Cno,DISTINCT Grade FROM SC;正确的写法 SELECT DISTINCT Cno,Grade FROM SC;SELECT 子句缺省状况是保存重复元组(ALL), 例:查询选修了课程的学生学号。SELECT Sno FROM SC;等价于:SELECT ALL Sno FROM SC;查询满意条件的元组WHERE子句常用的查询条件相当于F比拟大小运用比拟运算符 或逻辑运算符NOT + 比拟运算符例:查询计算机科学系全体学生的名

20、单SELECT SnameFROM StudentWHERE Sdept=CS; 例:查询全部年龄在20岁以下的学生姓名及其年龄SELECT Sname,Sage FROM Student WHERE Sage =20确定范围 BETWEEN AND NOT BETWEEN AND 例;查询年龄在2023岁包括20岁和23岁之间的学生的姓名, 系别和年龄SELECT Sname,Sdept,SageFROM StudentWHERE Sage BETWEEN 20 AND 23;/Sage=20 and Sage=23例:查询年龄不在2023岁之间的学生姓名, 系别和年龄SELECT Snam

21、e,Sdept,SageFROM StudentWHERE Sage NOT BETWEEN 20 AND 23;/Sage23确定集合IN , NOT IN 例:查询信息系IS, 数学系MA和计算机科学系CS学生的姓名和性别SELECT Sname,SsexFROM StudentWHERE Sdept IN ( IS,MA,CS );例:查询既不是信息系, 数学系,也不是计算机科学系的学生的姓名和性别SELECT Sname,SsexFROM StudentWHERE Sdept NOT IN ( IS,MA,CS );自负匹配NOT LIKE ESCAPE 匹配串为固定字符串例:查询学号

22、为200215121的学生的具体状况。SELECT * SELECT *FROM Student 等价于: FROM Student WHERE Sno LIKE 200215121; WHERE Sno = 200215121 ;匹配串为含通配符的字符串%:代表随意长度可以是0的字符串_:代表随意单个字符字符串本身就含有 % 或 _ 时,在% 或 _ 之前加上转义符“要运用ESCAPE 将通配符转义为一般字符。假如 要作为一个一般字符,用连续两个 表示一个真正的。例:查询以DB_开头,且倒数第3个字符为 i的课程的具体状况。SELECT *FROM CourseWHERE Cname LIK

23、E DB_%i_ _ ESCAPE ;涉及空值的查询 IS NULL 或 IS NOT NULL “IS 不能用 “= 代替例:查全部有成果的学生学号和课程号SELECT Sno,CnoFROM SCWHERE Grade IS NOT NULL;多重条件查询:AND和 OR来联结多个查询条件,AND的优先级高于OR,可以用括号变更优先级,可用来实 现多种其他谓词。NOT INNOT BETWEEN AND 改写 例:查询信息系IS, 数学系MA和计算机科学系CS学生的姓名和性别SELECT Sname,SsexFROM StudentWHERE Sdept IN ( IS,MA,CS )可改

24、写为:SELECT Sname,SsexFROM StudentWHERE Sdept= IS OR Sdept= MA OR Sdept= CS ORDER BY子句:对查询结果排序 可以按一个或多个属性列排序:升序:ASC;降序:DESC;缺省值为升序。当排序列含空值时:空值最大ASC:排序列为空值的元组最终显示;DESC:排序列为空值的元组最先显示。例:查询选修了3号课程的学生的学号及其成果,查询结果按分数降序排列SELECT Sno,GradeFROM SCWHERE Cno= 3 ORDER BY Grade DESC;聚集函数:对查询结果集中的某列进展计算或统计。计数COUNTDI

25、STINCT|ALL * COUNTDISTINCT|ALL 计算总和SUMDISTINCT|ALL 计算平均值 AVGDISTINCT|ALL 最大最小值MAXDISTINCT|ALL MINDISTINCT|ALL 例:查询学生200215012选修课程的总学分数SELECT SUM(Ccredit)FROM SC, CourseWHER Sno=200215012 AND SC.Cno=Course.Cno; 注:除Count*,都要跳过空值;Where子句不能运用聚集函数。GROUP BY子句:对查询结果分组。用途细化聚集函数的作用对象未对查询结果分组,聚集函数将作用于整个查询结果对查

26、询结果分组后,聚集函数将分别作用于每个组运用GROUP BY 后:其SELECT子句的列名列表中只能出现分组属性和集函数。 假如分组后还要依据条件对这些组进展筛选,可运用having 短语指定筛选条件例: 查询选修了3门以上课程的学生学号SELECT SnoFROM SCGROUP BY SnoHAVING COUNT(*) 3; 例:查询有3门以上课程是90分以上学生的学号及90分以上的课程数SELECT Sno, COUNT(*) FROM SCWhere Grade 90GROUP BY SnoHAVING COUNT(*) 3;HAVING短语与WHERE子句的区分:作用对象不同WHE

27、RE子句作用于基表或视图,从中选择满意条件的元组HAVING短语作用于组,从中选择满意条件的组。*连接查询*p100页*嵌套查询*p104页 *重点*数据更新1插入数据插入元组INSERTINTO (,)VALUES ( , )功能:将新元组插入指定表中;新元组的属性列1的值为常量1,属性列2的值为常量2,。INTO子句:属性列的依次可与表定义中的依次不一样,但须指定列名;没有指定属性列,表示要插入的是一条完整的元组;指定局部属性列,未指定的属性列取空值,具有NOT NULL的属性列除外。VALUES子句:供应的值必需与INTO子句匹配,值的个数,值的类型。例:将一个新学生元组学号:20021

28、5128;姓名:陈冬;性别:男;所在系:IS;年龄:18岁插入到Student表中INSERTINTO Student (Sno,Sname,Ssex,Sdept,Sage)VALUES (200215128,陈冬,男,IS,18);例: 将学生张成民的信息插入到Student表中INSERTINTO StudentVALUES (200215126, 张成民, 男,18,CS);例:插入一条选课记录( 200215128,1 )。INSERTINTO SC(Sno,Cno)VALUES ( 200215128 , 1 );RDBMS将在新插入记录的Grade列上自动地赋空值。或者:INSER

29、TINTO SCVALUES ( 200215128 , 1 ,NULL);因为没有指出SC的属性名,在GRADE列上要明确给出空值插入子查询结果Insert Into (,)子查询select等;2修改数据UPDATE SET =,=WHERE ;SET子句:指定修改方式,要修改的列,修改后取值:。WHERE子句:指定要修改的元组,缺省表示要修改表中的全部元组。功能:修改指定表中满意WHERE子句条件的元组。修改某一个元组的值例:将学生200215121的年龄改为22岁UPDATE StudentSET Sage=22WHERE Sno= 200215121 ;修改多个元组的值例:将全部学生

30、的年龄增加1岁UPDATE StudentSET Sage= Sage+1;带子查询的修改语句 子查询须放在比拟运算符之后例:将计算机科学系全体学生的成果置零。UPDATE SCSET Grade=0WHERE CS=(SELETE SdeptFROM StudentWHERE Student.Sno = SC.Sno);3删除数据DELETEFROM WHERE ;功能:删除指定表中满意WHERE子句条件的元组。WHERE子句:指定要删除的元组;缺省表示要删除表中的全部元组,表的定义仍在数据字典中。删除某一个元组的值例:删除学号为200215128的学生记录DELETEFROM Studen

31、tWHERE Sno= 200215128 ;删除多个元组的值例:删除全部的学生选课记录DELETEFROM SC;带子查询的删除语句例:删除计算机科学系全部学生的选课记录DELETEFROM SCWHERE CS=(SELETE SdeptFROM StudentWHERE Student.Sno=SC.Sno);4, 视 图特点:虚表,是从一个或几个根本表或视图导出的表;只存放视图的定义,不存放视图对应的数据;基表中的数据发生变更,从视图中查询出的数据也随之变更。基于视图的操作: 查询, 删除, 受限更新, 定义基于该视图的新视图。1定义视图建立视图CREATE VIEW ( ,)AS W

32、ITH CHECK OPTION;子查询:不允许含有ORDER BY子句和DISTINCT短语。WITH CHECK OPTION:表示对视图进展UPDATE,INSERT和DELETE操作时要保证更新, 插入或删除的行满意视图定义中的谓词条件即子查询中的条件表达式。组成视图的属性列名:全部省略或全部指定,但在以下三种状况下必需明确指定组成视图的全部列名:某个目标列不是单纯的属性名,而是聚集函数或列表达式;多表连接时选出了几个同名列作为视图的字段;须要在视图中为某个列启用新的名字。RDBMS执行CREATE VIEW语句时只是把视图定义存入数据字典,并不执行其中的SELECT语句。在对视图查询

33、时,按视图的定义从根本表中将数据查出。行列子集视图:从单个根本表导出 ,只是去掉了根本表的某些行和某些列保存了主码例:建立信息系学生的视图CREATE VIEW IS_StudentAS SELECT Sno,Sname,SageFROM StudentWHERE Sdept= IS;WITH CHECK OPTION 例:建立信息系学生的视图,并要求进展修改和插入操作时仍需保证该视图只有信息系的学生 CREATE VIEW IS_StudentAS SELECT Sno,Sname,SageFROM StudentWHERE Sdept= ISWITH CHECK OPTION;加上了WIT

34、H 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,GradeFROM Student,SCWHERE Sdept= IS ANDStudent.Sno=SC.Sn

35、o ANDSC.Cno= 1;基于视图的视图例:建立信息系选修了1号课程且成果在90分以上的学生的视图CREATE VIEW IS_S2ASSELECT Sno,Sname,GradeFROM IS_S1WHERE Grade=90;由于视图中的数据不会实际存储,所以定义视图时可依据应用的须要,设置一些派生属性列或虚拟列,以便于查询和统计。以 SELECT * 方式创立的视图可扩大性差,应尽可能防止 。缺点:修改基表Student的构造后,Student表与F_Student视图的映象关系被破坏,导致该视图不能正确工作。删除视图DROP VIEW ;该语句从数据字典中删除指定的视图定义。假如该

36、视图上还导出了其他视图,运用CASCADE级联删除语句,把该视图和由它导出的全部视图一起删除 。删除基表时,由该基表导出的全部视图定义都必需显式地运用DROP VIEW语句删除。例:删除视图BT_S:DROP VIEW BT_S; 删除视图IS_S1:拒绝执行级联删除:DROP VIEW IS_S1 CASCADE; 2 查询视图:查询视图与查询根本表一样,视图定义后,就可以像对待根本表一样对视图进展查询SELECT操作。视图消解法View Resolution进展有效性检查,检查查询的表, 视图等是否存在。假如存在,那么从数据字典中取出视图的定义 ;转换成等价的对根本表的查询,把视图定义中的

37、子查询与用户的查询结合起来;执行修正后的查询。例:在信息系学生的视图中找出年龄小于20岁的学生SELECT Sno,SageFROM IS_StudentWHERE Sage20;视图消解转换后的查询语句为:SELECT Sno,Sage FROM StudentWHERE Sdept= IS AND Sage=90;S_G视图的子查询定义: CREATE VIEW S_G (Sno,Gavg)AS SELECT Sno,AVG(Grade)FROM SCGROUP BY Sno;3 更新视图DBMS实现视图更新的方法:转换为对根本表的更新。视图消解法View Resolution。 只有对成

38、为“可更新视图才能进展更新操作。SQL2对“可更新视图给出正式定义:从关系R选出某些属性用select 而不是 select distinct定义的视图,R本身可以是可更新的视图;Where中不能嵌套涉及R的子查询;Select必需包括足够多的属性,全部not null的属性必需包括。对于视图元组的更新操作INSERT, DELETE, UPDATA,有以下三条规那么:假如一个视图是从多个根本表运用联接操作导出的,那么不允许对这个视图执行更新操作。假如在导出视图的过程中,运用了分组和聚集函数操作,也不允许对这个视图执行更新操作。行列子集视图可以执行更新操作。在SQL2中,允许更新的视图在定义时

39、,必需加上“WITH CHECK OPTION短语。DBMS在更新视图时会进展检查,防止用户通过视图对不属于视图范围内的根本表数据进展更新。例:将信息系学生视图IS_Student中学号200215122的学生姓名改为“刘辰。UPDATE IS_StudentSET Sname= 刘辰WHERE Sno= 200215122 ;转换后的语句:UPDATE StudentSET Sname= 刘辰WHERE Sno= 200215122 AND Sdept= IS;例:向信息系学生视图IS_S中插入一个新的学生记录:200215129,赵新,20岁INSERTINTO IS_StudentVAL

40、UES(95029,赵新,20);转换为对根本表的更新:INSERTINTO Student(Sno,Sname,Sage,Sdept)VALUES(200215129 ,赵新,20,IS );例:删除信息系学生视图IS_Student中学号为200215129的记录 DELETEFROM IS_StudentWHERE Sno= 200215129 ;转换为对根本表的更新:DELETEFROM StudentWHERE Sno= 200215129 AND Sdept= IS;更新视图的限制:一些视图是不行更新的,因为对这些视图的更新不能唯一地有意义地转换成对相应根本表的更新。对其他类型视图

41、的更新不同系统有不同限制:(1) 假设视图是由两个以上根本表导出的,那么此视图不允许更新(2) 假设视图的字段来自字段表达式或常数,那么不允许对此视图执行INSERT和UPDATE操作,但允许执行DELETE操作。(3) 假设视图的字段来自集函数,那么此视图不允许更新。(4) 假设视图定义中含有GROUP BY子句,那么此视图不允许更新。(5) 假设视图定义中含有DISTINCT短语,那么此视图不允许更新。(6) 假设视图定义中有嵌套查询,并且内层查询的FROM子句中涉及的表也是导出该视图的根本表,那么此视图不允许更新。(7) 一个不允许更新的视图上定义的视图也不允许更新第四章:数据库的平安性计算机系统的三类平安性问题技术平安,管理平安,政策法律数据库平安性限制6种1. 用户标识与鉴别 用户标识,口令2. 存取限制3.自主存取限制方法:定义各个用户对不同数据对象的存取权限。当用户要访问数据库时,首先要检查其存取权限,以防止非法用户对数据库进展存取。“自主存取限制中“自主的含义:用户可以将自己所拥有的存取权限“自主地授予他人,即用户具有肯定的“自主权。4.授权与收回语句。GRANT 语句和 REVOKE 语句实现关系数据库系统中存取限制权限:1, GRANT授权G

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 初中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁