数据库技术基础

1、数据库管理系统(DBMS)

  • 主要实现对共享数据有效地组织、管理和存取。
  • DBMS的六大功能:
  1. 数据定义数据库操作:提供数据操纵语言(DML)来实现对数据的基本操作。DML分为两类:宿主型、自含型
  2. 数据库运行管理:并发控制、安全性检查…
  3. 数据的组织、存储和管理
  4. 数据库的建立和维护
  5. 其他功能:DBMS的网络通信功能,异构数据库之间的互访和互操作能力。
  • DBMS的特征:数据结构化且统一管理
  1. 有较高的数据独立性
  2. 数据控制功能:数据库的安全性控制,数据的完整性、并发控制、故障恢复。
  • DBMS的分类:
  1. 关系数据库系统RDBS
  2. 面向对象的数据库系统OODBS:两大特点:一是面向对象数据模型能完整地描述现实世界地数据结构,能表达数据间地嵌套和递归。二是具有面向对象的封装性和继承性。
  3. 对象关系数据库系统:在传统地关系数据模型基础上提供元组、数组、集合等数据类型,以及处理新数据类型的能力。
  • 数据库系统的体系结构
  1. 集中式数据库系统
  2. 客户端/服务器结构:ODBC(开放式数据库互连)和JDBC(java程序数据库连接)定义了应用程序接口,实现与数据库的连接,发送查询更新等。数据库服务器可以分为事务服务器(又称查询服务器)和数据服务器(以文件或页面为单位对数据进行读取更新)。
  3. 并行数据库系统:是多个物理上连在一起的CPU。数据库类型可分为两种:共享内存式多处理器(一台计算机有多个活动的CPU,共享单个内存和一个公共磁盘接口)、无共享式并行体系结构(多个活动的CPU有自己的内存和磁盘)
  4. 分布式数据库系统:分为物理上分布、逻辑上集中的分布式数据库结构和物理上、逻辑上都分布的分布式数据库结构两种。后一种由两部分组成:本结点的数据模型、本结点共享其它节点上有关的数据模型。这种数据库结构有利于数据库集成、扩展和重新分配。
  • 数据库管理系统内部的系统结构:三级模式结构。
  1. 数据库由“型”和“值”的概念;“型”是对某一数据的结构和属性的说明。“值”是型的一个具体赋值。
  2. 三级模式:外模式对应视图,模式(也称为概念模式)对应数据库表,内模式对应物理文件。两层映像:外模式-模式映像,模式-内模式映像;两层映像可以保证数据库中的数据具有较高的逻辑独立性和物理独立性。
  3. 数据的逻辑独立性:即逻辑结构发生改变时,用户程序对外模式的调用可以不做修改,只需修改外模式与概念模式之间的映像;物理独立性:即数据库的内模式发生改变时,数据的逻辑结构不变,只需修改概念模式与内模式之间的映像。
  • 大数据:无法用现有软件工具提取、存储】搜索、共享、分析和处理的海量的、复杂的数据集合
  1. 大数据产生的背景:数据来源和承载方式的变革、全球数据量出现爆炸式增长、大数据已经成为一种自然资源、大数据日益重要,不被利用就是成本。
  2. 大数据的特征(4V):大量化、多样化、价值密度低、快速化。
  3. 大数据面临的三大挑战:软件和数据处理能力、资源和共享管理、数据处理的可信力。

