当前位置: 主页 > 建站知识 > 软件开发

软件开发数据库设计-电话电销crm库开发

发布时间:2023-05-29 09:06   浏览次数:次   作者:佚名

在本讲您能了解如下内容数据库逻辑设计?如何进行?数据库设计的范式?有那些?数据库表的主键设计要点数据库表之间的关联实体关系图ERD软件系统数据库设计中的数据库的逻辑设计1、数据库和数据库管理系统(DBMS)(1)数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合(2)DBMS是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库。2、数据库在企业中的应用-----“无处不有”3、数据库设计(1)什么是数据库设计数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。(2)设计输入需求文档体系结构设计文档4、数据库设计的六个步骤(1)数据库需求分析主要是分析数据的种类、范围、数量以及它们在业务活动中交流的具体情况,确定用户对数据库系统的使用要求和各种约束条件等方面的信息,从而获得数据流图(DFD)和数据字典(DD)。(2)概念模型设计数据概念模型设计是将用户总需求中关于数据部分的需求,将其综合为一个统一的概念模型的过程根据数据流图和数据字典建立ER图等概念模型,该模型应能够反映出现实世界各部门的信息结构、信息流动情况、信息间的互相制约关系以及对信息储存、查询和加工的要求等。

(3)逻辑设计根据ER图获得关系模式及表结构的逻辑设计结果(适应于某种特定数据库管理系统所支持的逻辑数据模式)。(4)物理设计根据特定数据库管理系统所提供的多种存储结构和存取方法实施物理数据模型,并最终完成数据库关系表的物理结构设计等工作。(5)安全性设计——数据库的角色和权限(6)验证和优化设计加载测试所设计的物理数据库,来验证数据库设计的正确性和合理性;分析并优化数据库的“时—空”效率。5、数据库设计的范式(3NF范式)(1)范式---应满足一定的规范(约束条件)数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入、删除和更新操作异常。(2)范式是符合某一种级别的关系模式的集合尽管目前关系数据库有六种范式,但一般数据库只需满足到第三范式(3NF)就行了。6、第一范式(1NF)(1)满足最低要求的一级在任何一个关系数据库系统中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。(2)基本含义第一范式主要是指数据库表的每一列都是不可分割的基本数据项和数据列无重复的数据值——这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。

(3)如何满足1NF的要求如果数据列为复合数据,则需要定义一个新表,并通过主键关联该表(必须为每组相关数据分别创建一个表)每条数据记录必须用一个主键来标识7、第二范式(2NF)(1)基本含义要求数据库表中的每行数据必须可以被主键唯一地区分。(2)示例(3)如何满足2NF的要求只要数据列的数据出现重复,就需要把该表拆分为多个拆分后的两个表必须用外键建立关联8、第三范式(3NF)(1)基本含义要求一个数据库表中不包含已在其它表中已包含的非主关键字信息,也即属性不依赖于其它非主属性。(2)示例(3)如何满足3NF的要求与主键没有直接关系的数据列必须消除消除的方法就是将这些与主键没有直接关系的数据列分离出,并再创建出一个新的数据表9、在数据库设计的三大范式和性能之间找到平行点(1)在传统的数据库应用中经常漠视和违反三大范式?在很多所谓的金融、电信等超级大项目当中,连主键都没有的表比比皆是,一张表上百个字段,字段之间没有什么逻辑关系的情况比比皆是?(2)在数据库设计的三大范式和性能之间找到平行点传统的数据库应用软件开发,程序员很难从符合三大范式的数据模型当中获得有效的查询性能。符合三大范式就意味着数据库表会拆分的很细,表间关联很多,统计分析查询就不可避免的导致n张表的联合查询。

在没有有效的应用层缓存的情况下,这种查询将不可避免的性能低下。这使得开发人员宁肯违背三大范式,而选择查询性能优先的数据库设计。(3)充分应用良好的ORM框架和应用层的对象缓存机制可以让比较简单的查询根本不打扰数据库,让比较复杂的查询尽量少的扫描表记录,提高性能。合理地遵循三大范式,并利用好ORM和对象缓存技术,可以获得较好的应用性能(4)正确认识数据冗余和合理地应用数据冗余主键与外键在多表中的重复出现,不属于数据冗余,非键字段的重复出现,才是数据冗余!合理地产生数据冗余的目的是为了提高数据处理的速度,但数据冗余会增加数据的不一致性——因为同一数据,可能会从不同时间、地点、角色上多次录入,而出现不同(5)充分应用视图——视图是供程序员使用数据库的一个窗口,是基表数据综合的一种形式,是数据处理的一种方法,是用户数据保密的一种手段。(6)中间表和临时表中间表是存放统计数据的表,它是为数据仓库、输出报表或查询结果而设计的。临时表是程序员个人设计的,存放临时记录,为个人所用。中间表由DBA维护,临时表由程序员自己维护。10、实体关系图(1)实体关系图ERD(EntityRelationshipDiagram)实体关系图是指以实体、关系、属性三个基本概念来概括数据的基本结构,从而描述出数据的静态结构的一种概念模式。

