之前挖的坑,现在来填。好久没复习和学习关于数据库的知识,之前觉得,准备面试,只需要了解写写常见的select语句就可以。现实却是,人家常见的增删改查都不怎么问,直接来外连接,内连接,索引如何优化,数据库的优化等这样的问题。所以,现在尝试把这个MySQL的基础系列补齐,在一定基础的积累之上,才会遇到和思考为什么要去优化。下面通过复习几个概念来展开MySQL基础的学习。

1. 什么是数据库?

       数据库通俗讲就是能够存储的容器或者仓库。专业的定义是高效的存储和处理数据的介质。介质主要是硬盘和内存两种。

2. 数据库的分类

       数据库基于存储介质的不同主要分两类:关系型数据库(SQL)和非关系型数据库(NoSQL: Not Only SQL)。中文定义习惯把不是关系型的数据库都叫非关系型数据库。

3.不同数据库的阵营的产品

关系型数据库

       大型(重量级):Oracle,DB2(IBM)

       中型:SQL-SERVER,MySQL

       小写:Access等


非关系型数据库

       Memcached

       Mongodb

       Redis

       三种都是运行在内存上,最早的产品是memcached,然后是mongodb慢慢流行起来,现在最流行的是Redis, 其中memcached和mongodb容易丢失数据,Redis可以做到不丢数据,是由于Redis采用了一个把数据从内存备份到磁盘的技术。

4.关系型数据库和非关系型数据库的区别

        关系型数据库:安全(保存在磁盘基本不会丢失),容易理解和掌握,比较浪费磁盘空间

        非关系型数据库:不安全(断电数据会丢失),效率高(运行在内存上比磁盘效率要高)

5.什么是关系型数据库

关系型数据库:是一种建立在关系模型(数学模型)上的数据库。

6.什么是关系模型

       关系模型:一种建立在关系上的模型(感觉这定义没有技术含量,废话)。这样,我们通过以下三个方面来理解关系模型。

       数据结构:主要解决数据存储方式,用二维表来存储,就是excel看到的表格那样,有行和列结构。

       完整性约束:表内数据约束(字段与字段),表与表之间约束(外键)

       操作指令集合:主要是SQL

7. 关系型数据库的设计标准

       从需要存储的数据中去分析,如果是一类数据(实体)应该设计成一张二维表。表是由表头(字段名:用来规定数据的名称)和数据(实际存储的部分)部分组成。例如下面这个表。

表头

字段1

字段2

数据单元

数据1

数据2

 

8.关键字说明

数据库:database,或者简称DB

数据库管理系统:DBMS(Database Management System),专门用来管理数据库的

数据库系统:DBS(Database System)  DBS =DBMS + DB

数据库管理员:DBA(Database Administrator)

行:row,表中一行,从结构角度出发定义

记录:record,一条数据是一个记录,从数据角度出发。

列:column,一列

字段:field

 

      上面行和记录本质是一个东西,同样列和字段也是本质是一个东西。都是从不同角度来描述的。