软考——软件设计师:第二章:数据库技术考点总结(完整篇)(上)

简介: 软考——软件设计师:第二章:数据库技术考点总结(完整篇)(上)

文章目录:


1.基本概念

1.1 几个专有名词 

1.2 DBMS的功能

1.3 DBMS的特征

2.三级模式——两级映像 

2.1 三级模式 

2.2 两级映像

3.数据库设计过程

4.E-R模型

5.关系代数

6.规范化理论

6.1 函数依赖 

6.2 求候选关键字

6.2.1 码的相关概念 

6.2.2 候选码的求解方法

6.3 价值与用途

6.4 范式

6.5 模式分解


1.基本概念


1.1 几个专有名词

①数据(data):Data。

②数据库(DB):DataBase。

③数据库管理系统(DBMS):DataBase Management System。

④数据库系统(DBS):DataBase System,广义上讲:由数据库、硬件、软件和人员组成。

⑤数据库管理员(DBA):DataBase Administrator。


1.2 DBMS的功能

①数据定义。②数据库操作。③数据库运行管理。④数据的组织、存储和管理。⑤数据库的建立和维护。等等......


1.3 DBMS的特征

①数据结构化且统一管理。②有较高的数据独立性。③数据控制功能(数据库的安全性、完整性、并发控制、故障恢复)。 


2.三级模式——两级映像


2.1 三级模式


①模式:也称概念模式,它是数据库中全体数据的逻辑结构和特征的描述。只涉及型的描述,不涉及具体的值。概念模式的一个具体值称为模式的一个实例,同一个模式可以有很多实例。描述模式的数据定义语言为:模式DDL。

②外模式:也称用户模式或子模式,是用户与数据库系统的接口,是用户看到的那部分数据的描述。 描述外模式的数据定义语言为:外模式DDL。

③内模式:也称存储模式,是数据物理结构和存储方式的描述,是数据在数据库内部的表示方法,定义所有的内部记录类型、索引和文件的组织方法,以及数据控制方面的细节。描述内模式的数据定义语言为:内模式DDL。

(一个数据库系统中,外模式可以有多个,而模式和内模式只有有一个!!!)

外模式——模式——内模式分别对应:视图——基本表——文件


2.2 两级映像


首先,数据的独立性是由DBMS的两级映像功能来保证的。

①模式/内模式映像:存在于概念级和内部级之间,实现了模式和内模式之间的相互转换。保证了数据的物理独立性。

②外模式/模式映像:存在于外部级和概念级之间,实现了外模式和模式之间的相互转换。保证了数据的逻辑独立性。


3.数据库设计过程



4.E-R模型



在E-R模型中,实体用矩形表示、属性用椭圆形表示、联系用菱形表示。

在上图中学生和课程都是实体,而学号、姓名、性别、年龄这四个是学生实体的属性,课程号、课程名、任何教师这三个是课程实体的属性,因为一个学生可以选修多门课程、一门课程也可以被多个学生选修,所以学生与课程之间是多对多联系,即选课联系用菱形表示,而成绩是选课联系中对应的属性。


在E-R模型中,每个实体必须转换为一个关系模式,而联系分为(1:1,1:n,m:n)三种,前两种可以转也可以不转,第三种则是必须转。所以上面这个例题,A、B、C三个实体为多对多对多联系,所以必须转换,即一共可转换为4个关系模式。具体的转换规则如以下三个表所示:👇👇👇 


E-R模型转关系模式的规则:1对1联系

联系类型

联系是否转换

属性

主键

外键

1:1联系

转

联系自身属性+

各实体关键字

每个实体的关键字

均可作为主键

每个实体的关键字

均可作为外键

不转

任意一端实体中添加

联系自身属性以及

另一端实体的关键字

仍为原关系模式的主键

另一端实体的关键字

E-R模型转关系模式的规则:1对多联系

联系类型

联系是否转换

属性

主键

外键

1:n联系

转

联系自身属性+

各实体关键字

n端实体的关键字

各实体关键字

不转

n端实体添加

联系自身属性以及

1端实体的关键字

仍为原关系模式的主键

1端实体的关键字

 

E-R模型转关系模式的规则:多对多联系

联系类型

联系必须转换

属性

主键

外键

m:n联系

转

各实体关键字+

联系自身属性

各实体关键字的组合

各实体的关键字


5.关系代数




①集合运算符:并、交、差、笛卡儿积。②专门的关系运算符:选择、投影、连接、除。

其中,并、差、笛卡儿积、选择、投影这五种运算是基本的运算。(对于属性列,笛卡儿积不去重,自然连接去重)

大家应该都学过数据库中的关系代数,我在这里只介绍了相应的考点,具体的大家可以自行学习!!!


6.规范化理论


6.1 函数依赖


假设:学号→姓名,表示学号唯一确定一个学生的姓名,也就是说姓名是完全依赖于学号。

