• 数据库实践---part one


      以前我学的数据库(这里谈的数据库都是指关系型数据库)总以为就是一些二维表和各种关系的集合,今天开始我修了一门课,我觉得老师讲的特别好,他不在于把我们以前学习的数据库关于技术的知识重复,而在于他在一个更高的角度去看数据库,就是哲学的思想,让我受益匪浅,所以以后我上一节课就要赶紧把这节课的一些想法和收获写下来,以后可以回顾。

      首先,数据库这个东西要从哲学上的方法论和认识论来看它,你要问自己两个问题:第一,数据库里放的是什么?放的当然是数据,第二,数据库里放的是谁的数据?老师说是你想描述的客观世界,例如你想描述银行,那这个客观世界就是银行。

      然后,我们从两个入口来看数据库,第一个入口是哲学的入口:客观世界——>“事”或“物”——> 概念(包含两层意义:内涵(性质、特性、属性,就是用来区别于其他概念的东西)和外延(拥有上述特征的个体的集合)) ——>二维表的集合(列:描述内涵;行:描述外延;通过PK来区别个体之间的属性)。第二个入口是技术上的入口:D=D1*D2*...*Dn (R属于D).从客观世界到数据库要经历以下几个步骤:需求分析、概念设计、逻辑设计、物理设计等。

      最后,讲一下软件的设计原则,软件一定要软,我觉得这是很重要的,如果设计的软件要在一定的硬件上去运行,那性能肯定是不好的。软件系统结构分为C/S和B/S。C是表示逻辑,S是事务逻辑,存储过程、触发器属于事务逻辑。

      数据库机构的判定:有三个标准,第一是什么是差的设计,标准是什么;第二是什么是好的设计,标准又是什么?第三是如何做好设计?  差的设计的判定是有四个标准,第一数据冗余;第二是插入异常;第三是删除异常;第四是修改异常;数据冗余的概念是逻辑上一个概念,物理上却放了很多地方;

      好的设计就以范式为标准去看。

      如何做好设计:老师说一个数据库设计的好不好,拼的是结构。

  • 相关阅读:
    【CSS】带箭头的二级菜单页面
    golang写入Excel并设置样式
    golang之xorm简单使用
    golang全局变量的一个坑,main中无法获取init初始化的变量
    golang influxdb2读写封装
    将本地导入的jar包添加到maven中
    电脑天才郭盛华,如今怎样了?
    黑客在云环境中寻找攻击路径
    联想 UEFI 固件漏洞影响超100万台笔记本电脑
    IDEA的热部署
  • 原文地址:https://www.cnblogs.com/Gabby/p/5049534.html
Copyright © 2020-2023  润新知