第一章 数据库入门

第一章 数据库入门

目录

第一章 数据库入门

1、数据库基本概念

1.1 数据库划分

1.1.1 简介

第一章 数据库入门

1.1.2 数据库大体划分及其作用

第一章 数据库入门

1.1.3数据库系统与其他课程的关系

###1.2 概念

1.2.1 数据库

1、 数据库与信息管理
  • 数据库是电子化信息的集合,将信息规范化并使之电子化,形成电子信息‘库’,以便利用计算机对这些信息进行快速有效的存储、检索、统计与管理
2、数据库与”表“
  • 数据库起源于规范化“ 表(Table)” 的处理,Table: 以按行按列形式组织及展现的数据
3、影响
  • E.F.Codd, 基于对“表(Table)”的理解:提出了“ 关系” 及关系模型,提出了关系数据库理论,开创了数据库的时代,当前普遍应用的数据库管理系统的奠基者, 获得了计算机领域最高奖“图灵奖
4、对“ 表” 的抽象
  • 开始“抽象”: 理解-区分-命名-表达
  • Table的构成暨关于Table的常用术语
    第一章 数据库入门
5、数据库与“ 表” 的关系:Database: 相互之间有关联关系的Table的集合
6、数据库的分类:关系数据库、图像数据库、工程数据库

1.2.2 数据库系统

1、数据库系统的构成—概念层次
  1. 数据库(DB): Database
  2. 数据库管理系统(DBMS): Database Management System
  3. 数据库应用(DBAP): DataBase Application
  4. 数据库管理员(DBA): DataBase Administrator
  5. 计算机基本系统
2、数据库系统构成— 实例层次

第一章 数据库入门

1.2.3数据库管理系统

第一章 数据库入门

1、用户角度
  1. 数据库定义 : 定义数据库中Table 的名称、标题(内含的属性名称及对该属性的值的要求)等 ,DBMS 提供一套数据定义语言**(DDL**:Data Definition Language) 给用户,用户使用DDL 描述其所要建立表的格式,DBMS 依照用户的定义,创建数据库及其中的Table。
  2. 数据库操纵 : 向数据库的Table中增加/删除/更新数据及对数据进行查
    询、检索、统计等。 DBMS 提供一套数据操纵语言(DML:Data Manipulation Language) 给用户,用户使用DML 描述其所要进行的增、删、改、查等操作,DBMS 依照用户的操作描述,实际执行这些操作。
  3. 数据库控制 : 控制数据库中数据的使用— 哪些用户可以使用, 哪些不可以,DBMS 提供一套数据控制语言(DCL:Data Control Language) 给用户,用户使用DCL 描述其对数据库所要实施的控制,DBMS 依照用户的描述,实际进行控制。
  4. 数据库维护 : 转储/恢复/重组/性能监测/分析,DBMS 提供一系列程序( 实用程序/ 例行程序) 给用户,在这些程序中提供了对数据库维护的各种功能,用户使用这些程序进行各种数据库维护操作,数据库维护的实用程序,一般都是由数据库管理员(DBA)。
2、数据库语言:使用者通过数据库语言利用DBMS操作数据库

​ 数据库各种操作的执行,DBMS 按用户要求进行定义、操纵、控制和维护
第一章 数据库入门

3、数据库语言与高级语言

​ 一条数据库语言语句相当于高级语言的一个或多个循环程序,数据库语言可以嵌入到高级语言(宿主语言)中使用

4、系统实现角度看DBMS

​ “形式—>构造 ----->自动化”---->数据库管理系统的实现,解析语言并执解析语言并执行的系统-数据库管理系统
第一章 数据库入门
DBMS 为完成DB 管理,在后台运行着一系列程序
第一章 数据库入门

  1. 语言编译器:将用数据库语言书写的内容,翻译成DBMS可执行的命令。例如: DDL编译器, DML编译器, DCL编译器等;
  2. 查询优化(执行引擎)与查询实现(基本命令的不同执行算法):提高数据库检索速度的手段;例如贯穿于数据存取各个阶段的优化程序;
  3. 数据存取与索引:提供数据在磁盘、磁带等上的高效存取手段。例如:存储管理器,缓冲区管理器,索引/文件和记录管理器等;
  4. 通信控制:提供网络环境下数据库操作与数据传输的手段;
  5. 事务管理:提供提高可靠性并避免并发操作错误的手段
  6. 故障恢复:使数据库自动恢复到故障发生前正确状态的手段,例如提供
    了备份、运行日志操控等实用程序
  7. 安全性控制:提供合法性检验,避免非授权非法用户访问数据库的手段
  8. 完整性控制:提供数据及数据操作正确性检查的手段
  9. 数据字典管理:管理用户已经定义的信息
  10. 应用程序接口(API):提供应用程序使用DBMS特定功能的手段
  11. 数据库数据装载、重组等实用程序
  12. 数据库性能分析:统计在运行过程中数据库的各种性能数据,便于优化
    运行

