Database

  • 前言 数据库设计工具
    • 为什么要用建模工具?
  • 1.数据库设计的重要性
  • 2.开发工具
  • 3.数据库三大范式
  • 4.设计工具
  • 5.设计习惯
  • 如何使用?

前言 数据库设计工具

  • PowerDesigner是Sybase的企业建模和设计解决方案。它可以用来话ER图。
  • ER图是什么呢?E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。它是描述现实世界关系概念模型的有效方法。是表示概念关系模型的一种方式。

为什么要用建模工具?

用它可以画出表与表之间的关系,详细的介绍。如果布置开发任务,可以看图说话,比打开表一个个的看要好给人叙述。对吧?

1.数据库设计的重要性

要谈数据库性能—直接和数据库设计挂钩;
如果不合理-----后续的开发,升级的时候,完全去开不下去;
关系型数据库:存储信息+描述关系;

2.开发工具

PowerDesigner+Microsoft SQL Server Management Studio 18 2012以上;
设计

  1. 需求分析,明白需要存储什么
  2. 大概设计阶段-----E-R图,解决多方沟通问题
  3. 详细设计----精确到每一个字段
  4. 关系
    表和表之间的关系
  5. 一对一:一个—身份证 ,一夫一妻,数据表垂直切分:相同的主外键
  6. 一对多:订单—多个商品; 省----市,国家—公民; 主外键来体现
  7. 多对多:学员----课程,家长—子女 ,用户–菜单 一般情况下:中间表/关系表

3.数据库三大范式

范式:建议、不是说绝对的要遵循
a. 第一范式:
一范式:每一个列都保持原子性,不可分割;
从表字段的角度来说讲:用户----多个电话:座机、手机号码1、手机号码2
UserInfo-----Detail(JSON格式的字符串----这个用户的所有信息)------查询快—更新慢
从字段的角度来谈单一职责,一个列只存储一个信息—可以来3个字段
优点:更新的时候快,查询也不影响
缺点:部分场景更新成本比较高
b.第二范式:
二范式:在第一范式的基础上,每一列和主键相关; 要求要有主键
Class–班级 一个列存储班级,一个列存储学生
Student —学生,
【不推荐】 都存储一个表,一个字段表示班级,另一个字段表示学员;
推荐使用多个表来存储,学员一个表,班级一个表;主外键的关系来关联;
从每一条记录(对象)的角度来谈单一职责;
c.第三范式:
三范式:每一列的跟主键直接相关,而不是简介相关
公司—用户
CompanyInfo
UserInfo ----UserId,UserName,CompanyInfoId,CompanyName(冗余字段)
冗余字段:查询很便捷(查询到用户就能知道是哪个公司),更新不方便(定时作业,更新时候
去维护冗余字段);
在违反这个三大范式的时候回带来方便;主要根据项目的实际情况;

4.设计工具

  1. PowerDesigner
  2. Workbench
  3. Datablau Data Modeler
    PowerDesigner可以直接生成sql语句,也可以从数据库生成一个E-R
    PowerDesigner工具下载:
    提取码:zx40

5.设计习惯

  1. 命名:尽量做到首字母大写,(帕斯卡命名规范/驼峰规则) 推荐帕斯卡,下划线
    坚决抵制:中文,提倡使用英文单词,抵制汉语品拼音
  2. 主键: 建议大家只是用来做为一个数据的标识,尽量不要让主键具有具体的业务含义;(int/bigint
    类型)默认带有聚集索引;主键查询效率很高;建议尽量让计算机生成;按照规则生成
    a.自增主键:数据库自动生成,int/bigint,Sqlserver默认聚集索引(最快的),int主键Id一旦
    生成不能再次修改;
    电商系统—订单–订单主键Id—int/bigInt自增Id,用户在查看订单的时候,就可以看到Id,容
    易泄露一些商业机密;容易让竞争对手获取订单数量;
    问题:
  3. 迁移,主键Id不好维护
  4. 容易泄露信息
    优势:查询性能高,存储占用空间少
    b.联合主键:多个字段组合起来确定数据唯一(不推荐)
    c. Guid:全球唯一,插入数据库也可以设置成系统自动升,也可以自己生成;
    优势:数据迁移方便;没有聚集索引(查询效率会比较低)
    劣势:(查询效率会比较低),存储空间占据也会大一些
  5. 外键:描述数据关系+约束
    严格约定数据的关系,级联删除,级联更新,导入数据的时候也很麻烦;
    建议:如果系统要求严格数据,可以使用外键;
    也可以通过程序来约束;虚拟外键;不是通过数据库来完成数据的约束
    合理使用,建议大家不要使用;大型系统架构,数据本来就是性能的第一瓶颈,尽量少让数
    据库做事儿;

PS:如果数据库主键ID要往其它库同步的时候,可以通过去掉主键,更新完后再把主键加上。或者进行查询更新。

如何使用?

详细使用地址

