您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 数据库面试基础知识总结
1.数据抽象:物理抽象、概念抽象、视图级抽象,内模式、模式、外模式提示:(1).概念模式:(面向单个用户的)是数据中全部数据的整体逻辑结构的描述。它由若干个概念记录类型组成。(2).外模式:(面向全局的)是用户与数据库系统的接口,是用户用到的那部分数据的描述。它由若干个外部记录类型组成。(3).内模式:(面向存储的)是数据库在物理存储方面的描述,它定义所有的内部记录类型、索引、和文件的组织方式,以及数据控制方面的细节。模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。对应与同一个模式可以有任意多个外模式。在数据库中提供两级映像功能,即外模式/模式映像和模式/内模式映像。对于没一个外模式,数据库系统都有一个外模式/模式映像它定义了该外模式与模式之间的对应关系。这些映像定义通常包括在各自外模式的描述中,当模式改变时,由数据库管理员对各个外模式/模式的映像做相应改变,可以使外模式保持不变,从而应用程序不必修改,保证了数据的逻辑独立性。数据库中只有一个模式,也只有一个内模式,所以模式/内模式映像是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系。当数据库的存储结构改变了,由数据库管理员对模式/内模式映像做相应改变,可以使模式保持不变,从而保证了数据的物理独立性。2.SQL语言包括数据定义、数据操纵(DataManipulation),数据控制(DataControl)数据定义:CreateTable,AlterTable,DropTable,Craete/DropIndex等数据操纵:Select,insert,update,delete,数据控制:grant,revoke3.SQL常用命令CREATETABLEStudent(IDNUMBERPRIMARYKEY,NAMEVARCHAR2(50)NOTNULL);//建表CREATEVIEWview_nameASSelect*FROMTable_name;//建视图CreateUNIQUEINDEXindex_nameONTableName(col_name);//建索引INSERTINTOtablename{column1,column2,…}values(exp1,exp2,…);//插入INSERTINTOViewname{column1,column2,…}values(exp1,exp2,…);//插入视图实际影响表UPDATEtablenameSETname=’zang3’condition;//更新数据DELETEFROMTablenameWHEREcondition;//删除GRANT(Select,delete,…)ON(对象)TOUSER_NAME[WITHGRANTOPTION];//授权REVOKE(权限表)ON(对象)FROMUSER_NAME[WITHREVOKEOPTION]//撤权列出工作人员及其领导的名字:SelectE.NAME,S.NAMEFROMEMPLOYEEESWHEREE.SUPERName=S.Name4.视图提示:计算机数据库中的视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。从用户角度来看,一个视图是从一个特定的角度来查看数据库中的数据。从数据库系统内部来看,一个视图是由SELECT语句组成的查询定义的虚拟表。从数据库系统内部来看,视图是由一张或多张表中的数据组成的,从数据库系统外部来看,视图就如同一张表一样,对表能够进行的一般操作都可以应用于视图,例如查询,插入,修改,删除操作等。5.完整性约束:实体完整性、参照完整性、用户定义完整性提示:定义:关系完整性是为保证数据库中数据的正确性和相容性,对关系模型提出的某种约束条件或规则。完整性通常包括域完整性,实体完整性、参照完整性和用户定义完整性,其中域完整性,实体完整性和参照完整性,是关系模型必须满足的完整性约束条件。(1).域完整性约束:域完整性是保证数据库字段取值的合理性。属性值应是域中的值,这是关系模式规定了的。除此之外,一个属性能否为NULL,这是由语义决定的,也是域完整性约束的主要内容。域完整性约束是最简单、最基本的约束。在当今的关系DBMS中,一般都有域完整性约束检查功能。包括检查(CHECK)、默认值(DEFAULT)、不为空(NOTNULL)等。(2).实体完整性实体完整性是指关系的主关键字不能重复也不能取“空值\。一个关系对应现实世界中一个实体集。现实世界中的实体是可以相互区分、识别的,也即它们应具有某种惟一性标识。在关系模式中,以主关键字作为惟一性标识,而主关键字中的属性(称为主属性)不能取空值,否则,表明关系模式中存在着不可标识的实体(因空值是“不确定\的),这与现实世界的实际情况相矛盾,这样的实体就不是一个完整实体。按实体完整性规则要求,主属性不得取空值,如主关键字是多个属性的组合,则所有主属性均不得取空值。如表1.1将编号作为主关键字,那么,该列不得有空值,否则无法对应某个具体的职工,这样的表格不完整,对应关系不符合实体完整性规则的约束条件。(3).参照完整性参照完整性是定义建立关系之间联系的主关键字与外部关键字引用的约束条件。关系数据库中通常都包含多个存在相互联系的关系,关系与关系之间的联系是通过公共属性来实现的。所谓公共属性,它是一个关系R(称为被参照关系或目标关系)的主关键字,同时又是另一关系K(称为参照关系)的外部关键字。如果参照关系K中外部关键字的取值,要么与被参照关系R中某元组主关键字的值相同,要么取空值,那么,在这两个关系间建立关联的主关键字和外部关键字引用,符合参照完整性规则要求。如果参照关系K的外部关键字也是其主关键字,根据实体完整性要求,主关键字不得取空值,因此,参照关系K外部关键字的取值实际上只能取相应被参照关系R中已经存在的主关键字值。在学生管理数据库中,如果将选课表作为参照关系,学生表作为被参照关系,以“学号\作为两个关系进行关联的属性,则“学号\”是学生关系的主关键字,是选课关系的外部关键字。选课关系通过外部关键字“学号’’参照学生关系。(4).用户定义完整性实体完整性和参照完整性适用于任何关系型数据库系统,它主要是针对关系的主关键字和外部关键字取值必须有效而做出的约束。用户定义完整性则是根据应用环境的要求和实际的需要,对某一具体应用所涉及的数据提出约束性条件。这一约束机制一般不应由应用程序提供,而应有由关系模型提供定义并检验,用户定义完整性主要包括字段有效性约束和记录有效性。6.第三范式:提示:(1).第一范式(1NF):在关系模式R中的每一个具体关系r中,如果每个属性值都是不可再分的最小数据单位,则称R是第一范式的关系。例:如职工号,姓名,电话号码组成一个表(一个人可能有一个办公室电话和一个家里电话号码)规范成为1NF有三种方法:一是重复存储职工号和姓名。这样,关键字只能是电话号码。二是职工号为关键字,电话号码分为单位电话和住宅电话两个属性三是职工号为关键字,但强制每条记录只能有一个电话号码。以上三个方法,第一种方法最不可取,按实际情况选取后两种情况。(2).第二范式(2NF):如果关系模式R(U,F)中的所有非主属性都完全依赖于任意一个候选关键字,则称关系R是属于第二范式的。例:选课关系SCI(SNO,CNO,GRADE,CREDIT)其中SNO为学号,CNO为课程号,GRADEGE为成绩,CREDIT为学分。由以上条件,关键字为组合关键字(SNO,CNO)在应用中使用以上关系模式有以下问题:a.数据冗余,假设同一门课由40个学生选修,学分就重复40次。b.更新异常,若调整了某课程的学分,相应的元组CREDIT值都要更新,有可能会出现同一门课学分不同。c.插入异常,如计划开新课,由于没人选修,没有学号关键字,只能等有人选修才能把课程和学分存入。d.删除异常,若学生已经结业,从当前数据库删除选修记录。某些门课程新生尚未选修,则此门课程及学分记录无法保存。原因:非关键字属性CREDIT仅函数依赖于CNO,也就是CREDIT部分依赖组合关键字(SNO,CNO)而不是完全依赖。解决方法:分成两个关系模式SC1(SNO,CNO,GRADE),C2(CNO,CREDIT)。新关系包括两个关系模式,它们之间通过SC1中的外关键字CNO相联系,需要时再进行自然联接,恢复了原来的关系(3).第三范式(3NF):如果关系模式R(U,F)中的所有非主属性对任何候选关键字都不存在传递信赖,则称关系R是属于第三范式的。例:如S1(SNO,SNAME,DNO,DNAME,LOCATION)各属性分别代表学号,姓名,所在系,系名称,系地址。关键字SNO决定各个属性。由于是单个关键字,没有部分依赖的问题,肯定是2NF。但这关系肯定有大量的冗余,有关学生所在的几个属性DNO,DNAME,LOCATION将重复存储,插入,删除和修改时也将产生类似以上例的情况。原因:关系中存在传递依赖造成的。即SNO-DNO。而DNO-SNO却不存在,DNO-LOCATION,因此关键辽SNO对LOCATION函数决定是通过传递依赖SNO-LOCATION实现的。也就是说,SNO不直接决定非主属性LOCATION。解决目地:每个关系模式中不能留有传递依赖。解决方法:分为两个关系S(SNO,SNAME,DNO),D(DNO,DNAME,LOCATION)注意:关系S中不能没有外关键字DNO。否则两个关系之间失去联系。7.ER(实体/联系)模型提示:实体-关系模型是面向现实世界,而不是面向实现方法的,它主要是用于描述现实信息世界中数据的静态特性,而不涉及数据的处理过程。基本概念:实体:现实世界中任何可以相互区分的事物。解释:实体可以是人,也可以是物;可以指实际的对象,也可以指某些概念。例如,一个职工、一个学生、一门课,学生的一些选课。属性:实体(或联系)所具有的某方面特征(相当于数据库表的字段(列)。例如:学生实体,可由学号、姓名、性别、年龄、系、年级。(,王平,男,22,计算机系,三年级)这些属性组合起来就表现了一个学生的情况。(相当于记录,特性为字段)。联系:发生在实体之间具有特定含义的对应关系PS:实体、属性一般是名词,联系一般是动词ER图中的四个基本成分:1.矩形框,表示实体2.菱形框,表示实体之间的联系3.椭圆形框,表示实体或联系的属性4.直线,连接实体、属性、和联系。直线端部标注联系的种类(1:1、1:N或M:N)连个实体(或表)之间的联系分为三类:(1).一对一联系(1:1)如果实体集合A中的每一个实体,实体集合B中至少都一个实体与之联系,反之亦然,则称为实体集合A与实体集合B具有一对一联系,记为1:1。例如,一个班级有一个班长。(2).一对多联系(1:n)如果实体集合A中的每一个实体,实体集合B中至少都n(n=0)个实体与之联系,反之,对于实体集合B中每一个实体,实体集合A中的至多有一个实体与之联系,则称为实体集合A与实体集合B具有一对多联系,记为1:n。例如,一个班级有多个班干部。(3).多对多联系(m:n)如果实体集合A中的每一个实体,实体集合B中至少有n(n=0)个实体与之联系,反之,对于实体集合B中每一个实体,实体集合A中的至少有m(m=0)个实体与之联系,则称为实体集合A与实体集合B具有多对多联系,记为m:n。例如,一个学生可以选修多门课,一门课可以有多个学生选修。8.索引的作用提示:可以利用索引快速访问数据库表中的特定信息。索引是对数据库表中一个或多个列(例如,employee表的姓氏(lname)列)的值进行排序的结构。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息。索引提供指针以指向存储在表中指定列的数据值,然后根据指定的排序次序排列这些指针。数据库使用索引的方式与使用书的目录很相似:通过搜索索引找到特
本文标题:数据库面试基础知识总结
链接地址:https://www.777doc.com/doc-5439968 .html