五. 数据库

news/2025/2/11 10:58:56/文章来源:https://www.cnblogs.com/jinnandu/p/18685070

数据库

一. 三级模式

一个数据库可以有多个外模式,只能有一个内模式。
视图对应外模式、基本表对应模式、存储文件对应内模式

二. 两级映像

(1) 模式/内模式映像。存在于概念级和内部级之间,实现了概念模式和内模式之间的相互转换。
(2) 外模式/模式映像。存在于外部级和概念级之间,实现了外模式和概念模式之间的相互转换

三. 关系

1. 术语

关系 一个关系就是一张二维表,每个关系有一个关系名
元组 表中的一行即为一个元组,对应存储文件中的一个记录值
属性 表中的列称为属性,每一列有一个属性名。属性值相当于记录中的数据项或者字段值。
属性的取值范围(例如 sex 属性的取值范围为 男 或 女),即不同元组对同一个属性的值所限定的范围。例如,逻辑型属性只能从逻辑真(如T)或逻辑假(如F)两个值中取值。
关系模式 对关系的描述称为关系模式,由关系名和其属性集合构成,关系模式的格式为 关系名(属性名1,属性名2,…,属性名n)通常一个关系模式对应一个关系文件的结构。
候选码(或候选键) 属性或属性组合,其值能够唯一地标识一个元组。
主码(或主键) 在一个关系中可能有多个候选码,从中选择一个作为主码。
主属性 包含在任何候选码中诸属性称为主属性,不包含在任何候选码中诸属性称为非码属性。
外码(或外键) 如果一个关系中的属性或属性组并非该关系的码,但它们是另外一个关系的码,则称其为该关系的外码。
全码 关系模式的所有属性组是这个关系模式的候选码,称为全码
超码(超键) 一个包含码的属性集称为超码,例如学号是码,则(学号,姓名) 就是一个超码。

2 完整性约束

关系的描述称为关系模式,它可以形式化地表示为:R(U,D,dom,F)
其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,dom为属性向域的映象集合,F为属性间数据的依赖关系集合。
通常简记为R(U)或R(A1,A2,...,An),其中R为关系名,U为属性名集合,A1、A2、...、An为各属性名。
关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。
1)关系模型中的关系数据结构
关系模型中数据的逻辑关系是一张二维表格。

2)关系模型中的关系操作集合
关系模型给出了关系操作的能力,但不对RDBMS(关系数据库管理系统)语言给出具体的语法要求。常用的关系操作有:选择、投影、连接、除、并、交、差等查询操作和增加、删除操作等。
早期的关系操作能力通常用代数方式或逻辑方式来表示,分别称为关系代数和关系演算。关系代数是用对关系的运算来表达查找要求的方式,关系演算是用谓词来表达查询要求的方式。关系演算又可按调词变元的基本对象是元组变量还是域变量,分为元组关系演算和域关系演算。
关系代数、元组关系演算和域关系演算3种语言在表达能力上是完全等价的。

3)关系模型中的关系完整性约束关系模型中的3个完整性规则如下:
实体完整性:关系中主码的值不能为空或部分为空。也就是说,主码中属性即主属性不能取空值。
参照完整性:如果关系R2的外码X与关系R1的主码相对应(基本关系R1和R2不一定是不同的关系,即它们可以是同一个关系),则外码X的每个值必须在关系R1中主码的值中找到,或者为空值。

用户定义的完整性:指用户对某一具体数据指定的约束条件进行检验。

员工(员工号,姓名,性别,参加工作时间,部门号)
部门(部门号,名称,电话,负责人)
选课(学号,课程号,年级)

举例:
实体完整性 员工号和部门号是主码,其值不能为空。学号和选课号为联合索引,他们的值都不能为空
参照完整性: 员工表中外码,部门号。在部门表中不能为空

3. 数学定义

(1)笛卡尔积

(2)关系


(3) 关系运算





四. 关系代数

1. 投影

选列

2. 选择

选行

3. 连接

关系代数是施加于关系之上的一组集合代数运算,每个运算都以一个或多个关系作为运算对象,并生成另外一个关系作为该关系运算的结果。关系代数包含传统的集合运算和专门的关系运算两类。
(1)θ连接
θ的值是 > ,<, >=, <= ,查找两个列满足这些运算关系的行
(2)等值连接
θ 的值是 "=",查找指定两个列的值相等的行
(3)自然连接(*)

  • 找两个关系中相同的属性列
  • 筛选相同属性列中值相同的元素
  • 去除重复属性列

