精华内容
下载资源
问答
  • 数据库模型设计

    2007-10-17 17:07:46
    数据库模型设计专栏 http://blog.csdn.net/liu7537/
    展开全文
  • 关系数据库模型设计

    2013-04-25 12:57:12
    关系数据库模型设计
  • Power Designer 是Sybase公司的CASE工具集,使用它可以方便地对管理信息系统进行分析设计,他几乎包括了数据库模型设计的全过程。利用Power Designer可以制作数据流程图、概念数据模型、物理数据模型,还可以为数据...
    Power Designer 是Sybase公司的CASE工具集,使用它可以方便地对管理信息系统进行分析设计,他几乎包括了数据库模型设计的全过程。利用Power Designer可以制作数据流程图、概念数据模型、物理数据模型,还可以为数据仓库制作结构模型,也能对团队设计模型进行控制。他可以与许多流行的软件开发工具,例如PowerBuilder、Delphi、VB等相配合使开发时间缩短和使系统设计更优化。
    power designer是能进行数据库设计的强大的软件,是一款开发人员常用的数据库建模工具。使用它可以分别从概念数据模型(Conceptual Data Model)和物理数据模型(Physical Data Model)两个层次对数据库进行设计。在这里,概念数据模型描述的是独立于数据库管理系统(DBMS)的实体定义和实体关系定义;物理数据模型是在概念数据模型的基础上针对目标数据库管理系统的具体化

    转载于:https://www.cnblogs.com/caozengling/p/5946256.html

    展开全文
  • 良好的数据库模型设计可以保证数据资产的持久性,可读性,有效性和完整性。 该从哪些方面规范数据模型提高数据库设计的质量呢? 根据Steve Hoberman的《Data Model Scorecard》,主要几个方面: 模型正确性...

    良好的数据库模型设计可以保证数据资产的持久性,可读性,有效性和完整性。

    该从哪些方面规范数据模型,提高数据库设计的质量呢?

    根据Steve Hoberman的《Data Model Scorecard》,主要几个方面:

    Data Model Scorecard

    1. 模型正确性(模型是否清晰表达了业务逻辑)How well does the model capture the requirements?

    由于需求调研不完备,需求理解不充分,项目前期缺乏足够的沟通,以及数据调研准备不足、后期测试不充分等原因。数据模型(尤其是逻辑模型)与实际业务逻辑脱节,在后期使用数据时,需要在数仓或数据中台的数据架构上进行大幅调整。这是为什么标杆企业在企业级数据模型上投入很大。

    2. 模型完整度 How complete is the model?

    元数据定义和描述不完整,

    例如字段constraints限制,参照完整性的定义,是否为空。某个字段的default值,是否有设置。

    另外就是表的描述,字段含义的描述等信息,是否提供。

    你很难想象下游数据开发和数据应用去理解一个完全没有表定义,字段含义定义有多痛苦。

    3. 模型的命名标准遵从度 How well does the model follow naming standards? 表/字段的命名词素必须易于理解的,经典的做法是将企业常用的业务术语及其缩写放在命名词典中(Naming Standard),表/字段的命名必须由命名词典的词素组合而成。很多系统用汉语拼音命名的都比比皆是,下游数据开发和数据应用常常要花80%的时间在翻数据,猜数据,理解和定位可信数据上。Datablau DDM数据建模工具内置4000多条行业通用命名词典。

    4. 模型的可读性How well has the model been arranged for readability?

    有的团队直接用DDL脚本管理数据字典,也有用Excel,Word管理,基本没有可读性,也无法管理。有ER图的,定义也基本为空的,这种例子比比皆是。另一方面模型管理工具不一致,从PowerDesigner、ERWin,没有统一集中的数据模型库,数据字典散落在各个团队,建模工具也没有版权,存在一定法律风险。

    5. 模型里中文名、业务定义的质量 How good are the definitions?

    很多项目数据模型和实际数据库schema就是俩东西,字段的含义、表的含义基本靠猜,如果命名规范也没有,那更是猜无可猜。所以,表、字段的中文名称,业务定义是必须有的。

    6. 模型的元数据准确性,元数据与实际数据是否匹配 How well does the metadata match the data?

    例如,最开始某表/某字段具备一种含义,而开发过程中发现用这表/字段还能干点别的类似的事,然后为了程序不修改,表名和字段名也不改了,直接应用。再例如,原来的表是客户,起名叫CUSTOMER, 里面记录CUSTOMER ID,Name,地址,电话等等,然后发现有的时候,我们的供应商需要的字段差不多,本来应该建个表叫VENDOR,结果为了图省事直接用CUSTOMER表,并且模型里面也不加解释。

    7. 模型与企业级数据模型/标准的一致性 How consistent is the model with the enterprise? 企业存在大量存量系统,但却无法知道系统的表/字段与企业级数据模型与标准的映射关系。后面有机会做数据标准化改造,也无法定位和评估。 

     

    低质量数据模型的后果

    由于企业缺乏对数据模型的管控,造成整个企业都是各个项目有各个项目的标准,但缺乏企业级的标准,这也是数据质量问题最主要的根源。

    低质量的数据模型会给企业带来哪些影响呢?

    1.  大量修改和重构

    尤其是我们提到的没有准确捕获到需求的这种错误。

    2.  重复建设

    由于低质量的数据模型,造成系统很难可持续的发展,当需要添加新功能时,很难在原有系统基础上添加,只能重做。

    3.  知识丢失

    模型文档不完备,比如前面提到的缺乏定义之类的问题。这些知识都当时封存在Data Modeler的脑子里,有个经典的段子:三个月之内只有我知道,三个月之后只有上帝知道。而数据仓库项目又经常是经年累月的长期的过程,项目里面的人来的来走的走,知识没法传承。

    4.  模型难以理解,下游开发困难

    假设你弄一套千八百张表的数据库,然后还不给说明书,你让下游的Data Mart的设计者,报表等应用的设计者怎么进行开发?

    5.  高成本

    上面说的这些,都会带来高成本,包括项目周期的延长,包括人员的培训,包括开发的周期,错误的增加等等。

    6.  数据质量低下

    比如你数据仓库这一层模型做的质量低下,你就很难保证下游的Data Mart会正确的使用。也就难保证基于其的报表的数据是正确的。

    7.  新业务无法展开

    比如你新建一个数据应用,基于主数据的,而主数据的数据质量一塌糊涂,是不是你这个新应用就没法做起来啊。

     

     

    Datablau DDM模型设计工具内置数据模型设计规范

     

    实时检查和提示不规范的数据模型设计


    申请试用,请访问www.datablau.cn 或联系

    邮箱:sale@datablau.com

    电话:400-6033-738

     

    Datablau Data Modeler简介

    DDM(Datablau Data Modeler)是国内首创的专业建模工具,是数据治理体系的重要组成部分。数据模型是“所有系统、文档和流程中包含的所有数据的语境。是生数据的知识。”换句话说,如果没有数据模型,组织IT系统中收集和存储的所有数据都会失去意义,也就没有业务价值。


    Datablau简介

    北京数语科技有限公司(以下简称“数语科技”)成立于2016年,是专注于数据治理领域的国内自主知识产权的专业软件产品提供商,主要业务是数据治理软件产品的研发与销售。数语科技的创始团队全部来自CA erwin,天然具有世界级水准的软件产品开发能力。

    创始人兼CEO王琤:曾任职erwin全球研发总监,拥有超过十年以上数据建模和数据管理的从业经验。

    CTO朱金宝:曾任职erwin首席架构师,先后服务多家全球知名企业,并曾全程参与中国建设银行数据治理项目,目前全面负责Datablau软件平台的研发工作和关键项目的实施工作。

    数语科技根据DAMA理论和中国国情独立研发Datablau新一代数据治理平台,平台由Datablau DDM数据建模产品和Datablau DAM数据资产管理平台两大部分组成,全部拥有软件著作权和知识产权,一站式全面满足中国企业的数据治理需求。其中数据建模产品DDM是Datablau填补国内空白的重量级产品,帮助中国客户摆脱国外产品的垄断现状。2018年,Datablau数据治理平台通过了中国信息通信研究院严格苛刻的产品评测并获得的“最佳大数据产品”奖。

    更多渠道了解我们
    官网:www.datablau.cn
    关注我们,及时了解数据治理干货

    展开全文
  • 转载自数据库模型设计——主键的设计 在数据库设计时,主要就是对实体和关系的设计,实体表现出来就是表,关系表现出来就是外键。而对于一个表,由两部分组成:主键和属性。主键的简单定义就是表中为每一行数据...

    转载自数据库模型设计——主键的设计

    在数据库设计时,主要就是对实体和关系的设计,实体表现出来就是表,关系表现出来就是外键。而对于一个表,由两部分组成:主键和属性。主键的简单定义就是表中为每一行数据的唯一标识。其实更准确的说法,每一行数据的唯一标识是候选键(Candidate Key),一个表中可以有很多个候选键,主键是候选键中的一个,主要用于更方便的检索和管理数据。一个表中可以有多个候选键,但是只有一个主键。由于主键常常用于检索数据,也用于表之间的关联,所以主键的设计的好坏将会严重影响数据操作的性能。下面来介绍下主键设计的几个考虑因素。

    主键的数据类型

    最常见的主键数据类型是数字类型、固定长度的字符类型和GUID类型。通常情况下,RDBMS会在主键上建立聚集索引(SQL Server默认都这么做),由于我们使用B-Tree的数据结构来存储索引数据,所以一般对主键有以下两个要求:

    • 越短越好——越短在一个Page中存储的节点越多,检索速度就越快。
    • 顺序增长——如果每一条插入的数据的主键都比前面的主键大,那么B-Tree上的节点也是顺序增长的,不会造成频繁的B-Tree分割。

    越短越好是为了查询的速度快,顺序增长是为了插入速度快。

    有了这两个要求,我们再来分析下各个数据类型:

    • 数字类型:根据数据量决定是用Int16还是Int32或者Int64,能用Int32的就不需要使用Int64。
    • 字符类型:基本不满足前面提到的2点要求,字符类型一般不会很短,而且也很可能不是顺序增长的,所以不是特别推荐的主键类型。当然如果确实业务需求使用字符类型,那么也尽量使用char(XX)而不要使用varchar(XX),因为在RDBMS中,对于定长字符串和变成字符串的数据结构和处理是不一样的,varchar的性能更差。
    • GUID类型:这个类型并不是所有数据库都有对应的数据类型,SQL Server有uniqueidentifier,MySQL没有。GUID类型在SQL Server中是16个字节,不算短,比4个字节的Int32长多了。在插入新数据时,GUID一般都是使用NewId()这样的生成随机GUID的方式生成的,所以也不是顺序增长的,在插入速度上不会很快。

    通过上面的比较,我们知道使用数字类型是更好的方式,那么我们为什么还会有人使用GUID和字符串来当主键呢?那是因为:

    相对于数字类型,字符类型更易读易记,在检索关联的数据时,更方便直接。

    GUID的优势是全球唯一,也就是说同样的系统,如果部署了多套环境,那么里面的数据的主键仍然是唯一的,这样有助于数据的集成。典型的例子就是一个系统在全国每个省份都部署一套,每个省份的数据各种录入,互不干扰,然后再把每个省的数据集成起来为总部做分析。

    数据库主键与业务主键

    前面说到一个表可能有很多个唯一标识的候选键,那么这么多候选键中,哪个应该拿来做主键呢?一种方案是再新建一个独立的字段作为主键,该字段并没有业务含义,只是一个自增列或者流水号,用于唯一标识每一行数据,这是数据库主键。另外一种方案是选择其中较短较常用的属性作为主键,这是业务主键。个人建议是不要使用任何有业务含义的字段作主键,而是使用一个自增的(或者系统生成的)没有实际业务意义的字段作为主键。为什么呢?主要是出于以下考虑:

    具有业务意义的字段很可能是用户从系统录入的,不要信任用户的任何输入,只要是用户自己录入的,那么就很有可能录错了,如果发现录入错误,这个时候再对主键进行修改,将会涉及到大量关联的外键表的修改,是很麻烦的一件事情。比如在做人员表的时候,就不要使用员工号或者身份证号做主键。

    具有业务意义的字段虽然在当前阶段是唯一的,是不变的,但是并不能保证随着公司政策变动、业务调整等原因,导致该业务字段需要修改,以满足新的业务要求,这个时候要修改主键也是很麻烦的事情。比如部门表,我们以部门Code作为主键,但是后来部门变动,Code修改,则系统部门表的主键也得更改。

    还有一个原因是业务主键在数据录入的时候不一定是明确知道的,有时我们会在不知道业务主键的情况下,就录入其他相关信息,这个时候,如果使用业务主键做数据库的主键,那么数据将无法录入。比如员工表把员工号作为主键,那么员工还没有入职,没有员工号的时候,HR需要先维护一些该预入职员工的信息是不可能的。

    联合主键

    联合主键就是以多个字段来唯一标识每一行数据。前面已经说到主键应该越短越好,而且是建议是一个没有意义的自增列,那么是不是就不会再需要联合主键呢?答案是否定的,我们仍然可能会使用到联合主键。联合主键主要使用在多对多的关系时,中间表就需要使用联合主键。在简单的多对多关系中,我们不需要为中间的关联建立实体,所以中间表可能就只需要两列,分别是两个实体表的主键。

    主键值的生成

    主键值的生成可以参考NHibernate的配置,概况下来主要有这么几种生成方式:

    • 自增,这是SQL Server常用的主键生成方式,完全由数据库管理主键的值。
    • Sequence对象,这是Oracle常用的主键生成方式,现在SQL Server已支持。主要是在数据库中有一个Sequence对象,通过该对象生成主键。
    • GUID,这是用于GUID类型的主键,可以使用newid()这种数据库提供的函数,或者使用程序生成Guid并赋值。
    • Hilo值,这是一种使用高低位算法生成的数字值的主键。该值由NHibernate程序内部生成。
    • 其他程序赋值,完全由程序根据自己的算法生成并赋值。

    更详细的主键生成,我们可以参见:http://www.cnblogs.com/chenkai/archive/2009/04/13/1434912.html

    主键与索引

    在概念和作用上,主键与索引是完全两个不同的东西,但是由于我们大部分情况下都是使用主键检索数据,所以大部分数据库的默认实现,在建立主键时会自动建立对应的索引。

    以SQL Server为例,默认情况下,建立主键的列,就会建立聚集索引,但是实际上,我们可以在建立主键时不使用聚集索引。另外还有一个唯一约束(索引)的概念,该索引中的数据必须是唯一不能重复的,感觉和主键的意义一样,但是还是有一点点区别。

    主键是只能由一个,而唯一约束(索引)在一个表中可以有多个。

    主键不能为空,而唯一约束(索引)是可以为空的。


    展开全文
  • 数据库模型设计方法规范 1.1、数据建模原则性规范 原则 对于涉及数据库的项目,需要构建数据库逻辑模型图,逻辑模型图是项目组成员之间在数据库层面...
  • 播客系统数据库模型设计 文章目录Django-2.播客系统数据库模型设计分析数据库设计创建数据库用户表user文章表post项目项目构建 分析 多人使用播客系统。采用BS架构实现。市面上多数某某系统归根结底都是这种...
  • 数据库模型设计专栏

    2008-01-23 23:44:10
    [b]数据库模型设计专栏[/b] 跨行业通用数据库模型 [b][url]http://blog.csdn.net/liu7537/[/url][/b]
  • 据库模型设计的全过程。利用PowerDesigner可以制作数据流程图、概念数据模型、物理数据模型、面 向对象模型。 在项目设计阶段通常会使用PowerDesigner进行数据库设计。使用PowerDesigner可以更加直观的表现 出数据库...
  • IM数据库模型设计

    2019-12-29 11:47:13
    以TB_USER为例,对应的数据模型如下。 其中要明白uuid的概念 import org.hibernate.annotations.*; import javax.persistence.CascadeType; import javax.persistence.*; import javax.persistence.Entity; ...
  • 数据库模型设计案例

    2020-01-10 11:28:43
    https://www.cnblogs.com/studyzy/archive/2010/01/11/1643976.html
  • SKU与SPU 数据库设计 历史浏览记录功能
  • 问题1:navicat的模型设计里面的标签有啥作用啊? 问题2:设计完表模型后如何...问题3:模型设计能不能直接连数据库也一起自动生成啊? ![图片说明](https://img-ask.csdn.net/upload/201703/23/1490236245_838043.png)
  • 数据库模型设计连载(一般常见)

    千次阅读 2012-03-14 17:03:04
     最近一直有个愿望:希望把自己所从事的数据库模型设计方面的工作经验和想法付诸文字,算是对此前工作的一个总结,今天终于开始了万里长征的第一步。  在正式开始之前,我先向大家介绍两本书——《数据模型资源...
  • 数据库模型设计中,最基本的实体关系有三种:一对一、一对多、多对多。关于一对多和多对多使用的情况较多,之前也有过一些讨论,现在来说明一下在数据库中一对一的模型设计。 首先,关系数据库中使用外键来表示一...
  • 背景:软件project文档之《数据库设计说明书》的结构设计部分要明白规划出数据库的概念结构设计、逻辑结构设计、物理结构设计,就是设计数据库的概念模型、逻辑模型、物理模型。那么。何为数据库的概念模型、逻辑...
  • 在我们数据库模型设计领域,有一个很有趣的比例——“5:3:2”,我称之为“五三二法则”。具体是什么含义呢? 这个“5”,表示大约50%的功能设计是跨行业通用的,不管你是做商业流通项目、还是电子政务项目、或者是...
  • 有几年经验了,也经历了不少项目,接触了各种数据模型,可是数据库模型设计范式只是知道有这个东西,具体范式的要求是什么呢?你是不是还很模糊?赶紧来普及下吧,第一范式、第二范式、第三范式简单例子理解。
  • 曾经何时,发现自己设计的表,根本不满足业务发展。 1.业务ID的设计,如商品表,单表就不说了,在如今海量数据的背景下,当然要分库发表啦。  商品表,ID,item_id,表位置,ID当然就是主键了,在单表情况下,保持...
  • 创建物理模型  1. 文件(File)---------新建(New)  2、     3.创建物理模型  (1)工具条-----------------点工作区建表  (2)工具条-------------双击工作区中的表  (3)  (4)设置表中的文字大小
  • Navicat数据库模型设计总结:

    千次阅读 2019-06-28 17:06:41
    一,独立的属性必须分开。多对多关系可以合并在一张表上。(仅是初步的认识,后面待补充) 1,班级+老师+课程是两两多对多的形式,合在一起写,这个表会很...补:表格设计表名称不要占用关键字如group,order等
  • 软件工程文档中的数据库模型设计

    千次阅读 2015-08-21 11:43:17
    背景:软件工程文档之《数据库设计说明书》的结构设计部分要明确规划出数据库的概念结构设计、逻辑结构设计、物理结构设计,就是设计数据库的概念模型、逻辑模型、物理模型,那么,何为数据库的概念模型、逻辑模型、...
  • 在企业数据库设计中,经常会遇到一个需求,就是希望把操作之前的数据保留下来,能够看到操作之前是什么数据,操作之后是什么数据。对于这种需求,我们可以使用保留历史数据或者使用版本来实现。为了能够保留历史数据...
  • 转载于:https://www.cnblogs.com/qq610039525/p/9225394.html
  • 下面来介绍数据库模型设计之第一范式、第二范式、第三范式 数据库范式一般满足第三范式足矣 (1)第一范式(无重复的列)  定义:数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非...
  • 三个数据库模型设计

    千次阅读 2010-01-17 23:26:00
    概念数据模型设计与逻辑数据模型设计、物理数据模型设计数据库及数据仓库模型设计的三个主要步骤。 在数据仓库领域有一个概念叫conceptual data model,中文一般翻译为“概念数据模型”。 概念数据模型是最终用户...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,097
精华内容 6,838
热门标签
关键字:

数据库模型设计