dede数据库-dede数据重复
数据库设计 数据库设计(Database Design)是指为给定的应用环境构建一个最优的数据库模式。 数据以满足各种用户的应用需求(信息需求和处理需求)。
在数据库领域中,各种使用数据库的系统常常统称为数据库应用系统。
1. 数据库和信息系统
(1)数据库是信息系统的核心和基础。 它将信息系统中的大量数据按照一定的模型组织起来,并提供存储、维护和检索数据的功能,使信息系统能够方便、及时、准确地从数据库中获取数据。 要求(提供)的信息。
(2)数据库是信息系统各部分能否紧密结合、如何结合的关键。
(3)数据库设计是信息系统开发建设的重要组成部分。
(4) 360百科人员在数据库设计方面应具备的技能和知识:
数据库基础知识和数据库设计技术
计算机科学和编程方法与技术的基础知识
软件工程原理与方法
应用领域知识
二、数据库设计的特点
数据库建设是硬件、软件和干屏蔽部分的结合
技术三分,管理七分,基础数据十二分
技术和管理之间的接口被称为“干件”
数据库设计应与应用系统设计相结合
结构(数据)设计:设计数据库模式或数据库结构
行为(处理)设计:赵崇黑设计应用程序、事务处理等。
形式与行为分离的设计
传统的软件工程忽略了应用程序中数据语义的分析和抽象,并试图尽可能地拖延数据结构设计的决策。 初秋重塑时期的数据库设计,致力于数据模型和建模方法的研究,忽视了行为的设计。
3、数据库设计方法简述
反复试验
设计质量直接关系到设计师的经验和水平
缺乏科学理论和工程方法支撑,工程质量难以保证
数据库运行一段时间后,经常会发现世界成本存在各种问题,增加了维护成本
标准地形的六种标准设计方法
手工设计法
基本理念
过程迭代和逐步细化
规范设计方法(续)
典型方法:
(1) 新奥尔良(Ne Rock Gum w Orleans)法清照周府:数据库设计分为四个阶段
SBYao 方法:将数据库设计分为五个步骤
IRPalmer 方法:将数据库设计视为一个循序渐进的过程
(2) 计算机辅助设计
甲骨文设计师 2000
SYBASE PowerDesigner
四、数据库设计的基本步骤
数据库设计的过程(六个阶段)
文文若都 1. 需求分析阶段
准确理解波浪、六光、旭仔、烧测、疾病、染色八大解决方案,分析用户需求(包括数据和处理)
它是整个设计过程的基础,也是最难、最耗时的一步
2、概念结构设计阶段
这些板是整个数据库设计联盟的关键
通过对用户需求的综合、归纳和抽象,形成独立于具体DBMS的概念模型
3.逻辑结构和设计阶段
将概念结构转换为 DBMS 支持的数据模型
优化它
4.数据库物理设计阶段
为逻辑数据模型选择最适合应用环境的物理结构(包括存储结构和访问方式)
5.数据库实施阶段
根据逻辑设计和物理设计的结果,使用DBMS提供的数据语言、工具和宿主语言
建立数据库,编译调试应用程序,将数据整理入库,并进行试运行
6、数据库运维阶段
数据库应用系统试运行后即可正式投入运行。
数据库系统在运行过程中,必须不断地进行评估、调整和修改。
设计特点:
在设计过程中,数据库的设计和数据库中数据处理的设计紧密结合,这两方面的需求分析、抽象、设计和实现在每个阶段同时进行。 相辅相成完善易景业控股双方六方展设计
曾阿欢戈地必须要记住的设计过程中每个阶段的设计说明:
5.各级数据库模式的形成过程
1、需求分析阶段:综合各个用户的应用需求
2、概念设计阶段:形成独立于机器特性、独立于各个DBMS产品的概念模型(ER图)
3、逻辑图像生物系统开发或程序设计阶段:首先将ER图转化为特定数据库产品支持的数据模型,如关系模型,形成数据库逻辑模型; 然后根据用户的处理要求,安全性考虑,在基础表的基础上,建立必要的视图(View),形成数据的外部模型。
4、物理设计阶段:根据DBMS的特点和处理的需要dede数据库,远景在数据库中进行物理存储安排,建立索引,形成schema。
6.数据库设计技巧
1、设计数据库前(需求分析阶段)
1)了解客户需求,询问用户如何看待未来的需求变化。 让客户说明他们的需求,随着开发的进行,经常询问客户,确保他们的需求还在开发的目的之内。
2)了解企业业务可以在后期开发阶段节省大量时间。
3)注意输入输出。
在定义数据库表和字段要求(输入)时,您应该首先检查现有或设计的报告、查询和视图(输出)以确定哪些表和字段是支持这些输出所必需的。
示例:如果林三泉四的客户需要一份按邮政编码排序、分段和汇总的报表,您需要确保它包含一个单独的邮政编码字段,并且不要将邮政编码混入地址字段。
4)创建数据字典和ER图
ER 图和数据字典让任何了解数据库的人都清楚如何从中获取数据。 ER 图对于显示表之间的关系很有用,而数据字典说明每个字段的用途和可能存在的任何别名。 这对于 SQL 表达式的文档来说是绝对必要的。
5) 定义标准的对象命名约定
数据库中各种对象的命名必须规范。
2. 表和字段设计(数据库逻辑设计)
表格设计原则
1)标准化和规范化
数据标准化有助于消除数据库中的数据冗余。 有多种形式的标准化可以很好地协同工作,但通常认为第三范式(3N 形式)在性能、可扩展性和数据完整性方面实现了最佳平衡。 简单来说,符合3NF标准的数据库的表设计原则是:“一地一银到老赵”,即一张表只包含自己的基本属性,不包含自己的基本属性。自己的属性需要分解。 表之间的关系由外键连接。 它具有以下特点: 有一组表专门用于存储通过键连接起来的关联数据。
例如:存储客户及其相关订单的 3NF 数据库可能有两个表:Customer 和 Order。 Order 表不包含与订单关联的客户的任何信息,但表中存储了一个键值,该键值指向 Customer 表中包含客户信息的行。
事实上,出于效率原因,有时需要标准化表。
2)数据驱动
使用数据驱动而不是硬编码的方式,很多策略的变更和维护都会方便很多,大大增强了系统的灵活性和可扩展性。
例如,如果用户界面需要访问外部数据源(文件、XML文档、其他数据库等),宜在用户界面支持表中存储相应的链接和路径信息。 此外,如果用户界面执行类似工作流的任务(发送电子邮件、打印文具、修改记录状态等),那么生成工作流的数据也可以存储在数据库中。 角色权限管理也可以通过数据驱动来完成。 事实上,如果流程是数据驱动的,您可以让用户承担相当大的责任来维护他们自己的工作流程。
3)考虑变化
在设计数据库时,应该考虑哪些数据字段将来可能会发生变化。
比如姓氏是这样的(九淮题中焦见卿的书写速度是西方人的姓氏,比如女人婚后的夫姓等)。 因此,在构建存储客户信息的系统时,将姓氏字段存储在一个单独的数据表中,并且还要添加新计划的开始日期和结束日期等几个段落,以便可以更改此数据条目跟踪。
现场设计冷凝原则
4) 应该添加到每个表中的 3 个有用字段
dRecordCreationDate,VB下默认为Now(),SQL Server下默认为GETDATE()
sRecordCreator,SQL Server下默认为NOT NULL DEFAULT·USER
nRecordVersion,记录的版本标志; 有助于准确解释记录中存在空数据或缺失数据的原因 ·
5)地址和电话的多个字段
单行描述街道地址是不够的。 Address_Line1、Address_Line2 和 Address_Line3 提供了更大的灵活性。 此外,电话号码和电子邮件地址最好有自己的数据表,有自己的类型和标签类别。
6)使用角色实体定义属于一个类别的列
当需要定义属于特定类别或具有特定角色的事物时,可以使用角色实体创建特定的时间相关关系,从而实现自我文档化。
示例:使用PERSON 实体和PERSON_TYPE 实体来描述人员。 例如,当John Smith, Engineer 晋升为John Smith, Director,最后爬上John Smith, CIO 的高位,你要做的就是改变PERSON 和PERSON_TYPE 两个表的关系键值,并添加日期/时间字段以了解更改发生的时间。 这样,您的 PERSON_TYPE 表包含了所有可能的 PERSON 类型,例如 Associate、Engineer、Director、CIO 或 CEO。 另一种方法是更改 PERSON 记录以反映新的头衔更改,但这样就不可能及时准确地跟踪此人的时间。
7)尽可能选择数字类型和文本类型
在 SQL 中使用 smallint 和 tinyint 类型时要特别小心。 比如你想看月销售额合计,合计字段类型是smallint,那么如果合计超过$32767,就无法进行计算操作。
而ID类型的文本字段,如客户ID或订单号等,要设置得比一般想象的要大。 假设客户 ID 的长度为 10 位。 那么您应该将数据库表字段长度设置为 12 或 13 个字符长。 但是这个额外的空间允许数据库在大小上增长而不必在将来重建整个数据库。
8) 添加删除标志字段
在表中包含一个“标记为删除”字段,以便可以将行标记为删除。 不要删除关系数据库中的单个行; 最好使用清理程序并仔细维护索引完整性。
3、选择键和索引(数据库逻辑设计)
重点选择原则:
1)按键设计的4个原则
为相关字段创建外键。
所有键必须是唯一的。
避免复合键。
外键总是与唯一的键字段相关。
2)使用系统生成的主键
在设计数据库时,系统生成的键作为主键,因此实际上控制了数据库的索引完整性。 这样,数据库和非人工机制有效地控制了对存储数据中每一行的访问。 使用系统生成的键作为主键的另一个优点是dede数据库,当您拥有一致的键结构时,很容易发现逻辑缺陷。
3)不要使用用户的密钥(不要使主键可更新)
在确定使用什么字段作为表的键时,必须注意用户将编辑的字段。 通常,不要选择用户可编辑的字段作为键。
4)可选键有时可以作为主键
可选键可以进一步用作主键以具有创建强大索引的能力。
索引使用原则:
索引是从数据库中检索数据的最有效方法之一。 95%的数据库性能问题都可以使用索引技术来解决。
1)逻辑主键使用唯一组索引,系统键使用唯一非组索引(作为存储过程),任意外键列使用非组索引。 考虑数据库有多大,如何访问表,以及这些访问主要是读取还是写入。
2) 大多数数据库都会索引自动创建的主键字段,但不要忘记索引外键,外键也是经常使用的键,例如运行查询以显示主表和所有关联表中的记录。
3)不要索引memo/note字段,不要索引大字段(有很多字符),这样做会使索引占用过多的存储空间。
4)不要索引常用的小表
不要在小表上设置任何键,更不要频繁插入和删除。 这些插入和删除操作的索引维护可能比扫描表空间消耗更多时间。
4.数据完整性设计(数据库逻辑设计)
1)完整性实现机制:
实体完整性:主键
参照完整性:
删除父表中的数据:级联删除; 限制删除; 空值
向父表插入数据:有限插入; 递归插入
更新父表中的数据:级联更新; 限制更新; 空值
DBMS可以通过两种方式实现参照完整性:外键实现机制(约束规则)和触发器实现机制
用户定义的完整性:
不为空;检查;触发器
2) 用约束而不是业务规则来加强数据完整性
数据完整性是使用数据库系统实现的。 这不仅包括通过标准化实现的完整性,还包括数据的功能。 在写数据的时候,也可以加入触发器来保证数据的正确性。 不依赖业务层来保证数据的完整性; 它不保证表(外键)之间的完整性,因此不能强加其他完整性规则。
3) 强制指示完整性
在有害数据进入数据库之前将其清除。 激活数据库系统的指示完整性功能。 这可以保持数据清洁并迫使开发人员花费更多时间处理错误情况。
4)使用查找来控制数据完整性
控制数据完整性的最佳方式是限制用户的选择。 只要有可能,应该为用户提供一个清晰的值列表以供选择。 这将减少打字错误和误解,同时提供数据一致性。 某些公共数据特别适合查找:国家代码、状态代码等。
5)采纳观点
为了在数据库和应用程序代码之间提供另一层抽象,可以建立特定于应用程序的视图,而无需应用程序直接访问数据表。 这样做还可以让您在处理数据库更改时有更多的自由。
5. 其他设计技巧
1)避免使用触发器
触发器的功能通常可以通过其他方式实现。 调试程序时,触发器可能会产生干扰。 如果确实需要使用触发器,最好将其集中记录。
2)使用通用英语(或任何其他语言)而不是编码
创建下拉菜单、列表和报表时最好按英文名称排序。 如果需要代码,可以在代码旁边附上用户知道的英文。
3) 保存常用信息
有一个专门用于一般数据库信息的表是很有用的。 该表存储数据库的当前版本、最近一次检查/修复(对于Access)、关联设计文档的名称、客户等信息。 这允许一种简单的机制来跟踪数据库,当客户联系您抱怨他们的数据库不符合预期时,这在非客户端/服务器环境中特别有用。
4)包括版本控制机制
在数据库中引入版本控制机制来确定所使用的数据库的版本。 随着时间的推移,用户的需求总会发生变化。 最终可能需要修改数据库结构。 将版本信息直接存储在数据库中更方便。
5) 文档
记录所有快捷方式、命名约定、限制和功能。
使用注释表、列、触发器等的数据库工具。对于开发、支持和跟踪更改非常有用。
在数据库本身内或单独记录数据库。 这样,一年多后再回去做第二版时,犯错的几率就会大大降低。
6) 测试、测试、测试和重复
创建或修改数据库后,必须使用新的用户输入数据测试数据字段。 最重要的是,让用户测试并与用户一起工作,以确保选择的数据类型满足业务需求。 在将新数据库投入使用之前需要进行测试。
7) 检查设计
在开发过程中检查数据库设计的一种常用技术是根据数据库支持的应用程序原型检查数据库。 换句话说,对于最终表示数据的每个原型应用程序,请确保检查数据模型并查看数据是如何检索的。