数据库:数据库设计与数据建模及建模工具(PowerDesigner)
数据库设计:
数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。
数据库设计的基本步骤:
1)需求分析
需求分析是在用户调查的基础上,通过分析,逐步明确用户对系统的需求,包括数据需求和围绕这些数据的业务处理需求。在需求分析中,通过自顶向下,逐步分解的方法分析系统,分析的结果采用数据流程图进行图形化的描述。
2)概念结构设计
对用户要求描述的现实世界(可能是一个工厂、一个商场或者一个学校等),通过对其中诸处的分类、聚集和概括,建立抽象的概念数据模型。
这个概念模型应反映现实世界各部门的信息结构、信息流动情况、信息间的互相制约关系以及各部门对信息储存、查询和加工的要求等。
概念结构设计通常有四类方法:
- 自顶向下。即首先定义全局概念结构的框架,再逐步细化。
- 自底向上。即首先定义各局部应用的概念结构,然后再将他们集成起来,得到全局概念结构。
- 逐步扩张。首先定义最重要的核心概念结构,然后向外扩张,以滚雪球的方式逐步生成其他的概念结构,直至总体概念结构。
- 混合策略。即自顶向下和自底向上相结合。
3)逻辑结构设计
主要工作是将现实世界的概念数据模型设计成数据库的一种逻辑模式。在这阶段,E-R图显得异常重要。
4)物理结构设计
根据特定数据库管理系统所提供的多种存储结构和存取方法等依赖于具体计算机结构的各项物理设计措施,对具体的应用任务选定最合适的物理存储结构(包括文件类型、索引结构和数据的存放次序与位逻辑等)、存取方法和存取路径等。
5)数据库的实施
数据库实施阶段,设计人员运营DBMS提供的数据库语言及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制和调试应用程序,组织数据入库,并进行试运行。
6)数据库的运行和维护
数据库应用系统经过试运行后,即可投入正式运行,在数据库系统运行过程中必须不断地对其进行评价,调整,修改。
设计原则:
1)一对一设计原则:
在软件开发过程中,需要遵循一对一关系设计原则进而开展数据维护工作,通过利用此原则能够尽量减少维护问题的出现,保证数据维护工作顺利开展同时降低维护工作难度。
2)独特命名原则:
独特命名原则的应用是为了减少在数据库设计过程中出现重复命名和规范命名现象出现。 通过应用此原则能够减少数据冗杂,维护数据一致性,保持各关键词之间存在必然相对应联系。 独特命名原则能够锻炼工作人员对大小写字母熟练操作能力,有利于规范化后台代码工作的开展。
3)双向使用原则:
双向使用原则包括事务使用原则和索引功能原则。 双向使用原则是在逻辑工作单元模式基础上实现其表现形式的,不仅给非事务性单元操作工作提供基础保障,也保证其能够及时更新、获取数据资源。
重要性:
1、有利于资源节约
2、有利于软件运行速度的提高
3、有利于软件故障的减少
存在问题:
1、业务基本需求无法得到满足
2、数据库性能不高
3、数据库的扩展性较差
4、数据资源冗余
5、表与表之间的耦合过密
数据建模:
1)实体-关系图: 也称为E-R图,提供了表示实体、属性和关系的方法,用来描述现实世界的概念模型。
构成E-R图的基本要素:
① 实体(Entity): 实体用来表示具有相同特征和性质的事物(类似于java的类),实体由实体名和实体属性来表示。
②属性(Attribute): 实体所具有的某一特性,一个实体可以有若干个属性;
③ 关系(Relationship): 实体彼此之间相互连接的方式称为关系。一般可分为以下 3 种类型:
一对一关系 (1 ∶ 1) 一对多关系 (1 ∶ N) 多对多关系 (M ∶ N)
2) ER图中符号的表示
(1)# : 唯一, 以后可能表示为主键;
(2) * : 非空;
(3) o : 可有可无;
(4) 虚线: may be 顾客这边虚线,顾客可能没有订单;
(5) 实线: must be 订单这边实线,订单一定是属于某个客户;
(6) 竖杠(|): 代表要强制在(|)一方建立一个联合主键,将对方ID拿过来做联合主键;
(7) 伞状图标代表多的一方,不是伞状图标则代表一的一方;
建模工具PowerDesigner:
PowerDesig介绍:
PowerDesigner是Sybase公司的CASE工具集,使用它可以方便地对管理信息系统进行分析设计,它几乎包括了数据库模型设计的全过程。
利用PowerDesigner可以制作数据流程图、概念数据模型、物理数据模型,可以生成多种客户端开发工具的应用程序,还可为数据仓库制作结构模型,也能对团队设计模型进行控制
PowerDesigner包含六个紧密集成的模块:
①PowerDesigner ProcessAnalyst,用于数据发现。
②PowerDesigner DataArchitect,用于双层,交互式的数据库设计和构造。
③PowerDesigner AppModeler,用于物理建模和应用对象及数据敏感组件的生成。
④PowerDesigner MetaWorks,用于高级的团队开发,信息的共享和模型的管理。
⑤PowerDesigner WarehouseArchitect,用于数据仓库的设计和实现。
⑥PowerDesigner Viewer,用于以只读的、图形化方式访问整个企业的模型信息。
PowerDesigner主要分为7种建模文件:
-
概念数据模型 (CDM) 对数据和信息进行建模,利用实体-关系图(E-R图)的形式组织数据,检验数据设计的有效性和合理性。
-
逻辑数据模型 (LDM) PowerDesigner 15 新增的模型。逻辑模型是概念模型的延伸,表示概念之间的逻辑次序,是一个属于方法层次的模型。
-
物理数据模型 (PDM) 基于特定DBMS,在概念数据模型、逻辑数据模型的基础上进行设计。由物理数据模型生成数据库,或对数据库进行逆向工程得到物理数据模型。
-
面向对象模型 (OOM) 包含UML常见的所有的图形:类图、对象图、包图、用例图、时序图、协作图、交互图、活动图、状态图、组件图、复合结构图、部署图(配置图)。OOM 本质上是软件系统的一个静态的概念模型。
-
业务程序模型 (BPM) BPM 描述业务的各种不同内在任务和内在流程,而且客户如何以这些任务和流程互相影响。 BPM 是从业务合伙人的观点来看业务逻辑和规则的概念模型,使用一个图表描述程序,流程,信息和合作协议之间的交互作用。
-
信息流模型(ILM) ILM是一个高层的信息流模型,主要用于分布式数据库之间的数据复制。
-
企业架构模型(EAM): 从业务层、应用层以及技术层的对企业的体系架构进行全方面的描述。包括:组织结构图、业务通信图、进程图、城市规划图、应用架构图、面向服务图、技术基础框架图。
谢谢大家阅读,如果想要获取更多java基础知识,可以戳我一起交流学习!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
我点击页面元素,VSCode 乖乖打开了组件?原理揭秘。
前言 在大型项目开发中,经常会遇到这样一个场景,QA 丢给你一个出问题的链接,但是你完全不知道这个页面 & 组件对应的文件位置。 这时候如果可以点击页面上的组件,在 VSCode 中自动跳转到对应文件,并定位到对应行号岂不美哉? react-dev-inspector[1] 就是应此需求而生。 使用非常简单方便,看完这张动图你就秒懂: 可以在 预览网站[2] 体验一下。 使用方式 这个插件功能很强大,代码也写得很漂亮,唯一的缺点就是文档不是很完善,我阅读了源码总结了成功接入这个插件需要的几个步骤,缺一不可。 简单来说就是三步: 构建时: 需要加一个 webpack loader 去遍历编译前的的 AST 节点,在 DOM 节点上加上文件路径、名称等相关的信息 。 需要用 DefinePlugin 注入一下项目运行时的根路径,后续要用来拼接文件路径,打开 VSCode 相应的文件。 运行时:需要在 React 组件的最外层包裹 Inspector 组件,用于在浏览器端监听快捷键,弹出 debug 的遮罩层,在点击遮罩层的时候,利用 fetch 向本机服务发送一个打开 VSCode...
- 下一篇
关于在线教育行业的用户画像
大数据时代,我们需要将人或产品等“数据化”,也就是根据人的各种活动或产品的特性来贴标签,最后所得即我们用来当做精细化决策辅助的“用户画像”。 一幅好的用户画像,可以帮助我们尽可能地实现 成本最小化 & 利润最大化。 经过我的了解,需要绘制用户画像的主要有 游戏、电商、零售、教育等行业。因为昨天有同学新入职了一家教育培训机构的数据分析岗位,所以下面我就先从教育行业的用户画像绘起。 小结:可见,经过绘制一幅思维导图式的用户画像之后,企业的经营脉络清晰可见,这样可以更加有利于企业做出更加精准化的营销活动,提高转化率的同时也可以缩减不必要浪费的支出成本,从而更有利于实现总体经济效益的最大化。
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS7设置SWAP分区,小内存服务器的救世主
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS关闭SELinux安全模块
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题