数据库也是计算机类笔试面试中不可避免会遇到的考点,尤其是银行和部分传统软件类公司。这里根据整理的资料,对数据库的相关知识也做个总结吧。希望学过数据库但长时间不用的同学根据这些知识能够回忆和重拾,没学过的同学能掌握一些数据库的基础知识。

第一节

      一、相关概念

       1. Data:数据,是数据库中存储的基本对象,是描述事物的符号记录。

       2. Database:数据库,是长期储存在计算机内、有组织的、可共享的大量数据的集合。

       3. DBMS:数据库管理系统,是位于用户与操作系统之间的一层数据管理软件,用于科学地组织、存储和管理数据、高效地获取和维护数据。

       4. DBS:数据库系统,指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统、应用系统、数据库管理员(DBA)构成。

       5. 数据模型:是用来抽象、表示和处理现实世界中的数据和信息的工具,是对现实世界的模拟,是数据库系统的核心和基础;其组成元素有数据结构、数据操作和完整性约束。

       6. 概念模型:也称信息模型,是按用户的观点来对数据和信息建模,主要用于数据库设计。

       7. 逻辑模型:是按计算机系统的观点对数据建模,用于DBMS实现。

       8. 物理模型:是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法,是面向计算机系统的。

       9. 实体和属性:客观存在并可相互区别的事物称为实体。实体所具有的某一特性称为属性。

       10.E-R图:即实体-关系图,用于描述现实世界的事物及其相互关系,是数据库概念模型设计的主要工具。

       11.关系模式:从用户观点看,关系模式是由一组关系组成,每个关系的数据结构是一张规范化的二维表。

       12.型/值:型是对某一类数据的结构和属性的说明;值是型的一个具体赋值,是型的实例。

       13.数据库模式:是对数据库中全体数据的逻辑结构(数据项的名字、类型、取值范围等)和特征(数据之间的联系以及数据有关的安全性、完整性要求)的描述。

       14.数据库的三级系统结构:外模式、模式和内模式。

       15.数据库内模式:又称为存储模式,是对数据库物理结构和存储方式的描述,是数据在数据库内部的表示方式。一个数据库只有一个内模式。

       16.数据库外模式:又称为子模式或用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图。通常是模式的子集。一个数据库可有多个外模式。

       17.数据库的二级映像:外模式/模式映像、模式/内模式映像。

     

 二、重点知识点

       1. 数据库系统由数据库、数据库管理系统、应用系统数据库管理员构成。

       2. 数据模型的组成要素是:数据结构、数据操作、完整性约束条件

       3. 实体型之间的联系分为一对一、一对多多对多三种类型。

       4. 常见的数据模型包括:关系、层次、网状、面向对象、对象关系映射等几种。

       5. 关系模型的完整性约束包括:实体完整性、参照完整性和用户定义完整性

      6. 阐述数据库三级模式、二级映象的含义及作用。

        数据库三级模式反映的是数据的三个抽象层次: 模式是对数据库中全体数据的逻辑结构和特征的描述。内模式又称为存储模式,是对数据库物理结构和存储方式的描述。外模式又称为子模式或用户模式,是对特定数据库用户相关的局部数据的逻辑结构和特征的描述。

 

        数据库三级模式通过二级映象在 DBMS 内部实现这三个抽象层次的联系和转换。外模式面向应用程序, 通过外模式/模式映象与逻辑模式建立联系, 实现数据的逻辑独立性。 模式/内模式映象建立模式与内模式之间的一对一映射, 实现数据的物理独立性。

 

第二节

一、相关概念

 

       1. 主键: 能够唯一地标识一个元组的属性或属性组称为关系的键或候选键。 若一个关系有多个候选键则可选其一作为主键(Primary key)。

       2. 外键:如果一个关系的一个或一组属性引用(参照)了另一个关系的主键,则称这个或这组属性为外码或外键(Foreign key)。

       3. 关系数据库: 依照关系模型建立的数据库称为关系数据库。 它是在某个应用领域的所有关系的集合。

       4. 关系模式: 简单地说,关系模式就是对关系的型的定义, 包括关系的属性构成、各属性的数据类型、 属性间的依赖、 元组语义及完整性约束等。 关系是关系模式在某一时刻的状态或内容, 关系模型是型, 关系是值, 关系模型是静态的、 稳定的, 而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。

       5. . 实体完整性:用于标识实体的唯一性。它要求基本关系必须要有一个能够标识元组唯一性的主键,主键不能为空,也不可取重复值

       6. 参照完整性: 用于维护实体之间的引用关系。 它要求一个关系的外键要么为空, 要么取与被参照关系对应的主键值,即外键值必须是主键中已存在的值

       7. 用户定义的完整性:就是针对某一具体应用的数据必须满足的语义约束。包括非空、 唯一和布尔条件约束三种情况。

      二、重要知识点

 

      1. 关系数据库语言分为关系代数、关系演算和结构化查询语言三大类。

      2. 关系的 5 种基本操作是选择、投影、并、差、笛卡尔积。

      3.关系模式是对关系的描述,五元组形式化表示为:R(U,D,DOM,F),其中

            R —— 关系名

            U —— 组成该关系的属性名集合

            D —— 属性组 U 中属性所来自的域

            DOM —— 属性向域的映象集合

            F —— 属性间的数据依赖关系集合

       4.笛卡尔乘积,选择和投影运算如下

