What is database object?
Within ABAP Dictionary (transaction: SE11), ONLY Tables and Database Views have the corresponding database objects. Data Elements/Structures/Table Types have runtime objects only, no database objects existing for them:
Where are the database objects stored?
After you created and activated a table or database view using transaction SE11, the corresponding database object was created automatically on the database level.
You can check the database table using database tool. For example, if you are using oracle database, you can use SQL command "desc <sap_schema>.<table_name>;" to check the structure of the newly-created database object:
But actually it is not necessary for you to check the database object on database level. You can easily check the structure of the database object directly on ABAP level via SE11 -> Utilities -> Database Object -> Display:
To edit the database object, you can use transaction SE14.
You can edit database tables/views and the depend database objects (such as table indexes) in SE14.
SE14 is called "Database Utility". You can find more information about functions that are provided in SE14 via the online help document as bellow:
How to check whether the database object is consistent or not?
Sometimes, you need to check whether the database object is consistent with the runtime object via Utilities -> Database Object -> Check:
Please pay attention that, the check is between the database object and the runtime object, NOT between the database object and the dictionary definition.
Generally the database object should be consistent with the runtime object.
But sometimes you may find that the database object is inconsistent with the runtime object. For example:
In the screen, the length of field EMPLY_NAME in the database object is inconsistent with that in the runtime object.
The inconsistency between runtime object and database object would lead to problems during system operation. If the database object is inconsistent with the runtime object, jobs, programs or transactions which access the dictionary object will terminate with runtime errors, such as DBIF_RSQL_INVALID_RSQL etc.
So, generally it is necessary for us to make the runtime object and the dictionary definition to be consistent with each other.
Note that the inconsistencies between the dictionary definition and the runtime object are normal during transports, Support Packages implementation or system upgrade in some particular phases.
You can read the following SAP Notes for reference: