1. 什么是数据库?
- 数据库就是有组织的存储应用程序数据,然后查询检索指定需要的那部分。
2. 数据库分类?
2-1. SQL数据库:
- 关系数据库将数据保存在表中来模拟应用程序中不同的实体。eg: student, teacher
- 一个表有一个固定数量的列和一个可变的行数。列定义了数据表所代表的实体的属性。eg: student(id, name, age, tel…..)
表有种特殊列称作主键,它持有一个惟一的标识符为表中存储的每一行。 - 表也可以有外键,用于引用其他表的主键。这些行之间的连接称作关系,也是关系数据库模型的基础。
2-2. 案例
案例:
- roles表存储了一组所有可能的用户角色,每一个都被定义为唯一id值——也是表的主键。
- users表包含一组用户,同样每一个都有唯一id值。
表结构如下:
用户角色数据库表
用户数据库表
# users表中的role_id列是一个引用role表中id列的外键,以这种方式确立分配给每个用户的角色。
users: id username, password, role_id
(一对多的关系)
3. 关系型数据库优势:
- 关系数据库存储数据高效且避免重复。重命名用户角色在这个数据库中会变得异常简单,因为角色名保存在单独的地方。当roles表中的角色名发生改变,所有用户持有的role_id引用的角色会立即看到这些变化。
4. 关系型数据库缺点:
- 将数据拆分到多个表中则会变得更加复杂。生成一组用户及其角色会产生一个小问题,因为用户和用户角色需要从两张表中读,且只有连接后才能一起出现。当需要的时候关系数据库引擎会提供支持来执行两个表的连接操作。