zoukankan      html  css  js  c++  java
  • 数据库设计

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

    糟糕的数据库表现在:效率低下、更新和检索数据时会出现许多问题

    良好的数据库表现在:效率高、便于进一步扩展、可以使应用程序开放变容易

    项目开发需要经过:需求分析、概要设计、详细设计、代码编写、运行测试、部署上线

    数据库设计:需求分析;概要设计;详细设计;代码编写;

    数据库的系统分析步骤:1,收集信息;2,标识实体;3,标识每个实体需要存储的详细信息;4,标识实体之间的关系

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

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

    数据库中的每个不同的实体都拥有一个与其相对应的表。

    将数据库中的主体标识为表的候选实体以后,就要标识每个实体存储的详细信息,也称为该实体的属性。这些属性将组成表中的类。简单的说就是需要细分出每个实体中包含的子成员信息。

    含义相同的成员信息不能重复出现。

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

    数据库引擎可以将原本独立存在的信息根据需要组合起来。

    E-R(Entity-Relationship)图,也可称为实体-关系图。

    实体一般对应表中一行数据,在开发中常常把整个表称为一个实体

    属性可以理解为实体的特征,对应表中的列。

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

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

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

             一对多:X中的一个实体可以与Y中任意数量的实体关联,Y中的一个实体只能与X中的一个实体关联,1:N

             多对一:X中的一个实体可以与Y中的一个实体关联,Y中的一个实体可以与X中任意数量的实体关联。

             多对多:X中的一个实体可以与Y中任意数量的实体关联,反之亦然,M:N

    实体关系图的组成包括:实体——矩形;属性——椭圆;联系——菱形;直线用来连接属性和实体集,也用来连接实体集和联系集。直线可以是有方法的,在末尾加箭头,用来表示联系集的映射基数。

    关系模型用二维的方式表示实体和实体间联系的数据模型.

    关联数据库模式是对关系型数据库结构的描述,或说是对关系数据库框架的描述

    一个关系通常对应一张表,关系模式表示为:R(U)或R(A,B)

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

             转换为关系模式的步骤:1,将每个实体都转化为关系模式R(A,B)形式

             2.建立实体间联系的转换,分一对一、一对多、多对多

    绘制数据库模型图要执行以下四步:

             1,新建数据库模型图:文件>新建>数据库>数据库模型图

             2,添加实体

             3,添加数据列及相应的属性

                           物理名称:列名,一般为英文

                           数据类型:列名类型,如整型

                           必须的:表示是否可以为空

                           PK:表示主键

                           注释:关于该列的说明

             4,添加实体之间的映射关系

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

             1,将E-R中各实体转化为对应的表,将各属性转化为各表对应的列

             2.标识每个表的主键列

             3,将数据库模型图中体现实体之间的映射关系

    将所有信息放在一张表中容易出现:信息重复,更新异常,插入异常(无法表示某些信息),删除异常(丢失有用的信息)

    数据库设计三大范式理论:

             第一范式(Normal Formate,1NF)目标是确保每列的原子性,每列或每个属性值都是不可拆分的最小单元就是第一范式。

             第二范式(2NF),在第一范式的基础上更进一层,目的是确保表中每列都和主键有关。

             第三范式(3NF),在第二范式的基础上更进一层,目标是确保每列都和主键列直接相关

    规范化和性能之间有一定矛盾,有时为了减少表明连接,提高数据库访问性能,允许适当的数据冗余列。

  • 相关阅读:
    BZOJ 2212/BZOJ 3702
    BZOJ 4761 Cow Navigation
    BZOJ 3209 花神的数论题
    BZOJ 4760 Hoof, Paper, Scissors
    BZOJ 3620 似乎在梦中见过的样子
    BZOJ 3940 Censoring
    BZOJ 3942 Censoring
    BZOJ 3571 画框
    BZOJ 1937 最小生成树
    BZOJ 1058 报表统计
  • 原文地址:https://www.cnblogs.com/ACCPGuo/p/9354400.html
Copyright © 2011-2022 走看看