(2)实体关系图的主要作用——描述各个实体的内部结构和实体间的关系在需求分析阶段使用ERD描述系统中实体(现实世界中的对象)之间的逻辑关系,在设计阶段则使用ERD描述物理数据库表之间的关系。(4)某项目中的ER图示例下面给出某项目在需求分析阶段的各个实体及实体关系一个示例图(3)ERD在应用中的不足之处ERD只关注系统中数据结构和数据间的关系,而缺乏对系统功能的描述。如果将ERD与DFD(DFD尤其适用于MIS系统的表述,但是从DFD图中无法表达活动中的各个实体间的关系)两种方法相结合,则可以更准确地描述系统的需求(5)根据各个实体的属性及各个实体之间的关系,在设计阶段设计出对应的数据库表结构和表关系注意:在早期的E-R图中,实体是用矩形来表示,而联系采用菱形来表示,属性则用椭圆或者圆形来表示。11、实体关系图的设计过程(1)局部ER图在数据库的逻辑概念设计阶段中,一般是首先设计出局部ER模型,然后再把各个局部ER模型综合成一个全局模型,最后对全局ER模型进行优化,得到最终的模型,即系统中的数据概念模型。(2)设计全局ER模型所有局部ER模型都设计好了后,接下来就是把它们综合成单一的全局概念结构。

全局概念结构不仅要支持所有局部ER模型,而且必须合理地表示一个完整、一致的数据库概念结构。(3)确定公共实体类型和消除冲突主要是解决在合并过程中所可能产生的“属性冲突、结构冲突、命名冲突”——最终达到实体类型的个数要尽可能的少、实体类型所含属性个数尽可能少和实体类型间的联系无冗余的效果。12、数据库设计示例(1)基本的思路依据业务实体中的所包含各个属性及每一个属性所 对应的物理量的类型,设计各个表中的字段和类型 (2)满足数据库设计 范式的基本要求 (3)决定各个数据库 表之间的关系 在表中体现上面的各种关系 (应用主/ 用户信息UserInfo和BBS信息BBSInf之间的 “一对多”的关联关系 13、依据数据库ER图转换 为数据库逻辑结构的规 (1)1:1联系,联系两端 的实体类型转成两个关 系模式软件开发数据库设计,在任一个关系 模式中加入另一个关系 模式的键(作为外键) 和联系的属性 端实体类型转换成的关系模式中软件开发数据库设计,加入 联系,联系类型需转换为关系模式,属性为两端实体类型的键(分别作为外键) 加上联系的属性, 键为两端实体键的组合(特殊情况下, 需要扩展) 14、是先做数据库设计还是先建模 (1)本人认为应该是“先建模后做数据库设计”----因 为,对于程序员来说,应该是“**实体中有XX属性”而 不再说“**表中有XX字段”。

(2)在程序员的脑子里应该不再有关系的数据库表的概 念存在,而应该是实体对象等概念,有了这样的思想才 能做到真正的面向对象。 15、数据库表之间的关联(Relationship) (1)关联:是不同表之间的数据彼此联系的方法 (2)种类:数据关联有四种基本的类型 一对一(1:1) 若两个实体之间存在多对多的关系,则应消除这种关系。消除的办法是,在两者之间增加第三个实体。 这样,原来一个多对多的关系,现在变为两个一对 16、区分概念数据模型(CDM)建模和物理数据模型(PDM)建模 (1)概念数据模型 (CDM) 建模 它把现实中需要保存的信息抽象成软件系统中的实 体(Entity)和关系(Relationship),从而产生出实体关 Diagram)。(2)建立概念数据模型(CDM)是一项综合性的工作 通常需要在一个清晰的、包括全部业务过程描述的 应用需求的基础上,由具有业务领域知识的专家和数据 模型专家共同合作,把这些原始数据转化成数据流程图 和概念数据模型。 (3)概念数据模型(CDM)的主要作用 CDM反映了业务领域中信息之间的关系,并且它不依 赖于物理实现。 只有重要的业务信息才出现在CDM中。

(4)物理数据模型(PDM)建模 PDM定义了模型的物理实现细节。例如,所选RDBMS 的数据类型特征、索引定义、视图定义、存储过程定义、 触发器定义等。 17、常见的建模工具 为加快数据库设计速度,目前有很多数据库辅助 工具(CASE工具),如 Rational公司的Rational Rose CA公司的Erwin和Bpwin Sybase公司的PowerDesigner Oracle公司的Oracle Designer 微软的Visio Eclipse下的MyEclipse 1、子曰:“学而不思则罔,思而不学则殆。” “学而时习之” 3、子曰:“三人行,必有我师焉”4、子曰:“我非生而知之者,好古,敏以求之者也” 本讲的简要回顾 5、师者:“传道、授业和解惑”