[架构之路-170]-《软考-系统分析师》-5-数据库系统-1-数据库模式、数据模型、数据库访问的标准接口

news2024/11/18 5:34:00

在当今的知识经济时代,信息是经济发展的战略资源,信息技术已经成为社会生产力中重要的组成部分。人们充分认识到,数据库是信息化社会中信息资源管理与开发利用的基础,当今的计算机信息系统也都以数据库技术为基础。对于一个国家来说,数据库的建设规模和使用水平已成为衡量该国信息化程度的重要标志。因此,数据库课程是计算机领域中的一门重要课程,也是系统分析师必须要掌握的专业知识与技能。

5 . 1 数据库模式

数据库是长期存储在计算机内的、有组织的、可共享的数据集合,数据库系统是指在计算机信息系统屮引入数据库后的系统,一般由数据库、数据库管理系统 (DataBaseManagement System , D B M S )、应用系统(使用数据库的应用程序)、数据库管理员 (DataBase Administrator , D B A)和用户构成。

人们为数据库设计了一个严谨的体系结构,数据库领域公认的标准结构是三级模式结构,它包括外模式、概念模式、内模式,有效地组织、管理数据,提高了数据库的逻辑独立性和物理独立性。用户级对应外模式,概念级对应概念模式,物理级对应内模式,使不同级别的用户对数据库形成不同的视图。

所谓视图,就是指观察、认识和理解数据的范围、角度和方法,是数据库在用户“眼中"的反映,很显然,不同层次(级别)用户所“看到”的数据库是不相同的。

数据库系统的结构可以有多种不同的层次或不同的角度,其中典型的是三级划分法,其中包括三级模式和两级映射。

1 . 三级分层模式

数据库系统的三级分层模式如图5-1所示,从图5-1中可以看出,数据库系统由外模式、概念模式和内模式三级构成。

外模式也称为子模式或用户模式,对应于用户级数据库。外模式用以描述用户(包括程序员和终端用户)看到或使用的那部分数据的逻辑结构,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。用户根据外模式用数据操作语句或应用程序去操作数据库中的数据。外模式主要描述组成用户视图的各个记录的组成、相互关系、数据项的特征、数据的安全性和完整性约束条件。一个数据库可以有多个外模式一个应用程序只能使用一个外模式

概念模式也称为模式或逻辑模式,对应于概念级数据库。概念模式是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图,用以描述现实世界中的实体及其性质与联系,定义记录、数据项、数据的完整性约束条件及记录之间的联系。概念模式通常还包含有访问控制、保密定义和完整性检查等方面的内容,以及概念/物理之间的映射。一个数据库只有一个概念模式。

内模式对应于物理级数据库,是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。内模式不同于物理层,它假设外存是一个无限的线性地址空间。内模式定义的是存储记录的类型、存储域的表示和存储记录的物理顺序,以及索引和存储路径等数据的存储组织。一个数据库只有一个内模式。

在数据库系统的三级模式中,模式是数据库的中心与关键;

内模式依赖于模式,独立于外模式和存储设备;

外模式面向具体的应用,独立于内模式存储设备

应用程序依赖于外模式,独立于模式和内模式。

SQL语言支持数据的三级模式结构:

 2 . 两级独立性

数据库系统两级独立性是指物理独立性逻辑独立性

三个抽象级别之间通过两级映 射 (外模式/模式映射和模式/内模式映射)进行相互转换,使得数据库的三级模式形成一个统一的整体。

物理独立性是指用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的,当数据的物理存储改变时,应用程序不需要改变。物理独立性存在于概念模式内模式之间的映射转换,说明物理组织发生变化时应用程序的独立程度。

逻辑独立性是指用户的应用程序与数据库中的逻辑结构是相互独立的,当数据的逻辑结构改变时,应用程序不需要改变。逻辑独立性存在于外模式和概念模式之间的映射转换,说明概念模式发生变化时应用程序的独立程度。相对来说,逻辑独立性比物理独立性更难实现。

概念模型:数据库呈现给应用程序接口/视图