2、数据库系统的标准结构

典型书店数据库系统
第一章 数据库入门

2.1 数据库系统的分层抽象:DBMS管理数据的三个层次

1、External Level = User Level: 某一用户能够看到与处理的数据, 全局数据中的某一部分
2、Conceptual Level = Logic level: 从全局角度理解/管理的数据, 含相应的关联约束
3、Internal Level = Physical level:存储在介质上的数据,含存储路径、存储方式 、索引方式等

2.2 数据( 视图) 与模式

模式(Schema):对数据库中数据所进行的一种结构性的描述,即所观察到数据的结构信息

  • 数据的结构---- 模式:学生登记表( 号 学号 char(8), 姓名 char(10),性别 Char(2), 月 出生年月 datetime, 入学日期 Datetime, 址 家庭住址 Char(40) )
  • 视图(View)/ 数据(Data):某一种表现形式下表现出来的数据库中的数据
  • 展现的数据---- 视图: 表单

2.3 三级模式两层映像

三级模式

1、External Schema ---- (External) View:某一用户能够看到与处理的数据的结构描述
2、(Conceptual) Schema ---- Conceptual View:从全局角度理解/管理的数据的结构描述, 含相应的关联约束,体现在数据之间的内在本质联系
3、Internal Schema ---- Internal View:存储在介质上的数据的结构描述,含存储路径、存储方式 、索引方式等

两层映像

1、E-C Mapping:External Schema-Conceptual Schema Mapping

  • 将外模式映射为概念模式,从而支持实现数据概念视图向外部视图的转换,便于用户观察和使用
    2、C-I Mapping:Conceptual Schema-Internal Schema Mapping
  • 将概念模式映射为内模式,从而支持实现数据概念视图向内部视图的转换,便于计算机进行存储和处理

2.4 数据库系统的标准结构

第一章 数据库入门

2.5 两个独立性

1、逻辑数据独立性:当概念模式变化时,可以不改变外部模式(只需改变E-C Mapping),从而无需改变应用程序
2、物理数据独立性:当内部模式变化时,可以不改变概念模式(只需改变C-I Mapping) ,从而不改变外部模式

3、数据模型

3.1 数据模型的概念

模式 与 模式的结构:数据模型

  • 规定模式统一描述方式的模型,包括:数据结构、操作和约束
  • 数据模型是对模式本身结构的抽象,模式是对数据本身结构形式的抽象
  • 关系模型:所有模式都可为抽象表(Table)的形式[数据结构],而每一个具体的模式都是拥有不同列名的具体的表。对这种表形式的数据有哪些[操作]和[约束]

3.2 三大经典的数据模式

3.2.1 关系模型: 表 的形式组织数据

关系模型(表的形式):元组,属性,表名
关系模型的模式:学生登记表( 学号 char(8), 姓名char(10), 性Char(2), 出生年月datetime, 入学日期 Datetime, 家庭住址Char(40) )
关系模型的数据:二维表单填充的数据

3.2.2 层次模型: 树 的形式组织数据

第一章 数据库入门

3.2.3 网状模型: 图 的形式组织数据

第一章 数据库入门

4、数据库系统的演变与发展

4.1 简要发展史:四个阶段

  • 第一阶段:数据库技术探索阶段(59-65/67)研制成功格式文件系统, 正式提出“ Data Base” ,并开始进行研究
  • 第二阶段:数据库技术确立阶段(65/68-75):三大数据库:层次、网状及关系数据库相继提出并进行了深入研究,商用数据库出现并应用,但多为网状及层次型系统,数据库研究形成理论基础:关系数据库理论
  • 第三阶段:数据库技术成熟阶段(76-80s 前期),提出了标准化数据库系统结构模型,关系DB 系统迅速发展:如SQL, QBE, System R ,Ingres等 ,关系理论日臻完善,包括规范化理论,关系语言,RDB的设计与实现,新型关系模型等;数据库应用已十分普及,渗透到社会各个方面,出现众多DB的技术分
    支,DB 走向全面成熟,人称70 年代为“数据库的年代“。
  • 第四阶段:数据库技术深化发展阶段(85 年以来),数据库方法逐步理论化、数据库设计理论不断完善。新型数据模型、专用数据模型, 专用型、新型数据库系统,不断涌现。数据库技术+ 其他计算机技术结合 == 面向各行各业的专用数据库

