数据库设计心得

若两个实体之间存在多对多的关系,则应消除这种关系。消除的办法是,在两者之间增加第三个实体。这样,原来一个多对多的关系,现在变为两个 一对多的关系。要将原来两个实体的属性合理地分配到三个实体中去。这里的第三个实体,实质上是一个较复杂的关系,它对应一张基本表。一般来讲,数据库设计 工具不能识别多对多的关系,但能处理多对多的关系。

在数据库学习中也学到了许多的数据库的规则。一般而言,一个实体不能既无主键又无外键。处于叶子部位的实体, 可以定义主键,也可以不定义主键(因为它无子孙), 但必须要有外键(因为它有父亲)。 主键与外键的设计,在全局数据库的设计中,占有重要地位。当全局数据库的设计完成以后,有个美国数据库设计专家说:“键,到处都是键,除了键之外,什么也 没有”,这就是他的数据库设计经验之谈,也反映了他对信息系统核心(数据模型)的高度抽象思想。因为:主键是实体的高度抽象,主键与外键的配对,表示实体 之间的连接。

主键与外键在多表中的重复出现,不属于数据冗余,这个概念必须清楚,事实上有许多人还不清楚。非键字段的重复出现,才是数据冗余!而且是一种低级冗余,即重复性的冗余。高级冗余不是字段的重复出现,而是字段的派生出现。

在进行数据库设计时,都要考虑数据的完整性,一般用约束或者商务规则来实现。约束是数据库设计中使用的概念,它涉及字段的唯一性、关系等等,而商规则则是实际编程中在代码里对能输入的内容进行限制以达到相应的目的。

原文地址:https://www.cnblogs.com/lijunjia/p/9993173.html

时间: 2024-10-10 04:13:49

数据库设计心得的相关文章

噪声收集系统——数据库设计心得

数据库设计心得 在需求分析阶段,其实数据库的设计就已经初具雏形,组内初步分析了需要哪些表来存放哪类数据,并探讨了各个表中的关键字段.但在需求分析阶段的数据库设计并不完整,只描述了部分实体,表中的属性也不能完全描述需求,数据库表间的关系没有体现,这就需要进入详细的数据库设计阶段来完善. 在数据库设计的第一阶段,还是围绕用户需求来展开工作.用户的需求在设计过程中扮演着中心角色,如果一开始对需求的分析就出现偏差,那数据库设计就很容易出现问题,好在需求分析阶段结束后我们的需求是十分明确的,项目组内根据项

创新课程管理系统数据库设计心得

因为创新课程管理系统这一个项目,是一个从无到有,没有标准可以去参考的一个项目. 这个项目专门针对该课程进行设计,所以需求的功能点很多,因此数据库有多次设计,更改再推翻重新设计再更改. 因为用户有多个类型,系统管理员,学校管理员,老师,助教,学生. 一开始的时候想把每一个都单独设计为一个表,然后登陆的时候选择身份后直接在对应的表里面进行查找即可.所以当时的用户表是如下的: 后来经过小班讨论课,又觉得可以把所有的用户全部放在一个表里面,即一个User表里面有所有用户的资料,不过这样会导致许多字段的空

手势识别项目小组——数据库设计心得

因为我们的项目是算法类,所以项目本身的需求不太明确.设计数据库的过程其实本身也是在进一步明确需求的过程. 这是我们画出的用例图: 以下是我们小组成员的数据库设计心得: JJ: 通过本次数据库设计的过程,我经历了很多也学会了很多. 首先因为课程组的要求是设计出至少15张表,而我们想要达到15张表是很困难的.我们的设计想法是先根据我们之前设计的原型先设计出一些表,根据登陆.注册.历史记录等设计了几张表.但是这些表也基本是基于用户而设计的,后来我们也寻求了指导老师的帮助,指导老师帮忙想了一个损失函数表

基于Android平台的汽车租赁平台项目的数据库设计心得