假设(学号,课程号)→系名,而根据常识,显然根据一个学生的学号,就已经可以确认这个学生所在系,根本不需要课程号这个属性,所以这就是一个部分函数依赖。

假设:学号→系名,系名→系主任姓名,在这里我们可以直接得出:学号→系主任姓名,所以这就是一个传递函数依赖。

这里还要介绍一下函数依赖的公理系统,设关系模式R(U,F):👇👇👇

①A1自反律:若Y包含于X包含于U,则X→Y为F所蕴涵。

②A2增广律:若X→Y为F所蕴涵,且Z包含于U,则XZ→YZ为F所蕴涵。

③A3传递律:若X→Y,Y→Z为F所蕴涵,则X→Z为F所蕴涵。

④合并规则:若X→Y,X→Z,则X→YZ为F所蕴涵。

⑤伪传递律:若X→Y,WY→Z,则XW→Z为F所蕴涵。

⑥分解规则:若X→Y,Z包含于Y,则X→Z为F所蕴涵。


6.2 求候选关键字

6.2.1 码的相关概念

①候选码:也称候选键,若关系模式中的某一属性或属性组能唯一的标识一个元组,则称该属性或属性组为候选码。例如:学号可以唯一确定学生性别、姓名等信息,所以学号就是学生关系模式的候选码。

②主码:也称主键,若一个关系模式有多个候选码,则选定其中一个作为主码。例如:学号可以唯一确定学生姓名,身份证号也可以唯一确定学生姓名,那么学号和身份证号都是学生关系模式的候选码,我们选择候选码之一:学号作为主码。

③超码:也称超键,对于学生关系模式,学号可以唯一确定学生性别,所以学号可以作为候选码,那么(学号,姓名)组合起来也可以唯一确定学生性别,那么这里的(学号,姓名)就称为学生关系模式的超码。

④外码:也称外键,如果关系模式R中的属性或属性组不是该关系的码,但它是其他关系模式的码,那么该属性或属性组对关系模式R而言就是外码。

⑤全码:如果在一个关系模式中,需要所有的属性才可以唯一标识其中的每一个元组,那么就称这个属性组为全码。

⑥(非)主属性:包含在任何一个候选码中的所有属性称为主属性,不包含在任何候选码中的属性称为非主属性。


6.2.2 候选码的求解方法


在一个关系模式中,我们对函数依赖集中的所有的属性进行分类(L、R、LR、N),L类表示该属性只出现在左边,R类表示该属性只出现在右边,LR类表示该属性在左右两边都出现过,N类表示该属性没有出现。

对关系模式中的所有属性进行分类之后,最终的结论是:候选码中一定包含L类属性和N类属性,一定不包含R类属性,可能包含LR类属性。此时我们只需要去求L类和N类属性集的闭包就可以了,如果该属性集的闭包等于全集,那么该属性集就是该关系模式的候选码。如果不是,就从LR类属性中依次添加单个属性,每添加一个,就求一次闭包,直到属性集的闭包等于全集,即可确定该关系模式的候选码。

①对于例1:由关系模式R和函数依赖集F可知,L类属性:A1,R类属性:A4,LR类属性:A2、A3,则候选码中一定包含A1,一定不包含A4,可能包含A2、A3。而A1属性的闭包为:A1A2A3A4=全集U,所以关系R的候选码为A1。


②对于例2:由关系模式P和函数依赖集可知,L类属性:A、B、C、D,R类属性:E、F、H、I,LR类属性:G、J,N类属性:无,所以候选码中一定包含ABCD,一定不包含EFHI,可能包含GJ。而属性集ABCD的闭包为:ABCDEFGHIJ=全集U,所以关系模式P的候选码为ABCD。


③对于例3:由关系R和函数依赖集F可知,L类属性:无,R类属性:C,LR类属性:A、B,N类属性:无。所以候选码中一定不包含C,此时我们就依次添加LR类属性来求闭包,首先是属性A,它的闭包为:ABC=全集U,所以可以作为关系R的候选码,那么此时AB和AC也可以唯一标识每一个元组,称AB和AC为关系R的超码;其次看属性B,它的闭包为:ABC=全集U,也可以作为关系R的候选码,那么AB和BC同样可以作为关系R的超码。即属性A和B都可以作为关系R的候选码。


6.3 价值与用途

6.4 范式

①1NF(第一范式):若关系模式R的每一个分量都是不可再分的数据项,则关系模式R∈1NF。

②2NF(第二范式):若关系模式R∈1NF,且每一个非主属性完全依赖于码,则关系模式R∈2NF。(换句话说,当1NF消除了非主属性对码的部分函数依赖,则称为2NF)

③3NF(第三范式):若关系模式R(U,F)中不存在这样的码X,属性组Y及非主属性Z(Z不包含于Y)使得X→Y,Y→Z成立,则关系模式R∈3NF。(换句话说,当2NF消除了非主属性对码的传递函数依赖,则称为3NF)

