[{"data":1,"prerenderedAt":3989},["ShallowReactive",2],{"note:cs\u002Fdb\u002Fpastpapers\u002F25-26cs":3,"site-search-catalogue":3988},{"id":4,"title":5,"body":6,"description":3981,"extension":3982,"meta":3983,"navigation":3732,"path":3984,"seo":3985,"stem":3986,"__hash__":3987},"notes\u002Fsource\u002Fcs\u002Fdb\u002Fpastpapers\u002F25-26cs.md","2025-2026-2 计科数据库系统期末",{"type":7,"value":8,"toc":3929},"minimark",[9,14,41,93,96,101,361,363,367,411,413,417,428,430,434,437,440,443,446,449,457,460,472,474,478,481,499,502,513,515,519,522,525,528,531,534,537,540,542,545,548,553,555,566,569,572,576,578,589,591,594,598,600,611,614,617,621,623,634,636,687,691,693,704,706,709,713,715,726,728,731,735,737,748,751,754,758,760,771,774,777,781,783,794,796,799,803,805,816,818,821,825,827,838,840,843,847,849,860,862,865,869,871,882,884,887,891,893,904,906,909,913,915,923,925,928,930,933,936,945,948,951,954,961,964,967,970,977,980,983,986,994,997,1000,1003,1011,1014,1017,1019,1022,1025,1027,1030,1033,1604,1607,1609,1611,1634,1669,1672,1675,1677,1679,1682,1728,1730,1733,1736,1738,1740,1742,1745,1747,1750,1753,2119,2181,2184,2186,2188,2190,2707,2710,2713,2715,2717,2720,2748,2751,2754,2756,2758,2760,2828,2831,2834,2836,2838,2840,2897,2900,2902,2905,2908,2910,2922,2925,2927,2929,2932,2949,2952,3011,3014,3023,3031,3040,3047,3055,3063,3066,3069,3071,3073,3078,3081,3084,3089,3092,3095,3098,3103,3106,3109,3112,3117,3120,3123,3125,3130,3133,3136,3138,3143,3146,3149,3152,3155,3160,3163,3166,3169,3171,3174,3177,3179,3181,3184,3207,3210,3668,3671,3673,3676,3679,3681,3683,3685,3687,3689,3691,3693,3695,3698,3867,3870,3884,3887,3925],[10,11,13],"h1",{"id":12},"西北大学-2025-2026-学年第-2-学期本科考试出题专用纸","西北大学 2025 —— 2026 学年第 2 学期本科考试出题专用纸",[15,16,17,21,22,25,26,28,29,32,33,36,37,40],"p",{},[18,19,20],"strong",{},"考试科目："," 数据库系统\n",[18,23,24],{},"本卷为："," 闭卷\n",[18,27,24],{}," A 卷\n",[18,30,31],{},"印数："," 110\n",[18,34,35],{},"出题院系："," 计算机学院\n",[18,38,39],{},"出题日期："," 2026 年 4 月 20 日",[42,43,44,72],"table",{},[45,46,47],"thead",{},[48,49,50,54,57,60,63,66,69],"tr",{},[51,52,53],"th",{},"题号",[51,55,56],{},"一",[51,58,59],{},"二",[51,61,62],{},"三",[51,64,65],{},"四",[51,67,68],{},"五",[51,70,71],{},"六",[73,74,75],"tbody",{},[48,76,77,81,83,85,87,89,91],{},[78,79,80],"td",{},"得分",[78,82],{},[78,84],{},[78,86],{},[78,88],{},[78,90],{},[78,92],{},[94,95],"hr",{},[97,98,100],"h2",{"id":99},"一选择题1-分题-15-题-15-分","一、选择题（1 分\u002F题 * 15 题 = 15 分）",[102,103,104,123,140,157,174,191,208,225,242,259,276,293,310,327,344],"ol",{},[105,106,107,108,111,112,114,115,117,118,120,121],"li",{},"数据库（DB）、数据库管理系统（DBMS）和数据库系统（DBS）三者之间的关系是（ ）",[109,110],"br",{},"A. DB 包含 DBMS 和 DBS",[109,113],{},"B. DBS 包含 DB 和 DBMS",[109,116],{},"C. DBMS 包含 DB 和 DBS",[109,119],{},"D. DBS 就是 DBMS",[109,122],{},[105,124,125,126,128,129,131,132,134,135,137,138],{},"数据独立性是指（ ）",[109,127],{},"A. 数据之间相互独立",[109,130],{},"B. 应用程序与数据库的数据结构相互独立",[109,133],{},"C. 数据存储与数据逻辑相互独立",[109,136],{},"D. 数据与操作系统相互独立",[109,139],{},[105,141,142,143,145,146,148,149,151,152,154,155],{},"关系数据库中，元组对应传统文件中的（ ）",[109,144],{},"A. 记录",[109,147],{},"B. 字段",[109,150],{},"C. 文件",[109,153],{},"D. 数据项",[109,156],{},[105,158,159,160,162,163,165,166,168,169,171,172],{},"关系代数中，从关系中取出满足条件的元组的操作称为（ ）",[109,161],{},"A. 投影",[109,164],{},"B. 选择",[109,167],{},"C. 连接",[109,170],{},"D. 除",[109,173],{},[105,175,176,177,179,180,182,183,185,186,188,189],{},"SQL 语言中，用于删除表结构的命令是（ ）",[109,178],{},"A. DELETE",[109,181],{},"B. DROP",[109,184],{},"C. CLEAR",[109,187],{},"D. REMOVE",[109,190],{},[105,192,193,194,196,197,199,200,202,203,205,206],{},"视图创建完成后，数据字典中存放的是（ ）",[109,195],{},"A. 查询语句",[109,198],{},"B. 查询结果",[109,201],{},"C. 视图所包含的数据",[109,204],{},"D. 视图所依赖的基本表",[109,207],{},[105,209,210,211,213,214,216,217,219,220,222,223],{},"数据库触发器的主要作用是（ ）。",[109,212],{},"A. 优化查询执行计划",[109,215],{},"B. 提高数据插入速度",[109,218],{},"C. 实现用户权限管理",[109,221],{},"D. 自动维护数据完整性规则",[109,224],{},[105,226,227,228,230,231,233,234,236,237,239,240],{},"将 E-R 图转换为关系模型，属于数据库设计的（ ）",[109,229],{},"A. 需求分析",[109,232],{},"B. 概念设计",[109,235],{},"C. 逻辑设计",[109,238],{},"D. 物理设计",[109,241],{},[105,243,244,245,247,248,250,251,253,254,256,257],{},"若一个关系模式 R 属于 1NF，且它的每一个非主属性都完全函数依赖于主键，则 R 属于（ ）",[109,246],{},"A. 1NF",[109,249],{},"B. 2NF",[109,252],{},"C. 3NF",[109,255],{},"D. BCNF",[109,258],{},[105,260,261,262,264,265,267,268,270,271,273,274],{},"在数据库中，关于游标的描述，错误的是（ ）",[109,263],{},"A. 游标可以对查询结果集进行逐行处理",[109,266],{},"B. 使用游标通常需要经历声明、打开、读取、关闭、释放几个步骤",[109,269],{},"C. 游标常用于存储过程中处理复杂的逐行逻辑",[109,272],{},"D. 游标能提高大数据量批量操作的执行效率",[109,275],{},[105,277,278,279,281,282,284,285,287,288,290,291],{},"数据库中，数据的正确性、有效性和相容性称为（ ）",[109,280],{},"A. 安全性",[109,283],{},"B. 完整性",[109,286],{},"C. 并发控制",[109,289],{},"D. 恢复",[109,292],{},[105,294,295,296,298,299,301,302,304,305,307,308],{},"事务的原子性是指（ ）",[109,297],{},"A. 事务要么全做，要么全不做",[109,300],{},"B. 事务执行后数据库永远一致",[109,303],{},"C. 事务之间相互隔离",[109,306],{},"D. 事务提交后结果永久有效",[109,309],{},[105,311,312,313,315,316,318,319,321,322,324,325],{},"数据库中，“读脏数据”是由（ ）引起的",[109,314],{},"A. 事务未提交就被其他事务读取",[109,317],{},"B. 不可重复读",[109,320],{},"C. 幻影读",[109,323],{},"D. 死锁",[109,326],{},[105,328,329,330,332,333,335,336,338,339,341,342],{},"解决并发操作带来的数据不一致问题，普遍采用（ ）",[109,331],{},"A. 封锁机制",[109,334],{},"B. 存取控制",[109,337],{},"C. 日志文件",[109,340],{},"D. 备份恢复",[109,343],{},[105,345,346,347,349,350,352,353,355,356,358,359],{},"在关系代数优化中，下列策略不正确的是（ ）",[109,348],{},"A. 尽可能早地执行选择运算",[109,351],{},"\nB. 尽可能早地执行投影运算",[109,354],{},"\nC. 把选择与笛卡尔积结合转换为等值连接",[109,357],{},"\nD. 先做笛卡尔积，再做选择运算",[109,360],{},[94,362],{},[97,364,366],{"id":365},"二填空题2-分空-10-空-20-分","二、填空题（2 分\u002F空 * 10 空 = 20 分）",[102,368,369,379,386,394,402],{},[105,370,371,372,375,376,378],{},"建立冗余数据的方式有 ",[18,373,374],{},"__"," 和 ",[18,377,374],{},"。",[105,380,381,382,375,384,378],{},"数据转储的方法有 ",[18,383,374],{},[18,385,374],{},[105,387,388,389,375,391,378],{},"查询优化包含两类，有 ",[18,390,374],{},[18,392,393],{},"__*",[105,395,396,397,399,400,378],{},"游标是系统为用户开设的一个 ",[18,398,374],{},"，用来存放 SQL 语句的 ",[18,401,374],{},[105,403,404,405,407,408,410],{},"数据库工作单元与源程序工作单元之间的通信方式有 ",[18,406,374],{},"、",[18,409,374],{}," 和游标。",[94,412],{},[97,414,416],{"id":415},"三简答题5-分题-3-题-15-分","三、简答题（5 分\u002F题 * 3 题 = 15 分）",[102,418,419,422,425],{},[105,420,421],{},"将 1NF 的函数关系逐步分解为 BCNF，说明每一步消除了什么类型的函数依赖。",[105,423,424],{},"解释共享锁和排他锁的含义，并给出其相容矩阵。",[105,426,427],{},"简述数据库故障的主要分类及各类故障的成因与恢复方式。",[94,429],{},[97,431,433],{"id":432},"四关系代数及-sql-语句4-分题-5-题-20-分","四、关系代数及 SQL 语句（4 分\u002F题 * 5 题 = 20 分）",[15,435,436],{},"有如下三个关系：",[15,438,439],{},"供应商表 Supplier（供应商编号 Sno，供应商名称 Sname，所在城市 City）",[15,441,442],{},"零件表 Part（零件编号 Pno，零件名称 Pname，零件规格 Spec）",[15,444,445],{},"供应表 Supply（供应商编号 Sno，零件编号 Pno，供应数量 Qty）",[15,447,448],{},"写出下列两个问题的关系代数表达式：",[102,450,451,454],{},[105,452,453],{},"查询所有位于“西安”的供应商名称和供应商编号。",[105,455,456],{},"查询供应了 P1 零件的供应商名称、所在城市及供应数量。",[15,458,459],{},"用 SQL 语句回答下列三个问题：",[102,461,463,466,469],{"start":462},3,[105,464,465],{},"查询供应商 S1 供应的零件总数（统计字段命名为 Total_Qty）。",[105,467,468],{},"查询供应数量大于 100 的 P2 零件的供应商名称、零件规格及供应数量。",[105,470,471],{},"查询没有供应零件 P3 的供应商信息。",[94,473],{},[97,475,477],{"id":476},"五数据库设计共-20-分","五、数据库设计（共 20 分）",[15,479,480],{},"某高校拟开发教学管理信息系统，用于管理学生、专业、课程、教师、学院等核心业务对象，系统需满足以下业务需求：",[482,483,484,487,490,493,496],"ul",{},[105,485,486],{},"学生与专业：每个学生主修一个专业，一个专业可招收多名学生；学生需选修多门课程，每门课程可被多名学生选修，需记录学生每门课程的选修成绩。",[105,488,489],{},"专业与学院：每个学院可设置多个专业，每个专业仅隶属于一个学院。",[105,491,492],{},"课程与学院：每门课程由一个学院开设，一个学院可开设多门课程。",[105,494,495],{},"课程与教师：一门课程可由多名教师讲授，一名教师可讲授多门课程，需记录每门课程的授课教室与课时信息。",[105,497,498],{},"教师与学院：每名教师隶属于一个学院，一个学院可拥有多名教师。",[15,500,501],{},"题目：",[102,503,504,507,510],{},[105,505,506],{},"请根据上述业务需求，完成该系统的概念结构设计，绘制对应的 E-R 图，要求标注所有实体型、联系型；标注每个联系的类型（1:1、1:n、m:n）；标注联系的属性（如成绩、教室、课时）。（6 分）",[105,508,509],{},"请将该 ER 图转换为关系数据库的关系模式，要求标注每个关系模式的主键和外键。（7 分）",[105,511,512],{},"指出上述关系模式分别为第几范式，为什么。（7 分）",[94,514],{},[97,516,518],{"id":517},"六sql-编程共-10-分","六、SQL 编程（共 10 分）",[15,520,521],{},"假设存在一个员工信息表 Employees（emp_id, emp_name, dept_id, salary），请编写一个 SQL 存储过程，要求如下：",[15,523,524],{},"存储过程名称：proc_get_employee_name;",[15,526,527],{},"输入参数：in_emp_id INT（员工 ID）；",[15,529,530],{},"输出参数：out_emp_name VARCHAR(50)（员工姓名）；",[15,532,533],{},"功能要求：",[15,535,536],{},"若输入的员工 ID 存在，将该员工的姓名赋值给输出参数；",[15,538,539],{},"若输入的员工 ID 不存在或为 NULL，输出参数赋值为“无此员工”。",[94,541],{},[10,543,544],{"id":544},"数据库系统概论题目答案与解析",[97,546,100],{"id":547},"一选择题1-分题-15-题-15-分-1",[549,550,552],"h3",{"id":551},"_1-题目","1. 题目",[15,554,107],{},[15,556,111,557,559,560,562,563,565],{},[109,558],{},"\nB. DBS 包含 DB 和 DBMS",[109,561],{},"\nC. DBMS 包含 DB 和 DBS",[109,564],{},"\nD. DBS 就是 DBMS",[15,567,568],{},"答案：B",[15,570,571],{},"解析：\n数据库系统 DBS 通常由数据库 DB、数据库管理系统 DBMS、应用程序和数据库管理员等组成。因此 DBS 包含 DB 和 DBMS。",[549,573,575],{"id":574},"_2-题目","2. 题目",[15,577,125],{},[15,579,128,580,582,583,585,586,588],{},[109,581],{},"\nB. 应用程序与数据库的数据结构相互独立",[109,584],{},"\nC. 数据存储与数据逻辑相互独立",[109,587],{},"\nD. 数据与操作系统相互独立",[15,590,568],{},[15,592,593],{},"解析：\n数据独立性是指应用程序与数据库中数据的逻辑结构、物理存储结构之间具有相对独立性。教材口径中包括逻辑独立性和物理独立性。",[549,595,597],{"id":596},"_3-题目","3. 题目",[15,599,142],{},[15,601,145,602,604,605,607,608,610],{},[109,603],{},"\nB. 字段",[109,606],{},"\nC. 文件",[109,609],{},"\nD. 数据项",[15,612,613],{},"答案：A",[15,615,616],{},"解析：\n关系中的一个元组对应传统文件中的一条记录；属性对应字段。",[549,618,620],{"id":619},"_4-题目","4. 题目",[15,622,159],{},[15,624,162,625,627,628,630,631,633],{},[109,626],{},"\nB. 选择",[109,629],{},"\nC. 连接",[109,632],{},"\nD. 除",[15,635,568],{},[15,637,638,639,378],{},"解析：\n选择运算是从关系中选出满足给定条件的元组，记作 ",[640,641,644,667],"span",{"className":642},[643],"katex",[640,645,648],{"className":646},[647],"katex-mathml",[649,650,652],"math",{"xmlns":651},"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML",[653,654,655,662],"semantics",{},[656,657,658],"mrow",{},[659,660,661],"mi",{},"σ",[663,664,666],"annotation",{"encoding":665},"application\u002Fx-tex","\\sigma",[640,668,672],{"className":669,"ariaHidden":671},[670],"katex-html","true",[640,673,676,681],{"className":674},[675],"base",[640,677],{"className":678,"style":680},[679],"strut","height:0.4306em;",[640,682,661],{"className":683,"style":686},[684,685],"mord","mathnormal","margin-right:0.0359em;",[549,688,690],{"id":689},"_5-题目","5. 题目",[15,692,176],{},[15,694,179,695,697,698,700,701,703],{},[109,696],{},"\nB. DROP",[109,699],{},"\nC. CLEAR",[109,702],{},"\nD. REMOVE",[15,705,568],{},[15,707,708],{},"解析：\nDROP TABLE 用于删除基本表的定义及其数据；DELETE 只删除表中的数据，不删除表结构。",[549,710,712],{"id":711},"_6-题目","6. 题目",[15,714,193],{},[15,716,196,717,719,720,722,723,725],{},[109,718],{},"\nB. 查询结果",[109,721],{},"\nC. 视图所包含的数据",[109,724],{},"\nD. 视图所依赖的基本表",[15,727,613],{},[15,729,730],{},"解析：\n视图是虚表。数据库中只保存视图的定义，即查询语句，不保存视图对应的查询结果。",[549,732,734],{"id":733},"_7-题目","7. 题目",[15,736,210],{},[15,738,213,739,741,742,744,745,747],{},[109,740],{},"\nB. 提高数据插入速度",[109,743],{},"\nC. 实现用户权限管理",[109,746],{},"\nD. 自动维护数据完整性规则",[15,749,750],{},"答案：D",[15,752,753],{},"解析：\n触发器可在插入、删除、修改数据时自动执行，常用于实现复杂的完整性约束和业务规则。",[549,755,757],{"id":756},"_8-题目","8. 题目",[15,759,227],{},[15,761,230,762,764,765,767,768,770],{},[109,763],{},"\nB. 概念设计",[109,766],{},"\nC. 逻辑设计",[109,769],{},"\nD. 物理设计",[15,772,773],{},"答案：C",[15,775,776],{},"解析：\nE-R 图属于概念结构设计成果，将 E-R 图转换为关系模式属于逻辑结构设计。",[549,778,780],{"id":779},"_9-题目","9. 题目",[15,782,244],{},[15,784,247,785,787,788,790,791,793],{},[109,786],{},"\nB. 2NF",[109,789],{},"\nC. 3NF",[109,792],{},"\nD. BCNF",[15,795,568],{},[15,797,798],{},"解析：\n2NF 的要求是在 1NF 基础上，每一个非主属性都完全函数依赖于任何一个候选码，消除非主属性对码的部分函数依赖。",[549,800,802],{"id":801},"_10-题目","10. 题目",[15,804,261],{},[15,806,264,807,809,810,812,813,815],{},[109,808],{},"\nB. 使用游标通常需要经历声明、打开、读取、关闭、释放几个步骤",[109,811],{},"\nC. 游标常用于存储过程中处理复杂的逐行逻辑",[109,814],{},"\nD. 游标能提高大数据量批量操作的执行效率",[15,817,750],{},[15,819,820],{},"解析：\n游标适合逐行处理复杂逻辑，但通常效率低于集合操作。大数据量批量操作一般不应优先使用游标。",[549,822,824],{"id":823},"_11-题目","11. 题目",[15,826,278],{},[15,828,281,829,831,832,834,835,837],{},[109,830],{},"\nB. 完整性",[109,833],{},"\nC. 并发控制",[109,836],{},"\nD. 恢复",[15,839,568],{},[15,841,842],{},"解析：\n数据库完整性是指数据的正确性、有效性和相容性。",[549,844,846],{"id":845},"_12-题目","12. 题目",[15,848,295],{},[15,850,298,851,853,854,856,857,859],{},[109,852],{},"\nB. 事务执行后数据库永远一致",[109,855],{},"\nC. 事务之间相互隔离",[109,858],{},"\nD. 事务提交后结果永久有效",[15,861,613],{},[15,863,864],{},"解析：\n原子性要求事务中的操作要么全部完成，要么全部不做。",[549,866,868],{"id":867},"_13-题目","13. 题目",[15,870,312],{},[15,872,315,873,875,876,878,879,881],{},[109,874],{},"\nB. 不可重复读",[109,877],{},"\nC. 幻影读",[109,880],{},"\nD. 死锁",[15,883,613],{},[15,885,886],{},"解析：\n读脏数据是指一个事务读取了另一个事务尚未提交的数据。",[549,888,890],{"id":889},"_14-题目","14. 题目",[15,892,329],{},[15,894,332,895,897,898,900,901,903],{},[109,896],{},"\nB. 存取控制",[109,899],{},"\nC. 日志文件",[109,902],{},"\nD. 备份恢复",[15,905,613],{},[15,907,908],{},"解析：\n并发控制中普遍采用封锁机制来保证事务调度的正确性，防止数据不一致。",[549,910,912],{"id":911},"_15-题目","15. 题目",[15,914,346],{},[15,916,349,917,352,919,355,921,358],{},[109,918],{},[109,920],{},[109,922],{},[15,924,750],{},[15,926,927],{},"解析：\n关系代数优化通常应尽早执行选择和投影，减少中间结果规模。先做笛卡尔积会产生大量无用中间结果，因此不正确。",[94,929],{},[97,931,366],{"id":932},"二填空题2-分空-10-空-20-分-1",[549,934,552],{"id":935},"_1-题目-1",[15,937,938,939,942,943,378],{},"建立冗余数据的方式有 *",[18,940,941],{},"*__**"," 和 *",[18,944,941],{},[15,946,947],{},"答案：\n数据转储；登记日志文件",[15,949,950],{},"解析：\n数据库恢复的基本原理是利用冗余数据。建立冗余数据最常用的技术是数据转储和登记日志文件。",[549,952,575],{"id":953},"_2-题目-1",[15,955,956,957,942,959,378],{},"数据转储的方法有 *",[18,958,941],{},[18,960,941],{},[15,962,963],{},"答案：\n静态转储；动态转储",[15,965,966],{},"解析：\n按转储期间是否允许事务运行，可分为静态转储和动态转储。补充：若按转储范围划分，也可分为海量转储和增量转储。",[549,968,597],{"id":969},"_3-题目-1",[15,971,972,973,942,975,378],{},"查询优化包含两类，有 *",[18,974,941],{},[18,976,941],{},[15,978,979],{},"答案：\n代数优化；物理优化",[15,981,982],{},"解析：\n查询优化通常包括代数优化和物理优化。代数优化主要改变查询语句中操作的次序和组合；物理优化主要选择合适的存取路径和执行算法。",[549,984,620],{"id":985},"_4-题目-1",[15,987,988,989,991,992,378],{},"游标是系统为用户开设的一个 *",[18,990,941],{},"，用来存放 SQL 语句的 *",[18,993,941],{},[15,995,996],{},"答案：\n数据缓冲区；执行结果",[15,998,999],{},"解析：\n游标用于处理 SQL 查询结果集。它相当于系统为用户开设的数据缓冲区，用来存放 SQL 语句的执行结果。",[549,1001,690],{"id":1002},"_5-题目-1",[15,1004,1005,1006,1008,1009,410],{},"数据库工作单元与源程序工作单元之间的通信方式有 *",[18,1007,941],{},"、*",[18,1010,941],{},[15,1012,1013],{},"答案：\nSQL 通信区；主变量",[15,1015,1016],{},"解析：\n嵌入式 SQL 中，数据库工作单元和源程序工作单元之间主要通过 SQL 通信区、主变量和游标进行通信。",[94,1018],{},[97,1020,416],{"id":1021},"三简答题5-分题-3-题-15-分-1",[549,1023,552],{"id":1024},"_1-题目-2",[15,1026,421],{},[15,1028,1029],{},"答案与解析：",[15,1031,1032],{},"从 1NF 到 BCNF 的规范化过程如下：",[102,1034,1035,1253,1481],{},[105,1036,1037,1038,1040,1041,1043,1044,1046,1047,1109,1110,1163,1165,1166,1194,1195,1223,1224,1252],{},"1NF → 2NF",[109,1039],{},"要求：\n在 1NF 的基础上，每一个非主属性都完全函数依赖于任何一个候选码。",[109,1042],{},"消除的问题：\n消除非主属性对码的部分函数依赖。",[109,1045],{},"即若存在：\n",[640,1048,1050,1072],{"className":1049},[643],[640,1051,1053],{"className":1052},[647],[649,1054,1055],{"xmlns":651},[653,1056,1057,1069],{},[656,1058,1059,1062,1066],{},[659,1060,1061],{},"X",[1063,1064,1065],"mo",{},"⊂",[659,1067,1068],{},"K",[663,1070,1071],{"encoding":665},"X \\subset K",[640,1073,1075,1098],{"className":1074,"ariaHidden":671},[670],[640,1076,1078,1082,1086,1091,1095],{"className":1077},[675],[640,1079],{"className":1080,"style":1081},[679],"height:0.7224em;vertical-align:-0.0391em;",[640,1083,1061],{"className":1084,"style":1085},[684,685],"margin-right:0.0785em;",[640,1087],{"className":1088,"style":1090},[1089],"mspace","margin-right:0.2778em;",[640,1092,1065],{"className":1093},[1094],"mrel",[640,1096],{"className":1097,"style":1090},[1089],[640,1099,1101,1105],{"className":1100},[675],[640,1102],{"className":1103,"style":1104},[679],"height:0.6833em;",[640,1106,1068],{"className":1107,"style":1108},[684,685],"margin-right:0.0715em;","，且 ",[640,1111,1113,1133],{"className":1112},[643],[640,1114,1116],{"className":1115},[647],[649,1117,1118],{"xmlns":651},[653,1119,1120,1130],{},[656,1121,1122,1124,1127],{},[659,1123,1061],{},[1063,1125,1126],{},"→",[659,1128,1129],{},"A",[663,1131,1132],{"encoding":665},"X \\to A",[640,1134,1136,1154],{"className":1135,"ariaHidden":671},[670],[640,1137,1139,1142,1145,1148,1151],{"className":1138},[675],[640,1140],{"className":1141,"style":1104},[679],[640,1143,1061],{"className":1144,"style":1085},[684,685],[640,1146],{"className":1147,"style":1090},[1089],[640,1149,1126],{"className":1150},[1094],[640,1152],{"className":1153,"style":1090},[1089],[640,1155,1157,1160],{"className":1156},[675],[640,1158],{"className":1159,"style":1104},[679],[640,1161,1129],{"className":1162},[684,685],[109,1164],{},"其中 ",[640,1167,1169,1182],{"className":1168},[643],[640,1170,1172],{"className":1171},[647],[649,1173,1174],{"xmlns":651},[653,1175,1176,1180],{},[656,1177,1178],{},[659,1179,1068],{},[663,1181,1068],{"encoding":665},[640,1183,1185],{"className":1184,"ariaHidden":671},[670],[640,1186,1188,1191],{"className":1187},[675],[640,1189],{"className":1190,"style":1104},[679],[640,1192,1068],{"className":1193,"style":1108},[684,685]," 是候选码，",[640,1196,1198,1211],{"className":1197},[643],[640,1199,1201],{"className":1200},[647],[649,1202,1203],{"xmlns":651},[653,1204,1205,1209],{},[656,1206,1207],{},[659,1208,1129],{},[663,1210,1129],{"encoding":665},[640,1212,1214],{"className":1213,"ariaHidden":671},[670],[640,1215,1217,1220],{"className":1216},[675],[640,1218],{"className":1219,"style":1104},[679],[640,1221,1129],{"className":1222},[684,685]," 是非主属性，则说明 ",[640,1225,1227,1240],{"className":1226},[643],[640,1228,1230],{"className":1229},[647],[649,1231,1232],{"xmlns":651},[653,1233,1234,1238],{},[656,1235,1236],{},[659,1237,1129],{},[663,1239,1129],{"encoding":665},[640,1241,1243],{"className":1242,"ariaHidden":671},[670],[640,1244,1246,1249],{"className":1245},[675],[640,1247],{"className":1248,"style":1104},[679],[640,1250,1129],{"className":1251},[684,685]," 部分依赖于码，需要分解。",[105,1254,1255,1256,1258,1259,1261,1262,1046,1264,1315,1316,1109,1366,1394,1395,1423,1424,1426,1427,1478,1480],{},"2NF → 3NF",[109,1257],{},"要求：\n在 2NF 的基础上，每一个非主属性都不传递依赖于候选码。",[109,1260],{},"消除的问题：\n消除非主属性对码的传递函数依赖。",[109,1263],{},[640,1265,1267,1285],{"className":1266},[643],[640,1268,1270],{"className":1269},[647],[649,1271,1272],{"xmlns":651},[653,1273,1274,1282],{},[656,1275,1276,1278,1280],{},[659,1277,1068],{},[1063,1279,1126],{},[659,1281,1061],{},[663,1283,1284],{"encoding":665},"K \\to X",[640,1286,1288,1306],{"className":1287,"ariaHidden":671},[670],[640,1289,1291,1294,1297,1300,1303],{"className":1290},[675],[640,1292],{"className":1293,"style":1104},[679],[640,1295,1068],{"className":1296,"style":1108},[684,685],[640,1298],{"className":1299,"style":1090},[1089],[640,1301,1126],{"className":1302},[1094],[640,1304],{"className":1305,"style":1090},[1089],[640,1307,1309,1312],{"className":1308},[675],[640,1310],{"className":1311,"style":1104},[679],[640,1313,1061],{"className":1314,"style":1085},[684,685],"，",[640,1317,1319,1336],{"className":1318},[643],[640,1320,1322],{"className":1321},[647],[649,1323,1324],{"xmlns":651},[653,1325,1326,1334],{},[656,1327,1328,1330,1332],{},[659,1329,1061],{},[1063,1331,1126],{},[659,1333,1129],{},[663,1335,1132],{"encoding":665},[640,1337,1339,1357],{"className":1338,"ariaHidden":671},[670],[640,1340,1342,1345,1348,1351,1354],{"className":1341},[675],[640,1343],{"className":1344,"style":1104},[679],[640,1346,1061],{"className":1347,"style":1085},[684,685],[640,1349],{"className":1350,"style":1090},[1089],[640,1352,1126],{"className":1353},[1094],[640,1355],{"className":1356,"style":1090},[1089],[640,1358,1360,1363],{"className":1359},[675],[640,1361],{"className":1362,"style":1104},[679],[640,1364,1129],{"className":1365},[684,685],[640,1367,1369,1382],{"className":1368},[643],[640,1370,1372],{"className":1371},[647],[649,1373,1374],{"xmlns":651},[653,1375,1376,1380],{},[656,1377,1378],{},[659,1379,1061],{},[663,1381,1061],{"encoding":665},[640,1383,1385],{"className":1384,"ariaHidden":671},[670],[640,1386,1388,1391],{"className":1387},[675],[640,1389],{"className":1390,"style":1104},[679],[640,1392,1061],{"className":1393,"style":1085},[684,685]," 不是候选码，",[640,1396,1398,1411],{"className":1397},[643],[640,1399,1401],{"className":1400},[647],[649,1402,1403],{"xmlns":651},[653,1404,1405,1409],{},[656,1406,1407],{},[659,1408,1129],{},[663,1410,1129],{"encoding":665},[640,1412,1414],{"className":1413,"ariaHidden":671},[670],[640,1415,1417,1420],{"className":1416},[675],[640,1418],{"className":1419,"style":1104},[679],[640,1421,1129],{"className":1422},[684,685]," 是非主属性",[109,1425],{},"则有：\n",[640,1428,1430,1448],{"className":1429},[643],[640,1431,1433],{"className":1432},[647],[649,1434,1435],{"xmlns":651},[653,1436,1437,1445],{},[656,1438,1439,1441,1443],{},[659,1440,1068],{},[1063,1442,1126],{},[659,1444,1129],{},[663,1446,1447],{"encoding":665},"K \\to A",[640,1449,1451,1469],{"className":1450,"ariaHidden":671},[670],[640,1452,1454,1457,1460,1463,1466],{"className":1453},[675],[640,1455],{"className":1456,"style":1104},[679],[640,1458,1068],{"className":1459,"style":1108},[684,685],[640,1461],{"className":1462,"style":1090},[1089],[640,1464,1126],{"className":1465},[1094],[640,1467],{"className":1468,"style":1090},[1089],[640,1470,1472,1475],{"className":1471},[675],[640,1473],{"className":1474,"style":1104},[679],[640,1476,1129],{"className":1477},[684,685],[109,1479],{},"这种依赖属于传递依赖，需要分解。",[105,1482,1483,1484,1486,1487,1315,1540,1568,1569,1597,1598,1600,1601,1603],{},"3NF → BCNF",[109,1485],{},"要求：\n对于关系模式中的每一个非平凡函数依赖 ",[640,1488,1490,1509],{"className":1489},[643],[640,1491,1493],{"className":1492},[647],[649,1494,1495],{"xmlns":651},[653,1496,1497,1506],{},[656,1498,1499,1501,1503],{},[659,1500,1061],{},[1063,1502,1126],{},[659,1504,1505],{},"Y",[663,1507,1508],{"encoding":665},"X \\to Y",[640,1510,1512,1530],{"className":1511,"ariaHidden":671},[670],[640,1513,1515,1518,1521,1524,1527],{"className":1514},[675],[640,1516],{"className":1517,"style":1104},[679],[640,1519,1061],{"className":1520,"style":1085},[684,685],[640,1522],{"className":1523,"style":1090},[1089],[640,1525,1126],{"className":1526},[1094],[640,1528],{"className":1529,"style":1090},[1089],[640,1531,1533,1536],{"className":1532},[675],[640,1534],{"className":1535,"style":1104},[679],[640,1537,1505],{"className":1538,"style":1539},[684,685],"margin-right:0.2222em;",[640,1541,1543,1556],{"className":1542},[643],[640,1544,1546],{"className":1545},[647],[649,1547,1548],{"xmlns":651},[653,1549,1550,1554],{},[656,1551,1552],{},[659,1553,1061],{},[663,1555,1061],{"encoding":665},[640,1557,1559],{"className":1558,"ariaHidden":671},[670],[640,1560,1562,1565],{"className":1561},[675],[640,1563],{"className":1564,"style":1104},[679],[640,1566,1061],{"className":1567,"style":1085},[684,685]," 必须包含候选码，即 ",[640,1570,1572,1585],{"className":1571},[643],[640,1573,1575],{"className":1574},[647],[649,1576,1577],{"xmlns":651},[653,1578,1579,1583],{},[656,1580,1581],{},[659,1582,1061],{},[663,1584,1061],{"encoding":665},[640,1586,1588],{"className":1587,"ariaHidden":671},[670],[640,1589,1591,1594],{"className":1590},[675],[640,1592],{"className":1593,"style":1104},[679],[640,1595,1061],{"className":1596,"style":1085},[684,685]," 必须是超码。",[109,1599],{},"消除的问题：\n消除所有决定因素不是候选码的函数依赖。",[109,1602],{},"换句话说，BCNF 比 3NF 更严格，不仅要求非主属性不能部分依赖、传递依赖于码，还要求任何函数依赖的决定因素都必须是码。",[549,1605,575],{"id":1606},"_2-题目-2",[15,1608,424],{},[15,1610,1029],{},[102,1612,1613,1622,1631],{},[105,1614,1615,1616,1618,1619,1621],{},"共享锁，简称 S 锁",[109,1617],{},"若事务 T 对数据对象 A 加上 S 锁，则事务 T 可以读取 A，但不能修改 A。",[109,1620],{},"其他事务可以再对 A 加 S 锁，但不能对 A 加 X 锁。",[105,1623,1624,1625,1627,1628,1630],{},"排他锁，简称 X 锁",[109,1626],{},"若事务 T 对数据对象 A 加上 X 锁，则事务 T 可以读取和修改 A。",[109,1629],{},"其他事务不能再对 A 加 S 锁，也不能对 A 加 X 锁。",[105,1632,1633],{},"相容矩阵",[42,1635,1636,1649],{},[45,1637,1638],{},[48,1639,1640,1643,1646],{},[51,1641,1642],{},"已加锁 \\ 申请锁",[51,1644,1645],{},"S 锁",[51,1647,1648],{},"X 锁",[73,1650,1651,1661],{},[48,1652,1653,1655,1658],{},[78,1654,1645],{},[78,1656,1657],{},"相容",[78,1659,1660],{},"不相容",[48,1662,1663,1665,1667],{},[78,1664,1648],{},[78,1666,1660],{},[78,1668,1660],{},[15,1670,1671],{},"解析：\n共享锁之间相容，因为多个事务可以同时读同一个数据对象；排他锁与任何锁都不相容，因为修改数据时必须保证独占访问。",[549,1673,597],{"id":1674},"_3-题目-2",[15,1676,427],{},[15,1678,1029],{},[15,1680,1681],{},"数据库故障主要包括事务故障、系统故障、介质故障和计算机病毒等。",[102,1683,1684,1693,1710,1719],{},[105,1685,1686,1687,1689,1690,1692],{},"事务故障",[109,1688],{},"成因：\n某个事务在运行过程中因输入错误、运算溢出、违反完整性约束、死锁等原因不能继续执行。",[109,1691],{},"恢复方式：\n撤销该事务已经对数据库所做的修改，即执行 UNDO，使数据库恢复到事务开始前的状态。",[105,1694,1695,1696,1698,1699,1701,1702],{},"系统故障",[109,1697],{},"成因：\n操作系统故障、DBMS 故障、停电、硬件瞬时故障等，导致系统停止运行，但磁盘数据一般没有破坏。",[109,1700],{},"恢复方式：\n系统重新启动后，根据日志文件：",[482,1703,1704,1707],{},[105,1705,1706],{},"撤销故障发生时尚未提交的事务；",[105,1708,1709],{},"重做故障发生前已经提交但其结果可能尚未写入数据库的事务。",[105,1711,1712,1713,1715,1716,1718],{},"介质故障",[109,1714],{},"成因：\n磁盘损坏、磁头碰撞、强磁干扰等导致数据库或日志文件部分或全部丢失。",[109,1717],{},"恢复方式：\n利用最近一次数据转储副本恢复数据库，然后利用日志文件重做转储以后已经提交的事务。",[105,1720,1721,1722,1724,1725,1727],{},"计算机病毒",[109,1723],{},"成因：\n恶意程序破坏数据库文件或日志文件。",[109,1726],{},"恢复方式：\n先清除病毒，再利用备份副本和日志文件进行恢复。实际系统中还需要加强安全控制和备份管理。",[94,1729],{},[97,1731,433],{"id":1732},"四关系代数及-sql-语句4-分题-5-题-20-分-1",[15,1734,1735],{},"已知关系：",[15,1737,439],{},[15,1739,442],{},[15,1741,445],{},[549,1743,552],{"id":1744},"_1-题目-3",[15,1746,453],{},[15,1748,1749],{},"答案：",[15,1751,1752],{},"关系代数表达式：",[15,1754,1755],{},[640,1756,1758,1873],{"className":1757},[643],[640,1759,1761],{"className":1760},[647],[649,1762,1763],{"xmlns":651},[653,1764,1765,1870],{},[656,1766,1767,1800,1804,1844,1846,1848,1851,1853,1855,1858,1860,1862,1865,1868],{},[1768,1769,1770,1773],"msub",{},[659,1771,1772],{},"π",[656,1774,1775,1778,1781,1784,1787,1790,1793,1795,1797],{},[659,1776,1777],{},"S",[659,1779,1780],{},"n",[659,1782,1783],{},"a",[659,1785,1786],{},"m",[659,1788,1789],{},"e",[1063,1791,1792],{"separator":671},",",[659,1794,1777],{},[659,1796,1780],{},[659,1798,1799],{},"o",[1063,1801,1803],{"stretchy":1802},"false","(",[1768,1805,1806,1808],{},[659,1807,661],{},[656,1809,1810,1813,1816,1819,1822,1833,1837],{},[659,1811,1812],{},"C",[659,1814,1815],{},"i",[659,1817,1818],{},"t",[659,1820,1821],{},"y",[1823,1824,1825,1828],"msup",{},[1063,1826,1827],{},"=",[1063,1829,1832],{"mathvariant":1830,"lspace":1831,"rspace":1831},"normal","0em","′",[1834,1835,1836],"mtext",{},"西",[1823,1838,1839,1842],{},[1834,1840,1841],{},"安",[1063,1843,1832],{"mathvariant":1830,"lspace":1831,"rspace":1831},[1063,1845,1803],{"stretchy":1802},[659,1847,1777],{},[659,1849,1850],{},"u",[659,1852,15],{},[659,1854,15],{},[659,1856,1857],{},"l",[659,1859,1815],{},[659,1861,1789],{},[659,1863,1864],{},"r",[1063,1866,1867],{"stretchy":1802},")",[1063,1869,1867],{"stretchy":1802},[663,1871,1872],{"encoding":665},"\\pi_{Sname, Sno}(\\sigma_{City='西安'}(Supplier))",[640,1874,1876],{"className":1875,"ariaHidden":671},[670],[640,1877,1879,1883,1963,1967,2092,2095,2098,2101,2106,2109,2114],{"className":1878},[675],[640,1880],{"className":1881,"style":1882},[679],"height:1.0361em;vertical-align:-0.2861em;",[640,1884,1886,1889],{"className":1885},[684],[640,1887,1772],{"className":1888,"style":686},[684,685],[640,1890,1893],{"className":1891},[1892],"msupsub",[640,1894,1898,1954],{"className":1895},[1896,1897],"vlist-t","vlist-t2",[640,1899,1902,1949],{"className":1900},[1901],"vlist-r",[640,1903,1907],{"className":1904,"style":1906},[1905],"vlist","height:0.3283em;",[640,1908,1910,1915],{"style":1909},"top:-2.55em;margin-left:-0.0359em;margin-right:0.05em;",[640,1911],{"className":1912,"style":1914},[1913],"pstrut","height:2.7em;",[640,1916,1922],{"className":1917},[1918,1919,1920,1921],"sizing","reset-size6","size3","mtight",[640,1923,1925,1929,1933,1936,1940,1943,1946],{"className":1924},[684,1921],[640,1926,1777],{"className":1927,"style":1928},[684,685,1921],"margin-right:0.0576em;",[640,1930,1932],{"className":1931},[684,685,1921],"nam",[640,1934,1789],{"className":1935},[684,685,1921],[640,1937,1792],{"className":1938},[1939,1921],"mpunct",[640,1941,1777],{"className":1942,"style":1928},[684,685,1921],[640,1944,1780],{"className":1945},[684,685,1921],[640,1947,1799],{"className":1948},[684,685,1921],[640,1950,1953],{"className":1951},[1952],"vlist-s","​",[640,1955,1957],{"className":1956},[1901],[640,1958,1961],{"className":1959,"style":1960},[1905],"height:0.2861em;",[640,1962],{},[640,1964,1803],{"className":1965},[1966],"mopen",[640,1968,1970,1973],{"className":1969},[684],[640,1971,661],{"className":1972,"style":686},[684,685],[640,1974,1976],{"className":1975},[1892],[640,1977,1979,2084],{"className":1978},[1896,1897],[640,1980,1982,2081],{"className":1981},[1901],[640,1983,1985],{"className":1984,"style":1906},[1905],[640,1986,1987,1990],{"style":1909},[640,1988],{"className":1989,"style":1914},[1913],[640,1991,1993],{"className":1992},[1918,1919,1920,1921],[640,1994,1996,1999,2002,2005,2008,2045,2049],{"className":1995},[684,1921],[640,1997,1812],{"className":1998,"style":1108},[684,685,1921],[640,2000,1815],{"className":2001},[684,685,1921],[640,2003,1818],{"className":2004},[684,685,1921],[640,2006,1821],{"className":2007,"style":686},[684,685,1921],[640,2009,2011,2014],{"className":2010},[1094,1921],[640,2012,1827],{"className":2013},[1094,1921],[640,2015,2017],{"className":2016},[1892],[640,2018,2020],{"className":2019},[1896],[640,2021,2023],{"className":2022},[1901],[640,2024,2027],{"className":2025,"style":2026},[1905],"height:0.6828em;",[640,2028,2030,2034],{"style":2029},"top:-2.786em;margin-right:0.0714em;",[640,2031],{"className":2032,"style":2033},[1913],"height:2.5em;",[640,2035,2039],{"className":2036},[1918,2037,2038,1921],"reset-size3","size1",[640,2040,2042],{"className":2041},[684,1921],[640,2043,1832],{"className":2044},[684,1921],[640,2046,1836],{"className":2047},[684,2048,1921],"cjk_fallback",[640,2050,2052,2055],{"className":2051},[684,1921],[640,2053,1841],{"className":2054},[684,2048,1921],[640,2056,2058],{"className":2057},[1892],[640,2059,2061],{"className":2060},[1896],[640,2062,2064],{"className":2063},[1901],[640,2065,2067],{"className":2066,"style":2026},[1905],[640,2068,2069,2072],{"style":2029},[640,2070],{"className":2071,"style":2033},[1913],[640,2073,2075],{"className":2074},[1918,2037,2038,1921],[640,2076,2078],{"className":2077},[684,1921],[640,2079,1832],{"className":2080},[684,1921],[640,2082,1953],{"className":2083},[1952],[640,2085,2087],{"className":2086},[1901],[640,2088,2090],{"className":2089,"style":1960},[1905],[640,2091],{},[640,2093,1803],{"className":2094},[1966],[640,2096,1777],{"className":2097,"style":1928},[684,685],[640,2099,1850],{"className":2100},[684,685],[640,2102,2105],{"className":2103,"style":2104},[684,685],"margin-right:0.0197em;","ppl",[640,2107,1815],{"className":2108},[684,685],[640,2110,2113],{"className":2111,"style":2112},[684,685],"margin-right:0.0278em;","er",[640,2115,2118],{"className":2116},[2117],"mclose","))",[15,2120,2121,2122,2150,2151,2180],{},"解析：\n先用选择运算 ",[640,2123,2125,2138],{"className":2124},[643],[640,2126,2128],{"className":2127},[647],[649,2129,2130],{"xmlns":651},[653,2131,2132,2136],{},[656,2133,2134],{},[659,2135,661],{},[663,2137,666],{"encoding":665},[640,2139,2141],{"className":2140,"ariaHidden":671},[670],[640,2142,2144,2147],{"className":2143},[675],[640,2145],{"className":2146,"style":680},[679],[640,2148,661],{"className":2149,"style":686},[684,685]," 选出 City 为“西安”的供应商，再用投影运算 ",[640,2152,2154,2168],{"className":2153},[643],[640,2155,2157],{"className":2156},[647],[649,2158,2159],{"xmlns":651},[653,2160,2161,2165],{},[656,2162,2163],{},[659,2164,1772],{},[663,2166,2167],{"encoding":665},"\\pi",[640,2169,2171],{"className":2170,"ariaHidden":671},[670],[640,2172,2174,2177],{"className":2173},[675],[640,2175],{"className":2176,"style":680},[679],[640,2178,1772],{"className":2179,"style":686},[684,685]," 取出供应商名称和供应商编号。",[549,2182,575],{"id":2183},"_2-题目-3",[15,2185,456],{},[15,2187,1749],{},[15,2189,1752],{},[15,2191,2192],{},[640,2193,2195,2361],{"className":2194},[643],[640,2196,2198],{"className":2197},[647],[649,2199,2200],{"xmlns":651},[653,2201,2202,2358],{},[656,2203,2204,2239,2241,2270,2272,2274,2276,2278,2280,2282,2284,2286,2288,2342,2344,2346,2348,2350,2352,2354,2356],{},[1768,2205,2206,2208],{},[659,2207,1772],{},[656,2209,2210,2212,2214,2216,2218,2220,2222,2224,2226,2228,2230,2232,2235,2237],{},[659,2211,1777],{},[659,2213,1780],{},[659,2215,1783],{},[659,2217,1786],{},[659,2219,1789],{},[1063,2221,1792],{"separator":671},[659,2223,1812],{},[659,2225,1815],{},[659,2227,1818],{},[659,2229,1821],{},[1063,2231,1792],{"separator":671},[659,2233,2234],{},"Q",[659,2236,1818],{},[659,2238,1821],{},[1063,2240,1803],{"stretchy":1802},[1768,2242,2243,2245],{},[659,2244,661],{},[656,2246,2247,2250,2252,2254,2260,2262],{},[659,2248,2249],{},"P",[659,2251,1780],{},[659,2253,1799],{},[1823,2255,2256,2258],{},[1063,2257,1827],{},[1063,2259,1832],{"mathvariant":1830,"lspace":1831,"rspace":1831},[659,2261,2249],{},[1823,2263,2264,2268],{},[2265,2266,2267],"mn",{},"1",[1063,2269,1832],{"mathvariant":1830,"lspace":1831,"rspace":1831},[1063,2271,1803],{"stretchy":1802},[659,2273,1777],{},[659,2275,1850],{},[659,2277,15],{},[659,2279,15],{},[659,2281,1857],{},[659,2283,1815],{},[659,2285,1789],{},[659,2287,1864],{},[1768,2289,2290,2293],{},[1063,2291,2292],{},"⋈",[656,2294,2295,2297,2299,2301,2303,2305,2307,2309,2311,2314,2316,2318,2320,2322,2324,2326,2328,2330,2332,2334,2336,2338,2340],{},[659,2296,1777],{},[659,2298,1850],{},[659,2300,15],{},[659,2302,15],{},[659,2304,1857],{},[659,2306,1815],{},[659,2308,1789],{},[659,2310,1864],{},[659,2312,2313],{"mathvariant":1830},".",[659,2315,1777],{},[659,2317,1780],{},[659,2319,1799],{},[1063,2321,1827],{},[659,2323,1777],{},[659,2325,1850],{},[659,2327,15],{},[659,2329,15],{},[659,2331,1857],{},[659,2333,1821],{},[659,2335,2313],{"mathvariant":1830},[659,2337,1777],{},[659,2339,1780],{},[659,2341,1799],{},[659,2343,1777],{},[659,2345,1850],{},[659,2347,15],{},[659,2349,15],{},[659,2351,1857],{},[659,2353,1821],{},[1063,2355,1867],{"stretchy":1802},[1063,2357,1867],{"stretchy":1802},[663,2359,2360],{"encoding":665},"\\pi_{Sname, City, Qty}(\\sigma_{Pno='P1'}(Supplier \\bowtie_{Supplier.Sno=Supply.Sno} Supply))",[640,2362,2364,2685],{"className":2363,"ariaHidden":671},[670],[640,2365,2367,2370,2444,2447,2565,2568,2571,2574,2577,2580,2583,2586,2682],{"className":2366},[675],[640,2368],{"className":2369,"style":1882},[679],[640,2371,2373,2376],{"className":2372},[684],[640,2374,1772],{"className":2375,"style":686},[684,685],[640,2377,2379],{"className":2378},[1892],[640,2380,2382,2436],{"className":2381},[1896,1897],[640,2383,2385,2433],{"className":2384},[1901],[640,2386,2388],{"className":2387,"style":1906},[1905],[640,2389,2390,2393],{"style":1909},[640,2391],{"className":2392,"style":1914},[1913],[640,2394,2396],{"className":2395},[1918,1919,1920,1921],[640,2397,2399,2402,2405,2408,2411,2414,2417,2420,2423,2426,2430],{"className":2398},[684,1921],[640,2400,1777],{"className":2401,"style":1928},[684,685,1921],[640,2403,1932],{"className":2404},[684,685,1921],[640,2406,1789],{"className":2407},[684,685,1921],[640,2409,1792],{"className":2410},[1939,1921],[640,2412,1812],{"className":2413,"style":1108},[684,685,1921],[640,2415,1815],{"className":2416},[684,685,1921],[640,2418,1818],{"className":2419},[684,685,1921],[640,2421,1821],{"className":2422,"style":686},[684,685,1921],[640,2424,1792],{"className":2425},[1939,1921],[640,2427,2429],{"className":2428},[684,685,1921],"Qt",[640,2431,1821],{"className":2432,"style":686},[684,685,1921],[640,2434,1953],{"className":2435},[1952],[640,2437,2439],{"className":2438},[1901],[640,2440,2442],{"className":2441,"style":1960},[1905],[640,2443],{},[640,2445,1803],{"className":2446},[1966],[640,2448,2450,2453],{"className":2449},[684],[640,2451,661],{"className":2452,"style":686},[684,685],[640,2454,2456],{"className":2455},[1892],[640,2457,2459,2556],{"className":2458},[1896,1897],[640,2460,2462,2553],{"className":2461},[1901],[640,2463,2465],{"className":2464,"style":1906},[1905],[640,2466,2467,2470],{"style":1909},[640,2468],{"className":2469,"style":1914},[1913],[640,2471,2473],{"className":2472},[1918,1919,1920,1921],[640,2474,2476,2480,2483,2486,2518,2521],{"className":2475},[684,1921],[640,2477,2249],{"className":2478,"style":2479},[684,685,1921],"margin-right:0.1389em;",[640,2481,1780],{"className":2482},[684,685,1921],[640,2484,1799],{"className":2485},[684,685,1921],[640,2487,2489,2492],{"className":2488},[1094,1921],[640,2490,1827],{"className":2491},[1094,1921],[640,2493,2495],{"className":2494},[1892],[640,2496,2498],{"className":2497},[1896],[640,2499,2501],{"className":2500},[1901],[640,2502,2504],{"className":2503,"style":2026},[1905],[640,2505,2506,2509],{"style":2029},[640,2507],{"className":2508,"style":2033},[1913],[640,2510,2512],{"className":2511},[1918,2037,2038,1921],[640,2513,2515],{"className":2514},[684,1921],[640,2516,1832],{"className":2517},[684,1921],[640,2519,2249],{"className":2520,"style":2479},[684,685,1921],[640,2522,2524,2527],{"className":2523},[684,1921],[640,2525,2267],{"className":2526},[684,1921],[640,2528,2530],{"className":2529},[1892],[640,2531,2533],{"className":2532},[1896],[640,2534,2536],{"className":2535},[1901],[640,2537,2539],{"className":2538,"style":2026},[1905],[640,2540,2541,2544],{"style":2029},[640,2542],{"className":2543,"style":2033},[1913],[640,2545,2547],{"className":2546},[1918,2037,2038,1921],[640,2548,2550],{"className":2549},[684,1921],[640,2551,1832],{"className":2552},[684,1921],[640,2554,1953],{"className":2555},[1952],[640,2557,2559],{"className":2558},[1901],[640,2560,2563],{"className":2561,"style":2562},[1905],"height:0.15em;",[640,2564],{},[640,2566,1803],{"className":2567},[1966],[640,2569,1777],{"className":2570,"style":1928},[684,685],[640,2572,1850],{"className":2573},[684,685],[640,2575,2105],{"className":2576,"style":2104},[684,685],[640,2578,1815],{"className":2579},[684,685],[640,2581,2113],{"className":2582,"style":2112},[684,685],[640,2584],{"className":2585,"style":1090},[1089],[640,2587,2589,2592],{"className":2588},[1094],[640,2590,2292],{"className":2591},[1094],[640,2593,2595],{"className":2594},[1892],[640,2596,2598,2674],{"className":2597},[1896,1897],[640,2599,2601,2671],{"className":2600},[1901],[640,2602,2605],{"className":2603,"style":2604},[1905],"height:0.3361em;",[640,2606,2608,2611],{"style":2607},"top:-2.55em;margin-left:0em;margin-right:0.05em;",[640,2609],{"className":2610,"style":1914},[1913],[640,2612,2614],{"className":2613},[1918,1919,1920,1921],[640,2615,2617,2620,2623,2626,2629,2632,2635,2638,2641,2644,2647,2650,2653,2656,2659,2662,2665,2668],{"className":2616},[684,1921],[640,2618,1777],{"className":2619,"style":1928},[684,685,1921],[640,2621,1850],{"className":2622},[684,685,1921],[640,2624,2105],{"className":2625,"style":2104},[684,685,1921],[640,2627,1815],{"className":2628},[684,685,1921],[640,2630,2113],{"className":2631,"style":2112},[684,685,1921],[640,2633,2313],{"className":2634},[684,1921],[640,2636,1777],{"className":2637,"style":1928},[684,685,1921],[640,2639,1780],{"className":2640},[684,685,1921],[640,2642,1799],{"className":2643},[684,685,1921],[640,2645,1827],{"className":2646},[1094,1921],[640,2648,1777],{"className":2649,"style":1928},[684,685,1921],[640,2651,1850],{"className":2652},[684,685,1921],[640,2654,2105],{"className":2655,"style":2104},[684,685,1921],[640,2657,1821],{"className":2658,"style":686},[684,685,1921],[640,2660,2313],{"className":2661},[684,1921],[640,2663,1777],{"className":2664,"style":1928},[684,685,1921],[640,2666,1780],{"className":2667},[684,685,1921],[640,2669,1799],{"className":2670},[684,685,1921],[640,2672,1953],{"className":2673},[1952],[640,2675,2677],{"className":2676},[1901],[640,2678,2680],{"className":2679,"style":1960},[1905],[640,2681],{},[640,2683],{"className":2684,"style":1090},[1089],[640,2686,2688,2692,2695,2698,2701,2704],{"className":2687},[675],[640,2689],{"className":2690,"style":2691},[679],"height:1em;vertical-align:-0.25em;",[640,2693,1777],{"className":2694,"style":1928},[684,685],[640,2696,1850],{"className":2697},[684,685],[640,2699,2105],{"className":2700,"style":2104},[684,685],[640,2702,1821],{"className":2703,"style":686},[684,685],[640,2705,2118],{"className":2706},[2117],[15,2708,2709],{},"解析：\n先将 Supplier 与 Supply 按供应商编号连接，再选择 Pno 为 P1 的元组，最后投影出供应商名称、所在城市和供应数量。",[549,2711,597],{"id":2712},"_3-题目-3",[15,2714,465],{},[15,2716,1749],{},[15,2718,2719],{},"SQL Server 语句：",[2721,2722,2727],"pre",{"className":2723,"code":2724,"language":2725,"meta":2726,"style":2726},"language-sql shiki shiki-themes github-light github-dark","SELECT ISNULL(SUM(Qty), 0) AS Total_Qty\nFROM Supply\nWHERE Sno = 'S1';\n","sql","",[2728,2729,2730,2737,2743],"code",{"__ignoreMap":2726},[640,2731,2734],{"class":2732,"line":2733},"line",1,[640,2735,2736],{},"SELECT ISNULL(SUM(Qty), 0) AS Total_Qty\n",[640,2738,2740],{"class":2732,"line":2739},2,[640,2741,2742],{},"FROM Supply\n",[640,2744,2745],{"class":2732,"line":462},[640,2746,2747],{},"WHERE Sno = 'S1';\n",[15,2749,2750],{},"解析：\nSUM(Qty) 用于统计供应数量总和。使用 ISNULL 是为了避免 S1 没有供应记录时返回 NULL。",[549,2752,620],{"id":2753},"_4-题目-2",[15,2755,468],{},[15,2757,1749],{},[15,2759,2719],{},[2721,2761,2763],{"className":2723,"code":2762,"language":2725,"meta":2726,"style":2726},"SELECT\n    s.Sname,\n    p.Spec,\n    sp.Qty\nFROM Supplier AS s\nJOIN Supply AS sp\n    ON s.Sno = sp.Sno\nJOIN Part AS p\n    ON sp.Pno = p.Pno\nWHERE sp.Pno = 'P2'\n  AND sp.Qty > 100;\n",[2728,2764,2765,2770,2775,2780,2786,2792,2798,2804,2810,2816,2822],{"__ignoreMap":2726},[640,2766,2767],{"class":2732,"line":2733},[640,2768,2769],{},"SELECT\n",[640,2771,2772],{"class":2732,"line":2739},[640,2773,2774],{},"    s.Sname,\n",[640,2776,2777],{"class":2732,"line":462},[640,2778,2779],{},"    p.Spec,\n",[640,2781,2783],{"class":2732,"line":2782},4,[640,2784,2785],{},"    sp.Qty\n",[640,2787,2789],{"class":2732,"line":2788},5,[640,2790,2791],{},"FROM Supplier AS s\n",[640,2793,2795],{"class":2732,"line":2794},6,[640,2796,2797],{},"JOIN Supply AS sp\n",[640,2799,2801],{"class":2732,"line":2800},7,[640,2802,2803],{},"    ON s.Sno = sp.Sno\n",[640,2805,2807],{"class":2732,"line":2806},8,[640,2808,2809],{},"JOIN Part AS p\n",[640,2811,2813],{"class":2732,"line":2812},9,[640,2814,2815],{},"    ON sp.Pno = p.Pno\n",[640,2817,2819],{"class":2732,"line":2818},10,[640,2820,2821],{},"WHERE sp.Pno = 'P2'\n",[640,2823,2825],{"class":2732,"line":2824},11,[640,2826,2827],{},"  AND sp.Qty > 100;\n",[15,2829,2830],{},"解析：\n该查询需要同时使用供应商表、零件表和供应表。通过 Sno 连接供应商和供应关系，通过 Pno 连接零件和供应关系。",[549,2832,690],{"id":2833},"_5-题目-2",[15,2835,471],{},[15,2837,1749],{},[15,2839,2719],{},[2721,2841,2843],{"className":2723,"code":2842,"language":2725,"meta":2726,"style":2726},"SELECT\n    s.Sno,\n    s.Sname,\n    s.City\nFROM Supplier AS s\nWHERE NOT EXISTS (\n    SELECT 1\n    FROM Supply AS sp\n    WHERE sp.Sno = s.Sno\n      AND sp.Pno = 'P3'\n);\n",[2728,2844,2845,2849,2854,2858,2863,2867,2872,2877,2882,2887,2892],{"__ignoreMap":2726},[640,2846,2847],{"class":2732,"line":2733},[640,2848,2769],{},[640,2850,2851],{"class":2732,"line":2739},[640,2852,2853],{},"    s.Sno,\n",[640,2855,2856],{"class":2732,"line":462},[640,2857,2774],{},[640,2859,2860],{"class":2732,"line":2782},[640,2861,2862],{},"    s.City\n",[640,2864,2865],{"class":2732,"line":2788},[640,2866,2791],{},[640,2868,2869],{"class":2732,"line":2794},[640,2870,2871],{},"WHERE NOT EXISTS (\n",[640,2873,2874],{"class":2732,"line":2800},[640,2875,2876],{},"    SELECT 1\n",[640,2878,2879],{"class":2732,"line":2806},[640,2880,2881],{},"    FROM Supply AS sp\n",[640,2883,2884],{"class":2732,"line":2812},[640,2885,2886],{},"    WHERE sp.Sno = s.Sno\n",[640,2888,2889],{"class":2732,"line":2818},[640,2890,2891],{},"      AND sp.Pno = 'P3'\n",[640,2893,2894],{"class":2732,"line":2824},[640,2895,2896],{},");\n",[15,2898,2899],{},"解析：\nNOT EXISTS 表示不存在对应记录。该语句查询在 Supply 表中不存在供应 P3 记录的供应商。",[94,2901],{},[97,2903,477],{"id":2904},"五数据库设计共-20-分-1",[15,2906,2907],{},"题目背景：",[15,2909,480],{},[482,2911,2912,2914,2916,2918,2920],{},[105,2913,486],{},[105,2915,489],{},[105,2917,492],{},[105,2919,495],{},[105,2921,498],{},[549,2923,552],{"id":2924},"_1-题目-4",[15,2926,506],{},[15,2928,1749],{},[15,2930,2931],{},"实体型：",[102,2933,2934,2937,2940,2943,2946],{},[105,2935,2936],{},"学生：Student",[105,2938,2939],{},"专业：Major",[105,2941,2942],{},"课程：Course",[105,2944,2945],{},"教师：Teacher",[105,2947,2948],{},"学院：College",[15,2950,2951],{},"联系型：",[102,2953,2954,2963,2975,2984,2992,3000],{},[105,2955,2956,2957,2959,2960,2962],{},"学生 —— 主修 —— 专业",[109,2958],{},"联系类型：n:1",[109,2961],{},"含义：每个学生主修一个专业，一个专业可招收多名学生。",[105,2964,2965,2966,2968,2969,2971,2972,2974],{},"学生 —— 选修 —— 课程",[109,2967],{},"联系类型：m:n",[109,2970],{},"联系属性：成绩 Grade",[109,2973],{},"含义：一个学生可选修多门课程，一门课程可被多名学生选修。",[105,2976,2977,2978,2980,2981,2983],{},"学院 —— 设置 —— 专业",[109,2979],{},"联系类型：1:n",[109,2982],{},"含义：一个学院可设置多个专业，一个专业只隶属于一个学院。",[105,2985,2986,2987,2980,2989,2991],{},"学院 —— 开设 —— 课程",[109,2988],{},[109,2990],{},"含义：一个学院可开设多门课程，一门课程只由一个学院开设。",[105,2993,2994,2995,2980,2997,2999],{},"学院 —— 拥有\u002F隶属 —— 教师",[109,2996],{},[109,2998],{},"含义：一个学院可拥有多名教师，一名教师只隶属于一个学院。",[105,3001,3002,3003,2968,3005,3007,3008,3010],{},"教师 —— 讲授 —— 课程",[109,3004],{},[109,3006],{},"联系属性：教室 Classroom，课时 Hours",[109,3009],{},"含义：一名教师可讲授多门课程，一门课程可由多名教师讲授。",[15,3012,3013],{},"E-R 图文字表示：",[15,3015,3016,3019,3020],{},[640,3017,3018],{},"学院 College"," 1 —— 设置 —— n ",[640,3021,3022],{},"专业 Major",[15,3024,3025,3027,3028],{},[640,3026,3022],{}," 1 —— 主修 —— n ",[640,3029,3030],{},"学生 Student",[15,3032,3033,3035,3036,3039],{},[640,3034,3030],{}," m —— 选修 —— n ",[640,3037,3038],{},"课程 Course","\n|\n成绩 Grade",[15,3041,3042,3044,3045],{},[640,3043,3018],{}," 1 —— 开设 —— n ",[640,3046,3038],{},[15,3048,3049,3051,3052],{},[640,3050,3018],{}," 1 —— 拥有\u002F隶属 —— n ",[640,3053,3054],{},"教师 Teacher",[15,3056,3057,3059,3060,3062],{},[640,3058,3054],{}," m —— 讲授 —— n ",[640,3061,3038],{},"\n|\n教室 Classroom，课时 Hours",[15,3064,3065],{},"解析：\nE-R 图的核心是识别实体型和联系型。1:n 联系通常可以通过在 n 端加入外键实现；m:n 联系通常需要单独转换为一个关系模式。",[549,3067,575],{"id":3068},"_2-题目-4",[15,3070,509],{},[15,3072,1749],{},[102,3074,3075],{},[105,3076,3077],{},"学院表 College",[15,3079,3080],{},"College(\nCollegeID,\nCollegeName\n)",[15,3082,3083],{},"主键：\nCollegeID",[102,3085,3086],{"start":2739},[105,3087,3088],{},"专业表 Major",[15,3090,3091],{},"Major(\nMajorID,\nMajorName,\nCollegeID\n)",[15,3093,3094],{},"主键：\nMajorID",[15,3096,3097],{},"外键：\nCollegeID REFERENCES College(CollegeID)",[102,3099,3100],{"start":462},[105,3101,3102],{},"学生表 Student",[15,3104,3105],{},"Student(\nStudentID,\nStudentName,\nMajorID\n)",[15,3107,3108],{},"主键：\nStudentID",[15,3110,3111],{},"外键：\nMajorID REFERENCES Major(MajorID)",[102,3113,3114],{"start":2782},[105,3115,3116],{},"课程表 Course",[15,3118,3119],{},"Course(\nCourseID,\nCourseName,\nCollegeID\n)",[15,3121,3122],{},"主键：\nCourseID",[15,3124,3097],{},[102,3126,3127],{"start":2788},[105,3128,3129],{},"教师表 Teacher",[15,3131,3132],{},"Teacher(\nTeacherID,\nTeacherName,\nCollegeID\n)",[15,3134,3135],{},"主键：\nTeacherID",[15,3137,3097],{},[102,3139,3140],{"start":2794},[105,3141,3142],{},"选修表 SC",[15,3144,3145],{},"SC(\nStudentID,\nCourseID,\nGrade\n)",[15,3147,3148],{},"主键：\n(StudentID, CourseID)",[15,3150,3151],{},"外键：\nStudentID REFERENCES Student(StudentID)",[15,3153,3154],{},"外键：\nCourseID REFERENCES Course(CourseID)",[102,3156,3157],{"start":2800},[105,3158,3159],{},"授课表 Teaching",[15,3161,3162],{},"Teaching(\nTeacherID,\nCourseID,\nClassroom,\nHours\n)",[15,3164,3165],{},"主键：\n(TeacherID, CourseID)",[15,3167,3168],{},"外键：\nTeacherID REFERENCES Teacher(TeacherID)",[15,3170,3154],{},[15,3172,3173],{},"解析：\n1:n 联系可以在 n 端加入外键，例如 Student 中加入 MajorID。\nm:n 联系需要单独转换为关系模式，例如 SC 和 Teaching。\n联系的属性应放入由该联系转换成的关系模式中，因此 Grade 放入 SC，Classroom 和 Hours 放入 Teaching。",[549,3175,597],{"id":3176},"_3-题目-4",[15,3178,512],{},[15,3180,1749],{},[15,3182,3183],{},"在以下基本函数依赖假设下：",[102,3185,3186,3189,3192,3195,3198,3201,3204],{},[105,3187,3188],{},"CollegeID → CollegeName",[105,3190,3191],{},"MajorID → MajorName, CollegeID",[105,3193,3194],{},"StudentID → StudentName, MajorID",[105,3196,3197],{},"CourseID → CourseName, CollegeID",[105,3199,3200],{},"TeacherID → TeacherName, CollegeID",[105,3202,3203],{},"(StudentID, CourseID) → Grade",[105,3205,3206],{},"(TeacherID, CourseID) → Classroom, Hours",[15,3208,3209],{},"各关系模式范式如下：",[102,3211,3212,3221,3229,3237,3245,3253,3440],{},[105,3213,3214,3215,3217,3218,3220],{},"College(CollegeID, CollegeName)",[109,3216],{},"范式：BCNF",[109,3219],{},"原因：\n其唯一非平凡函数依赖为 CollegeID → CollegeName，决定因素 CollegeID 是候选码。",[105,3222,3223,3224,3217,3226,3228],{},"Major(MajorID, MajorName, CollegeID)",[109,3225],{},[109,3227],{},"原因：\nMajorID 是主键，MajorName 和 CollegeID 都完全函数依赖于 MajorID，不存在部分依赖和传递依赖。",[105,3230,3231,3232,3217,3234,3236],{},"Student(StudentID, StudentName, MajorID)",[109,3233],{},[109,3235],{},"原因：\nStudentID 是主键，StudentName 和 MajorID 都完全函数依赖于 StudentID，且决定因素是候选码。",[105,3238,3239,3240,3217,3242,3244],{},"Course(CourseID, CourseName, CollegeID)",[109,3241],{},[109,3243],{},"原因：\nCourseID 是主键，CourseName 和 CollegeID 都完全函数依赖于 CourseID，不存在非主属性对码的部分依赖和传递依赖。",[105,3246,3247,3248,3217,3250,3252],{},"Teacher(TeacherID, TeacherName, CollegeID)",[109,3249],{},[109,3251],{},"原因：\nTeacherID 是主键，TeacherName 和 CollegeID 都完全函数依赖于 TeacherID，决定因素是候选码。",[105,3254,3255,3256,3217,3258,3260,3261,3263,3437,3439],{},"SC(StudentID, CourseID, Grade)",[109,3257],{},[109,3259],{},"原因：\n主键为 (StudentID, CourseID)，Grade 表示某学生选修某课程的成绩，完全函数依赖于整个主键：",[109,3262],{},[640,3264,3266,3335],{"className":3265},[643],[640,3267,3269],{"className":3268},[647],[649,3270,3271],{"xmlns":651},[653,3272,3273,3332],{},[656,3274,3275,3277,3279,3281,3283,3286,3288,3290,3292,3295,3298,3300,3302,3304,3306,3308,3311,3313,3315,3317,3319,3321,3324,3326,3328,3330],{},[1063,3276,1803],{"stretchy":1802},[659,3278,1777],{},[659,3280,1818],{},[659,3282,1850],{},[659,3284,3285],{},"d",[659,3287,1789],{},[659,3289,1780],{},[659,3291,1818],{},[659,3293,3294],{},"I",[659,3296,3297],{},"D",[1063,3299,1792],{"separator":671},[659,3301,1812],{},[659,3303,1799],{},[659,3305,1850],{},[659,3307,1864],{},[659,3309,3310],{},"s",[659,3312,1789],{},[659,3314,3294],{},[659,3316,3297],{},[1063,3318,1867],{"stretchy":1802},[1063,3320,1126],{},[659,3322,3323],{},"G",[659,3325,1864],{},[659,3327,1783],{},[659,3329,3285],{},[659,3331,1789],{},[663,3333,3334],{"encoding":665},"(StudentID, CourseID) \\to Grade",[640,3336,3338,3415],{"className":3337,"ariaHidden":671},[670],[640,3339,3341,3344,3347,3350,3353,3356,3359,3362,3365,3368,3371,3374,3377,3381,3384,3387,3390,3393,3397,3400,3403,3406,3409,3412],{"className":3340},[675],[640,3342],{"className":3343,"style":2691},[679],[640,3345,1803],{"className":3346},[1966],[640,3348,1777],{"className":3349,"style":1928},[684,685],[640,3351,1818],{"className":3352},[684,685],[640,3354,1850],{"className":3355},[684,685],[640,3357,3285],{"className":3358},[684,685],[640,3360,1789],{"className":3361},[684,685],[640,3363,1780],{"className":3364},[684,685],[640,3366,1818],{"className":3367},[684,685],[640,3369,3294],{"className":3370,"style":1085},[684,685],[640,3372,3297],{"className":3373,"style":2112},[684,685],[640,3375,1792],{"className":3376},[1939],[640,3378],{"className":3379,"style":3380},[1089],"margin-right:0.1667em;",[640,3382,1812],{"className":3383,"style":1108},[684,685],[640,3385,1799],{"className":3386},[684,685],[640,3388,1850],{"className":3389},[684,685],[640,3391,1864],{"className":3392,"style":2112},[684,685],[640,3394,3396],{"className":3395},[684,685],"se",[640,3398,3294],{"className":3399,"style":1085},[684,685],[640,3401,3297],{"className":3402,"style":2112},[684,685],[640,3404,1867],{"className":3405},[2117],[640,3407],{"className":3408,"style":1090},[1089],[640,3410,1126],{"className":3411},[1094],[640,3413],{"className":3414,"style":1090},[1089],[640,3416,3418,3422,3425,3428,3431,3434],{"className":3417},[675],[640,3419],{"className":3420,"style":3421},[679],"height:0.6944em;",[640,3423,3323],{"className":3424},[684,685],[640,3426,1864],{"className":3427,"style":2112},[684,685],[640,3429,1783],{"className":3430},[684,685],[640,3432,3285],{"className":3433},[684,685],[640,3435,1789],{"className":3436},[684,685],[109,3438],{},"Grade 不依赖于 StudentID 或 CourseID 的某一部分，因此不存在部分函数依赖，也不存在传递函数依赖。",[105,3441,3442,3443,3217,3445,3447,3448,3450,3665,3667],{},"Teaching(TeacherID, CourseID, Classroom, Hours)",[109,3444],{},[109,3446],{},"原因：\n主键为 (TeacherID, CourseID)，Classroom 和 Hours 表示某教师讲授某课程时的教室和课时信息，完全函数依赖于整个主键：",[109,3449],{},[640,3451,3453,3541],{"className":3452},[643],[640,3454,3456],{"className":3455},[647],[649,3457,3458],{"xmlns":651},[653,3459,3460,3538],{},[656,3461,3462,3464,3467,3469,3471,3474,3477,3479,3481,3483,3485,3487,3489,3491,3493,3495,3497,3499,3501,3503,3505,3507,3509,3511,3513,3515,3517,3519,3521,3523,3525,3527,3530,3532,3534,3536],{},[1063,3463,1803],{"stretchy":1802},[659,3465,3466],{},"T",[659,3468,1789],{},[659,3470,1783],{},[659,3472,3473],{},"c",[659,3475,3476],{},"h",[659,3478,1789],{},[659,3480,1864],{},[659,3482,3294],{},[659,3484,3297],{},[1063,3486,1792],{"separator":671},[659,3488,1812],{},[659,3490,1799],{},[659,3492,1850],{},[659,3494,1864],{},[659,3496,3310],{},[659,3498,1789],{},[659,3500,3294],{},[659,3502,3297],{},[1063,3504,1867],{"stretchy":1802},[1063,3506,1126],{},[659,3508,1812],{},[659,3510,1857],{},[659,3512,1783],{},[659,3514,3310],{},[659,3516,3310],{},[659,3518,1864],{},[659,3520,1799],{},[659,3522,1799],{},[659,3524,1786],{},[1063,3526,1792],{"separator":671},[659,3528,3529],{},"H",[659,3531,1799],{},[659,3533,1850],{},[659,3535,1864],{},[659,3537,3310],{},[663,3539,3540],{"encoding":665},"(TeacherID, CourseID) \\to Classroom, Hours",[640,3542,3544,3616],{"className":3543,"ariaHidden":671},[670],[640,3545,3547,3550,3553,3556,3559,3562,3565,3568,3571,3574,3577,3580,3583,3586,3589,3592,3595,3598,3601,3604,3607,3610,3613],{"className":3546},[675],[640,3548],{"className":3549,"style":2691},[679],[640,3551,1803],{"className":3552},[1966],[640,3554,3466],{"className":3555,"style":2479},[684,685],[640,3557,1789],{"className":3558},[684,685],[640,3560,1783],{"className":3561},[684,685],[640,3563,3473],{"className":3564},[684,685],[640,3566,3476],{"className":3567},[684,685],[640,3569,2113],{"className":3570,"style":2112},[684,685],[640,3572,3294],{"className":3573,"style":1085},[684,685],[640,3575,3297],{"className":3576,"style":2112},[684,685],[640,3578,1792],{"className":3579},[1939],[640,3581],{"className":3582,"style":3380},[1089],[640,3584,1812],{"className":3585,"style":1108},[684,685],[640,3587,1799],{"className":3588},[684,685],[640,3590,1850],{"className":3591},[684,685],[640,3593,1864],{"className":3594,"style":2112},[684,685],[640,3596,3396],{"className":3597},[684,685],[640,3599,3294],{"className":3600,"style":1085},[684,685],[640,3602,3297],{"className":3603,"style":2112},[684,685],[640,3605,1867],{"className":3606},[2117],[640,3608],{"className":3609,"style":1090},[1089],[640,3611,1126],{"className":3612},[1094],[640,3614],{"className":3615,"style":1090},[1089],[640,3617,3619,3623,3626,3629,3632,3636,3640,3643,3646,3649,3653,3656,3659,3662],{"className":3618},[675],[640,3620],{"className":3621,"style":3622},[679],"height:0.8889em;vertical-align:-0.1944em;",[640,3624,1812],{"className":3625,"style":1108},[684,685],[640,3627,1857],{"className":3628,"style":2104},[684,685],[640,3630,1783],{"className":3631},[684,685],[640,3633,3635],{"className":3634,"style":2112},[684,685],"ssr",[640,3637,3639],{"className":3638},[684,685],"oo",[640,3641,1786],{"className":3642},[684,685],[640,3644,1792],{"className":3645},[1939],[640,3647],{"className":3648,"style":3380},[1089],[640,3650,3529],{"className":3651,"style":3652},[684,685],"margin-right:0.0813em;",[640,3654,1799],{"className":3655},[684,685],[640,3657,1850],{"className":3658},[684,685],[640,3660,1864],{"className":3661,"style":2112},[684,685],[640,3663,3310],{"className":3664},[684,685],[109,3666],{},"因此不存在部分依赖和传递依赖，且决定因素是候选码。",[15,3669,3670],{},"总结：\n上述关系模式在属性原子性的基础上，非主属性均完全依赖于候选码，且不存在非主属性对候选码的传递依赖；进一步看，每个非平凡函数依赖的决定因素都是候选码，因此均可认为达到 BCNF。",[94,3672],{},[97,3674,518],{"id":3675},"六sql-编程共-10-分-1",[549,3677,3678],{"id":3678},"题目",[15,3680,521],{},[15,3682,524],{},[15,3684,527],{},[15,3686,530],{},[15,3688,533],{},[15,3690,536],{},[15,3692,539],{},[15,3694,1749],{},[15,3696,3697],{},"SQL Server 存储过程：",[2721,3699,3701],{"className":2723,"code":3700,"language":2725,"meta":2726,"style":2726},"IF OBJECT_ID(N'dbo.proc_get_employee_name', N'P') IS NOT NULL\nBEGIN\nDROP PROCEDURE dbo.proc_get_employee_name;\nEND;\nGO\n\nCREATE PROCEDURE dbo.proc_get_employee_name\n@in_emp_id INT,\n@out_emp_name VARCHAR(50) OUTPUT\nAS\nBEGIN\nSET NOCOUNT ON;\n\n    IF @in_emp_id IS NULL\n       OR NOT EXISTS (\n            SELECT 1\n            FROM dbo.Employees\n            WHERE emp_id = @in_emp_id\n       )\n    BEGIN\n        SET @out_emp_name = '无此员工';\n        RETURN;\n    END;\n\n    SELECT @out_emp_name = emp_name\n    FROM dbo.Employees\n    WHERE emp_id = @in_emp_id;\n\nEND;\nGO\n",[2728,3702,3703,3708,3713,3718,3723,3728,3734,3739,3744,3749,3754,3758,3764,3769,3775,3781,3787,3793,3799,3805,3811,3817,3823,3829,3834,3840,3846,3852,3857,3862],{"__ignoreMap":2726},[640,3704,3705],{"class":2732,"line":2733},[640,3706,3707],{},"IF OBJECT_ID(N'dbo.proc_get_employee_name', N'P') IS NOT NULL\n",[640,3709,3710],{"class":2732,"line":2739},[640,3711,3712],{},"BEGIN\n",[640,3714,3715],{"class":2732,"line":462},[640,3716,3717],{},"DROP PROCEDURE dbo.proc_get_employee_name;\n",[640,3719,3720],{"class":2732,"line":2782},[640,3721,3722],{},"END;\n",[640,3724,3725],{"class":2732,"line":2788},[640,3726,3727],{},"GO\n",[640,3729,3730],{"class":2732,"line":2794},[640,3731,3733],{"emptyLinePlaceholder":3732},true,"\n",[640,3735,3736],{"class":2732,"line":2800},[640,3737,3738],{},"CREATE PROCEDURE dbo.proc_get_employee_name\n",[640,3740,3741],{"class":2732,"line":2806},[640,3742,3743],{},"@in_emp_id INT,\n",[640,3745,3746],{"class":2732,"line":2812},[640,3747,3748],{},"@out_emp_name VARCHAR(50) OUTPUT\n",[640,3750,3751],{"class":2732,"line":2818},[640,3752,3753],{},"AS\n",[640,3755,3756],{"class":2732,"line":2824},[640,3757,3712],{},[640,3759,3761],{"class":2732,"line":3760},12,[640,3762,3763],{},"SET NOCOUNT ON;\n",[640,3765,3767],{"class":2732,"line":3766},13,[640,3768,3733],{"emptyLinePlaceholder":3732},[640,3770,3772],{"class":2732,"line":3771},14,[640,3773,3774],{},"    IF @in_emp_id IS NULL\n",[640,3776,3778],{"class":2732,"line":3777},15,[640,3779,3780],{},"       OR NOT EXISTS (\n",[640,3782,3784],{"class":2732,"line":3783},16,[640,3785,3786],{},"            SELECT 1\n",[640,3788,3790],{"class":2732,"line":3789},17,[640,3791,3792],{},"            FROM dbo.Employees\n",[640,3794,3796],{"class":2732,"line":3795},18,[640,3797,3798],{},"            WHERE emp_id = @in_emp_id\n",[640,3800,3802],{"class":2732,"line":3801},19,[640,3803,3804],{},"       )\n",[640,3806,3808],{"class":2732,"line":3807},20,[640,3809,3810],{},"    BEGIN\n",[640,3812,3814],{"class":2732,"line":3813},21,[640,3815,3816],{},"        SET @out_emp_name = '无此员工';\n",[640,3818,3820],{"class":2732,"line":3819},22,[640,3821,3822],{},"        RETURN;\n",[640,3824,3826],{"class":2732,"line":3825},23,[640,3827,3828],{},"    END;\n",[640,3830,3832],{"class":2732,"line":3831},24,[640,3833,3733],{"emptyLinePlaceholder":3732},[640,3835,3837],{"class":2732,"line":3836},25,[640,3838,3839],{},"    SELECT @out_emp_name = emp_name\n",[640,3841,3843],{"class":2732,"line":3842},26,[640,3844,3845],{},"    FROM dbo.Employees\n",[640,3847,3849],{"class":2732,"line":3848},27,[640,3850,3851],{},"    WHERE emp_id = @in_emp_id;\n",[640,3853,3855],{"class":2732,"line":3854},28,[640,3856,3733],{"emptyLinePlaceholder":3732},[640,3858,3860],{"class":2732,"line":3859},29,[640,3861,3722],{},[640,3863,3865],{"class":2732,"line":3864},30,[640,3866,3727],{},[15,3868,3869],{},"解析：",[102,3871,3872,3875,3878,3881],{},[105,3873,3874],{},"IF OBJECT_ID(...) IS NOT NULL 用于判断存储过程是否已经存在，若存在则先删除，避免重复创建时报错。",[105,3876,3877],{},"@in_emp_id 是输入参数，@out_emp_name 是输出参数。",[105,3879,3880],{},"如果 @in_emp_id 为 NULL，或者 Employees 表中不存在该员工编号，则将输出参数赋值为“无此员工”。",[105,3882,3883],{},"如果员工存在，则通过 SELECT @out_emp_name = emp_name 将员工姓名赋值给输出参数。",[15,3885,3886],{},"调用示例：",[2721,3888,3890],{"className":2723,"code":3889,"language":2725,"meta":2726,"style":2726},"DECLARE @name VARCHAR(50);\n\nEXEC dbo.proc_get_employee_name\n@in_emp_id = 1,\n@out_emp_name = @name OUTPUT;\n\nSELECT @name AS emp_name;\n",[2728,3891,3892,3897,3901,3906,3911,3916,3920],{"__ignoreMap":2726},[640,3893,3894],{"class":2732,"line":2733},[640,3895,3896],{},"DECLARE @name VARCHAR(50);\n",[640,3898,3899],{"class":2732,"line":2739},[640,3900,3733],{"emptyLinePlaceholder":3732},[640,3902,3903],{"class":2732,"line":462},[640,3904,3905],{},"EXEC dbo.proc_get_employee_name\n",[640,3907,3908],{"class":2732,"line":2782},[640,3909,3910],{},"@in_emp_id = 1,\n",[640,3912,3913],{"class":2732,"line":2788},[640,3914,3915],{},"@out_emp_name = @name OUTPUT;\n",[640,3917,3918],{"class":2732,"line":2794},[640,3919,3733],{"emptyLinePlaceholder":3732},[640,3921,3922],{"class":2732,"line":2800},[640,3923,3924],{},"SELECT @name AS emp_name;\n",[3926,3927,3928],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":2726,"searchDepth":2739,"depth":2739,"links":3930},[3931,3932,3933,3934,3935,3936,3937,3954,3961,3966,3973,3978],{"id":99,"depth":2739,"text":100},{"id":365,"depth":2739,"text":366},{"id":415,"depth":2739,"text":416},{"id":432,"depth":2739,"text":433},{"id":476,"depth":2739,"text":477},{"id":517,"depth":2739,"text":518},{"id":547,"depth":2739,"text":100,"children":3938},[3939,3940,3941,3942,3943,3944,3945,3946,3947,3948,3949,3950,3951,3952,3953],{"id":551,"depth":462,"text":552},{"id":574,"depth":462,"text":575},{"id":596,"depth":462,"text":597},{"id":619,"depth":462,"text":620},{"id":689,"depth":462,"text":690},{"id":711,"depth":462,"text":712},{"id":733,"depth":462,"text":734},{"id":756,"depth":462,"text":757},{"id":779,"depth":462,"text":780},{"id":801,"depth":462,"text":802},{"id":823,"depth":462,"text":824},{"id":845,"depth":462,"text":846},{"id":867,"depth":462,"text":868},{"id":889,"depth":462,"text":890},{"id":911,"depth":462,"text":912},{"id":932,"depth":2739,"text":366,"children":3955},[3956,3957,3958,3959,3960],{"id":935,"depth":462,"text":552},{"id":953,"depth":462,"text":575},{"id":969,"depth":462,"text":597},{"id":985,"depth":462,"text":620},{"id":1002,"depth":462,"text":690},{"id":1021,"depth":2739,"text":416,"children":3962},[3963,3964,3965],{"id":1024,"depth":462,"text":552},{"id":1606,"depth":462,"text":575},{"id":1674,"depth":462,"text":597},{"id":1732,"depth":2739,"text":433,"children":3967},[3968,3969,3970,3971,3972],{"id":1744,"depth":462,"text":552},{"id":2183,"depth":462,"text":575},{"id":2712,"depth":462,"text":597},{"id":2753,"depth":462,"text":620},{"id":2833,"depth":462,"text":690},{"id":2904,"depth":2739,"text":477,"children":3974},[3975,3976,3977],{"id":2924,"depth":462,"text":552},{"id":3068,"depth":462,"text":575},{"id":3176,"depth":462,"text":597},{"id":3675,"depth":2739,"text":518,"children":3979},[3980],{"id":3678,"depth":462,"text":3678},"考试科目： 数据库系统\n本卷为： 闭卷\n本卷为： A 卷\n印数： 110\n出题院系： 计算机学院\n出题日期： 2026 年 4 月 20 日","md",{},"\u002Fsource\u002Fcs\u002Fdb\u002Fpastpapers\u002F25-26cs",{"title":5,"description":3981},"source\u002Fcs\u002Fdb\u002Fpastpapers\u002F25-26cs","3KSCoVir438NJRqcmQBuLYB8F8XKHUT6FDs4kpgY1W4",null,1784032891028]