数据库设计知识点

数据库设计的基本步骤

用户需求分析

即分析数据存储的要求,产出物有数据流图、数据字典、需求说明书。获得用户对系统的三个要求:信息要求、处理要求、系统要求。

概念结构设计

就是设计E-R图,也即实体-联系图。工作步骤包括:选择局部应用、逐一设计分E-R图、E-R图合并。分E-R图进行合并时,他们之间存在的冲突主要有以下3类:1.属性冲突。同一属性可能会存在于不同的分E-R图中。2.命名冲突。相同意义的属性,在不同的分E-R图上有着不同的命名,或者是名称相同的属性在不同的分E-R图中代表着不同的意义。3.结构冲突。同一实体在不同的分E-R图中有不同的属性,同一对象在某一分E-R图中被抽象而在另一分E-R图中又被抽象为属性。

逻辑结构设计

将E-R图转换成关系模式。工作步骤包括:确定数据模型、将E-R图转换成为指定的数据模型、确定完整性约束和确定用户视图。

物理结构设计

是逻辑模型在计算机中的具体实现方案。步骤包括确定数据分布、存储结构和访问方式。

数据库实施阶段

根据逻辑设计和物理设计阶段的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。

数据库运行与维护阶段

数据库应用系统经过试运行即可投入运行,但该阶段需要不断地对系统进行评价、调整与修改。

例:在数据库系统中,数据库的视图、基本表和存储文件的结构分别与(外模式、模式、内模式)对应;数据的物理独立性和数据的逻辑独立性是分别通过修改(模式与内模式之间的映像、外模式与模式之间的映像)来完成的。

数据模型

数据模型是对现实世界数据特征的抽象。最常用的数据模型分为概念数据模型和基本数据模型。

数据模型的三要素
数据结构(所研究对象类型的集合)、数据操作(对数据库中各种对象的实例允许执行的操作集合)、数据的约束条件(一组完整性规则的集合)

E-R模型

实体
用矩形表示,包括候选键(能唯一地标识一行元组的属性集)、主键(从候选键中选一个作为主键)、外键(在另一个关系模式中充当主键的属性)
联系
用菱形表示,分为一对一、一对多、多对多
属性
用椭圆表示,分为简单和复合属性、单值和多值属性(双椭圆)、NULL属性、派生属性(虚椭圆)。
弱实体集(依赖实体集的实体)双边矩形
弱实体集对应的关系 双边菱形

例:E-R模型向关系模型转换时,两个实体E1和E2之间的多对多联系R应该转换为一个独立的关系模式,且该关系模式的关键字由(E1和E2的关键字)组成。

通常在设计关系模式时,派生属性不会作为关系中的属性来存储。按照这个原则,假设原设计的学生关系模式为Students(学号、姓名、性别、出生日期、年龄、家庭地址),那么该关系模式正确的设计应为 Students(学号、姓名、性别、出生日期、家庭地址)
年龄可以通过出生日期派生计算得来

关系代数

属性和域

笛卡尔积与关系
n元组之间关系的任意组合
2^n数量

关系的相关名词
候选码、主码、主属性、外码

关系的三种类型
基本关系、查询表、视图表

关系数据库模式

E-R图转换为关系模式
首先,每个实体都要转换为一个关系模式;然后对于联系:
1)一对一,两端实体中的任意一个实体的主键加入到另一个实体中作为外键;
2)一对多,一端实体的主键加入到多端实体中作为外键;
3)多对多,多对多的联系会产生一个新的关系模式,此关系模式的属性由联系的两个实体的主键以及自己的特有属性所组成。

完整性约束
完整性规则提供了一种手段来保证当用户对数据库做修改时不会破坏数据的一致性。防止对数据的意外破坏。关系模型的完整性规则是对关系的某种约束条件。关系的完整性分为三类:
实体完整性:关系的主属性不能取空。
参照完整性:外键的值或者为空,或者必须等于对应关系中的主键值。
用户定义完整性:根据语义要求所自定义的约束条件。

关系运算

关系代数运算符有4类:集合运算符、专门的关系运算符、算术比较运算符和逻辑运算符

例:
若关系R有m个元组,关系S有n个元组,则R和S的笛卡尔积有(m*n)个元组。

5种基本的关系代数运算
并、差、广义笛卡尔积、投影、选择

扩展的关系代数运算
交、连接(X与Y的关系为>或小于的连接、X与Y的关系为相等的叫等值连接、自然连接(是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,相同属性组的值要相等,并且在结果集中将重复属性列去掉))、除、广义投影、外连接(左外连接、右外连接、全外连接)

关系数据库SQL语言

索引分为聚簇索引和非聚簇索引。聚簇索引是指索引表中索引项的顺序与表中记录的物理顺序一致的索引。

例:
采用三级模式结构的数据库系统中,如果对一个表创建聚簇索引,那么改变的是数据库的(内模式)

关系数据库设计基本理论

关系数据库规范化理论主要包括数据依赖、范式和模式设计方法。其中核心基础是数据依赖,数据依赖中最重要的、最基本的就是函数依赖。

函数依赖

例:
关系R(A,B,C)满足下列函数依赖F{A-》B,A-》C,B-》AC},关系R的候选关键字为()
入度为0的节点,本例无
中间节点判断能否遍历其他的所有节点A、B
候选关键字则为A和B

函数依赖的公理系统
image

