数据库技术:模式/内模式映象与物理独立性

需积分: 21 0 下载量 84 浏览量 更新于2024-08-15 收藏 293KB PPT 举报
"模式/内模式映象的用途-软件数据基础" 在数据库系统中,模式/内模式映象是一个至关重要的概念,它主要用于确保数据的物理独立性。数据的物理独立性是指数据库的物理存储结构发生变化时,不会影响到用户对数据的逻辑视图,即模式。这使得应用程序无需因底层存储机制的改变而修改,从而降低了维护成本,提高了系统的可扩展性和稳定性。 在传统的文件系统阶段,数据以文件形式存储,每个文件对应一个特定的应用,导致数据冗余和共享性差。为了解决这些问题,数据库系统阶段应运而生,数据不再局限于单一应用,而是以整体结构面向整个系统,允许多用户和多应用程序共享。这种共享性减少了数据冗余,避免了数据不一致,并且使系统更易于扩展。 1960年代末,数据库管理系统(DBMS)开始兴起,如IBM的IMS,它基于层次数据模型。随后,1970年,Edgar Frank Codd提出的关系数据模型彻底改变了数据库领域,以关系或表格的形式来组织数据,奠定了关系数据库的理论基础。在70年代,SystemR和INGRES等原型系统的开发进一步推动了关系数据库的发展。 模式/内模式映象在此过程中扮演了关键角色。当数据库管理员需要调整存储结构,比如选择新的存储技术,他们只需要更新模式/内模式映象,而不用改动模式,这样应用程序可以继续无感知地工作。这种映象提供了逻辑与物理之间的转换层,确保了数据的物理独立性,使得数据库系统具有更强的适应性和灵活性。 模式/内模式映象是数据库管理系统中的一个重要组成部分,它使得数据库能够在不影响用户应用的情况下,自由地进行物理存储优化,这是现代数据库系统能够高效、可靠运行的基础。随着数据库技术的不断发展,这一概念的重要性愈发凸显,尤其是在大型分布式系统和云数据库中,保持数据的物理独立性对于系统的稳定性和可维护性至关重要。

补充完整函数void Disp() 和void Key_Process()的代码。 //----------------------------------------------------------------- // 名称: 用8255接口扩展来实现可调电子日历 //----------------------------------------------------------------- // 说明: 8255的A、B端口分别连接8位数码管的段码和位码,C端口接按键 // //----------------------------------------------------------------- #include <reg51.h> #include <absacc.h> #define uchar unsigned char #define uint unsigned int //A,B,C端口及命令端口地址定义 #define PA XBYTE[0x0000] #define PB XBYTE[0x0001] #define PC XBYTE[0x0002] #define COM XBYTE[0x0003] //上述定义也可写成: //#define PA *(XBYTE + 0x0000) //#define PB *(XBYTE + 0x0001) //#define PC *(XBYTE + 0x0002) //#define COM *(XBYTE + 0x0003) //0-9的共阳数码管段码表,最后的0xBF表示"-" code uchar SEG_CODE[] = { 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xBF }; //数码管位选 code uchar INDEX_CODE[] = { 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //初始日期20-06-25 uchar Disp_Buf[] = {2,0,10,0,6,10,2,5}; //----------------------------------------------------------------- // 延时函数 //----------------------------------------------------------------- void delay_ms(uint x) { uchar t; while(x--) for(t = 0; t < 120; t++); } //显示函数 void Disp() { } //----------------------------------------------------------------- // 8255 C端口按键处理 //----------------------------------------------------------------- void Key_Process() { } //----------------------------------------------------------------- // 主程序 //----------------------------------------------------------------- void main() { COM=0x89; while(1) { Key_Process(); } }

2023-05-30 上传