【数据库-入门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分"这种不合理的情况。

相关推荐
while(1){yan}7 小时前
Spring事务
java·数据库·spring boot·后端·java-ee·mybatis
盛世宏博北京7 小时前
高效环境管控:楼宇机房以太网温湿度精准监测系统方案
开发语言·数据库·php·以太网温湿度变送器
运维行者_8 小时前
2026 技术升级,OpManager 新增 AI 网络拓扑与带宽预测功能
运维·网络·数据库·人工智能·安全·web安全·自动化
gfdhy8 小时前
【C++实战】多态版商品库存管理系统:从设计到实现,吃透面向对象核心
开发语言·数据库·c++·microsoft·毕业设计·毕设
Elastic 中国社区官方博客8 小时前
Elasticsearch:上下文工程 vs. 提示词工程
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
小唐同学爱学习8 小时前
如何解决海量数据存储
java·数据库·spring boot·mysql
wWYy.8 小时前
详解redis(15):缓存雪崩
数据库·redis·缓存
zzcufo8 小时前
多邻国第五阶段第13部分
java·开发语言·数据库
这周也會开心8 小时前
Redis相关知识点
数据库·redis·缓存
小白爱运维9 小时前
MySQL升级8.0.44后登录报错-系统表不支持'MyISAM'存储引擎
数据库·mysql