MySQL数据库初学必须了解并熟知的一些知识点

一、什么是MySQL?

  • MySQL属于数据库的一种,他被称为关系型数据库, 例如:微软的SQL Server

  • MySQL数据是一种C/S模型,即客户端和服务端模型。客户端通过账号,密码连接服务器,连接成功后才可以进行数据操作(增删改查CRUD)

  • MYSQL的服务端采用的是 IO复用+可伸缩的线程池,实现了网络高并发的经典模型

二、MYSQL的SQL语句类别划分

  1. DDL(Data Definition Language):数据库定义语言
    定义了不同数据库,数据库表,列,索引等数据库对象的定义
    常用的SQL
    create(创建)、drop(删除)、alter(更新)

  2. DML(Data Manipulation language):数据操控语言
    用于增删改查数据库中的记录
    常用的SQL
    insert(添加)、delete(删除)、update(更新)、select(查询)

  3. DCL(Data Control language):数据控制语言
    控制不同数据库段直接访问和访问级别的语句
    常用SQLgrant(给用户增加权限)、revoke(收回用户的权限)

三、数据库常用的名词

  1. 实体:现实世界中客观存在并可以被区别的事物。比如“一个学生”、“一本书”、“一门课”等等。这里所说的“事物”不仅仅是看得见摸得着的“东西”,它也可以是虚拟的,例如“老师与学校的关系”。

  2. 属性:“实体所具有的某一特性”,属性一开始是个逻辑概念,比如说,“性别”是“人”的一个属性。在关系数据库中,属性又是个物理概念,属性可以看作是“表的一列”。

  3. 元组:表中的一行就是一个元组。

  4. 分量:元组的某个属性值。在一个关系数据库中,它是一个操作原子,即关系数据库在做任何操作的时候,属性是“不可分的”。否则就不是关系数据库

  5. 码(键):表中可以唯一确定一个元组的某个属性(或者属性组),

  6. 候选码(候选键): 能唯一标识关系中元组的一个属性或者属性集,称为候选码(候选键)。例如学生关系中的学号可以唯一标识一个学生,那么学号就是学生关系的候选键; 在选课关系中,只有学号和课程号才能唯一区分每一条选课记录,那么学号+课程号是选课关系的候选键。

  7. 主码(主键):若一个关系中有多个候选码,从候选码中选择一个作为CRUD元组的操作变量,这个候选码称为主码(主键)。
    每个关系中必须选择一个主码,选定以后不能随意改变。

  8. 全码:如果一个码包含了所有的属性,这个码就是全码。

  9. 主属性:包含在主码中的各个属性就是主属性。

  10. 非主属性:没有在任何候选码中出现过,这个属性就是非主属性。

  11. 外码(外部关系键):一个属性(或属性组),它不是当前表的主码,是另一个表的码,对当前表来说就是外码。

四、数据库范式

  1. 什么是范式?
    在关系模式的分解中,函数依赖有很重要的作用,分解这些依赖后,衡量的标准就是范式(Normal Forms,NF)
    范式 是在关系模式的规范化过程中要求设立的不同标准。

  2. 应用数据库范式的好处是什么?
    1)减少数据冗余(最主要的好处、其他好处因此而附带)
    2)消除异常(插入异常、更新异常、删除异常)
    3)让数据组织的更加和谐。

  3. 范式的分类
    1)第一范式1NF(First Normal Form)
    2)第二范式2NF(Second Normal Form)
    3)第三范式3NF(Third Normal Form)
    4)BC范式(Boyce-Codd Normal Form)
    5)第四范式、第五范式等等

  4. 范式的作用
    进行数据库设计时字段、库表划分的依据

  5. 第一范式 1NF
    每一列保持原子特征,列是基本数据项,不能再进行拆分,否则会设计成一对多的关系
    不满足第一范式不能称之为关系型数据库
    举例:
    学生表(学号、用户名、性别、年龄、地址)
    例:XX省XX市XX大学
    例:XX省XX市XX区XX路XX大学

    当前例子中的地址信息还包含省市区可以拆分
    拆分改造后
    学生表:(学号、用户名、性别、年龄、地址ID)
    地址表:(地址ID、省、市、区)
    此时满足第一范式

  6. 第二范式 2NF
    属性完全依赖于主键(针对联合主键 →为了 消除部分依赖)
    非主属性完全依赖于主键,如果不是依赖于主键,应该拆分成新的主体,拆分成一对多的关系
    举例:
    学生选课表(学生ID、学生姓名、性别、课程名、成绩)
    主键:学生ID、课程名

    学生姓名 → 学生ID → 部分依赖主键
    学生性别 → 学生ID → 部分依赖主键

    课程成绩 → 学生ID+课程名 → 完全依赖

    通过拆分改造(消除部分依赖)
    学生表(学生ID、学生姓名、性别) 主键:学生ID
    课程成绩表(课程ID、课程名、学生ID、成绩) 主键:课程ID
    键(课程ID、学生ID)

  7. 第三范式 3NF
    在2NF的基础上、属性不依赖于其他非主属性(为了消除依赖传递)
    举例:
    学生表(学生ID、学生姓名、性别、学院名、学院电话)
    主键:学生ID

    学生姓名可以通过ID查到
    学生性别可以通过ID查到
    学院名也可以通过ID查到

    学院电话 → 学生ID → 查询学院 → 查询学院电话
    (学院电话不能直接通过学生ID查出来(属性不依赖于其他非主属性))

    拆分改造(消除依赖传递)
    学生表(学生ID、学生姓名、性别、学院ID) 主键:学生ID
    学院表(学院ID、学院名、学院电话) 主键:学院ID

  8. BC范式
    BC范式是在第三范式的基础上的一种特殊情况,既每个表里只有一个候选键。

  9. 应用范式需注意
    1) 应用范式越高,表越多,带来的问题:
    ①查询时需要连接多个表,增加了查询的复杂性
    ②查询时需要连接多个表,降低数据库查询的性能
    2)范式不是越高越好,一般满足三个范式就够了

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值