分享
 
 
 

关系模型

王朝百科·作者佚名  2009-11-23
窄屏简体版  字體: |||超大  

关系模型:用二维表的形式表示实体和实体间联系的数据模型

网状数据库和层次数据库已经很好地解决了数据的集中和共享问题,但是在数据独立性和抽象级别上仍有很大欠缺。用户在对这两种数据库进行存取时,仍然需要明确数据的存储结构,指出存取路径。而后来出现的关系数据库较好地解决了这些问题。关系数据库理论出现于60年代末到70年代初。1970年,IBM的研究员E.F.Codd博士发表《大型共享数据银行的关系模型》一文提出了关系模型的概念。后来Codd又陆续发表多篇文章,奠定了关系数据库的基础。关系模型有严格的数学基础,抽象级别比较高,而且简单清晰,便于理解和使用。但是当时也有人认为关系模型是理想化的数据模型,用来实现DBMS是不现实的,尤其担心关系数据库的性能难以接受,更有人视其为当时正在进行中的网状数据库规范化工作的严重威胁。为了促进对问题的理解,1974年ACM牵头组织了一次研讨会,会上开展了一场分别以Codd和Bachman为首的支持和反对关系数据库两派之间的辩论。这次著名的辩论推动了关系数据库的发展,使其最终成为现代数据库产品的主流。

关系数据模型提供了关系操作的特点和功能要求,但不对DBMS的语言给出具体的语法要求。对关系数据库的操作是高度非过程化的,用户不需要指出特殊的存取路径,路径的选择由DBMS的优化机制来完成。Codd在70年代初期的论文论述了范式理论和衡量关系系统的12条标准,用数学理论奠定了关系数据库的基础。Codd博士也以其对关系数据库的卓越贡献获得了1983年ACM图灵奖。

关系数据模型是以集合论中的关系概念为基础发展起来的。关系模型中无论是实体还是实体间的联系均由单一的结构类型——关系来表示。在实际的关系数据库中的关系也称表。一个关系数据库就是由若干个表组成。

关系模式是对关系的描述。

关系实际上就是关系模式在某一时刻的状态或内容。也就是说,关系模式是型,关系是它的值。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。但在实际当中,常常把关系模式和关系统称为关系,读者可以从上下文中加以区别。关系模式可以形式化地表示为:

R(U,D,dom,F)

R 关系名,U 组成该关系的属性名集合,D 属性组U中属性所来自的域,dom 属性向域的映象集合,F 属性间的数据依赖关系集合。例如:导师和研究生出自同一个域——人,取不同的属性名,并在模式中定义属性向域的映象,即说明它们分别出自哪个域:

dom(SUPERVISOR-PERSON)= dom(POSTGRADUATE-PERSON)=PERSON

关系模式通常可以简记为:

R (U) 或 R (A1,A2,…,An)

R 关系名,A1,A2,…,An 属性名,注:域名及属性向域的映象常常直接说明为属性的类型、长度。

关系数据库系统是支持关系模型的数据库系统。

关系模型所具有的特点是:概念单一、规范化、以二维表格表示。

关系模型的组成:

1. 关系数据结构

单一的数据结构——关系

现实世界的实体以及实体间的各种联系均用关系来表示,从用户角度看,关系模型中数据的逻辑结构是一张二维表。

2. 关系操作集合

常用的关系操作包括查询操作和插入、删除、修改操作两大部分。其中查询操作的表达能力最重要,包括:选择、投影、连接、除、并、交、差等。

关系模型中的关系操作能力早期通常是用代数方法或逻辑方法来表示,分别称为关系代数和关系演算。关系代数是用对关系的代数运算来表达查询要求的方式;关系演算是用谓词来表达查询要求的方式。另外还有一种介于关系代数和关系演算的语言称位结构化查询语言,简称SQL。

3. 关系的三类完整性约束

这3类完整性约束包括:实体完整性、参照完整性和用户定义的完整性。

实体完整性(Entity Integrity)规则:若属性A是基本关系R的主属性,则属性A不能取空值。例如:在课程表(课程号,课程名,教师,周课时数,备注)中,“课程号”属性为主键,则“课程号”不能取相同的值,也不能取空值。

参照完整性规则:若属性(或属性组)F是基本关系R的外键,它与基本关系S的主键Ks相对应(关系R和S不一定是不同的关系),则对于关系R中每个元组在关系F上的值必须为:

1.或者取空值(F中的每个属性值均为空);

2.或者等于S中某个元组的主键值。

例如:职工(职工号,姓名,性别,部门号,上司,工资,佣金)

部门(部门号,名称,地点)

其中职工号是“职工”关系的主其中职工号是职工关系的主键,部门号是外键,而“部门”关系中部门号是主键,则职工关系中的每个元组的部门号属性只能取下面两类值:

第1类:空值,表示尚未给该职工分配部门;

第2类:非空值,但该值必须是部门关系中某个元组的部门号值,表示该职工不可能分配到一个不存在的部门中,即被参照关系“部门”中一定存在一个元组,它的主键值等于该参照关系“职工”中的外键值。

实体完整性和参照完整性是关系模型中必须满足的完整性约束条件,只要是关系数据库系统就应该支持实体完整性和参照完整性。除此之外,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件,用户定义的完整性就是对某些具体关系数据库的约束条件。例如:选课表(课程号,学好,成绩),在定义关系选课表时,我们可以对成绩这个属性定义必须大于等于0的约束。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有