我是靠谱客的博主 健康柜子,最近开发中收集的这篇文章主要介绍《数据库系统概念》学习笔记——引言引言,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

数据库系统概念——引言

  • 引言
    • 数据库系统的应用
    • 数据库系统的目标
    • 数据视图
      • 数据抽象
      • 实例和模式
      • 数据模型
    • 数据库语言
      • 数据操纵语言
      • 数据定义语言
    • 关系数据库
      • 数据操纵语言
      • 数据定义语言
      • 来自应用程序的数据库访问
    • 数据库设计
      • 设计过程
      • 大学机构的数据库设计
      • 实体-联系模型
      • 规范化
    • 数据存储和查询
      • 存储管理器
      • 查询处理器
    • 事务管理
    • 数据库体系结构
    • 数据库挖掘与信息检索
    • 特种数据库
      • 基于对象的数据模型
      • 半结构化数据模型
    • 数据库用户和管理员
      • 数据库用户和用户界面
      • 数据库管理员

引言

数据库管理系统(DataBase-Management System, DBMS)由一个互相关联的数据的集合和一组用以访问这些数据的程序组成。
这个数据集合通常称作数据库(database),其中包含了关于某个企业的信息。

DBMS思维主要目标是要提供一种可以方便、高效地存取数据库信息的途径。

数据库系统的应用

数据库的一些具有代表性的应用:

企业信息

销售: 用于存储客户、产品和购买信息。

会计: 用于存储付款、收据、账户余额、资产和其他会计信息。

人力资源:用于存储雇员、工资、所得税和津贴的信息,以及产生工资单。

生产制造:用于管理供应链,跟踪工厂中产品的生产情况、仓库和商店中产品的详细清单以及产品的订单。

联机零售:用于存储以上所述的销售数据,以及实时的订单跟踪,推荐品清单的生成,还有实时的产品评估的维护。

银行和金融

银行业: 用于存储客户信息、账户、贷款,以及银行的交易记录。

信用卡交易: 用于记录信用卡消费的情况和产生每月清单。

金融业: 用于存储股票、债券等金融票据的持有、出售和买入的信息;
		也可用于存储实时的市场数据,以便客户能够进行联机交易,公司能够进行自动交易。

大学

用于存储学生信息、课程注册和成绩。

航空业

用于存储订票和航班的信息。
航空业是最先以地理上分布得方式使用数据库的行业之一。

电信业

用于存储通话记录,产生每月账单,维护预付电话卡的余额和存储通信网络的信息。

数据库系统的目标

在文件处理系统中存储组织信息的主要弊端包括:

数据的冗余和不一致(data redundancy and inconsistency)。
数据访问困难(difficulty in accessing data)。
数据孤立(data isolation)。
完整性问题(integrity problem)。
原子性问题(atomicity problem)。
并发访问异常(concurrent-acccess anomaly)。
安全性问题(security problem)。

数据视图

数据库系统是一些互相关联的数据以及一组使得用户可以访问和修改这些数据的程序的集合。
数据库系统的一个主要目的是给用户提供数据的抽象视图。

数据抽象

通过如下几个层次是哪个的抽象来用户屏蔽复杂性,以简化用户与系统的交互:
物理层(physical level)。最低层次的抽象,描述数据实际上是怎样存储的。物理层详细描述复杂的底层数据结构。
逻辑层(logical level)。必物理层层次稍高的抽象,描述数据库中存储什么数据及这些数据间存在什么关系。
视图层(view level)。最高层次的抽象,只描述整个数据库的某个部分。

实例和模式

特定时刻存储在数据库中的信息的集合称作数据库的一个实例(instance)。
数据库的总体设计称作数据库模式(schema)。

类比:
数据库模式对应于程序设计语言中的变量声明(以及与之关联的类型的定义)。
每个变量在特定的时刻会有特定的值,程序中变量在某一时刻的值对应于数据模式的一个实例。

数据库系统的几种不同的模式:
物理模式(physical schema)在物理层描述数据库的设计,

逻辑模式(logical schema)则在逻辑层描述数据库的设计。

数据库在视图层也可以有几种模式,有时称为子模式(subschema),它描述了数据库的不同视图。

