数据库原理

来源:互联网 发布:linux 编译安装php5.5 编辑:程序博客网 时间:2024/05/20 03:41

数据库对象

有表,索引,视图,图表,缺省值,规则,触发器,存储过程,用户

数据模型

基本概念:现实世界数据特征的抽象,用来定义数据如何组织,数据之间的关系怎样。

层次:

1.概念模型(Conceptual):按用户的观点来对数据和信息建模

2.逻辑/实现模型(Logical / Implementation):层次模型,网状模型,关系模型

3.物理模型(Physical):数据在具体DBMS产品中的物理储存方式

THe three -schema Architecture

这里写图片描述

1.Internal Schema:(也称存储模式)数据物理结构和储存方式的描述,是数据在数据库内部的表示方式.
2.Conceptual Schema:(全局模式):有时简称“模式”。是对数据库中全体数据的逻辑结构和特征的描述.
3.External Schema:(也称子模式或者用户模式。)数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述.

数据的约束条件:完整性约束

  1. 域约束:对属性取值范围的约束

  2. 键约束:每个关系必须要有主键,且每个主键必须不相同

  3. 非空约束:属性值不能为NULL

  4. 实体完整性约束:主键值不能为空

  5. 参照完整性约束:外键可以取NULL值,但若外键为另一关系主键,则不能为NULL。

  6. 用户定义的完整性

各种数据操作可能违反的完整性约束

插入操作:域约束、键约束、非空约束、实体完整性约束、参照完整性约束

删除操作:参照完整性约束

更新操作:域约束、键约束、非空约束、实体完整性约束、参照完整性约束

The difference between Controlled Redundancy and Uncontrolled Redundancy:

未受控制的数据存储冗余会导致如下的问题:

  1. 更新数据时的重复工作

  2. 浪费空间

  3. 数据可能会不一致

因此,理想情况下,我们应该设计一个没有冗余的数据库,但是有时候我们需要提高查询的效率,因此我们引入了控制冗余(Controlled Redundancy)

例如:

我们将学生名和课程号冗余存储于GRADE_REPORT表中,因为查询成绩的时候我们需要同时查询学生姓名以及课程号。

关系代数:

五种基本运算:并、差、笛卡尔积、选择、投影

关系代数解释器:关系代数解释器(模拟关系代数)

内连接的种类:

  1. 等值连接

  2. 不等连接

  3. 自然连接:一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉;

数据库应用系统设计的基本过程:

Phases of Database Design andImplementation Process(数据库设计的基本过程)

Phase 1:Requirements Collections and Analysis(需求收集与分析)

Phase 2:Conceptual Database Design(概念结构设计)

Phase 3:Choice of a DBMS(选择合适的DBMS)

Phase 4:Data Model Mapping (Logical Database Design)(逻辑结构设计)

Phase 5:Physical Database Design(物理结构设计)

Phase 6:Database System Implementation(数据库实施)

Phase 7:Database System Operation and Maintenance(数据库运行和维护)

ER图符号

这里写图片描述

将ER模型映射成逻辑模型的步骤:

  1. 映射强实体型

  2. 映射弱实体型

  3. 映射1 : 1 二元联系型

  4. 映射1 : N 二元联系型

  5. 映射M : N二元联系型

  6. 映射多值属性

  7. 映射N元联系

范式

第一范式(1NF):数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。

第二范式(2NF):数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖(部分函数依赖指的是存在组合关键字中的某些字段决定非关键字段的情况),也即所有非关键字段都完全依赖于任意一组候选关键字。
第三范式(3NF):在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式。所谓传递函数依赖,指的是如果存在”A → B → C”的决定关系,则C传递函数依赖于A。因此,满足第三范式的数据库表应该不存在如下依赖关系: 关键字段 → 非关键字段x → 非关键字段y

0 0
原创粉丝点击