21关系模型及形式化描述
数据库复习纲要(第二章)

第二章1、关系的性质,关系模式的形式化表示、各参数的含义。
答:关系数据库中的关系必须具有下列一些性质。
(1)任意两个元组(两行)不能完全相同;(2)关系中元组(行)的次序是不重要的,即行的次序可以任意交换。
(3)关系属性(列)的次序也是不重要的,即列的次序可以任意交换。
(4)同一列中的分量必须来自同一个域,是同一类型的数据;(5)属性必须有不同的名称,但不同的属性可出自相同的域,即它们的分量可以取值于同一个域。
(6)每一分量必须取原子值,即每一个分量都必须是不可再分的数据项。
关系模式的形式化表示:关系的描述称为关系模式(Relation Schema)。
它的形式化表示为:R( U, D, DOM, F)其中,R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,DOM为属性向域的映象集合,F为属性间数据的依赖关系集合。
2、关系数据语言的特点及分类。
答:关系数据语言可以分为三类:○1关系代数语言,如ISBL元组关系演算语言,如ALPHA、QUEL○2关系演算语言域关系演算语言如 QBE○3具有关系代数和关系演算双重特点的语言,如 SQL这些关系数据语言的共同特点是,语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。
3、完整性约束的分类,3类完整性规则的含义。
答:关系模型中有3类完整性约束:实体完整性、参照完整性和用户定义的完整性。
为了维护数据库中数据的完整性,在对关系数据库执行插入、删除和修改操作时,必须遵循下述3类完整性原则。
(1)实体完整性规则:关系中的元组在主属性上不能有空值。
(2)参照完整性规则:外键的值不允许参照不存在的相应表的主键的值。
(3)用户定义的完整性规则:用户定义的完整性规则是用户根据具体应用语义要求,利用DBMS提供的定义的完整性规则的机制,用户自己定义的完整性规则。
4、关系代数中传统的集合运算有哪些,专门的关系运算有哪些。
答:关系代数中传统的集合运算有:并、差、交、笛卡尔积4种运算○1并(Union):设有同类关系R和S,则它们的并记为R∪S,仍然是R和S的同类关系,由属于R或属于S的元组组成,但必须除去重复的元组R∪S={t∣t∈R∨t∈S},其中t为元组。
关系模型

n
M=
mi
i 1
例如:上述表示教师关系中姓名、性别两个域的笛卡尔积为:
D1×D2={(李力,男),(李力,女),(王平,男), (王平,女),(刘伟,男),(刘伟,女)}
其中:
李力、王平、刘伟、男、女都是分量
(李力,男),(李力,女)等是元组
其基数M=m1×m2=3*2=6 元组的个数为6
例如:“学生关系”中的每个学生的学号是唯一的,“选课关 系”中“学号+课程号” 的组合也是唯一的。对于属性集“学 号+课程号” 去掉任一属性,都无法唯一标识选课记录。
返回
21
如果一个关系中有多个候选键,可以从中选择一个作 为查询、插入或删除元组的操作变量,被选用的候选 键称为主关系键(Primary Key),或简称为主键、主码、 关系键、关键字。
如表2.3所示:
姓名
性别
张雪
女
张兰
女
T1和T2是同类关系。
返回
13
4. 数学上关系是笛卡尔积的任意子集,但在实际应用中 关系是笛卡尔积中所取的有意义的子集。例如在表2.1 中选取一个子集构成如下关系,显然不符合实际情况
姓名 李力 李力
性别 男 女
在关系模型中,关系可进一步定义为:
定义在域D1,D2,……Dn(不要求完全相异)上的关系由 关系头(Heading)和关系体(Body)组成。
由定义可以看出,笛卡尔积也是一个集合。
其中:
1. 元素中的每一个 di叫做一个分量 (Component), 来自相应的域 (di∈Di)
2. 每一个元素(d1,d2,d3,…,dn)叫做一个n元组(n-tuple), 简称元组(Tuple)。但元组不是di的集合,元组的每个分量(di) 是按序排列的。如:
管理信息系统-第2章..

