软考 程序员教程-第三章 数据库基础知识


第三章 数据库基础知识

3.1 基本概念

数据库系统(DataBase System,DBS)由数据库(DataBase,DB)、硬件、软件和人员4大部分组成。

软件包括操作系统、数据库管理系统(Database Management System,DBMS)及应用程序。

大数据(Big Data)产生的背景主要包括如下4个方面:

(1)数据来源和承载方式的变革。

(2)全球数据量出现爆炸式增长。

(3)大数据已经成为一种自然资源。

(4)大数据日益重要,不被利用就是成本。

大数据的特征:

大数据是指“无法用现有的软件工具提取、存储、搜索、共享、分析和处理的海量的、复杂的数据集合”。业界同常用“4V”来概括大数据的特征:

大量化(Volume)指数据体量巨大。

多样化(Variety)指数据种类繁多。

价值密度低(Value)指大量的不相关信息导致价值密度的高低与数据总量的大小成反比。

快速化(Velocity)指处理速度快。

大数据时代主要面临的三大挑战:软件和数据处理能力、资源和共享管理以及数据处理的可信力

大数据产生的安全风险:

(1)大数据成为网络攻击的显著目标。

(2)大数据加大了隐私泄露风险。

(3)大数据威胁现有的存储和安防措施。

(4)大数据技术成为黑客的攻击手段。

(5)大数据成为高级可持续攻击的载体。

(6)大数据技术为信息安全提供新支撑。

3.2 数据模型

3.2.1、基本概念

最常用的数据模型分为概念数据模型和基本数据模型。

(1)概念数据模型。也称信息模型,是按用户的观点对数据和信息建模,是现实世界到信息世界的第一层抽象。他强调语义表达功能,易于用户理解,是用户和数据库设计人员交流的语言,主要用于数据库设计。这类模型中最著名的是实体联系模型(E-R模型)。

(2)基本数据模型。按计算机系统的观点对数据建模,是现实世界数据特征的抽象,用于DBMS的实现。基本的数据模型有层次模型、网状模型、关系模型和面向对象模型(Object Oriented Model)。

3.2.2、数据模型的三要素

(1)数据结构。数据结构是所研究的对象类型的集合,是对系统静态特性的描述。

(2)数据操作。数据操作是指对数据库中的各种对象(型)的实例(值)允许执行的操作的集合,包括操作及操作规则。数据操作是对系统动态特征的描述。

(3)数据的约束条件。是一组完整性规则的集合。

3.2.3、E-R模型

在数据库设计中,常用实体联系模型(E-R模型)来描述现实世界到信息世界的问题,它是软件设计中的一个重要工具。E-R模型易于用户理解,是用户和数据库设计人员交流的语言。

1、E-R图

2、实体

实体是现实世界中可以区别于其他对象的“事件”或“物体”。

3、联系

实体的联系分为实体内部的联系和实体与实体之间的联系。实体内部的联系反映数据在同一记录内部各字段间的联系。

在此主要讨论实体集之间的联系:

(1)两个不同实体之间的联系

两个不同实体集之间存在一对一、一对多和多对多的联系类型。

· 一对一:指实体集E1中的一个实体最多只与实体集E2中的一个实体相联系,记为1:1。

· 一对多:表示实体机E1中的一个实体可与实体机E2中的多个实体相联系,记为1:n。

· 多对多:表示实体集E1中的多个实体可与实体集E2中的多个实体相联系,记为m:n.

(2)两个以上不同实体集之间的联系

两个以上不同实体集之间存在1:1:1、1:1:n、1:m:n和r:m:n的联系。

(3)同一实体集内的二元联系

同一实体集内的各实体之间也存在1:1、1:n和m:n的联系。

4、属性

属性是实体某方面的特征。

在同一实体集中,每个实体的属性及值域是相同的,但可能取不同的值。

E-R模型中的属性有如下分类:

(1)简单属性和复合属性。

(2)单值属性和多值属性。

(3)NULL属性。

(4)派生属性。

3.2.4、基本的数据模型

1、层次模型(Hierarchical Model)

层次模型采用树型结构表示数据与数据间的联系。在层次模型中,每一个结点表示一个记录类型(实体),记录之间的联系用结点之间的连线表示,并且根节点以外的其他结点有且仅有一个双亲结点。上一层和下一层类型的联系是1:n联系(包括1:1联系)。

2、网状模型(Network Model)

采用网络结构表示实体类型及实体间联系的数据模型称为网状模型。在网状模型中,允许一个以上的结点无双亲,每个结点可以有多于一个的双亲。网状模型是一个比层次模型更普遍的数据结构,层次模型是网状模型的一个特例。网状模型可以直接地描述现实世界。

网状模型中的每个结点表示一个记录类型(实体),每个记录类型可以包含若干个字段(实体的属性),节点间的连线表示记录类型之间一对多的联系。

与层次模型的主要区别如下:网状模型中子女结点与双亲结点的联系不唯一,因此需要为每个联系命名;网状模型允许复合链,即两个结点之间有两种以上的联系;网状模型不能表示记录之间多对多联系,需要引入联结记录来表示多对多的联系。

网状模型的主要优点是能更为直接的描述现实世界,具有良好的性能,存取效率高。缺点是结构复杂。

3、关系模型(Relation Model)

关系模型是目前最常用的数据模型之一。关系数据模型采用关系模型作为数据的组织方式,在关系模型中用表格结构表达实体集,以及实体集之间的联系,其最大特点是描述的一致性。关系模型是由若干个关系模式组成的集合。关系模式可记为R(A1,A2,A3,···,An),其中,R表示关系名,A1、A2、A3、···、An表示属性名。

一个关系模式相当于一个记录型,对应程序设计语言中类型定义的概念。关系是一个实例,也是一张表,对应于程序设计语言中变量的概念。变量的值随程序运行可能发生变化,类似的,当关系被更新时,关系实例的内容也随时间发生了变化。

3.3 DBMS的功能和特征

DBMS主要实现共享数据有效的组织、管理和存取,因此DBMS应具有如下几个方面的功能:

(1)数据定义

DBMS提供数据定义语言(Data Definition Language,DDL),用户可以对数据库的结构进行描述,包括外模式、模式、和内模式的定义;数据库的完整性定义;安全保密定义,如口令、级别和存取权限等。这些定义存取在数据字典中,是DBMS运行的基本依据。

(2)数据库操作

DBMS向用户提供数据操纵语言(Data Manipulate Language,DML),实现对数据库中数据的基本操作,如检索、插入、修改、和删除。DML分为两类:宿主型(嵌入C、Java等语言中使用)、自含型(单独使用DML语句,供用户交互使用)。

(3)数据库运行管理

(4)数据组织、存储和管理

(5)数据库的建立和维护

(6)其他功能

DBMS的特征:

(1)数据结构化且统一管理。

(2)有较高的数据独立性。

(3)数据控制功能。(数据库的安全性保护、数据的完整性、并发控制、故障恢复)。

DBMS分类:

(1)关系数据库系统(Relation Database System,RDBS)。

(2)面向对象的数据库系统(Object-Oriented Database System,OODBMS)。

(3)对象关系数据库系统(Object-Oriented Relation Database System,ORDBS)。

3.4 数据库模式

3.4.1、模式

数据库系统采用三级模式结构,这是数据库管理系统内部的系统结构。

数据库系统设计员可在视图层、逻辑层和物理层对数据抽象,通过外模式概念模式内模式来描述不同层次上的数据特性。

数据按外模式的描述提供给用户;按内模式的描述存储在磁盘上;而概念模式提供了连接这两级模式的相对稳定的中间层,并使得两级中任意一级的改变都不受另一级的牵制。

