1 a.dunfey 1.1 // ===================================================================
2 // Title: Database Storage
3 // $State: Preliminary $
4 // $Date: 2005/01/05 00:54:00 $
5 // $Source: /home/dmtf2/dotorg/var/cvs/repositories/dev/Schema/MOF/Database_Storage.mof,v $
6 // $Revision: 1.4 $
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 // Change Log for V2.9 Preliminary
66 // CR1295 - Changes to descriptions to support RFC2119
67 // ==================================================================
68
69 // ===================================================================
70 // DatabaseSegment
71 // ===================================================================
72 [Version ( "2.8.0" ), Description (
73 "A database segment is a logical storage entity composed of one "
74 "or more storage extents, each of which MAY have one or more "
75 "database blocks. Database segments have various types "
76 "depending on their purpose. Note that the order of extents "
77 "within a DatabaseSegment SHOULD be represented in the BasedOn "
78 "dependency of CIM_StorageExtent via the BasedOn.OrderIndex "
79 "attribute.")]
80 class CIM_DatabaseSegment : CIM_StorageExtent {
81
82 [Override ( "Purpose" ), Description (
83 "The purpose of this segment within the context of the "
84 "database. A value of \"Data\" indicates that this segment "
85 a.dunfey 1.1 "contains data for database area. A value of \"Data "
86 "Partition\" indicates this segment contains a portion of a "
87 "partitioned data area. A value of \"Data Cluster\" "
88 "indicates that this segment contains a portion of a "
89 "clustered database area. A value of \"Index\" indicates "
90 "that this segment contains index information. A value of "
91 "\"Index Partition\" indicates that this segment contains a "
92 "portion of a partitioned index. A value of \"LOB\" "
93 "indicates that this segment is used to hold large objects "
94 "such as Binary Large Object (BLOB) or Character Large "
95 "Object (CLOB) entities. A value of \"LOB Index\" indicates "
96 "that this segment is used to hold index information "
97 "relevant to a \"LOB\" segment. A value of \"Undo\" "
98 "indicates that this segment contains undo or rollback "
99 "information that MAY be used to reverse operations applied "
100 "to a database. A value of \"Snapshot\" indicates that this "
101 "segment is used to represent a portion of the database at a "
102 "previous point-in-time. A value of \"Temp\" indicates that "
103 "this segment is used as temporary space for database "
104 "operations. A value of \"Other\" indicates that the segment "
105 "is used for something other than any of the listed purposes "
106 a.dunfey 1.1 "and requires further description in the OtherPurpose "
107 "attribute. Using a value of \"Other\" would generally "
108 "indicate a need to extend the model to include an "
109 "additional purpose."),
110 ValueMap { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
111 "11" },
112 Values { "Other", "Data", "Data Partition", "Data Cluster",
113 "Index", "Index Partition", "LOB", "LOB Index", "Undo",
114 "Snapshot", "Temp" },
115 ModelCorrespondence { "CIM_DatabaseSegment.OtherPurpose" }]
116 string Purpose;
117
118 [Description (
119 "The purpose of this segment when the Purpose attribute has "
120 "a value of \"Other\". This attribute SHOULD be null in all "
121 "other cases."),
122 ModelCorrespondence { "CIM_DatabaseSegment.Purpose" }]
123 string OtherPurpose;
124 };
125
126 // ===================================================================
127 a.dunfey 1.1 // DatabaseStorageArea
128 // ===================================================================
129 [Version ( "2.8.0" ), Description (
130 "Databases as modeled by instances of the CommonDatabase class "
131 "are comprised of a collection of logical storage areas "
132 "represented by instances of the DatabaseStorageArea class. "
133 "Database storage areas allow the administrator to logically "
134 "organize the content of the database. This class extends from "
135 "FileSystem and uses the inherited associations to represent "
136 "the internal structure of the database.")]
137 class CIM_DatabaseStorageArea : CIM_FileSystem {
138
139 [Description (
140 "A Boolean value indicating the ownership of this "
141 "StorageArea. A value of true indicates that this "
142 "StorageArea is owned by the DatabaseSystem and contains "
143 "system information. A value of false indicates that this is "
144 "a user StorageArea containing data.")]
145 boolean IsSystemArea;
146
147 [Description (
148 a.dunfey 1.1 "A timestamp representing the date and time of the last "
149 "successful backup of the DatabaseStorageArea. This property "
150 "SHOULD be set to a value of zero, in interval format, if it "
151 "is not known whether a backup has ever been completed.")]
152 datetime LastBackup;
153 };
154
155 // ===================================================================
156 // DatabaseFile
157 // ===================================================================
158 [Association, Aggregation, Version ( "2.8.0" ), Description (
159 "DatabaseFile captures the relationship between a database and "
160 "the supporting files that make up the database as well as the "
161 "purpose served by the files within the context of the "
162 "database.")]
163 class CIM_DatabaseFile : CIM_Component {
164
165 [Aggregate, Override ( "GroupComponent" ), Min ( 1 ), Max ( 1 ),
166 Description (
167 "The single CommonDatabase instance that uses the referenced "
168 "LogicalFile.")]
169 a.dunfey 1.1 CIM_CommonDatabase REF GroupComponent;
170
171 [Override ( "PartComponent" ), Description (
172 "One of any number of LogicalFile instances utilized by the "
173 "referenced CommonDatabase.")]
174 CIM_LogicalFile REF PartComponent;
175 };
176
177 // ===================================================================
178 // DatabaseStorage
179 // ===================================================================
180 [Association, Aggregation, Version ( "2.8.0" ), Description (
181 "Databases are comprised of a collection of logical storage "
182 "areas represented by instances of the DatabaseStorageArea "
183 "class. The DatabaseStorage class represents the relationship "
184 "between a CommonDatabase and the storage areas which it uses.")]
185 class CIM_DatabaseStorage : CIM_Component {
186
187 [Aggregate, Override ( "GroupComponent" ), Min ( 1 ), Max ( 1 ),
188 Description (
189 "The database which makes use of the associated "
190 a.dunfey 1.1 "DatabaseStorageArea.")]
191 CIM_CommonDatabase REF GroupComponent;
192
193 [Override ( "PartComponent" ), Description (
194 "A DatabaseStorageArea used by the associated "
195 "CommonDatabase. A DatabaseStorageArea MUST only be used by "
196 "a single database.")]
197 CIM_DatabaseStorageArea REF PartComponent;
198 };
199
200 // ===================================================================
201 // DatabaseSegmentSettingData
202 // ===================================================================
203 [Version ( "2.8.0" ), Description (
204 "This class defines the attributes that affect the growth of a "
205 "DatabaseSegment. The attributes are tied to the "
206 "DatabaseSegment through an ElementSettingData association. "
207 "This class MAY also be used to specify the default settings "
208 "for all DatabaseSegment instances created within a "
209 "CommonDatabase through an ElementSettingData association to "
210 "the CommonDatabase. Processes that create new instances of "
211 a.dunfey 1.1 "DatabaseSegment and the associated setting data SHOULD check "
212 "for a DatabaseSegmentSettingData instance associated with the "
213 "CommonDatabase and SHOULD only create a new instance of "
214 "DatabaseSegmentSettingData specific to the DatabaseSegment if "
215 "the default settings need to be overridden or frozen for the "
216 "specific DatabaseSegment instance.")]
217 class CIM_DatabaseSegmentSettingData : CIM_ScopedSettingData {
218
219 [Write, Description (
220 "The size, in bytes, of the first extent to be allocated "
221 "when a database segment is created."),
222 Units ( "Bytes" )]
223 uint64 InitialExtentSize;
224
225 [Write, Description (
226 "The total number of extents to be allocated when the "
227 "database segment is created. This setting allows for a "
228 "large initial segment allocation at creation time, even if "
229 "contiguous space is not available.")]
230 uint64 MinimumExtents;
231
232 a.dunfey 1.1 [Write, Description (
233 "The upper limit on the number of extents that can be "
234 "allocated for the segment.")]
235 uint64 MaximumExtents;
236
237 [Write, Description (
238 "The size, in bytes, to be allocated for the next "
239 "incremental extent for the segment. A NextExtentSize of 0 "
240 "indicates that the size of incremental extents will be "
241 "determined based on the value of PercentIncrease."),
242 Units ( "Bytes" ), MinValue ( 0 ),
243 ModelCorrespondence {
244 "CIM_DatabaseSegmentSettingData.PercentIncrease" }]
245 uint64 NextExtentSize;
246
247 [Write, Description (
248 "The percentage by which the next incremental extent will "
249 "grow over the previously allocated size of all extents for "
250 "the segment. A PercentIncrease of 0 indicates that all "
251 "incremental extents will be the same size, as specified by "
252 "NextExtentSize. This value is ignored and SHOULD be set to "
253 a.dunfey 1.1 "0 if NextExtentSize has a value other than 0."),
254 MinValue ( 0 ),
255 ModelCorrespondence {
256 "CIM_DatabaseSegmentSettingData.NextExtentSize" }]
257 uint16 PercentIncrease;
258
259 [Write, Description (
260 "A freelist is a list of the free blocks that are associated "
261 "with a database segment. The freelist is used to determine "
262 "which segments are eligible for accepting data when a new "
263 "insert or update request is processed. The "
264 "NumberOfFreeLists setting identifies the number of "
265 "freelists that are defined for the database segment. This "
266 "value is typically set to the expected number of concurrent "
267 "inserts for the segment.")]
268 uint32 NumberOfFreeLists;
269 };
270
271
272 // ===================================================================
273 // DatabaseControlFile
274 a.dunfey 1.1 // ===================================================================
275 [Association, Version ( "2.8.0" ), Description (
276 "CIM_DatabaseControlFile is a specialization of the "
277 "CIM_Dependency association that identifies the LogicalFile(s) "
278 "which provide control information for a Database. As an "
279 "example, some implementations of CommonDatabase assign "
280 "particular significance to a small number of files containing "
281 "database state and configuration information. This association "
282 "is intended to provide an efficient means of identifying these "
283 "files.")]
284 class CIM_DatabaseControlFile : CIM_HostedDependency {
285
286 [Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description (
287 "The parent CommonDatabase for the associated control file.")]
288 CIM_CommonDatabase REF Antecedent;
289
290 [Override ( "Dependent" ), Description (
291 "The LogicalFile that contains control information for the "
292 "associated CommonDatabase.")]
293 CIM_LogicalFile REF Dependent;
294 };
295 a.dunfey 1.1
296
297 // ===================================================================
298 // CommonDatabaseSettingData
299 // ===================================================================
300 [Version ( "2.8.0" ), Description (
301 "This class contains the specific settings that identify the "
302 "degree to which the high-level database capabilities that are "
303 "defined in the CIM_CommonDatabaseCapabilities class are "
304 "supported by a CommonDatabase. Specific values for the "
305 "properties in this class MUST correspond to a valid capability "
306 "that has been defined in the CIM_CommonDatabaseCapabilities "
307 "class. \n"
308 "Instances in the CIM_CommonDatabaseSettingData class are tied "
309 "to the CommonDatabase using the ElementSettingData "
310 "association.")]
311 class CIM_CommonDatabaseSettingData : CIM_SettingData {
312
313 [Write, Description (
314 "RecoverabilityOption indicates the specific recoverability "
315 "mode for the associated CommonDatabase."),
316 a.dunfey 1.1 ValueMap { "1", "2", "3", "4" },
317 Values { "Other", "Recoverable", "Non-Recoverable",
318 "Rebuildable" },
319 ModelCorrespondence {
320 "CIM_CommonDatabaseSettingData.OtherRecoverabilityOption",
321 "CIM_CommonDatabaseCapabilities.RecoverabilityOptions" }]
322 uint16 RecoverabilityOption;
323
324 [Write, Description (
325 "This property contains additional recovery information for "
326 "the CommonDatabase. This property MUST be specified when "
327 "the Recoverability property is \"Other\"."),
328 ModelCorrespondence {
329 "CIM_CommonDatabaseSettingData.RecoverabilityOption",
330 "CIM_CommonDatabaseCapabilities.OtherRecoverabilityOptions" }]
331 string OtherRecoverabilityOption;
332 };
333
334
335 // ===================================================================
336 // CommonDatabaseCapabilities
337 a.dunfey 1.1 // ===================================================================
338
339 [Version ( "2.8.0" ), Description (
340 "Properties in this class represent general, high-level "
341 "database capabilities that MAY be supported by a common "
342 "database. For example, the ability for a database to support "
343 "recoverability, replication, parallelism, or clustering would "
344 "be specified in this class. Detailed settings, such as the "
345 "minimum and maximum number of parallel servers for a database "
346 "that supports parallelism, would be defined in the "
347 "CIM_DatabaseParameter class. \n"
348 "This information is tied to the CommonDatabase using the "
349 "ElementCapabilities association.")]
350 class CIM_CommonDatabaseCapabilities : CIM_Capabilities {
351
352 [Description (
353 "This property identifies the supported recoverability modes "
354 "for the associated CommonDatabase."),
355 ValueMap { "1", "2", "3", "4" },
356 Values { "Other", "Recoverable", "Non-Recoverable",
357 "Rebuildable" }, ArrayType ( "Indexed" ),
358 a.dunfey 1.1 ModelCorrespondence {
359 "CIM_CommonDatabaseCapabilities.OtherRecoverabilityOptions" }]
360 uint16 RecoverabilityOptions[];
361
362 [Description (
363 "This property contains additional recovery information for "
364 "the CommonDatabase. This property MUST be specified when "
365 "the Recoverability property is \"Other\"."),
366 ArrayType ( "Indexed" ),
367 ModelCorrespondence {
368 "CIM_CommonDatabaseCapabilities.RecoverabilityOptions" }]
369 string OtherRecoverabilityOptions[];
370 };
371
372
373
374 // ===================================================================
375 // end of file
376 // ===================================================================
|