0 前言

本文通过一个实例,来讲解数据模型的基础概念。

要求设计一个数据库的数据模型,统计出你的宿舍每个人(4个人)的信息,要求包括

  • 个人信息:学号、姓名、班级、年级、学院
  • 选课情况:学号、课程号、课程名称、学分
  • 获奖情况:学号、获奖内容、颁发单位

1 抽象:人类世界与计算机世界之间的“中转站”


所谓抽象,就是将现实问题,转换为抽象模型,然后据此,翻译为计算机语言,抽象模型众多,抽象方法众多,不具体展开,只需有一个抽象的概念即可,在不同领域会有不同的抽象方法。

2 众多抽象模型之一:数据模型

数据模型,是对现实世界的数据,进行抽象,我们举个例子,就用开篇中的一个问题。

个人信息:学号、姓名、班级、年级、学院

我们把这个问题,进行抽象,得到的结果如下(答案不唯一,这只是其中一种结果,事实上,对于抽象结果,是没用答案的,只要好用就行)


是的,我们将文字,抽象成了一个二维的表格

这种模型,就是数据库最重要的模型:关系模型,这个过程,就是关系模型的构建。

该模型的数据结构,就是关系结构,它包含的操作,有增、删、改、查等,同时还会有一些约束,这里不展开。

关系模型,只是数据模型的一种,其他的还有

  • 网状模型:本质就是
  • 层次模型:本质就是
  • 面向对象数据模型
  • 对象关系数据模型
  • 半结构化数据模型

有各种各种的数据模型,只需要了解即可,重点关注关系模型

3 关系模型的细节

关系模型,可以分成列和行两个重要的属性。

列包含了实体的属性名称及其数据类型

行(row)是数据行,包含了各种各样,符合列(column)要求的数据。

4 将数据模型进一步抽象:概念模型

这里,我们对之前谈及的几种关系模型(网状、层次、关系模型……),进行进一步的抽象,让你理解概念模型

将几种具体的关系模型,抽离出它们的共性,组合为一个类,这就是抽象过程,得到的结果就是概念模型,它有以下重要的概念。

  • 实体:现实世界的东西,客观存在并且可以相互区别的事物,比如我们刚才说的,学生个人信息就是一个实体,基本来说,几乎你能够知道的现实世界的所有东西,都可以作为实体,甚至看不见的但是客观存在的,也是实体,比如“我和学校的关系”(我在学校学习)。
  • 属性:实体所具备的特性,比如学生个人信息有学号、姓名、班级……,这些就是实体的属性
  • key:被称为 “码”或者“键” ,它是能够唯一标识实体的属性,比如学号就是key
  • 实体型
  • 实体集
  • 联系

5 抽象过程

之前是为了讲述知识,但这并不是实际的操作过程。

我们将概念模型称为第一层抽象,将各种数据模型称为第二层抽象,正确的操作顺序应该是这样的。

6 学习过程

对于初学者来说,学习过程与正常开发设计过程是不一样的

学习过程应该是:

  1. 先会使用基本的SQL语句进行简单数据的创建
  2. 再结合关系模型,以及关系模型的理论,进行进一步研究
  3. 理解关系模型的数学观念,比如笛卡尔积等等
  4. 结合概念模型,完善之前学会的内容
  5. 新的实战,继续重复上面的步骤
  6. 如果你足够熟悉了,那么,可以按照正常的开发顺序进行了

