七、数据库技术基础(一)
1.基本概念
数据库系统:本质上是一个用计算机存储信息的系统
数据库(DB):信息的集合,是收集计算机数据的仓库、容器,系统用户可以对这些数据执行一系列操作。
数据:是描述事物的符号记录,具有多种表现形式(文字、图形、图像、声音、语言……)
是信息的符号表示。
信息:是现实世界事物的存在方式或状态的反应。具有可感知、可存储、可加工、可传递、可再生……自然属性。
具有特定释义和意义的数据。
数据库系统(DBS):一个采用了数据库技术,有组织、动态地存储大量相关联数据,方便多用户访问的计算机系统
广义上,由数据库、硬件、软件、人员组成。
2.数据模型
DBMS(数据库管理系统):实现对共享数据有效地组织、管理、存取
功能:数据定义;数据库操作;数据库运行管理;数据组织、存储、管理;数据库的建立、维护;其他功能
特征:数据结构化且统一管理;较高的数据独立性;数据控制功能;数据库的安全性保护;数据库的完整性;并发控制;故障恢复;
分类:关系数据库系统(RDBS);面向对象的数据库系统(OODBS);对象关系数据库系统(ORDBS)
体系结构:集中式数据库系统;客户端/服务器体系结构;并行数据库系统(共享内存式多处理器+无共享式并行体系结构);分布式数据库系统
数据库服务器
分类:事务服务器(查询服务器)、数据服务器
数据库的三级模式结构:采用“三级模式、两级映射”
有“型”和“值”的概念。“型”是指对某一数据的结构、属性的说明;“值”是型的一个具体赋值
组成:
1.概念模式:模式。数据库中全部数据的逻辑结构、特征的描述,只涉及到“型”的描述。反应的是数据库的结构、联系,相对稳定。
2.外模式:用户模式、子模式。是用户与数据库系统的接口,是用户用到的那部分数据的描述。
3.内模式:存储模式。是数据物理结构、存储方式的描述,是数据在数据库内部的表示方式。不涉及到物理记录、设备约束。比内模式更接近物理存储、访问的那些软件机制是操作系统的一部分(文件系统)
数据按外模式的描述提供给用户;按内模式的描述存储在磁盘上;概念模式提供者这两级模式相对稳定的中间点,使得两级的任意一级的改变都不受另一级的牵制
4.两级映像:模式/内模式映像,外模式/模式映像,保证了数据具有较高的逻辑独立性、物理独立性
数据模型:对现实世界数据特征的抽象。
是数据库结构的基础,是用来秒速数据的一组概念、定义
分类:概念数据模型(信息模型)、基本数据模型;
三要素:数据结构、数据操作、数据的约束条件
E-R模型:实体-联系模型。最为常用的概念模型。
只能说明实体间的语义联系,还不能进一步地详细说明数据结构
两个不同实体间的联系:一对一(1:1),一对多(1:n),多对多(m:n)
两个以上不同实体集之间的联系:1:1:1,1:1:n,1:m:n,r:m:n
同一实体集内的二元联系:1:1,1:n,m:n
属性:实体某方面的特性,每个属性取值范围不同。同一实体的属性及其域是相同的,但可能取不同的值
分类:简单属性和符合属性、单值属性和多值属性、NULL属性、派生属性
E-R方法:
示例:
扩充的E-R模型:
1.弱实体:一类实体对另一些实体具有很强的依赖关系。即,一个实体的存在必须以另一个实体为前提,将这类实体称为弱实体。弱实体用双线矩形框表示
2.特殊化(U):一个实体集可按照某些特征区分为几个子实体。普遍到特殊的过程
子类(双竖边矩形框)继承超类所有的属性和联系,但是子类还有自己特殊的属性和联系
分类:全特殊化(双线),部分特殊化(单线);不相交特殊化(d),重叠特殊化(o)
普遍化:将几个具有共同特性的实体集概括为一个更普遍的实体集的过程
层次模型:采用树型结构表示数据与数据间的联系。表示1:n的联系
层次模型不能直接表示多对多的联系,若要表示多对多的联系,可采用:冗余节点法、虚拟节点分解法
网状模型(DBTG模型):采用数据结构表示数据与数据间联系的数据模型。
比层次模型更具有普遍性的数据结构,是层次模型的一个特例
与层次模型的区别:
1.子女节点与双亲节点的联系不唯一,需要为每个联系命名
2.允许复合联系,两个节点之间有两个以上的联系。
示例:
关系模型:最常用的,用表格结构表达实体集以及实体集之间的联系。由若干个关系模式组成的集合。
最大特色:描述的一致性
示例:
面向对象模型:
核心概念:对象和对象标识,封装,对象的属性,类和类层次(有根有向无环图),继承(单继承、多重继承)
示例:
3.关系代数
域:属性取值范围所对应的一个集合。
关系型数据模型中,所有的域都应是原子数据。这种限制为第一范式条件
笛卡儿积与关系:
示例:
相关名词:
目/度:R表示关系的名字,n是关系的目/度
候选码:能唯一标识一个元组的某一属性或属性组的值
主码:若一个关系有多个候选码,选定其中一个为主码
主属性:包含在任何候选码中的属性。不包含的为非码属性
外码:R中的属性或属性组非改关系的码,但是是其他关系的码
全码:R中所有属性组是候选码,则称为全码
关系类型:
基本关系/基本表/基表:实际存在的表,是实际存储数据的逻辑表示
查询表:查询结果对应的表
视图表/虚表:由基本表、其他视图表导出的表。本身不独立存储在数据库中,数据库只存放它的定义。
关系数据库模式:
完整性约束:保证当授权用户对数据库作修改时不会破环数据的一致性。
防止对数据的意外破坏。
分类:
1.实体完整性:R的主属性不能取空值
2.参照完整性(引用完整性):关系R中每个元组在外码上的值或者取空值=关系S中某个元祖的主码值
3.用户定义完整性:属性域的约束
关系运算:
关系操作中的操作对象、操作结果都是集合。
非关系数据模型的数据操作方式则是一次一个记录的方式
关系数据语言分类:关系代数语言、关系演算语言、具有关系代数和关系演算双重特点的语言
关系代数运算分类:集合运算符、专门的关系运算符、算术比较符、逻辑运算符
投影:关系R中选择若干属性列A组成新的关系
广义投影:允许在投影列表中使用算数运算,实现了对投影运算的扩充。
选择:从关系R中国选择满足规定条件的诸元组
连接(union):θ连接、等值连接、自然连接(去重)
外连接:左外链接、右外连接、全外链接
除:
示例:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· 面试官:你是如何进行SQL调优的?