1. 关系型数据库MySQL-1
数据库(Database)
是按照数据结构来组织、存储和管理数据的仓库。
每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。
我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。
所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
RDBMS 即关系数据库管理系统(Relational Database Management System)的特点:
-
数据以表格的形式出现
-
每行为各种记录名称
-
每列为记录名称所对应的数据域
-
许多的行和列组成一张表单
-
若干的表单组成database
RDBMS 术语 - (Relational Database Management System)
-
数据库: 数据库是一些关联表的集合。
-
数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
-
列: 一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据。
-
行:一行(元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
-
冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
-
主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。(不能重复不能为空)
-
外键:外键用于关联两个表。(外键是加在从表里面的)
-
复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
-
索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
-
参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。
数据库的三种关系
-
一对一
一对一的关系就是一种特殊的多对多的关系,一张表A中的一条记录只能对应另一张表B中的一条记录,另一张表B中的一条记录也只能对应一张表A中的一条记录
一对一设计有两种方案:
共享主键:(不推荐)
唯一外键:(外键加一个唯一性约束)
-
一对多
解释一下:在一对多的关系中,存在两张表(一张父表一张子表),父表的一条数据对应子表的多条数据,那么子表(多)就需要添加上父表(一)的外键字段;
在一对多关系中需要注意以下几点:
-
添加数据时,先添加父表(class)记录,再添加子表(student)记录;(比如增加一个学生而他的班级是class3,父表没有该班级需要先添加)
-
删除数据时,先删除子表(student)记录,再删除父表(class)记录;(比如删除一个学生且只有他的班级是class2,先删除学生后再删除父表的class2)
-
-
多对多
多对多的意思是:一张表A中的一条记录可以对应另一张表B中的多条记录,另一张表B中的一条记录也可以对应一张表A中的多条记录
多对多关系同样注意几点:
-
添加数据时,先添加父表记录(student,course),再添加子表(student_course_relation)记录
-
删除数据时,先删除子表记录(student_course_relation),再删除父表记录(student,course)
-
ps:主表和从表是相对关系
主表:主键被外键引用的表
从表:指外面的表
2. 安装MySQL
MySQL连接测试
[root@host]# mysql -u root -p Enter password:
o
数据库管理系统
关系模型
关系模型:把世界看作是由实体和关系组成实体是指实现世界客观存在的事物事物的特性称为属性,关系就是指体间的联系
关系型数据库基于关系模型而实现的在关系型数据库中,实体是指表,关系是指主键和外键关联
数据库的分类
-
本地数据库管理系统
-
数据库服务器管理系统
数据库引擎
存储、处理和保护数据的核心服务 数据库引擎是用于存储、处理和保护数据的核心服务。利用数据库引擎可控制访问权限并快速处理事务,从而满足企业内大多数需要处理大量数据的应用程序的要求。 使用数据库引擎创建用于联机事务处理或联机分析处理数据的关系数据库。这包括创建用于存储数据的表和用于查看、管理和保护数据安全的数据库对象(如索引、视图和存储过程)。可以使用 SQL Server Management Studio 管理数据库对象,使用 SQL Server Profiler 捕获服务器事件。
InnoDB引擎
这是MySQL 5.5或更高版本的默认存储引擎。它提供了事务安全(ACID兼容)表,支持外键引用完整性约束。它支持提交、回滚和紧急恢复功能来保护数据。它还支持行级锁定。当在多用户环境中使用时,它的“一致非锁定读取”提高了性能。它将数据存储在集群索引中,从而减少了基于主键的查询的I/O。
支持外键,保持数据的一致性和完整性
innoDB拥有自己独立的缓冲池,常用的数据和索引都在缓存中
InnoDB,是MySQL的数据库引擎之一,现为MySQL的默认存储引擎,为MySQL AB发布binary的标准之一。
InnoDB 由Innobase Oy公司所开发 ,2006年五月时由甲骨文公司并购。与传统的ISAM与MyISAM相比,InnoDB的最大特色就是 支持了ACID兼容的事务(Transaction)功能 ,类似于PostgreSQL。
InnoDB 物理文件结构为:
.frm 文件:与表相关的元数据信息都存放在frm文件,包括表结构的定义信息等