本文是数据库专栏【吐血整理】系列的第一篇,欢迎阅读~
快速传送区
数据库的四个基本概念:
一、数据(data)
数据是数据库中存储的基本对象。描述事物的符号记录称为数据。
可以是数字、文字、图像、音频、视频等等,它们都可以经过数字化后存入计算机。
数据的含义称为数据的语义,数据与其语义是不可分的,要一一对应。例如一个数据:66,它可以是某同学某门课的成绩,也可能是某同学的体重,甚至还可能是某个班级的人数,对数据的解释就是数据的语义。
二、数据库(DataBase,DB)
数据库,顾名思义,就是存放数据的仓库。只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的。严格来说:数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。数据库中的数据按一定得数据模型组织、描述和储存,具有较小的冗余度(redundancy)、较高的数据独立性(data independency)和易扩展性(scalability),并可为各种用户共享。概括地讲:数据库数据具有永久存储、有组织和可共享三个基本特点。
三、数据库管理系统(DataBase Management System,DBMS)
如何科学地组织和存储数据,如何高效地获取和维护数据就是由数据库管理系统来完成。DBMS是位于用户与操作系统之间的一层数据管理软件,它和操作系统一样是计算机的基础软件,也是一个大型复杂的软件系统。
四、数据库系统(DataBase System,DBS)
数据库系统是由 数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员(DataBase Administrator,DBA) 组成的存储、管理、处理和维护数据的系统。
各部分关系如图:
在一般不引起混淆的情况下,人们常常把数据库系统简称为数据库
数据模型:
数据模型是对现实世界数据特征的抽象, 通俗地讲,数据模型就是现实世界的模拟。
数据模型分为两类(两个不同的层次):
(1)概念模型也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计。
(2) 逻辑模型和物理模型
- 逻辑模型主要包括层次模型、网状模型、关系模型等。 按计算机系统的观点对数据建模,用于DBMS实现。
- 物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。
概念模型中的重要术语:
1)实体(Entity): 客观存在并可相互区别的事物称为实体( 可以是具体的人、事、物或抽象的概念)
例如:篮球就是一个实体,吉他也是一个实体
2)属性(Attribute): 实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。
例如:篮球有7号球和5号球,吉他有木吉他和电吉他
3)码(Key): 唯一标识实体的属性集称为码。
例如:某学校里学生的学号都分别一一对应一个学生,学号就可以称为码
4)实体型(Entity Type) : 用实体名及其属性名集合来抽象和刻画同类实体称为实体型。
例如:汽车(车型,车牌号,车主…)
5)实体集(Entity Set) : 同一类型实体的集合称为实体集
例如:将上面的汽车实体化,某时间段某路段上的所有汽车即可称为实体集
6)联系(Relationship) : 现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系。所以实体间的联系就是现实中事物间的联系
例如:现实世界中她是我的女朋友,那我和她的关系是男女朋友的关系,反映到信息世界中我这一实体和她这一实体之间的关系同样为男女朋友。(ps:然鹅现实就是我并没有女朋友😭)
关系模型(Relational Model):
1970年美国IBM公司的研究员E.F.Codd首次提出了数据库系统的关系模型
计算机厂商推出的数据库管理系统几乎都支持关系模型
在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。
如下图的学生登记表:
关系模型中的重要术语:
1)关系(Relation): 一个关系对应通常说的一张表
2)元组(Tuple): 表中的一行即为一个元组(上图中标为紫色的一行即一个元组)
3)属性(Attribute): 表中的一列即为一个属性,给每一个属性起一个名称即属性名(上图中标为绿色的一列即为一个属性,“学号” 即该属性的属性名)
4)码(Key): 也称码键。表中的某个属性组,它可以唯一确定一个元组
5)域(Domain): 是一组具有相同数据类型的值的集合。属性的取值范围来自某个域
6)分量: 元组中的一个属性值(上图中“王小明”即紫色的元组中属性名为“姓名”的属性值)
7)关系模式: 对关系的描述
- 关系名(属性1,属性2,…,属性n)
球员(号码,姓名,年龄,位置,身高,体重)
关系必须是规范化的,满足一定的规范条件
最基本的规范条件:关系的每一个分量必须是一个不可分的数据项, 不允许表中还有表
如下图就不符合关系模型的要求:
数据操作是集合操作,操作对象和操作结果都是关系
存取路径对用户透明,用户只要指出“干什么”,不必详细说明“怎么干”
关系模型的优缺点
优点:
- 建立在数学概念的基础上
- 概念单一
实体和各类联系都用关系来表示
对数据的检索结果也是关系 - 关系模型的存取路径对用户透明
具有更高的数据独立性,更好的安全保密性
简化了程序员的工作和数据库开发建立的工作
缺点:
- 存取路径对用户透明,查询效率往往不如格式化数据模型
- 为提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度
数据库系统的结构
一、数据库系统模式的概念
“型” 和 “值” 的概念
型(Type): 对某一类数据的结构和属性的说明
值(Value): 是型的一个具体赋值
- 举个栗子:
(学号,姓名,性别,系别,年龄,籍贯) 此为型
(2020666,李华,男,英语系,20,北京市) 此为值
模式(Schema)
- 数据库逻辑结构和特征的抽象描述
- 是型的描述,不涉及具体值
- 反映的是数据的结构及其联系
- 模式是相对稳定的
实例(Instance)
- 模式的一个具体值
- 反映数据库某一时刻的状态
- 同一个模式可以有很多实例
- 实例随数据库中的数据的更新而变动
二、数据库系统的三级模式结构
模式(Schema)
外模式(External Schema)
内模式(Internal Schema)
如图所示:
1)模式(也称逻辑模式):
- 数据库中全体数据的逻辑结构和特征的描述
- 所有用户的公共数据视图
一个数据库只有一个模式
模式的地位:是DBS模式结构的中间层
2)外模式(也称子模式或用户模式):
- 用户使用的局部数据的逻辑结构和特征的描述
- 数据库用户的数据视图,是与某一应用有关的数据的逻辑表示
外模式的地位:介于模式与应用之间
模式与外模式的关系:一对多
外模式与应用的关系:一对多
外模式的用途:保证数据库安全性的一个有力措施;每个用户只能看见和访问所对应的外模式中的数据
3)内模式(也称存储模式):
-
是数据物理结构和存储方式的描述
-
是数据在数据库内部的表示方式
记录的存储方式(例如,顺序存储,按照B树结构存储,按hash方法存储等) 索引的组织方式 数据是否压缩存储 数据是否加密 数据存储记录结构的规定
一个数据库只有一个内模式
4)数据库三级模式结构的优点:
① 保证了数据的独立性: 概念模式和内模式分开,保证数据的物理独立性,把外模式和概念模式分开,保证数据逻辑的独立性。
② 简化了用户接口,方便用户使用: 用户不需要了解数据库实际存储情况,也不需要对数据库存储结构了解,只要按照外模式编写应用程序就可以访问数据库。
③ 有利于数据共享: 所有用户使用统一概念模式导出的不同外模式,减少数据冗余,有利于多种应用程序间共享数据。
④ 有利于数据的安全保密: 每个用户只能操作属于自己的外模式数据视图,不能对数据库其他部分进行修改,保证了数据安全性。
三、数据库的二级映像功能与数据独立性
二级映像在DBMS内部实现三级模式的联系和转换
外模式/模式映像
模式/内模式映像
外模式/模式映像保证数据的逻辑独立性
- 当模式改变时,数据库管理员对外模式/模式映像作相应改变,使外模式保持不变
- 应用程序是依据数据的外模式编写的,应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性
- 个人总结:逻辑独立性 即 数据的逻辑结构改变了,但应用程序不用改变(你走你的阳关道,我过我的独木桥 ( ̄^ ̄))
模式/内模式映像保证数据的物理独立性
- 当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映像,使模式保持不变。
- 应用程序不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性
- 个人总结:物理独立性 即 数据的物理存储改变了,但应用程序不用改变(咱俩井水不犯河水 ( ̄^ ̄))
DBS具有数据与程序的独立性的原因:
数据库管理系统在三级模式之间提供的两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
数据定义语言(DDL)和数据操纵语言(DML)
数据定义语言(DDL)
数据定义语言用于改变数据库结构,包括创建、更改和删除数据库对象
-
用于操纵表结构的数据定义语言命令有:
CREATE TABLE (创建表) ALTER TABLE(修改表) TRUNCATE TABLE(删除表中数据) DROP TABLE(删除表)
数据操纵语言(DML)
数据操纵语言用于检索、插入和修改数据
-
数据操纵语言命令包括:
SELECT(查询) INSERT(添加) UPDATE(修改) DELETE(删除)
具体解释可参考:数据定义语言(DDL) 和数据操纵语言(DML)
到底啦,感谢阅读😘~
本文是《数据库系统概论》第一章的重点部分学习总结,将课本和网上资料以及自己的一些观点融合在一起,记录下来和大家分享同时也利于自己以后回顾~ 🙉