逻辑模型:描述数据库的逻辑结构,它存在与内存中。

物理模型:存储数据的具体的物理结构,他存在与文件系统,即以什么样的格式存储数据库中的数据。

5 . 2 数据模型

数据模型现实世界数据特征的抽象。通过这种抽象,可以将现实世界问题,转化到计算机上进行分析与解决。

数据模型所描述的内容包括三个部分,分别是数据结构数据操作数据约束

其屮数据结构主要描述数据的类型、内容、性质和数据间的联系等。数据结构是数据模型的基础,数据操作和约束都建立在数据结上。不同的数据结构具有不同的操作和约束;

数据操作主要描述在相应的数据结构上的操作类型和操作方式(增删减查);

数据约束主要描述数据结构内数据间的语法和词义联系、它们之间的制约和依存关系,以及数据动态变化的规则,以保证数据的正确、有效和相容。

5.2.1 数据模型的分类

数据模型主要有两大类,分别是概念数据模型(实体联系模型)和基本数据模型(结构数据模型)。

概念数据模型是按照用户/应用程序的观点来对数据和信息建模,主要用于数据库的设计,一般用实体-联系( Entity - Relationship , E - R ) 方法表示,所以也称为 E - R 模型;概念数据模型就是站在应用程序的角度看,数据结构是什么样子的。

基本数据模型是按照汁算机系统的观点來对数据和信息建模(任何复杂的、应用程序级别的数据都是有基本类型的数据构成的),主要用于数据库的实现。基本数据模型是数据库系统的核心和基础,通常由数据结构、数据操作和完整性约束三部分组成。其中数据结构是对系统静态特性的描述,数据操作是对系统动态特性的描述,完整性约束是一组完整性规则的集合。人们提出过很多种基本数据模型,其中最著名的有层次模型、 M 状模型、关系模型和面向对象模型。

1 . 层次模型数据库

层次模型是最早出现的数据模型,由于它采用了树形结构作为数据的组织方式,在这种结构中,每一个结点可以有多个孩子结点,但只能有一个双亲结点,这样,整体结构也是分层状的,所以称其为层次模型。层次模型数据库系统的典型代表是 I B M 公司的I M S 数据库管理系统,该系统是1968年推出的,曾经作为大型商用数据库系统被广泛使 用 (现已经被淘汰)。

2 . 网状模型数据库

网状模型有向图表示实体类型实体之间的联系

网状模型的优点是记录之间的联系通过指针实现,多对多的联系容易实现,査询效率高;

其缺点是编写应用程序比较复杂,程序员必须熟悉数据库逻辑结构

由图和树的关系可知,层次模型是网状模型的一个特例。

3 . 关系模型数据库(二维表格型数据库)

关系模型用表格结构表达实体集,用外键表示实体之间的联系。

关系模型建立在严格的数学概念基础上,概念单一、结构简单、清晰,用户易懂易用;

存取路径对用户透明,从而数据独立性和安全性好,能简化数据库开发工作;

其缺点主要是由于存取路径透明,查询效率往往不如非关系数据模型。

关系模型是目前应用最广泛的一种数据模型,例如, Oracle 、 D B 2 、S Q L Server、Sybase和 M y S Q L 等都是关系数据库系统。

有关关系模型的详细知识,将在5.2.2节中介绍。

关系型数据库模型非常适合结构化数据!!!

4 . 面向对象模型

面向对象模型用面向对象的观点来描述现实世界实体的逻辑组织、对象之间的限制和联系等的模型。目前,已有多种面向对象数据库产品,例如, ObjectStore、Versant Developer、 Suite Poet 和 Objectivity 等,但其具体的应用并不多。

面向对象数据库模型适合非结构化数据!!!

5.2.2 关系模型数据库

在关系模型中,实体以及实体间的联系都是用关系来表示的。在一个给定的现实世界领域中,相应于所有实体及实体之间的联系的关系的集合构成一个关系数据库

关系的描述称为关系模式,关系模式通常可以简记为/?〇4丨,乂2, j n ) , 其中及为关系名,4 、 J 2、…、 A 为属性名。关系实际上就是关系模式在某一时刻的状态或内容。也就是说,关系模式是型,关系是它的值。关系模式是静态的、稳定的,而关系是动态的、是随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。但在实际应用中,通常将关系模式和关系统称为关系读者可以从上下文中加以区别。

 5 . 3 数据库访问的标准接口

数据库访问接口是指应用程序与数据库之间的连接部分

数据库访问接口的发展,对于数据库技术的发展与应用起到了非常重要的作用,它使应用程序与数据库之间的连接变得简单,使应用系统从一种数据库变换成另外一种数据库时的修改工作量大大降低。

常见的数据库访问接口有专用调用、开放数据库五连 (O p e n DataBase Connectivity ,O D B C ) 和 Java 数据库连接 (Java DataBase Connectivity , J D B C ) 等。

1 . 专用数据库接口调用

数据库技术发展的初期,每种 D B M S 产生的数据库文件格式都不一样,操作方式也各有差异,通常有自己的一套数据操作语法,并为应用程序提供了该数据库系统所独有的应用程序编程接口 (Application Programming Interface , A P I )。这种方式的数据库访问接口被称为专用调用。专用调用接口的优点是执行效率高,由于是专用,编程实现较简单。但对程序员而言,专用调用并不是一件好事情。因为这使得程序员在程序中连接数据库时变得非常困难,对每一种数据库进行编程,就必须对该数据库的底层 A P I 有相当程度的了解。这意味着需要同时了解多种数据库的底层 A P I , 还不能混淆。

2 . 开放数据库互连

O D B C 是 Microsoft 公司开放服务结构 (Windows Open Services Architecture ,W O S A ) 中有关数据库的一个组成部分,它建立了-•组规范,并提供了一组对数据库访问的标准 A P I 。这些 A P I 利用结构化查询语言 (Structured Query Language , S Q L ) 来完成其大部分任务

O D B C 本身也提供了对 S Q L 的支持,用户可以直接将 S Q L 语句送给O D B C 。一个基于ODBC的应用程序对数据库的操作不依赖任何D BM S,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的 ODBC驱动程序完成。也就是说,不论是 SQL Server和 Oracle等大型数据库,还是Access等桌面型数据库,均可用ODBC API进行访问。在实际应用中,首先用ODBC管理器注册一个数据源,管理器根据数据源提供的数据库位置、数据库类型和ODBC驱动程序等信息,建立起ODBC与具体数据库的联系;然后,在应用程序中向ODBC提供数据源名,就能建立起与相应数据库的连接。O D B C 的最大优点是能以统一的方式处理所有的数据库。其缺点也是非常明显的,

主要体现在以下三个方面:

(1) O D B C 只支持关系型数据,像电子邮件之类的非关系型数据是不支持的。

(2) 由于 O D B C 最初的设计理念就是能够访问所有类型数据库,这种普遍适用也造成了 O D B C 对每种数据库的支持都不是特别理想。

(3) 使用 O D B C 需要进行一些系统的配置工作。当然,这个操作也是可以用程序来完成的。

3. Java数据库互联

Java 数据库连接 (Java DataBase Connectivity , J D B C ) 的作用与 O D B C 是类似的,只不过 J D B C 只能用在 Java 程序设计语言中。 J D B C 是一种用于执行 S Q L 语句的 Java A P I ,可以为多种关系数据库提供统一访问,它由一组用 Java 语言编写的类和接口组成。将 Java 语言和 J D B C 结合起来,Java程序员不必为不同的数据库平台编写不同的应用程序,只须写—遍程序,就可以让它在任何平台上运行,这也是 Java 语 言 “编写一次,处处运行”的优势。

O D B C 与 J D B C 都基于 X/Open S Q L , J D B C 构建于 O D B C 之上,它保留了 O D B C
的基本设计特征,同时针对 J a v a 语言加以改进,所以能与 J a v a 开发进行很好的配合,
而且保障了熟悉 O D B C 的程序员可以快速地掌握 J D B C 。