第一篇
2.1
信息技术基础设施
1989年,McKay和Brockway首次正式通过一个三层模 型给出了构成信息技术基础设施的各种元素,如图2-1所示。 在这个模型中,第一层被称为共享信息技术服务。第二层是由 人力信息技术组成,其中包括IT知识、IT技术、相关政策、标 准以及共享信息技术服务所需的构建技术组件的经验。最底层 是信息技术的组件层,主要是指一些诸如电脑、交换机、数据 库和操作系统之类的IT产品。
第一篇
2.5
数据管理技术
2.5.1 数据管理技术概述 数据管理(Data Management)是利用计算机技术对数据进 行有效的收集、存储、处理和应用的过程,目标是充分有效地发挥 数据的作用。实现数据有效管理的关键是数据组织。随着计算机技 术的发展,数据管理经历了人工管理、文件系统、数据库系统三个 发展阶段。 传统的文件管理技术环境(包括:人工管理阶段、文件系统阶 段),难以让组织跟踪那些按系统化方式使用的碎片数据,并且很 难将它们组织起来以便简易地导入。不同职能领域和群体被允许开 发自己独立的文件。随着时间的推移,这个传统的文件管理技术环 境产生了许多问题,主要包括:数据冗余和不一致、数据和应用程 序相互依赖、缺乏灵活性、 安全性低、缺乏数据共享性和可用性等 问题。 数据库系统依靠DBMS软件解决了这些问题。这些DBMS软件允 许集中的数据和数据管理,使企业所需要的数据有单一相同的资源。 使用数据库管理系统可以最小化冗余和不一致的文件。
db部分题库14

一、名词解释1、数据库2、DBMS3、数据库系统4、码5、关系模式6、模式7、外模式8、内模式9、主属性 10、非主属性 11、实体完整性12、参照完整性 13、外码 14、SQL 15、索引 16、行列子集视图17、1NF 18、规范化 19、2NF 20、3NF 21、视图 22、视图消解三、简答1. 简述数据库管理系统的功能。
2. 简述关系模型的优缺点。
3.试述数据模型的概念、数据模型的作用和数据模型的3个要素?4.什么叫数据与程序的物理独立性?什么叫数据与程序的独立逻辑性?为什么数据库系统具有数据与程序的独立性?5.试述数据库系统三级模式结构,这种结构的优点是什么?6. 关系模式是对关系的描述,它可以形式化的表示为R(U,D,DOM,F),试述各部分的含义。
7. 什么是基本表?什么是视图?两者的区别与联系是什么?8. 数据库的完整性概念与数据库的安全性概念有什么区别和联系?9. 试述数据库设计过程各个阶段上的设计描述。
10.试述事务的概念及事务的4个特性。
11.什么是日志文件?为什么要设立日志文件?12. 并发操作可能会产生哪几类数据不一致?用什么方法能避免各种不一致的情况?13. SQL的特点。
五、数据库设计要求:(1)画出表达此问题的ER图。
(2)请把上述ER图转换为关系模型,要求在关系模式中注明主码和外码(分别用和表示)。
(3)根据设计好的关系模式,用SQL语言定义相应的关系表(任选三个关系模式即可,要体现出各关系表的主码、属性类型及外码(若有))1.职工科研管理系统情况如下:部门:包括部门号,部门名,办公室。
每个部门有多名职工。
职工:包括职工号,姓名,性别,年龄,职称,专业。
项目:包括项目编号,项目名称,项目经费,项目来源,负责人。
每名职工可参加多个项目,每个项目可有多名职工参加。
2.设有一局部应用,包括3个实体“科室”,“医生”,“病人”,且有以下事实:每位医生属于且仅属于一个科室;每个科室可以聘用若干医生,对每个医生聘用时存有聘用期限和聘用日期;一个病人可以由不同的医生为其诊断,每个医生可以为若干病人诊治,每次诊断存有就诊日期。
第2章 关系数据库数学模型

