数据库
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库
DBMS:
数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护 数据库,简称 DBMS。
分类:(关系型数据库 和 非关系型数据库)
根据存储模型可将数据库划分为关系型数据库和非关系型数据库。
关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据 库中的数据。
简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。标准数据查询语言 SQL 就是一种基于关系数据库的语言,这种语言执行对关系数据库 中数据的检索和操作。
SQL语言
SQL 里的 DDL DML DCL 命令分类操作:
数据库的 表结构 与 Java类 对应:
注意:
查询表(用户名.表名),当前用户查询自己的表时, (用户名.) 可以省略.
用户查询别的用户表 ,不能省略,同时必须存在权限。
省略.
用户查询别的用户表 ,不能省略,同时必须存在权限。
三范式
在设计数据库时,存在行业的标准,这个标准也称为条件,即范式 Normal Form。一般遵循三个条件即可,也就是”三范式”(3NF)。
1NF: 是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式(1NF)中表的每一行只含一个实例的信息。
2NF:是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被唯一地区分。
第二范式就是非主属性非部分依赖于主键。
3NF : 必须先满足第二范式(2NF)。3NF 要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。
例如,存在一个部门信息表,其中每个部门有部门编号(deptno)、部门名称、地址等信息。那么员工信息表(emp)中列出部门编号后就不能再将部门名称、部门地址等与部门有关的信息再加入员工信息表中。 如果不存在部门信息表,则根据第三范式(3NF)也应该构建它,否则就会有大量的数据冗余。
即第三范式就是属性不依赖于其它非主属性。
简而言之,最终的目的避免数据重复冗余。
1NF–>列不可再分最小原子 (避免重复)
2NF–>主键依赖(确定唯一)
3NF–>消除传递依赖(建立主外键关联 拆分表)
分析 订单表 商品表 和 用户表 之间的关系
注意: 除了订单表 商品表 和 用户表之外,还要给 订单表 和 商品表 做一张中间表,这个保证一个订单可以有多个商品。