- 1、本文档共107页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中过科学技术大学高级数据库设计PPT
10、Buffer中的Frame存储结构 struct Frame{ int frame_id; int offset; } ; 11、Buffer中Frame的查找 读磁盘块时:根据page_id确定在Buffer中是否已经存在frame 写磁盘块时:要根据frame_id快速找到文件中对应的page_id 11、Buffer中Frame的查找 首先,要维护Buffer中所有frame的维护信息(Buffer Control Blocks),如 struct BCB { BCB(); int page_id; int frame_id; int count; int time; int dirty; BCB * next; }; 11、Buffer中Frame的查找 建立frame之间的索引 若用Hash Table,需要建立2个 BCB hTable[BufferSize] //page 2 frame int hTable[BufferSize] //frame 2 page 一个简单的Hash Function例子 H(k)=(page_id)%(buffersize) 12、Buffer Manager的基本功能 FixPage(int page_id) 将对应page_id的page读入到buffer中。如果buffer已满,则需要选择换出的frame。 FixNewPage() 在插入数据时申请一个新page并将其放在buffer中。 SelectVictim() 选择换出的frame_id FindFrame(int page_id) 查找给定的page是否已经在某个frame中了 SetDirty(int frame_id) 13、数据库文件的一般组成 数据文件 首块在Insert_Record时创建(调用Buffer Manager的FixNewPage),一般块号从0开始 系统目录文件 首块一般Create_Table时创建(调用Buffer Manager的FixNewPage) Note: 所有数据和元数据操作都唯一通过Buffer Manager来请求page 14、文件记录操作与Buffer Manager 文件、记录、索引管理:Insert_Record,Delete_Record,Create_Table,Drop_Table,Create_Index,…… Buffer Manager:FindFrame,FixPage,FixNewPage,SetDirty,SetVictim,…… record请求 frame请求 15、存储管理器 文件、记录、索引管理:Insert_Record,Delete_Record,Create_Table,Drop_Table,Create_Index,…… Buffer Manager:FindFrame,FixPage,FixNewPage,SetDirty,SetVictim,…… record请求 frame请求 page请求 Storage Manager 15、存储管理器 page请求 Storage Manager Database File disk file I/O 16、存储管理器功能 从磁盘中存取物理数据,为Buffer Manager提供Page抽象 OpenFile/CloseFile ReadPage/WritePage FileSeek GetNumPages IncreaseNumPages …… File、Record Access Methods Buffer Manager FixPage(int page_id) FixNewPage() SelectVictim() Hash(int page_id) SetDirty(int frame_id) …… Storage Manager OpenFile(string filename) CloseFile() ReadPage(int page_id) WritePage(int frame_id, bFrame frm) FileSeek(int offset, int pos) IncNumPages() GetNumPages() Buffer (Main Memory) 总体结构图 总结 数据项的表示 记录的表示 记录在块中的组织 记录的修改 块在文件中的组织 缓冲区管理 考虑 如何衡量数据组织方法的好坏? 性能 (performance) 灵活性 (flexibility) 复杂程度 (complexity) 空间利用率 (space utilization) * DBCC(dbid|dbn
您可能关注的文档
- Horizon_Workspace快速部署指南.pdf
- jsp概念大全.doc
- ISE使用.pdf
- JAVA数组和容器学习与复习要点.pptx
- M4Unit3 自主评价.doc
- MBA全套教材——服务市场(英文版PPT课件)Chap02.ppt
- NSE BOOK10五下口语模拟题(B 卷).doc
- SSS期末复习资料.doc
- solution for contactor-by meteor(米特)01.pdf
- Supporting Chinese Distance Learners through Computer-Mediated Communication – Revisiting.pdf
文档评论(0)