- 1、本文档共37页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单机 客户/服务器 三层分开 检测代码、JavaScript... 实施业务规则--就是前面我们说的实体类和控制类 文件 各种格式的文件(.txt, .ini…) 关系数据库(RDBMS)(最常用) 面向对象数据库(OODBMS) Jasmine(多媒体,大规模集成电路) 你想把车停在一个面向对象的车库里。把车开进车库,下车,关上车门,然后回到你的房间。当你想出去的时候,只要走进车库,钻进汽车,启动,然后开走。 你想把车停在一个关系数据库的车库里。把车开进车库,下车,卸下车门,将它们放在地上;卸下所有的车轮,将它们放到地上;卸下保险杠及其它的东西。然后回到你的房间。当你想出去的时候,走进车库,先安上车门,再安上保险杠,然后是车轮等等,都安完了,钻进汽车,点火,然后开走。 只为超类建一张表 每个子类映射一张表 超类子类都映射成表,超类主键作为所有类的主键 外键放在0..1一端 外键放在任意一端 外键放在“多”方 添加第三个表 映射规则同二元关联 在能单一标识记录的字段中挑选有意义的字段作为主键(学号,工号) 另外增加无意义字段作为主键(代理主键) 一个企业组织,“职员”应该用什么作为主键? 唯一标识记录 被其他表引用为外键 有业务含义,意味着可能潜伏着变化 任何对主键的修改都可能导致巨大的工作量 每个表的主键都是相同的数据类型 表间连接被限定在单个列上,SQL语句的书写不复杂 更稳定的设计 需要持久存储的类要设置成Persistent 代码解析( VB ) DAConnect:连接数据库 DARetrieve:取数据 DAQuery:执行SQL语句 每个实体类对应一个 将业务层的要求翻译成合适的语言(如SQL) 可以退化到存储过程 谢谢! Rose:默认方案就是以上选择的方案 建模工具自动映射 生成DDL 整个系统只需一个 执行数据访问API(如:ADO) 数据访问层 数据访问层 数据转换层 架构的退化 软件工程第12讲 面向对象分析与设计(4) 贾西平 Email: jiaxp@126.com 架构 Think 开发流程 三层 表示层 业务层 数据层 三层架构 随着数据存取的方式变化而变化 随着业务的变化而变化 随着界面表达方式的变化而变化 表示层 业务逻辑层 数据存取层 200 Sales ... 100 RD ... 200 Sales ... 100 RD ... 200 Sales ... 100 RD ... 200 Sales ... 100 RD ... DBMS 架构实现上的变迁 三层同在一台机器上 不同系统的运行架构 电梯 收款机 Outlook Express 局域网内运行的酒店管理系统 特大型商业网站 进一步分层 表示层 业务环境层 业务规则层 数据转换层 数据访问层 存储 Window窗体,HTML页面,报表 信息进入系统之前过滤和处理信息 实施业务规则 将业务层的要求翻译成合适的语言(如SQL) 执行数据访问API(如:ADO) 提供物理存储服务(如:SQL Server ,Oracle) 表示层 业务环境层 业务规则层 存储:对象持久化 关系数据库正在向对象-关系数据库发展 Oracle的可变数组、嵌套表 用关系数据库来存储 把实体类映射到关系数据库 映射类和属性 映射泛化关系 ? 映射泛化关系(1) 优点: 只有一张表 能实现角色变化 报表操作简单 缺点: 子类的修改会影响到整个结构 数据库存在大量空值,浪费空间 映射泛化关系(2) 优点: 表中包含了具体子类的所有信息 缺点: 超类的修改会影响到所有子类表 角色变化时,会造成ID的重新赋值 支持多重角色时,数据完整性难以维护 映射泛化关系(3) 优点: 弹性最好 缺点: 表的数量多 访问数据的时间稍长 映射关联关系(1) ——1对0..1 映射关联关系(2) ——1对1 1 映射关联关系(3) ——1对多 映射关联关系(4) ——多对多 映射聚合/组合关系 映射反身关联(聚合) 主键的选择 工号 系统添加的ID 姓名 讨论:主键的选择 身份证号(340205740801203) 主键的作用 主键不应有业务含义 代理主键的好处
文档评论(0)