【数据库下】第一章 物理设计(数据库存储技术)

第一章 物理设计(数据库存储技术)

数据库设计主要有哪些环节?

数据库逻辑设计后得到什么?

二维表如何存储?

主要学习目标

  • 表记录的存储方式
  • 表结构的存储方式

思考问题

  • 操作系统的数据操作方式,CPU、内存、硬盘如何进行数据传输的?
  • 文件系统如何存储数据的?

一、文件组织

讨论:如何在物理存储介质上组织数据? 
1)数据在物理存储(磁盘)中如何组织? 

物理设计任务:考虑用文件表示逻辑数据模型(数据库模式)的不同方式

​ 一个数据库被映射到多个不同的文件(file) ,文件由操作系统来管理,这些文件被永久存储在磁盘上!

​ 一个文件在逻辑上被组织成记录的一个序列,记录被映射到磁盘块(block)上。

​ 每个文件(file)被分成定长的存储单元-,块是数据存储和传输的基本单位(默认一般是4-8KB)。

​ 一个块可以包括很多记录(假设一个记录总比块小;对大数据如图片等需单独处理和存储),且一个记录的数据不能跨块存储。

讨论:每条记录如何进行组织? 
定长记录和变长记录各自的特点? 
定长记录:
image-20210902114755390

特点:
查找记录较快,但记录更新较慢。

变长记录:
image-20210902114849311

特点:
查找记录较慢,但记录更新较快。

二、(数据库)文件中记录的组织

讨论:如何在物理存储介质上组织数据库数据?  
  • 堆文件:

(一个关系表的)记录在(一个)文件空间中任意放置。
注:对这种组织方式,在按给定属性值搜索记录时,需依次读出所有记录,并依次选出满足条件的所有记录,查找效率低。

  • 顺序文件 :

    按一定的顺序在文件中组织记录。

  • 散列文件:

    按照散列函数计算值存放相应记录。

  • 多表簇集文件:

    不同关系表里的记录存放在同一个文件中。

1、顺序文件组织
1) 顺序文件在逻辑上是如何组织数据库数据(关系)的? 
2) 顺序文件的物理存储如何实现?

顺序文件的逻辑组织方式:
1)将关系中记录按“某属性/组-搜索码”顺序排列
2)并用指针将记录依序连接
特点:按搜索码搜索的效率高。

顺序文件的物理组织方式:
1)将关系中记录按搜索码次序进行物理存储
2)采用定长记录或变长记录方式
3)一个记录的信息不能分存在两个物理块中

image-20210902115347406
3) 顺序文件存储的数据如何更新?

删除和插入记录时的开销大(需大量移动记录)!

改善方法(指针管理)

image-20210902115457555
2、多表聚集文件组织
4) 什么是多表聚集文件,物理存储如何实现,有何好处?

多表聚集文件组织:是指将多个关系的数据组织在一个文件中(它们的记录相互交织在一起)

image-20210903090724001

​ 注意:实现多表聚集文件组织,需底层操作系统配合,实现对文件的管理(只有大型数据库系统才支持)。

5)多表聚集文件组织方式的优点和不足?

image-20210903090856342

image-20210903091723430

3、物理设计的任务
6) 实际应用中,物理设计到底做什么?

​ 前面,介绍了大型数据库管理系统(DBMS)支持的文件中记录的物理存储方式,实际上都是由DBMS自动实现对用户定义好的逻辑数据(关系)的自动存储,似乎物理存储对用户是透明的,就像大家上机所感受的一样。

数据库应用设计人员还需要做物理设计工作吗,如何做?

数据库物理设计(应用开发中)的主要工作:
1)在定义关系模式时,需要确定采用定长还是变长记录;
(通过确定采用的属性类型,因有变长属性)
2)对每个关系模式,需要确定影响记录存放次序的搜索码;
(根据常用/重要的查询要求,确定主码或建聚集索引Cluster Index)
3)对每个关系模式,需要确定是否还需要建立辅助索引文件;
(根据常用/重要的查询要求,确定建哪些索引Index)
4)对具有连接条件的一组关系模式,需要确定是否采用多表聚集文件存储;
(根据多表连接上重要应用查询快速访问需要)
5)对应用的所有关系模式,需要确定应当划分为多少个数据库来存储;
(根据关系模式间相关性、应用相关性、数据保密需要、数据库备份需要等)
6)对每个数据库,需要确定数据库文件存放的物理路径(不同服务器,不同介质)
(根据访问效率需要、应用相关性、数据重要性等)

三、数据字典

讨论:RDBMS管理什么数据?  
image-20210903092728424 image-20210903092732123
1)什么是元数据?
2)数据字典存储什么信息?
3)数据字典存储的作用?
image-20210903092900580
数据库存储机制
讨论:RDBMS元数据如何管理?  

一个简单的ER图示:

  • 一个数据库对应n个块
  • 一个数据库多个表
image-20210903093356797
Create database完成了什么事情?
Create table?
这些sql语句是如何处理数据的?
Insert
Delete
Update

找到块,插入,块满了,再申请一个块
更新、删除
Oracle的数据字典

image-20210903093525814

四、数据库缓冲区

1.数据库缓冲区及作用
讨论:数据库缓冲区在改善数据访问中的作用?
1)需要建立数据库缓冲区吗,为何能提高访问效率?

image-20210903093755048

2.数据库缓冲区管理器
2)如何管理数据库缓冲区?

image-20210903093845537

3.缓冲区替换策略
image-20210903093945910
3) 如何确定缓冲区中的无用区块?

image-20210903094025496

1、在文件中,记录有哪两种方式表示,对于记录的集合如何组织?
记录分为定长记录、变长记录。
对于记录的集合组织为堆文件、顺序文件、散列文件、多表聚集文件。
堆文件:一个关系表的记录在一个文件空间中任意放置。
顺序文件 :按一定的顺序在文件中组织记录。
散列文件:按照散列函数计算值存放相应记录。
多表簇集文件:不同关系表里的记录存放在同一个文件中。

2、什么是元数据?元数据如何存储?
一个关系数据库需要维护关于关系的数据,如关系的模式等。一般来说,这样的“关于数据的数据”称为元数据。
关于关系的关系模式和其他元数据存储在称为“数据字典”或系统目录的结构中。
posted @ 2021-09-03 21:44  Clancy_gang  阅读(490)  评论(0编辑  收藏  举报