一、什么是数据库
1、数据
描述事物的符号记录,可以是数字、文字、图形、图像、声音、语言等,数据有多种i形式,它们都可以经过数字化后存入计算机。
2、数据库
存储数据的仓库,是长期存放在计算机内、有组织、可共享的大量数据的集合。数据库中的数据按照一定数据模型组织、描述和存储,具有较小的冗余度,较高的独立性和易扩展性,并为各种用户共享。特点如下:
(1)数据结构化
(2)数据的共享性高,冗余度低、 易扩充
(3)数据独立性高
(4)数据由DBMS统一管理和控制(安全性、完整性、并发控制、故障恢复)
3、DBMS:数据库管理系统(能够操作和管理数据库的大型软件)
4、优缺点
(1)优点
实现数据共享
减少数据的冗余度
数据实现集中控制
数据的一致性
故障恢复
(2)缺点
SMP 对称多处理器结构
MySQL是一个关系型数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
二、数据库与文件系统的区别
1、文件系统
文件系统是操作系统用于明确存储设备(常见的是磁盘)或分区上的文件的方法和数据结构
表示层:文件名(文件类型 如.txt等)
逻辑层:文件系统类型(ext4/ntfs/xfs)
物理层:分区块(数据块 data block)→扇区
2、数据库系统
DMS是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。
表示层:数据库-数据表-记录(字段)
逻辑层:数据库的存储引擎
物理层:数据库文件(*.sql)
3、区别
(1)管理对象不同
(2)存储方式不同
(3)调用数据的方式不同
4、文件系统管理数据库存在的问题
数据冗余性和不一致性
数据访问困难
数据相对独立
完整性和原子性
并发访问异常
安全性问题
二、常见数据库有哪些
1、关系数据库
Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL、浪潮K-DB等
2、非关系型数据库
NoSQL
三、关系型数据库(MySQL)的特征及组成结构
1、特征
(1)层次模型:按照层次结构的形式组织数据库数据的模型
缺点:拥有大量的冗余数据 (IMS)
(2)网状模型:按照网状结构的形式组织数据库数据的模型
缺点:后期维护困难 (DBTG)
(3)关系模型(RDBMS:Relational Database Management System):按照数据关系的形式组织数据库数据的模型
实体( Entities )
属性( Attributes )
关系( Relationships )
DBMS(Database Management System):数据库管理系统
2、组成结构
3、名词解释
数据以表格的形式出现,每行为单独的一条记录,每列为一个单独的字段,许多的记录和字段组成一张表单(table),若干的表单组成库(database)。
(1)记录(一条数据)
(2)字段(id name…)
(3)MySQL数据类型
(4)MySQL约束类型 主键、外键、唯一、非空约束与默认值
(5)MySQL索引
(6)MySQL锁
(7)MySQL 存储引擎
(8)事务是并发控制的基本单位
四、SQL(结构化查询语言)
1、简介
结构化查询语言 ( Structured Query Language ) 简称 SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;最早诞生于 IBM SYSTEM R 操作系统之上。
2、SQL 语句操作类型
DML:数据操作语言,操作数据库中数据的命令 select insert update delete
DDL:数据库描述语言,建立数据库、定义数据关系 create drop
DCL:数据库控制语言,控制数据库组件的权限 grant
3、MYSQL 存储引擎
(1)MyISAM
MYSQL 默认存储引擎,诞生即存在,插入和查询数据较快。不支持事物、行级锁以及外键约束等功能
锁:行级锁( InnoDB )、表级锁( MyISAM )、页级锁( DBD )
约束:域约束、外键约束
(2)InnoDB oracle 08 5.5
支持事物、行级锁以及外键约束等功能,相对于 MyISAM 更快
(3)MEMORY
运行在内存中、使用 hash 索引,数据存取速度非常快。但是数据不能持久化,适用于缓存
5、数据库的存储和查询
(1)存储管理器:通过 数据描述语言( DDL )来创建表的结构,在通过 数据操作语言( DML ) 来保存 SQL 语句产生的数据的数据库组件
(2)权限及完整性管理器
(3)事物管理器
(4)文件管理器
(5)缓冲区管理器
(6)查询管理器:接收用户的查询请求、理解查询请求、并将请求提交给存储管理器的数据库组件
(7)DDL 和 DML 解释器
(8)查询执行引擎
6、数据库的后台工作模式
(1)Apache
Prefork:多子进程,每个子进程只有一个线程,一个线程维持一个连接
Worker:多子进程,每个子进程会有多个线程,每个线程维持一个连接
(2)MySQL:单进程多线程的工作模式,每个线程维持一个连接
守护线程:MySQL 不需要跟用户进行交互
应用线程:MySQL 需要跟用户进行交互
7、优化方案 - MYSQL
(1)垂直扩展
(2)水平扩展
(3)缓存
(4)线程重用
(5)…分区、分表、读写分离