1、数据库原型系统需求分析1.数据库需求分析的定义数据库需求分析是从现存系统开始的。现存系统就是现在使用的系统,可能是一个手工系统,也可能是一个计算机系统。通过对现存系统的调查和分析,开发符合用户需求的数据库系统(也称作目标系统)。作为数据库系统需求分析的一部分,数据库需求分析是数据库需求分析人员在调查现存系统基础上,分析和确认用户的数据需求。数据库需求分析是数据库开发的基础,其工作质量的好坏将直接影响到数据库设计乃至整个数据库系统开发工作的成败。2.数据库需求分析的内容数据库需求分析的主要内容是数据定义分析、数据操纵分析、数据完整性分析、数据安全性分析、数据库性能分析。1. 数据定义分析在数据库
2、系统中,绝大多数数据库基本表、视图、索引、角色等对象是在目标系统实现或初始化阶段创建的,但也有一些是在目标系统安装或正常运行期间动态创建的。数据定义分析是分析目标系统动态创建、修改和删除基本表、视图、索引、角色等数据对象的需求。2. 数据操纵分析数据操纵分析是分析数据库用户关于数据插入、修改、删除、查询、统计和排序等的数据操纵需求。3. 数据完整性分析数据完整性分析是分析数据之间的各种联系。数据联系常常在数据字典和E-R图中描述。4. 数据安全性分析数据安全性分析是分析数据库的各种安全需求。根据这些需求,设计人员才能设计数据库的用户、角色、权限、加密方法等数据库安全保密措施。数据安全性需求可以
3、在数据字典中描述。5. 并发处理分析并发处理分析是数据库需求分析人员在现存系统调查的基础上,分析数据库的各种并发处理需求,为数据库并发控制设计提供依据。并发处理需求可以在数据字典中描述。6. 数据库性能分析数据库性能分析是数据库需求分析人员在现存系统调查的基础上,分析数据库容量、吞吐量、精度、响应时间、存储方式、可靠性、可扩展性、可维护性等数据库性能需求。A. 数据定义分析数据定义分析的任务是确定系统安装和正常运行期间数据库、基本表、视图、索引等对象的创建、修改与删除等需求。数据定义分析为数据库并发处理设计提供依据。数据定义分析很有必要。首先,虽然数据库系统的上述对象是开发人员在数据库实现时创
4、建的,但是一些通用性较强的数据库系统相当一部分对象是在系统安装或者正常运行时创建的。例如,为了提高数据库的运行速度,证券交易管理系统按月份存储数据,即每个月份的数据存储在该月份对应的数据库中;于是每个月1号之前需要建立一个对应该月的数据库。其次,数据库运行期间可能存在修改某个对象的需求。例如,学生成绩管理系统在运行期间由于系统升级,学生基本信息需要增加一个数据项。最后,在数据库运行期间可能存在删除某个对象的需求。例如,一些临时建立的对象在不使用时需要删除。可以从以下几个方面进行数据定义分析:(1)对象命名时是否考虑了时间因素?如是,则可能有创建需求。(2)数据库系统在运行过程中,为了提高数据处
5、理的速度,可能需要创建临时表,用于存储数据处理的中间结果。(3)由于应用系统的复杂要求,需要在应用程序中动态地创建视图,以简化系统对数据操作的语句。B. 数据操纵分析数据操纵分析主要是数据插入、修改、删除、查询、统计和排序等方面的分析。C. 数据更新分析数据更新是指对数据库中的数据进行各种更新操作,包括对数据进行插入、修改、删除等操作,从而使数据库中的数据发生变化。1. 数据插入数据插入是在原有数据的基础上增加新的数据。插入的数据可以是一个表中的一条或者多条记录。在关系数据库中数据插入语句有两种使用形式:一种是使用常量,一次插入一个记录。另一种是利用查询的结果集,一次插入多个记录。2. 数据删
6、除数据删除是将对原有的不需要的数据执行删除操作,从而达到减少数据使数据得到更新的目的。在对数据执行删除操作时,若需要删除的数据和其他表中的数据有关联,则为了保证数据的完整性和一致性,通常也需要将相关数据进行删除更新操作。3. 数据修改数据修改是指对原有数据中的部分数据或者全部数据进行修改操作,从而使数据满足新要求而实现数据更新的目的。在关系数据库中,数据经常需要执行修改操作,以符合新的要求。例如,在学生基本信息表中,当某个学生的专业发生变化时,就需要修改原来所登记的专业信息以达到更新的目的。D. 数据查询分析数据查询分析的任务是确定系统正常运行期间,根据数据字典、应用系统需求及用户的需求,确定
7、哪些属性作为数据查询的选择条件构造依据,并根据系统对数据查询响应时间要求的快慢,合理地完成索引等对象的创建、修改与删除等操作。一般可以从以下几个方面进行数据查询分析:(1)根据系统需求分析的结果及各类用户对数据查询的需求,分析应用系统需要哪些实体集的属性作为系统查询的条件,如某工厂管理系统要求依据职工的岗位、职位等属性进行数据的查询。(2)根据分析比较,确定数据查询速度的快慢,合理地针对某些属性设计索引,以加快查询响应时间。E. 数据完整性分析完整性分析是基本表设计的重要基础,它是找出保证数据库中数据满足一致性、正确性和有效性的需求,其目的是防止错误的数据进入数据库。(1)一致性 一致性是指表
8、示同一事实的两个数据应当一致。例如,学生成绩管理系统中各个学院保存的学生成绩应该和学校教务处保存的学生成绩一致。(2)正确性 正确性是指数据必须正确无误的。例如,数值型数据中只能含有数字而不能含有字母。(3)有效性 有效性是指数据必须在其定义域之内。例如,性别的定义域为集合男,女,性别必须在此定义域中取值。数据完整性分析的主要任务是确定数据项取值范围、关键字、数据关联。F. 数据项取值范围数据项取值是有取值范围限制的,这种限制可以在某种程度上减轻应用程序逻辑查错的负担。例如,在职工基本信息中,根据习惯职工年龄一般为正整数,在输入年龄时,如果不小心输入为负数或者是小数时,数据库系统就会自动提示出
9、错,不充许数据输入。数据项取值范围一般在数据字典的数据项词条中说明。G. 数据库性能分析1. 容量数据库容量是数据库能够存储的数据量。数据库需求分析人员通过分析数据字典,根据数据项的长度、数据存储的数据量等因素和数据库的预期运行时间,估算数据库容量。2. 吞吐量吞吐量是单位时间能够处理的数据量。数据库需求分析人员通过分析数据字典,根据数据项的长度、数据流的流量、数据存储的数据量和存取频度等因素,估算数据库吞吐量。3. 精度精度是观测结果、计算值或估计值与真值(或被认为是真值)之间的接近程度。数据库需求分析人员首先要认真评估数据字典中的数据项的数据类型和精度是否合理,然后为数据项确定合适的精度,
10、必要时修改数据字典。需要指出的是,并非精度越高越好,因为精度高的数据在空间和时间方面的开销一般也大。4. 响应时间响应时间是从用户向计算机发出处理请求开始,经过处理直到计算机输出最终结果为止的时间间隔。例如,在学生成绩管理系统中,通过计算机查询考试成绩的响应时间是从发出查询要求开始,经过处理直到输出查询结果为止的时间。数据库响应时间指数据插入、修改、删除、查询、统计和排序的响应时间,也包括数据库备份、恢复等数据维护的响应时间。数据库响应时间是DBMS、数据库系统硬件选择和设计的重要依据。显然,响应时间越少,处理速度越快。不同的应用系统对响应时间的需求是不同的。例如,网上股票实时交易系统就要求较
11、少的响应时间,否则会给用户带来经济损失。5. 存储方式在系统刚刚建立初期,用户的数据规模并不大,存储需求也很简单,只是要把相关数据存放在存储设备上即可,但是当数据量非常大时,数据的存储方式对数据库性能影响较大,过于频繁的I/O操作将严重降低系统响应时间。跨越物理存储设备来控制数据库、表和索引的存放。这种做法可以均衡负载,因此可提高数据库性能。一般来说,大型的、被频繁操作的表应该分区,存放在几个存储设备上。 6. 可靠性对于数据库来说,可靠性是指系统能够在一定时间内不间断地、低故障率地为各种应用提供数据服务。为了保证数据库系统的可靠性,应在一开始就确定可靠性和其他质量指标,考虑相应措施。7. 可
12、扩展性可扩展性反映了系统适应变化的能力。在数据库系统开发过程中,变化是司空见惯的事情,如需求、设计的变化、算法的改进等。如果系统规模很大,问题很复杂,倘若系统的可扩展性不好,那么该系统就像用卡片造成的房子,抽出或者塞进去一张卡片都有可能使房子倒塌。8. 可维护性可维护性是反映数据库是否易于维护的性能指标。数据库可维护性分析就是分析数据库有哪些维护需求,以便在数据库设计时引起足够的重视。数据库原型系统功能模块图 数据库原型系统功能模块图删除基本表修改基本表数据库表表数据插入数据删除数据修改数据更新数据查询 数据库原型创建基本表建立与删除索引主要功能叙述:一:数据库表1、创建基本表create t
13、able (列级完整性约束条件,列级完整性约束条件 .,); 2、修改基本表 alert table add 完整性约束 drop modify ; add: 用于向表中增加新列及新列相关的完整性约束条件,新的列增加成功后不带任何数据 drop:用于删除指定的完整性约束条件 modify:用于修改原来的列定义,包括修改列名和数据类型,列数据类型修改后可能会丢失原有的数据3、删除基本表 drop table create unique cluster index on ( 次序,次序.); 4、建立与删除索引 create unique cluster index on ( 次序,次序.);注:unique:表明此索引的每个索引值只对应惟一的一个记录cluster:表时要建立的索引是聚簇索引,即按某一列建好索引后,硬盘上的数据存储顺序也调整为按这个列的顺序存储,索引的顺序和存储顺序是一致的 drop index ;二:数据查询用select语句进行查询三、数据更新1、数据插入insert into ,.) values (value1, value2,.); 如果表中的每一列均有数据插入,则可不用指定任何表名2、数据修改update set =新值 where 3、数据删除 删除指的是删除数据库中的一个记录,而不是删除某一列 delete from where