高级数据库技术 金培权 jpq@ustc.edu.cn
Application-Oriented 课程目的 深入掌握DBMS的原理和技术 了解DBMS实现技术 数据库原理/ 数据库系统及应用 本科课程 硕士课程 数据库系统实现技术 Application-Oriented System-Oriented
课程安排 讲课+实验 教材 参考文献 40学时讲授,20学时实验 Database System Implementation(1th) ,H. Garcia-Molina, J.D. Ullman, J. Widom. 机械工业出版社 参考文献 Database Management Systems(3rd),Raghu Ramakrishnan et al.et al, 清华大学出版社 Database System Concepts(3rd),Abraham Silberschatz et al,机械工业出版社 A First Course to Database System, J. Ullman et al., 机械工业出版社
一、数据库系统的基本概念 数据库(Database,DB) 数据库管理系统(DBMS) 数据库系统(DBS) 一个统一管理的持久存储的数据集合,这些数据应用于某个应用系统中 数据库管理系统(DBMS) 计算机程序的集合,用于创建和管理数据库 数据库系统(DBS) 采用了数据库技术的计算机系统
第2章 关系数据库技术回顾
主要内容 关系数据模型 (Relational Data Model) SQL 关系数据库体系结构 (Database Architecture)
一、关系数据模型 使用数据库技术,首先必须把现实世界中的事物表示为计算机能够处理的数据 模型是对现实世界特征的抽象 数据模型是对现实世界数据特征的抽象 数据模型的定义 描述现实世界实体、实体间联系以及数据语义和一致性约束的模型
1、数据模型的分类 根据模型应用的不同目的 概念数据模型(概念模型) 结构数据模型(数据模型) 按用户的观点对数据进行建模,强调语义表达功能 独立于计算机系统和DBMS 主要用于数据库的概念设计 结构数据模型(数据模型) 按计算机系统的观点对数据进行建模,直接面向数据库的逻辑结构 与计算机系统和DBMS相关(DBMS支持某种数据模型) 有严格的形式化定义,以便于在计算机系统中实现
如关系模型、层次模型、网状模型、面向对象模型 2、数据抽象的层次 现实世界 认识抽象 如E-R模型 信息世界 概念模型 如关系模型、层次模型、网状模型、面向对象模型 转换 机器世界 数据模型
3、数据模型的例子 现实世界 客户存款 信息世界 概念模型(E-R模型) M N
3、数据模型的例子 机器世界 数据模型 (关系模型)
4、数据模型的要素 数据结构 数据操作 数据的完整性约束 现实世界实体及实体间联系的表示和实现 数据检索和更新的实现 数据及数据间联系应具有的制约和依赖规则
5、关系模型 关系模型 用二维表格结构表示实体集,外键表示实体间联系,三类完整性表示数据约束的数据模型 关系模型术语 关系数据库术语 属性 22 王五 003 21 李四 002 20 张三 001 年龄 姓名 学号 关系模型术语 属性 关系模式 元组1 元组2 关系 元组3 属性值 关系数据库术语 字段 记录类型 记录1 记录2 文件 记录3 字段值
6、关系、关系模式与关系数据库 关系模式(Relation Schema) 关系:关系模式的实例,即二维表(元组的集合) 关系的逻辑结构和特征的描述 对应于二维表格的表头 通常由属性集和各属性域表示,不关心域时可省略域 Student(Name, Age, Class) 关系:关系模式的实例,即二维表(元组的集合) 关系数据库模式(Relational Database Schema):关系模式的集合 关系数据库:关系数据库模式的实例,即关系的集合
7、关系模型的形式化定义 数据结构 数据操作 数据的完整性约束 关系:数据库中全部数据及数据间联系都以关系来表示 关系运算 关系代数 关系演算(元组关系演算、域关系演算) 数据的完整性约束 关系模型的三类完整性规则
8、关系代数(Relational Algebra) 以关系为运算对象的一组运算集合 运算结果仍是关系 以集合操作为基本运算 传统集合操作(4个:并、交、差、笛卡儿积) 原始的关系代数 专门的关系操作(4个:选择、投影、连接、除) 关系代数 附加的关系代数(分组/聚集、排序、半连接、半差、赋值……)
二、SQL 数据库语言 有三类数据库语言 数据库语言是用户使用数据库的接口,DBMS支持用户通过数据库语言进行数据存取与管理 数据定义语言(Data Definition Language, DDL) 数据操纵语言(Data Manipulation Language, DML) 数据控制语言 (Data Control Language, DCL)
1、DDL DBMS负责对DDL进行编译执行 编译的结果是生成一系列的元数据,存储到数据字典或系统目录(System Catalog)中 用来定义和管理数据库以及数据库中的各种对象的语句 DBMS负责对DDL进行编译执行 编译的结果是生成一系列的元数据,存储到数据字典或系统目录(System Catalog)中 SQL语言的DDL举例 Create Table student ( sno char(10), name char(20), age integer );
2、DML和DCL DML 用来查询、添加、修改和删除数据库中数据的语句 DCL 用来设置或者更改数据库用户或角色权限的语句
3、SQL数据库 SQL数据库:支持SQL的关系数据库 (基本)表——关系 记录——元组 字段(列)——属性 字段值——属性值 字段类型(列类型)——域 码——键 主码——主键 外码——外键
4、SQL的基本组成 Create Table/Alter Table/Drop Table:定义基本表 DDL Create View/Drop View:视图操作 Create Index/Drop Index:索引操作 Insert Delete Select Update DML 记录操作 SQL Grant Revoke Deny DCL 权限管理 嵌入式SQL的使用规定
三、关系数据库体系结构 数据库体系结构 关系数据库体系结构 SQL数据库体系结构
1、数据库体系结构 通过框架结构描述一般数据库的概念和结构 ANSI/SPARC体系结构——三级模式结构+两级映象
2、ANSI/SPARC数据库体系结构 概念模式 外模式 内模式 数据库中全体数据的逻辑结构 外模式 单个用户所看到的局部数据的逻辑结构 内模式 数据物理结构和存储方式的描述 二级映象实现三级模式结构间的联系和转换,使用户可以逻辑地处理数据,不必关系数据的底层表示方式和存储方式 外模式 外模式 外模式 外模式/模式映象 概念模式 模式/内模式映象 内模式 数据库
此语句定义了外模式,同时也定义了外/模映象关系 2、ANSI/SPARC数据库体系结构 外模式:EMP(EMP,DEPT,NAME) 模式:Employee(E#,D#,Name,Salary) 内模式:顺序文件,稀疏索引文件,…… 此语句定义了外模式,同时也定义了外/模映象关系 Create View EMP(EMP,DEPT,NAME) As Select E# as EMP,D# as DEPT,name From Employee E#EMP# E#EMP#
3、SQL数据库体系结构 SQL数据库的三级体系结构 SQL用户 外模式 关系子模式 视图(View) 概念模式 关系模式 基本表 内模式 存储模式 文件 ANSI/SPARC 关系数据库 SQL数据库
本章小结 关系数据模型 (Relational Data Model) SQL 数据结构:关系 数据操作:关系代数/关系演算 数据约束:三类完整性约束 SQL 关系数据库体系结构 (Database Architecture) 视图、基本表、文件