此外, O D B C 将简单和高级功能混在一起,而且即使对于简黾的查询,其选项也极为复杂。相反, J D B C 尽量保证简单功能的简便性,而同时在必要时允许使用高级功能。启用纯 Java 机制,则需要使用 J D B C 。如果使用 O D B C , 就必须手动地将 O D B C 驱动程序管理器和驱动程序安装在每台客户机上;如果完全用 J a v a 编 写 J D B C 驱动程序,则J D B C 代码在所有 Java 平台上都可以自动安装和移植,并保证安全性。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux DNS服务

DNS 作用 DNS是 域名系统 的英文缩写,作为将域名与IP地址相互映射的一个分布式数据库,让人可以通过域名访问互联网 正向解析 将域名解析为IP反向解析 根据IP查找对应域名 域名结构 http://www.sina.com.cn./ http://主机名.子域.二级域.顶级域.根域 / 每…

【Linux学习】信号——预备知识 | 信号产生 | 核心转储

🐱作者:一只大喵咪1201 🐱专栏:《Linux学习》 🔥格言:你只管努力,剩下的交给时间! 信号 🔔信号🎵预备知识🎵信号处理方法的注册 🔔信…

C/C++每日一练(20230421)

目录 1. 位1的个数 🌟 2. 递归和非递归求和 ※ 3. 俄罗斯套娃信封问题 🌟🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 位1的…

大数据技术之Kafka——Kafka入门

目录 一、概述 1.1 为什么要有Kafka ​编辑 1.2 定义 1.3 消息队列 1)消息队列的应用场景 2)消息队列的两种模式 1.4 基础架构 二、Producer生产者 2.1 生产者消息发送流程 2.1.1 发送原理 2.2 异步发送API 2.2.1 普通异步发送 2.2.2 带回调…

第八章_Redis复制(replica)

是什么 官网地址 一句话 就是主从复制,master以写为主,Slave以读为主 当master数据变化的时候,自动将新的数据异步同步到其它slave数据库 能做什么 读写分离容灾恢复数据备份水平扩容支撑高并发 怎么使用 配从(库)不配主(库) 权限细节&am…

YOLOv8 更换主干网络之 MobileNeXt

《重新思考瓶颈结构以实现高效移动网络设计》 倒置残差块成为了移动网络架构设计的主流。它通过引入学习倒置残差和使用线性瓶颈的两个设计规则,改变了经典的残差瓶颈。在本文中,我们重新思考了这种设计改变的必要性,并发现它可能会带来信息丢失和梯度混淆的风险。因此,我们…

助力工业物联网,工业大数据之ODS层构建:代码结构及修改【九】

文章目录 01:ODS层构建:代码结构及修改02:ODS层构建:连接代码及测试03:ODS层构建:建库代码及测试04:ODS层构建:建表代码及测试 01:ODS层构建:代码结构及修改 …

漏扫常见(可验证)漏洞复现方法

SSL/TLS协议信息泄露漏洞(CVE-2016-2183) 检测到目标服务支持SSL弱加密算法 检测到目标服务支持SSL中等强度加密算法 nmap -sV -p 端口 --script ssl-enum-ciphers 目标ipSSH支持弱加密算法 nmap -sV -p 端口 --script ssh2-enum-algos 目标ipApache Tomcat示例脚本信息泄露…

YOLOv8 更换主干网络之 ShuffleNetv2

《ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design》 目前,神经网络架构设计多以计算复杂度的间接度量——FLOPs为指导。然而,直接的度量,如速度,也取决于其他因素,如内存访问成本和平台特性。因此,这项工作建议评估目标平台上的直接度量,而…

Vue 表单

文章目录 Vue 表单输入框复选框单选按钮select 列表修饰符.lazy.number.trim Vue 表单 这节为大家介绍 Vue.js 表单上的应用。 你可以用 v-model 指令在表单控件元素上创建双向数据绑定。 输入框 v-model 会根据控件类型自动选取正确的方法来更新元素。 输入框 实例中演示…

