大數據

大數據

带你读《R数据科学实战:工具详解与案例分析》之二:数据清理工具

点击查看第一章 第2章 数据清理工具无论是人工还是传感器采集的数据,都或多或少地存在一些错误或者瑕疵。比如说,不同采样人员记录数据方式的不同会导致数据值重复或不准确,录入数据时的失误会导致数据输入错误,传感器断电会造成大段的数据默认,不同国家和地区对时间日期制式的不同标准等,各种各样的原因造成数据无法直接用来分析、可视化的情况非常普遍。一般来讲,在从数据收集到最后报告的整个 过程中,数据清理会占用整个流程80%的时间。如此耗时的原因是数据清理并非一次性工作,数据清理、计算、可视化是一个动态的循环,根据分析需求的不同,需要应用不同的清理思路和方式。例如,对于默认值的处理,在探索性数据分析阶段,一般都会尝试各种不同的处理方式,完全移除、部分移除或替换成其他数值,并参考分析的目的来决定如何清理默认值。本章会向读者分享数据清理的一些基本原则,作为框架来指导数据清理工作,以帮助读者逐步形成一套属于自己的数据清理思路。本章还将重点介绍如何使用tibble、tidyr、lubridate和stringr这4个包来进行数据清理。希望读者在浏览过本章之后,会对以下3点有所了解。1)“脏”数据和“干净”数据的标准是什么。2)数据清理的指导原则。3)可以使用的工具包。 2.1 基本概念 “脏”数据没有任何标准,只要是不能满足分析要求的数据集都将打上“脏”的标签。所以弄清楚与之相对的“干净”数据可以使我们更容易理解数据清理的概念。目前国际上公认的“干净”数据可以总结为如下3点。1)属性相同的变量自成一列。2)单一观测自成一行。3)每个数据值必须独立存在。表2-1中显示的数据不符合第1条原则,因为男、女都属于性别,所以可以归为一个变量,归为一个变量后如表2-2中所示。但表2-2中显示的数据不符合第3条原则,因为体重和年龄两个变量放在了同一列中,虽然用反斜杠分隔后,人类按常识很容易理解,但计算机并不会懂,其只会将两列本来是数字类型的数据当成是字符串来处理。表2-3中展示了一个3条原则都不满足的样本数据集,在完成清理之前,计算机无法对表2-3中的数据进行任何有效的数据分析。 表2-4中列出了清理后的数据集。对单一数据清理的第一个指导原则就是,按照上文介绍的3点将数据集清理成相应的形式。第2个原则需要按照实际需求进行,表2-5中的数据集是将“宽”数据(一般指多个同类或不同类型变量并存)转换成了“长”数据(同类型变量单独成列)。“宽”数据更符合人们日常对Excel格式数据的理解,而“长”数据对计算机来讲则更易进行数据存储和计算,在R环境中,计算“长”数据的速度优于“宽”数据。将表2-4中的数据转换成表2-5的形式只需一个函数gather,相关内容详见2.3节。 数据清理的第三个指导原则同样需要视情况而定,不同来源的数据应单独成表,独立存在。比如,元数据(解释变量名称或数据背景的数据,英文为metadata)与原始数据应同时存在一个文件或一个工作表中(参考第1章不规则数据读取)。简单来说,元数据通常会包含坐标、指标的具体含义等解释性信息,这类信息不应与原始数据本身同时存在一个数据集中,而应单独成为一个数据集,只在需要解释原始数据本身时才调用元数据。 2.2 tibble包—数据集准备 解决问题需要首先了解问题所在,对症下药。tibble包的存在就是为了给数据清理及后续的分析提供一个最佳的起点。tibble既是R包的名字也是数据在R中的一种存储格式。可以将tibble包理解为R中最常见的data.frame(数据框)格式的升级版。像下列代码所示,如果使用read.csv读取数据,那么数据会被存储在data.frame(数据框)格式中。但是当调用read_csv时,数据就会存在三种适用格式:tbl_df、tbl和data.frame。因为tibble和readr包都源自于Hadley的tidy系列,所以使用readr包时自动植入了tibble(以下简称tbl)的数据格式。那么,问题来了,为什么非要使用这个格式呢? 2.2.1 为什么使用tibble tbl格式作为老旧的data.frame升级版,主要包含如下三点优势。1)稳定性更好,可完整保存变量名称及属性。2)更多的信息展示、警示提醒,有利于及时发现错误。3)新的输出方式使得浏览数据时,屏幕的利用率极佳。因为R语言已经诞生了将近20年,很多早期的函数都是围绕data.frame格式写就的,当调用这类函数时,“新兴”的tbl格式可能会出现不兼容的情况,这也是tbl格式目前被发现的唯一缺陷。tbl格式的第一条优势需要读者在使用过程中对比两种格式的差异才会有直观感受,简单来讲就是,传统的data.frame在处理变量名称时,有时会悄悄改动名称以满足自身要求,这往往会给用户带来一些意料之外的错误。请看以下的例子。 两行代码分别使用函数data.frame和tibble创建了一个传统的数据框格式(见表2-6),以及一个tbl格式的数据框(见表2-7)。代码中定义的数据变量名称为“x+y”,但在data.frame格式中被修改成了“x…y”。大部分情况下,这种默认的修改是数据框格式的一种自我保护机制,目的是为了后续计算时引用变量名不会产生歧义。但是这种保护机制同时会与编程数据分析的另一项基本原则发生冲突,即常量输入等于常量输出(这里的常量可以理解为变量名),除非用户主动修改,否则其名称应保持一致。至于如何选择,就需要读者自行决断了。 第1章中提到查看data.frame中的变量类型时,通常需要调用str函数。但是在tbl格式中,无须调用任何函数,直接输入数据集名称即可查看相关信息。默认情况下,tbl格式会根据console窗口的大小,自动调整显示的内容。内容会包含数据格式、列总数、行总数、变量名称和类型,以及无法完全展示部分的变量信息。有一定data.frame使用经验的读者肯定知道,对于不调用str函数直接在console中运行data.frame格式的数据集,R会将小于1000列×1000行的所有内容都显示出来,而且其中还不包括变量属性等信息。tbl格式查看数据集相关信息的示例代码如下: 2.2.2 创建tbl格式 在练习使用tibble时,可以通过函数tibble或tribble来创建新的数据框。tibble函数创建新数据框的方法与baseR中data.frame函数的方法一致。等号左边为变量名称,右边为相应的数据值,不同变量之间以逗号相隔。下面的代码创建了一个包含变量a和b的数据框,变量a包含6个值,分别为数字1到6,变量b为a列中的值乘以2,因此同为6个数值。代表integer(整数),代表double(浮点型)数据类型。创建数据框的代码如下: tribble函数比较适合用来创建小型数据集,可以采用常规excel表中数据分布的格式,直接手动输入数据,变量名称以“~”起始,逗号结束,数据值以逗号分隔。下面的代码即用来生成表2-2的。该函数在特定情况下会显得非常实用,比如,用来解释变量(或指标)和因子水平的元数据一般都会杂乱无章,使用软件清理既费时又费力,但当通过肉眼能够很容易提取到关键信息时,直接使用tribble函数手动生成变量和因子水平对照表会更高效。 2.2.3 as_tibble—转换已有格式的数据集 在转换数据的格式之前,可以使用is_tibble来测试目标对象是否已是tbl格式,该函数只需要对象名称这一个参数即可。可以通过as_tibble函数将对象已有的格式(vector、matrix、list和data.frame等)转换成tbl。表2-8中列出了常见对象格式的转换注解。 下面通过具体的代码来说明使用as_tibble函数将常见的R对象转换成tibble格式的具体方法。(1)as_tibble函数直接将vector格式转换成数据框格式1)随机设置一组向量,保存为y。2)检视向量y。3)调用as_tibble函数直接转换,并将结果显示到console中。实现代码具体如下: […]

