数据库面试基础知识总结

  • 格式:docx
  • 大小:157.81 KB
  • 文档页数:16

1. 数据抽象:物理抽象、概念抽象、视图级抽象, 内模式、模式、外模式

提示:

(1) .概念模式:(面向单个用户的)

是数据中全部数据的整体逻辑结构的描述。它由若干个概念记录类型组成。 (2) .外模式:(面向全局的)

是用户与数据库系统的接口,是用户用到的那部分数据的描述。它由若干个外部记录类型组成。 (3) .内模式:(面向存储的)

是数据库在物理存储方面的描述,它定义所有的内部记录类型、索引、和文件的组织方式,以及数据 控制方面的细节。 模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。对应与同一个模式可以有 任意多个外模式。在数据库中提供两级映像功能,即外模式/模式映像和模式/内模式映像。对于没一个外模 式,数据库系统都有一个外模式 /模式映像它定义了该外模式与模式之间的对应关系。这些映像定义通常包 括在各自外模式的描述中,当模式改变时,由数据库管理员对各个外模式 /模式的映像做相应改变,可以使 外模式保持不变,从而应用程序不必修改,保证了数据的逻辑独立性。数据库中只有一个模式,也只有一 个内模式,所以模式/内模式映像是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系。当数 据库的存储结构改变了,由数据库管理员对模式 /内模式映像做相应改变,可以使模式保持不变,从而保证 了数据的物理独立性。

2. SQL语言包括数据定义、数据操纵 (Data Manipulation),数据控制(Data Control) 数据定义:Create Table, Alter Table, Drop Table, Craete/Drop Index 等 数据操纵: Select ,insert, update,delete, 数据控制: grant,revoke

3. SQL常用命令 CREATE TABLE Student( ID NUMBER PRIMARY KEY , NAME V ARCHAR2(50) NOT NULL);// 建表 CREATE VIEW view_name AS Select * FROM Table_name;〃 建视图

Create UNIQUE INDEX index_name ON TableName(col_name);// 建索引 INSERT INTO tablename {columnl , column2,…} values(exp1,exp2,…);//插入

INSERT INTO Viewname {columnl , column2,…} values(exp1,exp2,…);//插入视图实际影响表 UPDATE tablename SET name= ' zang 3 ' cond更新数据 DELETE FROM Tablename WHERE condition;// 删除 GRANT (Select,delete,…)ON (对象)TO USER_NAME [WITH GRANT OPTION];// 授权 REVOKE (权限表)ON(对象)FROM USER_NAME [WITH REVOKE OPTION] // 撤权 列岀工作人员及其领导的名字:

Select E.NAME, S.NAME FROM EMPLOYEE E S WHERE E.SUPERName=S.Name 4. 视图 提示: 计算机数据库中的视图是一个虚拟表」内容由查询定义。同真实的表一样,视图包含一系列带有名 称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的 查询所引用的表,并且在引用视图时动态生成。 从用户角度来看,一个视图是从一个特定的角度来查看数据库中的数据。从数据库系统内部来看,一 个视图是由SELECT语句组成的查询定义的虚拟表。从 数据库系统内部来看,视图是由一张或多张表中 的数据组成的,从数据库系统外部来看,视图就如同一张表一样,对表能够进行的一般操作都可以应用于 视图,例如查询,插入,修改,删除操作等。

5. 完整性约束:实体完整性、参照完整性、用户定义完整性 提示: 定义:关系完整性是为保证数据库中数据的正确性和相容性,对关系模型提岀的某种约束条件或规则。完 整性通常包括域完整性,实体完整性、参照完整性和用户定义完整性,其中域完整性,实体完整性和参照 完整性,是关系模型必须满足的完整性约束条件。 (1) .域完整性约束:域完整性是保证数据库字段取值的合理性。 属性值应是域中的值,这是关系模式规定了的。除此之外,一个属性能否为 NULL,这是由语义决定 的,也是域完整性约束的主要内容。域完整性约束是最简单、最基本的约束。在当今的关系 DBMS中,一 般都有域完整性约束检查功能。 包括检查(CHECK)、默认值(DEFAULT)、不为空(NOT NULL)等。 (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)各属性分另M弋表学号, 姓名,所在系,系名称,系地址。 关键字SNO决定各个属性。由于是单个关键字,没有部分依赖的问题,肯定是 2NF。但这关系肯定有大量 的冗余,有关学生所在的几个属性 DNO,DNAME,LOCATION将重复存储,插入,删除和修改时也将产 生类似以上例的情况。 原因:关系中存在传递依赖造成的。 即SNO -> DNO。而DNO -> SNO却不存在,DNO -> LOCATION,因 此关键辽 SNO对LOCATION 函数决定是通过传递依赖 SNO -> LOCATION 实现的。也就是说, SNO 不直接决定非主属性 LOCA TION。 解决目地:每个关系模式中不能留有传递依赖。 解决方法:分为两个关系 S(SNO,SNAME,DNO),D(DNO,DNAME,LOCATION) 注意:关系S中不能没有外关键字 DNO。否则两个关系之间失去联系。

7. ER(实体/联系)模型 提示: 实体-关系模型是面向现实世界,而不是面向实现方法的,它主要是用于描述现实信息世界中数据的静 _ 态特性,而不涉及数据的处理过程。 基本概念: 实体:现实世界中任何可以相互区分的事物。 解释:实体可以是人,也可以是物;可以指实际的对象,