Maven(二)高级操作

目录 一、分模块开发与涉及(重点)1.工程模块划分2.modules_common拆分3.modules_pojo拆分4.modules_dao拆分5.modules_service拆分6.modules_controller拆分7.总结 二、聚合(重点)1.多模块构建维护2.聚合 三、继承(重点…

HTML5 <param> 标签、HTML5 <progress> 标签

HTML5 <param> 标签 实例 HTML5 <param>标签为<object>标签提供嵌入内容的运行时参数的name与value对。请参考下述示例&#xff1a; 设置参数 "autoplay" 为 "true"&#xff0c;音频载入后会自动播放&#xff1a; <object data&qu…

基于AT89C51单片机的电子时钟设计

点击链接获取Keil源码与Project Backups仿真图&#xff1a; https://download.csdn.net/download/qq_64505944/87695258?spm1001.2014.3001.5503 源码获取 主要内容&#xff1a; 1.设计出电子数字钟的电路&#xff0c;并用protus进行仿真画出对应的电路图 2.设计出电子数字钟…

2021地理设计组二等奖:基于GIS的东江源区土壤侵蚀及其影响因素空间分析

一、作品背景 水土保持情况普查对我国具有重要意义。我国目前是世界上水土流失最严重的国家之一&#xff0c;水土流失面积极其广且量大&#xff1b;严重的水土流失问题是我国生态环境问题的重要板块&#xff0c;若是持续恶化&#xff0c;将会严重影响我国的生态安全、饮水安全…

不得不说的创建型模式-抽象工厂模式

抽象工厂模式是一种创建型模式&#xff0c;它提供一个接口来创建一系列相关或相互依赖的对象&#xff0c;而不需要指定它们的具体类。这个接口被称为“抽象工厂”&#xff0c;它可以被不同的具体工厂实现来创建不同的产品族。 下面通过一个简单的示例来说明抽象工厂模式的底层原…

[API]string常量池string常用方法StringBuilder类(一)

String字符串类型&#xff1a; java.lang.String类使用final修饰&#xff0c;不能被继承 String的底层封装的是一个字符数组 String在内存中采用Unicode编码格式&#xff0c;每个字符占用2个字节的内存空间 字符串对象一旦创建&#xff0c;对象内容永远无法改变&#xff0c;…

Python爬虫实战——下载小说

Python爬虫实战——下载小说 前言第三方库的安装示例代码效果演示结尾 前言 使用requests库下载开源网站的小说 注意&#xff1a;本文仅用于学习交流&#xff0c;禁止用于盈利或侵权行为。 操作系统&#xff1a;windows10 家庭版 开发环境&#xff1a;Pycharm Conmunity 202…

Node【NPM】

文章目录 &#x1f31f;前言&#x1f31f;NPM使用&#x1f31f;NPM使用场景&#x1f31f;NPM的常用命令&#x1f31f;NPM命令使用介绍&#x1f31f; 使用NPM安装模块&#x1f31f; 下载三方包&#x1f31f; 全局安装VS本地安装&#x1f31f; 本地安装&#x1f31f; 全局安装&am…

Vue全家桶

作为后端对vue学习完的快速总结 目录 1.vue-cli 2 vuex 3 axios 4 router vue-cli vue-cli 3 是基于webpack 4 打造的vue-cli 2 还是 webpack 3webpack是基于node.js的&#xff0c;所以我们在安装脚手架前必须安装node 安装node.js(应用商店或者官网) 1.安装vue脚手架 npm…

Storm proxies动态代理IP抓取产品信息用什么类型的代理呢?

抓取产品信息时&#xff0c;可以根据实际需求和目标网站的反爬虫策略选择合适的代理类型。以下是一些常见的代理类型&#xff1a; HTTP代理&#xff1a;HTTP代理是最常见的代理类型&#xff0c;适用于基于HTTP协议的网站。它可以用于发送HTTP请求和接收HTTP响应&#xff0c;适合…