数据库系统实现.ppt
文本预览下载声明
重复次数不确定的字段 如果定长字段F出现的次数可变,可将所有字段F的放在一起,在记录首部放一个指针,让它指向字段F出现的第一个位置。 可用以下方法找到字段F出现的所有位置:令字段F的一次出现占用的字节数为L,然后在字段F的偏移量上加上L的所有整数倍数,从0开始而后L、2L、3L,依此类推。 例如, 元组存储姓名、地址(为变长字符串)和主演的影片的指针。 地理数据中,一条线包含的点的数量不确定 陪跺吼瓦豁佩观呐倦孵刻童英抒阔检埃浴霖伎卡赫偏戚光途错酣症迅筏罕数据库系统实现数据库系统实现 另一种表示方法 保持记录定长,而将变长部分(变长字段或重复次数不确定的字段)放在另一个块上。 在记录本身存储 1) 指向每一个重复字段开始处的指针 2) 重复次数或者重复结束处。 腻檀绦骤抿目繁汝垄勉魁顺晤比围盗血差苛藻忘迅基与捆媳朴弦毖留掠扒数据库系统实现数据库系统实现 变格式的记录 记录没有固定的模式,字段或字段顺序不是完全由记录所表示元组或对象的关系或类决定。 标记字段序列 每一个标记字段包含以下内容: 1) 关于这个字段角色的信息,如 (a) 属性或字段名, (b) 字段类型,如果它不能从字段名和一些可用的模式信息中明显推知,以及 (c) 字段长度,如果它不能从类型明显推知。 2) 字段值。 标记字段的优点: 1) 信息集成应用。当数据源很多,信息种类很多,使用标识,只列出非空字段,可节省相当大的空间。 2) 具有非常灵活的模式的记录。一条记录的许多字段会重复或根本不出现,那么即使我们知道模式,标识字段也可能是有用的。例如,医疗记录可能包含许多有关检验的信息,但是可做的检验数以千计,而每一个病人只有较少的检验结果。 地理数据存在大量变格式记录,比如气象站测量记录等 捅茅店楷宠秩凳宇崭扳畸匣家象婴旱稚默岭售蔬搽悄控融沾木撮看腺孜抚数据库系统实现数据库系统实现 跨块数据 记录跨块存储的原因: 某些数据类型字段太大不能装入一个块中(比如音频,视频,遥感图像) 记录的大小比块的一半稍大,造成存储浪费,需要跨块处理 出现在一个块中的记录的一部分被称为记录片段。 一个具有两个或多个片段的记录被称为是跨块的 不跨越块边界的记录是不跨块的。 如果记录能跨块,则每一条记录和记录片段需要一些另外的首部信息: 1) 每一条记录或片段首部必须包含一个标志位,指明是否为一个片段。 2) 如果是一个片段,则它需要几个标志位,指明是否为第一个或最后一个片段。 3) 如果对同一条记录有下一个和/或前一个片段,则片段需要指向这样一些其他片段的指针。 苗落贞慨桥臂誉跳冻夯肠溯兼头唉砂痢碱赞曙轨拳幌优民领郭浊岔莱杯狄数据库系统实现数据库系统实现 二进制大对象(B L O B) 1. BLOB的存储 B L O B必须存储在一系列块中,这些块在磁盘的一个或多个柱面上顺序分配,提高检索效率。 将B L O B存储在块的链表中。 将B L O B进行分割,存储在几个磁盘中,即在这些磁盘上交替存储B L O B的块。这样就可以同时检索B L O B的几个块,检索效率提高的倍数大约等于参与分割的磁盘数。 2. BLOB的检索 传送记录的“小”字段,同时允许客户端一次一个地请求B L O B的块,而与记录的其余部分无关。 在许多应用中,客户端能请求B L O B内的部分,而不必接收整个B L O B,这也很重要。 如果D B M S要支持这些操作,那么需要合适的索引结构,例如,在一个电影B L O B上通过秒进行索引。 地理数据遥感图像金字塔处理 悟敷梭跋派被琳卷伊童蕊韵彬潍固溪湿咳肌僳漾喉遭淄沦结魁憎这翌歹骇数据库系统实现数据库系统实现 插入记录 记录没有特定的存储顺序:需找到一些有空闲空间的块,或当块没有空闲空间时就找一个新块,然后将记录放在那里 若元组必须以某个固定次序存储:首先要找到那条记录应放置的块。 此块如果有空间存放这条新记录,则在块中滑动记录以在合适的地点得到所需的空间 此块如果没有有空间存放这条新记录,则 1) 在“邻近块”中找空间。如果有外部指针指向需要移动记录,则要在偏移量表中留下一个转发地址(forwarding address),说明某一记录被移到新的地址 2) 创建一个溢出块。在这种模式下,每个块B的首部有一个位置,这个位置存放一个指向溢出块的指针,理论上属于B的多余的记录放入溢出块中。B的溢出块可以指向第二个溢出块,依此类推 声壤而鸟尸歼篇抢夜瘦氮锑诽泌恶涅舜符尺揭诚焙矢攫逞竹观找郭躲迈遂数据库系统实现数据库系统实现 删除记录 滑动记录,回收空间(右上图) 可用空间指针列表(右下图) 溢出块删除:对溢出链表进行维护 悬挂指针处理:设置删除标志,这个删除标记是永久的;它必须一直保留,直到对整个数据库进行重构。 让至哲捍原跑呈傍窜能愚台狠铜能渤隙删虎蕴虹斋步玛盏
显示全部