数据库(一)——数据库基础

目录

    • 一、数据库基本概念
    • 二、数据库范式
        • 1、第一范式(1NF):
        • 2、第二范式(2NF):
        • 3、第三范式(3NF):
    • 三、启动和关闭数据库的命令:
    • 四、关系型数据库和非关系型数据库

一、数据库基本概念

  • 数据库:以一定的方式保存在计算机存储设备上的相互关联、可共享的数据的集合;
  • MySQL目前属于Oracle甲骨文公司,MySQL称之为关系型数据库、微软的SQL server ;
  • MySQL数据库是一种C/S模型即客户端和服务端模型;
  • 客户端通过账号、密码连接服务器,连接成功后才可以进行数据库的操作(增加、删除、变更、查询 CRUD);
  • MySQL的服务端采用的IO复用+可伸缩的线程池,实现了网络高并发的经典模型

二、数据库范式

名词 概念
实体 现实世界中客观存在并可以被区别的事物。比如“一个学生”、“一本书”、“一门课”等等。值得强调的是这里所说的“事物”不仅仅是看得见摸得着的“东西”,它也可以是虚拟的,比如说“老师与学校的关系”。
属性 教科书上解释为:“实体所具有的某一特性”,由此可见,属性一开始是个逻辑概念,比如说,“性别”是“人”的一个属性。在关系数据库中,属性又是个物理概念,属性可以看作是“表的一列”。
元组 表中的一行就是一个元组。
分量 元组的某个属性值。在一个关系数据库中,它是一个操作原子,即关系数据库在做任何操作的时候,属性是“不可分的”。否则就不是关系数据库了。
码(键) 表中可以唯一确定一个元组的某个属性(或者属性组),如果这样的码有不止一个,那么大家都叫 候选码(候选键), 我们从候选码中挑一个出来做老大,它就叫主码(主键)。
全码 如果一个码包含了所有的属性,这个码就是全码
主属性 一个属性只要在任何一个候选码中出现过,这个属性就是主属性。
非主属性 与上面相反,没有在任何候选码中出现过,这个属性就是非主属性。
外码 一个属性(或属性组),它不是码,但是它别的表的码,它就是外码。

应用数据库的范式可以带来很多好处,最主要的归纳为三点:
1)减少数据冗余(最主要的好处、其他好处因此而附带);
2)消除异常(插入异常、更新异常、删除异常);
3)让数据组织的更加和谐;

学生表

学号 用户名 性别 年龄 学院ID
1803 李四 25 05
1805 小明 24 01

学院表

学院ID 学院名
01 计算机院
05 理学院

用户就是一个实例
"用户名"称之为属性

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

1、第一范式(1NF):

每一列保持原子特征,列是基本数据项、不能再进行擦缝,否则设计成一对多的关系
不满足第一范式不能称之为关系型数据库;

学生表(学号、用户名、性别、年龄,地址)
例:陕西省西安市西安工大学
例:陕西省西安市未央区学府中路西安工业大学
地址信息还包含省市区可以拆分
拆分改造后:
学生表(学号、用户名、性别、年龄、地址ID)
地址表(地址ID、省、市、区)

2、第二范式(2NF):

属性完全依赖于主键(针对联合主键 → 消除部分依赖),1NF基础上,非主属性完全依赖于主键,如果不是依赖主键,应该拆分成新的主体,拆分成一对多的关系;

学生选课表(学生ID、学生姓名、学生性别、课程名称、课程成绩)
主键(学生ID、课程名称)
学生姓名 → 学生ID → 部分依赖
学生性别 → 学生ID → 部分依赖
课程成绩 →(学生ID、课程名称)→ 完全依赖

拆分改造后:
学生表(学生ID、学生姓名、学生性别) 主键:学生ID
课程成绩表(课程ID、课程名字、学生ID、成绩) 主键:课程ID
键(课程ID、学生ID)

3、第三范式(3NF):

2NF基础上、属性不依赖于其他非主属性(消除依赖传递);

学生表(学生ID、学生姓名、学生性别、学院名称、学院电话)
主键:学生ID
学生姓名 → 学生ID
学生性别 → 学生ID
学院名称 → 学生ID
学院电话 → 学生ID → 查询学院 → 查询学院电话
拆分改造后:
学生表:(学生ID、学生姓名、学生性别、学院ID)主键:学生ID
学院表:(学院ID、学院名称、学院电话) 主键:学院ID

BCNF、4NF、5NF
通过范式学习:应用范式越高、表越多、表越多带来的问题:

  1. 查询时需要连接多个表,增加了查询的复杂性;
  2. 查询时需要连接多个表,降低了数据库查询的性能;

范式并不是越高越好,一般满足3范式即可

三、启动和关闭数据库的命令:

连接前服务端必须要启动
 mysql -u XXX -p XXX
 mysql:代表客户端命令
 -u 后面跟用户名(user:)
 -p 后面跟用户密码
 
 退出用户端登录: exit;

四、关系型数据库和非关系型数据库

关系型数据库与非关系型数据库Nosql区别汇总

你可能感兴趣的:(数据库)