应用程序如果不依赖于物理模式,它们就被称为具有物理数据独立性(physical data independence),因此即使物理模式改变了它们也无需重写。

数据模型

数据库结构的基础是数据模型(data model)。
数据模型是一个描述数据、数据联系、数据语义以及一致性约束的概念工具的集合。
数据模型提供了一种描述物理层、逻辑层以及视图层数据库设计的方式。

数据模型可被划分为四类:

关系模型(relational model)。

关系模型用表的集合来表示数据和数据间的联系。

实体 - 联系模型(entity-relationship model)。

实体-联系(E-R)数据模型基于对现实世界的这样一种认识:现实世界由一组称作实体的基本对象以及这些对象间的联系构成。实体是现实世界中可区别与其他对象的一件“事情”或者一个“物体”。

基于对象的数据模型(object-based model)。

面向对象的数据模型可以看出是E-R模型增加了封装、方法(函数)和对象标识等概念后的扩展。
对象-关系数据模型结合了面向对象的数据模型和关系数据模型的特征。

半结构化数据模型(semistructured data model)。

半结构化的数据模型允许那些相同类型的数据项含有不同的属性集的数据定义。

数据库语言

数据库系统提供数据定义语言(data-definition language)来定义数据库模式,以及数据操纵语言(data-manipulation language)来表达数据的查询和更新。
两者构成了单一的数据库语言(如广泛使用的SQL语言)的不同部分。

数据操纵语言

数据操纵语言(Data-Manipulation Language, DML)是这样一种语言,它使得用户可以访问或操纵那些安装某种适当的数据模型组织起来的数据。

访问类型:

对存储在数据库中的信息进行检索。
向数据库中插入新的信息。
从数据库中删除信息。
修改数据库中存储的信息。

两类数据操纵语言:
过程化 DML(procedural DML)要求用户指定需要什么数据以及如何获得这些数据。
声明化 DML(declarative DML)(也称为非过程化DML)只要求用户指定需要什么数据,而不指明如何回的这些数据。

查询(query)是要求对信息进行检索的语句。DML中涉及信息检索的部分称作查询语言(query language)。
实践中常把查询语言和数据操纵语言作为同义词使用。

数据定义语言

数据库模式是通过一系列定义来说明的,这些定义由一种称作数据定义语言(Data-Definition language, DDL)的特殊语言来表达。
DDL也可用于定义数据的其他特征。

数据库系统所使用的存储结构和访问方式是通过一系列特殊的DDL语句来说明的,这种特殊的DDL称作数据存储和定义(data storage and definition)语言。

存储在数据库中的数据值必须满足某些一致性约束(consistency constraint)。

城约束(domain constraint)。每个属性都必须对应于一个所有可能的取值构成的域(例如,整数型、字符型、日期/时间型)。
参照完整性(referential integrity)。一个关系中给定属性集上的取值也在另一关系的某一属性集的取值中出现(参照完整性)。
断言(assertion)。一个断言就是数据库需要时刻满足的某一条件。
授权(authorization)。对于不同的用户在数据库中不同数据值上允许不同的访问类型。

常见的授权:
读权限(read authorization),允许读取数据,但不能修改数据;
插入权限(insert authorization),允许插入新数据,但不允许修改已有数据;
更新权限(updata authorization),允许修改,但不能删除数据;
删除权限(delete authorization),允许删除数据。

关系数据库

关系数据库基于关系模型,使用一系列表来表达数据以及这些数据之间的联系。
关系数据库也包括DML和DDL。

每个表有多个列,每个列有唯一的名字。
关系模型是基于记录的模型的一个实例。
基于记录的模型,之所以有此称谓,是因为数据库的结构是几种固定格式的记录。
每个表包含一种特定类型的记录。
每个记录类型定义固定数目的字段或属性。
表的列对应记录类型的属性。

数据操纵语言

SQL查询语言是非过程化的。
它以几个表作为输入(也可能只有一个),总是仅返回一个表。

select instructor.name
from instructor
where instructor.dept_name = ' History ';

查询可以涉及来自不止一个表的信息。

数据定义语言

SQL提供了一个丰富的DDL语言,通过它,我们可以定义表、完整性约束、断言,等等。

来自应用程序的数据库访问

