数据库概述
一、数据库与数据库管理系统
-
DB:数据库
存储数据的仓库,保存一系列有组织的数据,本质是一个文件系统
类似:.docs、.xlsx等文档
-
DBMS:数据库管理系统
用于建立、使用和维护数据库,用户通过数据库管理系统访问数据库中表内的数据。本质是操作和管理数据库的大型软件
类似:WPS
-
SQL:结构化查询语言
专门用来与数据库通信的语言
二、常见的数据库
-
RDBMS:关系型数据库
Oracle:第一个商用的RDBMS,诞生于1979年
MySQL:开源NO1,且被广泛应用于各大互联网公司,诞生于1995年
SQL Server:微软开发的大型商业数据库,诞生于1989年
DB2:IBM公司产品,收费的,常用于银行系统
PostgreSQL:稳定性极强,最符合SQL标准,开源,具备商业级DBMS质量
SQLite:嵌入式的小型数据库,应用于手机端。零配置。
Informix:第一个被移植到Linux上的商业数据库产品,仅运行于unix/Linux平台,适用于安全性要求极高的系统,尤其是银行、证券。
-
非RDBMS:非关系型数据库
Redis:键值型数据库,通过key-value键值的方式存储数据
MongDB:文档型数据库,存放并获取文档,可以是XML、JSON等格式,一个文档相当于一条记录,文档相当于键值对中的值
ES:搜索引擎数据库,核心原理是“倒排索引”,由于搜素引擎会爬取大量数据,故以特定格式进行存储
HBase:列式数据库,可以降低系统的I/O,适用于分布式文件系统
图形数据库
三、MySQL
- 1995年,瑞典MySQL AB公司开发,迅速称为开源NO1
- 2005年,M也SQL5.0发布,里程碑版本,实现了许多功能特性
- MySQL 6.x后分为社区版和商业版
- 2008年,被Sun公司以10亿美元收购
- 2009年,Sun公司被Oracle公司以74亿美元收购,世界排名第一和第二的数据库都归为Oracle公司
- 2016年,MySQL 8.0 正式发布
- MySQL可以定制,可以处理拥有上千万条记录的大型数据库,可运行在多个系统上,并支持多种语言
四、关系型数据库设计规则
- E-R(实体-联系):实体集、属性、联系集(四种表的关联关系)
-
表、记录、字段
一个数据库:可以有多个表,每个表有一个名字,且具有唯一性
一个实体集:对应数据库中的一个表,类似Java中的一个类
一个实体:对应表中的一行,类似Java中的一个对象
一个属性:对应表中的一列,类似Java中的一个字段
-
一对一关联
两个表的记录是一一对应关系,一张表用于放常用信息,另一张表放不常用信息。建表原则:
外键唯一:主表的主键和从表的外键(唯一),形成主外键关系
外键是主键:主表的主键和从表的主键,形成主外键关系。
例如:学生信息表,可以把学生信息表拆成基础信息表(学号、姓名、手机、班级)和档案信息表(学号、住址、籍贯、身份证等)
-
一对多关联
在从表(多方)创建一个字段,该字段作为外键指向主表(一方)的主键
例如:客户表和订单表(一个客户可以有多个订单)
-
多对多关联
要表示多对多,必须创建第三个表,该表通常称为联接表,它将多对多关系划分成两个一对多关系,将两个表的主键都插入第三个表中。
例如:产品表(一条记录对应一个产品)、订单表(一条记录对应一个订单)、订单明细表(一个订单中可以有多个产品,一个产品也可以出现在多个订单中)
-
自我引用
例如:员工表,有员工编号、主管编号、部门标号等(其中,主管编号也是对应的其员工编号)
-
补充概念
目(度):属性个数
候选码:关系中某一个属性的值能唯一标识一个元组
主键:主码,从候选码中选一个为主码
外键:外码,该关系中的非候选码是另一个关系中的候选码,就成该码为外码