如何设计关系型数据库



这是一个容易让人懵掉的题目,及其容易引发面试的惨案。
其实不必慌张,设计一款数据库就跟设计一款软件差不多,要将其划分为多个模块,这道面试题就是为了考察模块划分能力以及对数据库的了解。

首先要先知道关系型数据库的组成

怎么在数据库中创建关系表sql server 数据库中怎么建立关系_SQL

对数据库进行划分:
一、存储(文件系统):数据库的最主要功能,用来存储数据,类似OS文件系统,将数据持久化存入磁盘中。

二、程序实例:用逻辑结构映射出物理结构,以及必须提供数据的管理方式:

1、存储管理:对数据的格式以及分隔进行统一的管理,即把物理数据通过逻辑的形式进行组织和表现出来。

题外话:可以通过减少IO的方式来提高存储的效率,即一次读取多行数据来减少IO,数据库一般也是把逻辑存储单位用块或者页来表示,每个块或页中会存放多行数据,这样读取的时候便可把多行数据一同加载进内存。

2、缓存机制:将取出的数据块存放在缓存里,下次需要的时候便可直接在内存取得,而不用发生IO,优化SQL的执行效率。
注:缓存不宜过大,并应设有一定的淘汰机制。
3、SQL解析:用来解析可读的SQL语言。
4、日志管理:记录执行的历史操作
5、权限划分:多用户管理,提供用户管理的私密空间。
6、容灾机制:当数据库蹦掉的时候用来恢复的机制。
7、索引管理: 用来优化数据的查询效率。
8、锁管理:使数据库支持并发操作。

怎么在数据库中创建关系表sql server 数据库中怎么建立关系_SQL_02

索引管理与锁管理是最能突出数据库特点的模块,当然也是数据库面试的重中之重。