元数据是用来描述数据的数据(Data that describes other data)。单单这样说,不太好理解,我来举个例子。
下面是契诃夫的小说《套中人》中的一段,描写一个叫做瓦莲卡的女子:
(她)年纪已经不轻,三十岁上下,个子高挑,身材匀称,黑黑的眉毛,红红的脸蛋--一句话,不是姑娘,而是果冻,她那样活跃,吵吵嚷嚷,不停地哼着小俄罗斯的抒情歌曲,高声大笑,动不动就发出一连串响亮的笑声:哈,哈,哈!
这段话里提供了这样几个信息:年龄(三十岁上下)、身高(个子高挑)、相貌(身材匀称,黑黑的眉毛,红红的脸蛋)、性格(活跃,吵吵嚷嚷,不停地哼着小俄罗斯的抒情歌曲,高声大笑)。有了这些信息,我们就可以大致想像出瓦莲卡是个什么样的人。推而广之,只要提供这几类的信息,我们也可以推测出其他人的样子。
这个例子中的"年龄"、"身高"、"相貌"、"性格",就是元数据,因为它们是用来描述具体数据/信息的数据/信息。
当然,这几个元数据用来刻画个人状况还不够精确。我们每个人从小到大,都填过《个人情况登记表》之类的东西吧,其中包括姓名、性别、民族、政治面貌、一寸照片、学历、职称等等......这一套元数据才算比较完备。
在日常生活中,元数据无所不在。有一类事物,就可以定义一套元数据。
喜欢拍摄数码照片的朋友应该知道,每张数码照片都包含EXIF信息。它就是一种用来描述数码图片的元数据。按照Exif 2.1标准,其中主要包含这样一些信息:
Image Description 图像描述、来源. 指生成图像的工具
Artist 作者 有些相机可以输入使用者的名字
Make 生产者 指产品生产厂家
Model 型号 指设备型号
Orientation方向 有的相机支持,有的不支持
XResolution/YResolution X/Y方向分辨率 本栏目已有专门条目解释此问题。
ResolutionUnit分辨率单位 一般为PPI
Software软件 显示固件Firmware版本
DateTime日期和时间
YCbCrPositioning 色相定位
ExifOffsetExif信息位置,定义Exif在信息在文件中的写入,有些软件不显示。
ExposureTime 曝光时间 即快门速度
FNumber光圈系数
ExposureProgram曝光程序 指程序式自动曝光的设置,各相机不同,可能是Sutter Priority(快门优先)、Aperture Priority(快门优先)等等。
ISO speed ratings感光度
ExifVersionExif版本
DateTimeOriginal创建时间
DateTimeDigitized数字化时间
ComponentsConfiguration图像构造(多指色彩组合方案)
CompressedBitsPerPixel(BPP)压缩时每像素色彩位 指压缩程度
ExposureBiasValue曝光补偿。
MaxApertureValue最大光圈
MeteringMode测光方式, 平均式测光、中央重点测光、点测光等。
Lightsource光源 指白平衡设置
Flash是否使用闪光灯。
FocalLength焦距,一般显示镜头物理焦距,有些软件可以定义一个系数,从而显示相当于35mm相机的焦距 MakerNote(User Comment)作者标记、说明、记录
FlashPixVersionFlashPix版本 (个别机型支持)
ColorSpace色域、色彩空间
ExifImageWidth(Pixel X Dimension)图像宽度 指横向像素数
ExifImageLength(Pixel Y Dimension)图像高度 指纵向像素数
Interoperability IFD通用性扩展项定义指针 和TIFF文件相关,具体含义不详
FileSource源文件 Compression压缩比。
我再举一个例子。在电影数据库IMDB上可以查到每一部电影的信息。IMDB本身也定义了一套元数据,用来描述每一部电影。下面是它的一级元数据,每一级下面又列出了二级元数据,总共加起来,可以从100多个方面刻画一部电影:
Cast and Crew(演职人员)、Company Credits(相关公司)、Basic Data(基本情况)、Plot & Quotes(情节和引语)、Fun Stuff(趣味信息)、Links to Other Sites(外部链接)、Box Office and Business(票房和商业开发)、Technical Info(技术信息)、Literature(书面内容)、Other Data(其他信息)。
元数据最大的好处是,它使信息的描述和分类可以实现格式化,从而为机器处理创造了可能。
(完)
高天流云 说:
最近在学习《信息组织》,你的笔记很有帮助,希望能看到更多的相关内容。
2007年3月12日 22:12 | # | 引用
Ruan YiFeng 说:
我也在看信息组织呢,武汉大学周宁的教材,呵呵。
2007年3月13日 16:22 | # | 引用
新手 说:
希望还有更好的帖子能够出现
继续关注
2007年4月23日 14:38 | # | 引用
shing 说:
网站或网页的元数据描述
1 自己选择一个网站或网页
2 依据DC的规范产生相应的元数据,并用HTML予以表达.
2007年5月23日 17:30 | # | 引用
Charlie 说:
请问常用办公软件的文件,如office文件,pdf文件的meta数据怎么提取?c++语言有相关api吗?它们都有哪些元数据?:)谢谢你了先。。文章很好!
2007年10月14日 18:00 | # | 引用
wongtseng 说:
见过的写得最容易明白的解释,谢谢
2009年1月 6日 17:25 | # | 引用
呼呼 说:
写得太好了 精辟
2009年3月30日 10:23 | # | 引用
sophie 说:
写的真好,一看就懂了。
2011年5月12日 09:07 | # | 引用
山海经 说:
简单明了、比那些饶人的定义好多了
2013年4月22日 10:46 | # | 引用
无双 说:
深入浅出,nice
2013年7月17日 12:15 | # | 引用
华定平 说:
浅显易懂感谢阮兄
2013年8月22日 09:25 | # | 引用
无叶莲 说:
写的很好 很有帮助 谢谢分享~~~
2013年10月20日 11:12 | # | 引用
lalako 说:
易于理解!
2013年11月12日 13:42 | # | 引用
Chichang 说:
看Wikipedia和百度上的词条,都是概念性的内容,对初学者而言并不易于理解,虽然看完本篇后生出了更多的译文,但具体的疑问要好过完全的不理解,谢谢~
2014年5月15日 08:46 | # | 引用
猫爪无情 说:
通俗易懂 赞
2014年7月 2日 09:52 | # | 引用
陈林 说:
你的博客知识面好广啊,每次用谷歌或者百度搜我感兴趣的信息时,总是被带到了这里,别的地方却很少看到这么浅显透彻的文章
2014年8月17日 21:37 | # | 引用
ACGの魂 说:
很棒的解释!看了好几个介绍都被绕晕了,还是博主的举例让人一看就懂,赞!
2014年9月22日 16:33 | # | 引用
rick 说:
写得很多,通俗易懂~
2014年11月 4日 11:22 | # | 引用
陈杰 说:
写得好
2014年11月10日 09:24 | # | 引用
hmr 说:
赞!一千个赞!懂了!
2015年1月 6日 12:15 | # | 引用
ncubrian 说:
文中说元数据是用来描述具体数据/信息的数据/信息,那照这样讲所有的数据都是元数据,因为数据的作用,就是用来表示除该数据本身以外的另一个东西,这另一个东西在数字世界中还是数据。然后关于格式化,那所有的数据也都是格式化的,不然程序就没法处理。其实只要推敲元数据的定义,关键是describe这个词,这个词在朗文当代英语词典中的解释是:to say what something or someone is like by giving details about them。metadata就是这里details,您所举的栗子就完全符合这个解释。其实很多源自英文的名词,如果直接从英文的角度去理解,是很直白易懂的,不需要过多的解释,只是翻译了以后就很难懂了。
2015年3月11日 13:48 | # | 引用
Hobby_ton 说:
偶然搜索“元数据”,排名第二的就是您的博客,确实解释的比那些定义、概念通俗易懂的多。拜读过您翻译的《黑客与画家》,偶然发现这个仍然活着的blog,如同发现宝藏,窃喜万分。
2015年6月17日 11:21 | # | 引用
zz 说:
元数据 指具有固定格式、用来描述某个事物的数据 这里强调固定格式 你能通过元数据 知道事物的一些信息 比如.NET中程序集中的元数据 你可以通过它来了解程序集中有哪些类型 因为这里的元数据就对程序集中的类型进行了描述
2015年7月17日 16:14 | # | 引用
书生 说:
周宁是我老师啊,我学的也是这本书!
2015年10月12日 10:39 | # | 引用
tanaka_lovely 说:
我想说的是:你对“这个例子中的"年龄"、"身高"、"相貌"、"性格",就是元数据”的说法,我个人不敢苟同,年龄、身高在这个示例中属于数据项的范畴,简单说,“年龄”是“她的”年龄,因此“她的年龄”相当于限定词+数据元,构成了数据项,数据项有明确的业务属性,如果具备描述“年龄”的数据,比如,类型为数值型,长度为3,等等,这个才是最终元数据的范畴。元数据是描述数据的数据,而被描述的数据是数据元,数据元放在具体应用环境中,成为了数据项。
2015年10月27日 18:18 | # | 引用
sfrost 说:
从写程序的人来说,你描述的后半截是成立的,比如字符型、bool型、长度等信息表示元数据,而姓名(元数:字符型,6字节)、性别(元数:整型、1字节)是业务数据,这是从开发程序的角度。
但是前半截,也就是博主所说的意思,是从普(业)通(务)人的角度来看,如姓名、年龄、身高是元数据,而张三、男、170cm则是业务数据。
最近在做主数据管理的方案,欢迎来信讨论。
2015年12月16日 09:42 | # | 引用
christopher 说:
一看就懂,还是阮老师讲的言简意赅。
2015年12月28日 14:55 | # | 引用
Roger 说:
从“写程序”和“业务”的不同角度去定义元数据,这个是实际应用场景中不妥,会产生二义。比如你建一个数据集市,需要去描述元数据,难道还要用户先明白你对元数据是如何理解的不成。最近在做数据集市,对如何定义元数据也在思虑中
2016年1月13日 16:30 | # | 引用
pipu 说:
经常看你的博客,一枚前端开发,在学习与Javascript的过程中,好多英语的文章,有些词或者橘子不是翻译软件翻译一下就能解决的,百度一下,嘿,阮一峰-- 。 实在感谢,正在看你的 es6的书,膜拜
2017年1月20日 14:24 | # | 引用
oscar 说:
2017年2月15日 11:15 | # | 引用
小任 说:
元数据应该被看做是数据的附加信息,也可以看做是标签。如:图片的数据就是图片内容,而图片的大小,创建时间,地理位置等这些是附加信息(即元数据),如果没有这些附加信息,图片依旧是图片。但是如果没有图片内容,图片就没有意义了。
如果要把一个人抽象成数据,那么性别、年龄、身高、体重、外貌等等这些形容人基本特征的数据应当被看成是主体数据,而非元数据。而类似姓名一类的数据则可以认为是元数据,因为没有也不影响人的本质,改变也不会直接改变某个人的本质,只是一些标签。其实自然界的实物和图片是有一定区别的。图片本身就是数据,无需抽象。而实物抽象成数据必然要依靠其元数据,所以拿实物来举例会有所混淆。
总之,我觉得可以简单粗暴一点的来定义。
即:
1、元数据是数据的附加信息或标签。
2、元数据的改变不影响其数据,数据的改变可能会影响其元数据。
2、元数据也是一种数据。
2017年4月 7日 10:17 | # | 引用
恒心同学 说:
浅显易懂!
2017年10月 7日 21:53 | # | 引用
baiwens 说:
我觉得数据(或者数据对象)就是属性名和属性值的集合,对于数据对象的元数据,元数据也是数据,也是属性名和属性值的集合,元数据作为数据对象的描述信息,是附加信息,比如,数据对象的创建时间、创建者等,或者数据对象所表示的现实中的实体的其他属性(除数据对象的属性之外的属性),拿人举例,如果人这个数据对象本身包括了:性别、年龄、身高、体重、外貌等属性,那么人的元数据一般不包括这些信息,可以是这个数据对象的创建时间、创建者等。
2018年2月27日 20:52 | # | 引用
草芥 说:
我觉得元数据从公司层面来说,可以分为业务元数据和技术元数据。业务元数据就是对业务层面的各种典型信息的描述归纳,技术元数据,就是实现业务元数据的标准。
2018年7月30日 09:37 | # | 引用
偶有小想法 说:
这个理解是有问题的,你理解元数据的角度有问题。如果你把数据类型、长度等信息理解为元数据,那结构化数据的元数据标准都是一样的了,所有数据库的数据项都可以用一套元数据标准来定义。那这样的化,人、车及全体事物的元数据就都成了数据类型、长度等信息,他们的元数据是相同的了,很显然违背了元数据的初衷。
2018年9月12日 23:12 | # | 引用
夜空 说:
感谢前辈的分享
2020年2月18日 23:53 | # | 引用
卫英石 说:
元数据就是数据协议,也叫数据说明书(data description)
2020年2月28日 14:36 | # | 引用
小基基 说:
13年了…
2020年5月 9日 20:22 | # | 引用
璐 说:
描述的太清晰了!!
2020年12月 9日 16:30 | # | 引用
dw 说:
确实通俗易懂
2021年1月 2日 10:11 | # | 引用
fewerworld 说:
请问关于元数据概念,属于数据库学科吗?相关的文献有什么吗?
2021年10月13日 16:20 | # | 引用