Skip to content

建立数据库和数据仓库

时间:2023年5月7日 星期日

作者:小王

一、数据库管理系统架构

1.层次式和分布式数据库

层次式数据库以分层方式存储数据,分布式数据库将数据存储在多个数据库中,但在逻辑上是一个数据库。

Distributed Databases

2.关系型数据库

关系型数据库的主要组件是表,即关系,是非常流行的数据库类型,如MySQL。

• 表中的列对应属性(attributes)或字段(fields),列的数量被视为度数(degree),通常不变;

• 表中的行对应记录(record)或元组(tuple),行的数量被视为基数(cardinality),通常会发生变化。

键的类型

• 候选键(candidate key):用于唯一标识表中记录的属性子集。

主键(primary key):从候选键中选出用于唯一标识表中记录的键。

• 备用键(alternate key):未被选为主键的候选键。

外键(foreign key):用于建立两个表之间关系,也叫参照完整性。

Types of keys - SQLRelease

关系型数据库使用的标准语言是结构化查询语言(SQL),为使用者与数据库交互提供了接口。SQL有两个组件:数据定义语言(DDL)允许操作数据库结构,数据操作语言(DML)允许操作数据库数据。

二、数据库事务

1.定义

数据库事务(database transactions)是指包含一个或多个数据库操作的命令集合,要么全部执行成功,要么全部执行失败。

• 以end结尾的每个SQL操作都具有独立性,执行成功与失败不影响其他操作;

• 以commit结尾的每个SQL操作都属于一个事务,其中一个执行失败,其他操作都会回滚。

2.ACID模型

• 原子性(Atomicity):要么全部成功、要么全部失败。

• 一致性(Consistency):事务执行前后环境是一致的。

• 隔离性(Isolation):事务之间互不影响。

• 持久性(Durability):事务一旦提交数据不会丢失。

三、多级数据库安全

多级安全数据库指的是包含不同分类级别的信息,应用安全标签、知其所需等对用户的访问进行限制。

数据库视图(database views)通过限制可执行的SQL语句来进行权限控制也可实现多级安全性。

1.并发性

并发性(Concurrency)或编辑控制(edit control)是一种预防性安全机制,用以解决不同进程同时操作数据库时保障信息的正确性。

• 丢失更新:当两个进行同时更新数据库某条数据时,而互相不清楚对方活动,则会出现丢失更新。

• 脏读:当进程从没有成功提交的事务中读取记录时,则会出现脏读。

• 脏写:一个进程的事务回滚导致另一个进程已提交的信息也回滚,则会出现脏写。

• 不可重复度:一个进程读取一个数据两次,但读取的结果不一致,则会出现不可重复读。

并发性使用锁特性,在同一时间仅允许一个用户对某数据进行变更,拒绝其他用户对该数据的访问。

2.聚合

聚合(aggregation)攻击指的是使用SQL函数来获取一个或多个表的记录,以生成高价值的数据的过程。

3.推理

推理(inference)攻击是在聚合攻击的基础上,利用人类思维的演绎能力来获取高价值数据。

4.其他安全机制

• 时间标记:按时间顺序执行事务来维护数据的完整性和可用性。

• 细粒度控制:基于内容的访问控制、基于上下文的访问控制以及单元抑制(cell suppression)都是细粒度控制的体现。

• 数据库分区:根据数据的安全级别或内容类型对数据库进行分区。

• 多实例(Polyinstantiation):额外增加记录或表,不同安全级别能访问的数据的值是不同的。

• 噪声和干扰(noise and perturbation):在数据库中插入错误或欺骗性数据来保护真实数据。

四、开放数据库连接

开放数据库连接(ODBC)用以解决应用程序与不同类型数据库的通信,即翻译官的作用。

13 ODBC, JDBC, ADO.NET, OLE DB Drivers ideas | understanding, diagram  architecture, intelligent systems

五、NoSQL

因数据库性能或存储类型的限制,许多组织开始使用非关系型数据库,即NoSQL。

1.键值存储(key/value stores)

以键/值对存储信息,与编程中的字典一样,适合高速存取和大数据场景。

Key-Value Databases, Explained - KDnuggets

2.图形数据库(graph databases)

适合对象之间关系极其复杂的场景,如社交关系。

img

3.文档存储(document stores)

类似于键值存储,但以文档形式存储,存储信息可以非常复杂,如JSON。

Relational Databases vs. NoSQL Document Databases | Lenni's Technology Blog

六、存储器威胁

数据库是运行在操作系统、物理硬件之上的,因此也需要在其他方面加强风险控制。

1.非法访问

包括逻辑和物理上的,逻辑上通过权限控制、数据机密等方式应对,物理上通过门锁、保安等方式应对。

2.隐蔽通道

通过非正常传输通道造成数据泄密。

截图