数据库技术作业报告书1数据库技术作业报告书学号姓名刘月明所在学院经济管理学院指导教师沈波完成日期2014.05.08数据库技术作业报告书2目录《数据库技术》课程作业任务书............................3需求分析................................................................4E—R概念模型设计..........................................5逻辑结构设计.................................................6数据定义.................................................7数据操作.................................................8数据查询.............................................9后记................................................10数据库技术作业报告书3《数据库技术》课程作业任务书学号:学生姓名:刘月明专业班级:经一、作业题目学生考勤管理系统二、本次作业的目的1.通过该题目的设计,使学生掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;2.掌握利用VFP开发信息管理系统的方法。三、本次作业的主要内容和要求(包括需求分析、采用E-R模型的概念结构设计、逻辑结构设计等)本系统能够方便、灵活的实现学生考勤信息的添加、删除、修改等功能。本系统至少要有一个学生基本信息表,包括:学号、姓名、班级、性别等信息;一个学生请假信息表,包括学号、请假类型、请假日期、请假开始时间、请假结束时间、请假原因、审批情况等;以及考勤表,内容包括日期、学号、课程代码、出勤属性(是否迟到、是否早退、是否旷课、是否请假、正常)迟到、早退时间等。要求:⒈独立完成。⒉按照第8章数据库设计的要求进行需求分析;⒊建立E-R模型。⒋将E-R模型转换为关系模型(必须规范到第三范式)。⒌用SQL数据定义功能创建数据库和数据表(视情况设置主码、域、默认值、外码等)。⒍用SQL数据操作功能,向数据表中插入数据。⒎用SQL的数据查询功能实现必要的查询和统计(自己设计查询和统计语句,不能少于8条语句,要包括一般查询、连接查询、自查询、分组查询、统计查询等),如按周、月、学期统计考勤情况,统计学生指定月份的出勤信息,包括日期、学号、迟到次数、早退次数、矿课次数、请假次数等。四、主要参考文献:=t9OK8AD0W2ZZtmdmrt0iwXGeCndryqX33E3bPwVQ4OySAR2Sd0VKXXD4rAQdUJWqcdfSL9vadl_c-5ryMTB5r89dQ4QR3xRVwaiw5A4lqAi=baiduimage&ct=201326592&lm=-1&cl=2&fr=ala0&word=%D1%A7%C9%FA%BF%BC%C7%DA%CF%B5%CD%B3er%CD%BC数据库技术作业报告书4需求分析要实现一个学生考勤管理系统,在这个考勤系统中涉及对学生,课程,考勤的管理。此系统要求能够记录学生的基本信息,学生请假信息表,以及考勤表。该系统的业务要求为:一个学生可有多门课程。一个课程可由多名学生请假。一个学生可以向多门课程请假。一门课程同一学生可以多次不到。一名学生可以不到多门课程。对于考勤表每次课程教师必须都记录,一名学生最多无故不到三次,超过三次平时成绩为零或不允许参与期末考试,有原因者必须向老师请假,携带导员假条或医院病假条。对于学生请假信息表,老师需要记录每次课程请假成员原因等,并将请假条保存好。该系统的基本信息包括:学生基本信息:学号,姓名,班级,性别,出生日期,专业。学生请假信息表:学号,请假类型,请假开始时间,请假结束时间,请假原因,审批情况。学生考勤表:日期,学号,课程代码,出勤属性,早退时间。数据库技术作业报告书5E—R概念模型设计学生姓名班级性别出生日期专业学号考勤课程课程代码请假假条请假类型请假开始时间请假原因请假结束时间考勤记录日期出勤属性早退时间审批情况课程名数据库技术作业报告书6逻辑结构设计学生基本信息表学号姓名班级性别出生日期专业Char(10)Char(8)Char(13)Char(2)dateChar(20)学生请假信息表学号请假类型请假开始时间请假结束时间请假原因审批情况Char(10)Varchar(30)datedateVarchar(100)Char(6)学生考勤表日期学号课程代码出勤属性早退时间dateChar(10)Char(12)Char(24)date数据库技术作业报告书7数据定义Createtable学生基本信息(学号char(10)primarykey,姓名char(8)notnull,班级char(13),性别char(2)check(性别=’男’or性别=’女’),出生日期date,专业char(20)notnull)Createtable学生请假信息(学号char(10)references学生基本信息(学号)notnull,请假类型varchar(30)notnull,请假开始时间datenotnull,请假结束时间datenornull,请假原因varchar(100)notnull,审批情况char(6)notnull,)Createtable学生考勤(日期datenotnull,学号char(10)notnull,课程代码char(12)notnull,出勤属性char(24)早退时间datenotnull,Primarykey(学号),Foreignkey(学号)references学生基本信息(学号))数据库技术作业报告书8数据操作为学生基本信息表添加“院系“列,此列定义为specchar(10)允许空Altertable学生基本信息Add院系specchar(10)null将新添加的院系列的类型改为char(20)Altertable学生基本信息Alter院系specchar(20)删除新添加的院系列Altertable学生基本信息Dropcolumnspec为考勤表的’课程代码’列添加unique约束Altertable考勤表Addconstraintuk-sidUnique(课程代码)添加现在考勤表的最早早退时间必须晚于8点钟Altertable考勤表(Addconstraintchk-早退时间Check(最早时间8:00)为学生请假信息表添加主码约束Altertable学生请假信息表Addconstraintpk-kqPrimarykey(学号)数据库技术作业报告书9数据查询1、查询学生基本信息表中姓‘李’‘张’的基本信息Select*from学生基本信息where姓名like‘[李张]%’2、查询‘出勤属性’为旷课的学生的基本信息Select*from学生基本信息jion出勤表on学生基本信息.学号=出勤表.学号where出勤属性=’旷课’3、查询计算机专业年龄在20岁以下的学生姓名,年龄Select姓名,年龄=2014-出生日期from学生基本信息表where专业=’计算机’and年龄204、统计每个学生早退的次数Select学号,count(*)早退时间from考勤表groupby学号5、查询信息专业选修了课程代码为‘0112’的学生旷课情况,要求列出学生姓名学号Select姓名,学号from学生基本信息join考勤表on学生基本信息.学号=考勤表.学号where专业=’信息’and课程代码=’0112’6、查询学生请假审批情况为‘同意’的学生的基本信息Select*where学号in(select学号from请假信息表where审批情况=’同意’)7、查询课程代码为‘0113’的学生考勤早退情况Select早退情况from考勤表where课程代码=’0113’8、统计学生一月份的出勤信息,包括学号、迟到次数、旷课次数、请假次数Selectcount(*)from考勤表where出勤属性=’迟到or旷课or请假’in(select学号from考勤表)9、建立查询信息专业选了课程代码为‘0114’号课程的学生的视图,列出学号,姓名,出生日期Createviewv-is-s1(学号,姓名,日期)AsSelect学生基本信息.学号,姓名,出生日期from学生基本信息join考勤表on学生基本信息.学号=考勤表.学号where专业=’信息’and考勤表.课程代码=’0114’10、利用上题建立的视图,建立信息专业选了课程代码为‘0114’号课程且非正常到课的学生的学号,姓名和非正常到课日期Createviewv-is-s2AsSelect学号,姓名,日期fromv-is-s1where出勤属性!=’正常’数据库技术作业报告书10后记在大一下半学期通过对《数据库原理与应用教程》的学习,对数据库技术有了大致的了解。我们主要学习了1~8章,其具体内容包括数据库管理的发展过程,数据库系统的组成结构,SQL语言基础及数据库定义功能、视图、关系规范化理论、数据库保护及数据库设计几个方面。主要学习了数据库的理论基础。通过对数据库的学习,学会了简单的编程,也使自身的计算机方面的知识有了一定能力的提高。了解知道了什么是数据库,在以后的一些专业知识中有很大的帮助。作为一名物流管理专业的学生,对数据库了解掌握有很大的重要性。在老师的教导下能编写出一些简单是SQL语言编程,但是掌握不好,脱离了书本不能独立完成,对一些理论性的知识不太理解。过多的专业语言,头脑中有些混乱。尤其是一些编程所需的语句由于不是专业学生没有背过,每次编程都需要翻课本。虽然对SQL语言不太熟悉也是第一次接触,但由于陌生让我更有了挑战的心情,开始学习的时候感觉很难有些跟不上老师,但通过老师带着我们学习做题对语句的查询定义有了很大的了解,也慢慢克服了困难,老师给出的一些操作题基本可以做个大概,老师通过在课上出一些课本上没有的题,使我的数据库技术有了很大提高。希望老师在以后的教学过程中多多让学生操作,多多了解学生对于哪些知识不太了解,多多让学生上机实践。老师在教课过程中很负责,也因为老师的负责人的态度学到了好多。通过这次学习我真正体会到了计算机知识的更新是很快的,随着教育体制的改革和教育理念的更新,以及信息技术的飞速发展,使我体会到只有不断地学习,才能掌握最新的知识,才能在以后把工作做得更好,才能不被社会淘汰,我们也渴望能够多学关于计算机方面的知识.。