初步认识数据库与数据库系统的结构抽象
文章目录
本文为数据库的学习笔记,学习资源请见中国大学MOOC哈工大数据库视频。
初步认识数据库
什么数据库系统
数据库是电子化信息的集合
将信息规范化并使之电子化,形成电子信息库,以便利用计算机对这些信息进行快速有效的存储、检索、统计与管理.
数据库起源于规范化“表(Table)”的处理。
Table: 以按行按列形式组织及展现的数据。
Table的构成暨关于Table的常用术语
(关系)模式,表名,表标题(格式),表内容(值),表/关系,列/字段/属性/数据项(column/field/attribute/data item),行/元组/记录( row /tuple /record ),列名,列值。
数据库与“表”的关系
Database: 相互之间有关联关系的Table的集合
数据库系统的构成
数据库系统(工作环境)
- 数据库(DB): Database
- 数据库管理系统(DBMS): Database Management System
- 数据库应用(DBAP): DataBase Application
- 数据库管理员(DBA): DataBase Administrator
- 计算机基本系统
什么是数据库管理系统
DBMS
是数据库系统的核心
数据库管理系统应具有什么功能
用户角度
-
数据库定义: 定义数据库中Table的名称、标题(内含的属性名称及对该属性的值的要求)等
- DBMS提供一套数据定义语言(DDL:Data Definition Language)给用户
- 用户使用DDL描述其所要建立表的格式
- DBMS依照用户的定义,创建数据库及其中的Table
-
数据库操纵: 向数据库的Table中增加/删除/更新数据及对数据进行查询、检索、统计等
- DBMS提供一套数据操纵语言(DML:Data Manipulation Language)给用户
- 用户使用DML描述其所要进行的增、删、改、查等操作;
- DBMS依照用户的操作描述,实际执行这些操作
-
数据库控制: 控制数据库中数据的使用—哪些用户可以使用,哪些不可以
- DBMS提供一套数据控制语言(DCL:Data Control Language)给用户
- 用户使用DCL描述其对数据库所要实施的控制
- DBMS依照用户的描述,实际进行控制
-
数据库维护: 转储/恢复/重组/性能监测/分析等
- DBMS提供一系列程序(实用程序/例行程序) 给用户
- 在这些程序中提供了对数据库维护的各种功能
- 用户使用这些程序进行各种数据库维护操作
数据库维护的实用程序,一般都是由数据库管理员(DBA)来使用和掌握的
系统角度
DBMS为完成DB管理,在后台运行着一系列程序:
- 语言编译器:将用数据库语言书写的内容,翻译成DBMS可执行的命令。例如: DDL编译器, DML编译器, DCL编译器等;
- 查询优化(执行引擎)与查询实现(基本命令的不同执行算法):提高数据库检索速度的手段;例如贯穿于数据存取各个阶段的优化程序;
- 数据存取与索引:提供数据在磁盘、磁带等上的高效存取手段。例如:存储管理器,缓冲区管理器,索引/文件和记录管理器等;
- 通信控制:提供网络环境下数据库操作与数据传输的手段
- 事务管理:提供提高可靠性并避免并发操作错误的手段
- 故障恢复:使数据库自动恢复到故障发生前正确状态的手段,例如提供了备份、运行日志操控等实用程序
- 安全性控制:提供合法性检验,避免非授权非法用户访问数据库的手段
- 完整性控制:提供数据及数据操作正确性检查的手段
- 数据字典管理:管理用户已经定义的信息
- 应用程序接口(API):提供应用程序使用DBMS特定功能的手段
- 数据库数据装载、重组等实用程序
- 数据库性能分析:统计在运行过程中数据库的各种性能数据,便于优化运行
- …
什么是数据库语言
数据库语言:使用者通过数据库语言利用DBMS操作数据库
-
数据定义语言(DDL:Data Definition Language)
----DBMS提供给用户,以便用户定义数据格式,如定义表名,表标题、列名及其结构形式
-
数据操纵语言(DML:Data Manipulation Language)
----DBMS提供给用户,以便用户对数据进行操作,如增加、删除、修改数据、查询数据、检索数据、统计数据
-
数据控制语言(DCL:Data Control Language)
----DBMS提供给用户,以便用户对数据进行控制,如定义对不同操作的约束、对不同操作者(用户)的约束
三者统称SQL语言——结构化的数据库语言。
数据库语言与高级语言: 一条数据库语言语句相当于高级语言的一个或多个循环程序。
小结
数据库系统的结构抽象与演变
数据库系统的标准结构
三级模式
DBMS管理数据的三个层次:
-
External Level = User Level
某一用户能够看到与处理的数, 全局数据中的某一部分
-
Conceptual Level = Logic level
从全局角度理解/管理的数据, 含相应的关联约束
-
Internal Level = Physical level
存储在介质上的数据,含存储路径存储方式 、索引方式等
模式(Schema) :
对数据库中数据所进行的一种结构性的描述所观察到数据的结构信息
视图(View)/数据(Data):
某一种表现形式下表现出来的数据库中的数据
三级模式:
-
External Schema ---- (External) View
某一用户能够看到与处理的数据的结构描述
-
(Conceptual) Schema ---- Conceptual View
从全局角度理解/管理的数据的结构描述, 含相应的关联约束体现在数据之间的内在本质联系
-
Internal Schema ---- Internal View
存储在介质上的数据的结构描述,含存储路径、存储方式 、索引方式等
两层映像
-
E-C Mapping:External Schema-Conceptual Schema Mapping
----将外模式映射为概念模式,从而支持实现数据概念视图向外部视图的转换
----便于用户观察和使用
-
C-I Mapping:Conceptual Schema-Internal Schema Mapping
----将概念模式映射为内模式,从而支持实现数据概念视图向内部视图的转换
----便于计算机进行存储和处理
两个独立性
逻辑数据独立性
当概念模式变化时,可以不改变外部模式(只需改变E-C Mapping),从而无需改变应用程序
物理数据独立性
当内部模式变化时,可以不改变概念模式(只需改变C-I Mapping) ,从而不改变
数据模型
什么是数据模型
- 规定模式统一描述方式的模型,包括:数据结构、操作和约束。
- 数据模型是对模式本身的抽象,模式是对数据本身结构形式的抽象。
比如:在关系模型中,所有模式都可为抽象表(Table)的形式,而每一个具体的模式都是拥有不同列名的具体的表。对这种表形式的数据有哪些数据和约束。
三大经典数据模型
- 关系模型:表的形式组织数据;
- 层次模型:树的形式组织数据;
- 网状模型:图的形式组织数据。
Mysql、Oracle、SqlServer这些关系型数据库用的都是关系模型。
数据库的系统演变
简要发展史
- 第一阶段:数据库技术探索阶段(59-65/67)
- 成功研制格式文件系统
- 正式提出“Data Base”,并开始研究。
- 第二阶段:数据库技术的确立(65/68-75)
- 三大数据库:层次、网状及关系数据库相继提出并进行深入研究。
- 商用数据库出现并应用,但多为网状及层次模型。
- 数据库研究形成理论基础:关系数据库理论。
- 第三阶段:数据库技术成熟阶段(76-80s前期)
- 提出了标准化数据库系统结构模型。
- 关系数据库系统迅速发展。
- 关系数据库日臻完善,包括规范化理论,关系语言,RDB的设计与实现,新型关系模型等。
- 数据库技术已近十分普及,渗透到社会各个方面,出现了众多DB分支,DB走向全面成熟,人称70年代为“数据库时代”。
- 第四阶段:数据库技术深化发展阶段(85年以来)
- 数据库方法逐步理论化、数据库设计理论不断完善。
- 新型数据模型、专用数据模型,专用型、新型数据库系统不断涌现。
- 数据库+其他计算机技术结合。
发展阶段
从文件系统到数据库
文件系统
- 文件存储空间的管理、目录管理、文件读写管理、文件保护、向用户提供操作接口。
- 提供了不同的存取方法(索引文件、链接文件、直接存取文件、倒排文件等),支持对文件的基本操作(增、删、改、查等),数据存取基本上以记录为单位。
优点:用户(程序)不必考虑文件存储的物理细节, 解脱了对物理设备存取复杂性处理的负担。
缺点:数据与程序紧密结合,数据的组织及语义紧密依赖于处理该文件的应用程序,数据结构发生改变则必须修改应用程序,文件之间无联系,文件的记录之间无联系,共享性差,冗余度大,不一致性高。
数据库系统
- 由DBMS统一存取、维护数据组织形式及语义,可较强地独立于应用程序(数据的物理独立性和逻辑独立性)。
- 把数据及数据结构的定义和描述从应用程序中分离出去,交给DBMS,使得多个应用程序可共享数据及数据结构的操作,数据存取可以记录为单位,也可以以数据项和记录集合为单位。
- 统一的数据控制功能,数据共享程度高:系统可自动检查安全性、完整性和并发正确性。
- 整体数据结构化,文件(Table)之间、记录之间相互有关联,数据的冗余度小,易扩充。
- 独立于应用程序的高效率查询、统计操作。
由层次模型数据库、网状模型数据库到关系数据库
层次模型与网状模型数据库
- 数据之间的关联关系由复杂的指针系统来维系,结构描述复杂。
- 数据检索操作依赖于由指针系统指示的路径。
- 逐一记录的操作,不能有效支持记录集合的操作。
关系模型数据库
- 数据之间的关联关系由Table中属性的值来表征,结构描述简单:Table/relation。
- 数据检索操作不依赖于路径信息或过程信息,支持非过程化的数据操作。
- 有效支持记录集合的操作。
- 较为完善的理论基础。
由关系数据库到对象关系数据库、面向对象数据库
关系数据库
- 按行按列形式组织数据:关系的第一范式。
- 数据项的不可再分特性。
- 关系运算:关系代数、元组演算、域演算–>标准SQL。
- 关系数据库设计理论。
对象-关系数据库
- 面向对象技术(O-O)与集合/聚集操作技术(SQL)的结合。
- 支持复杂的数据类型,数据封装与抽象数据结构。
- 支持面向对象的一些特性:类、继承、封装、多态等。
XML数据库
- 是数据库的另一种形式,被称为半结构化数据库。
- 数据与数据的语义合并在一起进行存储和处理。
- 面向数据交换而提出,,在互联网世界得到广泛应用。
由多种多样的数据库到多数据库开放式互连
开放互连多种多样的数据库
ODBJ和JDBC的使用
新型数据库
小结
查缺补漏
一
关于数据库系统和数据库管理系统,下列说法正确的是___C___。
- A.数据库系统和数据库管理系统指的是同一软件产品
- B.数据库系统和数据库管理系统指的是不同软件产品
- C.数据库管理系统是软件产品,而数据库系统不仅仅是软件产品
- D.数据库系统是软件产品,而数据库管理系统不仅仅是软件产品
关于数据库系统,下列说法正确的是____D___。
- A.数据库系统的构成包括计算机/网络基本系统、数据库和数据库管理系统
- B.数据库系统的构成包括计算机/网络基本系统、数据库、数据库管理系统和数据库应用程序
- C.数据库系统的构成包括计算机/网络基本系统、数据库、数据库应用程序和数据库管理员
- D.数据库系统的构成包括数据库、数据库管理系统、数据库应用程序、数据库管理员以及计算机与网络基本系统
从用户角度看数据库管理系统的功能,下列说法正确的是___D___。
- A.数据库管理系统就是通过数据库语言让用户操作进而提供数据库操纵功能的系统
- B.数据库管理系统就是通过数据库语言让用户操作进而提供数据库定义和数据库操纵功能的系统
- C.数据库管理系统就是通过数据库语言让用户操作进而提供数据库定义、数据库操纵和数据库控制功能的系统
- D.数据库管理系统就是通过数据库语言让用户操作进而提供数据库定义、数据库操纵和数据库控制功能的系统,同时提供了一系列程序能够实现对数据库的各种存储与维护
从系统角度看数据库管理系统,其功能包括___D___。
- A.X-查询实现与查询优化
- B.Y-事务处理
- C.Z-数据存储与索引
- D.不仅仅包含X-、Y-、Z-功能,还包括其他功能
下列哪些功能不是数据库管理系统的功能___D___。
- A.完整性控制
- B.并发控制
- C.通讯控制
- D.处理机控制
从用户角度看数据库管理系统,其功能包括___ABCD___。
- A.数据库定义
- B.数据库操纵
- C.数据库控制
- D.数据库维护
二
数据库系统的三级模式是指___D___。
- A.用户模式、局部模式和全局模式
- B.外模式、概念模式和逻辑模式
- C.外模式、内模式和存储模式
- D.用户模式、概念模式和存储模式
在三级模式两层映像结构中,“模式”是指___D___。
- A.外模式
- B.内模式
- C.存储模式
- D.概念模式
在三级模式两层映像结构中,“物理模式”是指___D___。
- A.外模式
- B.全局模式
- C.用户模式
- D.存储模式
在三级模式两层映像结构中,“全局模式”是指___D___。
- A.外模式
- B.用户模式
- C.内模式
- D.概念模式
在三级模式两层映像结构中,“局部模式”是指___D___。
- A.概念模式
- B.内模式
- C.逻辑模式
- D.外模式
关于三级模式,下列说法不正确的是___D___。
- A.概念模式又称为全局模式
- B. 概念模式又称为逻辑模式
- C.内模式又称为存储模式
- D.内模式又称为局部模式
关于数据独立性,下列说法正确的为___C___。
- A.外模式到概念模式的映像实现了数据的物理独立性
- B.外模式到内模式的映像实现了数据的物理独立性
- C.概念模式到内模式的映像实现了数据的物理独立性
- D.以上说法均不正确
关于数据独立性,下列说法正确的为___A___。
- A.外模式到概念模式的映像实现了数据的逻辑独立性
- B.外模式到内模式的映像实现了数据的逻辑独立性
- C.概念模式到内模式的映像实现了数据的逻辑独立性
- D.以上说法均不正确
数据库系统的数据独立性是指___B___。
- A.不会因为数据的变化而影响应用程序
- B.不会因为系统数据存储结构与数据逻辑结构的变化而影响应用程序
- C.不会因为存储策略的变化而影响存储结构
- D.不会因为某些存储结构的变化而影响其他的存储结构
数据库系统与文件系统的主要差别在___D___。
- A.数据的组织是否依赖于具体的应用程序
- B.数据存取是否可以记录或记录的集合为单位进行操作
- C.不同文件之间以及不同记录之间是否有联系
- D.包括其他全部选项
关系数据库系统对层次/网状数据库系统的重大改进是___D___。
- A.消除了由用户建立指针的弊端
- B.将逐一记录的操作改进为支持记录集合的操作
- C.数据检索操作不依赖于路径信息或过程信息,即非过程化的操作
- D.包括其他全部选项
面向对象数据库系统对关系数据库系统的重大改进是____D___。
- A.允许复杂的数据类型存在
- B.突破了关系模型第一范式的限制
- C.既支持记录集合的操作,又支持面向对象的操作
- D.包括其他全部选项
补充
三个模式不同的命名如下:
- 外模式:又称用户模式、子模式、局部模式。
- 概念模式:又称模式、逻辑模式、全局模式。
- 内模式:又称存储模式。