《数据库及应用程序开发数据库设计.ppt》由会员分享,可在线阅读,更多相关《数据库及应用程序开发数据库设计.ppt(46页珍藏版)》请在三一办公上搜索。
1、1,第4章 数据库及应用程序开发 数据库设计,西安交通大学计算机教学实验中心,软件开发技术基础,2,4.2 数据库设计,只有对数据库进行合理的逻辑设计和有效的物理设计才能开发出完善而高效的信息系统 需求分析概念设计逻辑结构设计物理结构设计数据库实施阶段,3,4.2.1需求分析与概念设计,1需求分析需求分析就是分析用户的要求 结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用需求分析的任务:详细调查要处理的对象了解原系统工作概况,明确用户的各种需求 确定新系统的功能考虑今后可能的扩充和改变,4,信息要求要从数据库中获得信息的内容与性质处理要求要完成
2、什么处理功能,对处理的响应时间有什么要求。安全性与完整性要求安全性要求描述不同用户使用和操作数据库的情况完整性要求描述数据之间的关联以及数据的取值范围,5,2概念设计,以DFD和DD提供的信息作为输入,运用信息模型工具对目标进行描述,并以用户能理解的形式表达信息。这种表达独立于具体的DBMS ER方法实体联系模型 将现实世界抽象为具有属性的实体及联系。画出一张ER图,就得到了一个对系统信息的初步描述,进而形成数据库的概念模型。,6,4.2.2逻辑结构设计,ER关系模型步骤:将概念结构转化为一般的关系模型。将转化来的关系模型向特定DBMS支持下的数据模型转换。对数据模型进行优化,7,1数据库逻辑
3、模型的产生,(1)一个实体型转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。,8,(2)一个1:l联系,可以转换为一个独立的关系模式:各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。与一端的关系模式合并:在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。,9,【例4-43】,将1:1联系的E-R图转换为关系模型。,10,方案1 职工(职工号,姓名,年龄)产品(产品号,产品名,价格)负责(职工号,产品号)方案2职工(职工号,姓名,年龄,产品号)产品(产品号,产品名,价格)方案3职工(职工号,姓名,年龄)产品(产品号,产品名,价格,职工
4、号)方案3比较合理,11,(3)一个1:n联系,可以转换为一个独立的关系模式:与该联系相连的各实体的码以及联系本身的属性均换为关系的属性,而关系的码为n端实体的码与n端对应的关系模式合并:联系本身的属性均换为关系的属性,再加1端实体的码,12,【例4-44】,将含有1:n联系的E-R图转换为关系模型,13,方案1:1:n联系形成的关系独立存在。仓库(仓库号,地点,面积)产品(产品号,产品名,价格)仓储(仓库号,产品号,数量)方案2:联系形成的关系与n端对象合并仓库(仓库号,地点,面积)产品(产品号,产品名,价格,仓库号,数量)方案2较优,14,(4)m:n联系,一个m:n联系转换为一个关系模式
5、:与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性。而关系的码为各实体码的组合。,15,【例4-45】,一个m:n联系转换为一个关系模式,16,【例4-45】,学生(学号,姓名,年龄,性别);课程(课程号,课程名,学时数);选修(学号,课程号,成绩)。,17,(5)三个及以上实体间联系,三个或三个以上实体间的一个多元联系转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性。而关系的码为各实体码的组合。,18,【例4-46】,一个m:n联系转换为一个关系模式,19,【例4-46】,供应商(供应商号,供应商名,地址)零件(零件号,零件名,单价)产品(产品
6、号,产品名,型号)供应(供应商号,零件号,产品号,数量),20,(6)同一实体集联系,,按上述1:1,1:n和m:n三种情况分别处理。,21,【例4-47】,将含有同一实体集的1:n联系的E-R图转换为关系模型,22,方案1:转换为两个关系模式。职工(职工号,姓名,年龄)领导(领导工号,职工号)方案2:转换为一个关系模式。职工(职工号,姓名,年龄,领导工号),23,【例4-48】,将含有同实体集间m:n联系的E-R图转换为关系模式,24,零件(零件号,名称,价格)组装(组装件号,零件号,数量),25,2.数据模型的优化,以规范化理论为指导(1)确定数据依赖。按需求分析,写出各属性之间的数据依赖
7、。(2)考查是否存在部分函数依赖、传递函数依赖等,确定各关系模式分别属于第几范式。(3)按照需求分析对数据处理的要求,确定是否需要对它们进行合并或分解。并不是规范化程度越高的关系就越好,26,3设计用户模式,利用视图功能设计更符合局部用户需要的用户外模式。定义数据库模式主要是从系统的时间效率、空间效率、易维护等角度出发。用户外模式与模式是独立的,因此在定义用户外模式时更应该注重考虑用户的习惯与方便(1)使用更符合用户习惯的别名(2)针对不同级别的用户定义不同的外模式,以满足系统对安全性的要求。,27,4.2.3数据库物理设计及实施,物理设备上的存储结构与存取方法称为数据库的物理结构 1确定数据
8、的存储结构综合考虑存取时间、存储空间利用率和维护代价3方面的因素。2设计数据的存取路径在关系数据库中,选择存取路径主要是指确定如何建立索引。,28,索引,(1)聚簇索引聚簇键相同的元组自然地被放在同一个物理页中,如果元组过多,一个物理页放不下,则被链接到多个物理页中。(2)非聚簇索引索引页上的顺序与物理数据页上的顺序一般不一致。,29,建立索引原则,一个(组)属性经常在操作条件中出现。一个(组)属性经常作为聚集函数的参数。一个(组)属性经常在连接操作的连接条件中出现。,30,建立聚簇索引原则,检索数据时,常以某个(组)属性作为排序、分组条件。检索数据时,常以某个(组)属性作为检索限制条件,并返
9、回大量数据。表中某个(组)的值重复性较大。,31,3确定数据的存放位置,为了提高系统性能,数据应该根据应用情况将易变部分与稳定部分、经常存取部分和存取频率较低部分分开存放。数据库数据备份、日志文件备份等,可以考虑存放在磁带上。可以考虑将表和索引分别放在不同的磁盘上。在查询时,由于两个磁盘驱动器分别在工作,因而可以保证物理读写速度比较快。,32,4确定系统配置,同时使用数据库的用户数同时打开的数据库对象数使用的缓冲区长度、个数时间片大小,数据库大小物理块的大小,物理块的装填因子,33,5数据库的实施,(1)定义数据库结构(2)数据装载,34,例子建立图书馆,需求分析查询图书:通过书名和类别查询库
10、中的图书,其中书名为模糊查询。借书处理:在查询的基础上完成借书登记处理。借书时需要输入书号和读者编号,修改图书表记录和增加借阅表的记录。还书处理:实现还书处理操作。还书时需要先修改图书记录,改变其借出否标志,再删除相关的借阅记录。,35,数据库设计,概念模型读者,36,图书,37,借书,38,数据库逻辑模型,读者(编号,姓名,单位,性别,电话)图书(书号,类别,出版社,作者,书名,定价,借出否)借阅(书号,读者编号,借阅日期),39,规范化,图书:书号类别,书号出版社,书号作者,书号书名,书号定价,书号借出否;读者:编号姓名,编号单位,编号性别,编号电话;借阅:(书号,读者编号)借阅日期;所有
11、非主属性对码完全并直接依赖。各表均为第三范式。,40,完整性约束,主码约束:在“图书”表中,“书号”为主码;在“读者”表中,“编号”为主码;在“借阅”表中,“书号”和“读者编号”为主码。这些主码的属性值具有惟一性和非空性。,41,借阅表和图书表间的外码约束:,借阅中书号为外码,参照表为图书,参照属性为书号。在借阅关系中插入元组(借阅图书)时,仅当图书表中有相应书号时,系统才执行插人操作,否则拒绝此操作。,42,借阅表和读者表间的外码约束,借阅中读者编号为外码,参照表为读者,参照属性为编号。在借阅关系中插入元组(借阅图书)时,仅当读者表中有相应读者编号时,系统才执行插人操作,否则拒绝此操作。,43,关系的属性设计,关系属性的设计包括:属性名、数据类型、数据长度、该属性是否允许空值、是否为主码、是否为索引项及约束条件。,44,读者表,45,图书表,46,借阅表,