大數據

11月14日Spark社区直播【 Spark on Kubernetes & YARN】

主题: Spark on Kubernetes & YARN 点击这里是直播间直达链接(回看链接) 时间11月14日:19:00-20:00 直播介绍:以Kubernetes为代表的云原生技术越来越流行起来,spark是如何跑在Kubernetes之上来享受云原生技术的红利?Spark跑在Kubernetes之上和跑在Hadoop YARN上又有什么区别?以及Kubernetes 和YARN的差异点是什么。 主讲人:何剑阿里巴巴高级技术专家,专注于Kubernetes容器云和大数据底层调度以及基础架构,负责阿里巴巴容器平台在线服务和离线计算任务混部。此前就职于Hortonworks, 是Hadoop 社区Committer和PMC成员 请钉钉扫码至群内观看直播,与嘉宾互动有机会获得社区礼物一份。

大數據

11月14日Spark社区直播【 Spark on Kubernetes & YARN】

主题: Spark on Kubernetes & YARN 点击这里是直播间直达链接(回看链接) 时间11月14日:19:00-20:00 直播介绍:以Kubernetes为代表的云原生技术越来越流行起来,spark是如何跑在Kubernetes之上来享受云原生技术的红利?Spark跑在Kubernetes之上和跑在Hadoop YARN上又有什么区别?以及Kubernetes 和YARN的差异点是什么。 主讲人:何剑阿里巴巴高级技术专家,专注于Kubernetes容器云和大数据底层调度以及基础架构,负责阿里巴巴容器平台在线服务和离线计算任务混部。此前就职于Hortonworks, 是Hadoop 社区Committer和PMC成员 请钉钉扫码至群内观看直播,与嘉宾互动有机会获得社区礼物一份。

