数据库课上老师提的问题,很好奇 计算机高手请进

老师这样提问的,如果两个不同地方的两个售票员在同一时间里输入同一张火车票的信息,并且两个售票员同时按下enter键是,会不会打印出两张一样的火车票呢?觉得这个问题很好奇的,请高手帮我回答一下。最好用一些计算机术语,这样吧,答案告诉你们(不会打印出的),主要是为什么呢????????
匿名用户    2009-10-10 16:35    

满意回答

访问同一资源是有一个先后顺序的,对于操唉慕作而言,有一种叫做微操作,即这次操作要么全部执行,要么全部不执行.同样对于数据库,如是打印火车票可以看作一个微操作,一个微操作进行中,其他微操作不能访问该资源(这里是打印队列最贸).所恨典狼以所谓的同时按下enter实际是不可能同时的,绝对有先后,后面的是不能访问,只有等前面的完成打印后,才能进行下一个. 通俗点说,就是一个打印开始,马上锁定数据库,等打印完之后解锁数据库.如果你理解了微观的独占可实现宏观的共享,这个问题就很易理解了

匿名用户   2009-10-10 16:50
宝宝知道提示您:回答为网友贡献,仅供参考。

为您推荐:

其他回答

当然不可能,别的数据库我不知道,但oracle肯定不会 因为在对一条数据做操作的时候,oracle会给这条数据加锁 其他用户如果想操作这个数据,会出现等待的。

匿名用户    2009-10-10 17:37

现在小型的数据库Access支持表锁,只要有人调用了这张表,别人就更新不了。而大型的数据库,SQL Server,Oracle都支持行锁的,只要有一方进行更新操作,表里的这一行就被锁了,其他人再更新只会等待前一方先完成操作再做的。如果前一方已经把票卖出去了,等行解锁后,后一方的操作是买不到这张票了。...你说同时按,怎么同时按也是有个时间差的,人就是人,万分只一秒也分前后。

全部展开 收起
匿名用户    2009-10-10 17:21

不会 !计算机可以精确到微秒!他们之间还有传输距离的时间!还有数据库有权限设计 一次只能一个人访问这个信息!还有些什么的 忘了嗨好就没用了 当时我们老师给我们讲解的是飞机的订票系统

匿名用户    2009-10-10 16:44