前言
按照经典定义:程序=数据结构+算法.编程实际上就关注"数据"和"算法"两个部分.
算法部分是对机器指令的层层封装,生成我们想要的逻辑,满足需求,当使用者给出输入,.程序反馈
一切都是数据---我们可以用这个朴素的观点来看待.数据部分在机器层面是一个地址(可由他延伸出更多的地址),"数据=地址".在高级语言里,数据用数据类型和数据结构来表达---数据始终是某个数据类型的对象.
但数据类型对象并不是数据的唯一表达方式.人们找到了一种表达方式---数据库,他是独立的,有自己的表达和存储方式,甚至于硬件上.数据库是和数据密切相关且重要的知识.
引入
笔者找了不少数据库方面的教材,对比之下黑皮书---<数据库系统概念>一如既往得难读,所以选择了"<数据库原理及应用>(MySQL版)".以下称为"本书".
=============================内容分割线↓===================================
学习要注意"边学边落地",学习的同时要有一定量的练习巩固才能达到较好的效果.光是学习概念在头脑里留下印象,对于很聪明的人来说可能没有问题但并不适合于大部分人.
这也是选择学习教材的标准----跟得上理解不要太难,和最好有一定量的练习.
=============================内容分割线↑===================================
1.1数据库系统概述
1.1.1数据库系统的应用
信息资源是企业和公司的重要财富和资源(本书原话)
在本书P3列举出各行各业的代表性应用,数据库可以看作一个"表"的集合.表是二维的.
本书P4第二段提到了数据库访问提至Web界面.在Web端提供了各种数据访问的服务.---这一点如果对编译有一些基础也容易理解:Web端调用了数据库的接口,可以实现.
1.1.2数据库系统的概念
本书原话:一个数据库系统就是一个相关的数据集和一个管理这个数据集的程序集以及其他相关软件与硬件等组成的集合体.
---前面提到数据库,这里是数据库系统.包括了数据库,管理数据库的程序集,相关软件和硬件.重点是数据库是有专门的硬件去支撑的,这和数据文件有一些区别.程序集可以理解成操作数据库的相关接口,也就是通常使用的SQL结构语言.还提到了相关软件,可以理解成封装后的程序集,便于某种程序语言操作.
1.数据
本书原话:数据(Data)是数据库存储的基本对象,是描述现实世界中各种具体事物或抽象概念的、可存储并具有明确意义的符号记录.
---数据库里的数据可以看作表,如果放在文件里的数据表达,表示一个数据类的对象.类似以下定义
/*伪代码,数据定义---C++*/
struct Data{
ElementType1 et1;
ElementType2 et2;
....
}
本书P4黑字数据里有个例子,对某个学生进行了描述.这里的"学生表"就是"数据"
2.数据库
本书原话:数据库(DataBase,DB)就是相互关联的数据集合.
---推导:数据=表,数据库=表的集合---笔者的简单理解
数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性.
---本书P4倒数第二段举了个例子,学生表和课程表,课程成绩表,然后以此展开了对数据库的讨论:
1>数据库中数据冗余度不可避免,但应有最小的冗余度
2>前台应用程序和后台数据库开发应相互独立.
3>数据库需要易扩展来应对新的业务逻辑.
这几点就这样看是比较抽象的,但试一试自己写表出来也不难理解.
3.数据库管理系统
本书原话:数据库管理系统(DataBase Management System,DBMS)是数据库系统的核心部分,是位于用户与操作系统(OS)之间的一层数据库管理软件,它为用户或应用程序提供访问数据库的方法,包括数据库的定义、建立、查询、更新及各种数据控制等.
---数据库管理系统是由操作系统支持的一组接口,它大大降低了数据库的使用门槛.简单地理解,包括建立表,增删改查数据库内容,用户访问权限的授予和撤销等内容
具体由DDL语句,DML语句和DCL语句---统称为SQL语句完成操作.
4.数据库系统
本书原话:数据库系统(DataBase System,DBS)是指在计算机系统中引入数据库后的系统.
---见本书P6图1-1和1-2.这里的数据库DB被看作硬件,在上一篇帖子中编程思想:程序自身的模型/函数模型&硬件标准如何实现-优快云博客笔者做了一些推导:硬件驱动建立硬件和操作系统的联系.硬件标准(程序集)调用操作系统给出的接口控制硬件.对于数据库来讲,同样是安装驱动到操作系统中,并提供了工具---也就是SQL语句来控制硬件.
这部分内容并不需要写应用的程序员关心:他只需要看数据库的驱动是否安装完成,确认SQL语句能正常使用.
5.数据库应用系统
本书原话:数据库应用系统(DataBase Application System,DBAS)主要是指实现业务逻辑的应用程序.该系统必须为用户提供一个友好的、人性化的操作数据的图形用户界面(GUI),通过数据库语言或相应的数据访问接口存取数据库中的数据.
---简单理解:数据库系统+界面=数据库应用系统---DBS+GUI=DBAS
深入一点,应用系统需要实现业务逻辑,所以DBS+GUI+业务逻辑=DBAS
在数据库系统的基础上,做一个界面,并根据需求封装业务逻辑,组成程序的一部分.例如Qt有数据库模块
小结
数据库的几个基本概念的理解

被折叠的 条评论
为什么被折叠?



