ORACLE数据库模型概述
一个ORACLE数据库是数据的集合,被处理成一个单位。每个ORACLE数据库有一个物理结构和一个逻辑结构。
数据库物理结构是由构成数据库的操作系统文件所决定的。数据库的文件为数据库信息提供真正的物理存储。每一个ORACLE数据库是由三种类型的文件组成,即数据文件、日志文件和控制文件。
逻辑数据库结构是用户所涉及的数据库结构,一个ORACLE数据库的逻辑结构由下列因素决定:
(1) 一个或多个表空间
(2) 数据库模式对象
逻辑存储结构例如表空间用于支配一个数据库的物理空间如何使用,模式对象及它们之间的联系组成了一个数据库的关系设计。
一.数据库物理结构
ORACLE数据库由三种类型的物理文件组成,即数据文件、日志文件和控制文件.
1. 数据文件
每一个ORACLE数据库有一个或多个物理的数据文件(data file) 。一个数据库的数据文件包含全部数据库数据。逻辑数据库结构的数据也是物理地存储在数据库的数据文件中。数据文件有下列特征:
(1) 一个数据文件仅与一个数据库相联系
(2) 一旦建立数据文件不能改变大小
(3) 一个表空间由一个或多个数据文件组成
数据文件中的数据在需要时可以读取并存储在 ORACLE 内存储区中。例如:用户要存取数据库一表的某些数据,如果请求信息不在数据库的内存存储区内,则从相应的数据文件中读取并存储在内存。当修改和插入新数据时,不必立刻写入数据文件。为了减少磁盘输出的总数,提高性能,数据存储在内存,然后由ORACLE后台进程DBWR决定如何将其写入到相应的数据文件。
2. 日志文件
每一个数据库有由两个或多个日志文件(redo log file)构成的日志文件组,每一个日志文件用于收集数据库日志。
日志的主要功能是记录对数据库所做的修改,所以对数据库作的全部修改均被记录在日志中。日志文件主要是保护数据库以防止故障,为了防止日志文件本身的故障,ORACLE允许镜象日志(mirrored redo log) 以便可在不同磁盘上维护多个相同的日志副本。
日志文件中的信息仅在系统故障或介质故障恢复数据库时使用。
3. 控制文件
每一个 ORACLE 数据库至少有一个控制文件(control file),它记录数据库的物理结构,包含的主要信息是:
(1) 数据库名
(2) 数据库数据文件和日志文件的名字和位置
(3) 数据库建立日期
每一次ORACLE数据库的实例启动时,它的控制文件用于标识数据库和日志文件,当着手数据库操作时它们必须被打开。当数据库的物理组成更改时,ORACLE自动更改该数据库的控制文件。
2.3.2 数据库逻辑结构
数据库的逻辑结构包含表空间(table space)、段(segment)、区(extent)、数据块(block),
1. 表空间
一个数据库划分为一个或多个逻辑单位,该逻辑单位称为表空间。一个表空间可将相关的逻辑结构组合在一起。DBA可利用表空间作下列工作:
(1) 控制数据库数据的磁盘分配
(2) 将确定的空间份额分配给数据库用户
(3) 通过使单个表空间在线或离线,控制数据的可用性
(4) 执行部分数据库备份或恢复操作
(5) 为提高性能,跨越设备分配数据存储
数据库、表空间和数据文件之间的关系如图2.3-2所示。
每个数据库可逻辑划分为一个或多个表空间。每一个表空间是由一个或多个数据文件组成,该表空间物理地存储表空间中全部逻辑结构的数据。DBA可以建立新的表空间,可为表空间增加数据文件或可删除数据文件,设置或更改缺省的段存储位置。
每一个ORACLE 数据库包含有一个名为SYSTEM 的表空间,该表空间在数据库建立时自动建立。在该表空间中总包含有整个数据库的数据字典表。最小的数据库可只需要SYSTEM表空间。该表空间必须总是在线。表和存储的PL/SQL程序单元(过程、函数、包和触发器)的全部存储数据是存储在SYSTEM表空间中。
通过增加表空间的数据文件来扩大表空间,表空间的大小为组成该表空间的数据文件大小的和。
DBA可以使ORACLE数据库中除SYSTEM表空间外的任何其他表空间在在线或离线(离线的该表空间不能有活动的回滚段)。表空间通常是在线,以致它所包含的数据对数据库用户是可用的。当表空间为离线时,其数据不可使用。在下列情况下,DBA可以使其离线:
(1) 使部分数据不可用,而剩余的部分允许正常存取
(2) 执行离线的表空间备份
(3) 为了修改或维护一应用,使它和它的一组表临时不可用
包含有正在活动的回滚段的表空间不能被离线,仅当回滚段不正在使用时,该表空间才可离线。
在数据字典中记录表空间的状态,在线还是离线。如果在数据库关闭时一表空间为离线,那么在下次数据库装配和重新打开后,它仍然保持离线。
当出现某些错误时,一个表空间可自动地由在线改变为离线。通过使用多个表空间,将不同类型的数据分开,更方便DBA来管理数据库。
ORACLE数据库中一表空间是由一个或多个物理数据文件组成,一个数据文件只可与一个表空间相联系。
ORACLE通过段、区和数据块等逻辑数据结构可更细地控制磁盘空间的使用。
2. 段
段(SEGMENT)包含表空间中一种指定类型的逻辑存储结构,是由一组区组成。在ORACLE数据库中有几种类型的段:数据段、索引段、回滚段和临时段。
数据段:对于每一个非聚集的表有一数据段,表的所有数据存放在该段。每一聚集有一个数据段,聚集中每一个表的数据存储在该段中。
索引段:每一个索引有一索引段,存储索引数据。
回滚段:是由 DBA 建立,用于临时存储要撤消的信息,这些信息用于生成读一致性数据库信息、在数据库恢复时使用、回滚未提交的事务。
临时段:当一个 SQL 语句需要临时工作区时,由 ORACLE 建立。当语句执行完毕,临时段的区退回给系统。
ORACLE对所有段的空间分配,以区为单位。
3. 区
一个区(EXTENT)是数据库存储空间分配的一个逻辑单位,它由连续的ORACLE数据块所组成。每一个段是由一个或多个区组成。当一段中的所有空间已完全使用时,ORACLE为该段分配一个新的区。
为了维护的目的,在数据库的每一段含有段标题块说明段的特征以及该段中的区目录。
4. 数据块
数据块(data block)是 ORACLE 管理数据文件中存储空间的单位,为数据库使用的I/O的最小单位,其大小可不同于操作系统的标准I/O块大小。
以上就是ORACLE数据库模型概述的内容, 更多相关文章请关注PHP中文网(www.php.cn)!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds





