数据库设计实验1 目的及要求本实验的实验目的是了解数据库设计和系统开发的具体过程和方法,获取数据库设计和开发的初步经验。
具体要求是:对一个具体应用问题实施需求分析、概念结构设计、逻辑结构设计、数据库物理设计、数据库实施、数据库运行与维护等步骤,设计和开发一个可以运行的数据库应用系统,提交一份设计实验报告(电子版),其中应包括整个数据库设计和开发过程的较详尽说明。
本实验的内容包括:1)对一个具体应用领域进行调查分析,写出满足一定要求的需求分析文档,包括各层数据流图和数据字典;2)按照一定的原则和步骤,从面向具体应用领域的需求分析文档导出数据库应用系统的概念结构——总E-R图,写出满足一定要求的概念结构设计文档;3)按照一定的原则和步骤,从总E-R图导出关系数据库模式,根据关系数据库规范化理论进行优化,按各个具体应用的要求设计常用查询、创建视图,形成外模式;4)设计数据库的存储结构和完整性。
5)按照逻辑数据库和物理数据库设计结果,创建具体数据库应用系统所涉及的各种数据对象并进行数据入库。
6)编制和调试具体数据库应用系统的各个应用程序。
7)通过对数据库应用系统的试运行进行调试和验收。
2 基本原理数据库设计需要经历需求分析、概念结构设计、逻辑结构设计、数据库物理设计、数据库实施、数据库运行与维护等六个阶段。
通过大量的数据库设计实践,人们已获取了这些阶段的一些成功经验和原则。
在此对这六个步骤及其设计方法、原则和经验等进行简单介绍。
要求实验小组尽量按照这些方法和原则进行数据库设计,已取得初步设计经验。
1.1 需求分析需求分析的目的是为了明确用户需求,从而合理地确定数据库系统的功能。
需求分析的主要任务包括通过调查,对用户需求(数据要求、业务处理流程和性能要求、完整性要求、安全性要求)进行收集和分析,并用易于理解的方式表达出来。
需求分析的步骤包括:1)调查与初步分析;2)分析和表达需求。
调查与初步分析的步骤包括:1)调查组织机构,包括部门组成、工作角色、职责和涉及的具体业务等;2)熟悉业务:即了解各具体业务所需数据及其来源、业务处理流程和结果去向等;3)明确需求,即取得用户认可;4)确定系统边界,即确定哪些任务由计算机完成,哪些任务由人工完成。
常用的调查方法包括:1)跟班作业,即亲自参与业务活动,了解业务活动情况;2)开会调查,与用户进行座谈;3)请业务专家介绍业务,向业务专家询问业务;4)问卷调查;5)查阅业务记录,对业务记录进行分析。
分析和表达需求的目的是用逐层细化的数据流图和数据字典逐层表达数据和处理,目前常用自顶向下的结构化分析方法,其基本步骤包括:1)划分系统,即将系统按部门或工作角色划分为若干子系统(视图),得到最高层的数据流图;2)表达各个子系统(视图),即首先将子系统(视图)抽象成一个处理,然后将处理分解细化为若干个子处理,数据随之分解,接着继续分解子处理,从而得到多层数据流图和数据字典,直到把需求表达清楚为止。
1.2 概念结构设计概念结构是对现实世界的抽象模拟,常以E-R模型为工具。
概念结构设计是指将需求分析结果抽象为概念结构的过程。
概念结构设计常用的自底向上设计方法,这一方法包括下列步骤:1)数据抽象与局部视图设计;2)视图的集成;3)概念结构验证数据抽象与局部视图设计的目的是根据需求分析结果设计各个局部视图(即分E-R 图),这些局部视图的设计步骤包括:1)选择局部应用:以中层数据流图作为设计分E-R 图的依据;2)逐一设计分E-R图:首先标定局部应用中的实体、实体的属性和码,然后确定实体之间的联系及其类型。
视图集成的目的是将各个局部视图(即分E-R图)进行集成,消除冲突和冗余,最终得到数据库的概念结构-基本E-R图。
视图集成的步骤包括:1)合并分E-R图,生成初步E-R图,目的在于消除各个分E-R图之间的属性冲突、命名冲突和结构冲突;2)修改与重构,生成基本E-R图,目的在于消除冗余数据和冗余联系。
概念结构验证的目的是检查概念结构是否具有一致性(内部无矛盾)、准确性(能准确反映原来的视图结构,包括实体、属性、联系)并满足需求分析的要求(支持所需处理的实现)。
若存在问题则作进一步的修改,直到满足要求为止。
1.3 逻辑结构设计逻辑结构设计的目的是将基本E-R图按照具体DBMS所支持的数据模型(关系、网状、层次)的要求,转换成逻辑结构,以便在DBMS上进行实现。
设计步骤为:1)将概念结构转换为一般数据模型(关系、网状、层次),目前常用关系模型;2)结合具体DBMS的特点和限制,将一般数据模型转换为具体DBMS支持的数据模型;3)对数据模型进行优化。
将E-R图转换为关系模型目前有7条原则,具体请参考课本或课程教案。
一般数据模型到具体数据模型的转换则要视具体情况确定,在此不作介绍(一般而言,SQL Server支持的关系模型可以满足大多数实际应用的需求,但是其字段的最大长度仅为8000个字节,不能用于哪些具有长字段要求的实际应用)。
优化关系模型的步骤包括:1)确定各个关系模式所包含的数据依赖,其中绝大多数是函数依赖;2)对数据依赖进行极小化处理,即消除可由其他依赖推出的依赖;3)分析各关系模式,考查是否存在部分依赖、传递依赖、多值依赖等,确定关系模式所属的范式;4)分析关系模式是否适合具体应用环境,确定是否进行合并或分解;5)对关系模式进行必要的分解或合并。
1.4 数据库物理设计数据库物理设计目的是选取适合应用环境的物理结构(存储结构、存取方法),以提高应用系统的时空效率,其设计步骤包括:1)确定数据库的物理结构;2)评价数据库的物理结构,重点是时空效率。
确定数据库的物理结构包括以下几个方面:1)确定各种数据库对象的存储结构,以满足存取时间、存储空间利用率和维护代价的要求;2)设计数据的存取路径,在关系模型的情况下就是要确定如何建立索引,即确定在哪些域上建索引、建单码索引还是组合索引、建多少索引、是否建聚簇索引等等;3)确定数据的存放位置,就是要将数据划分为易变部分和稳定部分、经常存取的部分和不经常存取的部分等,将不同的部分分开存放,存入不同的文件组(表空间)和设备,目的在于提高运行效率,降低数据管理的代价;4)确定系统配置,就是要给出合适的存储分配参数值,进行物理优化。
评价物理结构的目的是从多种可能的物理结构方案中选择一个较优的可行方案。
评价的重点是系统的时间效率、空间效率、维护代价等因素,这些因素往往是相互矛盾的,需要根据具体情况进行折衷。
物理结构评价往往采用估算的方法,即根据应用特点、硬件环境、软件环境等因素,建立代价模型,画出代价曲线进行比较,从而选出较优的可行方案。
1.5 数据库实施数据库实施的内容包括:1)定义数据库的结构,即创建表、视图、索引等;2)数据抽取、转换和装载,即从数据源(文本文件、Web、数据文件、原始凭证等)提取所需数据,将这些数据转换成符合数据库要求的格式,最后将它们装载到数据库中。
数据量较小时也可用人工录入方式进行;3)编程、调试。
本步骤可以使用模拟数据,和数据抽取、转换和装载同步进行;4)数据库试运行,即对数据库系统进行联合调试,测试各应用程序的功能(功能测试)和系统的性能指标(性能测试)。
1.6 数据库运行与维护各项测试通过后,数据库就可以投入运行了。
数据库的运行标志着维护工作的开始。
数据库维护是长期的任务,代价很大,所以在签订合同时一定要明确维护的期限和内容,避免不必要的纠纷。
数据库的日常维护工作由DBA完成,包括:1)定期进行数据库备份和恢复;2)进行安全性、完整性控制,即进行用户权限管理、约束修改等工作;3)进行性能监督、分析和改进,通过及时调整系统参数,改进系统性能;4)进行数据库的重组织和重构造,即解决碎片引起性能下降问题, 重新安排存储位置、回收垃圾、减少指针链。
3 实验报告提纲1. 引言(企业简介;企业目前存在哪些问题,计算机能够解决哪些问题等)21世纪,人类已全面进入数字信息化社会,现在信息技术的应用越来越普及,不但促进了社会的高速发展,也影响着人们的工作、学习、生活和娱乐的方式以及思想观念。
随着科学技术的不断提高,计算机科学与技术日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域,迅速地改变着人类社会的生产方式和生活方式,成为减轻人们体力与脑力劳动,帮助人们完成一些人们难以完成任务的有效工具。
随着电脑的普及与使用,现在的管理也提升了一个档次,渐渐实现了无纸化办公。
高校是科研的阵地,后勤的公寓管理也应该一改传统的人工管理,更加信息化,时代化,节省人力物力,提高效率。
基于这一点,开发此学生公寓管理系统。
2. 需求分析说明书3.1.1学生公寓需求简介学生公寓管理应考虑以下几方面的要求:用户需求:可以对学生公寓进行有效的管理,包括公寓信息、寝室信息、学生住宿资料以及交费信息等。
学生方面:让学生感觉到学校的管理透明。
学校方面:可以查询每一个学生的相关信息。
来访人员方面:为防止公寓安全,所有来访人员必须提供学生住宿的公寓号和寝室号才可以进入公寓。
3.1.2功能性需求软件需求分析是指对目标软件系统在功能、行为、性能、设计约束等方面的期望。
需求分析是软件设计、实现测试直至维护的主要基础,良好的需求分析可以避免或尽早提出早期的错误,从而降低软件的开发成本,改进软件的质量。
本学生公寓管理系统应完成以下任务:学生寝室基本信息管理:首先统一安排学生入住,如果有学生要更换寝室,可以方便查到哪个寝室还有空床,包括该寝室内已住学生的基本信息,安排入住。
学生公寓管理:可以添加新建公寓的信息,以及添加该公寓内的寝室信息,以及修改公寓和寝室的相关信息(公寓号和寝室号)。
寝室收费管理:收费以寝室为单位。
来访人员管理:对来访人员进行严格登记,包括来访时间,结束时间,来访人员的来访事由,能查询到每一条来访人员和被访人的信息。
2.1 调查与初步分析1)调查组织机构,包括部门组成和工作角色等;财务管理人员、寝室管理员、学生、外来访问人员2)企业各部门的日常业务流程简介(业务流程描述,原始表单格式)学生寝室按时交纳水电费;宿管员记录每个寝室入住情况;宿管员处可存放贵重物品;宿管员对寝室卫生进行评比;宿管员登记外来人员;财务管理人员查看欠费和余额较少的寝室,并通知学生;3)确定系统边界,即确定哪些任务由计算机完成,哪些任务由人工完成。
由计算机完成:缴费管理;外来人员登记;欠费通知;记录每个寝室入住情况;其余由人工完成2.2 分析和表达需求1)划分系统,即将系统按部门或角色划分为若干子系统(视图),得到最高层的数据流图;图3.1 组织结构图公寓管理(记录公寓基本信息,使用者:宿管员)学生管理(插入、修改、删除学生信息,寝室信息,使用者:宿管员)外来人员登记(插入、删除外来人员信息,使用者:宿管员)水费、电费(记录缴费种类,缴费信息,费用余额,是否欠费)催促缴费(使用者:财务人员)2)表达各个子系统(视图),即首先将子系统(视图)抽象成一个处理,然后将处理分解细化为若干个子处理,数据随之分解,接着继续分解子处理,从而得到多层数据流图和数据字典,直到把需求表达清楚为止。