广工_图书馆借阅系统_数据库原理及应用课程设计(12页).doc
-广工_图书馆借阅系统_数据库原理及应用课程设计-第 7 页课 程 设 计 课程名称 数据库原理及应用 题目名称 图书借阅管理数据库设计 学生学院 管理学院 专业班级 0 学 号 学生姓名 指导教师 吴学雁 2010年7月广东工业大学课程设计任务书题目名称图书借阅管理数据库设计学生学院管理学院专业班级姓 名学 号一、课程设计的内容根据选题完成数据库设计,并撰写相应的课程设计报告,主要内容包括:(1)数据库概念模式设计;(2)数据库逻辑模式设计;(3)数据库保护设计。二、课程设计的要求与数据根据教师给定的选题,运用课堂中学到的数据库的基本理论与设计的知识,完成数据库概念设计、逻辑设计及部分物理设计的内容。重点是ER图的设计、关系模式的转换与规范化以及如何利用DBMS完成数据表及数据库的创建和操作。三、课程设计应完成的工作(1) 数据库概念模式设计写出由基本项构思ERD的四条原则及根据这些原则相应得出的实体、联系及其属性,并确定主实体的主标识,画出ERD;用原则4检查改正错误;对其中复杂的多元联系进行分析,必要则改进。(2)数据库逻辑模式设计1)一般逻辑模型设计:写出由ERD导出一般关系模型的四条原则,列出数据库初步构思的关系框架,并检查改进之。2)具体逻辑模型设计:按所用的DBMS要求,设计表(文件)的具体结构,在关系框架下补充字段类型、长度、小数位数等行。(3)数据库保护设计1)设计表间关系:列出父表与子表的关联索引,指出要建立的表间关系的类型。2)完整性设计:列出主要字段完整性的字段名、完整性约束条件;列出记录完整性约束及其约束条件;列出参照完整性表。四、课程设计进程安排序号设计各阶段内容地点起止日期1课程设计任务的布置D3022010.6.92数据库概念模型设计分散进行2010.6.283概念模型的修改与确定,答疑D3022010.6.294数据库逻辑模型设计分散进行2010.6.305数据库保护设计及数据库的实现,上机检查D3022010.7.16课程设计报告的撰写,上机检查D3022010.7.2五、应收集的资料及主要参考文献1崔巍主编.数据库应用与设计.清华大学出版社,北京:2009.发出任务书日期: 2010年6月9日 指导教师签名:吴学雁计划完成日期:2010年7月2日 基层教学单位责任人签章:主管院长签章:目录1 课程设计要求12 数据库概念模式设计22.1 整理的数据项22.2 绘制ERD23 数据库逻辑模式设计23.1 一般逻辑模型设计23.1.1 按四原则转化23.1.2 转化的逻辑模型43.1.3 逻辑模型的优化43.2 具体逻辑模型设计44 数据库保护设计54.1设计表间关系54.2完整性设计54.2.1 书籍关系表54.2.2 书籍的出版社关系表64.2.3 借书人关系表64.2.4 借阅关系表65 数据库实现65.1 建立数据库65.2 建立数据表75.3 数据库的表间关联106 感想与体会11参考文献12致谢12数据库原理及应用课程设计报告要求1 课程设计要求一个图书借阅管理数据库要求提供以下服务:(1)可随时查询书库中现有书籍的种类、数量与存放位置。所有各类书籍均可由书号唯一标识。(2)可随时查询书籍借还情况。包括借书人单位、姓名、借书证号、借书日期和还书日期。任何人可借多种书,任何一种书可为多个人所借,借书证号具有唯一性。(3)当需要时,可通过数据库中保存的出版社电话、邮编及地址等信息向有关书籍的出版社增购有关书籍。一个出版社可出版多种书籍,同一本书仅为一个出版社出版,出版社名具有唯一性。根据以上的情景假设,进行如下的分析与设计:(1)根据上述语义画出ER图。(2)将ER模型转换成关系模型,并指出每个关系模式的主关键字。 (3)分析每个关系模式已经达到第几范式。对于不符合第三范式要求的关系模式进行规范化。(4)根据概念模型设计逻辑模型和保护设计。(5)在SQLServer中实现。2 数据库概念模式设计2.1 整理的数据项书籍: 书号、种类、数量、存放位置借书人:借书证号、单位、姓名、借书日期、还书日期书籍的出版社:出版社名、电话、邮编、地址M1N2.2 绘制ERD“的”M邮编地址出版社名出版社名电话出版社书号数量种类存放位置书籍借书日期还书日期借阅单位姓名借书证号借书人3 数据库逻辑模式设计3.1 一般逻辑模型设计3.1.1 按四原则转化(1)原则一:ER图中的每一个独立实体变换为一个关系,其属性变为关系的属性,其主标识变为关系的主码。例如,图中独立实体“书籍”、“借书人”分别变为书籍关系、借书人关系。书籍关系书号种类数量存放位置主码借书人关系借书证号姓名单位主码(2)原则二:ER图中的从实体及相应的“的”联系变换为一个关系,从实体的属性加上主实体关系的主码构成这个关系的属性。如果“的”联系是1:1的,则以主实体关系的主码(作为外来码)为这个关系的主码;如果“的”联系是1:M的,则以主实体关系的主码加上同一主实体个体联系的不同从属实体个体赖以相互区分的属性组,组成该关系的主码。书籍的出版社关系书号出版社名电话地址邮编外码主码(复合主码)(3)原则三:1:M联系通过在“多”实体关系中增加相联系的“1”实体关系的主码及联系本身的属性来表达。其中“1”实体主码为外来码。此ER图没有这种情况。(4)原则四:M:M联系转换成一个独立的关系,被联系实体关系的主码(作为外来码)和联系本身的属性作为该关系的属性,被联系实体关系的主码组成其复合主码。借阅关系书号借书证号借书日期还书日期外码外码主码(复合主码)3.1.2 转化的逻辑模型书籍关系书号种类数量存放位置主码书籍的出版社关系书号出版社名电话地址邮编外码主码(复合主码)借书人关系借书证号姓名单位主码借阅关系书号借书证号借书日期还书日期外码外码主码(复合主码)3.1.3 逻辑模型的优化上图所示的四个关系模式(书籍关系、书籍的出版社关系、借书人关系、借阅关系)均属于第三范式,符合要求,不用再分解。3.2 具体逻辑模型设计书籍关系字段名字段类型字段长度小数点位数是否主关键字书号char160是种类char80否数量tinyint否存放位置char80否书籍的出版社关系字段名字段类型字段长度小数点位数是否主关键字书号char160是出版社名char160是电话char160否地址char200否邮编char60否借书人关系字段名字段类型字段长度小数点位数是否主关键字借书证号char200是姓名char80否单位char300否借阅关系字段名字段类型字段长度小数点位数是否主关键字书号char160是借书证号char200是借书日期datetime否还书日期datetime否4 数据库保护设计4.1设计表间关系(1)书籍关系表和书籍的出版社关系表之间是从属联系(从实体及相应的“的”联系,且“的”联系是1:M的),通过“书号”相关联。(2)借书人关系表和书籍关系表之间有多对多(N:M)联系,通过“书号和借书证号”字段相关联。4.2完整性设计4.2.1 书籍关系表(1)实体完整性设计:书号是关键字,不可以取空值。(2)参照完整性设计:书号被书籍的出版社关系的书号参照,它的值与出版社关系中的书号的值相等。(3)用户定义完整性设计:如3.2 具体逻辑模型设计所定义。4.2.2 书籍的出版社关系表(1)实体完整性设计:书号和出版社名共同构成关键字,均不可以取空值。(2)参照完整性设计:“书号”参照书籍关系的主关键字“书号”,禁止删除。当更新时,进行级联处理。 (3)用户定义完整性设计:如3.2 具体逻辑模型设计所定义。4.2.3 借书人关系表(1)实体完整性设计:借书证号是关键字,不可以取空值。(2)参照完整性设计:借书证号被借阅关系表参照,它们的值出自同一个值域。(3)用户定义完整性设计:如3.2 具体逻辑模型设计所定义。4.2.4 借阅关系表(1)实体完整性设计:书号和借书证号共同构成关键字,均不可以取空值。(2)参照完整性设计:书号参照书籍关系表中的书号,借书证号参照借书人关系表中的借书证号。均定义为禁止删除;当更新时,进行级联处理。 (3)用户定义完整性设计:如3.2 具体逻辑模型设计所定义。5 数据库实现5.1 建立数据库create database 图书借阅管理on(name=student,filename='E:数据库.mdf',size=10,maxsize=50,filegrowth=5)log on(name=student_log,filename='E:数据库实验.ldf',size=5MB,maxsize=25MB,filegrowth=5MB)5.2 建立数据表create table 书籍(书号char(16) primary key,种类char(8),数量tinyint,存放位置char(8)create table 出版社(书号char(16) foreign key references 书籍(书号)on delete no actionon update cascade,出版社名char(16),电话char(16),地址char(20),邮编char(6),primary key(书号,出版社名)create table 借书人(借书证号char(20) primary key,姓名char(8),单位char (30)create table 借阅(书号char(16) foreign key references 书籍(书号)on delete no actionon update cascade,借书证号char(20) foreign key references 借书人(借书证号)on delete no actionon update cascade,借书日期datetime,还书日期datetime,primary key(书号,借书证号)5.3 数据库的表间关联6 感想与体会通过这次的课程设计,我感想颇多,通过课程设计,不仅让我对所学的内容有了更深的理解,在做课程设计的过程中,也给了我许多启示。我在做课程设计时,主要遇到了如下问题:在画ER图时,在如何将书籍和出版社之间联系起来这个问题上,我考虑了很久。刚开始是想通过“购买”将他们联系起来,不过发现这样做存在许多问题,最终决定将它们定义为从实体及相应的“的”联系。将ER图按四原则转化为关系模式时,忘记了“从实体不属于联系”这个知识点,导致按原则三转化时,不知该如何做。通过请教老师,才解决了问题。判断关系模式属于第几范式时,不知道该把出版社关系和借阅关系定义为第二范式还是第三范式。按照所学内容,觉得它们不符合第三范式的要求,但又没有分解的必要。经过和老师、同学讨论,并结合现实情况,最终将其定义为第三范式。做具体逻辑模型设计时,老师给的设计报告要求有规定小数点位数,不过我觉得没有太大必要,所以我在做的时候没有限制小数点位数。在做完整性设计时,我不知道该如何准确表达,而且在具体逻辑模型设计时已经设计了用户定义完整性。建立数据表时,很容易输入错误。因为对电脑不是特别熟,做word文档时花了很多时间。我还是很认真对待这个课程设计的,花了很多时间和精力在上面,而且都是靠自己独立完成的。也许设计的不是很完美,有些简单,但我已经尽力了。完成的那一刻,有说不出的喜悦感,觉得很欣慰,让我觉得自己确实学到了一些东西,而且学的东西并不只是理论,也挺实用的。同时也让我明白了理论应该与实际相结合,不能忽视实际操作能力。学的时候好像都懂了,但真正要靠自己设计一个数据库的时候还是有挺多问题的。我一开始以为设计这个数据库很简单,应该很快就能完成了,可真正做的时候,还是遇到了不少问题,花了很多时间。看来我们真的是有些眼高手低。其次,我觉得应该学会和人交流和探讨问题。理越辩越明,做数据库设计时,和老师、同学交流和讨论的过程中,我对以前不是特别明白的地方有了更深的理解,对有些问题考虑得更周到。这次课程设计也让我深刻体会到各科之间是有紧密联系的,虽然做的是数据库设计,但也有用到计算机基础的知识,同时也需要一定的文字表达能力。所以,我在今后的学习过程中,要注意各科之间的联系,扩展自己的知识面,尽可能地了解多一些的知识,趁着年轻,多学一些东西。参考文献1崔巍主编.数据库应用与设计M.清华大学出版社,北京:2009.致谢本设计是在我的指导老师吴学雁讲师的亲切关怀和悉心指导下完成的。她的严肃负责的讲课态度以及治学严谨的作风对我影响颇多。在令我不但完成了课程设计,也学到了许多书本上学不到的知识,受益匪浅,特致以深深的感谢。