大數據

5G对于云边协同发展前景的影响

边缘计算的特点和作用 边缘计算作为目前蓬勃发展的领域在产业互联网中具有重要地位,从物联网四层结构即感知层、网络层、平台层和应用层分析,边缘计算的数据来源是感知层,而由于边缘计算设备同时具有一定计算能力因此往往将其划入平台层考虑,既包含前端节点的特征又具备计算能力的特点使边缘计算在整个技术体系中显得非常独特。总结其典型特点由以下几方面:(1)部署位置接近感知层部署位置接近感知层代表感知层众多的传感元件能够被直接接入边缘计算终端,由于感知层设备的种类较多并且原理各不相同,因此边缘计算终端的首要任务是信号预处理,理想状况下是所有的输入信号都是数字信号,但实际由于产业互联网本身生产工艺的繁多使部分模拟量信号的接入成为必然。因此信号预处理在数据预处理之前成为边缘计算终端面临的第一个挑战,在信号预处理的基础上各类工艺过程的测量结果才能被数字化从而形成结构化数据,结合以日志信息为代表的半结构化数据和图像视频为代表的非结构化数据,统一作为边缘计算终端数据预处理的源头甚至不采用边缘计算而直接送入云端。(2)具有一定计算能力拥有一定的计算能力是边缘计算终端的最重要特征,边缘计算力越强则云端的计算压力越轻。物联网和产业互联网相比传统的人人信息交互和人机信息交互其感知层设备数量接近无限,并且各类数据结构不一、数据采集周期不一、传输速度要求不一、传输周期不一,如所有的设备都直接接入云端则会导致云端的大量计算力被用于数据预处理。在这种情况下用户只有两个选择,将有限的计算力分出一部分来进行数据预处理工作,或是单独配置新的计算节点来满足数据预处理要求,前者降低了云平台的利用效率而后者提高了用户使用云计算的成本。边缘计算作为感知层设备与平台层的中间过渡计算力很好的解决了这个问题,对于传感器的接入数据由边缘计算终端进行信号预处理和数据预处理后传输至云端,大幅度降低了云端数据预处理的计算量,因此可以将计算力资源集中用于数据分析、数据挖掘特别是会消耗大量计算力的异构数据计算工作上。(3)部署灵活由于边缘计算终端是以硬件形式作为传感器和云平台之间的中间过渡层,因此其部署灵活的特点能够使数据采集的工作更为规范统一。针对产业互联网和物联网系统数据采集较为复杂多样的情况,各类结构化数据、半结构化数据和非结构化数据有同时接入和传输的需求,并且数据的采集周期和传送周期各不相同。边缘计算终端可以有效结合不同数据的特点进行部署,尽量将同类型的数据接入同一边缘计算终端,在确保接入数据在计算和传输上的要求接近的同时也可以避开其计算力较弱的特点防止因数据种类过多和传输需求不一而使计算能力超出了终端的计算能力范围。 5G对云边协同的促进 由于边缘计算节点靠近感知层,与平台层之间的数据交换需要通过网络层的通信手段进行,因此网络层的通信效率直接影响云端和边缘计算终端的协同效果。云端的典型特征是计算力强大但是距离感知层设备较远,边缘计算的典型特征则是计算力较弱但是部署接近感知层,中间的传输瓶颈成为了提高云边协同效率的突破口。(1)5G的四大特征高速度、泛在网、低功耗、低时延5G高速度、泛在网、低功耗、低时延的四大特征目前网络介绍资料已经非常齐全。聚焦于对云边协同的促进方面,目前边缘计算终端在物联网体系中所处的位置相对还是靠近感知层,对于在传输速度要求上较高的数据特别是如无人驾驶、监控视频处理等实时性要求极高的异构数据处理因为网络层在传输速度和实时性上的限制而无法通过无线公网从边缘端被实时送到云端处理。这个短板造成了很多在平台层已经成熟的应用因为传输网络的瓶颈限制而落地受限,同时造成了边缘计算终端在边缘异构数据处理方面被旁路化和管道化。5G的应用将会突破这个限制,解决了云端和边缘端通信的速度瓶颈,使边缘计算终端在无人驾驶、视频监控等异构数据集中的场景中能够实现前端计算节点所应该具有的集成作用,5G低时延的特征更是使边缘计算从靠近感知层往平台层的方向北向移动,以传输速度和低时延来增加云边协同的效率,双向的克服云平台与边缘设备距离较远的弱点和边缘计算终端计算力较弱的短板,真正实现云边实时协同,将边缘计算节点的计算力不但能够作为前置节点发挥作用,也能和云平台的计算力统筹考虑。不用再考虑通道在传输速度上的限制和传输实时性上的限制。(2)5G网络切片的作用5G网络切片技术是指将一个物理网络切割成多个虚拟网络,实现对5G网络数据进行分流管理,并保持每个虚拟网络间逻辑独立性的技术,可在不增设网络架构的基础上满足不同场景的差异化需求。网络切片的作用使边缘计算在解决物联网和产业互联网接入数据多样化的背景下能够多了一种手段。除了针对感知层不同类型的设备在物理上分类进行接入外使用5G网络切片还可以让不同采集周期和传输速度的数据分流。使数据的分类在物理设备之外在网络层也有了隔离手段,对于边缘计算的意义在于采用5G网络切片技术后,感知层设备接入边缘计算终端的架构方案考虑可以以设备物理地域为中心而不必再考虑不同设备的接入数据在采集周期、传输周期和数据包大小上的差异。