3.4.2、三级模式两级映像

3.5 关系数据库与关系运算

(个人感觉此处较为重要,建议认真学习一下)

3.5.1、关系数据库的基本概念

在现实世界中,一个事物常常取若干特征来描述,这些特征称为属性(attribute)。

每个属性的取值范围对应一个值的集合,称为该属性的域(domain)。

一般在关系数据模型中,限制所有的域都是原子数据(atomic data)。例如,整数、字符串是原子数据,而集合、记录、数组是非原子数据。关系数据模型的这种限制称为第一范式条件。

5、关系的三种类型

(1)基本关系(通常又称为基本表或基表)。是实际存在的表,它是实际存储数据的逻辑表示。

(2)查询表。查询结果对应的表。

(3)视图表。是由基本表或其他视图表导出的表。由于它本身不独立存储在数据库中,数据库中只存放它的定义,所以常称为虚表。

3.5.2、关系数据库模式

3.5.3、完整性约束

(关系代数运算符若难以理解,请参见第四版教程P110)

3.6 关系数据库SQL语言简介

SQL(Structure Query Language)是一种通用的、功能强大的标准查询语言,已在众多商用DBMS(如DB2、Oracle、Ingress、Sysbase和SQL Server等)实现。SQL不仅包含数据查询功能,还包括插入、删除、更新、和数据定义功能。SQL用户可以是应用程序,也可以是终端用户。

3.6.1、SQL概述

1、SQL的特点:(1)综合统一。(2)高度非过程化。(3)面向集合的操作方式。(4)两种使用方式。

2、SQL支持三级模式结构

SQL支持关系数据库的三级模式结构。其中,视图对应外模式、基本表对应模式、存储文件对应内模式。

3、SQL的基本组成

数据定义语言、交互式数据操纵语言、事务控制、嵌入式SQL和动态SQL、完整性控制和权限管理。

3.6.2、SQL数据定义(本小节为基础SQL语句的使用,计算机及相关专业基础必修课,不再总结。可参考第四版教程P115)

3.6.3、SQL数据查询(本小节为基础SQL语句的使用,计算机及相关专业基础必修课,不再总结。可参考第四版教程P119)

3.6.4、SQL数据更新(本小节为基础SQL语句的使用,计算机及相关专业基础必修课,不再总结。可参考第四版教程P127)

3.6.5、SQL的访问控制(了解即可,具体参考第四版教程P129)

3.6.6、嵌入式SQL(了解即可,具体参考第四版教程P130)

3.7 数据库设计

数据库设计过程参照软件系统生命周期的划分方式,把数据库应用系统的生命周期分为数据库规划、需求描述与分析、数据库设计与应用程序设计、实现、测试、运行维护6个阶段。(具体参考第四版教程P131)


这几天有些事情没能及时更新,在此表示抱歉啦!

欢迎大家浏览学习,动动小手点点赞,点点关注呀!

