项目一数据库管理系统中需求分析Word格式.docx
《项目一数据库管理系统中需求分析Word格式.docx》由会员分享,可在线阅读,更多相关《项目一数据库管理系统中需求分析Word格式.docx(11页珍藏版)》请在冰豆网上搜索。
数据库设计的方法中比较著名的有新奥尔良方法,它将数据库的设计分为四个阶段:
需求分析,概念设计,逻辑设计和物理设计。
需求分析:
需求分析阶段是整个设计的基础,是最困难,最耗时间的一步,需求分析做得是否充分与准确,决定了其上构建数据库的速度与质量。
需求分析如果做的不好,可能会导致整个数据库设计返工重做。
本案例中任务分析:
管理员可对学生基本信息,班级信息,教师信息,学生选课情况,学校基本信息进行管理,学生可对本人信息进行修改,进行网上选课,浏览个人成绩及选课情况。
包括这样几个功能模块:
1、用户管理:
用户注册,用户登录,用户修改,用户删除
2、学生基本信息管理:
系别信息添加、修改、删除;
班级信息添加、修改、删除;
学生信息的添加、修改、删除;
系别、班级、学生基本信息的查询。
3、教师基本信息管理:
教师信息的添加、修改、删除、查询。
4、课程管理:
课程信息的添加、修改、删除、查询;
教师授课安排,学生选课。
5、学生成绩管理:
成绩的录入和修改;
成绩的汇总统计,成绩的审核和锁定;
成绩的查询。
6、系统维护管理:
数据备份、恢复;
导入、导出;
系统帮助。
通过对以上系统功能分析得知,该系统涉及大量,复杂的数据管理,如何组织数据,采取何种数据模型来维护数据,是摆在我们面前的首要问题。
概念设计:
概念设计是在需求分析的基础上,用概念数据模型如E-R数据模型,表示数据及其相互间的联系。
此时的模型虽然不能直接实现,但由于它易于被用户所理解,因而它不但用于后续的设计,而且也是与用户交流的重要资料。
E-R模型的图形表示法
提供了表示实体、属性和联系的方法
实体用矩形表示,框内写明实体名。
属性用椭圆表示,框内写明属性。
联系用菱形表示,菱形框内写上实体间的联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:
1,1:
N,M:
N)。
(一对一,一对多,多对多)。
在本案例中:
包含的实体有:
学生,课程,班级,教师等,同学们可根据功能需求确定每个实体中所包含的属性,并画出相应的E-R表示。
如学生:
实体之间的关系表示为:
概念模型的设计有这样几个步骤:
设计局部概念模型
(1)明确局部应用的范围、
根据应用功能相对独立,实体个数适量的原则,划分局部应用。
例我们可以将系统划分为选课E-R模型,授课E-R图。
(2)选择实体,确定实体的属性及标识实体的关键字。
(3)确定实体之间的联系,产生局部E-R模型。
设计全局概念模型
对局部概念模型进行合并。
思考:
在本案例中,应有几个实体,各实体的属性有哪些,各实体之间有什么样的关系?
确定实体为:
学生,教师,班级,课程
学生属性有:
学号,姓名,性别,出生日期,班级名称,联系电话
教师属性有:
教师编号,教师姓名,所属系部,联系电话
班级属性有:
班级编号,班级名称,班主任,班长,所属专业,所属系部
课程属性有:
课程编号,课程名称,课程类型,学时,学分,具体描述
各实体之间的关系:
学生学习课程,教师教授课程,学生属于班级,教师授课班级
根据以上情况画出相应的E-R图如下:
逻辑设计:
将概念数据模型表示的,与DBMS(数据库管理系统)无关的数据模式,转换成以DBMS的逻辑数据模型表示的逻辑模式,并对其进行优化。
从E-R图转化成关系模式
关键字(码):
唯一标识实体的属性称之。
例如学生实体的学号,教师实体的教师编号等
候选关键字:
对某个关系,若存在多个属性都是关键字,则它们中的任何一个都称为候选关键字。
外部关键字:
不是本关系的关键字,而是另一个关系的关键字。
●一个实体转换为一个数据表。
实体的属性转换为数据表的字段。
●一对一,一对多的联系不转换为一个数据表。
两个实体对应的数据表依靠外部关键字建立联系。
一对一:
一位厂长管理着一个工厂,一个工厂只有一位厂长。
厂长数据表(厂长姓名#,年龄,性别,职工人数)
工厂数据表(工厂编码#,工厂全名,地址,厂长姓名*)
一对多:
两个实体分别转换为两个数据表,而联系不用转换为数据表,依靠外部关键字建立联系。
在多的一方引入外部关键字。
专业数据表(专业编号#,专业名称)
班级数据表(班级编号#,班级名称,班长,班主任,专业编号*)
●多对多的联系转换为一个数据表。
该数据表的复合关键字为两个实体的关键字。
必须把多对多联系简化成两个一对多的联系来处理。
多对多:
学生(学号#,学生姓名,性别,年龄,邮箱)
课程(课程编号#,课程名称,课时数,学分)
学习(学号#,课程编号#,成绩)
根据以上理论,在本案例中,可以转化出几个表?
确定每个表中包含字段及主键和外键。
(思考)
规范化处理
消除异常,改善完整性和存储效率,一般达到第三范式要求就可以了。
第一范式
若一个关系中,各属性都是不可再分割的基本数据项,则称该关系属于第一范式,如下面的学生数据表:
学生表(学号#,姓名,生日,性别,所在城市,长途区号,课程#,学期,学分,成绩)
学号,课程为复合关键字
第二范式
如果一个关系满足第一范式,并且所有非主属性都完全函数依赖于关键字,则该关系是第二范式。
完全函数依赖:
若属性Y单值依赖于关键字X,而Y不能单值依赖于X的某一真子集,则称Y完全函数依赖于X。
方法:
把学号和课程拿出来,组成一个新的数据表(学号#,课程#,成绩)
再把其他的分成两个表:
学生(学号#,姓名,生日,性别,所在城市,长途区号)
课程(课程#,学期,学分)
从规范化的定义可以得到一个结论:
若关键字由单一属性组成,那么满足第一范式的关系必然满足第二范式。
第三范式
如果一个关系满足第二范式,并且不存在非主属性对关键字的传递函数依赖,则该关系是第三范式。
传递函数依赖:
若属性Y单值依赖于关键字X,而属性Z又单值依赖于属性Y,则称Z传递依赖于X。
在以上表中,长途区号单值依赖于所在城市,所在城市又单值依赖于学生,存在了传递函数依赖。
把学生表进一步分解为:
学生(学号#,姓名,生日,性别,所在城市)
城市(所在城市#,长途区号)
物理设计:
是为逻辑数据模型选取一个最适合的应用环境的物理结构,即存储结构和存取方法。
即文件结构,各种存取路径,存储空间的分配,记录的存储格式先等。
思考题:
设有如图所示的关系
职工号
职工名
年龄
性别
单位号
单位名
11
张三
20
男
D3
CCC
12
李四
22
女
D1
AAA
试问R属于3NF吗?
为什么,若不是,它是第几范式?
如何把它规范化为3NF?
如下为选课系统的E-R图,写出包含的实体及实体之间的关系。
并将E-R图转化成关系模式。
实训题:
设计一个图书管理系统,系统中包括以下几部分:
图书:
图书号,图书名,作者,类型,单价,数量
出版社:
出版社号,出版社名称,所在城市,电话,邮政编码,联系人
读者:
借书证号,姓名,性别,班级
有如下约定:
一个人可以借多本图书,一种图书可以被多个读者借阅;
读者在借书和还书时,要登记借书日期和还书日期;
图书入库时要记录购买数量;
一个出版社可以出版多种书籍,一种书仅为一个出版社出版。
完成如下问题:
设计图书管理系统的出版局部E-R图、借阅局部E-R图。
将出版局部E-R图与借阅局部E-R图合成全局E-R图
根据以上全局E-R图导出关系模式,并指出主键和外键。
基本概念:
数据库(DB):
在长期存入在计算机内,有组织的,可共享的相关数据的集全,它将数据按一定的数据模型进行组织、描述和存储,具有冗余度小、数据独立性高、易扩展和可被各类用户共享的特点。
数据库中不仅存放数据,还存放有数据之间的关系。
数据库管理系统(DBMS):
是位于用户和操作系统之间的数据管理软件,它为用户或应用程序提供访问数据库的方法,包括数据库的创建、查询、更新及各种数据控制,它是数据库系统的核心。
目前比较流行的有:
ACCESS,SQLServer,Oracle,Sybase等。
主要包括以下功能:
数据定义功能,数据操纵功能,数据库运行管理,数据库的建立和维护。
当前流行的几种数据库:
目前,商品化的数据库管理系统以关系型数据库为主导产品,技术比较成熟。
面向对象的数据库管理系统虽然技术先进,数据库易于开发、维护,但尚未有成熟的产品。
VisualFoxPro
由微软公司开发,功能包括前台界面设计及后台数据管理。
Access
由微软开发,办公套件之一,桌面型数据库软件之一。
SQLServer
SQLServer是由微软开发的数据库管理系统,是Web上最流行的用于存储数据的数据库,它已广泛用于电子商务、银行、保险、电力等与数据库有关的行业。
目前流行版本是SQLServer2005,它只能在Windows上运行,操作系统的系统稳定性对数据库十分重要。
并行实施和共存模型并不成熟,很难处理日益增多的用户数和数据卷,伸缩性有限。
SQLServer提供了众多的Web和电子商务功能,如对XML和Internet标准的丰富支持,通过Web对数据进行轻松安全的访问,具有强大的、灵活的、基于Web的和安全的应用程序管理等。
而且,由于其易操作性及其友好的操作界面,深受广大用户的喜爱。
.Oracle
提起数据库,第一个想到的公司,一般都会是Oracle(甲骨文)。
该公司成立于1977年,最初是一家专门开发数据库的公司。
Oracle在数据库领域一直处于领先地位。
1984年,首先将关系数据库转到了桌面计算机上。
然后,Oracle5率先推出了分布式数据库、客户/服务器结构等崭新的概念。
Oracle6首创行锁定模式以及对称多处理计算机的支持……最新的Oracle8主要增加了对象技术,成为关系—对象数据库系统。
目前,Oracle产品覆盖了大、中、小型机等几十种机型,Oracle数据库成为世界上使用最广泛的关系数据系统之一。
Oracle数据库产品具有以下优良特性。
(1)兼容性
Oracle产品采用标准SQL,并经过美国国家标准技术所(NIST)测试。
与IBMSQL/DS、DB2、INGRES、IDMS/R等兼容。
(2)可移植性
Oracle的产品可运行于很宽范围的硬件与操作系统平台上。
可以安装在70种以上不同的大、中、小型机上;
可在VMS、DOS、UNIX、Windows等多种操作系统下工作。
(3)可联结性
Oracle能与多种通讯网络相连,支持各种协议(TCP/IP、DECnet、LU6.2等)。
(4)高生产率
Oracle产品提供了多种开发工具,能极大地方便用户进行进一步的开发。
(5)开放性
Oracle良好的兼容性、可移植性、可连接性和高生产率使OracleRDBMS具有良好的开放性。
DB2
DB2是内嵌于IBM的AS/400系统上的数据库管理系统,直接由硬件支持。
它支持标准的SQL语言,具有与异种数据库相连的GATEWAY。
因此它具有速度快、可靠性好的优点。
但是,只有硬件平台选择了IBM的AS/400,才能选择使用DB2数据库管理系统。
DB2能在所有主流平台上运行(包括Windows),最适于海量数据。
DB2在企业级的应用最为广泛,在全球的500家最大的企业中,几乎85%以上都用DB2数据库服务器,而国内到1997年约占5%。
MySQL
MySQL是最受欢迎的开源SQL数据库管理系统,它由MySQLAB开发、发布和支持。
MySQLAB是一家基于MySQL开发人员的商业公司,它是一家使用了一种成功的商业模式来结合开源价值和方法论的第二代开源公司。
MySQL是MySQLAB的注册商标。
MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。
MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass-deployed)的软件中去。
与其他数据库管理系统相比,MySQL具有以下优势:
(1)MySQL是一个关系数据库管理系统。
(2)MySQL是免费、开源的。
(3)MySQL服务器是一个快速的、可靠的和易于使用的数据库服务器。
(4)MySQL服务器工作在客户/服务器或嵌入系统中。
(5)有大量的MySQL软件可以使用。
如何选择数据库
目前使用比较多的数据库系统有sqlserver、oracle、db2等。
选择一个好的数据库是非常重要的。
开放性:
SQLServer只能在windows上运行,开放性相对不太好,操作系统的系统的稳定对数据库是十分重要的。
Windows9X系列产品是偏重于桌面应用,NTserver只适合中小型企业。
而且windows平台的可靠性,安全性和伸缩性是非常有限的。
它不象unix那样久经考验,尤其是在处理大数据量的关键业务时。
Oracle能在所有主流平台上运行(包括windows)。
完全支持所有的工业标准。
采用完全开放策略。
可以使客户选择最适合的解决方案。
对开发商全力支持。
DB2能在所有主流平台上运行(包括windows)。
最适于海量数据。
DB2在企业级的应用最为广泛,在全球的500家最大的企业中,几乎85%以上用DB2数据库服务器,而国内到97年约占5%.
可伸缩性,并行性:
SQLserver并行实施和共存模型并不成熟。
很难处理日益增多的用户数和数据卷。
伸缩性有限。
Oracle平行服务器通过使一组结点共享同一簇中的工作来扩展windownt的能力,提供高可用性和高伸缩性的簇的解决方案。
如果windowsNT不能满足需要,用户可以把数据库移到UNIX中。
DB2具有很好的并行性。
DB2把数据库管理扩充到了并行的、多节点的环境.数据库分区是数据库的一部分,包含自己的数据、索引、配置文件、和事务日志。
数据库分区有时被称为节点或数据库节点。
安全性:
SQLserver没有获得任何安全证书。
OracleServer获得最高认证级别的ISO标准认证。
DB2获得最高认证级别的ISO标准认证。
性能:
SQLServer多用户时性能不佳。
Oracle性能最高,保持windowsNT下的TPC-D和TPC-C的世界记录。
DB2适用于数据仓库和在线事物处理性能较高。
客户端支持及应用模式:
SQLServerC/S结构,可以用ADO,DAO,OLEDB,ODBC连接。
Oracle多层次网络计算,支持多种工业标准,可以用ODBC,JDBC,OCI等网络客户连接。
DB2跨平台,多层结构,支持ODBC,JDBC等客户。
操作简便:
SQLServer操作简单。
Oracle较复杂,同时提供GUI和命令行,在windowsNT和unix下操作相同。
DB2操作简单,同时提供GUI和命令行,在windowsNT和unix下操作相同。
使用风险:
SQLserver完全重写的代码,经历了长期的测试,不断延迟,许多功能需要时间来证明。
并不十分兼容早期产品。
使用需要冒一定风险。
Oracle长时间的开发经验,完全向下兼容。
得到广泛的应用。
完全没有风险。
DB2在巨型企业得到广泛的应用,向下兼容性好。
风险小。
尽管sqlserver在许多方面不如oracl和db2,但是其价格比较低,其性能完全能够满足中小企业的应用。
(注:
可编辑下载,若有不当之处,请指正,谢谢!
)