sql大作业
sql数据库期末考试题及答案
![sql数据库期末考试题及答案](https://img.taocdn.com/s3/m/8a3b09adf80f76c66137ee06eff9aef8951e481d.png)
sql数据库期末考试题及答案一、选择题(每题2分,共20分)1. SQL语言中,用于创建新表的语句是:A. SELECTB. INSERTC. CREATED. DROP答案:C2. 在SQL中,以下哪个关键字用于删除表?A. REMOVEB. DROPC. DELETED. REMOVE TABLE答案:B3. 如果要查询所有学生的姓名和成绩,应该使用以下哪个SQL语句?A. SELECT * FROM students;B. SELECT name, score FROM students;C. SELECT name FROM students;D. SELECT score FROM students;答案:B4. SQL中用于更新记录的关键字是:A. UPDATEB. CHANGEC. MODIFYD. ALTER答案:A5. 在SQL中,哪个关键字用于指定查询结果的输出顺序?A. ORDERB. SORTC. ORDER BYD. ASC答案:C6. 以下哪个选项是SQL中用于删除数据的语句?A. DELETEB. DROPC. REMOVED. ERASE答案:A7. 在SQL中,用于连接两个或多个表的关键字是:A. JOINB. UNIONC. INTERSECTD. CROSS答案:A8. SQL中用于添加新记录的关键字是:A. INSERTB. ADDC. CREATED. NEW答案:A9. 以下哪个选项是SQL中用于分组数据的关键字?A. GROUPB. GROUP BYC. CATEGORIZED. CLASSIFY答案:B10. 在SQL中,用于计算总和的函数是:A. COUNTB. SUMC. AVGD. MAX答案:B二、填空题(每题2分,共20分)1. SQL中,用于_________数据的语句是SELECT。
答案:查询2. 如果需要在查询结果中排除重复的行,可以使用关键字_________。
SQL数据库期末大作业
![SQL数据库期末大作业](https://img.taocdn.com/s3/m/6bf87618af45b307e87197cc.png)
学校:北京联合大学系别:信息管理系姓名:孙超学号:2013110444006《餐饮业信息管理系统的开发》1、本项目的需求分析随着今年来中国餐饮行业的日益火爆,在强烈的行业竞争中,一个高效的餐饮信息管理系统的应用,无疑是至关重要的。
高效,便捷的管理系统,不仅仅极大的方便了食客的就餐,同时对于餐饮公司的各项信息管理有着很大的帮助,同时,我们的餐饮信息管理系统还能帮助餐厅降低错误率,扩大营业范围,增加知名度等。
为了使得系统在操作的过程中,更加便捷,具有针对性,本次系统设计主要分为:员工登陆操作信息系统,以及店主操作管理信息系统。
不同的设计从而达到不同的功能,实现信息的有效传达与管理。
第一:在员工使用本餐饮信息管理系统应可以实现以下功能:1.添加修改查询客户会员信息(修改客户信息需客户确认)2.查询菜单3.添加查询预定信息,为老顾客打折4.客户可以在自己的会员账户里充值5.顾客可以用现金买单也可以从会员账户里扣取第二:管理员使用本餐饮信息管理系统应可以实现以下功能:1.添加修改查询客户会员信息(修改客户信息需客户确认)2.添加修改查询菜单信息,最好能看到菜品图片3.添加查询预定信息,为老顾客打折4.客户可以在自己的会员账户里充值5.顾客可以用现金买单也可以从会员账户里扣取6.设定具体的打折方法7.添加职员信息,权限也可以定为管理员。
8.可以查询使用者的现金收款金额。
二、餐饮业管理数据库管理系统的E-R模型(概念结构设计)1.用户(员工)的信息:编号、密码、类型、姓名、电话、收款金额2.客户信息:用户编号、客户编号、姓名、电话、密码、开卡时间、卡内余额3.食谱:类型、名称、价格、配料、照片4.预定:用户编号、日期、预定时间、客户姓名、类型、预定食谱、桌号5桌台管理:桌号、使用情况、6.点餐管理:用户编号、类型、菜品、数量、价格、照片7.盈利管理:日期、日支出金额、店内收入、外卖收入、盈利额度各对象之间的联系图:用户E-R图主要存储一些用户信息,如用户的账号、密码和类型地点等等,主要用于用户登录,添加客户和添加预定时会使用到用户信息。
大连理工大学《SQL数据库课程设计》大作业离线作业答案
![大连理工大学《SQL数据库课程设计》大作业离线作业答案](https://img.taocdn.com/s3/m/4e639b0e6529647d272852e9.png)
学习中心:专业:计算机应用技术年级: 18年秋季学号:学生:题目:网上书店系统的设计与实现1.谈谈你对本课程学习过程中的心得体会与建议?在这次项目设计中,我们小组所选择的是设计一个图书管理系统,这对我们来说是一次尝试与创新的过程,也可以说是一个挑战的过程。
虽然学了数据库这么久了,但是我们还是缺少经验。
现在我们利用自己学到的知识设计并制作一个图书管理系统,这本身就是一个知识转化为生产力的过程,所以大家都很兴奋,都不同程度的投入了很高的热情与努力。
在具体的设计与实施中,我们看到并感受到了一个管理系统从无到有的过程,对具体的设计步骤、思路、方法、技巧都有了进一步的了解,并感受深刻。
这次课程设计加深了我们对数据库系统设计相关知识以及SQL SERVER相关功能的理解。
比如在建立基本的表、视图、索引、存储过程、触发器等,都比以前更加熟悉了,并在解决各种问题的过程中学到了很多新的知识。
在设计中我们基本能按照规范的方法和步骤进行,首先对现有的系统进行调查,并查阅有关资料,最后确定设计方案,然后设计并制作,实施过程中我们深刻的认识到认真执行管理系统软件标准的重要性,由于我们对管理系统软件相关的标准和规范不太了解,缺少行为操作准则,所以在设计中手法比较生硬,主与次也没能很好把握住,这些方面通过这次我们都要加强了解。
在这次课程设计中,我们被分配以小组为单位去完成图书管理系统的设计与制作,所以小组内的分工和相互协调很重要,大家可以在分工中扬长避短,个及所长,这样可以很好的提高大家的积极性,和合作意识,并有效的缩短开发时间,但我们在这方面做的还不够,缺乏人员管理与沟通,导致人力资源浪费,可以说是不足之处,且迫切的需要思考和改进,这一点必须指明。
这在以后的工作与学习中将会非常重要。
2.严格按照《SQL数据库课程设计要求》完成课程设计。
《SQL数据库课程设计》要求《SQL数据库课程设计》是大连理工大学网络教育学院计算机应用技术专业开展的一项实践教学环节,是理论联系实践的纽带和桥梁,是培养学生综合运用所学知识解决实际问题的有效手段。
SQL2008数据库大作业
![SQL2008数据库大作业](https://img.taocdn.com/s3/m/f3f539d7ce2f0066f4332203.png)
数据库基础------大作业题目:学生信息管理系统教学系:数学与统计学院专业班级: 071121学生姓名: 8888一、系统设计在进行系统的详细设计之前,首先应该设计好系统的模式并确定好系统的功能目标和具体页面,下面就是学生信息管理的系统设计。
从系统的设计目标上来看,学生信息管理系统的主要功能如下:(1)登录验证功能。
(2)学生信息查看功能。
(3)信息编辑删除和添加功能。
(4)成绩查看和搜索功能。
(5)课程浏览搜索功能。
(6)密码修改功能。
从系统的实现上来看,共有十七个页面,每个页面的功能实现和说明如下所示。
页面说明下面介绍在系统设计之前数据库的需求分析和设计。
二、数据库设计1.需求分析学生信息管理系统是各大高校所不可缺少的一部分,随着计算机水平的快速提高,学生信息管理系统也在不断地发展和完善。
管理信息系统主要包括了学生的信息管理以及课程和成绩管理,基本上实现了管理系统所必须的功能,下面介绍学生信息管理系统数据库的设计。
2.概念设计2.1数字词典数据词典如下表所示:数据词典2.2E-R图根据以上的需求分析,E-R图如图下图所示:E-R图如下2.3关系模式E-R图转换成关系模式如下:学生(学号、姓名、性别、民族、出生年月、入学时间、班级、生源地、备注)课程(课程号、课程名称、学时、学分、课程类型、授课老师)成绩(ID、学号、课程号、考试成绩)选修(学号、课程号、选修时间)查询(学号、课程号、查询时间)3.逻辑设计根据前面的E-R图转换的关系模式一共有以下几个表:Student(学生表)Course(课程表)Score(成绩表)Elective(选修表)Select(查询表)4.数据库关系图根据以上几个表的关系建立如下所示的关系图:5.数据的添加、修改、删除语句的实现数据的添加语句举例如下:(1)向成绩表里添加学号为‘20001’学生选修了四门课的成绩。
insert scorevalues ('5','200001','00001','95'), ('6','200001','10001','90'),('7','200001','10002','96'),('8','200001','20001','85') (2)向课程表里添加一条毛慨的信息insert coursevalues('20003','毛慨','60','5','2','周易')数据的修改语句举例如下:(1)修改学号为‘200004’学生的籍贯为湖北监利update studentset comefrom='湖北监利'where stuid='200004'(2)修改课程号为‘20003’的学时为64个学时update courseset coursetime='64'where courseid='20003'数据的删除语句举例如下:(1)删除学号为‘200005’学生的信息delete studentwhere stuid='200005'(2)删除课程名称为‘毛慨’的信息delete coursewhere coursename='毛慨'6.查询语句简单查询、连接查询、子查询、复合条件查询语句的实现简单查询语句的举例:(1)查询课程表中前三条的信息select top 3* from course(2)查询班级为‘经管2091’班的学生学号、姓名、性别和班级名称selectstudent.stuid,student.stuname,student.sex,student.classfrom studentwhere class='经管2091'(3)查询学生姓名以‘陈’开头的学生学号和班级select student.stuid,student.classfrom studentwhere stuname like'陈%'(4)查询课程表的所有信息,查询结果先按课程号降序排列,再按学分升序排列select*from courseorder by courseid desc,coursexuefen asc(5)查询学生人数总数,查询结果以学生总数为别名select COUNT(*)as学生总数from student(6)查询所有学生成绩的总平均分,查询结果以平均分为别名select AVG(score)as平均分from score连接查询语句的实现:(1)查询学号为‘100001’的学生的学号、姓名、性别、班级和选修的课程号和成绩select student.stuid,student.stuname,student.sex,student.class,score.courseid,score.scorefrom student,scorewhere student.stuid=score.stuid and student.stuid='100001'(2)查询学号为‘200001’学生的学号、姓名和选修的课程号及选修时间select student.stuid,student.stuname,elective.courseid,elective.electivetimefrom student,electivewhere student.stuid=elective.stuidand student.stuid='200001'(3)查询学生查询了课程的姓名、班级、课程号、课程名、课程学分及查询时间select student.stuname,student.class,course.courseid,course.coursename,course.coursexuefen,sel.seltimefrom student,course,selwhere student.stuid=sel.stuid andsel.courseid=course.courseid子查询语句的实现:(1)查询学号为‘100001’学生所修的课程号和成绩select score.courseid,score.score from scorewhere stuid in(select stuid from student where stuid='100001')(2)查询选修了课程名为‘大学英语’的学生学号和姓名select stuid,stunamefrom student where stuid in(select stuid from scorewhere courseid in(select courseid from coursewhere coursename='大学英语'))(3)列出高于平均分的学生学号、姓名及班级select stuid,stuname,classfrom student where stuid in(select stuid from scorewhere score>(select AVG(score)from score))(4)查询比‘经管2091’班中某一学生年龄小的其他班的学生学号和姓名select stuid,stunamefrom student where birthday>any(select birthday from studentwhere class='经管2091')and class<>'经管2091'复合条件查询语句的实现:select student.stuid,student.stuname,student.class,course.courseid,course.coursename,score.scorefrom student,course,scorewhere student.stuid=score.stuidand score.courseid=course.courseidand score>'90'7.视图和索引的应用(1)视图的创建以学生表为基础,创建一个名称为“v_经管班”学生的视图,其包含学生的学号、姓名和性别这几列,筛选记录条件为“class=‘经管2091’”create view v_经管班as select student.stuid,student.stuname,student.sexfrom studentwhere class='经管2091'(2)视图的查看select*from v_经管班(3)索引的创建为了方便查找学生信息,为‘student’创建一个基于‘stuid、stuname、class’组合列的索引stu_indexcreate index stu_indexon student(stuid,stuname,class)(4)查询索引信息exec sp_helpindex student8.数据库备份和还原由于学生信息管理系统只需要一个小型数据库管理,那么我们只需要每个星期一进行一次完整备份,每天进行一个差异备份,每二个小时进行一次日志备份即可。
SQLSEVER大作业
![SQLSEVER大作业](https://img.taocdn.com/s3/m/4ccbc76e178884868762caaedd3383c4bb4cb4bb.png)
SQLSEVER⼤作业图书馆管理系统⼀、系统设计1.系统⽬标根据以上的需求分析及⽤户的沟通,该系统应达到以下⽬标:①:界⾯设计友好,美观。
②:数据存储安全,可靠。
③:信息分类清晰,准确。
④:强⼤的查询功能,保证数据查询的灵活性。
⑤:操作简单易⽤,界⾯清晰⼤⽅。
⑥:系统安全稳定。
⑦:开发技术先进,功能完备,扩展性强。
⑧:占⽤资源少,对硬件要求低。
⑨:提供灵活,⽅便的权限设置功能,使整个系统的管理分⼯明确。
2.系统功能结构图书馆管理系统分为四⼤功能模块,分为基础数据维护,图书借阅管理,新书订购功能,系统维护。
本系统各个部分及其包括的功能模块如图:3. 业务流程图⼆:数据库概念设计根据以上对系统的需求分析,系统设计,本系统使⽤的数据库实体分别为图书信息实体,图书分类实体,图书订购实体,读者信息实体,操作员信息实体,图书借阅信息实体,库存信息实体。
1:图书信息实体图书信息实体包括图书编号,类别编号,书名,译者,出版社,价格,出版时间等属性。
图书信息实体的E-R图如图所⽰。
2:读者信息实体读者信息实体包括条形码,姓名,性别,年龄,电话,押⾦,⽣⽇,职业,证件类型,办证⽇期,最⼤借书量,证件号码等属性,E-R图如图所⽰。
3:图书借阅信息实体图书借阅信息实体包括编号,图书编号,读者编号,操作员编号,是否归还,借阅⽇期,归还⽇期等属性。
E-R图如图所⽰。
4:图书分类实体图书分类实体包括编号,类别名称等属性,E-R图如图所⽰。
5:图书订购实体图书订购实体主要包括图书编号,订购⽇期,订购数量,操作员,是否验收和折扣等属性。
E-R图如图所⽰。
6:操作员信息实体操作员信息实体主要包括编号,姓名,性别,年龄,⾝份证号,⼯作⽇期,电话,是否为管理员和密码等属性。
E-R图如图所⽰。
7:库存信息实体库存信息实体主要包括编号,库存数量等属性。
E-R图如右图所⽰:三、数据库逻辑设计1.tb_bookInfo(图书信息表)图书信息表包括图书编号,图书类别编号,书名,作者,译者,出版社,出版时间和价格等信息。
学生选课系统sql大作业
![学生选课系统sql大作业](https://img.taocdn.com/s3/m/73c245bfbb0d4a7302768e9951e79b8968026824.png)
学生选课系统sql大作业当涉及到学生选课系统的SQL大作业时,以下是一些可能涉及的表和相关SQL查询的示例:1. 学生表(Students):- 学生ID(StudentID)- 学生姓名(StudentName)- 年级(Grade)- 专业(Major)2. 课程表(Courses):- 课程ID(CourseID)- 课程名称(CourseName)- 教师ID(TeacherID)- 学分(Credits)3. 教师表(Teachers):- 教师ID(TeacherID)- 教师姓名(TeacherName)- 所属学院(College)4. 选课记录表(Enrollments):- 学生ID(StudentID)- 课程ID(CourseID)- 成绩(Grade)示例查询:1. 获取所有学生的姓名和所选课程的名称:```SELECT Students.StudentName, Courses.CourseNameFROM StudentsINNER JOIN Enrollments ON Students.StudentID = Enrollments.StudentIDINNER JOIN Courses ON Enrollments.CourseID = Courses.CourseID;```2. 获取特定学生的选课情况及成绩:```SELECT Students.StudentName, Courses.CourseName, Enrollments.GradeFROM StudentsINNER JOIN Enrollments ON Students.StudentID = Enrollments.StudentIDINNER JOIN Courses ON Enrollments.CourseID = Courses.CourseIDWHERE Students.StudentID = '学生ID';```3. 获取某门课程的平均成绩:```SELECT AVG(Grade) AS AverageGradeFROM EnrollmentsWHERE CourseID = '课程ID';```4. 获取某个教师所教授的课程及学生选课情况:```SELECT Teachers.TeacherName, Courses.CourseName, Students.StudentNameFROM TeachersINNER JOIN Courses ON Teachers.TeacherID = Courses.TeacherIDINNER JOIN Enrollments ON Courses.CourseID = Enrollments.CourseIDINNER JOIN Students ON Enrollments.StudentID = Students.StudentIDWHERE Teachers.TeacherID = '教师ID';```这些仅是示例查询,具体的SQL查询语句和数据库设计会根据需求和具体情况有所变化。
sql大题
![sql大题](https://img.taocdn.com/s3/m/dc132bf7c0c708a1284ac850ad02de80d4d806c4.png)
sql大题第一章1.Data db dbms dbs 数据-----数据库---数据库管理系统-------数据库系统2.E-R图:实体:矩形属性:椭圆联系:菱形3.三种数据模型:层次、网状、关系:主键行/ 记录/ 元祖列/ 属性/ 字段4.三种基本关系运算: 选择、投影、连接5.三种完整性:实体完整性:域完整性:参照完整性:6.范式:2/3第三章1.新建数据库:create database a(数据库名)onname=a filename=’E:\SQL\a.mdf’size= maxsize= filegrowth=log onname=a filename=’E:\SQL\a.ldf’size= maxsize= filegrowth=2.课后填空1)数据库中的数据库文件有三类:(主数据文件)、(次数据文件)、(事务日志文件)。
2)创建数据库的命令是:create database3)修改数据库的命令是:alter database4)删除数据库的命令是:drop database5)删除文件组必须保证该文件组(为空),若该文件组中有文件,则应先(删除)。
6)在增加数据文件时,如果用户没有指明文件组,则系统将该数据文件增加到(主)文件组。
第四章1.建表:create table 表名2.约束:主键约束(primary key)pk外键约束(foreign key)fk唯一约束(unique)uq检查约束(check)ck默认值约束(default)df非空约束(not null)3.主键约束和唯一约束的区别1)在一个表中可以定义多个唯一约束,但只能定义一个主键。
2)定义了唯一约束的列可以输出空值,而定义了主键约束的列则不能。
4.填空题1)创建表约束的三种方法:第一种是在新建表时,在(单个列定义)之后创建约束;第二种是在新建表时,在(所有列定义完)之后创建约束;第三种是表已经存在,可以通过(修改表的方法)添加约束。
大型数据库SQL SERVER 实验大作业
![大型数据库SQL SERVER 实验大作业](https://img.taocdn.com/s3/m/46ab9d4c852458fb770b5684.png)
大型数据库SQL SERVER 实验大作业系统必须有的内容:1、系统后台数据库必须是SQL SERVER。
前台使用的编程语言不限。
2、用命令创建三个以上的表。
(10分)3、用命令创建主键与外键。
(10分)3、用命令创建默认值对象,并与表中字段绑定。
(10分)4、用命令创建CHECK约束定义某字段。
(10分)5、用命令创建规则对象,并与表中字段绑定。
(10分)6、用命令创建用户自定义数据类型,并用该数据类型定义表中字段。
(10分)7、在程序中,必须能将表数据显示在界面中。
(10分)8、在程序中,能对表数据进行查找。
(10分)9、在程序中,能对表数据进行插入。
(10分)10、在程序中,能对表数据进行修改。
(10分)大作业的实验报告书写方法:实验学时:6学时实验名称:ХХ系统(名称自定)一、实验目的1.综合掌握实验一到实验六的内容。
2.掌握编程语言与数据库连接及访问表记录的方法。
二、实验准备1.综合以前所学知识,结合某种编程语言开发完整的系统;2.预习数据库与编程语言链接的相关内容;三、实验内容及步骤(一)表的建立1、某某表的建立CREATE TABLE 某某表(……)2、某某表的建立CREATE TABLE 某某表(……)……(二)主键与外键的建立1、ALTER TABLE 某某表ADD CONSTRAINT AA_PK PRIMARY KEY(ID)……。
大连理工大学《SQL数据库课程设计》大作业离线作业答案
![大连理工大学《SQL数据库课程设计》大作业离线作业答案](https://img.taocdn.com/s3/m/4e639b0e6529647d272852e9.png)
学习中心:专业:计算机应用技术年级: 18年秋季学号:学生:题目:网上书店系统的设计与实现1.谈谈你对本课程学习过程中的心得体会与建议?在这次项目设计中,我们小组所选择的是设计一个图书管理系统,这对我们来说是一次尝试与创新的过程,也可以说是一个挑战的过程。
虽然学了数据库这么久了,但是我们还是缺少经验。
现在我们利用自己学到的知识设计并制作一个图书管理系统,这本身就是一个知识转化为生产力的过程,所以大家都很兴奋,都不同程度的投入了很高的热情与努力。
在具体的设计与实施中,我们看到并感受到了一个管理系统从无到有的过程,对具体的设计步骤、思路、方法、技巧都有了进一步的了解,并感受深刻。
这次课程设计加深了我们对数据库系统设计相关知识以及SQL SERVER相关功能的理解。
比如在建立基本的表、视图、索引、存储过程、触发器等,都比以前更加熟悉了,并在解决各种问题的过程中学到了很多新的知识。
在设计中我们基本能按照规范的方法和步骤进行,首先对现有的系统进行调查,并查阅有关资料,最后确定设计方案,然后设计并制作,实施过程中我们深刻的认识到认真执行管理系统软件标准的重要性,由于我们对管理系统软件相关的标准和规范不太了解,缺少行为操作准则,所以在设计中手法比较生硬,主与次也没能很好把握住,这些方面通过这次我们都要加强了解。
在这次课程设计中,我们被分配以小组为单位去完成图书管理系统的设计与制作,所以小组内的分工和相互协调很重要,大家可以在分工中扬长避短,个及所长,这样可以很好的提高大家的积极性,和合作意识,并有效的缩短开发时间,但我们在这方面做的还不够,缺乏人员管理与沟通,导致人力资源浪费,可以说是不足之处,且迫切的需要思考和改进,这一点必须指明。
这在以后的工作与学习中将会非常重要。
2.严格按照《SQL数据库课程设计要求》完成课程设计。
《SQL数据库课程设计》要求《SQL数据库课程设计》是大连理工大学网络教育学院计算机应用技术专业开展的一项实践教学环节,是理论联系实践的纽带和桥梁,是培养学生综合运用所学知识解决实际问题的有效手段。
SQL数据库大作业
![SQL数据库大作业](https://img.taocdn.com/s3/m/f9c41c84453610661fd9f494.png)
数据库基础------大作业题目:学生信息管理系统教学系:数学与统计学院专业班级: 071121学生姓名: 8888一、系统设计在进行系统的详细设计之前,首先应该设计好系统的模式并确定好系统的功能目标和具体页面,下面就是学生信息管理的系统设计。
从系统的设计目标上来看,学生信息管理系统的主要功能如下:(1)登录验证功能。
(2)学生信息查看功能。
(3)信息编辑删除和添加功能。
(4)成绩查看和搜索功能。
(5)课程浏览搜索功能。
(6)密码修改功能。
从系统的实现上来看,共有十七个页面,每个页面的功能实现和说明如下所示。
页面说明下面介绍在系统设计之前数据库的需求分析和设计。
二、数据库设计1.需求分析学生信息管理系统是各大高校所不可缺少的一部分,随着计算机水平的快速提高,学生信息管理系统也在不断地发展和完善。
管理信息系统主要包括了学生的信息管理以及课程和成绩管理,基本上实现了管理系统所必须的功能,下面介绍学生信息管理系统数据库的设计。
2.概念设计数字词典数据词典如下表所示:数据词典图根据以上的需求分析,E-R图如图下图所示:E-R图如下关系模式E-R图转换成关系模式如下:学生(学号、姓名、性别、民族、出生年月、入学时间、班级、生源地、备注)课程(课程号、课程名称、学时、学分、课程类型、授课老师)成绩(ID、学号、课程号、考试成绩)选修(学号、课程号、选修时间)查询(学号、课程号、查询时间)3.逻辑设计根据前面的E-R图转换的关系模式一共有以下几个表:Student(学生表)Course(课程表)Score(成绩表)Elective(选修表)Select(查询表)4.数据库关系图根据以上几个表的关系建立如下所示的关系图:5.数据的添加、修改、删除语句的实现数据的添加语句举例如下:(1)向成绩表里添加学号为‘20001’学生选修了四门课的成绩。
insert scorevalues ('5','200001','00001','95'),('6','200001','10001','90'),('7','200001','10002','96'),('8','200001','20001','85')(2)向课程表里添加一条毛慨的信息insert coursevalues('20003','毛慨','60','5','2','周易')数据的修改语句举例如下:(1)修改学号为‘200004’学生的籍贯为湖北监利update studentset comefrom='湖北监利'where stuid='200004'(2)修改课程号为‘20003’的学时为64个学时update courseset coursetime='64'where courseid='20003'数据的删除语句举例如下:(1)删除学号为‘200005’学生的信息delete studentwhere stuid='200005'(2)删除课程名称为‘毛慨’的信息delete coursewhere coursename='毛慨'6.查询语句简单查询、连接查询、子查询、复合条件查询语句的实现简单查询语句的举例:(1)查询课程表中前三条的信息select top 3* from course(2)查询班级为‘经管2091’班的学生学号、姓名、性别和班级名称select ,,,from studentwhere class='经管2091'(3)查询学生姓名以‘陈’开头的学生学号和班级select,from studentwhere stuname like'陈%'(4)查询课程表的所有信息,查询结果先按课程号降序排列,再按学分升序排列select*from courseorder by courseid desc,coursexuefen asc(5)查询学生人数总数,查询结果以学生总数为别名select COUNT(*)as学生总数from student(6)查询所有学生成绩的总平均分,查询结果以平均分为别名select AVG(score)as平均分from score连接查询语句的实现:(1)查询学号为‘100001’的学生的学号、姓名、性别、班级和选修的课程号和成绩select,,,,,from student,scorewhere=and='100001'(2)查询学号为‘200001’学生的学号、姓名和选修的课程号及选修时间select,,,from student,electivewhere=and='200001'(3)查询学生查询了课程的姓名、班级、课程号、课程名、课程学分及查询时间select,,,,,from student,course,selwhere=and=子查询语句的实现:(1)查询学号为‘100001’学生所修的课程号和成绩select,from scorewhere stuid in(select stuid from student where stuid='100001')(2)查询选修了课程名为‘大学英语’的学生学号和姓名select stuid,stunamefrom student where stuid in(select stuid from scorewhere courseid in(select courseid from coursewhere coursename='大学英语'))(3)列出高于平均分的学生学号、姓名及班级select stuid,stuname,classfrom student where stuid in(select stuid from scorewhere score>(select AVG(score)from score))(4)查询比‘经管2091’班中某一学生年龄小的其他班的学生学号和姓名select stuid,stunamefrom student where birthday>any(select birthday from studentwhere class='经管2091')and class<>'经管2091'复合条件查询语句的实现:select,,,,,from student,course,scorewhere=and=and score>'90'7.视图和索引的应用(1)视图的创建以学生表为基础,创建一个名称为“v_经管班”学生的视图,其包含学生的学号、姓名和性别这几列,筛选记录条件为“class=‘经管2091’”create view v_经管班as select,,from studentwhere class='经管2091'(2)视图的查看select*from v_经管班(3)索引的创建为了方便查找学生信息,为‘student’创建一个基于‘stuid、stuname、class’组合列的索引stu_indexcreate index stu_indexon student(stuid,stuname,class)(4)查询索引信息exec sp_helpindex student8.数据库备份和还原由于学生信息管理系统只需要一个小型数据库管理,那么我们只需要每个星期一进行一次完整备份,每天进行一个差异备份,每二个小时进行一次日志备份即可。
XXX《SQL数据库课程设计》大作业离线作业答案
![XXX《SQL数据库课程设计》大作业离线作业答案](https://img.taocdn.com/s3/m/6209f10c86c24028915f804d2b160b4e767f8193.png)
XXX《SQL数据库课程设计》大作业离线作业答案During the course of this project。
our group chose to design a book management system。
which was a process of XXX for us。
as well as a challenge。
Although we have been studying databases for a long time。
we still lack experience。
Now。
we are using our own knowledge to design and create a book management system。
which is a process of XXX。
everyone is excited and has put in a high level of XXX.In the specific design and n process。
we saw and experienced the process of creating a management system from scratch。
and gained a further understanding of the specific design steps。
ideas。
methods。
and techniques。
which left a deep n on us。
This course design deepened our understanding of database system design and SQL SERVER-related ns。
For example。
in building basic tables。
views。
indexes。
stored res。
triggers。
sql数据库管理系统大作业
![sql数据库管理系统大作业](https://img.taocdn.com/s3/m/5edb1567dd36a32d737581ae.png)
学生信息管理系统数据库设计与实现一、系统需求1、该“学生信息管理系统”是对数据库应用技术的一个样本数据库的实例,其中包括从数据库的概念模型到ER图的绘制,再到数据库模式的建立(即为数据库及其基本表的建立),而后数据的录入(在此从略),最后完成一些简单的关系运算表达式的表达和相关的Select 查询语句的使用。
2、系统结构简述:本系统包括三个实体:院系;学生档案;课程;实体之间的关系转换为其他表的有:选修;实体“院系”与“学生档案”之间有一对多的关系,把院系表的主码转放到表“学生档案”中;实体“学生档案”与“课程”之间有多对多的关系,因此独立形成一个表并共同存储“学生档案”与“课程”表的主码和一些自己的属性列;3、该数据库需要进行如下数据处理:◎从选修表中查询成绩的函数:输入:学号和课程编号输出:对应的学号和课程编号的分数即成绩;◎从学生档案表中查询学生基本信息的函数:输入:学号输出:对应的学号的基本信息,即学号,姓名,性别,专业,联系方式,联系地址,院系编号;◎从学生档案表中删除对应的学生记录:输入:学号输出:删除对应的学生记录,若没有对应的学号则输出“没有该学生!”的提示;◎向学生档案表插入数据的函数:输入:学生档案表的基本信息,包括所有属性列;即学号,姓名,性别,专业,联系方式,联系地址,院系编号;◎级联更新(从院系表到学生档案表、课程表):输入:院系编号,院系名称◎成绩表上的触发器,当删除某一个学生的成绩时触发:当从学生档案表中删除学生记录时,若该学号的学生记录在选修表中也有的话,则提示二、概念设计(设计E – R模型)局部E-R模型Ⅰ局部E-R模型Ⅱ局部E-R模型Ⅲ学生信息管理系统的E-R模型三、逻辑设计(转换成关系模型)系统中的实体有:学生档案;课程;院系;关系模式如下:学生档案(学号#,姓名,性别,专业,联系方式,联系地址)PK=学号,NOT NULL课程(课程编号#,课程名称,学时,院系编号)PK=课程编号,NOT NULLFK=院系编号,参照院系表选修(学号#,课程编号#,分数)PK=< 学号,课程编号>,NOT NULLFK=学号,参照学生档案表FK=课程编号,参照课程表院系(院系编号#,院系名称)PK=院系编号,NOT NULL四、物理设计表2院系表结构表4选修表结构五、SQL源代码1、create database 学生信息管理create table 院系(院系编号smallint,院系名称char(16),primary key(院系编号))2、create table 学生档案(学号char(12),姓名char(22),性别char(2)check(性别in ('男','女')),专业char(16),联系方式char(12),联系地址char(40),院系编号smallint,primary key(学号),foreign key(院系编号)references 院系(院系编号)on update cascade )3、create table 课程(课程编号char(10),课程名称char(20),学时smallint,院系编号smallint,primary key(课程编号),foreign key(院系编号)references 院系(院系编号)on update cascade )4、create table 选修(学号char(12),课程编号char(10),分数numeric(4,1)check(分数<='100.0' and 分数>='0'),primary key(学号,课程编号),foreign key(学号)references 学生档案(学号) on update no action,foreign key(课程编号)references 课程(课程编号) on update no action )5、从选修表中查询成绩的函数if exists(select name from sysobjects where name='成绩查询'and type='p') drop procedure 成绩查询gocreate procedure 成绩查询@Sno char(12),@Cno char(10)asif exists(select 学号,课程编号from 选修where 学号=@Sno and 课程编号=@Cno) select 学号,课程编号,分数from 选修where 学号=@Sno and 课程编号=@Cnoelseprint '没有该学号的学生或课程'goexecute 成绩查询'','06232023'6、从学生档案表中查询学生基本信息的函数if exists(select name from sysobjects where name='学生基本信息查询' and type='p') drop procedure 学生基本信息查询gocreate procedure 学生基本信息查询@Sno char(12)asif exists(select 学号from 学生档案where 学号=@Sno)select *from 学生档案where 学号=@Snoelseprint '不存在这样的学生!'goexecute 学生基本信息查询''7、从学生档案表中删除对应的学生if exists(select name from sysobjects where name='删除学生记录'and type='p') drop procedure 删除学生记录gocreate procedure 删除学生记录@Sno char(12)asif exists(select * from 学生档案where 学号=@Sno)delete from 学生档案where 学号=@Snoelseprint '没有该学生!'goexecute 删除学生记录'12345678910'execute 删除学生记录''8、向学生档案表插入数据的函数if exists(select name from sysobjects where name='向学生档案表输入'and type='p')drop procedure 向学生档案表输入gocreate procedure 向学生档案表输入@Sno char(12),@Sname char(22),@Ssex char(2),@Szhuanye char(16),@Scontact char(12),@Saddress char(40),@Dno smallintasinsert into 学生档案values(@Sno,@Sname,@Ssex,@Szhuanye,@Scontact,@Saddress,@Dno)goexecute 向学生档案表输入'','jack','男','计算机','','abbbb','1010'execute 向学生档案表输入'12345678910','john','男','计算机','','abcdefg','1010'9、级联更新(从院系表到学生档案表、课程表)if exists(select name from sysobjects where name='更新院系编号'and type='p') drop procedure 更新院系编号gocreate procedure 更新院系编号@Dno smallint,@Dname char(16)asupdate 院系set 院系编号=@Dnowhere 院系名称=@Dnamegoexecute 更新院系编号1010,'计算机科学系'10、成绩表上的触发器,当删除某一个学生的成绩时触发if exists(select name from sysobjects where name='选修表上的触发器'and type='tr') drop trigger 选修表上的触发器gocreate trigger 选修表上的触发器on 学生档案for deleteasif exists(select 学号from deleted where 学号in(select 学号from 选修))beginprint '该学生有成绩,所以不能删除!'rollbackendgo。
SQL数据库期末大作业培训资料
![SQL数据库期末大作业培训资料](https://img.taocdn.com/s3/m/acfd41ecd1f34693daef3e5f.png)
S Q L数据库期末大作业Hefei University《数据库期末大作业》餐饮业信息管理系统的开发专业:电子信息工程班级: 13电子1班姓名:**学号: ********** 指导老师:***完成时间: 2016-12-28一、本项目的需求分析随着今年来中国餐饮行业的日益火爆,在强烈的行业竞争中,一个高效的餐饮信息管理系统的应用,无疑是至关重要的。
高效,便捷的管理系统,不仅仅极大的方便了食客的就餐,同时对于餐饮公司的各项信息管理有着很大的帮助,同时,我们的餐饮信息管理系统还能帮助餐厅降低错误率,扩大营业范围,增加知名度等。
为了使得系统在操作的过程中,更加便捷,具有针对性,本次系统设计主要分为:员工登陆操作信息系统,以及店主操作管理信息系统。
不同的设计从而达到不同的功能,实现信息的有效传达与管理。
第一:在员工使用本餐饮信息管理系统应可以实现以下功能:1.添加修改查询客户会员信息(修改客户信息需客户确认)2.查询菜单3.添加查询预定信息,为老顾客打折4.客户可以在自己的会员账户里充值5.顾客可以用现金买单也可以从会员账户里扣取第二:管理员使用本餐饮信息管理系统应可以实现以下功能:1.添加修改查询客户会员信息(修改客户信息需客户确认)2.添加修改查询菜单信息,最好能看到菜品图片3.添加查询预定信息,为老顾客打折4.客户可以在自己的会员账户里充值5.顾客可以用现金买单也可以从会员账户里扣取6.设定具体的打折方法7.添加职员信息,权限也可以定为管理员。
8.可以查询使用者的现金收款金额。
二、餐饮业管理数据库管理系统的E-R模型(概念结构设计)1.用户(员工)的信息:编号、密码、类型、姓名、电话、收款金额2.客户信息:用户编号、客户编号、姓名、电话、密码、开卡时间、卡内余额3.食谱:类型、名称、价格、配料、照片4.预定:用户编号、日期、预定时间、客户姓名、类型、预定食谱、桌号5桌台管理:桌号、使用情况、6.点餐管理:用户编号、类型、菜品、数量、价格、照片7.盈利管理:日期、日支出金额、店内收入、外卖收入、盈利额度各对象之间的联系图:用户E-R图主要存储一些用户信息,如用户的账号、密码和类型地点等等,主要用于用户登录,添加客户和添加预定时会使用到用户信息。
《SQL-Server数据库》大作业要求
![《SQL-Server数据库》大作业要求](https://img.taocdn.com/s3/m/f69353d751e79b8969022631.png)
<<SQL Server数据库>>大作业要求一、要求、内容与时间分配1.信息系统选择(2 学时)基本要求:描述一现实生活中具体信息系统,使用所学建立系统数据库,编写数据库初始化程序,提供基本数据操作功能。
数据库要求:(1)系统最少要有三张表组成,且表之间要存在关系(2)最少要包含一个触发器(3)最少包含两个带参存储过程(4)数据库初始化程序,自动完成建库、建表(包含必要的约束)、基础数据添加、触发器和存储过程的建立。
重点与难点:数据库初始化程序。
2.系统分析(8学时)基本要求:编写系统需求分析文档,把所在内容描述清楚。
重点与难点:需求采集、需求分析、设计文档的规范性。
3.系统设计(30学时)基本要求:系统分析文档,编写系统设计说明书、编写程序设计代码,把实现过程表述完整。
重点与难点:系统设计文档的编写与系统实现4.编写大作业文档(4学时)基本要求:整理各阶段文档,形成大作业文档。
重点与难点:资料的整理与规范。
二、考核与成绩评定办法出勤20%,大作业文档80%三、需要提交的资料1.大作业文档(纸制)2.大作业文档(电子稿)3.程序代码4.系统演示视频注意:将2、3、4 放在同一个文件夹下,文件夹以“学号姓名”方式命名,中间不要有其他符号四、参考样例大型数据库大作业设计题目:超市管理系统院系:计算机科学与信息工程学院学生姓名:学号:专业班级:指导教师:***20XX年X月目录一、系统目标 (4)二、系统分析 (4)三、系统设计 (4)四、系统实现 (4)五、系统设计总结 (4)六、参考文献 (4)一、系统目标主要包括作业设计目的、完成目标,训练重点等信息系统需求描述二、系统分析需求分析,模块划分三、系统设计系统功能模块设计四、系统实现实现步骤,关键代码五、系统设计总结1.实现的功能和优点2.不足之处3.完成心得六、参考文献。
大学sql试题及答案
![大学sql试题及答案](https://img.taocdn.com/s3/m/a8368b6686c24028915f804d2b160b4e777f8141.png)
大学sql试题及答案一、单项选择题(每题2分,共20分)1. SQL中用于查询数据的语句是:A. SELECTB. INSERTC. UPDATED. DELETE答案:A2. 在SQL中,用于添加新记录的语句是:A. SELECTB. INSERTC. UPDATED. DELETE答案:B3. SQL中用于修改数据的语句是:A. SELECTB. INSERTC. UPDATED. DELETE答案:C4. SQL中用于删除数据的语句是:A. SELECTB. INSERTC. UPDATED. DELETE答案:D5. SQL中用于创建新表的语句是:A. CREATE TABLEB. INSERT INTOC. UPDATE TABLED. DROP TABLE答案:A6. 在SQL中,哪个关键字用于指定查询结果中列的别名?A. ASB. FROMC. WHERED. SELECT答案:A7. SQL中用于指定查询条件的关键字是:A. SELECTB. FROMC. WHERED. INTO答案:C8. SQL中用于连接两个或多个表的关键字是:A. JOINB. UNIONC. INTERSECTD. EXCEPT答案:A9. 在SQL中,用于分组数据的关键字是:A. GROUP BYB. ORDER BYC. HAVINGD. LIMIT答案:A10. SQL中用于排序查询结果的关键字是:A. GROUP BYB. ORDER BYC. HAVINGD. LIMIT答案:B二、多项选择题(每题3分,共15分)1. 在SQL中,以下哪些关键字用于数据定义语言(DDL)?A. CREATEB. INSERTC. DROPD. ALTER答案:A, C, D2. 在SQL中,以下哪些关键字用于数据操纵语言(DML)?A. SELECTB. INSERTC. UPDATED. DELETE答案:A, B, C, D3. 在SQL中,以下哪些关键字用于数据控制语言(DCL)?A. GRANTB. REVOKEC. COMMITD. ROLLBACK答案:A, B4. 在SQL中,以下哪些语句可以用于数据的聚合操作?A. COUNTB. SUMC. AVGD. MAX答案:A, B, C, D5. 在SQL中,以下哪些关键字用于查询优化?A. INDEXB. JOINC. WHERED. GROUP BY答案:A, B, C, D三、填空题(每题3分,共30分)1. SQL中的________关键字用于创建新数据库。
数据库sql课后练习题及答案解析
![数据库sql课后练习题及答案解析](https://img.taocdn.com/s3/m/15585117492fb4daa58da0116c175f0e7cd11966.png)
数据库sql课后练习题及答案解析第一篇:数据库sql课后练习题及答案解析先创建下面三个表:(book表)(borrow表)(reader表)1)找出姓李的读者姓名(NAME)和所在单位(COMPANY)。
2)列出图书库中所有藏书的书名(BOOK_NAME)及出版单位(OUTPUT)。
3)查找“高等教育出版社”的所有图书名称(BOOK_NAME)及单价(PRICE),结果按单价降序排序。
4)查找价格介于10元和20元之间的图书种类(SORT),结果按出版单位(OUTPUT)和单价(PRICE)升序排序。
5)查找书名以”计算机”开头的所有图书和作者(WRITER)。
6)检索同时借阅了总编号(BOOK_ID)为112266和449901两本书的借书证号(READER_ID)。
##7)* 查找所有借了书的读者的姓名(NAME)及所在单位(COMPANY)。
8)* 找出李某所借所有图书的书名及借书日期(BORROW_DATE)。
9)* 无重复地查询2006年10月以后借书的读者借书证号(READER_ID)、姓名和单位。
##10)* 找出借阅了一书的借书证号。
11)找出与”赵正义”在同一天借书的读者姓名、所在单位及借书日期。
12)查询2006年7月以后没有借书的读者借书证号、姓名及单位。
#13)求”科学出版社”图书的最高单价、最低单价、平均单价。
##14)* 求”信息系”当前借阅图书的读者人次数。
#15)求出各个出版社图书的最高价格、最低价格和总册数。
#16)分别找出各单位当前借阅图书的读者人数及所在单位。
17)* 找出当前至少借阅了2本图书(大于等于2本)的读者姓名及其所在单位。
18)分别找出借书人次数多于1人次的单位及人次数。
19)找出藏书中各个出版单位的名称、每个出版社的书籍的总册数(每种可能有多册)、书的价值总额。
20)查询经济系是否还清所有图书。
如果已经还清,显示该系所有读者的姓名、所在单位和职称。
SQL试题精选及答案
![SQL试题精选及答案](https://img.taocdn.com/s3/m/2ab9b222326c1eb91a37f111f18583d048640f7b.png)
SQL试题精选及答案1. 请写出SQL中创建新表的语句。
答案:CREATE TABLE 表名 (列1 类型, 列2 类型, ...);2. 如何在SQL中查询特定列的数据?答案:SELECT 列名 FROM 表名 WHERE 条件;3. 请解释SQL中的JOIN操作。
答案:JOIN操作用于将两个或多个表中的行组合起来,基于一个共同的列。
4. 写出SQL中更新表中数据的语句。
答案:UPDATE 表名 SET 列名1 = 值1, 列名2 = 值2 WHERE 条件;5. 如何在SQL中删除表中的数据?答案:DELETE FROM 表名 WHERE 条件;6. 请描述SQL中的GROUP BY子句的作用。
答案:GROUP BY子句用于将取回的记录分组,可以与聚合函数一起使用,如COUNT、SUM等。
7. SQL中如何使用子查询?答案:子查询是嵌套在另一个查询中的查询,可以出现在SELECT、INSERT、UPDATE或DELETE语句中。
8. 请写出SQL中创建索引的语句。
答案:CREATE INDEX 索引名 ON 表名 (列名);9. 如何在SQL中使用事务?答案:可以使用BEGIN TRANSACTION开始事务,然后执行一系列操作,最后使用COMMIT提交事务或ROLLBACK回滚事务。
10. 请解释SQL中的主键和外键。
答案:主键是表中用来唯一标识每行数据的列或列组合,而外键是一个表中的列或列组合,它在另一个表中作为主键。
11. SQL中如何进行数据排序?答案:使用ORDER BY子句,如SELECT * FROM 表名 ORDER BY 列名ASC 或 DESC。
12. 如何在SQL中使用聚合函数?答案:聚合函数如SUM、COUNT、AVG等,可以与GROUP BY子句一起使用,对数据进行汇总。
13. 请写出SQL中插入数据的语句。
答案:INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...);14. 请解释SQL中的视图。
sql设计题 10道
![sql设计题 10道](https://img.taocdn.com/s3/m/10b3edc0ed3a87c24028915f804d2b160a4e8655.png)
好的,以下是10道SQL设计题:
1. 设计一个查询,用于从"employees"表中检索所有员工的姓名、工资和部门名称。
2. 设计一个查询,用于从"orders"表中检索所有订单的订单号、客户名称和订单日期。
3. 设计一个查询,用于从"products"表中检索所有产品的名称、价格和库存数量。
4. 设计一个查询,用于从"customers"表中检索所有客户的姓名、地址和电话号码。
5. 设计一个查询,用于从"orders"表中检索订单号、客户名称和订单总金额。
6. 设计一个查询,用于从"employees"表中检索工资最高的员工的姓名、工资和部门名称。
7. 设计一个查询,用于从"orders"表中检索订单日期最早的订单的订单号、客户名称和订单日期。
8. 设计一个查询,用于从"customers"表中检索最活跃的客户,该客户至少下过5次订单。
9. 设计一个查询,用于从"products"表中检索库存数量低于10的产品的名称和价格。
10. 设计一个查询,用于从"employees"表中检索部门平均工资最高的部门的名称和平均工资。
请注意,以上题目中的表名和列名仅为示例,您可以根据实际情况进行修改。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
山东大学(威海)机电与信息工程学院数据库课程设计基于SQL Server 和VB6的图书馆图书借阅系统设计张良_201100800720_自动化专业二班2014/4/28此文档介绍了一个基于SQL Server 和VB6 开发的图书馆图书借阅系统。
通过VB 程序访问SQL数据库,VB程序可提供用户检索、借阅、还书、续借、修改个人信息、修改登录密码、查询历史借阅记录等外部功能,提供诸如读物推荐、延期记录处理、用户权限限制等系统功能,提供给管理员以添加书籍、修改书籍信息、删除书籍等管理功能。
目录基于MICROSOFT SQL SERVER和VB6数据库课程设计 (2)一、需求分析 (2)1.设计目标 (2)2.设计任务 (2)3.任务分析 (2)a)信息要求 (2)b)处理要求 (2)c)安全性与完整性约束 (3)二、概念结构设计 (3)三、逻辑结构设计 (3)1.实体转换 (3)2.关系转化 (4)3.衍生关系表 (4)4.用户外模式 (4)四、物理结构设计 (4)五、程序设计 (4)1.数据库设计 (4)2.VB程序设计 (6)a)成果界面展示 (6)b)代码展示 (11)六、附录 (14)1.触发器信息 (14)2.存储过程信息 (15)七、尾声 (18)基于Microsoft SQL Server数据库课程设计——图书馆借阅系统——2011级自动化二班张良学号:201100800720一、需求分析1.设计目标此次的课程设计总体要求是基于SQL Server 和VB 语言设计图书馆借阅管理系统。
2.设计任务设计应当实现的业务明细如下:1. 查询书籍,按照书名、作者、出版社查询并显示结果;2. 借阅排行,列出最近半年内借阅次数最多的10本书;3. 借书,读者从图书馆中借书登记,没人最多借15本,借期3个月,有超期未还书的4. 还书,只能还借过的书,还一次;5. 续借,最多续借一次,可延长1个月借期;6. 为图书管理员提供图书的添加、修改、删除功能;7. 为读者提供借阅记录的查询功能。
3.任务分析a)信息要求结合设计任务可以总结出,本次设计中总共涉及了三个事物:管理员、读者和书籍。
鉴于管理员的任务较为单一(只有修改书籍属性的任务),因此对管理员的信息要求可以相对宽松,此处为了鉴别管理员权限,需要鉴定管理员身份,因此需要管理员提供相应身份验证信息(此次设计采用登录名+密码的验证方式)。
对读者这一实体,需要采集读者的ID(数据库中区分读者主键),读者姓名,年龄,性别,工作单位等基本信息。
同管理员相同,系统必需能够鉴别读者身份然后才能决定是否允许借阅书籍,因此读者也必需设置相应的登录密码。
书籍是图书馆管理任务的主要载体,其信息的采集主要包括以下两种:一是书籍本身的属性,如书籍序列号、书籍名称、作者、出版信息、入馆信息等,二是书籍与读者产生借阅关系时所生成的一些信息,如借阅的时间、归还的时间、是否续借等等,虽然此部分信息并不单单隶属于书籍,但此处在信息采集的要求上将之归于此中。
b)处理要求对管理员来说,管理员需要向系统中(数据库中)添加、修改、删除数据信息,要求系统为管理员提供相应的操作界面。
处理时应根据实际情况有区别地提供单一处理方式和成批处理方式。
对读者来说,系统能为读者提供的处理有搜索、借书、还书、续借等基本处理要求,根据实际情况又衍生出系统默认的一些约束性处理,如推荐读物、超期处理、最长借阅时限、借阅次数约束等。
根据实际用户需求衍生出一些附加处理,如用户修改登录密码、修改自己基本信息、查看借阅历史等。
c)安全性与完整性约束此处主要包括对用户登录信息的保护,图书借阅期限,超期处理等。
二、概念结构设计系统的E-R图如下:特殊属性说明:书籍属性中存在书类号和书序号两种鉴别号码,其目的是为了更为合理地区分书籍之间的联系。
此次设计中将引用书类号表示某一种书籍,而用书序号标识该种类书籍在图书馆中的馆藏的数量信息。
例如假设图书馆存在书类号为:TS11001、书名为“数据库原理与应用教程——SQL Server”、尹志宇、郭晴编著、清华大学出版社出版的书籍,馆藏数量为3本,此三本书籍的书序号分别为W001、W002、W003。
另一个需要说明的是借阅中的“应归还时间”这一属性,在实际生活中,知道某一同学的身份,知道其借书的借阅时间就可以推导出其还书时间,因此“应归还时间”这一属性如果存在必将导致逻辑设计时产生传递函数依赖,从而使关系达不到第三范式。
但是在系统开发过程中如果去掉此属性,则有些任务的处理将异常繁琐。
为了权衡这两者之间的利弊,此处做如下妥协:即保留“应归还时间”这一属性,但在数据库设计时采用触发器自动填充更改此属性的值。
这样既可以方便地处理相关问题,又可以使用户在填充数据时不需要庸烦地输入。
三、逻辑结构设计1.实体转换根据上面的E-R图,实体转换成关系模式读者信息表(读者ID,姓名,性别,年龄,单位,Email,登录密码)管理员列表(管理员ID,登录密码)书籍信息表(书类号,书名,作者,出版信息,入馆时间,备注)2.关系转化此E-R图中只有一个借阅关系需要转换,转换结果如下:借阅明细表(读者ID,书序号,借阅时间,归还时间,应归还时间,是否续借,备注)说明,此处将前三个属性均设置成主要是考虑到同一个学生可以在不同的时间借阅同一本书,如果不加以区分将导致主键重复(此处可以给每一个借阅记录自动分配一个借阅编号来区分各个借阅记录,但因先前的设计中没有用到这种方法,现在完成的系统是根据上面的关系模式进行开发的,因此此处不予使用)3.衍生关系表此处衍生关系表主要是指书籍的书类号与书序号之间的对应关系序列对应表(书序号,书类号,馆藏状态,备注)说明,馆藏状态将依据借阅明细表中的记录,通过触发器,自动填充此书目前是在馆还是已借出。
4.用户外模式为了更便捷地完成系统开发,在数据库中总共设计了七个视图,某些主要的功能视图简介如下:图书搜索显示表:此视图用于完成用户的图书搜索功能。
在此视图中除了包含图书信息表中的所有内容外,还从序列对应表中统计了某种书籍的馆藏书籍数量,从借阅明细表中统计了该书籍的外借书籍数量,从而得到在馆书籍数量。
都将显示在用户的搜索书籍的界面上。
随便看看显示表:此视图用于完成系统的推荐阅读读物的功能。
此视图中保存有每一本书(每一个书序号的书)的外借次数,当用户点击系统“随便看看”按钮时,数据库将返回近期内借阅数量最多的10类书籍(书类号标识),其完成过程为随便看看显示表与序列对应表连接,通过按组排序,搜索借阅总次数的方式返回总借阅次数最多的书籍信息。
等四、物理结构设计此处采用SQL Server 自动分配的物理结构。
五、程序设计1.数据库设计采用SQL Server,按照逻辑设计结构中分析设计数据库的关系模式,设计成果略展示如下(成品参见附件)数据库关系图如下:数据库整体结构如下:某些读者信息表中的信息如下:某些触发器设置如下:2.VB程序设计a)成果界面展示此次VB程序设计共有11个窗体,在vb的资源管理器中展示如下:下面将对这些界面进行简要介绍:FORM3——启动界面(登录界面)借书功能的实现需要以下窗体的配合——se_book_frm和borr_detail。
Se_book_frm 上的按键定义如下:“检索”按钮将完成按照特定输入检索书籍,“随便看看”可向用户推荐借阅量前十的书籍。
选定某一书籍后点击“查看详细信息”,可查看该类书在图书馆每本书的馆藏状态,并选择是否借阅。
中下方的“个人中心”按钮将调出读者个人中心框体即stu_info窗体。
“退出”按钮将返回登录界面。
借阅书籍时系统将检测用户的非法信息,此处检查了四项即:是否有超期未还记录、是否已经借阅了此书、是否当前借阅数量已达上限、是否此书籍已经借出但因系统故障未能更新数据。
每一项检查的错误都会有相应的信息对话框弹出,保证系统功能的正常执行。
用户个人中心界面如下:该界面将完成共用户查看个人信息,修改个人信息,修改登录密码,查看当前借阅记录,查看历史借阅记录等功能。
下面将有选择地介绍当前借阅记录查询,因为该查询中将完成用户的还书和续借功能(对超期图书的处理将在此中完成)Stu_search_now窗体此窗体中,用户当前借阅未还书籍、超期书籍都将在此展现,用户对当前借阅未还但超期的书籍可以选择续借(系统自动延期一个月)和还书。
对存在超期记录的用户,用户进入此界面将有对话框提醒,且用户之前不能借阅其他书籍(这一点已经在上面提到)。
对超期书籍的处理,系统将会把续借按钮封锁,用户只能选择还书。
管理员界面从登录界面选择“管理员”单选框,输入管理员ID和密码,即可进入管理员界面,此界面为管理员提供了添加、删除、更改书籍信息的功能。
分别对应右下方三个按钮。
当管理员从搜索的结果中选定某一种书(单击第一DATAGRID),第二个datagrid将显示该种书籍在图书馆的馆藏状态。
“删除书籍”仅对某一本书有效(书序号标识),“更新书籍信息”仅对最后一次书籍信息的更改有效。
“添加书籍”将弹出另一窗体——ADD_BOOK其界面如下:添加书籍信息窗体——ADD_BOOK该窗体其他信息较为普通,指的注意的主要为书序号添加方式——自动或手动,自动方式下系统将会根据“入馆数量”的多少为如此多的每一本该类图书自动添加一个唯一的ID(书序号),选择手动方式下,系统将进一步弹出另一个添加书序号的窗体——ADD_ST添加书序号窗体——ADD_ST此窗体提供为管理员添加书序号的界面,根据前一界面的入馆数量知道管理员添加正确数量的书序号,直到所有书籍都添加完成。
如果管理员只手动输入了一部分书序号就点击结束,则系统会提醒用户仍有书籍未曾添加书序号,如果用户执意退出(结束),系统将以自动方式填充剩余书目的书序号b)代码展示Se_book_frm窗体代码:Dim cnnctn As New ConnectionDim rs As New RecordsetPublic BookMARKPublic BookNamePrivate Sub Command1_Click()On Error GoTo MARK:Dim RS_temAs New RecordsetRS_tem.CursorLocation = adUseClientDim sql_String As String '总字符串sql_String = "select * from 图书搜索显示表WHERE 书名like '%" & Text1.Text & "%'and 作者like '%" & Text2.Text & "%'and 出版信息like '%" & Text3.Text & "%'"RS_tem.Opensql_String, cnnctn, adOpenKeyset, adLockPessimisticSet DataGrid1.DataSource = RS_temDataGrid1.AllowAddNew = FalseDataGrid1.AllowDelete = FalseDataGrid1.AllowUpdate = FalseMARK:End SubPrivate Sub Command2_Click()On Error GoTo MARK:BookMARK = DataGrid1.Columns(0).CellValue(DataGrid1.BookMARK)BookName = DataGrid1.Columns(1).CellValue(DataGrid1.BookMARK)borr_detail.Show (1)MARK:End SubPrivate Sub Command3_Click()On Error GoTo MARK:Dim RS_temAs New RecordsetRS_tem.CursorLocation = adUseClientDim sql_String As String '总字符串RS_tem.Open "SELECT * FROM DBO.随便看看显示表", cnnctn, adOpenKeyset, adLockPessimistic Set DataGrid1.DataSource = RS_temDataGrid1.AllowAddNew = FalseDataGrid1.AllowDelete = FalseDataGrid1.AllowUpdate = FalseMARK:End SubPrivate Sub Command4_Click()Unload MeerID = ""Form3.ShowEnd SubPrivate Sub Command5_Click()Stu_Info.Show (1)End SubPrivate Sub Form_Load()cnnctn.Open "Provider=sqloledb;Data Source=.;Initial Catalog=图书借阅信息管理;Integrated Security=SSPI;" ' 打开连接End SubPrivate Sub Form_Terminate()DataGrid1.Enabled = FalseEnd SubPrivate Sub Form_Unload(Cancel As Integer)Set DataGrid1.DataSource = Nothing '关闭datagrid1的数据源cnnctn.CloseEnd SubADD_ST窗体代码:Dim cnnctn As New ConnectionDim rs As New RecordsetDim remainNumPrivate Sub Command1_Click()On Error Resume NextIf remainNum = 0 ThenMsgBox "数据错误"Exit SubEnd IfDim BookStAs StringDim Addition As StringBookSt = Text1.TextAddition = Text2.Textcnnctn.Execute "insert 序列对应表$ values('" &BookSt& "','" &Add_Book.BookMARK&"','" & "" & "','" & Addition & "')"rs.RequeryremainNum = remainNum - 1If remainNum = 0 ThenMsgBox "书序号添加完成,即将退出", vbOKOnly, "通知"Unload MeElseMsgBox "仍需要为" &remainNum& "本书添加书序号", vbOKOnly, "通知"End IfEnd SubPrivate Sub Command2_Click()On Error Resume NextIf remainNum = 0 ThenUnload MeElseans = MsgBox("仍有" &remainNum& "本书籍没有添加书序号,若确认退出将以自动方式添加剩余书序号,是否确认退出", vbYesNo, "警告")If ans = vbYes ThenFor i = 1 ToremainNumIf i< 10 ThenBookSt = Add_Book.BookMARK + "0" + CStr(i)ElseBookSt = Add_Book.BookMARK + CStr(i)End Ifcnnctn.Execute " insert 序列对应表$ values('" &BookSt& "','" &Add_Book.BookMARK& "','" & "" & "','" & "" & "')"Next iAdd_Book.Text1.Text = ""Add_Book.Text2.Text = ""Add_Book.Text3.Text = ""Add_Book.Text4.Text = ""Add_Book.Text5.Text = ""Add_Book.Text6.Text = ""MsgBox " 书籍添加成功", vbOKOnly, "通知"Unload MeEnd IfEnd IfEnd SubPrivate Sub Form_Load()On Error Resume NextremainNum = Add_Book.BookNumcnnctn.Open "Provider=sqloledb;Data Source=.;Initial Catalog=图书借阅信息管理;Integrated Security=SSPI;" ' 打开连接Label1.Caption = "为" &Add_Book.BookName& "添加书序号"Frame1.Caption = "共需为" &Add_Book.BookNum& " 本书添加书序号"rs.CursorLocation = adUseClientsql_String = "select 书序号,书类号,备注from 序列对应表$ WHERE 书类号='" &Add_Book.BookMARK& "'"rs.Opensql_String, cnnctn, adOpenKeyset, adLockPessimisticSet DataGrid1.DataSource = rsEnd SubPrivate Sub Form_Unload(Cancel As Integer)Set DataGrid1.DataSource = Nothing '关闭datagrid1的数据源cnnctn.CloseEnd Sub六、附录1.触发器信息触发器名称:D_TR触发器位置:借阅明细表触发操作:AFTER UPDATE,DELETE功能:当借阅时间不为空时,自动根据是否续借信息确定应归还时间。