目次
[每日一题] 11gOCP 1z0-052 :2013-08-31 数据库的存储结构....................................................A8

数据库的存储结构

Jun 07, 2016 pm 03:47 PM
ストレージ データベース 構造

[每日一题] 11gOCP 1z0-052 :2013-08-31 数据库的存储结构....................................................A8 http://blog.csdn.net/guoyjoe/article/details/10784599 、 正确答案:A 将逻辑存储与物理存储分开是关系数据库范例的必要部分。关系数据

[每日一题] 11gOCP 1z0-052 :2013-08-31 数据库的存储结构....................................................A8


http://blog.csdn.net/guoyjoe/article/details/10784599

数据库的存储结构


正确答案:A

  将逻辑存储与物理存储分开是关系数据库范例的必要部分。关系数据库范例表明:编程人员只处理逻辑结构,而让数据库去管理到物理结构的映射。这意味着,可以重新组织物理存储,也可以将整个数据库移动到完全不同的硬件和操作系统上,而应用程序意识不到任何更改。

  如下图展示Oracle存储模型,逻辑结构在左,物理结构在右。

 

 数据库的存储结构

注释:

从图示可以看出,数据库的存储结构可以分成两条路线去理解:

一是逻辑结构,即数据库由各个表空间组成,表空间由各个段组成,段由各个区段组成,区段由各个oracle块组成;

二是物理结构,即数据库由各个表空间组成,表空间由各个操作系统级别的文件组成,(操作系统级别的)文件由各个操作系统块组成。

疑问:一个段只能存放在一个操作系统级别的文件上吗?还是可以跨文件存放?

1、Oracle数据库逻辑结构

 (1)DATABASE:一个数据库可划分为多个称为表空间的逻辑存储单元。

如下查询一个数据库中有七个表空间

[html] view plaincopy

  1. gyj@OCM> select tablespace_name from dba_tablespaces;  
  2. TABLESPACE_NAME  
  3. ------------------------------  
  4. SYSTEM  
  5. SYSAUX  
  6. UNDOTBS1  
  7. TEMP  
  8. USERS  
  9. EXAMPLE  
  10. GYJ  

(2)TABLESPACE:只能属一个数据库,包括一个或多个文件。如下表空间GYJ下有两个数据文件。

[html] view plaincopy

  1. gyj@OCM> col tablespace_name for a20  
  2. gyj@OCM> col file_name for a50  
  3.  gyj@OCM> select tablespace_name,file_name from dba_data_files where tablespace_name='GYJ';  
  4. TABLESPACE_NAME      FILE_NAME  
  5. -------------------- --------------------------------------------------  
  6. GYJ                  /u01/app/oracle/oradata/ocm/gyj01.dbf  
  7. GYJ                  /u01/app/oracle/oradata/ocm/gyj02.dbf  


(3)SEGMENT:存在于表空间中,包含一个或多个区。

     包括:表段、表分区段、索引段、索引分区段、临时段、撤销段、BLOBCLOB

[html] view plaincopy

  1.  gyj@OCM> select distinct segment_type from dba_segments;  
  2. SEGMENT_TYPE  
  3. ------------------  
  4. LOBINDEX  
  5. INDEX PARTITION  
  6. TABLE SUBPARTITION  
  7. ROLLBACK  
  8. TABLE PARTITION  
  9. NESTED TABLE  
  10. LOB PARTITION  
  11. LOBSEGMENT  
  12. INDEX  
  13. TABLE  
  14. TYPE2 UNDO  
  15. CLUSTER  

T1段所在的表空间、区的信息。

[html] view plaincopy

  1. gyj@OCM> select TABLESPACE_NAME,EXTENTS,BYTES/1024/1024||'M',BLOCKS from user_segments where segment_name='T1';  
  2. TABLESPACE_NAME         EXTENTS BYTES/1024/1024||'M'                          BLOCKS  
  3. -------------------- ---------- ----------------------------------------- ----------  
  4. GYJ                           1 .0625M                                             8  


(4)EXTENT:由相邻的数据块的组成,这意味着每个区只能存在于一个数据文件中。

