1、        数据库设计:将数据库中的数据实体及这些数据实体之间的关系进行规划和结构化的过程;

良好的数据库设计:

节省数据的存储空间

能够保证数据的完整性

方便进行数据库应用系统的开发

糟糕的数据库设计:

数据冗余、存储空间浪费

内存空间浪费

数据更新和插入的异常

 2、        数据库设计的步骤:

1、  需求分析阶段:分析客户的业务和数据处理需求

2、概要设计阶段:设计数据库的E-R模型图,确认需求信息的正确和完整

3、 详细设计阶段:将E-R图转换为多张表,进行逻辑设计,确认各表的主外键,并应用三大范式审核数据库结构

4、 代码编写阶段:物理实现数据库,编码实现应用

5、软件测试阶段:……

6、  安装部署:……

  3、        数据库分析的步骤:

1、 收集信息:与该系统有关人员进行交流、座谈,充分了解用户需求,理解数据库需要完成的任务

2、  标识实体Entity):标识数据库要管理的关键对象或实体,实体一般是名词,一个实体只描述一件事,不能出现含义相同的实体

3、  标识每个实体需要存储的详细信息;标识每个实体的属性(Attribute),在进行实体属性分解时,含义相同的成员信息不能重复出现。

4、  标识实体之间的关系(Relationship):关系型数据库有一项非常强大的功能,即它能够关联数据库中各个项目的相关信息;

4、E-R图:

符号

含义

 

实体(集),一般是名词

属性(集),一般是名词

联系(集),一般是动词

 

用来连接属性和实体集,也用来连接实体集和联系集

(直线是可以有方向的(在末端有一个箭头),用来表示联系集的映射基数)

               实体:现实世界中具有区分其他事物的特征或属性并于其他事物有联系的事物;

            属性:实体的特征;

              联系:两个或多个实体之间的联系;

              映射基数:一对一,一对多,多对一,多对多;

              实体关系图;

   5、关系数据库模式:用二维表的形式表示实体和实体间联系的数据模型即关系模式;

                    关系数据库模式是对关系数据结构的描述;

                                   ◆形式:R(U) 或 R(A,B) 

                                                  ★R 表示属性集合,A,B分别表示U在中的属性;

                                    ●E-R图转换为关系模式的步骤:

                                                 1. 把每个实体都转化为关系模式R(U) 或 R(A,B)形式

                                                 2. 建立实体间联系的转换;

  6、  数据规范化:

                           ●不合规范的表设计

信息重复

更新异常

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

删除异常(丢失有效信息)

  7、使用三大范式规范数据库表的设计:(Normal Formate)

                           ◆第一范式 (Normal Formate ,1NF):

            ★第一范式的目标是确保每列的原子性,如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式(1NF);

                    ◆第二范式 (Normal Formate ,2NF):第二范式要求每个表只描述一件事情;

                              ★目标:确保表中的每列都和主键相关,如果一个关系满足第一范式(2NF),并且除了主键以外的其他列全都依赖于该主键;

                   ◆第三范式 (Normal Formate ,3NF):

                               ★目标:确保每列都和主键直接相关联,而不是间接相关联,如果一个关系满足2NF,并且除了主键以外的其他列都不传递依赖于主键列,列和列之间不存在相互依赖关系,则满足第三范式(3NF);

  8、规范化和性能的关系

        ● 为满足某种商业目标,数据库性能比规范化数据库更重要

           1、通过在给定的表中添加额外的字段,以大量减少需要从中搜索信息所需的时间

           2、通过在给定的表中插入计算列(如成绩总分),以方便查询

•  在数据规范化同时,要综合考虑数据库的性能

  9、  数据库的完整性:数据库完整性(Database Integrity)是指数据库中数据在逻辑上的一致性、正确性、有效性和相容性。

       数据库完整性由各种各样的完整性约束来保证,因此可以说数据库完整性设计就是数据库完整性约束的设计。

      数据库完整性约束可以通过DBMS或应用程序来实现,基于DBMS的完整性约束作为模式的一部分存入数据库中。

      通过DBMS实现的数据库完整性按照数据库设计步骤进行设计,而由应用软件实现的数据库完整性则纳入应用软件设计(本文主要讨论前者)。

10、数据库完整性的作用:

                    1.数据库完整性约束能够防止合法用户使用数据库时向数据库中添加不合语义的数据。

        2.利用基于DBMS的完整性控制机制来实现业务规则,易于定义,容易理解,而且可以降低应用程序的复杂性,提高应用程序的运行效率。同时,基于DBMS的完整性控制机制是集中管理的,因此比应用程序更容易实现数据库的完整性。

      3.合理的数据库完整性设计,能够同时兼顾数据库的完整性和系统的效能。比如装载大量数据时,只要在装载之前临时使基于DBMS的数据库完整性约束失效,此后再使其生效,就能保证既不影响数据装载的效率又能保证数据库的完整性。

      4.在应用软件的功能测试中,完善的数据库完整性有助于尽早发现应用软件的错误。

