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