这里写目录标题
绪论
发展历程

人工管理阶段,可能数据是存在一个本子上,或者什么地方,总之不在计算机内
而关于他们发展的特点,是在逐步优化的
首先关于共享性 (包含:是否可以多方同时使用、共享时的并发控制、数据一致性问题、数据的精简性问题):
不共享-->有,但共享性较差-->共享性高
人工阶段不共享,因为数据都存在"一个本子"里,同一时刻,只能有一个人在操作(查阅或者修改等等)本子的数据,其他想查阅的只能排队等待
文件阶段,虽然数据存在文件里,
1、可以由同一个计算机中的应用程序多方使用
2、但是由于文件没有并发控制,无法做到共享时的同步与互斥
3、且如果进行文件复制,多个副本之间联系弱,很难做到修改数据后的实时更新同步
4、数据冗余也表明其共享性差,多个文件,比如文件1:员工详细信息;文件2:员工工资,两个文件都有"员工的一些基本信息",当修改基本信息时,两个表都会涉及,都要修改
数据库阶段,共享性高,可以多方同时使用、共享时也DBMS也提供并发控制、数据一致性问题也会解决、数据也会尽可能精简(多表联查)
而关于独立性 :是指
数据独立性指的是应用程序和数据的相对独立程度。
换句话说,如果数据逻辑结构或物理存储方式改变 ,程序不需要大幅修改,这就是高数据独立性。
文件系统阶段---- 程序直接依赖文件名、字段顺序、格式 ,缺乏逻辑/物理独立性
数据库阶段---- DBMS 提供逻辑/物理独立性,程序通过 SQL 查询访问数据,无需关心存储细节
最后,就是最直观的,由:无法持久化数据-->可以持久化数据-->可以持久化数据,并有一个系统进行管理
数据模型

三层模式两层映像

1、首先看图片最上方那四个等价说法
2、关于三层模式,其实就是上面数据模型,换了一个说法,外模式其实就是外部模型;逻辑模式其实就逻辑模型;内模式其实就是物理模型
关于两级映像,很重要,他是实现数据库的独立性的关键
一个是外模式和逻辑模式之间的映像,当逻辑模式改变时,对该映像的逻辑模式与逻辑模式对接的方向做出一定的修改,就可以保证映射的正常,从而不必修改外模式和应用程序
逻辑模式和内模式之间的映像同理
他们一个实现了逻辑数据的独立性,一个实现了物理数据的独立性,但是这两个都属于**"数据独立性"**
3、重点看上图右上角的图,他把前面的"数据模型"都串起来了
其中,上图中的"多个应用"其实是一个程序的各个分布式服务,当前如果脑洞大开,也可以让多个应用使用同一个数据库
基本概念


DDL:数据库定义语言
DML:数据库操作语言
DCL:数据库控制语言

关系数据库
简介(基本术语)

1、首先看一般术语 与关系模型术语 的对应关系
其中,记录类型:**记录类型(Record Type)**是指 由多个不同类型的数据字段组成的复合数据类型,也叫 结构化数据类型。


2、元组的个数叫做**"基数";属性的个数叫做"元数"**,不要混淆
3、属性的取指范围叫做**"域"**
每个属性对应一个域,不同的属性可以对应同一个域
比如,籍贯的域:全国各地的地名;而工作地点的域:也可以是全国各地的地名

1、关系模式:上面已经说了,就是一个表所有字段的定义,类似于定义一个结构体类型
2、而对一个关系模式进行实例化,就是一条"元组";许多个元组的集合就是"关系",也就是一张表 中记录的集合
3、关系模型:若干个关系模式的集合

1、超建:能唯一标识一个元组(或者说一条记录)的属性 或者属性集 ,如(T#,TNAME),教师工号与教师名字的集合
其实就是主键+其他,或者主键自己
2、候选键:不含多余属性的超建,即:主键自己
3、关于主键:即用户自己选择某个属性作为候选键
4、外键,如上图表述,例如:COURSE表中的T#,是TEACHER表的主键,那么T#就被叫做COURSE表的外键

即,对一个表(对应到关系模式,称为"关系")的规范·
关系模型
组成

数据结构
就是"关系",或者称为"表"
数据操纵
数据完整性规则

分为三部分:实体完整性规则、参照完整性规则、用户定义的完整性规则
1、实体完整性规则:主键非空且唯一
2、参照完整性规则:外键可以为空,或者必须是某个记录的真实的主键,即不可用引用不存在的实体
3、用户定义的完整性规则:由用户定义
关系代数
五个基本操作
并

1、前提:只有具有**相同的关系模式(即相同的表字段定义)的关系(即表)**才可以进行"并"操作
2、将记录"并"操作,重复的保留一份即可
差

1、前提:只有具有**相同的关系模式(即相同的表字段定义)的关系(即表)**才可以进行"差"操作
R-S,看可以减去R中哪条记录,只能减去S中有的,并且R中也有的
笛卡尔积

两个表进行全排列组合
投影(π)

挑选若干属性组成新的关系,去掉重复行,组成新的表
选择

四个组合操作
交

1、前提:只有具有**相同的关系模式(即相同的表字段定义)的关系(即表)**才可以进行"交"操作
连接

1、连接:从笛卡尔积的结果中,选取满足条件的元组
如,RXS 2=1,就是笛卡尔积中,左表的第二列 等于 右表的第一列,满足这样的元组组成新表
2、或者直观的,先进行笛卡尔积,然后不再区分左右表,而是在最新的表中,j变为第一个表的列数+j,其实与第一个的意思是一样的
当符号是等号的话,就称为等值连接

除法

如,R除以COURSE1,首先在R中找到满足COURSE1的记录,然后去掉这些记录的字段,组成新表

如果所除的表有多条记录,则要同时满足这些记录的同一个人才能被选中
关系数据库语言----SQL
简介

关系模式,在SQL中对应"基本表"
子模式(也称 外模式),在SQL中对应"视图"
存储模式,SQL用的是"存储文件"
SQL数据类型

1、
int 四字节
smallint 二字节
float(n),n表示总精度,即这个数的总共几个位
dec(p,d),总的位为p个,其中小数占d个
float 和 dec 的区别:
float,存储时是二进制浮点数,可能出现微小误差:
dec,存储时是十进制精确存储
FLOAT → 浮动 → 近似 → 科学计算
DECIMAL → 精确小数 → 财务场景