最新要闻
- 当前时讯:最高检发新文:NFT法律属性定调哪般?
- 天天日报丨黄桃+椰果!林家铺子双色水果罐头8罐仅19.9元
- 天天头条:比亚迪再掀桌子!新款汉DM-i冠军版上市:18.98万起合资还怎么玩
- 同事都说买高像素就对了 四款热门高像素全画幅相机推荐-天天百事通
- 微资讯!HTC U23 Pro发布:性价比这么低的手机不多了
- 世界热点评!日赚4亿还嫌多?移动联通电信现在和10年前日赚一样多:手机资费下降95%等
- 百度投资卡车整车研发商载合汽车科技_环球快讯
- 今日讯!3万多买钻戒如今只值2000元 网友称还是黄金保值:你会买钻戒吗?
- 60Hz显示器配120帧显卡是浪费?答案意外_世界即时看
- 最新资讯:包含多家中国造车新势力!马斯克预言一年内必有车厂倒闭
- 360 AIGC产品定名360智脑、360鸿图
- 三星量产12nm DDR5内存:功耗骤降23% 全球新视野
- 追讨欠款的有效期限是多久?欠钱不还电话不接微信不回怎么办?
- 快报:零跑汽车在杭州成立动力系统公司,注册资本1亿元
- 地球母亲怎么了?世界气象组织警告:未来五年全球气温将创新高-热头条
- 全球最新:知名女演员最新大片引争议 网友惊呼:这花有毒!
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
焦点热门:第二章:数据模型与查询语言
数据模型可能是软件开发中最重要的部分,它不仅仅影响着软件的编写方式,而且影响着我们的解题思路。
【资料图】
一个复杂的应用程序可能会有更多的中间层次,每个层都通过提供一个明确的数据模型来隐藏更低层次中的复杂性。
关系模型与文档模型
最著名的数据模型可能是SQL。它基于Edgar Codd在1970年提出的关系模型:数据被组织成关系(SQL中称作表),其中每个关系是元组(SQL中称作行)的无序集合。
关系数据库起源于商业数据处理,在20世纪60年代和70年代用大型计算机来执行。典型的事务处理(将销售或银行交易,航空公司预订,库存管理信息记录在库)和批处理(客户发票,工资单,报告)。
NoSQL的诞生
采用NoSQL数据库的背后有几个驱动因素,其中包括:
- 需要比关系数据库更好的可扩展性,包括非常大的数据集或非常高的写入吞吐量
- 相比商业数据库产品,免费和开源软件更受偏爱。
- 关系模型不能很好地支持一些特殊的查询操作
- 受挫于关系模型的限制性,渴望一种更具多动态性与表现力的数据模型
不同的应用程序有不同的需求,一个用例的最佳技术选择可能不同于另一个用例的最佳技术选择。关系数据库会与各种非关系数据库一起使用 - 混合持久化(polyglot persistence)
对象关系不匹配
如果数据存储在关系表中,那么需要一个笨拙的转换层,处于应用程序代码中的对象和表,行,列的数据库模型之间。模型之间的不连贯有时被称为阻抗不匹配(impedance mismatch)。
对象关系映射(ORM object-relational mapping)框架可以减少这个转换层所需的样板代码的数量,但是它们不能完全隐藏这两个模型之间的差异。
我们可以使用JSON模型减少了应用程序代码和存储层之间的阻抗不匹配,但是JSON作为数据编码格式也存在问题。
JSON表示比数据库的多表模式具有更好的局部性(locality)。
多对一和多对多的关系
存储ID还是文本字符串,这是个 副本(duplication)问题。当使用ID时,对人类有意义的信息(比如单词:Philanthropy)只存储在一处,所有引用它的地方使用ID(ID只在数据库中有意义)。当直接存储文本时,对人类有意义的信息会复制在每处使用记录中。
使用ID的好处是,ID对人类没有任何意义,因而永远不需要改变:ID可以保持不变,即使它标识的信息发生变化。
任何对人类有意义的东西都可能需要在将来某个时候改变——如果这些信息被复制,所有的冗余副本都需要更新。这会导致写入开销,也存在不一致的风险(一些副本被更新了,还有些副本没有被更新)。去除此类重复是数据库 规范化(normalization)的关键思想。
数据库通过连接来进行多表关联查询,来使得数据变得更加互联。
文档数据库是否在重蹈覆辙?
在多对多的关系和连接已常规用在关系数据库时,文档数据库和NoSQL重启了辩论:如何最好地在数据库中表示多对多关系。
20世纪70年代最受欢迎的业务数据处理数据库是IBM的信息管理系统(IMS),设计中使用了一个相当简单的数据模型,称为层次模型:文档数据库使用的JSON模型有一些相似之处。它将所有数据表示为嵌套在记录中的记录树。
同文档数据库一样,IMS能良好处理一对多的关系,但是很难应对多对多的关系,并且不支持连接。
提出了两种解决方案来解决层次模型的局限性:
- 关系模型(relational model)(它变成了SQL,统治了世界)
- 网络模型(network model)
网络模型
网络模型被称为CODASYL模型。
在层次模型的树结构中,每条记录只有一个父节点;在网络模式中,每条记录可能有多个父节点。
网络模型中记录之间的链接不是外键,而更像编程语言中的指针(同时仍然存储在磁盘上)。访问记录的唯一方法是跟随从根记录起沿这些链路所形成的路径。这被称为访问路径(access path)。
访问路径类似遍历链表:从列表头开始,每次查看一条记录,直到找到所需的记录。但在多对多关系的情况中,数条不同的路径可以到达相同的记录。
关系模型
关系模型中一个 关系(表)只是一个 元组(行)的集合。
你可以选中符合任意条件的行,读取表中的任何或所有行。你可以通过指定某些列作为匹配关键字来读取特定行。你可以在任何表中插入一个新的行,而不必担心与其他表的外键关系。
在关系数据库中,查询优化器自动决定查询的哪些部分以哪个顺序执行,以及使用哪些索引。
关系模型的一个关键洞察是:只需构建一次查询优化器,随后使用该数据库的所有应用程序都可以从中受益。如果你没有查询优化器的话,那么为特定查询手动编写访问路径比编写通用优化器更容易——不过从长期看通用解决方案更好。
与文档数据库相比
文档数据库还原为层次模型:在其父记录中存储嵌套记录,而不是在单独的表中。
在表示多对一和多对多的关系时,关系数据库和文档数据库并没有根本的不同:在这两种情况下,相关项目都被一个唯一的标识符引用,这个标识符在关系模型中被称为外键,在文档模型中称为文档引用。
关系型数据库与文档数据库在今日的对比
文档数据模型:架构灵活性,局部性而拥有更好的性能,更接近于应用程序使用的数据结构。
关系模型:更好的支持多对一和多对多的关系
文档模型中的架构灵活性
文档数据库有时称为无模式(schemaless),但这具有误导性。一个更精确的术语是读时模式(schema-on-read)(数据的结构是隐含的,只有在数据被读取时才被解释),相应的是写时模式(schema-on-write)(传统的关系数据库方法中,模式明确,且数据库确保所有的数据都符合其模式)
读时模式类似于编程语言中的动态(运行时)类型检查,而写时模式类似于静态(编译时)类型检查。
在应用程序想要改变其数据格式的情况时:
- 在文档数据库中,只需开始写入具有新字段的新文档,并在应用程序中使用代码来处理读取旧文档的情况。
- 在“静态类型”数据库模式中,通常会执行以下 迁移(migration)操作。
读时模式优势:
- 存在许多不同类型的对象,将每种类型的对象放在自己的表中是不现实的。
- 数据的结构由外部系统决定。你无法控制外部系统且它随时可能变化。
查询的数据局部性
文档通常以单个连续字符串形式进行存储,编码为JSON,XML或其二进制变体(如MongoDB的BSON)。
局部性仅仅适用于同时需要文档绝大部分内容的情况。
更新文档时,通常需要整个重写。只有不改变文档大小的修改才可以容易地原地执行。因此,通常建议保持相对小的文档,并避免增加文档大小的写入。
为了局部性而分组集合相关数据的想法并不局限于文档模型:
- Oracle类似地允许使用一个称为 多表索引集群表(multi-table index cluster tables)的类似特性。
- Bigtable数据模型(用于Cassandra和HBase)中的 列族(column-family)概念与管理局部性的目的类似。
文档和关系数据库的融合
大多数关系数据库系统(MySQL除外)都已支持XML。这包括对XML文档进行本地修改的功能,以及在XML文档中进行索引和查询的功能。
随着时间的推移,关系数据库和文档数据库似乎变得越来越相似,数据模型相互补充,如果一个数据库能够处理类似文档的数据,并能够对其执行关系查询,那么应用程序就可以使用最符合其需求的功能组合。
数据查询语言
SQL是一种 声明式查询语言,而IMS和CODASYL使用 命令式代码来查询数据库。
命令式语言告诉计算机以特定顺序执行某些操作。
在声明式查询语言(如SQL或关系代数)中,你只需指定所需数据的模式 - 结果必须符合哪些条件,以及如何将数据转换(例如,排序,分组和集合) - 但不是如何实现这一目标。
声明式语言往往适合并行执行。
命令代码很难在多个内核和多个机器之间并行化,因为它指定了指令必须以特定顺序执行。
MapReduce查询
MapReduce是一个由Google推广的编程模型,用于在多台机器上批量处理大规模的数据。
MapReduce既不是一个声明式的查询语言,也不是一个完全命令式的查询API,而是处于两者之间:查询的逻辑用代码片断来表示,这些代码片段会被处理框架重复性调用。它基于(也称为)和(也称为或)函数。
map和reduce函数在功能上有所限制:它们必须是纯函数,这意味着它们只使用传递给它们的数据作为输入,它们不能执行额外的数据库查询,也不能有任何副作用。
图数据模型
一个图由两种对象组成:顶点(vertices)(也称为节点(nodes)或实体(entities)),和边(edges)( 也称为关系(relationships)或弧 (arcs))。多种数据可以被建模为一个图形。
图中的所有顶点代表了相同类型的事物。图提供了一种一致的方式,用来在单个数据存储中存储完全不同类型的对象。
属性图
在属性图模型中:
每个顶点(vertex)包括:
- 唯一的标识符
- 一组 出边(outgoing edges)
- 一组 入边(ingoing edges)
- 一组属性(键值对)
每条 边(edge)包括:
- 唯一标识符
- 边的起点/尾部顶点(tail vertex)
- 边的终点/头部顶点(head vertex)
- 描述两个顶点之间关系类型的标签
- 一组属性(键值对)
可以将图存储看作由两个关系表组成:一个存储顶点,另一个存储边。
关于这个模型的一些重要方面是:
- 任何顶点都可以有一条边连接到任何其他顶点。没有模式限制哪种事物可不可以关联。
- 给定任何顶点,可以高效地找到它的入边和出边,从而遍历图,即沿着一系列顶点的路径前后移动。
- 通过对不同类型的关系使用不同的标签,可以在一个图中存储几种不同的信息,同时仍然保持一个清晰的数据模型。
Cypher查询语言
Cypher是属性图的声明式查询语言,为Neo4j图形数据库而发明。
SQL中的图查询
查询可变长度遍历路径的思想可以使用称为递归公用表表达式。
三元组存储和SPARQL
在三元组存储中,所有信息都以非常简单的三部分表示形式存储(主语,谓语,宾语)。例如,三元组 (吉姆, 喜欢 ,香蕉)中,吉姆是主语,喜欢是谓语(动词),香蕉是对象。
三元组的主语相当于图中的一个顶点。而宾语是下面两者之一:
- 原始数据类型中的值,例如字符串或数字。在这种情况下,三元组的谓语和宾语相当于主语顶点上的属性的键和值。例如,(lucy, age, 33)就像属性{“age”:33}的顶点lucy。
- 图中的另一个顶点。在这种情况下,谓语是图中的一条边,主语是其尾部顶点,而宾语是其头部顶点。例如,在(lucy, marriedTo, alain)中主语和宾语lucy和alain都是顶点,并且谓语marriedTo是连接他们的边的标签。
关键词:
-
P1344 [USACO4.4] 追查坏牛奶 Pollutant Control (网络流)
P1344[USACO4 4]追查坏牛奶PollutantControl(网络流)题目链接不会网络流的可以看这个题目描述你第一天接
来源: -
全球今日报丨【新华500】新华500指数(989001)18日下跌0.14%
新华500指数(989001)18日收盘跌0 14%,报4354 71点。指数盘中最高触及4384 16点,最低触及4336 77点,成
来源: 焦点热门:第二章:数据模型与查询语言
P1344 [USACO4.4] 追查坏牛奶 Pollutant Control (网络流)
MySQL 迁移至 SQLite 问题记录 全球通讯
全球今日报丨【新华500】新华500指数(989001)18日下跌0.14%
当前时讯:最高检发新文:NFT法律属性定调哪般?
天天日报丨黄桃+椰果!林家铺子双色水果罐头8罐仅19.9元
天天头条:比亚迪再掀桌子!新款汉DM-i冠军版上市:18.98万起合资还怎么玩
同事都说买高像素就对了 四款热门高像素全画幅相机推荐-天天百事通
微资讯!HTC U23 Pro发布:性价比这么低的手机不多了
世界热点评!日赚4亿还嫌多?移动联通电信现在和10年前日赚一样多:手机资费下降95%等
百度投资卡车整车研发商载合汽车科技_环球快讯
环球热点![MySQL 如何分析性能]
天天速递!Python从零到壹丨图像增强的顶帽运算和底帽运算
知识拷问:工作站和服务器哪个更适合做CST电磁仿真?|每日观察
今日讯!3万多买钻戒如今只值2000元 网友称还是黄金保值:你会买钻戒吗?
60Hz显示器配120帧显卡是浪费?答案意外_世界即时看
最新资讯:包含多家中国造车新势力!马斯克预言一年内必有车厂倒闭
360 AIGC产品定名360智脑、360鸿图
三星量产12nm DDR5内存:功耗骤降23% 全球新视野
追讨欠款的有效期限是多久?欠钱不还电话不接微信不回怎么办?
ChatGPT 插件,组合后更妙了
快报:零跑汽车在杭州成立动力系统公司,注册资本1亿元
地球母亲怎么了?世界气象组织警告:未来五年全球气温将创新高-热头条
全球最新:知名女演员最新大片引争议 网友惊呼:这花有毒!
用这些C#代码混淆器保护你的代码安全_速递
环球微头条丨港元1个月拆息升至近5个月高 报4.57238厘
215英寸口袋巨幕!雷鸟Air Plus发布:首发2299元
世界快消息!男子在路边花5600元买到战国青铜剑:捐赠给博物馆
《王者荣耀》安琪拉/亚瑟520限定皮肤公布 传说品质-每日聚焦
周星驰担任网飞版《美猴王》执行制作:定档8月18日 大圣外形被吐槽|世界速讯
《权力的游戏》演员称曾被网暴到退网:就因为角色不讨喜
5月18日河北中昌化肥硫酸铵价格动态
世界最资讯丨MongoDB + SpringBoot 的基础CRUD、聚合查询
开源即时通讯IM框架MobileIMSDK的Uniapp端开发快速入门
【世界独家】TimescaleDB VS TDengine:写入性能和查询性能是 TDengine 的 1/6、1/28
世界百事通!夜莺官方文档优化第一弹:手把手教你部署和架构讲解,消灭所有部署失败的 case!干!
直播预告 | 员工在公司体验感UP,原因竟然是这个......
美国债务上限谈判出现曙光 日元价格跌破年内新低
全球热点评!小米Civi 3首发天玑8200 Ultra!小米影像大脑更强了:连拍提速235%
报告称:81%员工不认为其工作可以被AI取代-天天热点
7450MB/s!三星990 Pro旗舰SSD价格腰斩:2TB只要1229元
每日时讯!发条朋友圈就能赚钱?支付宝辟谣:“朋友圈出租”是骗局
头条:魔兽国服关了114天 暴雪选择躺平:工作室脚本泛滥 玩家遭殃
国家金融监督管理总局官方微信公众号今日上线 世界讯息
《安富莱嵌入式周报》第312期:开源磁场照相机,仿生神经元PCB,开源无线耳机,手机系统PalmOS移植到各种单片机,开放系统组装协议OSAP 环球聚看点
今日精选:第141篇:微信小程序wx.request接口报错(errno: 600001, errMsg: "request:fail -2:net::ERR_
阿里云微服务引擎 MSE 全新升级,实用能力更普惠,最高降幅 75%
焦点信息:沉默的答案!直播源码禁言技术的实现
spring框架_常见工厂后处理器 最新资讯
预售价13.98-14.98万元 北京现代MUFASA定名沐飒 全球时讯
稻香村旗舰店:稻香私房粽子4只9.9元狂促(4粽4味)|今日快讯
天天百事通!Redmi Book 14轻薄本第三大升级公布:4000元档颜值绝了
一老年代步车当街起火:爷孙两人被严重烧伤
纯白YYDS!魅族20白色款3199元起开始预约:3年质保
女生遭两闺蜜PUA长达8年被骗百万 网友提醒:警惕“贬低式关系”
2023广州李荣浩演唱会需要预约吗?
全球热资讯!HTTP1.0、HTTP1.1、HTTP2.0 协议的特点
周杰伦好像被舞伴碰瓷 周杰伦表情一脸错愕(图)_环球时讯
环球关注:亚瑟首款传说皮肤 《王者荣耀》520皮肤今晚上架:打包250元 你买吗?
白嫖7万2!岚图追光四大选装包限时免费:入门即顶配_天天最资讯
对话不再“一次性”:BingChat新增聊天内容导出功能
一景区沙下埋20厘米三角钉 越野车轮胎被扎:官方通报调查结果 全球通讯
我国今年沙尘爆发原因找到了:蒙古国贡献超40% 冷锋、气旋天气主导
劳模登讲台 思政“活”起来
恶俗婚闹哪里最多_大家都见过哪些恶俗的婚闹-环球热门
全球新动态:Take-Two暗示《GTA6》明年问世
00后裸辞旅游被批 家里有矿吗:本人回应:享受当下 拒绝加班 焦点信息
3万元钻戒如今只值2千 越来越多新人告别智商税 婚礼用十几元道具戒指
热议:特斯拉花钱打广告 能加速马斯克上天吗?
华为手机麒麟新处理器曝光:搞定7nm工艺?
键凯科技05月17日被沪股通减持1.77万股 全球今日讯
Linux学习须牢记这几点|天天速看料
在岸、离岸人民币对美元汇率双双破“7” 专家:人民币不存在大幅贬值空间-世界微速讯
每日热点:把调研成果转化为改进工作实际举措
聚焦:华为5.5G助力 上海移动:2030年实现双万兆小区全覆盖
天天报道:9.4分你看没?腾讯:《漫长的季节》是5年来豆瓣评分最高本土剧
世界气象组织:有记录以来最热年要来了 全球气温推向未知领域 环球速看
热门中概股涨跌不一 腾讯音乐涨超8% 每日信息
两个电风扇放一起 就能使人窒息身亡?夏天这件事真的要注意 即时焦点
中国移动联合华为发布“云手机”:老爷机也能玩大型游戏
我所知道的Handler
百事通!解决xorm逆向工程问题
小事记 | 龙光清盘呈请聆讯押后 华夏幸福下属公司列为失信被执行人_播资讯
上映1天票房破亿!美国大片《速度与激情10》豆瓣7.0分:巨石强森惊喜彩蛋|快看
年轻人第一辆插混SUV来了!深蓝S7将于5月20日开订:20万内最帅最能打?
世界报道:解决《王国之泪》掉帧严重 Switch超频教程来了 稳定30帧运行
华为、小米、OPPO、vivo联手:快充终于要统一了?!
男子暴饮暴食后血液滤出400毫升油脂:甘油三酯严重超标|每日精选
是故学然后知不足断句_是故学然后知不足
整式的乘除计算题及答案_整式的乘除计算题
网友模仿《漫长的季节》秦昊食谱 导致将自己送进医院引发热议
任天堂Switch平台《塞尔达传说:王国之泪》上市三天取得好成绩 销量破千万
索尼将于5月25日举行新一期游戏发布会 市场高达一个小时
特斯拉考虑在印度建立一家汽车制造工厂 未讨论降低电动汽车进口关税
Steam Deck掌机因振动反馈技术惹上麻烦 Valve遭到起诉
《王者荣耀》蝉联2023年4月全球手游畅销榜冠军 新角色姬小满登场
演员许娇晒出泳装照引发网友热议 正面回复称大大方方展示
电影《变形金刚7》发布全新海报 中国内地正式定档6月9日上映
日本最大网络广告代理商推出日语最大级别AI语言模型 可商业使用
童年回忆《知音漫客》将于今年5月至10月之间休刊 曾连载众多知名作品