【Keep Thinking】第四期_项目数据库设计思路_by easy
基于E-R模型的数据库设计
笼统的说项目的数据库设计需要建立一个完备的数据模型,将项目应用投影到数据维度来分析和设计。另外对于初学者一定要熟悉数据里的表、视图、索引、约束条件等相关知识。另外数据模型设计也与我们的开发架构有一定关系。比如数据库选型,开发设计规范等。
基于实体关系建立数据库时,设计流程大致分为5步,画一个草图 或者使用powerdesigner 最差也要viso 画个模型(目前常用的实用化和产品化的数据库设计工具软件有Oracle公司推出的Design和Sybase公司的PowerDesigner,这些工具软件能自动或辅助设计人员完成数据库设计过程中的很多任务,对于开发大型项目效率很高,但对于初学者而言,使用起来还有一定的难度和复杂度。)
第一步:需求分析阶段 -> 明确功能需求
第二步:概念设计阶段 -> 确定实体以及关系
根据第一步的分析,就很明确项目内容,数据库是用来做什么的,比如说,管理学员信息。。首先确定实体。对于一系列的行为,确定所管理信息所涉及到的主题范围。比如说学生是个实体,它有不同的属性:姓名、性别、学号等等,这些实体在数据库构建阶段将会以一张表的形式存在。
建立好E-R图后接下来一小步就是细化行为,从宏观行为开始,现在仔细检查这些行为,看有哪些行为能转为微观行为。比如说,对于管理商店信息:更新商品,更新商店信息,增删等。
最后一小步就是确定相应规则。也可以说是量化关系。(考量关系也是很重要的一步)
第三步:检验之前的设计
在完成设计之前,你需要确保它满足你这个项目的功能。检查你在一开始时所定义的行为,确认你可以获取行为所需要的所有数据:
1、你能找到一个路径来等到你所需要的所有信息吗?
2、设计是否满足了你的需要?
3、所有需要的数据都可用吗?
如果你对以上的问题都回答是,你已经差不多完成设计了
第四步:逻辑设计阶段
将上一步设计E-R图转换成具体DBMS产品支持的数据模型,如关系模型(基本表),形成数据库的模式,并对数据进行优化处理。然后根据实际需要,或基于安全性在基本表(TABLE)的基础上建立必要的视图(VIEW),形成数据库的外模式。
细节:
设计数据库的表属性
数据库设计需要确定有什么表,每张表有什么字段。对于每一字段,你必须决定字段名(字段名可以是字母、数字或符号的任意组合。然而,如果字段名包括了字母、数字或下划线、或并不以字母打头,或者它是个关键字那么当使用字段名称时,必须用双引号括起来---实际设计时选取的字段名都是有意义的英文单词之类的,便于管理员管理),数据类型及大小(要清楚有哪些数据类型,并不是所有数据库都是一样的),是否允许NULL值,以及你是否希望数据库限制字段中所允许的值。
选择约束
尽管字段的数据类型限制了能存在字段中的数据(例如,只能存数字或日期),你或许希望更进一步来约束其允许值。你可以通过指定一个“CHECK”约束来限制任意字段的值(例.constraint chk_Person CHECK (age>0 AND City='Sandnes')应该能看懂吧!
)。你可以使用能在WHERE子句中出现的任何有效条件来约束被允许的值,尽管大多数CHECK约束使用BETWEEN或IN条件。
物理设计阶段就过了。。
第五步:数据库的实施以及后续阶段