1、12.1非关系模型 DBMS支持四种数据模型:n层次模型:70年代,占据商用市场n网状模型:70年代,占据商用市场n关系模型:80年代开始,现在完全取代了上两种n面向对象模型: 最近有所发展 22.1非关系模型2.1.1层次模型 (Hierarchical Model)2.1.2网状数据模型 (Network Model )层次、网状模型统称为格式化模型 32.1.1层次模型n是数据库系统中最早出现的数据模型。n用树形结构表示各类实体间联系。n代表产品:IBM的 IMS(information management systems)42.1.1层次模型1. 数据结构 2.存储结构3.数据操纵与
2、完整性约束 4. 优缺点 52.1.1 层次模型1.1.数据结构数据结构 用树型结构描述实体、属性及关系例.数据模型定义如图 D# DN DL R# RNS# SN SST# TN TD系D教研室R教师T 学生S )()()(属性字段父子系连线为记录类型间的关实体型每个节点为一个记录类62.1.1 层次模型例. 数据模型对应值如图:D02 CS OB R01 DB R02 IMSR03 AIS63871 LJ AS63874 CY CS63876 WB AE2101 WS DBTE1709 LB DBSE3501 LJJ DBSE1101 CP HRE3162 ZP ES72.1.1 层次模型
3、n层次模型 满足下面两个条件的基本层次联系的集合为层次模型。满足下面两个条件的基本层次联系的集合为层次模型。1. 有且只有一个结点没有双亲结点,这个结点称为根有且只有一个结点没有双亲结点,这个结点称为根 结点结点2. 根以外的其它结点有且只有一个双亲结点根以外的其它结点有且只有一个双亲结点n层次模型中的几个术语n根结点,双亲结点,兄弟结点,叶结点根结点,双亲结点,兄弟结点,叶结点82.1.1 层次模型 1 根结点根结点 2 兄弟结点兄弟结点 3 叶结点叶结点 4 兄弟结点兄弟结点 5 叶结点叶结点 叶结点叶结点92.1.1 层次模型2层次数据模型的存储结构 不仅存储数据本身,还要反映出层次关系
4、 n邻接法按照层次树前序遍历的顺序把所有记录值依次邻接存按照层次树前序遍历的顺序把所有记录值依次邻接存放,即通过物理空间的位置相邻来实现层次顺序放,即通过物理空间的位置相邻来实现层次顺序n链接法用指引元来反映数据之间的层次联系用指引元来反映数据之间的层次联系102.1.1 层次模型3.数据操纵与完整性约束n数据操纵:查询、插入、删除和修改n完整性约束:如:n无相应的双亲结点值就不能插入子女结点值无相应的双亲结点值就不能插入子女结点值n如果删除双亲结点值,则相应的子女结点值也如果删除双亲结点值,则相应的子女结点值也被同时删除被同时删除n更新操作时,应更新所有相应记录,以保证数更新操作时,应更新所
5、有相应记录,以保证数据的一致性据的一致性112.1.1 层次模型4优缺点优缺点 优点: 1)简单,易用 2)对于预先定义不变的系统,以及具有一对多的层次关系,性能优于关系模型 3)良好的完整性 缺点: 1)表示多对多困难 2)插入,删除限制多122.1非关系模型2.1.1层次模型 (Hierarchical Model)2.1.2网状数据模型 (Network Model ) 132.1.2网状数据模型n70年代推出年代推出n由由DBTG提出的一个系统方案提出的一个系统方案n奠定了数据库系统的基本概念、方法和技术奠定了数据库系统的基本概念、方法和技术n实际系统nCullinet Softwar
6、e Inc.公司的公司的 IDMSnUnivac公司的公司的 DMS1100nHoneywell公司的公司的IDS/2nHP公司的公司的IMAGE142.1.2网状数据模型1.数据结构数据结构 n用网状结构表示实体及其间联系,特点:n允许多个结点没有双亲结点n允许结点有多个双亲结点,层次模型是网状的一个特例。间联系节点间的连线表示记录属性每个记录若干字段实体每个节点一个记录类型)()(152.1.2网状数据模型学生宿舍学生宿舍学生学生教研室教研室系系教师教师162.1.2网状数据模型父母父母人人子女子女树树种种植植砍砍伐伐养养育育赡赡养养172.1.2网状数据模型 1 2 R3 L1 L2 R
7、1 R1 R2R2 L3 L3 L1 L2 L1 L2 R3R3 L4 L4 R4 R4 R5R5 182.1.2网状数据模型 2. 存储结构存储结构 关键n实现记录之间的联系实现记录之间的联系n常用方法n单向链接单向链接n双向链接双向链接n环状链接环状链接n向首链接向首链接192.1.2网状数据模型3.数据操纵与完整性约束n数据操纵:查询、插入、删除和修改n完整性约束:n允许插入尚未确定双亲结点值的子女结点值允许插入尚未确定双亲结点值的子女结点值n允许只删除双亲结点值允许只删除双亲结点值202.1.2网状数据模型 4.优缺点优缺点优点:n更直接描述现实世界n良好性能,存取效率高缺点:n数据描
8、述语言(DDL)复杂n数据独立性较差21第二章关系数据模型 n2.1非关系模型 n2.2关系数据模型 n2.3关系的完整性 n2.4关系代数 n2.5关系演算 n2.6 关系数据库管理系统 n2.7 例子:建立关系模式 222.2 关系数据模型n针对层次模型和网状模型的这些缺陷,70年代初出现了关系模型。计算机数据管理的历史上,出现过两次飞跃n第一次是数据库技术的出现数据库技术的出现n第二次是关系数据模型的诞生关系数据模型的诞生DB走向成熟走向成熟n最重要的一种数据模型n是目前数据库技术主要采用的数据模型n1970年由美国IBM公司San Jose研究室的研究员E.F.Codd提出232.2
9、关系数据模型2.2.1 关系数据模型的要素2.2.2 关系模型的特点 2.2.3 关系的性质及数学描述 242.2.1 关系数据模型的要素n关系模型n关系数据结构n关系操作集合n完整性约束n关系模型的数据结构非常单一,用户看来即一张二维表,但能表达丰富的语义n关系操作采用集合操作方式,即操作对象和结果都是集合。n完整性约束提供了三类完整性。25221关系数据模型的要素 1.1.关系数据模型的数据结构(关系术语)关系数据模型的数据结构(关系术语)n关系(Relation)n就是一个二维表(用二维表的形式来表示实体和实体间的联系的数据模型)n元组元组(Tuple)n表中的行叫一个元组或一个记录n属
10、性(Attribute)n表中的列称为属性;每列一个属性名26221关系数据模型的要素n域(Domain)n属性的取值范围(一组具有相同数据类型的值的集合)n关键字/主码(Key)n表中的某个属性组,其值能唯一标识一个元组n关系模式(Schema)n对关系的描述,格式: 关系名关系名(属性名1,属性名2,属性名n)n元数(目元数(目/度)度)n关系模式中属性的数目221关系数据模型的要素2728221关系数据模型的要素用术语定义关系:n关系是元组的集合n关系模式是命名的属性集合n元组是属性值的集合n一个具体的关系模型是若干个关系模式的集合n在关系模型中,基本数据结构就是二维表。 29221关系
11、数据模型的要素2.关系数据模型的操纵与完整性约束关系数据模型的操纵与完整性约束n操纵:查询、插入、删除、修改n完整性约束:实体完整性、参照完整性、用户定义的完整性3.存储结构存储结构n实体及实体间的联系用表表示n物理组织中,表以文件形式存储,每一个表对应一种文件结构 30221关系数据模型的要素4.关系模型优缺点优点:n建立在严格的数学概念的基础上n结构简单、清晰,用户易学易用n存取路径透明,使数据独立性高,安全保密性好缺点:n路径透明,查询效率不如非关系数据模型312.2关系数据模型2.2.1 关系数据模型的要素 2.2.2 关系模型的特点 2.2.3 关系的性质及数学描述 2.2.4 关系
12、模式322.2.2关系模型的特点 1.1.关系必须规范化关系必须规范化n每个关系模式必须满足一定要求,6NF基本要求。n最基本的规范条件:关系的每一个分量必须是一个不可最基本的规范条件:关系的每一个分量必须是一个不可分的数据项。分的数据项。工工 资资扣扣 除除职职 工工号号姓姓名名职职称称基基 本本工工 龄龄职职 务务房房 租租水水 电电实实发发8 86 60 05 51 1陈陈 平平讲讲 师师1 10 05 59 9 5 51 15 56 61 12 21 11 15 5 5 5. . . . . . . . . . . . . . . . . . . . . . . . . . . .33
13、2.2.2 关系模型的特点 2.数据结构简单数据结构简单:实体和实体间的联系都用关系表示3.3.数据独立性高数据独立性高:用户不必顾及数据的物理存放, 只与数据本身发生关系。 4.4.可以直接处理多对多关系可以直接处理多对多关系: :在层次与网状关系模型中,需引入中间记录表示M:N关系,关系模型中通过一个关系就能表达。5.5.有坚实的理论基础有坚实的理论基础: :以数学的集合论为基础342.2.2 关系模型的特点例:例: 表示学生与课程之间多对多联系的关系表示学生与课程之间多对多联系的关系 学号学号 课程号课程号 成绩成绩 S1 C1 80 S1 C2 87 S2 C1 90 S2 C2 88
14、 S2 C3 95 S3 C1 75352.2关系数据模型2.2.1 关系数据模型的要素 2.2.2 关系模型的特点 2.2.3 关系的性质及数学描述 2.2.4 关系模式362.2.3 关系的性质及数学描述 1.1.关系性质关系性质 1) 列是同质的:关系的每一列的数据来自同一域2) 关系的不同的列应给以不同的名以示区别3) 关系的列的次序的交换不影响关系的实际含义。4)关系的行的次序交换不影响关系的实际含义5)在同一个关系中不允许有相同的元组,它保证了关系中元组的唯一性6)关系的每个属性必须是不可再分的(分量取原子值)7)由于对关系操作的结果(增,删,改),关系会随者时间的推移而变化 37
15、2.2.3 关系的性质及数学描述2.2.关系的数学描述(笛卡儿积)关系的数学描述(笛卡儿积): :n所有域的所有取值的一个组合n不能重复n笛卡儿积定义:笛卡儿积定义:给定一组域D1,D2,.Dn ,这些域可以有相同的域,定义 D1,D2,.Dn 的笛卡儿积为: D1 X D2 X D3 X . X Dn= (d1,d2,dn) di Di ,i=1,2,3.n 382.2.3 关系的性质及数学描述n关系是笛卡尔积的有限子集。无限关系在数据库系统中是无意义的。n关系定义:关系定义: D1 X D2 X D3 X . X Dn的子集称为在域D1D2.Dn上的关系。用 R(D1,D2.Dn)表示。
16、392.2.3 关系的性质及数学描述例如: 给出两个域D1姓名集合张三,李四 D2工资集合984,640,587 D1 X D2笛卡儿积的二维表形式: D1 D2 张张 984 张张 647 张张 587 李李 984 李李 640 李李 587从上例的笛卡儿积D1XD2取一个子集构成工资关系 姓名姓名 工资工资 张三张三 640 李四李四 587402.2关系数据模型2.2.1 关系数据模型的要素 2.2.2 关系模型的特点 2.2.3 关系的性质及数学描述 2.2.4 关系模式412.2.4 关系模式n关系模式是对关系的描述,可以形式化地表示为 R(U,D,DOM,F)R:关系名U:组成该
17、关系的属性名集合D:属性组U中属性所来自的域DOM:属性向域的映象集合F:属性间数据的依赖关系422.2.4 关系模式n关系模式(Relation Schema)是型n对关系的描述n静态的、稳定的n关系是值n关系模式在某一时刻的状态或内容n动态的、随时间不断变化的n关系模式是对关系的描述n关系模式和关系往往统称为关系,通过上下文加以区别43第二章关系数据模型 n2.1非关系模型 n2.2关系数据模型 n2.3关系的完整性 n2.4关系代数 n2.5关系演算 n2.6 关系数据库管理系统 n2.7 例子:建立关系模式 442.3关系的完整性 n关系的完整性就是指存储在数据库中数据的一致性和正确性
18、n可通过各种默认,规则,触发器等保证数据完整性。n关系模型中有三类完整性约束 用户定义完整性参照完整性实体完整性452.3关系的完整性2.3.1 实体完整性2.3.2 参照完整性2.3.3 用户定义的完整性462.3.1实体完整性(entity integrity) n实体完整性规则: 若属性A是基本关系R的关键字(KEY),则属性A不能取空值.。若关键字为属性集,则其每个属性均不能为空值。n如:选修(学号,课号,成绩)学号,课号是KEY,则其均不能为空。 472.3.1实体完整性(entity integrity) 说明:1.实体完整性是针对基本关系而言的。一个基本关系通常对应现实世界的一个
19、实体集。例:学生关系学生集合2.现实世界中的实体是可区分的,具有唯一标识 3.关系模型中以主码作为唯一标识。4.主码主码中的属性不能取空。482.3关系的完整性2.3.1 实体完整性2.3.2 参照完整性2.3.3 用户定义的完整性492.3.2参照完整性(referencial integrity) n现实世界中实体间存在联系,自然存在关系与关系间的引用。例1:学生(学号,姓名,性别,专业号,年龄) 专业(专业号,专业名) 这两个关系间存在属性引用,即学生关系应用了专业关系的KEY(专业号)n学生关系中的专业号值必须是确实存在的专业的专业号n学生关系中某个属性取值要参照专业关系的属性取值50
20、2.3.2参照完整性(referencial integrity)例2:学生(学号,姓名,性别,专业号,年龄) 课程(课号,课名,学分) 选修(学号,课号,成绩) 这三个关系间也存在属性引用,选修关系中引用的学号课号必须存在 例3:学生(学号,姓名,性别,专业号,年龄,班长) 同一关系内部属性间也可引用512.3.2参照完整性(referencial integrity)n定义(外码):定义(外码):设F是基本关系R的一个或一组属性但不是R的关键字,如果F与基本关系S的主关键字Ks相对应,则n称F是基本关系R的外码(FOREIGN KEY)n并称基本关系R为参照关系(REFERENCING R
21、ELATION)n基本关系S为被参照关系REFRENCED RELATION 或目标关系(TARGET RELATION)。n关系R和S不一定是不同的关系。 522.3.2参照完整性(referencial integrity)n 显然,S的KEY与R的外码F必须在同一个域上。 如:专业号专业号 学号班长号 定单关系.货号库存关系.货号 -不一定同名,但取值域相同 n可用图表示532.3.2参照完整性(referencial integrity) 专业号学生关系学生关系专业关系专业关系 学号课号学生关系学生关系选修关系选修关系课程关系课程关系542.3.2参照完整性(referencial i
22、ntegrity)n参照完整性规则就是定义外键与主键之间的引用规则。 n参照完整性规则参照完整性规则:若属性(或属性组)F是基本关系R的外键,它与基本关系S 的主键Ks相对应,则对于R中,每个元组在F上的值必须为:n 或者取空值(F的每个属性值均为空值)n 或者等于S中某个元组的主键值 552.3.2参照完整性(referencial integrity)例如:例1中,学生关系中每个元组的专业号属性值 中某个元组的专业号值非空,必须是专业关系分配专业空,表示尚未给该学生562.3.2参照完整性(referencial integrity) 实施参照完整性,由DBMS管理:1)控制输入: 如在J
23、OB中不能输入Customer_ID,只能选择 或可输入,但若在Customer中无此ID,则不能接收2)连锁更新、删除: 如在Customer中改Customer_ID,则JOB中也改; 在Customer中删Customer_ID,则JOB中也删;例:删除国籍自动删具有此国籍者 或更改国籍遭禁止 57SQL Server 关系图企业管理器所选库关系图新建数据库关系图582.3.2参照完整性(referencial integrity)59602.3关系的完整性2.3.1 实体完整性2.3.2 参照完整性2.3.3 用户定义的完整性612.3.3用户定义的完整性 n实体完整性和参照完整性适用
24、于任何关系数据库系统。除此之外,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件n用户定义的完整性:反映应用领域需要遵循的约束条件,体现了具体领域中的语义约束n用户定义后由系统支持n如:年龄0 120 等622.3.3用户定义的完整性ACCESS中,定义表时在设计视图中“有效性规则”定义列的用户定义完整性实验作业1.安装一个数据库管理系统,建立一个数据库,至少3个表,完成对关系的关键字建立,并完成:1)表中不建立含有语义的关键字,建立自动计数类型数据作为关键字,输入重复数据,给出结果;2)建立含有语义的关键字,输入重复数据,给出结果;3)对含有语义的关键字字段不输入值,观
25、察结果4)写出总结(命名、目标、设计过程、验证数据、结论 )63实验作业2.参照完整性实验1)设计实验表(至少2个),画出表间参照关系图;2)给出实验过程设计(数据、建联系等),测试DBMS对具有参照关系的表的如下控制:n控制输入n级联更新n级联删除3)写出实验报告6465第二章关系数据模型 n2.1非关系模型 n2.2关系数据模型 n2.3关系的完整性 n2.4关系代数 n2.5关系演算 n2.6 关系数据库管理系统 n2.7 例子:建立关系模式 66关系模型操作n关系模型给出了关系操作能力,但不对RDBMS语言给出具体的语法要求n关系模型操作表达方式有:n关系代数n关系演算n元组关系演算n
26、域关系演算672.4关系代数n关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式,它是用对关系的运算来表达查询的。n关系代数的运算对象是关系,运算结果也是关系。682.4关系代数2.4.1传统的集合运算 2.4.2专门的关系运算2.4.3 关系代数运算表示方法 692.4.1传统的集合运算传统的集合运算是二目运算 并(并(union) 两个度为n的关系R1和R2的并记为R1UR2,结果是度为n的关系。该关系由属于R1的元组和属于R2的元组共同组成nR和Sn具有相同的目n(即两个关系都有n个属性)n相应的属性取自同一个域nRS n仍为n目关系,由属于R或属于S的元组组成 RS =
27、 t|t Rt S 702.4.1传统的集合运算ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b2c2a1b3c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSRS 712.4.1传统的集合运算交交(intersection) 两个度为n的关系R1和R2的交记为R1R2,结果是度为n的关系,由既属于R1又属于R2的元组组成。nR和Sn具有相同的目nn相应的属性取自同一个域nRSn仍为n目关系,由既属于R又属于S的元组组成 RS = t|t Rt S RS = R (R-S)722.4.1传统的集合运算ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a2
28、b2c1ABCa1b2c2a1b3c2a2b2c1RSR S 732.4.1传统的集合运算差(差(difference) 两个度n的R1和R2的差记为R1-R2结果是度为n的关系,由属于R1同时不属于R2的元组组成。nR和Sn具有相同的目nn相应的属性取自同一个域nR - S n仍为n目关系,由属于R而不属于S的所有元组组成 R -S = t|tRtS 742.4.1传统的集合运算ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1ABCa1b2c2a1b3c2a2b2c1RSR-S 752.4.1传统的集合运算R1张张640王王622李李587 R2赵赵452李李587R2张张640
29、王王622李李587赵赵452R1R1R2李李587R1 - R2张张640王王622762.4.1传统的集合运算笛卡尔积笛卡尔积nRnn目关系,k1个元组nSnm目关系,k2个元组nRS n列:(n+m)列的元组的集合n元组的前n列是关系R的一个元组n后m列是关系S的一个元组n行:k1k2个元组nRS = tr ts |tr R tsS 772.4.1传统的集合运算ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b1c1a1b1c1a1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR S ABCa1b2c2a
30、1b3c2a2b2c1a1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1782.4关系代数2.4.1传统的集合运算 2.4.2专门的关系运算2.4.3 关系代数运算表示方法 792.4.2专门的关系运算 1选择:选择:n从关系中找出满足给定条件的诸元组称为选择,是原关系的子集,它是水平抽取二维表中满足条件的行n 选择运算是从行的角度进行的运算 n例:从图书中找出书名是“数据库导论”的书目802.4.2专门的关系运算2投影运算:投影运算:n从关系模式中挑选若干属性组成新的关系称为投影,直观上是垂直抽取二维表。n投影操作主要是从列的角度进行运算例:原关系(工号,姓名,性别,生
31、日,工资,部门) 投影(工号,姓名,工资)812.4.2专门的关系运算3连接运算连接运算:n上两个运算是单目运算,操作对象只是一个关系n联接运算是二目运算,需要两个关系作为操作对象n从两个关系的笛卡尔积中选取属性间满足一定条件的元组822.4.2专门的关系运算 ABRS832.4.2专门的关系运算n联接是将两个关系模式的属性名拼接成一个更宽的关系模式,生成的新关系中包括满足联接条件的元组,运算过程是通过联接条件来控制的,联接条件中将出现不同关系中的公共属性名,或者具有相同含义,可比的属性。n联接是对象关系的结合。842.4.2专门的关系运算例:现有二关系:定单 (定单号,货号,定货单位,售价,
32、订购量,送货地点)库存(货号,品名,库存量,仓库地点,单价)1)查看库存量大于订购量的商品详情2)查看库存地点是和运货地点同在一个城市的详情。852.4.2专门的关系运算解:联接结果:(定单号,货号,定货单位,售价,订购量,送货地点,品名,库存量,仓库地点,单价) JOIN AND WHERE JOIN 定单 AND 库存 WHERE 定单(货号)=库存(货号) AND 库存量=订购量或:select * from 定单,库存 where 定单.货号=库存.货号 AND 库存量=定购量862.4.2专门的关系运算n联接运算比较费时间,尤其是在包括许多元组的关系之间联接更是如此。 n设关系R和S
33、分别有m 和n元组,R 与S 的联接过程要访问m*n个元组:n先从R关系中的第一个元组开始,依次与S关系的各元组比较,符合条件的两元组首尾相连纳入新关系,一轮共进行n次比较;n再用R 关系的第二个元组对S关系的各元组扫描,共需进行m轮扫描。n若m=500,n=50,则R,S联接要进行25000次存取n所以查询是要考虑优化,若有可能,先进行选择运算,能先投影则先投影.872.4.2专门的关系运算n两类常用连接运算n等值连接(equijoin):连接条件为“”n自然连接:是一种特殊的等值连接n两个关系中进行比较的分量必须是相同的属性组n在结果中把重复的属性列去掉882.4关系代数2.4.1传统的集
34、合运算 2.4.2专门的关系运算2.4.3 关系代数运算表示方法 892.4.3 关系代数运算表示方法 集合运算符-并差交广义笛卡尔积比较运算符 大于大于等于小于小于等于等于不等于运算符含义运算符含义902.4.3 关系代数运算表示方法专门的关系运算符 选择投影连接除逻辑运算符 非与或运算符含义运算符含义912.4.3 关系代数运算表示方法表示记号(1) R,tR,tAi 设关系模式为R(A1,A2,An)它的一个关系设为R。tR表示t是R的一个元组tAi则表示元组t中相应于属性Ai的一个分量922.4.3 关系代数运算表示方法(2)A,tA, A 若A=Ai1,Ai2,Aik,其中Ai1,A
35、i2,Aik是A1,A2,An中的一部分,则A称为属性列或域列。tA=(tAi1,tAi2,tAik)表示元组t在属性列A上诸分量的集合。A则表示A1,A2,An中去掉Ai1,Ai2,Aik后剩余的属性组。932.4.3 关系代数运算表示方法(3) tr ts R为n目关系,S为m目关系。tr R,tsS, tr ts称为元组的连接。它是一个n + m列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。 942.4.3 关系代数运算表示方法n典型关系代数语言nISBL(Information System Base Language)n由IBM United Kingdom研
36、究中心研制n用于PRTV(Peterlee Relational Test Vehicle)实验系统 95第二章关系数据模型 n2.1非关系模型 n2.2关系数据模型 n2.3关系的完整性 n2.4关系代数 n2.5关系演算 n2.6 关系数据库管理系统 n2.7 例子:建立关系模式 962.5 关系演算n以数理逻辑中的谓词演算为基础的。n按谓词变元的不同,关系演算可分为n元组关系演算:以元组变量作为谓词变元的基本对象n域关系演算:以域变量作为谓词变元的基本对象972.5关系演算2.5.1 元组关系演算语言ALPHA2.5.2 域关系演算语言QBE982.5.1 元组关系演算语言ALPHAn语
37、句检索语句nGET更新语句nPUT,HOLD,UPDATE,DELETE,DROPn语句格式: GET工作空间名 (定额)(表达式1) :操作条件 DOWN/UP 表达式2992.5.1 元组关系演算语言ALPHA例1 查询所有被选修的课程号码。 GET W (SC.Cno) 例2 查询所有学生的数据。 GET W (Student)例3 查询信息系(IS)中年龄小于20岁的学生的学号和年龄。 GET W (Student.Sno,Student.Sage): Student.Sdept=IS Student.Sage 60) AND (dbo.sc.grade A) 和 (fname 指定数
38、据列的附加搜索条件表达式,并用逻辑 OR 链接到先前的表达式。可以在最右边的或?/B列中按列中按 TAB 键,以键,以添加更多的添加更多的或或?/B网格列。网格列。 116第二章关系数据模型 n2.1非关系模型 n2.2关系数据模型 n2.3关系的完整性 n2.4关系代数 n2.5关系演算 n2.6 关系数据库管理系统 n2.7 例子:建立关系模式 1172.6 关系数据库管理系统n关系数据库系统是支持关系模型的数据库系统n关系数据库中,关系模式是型,关系是值n关系数据库的型也称关系数据库模式,是对关系数据库的描述n关系数据库的值是关系模型在某一时刻对应的关系的集合,通常就称为关系数据库118
39、2.6 关系数据库管理系统 当且仅当它支持:从用户角度,库由表组成,且只有表这种结构支持选择、投影、联接运算,对这些运算不要求用户定义任何物理存储路径。119第二章关系数据模型 n2.1非关系模型 n2.2关系数据模型 n2.3关系的完整性 n2.4关系代数 n2.5关系演算 n2.6 关系数据库管理系统 n2.7 例子:建立关系模式 1202.7 例子:建立关系模式n271 模式 n272 创建表 n273 表示关系 121271 模式 HighLine大学是一个中西部的小型的自由艺术大学,学生活动部发起内部的体育联盟,但是它在跟踪各个不同队的队长租借的体育设备时,遇到了问题。 需求: 1.
40、记录体育设备; 2.记录各队队长; 3.记录租借情况; 122271 模式1.表captain(captainName , phone , street , city , state,zip)item(itemName , quantity , Date_out , Date_in)问题问题:captainName,itemName不唯一解决:增加字段,captain_ID , item_ID captain(captain_ID , captainName , phone , street , city , state , zip)item(item_ID , itemName , quan
41、tity , Date_out , Date_in) 123271 模式 2.表联系n含义上: captain一行对应item多行(1:N);item一行对应且只对应captain一行(1:1)n 二者目前未关联上,无法说明谁借的足球,应在item表中加字段captain-ID:captain(captain_ID , captainName , phone , street , city , state , zip) 被参照item(item_ID , itemName , quantity , Date_out , Date_in ,captain_ID)参照 124271 模式 3.域(
42、简化)n 域是“列”可能拥有的值的集合。ncaptain_ID:字符(4)关键字ncaptainName:字符(20)nitem_ID:字符(4)关键字nitemName:字符(25)nquantity:数字nDate_out , Date_in:日期125271 模式 4.商业规则n数据库模式的最后一个要素是商业规则,它是对需要反映在数据库和数据库应用中的事物活动的约束。如:1) 要想借任何设备,队长必须有本地电话号码;2) 任何队长不能一次租借7个以上英式足球 3) 126272 创建表 同第一章127273 建表间联系 n在使用ACCESS时,若库中模型有多个表,并想使用QBE作查询,则
43、建立表后,应马上建立表间关系。以使DBMS维护参照完整性。128273 建表间联系1.进入ACCESS设定表关系(工具关系)如果初始时未显示“显示表”界面,则单击鼠标右键,选中显示表即可。129273 建表间联系2.添加要联系的表3.将有联系的域名从“1”拖到“N”处,弹出编辑关系框130273 建表间联系4.选择实施参照完整性及相应特性,按创建钮后,二域间出现连线。131273 建表间联系5.修改联系特性:双击连线,即弹出编辑关系框;6.删除联系:在连线上单击鼠标右键,选中删除即可。7.此例中建立二表中captain_ID联系,精品课件精品课件!精品课件精品课件!134274 查询1.查询队长“王五”所借设备名称、日期;2.查询是否有1999年9月1日前借出而至今未还的设备,如果有,显示该队长的姓名、电话、租借设备的数量及名称。3.输入一个captain表中没有的captain-ID,看看DBMS如何维护参照完整性。4.更改或删除一个captain-ID,看看DBMS如何维护参照完整性。5.不建表间联系,做1、2查询,看看结果如何。