SQL -结构化查询语言的发展史

DDL:数据操作语言
INSERT
DELETE
SELECT
UPDATE
DML:数据定义语言
CREATE
DROP
ALTER
DCL:数据控制语言
GRANT
REVOKE

RDB对象:
库、表、索引、视图、用户、存储过程、存储函数、触发器、事件调度器。

    约束:
    域约束:数据类型约束
    外键约束:引用完整性约束
    主键约束:某字段能唯一标识此字段所属的实体,并且不允许为空一张表中可以有多个
    检查性约束:age:int

关系型数据库:
表示层:表
逻辑层:存储引擎
物理层:数据文件

数据存储和查询
存储管理器:
        权限机完整性管理
        事务管理器
        文件管理器
        缓冲区管理器
查询管理器:
                DML解释器
                DDL解释器
                DCL解释器
查询执行引擎

mysql是单进程多线程的系统;不会给多个进程启动多个进程!

线程复用

mysql不支持对称多处理器(smp),意思是不能在一个sql处理分摊到多个cpu上处理,因此在处理速度上面就慢。

关系运算:
投影:只输出指定的字段
选择:只输出符合条件的行
自然链接:具有相同名字的所有属性值上取值相同的行
笛卡尔积:

SQL查询语句:
sequel ---> SQL
SQL-86
SQL-89
SLQ-92
SQL-99
SQL-08

SQL语言的组成部分:
DDL:
DML:
完整性定义语言:DDL的一部分功能
视图定义:
事务控制:
嵌入式SQL和动态SQL:
授权:DCL

使用程序设计语言如何RDBMS交互:
         嵌入式SQL:与动态SQL类似,但其语言必须程序编译时完全确定下来;
         ODBC;针对的程序为 C
         动态SQL:程序设计语言使用函数(mysql_conect())或者方法与RDBMS服务器建立连接,并进行交互;通过建立连接向SQL服务器发送查询语句,并将结果保存至变量中而后进行处理。
        JDBC;针对的程序为 JAVA

MYSQL支持插件式存储引擎
mysql 5.5.8的之前的存储引擎是MyISAM,不支持事务。特别适合查询比较多但是修改比较少的场景。
mysql 5.5.8版本之后的存储引擎是InnoDB,   

表管理器:负责创建、读取或修改表定义文件;维护表描述高速缓存;管理表锁。
表结构定义文件。
表修改模块:表创建、删除、重命名、移除、更新或插入之类的操作
表维护模块:;检查、修改、备份、恢复、优化(碎片整理)及解析;

文件中记录组织:
堆文件组织:一条记录可以放在文件中的任何地方。
顺序文件组织:根据”搜索码“值顺序存放;
散列文件组织:

表结构定义文件;表数据文件
表空间:table space

猜你喜欢

转载自blog.51cto.com/12476193/2128384