基本术语解析
服务器:通俗理解就是提供服务的机器。跟电脑类似,由cpu、内存、硬盘组成。但在安全性、稳定性、可操作性、可维护性都有较高的要求。
个人理解服务器就是加强版的专用电脑(当然跟电脑长的不太一样),并安装特定的服务软件,用来提供特定服务。
数据库:database 简称DB。
两层含义:
1、指的是软件比如mysql。所以数据库就是高效的存储以及数据处理的软件。本质上,数据库就是一个软件,用来存储和处理数据。
2、指存储在数据库软件里的数据库文件。(数据库是按照文件进行存储的)
数据库服务器:安装数据库软件(如mysql)的服务器,用来提供储存和处理数据的服务。
数据库的分类
-
按数据组织方式
- 层次式数据库
- 网络式数据库
- 关系式数据库
-
按数据库模型
- 关系型数据库(SQL)
- 非关系型数据库(NOSQL)
目前最流行的数据库模型主要是两种,即关系型数据库和非关系型数据库。
关系
实体 | 实体集(类) | 属性 |
---|---|---|
张三/鹦鹉 | 人类/鸟类 | 身高/羽毛颜色 |
一条记录 | 数据表 | 表字段(列) |
对象 | 类 | 对象属性或方法 |
实体:客观存在的事物,能够看得见,摸得着或者感受到。所对应的是数据库记录。
实体集:抽象出来的,具体的事物的一个抽象的统称。所对应的是数据库的表概念
属性:实体具有的特性,对于的数据库的概念是表字段(列)。
关系分类
- 一对一
- 一对多
- 多对多
区分关系把握住实体!
关系型数据库:建立在关系模型上的数据库就是关系型数据库。
MYSQL 数据库
SQL(structured query language):
结构化查询语言。同时这个sql也是数据库文件的脚本后缀名。
SQL是数据客户端与数据库服务端进行沟通的语言,SQL语言是一种SQL通信的规范。是由美国的国家标准协会制定的标准(1986)。几乎所有的关系型数据库都是支持SQL的。
SQL分类:
- DCL:数据库控制语言: 主要是进行权限以及数据库用户的管理。
- DDL:数据库定义语言: 创建表,创建库。
- DML数据操作语言(对数据进行增删改查)
- DQL: 数据库查询语言:数据的查询。
MySQL:
是一个关系型数据库,存储的数据是实体与实体关系的抽象
是web端最好用的一款数据库
MySQL具有很好的支持,特别是对PHP的支持,PHP有专门的针对MySQL的扩展,lamp以及lnmp都是目前非常流行的网站架构。
是瑞典的MySQLAB公司的产品,MySQL目前属于oracle(甲骨文)。有两个版本:社区版与企业版。社区版是开源,免费的,企业版是收费的。
范式(Normal Format):
-
定义:
- 符合某一种级别的关系模式的集合。构造数据库必须遵循一定的规则。在关系数据库中,这种规则就是范式。
-
范式层级(1NF-6NF)主要用到前三层
第一范式(1NF):字段要保证原子性,也就是字段不可拆分
第二范式(2NF):一张表中所有的字段完全直接依赖于主键
第三范式(3NF):主要解决传递依赖
-
特点:
- 每一层都比上一层更加严格
- 每一层都是下一层的基础条件
作用:
解决存储空间问题(关系存储过程中的数据冗余问题)
逆范式
由起:有时数据表中的一些数据需要从另外一个数据表中根据关联查询去获取,理论上也能够取到数据。但是效率就会低很多,所以可以在设计数据表的时候增加一个字段去保存在查询时经常会获取的另一个数据表中的字段。这样在进行数据获取的时候使用一张数据表就能够获取到所有的数据。从而提高了查询效率。
作用:解决效率问题。
MySQL数据库的组织架构:
-
数据库
- MySQL可以有多个数据库
- 一个数据库可以有多个数据表
-
数据表
- 一个数据表可以有多个记录
- 一个记录可以有多个字段
数据
图示MySQL数据库的组织架构
数据表结构