数据库基础的知识个人整理版强烈推荐

上传人:沈*** 文档编号:99361721 上传时间:2022-05-31 格式:DOC 页数:19 大小:159.50KB
收藏 版权申诉 举报 下载
数据库基础的知识个人整理版强烈推荐_第1页
第1页 / 共19页
数据库基础的知识个人整理版强烈推荐_第2页
第2页 / 共19页
数据库基础的知识个人整理版强烈推荐_第3页
第3页 / 共19页
资源描述:

《数据库基础的知识个人整理版强烈推荐》由会员分享,可在线阅读,更多相关《数据库基础的知识个人整理版强烈推荐(19页珍藏版)》请在装配图网上搜索。

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

2、他的称为侯补键alternate key) 每个主键的值是不能一样的,3外键foreign key)如关系中的属性或属性组不是本关系的主键,而引用其他关系或本关系的主键,如此称为本关系的外键。3 关系Relation:1关系:定义在事物的所有属性域上的多元关系,一个关系就是一X二维表。2关系模式:关系的描述称为关系模式,它可以形式化的表示为RU,D,DOM,FR 为关系名U为组成该关系的属性名集合D为属性组U中属性所来自的域DOM为属性向域的映像集合F为属性间数据的依赖关系集合关系模式通常简记为:RU或RA1,A2,A3,An关系的三种根本类型根本表:是实际存在的表,它是实际存储数据的逻辑表示

3、。查询表:是查询结果对应的表。视图表:是由根本表或其他视图导出的表,是虚表,不对应实际存储内容。二关系操作一两种关系操作1 查询Query查询可以分为 选择(SELECT),投影(Project),连接(Join),交(Intersection),并(Union),差(Except),除(Divide),笛卡尔乘积。其中选择,投影,并,差,笛卡尔乘积是5种根本操作,其他的操作可用根本操作定义和导出2 插入(Insert),删除(Delete),修改(Update)二关系操作的特点集合式的操作方式,即操作的对象和结果都是集合。三关系数据语言可以分为三类1 关系代数语言2 关系演算语言元组关系演算

4、和域关系演算3具有关系代数和关系演算双重特点的语言SQL语言三 关系完整性约束关系数据库的数据必须遵循的约束实体完整性Entity Integrity参照完整性Referential Integrity用户自定义完整性User-Defined Integrity实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称为关系的两个不变性。一实体完整性实体完整性规如此:关系模式R的主属性值不可为空指所有主属性均不可取空值,不仅仅是主键不可为空二参照完整性1外键Foreign Key定义:设F是根本关系R的一个或一组属性,但不是关系的码,是根本关系的主码。如果与相对应,如此称是的外码Forei

5、gn KeyR称为参照关系Referential Relation,S称为被参照关系Referenced Relation2参照完整性规如此假如属性或属性组F是根本关系R的外码,它与根本关系S的主码KS相对应根本关系到R和S不一定是不同关系,如此对于R中每个元组在F上的值必须为:1等于被参照关系S中所参照的候选键的某个值2空值三用户自定义完整性针对某一具体数据的约束条件,反映某一具体应用所涉与的数据必须满足的特殊语义由应用环境决定四 关系代数关系代数按运算符的不同可分为传统关系运算和专门关系运算一传统关系运算交,并,差,笛卡尔乘积1 并R1R2=b 2 d b 3 b c 2 d d 3 b

6、a 3 c e 5 f g 6 62 交 AND) R1R2= b 2 dc 2 d3 (差 R1R2= b 3b d 3 b4 (笛卡尔乘积 R1 S = b 2 d 2 d b 2 d 3 b b 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 b二专门关系运算1 选择SELECT) 选择符合条件的元组) 如:性别=男STUDENT表的水平划分2 投影Project(选择符合条件的属性) ) 如:学号,某某STUDENT表的垂直划分3 连接操作Join)笛卡尔乘积 R S = |tR AND gS1连接分为等值连接和自然连接A

