如何实现逻辑数据模型

如何实现逻辑数据模型,第1张

业务和系统开发领域绝对不能容许设计上的重大失误 可是 很多开发人员却因为不了解设计步骤而恰恰轻视乃至完全忽略了整个设计过程 而实际上 我们中的大多数人也确实缺乏必要的有关技能和知识 结果令我们往往 旁路 了项目开发中最重要的阶段 说真的 有本事敢直接绕过设计阶段的人还没诞生呢 如果我们不花点时间创建一个逻辑模型 那么要实现一套高效和优秀的设计是完全不可能的 略过设计步骤会产生大量的错误 而这些错误又会令我们耗费大量的时间在发现它们的时候反复调试和纠正 下面我就大致讨论下设计的逻辑和物理模型 然后引领读者经过逻辑模型的创建全过程 本文是有关主题系列的开篇 在后续的第 部分里 我会根据已经发现的缺陷修改我们的原始设计 数据库的设计方法在对数据库项目的需求着手评估和分析周 接下来的一步就是设计出一套方案帮助你达到项目的要求和目标 在开发领域这一步骤被称做数据库设计方法 它是一种结构化的措施 支持设计流程同时还包括了诸如公司业务流程 规定和文档等一系列工具 步步进阶的整套流程帮助开发人员计划 管理和控制设计及其实现从而高效地完成任务 这意味着 你拥有一整套方法 也就是按照特定顺序安排的项目列表 这些方法指引你经过数据模型创建的全过程 请不要错误地把这个过程理解为平常的过程 实际上它是完全必要的阶段 你应该从完全理解数据和用户需求这一目的出发研究该过程 每一个项目无论其规模大小都能从以下三种模型中获益 概念 明确和说明创建数据全局视图的主要对象 同时辅以一定的轻微细节 许多企业都局限于特定的数据库管理系统(DBMS) 所以这一步可以忽略或者放到逻辑模型一组 逻辑 构造采用特定数据的模型 但还不用考虑最终保存数据以及运营应用程序的具体数据库系统 由于SQL Server是一种关系型数据库管理系统(RDBMS) 所以我们要依赖于实体关系模型(ER Entity Relationship) 在这一阶段你必须明确实体 关系 属性并对你的数据实行规格化 逻辑模型建立在数据集合的基础之上 为了更深入地了解ER模型 不不妨访问下 ITS数据库服务网站 或者参考 Mapping an ER Model to the Relational Model Web site(是一个 PDF文件) 物理 根据所采用的具体RDBMS设计实现逻辑模型的具体模型 在这一阶段 你需要说明数据表 索引等数据库对象 而物理模型就是根据数据表建立的 建立逻辑模型的真实用意无非是为了确认应用程序能满足最终的需求(包括输入和输出两方面) 换句话说 逻辑模型必须能产生所有已知的报告 查询等结果 此外 用户还应该能够以合理的方式输入和 *** 作数据 一旦逻辑模型到位 你就应开始把你所了解的情况应用到项目的物理需求方面——比如说——物理模型 图A就描述了逻辑和物理模型在这一阶段的差别 图A  逻辑和物理数据模型逻辑模型的实现目前阶段的所谓 实现 其实就是完成逻辑模型的组件 在明确了实体 关系和属性的情况下 你应该揭示出那些在工作环境下可能会产生问题的缺陷 缺少的实体 表示同一概念实体的多个实体 需要额外实体来解决问题的多对多关系 多值和冗余的属性 现在我们就以一个实际项目为例看看该如何创建一个合理的逻辑模型 通过这个模型帮助你避免今后的问题 假设你的这个最新项目是供旅行社使用的 一项足够简单 处理定单的数据库应用程序 这家旅行社针对 类客户实行批发或者零售服务 Agency 授权接受定单上任务的另一家旅行社 Aggregator 一家俱乐部 其成员可以享受打折服务 Corporate 代表其职员下定单的公司 它们不能享受的打折优不过需要获得旅行社的全方位服务支持 比如说 旅行社必须帮助它们解决一些诸如取消计划 飞机票订位过多等方面的问题 企业客户总是一样的而旅行者只能是其职员 Retail 不能享受任何折扣优惠的单独客户 这时 你应该准备定义应用程序的主要对象或者实体 为了针对客户类型应用以上的业务规则 你可能会把每一种客户类型当作单独的实体 如表A所示 数据类型和其他信息都是针对SQL Server考虑的 表A  定义应用实体 看图B 你可以简化当前的模型 客户订单 某种特定类型的客户 图B 不同实体之间的关系正如我们在上面所提到的那样 业务规则要求我们对客户实现区别对待 结果 客户不能总是具有同样的属性 我们的第 个解决方案是创建一个数据表 其中包含了各类客户的特定属性 这一原始设计带来了下列问题 所有的客户数据表都采用系统生成的主键 大致以种子值 开始递增 那就是说 你完全会遭遇重复的ClientID值 结果我们就无法恰当地把每一定单关联到特定的客户 因为每一客户表都包含了重复的值 因为每一客户表重复公共字段(如ClientID ClientName Address和Telephone)而产生了一些冗余的属性 客户会有更多的地址吗?也许他们会具有一个当地地址和一个付费的单位地址 客户只有一个电话号码?也许你应该列出多个电话号码乃至传真号码 有必要根据客户的类型来标识定单吗?显然你不能 找出和解决设计问题你首先采取的行动可能和我们用的不同 但那还不是关键的问题 最重要的是你可能没有认识的到设计中隐藏的问题 在后续的文章里我会采用已知的 业已得到证明的方法来寻找和解决设计问题 免得它们在今后的工作中引出不少漏子 lishixinzhi/Article/program/Oracle/201311/18780

