图书馆管理系统 |
|
|
据库设计 4.3.1 概念设计 在概念设计阶段中,设计人员从用户的角度看待数据及处理要求和约束,产生一个反映用户观点的概念模式。然后再把概念模式转换成逻辑模式。将概念设计从设计过程中独立开来,使各阶段的任务相对单一化,设计复杂程度大大降低,不受特定dbms的限制。 利用er方法进行数据库的概念设计,可分成三步进行:首先设计局部er模式,然后把各局部er模式综合成一个全局模式,最后对全局er模式进行优化,得到最终的模式,即概念模式。 (1) 设计局部er模式 实体和属性的定义: 图书(图书编号,图书名称,作者,出版社,出版日期,备注,价格,数量,) 借阅者(借书证号,姓名,性别,*,联系电话,密码) 身份(身份编号,身份描述,最大借阅数) 图书类别(图书类别编号,类别描述) er模型的“联系”用于刻画实体之间的关联。一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。若有联系,进一步确定是1:n,m:n,还是1:1等。还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系,等等。联系定义如图4-5所示。解释如下: u 一个借阅者(用户)只能具有一种身份,而一种身份可被多个借阅者所具有; u 一本图书只能属于一种图书类别(类别),而一种图书类别可以包含 多本图书; u 一个用户可以借阅多本不同的书,而一本书也可以被多个不同的用户所借阅。 (2)设计全局er模式 所有局部er模式都设计好了后,接下来就是把它们综合成单一的全局概念结构。全局概念结构不仅要支持所有局部er模式,而且必须合理地表示一个完整、一致的数据库概念结构。 1)确定公共实体类型 为了给多个局部er模式的合并提供开始合并的基础,首先要确定各局部结构中的公共实体类型。在这一步中我们仅根据实体类型名和键来认定公共实体类型。一般把同名实体类型作为公共实体类型的一类候选,把具有相同键的实体类型作为公共实体类型的另一类候选。 2)局部er模式的合并 合并的原则是:首先进行两两合并;先和合并那些现实世界中有联系的局部结构;合并从公共实体类型开始,最后再加入独立的局部结构。 3)消除冲突 冲突分为三类:属性冲突、结构冲突、命名冲突。 设计全局er模式的目的不在于把若干局部er模式形式上合并为一个er模式,而在于消除冲突,使之成为能够被所有用户共同理解和接受的同一的概念模型。 3)全局er模式的优化 在得到全局er模式后,为了提高数据库系统的效率,还应进一步依据处理需求对er模式进行优化。一个好的全局er模式,除能准确、全面地反映用户功能需求外,还应满足下列条件:实体类型的个数要尽可能的少;实体类型所含属性个数尽可能少;实体类型间联系无冗余。 综上所述,“图书管理系统”的全局er模式如图4-13所示。 4.3.2 关系数据库的逻辑设计 由于概念设计的结果是er图,dbms一般采用关系型(本人所使用的ms sql server就是关系型的dbms),因此数据库的逻辑设计过程就是把er图转化为关系模式的过程。由于关系模型所具有的优点,逻辑设计可以充分运用关系数据库规范化理论,使设计过程形式化地进行。设计结果是一组关系模式的定义。 (1) 导出初始关系模式 book(图书编号#,图书名称,图书类别#,作者,出版社,出版日期,备注,价格,数量)class(图书类别#,类别名)user(借书证号#,姓名,性别,身份编号#,*,联系电话,密码)id(身份编号#,身份描述,最大借阅数)owner(借书证号#,图书编号#,借书日期) 图4-14 关系模式集 (2) 产生子模式 子模式是用户所用到的那部分数据的描述。除了指出用户用到的数据外,还应指出数据与概念模式中相应数据的联系,即指出概念模式与子模式之间的对应性。 借书子模式(借书证号#,姓名,图书编号#,图书名称,借书日期) 图4-15 部分子模式 (3) 根据设计中出现的问题本人在写系统时还加入了两个关系模式: 1、 ownertemp:用于工作人员在处理借书、还书工作时临时存储借书、还书信息,以便打印报表时使用。 2、 keyer:用于存储工作人员和图书馆管理员的用户名和密码及权限,以便工作人员或图书馆管理员进入相应的功能模块时进行验证用户的身份。 4.3.3 数据库的实现 我选用microsoft sql server2000(企业版)数据库来进行数据库的逻辑设计。首先创建七个基本数据库表如表4-1-4-7所示,然后根据全局er图,建立各个表之间的联系,如图4-8所示。 表4-1 借阅者基本信息表的结构(user) 表4-2 图书信息表的结构(book) 表4-3 图书类别信息表的结构(class) 表4-4 借阅者身份信息表的结构(id) 表4-5 借阅情况信息表的结构(owner) 表4-6 借阅情况临时存储信息表的结构(ownertemp) 注:在owner表和ownertemp表中加入了索引字段,用来唯一标识一条借书记录,并且设置为标识,标识种子为1。 表4-7 工作人员和管理员信息表的结构(keyer) 图4-8 数据库表间联系图 第五章 图书管理系统应用程序设计 §5.1 系统窗体模块组成 §5.2 数据模块窗体的设置 在编写数据库应用程序时,经常要遇到这样的情况,即好多组件、窗体同时访问相同的数据源,如果为每一个组件或者窗体都设置一个数据源将是十分耗时的工件,而且要保证这些数据源的确是相同的也需花一番功夫。那么,能不能将这些数据源集中管理,最好是做成一个统一的模块,需要时就将该模块引入而不必直接操作数据源本身呢?数据模块(datamodule)是解决这个问题最好的答案。简单说来,数据模块是用来集中管理数据源的一个窗体,该窗体可被需要的地方随时引入。 但本人在开发这个系统时,开始使用了一下数据模块,但在使用过程中却碰到了一些问题。并且考虑这个系统 上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>
|
|
上一个论文: 没有了 下一个论文: VB中创建超长时间计时器对象
|
|
|
看了《图书馆管理系统》的网友还看了:
[企业管理]浅谈高校图书馆是校园文化建设的重要载体 [企业管理]浅议对高校图书馆管理模式的思考 [企业管理]试析高校图书馆的服务创新与大学生的素质教育 [企业管理]简论高职院校图书馆学科馆员制度探析 [今日更新]图书馆数字资源的长期保存与管理研究 [今日更新]公共图书馆知识管理与经济和社会的发展 [今日更新]浅谈高等美术院校图书馆美术教育服务 [企业管理]浅谈高职院校图书馆开展信息素质教育的理论与实践 [企业管理]浅析公共图书馆如何引导青少年信息素质教育 [企业管理]浅析加强图书馆员信息素质教育的方法和途径
|
|