《数据库设计入门经典》读书笔记——第一章:数据库建模的过去与现在

tuhooo tuhooo     2022-10-17     721

关键词:

《数据库设计入门经典》,现在学习的是这本书,虽然以前就看过类似的书,可能由于之前经验不足,书中说的某些东西只消化了一部分,现在重温一边好懂多了。所以说读第一遍读不懂不要紧,过个一年半载的再来读,还是会读不懂的,哈哈。

技术分享图片

就是这本了。

第一章 数据库建模的过去与现在

数据库模型和数据库之间有什么区别?

数据库将服务于某类型的应用程序。不同类型的数据库模型支持不同类型的应用程序。

联机事务处理(Online Transaction Processing,OLTP)数据库通常是专门的、高并发性的(可共享的)体系结构,它需要快速访问非常少量的数据。

文件系统

层次结构数据库模型

网络数据库模型

关系数据库模型

对象数据库模型:相比于关系数据库模型,对象数据库模型可以解决一些更加难以理解的复杂问题,比如消除了类型和多对多关系替换表的需求。对象数据库模型的另一个优点是管理和迎合非常复杂的应用程序和数据库模型的内在能力。这是因为对象方法学的基本原则:非常复杂的元素可以分解为最基本的部分,允许对这些基本部分进行显式访问和执行这些基本部分。在书中介绍关系型数据库模型时讨论对象数据库模型非常重要,因为许多现代的应用程序都是使用以对象方法学为基础的SDK(例如java)编写的。对象编程应用程序和关系数据之间一个最重要的关键点是:两种结构化类型(对象和关系)之间的映射过程的性能。

在检索多个数据项的时候,对象数据库模型的执行性能比较差。另一个方面,关系型数据最适合检索数据组,但也可以有效地访问唯一的数据项。

 

数据库的类型:

事务的:对数据库进行少量改动(小型事务)

决策支持系统(Decision support system,DSS):数据仓库数据库一般不灵活,因为它们可能极其庞大

混合的:对中小型公司是更为合适的选择,因为仅仅有一个而不是两个数据库,更少的机器,更少的软件许可,更少的人

 

对于数据库模型,必须在构建之前设计它,然后开始用数据填充它,并且将它关联到应用程序。

 

数据库的设计非常重要,因为根据数据库模型设计编写的所有应用程序都是完全与底层数据库的结构相关的。如果必须在后面的阶段中修改数据库模型,则可能必须修改基于该数据库模型构造的所有内容,也可能需要完全重写。

 

具有良好结构的数据库目标——具有良好结构的数据库模型是简单的、易于阅读的、并且易于理解的数据库模型。

数据完整性——完整性是数据库模型中的一组规则,用于确保数据库中的数据不会丢失。

支持有计划的查询以及ad-hoc或无计划的查询——ad-hoc查询越少,当然越好。在某些环境中(例如在非常高并发性的OLTP数据库中)可能必须完全禁止ad-hoc查询,或者转移到更适当的数据仓库平台。

 

还有一些小的要点:

ad-hoc查询可能造成严重的性能问题。需要毫秒响应时间的面向客户的应用程序不会与ad-hoc查询很好的相处。

支持业务目标——高度规范化的表结构不一定直接代表业务结构,非规范化的、数据仓库的、事实-纬度的结构可能更适合于操作性业务。

为任何必须的修改操作提供适当的性能

数据库模型中的每个表应该更适合代表某个题目或主题——不要过多地设计数据库模型,不要创建太多的表。OLTP数据库可能因为更多的细节和更多的表而变得庞大;将数据分到太多的表中,数据仓库可能崩溃。

未来增长必须总是要认真考虑的事项——一些数据库可能以无法估量的速度增长。

 

数据库设计的方法

如何着手设计数据库模型?

需求分析——收集如下相关信息:数据的性质、必需的特性和任何特别的需求,例如期望的输出响应。

概念设计——开始使用图形工具绘制漂亮的图形:实体关系图(ERD)。这个步骤包括创建表、表中字段以及表之间的关系。这个步骤也包括了规范化。

逻辑设计——创建数据库语言命令以生成表定义。

物理设计——调整数据库语言命令以针对表的底层物理属性修改数据库模型。

调整阶段——这个步骤包括了多项,例如适当地建立索引、进一步的规范化、甚至是反规范化、安全特性、以及前面步骤中没有包括的其他内容。

这些单独的步骤是可互换的、可重复的、迭代的、并且是真正能够做任何事情的。

应该坚持的唯一通用事实是:在构建元数据表创建代码之前应该很好地绘制ERD并构建表,并且在实际实现之前应进行可视的设计。

技术分享图片

 

《神经网络设计》读书笔记第一章

包括记忆在内的所有生物神经功能,都存储在神经元及其之间的连接上。神经网络中关于学习的过程是神经元之间建立新的连接或对已有连接进行修改的过程。神经网络的起源:M-P模型  是按照生物神经元的结构和工... 查看详情

《数据库设计入门经典》读书笔记——第三章:工作场所中的数据库建模

规范化用于粒度化和组织在数据库中使用的数据。在第4章中将详细介绍规范化和应用范式的过程。在这个阶段只需要知道规范化是用于将数据划分到单独表中的方法或公式——根据一组规则。不信任将视图用于除了安全性目标... 查看详情

《内核设计与实现》第一章读书笔记

