0-数据库概述
数据库概述
-
数据(data)
数据是数据库中存储的基本对象,数据可以是一切东西,例如数字,字符串,音频,文本,视频等等。
我们在这里给出统一的定义:描述事物的符号记录称之为数据。在日常生活中,我们可以用自然语言来描述一个事物。例如:李明同学,男,1995年5月生,江苏省南京市人,2013年入学,计算机系。在计算机中可以这样描述
(李明,男,199505,江苏省南京市,2013,计算机系)
即把学生的姓名,性别,出生日期,出生地,入学时间,所在专业系等联系在了一起,构成了一个记录。
-
数据库(DataBase DB)
数据库,顾名思义,就是用来存放数据的仓库,只不过是把数据按照一定的格式存放在计算机上。
严格的来说,数据库就是长期存储在计算机内,有组织的,可共享的大量数据集合。
-
数据库管理系统(DataBase Management System DBS)
我们该如何高效的获取和维护数据库呢?完成这个操作的是一个系统软件---数据库软件系统。
-
数据库系统(DataBase System)
数据库系统是由数据库和数据库管理系统应用程序和数据库管理员组成的存储,管理,处理和维护数据的系统。
-
数据模型
它是对现实世界的抽象,数据模型是用来描述数据,组织数据和对数据进行操作的。由于计算中不可能直接处理现实世界中的具体事物,所以人们必须把具体事物转化为计算机所能够处理的数据。
-
信息世界的基本概念
- 实体:客观存在并可相互区别的的事物称之为实体,实体可以是具体的人,事,物,例如一个职工,一个学生,一个部门等等。
- 属性:实体具有的某一特性称之为属性。一个属性可以有若干个属性来刻画(描述),例如一个学生实体可以有学号属性,性别属性,专业属性等等。这些属性组成了一个一个实体。
- 码:唯一标识实体的属性称之为码,例如学号是学生实体的码。
- 实体型:具有相同属性的实体必须具有相同的特征或者性质。实体型就是实体名+实体的属性集合,例如:学生(学号,姓名,性别,年龄,院系,入学时间)就是一个实体型。
- 实体集:同一类型实体的集合称之为实体集。例如全体学生。
- 联系:在现实生活中,事物内部或者事物之间都是有联系的,这些联系在信息世界里反映了实体内部或者实体之间的联系,实体之间有一对一,一对多,多对多等多种联系。
-
关系模型
关系模型是建立在严格的数学概念的基础上,这里只做简单的介绍,下面以学生登记表为例,介绍一些术语:
- 关系:一个关系对应通常常说的一张表,例如该学生登记表。
- 元组:表中的一行即为一个元组。
- 属性:表中的一个列即为一个属性,给每一个属性列起一个名字就叫属性名。
- 码:也成为码键,表中的某个属性组,它可以唯一确认一个元组。,例如图中一个学号就可以确认一个学生的信息。
- 域:域是具有一组具有相同数据类型值得集合。属性的取值范围来自某个域,例如人的年龄为1-120岁之间,大学生的年龄通常为15-45岁之间等等。
- 分量:元组的一个属性值。
- 关系模式:对关系的描述,一般表示为:关系名(属性1,属性2,属性3....属性n)。
-
关系模型要求关系必须是规范化的。这些规范的最基本的条件是关系的每一个分量必须是一个不可分割的数据项。也就是说,不允许表中还有表。例如如图:
- 关系与现实生活世界大致的对比
- 关系模型的优缺点
优点
- 关系模型建立在严格的数学模型上。
- 关系模型概念单一,无论是实体间还是实体内的联系都是用关系表示的。
- 关系模型的存储路径对数据对用户透明,从而具有更高的数据独立性,更好的安全保密性。
缺点
- 关系模型查询效率没有格式化数据类型高。为了提高性能,就必须对查询操作进行优化。
- 关系与现实生活世界大致的对比
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构