要找工作找实习了,看了看之前的项目,几乎都是与数据库应用相关的,虽然项目比较水,但是面试的时候估计人家得详细的问。所以,数据库这块得非常认真的准备。准备看几篇文章,看看书,今天是第一天复习,先把基础的东西搞懂。
No.1 一些名词概念
- 数据库(database):存储和提供数据的东西(库房);
- 数据(data):数据库中存储的基本对象;
- 数据库管理系统(DBMS):属于与系统软件,是介于用户与操作系统的数据库管理软件;
- 数据库系统(DBS):包括数据库、数据库管理系统、应用系统和数据库管理员(DBA);
- 主键(Primary Key):用于唯一的标识表中某一条记录的属性或者属性的集合;
- 外键(Foreign Key):用于与另外一张表关联,是另外一张表的主键;
- 超键(Super Key):官方的解释是唯一能标识元组的一个属性或者是多个属性的集合,其实就是主键,或者其他属性与主键的集合;
- 元组(Tuple):在二维表中,元组是一行数据,在二维关系数据库中,也被称作是记录;
- 候选键():没有多余属性的超键,主键其实就是候选键中的唯一一个;
- 模式(Schema):一个数据库的描述,包括对数据库结构,数据类型和约束;
- 实例(Instance/State):数据库中某一刻真实存在的数据。Instance是Schema在某一时刻的具体化,实例化;
- 数据库操纵语言(DML:Database Manipulation Language):增删改查;
- 数据库定义余元(DDL:Data Definition Language):定义、修改、删除数据库中的对象;
- 数据库控制余元(DCL:Database Control Lang):用于控制用户对数据库的操纵权限;
- 数据模型(Data Model):现实世界数据的抽象,用来定义数据如何组织,数据之间的关系怎样;
- 并相容性(Union Compatibility):两个关系具有并相容性需要保证两个关系的属性个数和每个属性的域是相同的;
- 视图(View):视图是虚拟的表,并不是物理上真实存在的表,是由基本表和其他视图派生的数据,对视图的更新实际上转换为对基表的更新;
No.2 数据模型(Data Model)
分层理解数据模型,共分为三层。
- 概念模型(Conceptual):从用户的角度来对数据和信息建模;
- 逻辑模型/实现模型(Logical/Implementation):层次模型、网状模型、关系模型
- 物理模型(Physical):数据在DBMS产品中的物理存储
No.3 数据库系统的三级模式(three-level schema)
- 内模式(internal schema):也称作存储模式,数据的屋里结构和存储方式的描述,是数据在数据库内部的表示方式。
- 概念模式(Conceptual Schema):也称作全局模式,有时候简称模式,是对数据库中全体数据的逻辑结构和特征的描述
- 外模式(External Schema):也称作子模式或者用户模式,数据库用户能够看到和使用的局部数据的逻辑结构和特征的描述。
No.4 数据库系统的两级映射以及物理和逻辑独立性:
- 两级映射:
- 模式/内模式映射
- 模式/外模式映射
数据的物理独立性
— 模式/内模式映射提供了数据的物理独立性,当数据的物理结构发生变化时,只需要修改内模式与概念模式之间的映射即可数据的逻辑独立性
— 概念模式与外模式之间的映射提供了数据的逻辑独立性。当数据的整体逻辑结构发生变化时,只需要修改各个外模式与概念模式之间的映射即可保证应用程序不受影响
No.5 数据的约束条件—完整性约束
- 域约束:对属性取值的约束
- 键约束:每个关系必须要有主键,且每个主键不能相同
- 非空约束:属性值不能为NULL
- 实体完整性约束:主键值不能为NULL
- 参照完整性约束:外键值可以为NULL,但是当其值不为空时,被参照的关系的主键值必须与参照关系的外键值相同
- 用户定义完整性:它主要是针对关系的主关键字和外部关键字取值必须有效而做出的约束。用户定义完整性(user defined integrity)则是根据应用环境的要求和实际的需要,对某一具体应用所涉及的数据提出约束性条件。这一约束机制一般不应由应用程序提供,而应有由关系模型提供定义并检验,用户定义完整性主要包括字段有效性约束和记录有效性。
No.6 数据操作可能引起违反约束
- 插入操作:域约束、键约束、非空约束、实体完整性约束、参照完整性约束;
- 删除操作:参照完整性约束;
- 更新操作:域约束、键约束、非空约束、实体完整性约束、参照完整性约束;
No.7 结构化查询语句(SQL)的执行顺序
- From子句组装来自不同数据源的数据;
- WHERE子句基于指定的条件对记录筛选;
- GROUP BY子句将数据划分多个组;
- 使用内聚函数进行计算;
- HAVING子句筛选分组;
- 计算所有的表达式;
- ORDER BY对结果集进行排序
NO.8 控制冗余(Controled Redundancy)与非控制冗余(Uncontroled Redundancy)的区别
为控制冗余的数据存储冗余会导致如下问题:
- 更新数据时的重复工作;
- 浪费空间;
- 数据可能不一致
理想情况下,我们应该设计一个没有冗余的数据库,但是有时候为了提高查询效率我们引入了控制冗余(Controlled Redundancy)数据库。
No.9 关系是个什么东西?
- 关系看上去像一张二维表;
- 关系的域(属性值的取值范围)为一组原子值(不可再分割的值);
- 关系中的元组必定各不相同;
No.10 关系代数
- 并
- 差
- 笛卡儿积
- 选择
- 投影
No.11 内连接的种类
- 等值连接
- 不等连接
- 自然连接
No.12 SQL 语句
No.13 三值为此逻辑
- TRUE
- FAlSE
- UNKNOWN
No.14 数据库应用系统设计的基本过程
- 需求收集和分析(Requirements Collections and Analysis)
- 概念结构设计(Conceptual Database Design)
- 选择合适的DBMS(Choice of a DBMS)
- 逻辑结构设计(Data Model Mapping (Logical Database Design))
- 物理结构的设计(Physical Database Design)
- 数据库实施(Database System Implementation)
- 数据库运行和维护(Database System Operation and Maintenance)
No.15 将ER模型映射成逻辑模型的步骤
- 映射强实体型
- 映射弱实体型
- 映射1:1二元联系型
- 映射1:N二元联系型
- 映射N:N二元联系型
- 映射多值属性
- 映射N元联系
No.16 数据库范式
- 一范式:且仅当所有域只包含原子值,即每个分量都是不可再分的数据项,则称实体E满足第一范式
- 二范式:当且仅当实体E满足第一范式,且每一个非键属性完全依赖主键时,满足第二范式
- 三范式:当且仅当实体E是第二范式(2NF),且E中没有非主属性传递依赖时,满足第三范式
未完待续!