下载中心 Download
    无分类
搜索 Search
你的位置:首页 > 下载中心

E-R图这里用E-R实体关系图来表示系统中各个实体的联系

2014/3/22 16:20:19点击:

1.学生信息表学生信息代表了一个在校学生,包括学生的各种信息表以及其拥有的一卡通相关信息,具体结构如表4-1所示。

身份证号卡号一卡通用户持有编号制造日期状态学号状态银行借记卡包含密码开户日期状态1姓名11142名称数据类型长度(字节)是否允许为空自动增长主键外键索引说明STUDENT_IDINT11否是是否有学生学号STUDENT_NAMEVARCHAR50否否否否有学生姓名STUDENT_CARDVARCHAR50否否否是有一卡通IDSTUDENT_IDCARDCHAR18否否否否无身份证号码STUDENT_HOMEVARCHAR100是否否否有生源地STUDENT_MAJORVARCHAR100是否否否无专业STUDENT_DEPTVARCHAR100否否否否有院系STUDENT_BIRTHDAYDATE-是否否否无出生日期STUDENT_LOGINDATE-是否否否无入学日期STUDENT_SEXINT1是否否否无性别STUDENT_RACEVARCHAR30是否否否无民族STUDENT_TYPEVARCHAR30否否否否有学生类别STUDENT_POLITYVARCHAR20是否否否无政治面貌STUDENT_ADDRESSVARCHAR100是否否否有学生住址STUDENT_PICTRUEBLOB100是否否否无照片2.教师信息表教师信息表记录了所有的教师相关信息,如表4-2所示。

4-2教师信息表名称数据类型长度(字节)是否允许为空自动增长主键外键索引说明TEACH_IDINT11否是是否有教师工号TEACH_NAMEVARCHAR50否否否否有教师姓名TEACH_CARDVARCHAR50否否否是有一卡通IDTEACH_IDCARDCHAR18否否否否无身份证号码TEACH_DEPTVARCHAR100否否否否有院系TEACH_SEXINT1是否否否无性别TEACH_RACEVARCHAR30是否否否无民族TEACH_POLITYVARCHAR20是否否否无政治面貌TEACH_ADDRESSVARCHAR100是否否否无住址TEACH_MOBILEVARCHAR20是否否否有联系电话TEACH_COURSEVARCHAR50是否否否无所教课程TEACH_PICTRUEBLOB100是否否否无照片TEACH_REMARKVARCHAR200是否否否无备注3.一卡通账户信息表一卡通帐户信息表的一条记录代表了一张一卡通卡片,具体设计如表4-3所表4-1学生信息表43示。

4-3一卡通账户信息表名称数据类型长度(字节)是否允许为空自动增长主键外键索引说明CARD_IDINT11否否是否有一卡通编号CARD_PASSVARCHAR20否否否否有一卡通密码CARD_TIMEDATETIME-否否否否有生产日期CARD_LASTUSETIMEDATETIME-是否否否无上次使用CARD_USEDNUMINT11是否否否无使用次数CARD_AUTHORITYVARCHAR20否否否否无使用权限CARD_LOCKEDINT1否否否否无是否被锁定CARD_USEDINT1否否否否无是否被开启CARD_MEAL_BLCFLOAT8否否否否无就餐余额CARD_HW_BLCFLOAT8否否否否无热水余额CARD_BUY_BLCFLOAT8否否否否无购物余额CARD_BANK_BLCFLOAT8否否否否无就餐余额CARD_BANK_CARDCHAR18否否否否有银行卡号4.终端机信息表终端机信息表记录了系统中所有终端机的相关信息,具体结构如表4-4所示。

4-4终端机信息表名称数据类型长度(字节)是否允许为空自动增长主键外键索引说明TMNL_IDINT11否否是否有终端机编号TMNL_PASSVARCHAR20否否否否有一卡通密码TMNL_TIMEDATETIME-否否否否有生产日期TMNL_LASTUSEDATETIME-是否否否无上次使用期TMNL_AUTHORITYVARCHAR20否否否否无使用权限TMNL_TYPEINT10否否否否无终端机类型TMNL_QUENTITYFLOAT-是否否否无已刷卡量TMNL_FAILTIMEINT-是否否否无故障次数TMNL_REMARKFLOAT-是否否否无备注5.银行业务记录表银行业务信息表记录了所有的银行操作,表结构如表4-5所示。

44名称数据类型长度(字节)是否允许为空自动增长主键外键索引说明CARD_IDINT11否否是否有一卡通编号TMNL_IDINT11否否是否有终端机编号LOG_TIMEDATETIME-否否否否有刷卡日期OPRT_TYPEINT8否否否否无操作类型OPRT_RESLTVARCHAR20否否否否无操作结果OPRT_AMOUNTFLOAT-否否否否无金额OPRT_REMARKVARCHAR30是否否否无备注6.消费信息记录表消费信息记录表记录了所有一卡通的刷卡纪录,表结构如表4-6所示。

4-6消费信息信息表名称数据类型长度(字节)是否允许为空自动增长主键外键索引说明CARD_IDINT11否否是否有一卡通编号TMNL_IDINT11否否是否有终端机编号LOG_TIMEDATETIME-否否否否有刷卡日期OPRT_RESLTVARCHAR20否否否否无操作结果OPRT_AMOUNTFLOAT-否否否否无金额OPRT_REMARKVARCHAR30是否否否无备注7.医疗记录信息表医疗记录信息表记录了所有用户的就医信息,结构如表4-7所示。

