数据库系统原理学习笔记(一)-基本概念
1.数据管理技术的发展
- 分为四个阶段:人工管理阶段、文件系统阶段、数据库阶段和高级数据库阶段
(1)人工管理阶段
此阶段只有程序,没有文件概念;一组数据对应一个程序
人工管理阶段数据管理的特点
①数据不保存在计算机内;(只有RAM(随机存取存储器),没有ROM(只读存储器))
②没有专用的软件对数据进行管理;(程序和数据放在一起,相互影响)
③只有程序的概念,没有文件的概念:(没有数据库文件)
④数据面向程序。(一组数据对应一个程序)
(2)文件系统阶段
数据以“文件”形式可长期保存在外部存储器的磁盘上。
程序与数据之间具有“设备独立性”(程序只需用文件名可与数据打交道,不必关心数据的物理位置)。
文件系统阶段,对数据的操作以记录为单位。
文件系统三个缺陷
①数据冗余,文件之间缺乏联系,造成每个应用程序都有对应的文件,有可能同样的数 据在多个文件中重复存储文件
Student (学生信息):
学号 | 姓名 |
---|---|
001 | 张三 |
002 | 李四 |
文件Score (成绩信息):
学号 | 姓名 | 成绩 |
---|---|---|
001 | 张小三 | 88 |
002 | 李四 | 99 |
②数据不一致。这是由于数据冗余造成的。
文件Student (学生信息):
学号 | 姓名 |
---|---|
001 | 张三 |
002 | 李四 |
文件Score (成绩信息):
学号 | 姓名 | 成绩 |
---|---|---|
001 | 章三 | 88 |
002 | 李四 | 99 |
③数据联系弱。这是由于文件之间相互独立,缺乏联系造成的
(3)数据库阶段
1968年-1970年发生的数据库阶段的标志的三件大事:
①1968年,美国IBM公司推出层次模型的IMS系统
②1969年,美国 CODASYL组织发布DNTG报告,提出网状模型。
③1970年,美国BM公司的E.FCod连续发表论文,提出关系模型奠定了关系数据库的理论基础
数据模型:数据之间的逻辑关系,属于逻辑模型。包括:层次、网状和关系模型
(4)高级数据库阶段
2.数据库阶段数据管理的特点
(1)采用数据模型表示复杂的数据结构。
(2)有较高的数据独立性。
3)数据库系统为用户提供了方便的用户接口。
用户可以使用查询语言或终端命令操作数据库,也可以用程序方式操作数据库
(4)提供四方面的数据控制功能:
①数据库的恢复。
②数据库的并发控制
对程序的并发操作加以控制,防止数据库被破坏,杜绝提供给用户不正确的数据。
③数据的完整性。(如学生成绩不能大于100分)
④数据安全性。
(5)增加了系统的灵活性,对数据的操作不一定以记录为单位,可以以数据项为单位
3.数据库(DBA)
是长期存储在计算机内、有组织的、统一管理的相关数据的集合
DB的特点
DB能为各种用户共享、具有较小冗余度、数据间联系紧密又有较高的数据独立性等。(数据库中的数据具有较小冗余度、较高的数据独立性和用户共享等特点)。
4.数据库管理系统(DBMS)
是位于用户与操作系统(OS)之间的一层数据管理软件,它为用户或应用程序提供访 问DB的方法,包括DB的建立、查询、更新及各种数据控制。
5数据库应用系统(DBAS)
在某一特定领域的数据库软件系统,它包括:DB、数据库DBMS、应用程序(使用高 级语言编写的)等
6.数据库系统(DBS)
是实现有组织地、动态地存储大量关联数据、方便多用户访问的计算机硬件、软件和数 据资源组成的系统,即它是采用数据库技术的计算机系统。
(DBS:硬件、DB、OS、DBMS、DBAS、管理员)
数据库技术:是研究数据库的结构、存储、设计、管理和使用的一门软件学科。
7.高级数据库阶段
(1)面向对象(OOP)的概念建模
(2)开放数据库互连(ODBC技术)
二、数据描述
分为三个阶段
(1)数据描述三个阶段
概念设计、逻辑设计和物理设计。
(2)概念设计
概念设计是根据用户的需求设计数据库的概念结构,它以规范的形式,表达对用户需求 所涉及事物的理解。
如:实体名1(属性,属性12,…,属性lm)
实体名2(属性,属性2,…,属性2a)
注:波浪线表示属性1在实体名1中与属性1是是一个属性,它反映两个实体之 间的联系。
(3)逻辑设计
数据库逻辑设计是根据概念设计的结果设计数据库的逻辑结构,即表达方式 与实现方法
2概念设计中的术语
(1)实体:客观存在,可以相互区别的事物称为实体。
(2)实体集:性质相同的同类实体的集合。实体集简称实体
(3)属性:实体有很多特性,每一个特性称为属性。
(4)实体标识符(关键码或键):能惟一标识实体的属性或属性集
以上概念均有类型和值之分。
3逻辑设计中的术语
(1)字段(数据项):标记实体属性的命名单位称为字段或数据项。
(2)记录:字段的有序集合。
(3)文件:同一类记录的集合(实体集)。(一个文件对应一张二维表( Fox Base+)
(4)关键码:能惟一标识文件中每个记录的字段或字段集
以上概念均有类型和值之分。
4概念设计和逻辑设计中术语的对应关系
概念设计 逻辑设计
实体 记录
属性 字段(数据项)
实体集 文件
实体标识符 关键码
5.实体之间联系的元数
与一个联系有关的实体集个数。常用二元联系。二元联系的类型有三种:一对一联系、一对多联系、多对多联系联系的元数:与一个联系有关的实体集个数
注意:一元联系。如:零件由子零件组成。
6.一对一联系
如果实体集E1中每个实体至多和实体集E2中的一个实体有联系,反之亦然,那么实体集E1和E2的联系称为“一对一联系”,记为“1:1”
7.一对多联系
如果实体集E1中每个实体与实体集E2中任意个(零个或多个)实体间有联系,而E中每个实体至多和E1中一个实体有联系,那么称E1对E2的联系是“一对多联系”,记为“1:N”。
8.多对多联系
如果实体集E1中每个实体可以与实体集E2中任意个(零个或多个)实体间有联系
反之亦然,那么称E1和E2的联系是“多对多联系”,记为“M:N”。
9.记录类型
记录类型是一种数据类型,如:学生有姓名、学号、性别等内容。
记录类型定义:
type记录名= record
域名1:类型1;
域名2:类型2;
域名n:类型n
三、数据抽象的级别
1.数据模型
模型:现实世界的抽象
数据模型:描述数据库的结构和语义,对现实世界的数据进行抽象从现实世界的信息到数据库存储的数据以及用户使用的数据是一个逐步抽象过程,根据数据抽象的级别定义了四种模型:概念模型、逻辑模型、外部模型和内部模型
四种模型之间的相互关系如图。
(1)概念模型
表达用户需求观点的数据全局逻辑结构的模型。概念模型的抽象级别最高。
现在采用的概念模型主要是实体联系(ER)模型。
E:Entity(实体),用矩形表示
A: Attribute(属性),用椭圆形表示:
R: Relationship(联系),用菱形表示
直线:表示连接实体与属性、实体与联系;
注意:
①实体类型:问题的对象;
②联系类型(实体间联系)
③联系类型可以没有属性,也可能有属性。
(2)逻辑模型
表达计算机实现观点的DB全局逻辑结构的模型
(3)外部模型
表达用户使用观点的DB局部逻辑结构的模型。
(4)内部模型
表达DB物理结构的模型。
2.数据抽象的过程、即数据库设计的过程具体步骤:
(1)根据用户需求,设计数据库的概念模型;
(2)根据转换规则,把概念模型转换成数据库的逻辑模型;
(3)根据用户的业务特点,设计不同的外部模型,给程序员使用
(4)数据库实现时,要根据逻辑模型设计其内部模型。
数据库设计(描述)通常分为概念设计、逻辑设计(2和3步)和物理设计三个阶段。
3.常用的概念模型是实体联系(ER)模型,ER模型主要用ER图来表示。
4.逻辑模型的分类:层次模型、网状模型、关系模型等。
(1)层次模型:用树型(层次)结构表示实体及实体间联系的数据模型。树中的节点 是记录类型
其关系模式:
S(S#, SNAME, AGE, SEX)
T(T#, TNAME, TITLE)
SC(S#, C#, SCORE)
层次模型有两个缺陷:
①只能表示1:N联系(即上一层记录类型和下一层记录类型之间的联系是1:N联系)。
②由于层次顺序的严格和复杂,引起数据的查询和更新操作复杂,因此应用程序的编写 也比较复杂。
1969年,美国IBM公司的IMS系统是典型的层次模型系统
(2)网状模型:用有向图结构表示实体及实体间联系的数据模型
其关系模式
S(S#, SNAME, AGE, SEX)
C(C#, CNAME)
SC(S#, C#, SCORE)
T(T#, TNAME, TITLE)
1969年, CODASYL组织提出DBTG报告中的数据模型是网状模型的主要代表 网状模型中,M:N联系也容易实现(一个M:N联系可拆成两个1:N联系),查询 效率高
(3)关系模型:是由若干个关系模式组成的集合。关系模式即记录类型,它的实例称 为关系,每个关系实际上是一张二维表格
例如:关系模式:R(A,B,C.而如下的为R的一个关系
A | B | C |
---|---|---|
1 | 2 | 3 |
2 | 4 | 6 |
例如:
(1)关系模型(ER图),如下ER图。
(2)关系模式:
S(S#. SNAME AGE, SEX)
C(C#. CNAME)
Sc(S#,C#, SCORE)SC实际上称为一个联系类型转换成来
T(T#. TNAME, TITLE)
(3)对应的关系如下:
关系定义
R(U,D,DOM,F),R称为关系名,U属性集,D为域,F为依赖,DOM为属性向域的映射的集合。(数学中的关系定义)
关系模型和层次、网状模型的最大差别是用关键码而不是用指针导航数据,其表格简单,用户易懂
1970年,美国BM公司的 E F Codo连续发表论文,提出关系模型,奠定了关系数据库的理论基础。关系数据库是目前的主流数据库。
其可分解成四个关系模式
S(S#. SNAME AGE, SEX)
C(C#, CNAME)
Sc(#,C#, SCORE) SC实际上称为一个联系类型转换成来
T(T#, TNAME, TITLE)
关系描述格式:
关系名(属性1,属性2,…,属性n)
(1)一个关系模型由若干个关系模式组成
(2)一个关系模式对应一个记录类型:
(3)关系模式的实例称为关系,每个关系实际上是一张二维表。
(4)联系类型相关关系模式属性由联系类型属性和与之联系的实体类型的键一起组合而成
外部模型中的模式称为视图
外部模型具有如下特点:
(1)外部模型是逻辑模型的一个逻辑子集
(2)外部模型独立于硬件,依赖于软件;
(3)外部模型反映了用户使用数据库的观点
外部模型具有如下优点
(1)简化了用户的观点
(2)有助于数据库的安全性保护
(3)外部模型是对概念模型的支持。
6.内部模型
内部模型也称物理模型;是数据库最低层的抽象;它描述数据在磁盘或磁带上的存储方式(存储结构)、存取设备(外存空间分配)和存取方法(主索引和辅助索引)。
7.三级模式
从用户(或应用程序)到数据库之间,DB的数据结构描述有三个层次:外部模型、逻辑模型和内部模型。这三个层次用DB的数据定义语言(DDL)(DataDefinition Language.DDL)定义,定义的内容称为“模式”。
DDL:创建( create)数据库、表、视图、索引、存储过程、触发器、规则等数据库对象的语言
对应为:外模式、逻辑模式、和内模式
(1)外模式:用户与数据库系统的接口,是用户用到的那部分数据的描述。外模式由若干个记录类型组成。外部模型为的模式也称为“视图”。
(2)逻辑模式:是数据库中全部数据的整体逻辑结构的描述,也称为“模式”。
(3)内模式:是数据库在物理存储方面的描述
注意:外模式是逻辑模式的子集
三级模式体系结构具有如下的特点
(1)用户使用DB的数据操纵语言语句对数据库进行操作
有了外模式后,程序不必关心逻辑模式,只与外模式发生关系,按照外模式的结构存储和操纵数据,实际上,外模式是逻辑模式的子模式。
(2)逻辑模式必须不涉及到存储结构;
(3)内模式并不涉及到物理设备的约束
11.两级映像
(1)外模式/逻辑模式映像:存在于外模式和逻辑模式之间,用于定义外模式和逻辑模式之间的对应性。
(2)逻辑模式/内模式映像:存在于逻辑模式和内模式之间,用于定义逻辑模式和内模之间的对应性。
8.数据库系统的三级模式、两级映像结构使数据库系统达到了高度的数据独立性
(1)数据独立性
数据独立性是指应用程序与数据库的数据结构之间相互独立,在修改数据结构时,尽可能不修改应用程序
(2)数据独立性分为逻辑数据独立性和物理数据独立性
①逻辑数据独立性
如果数据库的逻辑模式要修改,那么只要对外模式/逻辑模式映像作相应的修改,可以使外模式和应用程序尽可能保持不变。这样就认为数据库达到了逻辑数据独立性。
数据库的三层结构是一种理想的结构,使数据库系统达到了高度的数据独立性
②物理数据独立性
数据库的内模式要修改,即数据库的物理结构有所变化,那么只要对逻辑模式/内模式映像作相应的修改,可以使逻辑模式尽可能保持不变。也就是对内模式的修改尽量不影响逻辑模式,当然对外模式和应用程序的影响更小,这样就认为数据库达到了物理数据独立性
一般,关系数据库系统在支持数据独立性方面优于层次和网状系统
四、数据库管理系统(DBMS)
1.数据库管理系统(DBMS)是指数据库系统中对数据进行管理的软件系统,它是数据库系统的核心组成部分。 2.DBMS的工作模式
DBMS位于应用程序和OS之间的软件。
外模式是用户编写应用程序与数据库的接口
2.DBMS的主要功能
(1)数据库的定义功能
DBMS提供DDL定义数据库的三级模式、两级映像,定义数据的完整性约束、保密限制等约束。
(2)数据库的操纵功能
DBMS提供DM实现对数据的操作,基本的数据操作有检索和更新(插入、删除和更新)
(3)数据库的保护功能
DBMS的包括四个子系统:
①数据库恢复,在数据库被破坏或数据不正确时,系统有能力把库恢复到正确的状态
②数据库的并发控制,在多个用户同时对同一个数据进行操作时,系统应能加以控制, 防止破坏DB中的数据;
③数据完整性控制,保证数据库中的数据及语义的正确性和有效性,防止任何对数据造 成错误的的操作;(实体完整性,引用完整性,用户自定义完整性)
④数据安全性控制,防止未经授权的用户存取数据库中的数据,以免的泄露、更改和破坏 (4)数据库的维护功能
(5)数据字典 数据库系统中存放三级结构定义的数据库称数据字典。三级结构:外部模型、逻辑模型和内部模型。
五、数据库系统(DBS)
(一)DBS组成
DB分为两类:应用数据的集合称为物理数据库,它是数据库的主体(相当于用户自定义数据库);另一类是各级数据结构的描述,称为描述数据库(相当于数据字典,由系统产生存放数据字典等信息的数据库),由DD系统管理
定义1.11 DBA是控制数据整体结构的一组人员,负责DBS的正常运行,承担创建、监控和维护数据库结构的责任。
DBA主要职责:
(1)定义模式(逻辑模式)
(2)定义内模式;
(3)与用户的联络;
(4)定义安全性规则,对用户访问数据库授权
(5)定义完整性规则,监督数据库的运行
3.软件
包括DBMS、OS、各种主语言和应用开发支撑软件等程序。其中,DBMS是DBS的核心软件,要在OS支持下才能工作 4.DBS的组成:是数据库、硬件、软件和数据库管理员的集合体。
(二)DBS的全局结构
1.数据库用户
(1)DBA:负责三级结构的定义和修改、以及访问受权,且常维护等工作。
DBA是控制数据整体结构的一组人员,负责DBS的正常运行,承担创建、监控和维护数据库结构的责任。
(2)专业用户:指数据库设计中的上层人士(例如系统分析员),他们使用专用的数据库查询语言操作数据,专业用户和DBS之间的界面是数据库查询工具
3)应用程序员:指使用主语言和DL( Data Manipulation Language,数据操纵语言)语言编写应用程序的计算机工作者
(4)终端用户:指使用应用程序的非计算机人员。如出纳员、销售员等。
-
DBMS的查询处理器
(1)DDL解释器;
(2)DML编译器;
(3)嵌入式DML的预编译器
(4)查询求值引擎
-
DBMS的存储管理器存储管理器提供存储在数据库的低层数据和应用程序、查询之间的接口。
-
DBMS是位于用户与0S之间的一层数据管理软件。
存储管理器分为:
(1)权限和完整性管理器。测试应用程序对数据库的修改是否满足完整性约束,检查用户访问数据的合法性;
(2)事务管理器
(3)文件管理器;
(4)缓冲区管理器:为应用程序开辟DB的系统缓冲区,负责将从磁盘中读出的数据送入内存的缓冲区。
4.磁盘存储器的数据结构
(1)数据文件;存储数据库管理的用户数据自身;
(2)数据字典:存储三级结构的描述(一般称为元数据 Metadata)
百度:DD( Data dictionary,数据字典)是一种用户可以访问的记录数据库和应用程序元数据的目录。元数据( MetaData)是关于数据仓库的数据,指在数据仓库建设过程中所产生的有关数据源定义,目标定义,转换规则等相关的关键数据。
(3)索引:为提高查询速度而设置的逻辑排序手段
(4)统计数据:存储DBS运行时统计分析的数据
(5)日志:存储DBS运行时对DB的操作情况,以备以后查阅数据库的使用情况及数据库恢复时使用。
- 原文作者:码中春秋
- 原文链接:https://blog.taielab.com/2018-09-30/database-system-principle-leannote-base.html
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。