一、设计数据库的重要性

  • 良好的数据库设计

    • 节省数据的存储空间
    • 能够保证数据的完整性
    • 方便进行数据库应用系统的开发
  • 糟糕的数据库设计
    • 数据冗余、存储空间浪费
    • 内存空间浪费
    • 数据更新和插入的异常

二、设计数据库的步骤

  1. 需求分析阶段:分析客户的业务和数据处理需求
  2. 概要设计阶段:设计数据库的E-R模型图,确认需求信息的正确和完整
  3. 详细设计阶段:应用三大范式审核数据库结构
  4. 代码编写阶段:物理实现数据库,编码实现应用
  5. 软件测试阶段:…
  6. 安装部署:…
  • 收集信息

    • 与该系统有关人员进行交流、座谈,充分了解用户需求,理解数据库需要完成的任务
  • 标识实体 (Entity)
    • 标识数据库要管理的关键对象或实体,实体一般是名词
  • 标识每个实体的属性(attribute)
  • 标识实体之间的关系(Relationship)

三、为什么要使用E-R图

1、什么是E-R图

  • E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。
  • E-R图的符号:
符号 含义
方形 实体,一般是名词
椭圆 属性,一般是名词
菱形 关系,一般是动词
  • 实体:现实世界中鱼油区分其他事物的特征或属性并与其他事物有联系的事物。
  • 属性:属性可以理解为实体的特征。
  • 联系:联系是两个或多个实体之间的关联关系。

2、如何绘制E-R图

  • 映射基数

    1. 一对一:X中的一个实体最多与Y中的一个实体关联,并且Y中的一个实体最多与X中的一个实体关联。
    2. 一对多:X中的一个实体可以与Y中任何数量的实体关联,Y中的一个实体最多与X中的一个实体关联。
    3. 多对一:X中的一个实体最多与Y的一个实体关联,Y中的一个实体可以与X中的任意数量的实体关联。
    4. 多对多:X中的一个实体可以与Y中的任意数量是实体关联,反之亦然。

3、关系模式

  • 用二维表的形式表示实体和实体间联系的数据模型即关系模式
  • E-R图转换为关系模式的步骤
    1. 把每个实体都转化为关系模式R(U)形式
    2. 建立实体间联系的转换

4、转化E-R图为数据库模型图

  • 将各实体转换为对应的表,将各属性转换为各表对应的列
  • 标识每个表的主键列
  • 在表之间建立主外键,体现实体

四、数据规范化

  • 不合规范的表设计

    • 信息重复
    • 更新异常
    • 插入异常
      • 无法正确的表示信息
    • 删除异常
  • 使用三大范式规范数据库表的设计

  1. 第一范式

    1. 第一范式的目标是确保每列的原子性

      1. 如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式(1NF)
  2. 第二范式

    1. 要求每个表只描述一件事情
  3. 第三范式

    1. 如果一个关系满足2NF,并且除了主键以外的其他列都不传递依赖于主键列,则满足第三范式(3NF)

五、总结

