zoukankan      html  css  js  c++  java
  • java MySQL数据库编程 第一章 数据库的设计

    第一章 数据库的设计

    一、什么是数据库设计

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

    (1).数据库设计非常重要数据库中创建的数据结构的种类,以及在数据实体之间建立的复杂关系是决定数据库系统效率的重要因素良好的数据库设计:

    1. 效率高
    2. 便于进一步扩展
    3. 可以使应用程序的开发变得更容易

    二、设计数据库的步骤

    在需求分析阶段,设计数据库的一般步骤如下:

    1.收集信息

    2.标识实体

    3.标识每个实体的属性

    4.标识实体之间的关系

    (1)收集信息

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

    (2)标识实体

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

    (3)标识每个实体需要存储的详细信息

    将数据库中的主要实体标识为表的候选实体以后,就要标识每个实体存储的详细信息

    (4)标识实体之间的关系

    能够关联数据库中各个项目的相关信息

    三、概要设计-绘制E-R图

    1.实体-关系模型

    1. 实体

    是指现实世界中具有区分其他事物的特征或属性并与其他事物有联系的事物

    1. 属性

    可以理解为实体的特征

    1. 联系

    联系时两个或多个实体之间的关联关系

    实体用矩形表示,一般是名词;属性用椭圆表示,一般也是名词;联系用菱形表示,一般是动词;

    1. 映射基数

    映射基数表示通过联系与该实体关联的其他实体的个数;

    1. 一对一:X中的一个实体最多与Y中的一个实体关联,并且Y重的一个实体最多与X中的一个实体关联
    2. 一对多:X中的一个实体可以与Y中任意数量的实体关联,Y中的一个实体最多与X中的一个实体关联
    3. 多对一:X中的一个实体最多与Y中的一个实体关联,Y中的一个实体可以与X中的任意数量的实体关联
    4. 多对多:X中的一个实体可以与Y中的任意数量的实体关联
    5. 实体关系图

    组成:  1.矩形表示实体集

                 2.椭圆形表示属性

                 3.菱形表示联系集

                 4.直线用来连接属性和实体集,也用来连接实体集和联系集

    2.关系数据库模式

    用二维表的形式表示实体和实体间联系的数据模型称为关系模型.关系数据库模式是对关系数据库结构的描述.

    表示形式:

                                R(U) 或者 R(A,B)

    R表示关系名,U表示属性集合,A,B代表U中的属性

    将E-R图转换为关系模式的步骤如下:

    1. 把每个实体都转化为关系模式R(A,B)形式
    2. 建立实体间联系的转换

    实体间的联系分为一对一,一对多,多对多三种,当两个实体各自转化为关系模式后,实体间联系的转换如下:

    1. 一对一的转换:把任意实体的主键放到另一个实体的关系模式中
    2. 一对多的转换:把联系数量为1的实体的主键放到联系数量为N的实体关系模式中
    3. 多对多的转换:把两个实体中的主键和联系的属性放到另一个关系模式中,注意多生成一个关系模式.

    四、绘制数据库模型图的步骤

    1. 新建数据库模型图
    2. 添加实体
    3. 添加数据列及相应的属性
    4. 添加实体之间的映射关系

    将E-R图转换为数据库模型的步骤如下:

    1. 将E-R图中各实体转化为对应的表,将各属性转化为各表对应的列
    2. 标识每个表的主键列,需要注意的是,要为没有主键的表添加ID编号列,该列没哟实际含义,只用作主键或外键
    3. 在数据库模型图中体现实体之间的映射关系

    五、数据规范化

    从关系型数据库表中除去冗余数据的过程称为规范化,如果使用得当,规范化是用于获得高效的关系型数据库表的逻辑结构的最好、最容易的方法。当规范化数据时,应执行下列操作:

    1. 将数据库的结构精简为最简单的形式
    2. 从表中删除冗余的列
    3. 标识所有依赖与其他数据的数据

    三大范式内容如下:

    1. 第一范式:其目标是确保每列的原子性
    2. 第二范式:在第一范式的基础上更进一层,其目标是确保表中的每列都和主键相关
    3. 第三范式:在第二范式的基础上更进一层,其目标是确保每列都和主键列直接相关,而不是间接相关
  • 相关阅读:
    解决pydev无法增加jython271 interpreter的问题
    使用pygal 做chart图的经验分享
    python4delphi 使用
    Some Delphi tips
    http request method and response codes
    flask 项目的开发经验总结
    解决pydev报unsolved import的问题
    python __future__ package的几个特性
    用一个简单的例子来理解python高阶函数
    正确地组织python项目的结构
  • 原文地址:https://www.cnblogs.com/ppdpp/p/7580807.html
Copyright © 2011-2022 走看看