数据库基础知识个人整理版_第1页
数据库基础知识个人整理版_第2页
数据库基础知识个人整理版_第3页
免费预览已结束,剩余11页可下载查看

下载本文档

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

文档简介

1、数据库知识要点总结第一章 关系数据模型数据模型(静态)的三要素一 关系数据结构(一) 基本概念包括:1 属性 (Attribute) :实体所具有的某一特征。(如学生的特征是学号、姓名、 )域(Domain):属性对应的一组具有相同数据类型的值的集合。每个属性有一个域。(关系模型限定 域必须原子性1NF)2 键( key)( 1)候选键( candidate key) 关系的某一属性或属性组的值唯一标识一个元组,而其任何真子集无此性质。 候选键的诸属性称为主属性,不包含在任何候选键中的属性称为非主属性。( 2)主键( primary key) 一个关系至少有一个侯选键,可以有几个侯选键。一般从

2、侯选键中选择一个作为主键(primary key),其他的称为侯补键( alternate key)每个主键的值是不能相同的,( 3)外键( foreign key) 如关系中的属性或属性组不是本关系的主键,而引用其他关系或本关系的主键,则称 为本关系的外键。3 关系( Relation ):( 1)关系:定义在事物的所有属性域上的多元关系,一个关系就是一张二维表。( 2)关系模式:关系的描述称为关系模式,它可以形式化的表示为R( U,D,DOM, F)R 为关系名U 为组成该关系的属性名集合D 为属性组 U 中属性所来自的域DOM 为属性向域的映像集合 F为属性间数据的依赖关系集合 关系模式

3、通常简记为:R ( U)或R (A1, A2, A3, ;An)关系的三种基本类型 基本表:是实际存在的表,它是实际存储数据的逻辑表示。 查询表:是查询结果对应的表。 视图表:是由基本表或其他视图导出的表,是虚表,不对应实际存储内容。二 关系操作(一) 两种关系操作1 查询( Query )查询可以分为 选择(SELECT)投影(Project),连接(Join),交(Intersection),并(Union),差(Except),除 (Divide) ,笛卡尔乘积。其中选择,投影,并,差,笛卡尔乘积是 5 种基本操作,其他的操作可用这些基本操作定义和 导出2 插入 (Insert) ,删除