数据库设计—— 使用Java实现数据库编程相关推荐

  1. (数据库系统概论|王珊)第七章数据库设计-第一节:数据库设计概述

    注意:此部分内容和软件工程的知识点重合较多,更多请点击[免费分享]软件工程核心知识点 本章较分散,各节导航如下 (数据库系统概论|王珊)第七章数据库设计-第二节:需求分析 (数据库系统概论|王珊)第七 ...

  2. 数据库设计-博客系统数据库的设计

    数据库设计-博客系统数据库的设计 数据库整体设计 问题: 一个博客系统会有哪些功能呢,肯定会有的是博客列表,博客详情,评论,登陆注册等等这些功能,那应该建多少张表呢?应该给这些表添加哪些字段呢?字段的 ...

  3. 对接京东获取任务工单接口jingdong.homefw.task.search,附接口字段详细说明,数据库设计,Java实现

    目录 接口详细说明 jingdong.homefw.task.search(获取任务工单) 任务工单字段详细说明 数据库设计 任务工单表结构 日志表结构 接口Java实现 接口详细说明 jingdon ...

  4. mysql数据库设计课程大纲_MySql数据库教学大纲.doc

    范文 范例 指导 参考 word版 整理 XX学院计算机系 <MySql数据库>课程教学大纲 一.课程的性质与任务 (一)本课程的性质 <数据库(一)>主要面向计算机软件技术专 ...

  5. mysql数据库设计的原则_MySQL数据库设计原则

    转自 http://www.supidea.com/post/mysql_design_database.aspx MySQL数据库设计原则 MySQL对于成为一个非常快速的数据库服务器有着当之无愧的 ...

  6. 多租户数据库设计方法:共享数据库表

    共享数据库.独立 Schema (1) 什么是Schema oracle数据库:在oracle中一个数据库可以具有多个用户,那么一个用户一般对应一个Schema,表都是建立在Schema中的,(可以简 ...

  7. 多租户数据库设计方法:独立数据库

    目前基于多租户的数据库设计方案通常有如下三种: 独立数据库 共享数据库.独立 Schema 共享数据库.共享数据表 独立数据库 独立数据库:每个租户一个数据库. 优点:为不同的租户提供独立的数据库,有 ...

  8. 数据库设计五要点 让数据库设计更加规范

    通常情况下,可以从两个方面来判断数据库是否设计的比较规范.一是看看是否拥有大量的窄表,二是宽表的数量是否足够的少.若符合这两个条件,则可以说明这个数据库的规范化水平还是比较高的.当然这是两个泛泛而谈的 ...

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

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

  10. 数据库设计中一个矛盾:数据库外键,用还是不用?你怎么看.?

    最近在做一个派单系统数据库设计,在设计中有些疑惑的地方中午在网上发起一个话题讨论. 我把这个讨论流程.发过来 大家可以可以看看. 也可以发表一下自己的意见. 对于主/外键/索引来说,在一些开发团队中被 ...

最新文章

  1. 二维码QR Code简介及其解码实现(zxing-cpp)
  2. 【转载】快速升职加薪的10个方法
  3. 【ubuntu】安装之后要安装的一些东西
  4. Vector反向迭代器使用
  5. Javascript中的Document对象详解
  6. 【机器视觉】 write_measure算子
  7. intx update task - IB_IBINTX_UPDATE
  8. Cisco路由器故障诊断技术(3)
  9. System.Security.Cryptography.CryptographicException
  10. Linux学习之CentOS(一)--CentOS6.5环境搭建
  11. javaw java_java与javaw区别
  12. SELECT command denied to user ''@'%' for column 'xxx_id' in table 'users_xxx' 权限问题
  13. 2020-12-3background-color对div元素不起作用
  14. 房地产开发商崩盘样本:楼盘捂了两年,欠40亿巨债
  15. VMware ESXi/ESX 的内部版本号和版本 (2143832)
  16. 期货交易在使用基本面分析操作过程中要注意哪些问题?怎么控制风险?
  17. 教你如何在Sco Unix5.05安装大硬盘(启动输入硬盘参数方法)
  18. Excel-RANK函数排名与拓展
  19. 中医证型关联规则挖掘
  20. 天干、地支纪年 月 日

热门文章

  1. 华为关闭telnet命令_华为交换机关闭Telnet、开启SSH服务命令
  2. Excel--学习VB编程之旅
  3. 怎么在博客上积累代码量?
  4. 友勤签约中芝软件系统(上海)有限公司Oracle Crystal Ball Suite软件项目
  5. SUMO文档019:导入网络文件(上)——OpenStreetMap
  6. 《SQL必知必会》笔记
  7. 冒泡排序c语言程序,冒泡排序(C语言实现)
  8. 【SQL注入01】SQL注入漏洞简介、原理及类型
  9. C语言 实现学生管理系统(手把手教学)
  10. VS2017如何创建c语言项目