《2022年面向房产中介管理系统的分布式数据库设计 .pdf》由会员分享,可在线阅读,更多相关《2022年面向房产中介管理系统的分布式数据库设计 .pdf(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、北京理工大学分布式数据库课程设计1 分布式数据库课程设计 -面向房产中介的分布式数据库设计院系:计算机学院专业:计算机科学与技术组长:刘梦情 2120101165 组员:丁凯 2120101119 李萌 2120101165 苗春静 2120101165 名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 32 页 -北京理工大学分布式数据库课程设计2 目录1 房产中介管理系统概述.41.1 问题的提出.41.2 开发意图及目标.41.3 系统先进之处.41.4 可行性分析.51.5 开发环境.51.6 设计人员和任务分配.62 需求分析 .72.1 用户业务需求.72.2 系统设计
2、.72.3 系统用例视图.82.2.1 系统角色的确定 .82.2.2 创建用例 .92.2.3 创建角色与用例关系图 .103 分布式数据库设计 .113.1ER图设计 .11 3.2 数据库表及其冗余设计.12 3.2.1 房源表 .133.2.2 找房表 .133.2.3 交易表 .143.2.4 会员信息表 .143.2.5 职工信息表 .153.2.6 门店信息表 .153.3 分片与位置分配设计.16 3.3.1 站点通信模型 .163.3.1 数据表的分配与分片 .184 基于 ORACLE 的分布式数据库实现 .264.1ORACLE分布式数据库结构 .26 4.2数据库链接.
3、26 4.3分布式数据库的管理.26 4.3.1 站点自治 .264.3.2 分布式数据库的安全 .274.4分布式数据库系统的事务处理.27 名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 32 页 -北京理工大学分布式数据库课程设计3 4.4.1 远程 SQL语句.274.4.2 分布式 SQL语句.274.4.3 远程事务和分布式事务 .284.4.4 两阶段提交协议 .284.5分布式数据库系统的应用开发.29 4.5.1 分布式数据库系统中的透明性.294.5.2 远程过程调用(RPC).304.5.3 分布式查询优化 .31名师资料总结-精品资料欢迎下载-名师精心整理
4、-第 3 页,共 32 页 -北京理工大学分布式数据库课程设计4 1 房产中介管理系统概述1.1 问题的提出市场经济离不开中介服务。随着我国房地产业的发展,房地产中介咨询服务机构正在蓬勃发展,房地产开发和市场消费的桥梁纽带作用通过这一中介得以发挥。房地产中介为消费市场提供了房地产评估、经纪、咨询等服务。这对活跃房地产市场,促进房地产业的健康发展,具有现实意义。房产中介平台可以以最小的时间、带宽代价,准确无误地为购房者提供最新的、最完整的房屋信息和快捷便利的租房、购房服务。随着房地产中介公司的发张壮大,尤其是连锁公司(如我爱我家,中天置地)的扩张,使得他们具有地域上分散而管理上又相对集中的特点,
5、往往既要有各门店的局部控制和分散控制,同时也要有整个组织的全局控制和高层次的协同管理。因此在把这些门店和中心通过网络连接起来后,就需要设计一款分布式数据库系统来进行管理。1.2 开发意图及目标(1)开发意图:为房产中介连锁店提高效率、降低成本;实现连锁店管理的优化,简化工作流程,节省人力物力,提高工作效率,极大地满足客户需要;对各环节进行控制分析,实现统一调度。(2)应用目标:满足房产中介的基本管理功能,发挥信息系统的灵活性,减轻企业管理人员和操作人员的工作负担,提高工作效率。(3)作用及范围:本系统是一项功能比较完善的房产中介管理系统,对连锁店运作过程中的后台数据可以随时进行分析,便于企业管
6、理人员的经营、决策。1.3 系统先进之处1)多数处理就地完成。名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 32 页 -北京理工大学分布式数据库课程设计5 2)各地的计算机由数据通信网络相联系。3)克服了中心数据库的弱点:降低了数据传输代价。4)提高了系统的可靠性,局部系统发生故障,其他部分还可继续工作。5)各个数据库的位置是透明的,方便系统的扩充。6)为了协调整个系统的事务活动,事务管理的性能花费高。1.4 可行性分析使用房产中介连锁店管理系统对房产中介连锁店进行信息化管理将直接提高公司管理部门的工作效率。面对一般的公司管理现状,有三种选择:(一)不做任何改变,维持目前的管理
7、模式。(二)购买市场上的商品化软件,提高管理的信息化水平。(三)根据公司的实际情况,自行开发一套信息管理系统。第一种选择显然要排除的,因为公司希望通过建立管理信息系统,使公司的销售管理工作进一步规范化,制度化和程序化,以便及时、准确地把握销售的基本信息,提高领导的决策水平。第二种方案也不可行。首先,在经费方面,公司既要考虑如何高效地管理,又要考虑节省资金。其次,在功能方面,因为各个公司都有自己的管理模式,并不是所有好的商品化软件都能适应公司的管理需要的,现在大部分的商业软件都不适合房产中介公司。最后,在数据共享,可移植性方面,商品化软件数据共享性较差,而且可移植性差,公司的投资得不到保护。所以
8、选择第三种方案是最佳的。除上述原因外,自行开发研究还能提高管理人员的素质,完善计算机等办公设备的性能。1.5 开发环境1)系统开发平台:Myeclipse 7.5,JDK1.6 2)系统开发语言:Java 名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 32 页 -北京理工大学分布式数据库课程设计6 3)数据库系统管理软件:Oracle 10g 4)运行平台:Windows XP 1.6 设计人员和任务分配工作分配设计人员任务分配、组织调度查找、明确房产中介的业务流程、收费制度建立实体-关系模型,E-R 图的绘制系统通信模型的建立,相关图例的绘制六个核心数据库表的设计数据库分配与
9、分片的概要设计,相关图例的绘制房源表的数据表冗余设计交易表的数据表冗余设计刘梦情(组长)系统需求分析房屋中介业务流程分析UML 建模中用例的分析设计、USE CASE 图的绘制系统总体设计(B/S 架构、C/S 架构)Oracle的分布式数据库实现设计文档的最终排版、审阅丁凯职工信息表的数据表冗余设计门店信息表的数据表冗余设计职工信息表的分片与分配门店信息表的分片与分配李萌找房表的数据表冗余设计会员信息表的数据表冗余设计找房表的分片与分配会员信息表的分片与分配苗春静名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 32 页 -北京理工大学分布式数据库课程设计7 2 需求分析2.1
10、用户业务需求1)房产中介连锁公司由一个中心(公司总部),多个远程连锁店(门店)组成,并且每个连锁店分布在不同地域。2)门店之间以及总部和门店之间需要交换数据,这种数据交换是通过局域网和广域网实现进行。3)公司总部负责产生并管理门店的整体汇总数据,即各门店的汇总表数据,如销售汇总表等。4)每一个远程站点(各门店和公司总部)分别有一个数据库系统,各自组成一个独立的子系统,可以分别独立进行本部门业务处理。5)总部出于对外发布房源信息和对各分店进行管理和业务统计的需要,要求各分店将所有房源提交给总部数据库6)有关房主信息、合同信息、销售信息等经营基础数据都是各门店单独管理和使用,门店之间互不相关。7)
11、整个连锁店店的职工信息和客户注册信息由公司总部管理和维护,各个门店能够通过总部查看所有会员信息,在本地查看本门店职工信息。8)客户能够通过信息发布网站查询房源信息,房东能够通过信息发布网站提供房源信息,当门店审核房源真实性后,可通过发布系统发布新的房源信息9)门店应能够以业务单的形式记录和客户和房东签订合同、收取费用的过程,并录入数据库。2.2 系统设计此房产中介管理系统(Estate Agent Management System,EAMS)由两部分内容组成:房产中介信息发布系统(Estate Agent Information System,EAIS)和房产中介销售管理系统(Estate
12、Agent Sale System,EASS)EAIS 采用 B/S 架构,负责发布不同地区的售房、租赁信息、连锁店信息等供客户查询,同时提供录入房源、采集客户意向等功能;EASS 采用 C/S 架构,名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 32 页 -北京理工大学分布式数据库课程设计8 主要提供查询、记录每天的租赁、销售信息,公司总部查询门店业绩等功能。此外,总站数据库和分店数据库相连,定时进行必要的数据同步更新。房产中介管理系统EAMS房产中介营销管理系统EASS房产中介信息发布系统EAIS总站 DB分店 DBB/S架构C/S架构图 2-1 房产中介管理系统总体设计2
13、.3 系统用例视图用例图表示了角色和用例以及它们之间的关系。它描述了系统、子系统和类的一致的功能集合,表现为系统和一个或多个外部交互者(角色)的消息交互动作序列。也就是角色(用户或外部系统)和系统(要设计的系统)为了实现一个目的交互,这个目的的描述通常是一个谓词短语,例如签合同等。2.2.1 系统角色的确定在 UML 中,Actors 代表位于系统之外和系统进行交互的一类对象。用它可以对软件系统与外界发生的交互进行分析和描述。从需求分析归纳出来的主要问题有:1)房主在 EAIS 上登记租房、卖房意向。2)门店联系房东审核信息。名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 32
14、页 -北京理工大学分布式数据库课程设计9 3)门店发布已审核房源信息。4)客户在 EAIS 上浏览房源、门店等信息。5)客户在 EAIS 上登记租房、买房意向。6)门店派遣经纪人联系客户洽谈7)客户和门店或房主签订合同,门店向客户收取费用8)客户和门店撤销合同9)门店向房主收取费用10)门店查询销售记录11)总部汇总门店数据12)用户管理13)系统维护、备份从上面所归纳的问题可以看出,本系统所涉及的操作主要是涉及门店相关信息的管理维护以及各种信息的分析查询,使企业用户能快速地掌握相关数据的情况。在本系统 UML 建模中,可以创建以下角色(Actors):1)系统管理员。2)门店操作员。3)总部
15、操作员。4)房主。5)客户。2.2.2 创建用例用例描述的是对参与者来说有价值的一系列行动而不是特性集,根据业务流程可以分为以下的几个用例(Use Cases)1)系统管理员备份数据库2)系统管理员管理系统日志3)系统管理员管理注册用户4)会员注册5)房主登记租售意向6)门店操作员发布房源信息7)门店操作员修改房源信息名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 32 页 -北京理工大学分布式数据库课程设计10 8)客户浏览房源信息9)客户登记租房、买房意向10)门店操作员登记租售业务信息11)门店操作员向客户收取费用12)门店操作员向房主收取费用13)门店操作员查询业务记录1
16、4)总部操作员查询门店业绩15)总部操作员查询所有门店信息16)门店操作员查询本门店信息2.2.3 创建角色与用例关系图图 2-2 用例关系图如图 2-2 所示,客户通过 EAIS 获取房源、门店信息,登记租房买房意向;房主通过 EAIS 登记租售意向;门店通过EAIS 发布房源信息;门店通过EASS系统同客户和房主进行业务交易,总部通过EASS 系统获取各个门店的销售业绩,查询相关信息。名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 32 页 -北京理工大学分布式数据库课程设计11 3 分布式数据库设计3.1 ER 图设计总部拥有1门店N雇佣1职工N登记1房源N发布房主1N成
17、交N1感兴趣N顾客N签约NN签约NN服务1NN联系1姓名电话物业名称价格面积姓名电话姓名电话所属门店地区店长电话电话管理交易记录1N地址总经理营业额季度门店图 3-1 房产中介业务E-R 图该 E-R 图中的实体有总部、门店、职工、房主、房源、顾客等,关系有发布、成交、雇佣、签约、登记、管理等。该图描述了房产中介公司的业务实体之间的关系,也显示了实体与实体之间的数量关系,比如说房主和房源是一对多的关系,就是说一个房主可以发布多个房源。名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 32 页 -北京理工大学分布式数据库课程设计12 3.2 数据库表及其冗余设计主要分为六张表:房源
18、表、找房表、会员信息表、门店信息表、职工信息表、交易表,其关系如下图所示:图 3-2 房产中介数据库表设计该图显示了符合第三范式的数据库表设计,由图可知,这些表格当中没有任何冗余数据,但是在实际业务中,是需要一定程度的冗余数据的,比如说在查找房源时,顾客不会想知道经纪人的ID,而是希望得到它的姓名和联系方式。以上数据库表的设计虽然在更新数据库表时非常便捷,却同时牺牲了数据库表连接所耗费的代价,所以我们要对数据库表进行改进,增加必要的冗余设计。名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 32 页 -北京理工大学分布式数据库课程设计13 3.2.1 房源表图 3-3 冗余房源表
19、设计在这张冗余房源表中,我们添加了必要的冗余字段,如房主姓名、性别、房主电话、经纪人姓名、经纪人联系电话、门店名称等,这些都可以通过房主ID、经纪人 ID、门店 ID 等外键进行表查询得到。3.2.2 找房表图 3-4 冗余找房表设计名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 32 页 -北京理工大学分布式数据库课程设计14 在这张冗余找房表中,我们添加了必要的冗余字段,如顾客姓名、性别、电话等,这些都可以通过顾主ID 等外键进行表查询得到。3.2.3 交易表图 3-5 冗余交易表设计在这张冗余交易表中,我们添加了必要的冗余字段,如房主姓名、顾客姓名等,这些可以通过房主ID
20、、顾客 ID 等外键与会员信息表连接得到。3.2.4 会员信息表无需冗余设计。名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 32 页 -北京理工大学分布式数据库课程设计15 3.2.5 职工信息表图 3-6 冗余职工信息表设计在这张冗余职工信息表中,我们添加了必要的冗余字段,如所属门店的名称、地址、门店电话等,这些都可以通过门店ID 外键进行表查询得到。3.2.6 门店信息表图 3-7 冗余门店信息表设计在这张冗余门店信息表中,我们添加了必要的冗余字段,如店长姓名、性别、房电话等,这些都可以通过店长ID 外键进行表查询得到。名师资料总结-精品资料欢迎下载-名师精心整理-第 1
21、5 页,共 32 页 -北京理工大学分布式数据库课程设计16 3.3 分片与位置分配设计3.3.1 站点通信模型由于房产中介公司业务的特殊性,每个门店主要负责一定区域范围内的业务。我们这里是这样规定的:房主在任何门店皆可登记房源,该房源根据房屋所在地点,指定相应的房源归属门店。顾客可以在任何门店获得任何地区的房源信息,但是若要获得进一步的服务如看房、联系户主等,必须到达指定门店,由该店经纪人进行进一步的接洽,若交易成功,此单业务算房源所在地门店的业绩。据此我们设计了房产中介公司的通信模型。我们令总站和分店都拥有自己的数据库。如下图所示通信种类分为两种:总店与分店之间的通信、分店与分店之间的通信
22、。通信链路数据库网络分店 1总店分店 2分店N分店N-1.房产中介公司通信模型图 3-8 房产中介公司站点通信模型名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 32 页 -北京理工大学分布式数据库课程设计17 下面我们分 EAIS 和 EASS 两个系统进行讨论。首先是 EAIS,EAIS 是以总店 web 服务器为中心的B/S 架构,负责数据发布和数据调度。使用EAIS 的角色有门店操作员、顾客和房主三种角色,他们都可以使用 EAIS 这个网站发布系统查询房源的概要信息,同时,房主和顾客可以通过客户机先行提交登记房源申请和找房申请。总店会根据申请的地域信息将其分配到相应的门
23、店,由门店负责联系房主或顾客。如下图所示。分店 1.分店 2分店 N总店.客户机 2客户机 1客户机 N顾客/房主门店操作员查询房产中介网站信息1、查询房产中介网站信息2、房主登记房源3、顾客登记找房信息DBEAIS 系统通信模型(B/S架构)图 3-9 EAIS 子系统通信模型然后就是 EASS 系统。这个系统是以应用服务器为中心的C/S 架构,负责数据备份和数据统计。我们将总店与分店之间的通信和分店与分店之间的通信分开进行描述说明。1)总店与分店之间的通信分店需要将新增、更新、撤销过的房源表、找房表、会员信息表、以及交易表,及时与总店进行同步,保证数据的一致性。如下图:名师资料总结-精品资
24、料欢迎下载-名师精心整理-第 17 页,共 32 页 -北京理工大学分布式数据库课程设计18 分店总店分店房源表分店找房表分店交易表发送分店数据库表更新总店数据库分店与总店之间的通信图 3-10(a)总店与分店之间的通信内容2)分店与分店之间的通信。当顾客中意的房源不属于该分店负责区域时,分店需要帮助顾客了解其他门店负责的房源的信息,这时分店之间就产生了异地房源表的查询通信。(此外分店之间应能够查询其他分店信息,我们这里将所有分店信息都冗余分配到每个局部数据库,减少通信费用。)如下图:分店 1分店 2查询分店 2的房源信息查询分店 1的房源信息分店与分店之间的通信图 3-10(b)分店与分店之
25、间的通信内容3.3.1 数据表的分配与分片通过分析各个站点之间的通信模型,我们给出了每个数据表分配与分片的概要与详细。这里我们首先给出概要。对于该应用来说,使用水平分片已经足够,由于每个门店都拥有自己的数据库,我们使用门店ID 字段对上文中设计的数据库表进行分片。接下来我们讨论数据表的分配,重点在于总店和分店都需要哪些数据片段。名师资料总结-精品资料欢迎下载-名师精心整理-第 18 页,共 32 页 -北京理工大学分布式数据库课程设计19 首先,总店数据库不但作为房产中介发布系统的基础,还作为所有分店数据库的备份数据库。这意味着,分店拥有的数据表、数据,总部必须有(这意味着存在冗余分配,总站数
26、据库还要承担统计各分店业绩量、营业额,管理职工的分配、工资等信息,这些不在我们的讨论范围之内)其次,分店数据库只保存与本店相关的数据,即本店负责局域范围内的房源、顾客找房信息、注册会员信息等,不保存其他分店的类似信息,如要查看其他分店的房源信息,则需要与该分店进行通信。最后,门店信息表和会员信息表由于经常需要查询,在每一个分店上分配一个副本(冗余分配)。分片与分配概要如下图所示,每个数据表的“总/分”字样体现了水平分片,数据的传播过程体现了片段的冗余分配。总房源表总找房表总交易表总职工信息表总会员信息表总门店信息表分店房源表分店找房表分店交易表分店职工表总会员信息表总门店信息表各分店汇总各分店
27、汇总各分店汇总分门店同步将更新传播至总店与总店同步与总店同步将更新传播至总店将更新传播至分店总店分店数据表分配概要分店数据库总店数据库图 3-11 数据表分片与分配概要下面是数据表的详细分片与分配,这里我们会将六个表分别说明。3.3.1.1 房源表1)分片方式:水平分片(按分店ID)2)分配方式:冗余分配(每个片段分配至该地区分店及总站)名师资料总结-精品资料欢迎下载-名师精心整理-第 19 页,共 32 页 -北京理工大学分布式数据库课程设计20 总站.昌平分店朝阳分店海淀分店海淀区房源房源表分片与分配朝阳区房源XX 区房源昌平区房源按区域水平分片数据库房源表片段图 3-12 房源表的分片与
28、分配如图所示,房源表经过水平分片后,同一个地区的房源片段被分配到该地区的分店数据库中,该门店处理日常业务只需查询、更新本地数据库,该房源片段同时被冗余分配至总店数据库中。分店数据库会与总店数据库定时同步,对该门店房源信息进行添加、更新或撤销,保证房源发布系统的数据真实可靠。这样,如果本地数据库或是局部数据库的房源表损坏或出现异常,仍然能够通过另一个数据库重新恢复房源表信息。3.3.1.2 找房表1)分片方式:水平分片(按分店负责地区)2)分配方式:冗余分配(每个片段分配至该地区分店及总站)名师资料总结-精品资料欢迎下载-名师精心整理-第 20 页,共 32 页 -北京理工大学分布式数据库课程设
29、计21 总站.昌平分店朝阳分店海淀分店海淀区信息找房表分片与分配朝阳区信息XX 区信息昌平区信息按区域水平分片数据库找房表片段图 3-13 找房表的分片与分配如图所示,找房表经过水平分片后,同一个地区的找房片段被分配到该地区的分店数据库中,该门店处理日常业务只需查询、更新本地数据库,该找房片段同时被冗余分配至总店数据库中。总店数据库会与分店数据库进行定时同步,更新后的房源信息能够及时得到上传或下载。这样,如果本地数据库或是局部数据库的找房表损坏或出现异常,仍然能够通过另一个数据库重新恢复找房表信息。3.3.1.3 交易表1)分片方式:水平分片(按分店ID)2)分配方式:冗余分配(每个片段分配至
30、该地区分店及总站)名师资料总结-精品资料欢迎下载-名师精心整理-第 21 页,共 32 页 -北京理工大学分布式数据库课程设计22 总站.昌平分店朝阳分店海淀分店海淀区交易记录交易表分片与分配朝阳区交易记录XX 区交易记录昌平区交易记录按区域水平分片数据库交易表片段图 3-14 交易表的分片与分配如图所示,交易表经过水平分片后,同一个地区的交易片段被分配到该地区的分店数据库中,该门店处理日常业务只需查询、更新本地数据库,该交易片段同时被冗余分配至总店数据库中。与房源表不同的是,该交易表只上传至总店数据库而不下载。这样,如果本地数据库或是局部数据库的交易表损坏或出现异常,仍然能够通过总店数据库重
31、新恢复交易表信息,总店也能够通过汇总各地区的交易信息来统计其所关心的业绩等信息。3.3.1.4 会员信息表1)分片方式:无分片2)分配方式:冗余分配(分配至总站及各分店)名师资料总结-精品资料欢迎下载-名师精心整理-第 22 页,共 32 页 -北京理工大学分布式数据库课程设计23 总站海淀分店朝阳分店.昌平分店数据库冗余冗余冗余冗余会员信息表分配图 3-15 会员信息表的分配如图所示,该会员信息表被冗余分配至各分店和总店数据库中。总店数据库会与分店数据库进行定时同步,更新后的会员信息能够在本地读取。这样就为频繁的会员信息查询工作提高了效率,此外如果本地数据库或是总站数据库的会员信息表损坏或出
32、现异常,仍然能够通过其他数据库重新恢复门店信息。3.3.1.5 职工信息表1)分片方式:水平分片(按职工所属门店ID)2)分配方式:冗余分配(每个片段分配至该地区分店及总站)名师资料总结-精品资料欢迎下载-名师精心整理-第 23 页,共 32 页 -北京理工大学分布式数据库课程设计24 总站海淀分店朝阳分店.昌平分店海淀区职工朝阳区职工XX区职工昌平区职工职工信息表片段按区域水平分片数据库职工信息表分片与分配图 3-16 职工信息表的分片与分配如图所示,职工信息表经过水平分片后,同一个地区的职工信息片段被分配到该地区的分店数据库中,该门店管理本店的职工只需查询、更新本地数据库,该职工信息片段同
33、时被冗余分配至总店数据库中。总店数据库会与分店数据库进行定时同步,如有职工的变动,更新后的职工信息能够及时得到上传或下载。这样,如果本地数据库或是局部数据库的职工信息表损坏或出现异常,仍然能够通过另一个数据库重新恢复职工信息。3.3.1.6 门店信息表1)分片方式:无分片2)分配方式:冗余分配(分配至总店及各分店)名师资料总结-精品资料欢迎下载-名师精心整理-第 24 页,共 32 页 -北京理工大学分布式数据库课程设计25 总站海淀分店朝阳分店.昌平分店数据库冗余冗余冗余冗余门店信息表分配图 3-17 门店信息表的分配如图所示,该门店信息表被冗余分配至各分店和总店数据库中。总店数据库会与分店
34、数据库进行定时同步,更新后的门店信息能够在本地读取。这样就为频繁的门店信息查询工作提高了效率,此外如果本地数据库或是总站数据库的门店信息表损坏或出现异常,仍然能够通过其他数据库重新恢复门店信息。名师资料总结-精品资料欢迎下载-名师精心整理-第 25 页,共 32 页 -北京理工大学分布式数据库课程设计26 4 基于 Oracle 的分布式数据库实现4.1 Oracle分布式数据库结构在 EAMS 系统中,我们使用同构同质的Oracle 10g数据库,数据模型为关系数据模型。Oracle分布式数据库使用分布式处理结构。分布式数据库使用客户/服务器结构来处理信息请求。例如当一个Oracle 数据库
35、服务器请求另外的Oracle 数据库服务器管理的数据时,它就是一个客户。4.2 数据库链接数据库链接是一个指针,它定义了一个 Oracle 数据库服务器到另一个服务器的单向通信路径。数据库链接允许本地用户访问远程的数据库。为了产生这种链接,分布式数据库系统中的每个数据库必须在网络域中有唯一的全局数据库名。数据库链接的最大优点是它允许用户访问远程数据库中其他用户的对象,所以这些用户就具有了这些对象拥有者的权限。换句话说,一个本地用户可以访问一个到远程数据库的链接,而不必是该远程数据库的一个用户。使用 CREATE DATABASE LINK 语句来创建数据库链接:创建了一个链接之后就可以用它来指
36、定SOL 语句中的模式对象了。4.3 分布式数据库的管理下面说明有关在 Oracle分布式数据库系统中数据库管理的某些内容。4.3.1 站点自治站点自治是指在分布式数据库中,独立地管理所参与的每个服务器,而与所有其他数据库无关。尽管几个数据库能同时工作,但每个数据库都有一个单独的、被分别管理的数据的仓库。名师资料总结-精品资料欢迎下载-名师精心整理-第 26 页,共 32 页 -北京理工大学分布式数据库课程设计27 4.3.2 分布式数据库的安全对于分布式数据库系统,Oracle支持在非分布式数据库环境中可使用的所有安全特性。包括用户和角色的口令鉴别、用户和角色的某种外部鉴别。4.4 分布式数
37、据库系统的事务处理事务是一个由单个用户所执行的一个或多个SQL 语句构成的逻辑工作单元。事务开始于用户的第一个可执行的SQL 语句,结束于该用户提交或回滚该事务。一个远程事务仅包含访问单个远程节点的语句,一个分布式事务包含访问多个节点的语句。下面说明了在事务处理中的重要概念,并说明了事务是如何在分布式数据库中访问数据的。4.4.1 远程 SQL 语句一条远程查询语句是从一个或多个选程表中选取信息的查询,这些所有表属于相同的远程节点。例如下面的查询访问远程haidian_db 数据库的 scott 模式的house_source表的数据。SELECT*FROM scott.house_ 一条远程
38、更新语句是一个这样的更新,即修改相同的远程节点的一个或多个表 的 数 据。例如 下面 的查 询更 新 远 程 haidian_db 数 据 库 scott 模 式 中 的house_source表的数据。UPDATE scott.house_ SET 房主姓名=丁凯 where 房源_id=10000;4.4.2 分布式 SQL 语句分布式查询语句是从两个或者多个节点上同时检索信息。分布式更新语句可以修改两个或者多个节点上的数据。例如下面的查询即访问本地的数据库也访问名师资料总结-精品资料欢迎下载-名师精心整理-第 27 页,共 32 页 -北京理工大学分布式数据库课程设计28 远程的数据库中
39、的数据。SELECT 房源_id,房主姓名FROM scott.house_source e,scott.house_ d WHERE e.房主姓名=d.房主姓名4.4.3 远程事务和分布式事务远程事务包含一个或多个远程语句,所有这些语句参照一个单独的远程节点。分布式事务是包含一条或多条语句的事务。这些语句单独的作为一个语句组,更新分布式数据库中的两个或者多个不同节点上的数据。4.4.4 两阶段提交协议数据库必须确保事务中的所有语句(分布式的或非分布式的),作为一个单元或者提交、或者回滚。正在进行中的事务的作用对所有节点上的所有其他事务应该是不可见的。这种透明性对所有事务,包括任何类型操作(如
40、查询更新或者远程过程调用)来说,都应该成立。在分布式数据库中,Oracle必须在整个网络中用相同的特征来协调事务,控制并管理事务的一致性,甚至在网络出现故障时。Oracle的两阶段提交协议机制确保了参与分布式事务的所有数据库服务器,或者全部提交或者全部回滚事务中的语句。两阶段提交机制也保护了由完整性约束的远程调用、和触发器所执行的隐含的DML 操作。在准备阶段,事务的发起节点请求其他参与节点承诺提交或者回滚事务;在提交阶段,发起节点请求所有参与节点提交事务,如果失败那么久请求所有节点回滚。这个机制是完全透明的,不需要用户或者开发者编程控制。名师资料总结-精品资料欢迎下载-名师精心整理-第 28
41、 页,共 32 页 -北京理工大学分布式数据库课程设计29 4.5 分布式数据库系统的应用开发4.5.1 分布式数据库系统中的透明性透明的目的,就是使分布式数据库系统看起来就好象它是一个单一的Oracle数据库一样。其结果是,使用分布式数据库系统的开发者和用户,不承担使用该系统带来的复杂性。4.5.1.1位置透明性Oracle分布式数据库系统有这样的特性,它允许开发者和管理员,对应用和用户隐藏数据对象的物理位置。当用户可以到处参考数据库对象,而不管其连接的节点时,就是位置透明性。我们使用同义词、视图和存储过程为分布式数据库系统的应用建立位置透明性。下面的语句在数据库中给另一个远程数据库中的表创
42、建同义词:CREART PUBLIC SYNONYM house_source1 FOR scott.house_ CREART PUBLIC SYNONYM house_source2 FOR scott.house_ 应用可以发布比较简单的不必介意远程表位置的查询:SELECT a.房源_id,b.房源_id FROM house_source1 a,house_source2 b WHERE a.房东姓名=b.房东姓名4.5.1.2 SQL和 COMMIT 透明性Oracle的分布式数据库结构还提供了查询、更新、和事务透明性。例如标准的 SQL 语句(SELECT、INSERT、UPDA
43、TE、DELETE)就像在非分布式环境中一样运作。另外,应用是使用标准的SQL 语句 COMMIT、SAVEPOINT 和ROLLBACK 来控制事务的,而不需要复杂的编程为分布式事务控制提供其他特殊的操作。名师资料总结-精品资料欢迎下载-名师精心整理-第 29 页,共 32 页 -北京理工大学分布式数据库课程设计30 在单个事务中的语句可以参照任意数量的本地或远程表。Oracle保证包含在分布式事务中的所有节点做同样的动作,它们或者全部提交、或者全部回滚事务。在 Oracle内部为每一个已提交的事务,都有一个相关的系统修改SCN,来唯一地标识事务内部的语句所做的修改。在分布式数据库中,调整通
44、信节点之间的各个 SCN 的时机是:用一个或多个数据库链接所描述的路径建立链接时。执行分布式 SQL 时。提交分布式事务时。其他好处是,在分布式数据库的各个节点中调整各个SCN,允许在语句和事务层上实现全局分布式的读一致性。如果需要的话,还可以实现全局分布式基于时间的恢复。4.5.1.3 复制透明性Oracle还提供了在系统很多节点之间透明的复制数据的特性。4.5.2 远程过程调用(RPC)我们编写 PL/SQL 包和过程,以支持分布式系统的应用。应用使本地过程调用执行本地数据库的操作,远程过程调用执行远程数据库的操作。当一个程序调用远程过程时,本地服务器将所有的过程参数传递给该调用中的远程服
45、务器。下面的PL/SQL 程序单元调用远程agent数据库中的过程UPDATE_HOUSE_SOUERCE 并将参数传递给它。BEGIN UPDATE_HOUSE_SOUERCE(房主 _ID,交易类型,物业名称.,门店 _ID);END 名师资料总结-精品资料欢迎下载-名师精心整理-第 30 页,共 32 页 -北京理工大学分布式数据库课程设计31 4.5.3 分布式查询优化分布式查询优化是ORCLE 的特性,当一个事务从分布式SQL 语句所参照的远程表中检索数据时,分布式查询优化减少了在各个站点之间所需传递的数据量。分布式查询优化使用Oracle的基于开销的优化策略,来查找或生成SQL 表
46、达式,以便仅从远程表中提取必要的数据,在远程站点或有时在本地站点处理那些数据。然后将结果发送给本地站点做最后的处理。这种操作相对于把所有表的数据传给本地站点来处理而言,减少了数据的传输量。使用各种基于开销的优化器,隐含着如DRIVING_SITE、NO_MERGE 和INDEX,能控制 Oracle在什么地方处理数据或者怎样访问数据。4.5.3.1 使用并行列中的视图优化分布式查询的最有效的方法,是尽可能少地访问远程数据库并只检索所需要的数据。在一个分布式查询中,参照了多个不同远程数据库的多个远程表,可以通过重写该查询,使得只访问一次远程数据库和在远程站点上运用过滤条件来改善查询的性能。例如,
47、一个分布式查询可以如下写:SELECT e.房东_ID,e.房东姓名,d.房东_ID,d.房东姓名FROM(SELECT 房东_ID,房东姓名from house_)e,house_source d;减少了访问远程数据库的时间,改善了分布式查询的性能。4.5.3.2 使用基于开销的优化策略除了使用并行行中试图重新查询之外,基于开销的优化方法根据收集到的被参照表的统计数据,和优化器所执行的计算来优化分布式查询。Oracle的基于开销的优化策略,可以透明的重写大部分分布式查询,以便得到由并行列视图所提供的性能。4.5.3.3 使用暗示名师资料总结-精品资料欢迎下载-名师精心整理-第 31 页,共 32 页 -北京理工大学分布式数据库课程设计32 如果语句未被充分地优化,那么可以用暗示来扩展基于开销的优化策略的性能。特别的,如果编写查询以便使用并列行中视图,可以指示基于开销的优化器,而不要重写分布式查询。如果你采集到的基于数据库环境的并行列视图,编写了已经优化的查询,就可以指定 NO_MERGE 暗示,以防止优化器再重写查询。DRIVING_SITE 暗示用于定义作为查询执行站点的远程站点,这样就在该远程站点执行该查询然后将数据返回给本地站点当远程站点包含了大多数数据时这个暗示特别有帮助。名师资料总结-精品资料欢迎下载-名师精心整理-第 32 页,共 32 页 -
限制150内