oracle 面试题 | 01.精选oracle高频面试题_oracle面试练习题-爱代码爱编程
🤍 前端开发工程师、技术日更博主、已过CET6
🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1
🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》
🍚 蓝桥云课签约作者、上架课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入门到实战全面掌握 uni-app》
请解释一下Oracle数据库管理系统的基本架构。
Oracle数据库管理系统是一个大型、复杂且功能强大的数据库系统。
它的基本架构大致可以分为三个层次:存储层、逻辑层和用户层。
-
存储层:这是Oracle数据库的基础,负责数据的持久化存储。Oracle数据库采用磁盘存储数据,将数据分成多个数据块(data block)。每个数据块大小通常为8KB。Oracle数据库以数据块为单位对数据进行读写操作。此外,Oracle数据库还采用分区技术,将数据分散存储在多个磁盘上,以提高存储能力和性能。
-
逻辑层:这是Oracle数据库的核心,负责数据的逻辑处理。Oracle数据库采用多线程架构,包括多个后台进程和多个用户进程。后台进程负责数据的物理存储和数据块的维护,用户进程负责处理用户的SQL查询请求。Oracle数据库将一个或多个数据块组成一个 extent,然后将 extents分配给数据库对象,如表、索引等。逻辑层还提供了数据备份、恢复、压缩等功能。
-
用户层:这是Oracle数据库的用户接口,负责与用户进行交互。Oracle数据库提供了SQL语言,用户可以通过SQL语句对数据库进行操作。Oracle数据库还提供了PL/SQL、Java等扩展功能,以满足用户的各种需求。此外,Oracle数据库还提供了Oracle Enterprise Manager等管理工具,用于数据库的配置、管理和监控。
Oracle数据库还提供了分布式数据库功能,允许将多个Oracle数据库连接成一个整体,实现数据的分布式存储和处理。此外,Oracle数据库还提供了实时应用功能,允许在数据库中进行实时计算和分析。
Oracle数据库是一个高性能、高可用、可扩展的数据库系统,它在存储、逻辑处理和用户接口等方面进行了优化,以满足现代企业对数据库的需求。
什么是Oracle数据字典?它的作用是什么?
Oracle数据字典是Oracle数据库中的一个概念,它存储了数据库中的所有元数据(metadata)。元数据是关于数据的数据,比如表结构、视图、索引、数据字典本身等。
Oracle数据字典的主要作用有:
-
描述数据库中的数据:数据字典存储了数据库中所有表的结构、字段类型、字段长度等信息,这些信息可以帮助用户更好地理解数据的意义。
-
辅助数据库管理:数据字典可以帮助数据库管理员更好地管理数据库,比如监控数据库的使用情况、优化数据库性能等。
-
辅助应用程序开发:数据字典可以帮助应用程序开发人员更好地理解数据库的结构,从而更方便地进行应用程序的开发和维护。
Oracle数据字典本身也是一个数据库对象,它的结构非常复杂,包含了大量的系统表和视图。用户可以通过查询这些系统表和视图来获取数据库的元数据信息。例如,用户可以通过查询dba_tables
、dba_columns
等视图来获取数据库中表和字段的信息。
需要注意的是,虽然Oracle数据字典存储了数据库中的所有元数据信息,但它并不包含实际的数据记录。实际的数据记录存储在数据库的数据文件中。
Oracle数据库中的事务是什么?请解释ACID属性。
Oracle数据库中的事务(Transaction)是一组SQL语句,它是一个逻辑单元,这组SQL语句要么全部执行成功,要么全部执行失败。事务的ACID(Atomicity、Consistency、Isolation、Durability)属性是数据库事务的基本特性,它们共同保证了数据库的完整性和一致性。
-
Atomicity(原子性):原子性是指事务中的所有操作要么全部执行成功,要么全部执行失败。如果事务中的一条SQL语句执行失败,那么整个事务将回滚,所有已执行的SQL语句都将被撤销,数据库状态回到事务开始前的状态。
-
Consistency(一致性):一致性是指事务的执行必须保持数据库的完整性约束、触发器、事务脚本等。如果事务执行后,数据库的状态不符合预期的规则和约束,那么事务将无法提交。
-
Isolation(隔离性):隔离性是指事务之间的操作是独立的,一个事务的执行不会影响到其他事务的执行。即使多个事务同时操作相同的数据,每个事务也仿佛在独自操作一样,它们之间不会互相影响。
-
Durability(持久性):持久性是指事务一旦提交成功,其对数据库的修改是永久的,即使数据库发生故障,事务的修改也不会丢失。
以上四个属性共同保证了数据库的完整性和一致性。在Oracle数据库中,默认情况下,每个连接都自动开启一个事务,可以通过提交(commit)或回滚(rollback)来结束事务。
例如,向一个账户转账,需要执行两条SQL语句,一条减去转账金额,一条增加转账金额。这两条SQL语句应该放在同一个事务中,如果其中一条语句执行失败,整个事务将回滚,转账操作撤销,保证了账户金额的不变性。