【数据库】数据模型基础概念(图文版)
0 前言
本文通过一个实例,来讲解数据模型的基础概念。
要求设计一个数据库的数据模型,统计出你的宿舍每个人(4个人)的信息,要求包括
- 个人信息:学号、姓名、班级、年级、学院
- 选课情况:学号、课程号、课程名称、学分
- 获奖情况:学号、获奖内容、颁发单位
1 抽象:人类世界与计算机世界之间的“中转站”
所谓抽象,就是将现实问题,转换为抽象模型,然后据此,翻译为计算机语言,抽象模型众多,抽象方法众多,不具体展开,只需有一个抽象的概念即可,在不同领域会有不同的抽象方法。
2 众多抽象模型之一:数据模型
数据模型,是对现实世界的数据,进行抽象,我们举个例子,就用开篇中的一个问题。
个人信息:学号、姓名、班级、年级、学院
我们把这个问题,进行抽象,得到的结果如下(答案不唯一,这只是其中一种结果,事实上,对于抽象结果,是没用答案的,只要好用就行)
是的,我们将文字,抽象成了一个二维的表格。
这种模型,就是数据库最重要的模型:关系模型,这个过程,就是关系模型的构建。
该模型的数据结构,就是关系结构,它包含的操作,有增、删、改、查等,同时还会有一些约束,这里不展开。
关系模型,只是数据模型的一种,其他的还有
- 网状模型:本质就是图
- 层次模型:本质就是树
- 面向对象数据模型
- 对象关系数据模型
- 半结构化数据模型
有各种各种的数据模型,只需要了解即可,重点关注关系模型。
3 关系模型的细节
关系模型,可以分成列和行两个重要的属性。
列包含了实体的属性名称及其数据类型:
行(row)是数据行,包含了各种各样,符合列(column)要求的数据。
4 将数据模型进一步抽象:概念模型
这里,我们对之前谈及的几种关系模型(网状、层次、关系模型……),进行进一步的抽象,让你理解概念模型。
将几种具体的关系模型,抽离出它们的共性,组合为一个类,这就是抽象过程,得到的结果就是概念模型,它有以下重要的概念。
- 实体:现实世界的东西,客观存在并且可以相互区别的事物,比如我们刚才说的,学生个人信息就是一个实体,基本来说,几乎你能够知道的现实世界的所有东西,都可以作为实体,甚至看不见的但是客观存在的,也是实体,比如“我和学校的关系”(我在学校学习)。
- 属性:实体所具备的特性,比如学生个人信息有学号、姓名、班级……,这些就是实体的属性
- key:被称为 “码”或者“键” ,它是能够唯一标识实体的属性,比如学号就是key
- 实体型
- 实体集
- 联系
5 抽象过程
之前是为了讲述知识,但这并不是实际的操作过程。
我们将概念模型称为第一层抽象,将各种数据模型称为第二层抽象,正确的操作顺序应该是这样的。
6 学习过程
对于初学者来说,学习过程与正常开发设计过程是不一样的
学习过程应该是:
- 先会使用基本的SQL语句进行简单数据的创建
- 再结合关系模型,以及关系模型的理论,进行进一步研究
- 理解关系模型的数学观念,比如笛卡尔积等等
- 结合概念模型,完善之前学会的内容
- 新的实战,继续重复上面的步骤
- 如果你足够熟悉了,那么,可以按照正常的开发顺序进行了
【数据库】数据模型基础概念(图文版)相关推荐
- 数据库的基础概念和代码例子(增删改查和其他操作-约束)
前言必读 读者手册(必读)_云边的快乐猫的博客-CSDN博客 目录导航: 一概念解析 1.什么是数据库? 2.什么是数据库管理系统? 3.什么是SQL? 4.什么是关系型数据库? 5.SQL通用语句? ...
- 数据库 视图基础概念
数据库中视图的概念: 视图是从一个表或是多个表导出的表,视图与表不同,视图是一个虚表,即视图所对应的数据不进行实际存储,数据库中指存储视图的定义,在对视图的数据进行操作时,系统根据视图的定义去操作与视 ...
- 数据库学习——基础概念
数据库的概述 数据库Database(DB):按照数据结构组织.存储和管理数据的仓库.本质是一个文件系统.保存一系列有组织的数据.每个数据库都有一个或者多个不同的API用于创建.访问.管理.搜索和复制 ...
- Delphi基础教程图文版之单元文件
写完开篇之后考虑很久先写什么,Delphi是以单元(unit)作为它的程序组成,单元文件的后缀名为 .pas 想来想去还是从单元文件开始说起 我们在官方文档可以看到如下的描述 将大型程序划分为可以单独 ...
- 微信小程序云函数传递数组_微信小程序云开发能力之数据库基础概念
云开发提供了一个 JSON 数据库,顾名思义,数据库中的每条记录都是一个 JSON 格式的对象.何为JSON 格式的对象? 像这样的{"name":"温仪" , ...
- 理解数据库与数据模型的概念
本篇首先引入编程微课项目作为数据库的应用案例,通过对项目功能及涉及的相关数据的介绍,让读者对数据库的应用有一个感性认识,然后重点讲述关系数据库的理论基础知识.通过本篇的学习,读者应该能掌握以下内容: ...
- 数据库书籍-数据库系统概念(原书第6版)
数据库书籍-数据库系统概念(原书第6版) 基本信息 原书名: Database System Concepts,Sixth Edition 原出版社: McGraw-Hill 作者: (美)Abrah ...
- 从属关系mysql_关系型数据库基础概念:MySQL系列之开篇
一.基础概念 数据(Data)是描述事物的符号记录,是指利用物理符号记录下来的.可以鉴别的信息. 1.数据库(Database,DB)是指长期储存在计算机中的有组织的.可共享的数据集合.数据要按照一定 ...
- 零基础 Amazon Web Services (AWS) 入门教程图文版(三)
原则上WDCP安装好了,就可以直接使用了,FTP.MySQL什么的应有尽有.但是本站Amazon AWS -- 免费的午餐不好吃一文中说到过这个问题,直接用WDCP的MySQL会导致EBS的I/O急剧 ...
最新文章
- 打印机打印一次出三张_一次性帮你搞定3D打印机堵塞问题
- 车辆检测--A Closer Look at Faster R-CNN for Vehicle Detection
- c语言程序段的流程图怎么画,大家帮我看看这个程序的流程图怎么画,谢了
- nyoj 1216 整理图书(dp)
- wuhan2020:武汉新型冠状病毒防疫开源信息收集平台
- pandownload用户未登录_Pandownload再度复活,下载速度飙升到10MB/s以上
- Hashtable和HashMap类的区别
- SpringBoot之SpringMVC自动配置
- Java高全级别灰色_想问下用过JAVACV的大兄弟,为啥我这边抽取图片总是有灰色图片...
- mysql将最大金额加1000_Mysql数据库笔记
- 是不是每个人的成长路上都会有迷茫的阶段?
- 当前读和快照读是什么 区别
- 改进:js修改iOS微信浏览器的title
- 【Java】用JavaFx实现记事万年历(实验课题目)
- vue-cli项目中使用Mint-ui中的mt-cell、mt-popup、mt-picker实现仿淘宝添加收货地址页面(地址三级联动 附全国省市区json文档)
- 南方cass快捷键命令修改在哪_南方cass快捷键命令
- FPGA源同步时钟输出
- 《穿普拉达的女王》-观后感
- python实现淘宝自动登录秒杀功能
- C语言中fprintf函数的使用介绍
热门文章
- fir.im Log Guru 正式开源,快速找到 iOS 应用无法安装的原因
- java8-4 多态的练习以及题目
- Linux中exit与_exit的区别
- 示例 Demo 工程和 API 参考链接
- [转]Ubuntu远程桌面登陆
- Jquery CheckBox全选方法
- django异常日志_【python小随笔】Django+错误日志(配置Django报错文件指定位置)...
- linux php自动执行_linux下实现定时执行php脚本
- mysql启动时执行sql server_常见 mysql 启动、运行.sql 文件错误处理
- 10个职场故事,让人不得不看