SQL不支持如从用户那儿输入、输出到显示器,或者通过网络通信这样的动作。
这样的计算和动作必须用一种宿主语言来写,比如C、C++或Java,在其中使用嵌入式的SQL查询来访问数据库中的数据。
应用程序(application program)在这里是指以这种方式与数据库进行交互的程序。

两种途径:

一种是通过提供应用程序接口(过程集),它可以用来将DML和DDL的语句发送给数据库,在取回结果。

C语言:数据库连接(ODBC)标准;
Java语言:数据库连接(ODBJ)标准;

另一种是通过扩展宿主语言的语法,在宿主语言的程序中嵌入DML调用。
通常用一个特殊字符作为DML调用的开始,并且通过预处理器,称为DML预编译器(DML precomplier),来将DML语句转变成宿主语言中的过程调用。

数据库设计

设计过程

数据库设计的初始阶段是全面刻画预期的数据库用户的数据需求。
下一步,选择一个数据模型,并运用该选定的数据模型的概念,将那些需求转换成一个数据库的概念模式。
在这个概念设计(conceptual-design)阶段开发出来的模式提供了企业的详细概述。

在功能需求说明(specification of functional requirement)中,用户描述数据之上的各种操作(或事务),例如更新数据、检索特定的数据、删除数据等。

逻辑设计阶段(logical-design phrase),设计者将高层的概念模式映射到要使用的数据库系统的实现数据模型上;
然后设计者将得到的特定与系统的数据库模式用到物理设计阶段(physical-design phrase)中,在这个阶段中指定数据库的物理特性,这些特性包括文件组织的形式以及内部的存储结构。

大学机构的数据库设计

大学的主要特征

- 分为多个系。每个系有唯一的名字来标识,坐落在特定的建筑物中,有它的经费预算。
- 每个系有一个开设课程列表。每门课程有课程号,课程名,系名,学分,先修要求。
- 教师由个人唯一的标识号来标识。每位教师有姓名,所在的系,工资。
- 学生由个人唯一的标识号来标识。每位学生有姓名,主修的系,已修的学分数。
- 大学维护一个教室列表,详细说明楼名,房间号,容量。
- 大学维护开设的所有课程的列表。
每次开课由课程号,开课号,年,学期来标识。与之关联的有学期,年,楼名,房间号,时段号。
- 系有一个教学任务列表,说明每位教师的授课情况
- 大学有一个所有学生课程注册的列表,说明每位学生在哪些课程的哪次开课中注册了。

实体-联系模型

实体-联系(E-R)数据模型使用一组称作实体的基本对象,以及这些对象间的联系。
实体是现实世界中可区别于其他对象的一件“事情”或一个“物体”。

数据库中实体通过属性(attribute)集合来描述。

联系(relationship)是几个实体之间的关系。
同一类型的所有实体的集合称作实体集(entity set),同一类型的所有联系的集合称作联系集(relationship set)。

数据库的总体逻辑结构(模式)可以用实体-联系图(entity-relationship diagram, E-R图)进行图形化表示。

建模语言(Unified Modeling Language, UML)。

基于UML的符号中,E-R图如下表示:
实体集用矩形框表示,实体名在头部,属性名列在下面。
联系集用连接一对相关的实体集的菱形表示,联系名放在菱形内部。

在这里插入图片描述
除了实体和联系,E-R模型还描绘了数据库需遵守的对其内容的某些约束:
一个重要的约束是映射基数(mapping cardinality),它表示通过某个联系集能与一实体进行关联的实体数目。

规范化

规范化的过程:它的目标是生成一个关系模式集合,使我们存储信息时没有不必要的冗余,同时又能很轻易地检索数据。

这种方法是设计一种符合适当的范式(normal form)的模式,为确定一个关系模式是否符合想要的范式,我们需要额外的关于用数据库建模的现实世界中机构的信息。
最常用的方法是使用函数依赖(functional dependency)。

一个不好的设计可能会包括如下不良特性:
信息重复。
缺乏表达某些信息的能力。

数据存储和查询

数据库系统的功能部件大致可分为存储管理器和查询处理部件。

存储管理器

