1《数据库原理》第一章绪论本章内容:数据库系统概述、数据模型、数据库系统结构本章主要考点:数据、数据库、数据库管理系统的概念、概念模型、三种数据模型、数据独立性、常用DBMS、DBA对应目标1题型:选择题5个,10分;简答题1个,5分。共15分1、试述数据、数据库、数据库系统、数据库管理系统的概念(1)数据(Data):描述事物的符号记录称为数据。(2)数据库(DataBase,简称DB):数据库是长期储存在计算机内的、有组织的、可共享的数据集合。(3)数据库系统(DataBaseSystem,简称DBS):数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。(4)数据库管理系统(DataBaseManagementSystem,简称DBMS):数据库管理系统是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。2、对于DB、DBS、DBMS的关系,下列哪一种描述是正确的(B)A、DB包括DBS、DBMSB、DBS包括DB、DBMSC、DBMS包括DBS、DBD、以上都不对3、数据库领域中最常用的逻辑数据模型有层次模型、网状模型、关系模型等。4、对数据库中进行增加记录类型或增加数据项,通过调整下列哪一级映像,可以使应用程序尽可能保持不变,便达到了哪一种数据的独立性(A)A、外模式/模式映像,逻辑数据独立性B、外模式/模式映像,物理数据独立性C、模式/内模式映像,逻辑数据独立性D、模式/内模式映像,物理数据独立性第二章关系数据库本章内容:关系数据结构及形式化定义、关系操作、关系的完整性、关系代数本章主要考点:概念、关系的完整性、★★关系代数对应目标3题型:计算题3个,6分;写关系代数表达式3个,9分共15分。1、关系数据库管理系统应能实现的专门关系运算包括(B)。A.排序、索引、统B.选择、投影、连接C.关联、更新、排序D.显示、打印、制表2、自然连接是构成新关系的有效方法。一般情况下,当对关系R和S使用自然连接时,要求R和S含有一个或多个共有的(D)。A.元组B.行C.记录D.属性3、关系运算中花费时间可能最长的运算是(C)。A.投影B.选择C.笛卡尔积D.除4、关系模式的任何属性(A)。A.不可再分B.可再分C.命名在该关系模式中可以不惟一D.以上都不是25、在关系代数运算中,五种基本运算为(C)。A.并、差、选择、投影、自然连接B.并、差、交、选择、投影C.并、差、选择、投影、乘积D.并、差、交、选择、乘积6、要求学生的年龄在15至40岁之间,是关系模型的哪一种完整性规则(C)A.参照完整性B.实体完整性C.用户定义的完整性规则D.以上都不是7、关系R的元数为5,关系S的元数是4,则RS可以等价于下列哪一种(B)2﹥3A.2﹥3(R×S)B.2﹥7(R×S)C.RSD.6<2(R×S)8、关系的三类完整性约束:实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值参照完整性规则:若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:●或者取空值(F的每个属性值均为空值)●或者等于S中某个元组的主码值用户定义的完整性:针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求★★9、关系代数(1)R∪S仍为n目关系,由属于R或属于S的元组组成(2)R-S仍为n目关系,由属于R而不属于S的所有元组组成(3)R∩S仍为n目关系,由既属于R又属于S的元组组成(4)笛卡尔积:R×S列:(n+m)列元组的集合,元组的前n列是关系R的一个元组,后m列3是关系S的一个元组,行:k1×k2个元组(5)选择:选择运算符的含义:在关系R中选择满足给定条件的诸元组σF(R)={t|tR∧F(t)='真'}F:选择条件,是一个逻辑表达式例如:查询信息系(IS系)全体学生σSdept='IS'(Student)(6)投影:投影运算符的含义:从R中选择出若干属性列组成新的关系πA(R)={t[A]|tR}A是R中的属性列例如:查询学生的姓名和所在系,即求Student关系上学生姓名和所在系两个属性上的投影πSname,Sdept(Student)(7)连接:连接运算的含义:从两个关系的笛卡尔积中选取属性间满足一定条件的元组分为等值连接、一般连接、自然连接例如:关系R和关系S如下所示:4(8)除:给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合,记作:R÷S={tr[X]|trR∧πY(S)Yx}例如:设关系R、S分别为下图的(a)和(b),R÷S的结果为图(c)★例:设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:S(SNO,SNAME,STATUS,CITY);P(PNO,PNAME,COLOR,WEIGHT);J(JNO,JNAME,CITY);SPJ(SNO,PNO,JNO,QTY);供应商表S由供应商号码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成;零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成;工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成;供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。试用关系代数完成如下查询:(1)求供应工程J1零件的供应商号码SNO;(2)求供应工程J1零件P1的供应商号码SNO;(3)求供应工程J1零件为红色的供应商号码SNO;(4)求没有使用天津供应商生产的红色零件的工程号JNO;(5)求至少用了供应商S1所供应的全部零件的工程号JNO。解:(1)求供应工程J1零件的供应商号码SNO:5πSno(σJno=‘J1’(SPJ))(2)求供应工程J1零件P1的供应商号码SNO:πSno(σJno=‘J1’∧Pno=‘P1‘(SPJ))(3)求供应工程J1零件为红色的供应商号码SNO:πSno(σJno=‘J1‘(σCOLOR=’红‘(P)SPJ))或πSno(σJno=‘J1‘(SPJ)(σCOLOR=’红‘(P))(4)求没有使用天津供应商生产的红色零件的工程号JNO:πJno(SPJ)-πJNO(σcity=‘天津’∧Color=‘红‘(SSPJP))或πJno(SPJ)-πJNO(σcity=‘天津’(S)SPJσColor=‘红‘(P))(5)求至少用了供应商S1所供应的全部零件的工程号JNO:πJno,Pno(SPJ)÷πPno(σSno=‘S1‘(SPJ))第三章关系数据库标准语言SQL本章内容:SQL概述、数据定义、数据查询、数据更新、视图本章主要考点:基本概念、★★数据查询的基本语句操作、数据更新语句对应目标4题型:填空10空,10分;写SQL语句5个,10分,共20分。1、SQL语言是(C)语言。A.层次数据库B.网络数据库C.关系数据库D.非数据库2、SQL语言具有两种使用方式,分别称为交互式SQL和(C)。A.提示式SQLB.多用户SQLC.嵌入式SQLD.解释式SQL3、假定学生关系是S(S#,SNAME,SEX,AGE),课程关系是C(C#,CNAME,TEACHER),学生选课关系是SC(S#,C#,GRADE)。要查找选修“COMPUTER”课程的“女”学生姓名,将涉及到关系(D)。A.SB.SC,CC.S,SCD.S,C,SC4、如下面的数据库的表中,若职工表的主关键字是职工号,部门表的主关键字是部门号,SQL操作(B)不能执行。A.从职工表中删除行(‘025’,‘王芳’,‘03’,720)B.将行(‘005,’,‘乔兴’,‘04’,750)插入到职工表中C.将职工号为,‘001’的工资改为700D.将职工号为,’038’的部门号改为‘03’5、在SQL语言中,用来测试一个集合里是否有重复元组存在,使用下列哪一个关键字(A)A.UNIQUEB.DISTINCTC.EXISTSD.NOTIN★★6、SQL数据查询语句SELECT语句格式:SELECT[ALL|DISTINCT]目标列表达式[,目标列表达式]…FROM表名或视图名[,表名或视图名]…[WHERE条件表达式][GROUPBY列名1[HAVING条件表达式]][ORDERBY列名2[ASC|DESC]];(注:SQL语句中不区分大小写)①单表查询(1)选择表中的若干列:查询指定列:例:查询全体学生的学号与姓名SELECTSno,SnameFROMStudent;6查询所有列:(将目标列表达式指定为*)例:查询全体学生的详细记录。SELECT*FROMStudent;查询结果计算的值:例:查全体学生的姓名及其出生年份。SELECTSname,2012-Sage/*假定当年的年份为2012年,减去年龄即得出生年份*/FROMStudent;(2)选择表中的若干元组取消取值重复的行:(指定DISTINCT关键词,去掉表中重复的行)例:查询选修了课程的学生号码SELECTDISTINCTSno(使用DISTINCT关键词取消了重复学号的行)FROMSC;查询满足条件的行:(WHERE语句)例:查询计算机科学系全体学生的名单。(比较)SELECTSnameFROMStudentWHERESdept=‘CS’;例:查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄(确定范围)SELECTSname,Sdept,SageFROMStudentWHERESageBETWEEN20AND23;例:查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。(确定集合)SELECTSname,SsexFROMStudentWHERESdeptIN('IS','MA','CS');例:查询学号为200215121的学生的详细情况。(字符匹配)SELECT*FROMStudentWHERESnoLIKE‘200215121';例:某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。查询缺少成绩的学生的学号和相应的课程号。(空值)SELECTSno,CnoFROMSCWHEREGradeISNULL/*不能用’=’代替IS*/例:查询计算机系年龄在20岁以下的学生姓名。(多重条件)7SELECTSnameFROMStudentWHERESdept='CS'ANDSage20;(3)ORDERBY子句可以按一个或多个属性列排序。升序:ASC;降序:DESC;缺省值为升序例:查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。SELECTSno,GradeFROMSCWHERECno='3'ORDERBYGradeDESC;(4)聚集函数COUNT([DISTINCT|ALL]*)统计元组个数COUNT([DISTINCT|ALL]列名)统计一列中值的个数SUM([DISTINCT|ALL]列名)计算一列值的总和AVG([DISTINCT|ALL]列名)计算一列值的平均值MAX([DISTINCT|ALL]列名)求一列中的最大值MIN([DISTINCT|ALL]列名)求一列中的最小值例:计算1号课程的学生平均成绩。SELECTAVG(Grade)FROMSCWHERECno='1';②多表查询(1)等值查询例:查询每个学生及其选修课程的情况SELECTStud