名词解释
DB(Database) 数据库
DB是长期存储在计算机内的,有组织的、统一管理的相关数据的集合。DB能为各种用户共享,具有较小的冗余度、数据间联系紧密而又有较高的数据独立性等特点。
DBMS(Database Management System) 数据库管理系统
DBMS是位于用户与操作系统(OS)之间的一层数据管理软件,它为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新等各种数据控制。DBMS总是基于某种模型,可以分为层次型、网状型、关系型和面向对象型等。
DBS(Database System) 数据库系统
DBS是实现有组织地、动态地存储大量关联数据、方便多用户访问的计算机硬件、软件和数据资源组成的系统,即它是采用数据库技术的计算机系统。
数据库技术
数据库技术是研究数据库的结构、存储、设计、管理和使用的一门软件科学。
联系的元数
联系(Relationship)是实体间的相互关系。与一个联系有关的实体集个数,称为联系的元数。
1:1联系
二元联系的一种类型。一对一联系:如果实体集E1中每个实体至多和实体集E2中的一个实体有联系,反之亦然,那么实体集E1和E2的联系称为“一对一联系”,记为“1:1”。
1:N联系
二元联系的一种类型。一对多联系:如果实体集E1中每个实体可以与实体集E2中任意个(零个或多个)实体间有联系,而E2中每个实体至多和E1中一个实体有联系,那么称E1对E2的联系是“一对多联系”,记为“1:N”。
M:N联系
二元联系的一种类型。多对多联系:如果实体集E1中的每个实体可以与实体集E2中任意个(零个或多个)实体间有联系,反之亦然,那么称E1与E2的联系是“多对多联系”,记为“M:N”。
数据模型
模型(Model)是对现实世界的抽象。在数据库技术中,我们用数据模型(Data Model)的概念描述数据库的结构和语义,对现实世界的数据进行抽象。根据数据抽象的级别定义了四种模型:概念数据模型、逻辑数据模型、外部数据模型和内部数据模型。一般在提及时省略“数据”两字。
概念模型
表达用户需求观点的数据全局逻辑结构的模型,称为“概念模型”。
逻辑模型
表达计算机实现观点的DB全局逻辑结构的模型,称为“逻辑模型”。
- 层次模型(hierarchical Model):用树型(层次)结构表示实体类型及实体间联系的数据模型称为层次模型。树中的节点是记录类型,每个非根节点有且只有一个父节点。上层记录类型和下一层记录类型之间的联系是1:N联系。
- 网状模型(Network Model):用有向图结构表示实体类型及实体间联系的数据模型称为网状模型。
- 关系模型(Relational Model):关系模型是由若干个关系模式(Relational Schema)组成的集合。
外部模型
表达用户使用观点的DB局部逻辑结构的模型,称为“外部模型”。
内部模型
表达DB物理结构的模型,称为“内部模型”。
三层模式和两级映像
在用户(或应用程序)到数据库之间,DB的数据结构有三个层次:外部模型、逻辑模型和内部模型。这三个层次要用DB的数据定义语言(Data Definition language,简记为DDL)定义,定义以后的内容称为“模式”(Schema),即外模式、逻辑模式和内模式。
- 外模式:是用户与数据库系统的接口,是用户用到的那部分数据的描述。外模式由若干个外部记录类型组成。
- 逻辑模式:是数据库中全部数据的整体逻辑结构的描述。它由若干个逻辑记录类型组成,还包含记录间联系、数据的完整性安全性等要求。
- 内模式:是数据库在物理存储方面的描述,定义所有内部记录类型、索引和文件的组织方式,以及数据控制方面的细节。
- 外模式/逻辑模式映像:存在于外模式和逻辑模式之间,用于定义外模式和逻辑模式之间的对应性。这个映像一般是放在外模式中描述的。
- 逻辑模式/内模式映像:存在于逻辑模式和内模式之间,用于定义逻辑模式和内模式之间的对应性。这个映像一般是放在内模式中描述的。
数据独立性(Data Indepandence)
是指应用程序和数据库的数据结构之间相互独立,不受影响。在修改数据结构时,尽可能不修改应用程序,则称系统达到了数据独立性目标。数据独立性分成物理数据独立性和逻辑数据独立性两个级别。
- 物理独立性:如果数据库的内模式要修改,即数据库的物理结构有所变化,那么只要对逻辑模式/内模式映像(即“对应性”)作相应的修改,可以使逻辑模式尽可能保持不变。也就是对内模式的修改尽量不影响逻辑模式,当然对于外模式和应用程序的影响更小,这样,我们称数据库达到了物理数据独立性(简称物理独立性)。
- 逻辑独立性:如果数据库的逻辑模式要修改,譬如增加记录类型或增加数据项,那么只要对外模式/逻辑模式映像作相应修改,可以使外模式和应用程序尽可能保持不变。这样,我们称数据库达到了逻辑数据独立性(简称逻辑独立性)。
语言
主语言
编写应用程序的语言可以是COBOL、PL/I、C、C++、Java一类高级程序设计语言,这些语言称为主语言或宿主语言(host language)。
DDL
数据定义语言(Data Definition Language,简记为DDL)。
DML
数据操纵语言(Data Manipulation Language,简记为DML)。
过程性语言
过程性DML是指用户编程时,不仅需要指出”做什么“(需要什么样的数据),还需要指出”怎么做“(怎样获得这些数据)
非过程性语言
非过程性DML是指用户编程时,只需要指出“做什么”,不需要指出“怎么做”。
DD
数据库系统中存放三级结构定义的数据库称为数据字典(Data Dicationary,DD)。对数据库的操作都要通过DD才能实现。DD中还存放数据库运行时的统计信息,例如记录个数、访问次数等。
DD系统
管理DD的子系统称为“DD系统”。
数据库管理
人工管理阶段的数据管理的特点
- 数据不保存在计算机内。
- 没有专用的软件对数据进行管理。
- 只有程序(Program)的概念,没有文件(File)的概念。数据的组织方式必须由程序员自行设计与安排。
- 数据面向程序。即一组数据对应一个程序。
文件系统阶段的数据管理特点
- 数据以“文件”形式可长期保存在外部存储器的磁盘上。
- 数据的逻辑结构与物理结构有了区别,但比较简单。
- 文件组织已多样化。
- 数据不再属于某个特定程序,可以重复使用,即数据面向应用。
- 对数据的操作以记录为单位。
文件系统阶段的数据管理缺陷
- 数据冗余(Redundancy)。
- 数据不一致(Inconsistency)。
- 数据不一致(Poor Data Relationship)。
数据管理的数据库阶段产生的三件标志性事情
- 1968年美国IBM公司推出层次模型的IMS(Information Management System)系统;
- 1969年美国CODASYL(Conference On Data System Language)组织发布了DBTG(Data Base Task Group)报告。总结了当时各式各样的数据库,提出网状模型,尔后于1971年4月正式通过;
- 1970年美国IBM公司的E.F.Codd连续发表论文,提出关系模型,奠定了关系数据库的理论基础。
数据库阶段的数据管理特点
- 采用数据模型表示复杂的数据结构。
- 有较高的数据独立性。
- 数据库系统为用户提供了方便的用户接口。
- 数据库系统提供了以下四方面的数据控制功能:
- 数据库的恢复:在数据库被破坏或数据不可靠时,系统有能力把数据库恢复到最近某个正确状态。
- 数据库的并发控制:对程序的并发操作加以控制,防止数据库被破坏,杜绝提供给用户不正确的数据。
- 数据的完整性:保证数据库中的数据始终是正确的。
- 数据安全性:保证数据的安全,防止数据丢失或被窃取、破坏。
- 增加了系统的灵活性:对数据的操作不一定以记录为单位,可以以数据项为单位。
高级数据库阶段的技术
- 20世纪80年代的分布式数据库系统。
- 90年代的对象数据库系统。
- 面向对象的概念建模
- 21世纪的Web数据库系统。
- 开放数据库互连技术
逻辑记录与物理记录,逻辑文件与物理文件的联系和区别(联系和区别想的不是很明白)
逻辑记录是逻辑设计中的数据的一种描述,逻辑设计中字段的有序集合称为记录。一般,用一个记录描述一个实体,所以记录又可以定义为能完整的描述一个实体的字段集。
物理记录是物理存储中数据的一种描述,又称为物理块或块,块是内存和外存交换信息的最小单位,每块的大小,通常为2^10 ~ 2^14字节。内、外存信息交换是由操作系统的文件系统管理的。
逻辑文件是同一类记录的集合。用来描述实体集。
物理文件是真实存在的,是有数据的。
对于联系和区别理解的不是很好,看到网上一段这样的解释:物理文件相当于table,逻辑文件相当于view,物理文件是有数据的,而逻辑文件是没有数据的。还有,它们都是object。
(摘抄自http://bbs.chinaunix.net/thread-329732-1-1.html)
数据抽象过程的步骤
第1步:根据用户需求,设计数据库的概念模型,这是一个“综合”的过程。
第2步:根据转换规则,把概念模型转换成数据库的逻辑模型,这是一个“转换”的过程。
第3步:根据用户的业务特点,设计不同的外部模型,给程序员使用。也就是应用程序使用的是数据库的外部模型。外部模型与逻辑模型之间的对应性称为映像。
第4步:数据库实现时,要根据逻辑模型设计其内部模型。内部模型与逻辑模型之间的对应性称为映像。
概念模型、逻辑模型、外部模型和内部模型各自的特点
概念模型的特点:
- 概念模型表达了数据的整体逻辑结构,它是系统用户对整个应用项目涉及的数据的全面描述。
- 概念模型是从用户需求的观点出发,对数据建模。
- 概念模型独立于硬件和软件。硬件独立意味着概念模型不依赖于硬件设备,软件独立意味着该模型不依赖于实现时的DBMS软件。因此硬件或软件的变化都不会影响DB的概念模型设计。
- 概念模型是数据库设计人员与用户之间进行交流的工具。
逻辑模型的特点:
- 逻辑模型表达了DB的整体逻辑结构,但它是设计人员对整个应用项目数据库的全面描述。
- 逻辑模型是从数据库实现的观点出发,对数据建模。
- 逻辑模型独立于硬件,但依赖于软件(DBMS)。
- 逻辑模型是数据库设计人员与应用程序员之间进行交流的工具。
外部模型的特点:
- 外部模型是逻辑模型的一个逻辑子集。
- 外部模型独立于硬件,依赖于软件。
- 外部模型反映了用户使用数据库的观点。
内部模型的特点:
- 它描述数据在磁盘或磁带上的存储方式(文件的结构)、存取社保(外存的控件分配)和存取方法(主索引和辅助索引)。
层次、网状和关系三种逻辑数据模型的区别
层次模型和网状模型中,记录之间通过指针来实现,查询效率较高。层次模型只能表示1:N关系,网状模型不仅能表示1:N联系,还能表示M:N联系。关系模型和层次、网状模型的最大差别是用关键码而不是用指针导航数据。外部模型使数据库系统具有的优点
- 简化了用户的观点。
- 有助于数据库的安全性保护。
- 外部模型是对概念模型的支持。
数据独立性与数据联系这两个概念的区别
数据独立性是指应用程序和数据库的数据结构之间相互独立,不受影响。数据独立性分成物理数据独立性和逻辑数据独立性两个级别。
数据联系是指实体之间的相互关系。数据独立性是在结构层次,数据联系是在具体的实体之间。
用户、DB的三级模式结构、磁盘上的物理文件之间的联系和不同
数据库的三层模式结构时一个理想的结构,使数据库系统达到了高度的数据独立性。用户与数据库之间的数据传输要在三层结构中来回转换。从而使用户的数据能真正的读或写入文理文件中。应用程序在系统缓冲区中的用户记录应与外模式中的外部记录在结构上是一致的。磁盘上物理文件的记录应与内模式中的内部记录在结构上也是一致的。
DBMS的工作模式和主要功能
DBMS的工作模式:
(1)接受应用程序的数据请求和处理请求;
(2)将用户的数据请求(高级指令)转换成复杂的机器代码(低层指令);
(3)实现对数据库的操作;
(4)从对数据库的操作中接受查询结果;
(5)对查询结果进行处理(格式转换);
(6)将处理结果返回给用户。
主要功能:
- 数据库的定义功能:DBMS提供DDL定义数据库的三级结构、两级映像,定义数据的完整性约束、保密限制等约束。因此,在DBMS中应包括DDL的编译程序。
- 数据库的操作功能:DBMS提供DML实现对数据的操作。基本的数据操作有两类:检索(查询)和更新(包括插入、删除、更新)。因此,在DBMS中应包括DML的编译程序或解释程序。
- 数据库的保护功能:
(1)数据库的恢复。
(2)数据库的并发控制。
(3)数据完整性控制。
(4)数据安全性控制。DBMS的其它保护功能还有系统缓冲区的管理以及数据存储的某些自适应调节机制等。 - 数据库的维护功能:这一部分包括数据库的数据载入、转换、转储,数据库的改组以及性能监控等功能。
- 数据字典:数据库系统中存放三级结构定义的数据库称为数据字典(Data Dictionary, DD)。对数据库的操作都要通过DD才能实现。DD中还存放数据库运行时的统计信息,例如记录个数、访问次数等。管理DD的子系统统称为“DD系统”。
DB系统缓冲区及其作用
DB系统缓冲区是DBMS为应用程序在内存中开辟的一个系统缓冲区,用户数据的传输和格式转换。
DBS由哪几部分组成?它有哪些系统软件?其中DD有什么作用?
它是数据库、硬件、软件和数据库管理员的集合体。
典型的数据库应用开发工具有Visual Basic 7.0、PowerBuilder 10.0 和 Delphi 6.0等系统。
DD为DBS提供存储三级结构的描述(一般称为元数据Metadata)
DBS的全局结构解释
这个结构从用户、界面、DBMS和磁盘等四个层次考虑各模块功能之间的联系。
- 数据库用户
DBA 、专业用户、应用程序员、终端用户。 - DBMS的查询处理器
这一部分可分为四个成分:
(1)DDL解释器:解释DDL语句,并将这些定义登录到数据字典中。
(2)DML编译器:对DML语句进行优化,并转成查询求值引擎能执行的低层指令。
(3)嵌入式DML的预编译器:把嵌入到主语言中的DML语句处理成规范的过程调用形式。
(4)查询求值引擎:执行由DML编译器产生的低层指令。 - DBMS的存储管理器
存储管理器提供存储在数据库中的低层数据和应用程序、查询之间的接口。存储管理器可分为四个成分:
(1)权限和完整性管理器:测试应用程序对数据库的修改是否满足完整性约束,检查用户访问数据的合法性。
(2)事务管理器:DBS的逻辑工作单元称为事务(Transaction),事务由对DB的操作序列组成。事务管理器用于确保DB一致性(正确性)状态,保证并发操作正确执行。
(3)文件管理器:负责磁盘空间的合理分配,管理物理文件的存储结构和存取方式。
(4)缓冲区管理器:为应用程序开辟DB的系统缓冲区,负责将从磁盘中读出的数据送入内存的缓冲区。 - 磁盘存储器中的数据结构
(1)数据文件:存储数据库管理的用户数据自身。数据库在磁盘上的基本组织形式是文件,这样可以充分利用OS管理外存的功能。
(2)数据字典:存储三级结构的描述(一般称为元数据Metadata)。
(3)索引:为提高查询速度而设置的逻辑排序手段。
(4)统计数据:存储DBS运行时统计分析的数据。查询处理器可以使用这些信息更有效地进行查询处理。
(5)日志:存储DBS运行时对DB的操作情况,以备以后查阅数据库的使用情况及数据恢复时使用。
从模块结构观察,DBMS由哪些部分组成?
总体上分两个模块:查询处理器 和 存储管理器。
查询处理器又可分为:DDL解释器、DML编译器、嵌入式DML的预编译器和求值引擎。
存储管理器又可分为:权限和完整性管理器、事务管理器、文件管理器和缓冲区管理器。