7、B连接操作: R|S 其中A和B分别为R和S上度数相等且具有可比性的属性组1等值连接为=如上例 R1 |S = b 2 d 2 dR1.A2=S.A2 b 3 b 3 bc 2 d2 d d 3 b 3 b 2)自然连接只有|一般连接是从行的角度出发的,但自然连接还要取消重复的列,是从行和列的角度进展运算S.A2 S.A3如 R1 |S = b 2 dB 3 b4 除运算R1.A1 如R1S = b 在R1上b印象集合是2,d,(3,d) S在A1,A2上的投影为2,d,(3,d第二章关系数据库的标准语言SQL一SQL动词表SQL功能动词数据查询SELECT数据定义CREATE,DROP,AL

8、TER数据操纵INSERT,UPDATE,DELETE数据控制GRANT,REVOKE二 数据定义操作对象操作方式创建删除修改模式CREATE SCHEMADROP SCHEMA表CREATE TABLEDROP TABLEALTER TABLE视图CREATE VIEWDROP VIEW索引CREATE INDEXDROP INDEX注意SQL通常不提供修改模式定义,修改视图定义,修改索引定义的操作一模式的定义和删除1模式的定义 CREATE SCHEMA AUTORIZATION 例如:CREATE SCHEMA “s-t AUTORIZATION wang;1 要创建模式,调用该命令的用

9、户必须具有DBA权限,或者获得了DBA授予的CREATE SCHEMA权限2如果没指定那么隐含为3定义模式,实际上是定义了一个命名空间,在这个空间中可以进一步定义该模式包含的数据库对象,例如根本表,视图,索引。2模式的删除 DROP SCHEMA 两者必选其一 例如:DROP SCHEMA “s-t CASCADE;1CASCADE级联表示在删除模式的同时把该模式中所有的数据库对象全部一起删除。2RESTRICT限制表示在删除该模式中已经定义了下属数据库对象表,视图索引,如此拒绝该删除语句。二表的定义,删除和修改1表的定义CREATE TEBLA ( 列级完整性约束, 列级完整性约束 ,)列定

10、义的完整格式: DEFAULT NOT NULL CREATE TEBLA AS 假如要定义模式式下的表:CREATE TABLE . 1数据类型ANSI/ISOOracle字符型Char(n)Char(n)Character(n)Character Varying(n)Varchar2(n)Char Varying(n)数值型NumericNumberDecimalIntegerIntFloatDoubleReal日期型DateDateTime2完整性约束主键约束Primary Key实体完整性外键约束Foreign Key 参照完整性检查约束Check 用户自定义完整性唯一键约束Uniqu

11、e非空约束Null | Not Null默认值Defautl3例子 CREATE TABLE student(Sno CHAR(8) PRIMARY KEY,Sname CHAR(20) UNIQUE,Ssex CHAR(2) DEFALULT 男, Sage SMALLINT CHECK(Sage0)Sdept CHAR(20)CREATE TABLE Course (o CHAR(4) PRIMARY KEY,ame CHAR(40),Cpno CHAR(4) REFERENCES Course(o),Ccredit SMALLINT,CHECK (Ccredit 0)CREATE TAB

12、LE sc(Sno CHAR(9),o CHAR(4),Grade SMALLINT,PRIMARY KEY (Sno,o),/注意一定要有括号FOREIGN KEY(Sno) REFERENCES Course(o),/sno一定要有括号)4说明 1列约束:在每个列后定义,可以有多个约束子句,不能定义多个列上的约束2表约束:在全部列定义完成后定义,可以有多个约束子句,多个列上的约束必须使用表约束,单列上的约束可以用列约束,也可用表约束2表的删除 DROP TABLE CASCADE | RESTRICT1CASCADE级联删除该表没有任何限制,删除表的同时,相关的依赖对象如视图也一起删除。2

13、RESTRICT限制删除该表是有限制条件的。欲删除的表不能被其他表的约束所引用 如CHECK,FOREIGN KEY等约束,不能有视图,不能有触发器trigger,不能存储过程或函数。3缺省情况下是RESTRICT3 表的修改ALTER TABLE ADD 完整性约束 | MODIFY 完整性约束 | DROP COLUMN | ADD | DROP CONSTRAINT 例如1ALTER TABLE StudentADD Dept Varchar210UNIQUE2Alter Table StudentDROP COLUMN age3AlLTER TABLE StudentMODIFYage

14、 number(3) NOT NULL4ALTER TABLE StudentADD CONSTRAINT PK_Student PRIMARY KEY(S#)5ALTER TABLE SCDROP CONSTRAINT FK_SC三视图的定义和删除1视图的定义CREATE VIEW 列名1,列名2,/列名一定要放在括号里 AS WITH CHECK OPTION |WITH READ ONLY例如:CREATE VIEW cs_view (sno, name, age)AS SELECT s#, sname, ageFROM student WHERE Dept = 计算机系 WITH RE

15、AD ONLY;1WITH CHECK OPTION表示对视图进展UPTATE,INSERT,DELETE操作时要保证更新,插入,删除的行满足视图定义中的谓词条件即子查询中的条件表达式 WITH READ ONLY表示视图是只读的2视图的属性列名只能是全部缺省或全部指定,没有别的选择。但在如下两种情况下必须明确指定组成视图的列名。 1某个目标列不是单纯的属性名,而是聚集函数或列表达式。 2多表连接时选出几个同名列作为视图的字段。3子查询可以是任意的SELECT子句,但通常不允许含有OREER BY 子句各DISDINCT短语。4不是所有视图都是可更新的1基于联接查询的视图不可更新2使用了函数的

16、视图不可更新3使用了分组操作的视图不可更新4只有建立在单个表上而且没有使用函数的视图才是可更新的2 视图的删除 DROP VIEW CASCADE四索引的定义和删除1索引的定义CREATE UNIQUE | CLUSTER INDEX ON ( , )例如:CREATE UNIQUE INDEX So on SC(Sno ASC,o DESC);1UNIQUE明确此索引的每一个索引值只对应唯一的数据记录2CLUSTER表示要建立的索引是聚簇索引。聚簇索引是指索引项的顺序与表中的物理顺序一致的索引组织,在一个表上只能建立一个聚簇索引。3次序可选ASC升序或DESC降序缺省值为ASC2索引的删除D

17、ROP INDEX DROP INDEX So;三 数据更新一插入数据INSERT插入数据通常有两种形式,一种是插入一个元组,另一种是插入子查询结果。后者可以一次插入多个元组。1 插入一个元组INSERT INTO ( ,)VALUES( ,)例如 INSERT INTO Student (Sno, Sname, Ssex, Sdept, Sage)VALUES (20081512, 陈冬 , 男 , IS , 18);INTO 语句中没有出现的属性列,新元组在列上将取空值或默认值。在INTO子句中只指出了表名,没有指出属性名,新元组要在所有属性列上都指定值,属性列的次序与CREATE TAB

18、LE 中的次序一样。2 插入子查询结果INSERT INTO ( ,)子查询;例如INSERT INTO Dept_age( Sdept ,Avg_age)SELECT Sdept ,AVG(Sage)FROM StudentGROUP BY Sdept;二修改数据 UPDATE SET =,= WHERE ;例如:UPDATE Student SET Sage=22 WHERE Sno=200215021;三删除数据DELETE FROMWHERE ;例如:DELETE FROM Student WHERE Sno=20021528;DELETE语句删除的是表中的数据,而不是关于表的定义。四

19、 数据查询根本数据查询的格式:SELECT ALL | DISTINCT AS,ASFROM ,WHEREGROUP BY HAVINGORDER BY ASC|DESC; 一单表查询在一个表中查询数据1* 查询查询全部记录:查询全部的学生信息SELECT * FROM Student;*表示所有列等同于SELECT s#, sname, age, sex FROM Student2使用别名AS或空格使用别名:查询所有学生的学号和某某SELECT s# AS 学号, sname AS 某某 FROM Student如果别名包含空格,须使用双引号SELECT s# AS “Student Num

20、ber FROM Student3表达式查询三种表达式,字符串表达式,算术表达式,函数表达式1字符串表达式查询所有学生的学号、某某和出生年份,返回两列信息,其中一列是“学号:某某,另一列是出生年份SELECT s# | “:| sname AS 学生,2003age AS 出生年份 FROM Student说明连接字符串 | 表示如此多个查询列连接为一个列输出。2算术表达式查询学生的出生年份SELECT 2003age AS 出生年份 FROM Student;3函数表达式SELECT sno, to_char(birth, mm-dd-yyyy) AS birthday FROM Stude

21、ntSELECT Count(sno) As 学生人数 FROM Student4条件查询1WHERE条件注:1在where子句中使用列名和表达式,但不能使用别名。2在where子句中使用数值时,既可以用单引号也可以不用单引号,使用日期值字符值时,都必须使用单引号,并且日期值的格式必须要符合数据库中支持的日期格式,否如此必须事先使用to_date函数将其转换成为数据库中支持的日期格式。oracle 中日期的默认格式为: 01-1月-82在输入查询条件时,可以用to_date(1998-01-01,yyyy-mm-dd)3在SQL语句中,命令不区分大小写,但字符串区分大小写WHERE子句中的关系

22、运算符:比拟操作符:, =, =, =, 逻辑操作符:AND OR NO其他操作符:INBETWEEN ANDIS NULL和IS NOT NULLLIKEEXISTS 例如: 1IN:查询s001,s003,s006和s008四学生的信息SELECT * FROM StudentWHERE s# IN (s001,s003,s006,s008)2IS NOT NULL:查询缺少年龄数据的学生SELECT * FROM Student WHERE age IS NULLLIKE:查询某某的第一个字母为R的学生SELECT * FROM Student WHERE sname LIKE R%:任

23、意长度的字符串_:单个字符一个汉字占两个字节注意:LIKE只能用于字符串的匹配,不能用于其他类型。查询某某的第一个字母为R并且倒数第二个字母为S的学生SELECT * FROM Student WHERE sname LIKE R%S_多个比拟式可用NOT、AND和OR连接SELECT * FROM Student WHERE age IS NULL and sname LIKE R%3假如要查询通配符可以用转义字符 escape character 通常 character 用 2去除重复记录DISTINCT查询学生的某某SELECT Distinct sname FROM StudentD

24、ISTINCTt只对记录有效,不针对某个特定列SELECT Distinct sname, age FROM Student3排序查询ORDER BY注:1order by只能对最终查询结果进展排序,也就是说其只能放在查询语句的最后一条。2可以使用列的别名,列的位置进展排序。3在大多数情况下,指定的排序列order by 列名都是选择列select 列名,但排序 列也可以不是选择列。但如果在select 语句中使用了distinct关键字,如此排序列必须 是选择列了。查询所有学生信息并将结果按年龄升序排列SELECT * FROM Student ORDER By age将结果按年龄升序排列,

25、按某某降序排列SELECT * FROM StudentORDER By age ASC,sname DESCASC表示升序,DESC表示降序4聚集函数 注: 1聚集函数和group by 子句联合使用,表示对每个组进展统计,否如此将所有数据行当 成一个组进展统计。 2聚集函数只能出现在选择列表、order by子句、having子句中,而不能出现在where 和group by 子句中。 3除了count*外,其他聚集函数都会忽略null行。 4聚集函数中可以指定all和distinct选项。其中all是默认选项,表示统计所有的行包 括重复行,而distinct只统计不同的行。countdi

26、stinct sal (DISTINCT | ALL) COUNT(列名):对一列中的值计数COUNT(*):计算记录个数SUM(列名):求一列值的总和数值AVG (列名):求一列值的平均值MIN (列名):求一列值的最小值MAX (列名):求一列值的最大值例子:求学生的总人数SELECT count(*) FROM student求选修了课程的学生人数SELECT COUNT(DISTINCT s#) FROM SC求学生的平均年龄SELECT avg(age) as average_age FROM student5分组查询GROUP BY 1根本格式 group by 列名1,列名2 h

27、aving 条件 ORDER by 列名查询男生和女生的平均年龄SELECT sex, AVG(age) as Average_age FROM StudentGroup By sex注意:除聚集函数外的属性必须全部出现在Group By子句中2返回特定的分组结果HAVEING查询不同年龄的学生人数,并返回人数在5人以上的结果SELECT age, COUNT(*) as students FROM StudentGroup By ageHaving COUNT(*) 5Having子句中必须聚集函数的比拟式,而且聚集函数的比拟式也只能通过Having子句给出Having中的聚集函数可与SEL

28、ECT中的不同查询人数在60以上的各个班级的学生平均年龄SELECT class, AVG(age) FROM StudentGroup By classHaving COUNT(*) 606使用rollup和cube限定词Rollup 用于生成横向统计结果SQL select deptno,job,avg(sal),max(sal) from emp 2 group by rollup(deptno,job); DEPTNO JOB AVG(SAL) MAX(SAL)- - - - 10 CLERK 1300 1300 10 MANAGER 2450 2450 10 PRESIDENT 50

29、00 5000 10 2916.66667 5000 20 CLERK 950 1100 20 ANALYST 3000 3000 20 MANAGER 2975 2975 20 2175 3000 30 CLERK 950 950 30 MANAGER 2850 2850 30 SALESMAN 1400 1600 30 1566.66667 2850 2073.21429 5000Cube 用于生成纵向统计结果SQL select deptno,job,avg(sal),max(sal) from emp 2 group by cube (deptno,job); DEPTNO JOB A

30、VG(SAL) MAX(SAL)- - - - 2073.21429 5000 CLERK 1037.5 1300 ANALYST 3000 3000 MANAGER 2758.33333 2975 SALESMAN 1400 1600 PRESIDENT 5000 5000 10 2916.66667 5000 10 CLERK 1300 1300 10 MANAGER 2450 2450 10 PRESIDENT 5000 5000 20 2175 3000 20 CLERK 950 1100 20 ANALYST 3000 3000 20 MANAGER 2975 2975 30 156

31、6.66667 2850 30 CLERK 950 950 30 MANAGER 2850 2850 30 SALESMAN 1400 1600二连接查询一个查询同时涉与两个以上的表,如此称之为连接查询。SELECT ,FROM ,WHERE1 等值连接和非等值连接注:在连接查询中应在列前加上表作为前缀,但如果列名在不同的表中不同,如此可以不加表名限制,否如此必须加。当指定表的别名时,别名应跟在表名后面。例如:SQL select d.deptno , d.dname, e.ename, e.sal 2 from dept d,emp e 3 where d.deptno=e.deptno 4

32、 and d.deptno=20;1等值连接查询学生的学号,某某和所选课程号SELECT student.s#, student.sname,sc.c#FROM student,scWHERE student.s# = sc.s# 联接条件2非等值连接 SELECT SC.S# , Course.creditFROM SC,Course WHERE SC.C# I IN Course.C#2自然连接 假如在等值连接中把目标列中重复的属性列去掉如此为自然连接3自身连接 给一个表定义两个或多个不同的别名,就可以像使用这两个别名进展连接查询。 SELECT FIRST.o, SECOND.CpnoF

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

34、询父查询与子查询相互独立,子查询语句不依赖父查询中返回的任何记录,可以独立执行查询没有选修课程的所有学生的学号和某某SELECT s#,snameFROM studentWHERE s# NOT IN ( SELECT distinct s# FROM sc)子查询返回选修了课程的学生学号集合,它与外层的查询无依赖关系,可以单独执行无关子查询一般与IN一起使用,用于返回一个值列表2 相关子查询相关子查询的结果依赖于父查询的返回值查询选修了课程的学生学号和某某SELECT s#, snameFROM studentWHERE EXISTS (SELECT * FROM sc WHERE sc.s

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

36、dent.s# and (count_c#=1 OR count_c#=2)联机视图可以和其它表一样使用四查询结果的连接Union和Union AllMinusIntersect1 Union和Union All查询课程平均成绩在90分以上或者年龄小于20的学生学号SELECT s# FROM student WHERE age90) SC2UNION操作自动去除重复记录UNION All操作不去除重复记录2Minus查询未选修课程的学生学号SELECT s# FROM StudentMinusSELECT distinct s# FROM SC3 Intersect返回两个查询结果的交集查询

37、课程平均成绩在90分以上并且年龄小于20的学生学号SELECT s# FROM student WHERE age90) SC2五 授权一创建数据库模式的权限CREATE USER WITH DBA | RESOURCE | CONNECT1 对数据库模式的授权由DBA在创建用户时实现2 新创建的用户有三种权限拥有的权限可否执行的操作CREATE USERCREATE SCHEMACREATE TABLE登录数据库执行查询和操作DBA可以可以可以可以RESOURCE不可以不可以可以可以CONNECT不可以不可以不可以可以但必须拥有相应权限二授权和回收关系数据库系统中的存取权限对象类型对象操作类

38、型权限数据库模式CREATE SCHEMA根本表CREATE TABEL ,ALTER TEBLE模式视图CREATE VIEW索引CREATE INDEX数据根本表和视图SELECT,INSERT,UPDATE,DELETE,REFERENCES,ALL PRIVILEGES数据属性列SELECT,INSERT,UPDATE,DELETE,REFERENCES,ALL PRIVILEGES1 授权GRANT ,ON , TO ,WITH GRANT OPTION ; 例如:GRANT SELECT ON TABLE StudentTO U1 WITH GRANT OPTION1WITH GR

39、ANT OPTION表示获得某种权限后的用户,还可以把这种权限授予其他用户。如果没有此句,如此不能传播该权限2用户可以是PUBLIC即全体用户2 回收REVOKE , ON ,FROM , CASCADE | RESTRICT;例如:REVOKE SELECT ON TABLE Student FROM U1 CASCADE;三数据库角色1 创建角色CREATE ROLE ;例如:CREATE ROLE R1;数据库角色是被命名的一组与数据库操作相关的权限,角色是权限集合2 给角色授权 GRANT , ON , TO ,; 例如:GRANT SELECT,UPDATE,INSERT ON TA

40、BLE Student TO R1;3 将一个角色授予其他角色或用户GRANT ,TO , WITH ADMIN OPTIONWITH ADMIN OPTION 表示获得某权限的角色或用户还可以把这种权限再授予其他角色或用户例如:GRANT R1 TO wang;4 角色权限回收REVOKE , ON ,FROM , ;例如:REVOKE R1 FROM wang;六 完整性约束命名子句完整性约束条件可以在CREATE TABLE语句中定义。SQL还在CREATE TABLE语句中提供了完整性约束命名子句CONSTRAINT,用来对完整性约束条件命名。1 创建完整性约束CONSTRAINTPR

41、IMARY KEY 短语 | FOREIGN KEY短语| CHECK短语例如:CREATE TEBLE Student Sno NUMERIC(6)CONSTRAINT C1 CHECK(Sno BETWEEN 90000 AND 999999)Sname CHAR(20) CONSTRAINT C2 NOT NULL, Sage NUMERIC(3)CONSTRAINT C3 CHECK(Sage30), Ssex CHAR(2)CONSTRAINT C4 CHECK (Ssex IN(男 , 女), CONSTRAINT StudentKey PRIMARY KEY (Sno);2 修改

42、完整性约束 例如:ALTER TABLE Student DROP CONSTRAINT C4;ALTER TABLE StudentADD CONSTRAINT C5 CHECK (Sage40);七 触发器CREATE TRIGGERBEFORE | AFTER ON FOR EACH ROW| STATEMENTWHEN第三章 关系数据库理论一 关系模式回顾一个关系模式应当是一个五元组。RU,D,DOM,FR 为关系名U为组成该关系的属性名集合D为属性组U中属性所来自的域DOM为属性向域的映像集合F为属性间数据的依赖关系集合由于D和DOM对模式设计关系不大,因此我们在本章中把关系模式看作

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

44、赖。今后,假如不特别声明,我们总是讨论非平凡的函数依赖。假如XY,如此称X为决定因素(Determinant)。假如XY,YX,如此记作XY。假如Y不函数依赖于X,如此记作X Y。2 完全函数依赖和局部函数依赖定义10.2:在R(U)中,如果XY,并且对于X的任何一个真子集X ,都有X Y,如此称Y对X完全函数依赖,记作:XY 。假如XY,但Y不完全函数依赖于X,如此称Y对X局部函数依赖,记作XY。3 传递函数依赖定义10.3:在R(U)中,如果XY,(YX),YX,YZ,如此称Z对X传递函数依赖。加上条件YX,是因为如果YX,如此XY,实际上是 , 是直接函数依赖而不是传递函数依赖。4 多值

45、依赖定义10.9:设R(U)是属性集U上的一个关系模式。X,Y,Z是的U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖XY成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值有一组Y的值,这组值仅仅决定于x值而与z值无关。多值依赖的例子例:学校中某一门课程由多个教员讲授,他们使用一样的一套参考书。每个教员可以讲授多门课程,每种参考书可以供多门课程使用。我们可以用一个非规X化的关系来表示教员T,课程C和参考书B之间的关系:课程C教员T参考书B -物理李勇普通物理学王军光学原理物理习题集-数学李勇数学分析X平微分方程高等代数把这X表变成一X规X化的二维表,就成为:Teaching课

46、程C 教员T 参考书B - 物理李勇普通物理学物理李勇光学原理物理李勇物理习题集物理王军普通物理学物理王军光学原理物理王军物理习题集数学李勇数学分析数学李勇微分方程数学李勇高等代数数学X平数学分析数学X平微分方程数学X平高等代数例如,在关系模式TEACHING中,对于一个(物理,光学原理)有一组T值李勇,王军,这组值仅仅决定于课程C上的值(物理)。也就是说对于另一个(物理,普通物理学)它对应的一组T值仍是李勇,王军,尽管这时参考书B的值已经改变了。因此T多值依赖于C,即CT。四 X式一X式关系数据库中的关系模式要满足一定的规X化要求,满足不同程度规X化要求的关系模式的类称为不同的X式。满足最低

47、要求的关系模式称为第一X式,简称lNF。在第一X式中满足进一步要求的为第二X式,其余以此类推。R为第几X式就可以写成RxNF。按属性间依赖情况来区分,关系规X化的程度为1NF,2NF,3NF,BF,4NF和5NF等。对于各种X式之间的关系有 5NF4NFBF 3NF2NFlNF成立。二规X化一个低一级X式的关系模式,通过模式分解可以转换为假如干个高一级X式的关系模式的集合,这一过程称为规X化。三X式定义1 1NF:作为一X二维表,对它有一个最起码的要求,每一个分量必须是不可公的数据项,满足了这个条件的关系模式就属于第一X式 2 2NF:假如R1NF ,且每个非空主属性完全依赖于码,如此R2NF

48、3 3NF: 关系模式R中假如不存在这样的码X,属性组Y与非主属性ZZY使得XY ,YZ 成立,Y X,如此称R3NF不存在传递依赖4 BF:关系模式R1NF,假如对R中任何非平凡的函数依赖XY(Y X), X必含有键,如此称RBF 5 4NF:关系模式R1NF,如果对于R的每个非平凡多值依赖XYYX,X都含有码,如此R 4NF四关于X式的说明1 假如一个关系模式R不是3NF,就会产生插入异常、删除异常、更新异常和数据冗余度等问题。所以一般情况下,关系模式应至少达到3NF2 X式总结消除决定因素非码的非平凡函数依赖 1NF消除非主属性对码的局部依赖 2NF 消除非主属性对码的传递函数依赖 3NF消除主属性对码的局部和传递函数依赖 BF消除非平凡且非函数依赖的多值依赖 5NF

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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