版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库知识要点总结第一章 关系数据模型数据模型(静态)的三要素一 关系数据结构(一)基本概念包括:1 属性 (Attribute) :实体所具有的某一特征。 (如学生的特征是学号、姓名、 )域(Domain):属性对应的一组具有相同数据类型的值的集合。每个属性有一个域。(关系模型限定域必须原子性1NF )2 键( key)3 1)候选键(candidate key)关系的某一属性或属性组的值唯一标识一个元组,而其任何真子集无此性质。候选键的诸属性称为主属性,不包含在任何候选键中的属性称为非主属性。4 2)主键(primary key)一个关系至少有一个侯选键,可以有几个侯选键。一般从侯选键中选
2、择一个作为主键( primary key), 其他的称为侯补键( alternate key)每个主键的值是不能相同的,5 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-Defined Integrity )实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称为关系的两个不变(一)实体完整性实体完整性规则:关系模式R的主属性值不
5、可为空指所有主属性均不可取空值,不仅仅是主键不可为空(二)参照完整性1 夕卜键(Foreign Key )定义:设F是基本关系 R的一个或一组属性,但不是关系R的码,KS是基本关系S的主码。如果F与KS相对应,则称F是R的外码( Foreign Key)R 称为参照关系(Referential Relation ), S 称为被参艮关系(Referenced Relation )2参照完整性规则若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码KS相对应(基本关系到R和S不一定是不同关系),则对于R中每个元组在F上的值必须为:(1)等于被参照关系S中所参照的候选键的某个值(2)空值(
6、三)用户自定义完整性针对某一具体数据的约束条件,反映某一具体应用所涉及的数据必须满足的特殊语义 由应用环境决定四关系代数关系代数按运算符的不同可分为传统关系运算和专门关系运算(一)传统关系运算(交,并,差,笛卡尔乘积)关系R1关系R21 U (并)R1U R2=b 2 d b 3 b c 2 d2 n (交 AND) R1 c 2 d3 一(差) R1 d 3 b4 X (笛卡尔乘积)d 3 ba 3 ce 5 fg 6 6n R2= b 2 dR2= b3 bR1 X S = b 2 d 2 db 3 b 2 db 3 b 3 bc 2 d 2 dc 2 d 3 bd 3 b 2 dd 3
7、b 3 b(二)专门关系运算1选择(SELECT)(选择符合条件的元组)次选择条件 (关系名 ) 如:胜别=男(STUDENT )表的水平划分2投影(Project)(选择符合条件的属性)口属性表(关系名) 如: 口学号,姓名 (STUDENT)表的垂直划分3连接操作(Join)笛卡尔乘积 R X S = |t R AND g C S(1)连接分为等值连接和自然连接连接操作:R| X|S 其中A和B分别为R和S上度数相等且具有可比性的属性组A 6 B如上例 R1 | X | S = b 2 d 2 d R1.A2=S.A2b 3 b 3 bc 2 d 2 dd 3 b 3 b2)自然连接(只有
8、| X| )一般连接是从行的角度出发的,但自然连接还要取消重复的列,是从行和列的角度进 行运算S.A2 S.A3R1.A1 R1.A2R1.A3如 R1 | X | S = b 2 dB 3 b4除运算(+ )R1.A1如 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、方式创建删除修改模式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)要创建模式,调用该命令的用户必须具有 DBA权限,或者获得了 DBA授予的CREATE SCHEMA权限(2)如果没指定 那么
10、隐含为用户名(3)定义模式,实际上是定义了一个命名空间,在这个空间中可以进一步定义该模式包含的数据库对象,例如基本表,视图,索引。2模式的删除DROP SCHEMA0)Sdept CHAR(20))CREATE TABLE Course( Cno CHAR(4) PRIMARY KEY ,Cname CHAR(40) ,Cpno CHAR(4) REFERENCES Course(Cno) ,Ccredit SMALLINT ,CHECK (Ccredit 0)CREATE TABLE sc( Sno CHAR(9) ,Cno CHAR(4) ,Grade SMALLINT ,PRIMARY
11、KEY (Sno,Cno) , /注意一定要有括号FOREIGN KEY(Sno) REFERENCES Course(Cno) , /sno 一定要有括号)( 4)说明1)列约束:在每个列后定义,可以有多个约束子句,不能定义多个列上的约束2)表约束:在全部列定义完成后定义,可以有多个约束子句,多个列上的约束必须使用表约束,单列上的约束可以用列约束,也可用表约束2 表的删除DROP TABLE CASCADE | RESTRICT( 1) CASCADE (级联)删除该表没有任何限制,删除表的同时,相关的依赖对象(如视图)也一起删除。( 2) RESTRICT (限制)删除该表是有限制条件的。
12、欲删除的表不能被其他表的约束所引用 (如 CHECK,FOREIGN KEY 等约束) ,不能有视图,不能有触发器(trigger) ,不能存储过程或函数。( 3) 省情况下是RESTRICT3 表的修改ALTER TABLE ADD 完整性约束 |MODIFY 完整性约束|DROP COLUMN |ADD |DROP CONSTRAINT 例如( 1) ALTER TABLE StudentADD Dept Varchar2 ( 10) UNIQUE( 2) Alter Table StudentDROP COLUMN age( 3) AlLTER TABLE StudentMODIFYag
13、e number(3) NOT NULL( 4) ALTER TABLE StudentADD CONSTRAINT PK_Student PRIMARY KEY(S#)( 5) ALTER TABLE SCDROP CONSTRAINT FK_SC(三)视图的定义和删除1视图的定义CREATE VIEW (列名1,列名2,)列名一定要放在括号里AS 查询WITH CHECK OPTION |WITH READ ONL Y例如:CREATE VIEW cs_view (sno, name, age)AS SELECT s#, sname, ageFROM studentWHERE Dept =
14、计算机系 WITH READ ONL Y;(1) WITH CHECK OPTION 表示对视图进行 UPTATE , INSERT , DELETE操作时要保证 更新,插入,删除的行满足视图定义中的谓词条件(即子查询中的条件表达式)WITH READ ONL Y表示视图是只读的(2)视图的属性列名只能是全部缺省或全部指定,没有别的选择。但在下列两种情况下必须明确指定组成视图的列名。1)某个目标列不是单纯的属性名,而是聚集函数或列表达式。2)多表连接时选出几个同名列作为视图的字段。(3)子查询可以是任意的 SELECT子句,但通常不允许含有 OREER BY 子句各 DISDINCT 短语。(
15、4)不是所有视图都是可更新的1)基于联接查询的视图不可更新2)使用了函数的视图不可更新3)使用了分组操作的视图不可更新4)只有建立在单个表上而且没有使用函数的视图才是可更新的2视图的删除DROP VIEW CASCADE(四)索引的定义和删除1索引的定义CREATE UNIQUE | CLUSTER INDEX 索引名ON 表名(列名,卜次序刁)例如:CREATE UNIQUE INDEX SCno on SC(Sno ASC , Cno DESC);(1) UNIQUE表明此索引的每一个索引值只对应唯一的数据记录(2) CLUSTER表示要建立的索引是聚簇索引。聚簇索引是指索引项的顺序与表中
16、的物理顺序一致的索引组织,在一个表上只能建立一个聚簇索引。(3)次序可选 ASC (升序)或 DESC (降序)缺省值为 ASC2索引的删除DROP INDEX DROP INDEX SCno;三数据更新(一)插入数据INSERT插入数据通常有两种形式,一种是插入一个元组,另一种是插入子查询结果。后者可以一次插入多个元组。1插入一个元组INSERTINTO 表名 ( ,)VALUES( ,)例如 INSERTINTO Student (Sno, Sname, Ssex, Sdept, Sage)VALUES ( 20081512,陈冬,男,,IS, 18);INTO语句中没有出现的属性列,新元
17、组在这些列上将取空值或默认值。在INTO子句中只指出了表名,没有指出属性名,新元组要在所有属性列上都指定值,属性列 的次序与 CREATE TABLE 中的次序相同。2插入子查询结果INSERTINTO 表名 ( ,)子查询;例如 INSERTINTO Dept_age( Sdept ,Avg_age)SELECT Sdept ,A VG(Sage)FROM StudentGROUP BY Sdept;(二)修改数据UPDATE SET=,= WHERE ;例如:UPDATE StudentSET Sage=22WHERE Sno= 200215021;(三)删除数据DELETEFROMWHE
18、RE ;例如:DELETEFROM StudentWHERE Sno= 20021528;DELETE语句删除的是表中的数据,而不是关于表的定义。四数据查询基本数据查询的格式:SELECT ALL | DISTINCT AS别名卜标列表达式AS,表名或视图名 WHEREGROUP BY HAVINGORDER BY ASC|DESC;(一)单表查询在一个表中查询数据1*查询查询全部记录:查询全部的学生信息SELECT * FROM Student ;*表示所有列等同于SELECT s#, sname, age, sex FROM Student2使用别名(AS或空格)使用别名:查询所有学生的学
19、号和姓名SELECT s# AS 学号,sname AS 姓名 FROM Student如果别名包含空格,须使用双引号SELECT s# AS “ Student Number” FROM Student3表达式查询(三种表达式,字符串表达式,算术表达式,函数表达式)(1)字符串表达式查询所有学生的学号、姓名和出生年份,返回两列信息,其中一列是学号:姓名”,另一列是出生年份SELECT s# | 门| sname AS 学生,2003 age AS 出生年份 FROM Student说明连接字符串|表示则多个查询列连接为一个列输出。(2)算术表达式查询学生的出生年份SELECT 2003 ag
20、e AS 出生年份 FROM Student ;(3)函数表达式SELECT sno, to_char(birth, mm-dd-yyyy ) AS birthday FROM StudentSELECT Count(sno) As 学生人数 FROM Student4条件查询(1) WHERE 条件注:1)在where子句中使用列名和表达式,但不能使用别名。2)在where子句中使用数值时,既可以用单引号也可以不用单引号,使用日期值字符值时,都必须使用单引号,并且日期值的格式必须要符合数据库中支持的日期格式,否则必须事先使用to_date函数将其转换成为数据库中支持的日期格式。oracle中
21、日期的默认格式为:01-1月-82在输入查询条件时,可以用 to_date( 1998-01-01,yyyy-mm-dd )3 )在SQL 语句中,命令不区分大小写,但字符串区分大小写WHERE 子句中的关系运算符:比较操作符:, =, =, =, 逻辑操作符:AND OR NO其他操作符:INBETWEEN ANDIS NULL 和 IS NOT NULLLIKEEXISTS例如:1) IN:查询 S001,s003,s006和s008四学生的信息SELECT * FROM StudentWHERE s# IN ( s001, s003, s006, s008)2) IS NOT NULL
22、:查询缺少年龄数据的学生SELECT * FROM Student WHERE age IS NULLLIKE :查询姓名的第一个字母为R的学生SELECT * FROM Student WHERE sname LIKER%:任意长度的字符串_:单个字符(一个汉字占两个字节)注意: LIKE 只能用于字符串的匹配,不能用于其他类型。查询姓名的第一个字母为R并且倒数第二个字母为S的学生SELECT * FROM Student WHERE sname LIKER%S_多个比较式可用 NOT 、 AND 和 OR 连接SELECT * FROM StudentWHERE age IS NULL a
23、nd sname LIKER%3)若要查询通配符可以用转义字符escape character 通常 character 用 ( 2 )去除重复记录(DISTINCT )查询学生的姓名SELECT Distinct sname FROM StudentDISTINCTt 只对记录有效,不针对某个特定列SELECT Distinct sname, age FROM Student( 3 )排序查询(ORDER BY )注:1) order by 只能对最终查询结果进行排序,也就是说其只能放在查询语句的最后一条。2)可以使用列的别名,列的位置进行排序。3)在大多数情况下,指定的排序列(order
24、by 列名)都是选择列( select 列名) ,但排序列也可以不是选择列。但如果在select 语句中使用了 distinct 关键字,则排序列必须是选择列了。查询所有学生信息并将结果按年龄升序排列SELECT * FROM Student ORDER By age将结果按年龄升序排列 ,按姓名降序排列SELECT * FROM StudentORDER By age ASC , sname DESCASC 表示升序, DESC 表示降序( 4)聚集函数注:1)聚集函数和 group by 子句联合使用,表示对每个组进行统计,否则将所有数据行当成一个组进行统计。2)聚集函数只能出现在选择列表
25、、 order by 子句、 having 子句中,而不能出现在where和 group by 子句中。3)除了 count ( * )外,其他聚集函数都会忽略 null 行。4) 聚集函数中可以指定all 和 distinct 选项。 其中 all 是默认选项, 表示统计所有的行 (包括重复行) ,而 distinct 只统计不同的行。 count ( distinct sal )(DISTINCT | ALL)COUNT( 列名 ) :对一列中的值计数COUNT(*) :计算记录个数SUM( 列名 ) :求一列值的总和(数值)AVG ( 列名 ) :求一列值的平均值MIN ( 列名 ) :
26、求一列值的最小值MAX ( 列名 ):求一列值的最大值例子:求学生的总人数SELECT count(*) FROM student求选修了课程的学生人数SELECT COUNT(DISTINCT s#) FROM SC求学生的平均年龄SELECT avg(age) as average_age FROM student( 5)分组查询(GROUP BY )1)基本格式group by 列名 1,列名 2 having 条件 ORDER by 列名查询男生和女生的平均年龄SELECT sex, AVG(age) as Average_age FROM StudentGroup By sex注意:
27、除聚集函数外的属性必须全部出现在Group By 子句中2)返回特定的分组结果( HAVEING )查询不同年龄的学生人数,并返回人数在5 人以上的结果SELECT age, COUNT(*) as students FROM StudentGroup By ageHaving COUNT(*) 5Having 子句中必须聚集函数的比较式,而且聚集函数的比较式也只能通过Having 子句给出Having 中的聚集函数可与SELECT 中的不同查询人数在60 以上的各个班级的学生平均年龄SELECT class, AVG(age) FROM StudentGroup By classHaving
28、 COUNT(*) 60( 6)使用 rollup 和 cube 限定词Rollup 用于生成横向统计结果SQL select deptno,job,avg(sal),max(sal) from emp 2 group by rollup(deptno,job);DEPTNO JOBAVG(SAL)MAX(SAL)10 CLERK130010 MANAGER245010 PRESIDENT5000102916.6666720 CLERK95020 ANAL YST300020 MANAGER297520217530 CLERK95030 MANAGER285030 SALESMAN140013
29、00245050005000110030002975300095028501600301566.666672073.21429Cube 用于生成纵向统计结果28505000SQL select deptno,job,avg(sal),max(sal) from emp 2 group by cube (deptno,job);DEPTNO JOBAVG(SAL)MAX(SAL)2073.21429CLERK1037.5ANAL YST3000MANAGER2758.33333SALESMAN1400PRESIDENT5000102916.6666710 CLERK130010 MANAGER2
30、45010 PRESIDENT50002021755000130030002975160050005000130024505000300020 CLERK95020 ANAL YST300020 MANAGER2975301566.6666730 CLERK95030 MANAGER285030 SALESMAN1400110030002975285095028501600(二)连接查询 一个查询同时涉及两个以上的表,则称之为连接查询。Stucten底 SC表(s#是外键,c一是明键)S#WrwisAge01Sa2002孰2103sc21S#C#Scorepl1ClSOpl1C2S502C1S
31、9c#creditC1Ca3C2效4C3Cc3.5SELECT ,表名.列名村FROM 表名 , WHERE1等值连接和非等值连接在连接查询中应在列前加上表作为前缀,但如果列名在不同的表中不同,则可以不加表名限制,否则必须加。当指定表的别名时,别名应跟在表名后面。例如:SQL select d.deptno , d.dname, e.ename, e.sal2 from dept d,emp e3 where d.deptno=e.deptno4 and d.deptno=20;1)等值连接查询学生的学号,姓名和所选课程号SELECT student.s#, student.sname,sc.
32、c#FROM student,scWHERE student.s# = sc.s#联接条件2)非等值连接SELECT SC.S# , Course.credit FROM SC,Course WHERE SC.C# I IN Course.C#2自然连接若在等值连接中把目标列中重复的属性列去掉则为自然连接3自身连接给一个表定义两个或多个不同的别名,就可以像使用这两个别名进行连接查询。SELECT FIRST.Cno, SECOND.CpnoFROM Course FIRST , Course SECONDWHERE FIRST.Cpno=SECOND.Cno4外连接查询外连接分为左外连接和右外
33、连接左外连接列出左边关系中所有的元组右外连接列出右边关系中所有的元组SELECT ,表名.列名村FROM 表名 LEFT|RIGHT OUT JOIN USING ON (连接条件)USING去掉重复行5复合条件查询WHERE子句中可以有多个连接条件,称为复合条件连接。(三)嵌套查询在SQL语言中,一个SELECT-FROM-WHERE 语句称为一个查询块。 将一个查询块嵌套在另 个查询块的 WHERE子句或HAVING短语的条件中的查询称为嵌套查询。S#SrwipAge01Sa20022103C215#C#Score01C1SO01C2502C1S9Shicten俅 SC表画#是外照c#是外
34、图c#creditC1Ca3C2砂4C3Cc3.51无关子查询父查询与子查询相互独立,子查询语句不依赖父查询中返回的任何记录,可以独立执行 查询没有选修课程的所有学生的学号和姓名SELECT s#,snameFROM studentWHERE s# NOT IN ( SELECT distinct s# FROM sc)子查询返回选修了课程的学生学号集合,它与外层的查询无依赖关系,可以单独执行无关子查询一般与IN一起使用,用于返回一个值列表2相关子查询相关子查询的结果依赖于父查询的返回值查询选修了课程的学生学号和姓名SELECT s#, snameFROM studentWHERE EXIST
35、S (SELECT * FROM sc WHERE sc.s# = 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, scWHERE s.s#=sc.s#Group by s.s#)
36、 SC2, studentWHERE sc2.s# = student.s# and (count_c#=1 OR count_c#=2) 联机视图可以和其它表一样使用一一(四)查询结果的连接Union 和 Union AllMinusIntersect1 Union 和 Union All查询课程平均成绩在 90分以上或者年龄小于20的学生学号(SELECT s# FROM student WHERE age90) SC2 )UNION操作自动去除重复记录UNION All操作不去除重复记录2 Minus查询未选修课程的学生学号(SELECT s# FROM Student )Minus(S
37、ELECT distinct s# FROM SC )3 Intersect返回两个查询结果的交集查询课程平均成绩在 90分以上并且年龄小于20的学生学号(SELECT s# FROM student WHERE age90) SC2)五授权(一)创建数据库模式的权限CREATE USER WITH DBA | RESOURCE | CONNECT1对数据库模式的授权由 DBA在创建用户时实现2新创建的用户有二种权限拥有的权限可否执行的操作CREATE USERCREATE SCHEMACREATE TABLE登录数据库执行查询和操作DBA可以可以可以可以RESOURCE不可以不可以可以可以C
38、ONNECT不可以不可以不可以可以但必须拥有相应权限(二)授权和回收关系数据库系统中的存取权限对象类 型对象操作类型(权限)数据库模式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 , /用户WITH
39、 GRANT OPTION ;例如:GRANT SELECT ON TABLE Student TO U1WITH GRANT OPTION(1) WITH GRANT OPTION 表示获得某种权限后的用户,还可以把这种权限授予其他用户。 如果没有此句,则不能传播该权限(2)用户可以是PUBLIC即全体用户2回收REVOKE , ON ,用户 CASCADE | RESTRICT; 例如:REVOKE SELECT ON TABLE Student FROM U1 CASCADE ;(三)数据库角色1创建角色CREATE ROLE ;例如:CREATE ROLE R1 ;数据库角色是被命名的
40、一组与数据库操作相关的权限,角色是权限集合2给角色授权GRANT , 权限刁ON , ,;例如:GRANT SELECT , UPDATE, INSERT ON TABLE Student TO R1;3将一个角色授予其他角色或用户GRANT ,TO , WITHADMIN OPTIONWITH ADMIN OPTION 表示获得某权限的角色或用户还可以把这种权限再授予其他角色或用户例如: GRANT R1TO wang;4 角色权限回收REVOKE , ON ,FROM , ; 例如: REVOKE R1FROM wang;六 完整性约束命名子句完整性约束条件可以在CREATE TABLE
41、语句中定义。 SQL 还在 CREATE TABLE 语句中提供了完整性约束命名子句 CONSTRAINT, 用来对完整性约束条件命名。1 创建完整性约束CONSTRAINTPRIMARY 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),S
42、sex CHAR(2)CONSTRAINT C4 CHECK (Ssex IN( 男 , 女),CONSTRAINT StudentKey PRIMARY KEY (Sno);2 修改完整性约束例如: ALTER TABLE StudentDROP CONSTRAINT C4;ALTER TABLE StudentADD CONSTRAINT C5 CHECK (Sage40);七 触发器CREATE TRIGGERBEFORE | AFTER ONFOR EACH ROW| STA TEMENTWHEN第三章 关系数据库理论一 关系模式(回顾)一个关系模式应当是一个五元组。R( U , D
43、, DOM , F)R为关系名U为组成该关系的属性名集合D为属性组U中属性所来自的域DOM为属性向域的映像集合F为属性间数据的依赖关系集合由于D和DOM对模式设计关系不大,因此我们在本章中把关系模式看作是一个三元组:R当且仅当U上的一个关系r满足F时,称r为关系模式R的一个关系。二数据依赖数据依赖是一个关系内部属性与属性之间的一种约束关系。这种关系是通过学习属性间值的相等与否体现出来的数据间相关联系。最重要的数据依赖其中最重要的是函数依赖和多值依赖。三规范化(一)函数依赖理论1函数依赖定义10.1:设R(U)是属T集U上的关系模式。X,Y是U的子集。若对于 R(U)的任意一个可能 的关系r, r中不可能存在两个元组在X上的属性值相等,而在 Y上的属性值不等,则称 X函数确定Y或Y函数依赖于X,记作X-Y。下面介绍一些术语和记号:X f Y,但Y X,则称X-Y为平凡的函数依赖。否则,称X-Y为非平凡的函数依赖。今后,若不特别声明,我们总是讨论非平凡的函数依赖。若X 一Y ,则称X为决定因素(Determinant)。若 X-Y, Y - X,则记作 XYo若Y不函数依赖于X ,则记作X不Y。2完全函数依赖和部分函数依赖定义10.2:在R(U)中,如果X - Y,并且对于X的任何一个真子集 X,都有X 4 丫,则称丫对X完全函数依赖,记彳:X-* Y 。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版投资担保合同风险控制条款3篇
- 如何记忆更多的知识点
- 二零二五年度锂离子蓄电池销售合同范本3篇
- 二零二五年度个人间家庭农场贷款合同3篇
- 零担货物运输合同三篇
- 教师行业安全生产工作总结
- 二零二五年度影视制作公司演员个人聘用合同2篇
- 二零二五个人住宅租赁合同(含租赁保证金退还条件)2篇
- 二零二五年度个人担保合同书范本:珠宝首饰抵押担保
- 二零二五年度绿色快递柜场地租赁与快递代收协议书3篇
- 投饵机相关项目实施方案
- 医疗健康大数据平台使用手册
- 数独6宫格300试题
- 24年注安-管理的题
- 2024至2030年中国心理咨询行业市场预测与投资规划分析报告
- 碳排放管理员 (碳排放核查员) 理论知识考核要素细目表四级
- 撂荒地整改协议书范本
- 国际贸易地理 全套课件
- GB/T 20878-2024不锈钢牌号及化学成分
- 某房屋建筑工程监理大纲
- 英语考纲词汇表3500词
评论
0/150
提交评论