数据库系统概念笔记 进度:第一章

概念

  • 数据库系统(DBS database system)
    DBS是一些项目关联的数据以及一组使得用户可以访问和修改这些数据的程序的集合。
    • 数据库(DB):数据的集合。
    • 数据库管理系统(DBMS):由一个相互关联的数据的集合和一组用以访问这些数据的程序的组成。DBMS是一个软件,提供一个方便有效的方法来存储和检查数据库DB。
      DBS包括DB和DBMS
      DBS层次结构:
      层次结构

数据库系统的目标

使用DBS的目的

  • 文件系统的弊端(file system)
    • 数据的冗余(redundancy)和不一致 (inconsistency)
      • 文件和程序由不同的程序员创建,不同文件有不同的结构,不同程序可能采用不同的程序设计语言相同的信息可能在几个文件中重复存储,这种冗余除了导致存储和访问开销增大外,还可能导致数据不一致。
      • 在不同文件中重复信息,有一处修改了另一处可能没有被修改。 例如:使用不同的编程语言,导致不同的文件格式,使访问开销增大
    • 数据访问困难(difficulty in accessing data)
      由于数据分散在不同的文件中,这些文件又可能具有不同的格式,编写新应用程序来检索适当数据是很困难的。
    • 数据孤立(data isolation)
      数据分散在不同文件中,文件又有不同的格式。
    • 完整性问题(integrity problem)
      • 数据库中所存储数据的值必须满足某些特定的一致性约束。例如,某类银行账户的余额永远不能低于某个预定的值。
      • 开发者通过在各种不同应用程序中加入适当的代码来增强系统中的这些约束。当新的约束加入时,很难通过修改程序中加入适当的代码来增强系统中的这些约束当约束设计不同文件中的多个数据项时,问题变得更加复杂。。
    • 原子性问题(atomicity problem)
      故障发生时,数据应被恢复到故障发生以前的一致性状态,更新操作不能被分割、中断。例如两个银行借钱的过程中突然断电,如果没有遵守原子性,可能钱就蒸发了.
    • 多用户的并发访问(concurrent access by multiple users)
      为了提高系统的总体性能和加快响应速度,许多系统允许多个用户同时更新数据。并发的更新操作相互影响,可能导致数据的不一致。
    • 安全性问题(security problem)
      所有用户不能访问数据库系统的全部数据。

数据视图

数据抽象:数据库系统的一个主要目的是给用户提供抽象视图

