Linux基础之mysql数据库第一篇
简介
- MySQL数据库属于传统关系型数据库产品,也是属于开源数据库产品
- 他开发的架构使得用户选择性很强同时社区开发与维护人数众多,其性能,功能稳定,且在遵守GPL协议下的前提下,可以免费使用与修改
- 在MySQL成长与发展中,支持的功能逐渐增多,性能也不断提高,对平台的支持也越来越多
- MySQL是一种关系型数据库管理系统,关系型数据库的特点是将数据保存在不同的表中,再将这些表放入不同的数据库中,而不是将所有数据库放在一个大仓库里,这样的设计增加了MySQL的读取速度,而且灵活性和可管理性也得到了很大的提高
- 访问及管理的MySQL数据库的最常用标准化语言为SQL结构化查询语言
- 现在常用的数据有MySQL、Oracle、DB2、SQL Server、postgreSQL等
- 不过现在MySQL已经被Oracle收购
数据库的发展史
- 萌芽阶段------文件系统
- 实验磁盘文件来储存数据
- 早起的时候没有数据库,早起的数据就是拿文件来管理的
- 就是把数据放在一个文本里面,在拿语言来读取
- 基本上全人力来工作
- 初级阶段----第一代数据库
- 出现了网状模型,层次模型的数据库
- 网状模型:意思就是说像渔网一样,一环扣一环,一个数据连带另外一个数据或者连带多个数据
- 层次模型:意思就像学校一样,一个学校有很多班,每个班有很多学生,每个学生有不同的名字,一层一层的分下去
- 中级阶段----第二代数据库
- 关系型数据库和结构化查询语言
- 高级阶段----新一代数据库
- "关系-对象" 型数据库
数据库和数据库管理系统
- 数据库里面就是文件,数据的汇集,他以一定的组织形式存于存储介质上
- 数据库管理系统,就是帮你来查找数据,管理数据
- DBMS:是管理数控的系统软件,它实现数据库系统的各种功能,是数据库的核心
- DBA:数据库管理员、负责数据库的规划、设计、协调维护和管理等工作
- 数据库和数据库管理系统是分开的别搞混了
数据库系统的架构
-
单机架构
- 所谓的单机架构,就是只能在机器跟前操作,不具有网络远程功能
-
大型主机、终端架构
- 大型主机、相当于无盘工作站、只不过支持了多用户访问
-
主从式架构(C/S)
- 主从式架构、也就是冗余、从服务器和主服务器数据一样、用户来访问的时候、有可能访问的是从、从的数据和主是一样的
-
分散式架构
- 就是把数据分开来存放,这样可以提高读取的速度
关系型数据库
关系型数据库就是说把数据放在横行纵列的表格里面
-
关系
- 关系的意思就是一个大库里可以放多张表,表和表之间有关联
- 关系就是二维表
- 并满足如下性质:表中的行、列次序并不重要
-
行(row)
- 表中的每一行,又称为一条记录
-
主键(Primary key)
用于唯的表示一条记录
- 为了避免一列的值不能相同,值必须唯一,值不能为空,必须为一
- 不区分字符串或数字
- 不能为空
-
外键
- 在关系数据库中,每个数据表都是由关系来连系彼此的关系
- 父数据表(Parent Entity)的主键(primary key)会放在另一个数据表,当做属性以创建彼此的关系
- 而这个属性就是外键
-
唯一键
- 名字是唯一的、但是可以为空
-
复合主键
- 意思就是说多个主键组合起来,来形成一个复合主键
- 但是多个字段是必须唯一
- 在一张表中只能有一个主键,不能有多个主键,主键必须是唯一的
-
域(domain)
- 属性的取值范围
- 如性别只能是“男”和"女"
-
实体
- 实体也就是我们所说的表
- 存放的信息
-
属性
- 每个实体都有他的特征或性质
-
联系
- 实体内部的联系:指组成实体的各属性之间的联系。如职工实体中,职工号和部门经理号之间有一种关联关系
- 实体之间的联系:指不同实体之间联36
- 6系。例学生选课实体和学生基本信息实体之间
- 实体之间的联系用菱形框表示
- 也就是表与表之间的联系,和对应的关系
数据结构
- 数据结构两类
- 数据的类型:内容、性质等,比如关系模型中的域,属性和关系等,
- 数据的联系 :数据之间联系有关的对象,它从数据组织表达数据记录与字段的结构
- 数据的操作(也就是增加、删除、修改、查找)
- 数据提取:在数据集合中提取感兴趣的内容(SELECT查找)
- 数据更新:变了数据库中的数据。(INSERT增加、DELETE删除、UPDATE修改)
- 数据的约束条件 (是一组完整性规则的集合)
- 实体(行) 完整性 (Entity integrity)
- 保证每天数据是唯一的
- 如唯一键
- 域 (列) 完整性 (Domain Inegrity)
- 在每个字段上加一个约束
- 也就是一个列的上限值
- 参考完整性 (Referential Integrity)
- 也就是外键,主外键约束
- 表和表之间的参考 完整性
- 实体(行) 完整性 (Entity integrity)
数据规划
-
第一阶段:收集数据,得到字段
- 收集毕业且完整的数据项
- 转换成数据表的字段
-
第二阶段:把字段分类,归入表,建立表的关联
- 关联:表和表间的关系
- 分割数据表并建立关联的优点
- 节省空间
- 减少输入错误
- 方便数据修改
第三阶段:
规范化数据库
数据库的正规分析
- RDMBS设计范式基础概念设计关系数据库时,遵从不同的规范要求
- 设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小
- 目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴德斯科范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)
- 满足最低要求的范式是第一范式(1NF)
- 在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推
- 一般说来,数据库只需满足第三范式(3NF)即可
范式
- 第一范式(1NF):每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性
- 除去同类型的字段,就是无重复的列
- 第一范式说简单点就是值中间不能有空格
- 第二范式(2NF):第二范式必须先满足第一范式,要求表中的每个行必须可以被唯一地区分
- 通常为表加上一个列,以存储各个实例的唯一标识PK
- 非PK的字段需要与整个PK有直接相关性
- 说简单点就是保证他的唯一性,可以加主键或者唯一键
- 第三范式(3NF):满足第三范式必须先满足第二范式
- 第三范式要求一个数据库表中不包含已在其它表中已包含的非主关键字信息,非PK的字段间不能有从属关系