软件设计师属于软考中级资格考试,软考软件设计师上午考基础知识科目,考试题型为客观选择题,满分为75分,考试时间安排在上午9:00-11:30。

软考中级软件设计师上午考试科目为基础知识,考试时间安排在上午9:00-11:30,考试范围如下:

1 计算机科学基础知识

11 数制及其转换

二进制、八进制、十进制和十六进制等常用数制及其相互转换

12 计算机内数据的表示

数的表示(补码表示,整数和实数的表示,精度和溢出)

非数值表示(字符和汉字表示,声音表示、图像表示)

13 算术运算和逻辑运算

计算机中的二进制数运算方法

逻辑代数的基本运算

14 其他数学基础知识

常用数值计算

排列组合,概率论应用,应用统计(数据的统计分析)

编码基础

命题逻辑、谓词逻辑、形式逻辑的基础知识

运筹基本方法

2 计算机系统知识

21 计算机硬件基础知识

211 计算机系统的组成、体系结构分类及特性

CPU、存储器的组成、性能和基本工作原理

常用 I/O 设备、通信设备的性能以及基本工作原理

I/O 接口的功能、类型和特性

CISC/RISC,流水线 *** 作,多处理机,并行处理

212 存储系统

虚拟存储器基本工作原理,多级存储体系

RAID 类型和特性

213 可靠性与系统性能评测基础知识

诊断与容错

系统可靠性分析评价

计算机系统性能评测方法

22 计算机软件知识

221 数据结构与算法知识

数组

链表

队列、栈

图的定义、存储和基本 *** 作

杂凑(Hash 表)

常用的排序算法、查找算法、数值计算、字符串处理、数据压缩算法、递

归算法、图的相关算法

算法描述和分析

222 *** 作系统知识

*** 作系统的内核

处理机管理

存储管理

设备管理

文件管理

作业管理

网络 *** 作系统和嵌入式 *** 作系统基础知识

*** 作系统的配置

223 程序设计语言和语言处理程序知识

汇编、编译、解释系统的基础知识和基本工作原理

程序设计语言的基本成分(数据、运算、控制和传输),程序调用的实现

机制

各类程序设计语言的主要特点和适用情况

224 数据库知识

数据库模型(概念模式、外模式、内模式)

数据模型,ER 图,规范化

数据 *** 作

数据库语言

数据库管理系统的功能和特征

数据库的控制功能

数据仓库和分布式数据库基础知识

23 计算机网络知识

网络体系结构

传输介质,传输技术,传输方法,传输控制

常用网络设备和各类通信设备的特点

Client-Server 结构,Browser-Server 结构

LAN(拓扑,存取控制,组网,网间互连)

Internet 和 Intranet 基础知识以及应用

网络软件

网络管理,网络性能分析

24 多媒体基础知识

多媒体系统基础知识

简单图形的绘制,图像文件的处理方法

音频和视频信息的应用

多媒体应用开发过程

3 系统开发和运行知识

31 软件工程知识

软件生存周期与软件生存周期模型

软件开发方法

软件开发项目管理

软件开发工具与软件开发环境

32 系统分析基础知识

系统分析的主要步骤

机构化分析方法

33 系统设计基础知识

概要设计与详细设计的基本任务

系统设计的基本原理

系统模块结构设计

结构化设计方法

面向数据结构的设计方法

系统详细设计

34 系统实施基础知识

系统实施的基本内容

程序设计方法

程序设计的基本模块

系统测试

系统转换

35 系统运行和维护基础知识

系统可维护性的概念

系统维护的类型

系统评价的概念和类型

36 软件质量管理基础知识

软件质量特性(ISO/IEC 9126 软件质量模型)

软件质量保证

软件复杂性的概念及度量方法(McCabe 度量法)

软件评审(设计质量评审、程序质量评审)

软件容错技术

37 软件过程改进基础知识

