数据库设计包括两个方面的设计内容:概念设计和逻辑设计。
数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。在数据库领域内,常常把使用数据库的各类系统统称为数据库应用系统。
数据库设计的设计内容包括:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库的实施和数据库的运行和维护。
数据库设计(Database Design)是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程。数据库系统需要 *** 作系统的支持。
数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建设中的核心技术。由于数据库应用系统的复杂性,为了支持相关程序运行,数据库设计就变得异常复杂,因此最佳设计不可能一蹴而就,而只能是一种“反复探寻,逐步求精”的过程,也就是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程。
调查和分析用户的业务活动和数据的使用情况,弄清所用数据的种类、范围、数量以及它们在业务活动中交流的情况,确定用户对数据库系统的使用要求和各种约束条件等,形成用户需求规约。
需求分析是在用户调查的基础上,通过分析,逐步明确用户对系统的需求,包括数据需求和围绕这些数据的业务处理需求。在需求分析中,通过自顶向下,逐步分解的方法分析系统,分析的结果采用数据流程图(DFD)进行图形化的描述。
public class User {
private Integer id
private String userName
private EntityA entityA
private List<EntityB>entityBs
...
@Id
@GenericGenerator(name = "generator", strategy = "increment")
@GeneratedValue(generator = "generator")
@Column(name = "ID", length=11)
public Integer getId() {
return id
}
public void setId(Integer id) {
this.id = id
}
@Column(name = "user_name", length = 20)
public String getUserName() {
return userName
}
public void setUserName(String userName) {
this.userName = userName
}
...
//to-do: EntityA
//to-do: EntityBs
}
-----------------------------------------------------------------------------------------
@Entity
public class EntityA(){
private Integer id
private String name
...
@Id
@GenericGenerator(name = "generator", strategy = "increment")
@GeneratedValue(generator = "generator")
@Column(name = "ID", length=11)
public Integer getId() {
return id
}
public void setId(Integer id) {
this.id = id
}
@Column(name = "name", length = 20)
public String getName() {
return name
}
public void setUserName(String name) {
this.name = name
}
...
}
@Entity
public class EntityB(){
private Integer id
private String name
...
用E-R数据模型进行概念设计,首先必须根据需求说明,确认实体、联系和属性。采用E-R方法进行数据库的概念设计,可以分成三步进行:首先设计局部E-R图;然后合并各局部E-R图,并解决可能存在的冲突,得到初步E-R图;最后修改和重构初步E-R图,消除其中的冗余部分,得到最终的全局E-R图,即概念模式。扩展资料
在需求分析和逻辑设计之间增加概念设计阶段,使设计人员仅从用户角度看待数据及处理要求和约束,产生一个反映用户观点的概念模式。这样做有三个好处:
(1) 数据库设计各阶段的任务相对单一化,设计复杂程度得到降低,便于组织管理。
(2) 概念模式不受特定DBMS限制,也独立于存储安排,因而比逻辑设计得到的模式更为稳定。
(3) 概念模式不含具体的DBMS所附加的技术细节,更容易为用户所理解,因而能准确反映用户的.信息需求。
在初步E—R图中,可能存在一些冗余的数据和实体间冗余的联系。所谓冗余的数据是指可由基本数据导出的数据,冗余的联系是指可由其他联系导出的联系。冗余的数据和冗余联系容易破坏数据库的完整性,为数据库的维护增加困难,应当予以消除。消除了冗余后的初步E—R图称为基本E—R图。
但并不是所有的冗余数据与冗余联系都必须加以消除,有时为了提高效率,不得不以冗余信息作为代价。因此在设计数据库概念结构时,那些冗余信息必须消除,那些冗余信息允许存在,需要根据用户的整体需求来确定。如果人为地保留了一些冗余数据,则应把数据字典中数据关联的说明作为完整性约束条件。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)