首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用Python和SQLite构建软考评估系统

系统简介 我们构建的计算机科学知识评估系统有两个主要目的: 数据提取和存储:首先,我们将从一个JSON文件中提取考试问题和答案,并将它们存储在一个SQLite数据库中。...数据提取和存储 我们从一个JSON文件(timu.json)中解析考试问题和答案,并将它们存储在一个SQLite数据库(.db)中。...SQLite数据库创建:我们建立与SQLite数据库的连接,并创建一个名为exam的表,用于存储考试问题、答案选项和正确答案。...数据插入:我们遍历提取的数据,将每个问题以及其答案选项和正确答案插入到SQLite数据库中。...关键功能包括: 显示问题:问题按顺序显示,同时显示相应的答案选项,以单选按钮形式呈现。 提交答案:用户选择他们的答案并提交。

15010
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    架构面试题汇总:mysql全解析(六)

    持久性: 一旦事务提交,则其结果永久保存在数据库中。即使系统崩溃,重新启动后数据库还能恢复到事务成功结束的状态。 这些属性确保了数据库在并发环境中的完整性和可靠性。...作用: 防止无效数据的插入:通过确保只能插入在另一个表中已存在的外键值,从而维护数据库的完整性。...面试题27: 解释一下MySQL中的死锁以及如何避免? 答案: 死锁是指两个或多个事务在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法向前推进。...面试题37: MVCC如何解决脏读、不可重复读和幻读问题? 答案: MVCC通过保存数据的历史版本来解决脏读、不可重复读和幻读问题。 脏读:当一个事务正在修改数据时,其他事务可能会读取到未提交的数据。...在MVCC中,通过结合间隙锁(Gap Locks)和行级锁(Row Locks)来防止其他事务在读取范围内插入新的数据,从而避免了幻读问题。

    18210

    途虎 面经,其实挺简单的!

    总体来说,B+树在范围查询和索引方面的性能更好,适用于大部分的数据库索引和文件系统索引。而B树适用于内存中的数据结构或者需要频繁进行插入和删除操作的场景。...索引列进行了隐式类型转换:如果查询条件中的索引列类型与索引列的数据类型不一致,MySQL会进行隐式类型转换。这种情况下,索引将无法使用,查询效率会降低。...综上所述,聚簇索引适用于频繁查询、范围查询较小的情况,而非聚簇索引适用于范围查询较大、插入和更新频繁的情况。在实际应用中,可以根据具体的业务需求和数据库性能要求选择合适的索引类型。...当一个事务开始时,它只能看到在该事务开始之前已经提交的数据版本。当事务进行读取操作时,数据库根据事务的时间戳选择合适的数据版本返回给事务。...总结 本次面试中,其实大部分都是八股文,主要好好准备,基本上轻松拿下。可惜这位朋友并没有准备好,导致失去这个机会。 相关面经: 16k面试中的10个问题 猫眼 面经和答案 顺丰科技面试

    20430

    MongoDB实战面试指南:常见问题一网打尽

    问题:在MongoDB中如何执行原子性操作? 答案:MongoDB中的大多数写操作(如插入、更新和删除)都是单个文档级别的原子操作。这意味着当单个文档被修改时,该修改是原子的。...答案:在MongoDB中,投影指的是在查询操作中指定返回哪些字段的过程。使用投影可以减少从数据库传输到客户端的数据量,从而提高查询性能。...答案:在MongoDB中,集合(Collection)是一组文档的容器,类似于关系数据库中的表(Table)。...索引对查询性能有显著影响,正确的索引策略可以大大提高查询效率,而错误的索引选择可能导致查询性能下降甚至无法执行查询。因此,在设计MongoDB数据库时需要根据查询模式和数据分布来选择合适的索引策略。...secondaryPreferred: 首选从次要节点读取数据,如果次要节点不可用或无法满足查询要求,则从主节点读取。这种设置在提供更高读取性能的同时保持了可用性。

    93310

    MySQL这些题目你都会吗?

    B.脏读是某一事务读取了另外一个事务未提交的数据,不可重复读是读取了其他事务提交的数据,脏读和不可重复读都可以通过事物隔离级别控制。 C.RR隔离级别,只能返回比当前事务早的提交插入、更新、删除值。...D.RR和RC隔离级别都存在幻读,无法避免。 答案:CD 解释:C.RR隔离级别,只能返回比当前事务早的提交插入、更新值和比当前事务晚的删除值。...答案:ABC 解释:D.如果表中没有主键或合适的唯一索引,也就是无法生成聚簇索引的时候,InnoDB会帮我们自动生成聚集索引,聚簇索引会使用DB_ROW_ID的值来作为主键;如果表中有主键或者合适的唯一索引...D.如果redo log file中已提交,binlog file中不存在,会将redo log中的这个提交事物回滚。 答案:ABC 解释:D.根据2PC,双1模式下,不会存在此种情况。...binlog为server层日志,redo log为引擎层日志,一个事务的提交必须写redo log和binlog,MySQL通过两阶段提交2PC(内部XA的两阶段提交)解决这一问题。

    1.1K42

    MYSQL 必考面试题10道(答案解释)

    B.脏读是某一事务读取了另外一个事务未提交的数据,不可重复读是读取了其他事务提交的数据,脏读和不可重复读都可以通过事物隔离级别控制。 C.RR隔离级别,只能返回比当前事务早的提交插入、更新、删除值。...D.RR和RC隔离级别都存在幻读,无法避免。 答案:CD 解释:C.RR隔离级别,只能返回比当前事务早的提交插入、更新值和比当前事务晚的删除值。...答案:ABC 解释:D.如果表中没有主键或合适的唯一索引,也就是无法生成聚簇索引的时候,InnoDB会帮我们自动生成聚集索引,聚簇索引会使用DB_ROW_ID的值来作为主键;如果表中有主键或者合适的唯一索引...D.如果redo log file中已提交,binlog file中不存在,会将redo log中的这个提交事物回滚。 答案:ABC 解释:D.根据2PC,双1模式下,不会存在此种情况。...binlog为server层日志,redo log为引擎层日志,一个事务的提交必须写redo log和binlog,MySQL通过两阶段提交2PC(内部XA的两阶段提交)解决这一问题。

    3.5K41

    MYSQL 那点破事!索引、SQL调优、事务、B+树、分表 ....

    大家好,我是Tom哥~ 为了便于大家查找问题,了解全貌,整理个目录,我们可以快速全局了解关于mysql数据库,面试官一般喜欢问哪些问题 接下来,我们逐条来看看每个问题及答案 MyISAM 和 InnoDB...答案:读未提交、读已提交、可重复读(mysql的默认级别,每次读取结果都一样,但是有可能产生幻读)、串行化。 Mysql有哪些类型的索引?...4、还可以使用虚拟列和联合索引来提升复杂查询的执行效率。 官方为什么建议采用自增id 作为主键? 答案:自增id是连续的,插入过程也是顺序的,总是插入在最后,减少了页分裂,有效减少数据的移动。...答案:ACID。 原子性。一个事务中的操作要么全部成功,要么全部失败。 持久性。永久保存在数据库中。 一致性。总是从一个一致性的状态转换到另一个一致性的状态 隔离性。...答案: 1、流水任务,最终一致性,前提是接口要支持幂等性 2、事务消息 3、二阶段提交 4、三阶段提交 5、TCC 6、Seata 框架 7、更多内容,参考 如何解决分布式事务 日常工作中,MySQL

    66010

    JSP 防止网页刷新重复提交数据

    在form中加一个hidden域,显示该令  牌的值,form提交后重新生成一个新的令牌,将用户提交的令牌和session  中的令牌比较,如相同则是重复提交 3 在你的服务器端控件的代码中使用Response.Redirect...,或者“怎样才能防止用户点击后退按钮返回以前浏览过的页面?”在ASP论坛上,这个问题也是问得最多的问题之一。遗憾的是,答案非常简单:我们无法禁用浏览器的后退按钮。        ...因为在默认情况下,用户提交表单之后可以通过后退按钮返回表单页面(而不是使用“编辑”按钮!),然后再次编辑并提交表单向数据库插入新的记录。这是我们不愿看到的。        ...经过一番仔细的寻寻觅觅之后,我发现仍旧无法找出真正能够完全禁用浏览器后退按钮的办法。所有这里介绍的方法都能够在不同程度上、以不同的方式禁止用户返回前一页面,但它们都有各自的局限。...,我是当用户提交第一次提交第一个页面时,把插入数据库中的记录的自增长id号放到session里,当用户从第二个页面返回到第一个页面再一次提交该页面时,我就用session里的值去数据库查,如果有这个id

    11.6K20

    mysql数据库面试题目及答案_java面试数据库常见问题

    面试题(含答案) 几率大的现场手撕算法面试题(含答案) 临时抱佛脚必备系列(含答案) 注:知识还在积累中,不能保证每个回答都满足各种等级的高手们,若发现有问题的话,本人会尽快完善。...事务隔离级别,每个级别会引发什么问题,MySQL默认是哪个级别? 脏读是指在一个事务处理过程中读取了另一个事务未提交的数据。...事务的并发问题 事务的并发问题 1、脏读:事务A读取了事务B更新的数据,然后B回滚操作,那么A读取到的数据是脏数据 2、不可重复读:事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,...事务的隔离级别 * 读未提交:另一个事务修改了数据,但尚未提交,而本事务中的SELECT会读到这些未被提交的数据脏读 * 不可重复读:事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中...当事务已经被提交之后,就无法再次回滚了回滚日志作用: 1)能够在发生错误或者用户执行 ROLLBACK 时提供回滚相关的信息 2) 在整个系统发生崩溃、数据库进程直接被杀死后,当用户再次启动数据库进程时

    92030

    HuggingFists-低代码玩转LLM-腾讯云RAG(1)

    点击“新建账号”按钮,选择“腾讯混元”账号类型,填写“用户名”、“访问token”以及”App Id”信息,创建混元模型账号。所有相关信息在申请“腾讯混元”许可时都可以在腾讯云获得。...进入HuggingFists数据源管理,选择数据库菜单。 2. 点击添加数据源按钮,选择创建腾讯向量库数据源类型 在数据源地址中添加腾讯向量库的访问地址,完成腾讯向量库的数据源添加。...点击“新建表”按钮;添加字段,必须为表指定一个id字段和一个vector字段。需要为表创建一个vector类型的向量字段,向量字段的长度设置为1024。...配置完流程后,我们运行流程,数据会被插入到向量库中,下面我们来查询看看输出结果如何。 向量化数据读取 向量化数据读取流程由三个算子组成,用于测试是否能准确的从向量库中检索到与问题相关的文本块。...在上一次实验中,用于回答问题的那段文本排在了查询结果的第一位。可以直接提交给大语言模型进行问题的回答。但是本次的查询,数据排在了结果的第5位。存在随着向量库数据的累积,其排序会更靠后的可能。

    56410

    Spring的声明式事务管理

    在本例中,数据库处理事务逻辑。 在 LUW 中,这是一个不错的单个数据库维护操作。但是如果需要在向数据库插入交易订单的同时更新帐户余款呢?如清单 2 所示: 清单 2....正确答案是 B。交易订单会被正确地插入到数据库中,即使只读标志被设置为 true,且事务传播模式被设置为 SUPPORTS。但这是如何做到的呢?...启动一个事务来执行只读操作会增加处理线程的开销,并会导致数据库发生共享读取锁定(具体取决于使用的数据库类型和设置的隔离级别)。...答案出乎意料:根据受控异常(不管是在 Spring Framework 中还是在 EJB 中),事务会提交它还未提交的所有工作。...4、Read Uncommitted:保证了读取过程中不会读取到非法数据。隔离级别在于处理多事务的并发问题。 我们知道并行可以提高数据库的吞吐量和效率,但是并不是所有的并发事务都可以并发运行。

    97050

    浅谈Spring的事务隔离级别与传播行为

    浅谈Spring的事务隔离级别与传播性 这篇文章以一个问题开始,如果你知道答案的话就可以跳过不看啦@(o・ェ・)@ Q:在一个批量任务执行的过程中,调用多个子任务时,如果有一些子任务发生异常,只是回滚那些出现异常的任务...0,无法扣减 不可重复读和脏读的区别是:脏读读取到的是未提交的数据,而不可重复读读到的确实已经提交的数据,但是违反了数据库事务一致性的要求。...0,无法扣减 REPEATABLE READ虽然解决了不可重复读问题,但是他又会带来幻读问题,幻读是指,在一个事务中,第一次查询某条记录,发现没有,但是,当试图更新这条不存在的记录时,竟然能成功,并且...随后,事务A在第3步插入了一条id=99的记录并提交。...回到最开始的那个问题,看完这篇文章是不是有答案了呢?

    98850

    mysql和oracle的sql区别有什么_java和oracle的关系

    其中varchar在mysql中,必须给长度例如varchar(10)不然插入的时候出错。...2、主键: mysql一般使用自动增长类型,在创建表时只要指定表的主键auto increment,插入记录时,不需要再指定该记录的主键值,mysql将自动增长。...默认不自动提交,需要手动提交,需要在写commit指令或点击commit按钮。...,但可以在表最后插入数据;session更新数据时,要加上排它锁,其他session无法访问数据。...12、保存数据的持久性: mysql默认提交sql语句,但如果更新过程中出现db或主机重启的问题,也许会丢失数据; oracle把提交的sql操作先写入了在线联机日志文件中,保持到了硬盘上,可以随时恢复

    1.6K10

    Mysql面试题目

    :串行事物 Read Uncommitted(读取未提交内容) 在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。...读取未提交的数据,也被称之为脏读(Dirty Read)。 Read Committed(读取提交内容) 这是大多数数据库系统的默认隔离级别(但不是MySQL默认的)。...3、幻像读(phantom read):在同一事务中,同一查询多次进行时候,由于其他插入操作(insert)的事务提交,导致每次返回不同的结果集。...答案:拆成子表 理由:可以提高其他字段查询和更新的效率,因为每页保存的行数越多,效率会越高。大字段X更新率低,单行读取时效率影响不大。但如果读取的行数越多,影响会越大。因此选择拆成子表更好。...实现水平扩展问题,涉及到数据的拆分问题 3>.提高数据库服务的性能、可靠性、可用性 4>.实现技术不难,开发成本和维护成本可控 5>.测试成本高 6>.无法支持分布式事务 7>.数据拆分后数据合并难 8

    1.1K30

    【MySQL】我这样分析MySQL中的事务,面试官对我刮目相看!!

    要用极短的时间思考一下,面试官究竟想要得到什么答案。 对于第一个问题:说说什么是事务?就只是让你简单的说说事务的基本概念吗?基本概念相信是个学过数据库的小学生都会,面试官为什么会问你这个问题呢?...例如我们在使用JDBC操作数据库时,在提交事务方法后,提示用户事务操作完成,当我们程序执行完成直到看到提示后,就可以认定事务以及正确提交,即使这时候数据库出现了问题,也必须要将我们的事务完全执行完成,否则就会造成我们看到提示事务处理完毕...例如:在事务T1中,小明为小刚转账100元,在转账的过程中,事务未提交或者未回滚时,此时事务T2读取到了事务T1未提交的内容,也就是说在事务T2中读取到了小明900元,小刚1100元的记录。...例如,在事务T1中执行小明为小刚转账100元的操作,在事务未提交之前,在事务T2中读取的数据还是小明为1000元,小刚为1000元。...例如,在事务T1中插入两条分别为小明和小刚的数据,在事务提交之前,事务T2中读取的数据记录为10,随后事务T1提交,则在事务T2中读取的记录为12,如下所示。 ?

    42840

    Java学习笔记-全栈-Java基础-13-JavaWeb基础

    ,在页面显示所有user 来到添加页面 user useradd get 从数据库中获取必要的提示数据(比如可以填写的部门)在页面展示 添加user user 重定向:userlist post 提交后从...---- read uncommitted --> 读取了未提交的(数据)(oracle默认):一个事务读取了另一个事务未提交的数据,这就是“脏”(引用于汉语中的“贪脏了不属于你的东西”) ---- read...repeatable read用于锁定修改操作(Update),但是无法锁定插入操作(Insert) 当A进行重复读的时候,若在重复读期间,第三方进行了插入操作(这是被允许的),此时就出现了“幻觉”。...因此: commit()才是事务的结束,execute和statement不是。 一般来说,通过try-catch,在catch中回滚。...mysql中对应的相关类型: TINYBLOB BLOB MEDIUMBLOB LONGBLOB 3.5 数据库连接池 原理 "池"这个概念,不应该陌生。

    39820

    Oracle事务和锁机制

    2.事务相关概念   1)事务的提交和回滚:COMMIT/ROLLBACK   2)事务的开始和结束     开始事务:连接到数据库,执行DML、DCL、DDL语句     结束事务: 1....(这里可能也有自治事务) 持久性durability:事务提交了,那么状态就是永久的 所谓死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去...关于数据库死锁的检查方法 一、数据库死锁的现象 程序在执行的过程中,点击确定或保存按钮,程序没有响应,也没有出现报错。...经常在Oracle的使用过程中碰到这个问题,所以也总结了一点解决方法。   数据库是一个多用户使用的共享资源,比如一个用户表t_user,两个浏览器前面的人登录了同个一个账号,把电话号码改了。...本次事务提交之前(事务提交时会释放事务过程中的锁),外界无法修改这些记录。

    38620

    面试分布式事务必问知识点!

    例如我们在使用JDBC操作数据库时,在提交事务方法后,提示用户事务操作完成,当我们程序执行完成直到看到提示后,就可以认定事务以及正确提交,即使这时候数据库出现了问题,也必须要将我们的事务完全执行完成,否则就会造成我们看到提示事务处理完毕...例如:在事务T1中,小明为小刚转账100元,在转账的过程中,事务未提交或者未回滚时,此时事务T2读取到了事务T1未提交的内容,也就是说在事务T2中读取到了小明900元,小刚1100元的记录。...例如,在事务T1中执行小明为小刚转账100元的操作,在事务未提交之前,在事务T2中读取的数据还是小明为1000元,小刚为1000元。...幻读问题 一个事务按相同的查询条件重新读取以前检索过的数据,却发现其他事务插入了满足其查询条件的新数据,这种现象就称为“幻读”。 事务t2读取到了事务t1体提交的新增、删除数据,不符合隔离性。...例如,在事务T1中插入两条分别为小明和小刚的数据,在事务提交之前,事务T2中读取的数据记录为10,随后事务T1提交,则在事务T2中读取的记录为12,如下所示。

    37010

    MySQL 数据库入门到精通(基础篇①)

    字符串类型  1.3 日期时间类型  九、DDL 表操作 修改删除 9.1添加字段 9.2修改数据类型   9.3删除字段 9.4修改表名 9.5删除表操作 注意:在删除表时,表中的全部数据也会被删除...这就无法保证数据的一致性和完整性。 因此在创建表的时候,我们需要去进行外检约束。语法如下: 执行外检约束 SQL 之后 ,钥匙变蓝色。就说明已经是外键了。...那么就会出现大问题。 因此我们引出了事务。 若抛出异常,则会进行回滚。从而来保证数据的完整性和一致性。 对于mysql数据库,事务是默认自动提交。...持久性:事务一旦提交或回滚,对数据库的改变都是永久的(存储在磁盘(文件中)) 五十四、 并发事务问题 脏读: B事务读取到了A事务还没有提交的数据 A事务 查询了 id = 1 的数据。...在一个事务中查询的结果不一样。就是不可重复读 将事务隔离级别修改为 Repeatable Read 如下图。会发现解决了不可重复读问题。 变得可重复读了。最后当我们提交事务之后。

    21510
    领券