您好,欢迎访问三七文档
《数据库原理与应用》综合设计任务书前言《数据库原理与应用》课程的重点知识模块包括:1)数据库设计、2)用SQL实现建库、建表、查询、更新、和创建视图、3)存储过程和触发器设计。针对这三个应用能力,用一个案例作为背景,布置三次大作业。在校大学生都能理解“图书管理系统”的应用场合和业务流程。因此,以图书管理系统作为案例来布置作业,可以降低业务分析难度,让学生将主要精力放在知识消化与技术应用上。本文档包括四个部分。第一部分描述系统的需求,第二部分提出E-R模型设计和关系模型设计的任务;第三部分提出在SQLServer中,用SQL语句来建库、建表、查询、更新数据、创建视图的任务;第四部分,根据应用需求、安全需求和数据完整性要求,提出设计存储过程和触发器的任务。每个任务之前,都给出了完成任务所需要掌握的关键知识点,学生可以在对这些知识点进行复习的基础上完成任务,每个任务是一次大作业。第一部分案例的需求描述本部分描述“图书管理系统”的需求,学生通过阅读本部分内容,了解系统的功能要求、运行环境,对系统所需的数据有总体认识,作为三次作业的基础。1.1需求故事洁是图书阅览室的管理员,她找到程序开发小组“枫”,请他们帮助开发一套管理程序。他们围坐在一起,开始以下对话:洁:你们进来都看到了,那几排大柜子,全都放满了书,很多教师来借书,管理起来越来越难,希望帮我开发一个管理软件。枫:你希望软件提供哪些功能。洁:首先是能登记和查看图书信息,借书和还书的时候要方便操作。对于我来说,看图书的状态很重要,就是说要知道哪些图书已经借出去了,哪些书已经过了借阅期,此外还要做一些统计表……大概就是这些吧。枫:你怎么登记借书呢?规定的借阅期有多长?过了借阅期怎么办?洁:每个老师都有一个工号,我就计工号和图书的ISBN号,一个人最多能借2本书。不同类型的书借阅期限是不一样的,比如文学作品的借阅期规定是15天,教学参考书的借阅期限是半年。有的人不自觉,过期好久都不还,我现在是翻记录本一个个地找,然后打电话到他的部门,并且发催还邮件。枫:同一ISBN只有一本书吗?洁:是的,现在把书分成这样几类:教学参考书、文学作品、学术期刊、学术专著。枫:你想统计一些什么数据洁:主要是分类统计图书册数和价值、图书借阅次数。我们想知道哪些图书最受欢迎。枫:阅览室是你一个人在管么?洁:阅览室有两个人。我们俩都有一台计算机,最好两台计算机都可以用上这个软件。1.2需求分析1)功能需求教师信息管理图书信息管理借书登记还书登记管理员催还图1-1:功能需求示意图教师信息管理:用于教师基本资料的增删改查。图书信息管理:用于图书基本信息的增删改查,分类统计图书册数和价值。借书登记:记录借书时间、所借图书、借书人、办理人。还书登记:记录还书时间、所还图书、还书人、办理人。催还:查询借阅逾期的借书信息,给借书人发电子邮件,给借书人的部门打电话。2)运行环境要求LANPCPCDBMS图1-2:运行环境拓扑图系统采用C/S模式,有两台PC和一台服务器,联成一个局域网。PC上安装图书管理软件的客户端,服务器上安装DBMS,服务器也可由两台PC中的一台来代替。第二部分作业1——E-R模型与关系模型设计(满分8分)本部分的任务是:在需求分析的基础上,进行E-R图设计,然后将E-R模型转换为关系模型。任务:1)根据需求描述,绘制E-R图。2)将E-R图转换成关系模型,写出所有的关系模式,并写出每一个关系是按照什么规则转换而成的。3)在已经形成的关系模型下,举例说明连接运算、投影运算、选择运算。参考答案:(属性写在了实体和联系图形内)任务:1)根据需求描述,分别为“图书管理系统”的不同功能模块绘制局部E-R图。教师信息管理:图书基本信息管理:借还书登记:教师(教师工号,姓名,性别,电话,Email)N1属于部门(部门名,电话)图书(ISBN,书名,作者,出版社,出版时间,单价,状态)归类类型(类型名,借阅期限)N1催还书登记:2)整体E-R图pM图书催/还(催还日期))教师管理员(用户名,口令)NpM图书借/还(借日期,还日期))教师管理员(管理员名,口令)N1PPMM1图书(ISBN,书名,作者,出版社,出版时间,单价,状态)教师(教师工号,姓名,性别,电话,Email)催/还(催还日期)类型(类型名,借阅期限)归类部门(部门名,电话)属于1*N借/还(借日期,还日期)管理员(管理员名,口令)NNN3)关系模式类型表(类型名,借阅期限),依据:实体转换为关系。图书表(ISBN,书名,作者,出版社,出版时间,单价,类型名,状态),依据:实体转换为关系,1:N的联系合并到N,在N方增加一个外键:类型名。注:状态属性为(库存,借出)管理员表(管理员名,性别,口令),依据:实体转换为关系。教师表(教师工号,姓名,性别,Email,部门名),依据:实体转换为关系,1:N的联系合并到N,在N方增加一个外键:部门名。部门表(部门名,电话),依据:实体转换为关系。借还表(借还业务编号,ISBN,教师工号,借办理人,借出日期,还办理人,归还日期),依据,M:N联系转换为一个关系,取联系的实体的键加联系属性作为其属性,可以增加一个列作为主键。催还表(催还业务编号,ISBN,教师工号,办理人,催还日期),依据,M:N联系转换为一个关系,取联系的实体的键加联系属性作为其属性,可以增加一个列作为主键。4)在已经形成的关系模型下,举例说明连接运算、投影运算、选择运算。连接运算:查看类型的图书已经超过了有效借出期限。(需要图书,类型,借还关系)投影运算:查看图书的书名、作者。选择运算:查看单价高于50元的图书。附:自底向上设计概念结构的方法通常分为两步:第一步:首先要根据需求分析的结果(数据流图、数据字典等)对现实世界的数据进行抽象,设计各个局部视图即分E-R图。第二步:集成局部视图。设计分E-R图的步骤是:选择局部应用在需求分析阶段,通过对应用环境和要求进行详尽的调查分析,逐一设计分E-R图,实体的属性、标识实体的码实际上实体与属性是相对而言的,很难有截然划分的界限。同一事物,在一种应用环境中作为属性,在另一种应用环境中就必须作为实体。一般说来,在给定的应用环境中:属性不能再具有需要描述的性质。即属性必须是不可分的数据项。合并分E-R图,生成初步E-R图。各分E-R图之间的冲突主要有三类:属性冲突、命名冲突和结构冲突。。解决方法是根据应用的语义对实体联系的类型进行综合或调整。修改与重构,生成基本E-R图分E-R图经过合并生成的是初步E-R图。之所以称其为初步E-R图,是因为其中可能存在冗余的数据和冗余的实体间联系,即存在可由基本数据导出的数据和可由其他联系导出的联系。冗余数据和冗余联系容易破坏数据库的完整性,给数据库维护增加困难,因此得到初步E-R图后,还应当进一步检查E-R图中是否存在冗余,如果存在,应设法予以消除。第三部分作业2——用SQL语句建库、查询、更新数据、创建视图(满分9分)本部分的任务是:在关系模型的基础上,结合SQLServer2005的技术特点,设计出数据库的逻辑结构,然后在SQLServer2005中用SQL语句创建数据库、数据表、并输入一些原始数据,写SQL语句,进行数据增删改,创建视图。任务:1)在第一次大作业的参考答案基础上,将每个关系转换为SQLServer支持的表结构,写出表结构。2)使用SQL语句,创建数据库,数据库名为BookStore,3)使用SQL语句,在数据库中创建表,设定表的主键约束、外键约束、检查约束、非空约束。4)写以下增删改查操作的SQL语句1、增加三条类型表数据2、增加三条教师表数据3、增加五条图书表数据4、某教师今天借了某书,涉及两个操作,一是图书表的状态改为“借出”,二是增加一个借还表记录5、将某书的单价改为32元。5)写出创建以下视图的SQL语句1.查询某教师的借还书记录2.查询某本书的流转记录3.借出但未归还的图书视图4.借阅逾期视图5.图书分类统计册数和总价值的视图参照完成:1)表结构管理员表列名类型约束用户名Char(10)pk性别Char(2)NOTNULL,且默认为男口令Nchar(20)NOTNULL类型表列名类型约束类型名NChar(10)pk借阅期限tinyintNOTNULL图书表列名类型约束ISBNChar(20)pk书名Nchar(20)NOTNULL作者Nchar(20)NOTNULL出版社Nchar(20)NOTNULL出版时间DateTimeNOTNULL单价moneyNOTNULL类型名Nchar(10)FKreferences类型表.图书类型状态Nchar(2)状态in(库存,借出)部门表列名类型约束部门名NChar(10)pk电话char(11)NOTNULL教师表列名类型约束工号Char(4)pk姓名Nchar(4)NOTNULL性别Char(2)NOTNULL,且默认为男姓名Nchar(4)NOTNULLEmailChar(30)NOTNULL部门名Nchar(10)Fkreferences部门表.部门名借还记录表列名类型约束业务编号intPk自动标示ISBNchar(20)Fkreferences图书表.isbn工号Char(4)Fkreferences教师表.工号借办理人Char(10)NOTNULL借出日期datetimeNOTNULL还办理人Char(10)归还日期datetime催还记录表列名类型约束业务编号intPk自动标示ISBNchar(11)Fkreferences图书表.isbn工号Char(4)Fkreferences教师表.工号办理人Char(10)NOTNULL催还日期datetimeNOTNULL1)使用SQL语句,创建数据库,数据库名为BookStore,语句:CreateDatabseBookstore2)使用SQL语句,在数据库中创建表,设定表的主键约束、外键约束、检查约束、非空约束。语句:CREATETABLE管理员表(管理员名nchar(10)NOTNULL,性别Char(2)notnullDEFAULT'男',口令nchar(20)NOTNULL,CONSTRAINTPK_管理员PRIMARYKEYCLUSTERED(管理员名ASC))ON[PRIMARY]goCREATETABLE类型表(类型名nchar(10)NOTNULL,借阅期限tinyintNOTNULL,CONSTRAINTPK_类型PRIMARYKEYCLUSTERED(类型名ASC))ON[PRIMARY]goCREATETABLE图书表(ISBNchar(20)NOTNULL,书名nchar(20)NOTNULL,作者nchar(20)NOTNULL,出版社nchar(20)NOTNULL,出版时间datetimeNOTNULL,单价moneyNOTNULL,类型名nchar(10)NOTNULL,状态nchar(2)NOTNULLCHECK(状态in('库存','借出')),CONSTRAINTPK_图书PRIMARYKEYCLUSTERED(ISBNASC),CONSTRAINTFK_图书_类型FOREIGNKEY(类型名)REFERENCES类型表(类型名)ONUPDATECASCADEONDELETECASCADE)ON[PRIMARY]--==goCREATETABLE部门表(部门名nchar(10)NOTNULL,电话char(11),CONSTRAINTPK_部门表PRIMARYKEYCLUSTERED(部门名ASC))ON[PRIMARY]goCREATETABLE教师表(工号char(4)NOTNULL,姓名nchar(4)NOTNULL,性别Char(2)notnullDEFAULT'男',Emailchar(30)NOTNULL,部门名nchar(10)NOTNULL,CONSTRAINTPK_教师表PRIMARYKEYCLUSTERED(工号ASC),CONSTRAINTFK_部门表_教师
本文标题:作业--1--2
链接地址:https://www.777doc.com/doc-2685981 .html