【数据库】数据模型基础概念(图文版)相关推荐

  1. 数据库的基础概念和代码例子(增删改查和其他操作-约束)

    前言必读 读者手册(必读)_云边的快乐猫的博客-CSDN博客 目录导航: 一概念解析 1.什么是数据库? 2.什么是数据库管理系统? 3.什么是SQL? 4.什么是关系型数据库? 5.SQL通用语句? ...

  2. 数据库 视图基础概念

    数据库中视图的概念: 视图是从一个表或是多个表导出的表,视图与表不同,视图是一个虚表,即视图所对应的数据不进行实际存储,数据库中指存储视图的定义,在对视图的数据进行操作时,系统根据视图的定义去操作与视 ...

  3. 数据库学习——基础概念

    数据库的概述 数据库Database(DB):按照数据结构组织.存储和管理数据的仓库.本质是一个文件系统.保存一系列有组织的数据.每个数据库都有一个或者多个不同的API用于创建.访问.管理.搜索和复制 ...

  4. Delphi基础教程图文版之单元文件

    写完开篇之后考虑很久先写什么,Delphi是以单元(unit)作为它的程序组成,单元文件的后缀名为 .pas 想来想去还是从单元文件开始说起 我们在官方文档可以看到如下的描述 将大型程序划分为可以单独 ...

  5. 微信小程序云函数传递数组_微信小程序云开发能力之数据库基础概念

    云开发提供了一个 JSON 数据库,顾名思义,数据库中的每条记录都是一个 JSON 格式的对象.何为JSON 格式的对象? 像这样的{"name":"温仪" , ...

  6. 理解数据库与数据模型的概念

    本篇首先引入编程微课项目作为数据库的应用案例,通过对项目功能及涉及的相关数据的介绍,让读者对数据库的应用有一个感性认识,然后重点讲述关系数据库的理论基础知识.通过本篇的学习,读者应该能掌握以下内容: ...

  7. 数据库书籍-数据库系统概念(原书第6版)

    数据库书籍-数据库系统概念(原书第6版) 基本信息 原书名: Database System Concepts,Sixth Edition 原出版社: McGraw-Hill 作者: (美)Abrah ...

  8. 从属关系mysql_关系型数据库基础概念:MySQL系列之开篇

    一.基础概念 数据(Data)是描述事物的符号记录,是指利用物理符号记录下来的.可以鉴别的信息. 1.数据库(Database,DB)是指长期储存在计算机中的有组织的.可共享的数据集合.数据要按照一定 ...

  9. 零基础 Amazon Web Services (AWS) 入门教程图文版(三)

    原则上WDCP安装好了,就可以直接使用了,FTP.MySQL什么的应有尽有.但是本站Amazon AWS -- 免费的午餐不好吃一文中说到过这个问题,直接用WDCP的MySQL会导致EBS的I/O急剧 ...

最新文章

  1. 打印机打印一次出三张_一次性帮你搞定3D打印机堵塞问题
  2. 车辆检测--A Closer Look at Faster R-CNN for Vehicle Detection
  3. c语言程序段的流程图怎么画,大家帮我看看这个程序的流程图怎么画,谢了
  4. nyoj 1216 整理图书(dp)
  5. wuhan2020:武汉新型冠状病毒防疫开源信息收集平台
  6. pandownload用户未登录_Pandownload再度复活,下载速度飙升到10MB/s以上
  7. Hashtable和HashMap类的区别
  8. SpringBoot之SpringMVC自动配置
  9. Java高全级别灰色_想问下用过JAVACV的大兄弟,为啥我这边抽取图片总是有灰色图片...
  10. mysql将最大金额加1000_Mysql数据库笔记
  11. 是不是每个人的成长路上都会有迷茫的阶段?
  12. 当前读和快照读是什么 区别
  13. 改进:js修改iOS微信浏览器的title
  14. 【Java】用JavaFx实现记事万年历(实验课题目)
  15. vue-cli项目中使用Mint-ui中的mt-cell、mt-popup、mt-picker实现仿淘宝添加收货地址页面(地址三级联动 附全国省市区json文档)
  16. 南方cass快捷键命令修改在哪_南方cass快捷键命令
  17. FPGA源同步时钟输出
  18. 《穿普拉达的女王》-观后感
  19. python实现淘宝自动登录秒杀功能
  20. C语言中fprintf函数的使用介绍

热门文章

  1. fir.im Log Guru 正式开源,快速找到 iOS 应用无法安装的原因
  2. java8-4 多态的练习以及题目
  3. Linux中exit与_exit的区别
  4. 示例 Demo 工程和 API 参考链接
  5. [转]Ubuntu远程桌面登陆
  6. Jquery CheckBox全选方法
  7. django异常日志_【python小随笔】Django+错误日志(配置Django报错文件指定位置)...
  8. linux php自动执行_linux下实现定时执行php脚本
  9. mysql启动时执行sql server_常见 mysql 启动、运行.sql 文件错误处理
  10. 10个职场故事,让人不得不看