14.sql server数据库设计的重要性(by-朝夕)相关推荐

  1. 【学习记录】第一章 数据库设计-《SQL Server数据库设计和开发基础篇视频课程》...

    一.课程笔记 1.1  软件开发周期 (1)需求分析阶段 分析客户的业务和数据处理需求. (2)概要设计阶段 设计数据库的E-R模型图,确认需求信息的正确和完整. /* E-R图:实体-关系图(Ent ...

  2. 第6章 SQL Server数据库设计

    6.1. 概述 数据库设计是指对于给定的一个应用环境,构造最优的数据库模式,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求). 可以将数据库设计理解成三个要素:应用环境.数据库模式 ...

  3. SQL Server 数据库设计

    一.数据库设计的必要性 在实际的软件项目中,如果系统中需要存储的数据量比较大,需要设计的表比较多,表与表之间的关系比较复杂,那我们就需要进行规范的数据库设置.如果不经过数据库的设计,我们构建的数据库不 ...

  4. SQL SERVER数据库设计与现实

    2013-05-05数据库设计 一.数据库系统的相关概念: 1.数据: 数据是对客观休息的一种描述,它是由能被计算机识别与处理的情况.字符等符号结构的集合,即数据库是指描述事物的符号记录. 2.数据库 ...

  5. SQL Server数据库设计

    一.实验目的 掌握数据库设计的方法 二.实验操作方法和步骤 自定义主题,设计数据库,要求有外键关联 ① 建立数据库"教务系统管理",新建表"学生基本信息".&q ...

  6. SQL Server 数据库设计(ER图)

    用户表(User) ID 用户编号,主键 UserName 用户名 UserPwd 用户密码 Lever 用户级别 Ison 是否在线 订单表(Order) ID 订单号,主键 UuserId 客户编 ...

  7. vfp spt连接mysql_VFP中用SPT访问SQL Server数据库_mysql

    VFP因它简单易学,可快速建立应用软件而深受广大程序员喜爱,但其数据库系统不安全也令广大用户非常头痛.随着MS SQL Server数据库系统的推广应用,其强大的安全性能普遍受到好评.笔者在长期的编程 ...

  8. 使用PowerDesigner 设计SQL Server 数据库

    工具: Sybase PowerDesigner 12.5 Microsoft  SQL Server 2005 第一步:概念数据模型 打开PowerDesigner 软件,设计"概念数据模 ...

  9. SQL Server数据库技术大全——14讲 执行计划

    SQL Server数据库技术大全--14讲  执行计划 讲解了如何查看统计信息,如何查看执行计划以及如何简单的优惠数据库. [hjp2=500,375,true]http://player.youk ...

最新文章

  1. 浅说 XSS 和 CSRF
  2. Spring JdbcTemplate的queryForList(String sql , Class<T> elementType)返回非映射实体类的解决方法
  3. python 私有和保护成员变量如何实现?—— 单下划线 开始的成员变量叫做保护变量,意思是只有类实例和子类实例能访问到这些变量; 双下划线 开始的是私有成员,意思是只有类对象自己能访问...
  4. 06:甲流疫情死亡率
  5. 发现自己的代码写的越来越玄幻了
  6. 达摩院 2020 预测:工业互联网超融合来袭!
  7. qdir安装 多窗口资源管理软件
  8. java 日期calendar_Java中用Calendar类计算周和周的起始日期(转)
  9. Navsoso引领HUD抬头导航潮流
  10. 手机号归属地区编码_Excel隐藏手机号中间4位的6种方法,你见过几种?
  11. Explicit 关键字和各种类型转换(转)
  12. oracle磁带库清洁带标签,分享那些在磁带库上爬过的坑
  13. xml文件中SQL语句的大于号、小于号、等于号的转义问题
  14. 老生常谈-forwar的与redirect的区别与联系
  15. laravel 上传图片
  16. 广东省公共资源交易平台逆向分析
  17. ArcGIS Server中的各种服务
  18. atca背板_高速背板及相关标准介绍
  19. Metronic-全球销量第一的HTML管理后台模版
  20. 嵌入式端音频开发(基础篇)之 1.5 opus应用指南

热门文章

  1. TreeView节点设置图标
  2. linux自动拉黑服务,CCKiller:Linux轻量级CC攻击防御工具,秒级检查、自动拉黑和释放...
  3. 【算法练习】投篮大赛
  4. 正当防卫4无法启动程序因为计算机中丢失,正当防卫4缺少dll文件解决方法介绍-正当防卫4epic版缺少dll文件怎么解决_牛游戏网...
  5. Executor多线程框架学习笔记(五):FutureTask
  6. vue 前端配置按钮权限
  7. linux查看/打开/关闭防火墙
  8. 刷主板bios改变机器码_双十一年终狂欢购 热门主板推荐 - 业界动态
  9. 五一假期怒肝一天大厂Redis面试高频问点,这解析不全你找我!
  10. stc15w4k系列单片机问题总结