数据库学习的先导必备基础知识-笔记-01章:数据库概述

01章:数据库概述

写在前面的话( •̀ .̫ •́ )✧:

即将学习数据库系统的课程,此文为预习与自学,自学配套课程链接为MySQL数据库入门到大牛,mysql安装到优化,百科全书级,全网天花板_哔哩哔哩_bilibili

在这个课的评论区也有一些人发了老师上课的笔记链接,下面的笔记是我自己跟着视频又手敲了一遍,有所保留的记一些文字内容,有所增加一些例子使之更易懂。

看本笔记需要了解的知识,知道什么是:

  • E-R图(entity-relationship,实体-联系)
  • 主键(Primary Key)PK
  • 外键(Foreign Key):FK

(如果这些概念都很清楚,可以掠过下面这部分,直接点目录看自己想看的)

本篇笔记作为一个初步了解,图示中包含有一些PK、FK的设定,虽然课程后面应该会详细的讨论主键和外键的作用、定义方法以及它们在数据库表中的应用,但是我认为这些内容也应该要在一开始就了解。如果没有关于这方面的知识,草草看几张图片并没有什么意义,下面的两篇文章写的都是个人看过的细致且没废话的文章,推荐大家先看这些内容!!!

一文讲透实体-联系模型(E-R图)-CSDN博客

MySQL基础:什么是主键和外键?它们之间有什么区别?外键有什么问题?-CSDN博客


我是一条分割线。

1. 数据库相关的基础概念

  • DB(database):数据库,保存一组有组织的数据的容器,本质是文件管理,就是存储数据的仓库。

  • DBMS(Database Manage System):数据库管理系统,又称为数据库软件,用于管理DB中的数据。常见的DBMS有MySQL、Oracle、DB2、SqlServer等等。

  • SQL(Strcuture Query Lauguage):结构化查询语言,用于和DBMS通讯的语言。

2. 数据库的分类

2.1 关系型数据库

二维表(行列)

可以把这类数据库视为一个电子表格,excel里有几个工作表,每个工作表里有行和列。每一行代表一个数据记录,每一列代表一个数据字段(比如名字、年龄、地址等)。

  • 表格:每个工作表就是一个表格(表),用来存储数据。
  • 主键:每个表格里的每一行都有一个唯一的标识符,比如一个身份证号码,确保每一行的记录都是独一无二的。
  • 关系:不同的表格之间可以通过共同的字段(比如身份证号码)建立关联,就像把一个表格中的某列和另一个表格中的相应列连起来。

举个栗子:假设你有一个顾客信息表和一个订单信息表,顾客信息表有顾客的姓名、电话等信息,订单信息表有订单的详细信息和顾客的身份证号码。你可以通过身份证号码将两个表中的信息关联起来,以便查看某个顾客的所有订单。

2.2 非关系型数据库

是一种数据结构化存储方法的集合,可以是文档或者键值对等。

可以想象我们在整理一个大杂烩的文件柜,里面有各种各样的文件夹。每个文件夹可以有不同的类型(比如合同、报告、图片等),每个文件夹里的文件内容也可以是各种格式(比如文字、图片、表格等)。

  • 文件夹:每个文件夹代表一个数据集,可以存储各种类型的数据。
  • 灵活性:文件夹里的文件不需要遵循严格的格式规则,我们可以随意组织文件和数据内容。
  • 类型:有些文件夹可能只包含文档(像电子邮件),有些可能是简单的键值对(像一本电话号码簿),有些则可能存储复杂的关系(像社交网络图)。

举个栗子:假设你有一个社交网络应用,用户信息、朋友关系、帖子等都以不同的格式存储在不同的文件夹里。你可以随意扩展这些文件夹的内容,而不用担心整个系统的结构必须保持一致。

3. 关系型数据库的设计规则

  • 关系型数据库的典型数据结构是数据表,这些数据表的组成都是结构化的。

  • 将数据放在表中,表再放到库中。

  • 一个数据库中可以有多个表,每个表都有一个名字,用来标识自己,表名具有唯一性(简单的说就是表名不能重复)。

  • 表具有一些特征,这些特性定义了数据在表中如何存储,类似Java和Python中类的设计。

3.1 表、记录、字段

  • E-R(entity-relationship,实体-联系)模型中有三个主要概念是:实体集属性联系集

  • 一个实体集(class)对应于数据库中的一个表(table),一个实体(instance)则对应于数据库表中的一行(row),也称为一条记录(record)。一个属性(attribute)对应于数据库表中的一列(column),也称为一个字段(field)。

ORM思想(Object Relationship Mapping)体现
数据库中的一个表 <---> Java或Python中的一个类
表中的一条数据  <----> 类中的一个对象(或实体)
表中的一个列   <-----> 类中的一个字段、属性(field)

3.2 表的关联关系

  • 表与表之间的数据记录有关系,现实世界中的各类实体以及实体之间的各种联系均用关系模型来表示。

  • 关联关系有四种:一对一、一对多、多对多、自我引用

3.2.1 一对一关联

举个栗子: 设计一张学生表,包括学生的学号、姓名、手机号码、班级、系别、身份证号码、家庭住址、籍贯、紧急联系人...

由于以上表中不是所有信息都为学生的常用信息,因此可以拆分为两个表。

  • 基础信息表(常用表):学号、姓名、手机号码、班级、系别

  • 档案信息表(不常用信息):学号、身份证号码、家庭住址、籍贯、紧急联系人...

两种表的建表原则:

  • 外键唯一

  • 外键是主键

3.2.2 一对多关联

常见栗子: 客户表和订单表,分类表和商品表,部门表和员工表。

关于部门表和员工表,一个部门可以对应多个员工,可以按如下方式建表:

  • 员工表(从表):编号、姓名、... 、所属部门

  • 部门表(主表):编号、名称、简介

一对多建表原则:在从表创建一个字段,字段作为外键指向主表的主键

3.2.3 多对多关联

要表示多对多关系,需要创建第三个表,通常成为联接表,它将多对多的关系划分为两个一对多的关系。将这两个表的主键都插入到第三个表中。

举第1个栗子:学生-课程

  • 学生信息表:一行代表一个学生的信息(学号、姓名、手机号码、班级、系别...)

  • 课程信息表:一行代表一个课程的信息(课程编号、授课老师、简介...)

  • 选课信息表:一个学生可以选多门课,一门课可以被多个学生选择

学号     课程编号  
1        1001
2        1001
1        1002

举第2个栗子:产品-订单

  • 产品表:”产品“表中的每条记录表示一个产品

  • 订单表:”订单“表中的每条记录表示一个订单

  • 订单明细表:每个产品可以与“订单”表中的多条记录对应,即出现在多个订单中,一个订单可以与“产品”表中的多条记录对应,即包含多个产品

举第3个栗子:用户-角色

多对多关系建表原则:需要创建第三张表,中间表中至少两个字段,这两个字段分别作为外键指向各自一方的主键。

3.2.4 自我引用

本篇Over!撒花!(●'◡'●)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值