课程作业报告题目:校园一卡通管理系统数据库的设计学院:江西理工软件学院专业:软件土木班级:三班学号:学生:甘文波授课教师:李春雨时间:2015 年 5 月15 日目录一、需求分析需求概述一张校园卡,取代以前的各种证件(包括学生证、借书证、出入证等)全部或部分功能师生在学校各处出入、办事、活动和消费均只凭这校园卡便可进行,并与银行卡实现自助圈存,最终实现“一卡在手,走遍校园一卡通网络拓扑图校园”,同时带动学校各单位、各部门信息化、规范化管理的进程。
此种管理模式代替了传统的消费管理模式,为学校的管理带来了高效、方便与安全。
一卡通系统是数字化校园建设的重要组成部分,是为校园信息化提供信息采集的基础工程之一,具有学校管理决策支持系统的部分。
功能简介主要具有综合消费类、身份识别类、公共信息服务类等功能。
整个系统与银行系统、学校原有的系统和学校管理信息系统有良好的衔接,并为学校潜在管理信息系统预留合适的接口,在项目完成后随时为学校增加其它管理系统接口提供必要的协助。
二、数据库概念结构设计确定联系集及E-R图根据前面对系统进行的分析,已经初步了解了一卡通管理系统的数据处理流程,找出与系统有关的各个实体及其相互联系如下:标示实体集:学生,一卡通,银行卡,账单四个关系。
标示联系集:学生和一卡通:一名学生只能拥有一张一卡通,一张一卡通也只能被一名学生持有。
学生与一卡通关系为:1:1。
一卡通和银行卡:一张一卡通可以与多张银行卡绑定或不与银行卡绑定,一张银行卡可与多张一卡通绑定或不绑定。
一卡通与银行卡的关系为:N:M 。
③、标示属性集:学生(学号,姓名,性别,班级,系别) 一卡通(卡号,密码)银行卡(卡号,银行类别,办理地区,户主) 账单(流水号,时间,支出金额,转入金额,余额)画出E-R 图一卡通信息图如下:学生信息图如下:银行卡信息图如下:图2-2-账单图如下:图2-2-4学生成绩管理系统总E-R图三、数据库逻辑设计逻辑结构是独立于任何一种数据模型的信息结构。
逻辑结构的任务是把概念结构设计阶段设计好的基本E-R图转化为宜选用的DBMS所支持的数据模型相符合的逻辑结构,并对其进行优化。
E-R图向关系模型转化要解决的问题是如何将实体型和实体间的联系转化为关系模式,如何确定这些关系模式的属性和码。
设计校园一卡通管理数据库,包括学生、一卡通、银行卡、消费账单四个关系, 其关系模式中对每个实体定义的属性如下:一卡通信息表card:(卡号,密码)学生信息表Student: (学号,姓名,性别,所属班级,系别)银行卡信息表bank: (卡号,银行类型,办理地区,户主)账单表bill:(流水号,时间,转入金额,支出金额,余额)设计出E-R图后,可将E-R图转换为数据库模式。
运行本系统时在库中所建立的表分别介绍如下:一卡通信息表(card)学生信息表(Student)银行卡信息表(bank)账单表(zhangdan)四、建表创建模式并授权打开“oracle-oraDb11g”——“SQL plus”在窗口中登陆超级管理员system创建模式:CREATE?USER?gwb?IDENTIFIED?BY?gwb;授权:grant connect,resource to gwb;连接:conn gwb/gwb创建数据表一个完整的数据库不可缺少的就是数据表,若干个数据表的集合成一个数据库。
数据表主要用来存放一定格式的记录,数据表中的行被称为记录,列被称为字段。
创建数据表的过程其实就是定义字段的过程。
在此校园一卡通管理系统中需要创建五个表,即学生信息表、一卡通信息表、银行卡信息表、银行卡与一卡通绑定表(桥表)、消费账单表。
创建并连接gwb模式后,在数据库该模式下添加数据表,步骤如下。
在窗口中键入下列SQL语句create table student(sno number(5) primary key,sname varchar2(10) not null,ssex char(2),sclass varchar2(16) not null,sdept varchar2(4) not null,constraint ssex check(ssex in ('男','女')));执行上述SQL语句即可创建学生信息表相关表格create table card(cno number(5) primary key,cpassword number(6) not null,sno number(10) references student(sno));执行上述SQL语句即可创建一卡通信息表相关表格create table bank(bno number(9) primary key,bname varchar2(16) not null,bdiqu varchar2(16) not null,bhuzhu varchar2(8) not null);执行上述SQL语句即可创建银行卡表相关表格create table tie(bank_no number(9) references bank(bno),card_no number(5) references card(cno),primary key(bank_no,card_no));执行上述SQL语句即可创建一卡通和银行卡绑定信息表相关表格create table zhangdan(zno number(4) primary key,zshijian date not null,zzhichu number(10,2) not null,zzhuanru number(10,2) not null,zyue number(10,2) not null,cno number(10) references card(cno));执行上述SQL语句即可创建消费账单信息表相关表格五、数据库的运行和维护定义基本表的创建、修改及删除。
基本表的创建,建表语句create table student( bank_no,from Student,card,tie,zhangdanWhere=and tie.card_no= and=;结果:嵌套查询查询卡号为“11002”这张一卡通学生的学号、姓名、班级及系别。
Select sno,sname,sclass,sdeptFrom StudentWhere sno in(select snoFrom cardWhere cno='11002')查询结果:操作结果集查询查询一卡通号为11002和11047各所绑定的银行卡中,相同的办理地区Select bdiquFrom bankWhere bno in (select bank_noFrom tieWhere card_no=11002)IntersectSelect bdiquFrom bankWhere bno in (select bank_noFrom tieWhere card_no=11047)查询结果:数据库更新操作插入数据向bank表中添加一项记录:卡号:银行名:中国建设银行,办理地区:南昌,户主:lila。
insert into结果:修改数据修改学号1305的同学所在班级为会计学131update Student set sclass='会计学131' where sno='1305';结果为:删除数据删除银行卡号为的绑定信息Deletefrom tieWhere(bank_no='');结果为:数据库的安全性所谓计算机系统安全性,是指为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件,软件及数据,防止其偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。
为防止因用户非法使用数据库造成数据泄露、更改或破坏,必须采取一些安全性控制措施以保证数据库中数据的安全、可靠和正确有效。
安全性控制的防范对象是非法用户和非法操作,防止他们对数据库数据的非法存取。
主要采用用户标识及鉴定,使用用户名或用户标识号来标明用户身份。
用户想要对对数据库内容进行相关操作,必须申请一个用户名或用户标识号,每次登陆都必须输入该用户名以及相应正确的口令,然后系统对其进行验证,只有通过验证的用户方可对数据库进行操作。
数据库的完整性实体完整性定义:在学生信息表student中将sno定义为主码。
create table student( //创建学生信息表sno number(5) primary key, //学号sname varchar2(10) not null, //名字ssex char(2), //性别sclass varchar2(16) not null, //班级sdept varchar2(4) not null, //系别constraint ssex check(ssex in ('男','女')) //表级约束);参照完整性定义:在账单表zhangdan中将cno定义为外码。
create table zhangdan( //创建账单表zno number(4) primary key, //账单流水号zshijian timestamp not null, //账单生成时间zzhichu number(10,2) not null, //支出金额zzhuanru number(10,2) not null, //转入金额zyue number(10,2) not null, //账户余额cno number(10) references card(cno) //外键);六、总结本校园一卡通系统设计简单,功能单一,只能实现最基础的数据查询管理功能。
各实体及实体间联系,实体与属性间联系都是凭自己的想法,在部分逻辑联系和现实有所不同,但整体还是较为符合常理。
部分是参照课本数据库结构进行设计,因此在独立思维和创新方面还有很大不足之处。
另外由于思维上的漏洞,考虑不够周全导致数据库中插入的数据给后期处理和查询带来一些不便。
设计过程中我也遇到了一些问题,再向其他同学请教的过程中我收获了很多。
(1)在设计表时应注意字符的使用,尤其是标点符号,很容易搞错。
(2)正确定义数据类型,字符型要加单引号。
(3)注意时间戳的格式转化。
一个学校的校园一卡通管理是一个庞大而又十分重要的数据管理系统,通过唯一确定的编号,给每个人的身份进行了标识,对于学校管理人员来说,大大提高了管理效率,减少工作量,使管理更方便快捷。
同时每个人都有作为本校成员的有效凭证,在生活、学习、消费上都带来极大的便捷。