数据库假数据
① 求问教务系统SQL数据库 。考勤 请假 节假日之类要怎么设计数据库,(用户,用户中还有分组=部门,然后有)
1.员工信息表(包括 职务(级别),入职时间(工龄),部门等)
2.部门信息表(分组表)
3.工时总表(记录每个月的实际出勤数)(员工号,年度,1月工时,2月工时.....12月工时)
4.休假总表(记录各种假的基数,已休数,剩余数)(员工号,年度,年假基数,上年剩余,已休天数,未休天数,病假基数已休天数,未休天数,其它假已休天数)
5. 考勤明细表(员工号,考勤日期,工时数....)
6. 休假明细表(员工 号,休假日期,休假类型,休假小时数)
7. 休假类型表
8. 工作日表(只需要设置发生状态变化的,周一至周五缺省认为是工作日,周六日为休息日,如10月1日是周一,要设为非工作日,如果刚好是周六,则不需要设置)
9.用户表(包括 权限设置等)
② 数据库的并发操作分带来哪些问题
数据库事务并发带来的问题有:更新丢失、脏读、不可重复读、幻象读。假设张三办了一张招商银行卡,余额100元,分别说明上述情况。
1、更新丢失:一个事务的更新覆盖了另一个事务的更新。事务A:向银行卡存钱100元。事务B:向银行卡存钱200元。A和B同时读到银行卡的余额,分别更新余额,后提交的事务B覆盖了事务A的更新。更新丢失本质上是写操作的冲突,解决办法是一个一个地写。
2、脏读:一个事务读取了另一个事务未提交的数据。事务A:张三妻子给张三转账100元。事务B:张三查询余额。事务A转账后(还未提交),事务B查询多了100元。事务A由于某种问题,比如超时,进行回滚。事务B查询到的数据是假数据。脏读本质上是读写操作的冲突,解决办法是写完之后再读。
3、不可重复读:一个事务两次读取同一个数据,两次读取的数据不一致。事务A:张三妻子给张三转账100元。事务B:张三两次查询余额。事务B第一次查询余额,事务A还没有转账,第二次查询余额,事务A已经转账了,导致一个事务中,两次读取同一个数据,读取的数据不一致。不可重复读本质上是读写操作的冲突,解决办法是读完再写。
4、幻象读:一个事务两次读取一个范围的记录,两次读取的记录数不一致。事务A:张三妻子两次查询张三有几张银行卡。事务B:张三新办一张银行卡。事务A第一次查询银行卡数的时候,张三还没有新办银行卡,第二次查询银行卡数的时候,张三已经新办了一张银行卡,导致两次读取的银行卡数不一样。幻象读本质上是读写操作的冲突,解决办法是读完再写。