自然连接,关系 R 和 S 中 ,公共属性是 A 和 B
将 (R.A = S.A) 并且 (R.B = S.B) 中相同值 所在的行挑选出来
去除重复列,(R.A 、S.A) 和 (R.B 、 S.B) 列重复了,将 S.A 和 S.B 删除

自然连接,关系 R 和 S 中 ,公共属性是 A 、 B 和 C
将 (R.A = S.A) 并且 (R.B = S.B)并且 (R.C = S.C) 中相同值 所在的行挑选出来
去除重复列,(R.A 、S.A) 和 (R.B 、 S.B) 和 (R.C 、 S.C)列重复了,将 S.A 和 S.B 和 S.C 删除

五. SQL语言

1. 数据定意义语言(DDL)

CREATE DATABASE 数据库名
alert table table_name add clo1 integer
alert table table_name drop clo1drop table table_name 

2. 数据库操作语言(DML)

insert into table_name(......) values (......)
delete from table_name where .....
update table_name set a=1 where b=1

授权语句

grant <权限> on table_name  to user1 
revoke update(sno) on table1 from user1

六 视图

create view 视图名
as select 查询子句
[where check option]drop view 视图名

索引

(1)通过创建唯一索引,可以保证数据记录的唯一性。
(2)可以大大加快数据的检索速度。
(3)可以加速表与表之间的连接,这一点在实现数据的参照完整性方面有特别的意义。
(4)在使用 ORDER BY 和 GROUP BY 子句中进行检索数据时,可以显著减少查询中分组
和排序的时间。
(5)使用索引可以在检索数据的过程中使用优化隐藏器,提高系统性能。

create <索引名> on table_name asc/dsc 

索引属于数据库的内模式

七. 关系模式

定义 1:关系模式应当是一个五元组(含关系名)。R<U,D,dom,F>这里:
(1)R为关系名,它是符号化的元组语义;
(2)U为一组属性:
(3)属性组U中的属性来自域D;
(4)dom为属性到域的映射:
(5)F为属性组U上的一组数据依赖。
由于(3),(4)对模式设计关系不大,因此通常把关系模式看作是一个三元组:R<U,当且仅当U上的一个关系r满足F时,r称为关系模式R<U,F>的一个关系。

八. 函数依赖

