




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、河南农业大学地理信息系统第一章 绪论数据:描述事物的符号记录称为数据,数据是数据库的基本对象。数据字典:是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。数据库:存放数据的仓库,是长期存储在计算机内、有组织、可共享的大量数据的集合。数据库管理系统:dbms科学的组织和存储诗句,高效的获取和维护数据,具有数据定义功能;数据组织、存储和管理功能;数据操纵功能;数据库的事务管理和运行管理功能;数据库的建立和维护功能;其他功能。数据库系统:是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其开发工具)
2、、应用系统、数据库管理员构成。发展过程:人工管理文件系统数据库系统数据库系统的特点:一、数据结构化结构化:指任何一列数据不可再细分,同时任何一列的数据都有相同的数据类型整体结构化:不再仅仅针对某一个应用,而是面向全组织,同时不仅数据内部结构化,整体是结构化的,数据之间具有联系。实体:表示任何可以发送或接受信息的硬件或软件进程。二、 数据的共享性高,冗余度低,易扩充。数据库系统从整体角度看待和描述数据,数据面向整个系统,可以被多个用户、多个应用共享使用。三、数据独立性高。体现在两方面:第一,物理独立性:指用户的应用程序和存储在磁盘上的数据库中数据时相互独立的,当数据在物理存储改变了,应用程序不用
3、改变。第二,逻辑独立性:指用户的应用程序与数据库的逻辑结构相互独立,数据的逻辑结构改变了,用户程序也可以不变。四、数据由dbms(数据库管理系统)统一管理和控制。1、数据的安全性(security)保护: 保护数据,以防止不合法使用造成的数据的泄密和破坏;2、数据的完整性检查: 将数据控制在有效地范围内,或保证数据之间满足一定的关系;3、并发控制: 对多用户的并发操作加以控制盒协调,防止相互干扰得到错误的结果;4、数据库恢复: 对数据库从错误状态恢复到某一已知的正确状态。数据模型数据模型:用这个 工具来抽象、表示和处理现实世界中的数据和信息。就是对现实世界的模拟。三方面的要求:1、能够比较真实
4、的模拟现实世界; 2、容易为人所理解; 3、便于在计算机上实现。两类数据模型:1、 概念模型:也称信息模型,它是按用户的观点对数据和信息建模,用于数据库设计阶段。2、逻辑模型和物理模型:逻辑模型主要包括网状模型、层次模型、关系模型、面向对象模型等,按计算机系统的观点对数据建模,用dbms实现。物理模型是对数据库底层的抽象,描述数据在系统内部的表示方式和存取方法,在硬盘或磁带上的存储方式和存取方法。两步抽象:1、现实世界中的客观对象抽象为概念模型 2、把概念模型转换为某一dbms支持的数据模型。数据模型的组成要素:1、 数据结构:描述数据库的组成对象,以及对象之间的联系。数据模型对数据结构的定义
5、:一、与数据类型、内容、性质有关的对象;二、与数据之间联系有关的对象。数据结构是对系统静态特征的描述。2、数据操作:对数据库中各种对象(型)的实例(值)允许执行的操作及有关的操作规则。类型有:查询;更新(包括插入、删除、修改)。数据库模型对操作的定义:操作的确定含义(例如定义);操作符号(具体符号的定义的操作);操作规则(如优先级);实现操作的语言(sql标准化操作语言)。数据结构是对系统动态特征的描述。3、完整性约束条件:一、一组完整性规则的集合;二、完整性规则:给定的数据模型中数据及其联系所具有的制约和存储规则;三、具以限定符合数据模型的数据库状态以及状态的变化(例如修改),以保证数据的正
6、确、有效、相容。数据模型对完整性约束条件的定义:一、反映和规定本数据模型必须遵守的基本的通用的完整性约束条件。例如在关系模型中,任何关系必须满足实体(内部)完整性和参照(实体和实体之间的)完整性两个条件。二、提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。(现实世界的约束) 概念模型一、信息世界中的基本概念实体:客观存在并可相互区别的事物称为实体属性:实体所具有的某一特征为属性码:唯一标识实体的属性集称为码(特殊的属性)域:域是一组具有相同数据类型的值得集合,属性的取值范围称为该属性的域。实体型:用实体名及其属性名集合来抽象和刻画同类实体(一类实体),称为
7、实体型。联系:现实世界的事物内部以及事物之间的联系在实体内部的联系通常是指组成实体的个体属性之间的联系,实体之间的联系通常是指不同实体集之前的联系。二、两个实体型之间的联系(e-r模型)30一对一学生学号111一对多班级姓名1n多对多。姓名课程mn三、两个以上实体型之间的联系若实体型e1,e2,.,en存在联系,对于实体型ej(j=1,2,.,i-1,i+1,.,n)中的给定实体,最多只和ei中的一个实体相联系,则我们说ei与e1,e2,.,ei-1,ei+1,.,en之间的联系是一对多的四、单个实体型内的联系 五、概念模型的一种表示方法e-r图层次模型:满足以下两个条件的基本层次联系的集合为
8、层次模型1、有且只有一个节点没有双亲结点;2、根以外的其他结点有且只有一个双亲结点。中序遍历子女兄弟链接法;层次序列链接法。网状模型 满足条件:允许一个以上结点无双亲;一个节点可以有多于一个的双亲。关系模型(重点):在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成,关系:一个关系对应通常说的是一张表元组:表中的一行即为一个元组属性:表中的一列即为一个属性,给每一个属性起一个名称称为“属性名”。组码:表中的摸个属性组,它可以唯一确定一个元组。域:属性的取值范围分量:元组中的一个属性值关系模式:对关系的描述 关系名(属性1,属性2,属性n,) ex:学生(学号,姓名,年龄,系别,
9、年级)关系模型的数据结构:关系必须是规范化的,满足一定的规范条件。最基本的规范条件:关系的每一个分量必须是一个不可分的数据项,不允许表中有表。关系模型的优缺点:优点一、建立在严格的概念基础上二、概念单一:1、实体和各类联系都用关系来表示;2、对数据的检索结果也是关系。三、关系模型的存取路径对用户透明:1、具有更高的数据独立性,更好的安全保密性;2、简化了程序员的工作和数据库开发建立的工作。缺点一、存取路径会用户透明导致查询效率往往不如关系数据模型二、为提高性能,必须对用户的查询请求进行优化,增加了开发dbms的难度。数据库系统结构(模式)型:对某一类数据的结构的属性的说明。值:是型的一个具体赋
10、值。模式:数据库逻辑结构和特征的描述,是型(属性)的描述,反映的是数据的结构及其联系,结构是相对稳定的。注:sql server 中定义模式实际上指定了一个命名空间,在这个空间中可以进一步定义该模式包含的数据库对象,例如基本表、视图、索引等。实例:模式的一个具体值,反映数据库某一时刻的状态,同一模式可以拥有很多的实例,实例随数据库中的数据的更新而变动。二级映象在dbms内部实现着三个抽象层次的联系和转换:外模式/模式映象;模式/内模式映象数据库系统的组成:硬件平台及数据库;软件;人员。第二章 关系数据库域:属性的取值范围笛卡尔积:笛卡尔(descartes)乘积又叫直积。假设集合a=a,b,集
11、合b=0,1,2,则两个集合的笛卡尔积为(a,0),(a,1),(a,2),(b,0),(b,1), (b,2)。可以扩展到多个集合的情况。类似的例子有,如果a表示某学校学生的集合,b表示该学校所有课程的集合,则a与b的笛卡尔积表示所有可能的选课情况。关系:一个关系对应通常说的是一张表候选码:若关系某一属性组的值能唯一的标识一个元组,则称该属性组为候选码全码:在最极端的情况下,关系模式的所有属性组是这个关系模式的候选码,称为全码主码:若一个关系有多个候选码,则选定其中一个为主码。主属性:包含在候选码中的属性叫做主属性。关系模式:关系的描述称为关系模式,表示为:r(u,d,dom,f)r为关系名
12、,u为组成该关系的属性名的集合,d为属性组u中属性所来自的域,dom为属性见的映像集合,f为属性间的依赖关系集合。关系数据库:在给定的关系中所有关系的集合,称为关系数据库。关系操作关系模型中常用的关系操作包括查询query操作和插入insert、删除delete、修改update操作两大部分。查询操作包括:选择select、投影project、连接join、除divide、并union、差expect、交intersection、笛卡尔积。其中选择、投影、并、差、笛卡尔积是5种基本操作。其他操作可以用基本操作来定义。sql结构化查询语言,具有关系代数和关系演算双重特点的语言。关系完整性(重点)
13、:关系模型中有三类完整性约束条件:实体完整性、参照完整性、用户定义完整性。实体完整性:若属性(指一个活一组属性)a是基本关系r的主属性,则a不能取空值。实体完整性规则说明:1、实体完整性规则是针对基本关系而言的,一个基本表通常对应现实世界的一个实体集。例如学生关系对应于学生的集合。2、现实世界中的实体是可区分的,即它们具有某种唯一性标识。例如每个学生都是独立的个体,是不一样的。3、相应的,关系模型中以主码作为唯一性标识。4、主码中的属性即主属性不能取空值,如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第2点矛盾。参照完整性:若属性(或属性组)f是基本关系r(参照关系
14、)的外码,它与基本关系s(被参照关系)的主码k相对应(基本关系r和s不一定是不同的关系),则对于r中每个元组f上的值必须为:或者取空值(f的每个属性值均为空值)。或者等于s中某个元组的主码值。用户定义完整性:不同的关系数据库根据其应用环境的不同,往往还需要一些特殊的约束条件。它反映了某一具体应用所涉及的数据必须满足的语义要求。关系代数:关系代数运算符:传统的集合运算: 并(union)设关系r和关系s具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域,则关系r与关系s的并由属于r或属于s的元组组成。其结果关系仍为n目关系。记作: rs=t|trts 差(difference)设
15、关系r和关系s具有相同的目n,且相应的属性取自同一个域,则关系r与关系s的差由属于r而不属于s的所有元组组成。其结果关系仍为n目关系。记作: rs=t|trts 交(intersection referential integrity)设关系r和关系s具有相同的目n,且相应的属性取自同一个域,则关系r与关系s的交由既属于r又属于s的元组组成。其结果关系仍为n目关系。记作: rs=t|trts 广义笛卡尔积(extended cartesian product)两个分别为n目和m目的关系r和s的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系r的一个元组,后m列是关系s的一个元组。
16、若r有k1个元组,s有k2个元组,则关系r和关系s的广义笛卡尔积有k1k2个元组。专门的关系运算:分量:设关系模式为r(a1,a2,a3,.,an)。它的一个关系设为r,tr表示t是r的一个元组,tai则表示元组t中属性ai上的一个分量。选择selection选择又称为限制(restriction)。它是关系r中寻则满足给定条件的诸元组,记做:f(r)=t|trf(t)=”真”其中f指属性列,r指所在关系表。投影projection关系r上的投影是从r中选择出若干属性列组成新的关系。记做:a(r)=ta|tr连接join连接也称连接,它是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。记做
17、:等值连接:为=的连接运算称为等值连接。自然连接:一种特殊的等值连接。它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。即若r和s具有相同的属性组b,则自然连接可记为外连接:如果把舍弃的元组也保存在结果关系中,而在其他属性上填空值(null),这种连接就叫做外连接(outer join)除division象集:给定一个集合a到b的映射,且a属于a,b属于b.如果元素a和元素b对应,那么,我们把元素b叫做元素a的象,元素a叫做元素b的原象。所以所有的b构成的集合叫做象集。也就是a在对应法则f作用下产生的b的集合,叫做象集。除运算:r与s的除运算得到一个新的关系p(
18、x),p是r中满足下列条件的元组在x属性上的投影:元组在x上分量值x的象集yx包含s在y上的投影的集合。记做: 第三章 关系数据库标准语言sql(重点)sql:structured query language 机构化查询语言,是关系数据库的标准语言,sql是一个通用的、功能极强的关系数据库语言。sql特点:sql集数据查询(data query)、数据操纵(data manipulation)、数据定义(data definition)、和数据控制(data control)功能于一体。主要特点:一、综合统一:1、集数据定义语言(ddl),数据操纵语言(dml),数据控制语言(dcl)于一体
19、。2、可以独立完成数据库生命周期的全部活动:定义数据模式,插入数据,建立数据库;对数据库中的数据进行查询和更新;数据库重构和维护;数据库安全性、完整性控制。3、用户数据库投入运行后,可根据需要随时逐步修改模式,不影响数据的运行。4、数据操作符统一。二、过程高度非过程化:1、非关系数据模型的数据操纵语言“面向过程”,必须制定存取路径2、sql只要提出“做什么”,无须了解存取路径。3、存取路径的选择以及sql的操作过程由系统自动完成。三、面向集合的操作方式:sql采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新的对象也可以是元组的集合。四、以同一种语法结构提供多种
20、使用方式:sql既是独立的语言,也是嵌入式的语言。能够独立的用于联机交互使用,同时也可嵌入到高级语言程序中。五、语言简洁,易学易用:核心由9个动词组成:sql功能动词数据查询select(查找)数据定义create(创建), drop(删除表的结构), alter(修改)数据操纵insert(插入), update(更新,校正), delete(删除表中元组)数据控制grant(授权), revoke(撤回,废除)sql的三级模式:基本表:本身独立存在的表;sql中一个关系对应一个基本表;一个(或多个)基本表对应一个存储文件;一个表可以带若干索引。索引:使用索引可快速访问数据库表中的特定信息。
21、索引是对数据库表中一列或多列的值进行排序的一种结构。存储文件:数据库的存储文件组成了关系数据库的内模式。存储文件的物理结构是任意的,对用户是透明的。视图:由一个或者几个基本表导出的表;它本身不独立存储在数据库中,即数据库中只存放视图的定义而不存放视图对应的数据。这些数据仍存放于导出视图的基本表中。因此,视图是一个虚表。试图在概念上等同于基本表,用户可以在视图上再定义视图。数据定义:sql数据定义功能:包括模式定义、表定义、视图和索引的定义。sql server 中定义模式实际上指定了一个命名空间,在这个空间中可以进一步定义该模式包含的数据库对象,例如基本表、视图、索引等。模式的定义和删除:定义
22、:create schema authorization ;create schema authorization;create schema authorization |ex1:create schema test authorization zhang create table tab1 (col1 smalline, col2 int,col3 char (20),col4 numeric (10,3),col5 decimal (5,2);删除:drop schema 其中cascade(级联)和restrict(限制)两者必须其一。1、 选择了cascade(级联),表示在删除模式
23、的同时把该模式中所有的数据库对象全部一起删除。2、 选择了restrict(限制),表示如果该模式中已经定义了下属的数据库对象(如表、视图等),则拒接删除语句的执行,只有当该模式中没有任何下属的对象时才能执行restrict语句。ex2: drop schema zhang cascade;(紧接ex1)删除模式zhang。同时,该模式中已经定义的表tab1也被删除。基本表的定义、删除和修改:一、定义基本表:create table ( , , )ex3: create table student(sno char (9) primary key, /* 列级完整性约束条件,sno为主码。*/
24、sname char (20) unique, /* sname取唯一值*/ssex char (2),sage smallint,sdept char (20);ex4:create table course( cno char(4) primary key,cname char(40), cpno char(4) ,ccredit smallint,foreign key (cpno) references course(cno)/*表级完整性约束条件,cpno是外码,被参照表是course,被参照列是cno*/);ex5:create table sc(sno char(9),cno c
25、har(4), grade smallint,primary key (sno,cno),/* 主码由两个属性构成,必须作为表级完整性进行定义*/foreign key (sno) references student(sno),/* 表级完整性约束条件,sno是外码,被参照表是student */foreign key (cno) references course(cno)/* 表级完整性约束条件, cno是外码,被参照表是course*/);注:reference 引用。二、数据类型:sql中的域的概念用数据类型来实现。定义表的属性的时候需要指明数据类型集长度数据的选取通过取值范围和要做
26、哪些运算来确定数据类型。数据类型含义char(n)长度为n的定长字符串varchar(n)最大长度为n的变长字符串int长整数(也可以写作integer)smallint短整数numeric(p,d)定点数,由p位数字(不包括符号、小数点)组成,小数后面有d位数字real取决于机器精度的浮点数double precision取决于机器精度的双精度浮点数float(n)浮点数,精度至少为n位数字date日期,包含年、月、日,格式为yyyy-mm-ddtime时间,包含一日的时、分、秒,格式为hh:mm:ss三、模式和表:每一个基本表都属于一个模式,一个模式包含多个基本表。基本表定义他所属的模式的
27、方法有三种:1、在表名中明显的给出模式名;create table “s-t”.student();2、在创建模式语句中同时创建表,例如ex1;3、设置所属的模式,这样在创建表时表名不必给出模式名。四、修改基本表:格式:alter table add完整性约束条件dropalter column注:修改有三种模式,即添加、删除完整性约束条件和替换,分别对应以上三种模块。ex6:alter table student alter column sage int将年龄的数据类型由字符型(假设原来的数据类型是字符型)改为整形。五、删除基本表:格式:drop tablerestrict|cascade
28、类似模式的删除,restrict(限制)则表示该表的删除有限制条件,cascade(级联)则表示该表的删除无限制,所有的东西将会被同时删除,缺省的情况是restrict。索引的建立和删除:建立索引是加快查询速度的有效手段。索引的建立和删除有dba完成。索引的建立:格式:create unique cluster index on ( , .) unique 独特的 clusrer 集群ex7:create cluster index stusname on student(sname)将在student表中sname列上建立一个聚簇索引。所谓聚簇索引是指索引项的顺序和表中记录将按照物理顺序一致
29、的索引组织。索引的删除:格式:drop index 数据查询(重点)数据库查询是数据库的核心操作。sql提供了select语句进行数据库的查询,一般格式为:select all|distinct(清楚的) ,from ,where group by having order by asc|desc;整个select语句的含义是,根据where子句的条件表达式,从from子句指定的基本表或视图中找出满足条件的元组,再按select子句中目标表达式,选出元组中属性值形成结果表。如果有group by 子句,则将结果按照的值进行分组,该属性列相等的元组为一个组。通常会在每组中作用聚集函数。如果gro
30、up by 子句中带having(所有,持有,占有)短语,则只有满足条件的组才能输出。如果有order by 子句,则结果还要按照的值进行升序或者降序排列。单表查询:单表查询是指仅涉及一个表的查询。一、选择表中的若干列:1、查询指定列:ex8:select sname,sno,sdeptfrom student;注:用户可根据应用需要改变列的显示顺序。2、查询全部列:一、在select关键字后面写出全部列名二、如果列的显示顺序和基表中相同,可以简单地指定为 * 3、查询经过计算的值:select子句的不仅可以是表中属性的表达式,也可以是表达式:ex9:select sname, 2013-sa
31、gefrom student注:第二列是一个表达式,用今年的年份减去学生的年龄,所得就是学生的出生年份。二、选择表中的若干元组(行):1、消除取值重复的行两个本来并不完全相同的元组,投影到指定的某些列上后,可能变成相同的行,可以用distinct(清楚地)取消它们。ex10:select distinct sno from sc;2、查询满足条件的元组:where子句常用的查询条件表:查 询 条 件谓 词比 较=,=,=,!=,!,!;not+上述比较运算符确定范围between and,not between and确定集合in,not in字符匹配like,not like空 值is nu
32、ll,is not null多重条件(逻辑运算)and,or,not(1)比较ex11:select snamefrom studentwhere sdept=”cs”(2)确定范围谓词between.and.和not between.and.可以用来查询属性值在(或者不在)指定的范围内的元组,其中between后是范围的下限(即低值),and后是范围的上限(即高值)。ex12:select sname, sdept, sagefrom studentwhere sage between 20 and 23;(3)确定集合谓词in和 ont in可以用来查找属性值属于指定集合的元组:ex13:
33、select sname, ssexfrom studentwhere sdept in (“cs”,”ma”,”is”)(4)字符匹配谓词like可以用来进行字符串的匹配。一般语法格式:not like escape 其含义是查找指定的属性列值与相匹配的元组。可以是一个完整的字符串,也可以含有通配符%和 。其中:%代表任意长度的字符串。_代表任意单个字符。ex14:select sname, ssex,snofrom studentwhere sname like 刘%where sname like 欧阳_where sname like _阳%如果用户要查询的字符串本身就含有通配符,这样
34、匹配串中紧跟在“”后面的字符“_”不再具有通配符的含义,转为普通的“_”字符。(5)涉及空值的查询ex15:select sno,cnofrom scwhere grade is null(6)多重条件查询逻辑运算符and和or可用来联结多个查询条件,and的优先级高于or,但用户可用括号改变优先级。ex16:select sname,ssexfrom studentwhere sdept= is or sdept= ma or sdept= cs ;三、order by子句:用户可以用order by子句对查询结果按照一个或多个属性列升序(asc)或降序(desc)排列,缺省值为升序。四、聚
35、集函数:1、计数count( distinct | all *)统计元组个数count( distinct | all )统计一列中值的个数2、计算总和sum( distinct | all )计算一列的总和(必须是数值型)3、计算平均值avg( distinct | all )计算一列平均值(必须是数值型)4、最大最小值max( distinct | all )求一列值中的最大值min( distinct | all )求一列值中的最小值五、group by子句:group by子句将查询结果按某一列或多列的值分组,值相等的为一组。ex17:select snofrom scgroup by
36、 snohaving count(*) 3; 连接查询:一个查询同时涉及两个或者两个以上的表,则称之为连接查询。查询方法:嵌套循环法(nested-loop)排序合并法(sort-merge)索引连接(index-join)一、等值与非等值连接查询:等值查询:连接运算符为=ex18:select student.*,sc.*from student,scwhere student.sno = sc.sno;自然连接:select student.sno,sname,ssex,sage,sdept,cno,gradefrom student,scwhere student.sno = sc.sn
37、o;二、自身连接:自身连接:一个表与其自己进行连接。需要给表起别名以示区别。由于所有属性名都是同名属性,因此必须使用别名前缀。三、外连接:外连接操作以指定表为连接主体,将主体表中不满足连接条件的元组一并输出select student.sno,sname,ssex,sage,sdept,cno,gradefrom student left out join sc on (student.sno=sc.sno);左外连接查询列出左边关系中所有的元组。右外连接列出右边关系的所有元组。四、复合条件连接:where子句中包含多个连接条件。连接操作除了可以是两表连接,还可以是多表连接。 select s
38、tudent.sno,sname,cname,grade from student,sc,course /*多表连接*/ where student.sno = sc.sno and sc.cno = course.cno;嵌套查询:在sql语言中,一个select-from-where语句称为一个查询块。将一个查询块嵌套到另一个查询块的where子句或者having短语的条件中的查询叫做嵌套查询。子查询的select语句中不能使用order by子句,prder by子句只能对最终查询结果排序。层层嵌套方式反映了sql语言的结构化有些嵌套查询可以用连接查询替代。 select sname /
39、*外层查询/父查询*/ from student where sno in (select sno /*内层查询/子查询*/ from sc where cno= 2 );一、带有in谓词的子查询:在嵌套查询中,子查询的结果往往是一个集合,所以谓词in是嵌套查询中最经常使用的谓词。二、带有比较运算符的子查询:当能确切知道内层查询返回单值时,可用比较运算符(,=,=,!=或)。且与any或all谓词配合使用。select sno, cnofrom sc xwhere grade =( select avg(grade) from sc y where y.sno=x.sno ) ;三、带有and
40、(some)或all谓词的子查询:谓词语义any:任意一个值all:所有值四、带有exists谓词的子查询:exisr代表量词$。带有exists谓词的子查询不返回任何数据,只产生逻辑真值“true”和逻辑假值“false”。可以利用exists来判断一些条件是否成立。用exists/not exists实现全称量词(难点)sql语言中没有全称量词(for all)可以把带有全称量词的谓词转换为等价的带有存在量词的谓词:用exists/not exists实现逻辑蕴函(难点)sql语言中没有蕴函(implication)逻辑运算可以利用谓词演算将逻辑蕴函谓词等价转换为:集合查询select语句
41、的查询结果是元组的集合,所以多个select语句的结果可进行集合操作。集合操作包括:并操作union、交操作intersect、差操作except。注意:参加操作的各查询结果的列数必须相同,对应项的数据类型也必须相同select语句的一般格式(总结):select all(显示全部行)|distinct(取消相同行) 别名 , 别名from 别名 , 别名.where group by havingorder by asc|desc;目标列表达式格式:(1) *(1) . *(3) count (distinct|all *)(4) .,. 其中可以是由属性列、作用于属性列的集函数和常量的任意
42、算术运算(+,-,*,/)组成的运算公式。聚集函数的一般格式:where子句的条件表达式格式:(1)(2)数据更新:数据更新操作有三种:向表中添加若干行数据、修改表中的数据和删除表中的若干行数据。插入数据:一、插入元组ex:insertinto student (sno, sname, ssex, sdept, sage)values (200215128,陈东,男,is,18);into子句:属性列的顺序可与表定义中的顺序不同、没有指定属性列、指定部分属性列values子句:提供的子句必须和into子句相匹配。二、插入子查询结果查询格式: insert into ( , )子查询;rdbms
43、在执行插入语句时会检查所插元组是否破坏表上已定义的完整性规则实体完整性参照完整性用户定义的完整性:not null约束、unique约束、值域约束修改数据:一、修改某一元组的值 update student set sage=22 where sno= 200215121 ;二、修改多个元组的值 update student set sage= sage+1;三、带子查询的修改语句 update sc set grade=0 where cs= (selete sdept from student where student.sno = sc.sno);删除数据:一、删除某一元组的值 dele
44、te from student where sno= 200215128 ;二、删除多个元组的值 delete from sc;三、带子查询的删除语句 delete from sc where cs= (selete sdept from student where student.sno=sc.sno);视图:由一个或者几个基本表导出的表;它本身不独立存储在数据库中,即数据库中只存放视图的定义而不存放视图对应的数据。这些数据仍存放于导出视图的基本表中。因此,视图是一个虚表。试图在概念上等同于基本表,用户可以在视图上再定义视图。视图定义:一、建立视图:create view ( ,)as wi
45、th check option;with check option表示对视图进行update,insert和delete操作时保证更新、插入或删除的行满足视图定义中的谓词条件(即子查询中的条件表达式)。 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.cno= 1;二、删除视图:drop view cascade该语句从数据字典中删除指定的视图定义。如果该视图上还导出了其他视图,使用
46、cascade级联删除语句,把该视图和由它导出的所有视图一起删除。删除基表时,由该基表导出的所有视图定义都必须显式地使用drop view语句删除。drop view is_s1 cascade;视图消解:rdbms执行对视图的查询时,首先进行有效性检查。检查查询中涉及的表、视图等是否存在。如果存在,则从数据字典中取出视图的定义,把定义的子查询和用户的查询结合起来,转化成等价的对基本表的查询,然后再执行修正了的查询。这一转换过程称为视图消解。查询视图:用户角度:查询视图与查询基本表相同rdbms实现视图查询的方法视图消解法(view resolution)。进行有效性检查。转换成等价的对基本表
47、的查询。执行修正后的查询。更新视图:由于视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新。像查询视图那样,对视图的更新操作也是通过视图消解,转换为对基本表的更新操作。视图的作用:1、视图能够简化用户的操作。2、视图使用户能以多种角度看待同一数据。3、视图对重构数据库提供了一定程度的逻辑独立性。4、视图能够对机密数据提供安全保护。5、适当的利用视图可以更清晰的表达查询。第四章 数据库安全性数据库安全性:是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。数据库安全性控制:非法使用数据库的情况编写合法程序绕过dbms及其授权机制直接或编写应用程序执行非授权操作通过
48、多次合法查询数据库从中推导出一些保密数据用户标识与鉴别:系统提供的最外层的安全保护措施。常用方法:用户标识:用一个用户名或者用户标识号来标明用户身份。口令:密码。存取控制:数据库的安全最重要的一点是确保只授权给有资格的用户访问数据库的权限,同时令所有未被授权的人员无法接近数据,主要通过数据库系统的存取机制实现。存取控制机制主要包括两部分:1、定义用户权限,并将用户权限登记到数据字典中。2、合法权限检查。自主存取控制(dac)方法:用户权限是由两个要素组成:数据库对象和操作类型。定义存取权限称为授权。关系数据库系统中存取控制对象对象类型对象操 作 类 型数据库模式create schema基本表
49、create table,alter table模式视图create view索引create index数据基本表和视图select,insert,update,delete,references,all privileges数据属性列select,insert,update, referencesall privileges授权(authorization)与回收:一、grantgrant语句的一般格式: grant ,. on to ,. with grant option;with grant option子句:指定:可以再授予没有指定:不能传播不允许循环授权例5 把对表sc的insert权限授予u5用户,并允许他再将此权限授予其他用户 grant insert on table sc to u5 with grant option;二、revokerevoke语句的一般格式为: revoke ,. on from ,.;收回所有用户对表sc的查询权限revoke select on table sc from public;三、创建数据库模式的权限dba:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 心内科护士工作总结
- 中班健康教育活动说课大纲
- 中医儿科小儿肺炎咳喘诊疗要点
- 园本培训幼儿园一日常规
- 餐饮的工作计划(35篇)
- 常见急诊急救相关知识培训
- 采购公司培训
- 护理心内中医定向治疗
- 2025年肿瘤防治宣传周科普行动
- 超市礼貌礼仪培训
- 上海交通大学《环境仪器分析》2023-2024学年第一学期期末试卷
- 办公室主任岗位职责
- 家电维修工劳动合同三篇
- 顶管施工安全要点
- 《品质管控》课件
- 飞机构造基础(完整课件)
- 医院培训课件:《弹力袜相关知识》
- 《临床技术操作规范-放射医学检查技术分册》
- 展会后总结报告范文6篇
- 基于C#的WinForm程序设计学习通超星期末考试答案章节答案2024年
- Python语言基础与应用学习通超星期末考试答案章节答案2024年
评论
0/150
提交评论