大數據

基于宜搭的企业报表页面搭建

本文内容概要 下文主要通过一份表单填报数据介绍宜搭报表页面的制作,内容根据每项功能的实现进行拆解,读者可以根据自身的掌握情况选择性阅读,主要内容如下: 报表页面的数据源使用 筛选联动&数据过滤 公式与聚合计算 超链接 高级功能使用 产品文档: https://help.aliyun.com/product/109414.html 一、数据源使用 在宜搭上,报表页面的数据一般来自于“单据页面”,应用制作者通过单据页面收集到用户数据后,便能用作制作报表页面的图表。源表有以下规则: 单据页面与数据源表一一对应 表名称默认是单据页面的名称 表一般能在图表组件的“选择数据源”当中选到:我们可以看到除了单表作为图表的数据源,宜搭还提供了“多表关联”&“数据准备”,多表关联类似维表与事实表之间的关系场景,使用时,系统会将多表关联后的结果集作为图表的数据源。数据准备是新推出的功能,可以允许用户对数据源表做更多的加工操作,与多表关联不同的是: 多表关联不生成具体的物理表,数据实时更新 数据准备是离线数据,数据更新周期T+1 数据准备会提供更多的加工能力,例如允许用户进行跨应用数据关联 数据准备的典型使用方式 1.添加数据源 每个应用都会有一个对应的数据准备“空间”,该空间下会默认添加当前应用的数据作为源,用户还可以手动添加其他应用的数据作为源,方法如下:宜搭还可以使用本地数据作为数据源,目前支持Excel&csv格式的文件:数据源配置完毕之后,可以使用“数据集”生成最终供报表页面使用的表:配置完毕之后,即可在报表设计页面的数据源选择当中看到加工后的表

