第一章:数据库的设计

1.1:为什么需要规范数据库的设计

1.1.1:什么是数据库设计

数据库设计就是将数据中的数据实体及这些数据实体之间的关系,进行规范和结构的过程。

1.1.2:数据库设计非常重要

良好的数据库设计表现的几个方面:

l  效率高

l  便于进一步扩展

l  可以使应用程序变得更加容易

1.2:设计数据库的步骤

需求分析阶段

概要设计阶段

详细设计阶段

1.2.1:收集信息

创建数据库之前,必须充分的理解数据库的需要完成的任务和功能

1.2.2:标识实体

在收集信息后,必须标识数据库要管理的关键对象或实体

1.2.3:标识每个实体需要存储的信息

标识实体的信息,该实体的属性,这些属性将组成表中的列

1.2.4:标识实体之间的关系

关系型数据库有一项很强大的功能,即他可以关联数据库中各项的相关信息

1.3:概要设计--------绘制E—R图

E-R图(entity-Relationship):实体关系图

1.3.1:实体-关系模型

1:实体:现实世界中客观存在的事物,具有行为特征和属性。

2:属性:属性就是实体的特征

3:联系:联系就是两个或连个以上的实体之间的关系

4:映射关系:表示通过联系与该实体关联的其他实体的个数。

一对一:X中的一个实体与Y中的一个实体关联。Y中的一个实体最多与X中的一个实体关联

一对多: X中的一个实体与Y中的任意多实体关联。Y中的一个实体最多与X中的一个实体关联

多对一:X中的实体与Y中的一个实体关联。Y中的一个实体最多与X中的任意多实体关联

多对多:X中的一个实体可以与Y中的任意多实体关联,,反正成立

5:实体关系图

矩形表示实体集

椭圆表示属性

菱形表示关系集

1.3.2:关系数据库模式

用二维表的形式表示实体和实体之间的数据模型称为关系模型

R(u) 或者R(A,B)     R:表示关系名U:表示属性集合A,B表示U中的属性

1.4:逻辑设计--------绘制数据库模型图

1.4.1:绘制数据库模型图的步骤

新建数据库模型图

添加实体

添加数据列即相应的属性

添加实体之间的映射关系

1.5:数据规范化

1.5.1:设计问题

信息重复

比小心输入代表的意思一样,但是用的词却不一样。

更新异常

更新时造成的异常。

插入异常(无法表示某些信息)

本来是一样的实体,最后插入的一个或对个信息不一样

删除异常(丢失有用的东西)

在一些情况下,可能删除莫一行数据,会丢失一些数据

1.5.2:范式设计

确保每列的原子性。表示不可再分的最小数据单元

第一范式的基础上,每列都与主键有直接的关系。其他列都要依赖于主键。(即一个表描述意见事情)

第二范式的基础上,没列都和主键有直接的关系,但每列之间不存在依赖关系。

1.5.3:规范化和性能的关系

在实际开发过程中,既要考虑三大范式,避免数据的永裕和各种数据操作异常,又要考虑数据访问的性能,有时,为了减少表之间的连接,提高访问新能,允许适当的永裕,这是最合适的设计方案!!!

