首页 > 编程知识 正文

数据库原理的应用,oracle数据库存储原理

时间:2023-05-06 09:04:41 阅读:40010 作者:1208

1 .在数据访问数据库管理系统中,访问数据的过程如下

APP应用程序通过DML向DBMS发出SELECT语句等访问请求; 对指令进行语法检查,正确时检查语义和用户权限(通过数据词典DD ),决定是否接收; 执行查询优化并将命令转换为一系列单个记录的访问操作序列; 执行访问操作序列; 在缓冲器中查找记录,如果发现旋转体10,否则旋转体6; 检查存储模式以确定如何从哪个文件读取物理记录; 根据6的结果向OS(OS )发出记录的读取命令; OS执行该命令,读出记录数据; 在OS的控制下,将读出的记录发送到系统缓冲器; RDBMS根据查询命令和DD的内容,到处管理用户读取的记录格式。 RDBMS将数据从系统缓冲区发送到用户的工作区。 RDBMS向APP应用返回执行状态信息(成功或失败); 该APP应用程序将正确处理从工作区中读取的数据。 2 .以保存数据库数据库用文件的方式保存数据。 文件在逻辑上可以视为记录序列,物理上将这些记录映射到磁盘块。

在删除了一个记录的情况下,通过将紧接的记录移动到被删除的记录的位置,可以类似地执行数据删除的处理,直到删除的记录之后的所有记录都向前移动。

但是,这种方法需要移动大量的记录,并不理想。 所以,可以临时为删除的记录留出空间,然后等待插入的记录使用此空间。 但是,仅仅将删除的记录标记为删除是不够的。 因为执行插入操作时,很难找到这个可用空间。 解决办法是引入额外的结构。

在文件的开头,分配一定数量的字节作为文件头,文件头存储有关文件的各种信息,还记录最初删除的记录。 此外,通过在第一个删除的记录之后记录第二个删除的记录,形成了一个称为空闲链表的链表。

保存数据的方法在文件中保存记录的一般方法有堆文件组织、顺序文件组织、多表集合文件组织、b树文件组织和散列文件组织(后两种多用于索引记录)等。

1 .堆积档案整理记录。 只要在那个地方有保管记录的空间,就可以放在文件的任何地方。 也就是说,文件中的记录没有顺序,而是堆积起来的。

2 .序列文件组织序列文件旨在按某个搜索代码值的顺序高效地处理记录。 (搜索代码是属性或属性的集合,不一定是主代码,也不一定是超级代码。 为了按照搜索代码的价值顺序快速检索记录,通常通过指针有逻辑地有规则地连接文件块。 指向每个文件块的指针指向按搜索代码值顺序排列的下一个文件块。 是链表形式。 另外,为了减少顺序文件处理中文件块的访问次数,物理上将文件块按照检索代码值的顺序、或尽可能接近检索代码值的顺序进行存储。

组织顺序文件对于根据搜索代码值排序的特定查询很有效,但在插入和删除记录时保持记录的物理顺序非常困难。 改进操作:

插入操作:在文件中,使用搜索代码值导航到要插入记录的文件块。 如果文件块a中有可用空间,则确定要在该文件中插入记录的位置,然后插入新记录; 否则,申请溢出文件块,将文件块a的记录分支为溢出文件块,将要插入的记录插入到文件块a或溢出文件块中,按检索代码值的顺序排列删除操作:在文件中,按搜索代码值搜索包含要删除的记录的文件块。 在文件块a中找到要删除的记录并实施删除(需要将文件块中删除的记录以后的原始记录向前移动,以使文件块中的空闲区域位于块的末尾)。 如果删除的记录太少,请考虑将文件块a中的记录移动到连接文件块的文件块中,以释放a中的空间。 请考虑从连接了文件块a的文件块中删除一部分并记录在a中。 3 .多表文件组织通常,在小型数据库管理系统中,每个关系的所有记录都存储在单独的固定长度记录文件中。 这样可以充分利用操作系统提供的文件系统功能,简化DBMS的设计。

但是,许多大型数据库管理系统在文件管理方面并不直接依赖操作系统,而是将操作系统分配给DBMS的大操作系统文件,DBMS将所有关系存储在此文件中,并自行管理此文件。

多表聚集文件组织是一个文件结构,每个文件块包含两个或多个关系的相关记录。 此结构混合使用多个关系元组(行)来聚合存储,并支持高效的连接运算。

示例:

如果Student表和Score表根据StudentNo进行连接运算,则DBMS将Score表中所有StudentNo的值都相同的元组(行)集中存储在Student表中的相应元组附近Student表中的元组t (读取行时,包含元组t的整个文件块已从磁盘读取到主内存中。 因为与具有Score关系的元组t具有相同studentNo值的所有元组都聚集在元组t附近,所以包含元组t的主存储器中的文件块还包括与Score表中的元组t匹配的元组。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。