④BCNF(BC范式):关系模式R(U,F)∈1NF,若X→Y且Y不包含于X时,X必含有码,则R∈BCNF。(换句话说,关系模式R中,若每一个决定因素都包含码,则称为BCNF)

一个满足BCNF的关系模式有:①所有非主属性对每一个码都是完全函数依赖。

                                                ②所有主属性对每一个不包含它的码也是完全函数依赖。

                                                ③没有任何属性完全函数依赖于非码的任何一组属性。

6.5 模式分解


对于保持函数依赖和模式分解,在这里只介绍一些简单的例子,具体的大家可以自行学习。

假设一个关系模式R(A,B,C),函数依赖集F={A→B,B→C},我们将关系模式R分解为R1(A,B),R2(B,C)。那么在R1中,我们能够找出A→B;在R2中,我们能够找出B→C,这与原函数依赖集完全对应,所以就称这样的模式分解保持函数依赖。(换句话说,对于一个总关系模式分解成了若干个子关系模式,如果根据这些子关系模式中的属性能够推出与原函数依赖集相同的内容,则称保持函数依赖)

对于模式分解,如果分解的子关系模式数量大于2,则需使用表格法进行还原(表格法在这里就不再详细讲解了);如果分解的子关系模式只有两个:R1和R2,那么只需要求一下 R1∩R2(交集)、R1-R2(差运算)、R2-R1(差运算),如果此时 R1∩R2 能够推出 R1-R2或R2-R1 其中之一,则称模式分解是无损的。



相关文章
|
12月前
|
SQL Java 数据库连接
除了JDBC,还有哪些常见的数据库访问技术?
除了JDBC,还有哪些常见的数据库访问技术?
941 2
|
SQL 存储 JavaScript
软考中级软件设计师专项-数据库篇
本资料涵盖数据库核心概念,包括结构数据模型(层次、网状、关系模型)、三级模式结构(概念模式、外模式、内模式)、关系模型术语与完整性约束(实体、参照完整性)、笛卡尔积及关系代数操作(投影、选择、连接)、SQL语言基础与查询优化、关系模式规范化(范式1NF、2NF、3NF、BCNF)、E-R图设计与数据库设计流程、事务管理(ACID特性)、并发控制与分布式数据库等内容,适合数据库学习与考试复习。
698 1
软考中级软件设计师专项-数据库篇
|
监控 Java 关系型数据库
HikariCP 高性能数据库连接池技术详解与实践指南
本文档全面介绍 HikariCP 高性能数据库连接池的核心概念、架构设计和实践应用。作为目前性能最优异的 Java 数据库连接池实现,HikariCP 以其轻量级、高性能和可靠性著称,已成为 Spring Boot 等主流框架的默认连接池选择。本文将深入探讨其连接管理机制、性能优化策略、监控配置以及与各种框架的集成方式,帮助开发者构建高性能的数据访问层。
1229 8
|
监控 Java 关系型数据库
HikariCP 高性能数据库连接池技术详解与实践指南
本文档全面介绍 HikariCP 高性能数据库连接池的核心概念、架构设计和实践应用。作为目前性能最优异的 Java 数据库连接池实现,HikariCP 以其轻量级、高性能和可靠性著称,已成为 Spring Boot 等主流框架的默认连接池选择。本文将深入探讨其连接管理机制、性能优化策略、监控配置以及与各种框架的集成方式,帮助开发者构建高性能的数据访问层。
847 1
|
SQL 数据管理 BI
数据库操作三基石:DDL、DML、DQL 技术入门指南
本文围绕数据库操作核心语言 DDL、DML、DQL 展开入门讲解。DDL 作为 “结构建筑师”,通过CREATE(建库 / 表)、ALTER(修改表)、DROP(删除)等命令定义数据库结构;DML 作为 “数据管理员”,以INSERT(插入)、UPDATE(更新)、DELETE(删除)操作数据表记录,需搭配WHERE条件避免误操作;DQL 作为 “数据检索师”,通过SELECT结合WHERE、ORDER BY、LIMIT等子句实现数据查询与统计。三者相辅相成,是数据库操作的基础,使用时需注意 DDL 的不可撤销性、DML 的条件约束及 DQL 的效率优化,为数据库学习与实践奠定基础。
|
缓存 关系型数据库 MySQL
MySQL数据库性能调优:实用技术与策略
通过秉持以上的策略实施具体的优化措施,可以确保MySQL数据库的高效稳定运行。务必结合具体情况,动态调整优化策略,才能充分发挥数据库的性能潜力。
883 0
|
存储 人工智能 关系型数据库
诚邀您参加《智启云存:AI时代数据库RDS存储新突破》线上闭门技术沙龙!
诚邀您参加6月11日(周三)14:00在线上举行的《智启云存:AI时代数据库RDS存储新突破》闭门活动。免费报名并有机会获得精美礼品,快来报名吧:https://hd.aliyun.com/form/6162
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
695 158
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1841 152

热门文章

最新文章