数据存储发展----------------------------------------------------
DB 数据库 DBMS 数据库管理系统
文件存储缺点
数据冗余 #/etc/passwd login
大数据访问困难
数据孤立 #表格式 属性格式
完整性问题 #原子性
并发访问问题 #文件锁定
安全问题
文件存储
表示层
文件
逻辑层
文件系统 存储引擎
物理层
元数据
数据;数据块
关系型数据库
表示层
表
逻辑层
存储引擎 : mysql 插件式存储引擎
物理层
数据文件
DBMS
层次模型
网状模型
关系模型
关系模型 RDBMS
关系模型
实体-关系结构化模型 #二维表
对象关系结构化模型:基于对象的数据模型 #表中数据存储图片的路径
半结构化数据模型:XML(扩展标记语言) #
数据库可以处理这四类关系模型
关系:代数运算
能够按照某种关系进行关系运算的模型叫做关系模型
交集:
并集:
差集:
全集:
补集:
关系运算:
投影:只输出指定属性
选择:只输出符合条件的行
自然连接:具有相同名字的属性上所有取值相同的行;
笛卡尔积:
(a+b)*(c+d)=ac+ad+bc+bd
并:集合运算
数据存储和查询
存储管理器
权限及完整性管理器
事务管理器
文件管理器
缓冲区管理器
查询管理器
DML解释器 data manipulation language
DDL解释器 data definition language
查询执行引擎 Data Control Language
SQL:Structure Query Language 结构化查询语句--------------------------
第一款关系数据库:System R: SQL
Ingres, Oracle, Sybase
ANSI: ansi-sql; 标准委员会
sequel-->SQL标准不同 版本
SQL-86
SQL-89
SQL-92
SQL-99
SQL-03
SQL-08
SQL查询语句:
DML:数据操作语言
INSERT
DELETE
SELECT
UPDATE
DDL:数据定义语言
CREATE
DROP
ALTER
DCL: 数据控制语言
GRANT
REVOKE 定义访问权限
完整性定义语言:DDL的一部分功能
视图定义:
事务控制:定义 启动 回滚
嵌入式SQL和动态SQL:
使用程序设计语言如何跟RDBMS交互:
嵌入式SQL:与动态SQL类似,但其语言必须程序编译时完全确定下来;
ODBC
动态SQL:程序设计语言使用函数(mysql_connect())或者方法与RDBMS服务器建立连接,并进行交互;通过建立连接向SQL服务器发送查询语句,并将结果保存至变量中而后进行处理;
JDBC 组成 : 连接管理器 解析器 缓存 优化器
RDB对象:
库、表、索引、视图、用户、存储过程、存储函数、触发器、事件调度器
constraint:约束
域约束:数据类型约束 #数据类型
外键约束:引用完整性约束 #外键
主键约束:某字段能惟一标识此字段所属的实体,并且不允许为空;一张表中只能有一个主键
惟一性约束:每一行的某字段都不允许出现相同值,可以为空;一张表中可以有多个
检查性约束: age: int
表管理器:负责创建、读取或修改表定义文件;维护表描述符高速缓存;管理表锁;
表结构定义文件
表修改模块:表创建、删除、重命名、移除、更新或插入之类的操作;
表维护模块:检查、修改、备份、恢复、优化(碎片整理)及解析;
行:定长,变长
文件中记录组织:
堆文件组织:一条记录可以放在文件中的任何地方;
顺序文件组织:根据“搜索码”值顺序存放;
散列文件组织:散列容器 桶 散列运算hash
表结构定义文件、
表数据文件
表空间:table space
数据字典:Data Dictionary
关系的元数据:
关系的名字:表
字段名字
字段的类型和长度
视图
约束
用户名字,授权,密码
缓冲区管理器:
缓存置换策略
被钉住的块
发散思维能力
转载于:https://blog.51cto.com/pencild/1409163