我们团队的项目是基于Android平台的汽车租赁平台,其分为手机客户端与web后台管理系统,用以满足租车公司的业务需求,故数据库设计对于本项目显得尤为重要,我们团队数据库设计最开始用的是最原始的方式:Word手动输入,但随后随着数据库课程以及实验的学习,我们最后使用的PowerDesigner设计的数据库并生成了SQL文件,导入数据库完成的数据库最终设计与搭建,我们团队于第8周完成了数据库的搭建. 数据库设计中,数据库要严格与项目需求相联系,同时保证数据库数据完整.正确.安全以及数据处理的高效与

智能查寝数据库设计心得

这次项目的数据库设计我们小组主要由苏文江同学负责,我并没有出多大力,但是我们组对于数据库的设计还是进行过许多讨论的,我也只是做了一点微小的工作.具体的设计情况就不多说了,其他几位成员的博客里面已经写得很详细了,下面就写一下相关的收获. 充分理解需求,明确实体之间关系 对于需求的充分理解,可以帮助我们节省大量的时间.通过对用户需求进行综合,归纳与抽象得到一个个实体,对实体之间的关系进行约束,便于我们对概念模型的设计. 表结构的设计是否合理 这样做的话,在之后的实际应用中,如果需求增加或者改变,不会

医生智能提醒小程序数据库设计心得——Legends Never Die

根据我们小组数据库设计的整个流程,我们将整个数据库设计划分为两个具体的阶段,在每个阶段需要进行不同的准备,有不同的注意事项,接下来我们将结合在数据库设计过程中遇到的一些问题和困难,提出自己的一些观点,希望能对大家有所启发.如有异议,欢迎指正. 一.准备阶段: 在数据库设计前,需要准备以下几样东西: 1:设计工具 数据库设计过程中会用到一些软件,例如powerdesigner(实际上不仅仅是用于数据库设计).想要设计好数据库,熟练运用软件是必不可少的.至于如何学习使用其进行数据库设计,主要的方法还

数据库设计心得——今天坐地板,明天当老板

1.设计的几点问题: 首当其冲的是权限问题 不同的用户如果不分配指定的角色,就可能会具有某些权限来修改我们不希望被修改的数据,从而导致数据库中的数据出现混乱:亦或是具有对其他表的访问权限,能够访问到程序设计者并不希望被用户访问到的数据. 因此权限问题是设计数据库中非常值得注意的一点. 以下提供一种具体实现方法: 在用户注册的时候,根据用户的注册信息,识别(判断)出这个用户应该具有哪些权限,并在注册表中插入一行,同时使用触发器为插入行授权或分配角色. 其次需要注意数据冗余的问题,这一点还算做的比较

联邦式知识图谱上的自然语言检索引擎数据库设计心得-T5队

根据我们小组讨论设计数据库的整个过程,可以将数据库的设计分为两个部分:准备部分.设计部分和总结部分.下面根据所分的阶段,对三个阶段所需的准备和注意事项进行阐述. 一. 准备部分: 设计工具 数据库的设计过程之中会使用到一些软件,在软件工程导论这门课上,周老师使用的是powerdesigner进行UML图的设计.数据库设计实验上讲授用powerdesigner来设计数据库.在学习使用该软件的时候,建议观看演示的视频进行学习,没有什么比实际的例子更加容易进行学习的了. 用例图 用例图在明确各类Act

MSSQL数据库设计心得

统一库名命名规则. 格式:公司简称_库名 如:Supesoft_Member  会员库 建库时,最好将初始大小设置为你认为可允许的最大容量.避免因为库太小,而出现系统自增加.在系统运行中,自动增加空间会影响数据库性能.另外,增加的空间可能和原来的空间不是在磁盘的连续存放位置,从而增加数据的访问时间. 建库时,有一个排规则.会对影响数据的存储格式.mssql默认的排序规则是不区分大小写和假名.像帐号系统中的用户名字段,区分和不区分就影响很大.排序规则在建库时可以选择.建好库后,建表时会默认使用建库