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

    千次阅读 2019-06-12 23:40:02
    数据库结构设计介绍 良好的数据库逻辑设计和物理设计是数据库获得高性能的基础。这就要求我们在设计数据库时候,不能只考虑业务需要还要考虑将来要怎样使用这个数据库来编写什么样的查询语句才能得到我们想要的数据...

    数据库结构设计介绍
    良好的数据库逻辑设计和物理设计是数据库获得高性能的基础。这就要求我们在设计数据库时候,不能只考虑业务需要还要考虑将来要怎样使用这个数据库来编写什么样的查询语句才能得到我们想要的数据,所以也要根据我们写的查询语句来设计数据库结构。
    数据库的设计要达到尽量使我们的查询语句简单,为了达到这个目的,需要考虑很多因素,比如进行一些反范式化设计,可能会加快一些查询速度,但是又会对其他语句造成一定影响,所以一定要平衡各种因素以达到更好的效果。
    数据库结构优化的目的:
    1、尽量减少数据冗余(不是避免,有时也是必要的)
    2、尽量避免数据维护中出现更新、插入和删除异常
    插入异常:如果表中某个实体随着另一个实体的存在而存在,这样的表就存在插入异常
    更新异常:如果更改表中的某个实体的单独属性时,需要对多行进行更新,这样的表就存在更新异常
    删除异常:如果删除表中某一个实体则会导致其他实体消失
    3、节约数据存储空间
    4、提高查询效率
    数据库结构设计的步骤
    1、需求分析:全面了解产品设计的存储需求(非常重要)
    存储需求
    数据处理需求
    数据安全性和完整性
    2、逻辑设计:设计数据的逻辑存储结构(范式)
    数据实体之间的逻辑关系,解决数据冗余和数据维护异常
    3、物理设计:根据所使用的数据库特点进行表结构的设计
    4、维护优化:根据实际情况对索引、存储结构等进行优化
    数据库设计范式
    设计出没有数据冗余和数据维护异常的数据库结构
    1NF:
    数据库表中的字段都只具有单一属性
    单一属性的列由基本数据类型所构成
    设计出来的表是简单的二维表
    每一行没有重复
    2NF:
    要求一个表中只有一个业务主键,也就是符合第二范式的表中不能存在非主键列只对部分主键的依赖关系
    3NF:
    每一个非主属性既不部分依赖也不传递依赖于业务主键
    什么叫做反范式化设计
    反范式化是针对范式化而言的,就是为了性能和读取效率的考虑而适当的对数据库设计的要求进行违反,而允许存在少量的数据冗余,换句话说反范式化是使用空间来换取时间
    范式化设计的优缺点
    优点:
    可以尽量减少数据冗余
    范式化的更新操作比反范式化更快
    范式化表通常比反范式化更小
    缺点:
    对于查询需要多个表进行关联
    更难进行索引优化
    反范式化优缺点
    优点:
    减少表的关联
    可以更好的进行索引优化
    缺点:
    存在数据冗余及数据维护异常
    对数据修改需要更多的成本
    物理设计介绍
    1、定义数据库、表及字段的命名规范
    数据库、表及字段的命名要遵守可读性原则
    数据库、表及字段的命名要遵守表意性原则
    2、选择合适的存储引擎
    存储引擎 事务 锁粒度 主要应用 忌用
    MyISAM 不支持 支持并发插入的表级锁 Select、insert 读写操作频繁
    InnoDB 支持 支持MVCC的行级锁 事务处理 无
    MRG_MYISAM 不支持 支持并发插入的表级锁 数据仓库、分段 全局查找过多场景
    Arxhive 不支持 行级锁 日志记录,只支持select、insert 需要随机读取、更新、删除
    Ndb cluster 支持 行级锁 高可用 大部分应用

    3、为表中的字段选择合适的数据类型
    4、建立数据库结构
    数据类型的选择
    当一个列可以选择多种数据类型时,优先考虑数字类型,其次是日期或二进制类型,最后是字符类型。对于相同级别的数据类型,应该优先选择占用空间小的数据类型

    展开全文
  • datagrip导出数据库结构和数据库数据

    千次阅读 2020-08-18 16:06:15
    datagrip导出数据库结构和数据库数据 导出数据和结构 只导出结构

    datagrip导出数据库结构和数据库数据

     

    导出数据和结构

     

     

     

     

    只导出结构

     

     

     

    如果遇到问题

     

     

     

    centralsystem --column-statistics=0 --result-file="C:\\Users\\FengZhiheng\\Desktop\\阿里云数据库全备份.sql"
    展开全文
  • Mysql数据库结构优化

    千次阅读 2017-01-09 21:23:09
    数据库结构优化的目的 数据库结构设计的步骤 数据库设计范式 数据库设计的第一范式 数据库设计的第二范式 数据库设计的第三范式 反范式化设计 数据库物理设计 定义数据库表及字段的命名规范 选择合适的存储引擎 物理...

    影响Mysql数据库的因素

    1. 服务器硬件
    2. 操作系统
    3. mysql服务器配置
    4. 数据库结构(影响最大)

    良好的数据库逻辑设计和物理设计是数据库获得高性能的基础

    数据库结构优化的目的

    1. 减少数据的冗余
    2. 尽量避免数据维护中出现 更新、插入、删除异常
    3. 节约数据存储空间

    数据库结构设计的步骤

    1. 需求分析:全面了解产品设计的存储需求
    2. 逻辑设计:设计数据的逻辑存储结构
    3. 物理设计:根据所使用的数据库特点进行表结构设计
    4. 维护优化:根据实际情况对索引、存储结构等进行优化

    数据库设计范式

    数据库设计的第一范式:

    • 数据库表中的所有字段都具有单一属性(即字段不能再分割了)
    • 单一属性的列是由基本数据类型所构成的
    • 设计出来的表都是简单的二维表

    数据库设计的第二范式:

    第二范式在第一范式的基础之上更进一层。第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。

    数据库设计的第三范式:

    首先要满足第二范式,其次非主属性之间不存在函数依赖。由于满足了第二范式,表示每个非主属性都函数依赖于主键。如果非主属性之间存在了函数依赖,就会存在传递依赖,这样就不满足第三范式。

    总结:
    第一范式就是原子性,字段不可再分割;
    第二范式就是完全依赖,没有部分依赖;
    第三范式就是没有传递依赖

    反范式化设计

    反范式化就是为了性能和读取效率的考虑而适当的对数据库设计范式的要求进行违反,而允许存在少量的数据冗余,也就是使用空间来换取(查询)时间

    不能要求完全按照范式化的要求进行数据库设计,要考虑以后表的使用(查询等)
    举个例子:比如订单表中应该保留当前购买商品的价格、商品的名称(商品的价格是会变动的,这很危险)

    范式化设计的优缺点
    优点:

    1. 可以尽量的减少数据冗余
    2. 范式化的更新操作比反范式化更快
    3. 范式化的表通常比反范式化更小

    缺点:

    1. 对于查询需要关联多个表
    2. 更难进行索引优化

    反范式化设计的优缺点
    优点:

    1. 可以减少表的关联
    2. 可以更好的进行索引优化

    缺点:

    1. 存在数据冗余和数据维护异常
    2. 对数据修改需要更多的成本

    数据库物理设计

    • 定义数据库、表及字段的命名规范
    • 选择合适的存储引擎
    • 为表中的字段选择合适的存储引擎
    • 建立数据库表

    定义数据库、表及字段的命名规范

    • 数据库、表、字段的命名要遵守可读性原则
    • 数据库、表、字段的命名要遵守表意性原则(采用英文,且意思准确)
    • 数据库、表、字段的命名要遵守长名原则(尽量不要使用缩写)

    选择合适的存储引擎

    这里写图片描述

    物理设计-数据类型的选择

    为表中字段选择合适的数据类型:
    当一个列可以选择多种数据类型时,应该优先考虑数字类型,其次是日期类型或二进制类型,最后是字符类型。对于相同级别的数据类型,应该优先选择占用空间小的数据类型

    如何选择正确的整数类型

    这里写图片描述


    如何选择正确的实数类型

    这里写图片描述


    如何选择varchar和char类型

    varchar类型特点:

    • varchar和char是以字符为单位的,不是字节。一个字符可能占用多个字节
    • varchar用于存储变长字符串,只占用的必要的存储空间。

    char类型特点:

    • char类型是定长的
    • 字符串存储在char类型的列中会删除末尾的空格
    • char类型的最大宽度为255

    varchar使用场景:

    • 适用于存储很少被更新的字符串列

    char使用场景:

    • 适合存储长度近似的值
    • 适合存储短字符串
    • 适合存储经常更新的字符串

    如何存储日期类型

    datatime类型

    • datatime类型与时区无关,占用8个字节的存储空间
    • 存储范围为1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
    • 如果需要存储微秒时间,则需要指定宽度,比如datetime(6)

    timestamp类型

    • timestamp类型占用4个字节,显示依赖于所指定的时区
    • 范围为1970-01-01 08:00:01到2038-01-19 11:14:07
    • TIMESTAMP支持的范围比DATATIME要小,容易出现超出的情况
    • TIMESTAMP类型在默认情况下,insert、update 数据时,TIMESTAMP列会自动以当前时间(CURRENT_TIMESTAMP)填充/更新。
    • TIMESTAMP比较受时区timezone的影响以及MYSQL版本和服务器的SQL MODE的影响

    date类型和time类型

    • 占用字节比字符串、datetime、int存储类型要少,使用date类型只需要3个 字节
    • 使用date类型还可以利用日期和时间函数进行日期之间的计算
    • 仅有日期值,没有时间部分。以’YYYY-MM-DD’格式显示DATE值,支持的范围是’1000-01-01’到’9999-12-31’。
    • TIME数据类型表示一天中的时间。以”HH:MM:SS”格式显示TIME值。支持的范围是’00:00:00’到’23:59:59’。

    使用日期时间存储类型注意事项

    • 不要使用字符串类型来存储日期、时间数据,日期时间类型通常比字符串占用更少的存储空间
    • 日期时间类型在进行查找过滤时,可利用日期来进行对比
    • 日期时间类型有丰富的处理函数,可以方便的对日期类型进行计算
    • 使用int存储日期时间,不如使用timestamp

    参考链接

    数据库设计三大范式
    第五章 SqlServer之数据库三大范式

    MySQL之char、varchar和text的设计
    Mysql时间字段格式如何选择,TIMESTAMP,DATETIME,INT?

    展开全文
  • 数据库结构比较和结构迁移工具

    千次阅读 2018-04-22 17:47:39
     支持的功能: 1、数据库结构比较,将结构差异生成更新脚本,并可以直接运行更改目标数据库结构。支持表、视图、存储过程、函数等。 2、数据库表数据差异比较,根据数据差异形成insert、update、delete语句,并可...

        支持的数据库包括MySql、MSSql、Postgresql数据库。

        支持的功能:

        1、数据库结构比较,将结构差异生成更新脚本,并可以直接运行更改目标数据库结构。支持表、视图、存储过程、函数等。

        2、数据库表数据差异比较,根据数据差异形成insert、update、delete语句,并可执行更新目标数据库的数据。

     下载地址

    下载地址:http://www.vidarsoft.cn/download/SQLDiff.zip

    csdn下载地址:https://download.csdn.net/download/swordmanli/10253795

    运行环境

    1、可执行程序SQLDiff.exe

    2、需要.net framework4.0,如果没有环境,请先下载安装

        操作方法:

        打开程序:



    对比数据结构,有差异的结构可以形成更新脚本。如下图。


    也可以针对数据差异作对比,形成insert或update语句。如下图。



    展开全文
  • Oracle-Oracle数据库结构

    万次阅读 2017-06-02 13:16:32
    再谈Oracle数据库结构之前写了一篇文章《Oracle-知识结构漫谈》 粗略的介绍了Oracle数据库接口,在这里再更加详细的描述一下,当做是对原有知识的巩固,温故知新。Oracle体系结构数据库的体系结构是从某一个角度来...
  • Django更新models数据库结构

    千次阅读 2018-12-11 22:08:18
    有时候在我们使用Django设计了models中的数据库结构,并且已经同步了数据库之后,我们突然想在数据表中更新或者增加新的字段,也就是需要修改数据库的结构,会出现以下的问题: C:\Users\Administrator\Desktop\...
  • 数据库结构比较工具

    千次阅读 2017-01-18 20:31:40
    平时要用到数据库结构比较,所以写了这个工具,已实现功能: 1、支持SQLServer和SQLite,后续会推出更多类型数据库支持 2、比较2个数据库所有的表名 3、比较2个数据库所有表的字段名 运行截图 源代码下载地址:...
  • 数据库——数据库结构设计

    千次阅读 2020-03-08 22:21:25
    1 数据库概念设计 2 数据库逻辑设计 3 数据库物理设计 数据库概念设计 概念设计 是数据库设计的 核心环节,通过对用户需求进行综合;归纳;与抽象,形成一个独立于DBMS 的概念模型 数据库概念设计的目标 1 定义与...
  • GreenDao数据库结构升级

    万次阅读 2015-05-15 16:20:17
    1.先用GreenDao工具类编写自动创建代码,按照升级后的最新数据库结构来编写 2.GreenDao工具自动生成的代码覆盖到项目里去 3.在项目里找到对应的自动生成的数据库DaoMaster类 在DaoMaster类里有个内部类DevOpenHelper...
  • 数据库结构设计(逻辑设计和物理设计)

    万次阅读 多人点赞 2018-11-15 12:28:27
    1、数据库结构设计的步骤 需求分析:全面了解产品设计的存储需求 逻辑设计:设计数据的逻辑存储结构 物理设计:根据所用的数据库特点进行表结构设计 关系型数据库:Oracle、SQLServer、MySQL、postgresSQL 非...
  • 阿里云RDS导出数据库结构整理工具

    万次阅读 2018-01-07 13:05:04
    本文使用shell实现一个小工具,可以整理阿里云RDS导出数据库结构的zip文件,整理为可直接使用的sql文件。 阿里云RDS导出的数据库结构sql需要整理的地方 1.解压后sql文件名称缺少数据库名称标识 阿里云RDS导出...
  • 今天博主遇到了个情况,就是要还原数据库的表结构。特此记录一下 通过以下的过程可以达到数据库还原, 且不需要cqlsh登录数据库进行操作的效果。 过程如下: 1.导出数据库描述文件(建表语句) cqlsh 10.200....
  • 请问怎样设计数据库结构更合适?性能更好呢? 最好不要把所有的题目答案放在一个表里面,因为一个人的六次问卷加起来题目要超过1000个,当调查人数几万、几十万甚至更多的人以后数据库性能肯定会降低。
  • 第2章 电商实例数据库结构设计

    千次阅读 2018-06-03 18:07:45
    第2章 电商实例数据库结构设计
  • 大家经常使用PowerDesigner画表结构生成数据库语句用于创建数据库。...本文跟大家分享下,如果使用PowerDesigner连接MYSQL逆向生成数据库结构。 数据库、PowerDesigner的安装本文不在赘述。 想Po
  • 在权限控制下的数据库结构表的具体是什么意思,个人表示看不懂里面的表
  • 数据库结构的设计步骤,具体实例

    千次阅读 2019-05-18 15:04:59
    数据库结构设计的步骤 1.需求分析,全面了解产品设计的存储需求,要存储什么数据,这些数据有什么特点,数据处理的响应时间,是否是批量处理,数据的完整性确定要存储的真正数据,因为要和非开发的人员进行沟通 2....
  • 速达3000数据库结构 [1]http://yiliaocn.blog.hexun.com/13325037_d.html [2]http://yiliaocn.blog.hexun.com/13325133_d.html [3]http://yiliaocn.blog.hexun.com/13325174_d.html [4]...
  • 由于我用的数据库是MySQL,其他数据库也是大同小异,下面比较详细的介绍如何向PowerDesigner中导入MYSQL数据库结构。第一步,需要安装MySQL Connector/ODBC,因为像PowerDesigner连接MySQL,需要...
  • 网上人才招聘系统 JAVA源代码下载(内附数据库结构) 链接下载:网盘下载 二维码下载: 微信小程序全球英才招聘网站demo源码下载.rar
  • powerdesign工具导出数据库结构

    千次阅读 2012-11-20 15:48:48
    如何从powerdesign工具中导出设计好的数据库结构,因为需要对一个项目做数据库结构方面的设计,powerdesign已经设计好了数据库结构,但是要求用word的格式进行展示,百度了下,很多相关知识,但是感觉不是很好。...
  • Oracle数据库结构比对工具 DBCompare

    千次阅读 2013-01-21 10:00:20
    DBCompare的功能是比对两个Oracle数据库结构是否相同,不同点在哪,比如表、视图,以及它们的脚本,并可以执行缺少的表或视图的脚本。 连接数据库的串: ORACLE本机(示例): data source=ORCL;uid=...
  • 数据库结构 学习数据库,先了解一下sql server 的界面吧!人性化的界面帮助初学者更容易上手数据库。 数据库有系统数据库、数据库快照、reportserver 、reportserver tempDB和自定义数据库组成(employee、mysql、...
  • 优惠券数据库结构设计

    千次阅读 2020-05-05 10:29:39
    数据库的概念结构设计 需求分析阶段所得到的应用需求应该首先抽象成信息世界的结构,才能更好地、更准确地用某一DBMS实现。 实例:ER图的设计 数据库的逻辑结构设计 任务就是将概念结构设计阶段设计好的全局E-R图转换...
  • 如何设计数据库结构

    千次阅读 2008-05-20 17:41:00
    time:2008/05/20author skate如何设计数据库结构 如何才能设计一个满足现在的应用,性能又好。而且方便以后的扩展的数据库结构呢,要尽量减少数据库的耦合性。 一般在设计数据库的结构的时候,大家总是从表开始,...
  • Redis 数据库结构

    千次阅读 2015-03-13 18:13:40
    // 数据库号码,用来程序内部选择数据库 private Dictionary dict; // 键值数据 private Dictionary, Long> expires;// 过期信息 }实际上键值数据是字典结构,这里使用HashMap表示键空间键空间的
  •  分布式数据库结构  分布式数据库的典型定义是:分布式数据库是一个数据集合,这些数据在逻辑上属于同一个系统,但物理上却分散在计算机网络的若干站点上,并且要求网络的每个站点具有自治的处理能力,能执行...
  • Notes 数据库结构介绍

    千次阅读 2005-12-13 15:26:00
    Notes 数据库结构介绍环境产品: Lotus Domino平台: 无关版本: specific or ALL问题Notes 数据库结构介绍解答一个 Domino 数据库由数据库头信息和跟随其后的许多note组成,note 是Domino 和 Notes用来存储和组织信息...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 186,847
精华内容 74,738
关键字:

数据库结构