数据库面试(二)_外模式

第三节

一、相关概念

 

       1. SQL:结构化查询语言的简称, 是关系数据库的标准语言。SQL 是一种通用的、 功能极强的关系数据库语言, 是对关系数据存取的标准接口, 也是不同数据库系统之间互操作的基础。集数据查询、数据操作、数据定义、和数据控制功能于一体。

       2. 数据定义:数据定义功能包括模式定义、表定义、视图和索引的定义。

       3. 嵌套查询:指将一个查询块嵌套在另一个查询块的 WHERE 子句或 HAVING 短语的条件中的查询。

      二、重要知识点

       1. SQL 数据定义语句的操作对象有:模式、表、视图和索引。

       2. SQL 数据定义语句的命令动词是:CREATE、DROP 和 ALTER。

       3. RDBMS 中索引一般采用 B+树或 HASH 来实现。

       4. 索引可以分为唯一索引、非唯一索引和聚簇索引三种类型。

数据库面试(二)_sql_02

 

       6.SQL 创建表语句的一般格式为

              CREATE TABLE <表名>

              ( <列名> <数据类型>[ <列级完整性约束> ]

              [,<列名> <数据类型>[ <列级完整性约束>] ] …

              [,<表级完整性约束> ] ) ;

其中<数据类型>可以是数据库系统支持的各种数据类型,包括长度和精度。 

    列级完整性约束为针对单个列(本列)的完整性约束, 包括 PRIMARY KEY、 REFERENCES表名(列名)、UNIQUE、NOT NULL 等。 

    表级完整性约束可以是基于表中多列的约束,包括 PRIMARY KEY ( 列名列表) 、FOREIGN KEY REFERENCES 表名(列名) 等。

 

       7. SQL 创建索引语句的一般格式为

 

              CREATE [UNIQUE] [CLUSTER] INDEX <索引名>

              ON <表名> (<列名列表> ) ;

其中UNIQUE:表示创建唯一索引,缺省为非唯一索引;

      CLUSTER:表示创建聚簇索引,缺省为非聚簇索引;

      <列名列表>:一个或逗号分隔的多个列名,每个列名后可跟 ASC 或 DESC,表示升/降序,缺省为升序。多列时则按为多级排序。

 

        8. SQL 查询语句的一般格式为

              SELECT [ALL|DISTINCT] <算术表达式列表> FROM <表名或视图名列表>

              [ WHERE <条件表达式 1> ]

              [ GROUP BY <属性列表 1> [ HAVING <条件表达式 2 > ] ]

              [ ORDER BY <属性列表 2> [ ASC|DESC ] ] ;

其中

      ALL/DISTINCT: 缺省为 ALL, 即列出所有查询结果记录, 包括重复记录。 DISTINCT则对重复记录只列出一条。

       算术表达式列表:一个或多个逗号分隔的算术表达式,表达式由常量(包括数字和字符串)、列名、函数和算术运算符构成。每个表达式后还可跟别名。也可用 *代表查询表中的所有列。

      <表名或视图名列表>: 一个或多个逗号分隔的表或视图名。 表或视图名后可跟别名。

      条件表达式 1:包含关系或逻辑运算符的表达式,代表查询条件。

      条件表达式 2:包含关系或逻辑运算符的表达式,代表分组条件。

      <属性列表 1>:一个或逗号分隔的多个列名。

      <属性列表 2>: 一个或逗号分隔的多个列名, 每个列名后可跟 ASC 或 DESC, 表示升/降序,缺省为升序。

 

      关于SQL语句的知识这里先作如上简略介绍,具体写法下次将专门拿出一篇来叙述。

 

第四节

一、相关概念和知识

 

       1.触发器是用户定义在基本表上的一类由事件驱动的特殊过程。由服务器自动激活, 能执行更为复杂的检查和操作,具有更精细和更强大的数据控制能力。使用 CREATE TRIGGER 命令建立触发器。

       2.计算机系统存在技术安全、管理安全和政策法律三类安全性问题。

       3. TCSEC/TDI 标准由安全策略、责任、保证和文档四个方面内容构成。

 

       4. 常用存取控制方法包括自主存取控制(DAC)和强制存取控制(MAC)两种。

       5. 自主存取控制(DAC)的 SQL 语句包括 GRANT 和 REVOKE 两个。 用户权限由数据对象和操作类型两部分构成。

数据库面试(二)_完整性约束_03

       6. 常见SQL 自主权限控制命令和例子。

         1) 把对 Student 和 Course 表的全部权限授予所有用户。

              GRANT ALL PRIVILIGES ON TABLE Student,Course TO PUBLIC ;

         2) 把对 Student 表的查询权和姓名修改权授予用户 U4。

              GRANT SELECT,UPDATE(Sname) ON TABLE Student TO U4 ;

         3) 把对 SC 表的插入权限授予 U5 用户,并允许他传播该权限。

              GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPTION ;

         4) 把用户 U5 对 SC 表的 INSERT 权限收回,同时收回被他传播出去的授权。

              REVOKE INSERT ON TABLE SC FROM U5 CASCADE ;

         5) 创建一个角色 R1,并使其对 Student 表具有数据查询和更新权限。

              CREATE ROLE R1;

              GRANT SELECT,UPDATE ON TABLE Student TO R1;

         6) 对修改 Student 表结构的操作进行审计。

              AUDIT ALTER ON Student ;