[html] view plaincopy

  1. gyj@OCM> select TABLESPACE_NAME,EXTENT_ID,FILE_ID,BLOCK_ID,BYTES,BLOCKS from dba_extents where segment_name='T1' and owner='GYJ';  
  2.   
  3. TABLESPACE_NAME       EXTENT_ID    FILE_ID   BLOCK_ID      BYTES     BLOCKS  
  4. -------------------- ---------- ---------- ---------- ---------- ----------  
  5. GYJ                           0          6        176      65536          8  


(5)BLOCK:是数据库中最小的I/O单元,db_block_size


[html] view plaincopy

  1.  gyj@OCM> show parameter db_block_size  
  2.   
  3. NAME                                 TYPE        VALUE  
  4. ------------------------------------ ----------- ------------------------------  
  5. db_block_size                        integer     8192  

2、Oracle数据库物理结构     

 (1)、OS文件

      A、仅属于一个表空间

      B、是构成表空间的基础文件

 

 (2)、OS

A、 tune2fs-l /dev/sda1


[html] view plaincopy

  1. [root@mydb ~]# tune2fs -l /dev/sda1  
  2. tune2fs 1.39 (29-May-2006)  
  3. Filesystem volume name:   /boot  
  4. Last mounted on:          not available>  
  5. Filesystem UUID:          866e46b9-cb84-4271-b694-4ca3d25dc621  
  6. Filesystem magic number:  0xEF53  
  7. Filesystem revision #:    1 (dynamic)  
  8. Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super  
  9. Default mount options:    user_xattr acl  
  10. Filesystem state:         clean  
  11. Errors behavior:          Continue  
  12. Filesystem OS type:       Linux  
  13. Inode count:              26104  
  14. Block count:              104388  
  15. Reserved block count:     5219  
  16. Free blocks:              89230  
  17. Free inodes:              26070  
  18. First block:              1  
  19. Block size:               1024  
  20. Fragment size:            1024  
  21. Reserved GDT blocks:      256  
  22. Blocks per group:         8192  
  23. Fragments per group:      8192  
  24. Inodes per group:         2008  
  25. Inode blocks per group:   251  
  26. Filesystem created:       Mon Aug 12 19:59:14 2013  
  27. Last mount time:          Sat Aug 31 20:35:07 2013  
  28. Last write time:          Sat Aug 31 20:35:07 2013  
  29. Mount count:              16  
  30. Maximum mount count:      -1  
  31. Last checked:             Mon Aug 12 19:59:14 2013  
  32. Check interval:           0 (none>)  
  33. Reserved blocks uid:      0 (user root)  
  34. Reserved blocks gid:      0 (group root)  
  35. First inode:              11  
  36. Inode size:               128  
  37. Journal inode:            8  
  38. Default directory hash:   tea  
  39. Directory Hash Seed:      12499f4f-6bd0-40d2-8a7a-6224b8f449dd  
  40. Journal backup:           inode blocks  


  B、扇区:512字节操作系统一次IO的大小

[html] view plaincopy

  1. [root@mydb ~]# fdisk -l  
  2.   
  3. Disk /dev/sda: 26.8 GB, 26843545600 bytes  
  4. 255 heads, 63 sectors/track, 3263 cylinders  
  5. Units = cylinders of 16065 * 512 = 8225280 bytes  
  6.   
  7.    Device Boot      Start         End      Blocks   Id  System  
  8. /dev/sda1   *           1          13      104391   83  Linux  
  9. /dev/sda2              14         144     1052257+  82  Linux swap / Solaris  
  10. /dev/sda3             145        3263    25053367+  83  Linux 
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

iOS 18では、紛失または破損した写真を復元するための新しい「復元」アルバム機能が追加されます iOS 18では、紛失または破損した写真を復元するための新しい「復元」アルバム機能が追加されます Jul 18, 2024 am 05:48 AM

Apple の最新リリースの iOS18、iPadOS18、および macOS Sequoia システムでは、さまざまな理由で紛失または破損した写真やビデオをユーザーが簡単に回復できるように設計された重要な機能が写真アプリケーションに追加されました。この新機能では、写真アプリのツール セクションに「Recovered」というアルバムが導入され、ユーザーがデバイス上に写真ライブラリに含まれていない写真やビデオがある場合に自動的に表示されます。 「Recovered」アルバムの登場により、データベースの破損、カメラ アプリケーションが写真ライブラリに正しく保存されない、または写真ライブラリを管理するサードパーティ アプリケーションによって失われた写真やビデオに対する解決策が提供されます。ユーザーはいくつかの簡単な手順を実行するだけで済みます