2、数据模型

  • 数据模型定义:对现实世界数据特征的抽象
  • 数据模型的三要素:数据结构、数据操作、数据的约束条件。
  • E-R模型(实体与联系模型):E-R模型只能说明实体间的语义联系。需要进一步详细说明数据结构,则需要将其转换成计算机能接受的某种数据模型。
  • E-R模型的各元素
  1. 实体:用矩形表示,是现实世界中可以区别于其他对象的“事件”或“物体”,如学生、老师、课程等。
  2. 联系:用菱形表示,反映实体与实体之间的联系,有1对1、1对多、多对多3种类型,可以有三元联系存在。如学生与课程可以存在多对多的联系。
  3. 属性:用椭圆表示,是实体某方面的特性,体现为表中的属性列名。如学生的学号、年龄等。E-R模型属性的分类:简单属性(不可再分)和复合属性、单值属性和多值属性(双椭圆表示)、NULL属性、派生属性(虚椭圆表示)。
  • 扩充的E-R模型
  1. 弱实体:用双边矩形表示,与依赖的实体以带圆形的线连接,与实体有很强的依赖关系,单独存在没有意义,也体现为某个实体的特殊化对象。如依赖学生的家属实体,依赖邮件的附件实体。
  2. 特殊化:从普遍到特殊的过程,如:学生实体集可以分为研究生、本科生、大专生等子集。特殊化又可以分为:全特殊化(双线连接表示)、部分特殊化(单线连接表示)、不相交特殊化(圆圈中的d表示)、重叠特殊化(圆圈中的o表示)
  3. 普遍化:几个具有共同特性的实体集概括成一个更普遍的实体集的过程。如大专生、本科生、研究生概括为学生。
  • 常见的数据模型:
  1. 层次模型:采用树形结构表示数据与数据间的联系。且根节点以外的其他结点有且仅有一个双亲结点。
  2. 网状模型:也称为DBTG模型,是层次模型的一个特例,能直接地描述现实世界。去掉了层次模型地两个限制,允许两个结点之间有多种联系(复合联系)。
  3. 关系模型:关系数据库系统采用关系模型作为数据的组织方式,在关系模型中用表格结构表达实体集以及实体集之间的联系,其最大特色是描述的一致性。
  4. 面向对象模型:采用面向对象方法设计数据库,以对象为单位,每个对象包含对象的属性和方法,具有类和继承等特点。如Jasmine系统。面向对象模型更具有丰富的表达能力。

关系模型比网状、层次模型更加简单灵活,不过包含更复杂的数据结构的实际应用领域,如CAD数据,图形数据、人工智能等,得采用面向对象模型。

3、关系代数

  • 关系的相关名词:
  1. 主码:从一个关系中的多个候选码中选一个为主码
  2. 候选码:能唯一标识一个元组的某一属性或属性组
  3. 主属性:候选码中的诸属性,不包括在如何候选码中的属性称为非码属性。
  4. 外码:不是该关系中码,但它是其他关系的码
  5. 全码:关系模型中所有的属性组是这个关系模型的候选码。
  • 关系中的3种类型:基本关系(基本表)、查询表、视图表
  • 关系数据库模型:关系数据库中的型也称为关系数据库模式,是关系数据库结构的描述。关系数据库的值是这些关系模式在某一时刻对应关系的集合。
  • 完整性约束:
  1. 实体完整性:主属性A不能取空值。
  2. 参照完整性:实体及实体间的联系用关系来描述,自然就存在着关系与关系间的引用。如员工关系中的部门号属性的取值要参照部门关系中的部门号属性的取值。
  3. 用户定义完整性:某一具体应用涉及的数据必须满足的语义要求,如身份证号码固定多少位。
  4. 触发器

关系代数运算

  • 并:关系R、S要具有系统的关系模式即元数相同。R∪S为R、S中所有元组构成的集合。
  • 差: R-S表示属于R但不属于S的元组构成的集合
  • 交:R∩S表示属于R同时属于S的元组构成的集合
  • 笛卡儿积:结果列数为二者属性列数之和,行数为二者元素数乘积。关系中属性的个数称为“元数”,元组的个数称为“基数”。
  • 投影:对属性列的选择列出。
  • 选择:对元组行的选择列出。
  • 连接
  1. θ连接:θ是比较运算符,θ连接可以有基本的笛卡儿积和选择运算获得
  2. 等值连接:当θ为“=”时。
  3. 自然连接:结果列数为二者属性列数之和减去重复列,行数为二者同名属性列其值相同的结果元组。笛卡尔积、选择、投影的组合表示可以与自然连接等价。

  • 除:设关系R除以关系S的结果为关系T,则T包含所有在R但不在S中的属性及其值,且T的元组与S的元组的所有组合都在R中。(比较抽象,看例题)

  • 外连接
  1. 左外连接:在自然连接的基础上加上左边表上不包含自然连接中所含元组(行)的元组
  2. 右外连接:在自然连接的基础上加上右边表上不包含自然连接中所含元组(行)的元组。
  3. 全外连接:左外连接+右外连接。

4、SQL数据库体系结构

  • SQL主要的3个标准:ANSI(美国国家标准机构)SQL;对ANSI修改后的标准SQL-92标准;SQL-99标准(SQL3标准)
  • SQL的特点:
  1. 综合统一:SQL集数据定义、数据操纵和数据控制于一体。
  2. 高度非过程化:当进行数据操作时,只要指出”做什么“,不须考虑怎么做。
  3. 面向集合的操作方式:非关系模型采用的时面向记录的操作方式。SQL采用的是面向集合的操作方式。
  4. 两种使用方式:自含式语言、嵌入式语言
  5. 语句间接、易学易用。
  • SQL的基本基本组成:数据定义语言、交互式数据操纵语言、事务控制、嵌入式SQL和动态SQL、完整性、权限控制。

