数据库概述

目录

一、为什么使用数据库?

二、数据库与数据库管理系统

2.1 相关概念

2.2 两者关系

三、 MySQL介绍

四、 RDBMS和非RDBMS

4.1 关系型数据库(RDBMS)

4.2 非关系型数据库(非RDBMS)

五、关系型数据库设计规则

5.1 表、记录、字段

5.2 表的关联关系

5.2.1 一对一关联

5.2.2 一对多关联

5.2.3 多对多关联

5.2.4 自我引用


一、为什么使用数据库?

我们知道内存中的数据一旦机器掉电其数据就会丢失,为此我们可将数据保存到可掉电式的存储设备中如硬盘上的数据库中,从而实现数据的持久化存储。

二、数据库与数据库管理系统

2.1 相关概念

DB: 数据库(Database)

用来存储数据的仓库,其本质就是一个文件系统。保存了一系列有组织的数据。

DBMS:数据库管理系统(Database Management System)

用来管理和操作数据库的大型软件,通过此软件可以建立、使用和维护数据库,对数据库进行统一管理和控制。用户通过数据库管理系统来访问数据库表内的数据。

SQL:机构化查询语言(Structured Query Language)

数据管理员通过SQL代码在数据库管理系统上操作数据库的语言。是数据库管理系统操作数据库的一种工具(代码语言)。

2.2 两者关系

数据库管理系统(DBMS)可以管理多个数据库,一般开发人员会针对每个应用创建一个数据库,为保存应用中实体的数据一般会在数据库中创建多个表,以保存程序中实体用户的数据。

三、 MySQL介绍

MySQL是一个开发源代码的关系型数据库管理系统,可以处理上千万条记录的数据库。32位系统表文件最大支持4GB,64位系统支持最大的表文件8TB。MySQL使用SQL语言来操作数据库。一般大型企业使用收费的Oracle数据库、中小型企业使用免费的MySQL数库。

四、 RDBMS和非RDBMS

4.1 关系型数据库(RDBMS)

关系型数据库将复杂的数据结构归结为简单的二元关系即二维表格的形式。

  • 关系型数据库以行和列的形式存储数据便以用户理解,一系列的行和列被称为表,多个表组合到一起就构成了一个数据库。
  • 表与表之间的数据记录都是有关系的。现实世界中的各种实体以及实体之间的各种联系均用关系模型(各表之间数据记录之间的联系被称为关系模型)来表示。关系型数据库就是建立在关系模型基础上的数据库。
  • 可以使用SQL语句在多表之间做复杂的数据查询。
  • 对安全性要求很高的数据也可以使用关系型数据库访问。
4.2 非关系型数据库(非RDBMS)

非关系型数据库是以键值对的形式来存储数据的、不需要SQL层的解析,性能非常好,同时减少了一些不常用的功能。NoSQL泛指非关系型数据库,包括有:键值型数据库、文档型数据库、搜索型数据库和列存储等,还有图形数据库。

五、关系型数据库设计规则

  • 关系型数据库的数据结构就是数据表
  • 数据都是放在表中的,表都是放在库中
  • 一个数据库可以放多张表,每个表都有相对应的名字用来唯一标识自己
  • 表都会有一些特性、这些特性来规定数据在表中如何存储。
5.1 表、记录、字段
  • E-R(实体-联系)模型中三个主要概念是:实体集、属性、联系集(表之间实体与实体之间的联系)。

 

数据库中的一个表------->java或python中的一个类(或实体集)

数据库中的一行数据即记录----->类的一个对象(或实体)

数据库中的一列即字段----->类中的一个属性

5.2 表的关联关系

在数据库中表之间的数据记录有关系、在现实世界中各实体对象之间也存在各种联系,我们可以使用关系模型(表)表示出来。

四种:一对一关联、一对多关联、多对多关联、自我引用。

5.2.1 一对一关联
  • 表中的一条记录(实体)对应另外一张表中的一条记录即为一对一关系。
  • 记录之间一对一关系的两张表完全可以合并到一张表中,因此在实际开发中应用不多。 
5.2.2 一对多关联
  • 表中的一条记录对应另一张表中的多条记录

5.2.3 多对多关联
  • 表中的一条记录对应另个表的多条记录同时另个表中的一条记录又对应本表中的多条记录。
  • 要表示多对多关系,必须创建第三个联接表,它将多对多关系划分为两个一对多的关系。将这两个表的主键都插入第三个表中。

 备注:多对多的关系在选课信息表中体现了出来(中间表)

5.2.4 自我引用
  • 一张表中记录的某条字段(属性值)指向的还是自己这张表中的某个记录被称为自我引用即表中记录的某字段引用的还是这个表中的记录(自己人找自己人即表找表本身)。

@声明:“山月润无声”博主知识水平有限,以上文章如有不妥之处,欢迎广大IT爱好者指正,小弟定当虚心受教!

相关推荐

  1. 数据库概述

    2024-02-22 02:30:04       66 阅读
  2. 【MySQL】数据库概述

    2024-02-22 02:30:04       31 阅读
  3. 【PostgreSQL】数据查询-概述

    2024-02-22 02:30:04       56 阅读
  4. 数据结构概述

    2024-02-22 02:30:04       58 阅读
  5. 数据结构:入门概述

    2024-02-22 02:30:04       52 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-22 02:30:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-22 02:30:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-22 02:30:04       82 阅读
  4. Python语言-面向对象

    2024-02-22 02:30:04       91 阅读

热门阅读

  1. 使用 Spring Authorization Server

    2024-02-22 02:30:04       51 阅读
  2. 计算机软件学习大方向

    2024-02-22 02:30:04       49 阅读
  3. 19 OpenGL计算着色器

    2024-02-22 02:30:04       44 阅读
  4. 浅谈IDEA的目录

    2024-02-22 02:30:04       44 阅读
  5. 象棋笔记()

    2024-02-22 02:30:04       53 阅读
  6. 字符串摘要(C语言)

    2024-02-22 02:30:04       43 阅读
  7. P6279 题解

    2024-02-22 02:30:04       51 阅读
  8. Linux系统安装zookeeper

    2024-02-22 02:30:04       54 阅读
  9. 字符串变换最小字符串(C语言)

    2024-02-22 02:30:04       49 阅读
  10. harmony 鸿蒙使用N-API开发Native模块

    2024-02-22 02:30:04       58 阅读