数据库的发展史
1、萌芽阶段:文件系统
使用磁盘文件来存储数据
2、初级阶段:第一代数据库
出现了网状模型、层次模型的数据库
3、中级阶段:第二代数据库
关系型数据库和结构化查询语言
4、高级阶段:新一代数据库
“关系-对象”型数据库
数据库管理系统的优点
1、相互关联的数据的集合
2、较少的数据冗余
3、程序与数据相互独立
4、保证数据的安全、可靠
5、最大限度地保证数据的正确性
6、数据可以并发使用并能同时保证一致性
文件管理系统的缺点
1、编写应用程序不方便
2、数据冗余不可避免
3、应用程序依赖性
4、支持对文件的并发访问
5、数据间联系弱
6、按用户视图表示数据
7、无安全控制功能
数据库系统的架构
1、单机架构
2、大型主机/终端架构
3、主从式架构(C/S)
4、分布式架构
关系型数据库
关系:二维码关系,满足的性质是表中的行、列次序并不重要
行row:表中的每一行,又称为一条记录
列column:表中的每一列,称为属性,字段
主键(Primary key):用于唯一确定一个记录的字段
外键(Foreign Key): 某个属性(或属性组)不是这个关系的主码或候选码,而是另一个关系的主键。
参照关系(Referencing Relation)和被参照关系(Referenced Relation):参照关系也称为从关系,被参照关系也称为主关系,它们是指以外键相关联的两个关系。
域domain:属性的取值范围,如,性别只能是‘男’、‘女’两个值
关系数据库
1、RDBMS:
MySQL:MySQL, MariaDB, Percona Server
2、事物transaction:多个操作被当做一个整体对待
ACID:
A:原子性
C:一致性
I :隔离性
D:持久性
实体-联系模型E-R
1、实体Entity
•客观存在并可以相互区分的客观事物或抽象事件称为实体。
•在E-R图中用矩形框表示实体,把实体名写在框内
2、属性
•实体所具有的特征或性质
3、联系
联系是数据之间的关联集合,是客观存在的应用语义链
•实体内部的联系:指组成实体的各属性之间的联系。如职工实体中,职工号和部门经理号之间有一种关联关系
•实体之间的联系:指不同实体之间联系。例学生选课实体和学生基本信息实体之间
•实体之间的联系用菱形框表示
联系类型
联系的类型
一对一联系(1:1)
一对多联系(1:n)
多对多联系(m:n)
数据三要素
数据结构:包括两类
一类是与数据类型、内容、性质有关的对象,比如关系模型中的域、属性和关系等;
另一类是与数据之间联系有关的对象,它从数据组织层表达数据记录与字段的结构
数据的操作:
数据提取:在数据集合中提取感兴趣的内容。SELECT
数据更新:变更数据库中的数据。INSERT、DELETE、UPDATE
数据的约束条件 :是一组完整性规则的集合
实体(行)完整性 Entity integrity
域(列)完整性 Domain Integrity
参考完整性 Referential Integrity
简易数据规划流程
1、第一阶段:收集数据,得到字段
•收集必要且完整的数据项
•转换成数据表的字段
2、第二阶段:把字段分类,归入表,建立表的关联
•关联:表和表间的关系
•分割数据表并建立关联的优点
•节省空间
•减少输入错误
•方便数据修改
3、第三阶段:
•规范化数据库
数据库的正规化分析
RDMBS设计范式基础概念
设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同范式,各种范式呈递次规范,越高的范式数据库冗余越小
范式
1、1NF:无重复的列,每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中某个属性不能有多个值或者不能有重复的属性。除去同类型的字段,就是无重复的列。
说明:第一范式(1NF)是对关系模式的基本要求,不满足第一范式的数据库就不是关系数据库
2、2NF:属性完全依赖于主键,第二范式必须先满足第一范式,要求表中的没个行必须可以被唯一地区分。
3、3NF:属性不依赖于其他非主属性,满足第三范式必须先满足第二范式。第三范式要求一个数据库表中不包含已在其他表中已包含的非主关键字信息,非PK的字段间不能有从属关系。
SQL概念
SQL:结构化查询语言
数据存储协议:应用层协议,C/S
S:server,监听于套接字,接受并处理客户端的应用请求
C:Client客户端
约束
约束:constraint,表中的数据要遵守的限制
主键:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行;必须提供数据,即NOT NULL,一个表只能有一个
惟一键:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行;允许为NULL,一个表可以存在多个
外键:一个表中的某字段可填入的数据取决于另一个表的主键或唯一键已有的数据
检查:字段值在一定范围内
基本概念
索引:将表中的一个或多个字段中的数据复制一份另存,并且此些需要按特定次序排序存储
关系运算:
选择:挑选出符合条件的行
投影:挑选出需要的字段
连接:表间字段的关联
数据模型
数据抽象:
物理层:数据存储格式,即RDBMS在磁盘上如何组织文件
逻辑层:DBA角度,描述存储什么数据,以及数据间存在什么样的关系
视图层:用户角度,描述DB中的部分数据
关系模型的分类:
关系模型
基于对象的关系模型
半结构化的关系模型:XML数据
外模式/模式映像 保证了数据与程序的逻辑独立性
内模式/模式映像 保证了数据与程序的物理独立性
MySQL和MariaDB
官方网址:
https://www.mysql.com/
http://mariadb.org/
官方文档
https://dev.mysql.com/doc/
https://mariadb.com/kb/en/
版本演变:
MySQL:5.1 --> 5.5 --> 5.6 --> 5.7
MariaDB:5.5 -->10.0--> 10.1 --> 10.2 --> 10.3
MYSQL的特性
插件式存储引擎:也称为“表类型”,存储管理器有多种实现版本,功能和特性可能均略有差别;用户可根据需要灵活选择,Mysql5.5.5开始innoDB引擎是MYSQL默认引擎
MyISAM ==> Aria
InnoDB ==> XtraDB
单进程,多线程
诸多扩展和新特性
提供了较多测试组件
开源