以关系数据库为例,SQL语言是一种非过程化的面向集合的语言,它虽然用起来非常简单,但由于是解释实现,效率不如人意。因此许多应用仍然是由高级程序设计语言(如C)来实现的,但是高级程序设计语言是过程化的,而且是面向单个数据的,这使得SQL与它之间存在着不匹配,我们把它叫做“阻抗失配”。不论你是用嵌入式SQL,还是CLI,都需要化很多工夫去完成两种语言之间的相互转化。 但是关系数据库在数据库系统方面发展地非常完善,有强大的管理功能和可 *** 纵性。另外,关系模型具有坚实的数学基础。
面向对象数据库的产生主要是为了解决“阻抗失配”,它强调高级程序设计语言与数据库的无缝连接。什么叫无缝连接,假设你 不用数据库,用C语言编了一个程序,你可以不需要(或基本不需要)任何改动就将它作用于数据库,即你可以用C语言透明访问数据库,就好象数据库根本不存在一样,所以也有人把面向对象数据库理解为语言的持久化。怎么样,听起来挺玄的吧,可是我们自己开发的数据库系统——OSCAR早就做到了这一点。 由于实现了无缝连接,使得面向对象数据库能够支持非常复杂的数据模型,从而特别适用于工程设计领域。打个比方,想象CAD中的一个复杂部件,它可能由成千上万个不同的零件组成,要是用关系模型中的表来表达,得用多少张表啊?而描述这种复杂的部件,正好是高级程序设计语言的强项。
此外,面向对象数据库还吸收了面向对象程序设计语言的思想,如支持类、方法、继承等概念。 面向对象数据库很好地解决了阻抗失配的问题,但它也有缺点。它的缺点正好是关系数据库的强项,由于模型较为复杂(而且缺乏数学基础),使得很多系统管理功能难以实现(如权限管理),也不具备SQL处理集合数据的强大能力。
另一方面,随着多媒体数据的大量出现和应用的日益复杂,关系数据库也在不断吸收面向对象数据库的优点,出现了现在所谓的对象关系型数据库(象ORACLE8i、DB2-5以上都是这种系统)。其主要改进包括支持自定义类型(UDT),方法,继承(目前仅DB2-6支持),和引用(使得对象间可以直接引用,想想原来的关系数据库需要靠连接来实现引用,性能真是惨不忍睹)。 总之,数据库系统发展的趋势是,面向对象数据库和关系数据库将不断融合。而对象关系数据库由于继承了上述两者的优点,已经成为目前数据库发展的主流。
数据库的基本特点是:数据结构化 ,数据之间具有联系,面向整个系统;数据的共享性高,冗余度低,易扩充;数据独立性高。
数据实现集中控制,文件管理方式中,数据处于一种分散的状态,不同的用户或同一用户在不同处理中其文件之间毫无关系。利用数据库可对数据进行集中控制和管理,并通过数据模型表示各种数据的组织以及数据间的联系。
扩展资料:
数据库管理系统是数据库系统的核心组成部分,主要完成对数据库的 *** 纵与管理功能,实现数据库对象的创建、数据库存储数据的查询、添加、修改与删除 *** 作和数据库的用户管理、权限管理等。它的安全直接关系到整个数据库系统的安全,其防护手段主要有:
1、使用正版数据库管理系统并及时安装相关补丁。
2、做好用户账户管理,禁用默认超级管理员账户或者为超级管理员账户设置复杂密码;为应用程序分别分配专用账户进行访问;设置用户登录时间及登录失败次数限制, 防止暴力破解用户密码。
3、分配用户访问权限时,坚持最小权限分配原则,并限制用户只能访问特定数据库,不能同时访问其他数据库。
4、修改数据库默认访问端口,使用防火墙屏蔽掉对 外开放的其他端口,禁止一切外部的端口探测行为。
5、对数据库内存储的重要数据、敏感数据进行加密存储,防止数据库备份或数据文件被盗而造成数据泄露。
6、设置好数据库的备份策略,保证数据库被破坏后能迅速恢复。
7、对数据库内的系统存储过程进行合理管理,禁用掉不必要的存储过程,防止利用存储过程进行数据库探测与攻击。
8、启用数据库审核功能,对数据库进行全面的事件跟踪和日志记录。
数据库系统的体系结构是指数据库系统的整个体系的结构。数据库系统的体系结构从不同的角度可有不同的划分方式。从数据库管理系统的角度可分为三层,从外到内依次为外模式、模式和内模式。 模式是所有数据库用户的公共数据视图,是数据库中全部数据的逻辑结构和特征的描述。模式(schema)又可细分为概念模式(conceptual schema)和逻辑模式(109ical schema)。
希望对你有帮助。
以上就是关于“面向对象数据库”和“关系数据库”的区别是什么全部的内容,包括:“面向对象数据库”和“关系数据库”的区别是什么、数据库的基本特点是什么、数据库系统是面向全局组织数据的 这句话意味着什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)