[{"data":1,"prerenderedAt":702},["ShallowReactive",2],{"note:cs\u002Fdb\u002F100+70\u002FDay08-数据库70题-综合01-08":3},{"id":4,"title":5,"body":6,"description":16,"extension":695,"meta":696,"navigation":697,"path":698,"seo":699,"stem":700,"__hash__":701},"notes\u002Fsource\u002Fcs\u002Fdb\u002F100+70\u002FDay08-数据库70题-综合01-08.md","Day 08 - 数据库70题：综合题 1-8",{"type":7,"value":8,"toc":670},"minimark",[9,13,17,22,25,28,50,53,57,59,62,65,83,86,90,92,95,98,115,118,122,124,135,138,141,145,147,150,153,164,188,192,194,197,200,223,237,244,248,250,270,302,305,309,312,315,381,384,433,435,504,512,517,519,524,527,531,533,538,542,544,549,556,560,562,567,570,574,576,581,589,593,595,600,603,607,609,614,617,621,623,628,631,635,637,642,646,648,653,656,660,662,667],[10,11,5],"h1",{"id":12},"day-08-数据库70题综合题-1-8",[14,15,16],"p",{},"参考重点：教材第 1 章数据库系统组成，第 2 章关系代数。",[18,19,21],"h2",{"id":20},"_1-dba-的职责是什么","1. DBA 的职责是什么？",[14,23,24],{},"答案：",[14,26,27],{},"DBA 即数据库管理员，主要职责包括：",[29,30,31,35,38,41,44,47],"ol",{},[32,33,34],"li",{},"参与数据库设计，定义数据库模式、外模式和存储结构。",[32,36,37],{},"定义安全性规则，进行用户授权和权限管理。",[32,39,40],{},"定义完整性约束，保证数据正确、有效、相容。",[32,42,43],{},"制定备份和恢复策略，处理故障恢复。",[32,45,46],{},"监视数据库运行状态，进行性能调优、重组和空间管理。",[32,48,49],{},"维护数据字典和相关文档，协调不同用户和应用对数据库的使用。",[14,51,52],{},"讲解：DBA 不是普通程序员，而是数据库系统运行和数据资源管理的负责人。教材第 1 章把 DBA 列为数据库系统组成部分之一。",[18,54,56],{"id":55},"_2-什么是数据字典数据字典包含哪些基本内容","2. 什么是数据字典？数据字典包含哪些基本内容？",[14,58,24],{},[14,60,61],{},"数据字典是 DBMS 维护的关于数据库中数据的描述信息，也称元数据仓库。",[14,63,64],{},"基本内容包括：",[66,67,68,71,74,77,80],"ul",{},[32,69,70],{},"数据库、模式、表、视图、索引等对象定义。",[32,72,73],{},"属性名、数据类型、长度、取值范围、默认值。",[32,75,76],{},"主键、外键、唯一、检查等完整性约束。",[32,78,79],{},"用户、角色、权限等安全信息。",[32,81,82],{},"存储结构、统计信息、访问路径等系统管理信息。",[14,84,85],{},"讲解：数据字典保存“关于数据的数据”。用户数据是业务内容，数据字典描述这些业务内容如何组织和受哪些规则约束。",[18,87,89],{"id":88},"_3-叙述数据字典的主要任务和作用","3. 叙述数据字典的主要任务和作用。",[14,91,24],{},[14,93,94],{},"数据字典的主要任务是集中存储、维护和提供数据库元数据。",[14,96,97],{},"作用包括：",[29,99,100,103,106,109,112],{},[32,101,102],{},"支持 DDL 执行和数据库对象管理。",[32,104,105],{},"支持查询优化器了解表结构、索引和统计信息。",[32,107,108],{},"支持完整性检查和安全性检查。",[32,110,111],{},"支持 DBA 进行监控、维护和文档管理。",[32,113,114],{},"为应用开发人员理解数据库结构提供依据。",[14,116,117],{},"讲解：如果没有数据字典，DBMS 就无法知道表有哪些列、列是什么类型、谁有权限访问、哪些约束需要检查。",[18,119,121],{"id":120},"_4-叙述模型模式具体值三者之间的联系和区别","4. 叙述模型、模式、具体值三者之间的联系和区别。",[14,123,24],{},[66,125,126,129,132],{},[32,127,128],{},"数据模型：描述数据、联系、操作和约束的抽象工具，例如关系模型。",[32,130,131],{},"模式：用某种数据模型定义出来的数据库结构，是相对稳定的“型”。",[32,133,134],{},"具体值：某一时刻数据库中的实际数据，也称实例或当前值，是不断变化的“值”。",[14,136,137],{},"联系：数据模型规定能怎样建模；模式是在该模型下对某个数据库结构的定义；具体值必须符合模式及其约束。",[14,139,140],{},"讲解：类比编程：数据模型像语言规则，模式像类或表结构，具体值像运行时对象或表中的行。",[18,142,144],{"id":143},"_5-叙述等值连接与自然连接的区别和联系","5. 叙述等值连接与自然连接的区别和联系。",[14,146,24],{},[14,148,149],{},"等值连接是在两个关系的属性之间用等号条件进行连接；自然连接是一种特殊等值连接，它自动比较两个关系中同名属性，并在结果中只保留一份同名属性列。",[14,151,152],{},"区别：",[66,154,155,158,161],{},[32,156,157],{},"等值连接需要明确连接条件，可连接不同名属性。",[32,159,160],{},"自然连接按同名属性自动连接。",[32,162,163],{},"等值连接结果中通常保留两个被比较属性；自然连接会去掉重复同名属性。",[14,165,166,167,171,172,175,176,179,180,183,184,187],{},"讲解：若 ",[168,169,170],"code",{},"R(A,B)"," 与 ",[168,173,174],{},"S(B,C)"," 自然连接，结果属性是 ",[168,177,178],{},"(A,B,C)","；若做等值连接 ",[168,181,182],{},"R.B=S.B","，结果可能是 ",[168,185,186],{},"(R.A,R.B,S.B,S.C)","。",[18,189,191],{"id":190},"_6-举例说明关系参照完整性的含义","6. 举例说明关系参照完整性的含义。",[14,193,24],{},[14,195,196],{},"参照完整性要求一个关系中的外键值，必须为空或等于被参照关系中某个主键值。",[14,198,199],{},"例子：",[66,201,202,212],{},[32,203,204,207,208,211],{},[168,205,206],{},"Student(Sno, Sname)"," 中 ",[168,209,210],{},"Sno"," 是主键。",[32,213,214,207,217,219,220,187],{},[168,215,216],{},"SC(Sno, Cno, Grade)",[168,218,210],{}," 是外键，引用 ",[168,221,222],{},"Student(Sno)",[14,224,225,226,229,230,232,233,236],{},"则 ",[168,227,228],{},"SC"," 中每一条选课记录的 ",[168,231,210],{}," 必须在 ",[168,234,235],{},"Student"," 表中存在，不能出现一个不存在学生的选课记录。",[14,238,239,240,243],{},"讲解：参照完整性用于维护表之间联系的正确性。SQL Server 中用 ",[168,241,242],{},"FOREIGN KEY ... REFERENCES ..."," 定义。",[18,245,247],{"id":246},"_7-将关系代数中的五种基本运算用元组关系演算表达式表示","7. 将关系代数中的五种基本运算用元组关系演算表达式表示。",[14,249,24],{},[14,251,252,253,256,257,260,261,256,264,256,267,187],{},"设关系谓词为 ",[168,254,255],{},"R(t)","、",[168,258,259],{},"S(t)","，元组变量为 ",[168,262,263],{},"t",[168,265,266],{},"u",[168,268,269],{},"v",[29,271,272,278,284,290,296],{},[32,273,274,275],{},"并：",[168,276,277],{},"R ∪ S = { t | R(t) OR S(t) }",[32,279,280,281],{},"差：",[168,282,283],{},"R - S = { t | R(t) AND NOT S(t) }",[32,285,286,287],{},"选择：",[168,288,289],{},"σF(R) = { t | R(t) AND F(t) }",[32,291,292,293],{},"投影：",[168,294,295],{},"πA(R) = { u | EXISTS t (R(t) AND u[A] = t[A]) }",[32,297,298,299],{},"笛卡尔积：",[168,300,301],{},"R × S = { v | EXISTS r EXISTS s (R(r) AND S(s) AND v = r ∘ s) }",[14,303,304],{},"讲解：关系代数是过程性更强的表达，关系演算是声明性表达。元组演算的核心是“用谓词描述结果元组应满足什么条件”。",[18,306,308],{"id":307},"_8-有三个关系-sc-和-sc试用关系代数表达式表示查询","8. 有三个关系 S、C 和 SC，试用关系代数表达式表示查询。",[14,310,311],{},"题面关系：",[14,313,314],{},"S",[316,317,318,337],"table",{},[319,320,321],"thead",{},[322,323,324,328,331,334],"tr",{},[325,326,327],"th",{},"S#",[325,329,330],{},"SNAME",[325,332,333],{},"AGE",[325,335,336],{},"SEX",[338,339,340,355,369],"tbody",{},[322,341,342,346,349,352],{},[343,344,345],"td",{},"1",[343,347,348],{},"李强",[343,350,351],{},"23",[343,353,354],{},"男",[322,356,357,360,363,366],{},[343,358,359],{},"2",[343,361,362],{},"刘丽",[343,364,365],{},"22",[343,367,368],{},"女",[322,370,371,374,377,379],{},[343,372,373],{},"5",[343,375,376],{},"张友",[343,378,365],{},[343,380,354],{},[14,382,383],{},"C",[316,385,386,399],{},[319,387,388],{},[322,389,390,393,396],{},[325,391,392],{},"C#",[325,394,395],{},"CNAME",[325,397,398],{},"TEACHER",[338,400,401,412,423],{},[322,402,403,406,409],{},[343,404,405],{},"K1",[343,407,408],{},"C语言",[343,410,411],{},"王华",[322,413,414,417,420],{},[343,415,416],{},"K5",[343,418,419],{},"数据库原理",[343,421,422],{},"程军",[322,424,425,428,431],{},[343,426,427],{},"K8",[343,429,430],{},"编译原理",[343,432,422],{},[14,434,228],{},[316,436,437,448],{},[319,438,439],{},[322,440,441,443,445],{},[325,442,327],{},[325,444,392],{},[325,446,447],{},"GRADE",[338,449,450,459,468,477,486,495],{},[322,451,452,454,456],{},[343,453,345],{},[343,455,405],{},[343,457,458],{},"83",[322,460,461,463,465],{},[343,462,359],{},[343,464,405],{},[343,466,467],{},"85",[322,469,470,472,474],{},[343,471,373],{},[343,473,405],{},[343,475,476],{},"92",[322,478,479,481,483],{},[343,480,359],{},[343,482,416],{},[343,484,485],{},"90",[322,487,488,490,492],{},[343,489,373],{},[343,491,416],{},[343,493,494],{},"84",[322,496,497,499,501],{},[343,498,373],{},[343,500,427],{},[343,502,503],{},"80",[14,505,506,507,256,509,511],{},"为避免歧义，下面使用 ",[168,508,330],{},[168,510,395],{}," 作为姓名和课程名。",[513,514,516],"h3",{"id":515},"_81-检索程军老师所授课程的课程号和课程名","8.1 检索“程军”老师所授课程的课程号和课程名。",[14,518,24],{},[14,520,521],{},[168,522,523],{},"πC#,CNAME(σTEACHER='程军'(C))",[14,525,526],{},"讲解：先选择教师为程军的课程，再投影课程号和课程名。",[513,528,530],{"id":529},"_82-检索年龄大于-21-的男学生学号和姓名","8.2 检索年龄大于 21 的男学生学号和姓名。",[14,532,24],{},[14,534,535],{},[168,536,537],{},"πS#,SNAME(σAGE>21 AND SEX='男'(S))",[513,539,541],{"id":540},"_83-检索至少选修程军老师所授全部课程的学生姓名","8.3 检索至少选修“程军”老师所授全部课程的学生姓名。",[14,543,24],{},[14,545,546],{},[168,547,548],{},"πSNAME(S ⋈ ((πS#,C#(SC)) ÷ (πC#(σTEACHER='程军'(C)))))",[14,550,551,552,555],{},"讲解：这是除法。被除数是学生选课对 ",[168,553,554],{},"(S#, C#)","，除数是程军老师讲授的全部课程号。结果是选了这些全部课程的学生号，再连接 S 取姓名。",[513,557,559],{"id":558},"_84-检索李强同学不学课程的课程号","8.4 检索“李强”同学不学课程的课程号。",[14,561,24],{},[14,563,564],{},[168,565,566],{},"πC#(C) - πC#(σSNAME='李强'(S) ⋈ SC)",[14,568,569],{},"讲解：所有课程号减去李强已选课程号，就是李强未选课程。",[513,571,573],{"id":572},"_85-检索至少选修两门课程的学生学号","8.5 检索至少选修两门课程的学生学号。",[14,575,24],{},[14,577,578],{},[168,579,580],{},"πSC1.S#(σSC1.S#=SC2.S# AND SC1.C#\u003C>SC2.C#(ρSC1(SC) × ρSC2(SC)))",[14,582,583,584,586,587,187],{},"讲解：把 SC 改名成两份，找同一学生对应不同课程的配对。原题括号中写成 ",[168,585,392],{}," 应为 ",[168,588,327],{},[513,590,592],{"id":591},"_86-检索全部学生都选修的课程的课程号和课程名","8.6 检索全部学生都选修的课程的课程号和课程名。",[14,594,24],{},[14,596,597],{},[168,598,599],{},"πC#,CNAME(C ⋈ ((πS#,C#(SC)) ÷ (πS#(S))))",[14,601,602],{},"讲解：除数是全部学生号，结果是被所有学生都选过的课程号。",[513,604,606],{"id":605},"_87-检索选修课程包含程军老师所授课程之一的学生学号","8.7 检索选修课程包含“程军”老师所授课程之一的学生学号。",[14,608,24],{},[14,610,611],{},[168,612,613],{},"πS#(SC ⋈ πC#(σTEACHER='程军'(C)))",[14,615,616],{},"讲解：“之一”表示至少选一门，所以用连接即可，不用除法。",[513,618,620],{"id":619},"_88-检索选修课程号为-k1-和-k5-的学生学号","8.8 检索选修课程号为 K1 和 K5 的学生学号。",[14,622,24],{},[14,624,625],{},[168,626,627],{},"πS#(σC#='K1'(SC)) ∩ πS#(σC#='K5'(SC))",[14,629,630],{},"讲解：同时满足两个课程条件，用交集表达最清楚。",[513,632,634],{"id":633},"_89-检索选修全部课程的学生姓名","8.9 检索选修全部课程的学生姓名。",[14,636,24],{},[14,638,639],{},[168,640,641],{},"πSNAME(S ⋈ ((πS#,C#(SC)) ÷ (πC#(C))))",[513,643,645],{"id":644},"_810-检索选修课程包含学号为-2-的学生所修课程的学生学号","8.10 检索选修课程包含学号为 2 的学生所修课程的学生学号。",[14,647,24],{},[14,649,650],{},[168,651,652],{},"πS#((πS#,C#(SC)) ÷ (πC#(σS#='2'(SC))))",[14,654,655],{},"讲解：结果学生的选课集合必须覆盖 2 号学生的选课集合。这也是除法题。",[513,657,659],{"id":658},"_811-检索选修课程名为c语言的学生学号和姓名","8.11 检索选修课程名为“C语言”的学生学号和姓名。",[14,661,24],{},[14,663,664],{},[168,665,666],{},"πS#,SNAME(S ⋈ SC ⋈ σCNAME='C语言'(C))",[14,668,669],{},"讲解：先找到课程名为 C语言 的课程，再通过 SC 找选修学生，最后连接 S 取学号和姓名。",{"title":671,"searchDepth":672,"depth":672,"links":673},"",2,[674,675,676,677,678,679,680,681],{"id":20,"depth":672,"text":21},{"id":55,"depth":672,"text":56},{"id":88,"depth":672,"text":89},{"id":120,"depth":672,"text":121},{"id":143,"depth":672,"text":144},{"id":190,"depth":672,"text":191},{"id":246,"depth":672,"text":247},{"id":307,"depth":672,"text":308,"children":682},[683,685,686,687,688,689,690,691,692,693,694],{"id":515,"depth":684,"text":516},3,{"id":529,"depth":684,"text":530},{"id":540,"depth":684,"text":541},{"id":558,"depth":684,"text":559},{"id":572,"depth":684,"text":573},{"id":591,"depth":684,"text":592},{"id":605,"depth":684,"text":606},{"id":619,"depth":684,"text":620},{"id":633,"depth":684,"text":634},{"id":644,"depth":684,"text":645},{"id":658,"depth":684,"text":659},"md",{},true,"\u002Fsource\u002Fcs\u002Fdb\u002F100+70\u002Fday08-70-01-08",{"title":5,"description":16},"source\u002Fcs\u002Fdb\u002F100+70\u002FDay08-数据库70题-综合01-08","BNeeq6fXQGh2bCdwhvpKJLQ-Pi5pVeV3ho8QKGQEu1w",1793692174935]