SQL规范化

  • 函数依赖:非平凡函数依赖、平凡函数依赖、完全函数依赖、部分函数依赖、传递依赖
  • 范式:规范化过程是为了解决数据冗余、删除异常、插入异常、更新异常等问题。
    (1)第一范式(1NF):在关系模式R中,当且仅当所有域只包含原子值,即每个属性都是不可再分的数据项,则称关系模式R是第一范式。
    (2)第二范式(2NF):当且仅当关系模式R是第一范式(1NF),且每一个非主属性完全依赖候选键(没有不完全依赖)时,则称关系模式R是第二范式。
    (3)第三范式(3NF):当且仅当关系模式R是第二范式(2NF),且R中没有非主属性传递依赖于候选键时,则称关系模式R是第三范式。
    (4)BC范式(BCNF):设R是一个关系模式,F是它的依赖集,R属于BCNF当且仅当其F中每个依赖的决定因素必定包含R的某个候选码。

6、分解关系模式

(1)保持函数依赖:设数据库模式ρ={R1,R2,…,Rk}是关系模式R的一个分解,F是R上的函数依赖集,ρ中每个模式Ri上的FD集是Fi。如果{F1,F2,…,Fk}与F是等价的(即相互逻辑蕴涵),那么称分解ρ保持FD。
(2)无损联接分解:指将一个关系模式分解成若干个关系模式后,通过自然联接和投影等运算仍能还原到原来的关系模式。(表格法,公式法-仅限分解为2个子关系)

7、并发控制

  • 事务的特性:
    (1)原子性:事务是原子的,要么都做,要么都不做。
    (2)一致性:事务执行的结果必须保证数据库从一个一致性状态变到另一个一致性的状态。因此,当数据库只包含成功事务提交的结果时,称数据库处于一致性状态。
    (3)隔离性:事务相互隔离,当多个事务并发执行时,任一事务的更新操作直到其成功提交的整个过程,对其他事务都是不可见的。
    (4)持续性:一旦事务成功提交,即使数据库崩溃,其对数据库的更新操作也将永久有效。

  • 并发产生的问题

  • 封锁
    (1)共享锁(S锁):若事务T对数据对象A添加了S锁,则只允许T读取A,但不能修改A。并且其他事务只能对A加S锁,不能加X锁。
    (2)排他锁(X锁):若事务T对数据对象A添加了X锁,则只允许T读取和修改A,其他事务不能再对A加任何锁。

  • 三级封锁协议:

  1. 一级封锁协议:事务在修改数据R前必须先对其加X锁,直到事务结束才释放。事务结束包括正常结束(commit)和非正常结束(rollback),一级封锁协议可以解决丢失更新问题。
  2. 二级封锁协议:在一级的基础上,加上事务T在读数据R之前必须先对其加S锁,读完后即可释放S锁。可以解决读脏数据的问题,不能保证可重复读。
  3. 三级封锁协议:在一级的基础上,加上事务T在读数据R之前必须先对其加S锁,直到事务结束才可释放S锁。可以防止丢失更新和不读“脏”数据外,进一步防止了不可重复读。
  • 活锁:T1封锁了数据R、T2等待,T1释放后,系统先批准给T3资源,T2又等待,以此类推。T2事务请求可能一直等待。
  • 死锁:两个以上的事务分别请求封锁对方已经封锁的数据,导致长时间等待无法继续运行。
  • 可串行性是并发事务准确性的准则。
  • 两段封锁协议:所有事务必须分两个阶段对数据项加锁和解锁。
  • 第一阶段获得封锁,不能释放。第二阶段释放封锁,不能申请。
  • 封锁对象可以是逻辑单元也可以是物理单元。

8、SQL语句


  • 使用ANY和ALL谓词必须同时使用比较运算符。
  • 空值在任何聚集操作中被忽视。
  • NULL值又可以在分组属性中看作一般的值。
  • 视图创建:Create view 视图名(列表名) as select 查询语句 [with check option]
    with check option表示对数据操作时保证更新、插入、删除的行满足视图定义中的谓词条件(子查询中的条件表达式)
  • 授权中with grant option表示获得该权限的用户可以将权限赋予其他用户。
  • grant CREATETAB on database 数据库名 to 用户:把某数据库中建表的权限赋予用户。

