第一章:数据库的设计

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. Ubuntu & GitLab CI & Docker & ASP.NET Core 2.0 自动化发布和部署(2)

    上一篇:Ubuntu & GitLab CI & Docker & ASP.NET Core 2.0 自动化发布和部署(1) 服务器版本 Ubuntu 16.04 LTS. 本 ...

  2. LDMIA、LDMIB、LDMDB、LDMDA、STMIA、LDMFD、LDMFA、LDMED、LDMEA指令详解

    简介: ARM指令中多数据传输共有两种: LDM:(load  much)多数据加载,将地址上的值加载到寄存器上 STM:(store much)多数据存储,将寄存器的值存到地址上 主要用途:现场保护 ...

  3. 【DDD】领域驱动设计实践 —— 业务建模小招数

    本文结合团队在ECO(社区服务系统)业务建模过程中的实践经验,总结得到一些DDD业务建模的小招数,不一定是完美的,但是对我们团队来说很有效用,希望能帮到其他人.后面会陆续将项目中业务建模的一些经典例子 ...

  4. JSONP的实现流程

    在进行AJAX的时候会经常产生这样一个报错: 看红字,这是浏览器的同源策略,使跨域进行的AJAX无效.注意,不是不发送AJAX请求(其实就是HTTP请求),而是请求了,也返回了,但浏览器‘咔擦’一声, ...

  5. 原生的AJAX

    var XHR=null; if (window.XMLHttpRequest) { // 非IE内核 XHR = new XMLHttpRequest(); } else if (window.Ac ...

  6. PS各个工具的字母快捷键和英…

    原文地址:PS各个工具的字母快捷键和英文全名作者:Tycho     选框-Marquee(M)     移动-move(V)     套索-Lasso(L)     魔棒-Wand(W) 喷枪-in ...

  7. c++ Lambda函数学习

    或许,Lambda 表达式算得上是 C++ 11 新增特性中最激动人心的一个.这个全新的特性听起来很深奥,但却是很多其他语言早已提供(比如 C#)或者即将提供(比如 Java)的.简而言之,Lambd ...

  8. 对#ifndef的理解

    由于对#ifndef的用法不太理解,在询问了老师#ifndef的含义以及查找资料后,对#ifndef总结了以下几点: <1> #ifndef是宏定义的一种,是三种预处理功能(宏定义,文件包 ...

  9. html5 javascript 小型计算器

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  10. 201521123053《Java课程设计》第七周学习总结

    1. 本章学习总结 2. 书面作业 Q1. ArrayList代码分析 1.1 解释ArrayList的contains源代码 答:代码如下 public boolean contains(Objec ...