1 tony 1.1 // ===================================================================
2 // Title: Database MOF Specification 2.8
3 // Filename: Database28_Storage.mof
4 // Version: 2.8
5 // Release: Final
6 // Date: Jan 26, 2004
7 // ===================================================================
8 // Copyright 1998-2004 Distributed Management Task Force, Inc. (DMTF).
9 // All rights reserved.
10 // DMTF is a not-for-profit association of industry members dedicated
11 // to promoting enterprise and systems management and interoperability.
12 // DMTF specifications and documents may be reproduced for uses
13 // consistent with this purpose by members and non-members,
14 // provided that correct attribution is given.
15 // As DMTF specifications may be revised from time to time,
16 // the particular version and release date should always be noted.
17 //
18 // Implementation of certain elements of this standard or proposed
19 // standard may be subject to third party patent rights, including
20 // provisional patent rights (herein "patent rights"). DMTF makes
21 // no representations to users of the standard as to the existence
22 tony 1.1 // of such rights, and is not responsible to recognize, disclose, or
23 // identify any or all such third party patent right, owners or
24 // claimants, nor for any incomplete or inaccurate identification or
25 // disclosure of such rights, owners or claimants. DMTF shall have no
26 // liability to any party, in any manner or circumstance, under any
27 // legal theory whatsoever, for failure to recognize, disclose, or
28 // identify any such third party patent rights, or for such party's
29 // reliance on the standard or incorporation thereof in its product,
30 // protocols or testing procedures. DMTF shall have no liability to
31 // any party implementing such standard, whether such implementation
32 // is foreseeable or not, nor to any patent owner or claimant, and shall
33 // have no liability or responsibility for costs or losses incurred if
34 // a standard is withdrawn or modified after publication, and shall be
35 // indemnified and held harmless by any party implementing the
36 // standard from any and all claims of infringement by a patent owner
37 // for such implementations.
38 //
39 // For information about patents held by third-parties which have
40 // notified the DMTF that, in their opinion, such patent may relate to
41 // or impact implementations of DMTF standards, visit
42 // http://www.dmtf.org/about/policies/disclosures.php.
43 tony 1.1 // ===================================================================
44 // Description:
45 // This file contains the classes and associations that define
46 // the manageable entities that are relevant for database storage.
47 //
48 // ===================================================================
49 // Change Log for V2.8 Preliminary
50 // CR929 - Model changes for database storage
51 // CR1084 - Remove redundant database segment properties
52 // CR1085 - Add InitialExtentSize setting to DatabaseSegmentSettingData
53 // CR1086 - Move NumberOfFreeLists to DatabaseSegmentSettingData
54 // CR1088 - Refine the description of DatabaseSegmentSettingData
55 // CR1121 - Correct the placement for database recovery settings and
56 // capabilities
57 // CR1128 - Introduce HostedDependency into the Hierarchy
58 //
59 // Change Log for V2.8 Final
60 // CR1196 - Change Database Storage Model from Experimental to Final
61 // CR1234 - Database model lint issues
62 // ==================================================================
63
64 tony 1.1 // ===================================================================
65 // DatabaseSegment
66 // ===================================================================
67 [Version ( "2.8.0" ), Description (
68 "A database segment is a logical storage entity composed of one "
69 "or more storage extents, each of which may have one or more "
70 "database blocks. Database segments have various types "
71 "depending on their purpose. Note that the order of extents "
72 "within a DatabaseSegment should be represented in the BasedOn "
73 "dependency of CIM_StorageExtent via the BasedOn.OrderIndex "
74 "attribute.")]
75 class CIM_DatabaseSegment : CIM_StorageExtent {
76
77 [Override ( "Purpose" ), Description (
78 "The purpose of this segment within the context of the "
79 "database. A value of \"Data\" indicates that this segment "
80 "contains data for database area. A value of \"Data "
81 "Partition\" indicates this segment contains a portion of a "
82 "partitioned data area. A value of \"Data Cluster\" "
83 "indicates that this segment contains a portion of a "
84 "clustered database area. A value of \"Index\" indicates "
85 tony 1.1 "that this segment contains index information. A value of "
86 "\"Index Partition\" indicates that this segment contains a "
87 "portion of a partitioned index. A value of \"LOB\" "
88 "indicates that this segment is used to hold large objects "
89 "such as Binary Large Object (BLOB) or Character Large "
90 "Object (CLOB) entities. A value of \"LOB Index\" indicates "
91 "that this segment is used to hold index information "
92 "relevant to a \"LOB\" segment. A value of \"Undo\" "
93 "indicates that this segment contains undo or rollback "
94 "information that may be used to reverse operations applied "
95 "to a database. A value of \"Snapshot\" indicates that this "
96 "segment is used to represent a portion of the database at a "
97 "previous point-in-time. A value of \"Temp\" indicates that "
98 "this segment is used as temporary space for database "
99 "operations. A value of \"Other\" indicates that the segment "
100 "is used for something other than any of the listed purposes "
101 "and requires further description in the OtherPurpose "
102 "attribute. Using a value of \"Other\" would generally "
103 "indicate a need to extend the model to include an "
104 "additional purpose."),
105 ValueMap { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
106 tony 1.1 "11" },
107 Values { "Other", "Data", "Data Partition", "Data Cluster",
108 "Index", "Index Partition", "LOB", "LOB Index", "Undo",
109 "Snapshot", "Temp" },
110 ModelCorrespondence { "CIM_DatabaseSegment.OtherPurpose" }]
111 string Purpose;
112
113 [Description (
114 "The purpose of this segment when the Purpose attribute has "
115 "a value of \"Other\". This attribute should be null in all "
116 "other cases."),
117 ModelCorrespondence { "CIM_DatabaseSegment.Purpose" }]
118 string OtherPurpose;
119 };
120
121 // ===================================================================
122 // DatabaseStorageArea
123 // ===================================================================
124 [Version ( "2.8.0" ), Description (
125 "Databases as modeled by instances of the CommonDatabase class "
126 "are comprised of a collection of logical storage areas "
127 tony 1.1 "represented by instances of the DatabaseStorageArea class. "
128 "Database storage areas allow the administrator to logically "
129 "organize the content of the database. This class extends from "
130 "FileSystem and uses the inherited associations to represent "
131 "the internal structure of the database.")]
132 class CIM_DatabaseStorageArea : CIM_FileSystem {
133
134 [Description (
135 "A Boolean value indicating the ownership of this "
136 "StorageArea. A value of true indicates that this "
137 "StorageArea is owned by the DatabaseSystem and contains "
138 "system information. A value of false indicates that this is "
139 "a user StorageArea containing data.")]
140 boolean IsSystemArea;
141
142 [Description (
143 "A timestamp representing the date and time of the last "
144 "successful backup of the DatabaseStorageArea. This property "
145 "should be set to a value of zero, in interval format, if it "
146 "is not known whether a backup has ever been completed.")]
147 datetime LastBackup;
148 tony 1.1 };
149
150 // ===================================================================
151 // DatabaseFile
152 // ===================================================================
153 [Association, Aggregation, Version ( "2.8.0" ), Description (
154 "DatabaseFile captures the relationship between a database and "
155 "the supporting files that make up the database as well as the "
156 "purpose served by the files within the context of the "
157 "database.")]
158 class CIM_DatabaseFile : CIM_Component {
159
160 [Aggregate, Override ( "GroupComponent" ), Min ( 1 ), Max ( 1 ),
161 Description (
162 "The single CommonDatabase instance that uses the referenced "
163 "LogicalFile.")]
164 CIM_CommonDatabase REF GroupComponent;
165
166 [Override ( "PartComponent" ), Description (
167 "One of any number of LogicalFile instances utilized by the "
168 "referenced CommonDatabase.")]
169 tony 1.1 CIM_LogicalFile REF PartComponent;
170 };
171
172 // ===================================================================
173 // DatabaseStorage
174 // ===================================================================
175 [Association, Aggregation, Version ( "2.8.0" ), Description (
176 "Databases are comprised of a collection of logical storage "
177 "areas represented by instances of the DatabaseStorageArea "
178 "class. The DatabaseStorage class represents the relationship "
179 "between a CommonDatabase and the storage areas which it uses.")]
180 class CIM_DatabaseStorage : CIM_Component {
181
182 [Aggregate, Override ( "GroupComponent" ), Min ( 1 ), Max ( 1 ),
183 Description (
184 "The database which makes use of the associated "
185 "DatabaseStorageArea.")]
186 CIM_CommonDatabase REF GroupComponent;
187
188 [Override ( "PartComponent" ), Description (
189 "A DatabaseStorageArea used by the associated "
190 tony 1.1 "CommonDatabase. A DatabaseStorageArea may only be used by a "
191 "single database.")]
192 CIM_DatabaseStorageArea REF PartComponent;
193 };
194
195 // ===================================================================
196 // DatabaseSegmentSettingData
197 // ===================================================================
198 [Version ( "2.8.0" ), Description (
199 "This class defines the attributes that affect the growth of a "
200 "DatabaseSegment. The attributes are tied to the "
201 "DatabaseSegment through an ElementSettingData association. "
202 "This class may also be used to specify the default settings "
203 "for all DatabaseSegment instances created within a "
204 "CommonDatabase through an ElementSettingData association to "
205 "the CommonDatabase. Processes that create new instances of "
206 "DatabaseSegment and the associated setting data should check "
207 "for a DatabaseSegmentSettingData instance associated with the "
208 "CommonDatabase and should only create a new instance of "
209 "DatabaseSegmentSettingData specific to the DatabaseSegment if "
210 "the default settings need to be overridden or frozen for the "
211 tony 1.1 "specific DatabaseSegment instance.")]
212 class CIM_DatabaseSegmentSettingData : CIM_ScopedSettingData {
213
214 [Write, Description (
215 "The size, in bytes, of the first extent to be allocated "
216 "when a database segment is created."),
217 Units ( "Bytes" )]
218 uint64 InitialExtentSize;
219
220 [Write, Description (
221 "The total number of extents to be allocated when the "
222 "database segment is created. This setting allows for a "
223 "large initial segment allocation at creation time, even if "
224 "contiguous space is not available.")]
225 uint64 MinimumExtents;
226
227 [Write, Description (
228 "The upper limit on the number of extents that can be "
229 "allocated for the segment.")]
230 uint64 MaximumExtents;
231
232 tony 1.1 [Write, Description (
233 "The size, in bytes, to be allocated for the next "
234 "incremental extent for the segment. A NextExtentSize of 0 "
235 "indicates that the size of incremental extents will be "
236 "determined based on the value of PercentIncrease."),
237 Units ( "Bytes" ), MinValue ( 0 ),
238 ModelCorrespondence {
239 "CIM_DatabaseSegmentSettingData.PercentIncrease" }]
240 uint64 NextExtentSize;
241
242 [Write, Description (
243 "The percentage by which the next incremental extent will "
244 "grow over the previously allocated size of all extents for "
245 "the segment. A PercentIncrease of 0 indicates that all "
246 "incremental extents will be the same size, as specified by "
247 "NextExtentSize. This value is ignored and should be set to "
248 "0 if NextExtentSize has a value other than 0."),
249 MinValue ( 0 ),
250 ModelCorrespondence {
251 "CIM_DatabaseSegmentSettingData.NextExtentSize" }]
252 uint16 PercentIncrease;
253 tony 1.1
254 [Write, Description (
255 "A freelist is a list of the free blocks that are associated "
256 "with a database segment. The freelist is used to determine "
257 "which segments are eligible for accepting data when a new "
258 "insert or update request is processed. The "
259 "NumberOfFreeLists setting identifies the number of "
260 "freelists that are defined for the database segment. This "
261 "value is typically set to the expected number of concurrent "
262 "inserts for the segment.")]
263 uint32 NumberOfFreeLists;
264 };
265
266
267 // ===================================================================
268 // DatabaseControlFile
269 // ===================================================================
270 [Association, Version ( "2.8.0" ), Description (
271 "CIM_DatabaseControlFile is a specialization of the "
272 "CIM_Dependency association that identifies the LogicalFile(s) "
273 "which provide control information for a Database. As an "
274 tony 1.1 "example, some implementations of CommonDatabase assign "
275 "particular significance to a small number of files containing "
276 "database state and configuration information. This association "
277 "is intended to provide an efficient means of identifying these "
278 "files.")]
279 class CIM_DatabaseControlFile : CIM_HostedDependency {
280
281 [Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description (
282 "The parent CommonDatabase for the associated control file.")]
283 CIM_CommonDatabase REF Antecedent;
284
285 [Override ( "Dependent" ), Description (
286 "The LogicalFile that contains control information for the "
287 "associated CommonDatabase.")]
288 CIM_LogicalFile REF Dependent;
289 };
290
291
292 // ===================================================================
293 // CommonDatabaseSettingData
294 // ===================================================================
295 tony 1.1 [Version ( "2.8.0" ), Description (
296 "This class contains the specific settings that identify the "
297 "degree to which the high-level database capabilities that are "
298 "defined in the CIM_CommonDatabaseCapabilities class are "
299 "supported by a CommonDatabase. Specific values for the "
300 "properties in this class MUST correspond to a valid capability "
301 "that has been defined in the CIM_CommonDatabaseCapabilities "
302 "class. \n"
303 "Instances in the CIM_CommonDatabaseSettingData class are tied "
304 "to the CommonDatabase using the ElementSettingData "
305 "association.")]
306 class CIM_CommonDatabaseSettingData : CIM_SettingData {
307
308 [Write, Description (
309 "RecoverabilityOption indicates the specific recoverability "
310 "mode for the associated CommonDatabase."),
311 ValueMap { "1", "2", "3", "4" },
312 Values { "Other", "Recoverable", "Non-Recoverable",
313 "Rebuildable" },
314 ModelCorrespondence {
315 "CIM_CommonDatabaseSettingData.OtherRecoverabilityOption",
316 tony 1.1 "CIM_CommonDatabaseCapabilities.RecoverabilityOptions" }]
317 uint16 RecoverabilityOption;
318
319 [Write, Description (
320 "This property contains additional recovery information for "
321 "the CommonDatabase. This property MUST be specified when "
322 "the Recoverability property is \"Other\"."),
323 ModelCorrespondence {
324 "CIM_CommonDatabaseSettingData.RecoverabilityOption",
325 "CIM_CommonDatabaseCapabilities.OtherRecoverabilityOptions" }]
326 string OtherRecoverabilityOption;
327 };
328
329
330 // ===================================================================
331 // CommonDatabaseCapabilities
332 // ===================================================================
333
334 [Version ( "2.8.0" ), Description (
335 "Properties in this class represent general, high-level "
336 "database capabilities that may be supported by a common "
337 tony 1.1 "database. For example, the ability for a database to support "
338 "recoverability, replication, parallelism, or clustering would "
339 "be specified in this class. Detailed settings, such as the "
340 "minimum and maximum number of parallel servers for a database "
341 "that supports parallelism, would be defined in the "
342 "CIM_DatabaseParameter class. \n"
343 "This information is tied to the CommonDatabase using the "
344 "ElementCapabilities association.")]
345 class CIM_CommonDatabaseCapabilities : CIM_Capabilities {
346
347 [Description (
348 "This property identifies the supported recoverability modes "
349 "for the associated CommonDatabase."),
350 ValueMap { "1", "2", "3", "4" },
351 Values { "Other", "Recoverable", "Non-Recoverable",
352 "Rebuildable" }, ArrayType ( "Indexed" ),
353 ModelCorrespondence {
354 "CIM_CommonDatabaseCapabilities.OtherRecoverabilityOptions" }]
355 uint16 RecoverabilityOptions[];
356
357 [Description (
358 tony 1.1 "This property contains additional recovery information for "
359 "the CommonDatabase. This property MUST be specified when "
360 "the Recoverability property is \"Other\"."),
361 ArrayType ( "Indexed" ),
362 ModelCorrespondence {
363 "CIM_CommonDatabaseCapabilities.RecoverabilityOptions" }]
364 string OtherRecoverabilityOptions[];
365 };
366
367
368
369 // ===================================================================
370 // end of file
371 // ===================================================================
|