2023年7月27日发(作者:)
数据库表的设计原则数据库设计的设计内容包括:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库的实施和数据库的运⾏和维护步骤
⼀、需求分析
调查和分析⽤户的业务活动和数据的使⽤情况,弄清所⽤数据的种类、范围、数量以及它们在业务活动中交流的情况,确定⽤户对数据库系统的使⽤要求和各种约束条件等,形成⽤户需求规约。
分析的结果采⽤数据流程图(DFD)进⾏图形化的描述
⼆、概念设计
对⽤户要求描述的现实世界(可能是⼀个⼯⼚、⼀个商场或者⼀个学校等),通过对其中诸处的分类、聚集和概括,建⽴抽象的概念数据模型
这个概念模型应反映现实世界各部门的信息结构、信息流动情况、信息间的互相制约关系以及各部门对信息储存、查询和加⼯的要求等。例如(E-R模型)
三、逻辑设计
1.以概念模式(概念模式给出了系统全局的数据描述)为框架所组成的数据库叫概念数据库(Conceptual Database)
2.以外模式(⽽外模式则给出每个⽤户的局部描述)为框架所组成的数据库叫⽤户数据库(user’s Database),
3。以内模式(内模式⼜称物理模式(Physical Schema),它给出了数据库物理存储结构与物理存取⽅法)为框架所组成的数据库叫物理数据库(Physical Database),
这三种数据库中只有物理数据库是真实存在于计算机外存中,其它两种数据库并不真正存在于计算机中,⽽是通过两种映射由物理数据库映射⽽成
模式的三个级别层次反映了模式的三个不同环境以及它们的不同要求,其中内模式处于最低层,它反映了数据在计算机物理结构中的实际存储形式,概念模式处于中层,它反映了设计者的数据全局逻辑要求,⽽外模式处于最外层,它反映了⽤户对数据的要求
四、物理设计
根据特定数据库管理系统所提供的多种存储结构和存取⽅法等依赖于具体计算机结构的各项物理设计措施,对具体的应⽤任务选定最合适的物理存储结构(包括⽂件类型、索引结构和数据的存放次序与位逻辑等)、存取⽅法和存取路径等。这⼀步设计的结果就是所谓“物理数据库”。
五、验证设计
在上述设计的基础上,收集数据并具体建⽴⼀个数据库,运⾏⼀些典型的应⽤任务来验证数据库设计的正确性和合理性。形成过程
1.需求分析阶段:综合各个⽤户的应⽤需求(数据流程图(DFD)
2.概念设计阶段:形成独⽴于机器特点,独⽴于各个DBMS产品的概念模式(E-R图)
3.逻辑设计阶段:⾸先将E-R图转换成具体的数据库产品⽀持的数据模型,如关系模型,形成数据库逻辑模式;然后根据⽤户处理的要求、安全性的考虑,在基本表的基础上再建⽴必要的视图(View),形成数据的外模式
4.物理设计阶段:根据DBMS特点和处理的需要,进⾏物理存储安排,建⽴索引,形成数据库内模式设计技巧
1.表设计原则
1) 标准化和规范化
遵循三范式:遵守3NF 标准的数据库的表设计原则是:“One Fact in One Place”即某个表只包括其本⾝基本的属性,当不是它们本⾝所具有的属性时需进⾏分解。表之间的关系通过外键相连接。
2)满⾜三⼤范式
第⼀范式:1NF是对属性的原⼦性约束,要求属性具有原⼦性,不可再分解;
第⼆范式:2NF是对记录的惟⼀性约束,要求记录有惟⼀标识,即实体的惟⼀性;
第三范式:3NF是对字段冗余性的约束,即任何字段不能由其他字段派⽣出来,它要求字段没有冗余。
3)表与表之间的关系(⼀对⼀、⼀对多、多对多)
选择键和索引
(数据库逻辑设计)
键选择原则:
1) 键设计4 原则为
关联字段创建外键。
所有的键都必须唯⼀。
避免使⽤复合键。
外键总是关联唯⼀的键字段。
2) 使⽤系统⽣成的主键
设计数据库的时候采⽤系统⽣成的键作为主键,那么实际控制了数据库的索引完整性。这样,数据库和⾮⼈⼯机制就有效地控制了对存储数据中每⼀⾏的访问。采⽤系统⽣成键作为主键还有⼀个优点:当拥有⼀致的键结构时,(不让主键具有可更新性)
在确定采⽤什么字段作为表的键的时候,可⼀定要⼩⼼⽤户将要编辑的字段。通常的情况下不要选择⽤户可编辑的字段作为键。
4) 可选键有时可做主键
把可选键进⼀步⽤做主键,可以拥有建⽴强⼤索引的能⼒。
索引使⽤原则:
索引是从数据库中获取数据的最⾼效⽅式之⼀。95%的数据库性能问题都可以采⽤索引技术得到解决。
1) 逻辑主键使⽤唯⼀的成组索引,对系统键(作为存储过程)采⽤唯⼀的⾮成组索引,对任何外键列采⽤⾮成组索引。考虑数据库的空间有多⼤,表如何进⾏访问,还有这些访问是否主要⽤作读写。
2) ⼤多数数据库都索引⾃动创建的主键字段,但是可别忘了索引外键,它们也是经常使⽤的键,⽐如运⾏查询显⽰主表和所有关联表的某条记录就⽤得上。
3) 不要索引memo/note 字段,不要索引⼤型字段(有很多字符),这样作会让索引占⽤太多的存储空间。
4) 不要索引常⽤的⼩型表
不要为⼩型数据表设置任何键,假如它们经常有插⼊和删除操作就更别这样作了。对这些插⼊和删除操作的索引维护可能⽐扫描表空间消耗更多的时间。
数据完整性设计
(数据库逻辑设计)
1) 完整性实现机制:
实体完整性:主键
参照完整性:
⽗表中删除数据:级联删除;受限删除;置空值
⽗表中插⼊数据:受限插⼊;递归插⼊
⽗表中更新数据:级联更新;受限更新;置空值
DBMS对参照完整性可以有两种⽅法实现:外键实现机制(约束规则)和触发器实现机制
⽤户定义完整性:
NOT NULL;CHECK;触发器
2) ⽤约束⽽⾮商务规则强制数据完整性
采⽤数据库系统实现数据的完整性。这不但包括通过标准化实现的完整性⽽且还包括数据的功能性。在写数据的时候还可以增加触发器来保证数据的正确性。不要依赖于商务层保证数据完整性;它不能保证表之间(外键)的完整性所以不能强加于其他完整性规则之上。
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1690429290a348692.html
评论列表(0条)