1 概述
本文将介绍数据和数据库的相关概念,以及设计数据库的表要遵守的范式
2 数据三要素
.数据结构:
.包括两类,一类是与数据类型、内容、性质有关的对象,比如关系模型中的域、属性和关系等;另一类是与数据之间联系有关的对象,它从数据组织层表达数据记录与字段的结构
.数据的操作:
.数据提取:在数据集合中提取感兴趣的内容。(SELECT)
.数据更新:变更数据库中的数据。(INSERT、DELETE、UPDATE)
.数据的约束条件:
是一组完整性规则的集合
.实体(行)完整性Entity integrity
.域(列)完整性DomainIntegrity
表示特定字段的值必须在一定的范围内
.参考完整性Referential
Integrity:表和表之间的依赖性
3 实体-联系模型E-R
使用实体-联系图(entity-relationship diagram)来建立数据模型。可以把实体-联系图简称为ER图,相应地可把用ER图描绘的数据模型称为ER模型。ER图中包含了实体(即数据对象)、关系和属性等3种基本成分,通常用矩形框代表实体,把实体名写在框内,用连接相关实体的菱形框表示关系,用椭圆形或圆角矩形表示实体(或关系)的属性,并用直线把实体(或关系)与其属性连接起来
一对一,一对多,多对多关系
.实体Entity
.客观存在并可以相互区分的客观事物或抽象事件(实体可以是抽象)称为实体。
.属性
.实体所具有的特征或性质
.联系
.联系是数据之间的关联集合,是客观存在的应用语义链
.实体内部的联系:指组成实体的各属性之间的联系。如职工实体中,职工号和部门经理号之间有一种关联关系
.实体之间的联系:指不同实体之间联系。例学生选课实体和学生基本信息实体之间
.实体之间的联系用菱形框表示
.联系的类型
.一对一联系(1:1)
.一对多联系(1:n)
.多对多联系(m:n)
多对多一般设计多张表,来和原来的表来实现一对多的关系
外键:依赖于其他表的键
含有外键的表叫外键表,被依赖的表叫主键表
4 简易数据规划流程
.第一阶段:收集数据,得到字段
.收集必要且完整的数据项
.转换成数据表的字段
.第二阶段:把字段分类,归入表,建立表的关联
.关联:表和表间的关系
.分割数据表并建立关联的优点
.节省空间
.减少输入错误
.方便数据修改
.第三阶段:
.规范化数据库
5 数据库的正规化分析
RDMBS设计范式基础概念
设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。
.目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴德斯科范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。一般说来,数据库只需满足第三范式(3NF)即可
范式可以理解为规则,一般设计数据库的时候,只需满足以下三个范式就可以。
范式理论上是要减少数据的冗余,但是有时需要违反范式来设计表
以下时设计表时必须满足的三大范式:
v1NF:无重复的列,每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。除去同类型的字段,就是无重复的列
说明:第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。如第一范式不能出现重复的列,如一张表不能有两个叫姓名的列
v2NF:属性完全依赖于主键,第二范式必须先满足第一范式,要求表中的每个行必须可以被唯一地区分。通常为表加上一个列,以存储各个实例的唯一标识PK,非PK的字段需要与整个PK有直接相关性
v3NF:属性不依赖于其它非主属性,满足第三范式必须先满足第二范式。第三范式要求一个数据库表中不包含已在其它表中已包含的非主关键字信息,非PK的字段间不能有从属关系
6 SQL概念
.SQL: Structure QueryLanguage,结构化查询语言
SQL解释器:将命令解释成机器码来执行
数据存储协议:应用层协议,C/S
.S:server,监听于套接字,接收并处理客户端的应用请求
.C:Client
程序接口: CLI 和 GUI
应用编程接口
ODBC:Open Database Connectivity
JDBC:Java Data Base Connectivity
7 约束
.约束:constraint,表中的数据要遵守的限制
主键:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行;必须提供数据,即NOT NULL,一个表只能存在一个主键
唯一键:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行;允许为NULL,一个表可以存在多个唯一键
外键:一个表中的某字段可填入的数据取决于另一个表的主键或唯一键已有的数据
检查:字段值在一定范围内,检查就是check
8 关系运算:
选择:挑选出符合条件的行
投影:挑选出需要的字段
连接:表间字段的关联
9 数据模型
.数据抽象:
1. 物理层:决定数据的存储格式,即RDBMS在磁盘上如何组织文件,数据在磁盘中存储的格式,如文件的后缀名
2. 逻辑层:描述存储什么数据,以及数据间存在什么样的关系,逻辑上保存的数据
3. 视图层:描述DB中的部分数据,构建虚拟的表,叫做视图,来自实际的表。根据需要,选择出表里的信息给用户查看使用。
.关系模型的分类:
1. 关系模型
2. 基于对象的关系模型
3. 半结构化的关系模型:json,XML数据