PHP でデータベース接続エラーを処理する方法 PHP でデータベース接続エラーを処理する方法 Jun 05, 2024 pm 02:16 PM

PHP でデータベース接続エラーを処理するには、次の手順を使用できます。 mysqli_connect_errno() を使用してエラー コードを取得します。 mysqli_connect_error() を使用してエラー メッセージを取得します。これらのエラー メッセージをキャプチャしてログに記録することで、データベース接続の問題を簡単に特定して解決でき、アプリケーションをスムーズに実行できるようになります。

PHP で MySQLi を使用してデータベース接続を確立するための詳細なチュートリアル PHP で MySQLi を使用してデータベース接続を確立するための詳細なチュートリアル Jun 04, 2024 pm 01:42 PM

MySQLi を使用して PHP でデータベース接続を確立する方法: MySQLi 拡張機能を含める (require_once) 接続関数を作成する (functionconnect_to_db) 接続関数を呼び出す ($conn=connect_to_db()) クエリを実行する ($result=$conn->query()) 閉じる接続 ( $conn->close())

ラムダ式の構文と構造の特徴は何ですか? ラムダ式の構文と構造の特徴は何ですか? Apr 25, 2024 pm 01:12 PM

ラムダ式は名前のない匿名関数であり、その構文は (parameter_list)->expression です。匿名性、多様性、カリー化、閉鎖性が特徴です。実際のアプリケーションでは、ラムダ式を使用して、合計関数 sum_lambda=lambdax,y:x+y などの関数を簡潔に定義し、map() 関数をリストに適用して合計演算を実行できます。

GolangでJSONデータをデータベースに保存するにはどうすればよいですか? GolangでJSONデータをデータベースに保存するにはどうすればよいですか? Jun 06, 2024 am 11:24 AM

JSON データは、gjson ライブラリまたは json.Unmarshal 関数を使用して MySQL データベースに保存できます。 gjson ライブラリは、JSON フィールドを解析するための便利なメソッドを提供します。json.Unmarshal 関数には、JSON データをアンマーシャリングするためのターゲット型ポインターが必要です。どちらの方法でも、SQL ステートメントを準備し、データをデータベースに永続化するために挿入操作を実行する必要があります。

Golangでデータベースコールバック関数を使用するにはどうすればよいですか? Golangでデータベースコールバック関数を使用するにはどうすればよいですか? Jun 03, 2024 pm 02:20 PM

Golang でデータベース コールバック関数を使用すると、次のことを実現できます。 指定されたデータベース操作が完了した後にカスタム コードを実行します。追加のコードを記述せずに、個別の関数を通じてカスタム動作を追加します。コールバック関数は、挿入、更新、削除、クエリ操作に使用できます。コールバック関数を使用するには、sql.Exec、sql.QueryRow、または sql.Query 関数を使用する必要があります。

MySQL:簡単な学習のためのシンプルな概念 MySQL:簡単な学習のためのシンプルな概念 Apr 10, 2025 am 09:29 AM

MySQLは、オープンソースのリレーショナルデータベース管理システムです。 1)データベースとテーブルの作成:createdatabaseおよびcreateTableコマンドを使用します。 2)基本操作:挿入、更新、削除、選択。 3)高度な操作:参加、サブクエリ、トランザクション処理。 4)デバッグスキル:構文、データ型、およびアクセス許可を確認します。 5)最適化の提案:インデックスを使用し、選択*を避け、トランザクションを使用します。

Golangを使用してリモートデータベースに接続するにはどうすればよいですか? Golangを使用してリモートデータベースに接続するにはどうすればよいですか? Jun 01, 2024 pm 08:31 PM

Go 標準ライブラリのデータベース/SQL パッケージを通じて、MySQL、PostgreSQL、SQLite などのリモート データベースに接続できます。データベース接続情報を含む接続文字列を作成します。 sql.Open() 関数を使用してデータベース接続を開きます。 SQL クエリや挿入操作などのデータベース操作を実行します。 defer を使用してデータベース接続を閉じ、リソースを解放します。

See all articles