软考之软件设计师——数据库技术基础相关推荐

  1. 软考中级软件设计师---系统开发基础

    文章目录 开发模型(+++++) 瀑布模型 V模型 喷泉模型 原型化模型 演化模型 螺旋模型 统一过程 敏捷方法 软件开发方式(+) 需求分析(+) 软件设计(++) 软件测试与维护 黑盒测试 白盒测 ...

  2. 软考(软件设计师)考点总结 -- 数据库技术

    软考(软件设计师)考点总结:https://blog.csdn.net/Lzy410992/article/details/117321579 数据库基础知识 三级模式-两级映射: 三层模型: 内模式 ...

  3. 软考(软件设计师)考点总结 -- 多媒体技术基础

    软考(软件设计师)考点总结:https://blog.csdn.net/Lzy410992/article/details/117321579 音频 音频相关概念: 音乐合成方式: FM调频音乐合成: ...

  4. 2022下半年软考-中级-软件设计师-过关经验

    目录 1.重要内容 2.考情分析 3.视频笔记 1.重要内容 软考官网:中国计算机技术职业资格网 刷题:软考通app.软考真题app.软考刷题王(微信小程序).希赛网app. zst_2001软考中级 ...

  5. 全国软考中级软件设计师 复习大纲概览

    本专栏记录学习复习软考中级软件设计师的内容,官方网站上有中级设计师的考试大纲和指导用书,官网链接:https://www.ruankao.org.cn 考试的难度总体来讲不是很大,但是设计的知识面非常 ...

  6. 软考中级软件设计师难不难_为什么这么难处理设计师

    软考中级软件设计师难不难 重点 (Top highlight) I have a confession to make. As a young Design 'pioneer' in many tec ...

  7. 软考(软件设计师)考点总结 -- 面向对象设计基础

    软考(软件设计师)考点总结:https://blog.csdn.net/Lzy410992/article/details/117321579 面向对象基本概念 面向对象的分析: 认定对象.组织对象. ...

  8. 软考中级(软件设计师)——计算机网络(5分)与信息安全(3分)

    软考中级(软件设计师)--计算机网络(5分)与信息安全(3分) 目录 软考中级(软件设计师)--计算机网络(5分)与信息安全(3分) 计算机网络(5分) 开放系统互连参考模型(★★) TCP/IP协议 ...

  9. 软考中级(软件设计师)——数据库系统(上下午各占6-8分)

    软考中级(软件设计师)--数据库系统(上下午各占6-8分) 目录 软考中级(软件设计师)--数据库系统(上下午各占6-8分) 数据库模式(★★) 三级模式 数据库设计过程 ER模型(★★★★★) 关系 ...

最新文章

  1. -y表示自动安装,不需要每项手动确认输入 Yes
  2. unix grep命令的大致实现
  3. 详解网络摄像机中的IR-CUT
  4. matlab新手入门(四)(翻译)
  5. leetcode(3)---寻找最大字符串
  6. @font-face详细用法+实例——Web响应式前端学习笔记
  7. 链表的基本操作 java_详细实现单链表的基本操作【Java版】
  8. java静态导入_Java中越来越多地接受静态导入吗?
  9. Idea的debug断点调试
  10. 用python做一个上位机串口通信_如何用pyserial实现,通过上位机执行python程序从...
  11. 新手背代码被说“笨”?文科程序员教你如何记代码,妈妈再也不用担心我的头发!
  12. 简单聊聊离散数学是什么
  13. kubernetes使用二进制方法安装部署k8s的v1.23版本安装步骤
  14. linux 设置 用户 密码,Linux系统怎么设置开机密码?Linux设置开机密码的方法
  15. 生鲜电商:卖什么?卖给谁?怎么卖?
  16. 十六进制转ASCII码表
  17. matlab中imresize函数
  18. Android自定义注解不被混淆,Android 混淆压缩开启以及自定义混淆规则
  19. ABA问题(狸猫换太子)
  20. 数字形态学滤波matlab,数字形态学滤波器与智能车路径记忆

热门文章

  1. 学生成绩管理系统E-R图
  2. 什么?你还不知道这几款免费又好用的 MySQL 客户端吗?
  3. 解决Maven打包报错:Failed to clean project: Failed to delete
  4. word中插入图片,转pdf后,打印的图片出现阴影模糊的问题及处理办法
  5. JVM参数太多?一网打尽常用JVM参数!
  6. 简单介绍一下CGAN
  7. winhex中判断+MBR+DBR+EBR方法
  8. element-ui dialog组件添加可拖拽位置 可拖拽宽高
  9. 如何编写firefox插件
  10. android 面试题(三)