关系——二维表(行列),实体及其联系 都用关系表示。在用户看来关系数据的逻辑模 型就是一张二维表。
关系数据模型概述(续I)
关系操作 查询: 1)选择Select; 4)除Divide; Intersection; 编辑: 1)增加Insert; Update;
2)投影Project; 3)连接Join; 5)并Union; 6)交 7)差Difference;
三元关系的转换 一般要引入分离关系 如公司、产品和国家之间的m:n:p的三元关系及销 售联系。
关系代数
关系代数概述 关系代数的运算符 集合运算符
并U 交∩ 差 专门的关系运算符
笛卡尔积 × 选择σ 投影π 连接 除 算术比较符
> ≥ < ≤ = ≠ 逻辑运算符
EER模型到关系模式的转换(续IV)
为此,本例中引入一个分离关系On_Load(借 出的书),可以避免空值的出现。 这样,存在以下三个关系模式: Borrower(B#,Name,Address,……) Book(ISBN,Title,……) On_Load(ISBN,B#,Date1,Date2) 只有借出的书才会出现在关系On_Load中, 避免空值 的出现,并把属性Date1和Date2加到 关系On_Load中。
D1 x D2 x…x Dn={(d1,d2,…,dn) | di∈Di, i=1,2,…,n} (d1,d2,…,dn) --------n元组(n-tuple) di--------元组的每一分量(Component) Di为有限集时,其基数为mi,则卡积的基 数为M=m1*m2*…*mn
关系数据库
21723读书笔记关系模式的基本概念

21723读书笔记关系模式的基本概念21/7/23 读书笔记⽬录数据挖掘导论关系模型的基本概念关系模型的数据结构——关系模型⼀般由数据结构、操作集合和约束性条件构成。
关系,就是关系模型的数据结构。
关系是动态的,我们认为在关系数据库系统中关系就是数据,因此数据更新时发⽣改变,关系也会随之改变。
对于关系的形式化定义,基于以下概念:域:⼀组数据类型相同的值的集合,⽐如所有正整数、{东,南,西,北}等。
笛卡尔积:⼀组域之间构成的完全的笛卡尔积。
笛卡尔积可以以每个域为列、每种组合情况为⾏,构成⼀张表。
元组:每种组合情况对应⼀个元组,⼜可称为⼀条记录关系:笛卡尔积的⼀个⼦集,其关联的域的数量称为关系的⽬或度。
关系可以表⽰为⼀张表。
在笛卡尔积基础上的限定与扩充:笛卡尔积中,⼀个元组中域具有先后次序;关系中,列的次序可以任意交换,⾏的顺序也可以任意交换;笛卡尔积中,每个元组中的元素还可以是⼀个集合;关系中,限定元组中的任⼀个元素必须是原⼦化的,不可再分(表中不能有表)属性:由于域可以相同,我们对每个列对应称为属性,不同列之间即使对应的域相同,但是属性不同。
关系的⼀个域可以对应多种属性,每种属性只能属于⼀个域。
候选码:关系中的某个属性的值能唯⼀标识⼀个元组,符合这个要求的属性的集合构成候选码主码:从候选码中选出⼀个属性作为主码主属性:候选码中所有的属性都称为主属性关系模式:关系所关联的属性集合,以及属性与域之间的对应关系,构成⼀个关系模式。
关系模式是静态的,其在数据库进⾏更新的过程中保持不变。
关系数据库系统是⽀持关系模型的数据库系统。
关系数据库系统与关系模式是两个层次的概念,他们都由型与值两⽅⾯组成。
型是静态的、稳定的,值是在数据库更新过程中不断改变的。
关系数据库的型 = 关系数据库模式 = 对若⼲域的定义 + 对这些域上的关系模式的定义关系数据库的值 = 若⼲关系模式在特定时刻对应关系的集合 = 若⼲关系模式的值的集合关系模式的型 = 属性的集合 + 属性与域之间映像的集合关系模式的值 = 关系 = 特定时刻内该关系模式描述下的取值注意涉及的关系模式和关系都可能被称为关系,需要我们根据上下⽂加以区分。
第十章.形式化描述

• 图10-6
10.3 行为描述
• 代数方法适合于描述操作独立于对象状态 的接口 • 假如某个操作的结果依赖于先前操作的结 果,结果将非常复杂, • 因此在行为描述的采用基于模型的方法 • 常见的方法有VDM方法,B方法,Z方法
• 软件的形式化描述 • 使用一种规范语言,其词汇,语法和语义 都是有严格定义的
• • • • • 1.非形式化方法的缺点 矛盾,指一组相互冲突的陈述。 二义性,指读者可以用不同方式理解的陈述。 含糊性,几乎不可避免地会出现含糊性。 不完整性,不完整性可能是在系统规格说明 中最 常遇到的问题之一。 • 抽象层次混乱, 指在非常抽象的陈述中混进 了一 些关于细节
• 2.形式化的优点 • (1)有能力在需求系统需求中揭示问题和暴露
图10-5 代数描述的结构
描述体的四个组成部分
• 介绍 ——用来声明被定义的尸体种类(类型名) • 描述部分——用于对操作的非形式化描述 • 标记部分——定义对象类或抽象数据类型的接口 语法 • 公理部分——通过一组刻画抽象数据类型的行为 特征的公理来定义操作的定义。
子系统接口的形式化描述的开发过 程的各项活动
问题二义性 • (2)数学能够简洁准确地描述物理现象、对象或 动作的结果,因此是理想的建模工具。 • (3)可以在不同的软件工程活动之间平滑地过渡。 • (4)它提供了高层确认的手段,可以使用数学的 方法证明,设计符合规格说明,程序代码正确地 实现了设计结果
关系模型【数据库概论】

关系模型【数据库概论】(⼀) 关系模型知识引⼊开局⼀张图,知识全靠爆~DBMS 采⽤某种数据模型进⾏建模,提供了在计算机中表⽰数据的⽅式,其包括,数据结构、数据操作、数据完整性三部分。
在关系模型中,通过关系表⽰实体与实体之间的联系,然后基于关系数据集合进⾏数据的查询、更新以及控制等操作同时对数据的更新操作进⾏实体完整性、参照完整性、⽤户⾃定义完整性约束。
⽽在前期,通过关系代数和逻辑⽅式(关系演算)表⽰对关系操作的能⼒,⽽后出现了 SQL 语⾔,其吸纳了关系代数的概念,和关系演算的逻辑思想虽然进⾏了⼀定的解释,但是光看图上的这些名词,还是很懵,没关系,下⾯我们就按照图⽚上的标号,针对关系数据模型进⾏讲解多说⼀句:关系模型⾮常重要,是现在主流的⼀种数据模型,同样 SQL 也⾮常流⾏,现在⼤部分数据库都是⽀持 SQL 的,这也正是我们要针对此部分重点学⼀下的原因(⼆) 关系的数据结构(1) 关系的相关概念A:关系的数学描述关系概念是对事物间数据依赖的⼀种描述,同时集合论提供了关系概念:集合论中的关系本⾝也是⼀个集合,以具有某种联系的对象组合——“序组”为其成员。
关系不是通过描述其内涵来刻画事物间联系的,⽽是通过列举其外延(具有这种联系的对象组合全体)来描述这种联系B:笛卡尔积关系的概念是建⽴在笛卡尔积概念的基础上的,笛卡尔积是定义在给定⼀组域上的有序对的集合,⽽域则是⼀组具有相同数据类型的值的集合,例如⾃然数整数实数,长度⼩于若⼲字节的字符串集合等都可以是域给定⼀组域D1,D2,…,Dn,这n个域的笛卡尔积为:D1×D2×…×Dn={(d1,d2,…,dn)| di∈Di,i=1,2,…,n }每⼀个元素(d1,d2,…,dn)叫作⼀个n元组(n-tuple),或简称为元组(Tuple)元素中的每⼀个di值叫作⼀个分量(Component)若Di (i=1,2,…,n)为有限集,其基数为mi (i=1,2,…,n),则D1×D2×…×Dn的基数M为:nM= ∏ mii=1定义可能有⼀些抽象,引⼊⼀个例⼦看⼀下,会直观⼀些【例】设:D1为学⽣集合= {张⼭,李斯,王武};D2为性别集合= {男,⼥};D3为年龄集合= {19,20}⽤⼆维表的形式表⽰D1×D2×D3,则为下表格,则有12个元组姓名性别年龄张⼭男19张⼭⼥19张⼭男20张⼭⼥20李斯男19李斯⼥19李斯男20李斯⼥20王武男19王武⼥19王武男20王武⼥20姓名性别年龄C:关系的定义根据上⾯的铺垫可以得出:满⾜⼀定语义的D1×D2×…×Dn的⼦集叫作在域D1、D2、…、Dn上的关系定义:R(D1, D2, …, Dn)R:关系的名字n:关系的⽬或度(Degree)(2) 关系模型的相关概念关系的描述称为关系模式:R(U, D, Dom, F)R:关系名U:组成该关系的属性集合D:属性组U中属性所来⾃的域Dom:属性向域的映像的集合F:属性间数据的依赖关系集合A:属性(U)若关系对应⼀个实体,关系的属性就是所要描述的实体对象的属性,即实体所对应的事物对象的特征,例如姓名,性别,年龄在同⼀关系中,属性名不能相同,但不同的属性可以有相同的域。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
D1 D2 ... Dn {(d1 , d2 ,...dn ) | di Di , i 1,2,...n}
(d1,d2,d3,…dn)称为一个元组,di称为一个分量 若Di的基数(值的个数)为Mi,则笛卡尔集的基数M为
本课程的主要内容
1.绪论 2.关系数据库系统 3.SQL语言 4.数据库编程(8) 5.关系查询处理和查 询优化(9) 6.关系数据理论(6) 7.数据库设计 8.数据库恢复技术(10) 9.并发控制(11) 10.数据库安全性(4) 11.数据库完整性(5)
第二章 关系数据库系统
学习要点
更新操作
增加(Insert)、删除(Delete)、修改(Update)
关系完整性约束
实体完整性、参照完整性、用户定义完整性
关系的两个不变性, 由系统自动支持 由应用语 义约束
2.1 关系模型概述
关系模型由以下三部分组成
关系数据结构
关系(一作
选择(Select)、投影(Project)、连接(Join)、除 (Divide)、并(Union)、交(Intersection)、差 (Difference)
SQL
介于关系代数和关系演算之间 集DDL、DML和DCL一身的关系数据语言
关系模型语言
关系代数语言
把关系当作集合,用集合运算和特殊的关系运算来表达查询 要求和条件 是一种抽象的查询语言
关系演算语言
用谓词来表达查询要求和条件 谓词变元的基本对象可以是元组变量或域变量,故可分为 元组关系演算和域关系演算两类 是一种抽象的查询语言
选择(Select)、投影(Project)、连接(Join)、除 (Divide)、并(Union)、交(Intersection)、差 (Difference)
更新操作
增加(Insert)、删除(Delete)、修改(Update)
关系完整性约束
实体完整性、参照完整性、用户定义完整性
关系的两个不变性, 由系统自动支持 由应用语 义约束
2.1 关系模型概述
关系模型由以下三部分组成
关系数据结构
关系(一张二维表)
关系操作:
查询操作
选择(Select)、投影(Project)、连接(Join)、除 (Divide)、并(Union)、交(Intersection)、差 (Difference)
更新操作
增加(Insert)、删除(Delete)、修改(Update)
n
2.2 关系数据结构的形式化定义
关系模型建立在集合代数基础上,从集合论角度讨论 关系的形式化定义 定义1:域(Domain)
一组具有相同数据类型(同质)的值的集合,如整数、实数等。 形式化表示为D
定义2:笛卡尔积(Cartesian Product)
P47
一组域D1,D2,…Dn的笛卡尔积
SQL
介于关系代数和关系演算之间 集DDL、DML和DCL一身的关系数据语言
关系模型语言
关系代数语言
把关系当作集合,用集合运算和特殊的关系运算来表达查 询要求和条件 是一种抽象的查询语言 用谓词来表达查询要求和条件 谓词变元的基本对象可以是元组变量或域变量,故可分为 元组关系演算和域关系演算两类 是一种抽象的查询语言 介于关系代数和关系演算之间 集DDL、DML和DCL一身的关系数据语言
更新操作
关系完整性约束
实体完整性、参照完整性、用户定义完整性
关系的两个不变性, 由系统自动支持 由应用语 义约束
2.1 关系模型概述
关系模型由以下三部分组成
关系数据结构
关系(一张二维表)
关系操作:
查询操作
选择(Select)、投影(Project)、连接(Join)、除 (Divide)、并(Union)、交(Intersection)、差 (Difference)
SQL
介于关系代数和关系演算之间 集DDL、DML和DCL一身的关系数据语言
关系模型语言
关系代数语言
把关系当作集合,用集合运算和特殊的关系运算来表达查询 要求和条件 是一种抽象的查询语言
关系演算语言
用谓词来表达查询要求和条件 谓词变元的基本对象可以是元组变量或域变量,故可分为元 组关系演算和域关系演算两类 是一种抽象的查询语言
更新操作
增加(Insert)、删除(Delete)、修改(Update)
关系完整性约束
实体完整性、参照完整性、用户定义完整性
关系的两个不变性, 由系统自动支持 由应用语 义约束
2.1 关系模型概述
关系模型由以下三部分组成
关系数据结构
关系(一张二维表)
关系操作:
查询操作
选择(Select)、投影(Project)、连接(Join)、除 (Divide)、并(Union)、交(Intersection)、差 (Difference)
更新操作
增加(Insert)、删除(Delete)、修改(Update)
关系完整性约束
实体完整性、参照完整性、用户定义完整性
关系的两个不变性, 由系统自动支持 由应用语 义约束
2.1 关系模型概述
关系模型由以下三部分组成
关系数据结构
关系(一张二维表)
关系操作:
查询操作
选择(Select)、投影(Project)、连接(Join)、除 (Divide)、并(Union)、交(Intersection)、差 (Difference)
更新操作
增加(Insert)、删除(Delete)、修改(Update)
关系完整性约束
实体完整性、参照完整性、用户定义完整性
关系的两个不变性, 由系统自动支持 由应用语 义约束
2.1 关系模型概述
关系模型由以下三部分组成
关系数据结构
关系(一张二维表)
关系操作:
查询操作
选择(Select)、投影(Project)、连接(Join)、除 (Divide)、并(Union)、交(Intersection)、差 (Difference)
一组域D1,D2,…Dn的笛卡尔积
D1 D2 ... Dn {(d1 , d2 ,...dn ) | di Di , i 1,2,...n}
(d1,d2,d3,…dn)称为一个元组,di称为一个分量 若Di的基数(值的个数)为Mi,则笛卡尔集的基数M为
M mi
i 1
关系模型 关系数据结构的形式化定义 关系完整性 关系代数 关系演算
序言
值得记住的
1970年,E.F.Codd提出关系数据库理论基 础 关系数据库试验系统System R, INGRES 目前流行的RDBMS
DB2, Oracle, Ingres, Sybase, Informix等
2.1 关系模型概述
关系模型由以下三部分组成
关系数据结构
关系(一张二维表)
关系操作:
查询操作
选择(Select)、投影(Project)、连接(Join)、除 (Divide)、并(Union)、交(Intersection)、差 (Difference)
更新操作
增加(Insert)、删除(Delete)、修改(Update)
例如ISBL 例如APLHA, QUEL 例如QBE
具有关系代数和关系演算双重特点的语言 例如SQL
关系模型语言
关系代数语言
把关系当作集合,用集合运算和特殊的关系运算来表达查询 要求和条件 是一种抽象的查询语言
关系演算语言
用谓词来表达查询要求和条件 谓词变元的基本对象可以是元组变量或域变量,故可分为元 组关系演算和域关系演算两类 是一种抽象的查询语言
更新操作
增加(Insert)、删除(Delete)、修改(Update)
关系完整性约束
实体完整性、参照完整性、用户定义完整性
关系的两个不变性, 由系统自动支持 由应用语 义约束
2.1 关系模型概述
关系模型由以下三部分组成
关系数据结构
关系(一张二维表)
关系操作:
查询操作
选择(Select)、投影(Project)、连接(Join)、除 (Divide)、并(Union)、交(Intersection)、差 (Difference)
更新操作
增加(Insert)、删除(Delete)、修改(Update)
关系完整性约束
实体完整性、参照完整性、用户定义完整性
关系的两个不变性, 由系统自动支持 由应用语 义约束
2.1 关系模型概述
关系模型由以下三部分组成
关系数据结构
关系(一张二维表) 查询操作
关系操作:
选择(Select)、投影(Project)、连接(Join)、除 (Divide)、并(Union)、交(Intersection)、差 (Difference) 增加(Insert)、删除(Delete)、修改(Update)