存储管理器是数据库系统中复杂在数据库中存储的底层数据域应用程序以及向系统提交的查询之间提供接口的部件。
存储管理器复杂数据库中数据的存储、检索和更新。

存储管理部件包括:

权限及完整性管理器(authorization and integrity manager),它检测是否满足完整性约束,并检查试图访问数据的用户的权限。

事务管理器(transaction manager),它保证即使发生了故障,数据库也保持在一致的(正确的)状态,并保证并发事务的执行不发生冲突。

文件管理器(file manager),它管理磁盘存储空间的分配,管理用于表示磁盘上所存储信息的数据结构。

缓冲区管理器(buffer manager),它负责将数据从磁盘上取到内存中来,并决定哪些数据应被缓冲存储在内存中。

数据文件(data files),存储数据库自身。

数据字典(data dictionary),存储关于数据库结构的元数据,尤其是数据库模式。

索引(index),提供对数据项的快速访问。

查询处理器

查询处理器组件包括:

DDL解释器(DDL interpreter),它解释DDL语句并将这些定于记录在数据字典中。

DML编译器(DML compiler),将查询语言中的DML语句翻译为一个执行方案,包括一系列查询执行引擎能理解的低级指令。

查询执行引擎(query optimization),执行由DML编译器产生的低级指令。

事务管理

事务(transaction)是数据库用于中完成单一逻辑功能的操作集合。
每一个事务是一个既具有原子性又具有一致性的单元。

原子性和持久性的保证是数据库系统吱声的职责,确切地说,是恢复管理器(recovery manager)的职责。

故障恢复(failure recovery),即检测系统故障并将数据库恢复到故障发生以前的状态。

并发控制管理器(concurrency-control manager)控制并发事务间的相互影响,保证数据库一致性。

事务管理器(transaction manager)包括并发控制管理器和恢复管理器。

数据库体系结构

系统体系结构
在这里插入图片描述
两层和三层体系结构
在这里插入图片描述

数据库挖掘与信息检索

数据挖掘指半自动地分析大型数据库并从中找出有用的模式的过程。
数据库中发现的某些类型的知识可用一套规则来表示。
查询非结构化的文本数据称为信息检索。

特种数据库

基于对象的数据模型

对象-关系数据模型(object-relational data model),这是一个将面向对象数据模型和关系数据模型的特定结合在一起的数据模型。
它扩展了传统的关系模型,增加了新的特征如结构和集合类型,以及面向对象特性。

半结构化数据模型

半结构化数据模型允许相同类型的数据项有不同的属性集的数据说明。

数据库用户和管理员

数据库用户和用户界面

  • 无经验用户 是默认经验的用户,他们通过激活事先已经写好的应用程序同系统进行交互。
  • 应用程序员 是编写应用程序的计算机专业人员。
  • 老练的用户 不通过编写程序来同系统交互,而是用数据库查询语言或数据分析软件这样的工具来表达他们的要求。
  • 专门的用户 是编写专门的、不适合与传统数据处理框架的数据库应用的富有经验的用户。

数据库管理员

使用DBMS一个原因是可对数据和访问这些数据的程序集中控制。
对系统集中控制的人称作数据库管理员(DataBase Administrator, DBA)。

DBA的作用包括:

  • 模式定义(schema definition)。DBA通过用DDL书写的一系列定义来创建最初的数据库模式。

  • 存储结构及存取方法定义(storage structure and sccess-method definition)。

  • 模式及物理组织修改(schema and physical-organization modification)。由数据库管理员(DBA)对模式和物理组织进行修改,以反映机构的需求变化,或为提高性能选择不同的物理组织。

  • 数据访问授权(granting of authorization for data access)。通过授予不同类型的权限,数据库管理员可以规定不同的用户各自可以访问的数据库部分。

  • 日常维护(routine maintenance)。数据库管理员的日常维护活动有:

      定期备份数据库
      确保正常运转时所需的空余磁盘空间,需要时升级磁盘空间
      监视数据库运行,保证不因个别用户而导致整体性能下降
    

学习参考资料:

《数据库系统概念》第6版

最后

以上就是健康柜子为你收集整理的《数据库系统概念》学习笔记——引言引言的全部内容,希望文章能够帮你解决《数据库系统概念》学习笔记——引言引言所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部