第01章_数据库概述
1. 数据库与数据库管理系统
1.1 数据库的相关概念
- DB:数据库(Database),存储数据的仓库,本质是一个文件系统。
- DBMS:数据库管理系统(Database Management System),一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制。用户通过数据库管理系统访问数据库中表内的数据。
- SQL:结构化查询语言(Structured Query Language),用来与数据库通信的语言。
2. RDBMS与非RDBMS
2.1 关系型数据库
2.1.1 实质
-
关系型数库模型是把复杂的数据结构结为简单的二元关系(二维表格形式)。
-
关系型数据库以行(row)和列(column)的形式存储数据,这一系列的行和列被称为表(table),一组表组成了一个库(database)。
-
表和表之间的数据记录有关系(relationship)。
-
SQL就是关系型数据库的查询语言。
2.1.2 优势
- 复杂查询:可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询。
- 事务支持:使得对于安全性能很高的数据访问要求得以实现。
2.2 非关系型数据库(非RDBMS)
非关系型数据库,可看成传统关系型数据库功能阉割版本,基于键值对存储数据,不需要经过SQL层的解析,性能非常高。
- 键值型数据库,通过Key-Value键值的方式来存储数据。
- 文档型数据库,可存放并获取文档,可以是XML、JSON等格式。
- 搜索引擎数据库,应用在搜索引擎领域的数据存储形式,核心原理是”倒排索引“。
- 列式数据库,将数据按照列存储到数据库中,适合于分布式文件系统。
- 图形数据库,利用图这种数据结构存储了实体(对象)之间的关系。
- NoSQL。
3. 关系型数据库设计规则
3.1 表、记录、字段
- E-R(entity-relationship,实体-联系)模型中有三个主要概念是:实体集、属性、联系集。
- 一个实体集(class)对应于数据库中的一个表(table),一个实体(instance)则对应于数据库表中的一行(row),也称为一条纪录(recode)。一个属性(attribute)对应于数据库表中的一列(column),也称为一个字段(field)。
- ORM思想(Object Relational Mapping),对象关系映射。
3.2 表的关联关系
3.2.1 一对一关联(one-to-one)
- 两个表的记录是一一对应关系,实际开发应用不多。
- 两种建表原则:
- 外键唯一:主表的主键和从表的外键(唯一),形成主外键关系,外键唯一。
- 外键是主键:主表的主键和从表的主键,形成主外键关系。
3.2.3 一对多关系(one-to-many)
一对多建表原则:在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键。
3.2.3 多对多(many-to-many)
要表示多对多关系,必须创建第三个表,该表通常称为联接表,它将多对多关系划分为两个一对多关系,将这两个表的主键都插入到第三个表中。