【数据库-入门2】基本概念

一、数据模型(Data Model)

是一种模型,它是对现实世界数据特征的抽象。数据模型就是现实世界的模拟。

概念模型是现实世界到机器世界的一个中间层次,表现为:

①概念模型用于信息世界的建模;

②现实世界到信息世界的第一层抽象;

③数据库设计人员进行数据库设计的有力工具;

④数据库设计人员和用户之间进行交流的语言。

概念模型要求:

①具有较强的语义表达能力;

②能够方便、直接地表达应用中的各种语义知识;

③简单、清晰、易于用户理解。

!note

数据模型应满足三个方面:

1、能比较真实的模拟现实世界:比如不能把"学生"和"课程"的关系画反(不能写成课程选学生),要符合实际情况;

2、容易被人理解:非专业的人(比如学校的行政老师)看了这个模型,也能明白里面说的是学生、课程这些东西的关系,不用懂复杂的计算机知识;

3、便于在计算机上实现:画出来的这个"地图",最终能转化成计算机能存储、处理的形式(比如我们平时用的表格、数据库里的数据)。

根据模型应用的不同目的,可分为两类:

第一类:概念模型(Conceptual Model)

  • 概念模型也称信息模型,它是按用户的观点来对数据和信息建模,主要用于数据库设计。

!note

通俗理解:概念模型是"给用户看的模型 "。按用户的需求和视角设计贴合用户的需求和视角,使用用户能看懂的语言(甚至使用大白话)来叙述,能清晰理解模型所涵盖的信息和关系,进而确认需求是否准确。

第二类:逻辑模型和物理模型

  • 逻辑模型 主要包括层次模型(Hierarchical Model)、网状模型(Network Model)、关系模型(Relational Model)、面向对象模型(Object Oriented Model)、对象关系模型(Object Relational Model)等。它是按计算机系统的观点对数据建模,主要用于DBMS的实现。

!note

通俗理解:逻辑模型是"给计算机看的、标准化的模型"。程序员把概念模型转换成计算机能识别的标准化格式 。可以理解为这是程序员建立数据库过程中的核心关键步骤,但不是建立数据库的全部过程。程序员就把用户能看懂的 "大白话需求模型",变成数据库软件(如 MySQL)能处理的技术方案。

  • 物理模型 是对数据最低层的抽象,他描述数据在计算机内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法,是面向计算机系统的

!note

通俗理解:物理模型是"数据在电脑里具体怎么放的模型",是最底层的细节。描述数据在计算机硬件里的真实存储细节。简单说,物理模型的基础实现靠硬件和数据库软件,但高级优化需要程序员参与,并非和程序员完全无关。

二、数据模型的组成要素

数据模型通常由数据结构、数据操作和完整性约束三部分组成。

1、数据结构

数据结构描述数据库的组成对象以及对象之间的联系。数据结构使所描述的数据对象类型的集合,是对系统静态特征的描述。

!note

数据结构就像"数据库的骨架",规定了数据库里要装哪些东西、这些东西之间是什么关系。比如学校数据库里,"骨架"就是学生、课程、老师这些"对象",以及"学生选课程""老师教课程"这些"联系"。说它是"静态特征",因为它描述的是"有什么""是什么关系",不涉及"对这些东西做什么操作"。

2、数据操作

数据库主要由查询更新(包括插入、删除、修改)两大类操作。数据操作是对系统动态特征的描述。

!note

通俗理解:数据操作就是"对数据库里的数据能做的动作",是让数据库"动起来"的方式。比如"查某个学生的成绩"(查询)、"新增一个学生信息"(插入)、"删除已毕业学生的记录"(删除)、"修改学生的联系电话"(修改),这些都是数据操作。"动态特征"就是指这些"动作"本身,描述的是"能做什么"。

3、数据的完整性约束条件

数据的完整性约束条件是一组完整性规则。

!note

例:若已经规定成绩是0~100,那么就不能出现100以上与0以下的成绩,要遵守规定的规则。

通俗理解:完整性约束就是数据库的"数据规矩",用来保证数据是准确、合理、有效的。除了例子里的"成绩范围限制",常见的还有"学号不能重复"(每个学生的学号是唯一的)、"必填字段不能空"(学生的姓名必须填写,不能留空)等。有了这些规矩,才能避免出现错误或无效的数据,比如不会出现"学号重复的学生""成绩150分"这种不合理的情况。

相关推荐
DB哥讲数据库12 分钟前
【ClickHouse安装教程】从零开始部署高性能列式数据库(附ClickHouse安装包)
数据库·clickhouse
TDengine (老段)35 分钟前
TDengine 第三方工具 — Telegraf、Kafka Connect、Flink、Spark
大数据·数据库·物联网·flink·kafka·时序数据库·tdengine
小白勇闯网安圈9 小时前
Django 响应对象、文件上传与类视图
数据库·django·sqlite
努力的小雨10 小时前
同一份 SQL 跑多套环境:Ksql 变量怎么用才安全
数据库
科技绘图11 小时前
快鲸GEO vs 传统AI搜索优化:全链路自动化与高效内容生产在转化闭环上的对比
数据库·人工智能·自动化
ltl11 小时前
数据库作为 LLM 记忆体:语义缓存、RAG 与一致性
数据库
ltl11 小时前
WAL 与崩溃恢复:ARIES 协议怎么跑通
数据库
ltl11 小时前
TEE 数据库:EnclaveDB、Oblivious 原语与机密 SQL
数据库
麻瓜code12 小时前
【Mysql】重新学一遍 SQL 执行顺序
数据库·sql
这个DBA有点耶13 小时前
数据库一体机架构演进:从硬件堆叠到软硬深度耦合
服务器·网络·数据库·硬件架构·运维开发·database·数据库架构