大數據

双11特别策划系列上线!你最感兴趣的双11技术合辑在此 | 开发者必读(101期)

最炫的技术新知、最热门的大咖公开课、最有趣的开发者活动、最实用的工具干货,就在《开发者必读》! 每日集成开发者社区精品内容,你身边的技术资讯管家。 每日头条 深度回顾!30篇好文,解析历年双十一背后的阿里技术秘籍 | 双11特别策划之一 自2009年起,天猫双十一当天的交易额逐年增长,在庞大的数据处理量面前,用户在使用感上却丝毫不受影响。今天我们就为大家挑选了,历届双十一中阿里技术团队在面对流量洪峰时所运用的技术,来看看是哪些黑科技在保证你能顺畅地“剁手”? 最强干货 96秒100亿!哪些“黑科技”支撑全球最大流量洪峰?| 双11特别策划之二 每秒订单峰值54.4万笔!这项“不可思议”的挑战背后是众多阿里“黑科技”的支撑,究竟是哪些技术撑起了如此强大的流量洪峰?开发者社区双11特别策划带你揭秘!更有阿里巴巴集团CTO张建锋精彩演讲内容等你发现! 超燃!支付宝技术双11纪录片《一心一役》全球独家首发 和过去10年一样,2019年天猫双11又创造了一个全新的纪录。这个数字背后,是数代支付宝工程师们殚精竭虑、不断突破技术难关。今年双11之前,小编邀请到11位经历双11的技术同学口述实录,特别筹备了纪录片《一心一役》,讲述这一路走来的那些隐秘往事。 2684亿!阿里CTO张建锋:不是任何一朵云都撑得住双11 “不是任何一朵云都能撑住这个流量。中国有两朵云,一朵是阿里云,一朵叫其他云。”11月11日晚,阿里巴巴集团CTO张建锋表示,“阿里云不一样,10年前我们从第一行代码写起,构建了中国唯一自研的云操作系统飞天。” 每天读本书 带你读《中台战略:中台建设与数字商业》之三:全面解读中台 中台,通过对业务、数据和技术的抽象,对服务能力进行复用,构建了企业级的服务能力,消除了企业内部各业务部门、各分子公司间的壁垒,适应了企业,特别是大型企业集团业务多元化的发展战略。基于中台,可快速构建面向最终消费者和客户的前台应用,从而满足各种个性化特征的前台需求,为企业的数字化转型提供明确的道路。 精品公开课 Spark

大數據

DataV参与了一场千亿交易