JAVA / MySql 编程—— 第一章 数据库的设计的更多相关文章

  1. Java 面向对象编程——第一章 初识Java

      第一章    初识Java 1.  什么是Java? Java是一种简单的.面向对象的.分布式的.解释的.安全的.可移植的.性能优异的多线程语言.它以其强安全性.平台无关性.硬件结构无关性.语言简 ...

  2. JAVA / MySql 编程——第二章 初始MySQL

    1. MySQL:        ●  MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司.            MySQL最流行的关系型数据库管理系统, ...

  3. java并发编程--第一章并发编程的挑战

    一.java并发编程的挑战 并发编程需要注意的问题: 并发编程的目的是让程序运行的更快,然而并不是启动更多的线程就能让程序最大限度的并发执行.若希望通过多线程并发让程序执行的更快,会受到如下问题的挑战 ...

  4. 【程序员翻身计划】Java高性能编程第一章-Java多线程概述

    目标 重点: 线程安全的概念 线程通信的方式与应用 reactor线程模型 线程数量的优化 jdk常用命令 Netty框架的作用 难点 java运行的原理 同步关键字的原理 AQS的抽象 JUC的源码 ...

  5. Java面向对象编程 第一章 面向对象开发方法概述

    一.软件开发经历的生命周期: ①软件分析 ②软件设计 ③软件编码 ④ 软件测试 ⑤ 软件部署 ⑥软件维护 二.为了提高软件开发效率,降低软件开发成本,一个优良的软件系统应该具备以下特点: ① 可重用性 ...

  6. 第一章 数据库概述、MySQL的安装和配置

      第一章 数据库概述.MySQL的安装和配置   1.为什么要使用数据库 最早是纸质文件来存储数据 缺点:不易保存,占用空间大 计算机出现以后,采用软件来进行保存(excel) 缺点:容易损坏 文件 ...

  7. MySQL----MySQL数据库入门----第一章 数据库入门

    第一章 数据库入门 1.1 数据库基础知识 1.1.1 数据库概述 数据不仅包括普通意义上的数字,还包括文字.图像.声音等.也就是说,凡是在计算机中用来描述事物的记录都可称作数据. 数据库的基本特点: ...

  8. Windows核心编程第一章.错误处理

    Windows核心编程第一章,错误处理. 一丶错误处理 1.核心编程学习总结 不管是做逆向,开始做开发.在Windows下.你都需要看一下核心编程这本书.这本书确实写得很好.所以自己在学习这本书的同时 ...

  9. 数据结构(Java语言描述)-第一章:概述

    第一章 概述 1.0 序言 自己为啥要学数据结构嘞,我觉得主要有以下三个原因: 前段时间在看并发编程时,发现aqs,corrunthashmap等底层都用到了数据结构,主要的有队列,还有链表,学习数据 ...

随机推荐

  1. Myeclipse修改jdk版本流程

    Myeclipse修改jdk版本流程 很多时候,项目没有用对jdk版本时候,项目报错,在MyEclipse中,要修改JDK版本 有三处地方需要注意:!! 1.第一处 2.第二处 3.第三处

  2. ASP.NET操作DataTable各种方法

    转:http://www.cnblogs.com/isking/p/6178268.html http://www.cnblogs.com/sntetwt/p/3496477.html public ...

  3. Day4上午

    expect100+50+50, In fact 100+10+0. 代码能力还有待提高,部分分应该能拿的.结果...力不从心啊. T1 贪心做的不知对不对. 看来思路是对的,不知道能不能对. 暴力做 ...

  4. StringMVC入门案例

    1.首先要引入jar包 <!--引入beans节点--> <dependency> <groupId>org.springframework</groupId ...

  5. xml解析demo使用

    package lianxi; import java.io.FileOutputStream;import java.io.OutputStreamWriter; import javax.xml. ...

  6. 数据库navicat中limit函数的用法

    从t_product表中获取pic_small字段的前十条记录 示例:select pic_small from t_product limit 0,10;

  7. 一道Java集合框架题

    问题:某班30个学生的学号为20070301-20070330,全部选修了Java程序设计课程,给出所有同学的成绩(可用随机数产生,范围60-100),请编写程序将本班各位同学的成绩按照从低到高排序打 ...

  8. 【起航计划 029】2015 起航计划 Android APIDemo的魔鬼步伐 28 App->Preferences->Default Values 偏好默认值

    DefaultValues 介绍了如何在XML中定义Preference的缺省值. <CheckBoxPreference android:key="default_checkbox& ...

  9. 一、Dapper基本操作

    参考资料:Cooper Liu 毒逆天 一.Dapper安装 添加引用-->NuGet管理-->搜索Dapper-->安装 二.新建表 --创建一个员工表 create table ...

  10. zabbix 编译安装指导

    zabbix 编译安装 下载 安装 安装后的配置 下载源码包 zabbix官网:https://www.zabbix.com/ zabbix下载:https://www.zabbix.com/down ...