软考 程序员教程-第三章 数据库基础知识相关推荐

  1. 软考程序员复习(二)计算机系统基础知识

    文章目录 知识点框架 计算机分类 计算机系统组成 计算机硬件系统 CPU组成 双核与多核处理器 存储 存储器的层次结构 主存的结构 高速缓存 外存储器 输入与输出技术 IO系统 知识点框架 计算机分类 ...

  2. 软考 程序员教程-第一章 计算机系统基础知识

    软考 程序员教程-第一章 计算机系统基础知识 为了督促自己学习,告别懒惰,在此先给自己定个小目标,请大家监督哟! 目标:一个月内过一遍<程序员教程>,下一个月开始上真题. 简单看了下,我在 ...

  3. 软考 程序员教程-第二章 操作系统基础知识

    软考 程序员教程-第二章 操作系统基础知识 第二章 操作系统基础知识 2.1.操作系统概述(第四版教程P44) 操作系统的4个特征:并发性.共享性.虚拟性.不确定性. 操作系统的5个功能:处理机管理. ...

  4. 计算机软考初级程序员教程,2013年计算机软考程序员教程

    流程控制语句(分支语句和循环语句) 程序体验: public class Test5 { /** * @param args * 分支语句的测试 * 1路 if * 2路 if else * N路 s ...

  5. 【转】数据库软考笔记(一)第一章 计算机硬件基础知识笔记总结

    转自:https://blog.csdn.net/qq_36411874/article/details/115057569 目录 运算器:ALU.AC.DR.PSW 控制器:IR.PC.AR.ID ...

  6. 软考系统架构设计师 - 第 3 章 信息系统基础知识

    涉及单选题,2-6分.已阅第3小时和教程. 3.1 信息化概述 1. 信息的基本概念 控制论创始人维纳认为:信息就是信息,它既不是物质,也不是能量. 信息化的奠基者香农认为:信息是能够用来消除不确定性 ...

  7. 软考java题目_2016下半年软考程序员考试冲刺模拟试题及答案(三)

    2016下半年软考程序员考试冲刺模拟试题及答案(三)下面是希赛小编为大家整理的2016下半年程序员考试冲刺模拟试题及答案,希望能帮助学友们,祝所有考生们复习顺利. 模拟试题 41.下面对数组的操作代码 ...

  8. 计算机组成i1-i8,2016年软考程序员例题分析之计算机组成原理

    下面是由希赛软考网提供的2016年软考程序员例题分析之计算机组成原理,供您参考学习. 1.存储系统例题分析 存储器是存放被运算数据和程序的关键设备,存储器的速度和容设一直是人们努力解决的核心问题.除了 ...

  9. 软考程序员 c java 二选一_下半年参加软考的初级程序员考试,有什么参考书推荐么?...

    不请自来,哈哈哈哈哈 程序员考试作为初级资格考试,是相对比较容易的,不过,如果你不上心的去学习考试,那不容易通过的.为什么呢?因为软考考的知识范围广,就算你有多年的编程经验,理论上的一些知识点,你可能 ...

最新文章

  1. Linux X Window System运行原理和启动过程
  2. mysql导出长数字到excel避免显示为科学记数法 解决方法
  3. unix shell(壳)的简单实现
  4. phpstudy卸载mysql_PHPstudy卸载和phpstudy卸载详解
  5. App市场的“繁荣”背后 隐藏令人唏嘘的真相
  6. ABAP源程序---发票校验明细表
  7. java txtreader_一个简单的Java读写文件例子
  8. 减少重复工作,通过 Annotation Processor 自动完成源码的生成
  9. 【Mysql】之视图操作
  10. gif 格式 完整 检查_GIF的完整格式是什么?
  11. 传统语音识别GMM和HMM
  12. embedding lookup
  13. python avg_Python:作用域、闭包、装饰器
  14. 算法中的最优化方法_学习目录
  15. 十、基于FPGA的PCIE协议介绍(二)
  16. (七)OpenCV | 色度图
  17. TcaplusDB X 光与夜之恋|春暖花开之际与你相遇
  18. springboot项目+多个启动类部署到linux服务器上
  19. 下载慢怎么办?(域名遭到dns污染处理方法)
  20. 波士顿大学计算机科学与技术专业,波士顿大学计算机科学专业.pdf

热门文章

  1. 微分,变分,差分的确切定义与区别
  2. 【解决安装的marked包运行显示marked is not a function的问题】
  3. 指纹锁—AS608指纹模块
  4. 智能扫地机器人好用吗
  5. python处理word文档(docxtpl 中文说明文档)
  6. JUC详解 | JUC Lock
  7. Android Okio应用及解析
  8. centos7.6下载地址
  9. 西游记笔记与想法(4)
  10. 再度公开少林内修心法 易筋经和洗髓经 欢迎转载 让全人类共享学习 过得更健康