java数据库编程之数据库的设计的更多相关文章

  1. Java并发编程之并发代码设计

    引子 之前的文章我们探讨了引发线程安全的原因主要是由于多线程的对共享内存的操作导致的可见性或有序性被破坏,从而导致内存一致性的错误.那么如何设计并发代码解决这个问题呐?我们一般使用这几种方式: 线程封 ...

  2. Java并发编程(2) AbstractQueuedSynchronizer的设计与实现

    一 前言 上一篇分析AQS的内部结构,其中有介绍AQS是什么,以及它的内部结构的组成,那么今天就来分析下前面说的内部结构在AQS中的具体作用(主要在具体实现中体现). 二 AQS的接口和简单示例 上篇 ...

  3. Java并发编程(十)设计线程安全的类

    待续... 线程安全的类 之前学了很多线程安全的知识,现在导致了我每次用一个类或者做一个操作我就会去想是不是线程安全的.如果每次都这样的考虑的话就很蛋疼了,这里的思路是,将现有的线程安全组件组合为更大 ...

  4. JAVA / MySql 编程—— 第一章 数据库的设计

     1.        数据库设计:将数据库中的数据实体及这些数据实体之间的关系进行规划和结构化的过程: 良好的数据库设计: 节省数据的存储空间 能够保证数据的完整性 方便进行数据库应用系统的开发 糟糕 ...

  5. Java数据库编程、XML解析技术

    数据库编程 JDBC概述 是Java Database Connecive,即数据库连接技术的简称,它提供了连接各种常用数据库的能力. 是一种用于执行SQL语句的Java API,可以为多种关系数据库 ...

  6. JAVA(六)数据库/网络编程/新IO

    成鹏致远 | lcw.cnblog.com |2014-02-05 数据库 1.JDBC概述 JDBC(Java Database Connectivity,Java数据库连接)提供了一种与平台无关的 ...

  7. Java JDBC数据库编程

    课程  Java面向对象程序设计 一.实验目的 掌握数据库编程技术 二.实验环境 1.微型计算机一台 2.WINDOWS操作系统,Java SDK,Eclipse开发环境,Microsoft SQL  ...

  8. Java面试题精选(二)线程编程、数据库理论和Jdbc部分

    —— 线程编程.数据库理论和Jdbc部分内容 ——     数据库的开发应用想必是我们日常所碰到最多的知识点了,大致可分为:oracle.MySQL.SQL Server.Hadoop. NoSQL. ...

  9. java面向对象下:Java数据库编程

    19.Java数据库编程: JDBC概述:        JDBC(Java Database Connection)是java中提供的一套数据库编程API,它定义了一套用来访问数据库的标准Java类 ...

随机推荐

  1. wifi pineapple 外接USB无线网卡桥接外网

    0:选择USB网卡 在没有有线网络的情况下,可以外挂一个usb无线网卡来桥接上网,目前支持3070L.8187L芯片的网卡,反正linux系统都用这些芯片, 免的安装驱动, 我选择的是 WN-722N ...

  2. Centos 6系统修复grub

    author:JevonWei 版权声明:原创作品 错误界面如下时,应该是grub的stage数据有缺失,应该从新安装grub GRUB引导的stage1阶段损坏,系统启动会直接进入光盘引导界面,st ...

  3. echarts堆叠图展示,根据数据维度的粒度判断是否展示数据

    1.定义一个参数,返回根据判断什么条件是否显示值; 2.var a = '<%=(String)request.getAttribute("type")%&>' ...

  4. Maven setting.xml 文件剖析

    全局配置: ${M2_HOME}/conf/settings.xml (配置环境变量  新建 M2_HOME    安装目录到版本名那里(D:\apache-maven-3.0.2) 编辑path 环 ...

  5. 比较三个 CSS 预处理器:Sass、LESS 和 Stylus(下)

    五.Mixins (混入) Mixins 有点像是函数或者是宏,当你某段 CSS 经常需要在多个元素中使用时,你可以为这些共用的 CSS 定义一个 Mixin,然后你只需要在需要引用这些 CSS 地方 ...

  6. 201521123048 《Java程序设计》第7周学习总结

    1. 本周学习总结 2. 书面作业 1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 public boolean contains(Object o) { re ...

  7. 201521123072《java程序设计》第五周学习总结

    201521123072<java程序设计>第五周学习总结 标签(空格分隔): java学习 1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 2. 书面作业 代码 ...

  8. 201521123102 《Java程序设计》第2周学习总结

    #1. 本周学习总结(1)学习使用码云存储代码(2)掌握了常见数据类型的使用.转换(3)回顾了前面学过的基本语法(4)复习一二三章内容 #2. 书面作业**Q1.使用Eclipse关联jdk源代码,并 ...

  9. Linux命令行学习

    "mkdir + 文件夹名字" 创建文件夹 "pwd" 显示当前工作目录的绝对路径. "touch" 创建空文件. "cat /p ...

  10. 201521123093 java 第十四周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. MySQL中的库操作和表操作 库操作: 显示所有数据库: show databases; 创建数据库: crea ...