4-7医疗记录信息表名称数据类型长度(字节)是否允许为空自动增长主键外键索引说明PATIENT_IDINT11否否是否有病人编号DOCTOR_IDINT11否否是否有医生编号DESEASEVARCHAR50否否否否无病名DRUGVARCHAR300否否否否无所用药物LOG_TIMEDATETIME-否否否否有日期CARD_IDINT11否否是否有一卡通编号TMNL_IDINT11否否是否有刷卡机编号OPRT_REMARKVARCHAR30是否否否无备注8.借书记录信息表借书记录信息表记录了学生和教师的借书纪录,具体结构如表4-8所示。

4-5银行业务记录信息表45名称数据类型长度(字节)是否允许为空自动增长主键外键索引说明READER_IDINT11否否是是有读者编号BOOK_ISBNVARCHAR50否否是是有书籍ISBNLOG_TIMEDATETIME-否否否否有日期TMNL_IDINT11否否是是有刷卡机编号OPRT_REMARKVARCHAR30是否否否无备注4.5.4数据表的建立由于一卡通系统的数据库查询量非常大,所以设计上也要充分考虑到这些因素,具体来说就是建立索引、视图等实体。

建立索引对数据库的查询有以下好处:1.创建唯一性索引,保证数据库表中每一行数据的唯一性。

2.大大加快数据的检索速度,这也是创建索引的最主要的原因。

3.加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。

4.在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。

5.通过使用索引,可以在查询的过程中使用优化隐藏器,提高系统的性能。

我们以一卡通信息表为例介绍表和索引的建立,在建立一卡通信息表之后,我们将其IDTIMELASTUSERTIMEUSEDMEAL_BLCHW_BLCBUY_BLCBANK_BLCBANK_CARDUSEDNUM等字段分别建立索引,以此来加快数据库的查询速度。

具体的一卡通信息表建立SQL代码如下:--CreatetablecreatetableCARD(CARD_IDINTEGERnotnull,CARD_PASSVARCHAR2(20)notnull,CARD_TIMETIMESTAMP(6),CARD_LASTUSERTIMETIMESTAMP(6),CARD_USEDNUMINTEGER,CARD_AUTHORITYVARCHAR2(20)notnull,CARD_LOCKEDINTEGERnotnull,CARD_USEDINTEGERnotnull,CARD_MEAL_BLCNUMBERnotnull,CARD_HW_BLCNUMBERnotnull,CARD_BUY_BLCNUMBERnotnull,CARD_BANK_BLCNUMBERnotnull,CARD_BANK_CARDNUMBERnotnull)4-8借书记录信息表46tablespaceSYSTEMpctfree10pctused40initrans1maxtrans255storage(initial64Kminextents1maxextentsunlimited);--Create/Recreateprimary,uniqueandforeignkeyconstraintsaltertableCARDaddconstraintKEY_IDprimarykey(CARD_ID)usingindextablespaceSYSTEMpctfree10initrans2maxtrans255storage(initial64Kminextents1maxextentsunlimited);--Create/RecreateindexescreateuniqueindexKEY_BANKBLConCARD(CARD_BANK_BLC)tablespaceSYSTEMpctfree10initrans2maxtrans255storage(initial64Kminextents1maxextentsunlimited);createuniqueindexKEY_BANKCARDonCARD(CARD_BANK_CARD)tablespaceSYSTEMpctfree10initrans2maxtrans25547storage(initial64Kminextents1maxextentsunlimited);createuniqueindexKEY_BUYBLConCARD(CARD_BUY_BLC)tablespaceSYSTEMpctfree10initrans2maxtrans255storage(initial64Kminextents1maxextentsunlimited);createuniqueindexKEY_HWBLConCARD(CARD_HW_BLC)tablespaceSYSTEMpctfree10initrans2maxtrans255storage(initial64Kminextents1maxextentsunlimited);createuniqueindexKEY_LASTUSERTIMEonCARD(CARD_LASTUSERTIME)tablespaceSYSTEMpctfree10initrans2maxtrans255storage(initial64Kminextents1maxextentsunlimited);createuniqueindexKEY_MEALBLConCARD(CARD_MEAL_BLC)tablespaceSYSTEM48pctfree10initrans2maxtrans255storage(initial64Kminextents1maxextentsunlimited);createuniqueindexKEY_TIMEonCARD(CARD_TIME)tablespaceSYSTEMpctfree10initrans2maxtrans255storage(initial64Kminextents1maxextentsunlimited);4.5.5分布式存储与查询优化我们已经通过VLAN技术将校园网络进行了虚拟局域网划分,相同类型的应用位于同一个虚拟局域网络内,所以我们的数据存储也遵照这一个划分原则,将一个类型的数据库服务器安置在这个类型的VLAN,这样提高查询效率,也有较高的安全性。

一卡通系统使用的是分布式数据库,它与集中式数据库不同,集中式数据库的查询开销主要取决于数据处理器的处理速度和系统I/O的多少,只要将查询语句作到最优就能基本将数据查询效率做到最好,但是对于分布式数据库来说,由于它的数据是分布在网络的各个站点上的,查询不可避免的会引入网络通信的开销,与集中式数据库相比,分布式数据库增加了新的查询内容,复杂性大大提高,查询方法不同,将会给查询效率和通信开销是大不一样的,通常以查询并行性和查询局部性为目标。