例:
给定关系模式R(U,F),其中U为属性集,F是U上的一组函数依赖,那么函数依赖的公理系统中的分解规则是指()为F所蕴含。
若X可以决定Y,Z是属于Y的子集,则X可以决定Z

规范化

关系数据库设计的方法之一就是设计满足适当范式的模式,通常可以通过判断分解后的模式达到几范式来评价模式规范化的程度。范式有:
image
其中级别越高,模式规范化程度也就越高。
1.1NF(第一范式)
定义:若关系模式R的每一个分量是不可再分的数据项,则关系模式R属于第一范式。即属性是原子不可再分的。
1NF存在的问题:数据冗余、插入异常、删除异常等问题。
2.2NF(第二范式)
定义:若关系模式R属于1NF,即每一个非主属性完全(函数)依赖于码,则关系模式R属于2NF。即每个非主属性都由整个码决定。当1NF消除了非主属性对码的部分函数依赖,则成为2NF。
3.3NF(第三范式)
定义:若关系模式R(U,F)中不存在这样的码X,属性组Y及非主属性Z使得X决定Y(Y不能决定X),Y决定Z成立,则关系模式R属于3NF。即当2NF消除了非主属性对码的传递函数依赖,则称为3NF。
4.BCNF(巴克斯范式)
BCNF是修正的第三范式。规定了每个属性(包括主属性)都不传递依赖于码。即当3NF消除了主属性对码的部分函数依赖和传递函数依赖,则称为BCNF。
5.4NF(第四范式)
4NF主要是消除了多值依赖。

例:
关系模型(员工姓名,工资级别,工资金额),其中员工姓名是主键,工资级别决定工资金额,请问满足(2NF)范式。
1NF:属性原子不可再分
2NF:不存在部分函数依赖,没有消除传递依赖,则为2NF
3NF:不存在传递依赖
本题中工资级别决定工资金额,存在传递依赖,因此不满足3NF,属于2NF。

模式分解

模式分解是模式规范化的工具,模式分解使用无损连接和保持函数依赖来衡量模式分解后是否导致原有模式中部分信息丢失。

例:
给出关系R(U,F),U={A,B,C,D,E},F={A->BC,B->D,D->E},以下关于F说法正确的是(F蕴含A->D、A->E、B->E,故F存在传递依赖)
若将R分解为p={R1(U1,F1),R2(U2,F2)},其中U1={A,B,C}、U2={B、D、E},则分解p();
U1与U2交集可以决定U1与U2或者U2与U1的差集 属于F1与F2的并集
B->AC|DE(在F+里,无损连接)
{A->BC}并{B->D,D->E}=F+=F说明保持函数依赖
无损连接并保持函数依赖

数据库的控制功能

事务管理

事务的定义语句有:Begin Transaction(事务开始)、Commit(事务提交,表示事务成功地结束)、Rollback(事务回滚、表示事务非成功地结束)

事务的ACID特性:
原子性:要么都做,要么都不做。
一致性:事务执行的结果必须从一个一致性状态转移到另一个一致性状态。中间状态对外不可见。
隔离性:事务之间相互隔离,互不干扰。
持久性:事务提交成功后,对数据库的更新操作是永久有效的。

并发控制

并发操作就是在多用户操作系统中,可能出现多个事务同时操作同一数据的情况。并发操作会导致3种数据不一致的问题:
1.读脏数据
事务T1更新了数据R,事务T2读取了更新后的数据R,事务T1由于某种原因被撤销,进行了事务回滚,数据R恢复原值,事务T2读取了脏数据。

2.丢失修改(丢失更新)
当两个事务T1和T2读入同一数据做修改,并发执行时,T1或T2把对方线程修改的结果覆盖掉,造成了数据的丢失更新问题,导致数据不一致。

3.不可重复读
事务T1读取了数据R,事务T2读取并更新了数据R。当事务T1再读取数据R以进行核对时,得到的两次读取数据不一致。

造成以上3种数据不一致的主要原因是事务的并发操作破坏了事务的隔离性。

并发控制技术

基本封锁类型 特点
排他锁(X锁) 事务T对数据A加X锁:
1.只允许事务T读取、修改数据A
2.只有等该锁解除之后,其他事务才能够对数据A加任何锁类型
共享锁(S锁) 解决了X锁太严格,不允许其他事务并发读的问题。
事务T对数据A加S锁,则:
1.只允许事务T读取数据A但不能够修改
2.可允许其他事务对其加S锁,但不允许加X锁

数据库安全

数据库的故障类型:
1.事务内部故障:如运算溢出、除零错误、并发事务发生死锁等;
2.系统故障:也称为软故障,是指造成系统停运的事件,如CPU故障、OS故障、突然停电等。
3.介质故障:也称为硬故障,如磁盘损坏等;
4.计算机病毒

数据库的备份方法

数据库的转储分为静态转储和动态转储,海量转储、增量转储和差量转储,以及日志文件。
静态转储

其他转储

例:
假设系统中有正在运行中的事务,若要转储全部数据库,则应采用(动态全局转储)方式。
正在运行:动态
转储全部数据库:全局

数据仓库

image

image

分布式数据库

image

image

大数据

image

例:
在分布式数据库中有分片透明、复制透明、位置透明和逻辑透明等基本概念。其中(位置透明)是指用户无需知道数据存放的物理位置。

posted @ 2025-06-16 14:48  梦回大唐meng  阅读(32)  评论(0)    收藏  举报