这一篇用来做课程前期数据库概念的记录,不会有sql语句。
数据模型
数据模型是现实世界数据特征的抽象,是现实世界的模拟。
分类
数据模型分为两类:
- 概念模型:按用户观点来对数据和信息建模,用于数据库设计,也称为信息模型。
- 逻辑模型和物理模型:
-
- 逻辑模型:按计算机系统的观点对数据建模,用于DBMS实现
-
- 物理模型:是对数据最底层的抽象,描述数据在系统内部的表示方式和存储方法,在磁盘或磁带上的存储方式和存取方法
概念模型
用途:
- 概念模型用于信息世界的建模
- 是现实世界到机器世界的一个中间层次
- 是数据库设计的有力工具
- 数据库设计人员和用户支架内进行交流的语言。
该图是用于表示概念模型的E-R图,其中方框代表模型的实体,椭圆代表实体的属性,菱形代表实体间的联系。
实体
客观存在并可相互区别的事物,可以是具体的人、事、物,也可以是抽象的概念或联系。
属性
实体所具有的的某一特性称为属性。实体有若干个属性值来刻画(实体不能只有一个属性)。
码(key)
能唯一标识实体的最小属性租称为码,又叫做关键字、键。
关键字可以包含一个属性,也可同时包含多可属性——实体需要多个属性才能唯一标识。
实体可以有一个码,也可同时有多个吗——最小的属性组不止一种。
实体型
用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。
在通常情况下,实体型也称为实体,他们俩区别不大
实体集
同型实体的集合
-----------------------------------------------------------
看到这如果不能分清实体、实体型、实体集可以这样想:一个班级里有小明、小红、小刚三明学生,小明是一个实体,小明和他的一堆属性(姓名,学号等)是一个实体型,小明、小红、小刚加起来是一个实体集。
不看也行:
我们之所以说实体和实体型区别不大,是因为“小明是一个实体”其实是“这名学生是一个实体”,“小明”是这名学生的一个属性,在excel表格中这名学生是其中一行,这一行又包含着这名学生的属性信息,所以这一行也是实体集,即:在excel表格(数据库表)中,一行是一个实体/实体型,整个表是实体集。
-----------------------------------------------------------
联系
事物内部的联系:实体内部的联系。
事物之间的联系:实体之间的联系,实体集之间的联系。
联系可以看做一个实体
实体之间的联系:
-
一对一联系(1:1):
身份证:一个人只有一张,每一张只能一个人用。
-
一对多联系(1:n):
手机号:一个人可以有多个,一个手机号只能一个人用,可以没有手机号,可以手机号没人用。
-
多对多联系(m:n):
共享单车:爱咋用咋用,可以不用,可以没人骑。
实体集之间的联系:
实体集的一对一联系没有意义:因为三个实体型以上的1:1联系,可以看成两个实体型的1:1联系链,根据两个实体型1:1联系的特点,三个以上的实体型可以看成一个实体型。
-
一对多联系:
在一组实体集中,只要有一组实体集满足以下条件:其他实体集每一个实体,最多和这个实体集中的一个实体相联系,就称为一对多。
各班级学生名单+优秀学生名单 -
多对多关系:
某个实体型与其他实体型有m:n的联系。
供货商–项目–零件
实体内部的联系:
-
一对多联系:
某一学生是全班学生的班长,
一个学生只有一个班长。 -
一对一联系:
一个学生只有一个同桌,
一个学生只能是另外一个学生的同桌。 -
多对多联系:
同班同学中,
一个学生有许多同乡,
一个学生可以是其他许多学生的同桌。
逻辑模型(数据模型)
逻辑模型(数据模型)描述系统的静态特性、动态特性和完整性约束条件。
逻辑模型的三要素:
- 数据结构
- 数据操作
- 数据的约束条件(完整性约束)
数据结构
描述数据库的组成对象(数据类型,内容,性质),以及对象之间的联系。
数据结构是对系统静态特性的描述
数据操作
数据操作是指对数据库中的各种对象(型)的实例(值)允许执行的操作的集合,包括操作以及有关的操作规则
数据操作的类型:
- 检索
- 更新(包括插入、删除、修改)
数据操作是对系统动态特性的描述
数据的约束条件
是一组完整性规则的集合。
完整性规则:
- 是给定的数据模型中数据及其联系所具有的制约和依存规则
- 是以限定符合数据模型的数据库状态以及状态的变化
- 以保证数据的正确、有效、相容
最常用的数据模型
- 非关系模型
-
- 层次模型:用树状结构来表示各类实体以及实体之间的联系。
-
- 网状模型
- 关系模型
- 面向对象模型
- 对象关系模型
层次模型的优点:
- 层次模型的数据结构比较简单清晰
- 查询效率高,性能优于关系模型,不低于网状模型
- 层次数据模型提供了良好的完整性支持
层次模型的缺点:
- 多对多联系表示不自然
- 对插入和删除操作限制多,应用程序的编写比较复杂
- 查询子女节点必须通过双亲结点
- 由于结构严密,层次命令趋于程序化
网状模型的优点:
- 能够更为直接地描述现实世界,如一个结点可以有多个双亲
- 具有良好的性能,存取效率高
网状模型的缺点:
- 结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握。
- DDL、DML语言复杂,用户不容易使用
- 记录之间的联系是通过存取路径实现的,应用程序在访问数据时必须选择合适的存取路径,因此用户必须了解系统结构的细节,加重了编写程序的负担。
关系模型 (重要)
关系模型是目前最重要的一种数据模型。
关系模型是建立在严格的数学概念的基础上的。
在用户角度,关系模型中的数据逻辑结构是一张二维表,由行和列组成。
术语
- 关系:一张二维表,由行和列组成。->表/实体集
- 元祖:表中的一行即为一个元祖。->记录/实体
- 属性:表中的一列即为一个属性。->字段/属性
- 主码:表中的某个属性组,它可以唯一确定一个元组。
- 域:属性的取值范围。
- 分量:元组中的一个属性值。
- 关系模式:对关系的描述,->表结构/实体型
一般表示为:关系名/表名(属性集) 或 关系名/表名(属性1,……,属性n)
注意:
操纵和完整性约束条件
操纵: 查询、插入、删除、修改。
关系模型操作的特点:
- 数据操纵都是集合操作
- 操作对象和操作结果都是关系
- 关系模型的语言:高度的非过程化
关系的完整性约束条件包括三大类:
- 实体完整性
- 参照完整性
- 用户定义完整性
存储结构
关系模型的存储单元是表,表以文件形式存储
优缺点
优点:
- 建立在严格的数学概念的基础上;
- 关系模型的概念单一(关系,即表);数据结构简单、清晰,用户易懂易用;
- 存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,简化了开发工作。
缺点:
- 由于存取路径对用户透明,查询效率往往不如非关系模型;
- 因此,为了提高性能,必须对用户的查询请求进行优化,增加了DBMS开发难度。