




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章关系数据模型1 数据模型(静态)的三要素 1 一 关系数据结构1 二 关系操作2 三关系完整性约束3 四关系代数3 第二章 关系数据库的标准语言 SQL6 一SQL动词表6 二数据定义6 五授权14 六完整性约束命名子句 16 七触发器17 第三章关系数据库理论18 一关系模式(回顾) 18 二数据依赖18 三规范化18 第一章关系数据模型 数据模型(静态)的三要素 一 关系数据结构 (一)基本概念包括: 1属性(Attribute):实体所具有的某一特征。(如学生的特征是学号、姓名、 -) 域(Domain):属性对应的一组具有相同数据类型的值的集合。每个属性有一个域。(关系 模型限定
2、域必须原子性1NF) 2 键(key) (1)候选键(can didate key) 关系的某一属性或属性组的值唯一标识一个元组,而其任何真子集无此性质。 候选键的诸属性称为主属性,不包含在任何候选键中的属性称为非主属性。 (2)主键(primary key) 一个关系至少有一个侯选键,可以有几个侯选键。一般从侯选键中选择一个作为主键 (primary key),其他的称为侯补键(alternate key) 每个主键的值是不能相同的, (3)外键(foreign key) 如关系中的属性或属性组不是本关系的主键,而引用其他关系或本关系的主键,则称 为本关系的外键。 3 关系(Relation
3、 ): (1) 关系:定义在事物的所有属性域上的多元关系,一个关系就是一张二维表。 (2) 关系模式:关系的描述称为关系模式,它可以形式化的表示为 R ( U, D, DOM F) R为关系名 U为组成该关系的属性名集合 D为属性组U中属性所来自的域 DOM为属性向域的映像集合 F为属性间数据的依赖关系集合 关系模式通常简记为:R ( U)或R (A1, A2, A3,An) 关系的三种基本类型 基本表:是实际存在的表,它是实际存储数据的逻辑表示。 查询表:是查询结果对应的表。 视图表:是由基本表或其他视图导出的表,是虚表,不对应实际存储内容。 二关系操作 (一) 两种关系操作 1 查询(Qu
4、ery) 查询可以分为选择(SELECT),投影(Project),连接(Join),交(Intersection),并 (Union),差(Except),除(Divide),笛卡尔乘积。 其中选择,投影,并,差,笛卡尔乘积是5种基本操作,其他的操作可用这些基本操作定 义和导出 2 插入(Insert),删除(Delete),修改(Update) (二) 关系操作的特点 集合式的操作方式,即操作的对象和结果都是集合。 (三) 关系数据语言可以分为三类 1关系代数语言 2关系演算语言(元组关系演算和域关系演算) 3具有关系代数和关系演算双重特点的语言(SQL语言) 三关系完整性约束 关系数据库
5、的数据必须遵循的约束 实体完整性(Entity Integrity ) 参照完整性(Referential Integrity) 用户自定义完整性(User-Defi ned In tegrity) 实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称为关系的两个不变 性。 (一) 实体完整性 实体完整性规则:关系模式R的主属性值不可为空 指所有主属性均不可取空值,不仅仅是主键不可为空 (二) 参照完整性 1 外键(Foreign Key ) 定义:设F是基本关系R的一个或一组属性,但不是关系R的码,KS是基本关系S的主 码。如果F与KS相对应,则称F是R的外码(Foreign Ke
6、y ) R称为参照关系(Referential Relation), S 称为被参照关系(Refereneed Relation ) 2参照完整性规则 若属性(或属性组)F是基本关系R的外码,它与基本关系 S的主码KS相对应(基本关 系到R和S不一定是不同关系),则对于R中每个元组在F上的值必须为: (1 )等于被参照关系 S中所参照的候选键的某个值 (2)空值 (三) 用户自定义完整性 针对某一具体数据的约束条件,反映某一具体应用所涉及的数据必须满足的特殊语义 由应用环境决定 四关系代数 关系代数按运算符的不同可分为传统关系运算和专门关系运算 (一)传统关系运算(交,并,差,笛卡尔乘积) 关
7、系尺*1关系R2关系S A1 A2 A3 b 2 d b b c 2 d d 3 b 1 U (并)R1U R2=b 2 d A1 A2 A3 a 3 c b 2 d e 2 d 号 5 f g el f o o J b 3 b c 2 d d 3 b a 3 c e 5 f g 6 6 2 n(交 AND) R1 n R2= b 2 d c 2 d 3 (差) R1 R2= b 3 b d 3 b 4 X (笛卡尔乘积)R1 X 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
8、b (二)专门关系运算 1选择(SELECT)(选择符合条件的元组) S 选择条件 ( 关系名 )女口:3性别=男(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 B 1 )等值连接(为=) =b 3 b 3 b c 2 d 2 d d 3 b 3 b 2)自然连接(只有| X | ) 一般
9、连接是从行的角度出发的,但自然连接还要取消重复的列,是从行和列的角度进 行运算 如 R1 | X | S = b 2 d B 3 b 4除运算(十) 女口 R1- S = b 在R1上b印象集合是 (2, d) ,(3 , d) S在(A1, A2)上的投影 为 (2 ,d) ,(3 , d) 第二章关系数据库的标准语言SQL SQL动词表 SQL功能 动词 数据查询 SELECT 数据定义 CREATE DROP ALTER 数据操纵 INSERT, UPDATE DELETE 数据控制 GRANT REVOKE 数据定义 操作对象 操作方式 创建 删除 修改 模式 CREATE SCHEM
10、A DROP SCHEMA 表 CREATE TABLE DROP TABLE ALTER TABLE 视图 CREATE VIEW DROP VIEW 索引 CREATE INDEX DROP INDEX 注意 SQL通常不提供修改模式定义,修改视图定义,修改索引定义的操作 (一)模式的定义和删除 1模式的定义 CREATE SCHEMA 模式名 AUTORIZATION用户 例如:CREATE SCHEMA “ s-t ” AUTORIZATION wang; (1) 要创建模式,调用该命令的用户必须具有DBA权限,或者获得了 DBA授予的CREATE SCHEM权限 (2)如果没指定 那
11、么 隐含为 (3) 定义模式,实际上是定义了一个命名空间,在这个空间中可以进一步定义该模式包含 的数据库对象,例如基本表,视图,索引。 2模式的删除 DROP SCHEMA模式名 (两者必选其一) 例如:DROP SCHEMAs-t ” CASCADE (1)CASCADE级联)表示在删除模式的同时把该模式中所有的数据库对象全部一起删除。 (2)RESTRICT(限制)表示在删除该模式中已经定义了下属数据库对象(表,视图索引), 则拒绝该删除语句。 (二)表的定义,删除和修改 1表的定义 CREATE TEBLA表名 ( 列级完整性约束 , 列级完整性约束 , ) 列定义的完整格式: DEFA
12、ULT NOT NULL CREATE TEBLA表名 AS 若要定义模式式下的表:CREATE TABLE 模式名 . (1)数据类型 ANSI/ISO Oracle 字符型 Char( n) Char( n) Character n) Character Varying(n) Varchar2( n) Char Varying(n) 数值型 Numeric Number Decimal In teger Int Float Double Real 日期型 Date Date Time (2)完整性约束 主键约束(Primary Key )实体完整性 外键约束(Foreign Key )参照
13、完整性 检查约束(Check) 用户自定义完整性 唯一键约束(Unique) 非空约束(Null | Not Null ) 默认值(Defautl ) (3)例子 CREATE TABLE stude nt ( Sno CHAR(8) PRIMARY KEY Sn ame CHAR(20) UNIQUE Ssex CHAR(2) DEFALULT 男 Sage SMALLINT CHECK(Sage0) Sdept CHAR(20) ) CREATE TABLE Course ( Cno CHAR(4) PRIMARY KEY Cn ame CHAR(40) Cp no CHAR(4) REF
14、ERENCES Course(C no) Ccredit SMALLINT , CHECK (Ccredit 0) ) CREATE TABLE sc ( Sno CHAR(9), Cno CHAR(4), Grade SMALLINT, PRIMARY KEY (Sn o,C no) 20081512 200215021 20021528 s# Age 01 Sa 20 02 21 03 sc 21 Stucten 俵 S# C# Score 01 C1 so 01 C2 5 02 C1 89 SC表信娓外键,c#是外键) c# credit C1 Ca 3 C2 4 C3 Cc 3.5 0
15、01 003 006 008 001 003 006 008 Stucten俵 SC表(朋是外键,c#是別儷) s# Srwis Age 01 Sa 20 02 21 03 sc 21 S# C# Score pl1 Cl SO pl1 C2 S5 02 C1 S9 名 , FROM , WHERE查询表达式 1等值连接和非等值连接 注: 在连接查询中应在列前加上表作为前缀,但如果列名在不同的表中不同,则可以不加表名限制, 否则必须加。 当指定表的别名时,别名应跟在表名后面。 例如: SQL select , 2 from dept d,emp e 3 where = 4 and =20; 1
16、)等值连接 查询学生的学号,姓名和所选课程号 SELECT #, ,# FROM stude nt,sc WHERE # = # 联接条件 2)非等值连接 SELECT # , FROM SC,Course WHERE # I IN # 2自然连接 若在等值连接中把目标列中重复的属性列去掉则为自然连接 3自身连接 给一个表定义两个或多个不同的别名,就可以像使用这两个别名进行连接查询。 SELECT, FROM Course FIRST , Course SECOND WHERE = 4外连接查询 外连接分为左外连接和右外连接 左外连接列出左边关系中所有的元组 右外连接列出右边关系中所有的元组
17、SELECT , FROM LEFT|RIGHT OUT JOIN USING ON (连接条件) USING去掉重复行 5复合条件查询 WHERE?句中可以有多个连接条件,称为复合条件连接。 (三)嵌套查询 在SQL语言中,一个 SELECT-FROM-WHERE句称为一个查询块。将一个查询块嵌套在另一个查 询块的 WHER?句或HAVING短语的条件中的查询称为嵌套查询。 Stucten俵 SC表(朋是外键,c#是別儷) S# Srwis Age 01 Sa 20 02 21 03 sc 21 S# C# Score pl1 Cl SO pl1 C2 S5 02 C1 S9 1无关子查询
18、父查询与子查询相互独立,子查询语句不依赖父查询中返回的任何记录,可以独立执行 查询没有选修课程的所有学生的学号和姓名 SELECT s#,s name FROM stude nt WHERE s# NOT IN ( SELECT disti net s# FROM sc) 子查询返回选修了课程的学生学号集合,它与外层的查询无依赖关系,可以单独执行 无关子查询一般与IN 一起使用,用于返回一个值列表 2相关子查询 相关子查询的结果依赖于父查询的返回值 查询选修了课程的学生学号和姓名 SELECT s#, sn ame FROM stude nt WHERE EXISTS (SELECT * FR
19、OM se WHERE # = #) 相关子查询不可单独执行,依赖于外层查询 EXISTS (子查询):当子查询返回结果非空时为真,否则为假 执行分析:对于 student的每一行,根据该行的s#去se中查找有无匹配记录 3连接视图 子查询出现在FROM?句中作为表使用 查询只选修了 1门或2门课程的学生学号、姓名和课程数 SELECT s#, count_c# FROM (SELECT # as s#, count#) as count_c# FROM stude nt s, sc WHERE #=# Group by #) SC2, stude nt WHERE # = # and (co
20、u nt_c#=1 OR coun t_c#=2) 联机视图可以和其它表一样使用 (四) 查询结果的连接 Un io n 和 Union All Min us In tersect 1 Union 和 Un io n All 20的学生学号 查询课程平均成绩在 90分以上或者年龄小于 (SELECT s# FROM stude nt WHERE age90) SC2 ) UNION操作自动去除重复记录 UNION All操作不去除重复记录 2 Min us 查询未选修课程的学生学号 (SELECT s# FROM Student) Min us (SELECT disti net s# FRO
21、M SC ) 3 In tersect 返回两个查询结果的交集 查询课程平均成绩在 90分以上并且年龄小于20的学生学号 (SELECT s# FROM stude nt WHERE age90) SC2 ) 五授权 (一)创建数据库模式的权限 CREATE USER 用户名 WITH DBA | RESOURCE | CONNECT 1对数据库模式的授权由 DBA在创建用户时实现 2新创建的用户有三种权限 拥有的权限 可否执行的操作 CREATE USER CREATE SCHEMA CREATE TABLE 登录数据库执行查询和操作 DBA 可以 可以 可以 可以 RESOURCE 不可以
22、 不可以 可以 可以 CONNECT 不可以 不可以 不可以 可以但必须拥有相应权限 (二)授权和回收 关系数据库系统中的存取权限 对象类 型 对象 操作类型(权限) 数据库 模式 CREATE SCHEMA 基本表 CREATE TABEL, ALTER TEBLE 模式 视图 CREATE VIEW 索引 CREATE INDEX 数据 基本表和视图 SELECT INSERT, UPDATE DELETE REFERENCES ALL PRIVILEGES 数据 属性列 SELECT INSERT, UPDATE DELETE REFERENCES ALL PRIVILEGES 1授权
23、GRANT权限 , ON , TO , WITH GRANT OPTION ; 例如:GRANT SELECT ON TABLE Stude nt TO U1 WITH GRANT OPTION (1) WITH GRANT OPTIO表示获得某种权限后的用户,还可以把这种权限授予其他用户。如果 没有此句,则不能传播该权限 (2) 用户可以是PUBLIC即全体用户 2回收 REVOKE 权限 , ON , FROM 用户 , CASCADE | RESTRICT; 例如:REVOKE SELECT ON TABLE Stude nt FROM U1 CASCADE (三)数据库角色 1创建角色
24、 CREATE ROLE 角色名 ; 例如:CREATE ROLE R1 数据库角色是被命名的一组与数据库操作相关的权限,角色是权限集合 2给角色授权 GRANT , ON , TO ,; 例如:GRANT SELECT UPDATE INSERT ON TABLE Stude nt TO R1; 3将一个角色授予其他角色或用户 GRANT 角色 1 , TO , WITH ADMIN OPTION WITH ADMIN OPTIO N表示获得某权限的角色或用户还可以把这种权限再授予其他 角色或用户 例如:GRANT R1 TO wang; 4角色权限回收 REVOKE 权限 , ON , F
25、ROM 角色 , ; 例如:REVOKE R1 FROM wang; 六完整性约束命名子句 完整性约束条件可以在CREATE TABLE语句中定义。SQL还在CREATE TABLE语句中提供了完整 性约束命名子句 CONSTRAINT!来对完整性约束条件命名。 1创建完整性约束 CONSTRAINT完整性约束条件名 PRIMARY KEY 短语 | FOREIGN KEY 短语 | CHECK短语 例如:CREATE TEBLE Stude nt (Sno NUMERIC(6) CONSTRAINT C1 CHECK(S no BETWEEN 90000 AND 999999) Sn ame
26、 CHAR(20) CONSTRAINT C2 NOT NULL, Sage NUMERIC(3) CONSTRAINT C3 CHECK(Sage30), Ssex CHAR(2) CONSTRAINT C4 CHECK (Ssex IN(男,女), CONSTRAINT Stude ntKey PRIMARY KEY (Sno) ); 2修改完整性约束 例如:ALTER TABLE Stude nt DROP CONSTRAINT C4; ALTER TABLE Stude nt ADD CONSTRAINT C5 CHECK (Sage BEFORE | AFTER ON表名 FOR E
27、ACH ROW| STATEMENT WHEN触发条件 第三章关系数据库理论 一关系模式(回顾) 一个关系模式应当是一个五元组。 R ( U, D, DOM F) R为关系名 U为组成该关系的属性名集合 D为属性组U中属性所来自的域 DOM为属性向域的映像集合 F为属性间数据的依赖关系集合 由于D和DOM寸模式设计关系不大,因此我们在本章中把关系模式看作是一个三元组:R 当且仅当U上的一个关系r满足F时,称r为关系模式R的一个关系。 二数据依赖 数据依赖是一个关系内部属性与属性之间的一种约束关系。这种关系是通过学习属性间值的相 等与否体现出来的数据间相关联系。 最重要的数据依赖其中最重要的是函
28、数依赖和多值依赖。 三规范化 (一) 函数依赖理论 1函数依赖 定义:设R(U)是属性集U上的关系模式。X,Y是U的子集。若对于 R(U)的任意一个可能的关系 r, r中不可能存在两个元组在X上的属性值相等,而在 Y上的属性值不等,则称 X函数确定Y 或Y函数依赖于X,记作Xt Y。 下面介绍一些术语和记号: XY,但Y X,则称XtY为平凡的函数依赖。否则,称XtY为非平凡的函数依赖。 今后,若不特别声明,我们总是讨论非平凡的函数依赖。 若XtY,则称 X为决定因素(Determinant)。 若 Xt Y, Yt X,则记作 X Y。 若Y不函数依赖于 X则记作X Y。 2完全函数依赖和部
29、分函数依赖 定义:在R(U)中,如果Xt Y,并且对于X的任何一个真子集 X,都有X - Y,则称Y对X完全 函数依赖,记作:X -Y。 若Xt Y,但Y不完全函数依赖于 X,则称Y对X部分函数依赖,记作X 亠 3传递函数依赖 定义:在R(U)中,如果Xt Y,(YX) , & X,Yt乙则称Z对X传递函数依赖。 加上条件YX,是因为如果YtX,则X-t Y,实际上是,是直接函数依赖而不是传递函数依 赖。 4多值依赖 定义:设R(U)是属性集U上的一个关系模式。X, Y, Z是的U的子集,并且Z=U-X-Y。关系模式 R(U)中多值依赖Xtt y成立,当且仅当对 R(U)的任一关系r,给定的一
30、对(x , z)值有一组Y的 值,这组值仅仅决定于 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
提交评论