## 博主(大学生)太懒,纯记录学习经验,监督自己
## 笔记中一些不准确乃至错误的见解或概论,欢迎大家纠错
## 在写作过程中也想增加自己写博客的经验,欢迎大家提出宝贵的意见
## 代码能力有限,请大家多多指教
## 目前在看mooc上的一些课程(如有侵权,私删),不知道为什么活到了一个看视频才能学懂知识的年龄,想通过看书查阅资料学习东西,没有找到合适的资料,头疼
## 也罢,容老夫慢慢探索
数据库系统概论
数据库系统基本概论
怎么理解数据库的发展呢?对于我而言学习计科这个专业最早接触的是程序设计,比如说我们实现一个十位数的求和的程序:
在上述程序中我们手动输入几组数字来简单的测试程序,这里我们得到一种数据管理方式人工管理,那么当在程序运行成功后,面对大量批处理的数据我们该如何操作,一个个输入吗?显然并不是
将数据的存在形式改为文件存储!那么在输入数据我们就需要一种可以读入文件的方法。在这里我们似乎看到了文件系统管理的数据管理方式。
看到这里,似乎又有一个问题困扰着我们,在程序设定过程中,我们规定了数据的逻辑结构与物理结构,某些数据呈树状结构,部分数据呈索引存储结构。当数据中存在逻辑结构、物理结构都有差异,我们如何管理数据?这里我们引出了数据库系统管理。
而那些所谓数据管理三种方式的特点不就一眼看出吗?哪些没有共享、没有数据独立,哪些有,便是显然的。
数据库的概念
要说概念或许这个东西更加吸引你(英文缩写其实也很好记,比如说DBMS:DataBase Mangement System,是不是清晰多了,hhh)
数据库是一种长期存储在计算机内,有组织的、统一管理的、共享的数据的集合
(去掉定语,我们明白这就是一种数据的集合)
数据库系统的体系结构
外模式,内模式呱嗒系听不懂
ANSI/SPARC体系结构三级结构
三级模式之间的一个对应关系
(懒得做了,cv过来了)
数据独立性
给出的定义是指:用户在磁盘中存储的数据与应用程序是相互独立的,当数据的物理结构、逻辑结构发生改变时,应用程序不发生改变。
也就是说数据的独立性包括了两个方面,物理结构以及逻辑结构。
首先理解两个概念,内模式:数据库最底层的物理模式或者存储模式,外模式;用户视图界面
物理独立性是指修改内模式而无需修改概念模式(整体逻辑结构和数据之间的关系)能力,应用程序与物理存储之间的独立性
逻辑独立性是指修改概念模式而无需修改外模式或应用程序的能力(关系模式改变时,用户程序不变),好复杂,也就是说应用程序通过抽象的方法访问数据库,而不需要理解底层的物理实现。例如将一个表进行更换存储引擎之后,在通过修改DDL修改数据库时只需要修改DDL(数据定义语言)而DML(数据操作语言)不变。
数据模型
数据模型概念
举个例子;在建立数据库过程中,先构建一个实体联系模型:
转换为基于关系数据模型的数据库模式:
肿瘤类型(乳腺癌、宫颈癌、软巢癌...)
患者(身份信息、医疗数据、家族病史、发病缘由...)
患者数据(身份信息、医疗数据、病状...)
再由基本的DBMS,支持的sql语言进行数据库创建:
CREAT TABLE 肿瘤类型(
名称 CHAR (10),
## 该器官各重要细胞患病后的数据特征--在数据检测过程中有一个属于我们的指标,在后期检测中更加方便
)
CREAT TABLE 个人信息(
身份证 CHAR(10) [约束]
姓名 CHAR (10)
性别 CHAR (2)
出生日期 CHAR (10)
联系方式 CHAR (10)
家庭住址 CHAR (20)
## 各项指标(考虑到有检测后没有患病的个人,并且数据要进行保存,这里的各项指标也需要自己设定)
)
CREAT TABLE 患者数据存储(
## 基本的个人信息
## 检测后患者的患病部位的数据
## 可能设计图片存储
)
最后存储在磁盘中。
直到学习在这里,对于数据库我们也有了一个基本的认识:在建立数据库我们要明白自己的需求,通过数据库的特性明白数据之间的关系,最后对整个模型的完善,每一步都是至关重要的。