数据库设计
- 格式:docx
- 大小:15.11 KB
- 文档页数:3
数据库设计是指按照特定需求和目标,构建出能够有效存储和管理数据的数据库结构。
数据库设计的主要步骤包括需求分析、概念设计、逻辑设计和物理设计。
1. 需求分析需求分析是数据库设计的第一步,其目的是明确用户的需求和数据库系统的功能。
在需求分析阶段,需要收集用户的需求和期望,明确数据的种类和量级,了解数据的输入、输出和处理过程。
2. 概念设计概念设计是数据库设计的第二步,其目的是建立数据库的模型,包括实体-关系模型(ER模型)或是其他类似的模型。
在概念设计阶段,需要将需求分析的结果转化为数据库的抽象模型,包括实体、属性和关系等。
3. 逻辑设计逻辑设计是数据库设计的第三步,其目的是转化概念模型为实际的数据库模式。
在逻辑设计阶段,需要将概念模型转化为关系模式,确定数据表的结构、数据类型和约束条件,建立数据表之间的关系。
4. 物理设计物理设计是数据库设计的最后一步,其目的是根据具体的存储设备和性能要求,选择合适的存储结构和访问方式。
在物理设计阶段,需要确定数据表的存储方式、索引策略、分区策略和冗余策略,从而保证数据库的性能和可靠性。
数据库设计的主要步骤包括需求分析、概念设计、逻辑设计和物理设计。
每一步都至关重要,任何一步的不足都可能导致数据库系统的不稳定和低效。
在进行数据库设计时,需要认真对待每个步骤,充分考虑数据库系统的整体需求和目标,从而构建出高效、稳定的数据库系统。
在数据库设计的过程中,每一个步骤都至关重要,因为数据库在现代信息科技中扮演着至关重要的角色。
一个合理设计的数据库可以大大提升系统的效率和性能,而一个不合理的设计则可能会导致系统的崩溃和数据的丢失。
在进行数据库设计时,需要认真对待每一个步骤,并且充分考虑数据库系统的整体需求和目标,从而构建出高效、稳定的数据库系统。
需求分析是数据库设计的第一步,在这个阶段,需要仔细收集用户的需求并且明确数据库系统的功能。
在设计一个销售管理系统的数据库时,需求分析阶段需要明确系统需要存储的数据种类包括客户信息、订单信息、产品信息等,还需要了解业务需求,例如系统需要支持上线下单、库存管理等功能。
毕业设计数据库设计一、引言毕业设计是大学生在校期间必须完成的重要任务,它不仅是对所学知识的综合运用,更是对自身能力的全面考验。
在毕业设计中,数据库设计是一个非常重要的环节,本文将从以下几个方面详细介绍毕业设计数据库设计的相关内容。
二、数据库设计概述数据库设计是指对一个系统或应用程序所需数据进行分析、分类、组织和存储的过程。
它包括数据模型设计、数据结构设计和数据操作规则等方面。
在毕业设计中,数据库设计通常分为以下几个步骤:1.需求分析:通过与用户交流和沟通,了解用户需求,明确系统功能和数据要素。
2.概念结构设计:根据需求分析结果,建立实体-关系图(ER图),确定实体之间的关系。
3.逻辑结构设计:将概念结构转化为逻辑结构,并进行范式化处理。
4.物理结构设计:确定数据库表的具体属性和实现方式。
5.实施和测试:将物理结构转化为具体实现,并进行测试和优化。
三、需求分析在毕业设计中,需求分析是最重要也是最基础的部分。
它涉及到对用户需求进行深入细致的了解和分析,明确系统功能和数据要素。
在需求分析阶段,需要考虑以下几个方面:1.系统功能:需要明确系统的基本功能和特殊功能,以及用户对这些功能的具体要求。
2.数据要素:需要明确系统所需处理的数据类型、数量、关系等信息。
3.用户界面:需要设计用户友好的界面,使用户能够方便地进行操作。
4.安全性:需要考虑系统的安全性,包括数据安全和操作安全等。
5.可扩展性:需要考虑系统的可扩展性,以便将来能够方便地进行升级和扩展。
四、概念结构设计概念结构设计是数据库设计中最重要也是最基础的部分。
它涉及到对实体之间关系进行建模,确定实体之间的联系。
在概念结构设计阶段,需要考虑以下几个方面:1.实体-关系图(ER图):通过ER图来描述实体之间的关系,包括一对一、一对多、多对多等不同类型。
2.实体属性:确定每个实体所具有的属性,并设置主键和外键等属性。
3.关系模式:根据ER图来生成关系模式,并进行范式化处理。
毕业论文数据库设计数据库设计是计算机科学与技术专业中非常重要的一门课程,它是指根据用户需求和系统功能,设计和组织数据库的过程。
数据库设计的目标是建立一个高效、可靠、安全的数据库系统,以支持各种业务需求和数据操作。
一、数据库设计的重要性数据库设计在计算机系统中具有重要的地位和作用。
首先,数据库设计是构建信息系统的基础,它直接关系到系统的性能、可用性和稳定性。
一个合理的数据库设计能够提高系统的响应速度、降低系统的故障率,提高系统的可靠性和可维护性。
其次,数据库设计对于数据的组织和管理具有决定性的影响。
一个好的数据库设计能够合理地组织数据,提高数据的存储效率和访问效率,减少数据冗余和数据不一致性。
同时,数据库设计还能够提供数据的安全性和完整性,保护用户的隐私和数据的机密性。
最后,数据库设计还对系统的可扩展性和可拓展性有着直接的影响。
一个好的数据库设计能够支持系统的扩展和拓展,适应不同规模和复杂度的业务需求。
同时,数据库设计还能够提供灵活的数据操作和查询功能,满足用户的个性化需求。
二、数据库设计的基本原则数据库设计需要遵循一些基本的原则,以确保数据库系统的高效性和可靠性。
首先,数据库设计需要遵循数据的一致性原则。
数据的一致性是指数据在数据库中的存储和使用应该保持一致,不出现数据冗余和数据不一致的情况。
为了保证数据的一致性,数据库设计需要合理地设计数据表的结构和关系,并且定义适当的数据约束和完整性规则。
其次,数据库设计需要遵循数据的完整性原则。
数据的完整性是指数据在数据库中的存储和使用应该符合事先定义的规则和要求。
为了保证数据的完整性,数据库设计需要定义适当的数据约束和完整性规则,限制数据的输入和修改,防止非法和错误的数据操作。
再次,数据库设计需要遵循数据的安全性原则。
数据的安全性是指数据在数据库中的存储和使用应该受到保护,不被非法和未授权的用户访问和修改。
为了保证数据的安全性,数据库设计需要采用适当的安全措施和技术,如用户认证、权限管理、数据加密等。
简述数据库设计的六个阶段
数据库设计一般包含六个阶段,分别是需求分析、概念设计、逻辑设计、物理设计、
实施和维护。
1. 需求分析:在这一阶段,需求分析师与用户和相关利益相关者进行沟通,了解他
们的需求和业务流程。
根据这些需求,确定数据库需要存储哪些数据,以及数据之间的关
系和约束条件。
2. 概念设计:根据需求分析得到的信息,设计数据库的概念模型。
概念模型通常采
用实体-关系图(ER图)表示,描述了数据项、实体、关系和属性之间的关系。
3. 逻辑设计:在逻辑设计阶段,将概念模型转换为适用于具体数据库管理系统(DBMS)的逻辑模型。
逻辑模型一般采用关系模型(如关系数据库管理系统)或者其他合适的数据
结构表示。
4. 物理设计:物理设计将逻辑模型转换为具体的数据库实施方案。
在这一阶段,需
要考虑数据存储结构、存储设备、数据访问性能等方面。
还需要确定数据库的安全性、备
份和恢复策略等细节。
5. 实施:实施阶段是将物理设计实际应用于数据库管理系统的过程。
根据设计好的
数据库方案,创建数据库、表结构、索引等,将数据导入数据库中,并进行必要的测试和
验证。
6. 维护:数据库设计的最后一个阶段是维护阶段。
在数据库被实施以后,需要对其
进行定期维护和优化。
这包括监测数据库性能、进行数据库备份和恢复、修复潜在的数据
问题以及根据业务变化进行数据库结构的调整等操作。
数据库设计的步骤和要点总结数据库设计是构建数据库系统的基础,一个良好设计的数据库可以保证数据的完整性、一致性和高效性。
以下是数据库设计的步骤和要点总结:1. 需求分析- 收集需求:与项目干系人(比如客户、用户、管理者)沟通,收集业务需求。
- 确定数据范围:明确数据库需要处理的数据类型、数据来源和数据用途。
2. 概念设计- 实体-关系模型(ER模型):识别系统中的实体及其属性,以及实体之间的关系。
- 确定实体和关系的属性:为每个实体和关系指定属性,并区分主键。
3. 逻辑设计- 规范化:避免数据冗余,减少更新异常,确保数据一致性。
- 数据模型选择:根据需求选择合适的数据模型,如关系模型、文档模型等。
- 定义表结构:根据ER模型定义表结构,确定字段类型、约束等。
- 设计索引:根据查询需求设计索引,提高查询效率。
4. 物理设计- 存储结构:确定数据文件的存储方式,如顺序文件、索引文件等。
- 文件组织:设计数据文件的分布,考虑数据的存取效率和存储空间利用率。
- 确定存储分配:为数据库对象(表、索引等)分配存储空间。
5. 数据库实施- 数据迁移:将现有数据迁移到新数据库中。
- 应用程序集成:确保应用程序能够正确地与数据库交互。
- 测试:进行数据库测试,确保满足性能和功能要求。
6. 维护- 监控:定期监控数据库性能,及时发现并解决性能问题。
- 备份与恢复:定期进行数据备份,设计恢复策略以应对数据丢失或损坏的情况。
- 调整:根据实际运行情况调整数据库结构或参数。
7. 安全性设计- 用户权限管理:定义用户的访问权限,确保数据安全。
- 数据加密:对敏感数据进行加密存储。
- 审计与日志:记录所有对数据库的访问和操作,以便于事后审计。
8. 考虑特殊需求- 事务管理:确保数据库系统能够支持事务,保证数据的一致性。
- 并发控制:设计机制以处理多用户同时访问数据库的情况。
- 数据完整性:通过约束(如主键、外键、唯一性约束)确保数据的准确性和可靠性。
什么是数据库设计数据库设计的步骤数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求。
以下是由店铺整理关于什么是数据库设计的内容,希望大家喜欢!数据库设计的定义数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建设中的核心技术。
由于数据库应用系统的复杂性,为了支持相关程序运行,数据库设计就变得异常复杂,因此最佳设计不可能一蹴而就,而只能是一种“反复探寻,逐步求精”的过程,也就是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程。
数据库设计的特点数据库建设是硬件、软件和干件的结合三分技术,七分管理,十二分基础数据技术与管理的界面称之为“干件”数据库设计应该与应用系统设计相结合结构(数据)设计:设计数据库框架或数据库结构行为(处理)设计:设计应用程序、事务处理等结构和行为分离的设计传统的软件工程忽视对应用中数据语义的分析和抽象,只要有可能就尽量推迟数据结构设计的决策。
早期的数据库设计致力于数据模型和建模方法研究,忽视了对行为的设计数据库设计的方法手工试凑法设计质量与设计人员的经验和水平有直接关系缺乏科学理论和工程方法的支持,工程的质量难以保证数据库运行一段时间后常常又不同程度地发现各种问题,增加了维护代价规范设计法基本思想:过程迭代和逐步求精典型方法:(1)新奥尔良(New Orleans)方法:将数据库设计分为四个阶段S.B.Yao方法:将数据库设计分为五个步骤I.R.Palmer方法:把数据库设计当成一步接一步的过程(2)计算机辅助设计ORACLEDesigner 2000SYBASEPowerDesigner数据库设计的步骤需求分析调查和分析用户的业务活动和数据的使用情况,弄清所用数据的种类、范围、数量以及它们在业务活动中交流的情况,确定用户对数据库系统的使用要求和各种约束条件等,形成用户需求规约。
数据库设计实例100例1、在网上书店的数据库设计:系统需要包括5个表:书籍表(Book):存储书籍的基本信息,如ISBN编号、书名、作者、出版社、价格等。
用户表(User):存储用户的基本信息,如用户名、密码、电子信箱、收货地址等。
订单表(Order):存储用户购买书籍的数量、总价、下单时间、配送方式等信息。
购物车表(Shopping_cart):记录用户将书籍加入购物车的内容,存储有书籍ID、书籍价格、数量等信息。
评论表(Comment):存储用户对书籍的评论,有评论时间、用户ID、书籍ID、评论内容等信息。
2、在论坛的数据库设计:系统需要包括7个表:用户表(User):存储用户的基本信息,如用户名、密码、电子信箱、注册时间等。
帖子表(Post):存储发布的帖子的基本信息,如发布用户ID、文章标题、文章内容等。
回复表(Reply):存储帖子的回复,有回复时间、回复用户ID、帖子ID、回复内容等信息。
版块表(Board):存储板块的基本信息,如版块ID、板块名称等。
用户权限表(User_authority):存储用户对版块的权限,有用户ID、版块ID、发布权限、回复权限等。
收藏表(Favorite):存储用户收藏的帖子,有用户ID、收藏时间、帖子ID等。
标签表(Tag):存储帖子的标签,有帖子ID、标签名称等信息。
3、在餐馆的数据库设计:系统需要包括5个表:菜品表(Food):存储菜品的相关信息,如菜品名称、单价、口味等。
订单表(Order):存储客户下单的信息,如客户姓名、联系方式、下单时间等。
菜单表(Menu):记录客户点的菜单,有菜品ID、菜品价格、数量等信息。
支付表(Payment):存储客户的支付信息,有支付金额、支付方式、支付时间等。
地址表(Address):存储用户的配送地址,有地址名称、所在省份、详细地址等信息。
4、在银行的数据库设计:系统需要包括6个表:客户表(Customer):存储客户的基本信息,如客户姓名、身份证号、电话号码、开户时间等。
简述数据库设计的六个阶段数据库设计是构建和组织数据库的过程,它是软件开发中非常重要的一环。
在数据库设计过程中,一般可以分为六个阶段,分别是需求分析、概念设计、逻辑设计、物理设计、实施和维护阶段。
下面将对这六个阶段进行详细的介绍。
一、需求分析阶段需求分析是数据库设计的起点,它的目标是明确用户的需求和数据库的功能。
在这个阶段中,数据库设计人员要与用户进行充分的沟通,了解用户的需求,包括数据的种类、数据的结构、数据的关系等。
通过需求分析,可以明确数据库要支持的功能,为后续的设计提供基础。
二、概念设计阶段概念设计是数据库设计的第二个阶段,它的目标是建立数据库的概念模型。
在这个阶段中,数据库设计人员要根据需求分析的结果,将真实世界中的数据转化为概念模型,通常采用实体-关系模型(ER 模型)进行建模。
通过概念设计,可以清晰地描述数据库中的实体、属性和实体之间的关系。
三、逻辑设计阶段逻辑设计是数据库设计的第三个阶段,它的目标是将概念模型转化为逻辑模型。
在这个阶段中,数据库设计人员要根据概念模型,选择合适的数据模型(如关系模型、层次模型、网状模型等),并进行细化和优化。
逻辑设计还包括确定数据的完整性约束、索引的设计等。
通过逻辑设计,可以实现数据库的逻辑结构和操作规则。
四、物理设计阶段物理设计是数据库设计的第四个阶段,它的目标是根据逻辑模型,确定数据库的物理结构和存储方式。
在这个阶段中,数据库设计人员要选择合适的存储介质、确定数据的分布方式、设计物理结构和存储布局等。
物理设计还包括索引的选择和优化、查询优化等。
通过物理设计,可以实现数据库的高效存储和访问。
五、实施阶段实施是数据库设计的第五个阶段,它的目标是将数据库设计的结果转化为实际的数据库系统。
在这个阶段中,数据库设计人员要根据物理设计的结果,创建数据库的结构和对象,并进行数据的导入和初始化。
实施还包括数据库的安装、配置和测试等。
通过实施,可以将数据库设计的成果应用于实际的业务环境。
简述数据库设计的内容和步骤
数据库设计是指根据特定需求,对数据库的结构和组织方式进行规划和设计的过程。
数据库设计包括以下内容和步骤:
1. 需求分析:了解和分析系统需求,确定数据库的功能和目标。
2. 概念设计:建立数据库的概念模型,包括实体、属性、关系和约束等,通常使用E-R图进行表示。
3. 逻辑设计:将概念模型转化为数据库管理系统(DBMS)所
能理解的逻辑模型,如关系模型。
设计数据库的表、字段、主键、外键和索引等。
4. 物理设计:根据逻辑模型,选择合适的数据库管理系统和存储介质。
确定数据存储的物理结构、分区和冗余等策略。
5. 数据库规范化:对数据库进行规范化处理,消除数据冗余和数据不一致问题,提高数据的存储效率和数据更新的一致性。
6. 安全设计:考虑数据库的安全性需求,如身份认证、权限控制和数据加密等。
7. 性能优化:优化数据库的查询和操作性能,如索引设计、查询优化和缓存策略等。
8. 数据迁移和导入:根据设计好的数据库结构,将现有数据迁移至新的数据库中。
9. 数据库维护和监控:对数据库进行常规维护,修复和优化数据库性能。
总之,数据库设计是一个系统化和迭代的过程,目标是建立一个高效、安全、易用的数据库,满足用户需求并提供良好的数据管理和存取性能。
简述数据库设计的六个步骤
1. 需求分析呀,就像盖房子前要知道住多少人、有啥功能需求一样,得搞清楚数据库要存啥、怎么用。
比如说开网店,得知道要存商品信息、客户信息这些吧!
2. 概念设计呢,就是在脑子里构建个大致框架,想象一下数据库是个啥样子。
好比搭积木,先想好要搭个啥造型。
比如设计学校的数据库,就得有学生、老师、课程这些概念吧!
3. 逻辑设计呀,就是把概念变成具体的表格啥的,要合理安排。
就像给房间划分区域,卧室、厨房得安排得妥妥当当。
比如学生信息表,得有学号、姓名等字段吧!
4. 物理设计呢,得考虑实际存储啦,怎么存效率高。
这就像给东西找个合适的地方放,既省空间又方便拿。
比如选择合适的存储引擎。
5. 实施阶段咯,开始建数据库啦,把设计变成现实。
就像开始盖房子,一砖一瓦建起来。
比如把设计好的表创建出来。
6. 运行维护呀,可不是建完就完事儿了,还得维护好呢。
就像车子要保养一样,得让数据库好好运行。
比如定期检查数据有没有问题。
我觉得数据库设计这六个步骤真的都很重要啊,每个步骤都不能马虎,不然数据库可就不好用啦!。
数据库详细设计范文1.数据库逻辑模型设计:在逻辑模型设计中,需要定义数据库中的所有实体和属性,并确定它们之间的关系,如一对一、一对多、多对多等。
此外,还需要确定实体的主键和外键。
2.数据库物理模型设计:物理模型设计是根据逻辑模型设计的结果,将其转换为数据库管理系统能够直接支持的物理模式,也就是关系模式。
物理模型设计可以采用关系模型、层次模型、网络模型或者面向对象模型等。
在物理模型设计中,需要将逻辑模型中的实体和属性转换为数据库中的表和字段,并确定它们的数据类型、长度、约束等。
此外,还需要确定表与表之间的关系,如主外键关系,以及索引的创建和优化策略。
3.表结构设计:表结构设计是指定义数据库中的表以及表中的字段、数据类型、长度、约束等信息。
在表结构设计中,需要根据需求分析和逻辑模型设计的结果,将实体和属性转换为表和字段。
在表结构设计中,需要考虑字段的数据类型及其长度,如整型、字符型、日期型等,以及采用何种约束,如唯一约束、非空约束等。
此外,还需要确定表的主键和外键,以及表与表之间的关系。
4.数据库安全设计:数据库安全设计是指确定数据库的访问权限和安全策略,以保护数据库中的数据不被未经授权的访问和修改。
在数据库安全设计中,需要定义用户和角色,并为其分配不同的权限。
在数据库安全设计中,需要考虑用户的认证和授权机制,如用户名和密码的设置,以及用户的访问权限。
此外,还需要定义访问控制策略,如访问控制列表(ACL)、视图等。
5.数据库性能设计:数据库性能设计是指通过合理的物理模型设计、索引的创建、查询优化等手段,以提高数据库的性能。
在数据库性能设计中,需要考虑数据库的存储结构、索引的选择和使用,以及查询的优化等。
在数据库性能设计中,可以使用分区表、分布式数据库、缓存技术等来提高数据库的并发性和响应速度。
此外,还可以通过定期维护和优化数据库,如重新组织索引、收集统计信息等手段,来提高数据库的性能。
总结:数据库详细设计是对数据库进行全面规划和设计的过程,包括逻辑模型设计、物理模型设计、表结构设计、数据库安全设计和数据库性能设计等内容。
简述数据库设计的主要步骤数据库设计是建立和组织数据库的过程,它决定了数据库的结构和功能。
一个好的数据库设计可以提高数据管理的效率和准确性。
下面将简述数据库设计的主要步骤。
1.需求分析在数据库设计之前,首先需要进行需求分析。
通过与用户和相关利益相关者的沟通,了解他们的需求和期望。
这包括确定数据库的目标、功能和性能要求,以及对数据的存储、检索和处理的需求。
2.概念设计概念设计是数据库设计的第一步,它涉及到对现实世界中的实体和关系进行建模。
在这个阶段,需要识别出数据库中的实体和实体之间的关系。
可以使用实体-关系图(ER图)来表示实体和关系。
这个阶段的目标是建立一个概念模型,以便更好地理解和描述数据库系统。
3.逻辑设计逻辑设计是在概念设计的基础上进一步细化数据库的结构。
在这个阶段,需要将概念模型转化为逻辑模型,通常使用关系模型进行表示。
关系模型使用表格来表示实体和关系,并且使用键来建立表格之间的关系。
在逻辑设计中,需要定义实体的属性和关系的关联规则,以及实体之间的参照完整性约束。
4.物理设计物理设计是将逻辑模型转化为实际数据库系统的结构的过程。
在这个阶段,需要确定数据库的存储结构、索引和访问路径等细节。
物理设计还包括性能优化和安全性考虑。
在物理设计中,需要选择适合的数据库管理系统(DBMS),并根据DBMS的特性来进行具体的实现。
5.实施和测试在数据库设计完成后,需要将设计的数据库实施到实际的系统中。
这包括创建数据库、表格和索引,以及导入和验证数据。
在实施和测试阶段,需要进行功能测试、性能测试和安全性测试,以确保数据库能够满足预期的需求和要求。
6.维护和优化数据库设计并不是一次性的工作,它需要不断地进行维护和优化。
在数据库运行过程中,可能会出现新的需求和问题,需要对数据库进行修改和调整。
此外,还需要对数据库的性能进行监控和优化,以提高数据库的响应速度和资源利用率。
总结数据库设计是一个复杂的过程,需要综合考虑多个因素。
设计数据表:
a)发现领域中的概念,理清领域中概念之间的关系,将其映射成表
b)尽量遵循数据库设计范式
1. 第一范式:有主键,具有原子性,列不可分割
2. 第二范式:完全依赖,没有部分依赖
3. 第三范式:没有传递依赖
c)主键设计最好采用单一主键,最好不要采用复合主键,尽量使用没有业务语段作为主键(如:Oracle的Sequence来维护一个主键),主键一般建议使用数值型,提高检索效率
d)最好假如外键约束(在开发阶段最好不要设置外键约束,运行阶段加上外键约束)
e)关于冗余字段的问题,应该根据需求的具体情况是否加入
f)如果做通用性产品,最好不是使用数据库特性的功能,除非特殊情况。
g)如果数据量非常大,并且频繁的根据相关字段查询,最好建立索引。
范式标准:
基本表及字段之间的关系,应尽量满足第三范式。
但是,满足第三范式的数据库设计,往往不是最好的设计。
为了提高数据库的运行效率,常常需要降低范式标准:适当增加冗余,达到空间换时间的目的。
实例:有一张存放商品的基本表,如表1所示。
“金额”这个字段的存在,表明该表的设计不满足第三范式,因为“金额”可以由“单价”乘以“数量”得到,说明“金额”是冗余字段。
但是,增加“金额”这个冗余字段,可以提高查询统计的速度,这就是以空间换时间的作法。
在Rose 2002中,规定列有两种类型:数据列和计算列。
“金额”这样的列被称为“计算列”,而“单价”和“数量”这样的列被称为“数据列”。
表1 商品表的表结构
商品名称商品型号单价数量金额
电视机29吋2,500 40 100,000
主键与外键:
当全局数据库的设计完成以后,有个美国数据库设计专家说:“键,到处都是键,除了键之外,什么也没有”,这就是他的数据库设计经验之谈,也反映了他对信息系统核心(数据模型)的高度抽象思想。
因为:主键是实体的高度抽象,主键与外键的配对,表示实体之间的连接。
通俗的理解三个范式:
通俗地理解三个范式,对于数据库设计大有好处。
在数据库设计中,为了更好地应用三个范式,就必须通俗地理解三个范式(通俗地理解是够用的理解,并不是最科学最准确的理解):
第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解;
第二范式:2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性;
第三范式:3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余.
没有冗余的数据库设计可以做到。
但是,没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必须降低范式标准,适当保留冗余数据。
具体做法是:在概念数据模型设计时遵守第三范式,降低范式标准的工作放到物理数据模型设计时考虑。
降低范式就是增加字段,允许冗余。
主键PK的取值方法:
PK是供程序员使用的表间连接工具,可以是一无物理意义的数字串, 由程序自动加1来实现。
也可以是有物理意义的字段名或字段名的组合。
不过前者比后者好。
当PK是字段名的组合时,建议字段的个数不要太多,多了不但索引占用空间大,而且速度也慢。
视图技术数据表中的应用:
与基本表、代码表、中间表不同,视图是一种虚表,它依赖数据源的实表而存在。
视图是供程序员使用数据库的一个窗口,是基表数据综合的一种形式, 是数据处理的一种方法,是用户数据保密的一种手段。
为了进行复杂处理、提高运算速度和节省存储空间, 视图的定义深度一般不得超过三层。
若三层视图仍不够用, 则应在视图上定义临时表, 在临时表上再定义视图。
这样反复交迭定义, 视图的深度就不受限制了。
防止数据库设计打补丁的方法是“三少原则”
(1) 一个数据库中表的个数越少越好。
只有表的个数少了,才能说明系统的
E--R图少而精,去掉了重复的多余的实体,形成了对客观世界的高度抽象,进行了系统的数据集成,防止了打补丁式的设计;
(2) 一个表中组合主键的字段个数越少越好。
因为主键的作用,一是建主键索
引,二是做为子表的外键,所以组合主键的字段个数少了,不仅节省了运行时间,而且节省了索引存储空间;
(3) 一个表中的字段个数越少越好。
只有字段的个数少了,才能说明在系统中不存在数据重复,且很少有数据冗余,更重要的是督促读者学会“列变行”,这样就防止了将子表中的字段拉入到主表中去,在主表中留下许多空余的字段。
所谓“列变行”,就是将主表中的一部分内容拉出去,另外单独建一个子表。
这个方法很简单,有的人就是不习惯、不采纳、不执行。
数据库设计的实用原则是:在数据冗余和处理速度之间找到合适的平衡点。
“三少”是一个整体概念,综合观点,不能孤立某一个原则。
该原则是相对的,不是绝对的。
“三多”原则肯定是错误的。
试想:若覆盖系统同样的功能,一百个实体(共一千个属性) 的E--R图,肯定比二百个实体(共二千个属性) 的E--R图,要好得多。
提倡“三少”原则,是叫读者学会利用数据库设计技术进行系统的数据集。