数据模型

好系统的标准

  • 功能通用、完善

    • 满足尽量多应用的需求
  • 实现细节对应用透明
    • 应用开发独立于系统实现

数据模型定义

  • 定义:数据的逻辑组织方式(数据的基本结构和结构的语义)
    a. 文档模型(Mongodb 2000s)
    b. 层次模型(IBM IMS 1960s)
    c. 网状模型(GE IDS 1960s)
    d. 关系模型(SQL DB 1970s~80s)

    注:数据模型—决定—> 数据的访问方式 / DBMS的访问接口——> 系统的功能性、性能、易用性

数据库模式(Schema)

  • 对数据库中数据的结构性描述

    • 参照schema才能正确书写查询
    • 一种数据库元数据(Metadata),描述数据长什么样子(相当于一个模板)
      e.g.
      Schema
      {
      Name:string,
      Manufacturer:string
      Catalog_numver:num
      }
  • Data Model相当于Schema的Metadata,即Meta Metadata
    注:Mongodb没有一个特定的schema的过程,只是程序猿在存数据的时候脑子里有这个schema

数据模型:JSON/BSON

如何衡量数据模型的能力?

  • 表达能力:

    • 数据本身能够表达什么信息?

      • 计算机能够理解的信息
    • 查询能够满足哪些信息需求?
      注: 表达能力越强,查询时返回的值越快越准确
  • 表达能力的两个维度

    • 范围:能够满足哪些信息需求

      • 上限为Turing Completeness(程序设计语言能做到的范围)(数据库的查询做不到Turing Completeness)
      • 精简程度:用户描述需求是是否方便
        • Prolog比Java表达更强更精炼,因为Prolog逻辑性强
          注:数据库系统将查询的语言转换成数据库查找的语言

数据模型的论战:

  • Charles Bachman 网状模型 Navigational Database Network Model
    Edgar F.Codd 关系模型 Relational Database Relation Model
  • 70年代末更倾向于关系数据库
网状数据库(Navigational DB)
  • 查询通过指针访问
Codd坚持的看法
  • DBMS应该和应用程序尽可能保持相互独立(模块化)

    • 数据的存放顺序与程序无关
    • 数据的使用与程序无关
    • 数据的访问方式与程序无关(网状和层次模型违背了这点)

如何避免依赖性

  • 提升数据模型的表达能力

  • 声明是程序设计语言(而不是过程式语言)

    • Prolog 、 SQL 、 First Order Logic(一阶逻辑语言)
    • 只把需求说出来,不说具体怎么做。

    注:关系型数据库就着重声明式语言,Mongodb是声明式语言,但是拿到数据之后,还是得通过java等过程式语言进行处理

问答:

  • 声明式程序一定比过程式的更好吗?

    • 并不是
  • 表达能力越高越好吗?
    • 不是,度的把握,如单反照相机和傻瓜相机

数据管理系统之数据模型相关推荐

  1. 数据治理之数据模型管控方案

    本文根据[2016 第七届中国数据库技术大会](微信搜索DTCC2014,关注中国数据库技术大会公众号)现场演讲嘉宾郑保卫老师分享内容整理而成.录音整理及文字编辑IT168@田晓旭@老鱼. 嘉宾介绍: ...

  2. 阿里巴巴大数据之路——数据模型篇

    阿里巴巴大数据之路--数据模型篇 一.概述 1.什么是数据模型? 数据模型就是数据的组织和存储方法.主要关注的是从业务.数据存取和使用角度合理存储数据. 2.典型数据仓库建模方法论 ER模型 纬度模型 ...

  3. 《大数据》第1期“研究”——大数据管理系统评测基准的挑战与研究进展(下)...

    4 BSMA:面向社交媒体数据分析型查询的基准评测 4.1 BSMA框架 BSMA是一个社交媒体数据分析型查询评测基准[8,9],它包含了社交媒体数据的形式化描述规范和一个真实的社交媒体数据集,定义了 ...

  4. 《大数据》第1期“研究”——大数据管理系统评测基准的 挑战与研究进展(上)...

    大数据管理系统评测基准的挑战与研究进展 钱卫宁,夏 帆,周敏奇,金澈清,周傲英 华东师范大学数据科学与工程研究院 上海 200062 摘要:数据库评测基准在数据库发展历史中的作用不可替代,而大数据环境 ...

  5. vue数据管理系统项目说明文档

    git 地址 vue数据管理系统项目地址 说明文档 1. 题目 实现一张数据管理表格,包含以下字段,实现其增删改查和查看.id 头像 姓名 性别 手机号 邮箱 个人简介 密码 2. 角色分配 管理员 ...

  6. Qt学习之路_12(简易数据管理系统)

    原文地址为: Qt学习之路_12(简易数据管理系统) 前言 最近从大陆来到台湾,之间杂事很多,挤不出时间来更新博客- 这次主要是通过做一个简易的数据库管理系统,来学习在Qt中对数据库,xml,界面的各 ...

  7. (附源码)ssm无人机数据管理系统 毕业设计 111022

    ssm无人机数据管理系统 摘 要 随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理.在现实运用中,应用软件的工作规则和开发步骤,采 ...

  8. 计算机毕业设计SSMJava远程健康数据管理系统【附源码数据库】

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  9. 小型电子商务网站数据管理系统

    #小型电子商务网站数据管理系统# 假设该网站主要经营各类图书,通过前台程序实现简单的管理功能. 图书(编号.名称.类别.页数.单价.数量.出版社.版次.第一作者.出版年月.内容简介) 类别(类别.名称 ...

最新文章

  1. native字体尺寸自适应 react_ReactNative字体大小不随系统字体大小变化而变化
  2. Win7系统下装Linux操作系统详细流程(图文)
  3. 飞桨框架2.0正式版重磅发布,一次端到端的“基础设施”革新
  4. 彻底扔掉PostMan了,这套国产替代方案是真的香…
  5. 堆积密度怎么做_长尾关键词怎么优化?这样布局关键词排名效率高
  6. 从零开始学Pytorch(十一)之ModernRNN
  7. 解释java程序所使用的命令是,Java程序的执行原理以及解释说明
  8. XSS攻击及解决方案
  9. web报表工具FineReport使用中遇到的常见报错及解决办法(三)
  10. BZOJ 1006: [HNOI2008]神奇的国度( MCS )
  11. 为什么使用 adapter模式
  12. 软件著作权代码格式 java_软件著作权源代码文档格式要求
  13. 西门子STEP7用软件来启动PLC的快捷方法
  14. 由 12306.cn 谈谈高并发+高负载网站性能技术
  15. c语言做快速傅里叶变换和快速逆傅里叶变换
  16. mybatis json转对象Object
  17. Markdown 语法大全,常用功能集锦,有这一篇就够了
  18. LA@二次型和标准化
  19. 计算机专业二本可以考cfa,计算机专业的CFA考生的备考经验分享
  20. proto3字段值为空时被忽略问题

热门文章

  1. Workbook对象的方法总结(二)
  2. FFmpeg源代码简单分析-编码-av_write_trailer()
  3. 详解数据血缘的「整体设计」与「评价方案」
  4. python 语音交互_Python调用WIN10语音交互+识别+控制+自定义对话
  5. pc端支付宝支付和微信支付(vue)
  6. winform一个小游戏,赛马
  7. RBAC权限模型学习总结
  8. plc实验报告流程图_plc实训总结范文
  9. Vue如何使用iconfont(阿里图标库)
  10. 学计算机大学累不累_大学学计算机专业的体验重点在最后!