数据依赖是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系,是现实世界属性间联系和约束的抽象,是数据内在的性质,是语义的体现。函数依赖则是一种最重要、
最基本的数据依赖。(1)函数依赖。设 R(U)是属性集 U上的关系模式,XY是 U的子集。若对 R(U)的任何一个可能的关系”,r中不可能存在两个元组在了上的属性值相等,而在上的属性值不等,则称工函数决定¥或Y函数依赖于,记作→Y。
(2)非平凡的函数依赖。如果X→,但 YEX,则称X→Y是非平凡的函数依赖。一般情况总是讨论非平凡的函数依赖。下,
(3)平凡的函数依赖。如果X→〖,但 X,则称→是平凡的函数依赖。(4)完全函数依赖。在 R(U)中,如果 X→Y,并且对于X的任何一个真子集 X'都有X'不
能决定 〗,则称¥对X完全函数依赖,记作X->Y。例如,给定一个学生选课关系 SC(Sno,Cno,G),可以得到F={(Sno,Cno)→G},对(Sno,Cno)中的任何一个真子集 Sno 或 Cno 都不能决定 G,所以,G 完全依赖于 Sno、Cno。(5)部分函数依赖。如果X→,但了不完全函数依赖于,则称了对X部分函数依赖,记作X_P→>Y。部分函数依赖也称为局部函数依赖。
(6)传递依赖。在 R(U.F中,如果X→Y,YX,→Z,则称Z对X传递依赖。
(7)码。设K为 R(U,F)中属性的组合,若 K→U,且对于 K的任何一个真子集 K'都有 K'不能决定 U,则K为R的候选码。若有多个候选码,则选一个作为主码。候选码通常也称为候选
关键字。(8)主属性和非主属性。包含在任何一个候选码中的属性称为主属性,否则称为非主属性(9)外码。若 R(U)中的属性或属性组X非R的码,但了是另一个关系的码,则称了为外码(10)函数依赖的公理系统(Ammstrong 公理系统)。设关系模式 R(U,F),其中U为属性集,F是U上的一组函数依赖,那么有以下推理规则。

1.包含

符号 说明 示例
包含 123包含12
包含于 12包含于123

2. 依赖

X决定Y
Y依赖于X

非平凡函数依赖

平凡函数依赖

完全函数依赖

部分函数依赖

依赖传递

3. 码

候选码


K可以决定U
K的真子集 学号,只能决定 姓名,不能决定 课程号,课程名,成绩
K的真子集 课程号,只能决定 课程名,不能决定 学号,课程名,成绩
因此 K 为R的候选码

主属性和非主属性

主属性: 包含在候选码中的属性
非主属性:不包含在候选码中的属性

外码

如果一个关系中的一个属性(该属性不能是候选码)是另外一个关系中的主码则这个属性为外码。

推理



说明,已知关系R 的属性和依赖,通过求闭包的方式求出关系R的主键(主键通过关系可以退出关系R的所有属性)

八. 范式

1. 第一范式(1NF)

设R是一个关系模式,R属于第一范式当且仅当R中每一个属性A的值域只包含原子项,即不可分割的数据项。
1NF不能排除数据冗余和更新异常等问题,因为其中可能存在部分函数依赖。

2. 第二范式(2NF)

设R是一个关系模式,R 属于第二范式当且仅当 R 是 1NF,且每个非主属性都完全函数依赖于候选码。.
属于 2NF 的关系模式R也可能存在数据冗余和更新异常等问题,因为其中可能存在传递函数依赖。但不属于2NF的关系模式R会产生插入异常、删除异常和修改复杂等问题。


通过对表进行分解,达到符合第二范式的要求。
R1中 学号是候选码,非主属性 姓名,学院,院长为非主属性,完全依赖于候选码
R2中 课程号是候选码,非主属性 课程名 完全依赖于候选码
R2中 (学号,课程号)是候选码,非主属性 成绩 完全依赖于候选码

3. 第三范式(3NF)

设R是一个关系模式,R属于第三范式当且仅当R是2NF,且每个非主属性都非传递函数依赖于候选码。
一个不属于3NF的关系模式R会产生插入异常、删除异常和修改复杂等问题。属于3NF的关系模式R可能存在主属性对码的部分依赖和传递依赖。

4. BC范式

既不存在非主属性对候选码的部分函数依赖或传递函数依赖,
也不存在主属性对候选码的部分函数依赖或传递函数
设R是一个关系模式,F是它的依赖集,R属于BCNF, 当且仅当其F中每个依赖的决定因素必定包含R的某个候选码。
由BCNF的定义可以得到结论,一个满足BCNF的关系模式有:
所有非主属性对每一个码都是完全函数依赖。
所有的主属性对每一个不包含它的码,也是完全函数依赖。
没有任何属性完全函数依赖于非码的任何一组属性。
一个满足BCNF的关系模式R已消除了插入和删除异常。

九. 关系分解



无损链接&保持函数依赖分解

九. 数据库设计



需求调查所得到的数据可能是零碎的、局部的,分析师和设计人员必须进一步分析和表达用
户的需求,建立需求说明文档、数据字典和数据流程图(简称:数据流图)。将需求调查文档化,文档既要被用户所
理解,又要方便数据库的概念结构设计。
需求分析阶段的成果是系统需求说明书,主要包括数据流图、数据字典、需求说明文档、各种说明性表格、统计输出表和系统功能结构图等。系统需求说明书是以后设计、开发、测试和验收等过程的重要依据。

十. ER 图



家属存在的前提是职工存在,如果职工不存在,家属自然也不存在

十一. 事务管理


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/882008.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle 缩容量方法 --转发 https://www.modb.pro/db/1873006442018521088?utm_source=index_ai

1.系统表空间清理 SYSAUX表空间被称为系统辅助表空间,主要的目的是为SYSTEM表空间减负。1.1 表空间的使用率 比如大表大部分都是AUD$和WRH$开头的AWR基表,AUD$使用SYSTEM表空间,AWR的基表使用SYSAUX表空间。 SELECT df.tablespace_name, COUNT (*) datafile_count,ROUND (SUM…

轻松上手!小白必看:在你的个人电脑上安装DeepSeek R1 大模型

deepseek本地化部署,小白教程,让你的个人电脑也能安装运行大模型!一、deepseek简介 DeepSeek是一个强大的工具,它就像一个聪明的助手,能帮我们处理和分析大量信息。它适用于各种场合,比如理解文字、识别图片,还能根据你的喜好推荐东西。 这个工具很灵活,就像乐高积木,…

macOS Sequoia 15.3.1 (24D70) 正式版 ISO、IPSW、PKG 下载

macOS Sequoia 15.3.1 (24D70) 正式版 ISO、IPSW、PKG 下载macOS Sequoia 15.3.1 (24D70) 正式版 ISO、IPSW、PKG 下载 iPhone 镜像、Safari 浏览器重大更新和 Apple Intelligence 等众多全新功能令 Mac 使用体验再升级 请访问原文链接:https://sysin.org/blog/macOS-Sequoia/…

macOS Sequoia 15.3.1 (24D70) Boot ISO 原版可引导镜像下载

macOS Sequoia 15.3.1 (24D70) Boot ISO 原版可引导镜像下载macOS Sequoia 15.3.1 (24D70) Boot ISO 原版可引导镜像下载 iPhone 镜像、Safari 浏览器重大更新和 Apple Intelligence 等众多全新功能令 Mac 使用体验再升级 请访问原文链接:https://sysin.org/blog/macOS-Sequoi…

如何利用看板工具,让项目进度一目了然?

使用看板评估项目进度需要经历准备、实施、评估与分析以及持续改进与优化等多个阶段。通过合理利用看板工具,团队可以更加高效地管理项目进度,提高项目管理的透明度和协作效率。看板工具最早起源于20世纪50年代的日本丰田生产系统,如今已被广泛应用于软件开发、产品管理、市…

ABB IRB360并联机器人|abb蜘蛛手维修

ABB IRB360并联机器人(也被称为蜘蛛手机器人)发挥着极为重要的作用。然而,如同所有的机械设备一样,它也会面临需要维修的情况。对ABB IRB360并联机器人进行有效的维修不仅能延长其使用寿命,还能确保工业生产的高效进行。一、ABB IRB360并联机器人的结构与常见故障1. 结构特…

为何焦点已从 AI 代理转向AI辅助人类工作模式

前言:随着AI技术的发展,AI行业从AI代理转向了‘AI辅助人类工作模式’。虽然AI代理在演示中很有潜力,但在实际使用时,它的准确性和可靠性远低于人类,限制了它的应用。相反,‘AI辅助人类工作模式’通过将复杂任务拆分成小步骤,帮助人类更高效地完成工作,推动了数据整理和…

CentOS7 离线安装docker环境

1、系统要求 首先需要确定 CentOS7 的内核版本号,因为 docker 安装要求 Linux 内核版本在 3.10 及以上。查看内核版本号: uname -r查看系统名称: cat /etc/redhat-release2、下载Docker Docker官网:Docker: Accelerated Container Application Development Docker引擎安装说…

烟草行业如何用低代码+ BI 实现数字化转型?

在数字经济的大潮中,烟草行业正迎来重大的发展契机。国家层面的政策引导和战略规划为行业的数字化转型提供了明确的方向。《数字中国》的愿景逐步变为现实,国家信息化发展战略的深入推进,为烟草行业的智能化、网络化发展提供了强劲的动力。基于全国烟草工作会议重点的指导方…

鸿蒙开发 - 支持导出,跨文件使用的自定义样式 AttributeModifier

我们在自定义组件的时候,无论是用 @Styles 还是 @Extend,都很难真正做到独立的封装样式,因为这两者都不支持导出,不可以跨文件调用 这篇文章主要介绍一个接口 AttributeModifier,它很好的解决了这些弊端,可以实现样式的集中管理和复用,支持跨文件调用封装好的样式类 Att…

滑坡监测识别摄像机

滑坡监测摄像机能够24小时不间断地拍摄特定区域,并将实时画面传输到控制中心。这一功能确保了对潜在滑坡区域的持续关注,可以第一时间发现异常情况。通过集成深度学习算法,这些摄像机可以自动分析捕捉到的视频数据。例如,当检测到土壤位移或岩石崩落时,系统会立即发出警报…

『玩转Streamlit』--会话状态管理

在Web应用开发中,会话管理是一个至关重要的概念,它能够帮助开发者追踪用户在应用中的行为和状态,从而为用户提供更加个性化、连贯且高效的交互体验。 Streamlit作为一个简单而强大的用于快速构建和部署数据科学和机器学习项目,也提供了强大的会话状态管理功能,即st.sessio…