1. 数据库系统相关概念
- DBS包括DBMS和DB(数据库系统包括数据库管理系统和数据库)
- 在DBS中,DBMS和OS之间的关系是:DBMS调用OS
- 数据库系统与文件系统的主要区别是:文件系统不能解决数据冗余和数据独立性问题,而数据库系统可以解决
- 数据库系统特点:
- 数据共享
- 数据完整性
- 数据冗余较小
- 更新的原子性、并发访问、安全性
- 数据库是一个结构化的数据集合
- 由计算机硬件、操作系统、DBMS、数据库(DB)、应用程序及用户等组成的一个整体称:数据库系统(DBS)
数据:描述事物的符号记录。
数据库(DB):长期储存在计算机内、有组织的、可共享的大量数据的集合。
数据库管理系统(DBMS):位于用户与操作系统之间的一层数据管理软件。
数据库系统(DBS):由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员组成的存储、管理、处理和维护数据的系统。
文件系统的弊端:
-
数据冗余和不一致 Data redundancy and inconsistency
-
访问数据困难
-
数据隔离——多种文件和格式
-
完整性问题
完整性约束(例如,账户余额 > 0)被“隐藏”在程序代码中,而不是明确说明
难以添加新约束或更改现有约束
-
更新的原子性
失败可能会使数据处于不一致的状态,进行部分更新
资金从一个账户转移到另一个账户应该完成或根本不发生
-
多个用户的并发访问
需要同时访问才能提高性能
不受控制的并发访问会导致不一致
两个人同时读取和更新余额
-
安全问题
难以为用户提供对部分(但不是全部)数据的访问权限
2. 数据视图 View of data
数据库系统提供数据的抽象视图
隐藏数据如何存储和维护的某些复杂细节
通过多个抽象级别实现
2.1 三个抽象级别:
数据抽象中有三个抽象级别,分别为:
1、物理级别
物理级别是最低级别的数据抽象,它描述了数据实际存储在数据库中的方式;我们可以在此级别获取复杂的数据结构详细信息。
示例:假设我们将学生信息存储在学生表中
在物理级别,这些记录可以描述为内存中的存储块(字节,千兆字节,太字节等)。而,这些细节通常对程序员来说是隐藏的,一般情况下,我们是无法直观感受到的;这主要是提供给数据库供应商来研究的。
2、逻辑级别
describes what data are stored in the database, and the relationships among the data
describe entire database
逻辑级别是3级数据抽象体系结构的中间级别,它描述了数据库中存储的数据,比如:存储了什么数据、存储的数据之间有什么关系等。
示例:还是将学生信息存储在学生表中的例子
在逻辑级别,这些记录可以被描述为字段和属性以及它们的数据类型,它们之间的关系可以在逻辑上实现。这主要是程序员或者是数据库管理员考虑的,程序员通常就是在这个级别工作,设置数据表的结构、各种数据类型。
3、视图级别
视图级别是最高级别的数据抽象,它是描述了用户与数据库系统的交互,用户视图界面上可以数据的增删改查等操作。
2.2 实例和模式 Instances and Schemas
Schema – 数据库的整体设计 类似于程序中变量的类型信息
Instance – 在特定时间点存储在数据库中的信息的集合 类似于变量的值
三级模式:
人们为数据库设计了一个严谨的体系结构,数据库领域公认的标准结构是三级模式结构,它包括子模式、逻辑模式、物理模式,有效地组织、管理数据,提高了数据库的逻辑独立性和物理独立性。
1.1 用户级–> 外模式(子模式 Sub schemas)(反映了数据库系统的用户观)
外模式又称子模式或用户模式,对应于用户级。它是某个或某几个用户所看到的数据库的数据视图,是与某一应用有关的数据的逻辑表示。外模式是从模式导出的一个子集,包含模式中允许特定用户使用的那部分数据。用户可以通过外模式描述语言来描述、定义对应于用户的数据记录(外模式),也可以利用数据操纵语言(Data Manipulation Language,DML)对这些数据记录进行操作。
1.2 概念级–> 概念模式(模式 Logical schema)(反映了数据库系统的整体观)
概念模式又称模式或逻辑模式,对应于概念级。它是由数据库设计者综合所有用户的数据,按照统一的观点构造的全局逻辑结构,是对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图(全局视图)。它是由数据库管理系统提供的数据模式描述语言(Data Description Language,DDL)来描述、定义的。
包括三种模型:层次、关系、网状,其中关系使用最多
1.3 物理级 Physical schema –> 内模式(物理模式)(反映了数据库系统的存储观)
内模式又称存储模式,对应于物理级。它是数据库中全体数据的内部表示或底层描述,是数据库最低一级的逻辑描述,它描述了数据在存储介质上的存储方式和物理结构,对应着实际存储在外存储介质上的数据库。内模式由内模式描述语言来描述、定义的。
总结:
总之,数据按外模式的描述提供给用户;按内模式的描述存储在磁盘上;而概念模式提供了连接这两级模式的相对稳定的中间层,并使得两级中任意一级的改变都不受另一级的牵制。
2.3 两级映射:
数据库系统在三级模式之间提供了两级映像:模式/内模式的映像、外模式/模式的映像。
- 模式/内模式的映像:实现概念模式到内模式之间的相互转换。
- 外模式/模式的映像:实现外模式到概念模式之间的相互转换。
数据的独立性是指数据与程序独立,将数据的定义从程序中分离出来,由DBMS(数据库管理系统)负责数据的存储,从而简化应用程序,大大减少应用程序编制的工作量。
数据的独立性是由DBMS的二级映像功能来保证的。数据的独立性包括数据的物理独立性和数据的逻辑独立性。
什么是数据的物理独立性?
答:数据的物理独立性是指当数据库的内模式发生改变时,数据的的逻辑结构不变。由于应用程序处理的只是数据的逻辑结构,这样物理独立性可以保证,当数据的物理结构改变了,应用程序不用改变。但是,为了保证应用程序能够正确执行,需要修改概念模式/内模式之间的映像。
什么是数据的逻辑独立性?
答:数据的逻辑独立性是指用户的应用程序与数据库结构是相互独立的。数据的逻辑结构发生变化后,用户程序也可以不修改。但是,为了保证应用程序能够正确执行,需要修改外模式/概念模式之间的映像。
一句话总结一下:
通俗来讲就是如果改变了某个模式,只需要修改上一层的映像。即改变内模式,只需要修改模式/内模式映像(物理独立性),改变概念模式(逻辑结构),只需要修改外模式/模式映像(逻辑独立性)
2.4数据模型 Data Model
关系模型
实体-关系数据模型,主要用于数据库设计
基于对象的数据模型 面向对象 对象关系
半结构化数据模型 XML
其他较老的模型:网络模型 分层模型
关系数据模型:
用二维表来表示实体及实体之间联系的数据模型
关系模型是最重要的一种数据模型。关系数据库系统采用关系模型作为数据的组织方式。
关系模式的数据结构
关系模式是建立在严格的数学概念的基础上的。从用户观点看,关系模式由一组关系组成。每个关系的数据结构是一张规范的二维表。(注:表中没有表)
关系:一个关系对应通常说的一张表。
元组:表中的一行即为一个元组。
属性:表中的一列即为一个属性,给每一个属性起一个名称即属性名。
码:也称为码键。表中的某个属性组,它可以唯一确定一个元组。
域:域是一组具有相同数据类型的值的集合。属性的取值范围来自某个域。
分量:元组中的一个属性值。
关系模式:对关系的描述,一般表示为****关系名(属性1,属性2,属性3,…,属性n)
关系模式和关系的区别:
关系模式(Relational Scheme):它由一个关系名以及它所有的属性名构成。它对应二维表的表头,是二维表的构成框架(逻辑结构)。
关系(Relation):表示多个实体之间的相互关联,每一张表称为该关系模式的一个具体关系。它包括:关系名,表的结构和表的数据(元组)。
关系模式要求关系必须是规范化的,即要求关系必须满足一定的规范条件,这些规范条件中最基本的一条就是,关系的每一个分量必须是一个不可分的数据项,也就是说,不允许表中还有表。
关系模式的数据操纵和完整性约束
关系模式的数据操纵主要包括查询、插入、删除和更新数据。这些操作必须满足关系的完整性约束条件。关系的完整性约束条件包括三大类:实体完整性、参照完整性和用户定义的完整性。
关系模式的数据操纵是集合操作,操作对象和操作结果都是关系。即若干元组的集合,而不像格式化模型中那样是单记录的操作方式。另一方面,关系模式把存取路径向用户隐蔽起来,用户只要指出“干什么”或“找什么”,不必详细说明“怎么干”或“怎么找”,从而大大地提高了数据的独立性,提高了用户的生产率。
关系模式具有下列优点:
关系模型与格式化模型不同,它是建立在严格的数学概念的基础上的。
关系模型的概念单一。无论实体还是实体之间的联系都用关系来表示。对数据的检索和更新结果也是关系(表)。所以其数据结构简单、清晰,用户易懂易用。
关系模式的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。
3. Database Languages
Database system provides
Data Definition Language (DDL) to specify database schema
数据库定义语言
Data Manipulation Language (DML) to express database queries and updates
数据库操作语言-对应数据库查询和更新
DDL和DML共同构成了SQL
DDL
用于定义数据库模式(schema)的规范符号
DDL 编译器 (DDL compiler )根据 DDL 语句生成表,并将这些表的模式定义存储在数据字典(data dictionary)中
数据字典包含元数据 metadata(即关于数据的数据)
- 数据库模式 Database schema
- 完整性约束 Integrity constraints
- 授权 Authorization
DML
用于访问和操作由适当数据模型组织的数据的语言
- 信息检索 Retrieval of information
- 插入新信息
- 删除信息
- 修改信息
两类语言
过程式 Procedural——用户指定需要哪些数据以及如何获取这些数据
声明式(非过程式)Declarative (nonprocedural) ——用户指定需要哪些数据而不指定如何获取这些数据
SQL 是最广泛使用的非过程查询语言 (声明式)
SQL is both data definition language and data manipulation language. 对
SQL is both a declarative database language and a pure database language 错
访问
允许嵌入式 SQL 的语言扩展
允许将 SQL 查询发送到数据库的应用程序接口(例如 ODBC/JDBC)
4. 关系型数据库
- 关系数据库基于关系数据模型
- 数据和数据之间的关系由表的集合表示
- 包括 DML 和 DDL
- 大多数商业关系数据库系统使用 SQL 查询语言
5. 数据库设计
设计数据库一般结构的过程: 逻辑设计 物理设计 (没有视图)
- 逻辑设计——决定数据库模式。 数据库设计要求我们找到一个“好的”关系模式集合。
业务决策——我们应该在数据库中记录哪些属性?
计算机科学决策——我们应该拥有哪些关系模式以及属性应该如何在各种关系模式之间分布?
- 物理设计——决定数据库的物理布局
Worst:通过编程弥补糟糕的设计和有限的 SQL
Best:把时间花在设计和 SQL 上
6. Database Users and Administrator
数据库用户
Application programmers 应用程序程序员——通过 DML 调用与系统交互
Sophisticated users 高级用户——用数据库查询语言形成请求
Specialized users 专业用户 – 编写不适合传统数据处理框架的专业数据库应用程序
Naive users – 调用以前编写的永久应用程序之一
数据库管理员
数据库管理员的职责包括:
- 模式定义
- 存储结构和访问方法定义
- 授予用户访问数据库的权限
- 指定完整性约束
- 充当与用户的联络人
- 监控性能并响应需求的变化
7. DBS 结构
存储管理
数据库数据通常存储在辅助内存(硬盘)上,使用文件系统存储管理器是一个程序模块,负责与文件系统交互高效存储、检索和更新数据
授权和完整性管理器
测试完整性约束的满足情况并检查用户访问数据的权限
事务管理器
确保数据库在系统故障的情况下保持一致状态 确保并发事务执行继续进行而不会发生冲突
文件管理器
在磁盘存储上分配空间 管理用于表示存储在磁盘上的信息的数据结构
缓冲区管理器
从磁盘存储中获取数据到主存 决定在主存中缓存哪些数据
存储管理器实现以下数据结构:
数据文件:存储数据库本身
数据字典:存储有关数据库结构的元数据,特别是数据库的模式
索引:提供对具有特定值的数据项的快速访问
查询
DDL 解释器 解释数据字典中的 DDL 语句和记录定义
DML 编译器 将 DML 语句翻译成包含低级指令的评估计划
查询评估引擎 执行 DML 编译器生成的低级指令
1.解析和翻译 2.优化 3.评估
1.Parsing and translation 2.Optimization 3.Evaluation
题目:
1
DBMS是指( )
- 数据库
- 数据库系统
- 数据库管理系统
- 数据处理系统
2
数据库是指在计算机系统中按照一定的数据模型组织、存储和应用的( )
- 文件的集合
- 数据的集合
- 命令的集合
- 程序的集合
3
文件系统和数据库系统的最大区别是( )
- 数据共享
- 数据独立
- 数据冗余
- 数据结构化
4
数据库系统中的软件是指( )
- 数据库管理系统
- 应用程序
- 数据库
- 数据库管理员
5
由计算机硬件、操作系统、DBMS、数据库、应用程序及用户等组成的一个整体称为( )
- 文件系统
- 数据库系统
- 软件系统
- 数据库管理系统
6
以下关于DB、DBMS、DBS三者之间的关系的叙述中,正确的是( )。b
- DB包括DBMS和DBS
- DBS包括了DBMS和DB
- DBMS包括DB和DBS
- DB、DBMS和DBS无关
7
在DBS中,DBMS和OS之间的关系是( )
- 并发运行
- 相互调用
- OS调用DBMS
- DBMS调用OS
8
数据库系统与文件系统的主要区别是( )
- 数据库系统复杂,而文件系统简单
- 文件系统不能解决数据冗余和数据独立性问题,而数据库系统可以解决
- 文件系统只能管理程序文件,而数据库系统能够管理各种类型文件
- 文件系统管理的数据量较少,而数据库系统可以管理庞大的数据量
9
下列四项中,不属于数据库系统特点的是( )
- 数据共享
- 数据完整性
- 数据冗余较小
- 数据独立性低
10
下列有关数据库的描述正确的是( )
- 数据库是一个DBF文件
- 数据库是一个关系
- 数据库是一个结构化的数据集合
- 数据库是一组文件
用二维表来表示实体及实体之间联系的数据模型称为( )
- 实体-联系模型
- 层次模型
- 网状模型
- 关系模型
数据模型是( )
- 文件的集合
- 记录的集合
- 数据的集合
- 记录及其联系的集合
以下关于数据模型的描述中,错误的是( )
- 数据模型表示的是数据库本身
- 数据模型表示的是数据库的框架
- 数据模型是客观事物及其联系的描述
- 数据模型能够以一定的结构形式表示出各种不同数据之间的联系
在数据库系统的组织结构中,把概念数据库与物理数据联系起来的映射是( )
- 子模式/模式
- 物理模式/子模式
- 模式/物理模式
- 模式/子模式
物理模式是系统程序员用一定的( )形式组织起来的一个存储文件和联系手段。
- 记录
- 数据
- 视图
- 文件
三个模式反映了对数据库的三种不同观点,以下说法中正确的是( )
- 物理模式表示了概念级数据库,体现了对数据库的总体现。
- 子模式表示了物理级数据库,体现了对数据库的存储观。
- 子模式表示了用户级数据库,体现了对数据库的用户观。
- 子模式表示了用户级数据库,体现了对数据库的存储观。
在数据库的三级模式中,只有( )才是真正存储数据的。
- 模式
- 子模式
- 物理模式
- 用户模式
逻辑数据独立性是指( )。
- 模式变、用户不变
- 模式变、应用程序不变
- 应用程序变,模式不变
- 子模式变,应用程序不变
模式是数据库中数据的( )
- 全局物理结构
- 局部物理结构
- 全局逻辑结构
- 局部逻辑结构
目前,数据库系统广泛使用的数据模型是( )
- 层次模型
- 网状模型
- 关系模型
- 概念模型
要保证数据库的数据独立性,需要修改的是( ) 。
A.模式与外模式
B.模式与内模式
C.三级模式之间的两层映射
D.三层模式
要保证数据库的逻辑数据独立性,需要修改的是( ) 。
A.模式与外模式之间的映射
B.模式与内模式之间的映射
C.模式
D.三级模式
下述( )不是DBA数据库管理员的职责 。
A.完整性约束说明
B.定义数据库模式
C.数据库安全
D.数据库管理系统设计
关于数据库系统和数据库管理系统,下列说法正确的是
A. 数据库系统是软件产品,而数据库管理系统不仅仅是软件产品
B. 数据库系统和数据库管理系统指的是不同软件产品
C. 数据库系统和数据库管理系统指的是同一软件产品
D. 数据库管理系统是软件产品,而数据库系统不仅仅是软件产品
废弃笔记
这里的笔记是PPT上没有但是书上有的
这里的笔记是PPT上没有但是书上有的
这里的笔记是PPT上没有但是书上有的
数据模型:
描述的是数据的共性内容,是对现实世界数据特征的抽象,用于描述一组数据的概念和定义。数据模型是数据库中数据的存储方式,是数据库系统的基础。
组成要素:
数据模型通常由数据结构、数据操作和数据约束三个要素组成。
1)数据结构描述的是系统的静态特性,即数据对象的数据类型、内容、属性以及数据对象之间的联系。
2)数据操作描述的是系统的动态特性,是对各种对象的实例允许执行的操作的集合,包括操作以及有关的操作规则。
3)数据约束描述数据结构中数据间的语法和语义关联,包括相互制约与依存关系以及数据动态变化规则,以保证数据的正确性、有效性与相容性。
数据模型是记录及其联系的集合
数据模型表示的是数据库的框架,数据模型是客观事物及其联系的描述,数据模型能够以一定的结构形式表示出各种不同数据之间的联系。
数据操作引出三类数据模型:
-
概念模型:也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计。(通俗来说就是画ER图)
-
逻辑模型:逻辑模型主要包括网状模型、层次模型、关系模型、面向对象模型等,按计算机系统的观点对数据建模,用于DBMS实现。
层次模型:数据库最早使用的数据模型。特点:有且仅有一个结点没有父结 点,它称作根结点;其他结点有且仅有一个父结点。
网状模型:以网状结构表示实体与实体之间的联系。
关系模型:用二维表结构来表示实体及实体间联系的模型,并以二维表格的形式组织数据库中的数据。关系模型是建立在严格的数学概念基础上的;关系模型的概念单一,统一用关系来表示实体以及实体之间的联系,对数据的检索和更新结果同样也是用关系来表示;关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。
-
物理模型:是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。(逻辑模型就是由多张表构成的)