从2009年的双11到2019年的双11,从2009年的5000万到今年的2684亿。已经“11岁”的双11,又一次创造了奇迹!今年的双11数据可以说几近“疯狂”,屡屡刷新纪录,更有人称今年的双11像过年般热闹。成交额里程碑1 分 36 秒,超 100 亿!1 小时 3 分 59 秒,超 1000 亿!10 小时 4 分 49 秒,超 1682 亿!(超

大數據

带你读《数据库与数据处理:Access 2010 实现 第2版》之一:数据处理与数据库

计算机基础课程系列教材点击查看第二章点击查看第三章数据库与数据处理:Access 2010 实现 第2版 张玉洁 孟祥武 编著 第1章 数据处理与数据库早期计算机主要用于科学计算,数据类型单一。随着计算机技术的发展以及计算机的益普及,计算机应用已经远远超出了这个范畴。如今面对各种类型的海量数据,利用计算机做得更多的是进行数据处理。数据处理不仅广泛应用于电信、银行、证券、航空、教育、出版、气象等领域,而且在地质勘探测绘、仓库管理、技术情报管理、销售、制造、智能交通、电子商务等领域也呈现出勃勃生机。数据处理离不开软件的支持,常用的数据处理软件包括:用于管理数据的文件系统和数据库管理系统,用于编写各种处理程序的高级程序设计语言及其编译、解释程序,以及各种数据处理方法的应用软件包等。 1.1 数据处理 数据和信息的关系非常密切,多数情况下没有严格的区分。信息处理从根本上离不开数据,因此信息处理实质上就是数据处理。而数据处理的最终结果是以信息或知识的方式展示给用户,所以数据处理也称为信息处理。但在某些特定的环境下,数据和信息还是两个不同的概念,不能混用,比如,不能将数据文件说成信息文件等。 1.1.1 数据与信息 1. 数据数据是对客观世界中各种事物的一种抽象、符号化的表示。它采用一种人为规定的符号来表示从现实世界中观察和收集到的现象和事实。数据的表现形式很多,可以是数字、文字、时间,也可以是图形、图像、动画、声音等多媒体形式。从计算机的角度看,数据泛指可以被计算机接受并能被计算机处理的符号。从数据库的角度看,数据就是数据库中存储的基本对象。数据有型与值之分。数据的型给出了该数据所属数据类型的说明,如整型、字符型、布尔型等;数据的值给出了符合给定型的数值,值是型的一个实例。数据的型相当于程序设计语言中变量的类型说明,数据的值相当于变量的取值。数据的型基本上相对稳定,数据的值则是不断变化的。2. 信息信息源于拉丁文“Information”,是指一种陈述或解释、理解等。数据经过解释并赋予一定的含义之后,就成为信息,即信息是根据需要对数据进行加工处理后得到的结果。3. 数据与信息的关系数据是信息的符号表示,是信息的具体表现形式,信息只有通过数据的形式表示出来才能被理解和接受。信息是数据的内涵,即数据的语义,信息在计算机中的存储即为数据。信息是观念上的,受制于人对客观事物变化规律的认知。例如,一个数字40的语义可能是年龄为40岁、体重为40公斤、价格为40元、考试成绩为40分、苹果为40个、书为40本等,也可能是高烧40度、水深40米、雨量达到40毫米、血压低压为40等。又比如,文字“黎明”的语义可能是一个词语,表示天快要亮或刚亮的时候,也可能是名称,如某人的姓名、壁画的名字、绘本的名字等。数据要符合其语义,数据与其语义是不可分的。数据库系统要保证数据库中的数据符合其语义。 1.1.2 数据处理与数据管理 数据处理的发展及应用的广度和深度,极大地影响着人类社会发展的进程。数据处理,也称信息处理,是将数据加工成信息的过程,具体指利用计算机对各种数据(包括数值数据和非数值数据)进行收集、整理、存储、分类、排序、检索、维护、加工、统计、传输等一系列活动的总和。数据处理的主要目的之一是从大量无序、难以理解的数据中,抽取并推导出有用的数据成分,作为行为和决策的依据。数据处理贯穿于社会生产和社会生活的各个领域。通常,数据处理的计算方法和过程比较简单,但处理的数据量通常很大,数据结构复杂,因此,数据处理的重点不是计算,而是数据管理。数据管理是数据处理的核心,主要功能包括数据的收集和分类、数据的表示和存储、数据的定位与查找、数据的维护和保护、提供数据访问接口和数据服务(如性能检测分析、可视化界面服务)等。数据处理与数据管理密切相关,数据管理技术的优劣直接影响数据处理的效果,数据库技术正是针对这一目标进行研究、发展并逐渐完善起来的专门技术。数据是数据库技术的研究目标,数据处理是数据库技术的应用方向,而数据管理则是数据库技术研究的主要内容。 1.1.3 数据管理简史 数据管理作为计算机应用领域中最大的一类应用,随着应用需求和计算机软硬件的发展,主要经历了人工管理、文件管理和数据库管理三个发展阶段。1.

大數據

带你读《数据库与数据处理:Access 2010 实现 第2版》之二:数据模型

点击查看第一章点击查看第三章 第2章 数据模型数据模型(Data Model)是数据抽象的工具,根据数据抽象的3个层次,数据模型分为概念数据模型、逻辑数据模型和物理数据模型。物理数据模型是指具体的DBMS在实现其支持的逻辑数据模型时,所用到的具体的物理存储结构。物理数据模型在数据库应用系统的开发中较少涉及,因此本章不做讨论。 2.1 数据模型三要素 数据模型是对数据、数据的特征以及数据之间联系的模拟、组织和抽象。数据模型是数据库系统的基础和核心,是数据库的框架,这个框架表示了信息及其联系的组织和表达方式,同时反映了存取路径,是对数据库如何组织的一种模型化表示。 数据模型有型和值的概念。型是对数据库中全体数据的逻辑结构和属性的描述,称为数据模式。值是型的一个具体值,称为实例。同一数据模式可以有很多实例。重要提示 通常情况下,对数据库模式、数据模式、数据库系统模式不做区分,它们本质上是相同的,都属于型,是一种框架、结构,相对稳定、变化不大,只是针对不同场合给出的不同叫法。 数据库模式以某一种数据模型为基础,若以关系模型为基础,数据库模式就称为关系模式。数据模型可以精确描述系统的静态特征、动态特征以及完整性约束条件。静态特征是指数据结构;动态特征是指数据操作,包括查询、插入、删除和修改等操作;完整性约束条件是指对数据的约束条件。通常,将数据模型定义为一组面向计算机的概念集合,即数据模型的三要素:数据结构、数据操作、数据约束。 1. 数据结构数据库对象包括数据和数据之间的联系。数据结构是数据库对象类型的集合,它描述数据的静态特征,即数据本身以及数据之间的联系。数据本身包括数据的类型、内容、特征等。2. 数据操作数据操作是一组定义在数据上的操作,通常包括查询、插入、删除、修改。数据操作描述的是数据的动态特征。数据模型要定义操作的含义、操作符、运算规则,以及实现操作的语言。3. 数据约束约束条件用于描述对数据的约束,包括数据本身的完整性和数据之间联系的约束。约束条件的主要目的是使数据库与它所描述的现实世界相符合,因此,约束条件是数据库中数据必须满足的完整性规则的集合。约束条件是对数据静态特征和动态特征的限定,以保证数据库中数据的正确、有效和安全。比如,对性别属性的约束条件是性别的取值只能是“男”或者“女”。 2.2 数据模型的分类 按照不同的应用层次和抽象级别的由高到低,将数据模型依次划分为概念数据模型、逻辑数据模型和物理数据模型。概念数据模型主要用于数据库的设计,逻辑数据模型主要用于DBMS的实现。数据模型是对现实世界特征的模拟和抽象,主要通过以下两个步骤完成将抽象组织成数据模型的过程,如图2-1所示。 1)将现实世界抽象为信息世界。通过对现实世界中的事物或现象及它们之间联系的概念化抽象,形成了信息世界中的概念模型。2)将信息世界抽象为计算机世界。即将概念模型转换为计算机能接受的(逻辑)数据模型。通常将逻辑数据模型简称为数据模型。 2.2.1 概念数据模型 概念数据模型(Conceptual Data Model,CDM)也称信息模型,它面向现实世界建模,按照用户的观点对数据进行描述,是面向用户的模型。CDM对现实世界中的事物和特征进行数据抽象,只关心现实世界中的事物、事物的特征以及联系,与具体的DBMS和具体的计算机平台无关。CDM强调语义表达,描述信息结构,是对现实世界的第一层抽象,也是系统分析员、程序设计员、维护人员、用户之间进行交流的语言。常用的概念数据模型是实体–联系模型,简称E-R模型,详细内容参见2.3节。概念模型必须转换成逻辑数据模型才能在DBMS中实现,将概念模型转换为逻辑模型的相关内容将在本书第二部分第4章的4.3节中进行介绍。

Scroll to Top