数据库基础知识:数据库中的约束和三大范式

一.数据库中的范式:

  范式, 英文名称是 Normal Form,它是英国人 E.F.Codd(关系数据库的老祖宗)在上个世纪70年代提出关系数据库模型后总结出来的,范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法,以下就是对这三个范式的基本介绍:

第一范式(1NF):

  数据表中的每一列(字段),必须是不可拆分的最小单元,也就是确保每一列的原子性。

  例如: userInfo: ‘山东省烟台市 1318162008‘ 依照第一范式必须拆分成
                   userInfo: ‘山东省烟台市‘   userTel: ‘1318162008‘两个字段

第二范式(2NF):

  满足1NF后要求表中的所有列,都必需依赖于主键,而不能有 任何一列与主键没有关系(一个表只描述一件事情)。

  例如:订单表只能描述订单相关的信息,所以所有的字段都必须与订单ID相关。
                  产品表只能描述产品相关的信息,所以所有的字段都必须与产品ID相关。
        因此在同一张表中不能同时出现订单信息与产品信息。

第三范式(3NF):第三范式(3NF):满足2NF后,要求:表中的每一列都要与主键直接相关,而不是间接相关(表中的每一列只能依赖于主键)

  例如:订单表中需要有客户相关信息,在分离出客户表之后,订单表中只需要有一个用户
       ID即可,而不能有其他的客户信息,因为其他的用户信息是直接关联于用户ID,而不是关联
       于订单ID。

注意事项:

1.第二范式与第三范式的本质区别:在于有没有分出两张表。

第二范式是说一张表中包含了多种不同实体的属性,那么必须要分成多张表,第三范式是要求已经分好了多张表的话,一张表中只能有另一张标的ID,而不能有其他任何信息,(其他任何信息,一律用主键在另一张表中查询)。

2.必须先满足第一范式才能满足第二范式,必须同时满足第一第二范式才能满足第三范式。

二:数据库中的五大约束:

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

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] -- 设置操作完整。

3、外键约束的参照操作:
当对参照表的参照字段进行删除或更新时,外键表中的外键如何应对。
参照操作可选值:
  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)。

其他约束没有特殊要求因此不做解释。

时间: 2024-10-07 22:53:51

数据库基础知识:数据库中的约束和三大范式的相关文章

SQL数据库基础知识-巩固篇<一>

SQL数据库基础知识-巩固篇<一>... 首先展示两款我个人很喜欢的数据库-专用于平时个人SQL技术的练习<特点:体积小,好安装和好卸载,功能完全够用了> MySQL-57 DataBase MS-SQLServer-2000 DataBase SQL的含义:结构化查询语言(Structured Query Language)简称SQL 作用:SQL(Structured Query Language,结构化查询语言)是一种用于操作数据库的语言. 结构化查询语言包含6个部分:一:数

oracle学习入门系列之二 数据库基础知识

oracle学习入门系列之二 数据库基础知识 本篇蛤蟆要梳理下那些被淡忘的数据库基础知识,也许根本就没被人记住过.不管是哪种情况,该记住的必须记住,记不住就把他记下来吧. 首先问几个问题如下: 数据库基础知识是什么? 好吧,蛤蟆直接吐后而不亡,看目录开始吧. 本人邮箱:[email protected] 微信公众号:HopToad 欢迎各界交流 1      基本概念 概念就是概念,大伙对这些名词不要死磕,但是对定义一定要理解,理解方能领悟,领悟方能运用自如后创新. 1.1      数据 数据

MySQL数据库基础知识

day02 MySQL数据库基础知识 一.基础知识概述: 基础决定你这门课程的学习成败!只有学习好这些基础知识以后,你才能真正的运用自如.才能够对数据库有更深入的了解,道路才会越走越远. 二.基础知识: 1.数据库(database):数据库就好比是一个物理的文档柜,一个容器,把我们整理好的数据表等等归纳起来. 创建数据库命令:        create database 数据库名; 2.查看数据库         show databases; 3.打开指定的数据库         use 

SQL Server之 (一) 数据库简介 SQL Server环境配置 数据库基础知识

   前言 这个是我工作两年多后,再次从最基础的SQL入门开始,认真的学一遍SQL Server,捡漏和巩固都有;因为自己刚开始学的时候,总是心烦气躁,最近换工作,发现1到2年经验,问到基础性的东西还是很多,这个时候需要的是扎实的基础功夫,所以一系列打击+反省后,自己节假日在家从最基础重新认识一下SQL Server,继续沉淀一下.哪里有不对或需深入探讨,请直接留言或者小窗我;欢迎~ (一) 数据库简介   SQL Server环境配置   数据库基础知识 1.什么是数据库,数据库有哪些特点,为

Oracle数据库基础知识

oracle数据库plsql developer 目录(?)[-] 一     SQL基础知识 创建删除数据库 创建删除修改表 添加修改删除列 oracle cascade用法 添加删除约束主键外键 创建删除索引 创建修改删除视图 二     SQL查询 基本的SQL语句 unionminusintersect 内连接外连接 子查询关联子查询 betweeninexists 复制表insert into selectselect into from 三     SQL查询优化 尽量少用 IN 操

数据库基础知识总结(MS sql)

基本概念 数据:描述事物的符号称为数据,是存储在数据库中的基本对象. 数据库:数据库是长期存储在计算机上内的有组织.可共享的数据集合. 数据库管理系统:用户和操作系统之间的一层数据管理软件.主要功能包括如下几个方面: >1 数据定义功能:通过数据定义语言DDL(Data Definition Language)实现数据对象的定义 >2 数据组织.存储和管理 >3 数据操纵:通过数据操纵语言DML(Data Manipulation Language),用户可以使用DML操纵数据,实现对数

数据库基础知识练习题

选择题 1.要保证数据库的逻辑数据独立性,需要修改的是||A||. A: 模式与外模式之间的映射 B: 模式与内模式之间的映射 C: 模式 D: 三级模式 2.数据库系统的数据独立性体现在||B||. A: 不会因为数据的变化而影响到应用程序 B: 不会因为数据存储结构与数据逻辑结构的变化而影响应用程序 C: 不会因为存储策略的变化而影响存储结构 D: 不会因为某些存储结构的变化而影响其他的存储结构 3.关系数据模型是目前最重要的一种数据模型,它的三个要素分别是||B||. A: 实体完整性.参

mysql数据库基础知识总结

这里把自己学的mysql数据库的知识总结一下,当是给自己复习一遍,也是方便以后查询 安装和配置mysql就不说了,可以借鉴这位博友的安装过程   https://www.cnblogs.com/by330326/p/5608290.html 一.mysql基本命令 1.创建命令 create user '用户名' @'ip' identified by '密码';  创建用户 ip是指用户登录mysql的电脑ip,可以写%,本地写localhost grant 权限(select/insert/

数据库基础知识讲解

99%的网站瓶颈都在后端  最主要的瓶颈在于:数据库和存储 存储前面用缓存来减轻压力 数据库前面用memcached缓存来减轻压力 数据库就是存放数据的仓库 比较流行的数据库模型有三种:层次式数据库.网络式数据库和关系型数据库 最常用的有关系型数据库和非关系型数据库 关系型数据库是把数据结构归结为简单的二元关系(二维表格形式),对数据的操作都建立在一个或多个关系表格上. 1.二维表格形式 2.典型代表:MySQL  oracle 3.用sql语句对数据进行操作与管理 非关系型数据库诞生原因:动态