数据库的设计

简介: 数据库的设计

数据库设计主要有以下步骤:


需求分析


概念结构设计


逻辑结构设计


物理结构设计


数据库的实施


数据库的运行和维护


根据重点,这里主要介绍一下前四点,其中着重介绍概念结构设计和逻辑结构设计。


1需求分析


作用顾名思义,一般采用自顶向下的方法。值得注意的是,系统统中的数据则借助数据字典(data dictionary,DD)来描述。数据字典是系统中各类数据描述的集合,数据字典通常包括数据项,数据结构,数据流,数据存储,和处理过程5个阶段。


2.概念结构设计


这里主要是建立E-R图,一般采用自底向上的方法。

大致步骤如下,首先对数据进行抽象处理,再局部设计E-R图,最后再合并成总的E-R图。


2.1数据抽象


对数据进行分类,聚集,概括抽象处理。

分类是确定实体;聚集是确定实体的属性;概括原来的E-R模型没有,这里是对其扩充,是一种子集联系,比如学生下面可以分成本科生、研究生,前者称为超类,后者称为子类。


2.2局部设计E-R图


在多层的数据流图中选择一个适当层次的数据流图,作为设计分E-R图的出发点 ,将各局部应用涉及的数据分别从数据字典中抽取出来参照数据流图,标定各局部应用中的实体、实体的属性、标识实体的码,确定实体之间的联系及其类型(1:1,1:n,m:n)

这里有几条原则,主要和属性有关

(1)属性不能再具有需要描述的性质。即属性必须是不可分的数据项,不能再由另一些属性组成

(2)属性不能与其他实体具有联系。联系只发生在实体之间

(3)能做属性对待的,尽可能用属性对待


2.3总的E-R图


分两步走

一是合并局部E-R图,形成初步E-R图,二是对初步E-R图优化,消除冗余。

合并局部E-R图,形成初步E-R图:

合理消除各E-R图中的冲突是合并E-R图的主要工作与关键所在。各子系统的E-R图之间的冲突主要有三类:

1)属性冲突:属性域冲突,即属性值的类型、取值范围或取值集合不同;属性取值单位冲突。 解决方法商议,统一

2)命名冲突:同名异义,即不同意义的对象在不同的局部应用中具有相同的名字;异义同名(一义多名),即同一意义的对象再不同的局部应用中具有不同的名字。 解决方法商议、统一

3)结构冲突:同一对象在不同应用中具有不同的抽象(实体、属性,变换成一致的抽象);同一实体在不同子系统的E-R图中所包含的属性个数和属性排列次序不完全相同(属性取并集);实体间的联系在不同的E-R图中为不同的类型(综合,调整)。

消除冗余,形成基本E-R图:

主要方法如下:

分析方法

规范化理论


3逻辑结构设计


这里主要是将E-R图转化为对应模型,以关系模型为例。

E-R图向关系模型的转换,要解决的问题是如何将实体型和实体间的联系转换为关系模式,如何确定这些关系模式的属性和码。

主要原则如下:

1685011988117.jpg

(3)具有相同码的关系模式可以合并


4.数据库的物理结构设计


物理设计是为逻辑数据结构模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。

这里主要是了解其常见的存取方法,常用的存取方法有三类:1.索引方法,目前主要是B+树索引方法。2.聚簇方法(Clustering)方法。3.是HASH方法

相关文章
|
25天前
|
数据库 索引
评论功能里数据库的设计
【4月更文挑战第2天】本文探讨了评论系统的树形结构设计,提出了四种方法:邻接表、分段式path、Nested Set和Closure Table。针对评论业务功能,如加载评论页和查看回复,优先考虑邻接表和分段式path。采用邻接表思路,设计了评论表结构,包括Uid、Biz、BizID、RootID、PID、Content、索引和级联删除规则。同时提到了索引设计,如Uid、Biz+BizID、PID和Ctime/Utime,以优化查询性能。
36 3
|
14天前
|
存储 SQL 安全
6.数据库技术基础
6.数据库技术基础
|
23天前
|
SQL 关系型数据库 数据库
数据库学习
数据库学习涵盖基础概念、类型(如关系型与NoSQL)、设计、安全和应用。理解数据组织、DBMS功能,掌握SQL语言至关重要。实践中,探索不同数据库系统,确保数据安全,参与实际项目,利用教程资源,能提升数据库管理和应用能力。
18 7
|
4月前
|
存储 NoSQL 关系型数据库
现代数据库技术及其应用
本文介绍了现代数据库技术的发展与应用。从关系型数据库到NoSQL数据库,再到分布式数据库,不同的技术在满足不同需求的同时也带来了新的挑战和机遇。我们将探讨这些数据库技术的特点、优势和适用场景,并提供一些实际应用案例。
|
6月前
|
SQL 关系型数据库 MySQL
数据库基础
数据库基础
36 0
|
10月前
|
NoSQL 关系型数据库 MySQL
查看数据库数据的小工具
使用小工具访问数据库,支持mysql,redis,postgres,milvus,mongodb。
138 1
|
存储 SQL Oracle
Sqlit(数据库)学习
Sqlit(数据库)学习
107 0
|
SQL NoSQL Oracle
【数据库】实际项目上,用到的数据库,涨涨小知识
说到数据库,本篇文章来简单总结下实际项目上用到的数据库
54 0
|
存储 Oracle NoSQL
了解学习数据库知识
了解学习数据库知识
207 30
了解学习数据库知识
|
SQL 网络协议 安全