mysql基本概念
什么是数据库
数据库是长期储存在计算机内有组织,可共享的数据集合,它采用数据结构来组织、管理、储存数据,具有读写速度快、对数据操作简单、、容易理解、便于维护等特点。
数据库分类
-
关系型数据库
关系型数据库是应用数学方法,建立在关系模型上的数据库。
当前主流的有:-Oracle:商业数据库代表,价格贵,非开源主要用于商业大公司 ,如银行,保险,证券等和钱有关的商业公司;
- DB2:是IBM公司产品,兼容 IBM 个中大型机、中型机、小型机,听说比 Oracle 能便宜一点;
- MySQL:开源数据库(主要是免费的),为互联网公司,小型公司使用较多,没有商业数据库稳定;
- SQL Server:微软产品,需要 windows 操作系统,需要钱;
- SQLite:移动端程序多使用这个,免费开源。
-
非关系型数据库
相对于关系型数据库来说,比较简单,针对特定应用需求出现,所以对特定需求需要有极高的性能。- Redix:高性能
key-value
数据库 - Memcached:基于
hashmap
的对象缓存系统,用于web应用以减轻数据库负载 - MongoDB:基于关系型数据库和非关系型数据库之间的产品,支持类
json
的松散的数据结构。
- Redix:高性能
关系型数据库
关采用关系模型来组织数据,关系模型最早是在1970年,由IBM的研究员E.F.Codd博士发表《大型共享数据银行的关系模型》一文提出的,关系模型可以简单理解为数据与数据之间的关系。在用户看来,这种关系模型类似一张二维表。
以下表为例:
关系模型中的一些概念:
- 元组:二位表中的一行,也叫做记录,比如具体某个学生的信息 (201515121,李勇,男,20,CS ) 就是一个元组;
- 属性:二维表中的一列,也叫做字段,比如学号那一列就是一个属性;
- 域:相同数据类型的集合,可以理解为某个属性的范围,比如性别只有两种(男、女),年龄(≥0)
- 关系:一组域的笛卡尔积,实际上就是一张表,如上面的学生信息表,关系名也叫作表名,比如上表的关系名(表名)是“Student”;
- 关键字:可以唯一标识元组的属性,也叫作主属性,表如上表的学号;
关系完整性的约束
数据库中的数据是会随着时间变化的,所以就需要一些约束条件对这些数据进行约束,以保持数据关系之间的完整性。关系模型中有三种完整性约束:实体完整性、参照完整性、用户自定义完整性。
实体完整性
主属性不能取空值(不存在、不知道、无意义的值),比如上述学生信息表中的每个学生都应该对应一个主属性(学号),而且不能取空值。参照完整性
当一个表中的主属性是另一个表中的外码,则它必须取另一个表中存在的值或者空。比如上述学生课程表(SC)中的学号要么为空(即没有那一个元组),要么取学生表中存在的学号。用户自定义完整性
对于某些关系的某些非主属性,我们在不同应用环境中需要一些特殊的约束条件。比如上述学生表中姓名一栏不能取空值,这是在创建表结构时由用户自定义的,被称为用户自定义完整性。
关系完整性方便了用户对数据的操作,比如插入一个已经存在的学号信息时,数据库管理系统会报错提示用户,但在早期的数据库管理系统中,这些检查操作需要由用户编写程序来判断。
——完!