《内核设计与实现》第一章读书笔记第一章:Linux内核简介1.1Unix的历史Unix强大的特点A.简洁,几百个系统调用,明确的设计目的B.文件对待所有东西C.移植性强(C语言)D.进程创建快,使用fork()系统调用。E.进程间通信元语,进程... 查看详情

读书笔记-javascript高级程序设计-第一章简介

 第一章 简介 诞生时间1995最初用途客服端验证第一版标准注意是标准1997年Ecma-262 一个完整的js实现由三部分组成ECMAScriptDOM文档对象模型BOM浏览器对象模型ECMAScript的宿主环境web浏览器Node(服务器js平台)adobeflashjs和as... 查看详情

[hadoop读书笔记]第一章初识hadoop

 P3-P4:目前遇见的问题很简单:硬盘容量不断提升,1TB的已成为主流,然而数据传输速度从1990年的4.4MB/s仅上升到当前约100MB/s读取一个1TB的硬盘数据需要耗时至少2.5个小时。写入数据则会消耗更多时间。解决方法是从多个硬盘... 查看详情

《控制系统设计指南》第一章和第二章读书笔记

《控制系统设计指南》第一章和第二章读书笔记(一)第一章控制理论简介1.2控制系统 1.2.1控制器控制器由控制律与功率变换器协同工作,控制律只生成信息,必须施加能量才能控制被控对象。1.2.2被控机器被控机器由被控... 查看详情

《mysqldba修炼之道》读书笔记(第一章理解mysql)

1、MySQL的基础架构    1.MySQL是一种关系数据库产品,是建立在关系模型基础上的数据库。架构一般可分为应用层、逻辑层、物理层。应用层:负责和客户端、用户进行交互。逻辑层:负责具体的查询处理、事物管... 查看详情

《python深度学习》第一章读书笔记

《Python深度学习》读书笔记第一章什么是深度学习1.1人工智能、机器学习与深度学习人工智能的简洁定义:努力将通常由人类完成的智力任务自动化。机器学习与数理统计密切相关。机器学习(尤其是深度学习)呈现出相对较少的数... 查看详情

docker容器与容器云读书笔记一第一章

第一章:从容器到容器云1.1  云计算平台经典云计算架构包括了IaaS(InfrastructureasaService,基础设施即服务)、PaaS(PlatformasaService,平台即服务)、SaaS(SoftwareasaService,软件即服务)三层服务1.2  容器,新的革命Doc... 查看详情

深入分析javaweb技术内幕读书笔记-第一章

第一章、深入web请求过程B/S架构带来了2个方面的好处。1、客户端使用统一的浏览器。2、服务端基于统一地http。 1.1B/S网络架构概述B/S网络架构从前端到后端都得到了简化,都基于统一地应用层协议HTTP来交互数据,与大多数... 查看详情

读书笔记深入分布式缓存第一章

什么是缓存?  缓存就是存储在计算机上的一个原始数据的复制集,以便于访问 为什么使用缓存  因为从缓存中读取数据非常,能有效的提升用户体验 系统的性能指标  指标一般包括响应时间、延迟时间、吞吐量... 查看详情

《数据仓库工具箱-纬度建模权威指南》---第一章数据仓库商业智能及纬度建模初步读书笔记

简述:该章节主要的讨论点:DW/BI的业务驱动目标发布DW/BI系统的隐喻维度建模和新概念以及涉及的主要词汇,包括事实表于维度表KimballDW/BI架构的组件与原则不同DW/BI架构的比较研究,维度建模在不同架构中所扮演的角色文章主... 查看详情

unityshader入门精要读书笔记序章

本系列的博文是笔者读《UnityShader入门精要》的读书笔记,这本书的章节框架是:第一章:着手准备。第二章:GPU流水线。第三章:Shader基本语法。第四章:Shader数学基础。第五章:利用简单的顶点/片元着色器来实现辅助技巧。... 查看详情

读书笔记《编程珠玑》第一章之位向量&位图

此书的叙述模式是借由一个具体问题来引出的一系列算法,数据结构等等方面的技巧性策略。共分三篇,基础,性能,应用。每篇涵盖数章,章内案例都非常切实棘手,解说也生动有趣。自个呢也是头一次接触编程技巧类的书籍... 查看详情

deeplearning(bengio)第一章读书笔记

一些定义/理解:这一块的东西还是建议看书,书上解释得很清楚,单独提出来可能很难说明白是啥。知识谱图:力求将关于世界的知识用形式化的语言进行硬编码,计算机可以通过这些形式化语言自动地使用逻辑推理规则来理... 查看详情

javascript权威指南读书笔记第一章

第一章JavaScript概述  前端三大技能:    HTML:描述网页内容    CSS:描述网页样式    JavaScript:描述网页行为    特点:动态、弱类型、适合面向对象和函数式编程的风格     语法源自Java     ... 查看详情

算法竞赛入门经典——读书笔记day1

1-1:整数值用%d输出,实数用%f输出。1-2:整数/整数=整数,浮点数/浮点数=浮点数。1-3:scanf中的占位符和变量的数据类型应一一对应,且每个变量前需要加&符号。1-4:在算法竞赛中,输入前不要打印提示信息。输出完毕后应... 查看详情

[读书笔记]effectivejava第一章

需要了解JAVA最近每个版本新增的特性,并善用这些新特性为自己的程序实现高效简洁的代码。其中提到的编程原则包括:模块要尽可能的小代码应该要被重用,而不是被拷贝模块之间的依赖性应该尽可能降到最小错误应该尽早... 查看详情