Les solutions à Oracle ne peuvent pas être ouvertes comprennent: 1. Démarrer le service de base de données; 2. Commencez l'auditeur; 3. Vérifiez les conflits portuaires; 4. Définir correctement les variables d'environnement; 5. Assurez-vous que le pare-feu ou le logiciel antivirus ne bloque pas la connexion; 6. Vérifiez si le serveur est fermé; 7. Utilisez RMAN pour récupérer les fichiers corrompus; 8. Vérifiez si le nom du service TNS est correct; 9. Vérifier la connexion réseau; 10. Réinstaller le logiciel Oracle.

La suppression de toutes les données dans Oracle nécessite les étapes suivantes: 1. Établir une connexion; 2. Désactiver les contraintes de clés étrangères; 3. Supprimer les données de table; 4. Soumettre les transactions; 5. Activer les contraintes de clé étrangère (facultative). Assurez-vous de sauvegarder la base de données avant l'exécution pour éviter la perte de données.

La méthode pour résoudre le problème de fermeture du curseur Oracle comprend: la fermeture explicite du curseur à l'aide de l'instruction Close. Déclarez le curseur dans la clause de mise à jour pour la fermeture automatiquement après la fin de la portée. Déclarez le curseur dans la clause d'utilisation afin qu'il se ferme automatiquement lorsque la variable PL / SQL associée est fermée. Utilisez la gestion des exceptions pour vous assurer que le curseur est fermé dans toute situation d'exception. Utilisez le pool de connexion pour fermer automatiquement le curseur. Désactiver la soumission automatique et le délai de fermeture du curseur.

La pagination de la base de données Oracle utilise des pseudo-colonnes Rownum ou des instructions de récupération pour implémenter: les pseudo-colonnes Rownum sont utilisées pour filtrer les résultats par les numéros de ligne et conviennent aux requêtes complexes. L'instruction Fetch est utilisée pour obtenir le nombre spécifié de premières lignes et convient aux requêtes simples.

Dans Oracle, la boucle pour la boucle pour créer des curseurs dynamiquement. Les étapes sont: 1. Définissez le type de curseur; 2. Créez la boucle; 3. Créez le curseur dynamiquement; 4. Exécuter le curseur; 5. Fermez le curseur. Exemple: un curseur peut être créé de cycle par circuit pour afficher les noms et salaires des 10 meilleurs employés.

Pour arrêter une base de données Oracle, effectuez les étapes suivantes: 1. Connectez-vous à la base de données; 2. Arrêt immédiatement; 3. Arrêt About complètement.

Les instructions SQL peuvent être créées et exécutées en fonction de l'entrée d'exécution en utilisant Dynamic SQL d'Oracle. Les étapes comprennent: la préparation d'une variable de chaîne vide pour stocker des instructions SQL générées dynamiquement. Utilisez l'instruction EXECUTER IMMÉDIATE OU PRÉPEPART pour compiler et exécuter les instructions SQL dynamiques. Utilisez la variable Bind pour passer l'entrée utilisateur ou d'autres valeurs dynamiques à Dynamic SQL. Utilisez EXECUTER immédiat ou exécuter pour exécuter des instructions SQL dynamiques.

Les étapes pour ouvrir une base de données Oracle sont les suivantes: Ouvrez le client de la base de données Oracle et connectez-vous au serveur de base de données: Connectez le nom d'utilisateur / mot de passe @ servername Utilisez la commande SQLPLUS pour ouvrir la base de données: SQLPlus