4、 (Delete) ,修改 (Update)(二) 关系操作的特点 集合式的操作方式,即操作的对象和结果都是集合。(三) 关系数据语言可以分为三类1 关系代数语言2关系演算语言(元组关系演算和域关系演算)3具有关系代数和关系演算双重特点的语言(SQL语言)三关系完整性约束关系数据库的数据必须遵循的约束实体完整性(Entity Integrity参照完整性(Referential Integrity)用户自定义完整性(User-Defi ned In tegrity )实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称为关系的两个不变性。(一)实体完整性实体完整性规则:关系模式R的主

5、属性值不可为空指所有主属性均不可取空值,不仅仅是主键不可为空(二)参照完整性1 夕卜键(Foreign Key)定义:设F是基本关系 R的一个或一组属性,但不是关系R的码,KS是基本关系S的主码。如果F与KS相对应,则称F是R的外码( Foreign Key)R 称为参照关系(Referential Relation ) , S 称为被参照关系(Refereneed Relation )2参照完整性规则若属性(或属性组)F是基本关系 R的外码,它与基本关系S的主码KS相对应(基本关系到不一定是不同关系),则对于R中每个元组在 F上的值必须为:(1)等于被参照关系S中所参照的候选键的某个值(2

6、)空值(三)用户自定义完整性针对某一具体数据的约束条件,反映某一具体应用所涉及的数据必须满足的特殊语义由应用环境决定 四关系代数关系代数按运算符的不同可分为传统关系运算和专门关系运算(一 )传统关系运算(交,并,差,笛卡尔乘积)I关系&关系R2d 3 b1 u(并)R1UR2=b2 db3be2dd3ba3ee5fg662 n(交AND)R1n R2= b23 (差)R1 R2= b 3 bd 3 b4 X (笛卡尔乘积)R1X S = b 2 d 2 db 2 d 3 bb 3 b 2 d b 3 b 3 b c 2 d 2 d c 2 d 3 b d 3 b 2 d d 3 b 3

7、 b(二)专门关系运算1选择(SELECT)(选择符合条件的元组)5 选择条件 ( 关系名 )女口:S性别=男(STUDENT表的水平划分 2投影(Project)(选择符合条件的属性)n 属性表 ( 关系名 )女口: n学号,姓名(STUDENT表的垂直划分3连接操作(Join)笛卡尔乘积 R X S = t,g|t R AND g S(1)连接分为等值连接和自然连接连接操作:R| X|S 其中A和B分别为R和S上度数相等且具有可比性的属性组A巾B1)等值连接(巾为 =)A3 IznLjZJA1A2A3b2dbbc2dd3bA1A2A3a3cb2de2de5 'fgelf系閃关却2关

8、系§如上例R1 | X | S=b2d2d=b3 b3bc2d2dd3b3b2)自然连接(只有| X| )一般连接是从行的角度岀发的,但自然连接还要取消重复的列,是从行和列的角度进行运算如 R1 | X | S= b2 d 4除运算(十)如 R1- S = b在R1上b印象集合是 (2, d) ,(3 , d)S在(A1, A2)上的投影为 (2, d) ,(3, d) 第二章关系数据库的标准语言SQLSQL动词表SQL功能动词数据查询SELECT数据定义CREATE DROP, ALTER数据操纵INSERT UPDATE, DELETE数据控制GRANT,REVOKE数据定义操作

9、对象操作方式创建删除修改模式nCREATE SCHEMADROP SCHEMA表CREATE TABLEDROP TABLEALTER TABLE视图CREATE VIEWDROP VIEW索引CREATE INDEXDROP INDEXSQL通常不提供修改模式定义,修改视图定义,修改索引定义的操作(一)模式的定义和删除1模式的定义CREATE SCHEMA 模式名 AUTORIZATION用户 例如:CREATE SCHEMA S-t” AUTORIZATION wang;(1)要创建模式,调用该命令的用户必须具有DBA权限,或者获得了 DBA授予的CREATE SCHEMA权限(2)如果没

10、指定 模式名 那么v模式名 隐含为v用户名(3 )定义模式,实际上是定义了一个命名空间,在这个空间中可以进一步定义该模式包含的数据库 对象,例如基本表,视图,索引。2模式的删除DROP SCHEMA模式名 CASCADE | RESTRICT(两者必选其一)例如:DROP SCHEMA §-t” CASCADE(1)CASCADE(级联)表示在删除模式的同时把该模式中所有的数据库对象全部一起删除。(2)RESTRICT限制)表示在删除该模式中已经定义了下属数据库对象(表,视图索引),则拒绝 该删除语句。(二)表的定义,删除和修改1表的定义CREATE TEBLA表名 (列名 v数据类

11、型 列级完整性约束,列名 v数据类型 列级完整性约束,v表级完整性约束)列定义的完整格式:v列名 v列类型 DEFAULT v默认值NOT NULL v列约束CREATE TEBLA表名 > AS vSELECT查询 >若要定义模式式下的表:CREATE TABLE模式名 .表名(1 )数据类型ANSI/ISOOracle字符型Char( n)Char (n)Character( n)Character Vary ing(n)Varchar2( n)Char Vary ing(n)数值型NumericNumberDecimalIn tegerIntFloatDoubleReal日期

