数据库设计:

数据库设计(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种建模文件:

  1. 概念数据模型 (CDM)
    对数据和信息进行建模,利用实体-关系图(E-R图)的形式组织数据,检验数据设计的有效性和合理性。

  2. 逻辑数据模型 (LDM)
    PowerDesigner 15 新增的模型。逻辑模型是概念模型的延伸,表示概念之间的逻辑次序,是一个属于方法层次的模型。

  3. 物理数据模型 (PDM)
    基于特定DBMS,在概念数据模型、逻辑数据模型的基础上进行设计。由物理数据模型生成数据库,或对数据库进行逆向工程得到物理数据模型。

  4. 面向对象模型 (OOM)
    包含UML常见的所有的图形:类图、对象图、包图、用例图、时序图、协作图、交互图、活动图、状态图、组件图、复合结构图、部署图(配置图)。OOM 本质上是软件系统的一个静态的概念模型。

  5. 业务程序模型 (BPM)
    BPM 描述业务的各种不同内在任务和内在流程,而且客户如何以这些任务和流程互相影响。 BPM 是从业务合伙人的观点来看业务逻辑和规则的概念模型,使用一个图表描述程序,流程,信息和合作协议之间的交互作用。

  6. 信息流模型(ILM)
    ILM是一个高层的信息流模型,主要用于分布式数据库之间的数据复制。

  7. 企业架构模型(EAM):
    从业务层、应用层以及技术层的对企业的体系架构进行全方面的描述。包括:组织结构图、业务通信图、进程图、城市规划图、应用架构图、面向服务图、技术基础框架图。

谢谢大家阅读,如果想要获取更多java基础知识,可以戳我一起交流学习!

数据库:数据库设计与数据建模及建模工具(PowerDesigner)相关推荐

  1. Python3,网站搭建之数据库表设计及数据存储!文末的彩蛋,我酸了~

    搭建自己的网站,是作为一个码农成功标志之一, 那其他成功标志有啥呢, 嘿- 左手搂着白富美,右手撸着小烧烤,脚底踩着桑塔纳- 嗯~ 这么潇洒的人生,就从数据库表设计及数据存储开始吧! 数据库表设计及存 ...

  2. 省市联动的数据库表设计和数据

    关于省市联动的表结构和数据 链接:https://pan.baidu.com/s/1X4QyyTiF96vkAENLZs6n-Q 提取码:8dzq 下载到桌面以后,可以用工具来导入数据库 找到自己下载 ...

  3. SpringBoot+MySql+ElementUI实现一对多的数据库的设计以及增删改查的实现

    场景 业务中经常会用到一对多的数据库的设计与数据的增删改查的实现. 比如要实现一个对手机应用配置允许访问的权限的业务. app与权限就是一对多的关系.即一个app可以拥有多个权限. 注: 博客: ht ...

  4. mysql一对多增删改查_SpringBoot+MySql+ElementUI实现一对多的数据库的设计以及增删改查的实现...

    场景 业务中经常会用到一对多的数据库的设计与数据的增删改查的实现. 比如要实现一个对手机应用配置允许访问的权限的业务. app与权限就是一对多的关系.即一个app可以拥有多个权限. 注: 实现 首先设 ...

  5. 数据中台 第7章 数据体系建设:数仓分层设计、数据建模

    数据中台数据体系是在全域原始数据的基础上,进行标准定义及分层建模,数据体系建设最终呈现的结果是一套完整.规范.准确的数据体系,可以方便支撑数据应用. 中台数据体系应具备以下特征: ·覆盖全域数据:数据 ...

  6. 领域驱动设计--领域驱动设计到数据建模实践(十)

    ----- 学习笔记 ----- 过去,系统的软件设计是以数据库设计为核心,当需求确定下来以后,团队首先开始进行数据库设计.因为数据库是各个模块唯一的接口,当整个团队将数据库设计确定下来以后,就可以按 ...

  7. 数据库建模-物理层建模

    数据库建模-物理层建模 概念模型创建的实体在物理模型中对应的是表的创建,属性的设置都是一样的. 创建序列 关系 从用户表分析一对多的关系(用户表与订单表): 箭头所指向的表是1的一端,箭头背向的表是多 ...

  8. 数据访问层之数据库访问设计(转)

    在PetShop中,系统需要处理的数据库对象分为两类:一是数据实体,对应数据库中相应的数据表.它们没有行为,仅用于表现对象的数据.这些实体类都被放到Model程序集中,例如数据表Order对应的实体类 ...

  9. petshop4.0 详解之二(数据访问层之数据库访问设计)

    在系列一中,我从整体上分析了PetShop的架构设计,并提及了分层的概念.从本部分开始,我将依次对各层进行代码级的分析,以求获得更加细致而深入的理解.在PetShop 4.0中,由于引入了ASP.Ne ...

  10. 数据库表设计必需元素_HTML5输入,必需,模式,数据列表

    数据库表设计必需元素 Today we will look into some HTML5 features that will help us in removing a lot of boiler ...

最新文章

  1. linux gcc安装
  2. 数据库期末复习样卷,临时抱佛脚高分通过考试
  3. Linux下取代top的进程管理工具 htop
  4. python pandas 读写 csv 文件
  5. kali linux解密栅栏密码,犯罪大师上帝之眼答案最新
  6. MySql按周,按月,按日分组统计数据
  7. 用python画动图_Python使用matplotlib画动态图
  8. Cisco配置单臂路由及静态路由
  9. 《C语言程序设计与实践(第2版)》——第1章 C语言与程序设计概述 1.1初见C语言程序...
  10. php保存emoji表情,php保存emoji表情
  11. 【车间调度】基于matlab粒子群算法求解6X6车间调度问题【含Matlab源码 411期】
  12. 蓝牙音箱CSR芯片系列解密
  13. 自适应大邻域搜索算法
  14. 百度地图api设置点的自定义图标不显示
  15. SATA 3.3协议 Error handing机制
  16. 拼多多推广中出价是越高效果越好吗?
  17. 教育消费分期系统介绍
  18. QPrinter、QPrinterInfo、QPageLayout
  19. QQ自定义登录模拟器
  20. CT值到灰度值的映射, 以及windowing中的窗宽和窗位

热门文章

  1. 4.2.5 求解幂集问题
  2. java笔记框架部分
  3. 人人,金山西山居,腾讯互娱,微信,网易游戏offer及面经
  4. java购物系统需求分析_java网上购物系统需求分析报告.doc
  5. 使用 Python 编写一个聊天小程序
  6. arm-linux-gcc stdio.h,arm-linux-gcc stdio.h no such file or directory错误
  7. FATF发布数字资产反洗钱指南
  8. steam 加速器_如何在Steam中使用Switch的Pro控制器
  9. VectorDraw机械制图,VectorDraw图形引擎crack版
  10. oppo9s刷机教程_oppor9s怎么自己刷机很简单的技巧