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

相关推荐
数据库小组3 小时前
2026 年,MySQL 到 SelectDB 同步为何更关注实时、可观测与可校验?
数据库·mysql·数据库管理工具·数据同步·ninedata·selectdb·迁移工具
华科易迅3 小时前
MybatisPlus增删改查操作
android·java·数据库
Kethy__3 小时前
计算机中级-数据库系统工程师-计算机体系结构与存储系统
大数据·数据库·数据库系统工程师·计算机中级
SHoM SSER3 小时前
MySQL 数据库连接池爆满问题排查与解决
android·数据库·mysql
熬夜的咕噜猫4 小时前
MySQL备份与恢复
数据库·oracle
jnrjian4 小时前
recover database using backup controlfile until cancel 假recover,真一致
数据库·oracle
lifewange4 小时前
java连接Mysql数据库
java·数据库·mysql
大妮哟5 小时前
postgresql数据库日志量异常原因排查
数据库·postgresql·oracle
还是做不到嘛\.6 小时前
Dvwa靶场-SQL Injection (Blind)-基于sqlmap
数据库·sql·web安全
不写八个6 小时前
PHP教程004:php链接mysql数据库
数据库·mysql·php