12、型DateDateTime(2) 完整性约束主键约束(Primary Key)实体完整性外键约束(Foreign Key)参照完整性检查约束(Check)用户自定义完整性唯一键约束(Un ique)非空约束(Null | Not Null) 默认值(Defautl)(3) 例子CREATE TABLE stude nt( Sno CHAR(8) PRIMARY KEYSn ame CHAR(20) UNIQUE, Ssex CHAR(2) DEFALULT男 ' Sage SMALLINT CHECK(Sage>0) Sdept CHAR(20)CREATE TABLE Cour

13、se( Cno CHAR(4) PRIMARY KEYCn ame CHAR(40),Cpno CHAR(4) REFERENCES Course(C no) Ccredit SMALLINT,CHECK (Ccredit >0)CREATE TABLE sc(Sno CHAR(9),Cno CHAR(4),Grade SMALLINT,PRIMARYKEY(Sn o,C no)名>,<表名.列名 > FROM <表名 >,<表名 > WHERE<g询表达式 >1等值连接和非等值连接注:在连接查询中应在列前加上表作为前缀,但如果列名在

14、不同的表中不同,则可以不加表名限制,否 则必须加。当指定表的别名时,别名应跟在表名后面。例如:SQL> select ,2 from dept d,emp e3 where =4 and =20;1)等值连接查询学生的学号,姓名和所选课程号SELECT #, ,#FROM stude nt,scWHERE # = # 联接条件2)非等值连接 SELECT # ,FROM SC,Course WHERE # I IN #2自然连接若在等值连接中把目标列中重复的属性列去掉则为自然连接3自身连接给一个表定义两个或多个不同的别名,就可以像使用这两个别名进行连接查询SELECT,FROM Cour

15、se FIRST , Course SECOND WHERE =4外连接查询外连接分为左外连接和右外连接 左外连接列出左边关系中所有的元组 右外连接列出右边关系中所有的元组SELECT <表名.列名 >,<表名.列名 >FROM <表名 >LEFT|RIGHT OUT JOIN USING表名 > ON (连接条件)USING去掉重复行5复合条件查询WHERE子句中可以有多个连接条件,称为复合条件连接。(三)嵌套查询在SQL语言中,一个SELECT-FROM-WHER语句称为一个查询块。 将一个查询块嵌套在另一个查询块 的WHERE子句或HAVING短

16、语的条件中的查询称为嵌套查询。1无关子查询父查询与子查询相互独立,子查询语句不依赖父查询中返回的任何记录,可以独立执行 查询没有选修课程的所有学生的学号和姓名SELECT s#,s nameFROM stude ntWHERE s# NOT IN ( SELECT dist inct s# FROM sc)子查询返回选修了课程的学生学号集合,它与外层的查询无依赖关系,可以单独执行 无关子查询一般与IN 一起使用,用于返回一个值列表2相关子查询 相关子查询的结果依赖于父查询的返回值 查询选修了课程的学生学号和姓名 SELECT s#, snameFROM student WHERE EXISTS

17、 (SELECT * FROM sc WHERE # = #) 相关子查询不可单独执行,依赖于外层查询EXISTS(子查询):当子查询返回结果非空时为真,否则为假执行分析:对于 student的每一行,根据该行的s#去sc中查找有无匹配记录3 连接视图子查询出现在 FROM 子句中作为表使用 查询只选修了 1 门或 2 门课程的学生学号、姓名和课程数SELECT s#, count_c# FROM (SELECT # as s#, count#) as count_c#FROM student s, sc WHERE #=# Group by #) SC2, studentWHERE # =

18、# and (count_c#=1 OR count_c#=2) 联机视图可以和其它表一样使用(四)查询结果的连接Union 和 Union AllMinusIntersect1 Union 和 Union All查询课程平均成绩在 90 分以上或者年龄小于 20 的学生学号(SELECT s# FROM student WHERE age<2)0UNION( SELECT s# FROM (SELECT s#, AVG(score)FROM SC group by s# having avg(score)>90) SC2)UNION 操作自动去除重复记录UNION All 操作不

19、去除重复记录2 Minus 查询未选修课程的学生学号(SELECT s# FROM Studen)tMinus(SELECT distinct s# FROM SC)3 Intersect 返回两个查询结果的交集查询课程平均成绩在 90 分以上并且年龄小于 20 的学生学号(SELECT s# FROM student WHERE age<2)0Intersect ( SELECT s#FROM (SELECT s#, AVG(score)FROM SC group by s# having avg(score)>90) SC2五授权(一)创建数据库模式的权限CREATE USER

20、用户名 WITH DBA | RESOURCE | CONNECT1对数据库模式的授权由DBA在创建用户时实现2新创建的用户有三种权限拥有的权限可否执行的操作CREATE USERCREATE SCHEMACREATE TABLE登录数据库执行查询和操作DBA可以可以可以可以RESOURCE不可以不可以可以可以CONNECT不可以不可以不可以可以但必须拥有相应权限(二)授权和回收攵关系数据库系统中的存取权限对象类 型对象操作类型(权限)数据库模式CREATE SCHEMA基本表CREATE TABEL, ALTER TEBLE模式:视图CREATE VIEW索引CREATE INDEX数据基本

21、表和视图SELECT INSERT UPDATE, DELETE REFERENCES ALL PRIVILEGES数据属性列SELECT INSERT UPDATE, DELETE REFERENCES ALL PRIVILEGES1授权GRANT 权限 ,权限 ON v对象类型 v对象名 ,对象名 v对象名 TO 用户 ,用户WITH GRANT OPTION ;例如:GRANT SELECT ON TABLE Stude ntTO U1WITH GRANT OPTION(1) WITH GRANT OPTION表示获得某种权限后的用户,还可以把这种权限授予其他用户。如果没有此句,则不能传

22、播该权限(2)用户可以是 PUBLIC即全体用户2回收REVOKE权限 , 权限 ON 对象类型 对象名 ,对象名 对象名 FROM 用户 , 用户 CASCADE | RESTRICT;例如:REVOKE SELECTON TABLE Stude ntFROM U1CASCADE(三)数据库角色1创建角色CREATE ROLE角色名 >例如: CREATE ROLE R;1数据库角色是被命名的一组与数据库操作相关的权限,角色是权限集合2 给角色授权GRANT <权限 > ,<权限 >ON <对象类型 > <对象名 > ,<对象名 &

23、gt; <对象名 >TO <角色 > ,<角色 >;例如: GRANT SELEC,TUPDATE,INSERTON TABLE StudentTO R1;3 将一个角色授予其他角色或用户GRANT <角色1> ,<角色2>TO <角色> ,<用户 > WITH ADMIN OPTIONWITH ADMIN OPTION 表示获得某权限的角色或用户还可以把这种权限再授予其他角 色或用户例如: GRANT R1TO wang;4 角色权限回收REVOKE权限 > , <权限 >ON <对象

24、类型 > <对象名 >,<对象名 ><对象名 >FROM <角色> , <角色>例如: REVOKE R1FROM wang;六 完整性约束命名子句完整性约束条件可以在CREATE TABLED句中定义。SQL还在CREATE TABL语句中提供了完整性约束命名子句CONSTRAINT用来对完整性约束条件命名。1 创建完整性约束CONSTRAINT完整性约束条件名 >PRIMARY KEY 短语 | FOREIGN KEY短语 | CHECK短语 例如: CREATE TEBLE Student(Sno NUMERIC(6

25、)CONSTRAINT C1 CHECK(Sno BETWEEN 90000 AND 999999)Sname CHAR(20)CONSTRAINT C2 NOT NULL,Sage NUMERIC(3)CONSTRAINT C3 CHECK(Sage<30),Ssex CHAR(2)CONSTRAINT C4 CHECK (Ssex I男','女),CONSTRAINT StudentKey PRIMARY KEY (Sno);2 修改完整性约束例如: ALTER TABLE StudentDROP CONSTRAINT C4;ALTER TABLE StudentAD

26、D CONSTRAINT C5 CHECK (Sage<40);七 触发器CREATE TRIGGER触发器名 >BEFORE | AFTER触发事件 >ON<表名 >FOR EACH ROW| STATEMENTWHENv触发条件><触发动作体>第三章关系数据库理论一关系模式(回顾) 一个关系模式应当是一个五元组。R ( U, D, DOM,F)R为关系名U为组成该关系的属性名集合D为属性组U中属性所来自的域DOM为属性向域的映像集合 F为属性间数据的依赖关系集合由于D和DOM对模式设计关系不大,因此我们在本章中把关系模式看作是一个三元组:R&

27、lt;U,F>当且仅当U上的一个关系r满足F时,称r为关系模式RvU,F>£个关系。二数据依赖数据依赖是一个关系内部属性与属性之间的一种约束关系。这种关系是通过学习属性间值的相等与 否体现岀来的数据间相关联系。最重要的数据依赖其中最重要的是函数依赖和多值依赖。三规范化(一)函数依赖理论1 函数依赖定义:设R(U)是属性集U上的关系模式。X,Y是U的子集。若对于 R(U)的任意一个可能的关系 r, r 中不可能存在两个元组在 X上的属性值相等,而在 丫上的属性值不等,则称 X函数确定丫或丫函数 依赖于X,记作X- 丫。下面介绍一些术语和记号:X-Y,但丫 X,则称X-丫为平

28、凡的函数依赖。否则,称X-丫为非平凡的函数依赖。今后,若不特别声明,我们总是讨论非平凡的函数依赖。若X 丫,则称 X为决定因素(Determinant)。若 X Y, Y X,则记作 X<- 丫。若丫不函数依赖于X,则记作X " Yo2完全函数依赖和部分函数依赖定义:在R(U)中,如果X- Y,并且对于X的任何一个真子集 X',都有X'丫,则称丫对X完全函数依赖, f记作:X* Y o若X-丫但丫不完全函数依赖于 X则称丫对X部分函数依赖,记作X、丫。3传递函数依赖定义:在R(U)中,如果X-丫,(丫" X), Gx,Y-Z,则称Z对X传递函数依赖。加

29、上条件Y"'X,是因为如果 Y-X,则X 丫,实际上是,是直接函数依赖而不是传递函数依赖。4多值依赖定义:设R(U)是属性集U上的一个关系模式。X, Y, Z是的U的子集,并且Z=U-X-Yo关系模式 R(U)中多值依赖 X- 丫成立,当且仅当对 R(U)的任一关系r,给定的一对(x, z)值有一组丫的值,这组值 仅仅决定于x值而与z值无关。多值依赖的例子例:学校中某一门课程由多个教员讲授,他们使用相同的一套参考书。每个教员可以讲授多门课程,每种参考书可以供多门课程使用。我们可以用一个非规范化的关系来表示教员T,课程C和参考书B 之间的关系:课程C 教员T 参考书B物理 李勇普通物理学王军 光学原理物理习题集数学 李勇数学分析张平微分方程咼等代数把这张表变成一张规范化的二维表,就成为:Teach ing课程C教员T参考书B物理李勇普通物理学物理李勇光学原理物理李勇物理习题集物理王军普通物理学物理王军光学原理物理王军物理习题集数学李勇数学分析数学

温馨提示

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

评论

0/150

提交评论