关系型数据库

关系型数据库是指采用了关系模型来组织数据的数据库。数据库

简单来讲,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。数据结构

关系型数据库的最大特色就是事务的一致性:传统的关系型数据库读写操做都是事务的,具备ACID的特色,这个特性使得关系型数据库能够用于几乎全部对一致性有要求的系统中,如典型的银行系统。并发

关系型数据库为了维护一致性所付出的巨大代价就是其读写性能比较差,而像微博这类社交应用,对并发读写能力要求极高,关系型数据库已经没法应付,所以,必须用新的一种数据结构存储来代替关系数据库。性能

关系数据库的另外一个特色就是其具备固定的表结构,所以,其扩展性极差,系统的升级,功能的增长,每每意味着数据结构巨大变更,这一点关系型数据库也难以应付,须要新的结构化数据存储。 因而,非关系型数据库应运而生,因为不可能用一种数据结构化存储应付全部的新的需求。必须强调的是,数据的持久存储,尤为是海量数据的持久存储,仍是须要关系数据库。设计

三大范式本质:索引

第一范式:字段惟一,凡是关系型数据库都知足,因此通常不用管事务

第二范式:知足第一范式,每一个键都惟一,即每行数据都惟一,没有重复的行数据,通常使用主键或复合主键字符串

第三范式:知足第二范式,且每两个设计实体以前都无相同(相同功能做用)的字段,若是只使用一张表,字段冗余(重复)很大,因此要两张以上表以关系形式维护(一对多或多对一,一对一意义不大由于彻底能够设计成一张表),第三范式目的就是消除冗余,若是须要其字段使用外键(外键通常都须要创建索引)来参照(参照主键或 (候选键:惟一索引))来关联。同步

数据库中的五大约束包括:微博

1.主键约束(Primay Key Coustraint) 惟一性,非空性;

2.惟一约束 (Unique Counstraint)惟一性,能够空,但只能有一个;

3.默认约束 (Default Counstraint) 该数据的默认值;

4.外键约束 (Foreign Key Counstraint) 须要创建两表间的关系;

5.非空约束(Not Null Counstraint):设置非空约束,该字段不能为空。

详细介绍:

(1)[外键约束 (Foreign Key Counstraint) ]

1.设置外键的注意事项:   

  ①:只有INNODB的数据库引擎支持外键,修改my.ini文件设置default-storage-engine=INNODB;   

  ②:外键与参照列的数据类型必须相同。(数值型要求长度和无符号都相同,字符串要求类型相同,长度能够不一样);   

  ③:设置外键的字段必需要有索引,若是没有索引,设置外键时会自动生成一个索引;

2.设置外键的语法:

  [CONSTRAINT 外键名] FOREIGN KEY(外键字段) REFERENCES 参照表(参照字段);

  [ON DELETE SET NULL ON UPDATE CASCADE] -- 设置操做完整。

三、外键约束的参照操做: 当对参照表的参照字段进行删除或更新时,外键表中的外键如何应对。

   参照操做可选值:   

  RESTRICT: 拒绝对参照字段的删除或修改(默认);   

  NO ACTION:与RESTRICT相同,但这个指令只在MySql生效;   

  CASCADE: 删除或更新参照表的参照字段时,外键表的记录同步删除或更新;   

  SET NULL: 删除删除或更新参照表的参照字段时,外键表的外键设为NULL (此时外键不能设置为NOT NULL)。

(2)[主键约束](Primay Key Coustraint)

1.主键的注意事项:主键默认非空,默认惟一性约束,只有主键能够设置自动增加(主键不必定自增,自增必定是主键)。

2.设置主键的方式:   

  ①:在定义列时设置:id INT UNSIGNED PRIMARY KEY。   

  ②:在列定义完成后设置:PRIMARY KEY(id)。

相关文章
相关标签/搜索