数据抽象的层次:开发人员为了不同“智商”的用户屏蔽复杂性,简化用户与系统的交互。

  • 物理层(physical level):记录可能被描述为连续存储单元组成的存储块。数据库系统为程序设计人员屏蔽低层的存储细节。(机器层面,数据是怎么存储的)
  • 逻辑层(logical level):逻辑层,记录通过类型定义描述,同时定义这些记录类型的相互关系。程序设计人员&DB管理员常基于此层次工作。(人可以理解,存储什么数据和数据间存在什么关系
  • 视图层(view level):计算机用户看见的是对其屏蔽了数据类型细节的一组应用程序。并提供安全性机制。(屏蔽数据库的数据细节)
    抽象层次
    实例(instance)和模式(schema)
    实例:特定时刻存储在数据库中的信息的集合。
    模式:数据库的总体设计。
    • 物理模式(physical schema):在物理层描述数据库的设计,隐藏在逻辑模式之下。
    • 逻辑模式(logical schema):在逻辑层描述数据库的设计。
    • 子模式(sub schema):描述数据库的不同视图,可以有多个视图。
      物理数据独立性:应用程序不依赖于物理模式,即使物理模式改变了也无需重写。

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

描述工具:

  • data
  • data relations 数据联系
  • data semantics 数据语义
  • data constraints 数据约束

数据模型划分为以下几类:

  • 关系模型(relation model)(主流)
  • 实体-联系模型(entity-relationship data model)
    广泛用于数据库设计
  • 基于对象数据模型(object-based data model)(E-R扩展)
  • 半结构化数据模型(semistructured data model)
    XML:可扩展标记语言 被广泛地用来表示半结构化数据。
  • 网状数据模型(network model) 用得少
  • 层次数据模型(hierarchical model) 用得少

关系模型

  • 关系模型用表的集合来表示数据和数据间联系。每个表有多个列,每列有唯一的列名。
  • 关系模型是基于记录模型的一种,基于记录模型的名称的由来是由于它用一些固定格式的记录来描述数据库,记录的类型可以有若干种。每张表包含某种特定类型的记录,每个记录类型定义了固定数目的字段或属性。
  • 表格的列对应于记录类型的属性。
  • 关系数据模型是使用最广泛的数据模型。

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

数据库语言

数据库系统提供两种不同类型的语言:数据定义语言(DDL)用于定义数据库模式,数据操纵语言(DML)用于表达数据库的查询和更新。
实际上,数据定义和数据操纵语言并不是两种分离的语言,它们简单地构成了单一的数据库语言的一部分,如广泛使用的SQL语言。

DDL
DDL以一些指令作为输入,生成一些输出,DDL的输出放在数据字典(data dictionary)中。数据字典包含元数据(metadata):数据库模式,完整性约束,授权。

DML
数据操纵语言(DML)是这样一种语言,它使得用户可以访问或操纵那些按照某种适当的数据模型组织起来的数据,有以下访问类型:

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

两类基本的数据操纵语言:
过程化DML(procedural),要求用户指定需要什么数据以及如何获得这些数据。(C,JAVA)
声明式DML(nonprocedural),只要求用户指定需要什么数据,并不指明如何获得这些数据(数据库系统必须计算出一种访问数据的高效途径,只给出查找条件。

在这里插入图片描述
有一些计算无法通过任何SQL查询得到。这样的计算必须用一种宿主语言来写,如Cobol,,C,C++或Java,在其中使用嵌入式的SQL查询来访问数据库中的数据。
两种途径实现:一种是通过提供应用程序接口,将SQL语句发送给数据库,再取回结果;
另一种是通过扩展宿主语言的语法,在宿主语言的程序中嵌入DML调用。应用程序在这里指的是用来与数据库进行交互的程序,在银行系统的例子里面,就是那些产生应付支票,借、贷账户或者在账户间移动资金的程序。

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

数据库设计

数据库设计主要是数据库模式的设计

  • 逻辑设计
  • 物理设计

设计者将高层的概念模式映射到要使用的数据库实现数据模型上,然后将得到的系统数据库模式用在物理设计阶段,在这里指定了数据库的物理特征,这些特征包括文件组织的形式以及内部的存储结构。

数据库用户和管理员

数据库系统的一个主要目标是从数据库中检索信息和往数据库汇总存储新信息。使用数据库的人员被分为数据库用户和数据库管理员。根据所期望的与系统交互方式的不同,数据库系统的用户可以分为四种不同类型,系统为不同类型的用户设计了不同类型的用户界面

  • 无经验的用户(naive user):通过激活事先写好的应用程序与系统进行交互
  • 应用程序员(application programmer):编写应用程序的计算机专业人员
  • 富有经验的用户(sophisticated user):不通过编写程序来与系统交互,而是用数据库查询语言来表达他们的要求
  • 专门的用户(specialized user):编写专门的、不适合于传统数据处理模式的数据库应用的富有经验的用户。这样的应用包括:计算机辅助设计系统,知识库和专家系统,存储复杂结构数据的系统等

数据库管理员(database administrator,DBA):对数据库系统进行集中控制的人,其作用为:

  • 模式定义(Schema definition)
  • 存储结构及存取方式定义模式及物理组织的修改数据访问授权(Storage structure and access method definitionGranting user authority to access the databaseSpecifying integrity constraints)
  • 定义完整性约束与用户进行联络(Acting as liaison with users)
  • 监控性能,并根据需求进行变更(Monitoring performance and responding to changes inrequirements)

数据库系统结构

数据库系统的功能部件大致可分为

  • 存储管理器(storage management)
    存储管理器是在数据库中存储的低层数据与应用程序以及向系统提交的查询之间提供接口的程序模块。
    存储管理器应负责与文件管理器进行交互(原始数据通过文件系统存储在磁盘上,文件系统通常由传统的操作系统提供,存储管理器将不同的DML语句翻译为底层文件命令)负责数据库中的数据的存储、检索和更新。

    存储管理器部件包括:

    • 权限及完整性管理器(authorization and integrity manager):权限及完整性管理器:检测是否满足完整性约束,检查试图访问数据的用户的权限
    • 事务管理器(transaction manager):权限及完整性管理器:检测是否满足完整性约束,检查试图访问数据的用户的权限
    • 文件管理器(file manager):管理磁盘空间的分配,管理用于表示磁盘上所存储信息的数据结构
    • 缓冲管理器(buffer manager):负责将数据从磁盘上去到内存中,并决定哪些数据硬背缓冲存储到内存中

    存储管理器实现了几种数据结构:

    • 数据文件,存储数据库自身
    • 数据字典,存储关于数据库结构的元数据,尤其是数据库模式索引,提供对数据项的快速访问
  • 查询处理器(query processing)

    • DDL解释器(interpreter),解释DDL语句并将这些定义记录在数据字典中
    • DML编译器(compiler),将查询语言中DML语句翻译为一个计算方案,包括一系列查询计算引擎能理解的低级指令查询计算引擎,执行由DML编译器产生的低级指令

事务管理

事务(transaction)是数据库应用中完成单一逻辑功能的操作集合,是一个既具有原子性又具有一致性的单元
事务管理部件(transaction-management component)的任务就是即使发生了故障和失败也要保证原子性和持久性。
并发控制管理控制(concurrency-control manager)并发事务间的相互影响,保证数据库的一致性。

系统体系结构:
系统体系结构
数据库体系结构
数据库体系结构很大程度上取决于数据库系统所运行的计算机系统,可以是:

  • Centralized集中式
  • Client-server客户-服务器式
  • Parallel (multi-processor)并行
  • Distributed分布式
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值