第⼀章 物理设计(数据库存储技术)数据库设计主要有哪些环节?数据库逻辑设计后得到什么?⼆维表如何存储?
主要学习⽬标表记录的存储⽅式表结构的存储⽅式思考问题
操作系统的数据操作⽅式,CPU、内存、硬盘如何进⾏数据传输的?⽂件系统如何存储数据的?⼀、⽂件组织
讨论:如何在物理存储介质上组织数据? 1)数据在物理存储(磁盘)中如何组织?
物理设计任务:考虑⽤⽂件表⽰逻辑数据模型(数据库模式)的不同⽅式。
⼀个数据库被映射到多个不同的⽂件(file) ,⽂件由操作系统来管理,这些⽂件被永久存储在磁盘上! ⼀个⽂件在逻辑上被组织成记录的⼀个序列,记录被映射到磁盘块(block)上。
每个⽂件(file)被分成定长的存储单元-块,块是数据存储和传输的基本单位(默认⼀般是4-8KB)。
⼀个块可以包括很多记录(假设⼀个记录总⽐块⼩;对⼤数据如图⽚等需单独处理和存储),且⼀个记录的数据不能跨块存储。讨论:每条记录如何进⾏组织? 定长记录和变长记录各⾃的特点?
定长记录:
特点:
查找记录较快,但记录更新较慢。
变长记录:
特点:
查找记录较慢,但记录更新较快。
⼆、(数据库)⽂件中记录的组织
讨论:如何在物理存储介质上组织数据库数据?
堆⽂件:
(⼀个关系表的)记录在(⼀个)⽂件空间中任意放置。
注:对这种组织⽅式,在按给定属性值搜索记录时,需依次读出所有记录,并依次选出满⾜条件的所有记录,查找效率低。
顺序⽂件 :
按⼀定的顺序在⽂件中组织记录。散列⽂件:
按照散列函数计算值存放相应记录。多表簇集⽂件:
不同关系表⾥的记录存放在同⼀个⽂件中。1、顺序⽂件组织
1) 顺序⽂件在逻辑上是如何组织数据库数据(关系)的? 2) 顺序⽂件的物理存储如何实现?顺序⽂件的逻辑组织⽅式:
1)将关系中记录按“某属性/组-搜索码”顺序排列2)并⽤指针将记录依序连接特点:按搜索码搜索的效率⾼。顺序⽂件的物理组织⽅式:
1)将关系中记录按搜索码次序进⾏物理存储2)采⽤定长记录或变长记录⽅式
3)⼀个记录的信息不能分存在两个物理块中
3) 顺序⽂件存储的数据如何更新?
删除和插⼊记录时的开销⼤(需⼤量移动记录)!改善⽅法(指针管理)
2、多表聚集⽂件组织
4) 什么是多表聚集⽂件,物理存储如何实现,有何好处?
多表聚集⽂件组织:是指将多个关系的数据组织在⼀个⽂件中(它们的记录相互交织在⼀起)
注意:实现多表聚集⽂件组织,需底层操作系统配合,实现对⽂件的管理(只有⼤型数据库系统才⽀持)。5)多表聚集⽂件组织⽅式的优点和不⾜?
3、物理设计的任务
6) 实际应⽤中,物理设计到底做什么?
前⾯,介绍了⼤型数据库管理系统(DBMS)⽀持的⽂件中记录的物理存储⽅式,实际上都是由DBMS⾃动实现对⽤户定义好的逻辑数据(关系)的⾃动存储,似乎物理存储对⽤户是透明的,就像⼤家上机所感受的⼀样。
数据库应⽤设计⼈员还需要做物理设计⼯作吗,如何做?数据库物理设计(应⽤开发中)的主要⼯作:
1)在定义关系模式时,需要确定采⽤定长还是变长记录;(通过确定采⽤的属性类型,因有变长属性)
2)对每个关系模式,需要确定影响记录存放次序的搜索码;(根据常⽤/重要的查询要求,确定主码或建聚集索引Cluster Index)3)对每个关系模式,需要确定是否还需要建⽴辅助索引⽂件;(根据常⽤/重要的查询要求,确定建哪些索引Index)
4)对具有连接条件的⼀组关系模式,需要确定是否采⽤多表聚集⽂件存储;(根据多表连接上重要应⽤查询快速访问需要)
5)对应⽤的所有关系模式,需要确定应当划分为多少个数据库来存储;(根据关系模式间相关性、应⽤相关性、数据保密需要、数据库备份需要等)6)对每个数据库,需要确定数据库⽂件存放的物理路径(不同服务器,不同介质)(根据访问效率需要、应⽤相关性、数据重要性等)
三、数据字典
讨论:RDBMS管理什么数据?
1)什么是元数据?
2)数据字典存储什么信息?3)数据字典存储的作⽤?
数据库存储机制
讨论:RDBMS元数据如何管理? ⼀个简单的ER图⽰:
⼀个数据库对应n个块⼀个数据库多个表
Create database完成了什么事情?Create table?
这些sql语句是如何处理数据的?InsertDeleteUpdate
找到块,插⼊,块满了,再申请⼀个块更新、删除
Oracle的数据字典
四、数据库缓冲区1.数据库缓冲区及作⽤
讨论:数据库缓冲区在改善数据访问中的作⽤?1)需要建⽴数据库缓冲区吗,为何能提⾼访问效率?
2.数据库缓冲区管理器2)如何管理数据库缓冲区?
3.缓冲区替换策略
3) 如何确定缓冲区中的⽆⽤区块?
1、在⽂件中,记录有哪两种⽅式表⽰,对于记录的集合如何组织?记录分为定长记录、变长记录。
对于记录的集合组织为堆⽂件、顺序⽂件、散列⽂件、多表聚集⽂件。堆⽂件:⼀个关系表的记录在⼀个⽂件空间中任意放置。顺序⽂件 :按⼀定的顺序在⽂件中组织记录。散列⽂件:按照散列函数计算值存放相应记录。
多表簇集⽂件:不同关系表⾥的记录存放在同⼀个⽂件中。
2、什么是元数据?元数据如何存储?
⼀个关系数据库需要维护关于关系的数据,如关系的模式等。⼀般来说,这样的“关于数据的数据”称为元数据。关于关系的关系模式和其他元数据存储在称为“数据字典”或系统⽬录的结构中。
因篇幅问题不能全部显示,请点此查看更多更全内容