Chapter 1. 数据库(介绍、主键、外键)
数据库 database:
存储数据的仓库,用表来分类数据
特点:海量存储;查找速度快;并发性问题的控制;安全性;数据完整性(保存在数据库中的数据是正确的真实的)
数据库软件:DBSM database management system
常见数据库软件:MySQL MSSQL server Oracle Access
SQL:Structured Query Language 结构化查询语言 特点:语言简洁、易学易用。
SQL Server:是一种基于网络的大型数据库软件。主要用SQL语言来管理、修改数据库
数据库的文件组成:
.mdf 主要文件
.ndf 次要文件
.ldf 日志文件
主键 primary key
作用:唯一标识表中的一条记录
特点:不能重复;不能为空(null)
分类:
(根据储存的信息不同)业务主键;逻辑主键
(列数不同)单列主键;多列主键(组合主键、联合主键、复合主键)
选择:
不为空的列;
与实际业务没有关系的列(逻辑主键);
稳定的列(列中保存的数据不经常变化);
最好是单列;
尽量选择数字类型作为主键
注意:
1、 一个表中只能有一个主键,当建立主键后,默认会建立索引,而实际数据在磁盘上存储的顺序和主键列的顺序是一致的,因为实际的物理顺序只能有一种,所以一个表中只能有一个主键。
2、 创建完一个表后,可以不设主键,但是建议每张表都有一个主键。
外键 foreign key
数据冗余的问题:
1、 造成存储空间的浪费
2、 更新异常,删除异常
解决数据冗余的问题:
把原来表中的数据拆分成多个表来存储。使用主键和外键把多个表的数据关联起来。
外键:
当把数据拆分成两张表来存储的时候,每个表都有自己的主键。其中一张表中,除了主键外,又多了一列,这列用来引用另外一张表中的主键,那么这列就是第一张表的“外键列”,有外键列的表就叫做“外键表”,相对来说,主键被引用的那张表就叫做“主键表”。
因为外键列中引用的是另外一张表中的主键列的数据,所以外键列中的数据是不能随便写的,必须是在另外一张表中的主键列中已经存在的数据。