信息建模的理论
(1) 概念设计对数据需求分析很有用
(2)通过把相似的,特殊的概念抽象成一般的概念,就会更容易识别他们的相似性。
(3)在开发周期中越早检查出错误,就越容易改,在实现阶段修改一个错误所需要的成本要远远高于在分析阶段所需要的成本。
(4)实体是真正的或抽象的对象,通过与值的关系来识别。例如国家可以通过国家名来识别。
(5)每一种DBMS和一种逻辑数据模型相对应,如果选择一个关系DBMS来实现,那么概念模式将被映射成关系模式,在这种模式下所有被存储的事实以有名字的表存在,该表由有名字的列和无名的行组成,一个关系表的每一行对应一个或者多个基本事实,每一个单元仅仅有一个值。
(6) 实体类型(例如:病人,温度)
引用模式(例如:姓, celsius)
数 值(例如:Lee, 37摄氏度)
(7)一个信息系统可以看成由四部门组成:概念,逻辑,内部和外部。
概念层是最基础的一层,它把应用领域正确地描述成人类的概念
概念层的一个优点是:它是所有层中最稳定的,它不受用户界面或者存储和访问技术的改变 影响。
一.实体能被很好的确定吗,事实能否在没有丢失信息的前提下被分解的更小。实体类型是所有可能实例的集合,每个实体是特定实体类型的一个例子。
二.基础事实断言一个特定的对象有一个特征,描述对象充当的角色用逻辑谓词,一个基础事实必须是简单的,不可再简化的。
(8) 在ORM模拟中,从一个谓词到另外一个谓词的导航必须经过对象类型,在那个对象上执行概念连接。
公司数据库设计规范
(1)检查ER图中的数据类型是否符合规定
例如:Sys....MTR 表这种格式的表是主表,ID一般是Smallint,int 两种类型,一般都是Smallint。这种表中的数据都是由后台维护的。写死的数据。
1.字符类型:nvarchar,varchar 长度一般:50,200,300
2.除了Master表之外,一般的表的ID都是GUID,因为工厂三个厂,以防以后数据的合并。
(2)主键和外键的类型要一致
(3)公司做一个系统的流程一般是先由SA部门做需求分析,SD部门把需求分析画图(一般是用Visio画的活动图,静态图),然后是DS和UI(专门做系统界面的),BL(写代码的)同时开工,
DS部门:数据库设计部门:根据SA提供的需求先做好数据模拟也就是要表中填入数据,来模拟真实环境中的流程,做好以后没有问题了,根据数据模拟出ER图。
DA部门:存储过程编写:当DS出了ER图之后给了DA,然后BL调用DA写的存储过程。
Testing:测试部门。
Document:文档编写和培训部门。
(4)数据模拟和ER图中的表名字,列名都要一致。
(5)老大说了数据模拟的复杂度要够,深,各个方面都要模拟到,当你模拟到一定程度,如果有问题的话,自然而然的就看出来了。数据模拟的完整性,合理性,真实性。在一点就是数据模拟并内不要一定多,但是各种情况都要考虑到,模拟到。
(6)每个字段背后的实际含义,每个字段表达的意思的准确性。
感悟
一. 一个流程分成多个独立的模块,各个模块之间既要相互联系又要相互独立。模块之间可以设立一个接口来互相访问对方。
二. 对名词前的修饰符或者形容词进行拆分,有可能就是这个修饰符或者形容词就是一个类型的分类。
三.对一个名词要试着加一些修饰符或者形容词进行扩充。例如一个零售店的商品:是什么商品。陈列品,维修品,还是退货品。
四.对名词的各个特性,属性进行分析,挖掘。例如(员工甲在1月3号建立了一张调整单,对这个单可以进行属性挖掘:)
五.对动词进行状态和操作的分析。有操作就有状态的发生。例如(你吃饭时一个动作,吃完之后,你什么状态,是饿还是饱的状态。)
数据库设计既要写死(设计全面)又要灵活性(满足客户的要求)的例子:
一个店铺的商品存储分 : 区-》架/柜-》层-》格
可能客户实际操作的话,有的他想记录到架,有的想记录到格。有的想记录到层。
如果你不提供这种灵活性的话,只能去到格
六.信息的损失:信息的分开要能无损的合并成一个信息。