软件能力成熟度模型 CMM

统一过程(UP)与极限编程(XP)的基本概念

4 面向对象基础知识

面向对象的基本概念

面向对象分析与设计知识

分析模式与设计模式知识

面向对象程序设计知识

面向对象数据库、分布式对象基础知识

5 信息安全知识

信息系统安全基础知识

信息系统安全管理

保障完整性与可用性的措施

加密与解密机制基础知识

风险管理(风险分析、风险类型、抗风险措施和内部控制)

计算机安全相关的法律、法规基础知识

6 标准化、信息化和知识产权基础知识

61 标准化基础知识

标准化意识,标准化组织机构,标准的内容、分类、代号与编号规定,标

准制订过程

国际标准、标准、行业标准、企业标准

代码标准、文件格式标准、安全标准、互联网相关标准、软件开发规范和

文档标准、基于构件的软件标准

62 信息化基础知识

全球信息化趋势、信息化战略、企业信息化战略和策略

互联网相关的法律、法规

个人信息保护规则

远程教育、电子商务、电子政务等基础知识

企业信息资源管理基础知识

63 知识产权基础知识

保护知识产权有关的法律、法规

7 计算机专业英语

具有工程师所要求的英语阅读水平

理解本领域的英语术语

温馨提示:因考试政策、内容不断变化与调整,猎考网提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

下方免费复习资料内容介绍:2023上半年软件设计师学习手册

格式:DO大小:555691KB 2022年信息系统监理师考前几页纸

格式:PDF大小:126775KB

资格考试有疑问、不知道如何总结考点内容、不清楚报考考试当地政策,点击底部咨询猎考网,免费领取复习资料

对外数据模型为关系型数据库,内部的实现主要分成两大类,一类是disk-based,比如mysql,postgres,一类是memory based,后者包括MemSQL,SAP HAHA,OceanBase。看题目的意思指的是前者。这里说一个disk-based的关系型数据库涉及多少东西。

上世纪70/80年代内存不大,数据不能都放在内存里,大部分数据都存在磁盘上,读数据也需要从磁盘读,然而读写磁盘太慢了,所以就在内存里做了一个buffer pool,将已经读过的数据缓存到buffer pool中,写的时候也是写到buffer pool中就返回,buffer pool的功能就是管理数据在磁盘和内存的移动。在buffer pool中数据的管理单位是page。page大小一般几十KB。一般都可以配置。如果buffer pool中没有空闲的page,就需要将某一个page提出buffer pool,如果它是dirty page,就需要flush到磁盘,这里又需要一个LRU算法。一个page包含多条记录,page的格式需要设计用来支持变长字段。如果这时宕机了,buffer pool中的数据就丢了。这就需要REDO log,将对数据的修改先写到redo log中,然后写buffer pool,然后返回给客户端,随后,buffer pool中的dirty page会被刷到数据文件中(NO FORCE)。那么重启的时候,数据就能从redo log中恢复。REDO log还没刷完就刷数据到磁盘可以加快写入速度,缺点就是恢复的时候需要回放UNDO log,回滚一些还没有提交的事务的修改。写log又分为逻辑log和物理log,还有物理逻辑log。简单说逻辑log就是记录 *** 作,比如将某个值从1改成2而物理log记录具体到record的位置,例如某个page的某个record的某个field,原来的值是多少,新值是多少等。逻辑log的问题是并发情况下不太好恢复成一致。物理log对于某些 *** 作比如create table又过于琐碎,所以一般数据库都采用混合的方式。为了跟踪系统中各种 *** 作的顺序,这就需要为log分配id,记做LSN(log sequence number)。系统中记录各种LSN,比如pageLSN, flushedLSN等等。为了加快宕机恢复速度,需要定期写checkpoint,checkpoint就是一个LSN。

以上ACID里的C和D有关。下面说A和I,即原子性和隔离性。

这两个性质通过concurrency control来保证。隔离级别有很多种,最开始有4种,从低到高read uncommitted, read committed, repeatable read, serializable。serializable就是多个事务并发执行的结果和某种顺序执行事务的结果相同。除了serializable,其他都有各种问题。比如repeatable read有幻读问题(phantom),避免幻读需要gap lock。read committed有幻读和不可重复读问题。后来又多了一些隔离级别,比如snapshot isolation,snapshot isolation也有write skew问题。早期,并发控制协议大多是基于两阶段锁来做的(2PL),所以早期只有前面提到的四种隔离级别,后来,又出现一类并发控制协议,统称为Timestamp Ordering,所以又多了snapshot isolation等隔离级别。关于隔离级别,可以看看这篇论文 >

以上就是关于如何实现逻辑数据模型全部的内容,包括:如何实现逻辑数据模型、软件设计师上午考什么、如何自己实现一个关系型数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9710360.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存