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

相关推荐
码农小卡拉4 小时前
深入解析Spring Boot文件加载顺序与加载方式
java·数据库·spring boot
怣504 小时前
MySQL多表连接:全外连接、交叉连接与结果集合并详解
数据库·sql
wjhx5 小时前
QT中对蓝牙权限的申请,整理一下
java·数据库·qt
冰暮流星5 小时前
javascript之二重循环练习
开发语言·javascript·数据库
万岳科技系统开发5 小时前
食堂采购系统源码库存扣减算法与并发控制实现详解
java·前端·数据库·算法
冉冰学姐5 小时前
SSM智慧社区管理系统jby69(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·管理系统·智慧社区·ssm 框架
杨超越luckly5 小时前
HTML应用指南:利用GET请求获取中国500强企业名单,揭秘企业增长、分化与转型的新常态
前端·数据库·html·可视化·中国500强
Elastic 中国社区官方博客6 小时前
Elasticsearch:Workflows 介绍 - 9.3
大数据·数据库·人工智能·elasticsearch·ai·全文检索
仍然.6 小时前
MYSQL--- 聚合查询,分组查询和联合查询
数据库
一 乐6 小时前
校园二手交易|基于springboot + vue校园二手交易系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端