4.2 由文件系统到数据库

  • 文件系统:文件存储空间的管理、目录管理、文件读写管
    理、文件保护、向用户提供操作接口。
  • 提供了不同的存取方法(索引文件、链接文件、直接存取文件、倒排文件等), 支持对文件的基本操作 支持对文件的基本操作( 增、删、改、查等), 数据存取基本上以 数据存取基本上以 记录 为单位
  • 优点: 用户( 程序) 不必考虑文件存储的物理细节, 解脱了对物理设备存取
    复杂性处理的负担
  • 不足: 数据与程序紧密结合,数据的组织及语义紧密依赖于处理该文件的
    应用程序,数据结构发生改变则必须修改应用程序,文件之间无联系,文件
    的记录之间无联系,共享性差,冗余度大,不一致性高
  • 数据库系统: 由DBMS统一存取、维护数据组织形式及语义,可较强地独立于应用程序(数据的物理独立性和逻辑独立性)。把数据及数据结构的定义和描述从应用程序中分离出去,交给DBMS, 使得多个应用程序可共享数据及数据结构的操作, 数据存取可以 数据存取可以 记录为单位,也可以以数据项记录集合 为单位。

4.3 由层次模型数据库、网状模型数据库到关系数据库

  • 层次模型与网状模型数据库:数据之间的关联关系由复杂的指针系统来维系,结构描述复杂,数据检索操作依赖于由指针系统指示的路径,逐一记录的操作,不能有效支持记录集合的操作
  • 关系模型数据库:数据之间的关联关系由Table中属性的值来表征,结构描述简单: 中属性的值来表征,结构描述简单:Table/relation。数据检索操作 不依赖于 路径信息或过程信息,支持非过程化的数据操作。有效支持记录集合的操作。较为完善的理论基础。
  • 关系数据库: 按行按列形式组织数据:关系的第1范式,数据项的不可再分特性。关系运算: 关系代数、元组演算、域演算–标准SQL。关系数据库设计理论。

4.4 由关系数据库到对象关系数据库、面向对象数据库4.

  • 对象-关系数据库:可有效支持不满足关系第1范式的数据项 范式的数据项。以对象来封装需分解的数据项,行对象与列对象;聚集对象与结构对象
  • 面向对象数据库:面向对象技术(O-O) 与集合/ 聚集操作技术(SQL)的结合。支持复杂的数据类型,数据封装与抽象数据结构。支持面向对象的一些特性:类、继承、封装、多态…
  • XML 数据库:是数据库的另一种形式, 被称为半结构化数据库;数据与数据的语义 合并在一起进行存储和处理 合并在一起进行存储和处理;面向数据交换而提出 而提出, 在 在 互联网世界得到广泛应用 得到广泛应用.

4.5 由多种多样的数据库到多数据库开放式互连

  • 多种多样的数据库:Oracle、Sybase、Ingres、DB 2、MS Access、Informix……
  • 开放互连多种多样的数据库: ODBC、JDBC

4.6 由普通数据库到与各种先进技术结合所形成的新型数据库

OA :DB + Management Information System
Database Machine --> DB + Computer Architecture
Intelligent Database --> DB + Artificial Intelligence
Distributed Database(DDB) --> DB + Computer Network。 。
Image Database / Multimedia Database --> DB + Image processing/ Multimedia processing。 。
Temporal Database --> DB + 时态技术处理。
Mobile Database --> DB + 移动计算技术。
Active Database --> DB + 产生式规则/ 触发器技术。
Fuzzy Database --> DB + 模糊处理技术。
Real-Time Database --> DB + 实时处理技术。
Engineering Database --> DB + CAD/CAPP/CAM 技术。
Geographical Databas 和空间数据库(Spacial Database) --> DB +数字地图、全球定位、空间分析技术。
Statistical Database --> DB + 统计学。
Internet Database --> DB + Internet/WWW( 网页/HTML 文档)。 。
Data Warehouse/Data Mining --> DB + OLAP + 统计学。
NoSQL