Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

data dictionary

Former Member
0 Likes
1,332

Hello Experts,

Could you please tell me

1.What is index?

2.What is primary index?

3. What is Secondary index?

4 what is buffering?

5 what are types buffering?

6 Give examples on buffering types?

7 what is check table?

8. what is value table?

9. What is the difference between check table and value table?

10. Please let me know interview questions with answers on data dictionary?

Please do the need full as soon as possible,

I will allot maximum marks

Thanks and regards

Rizwana

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,140

INDEX

We have to identify unique id from different fields with in the table.

example:suppose the table ia ztest ,our id is as, then we repregented like ztest~as.

PRIMERY KEY

To identify unique record from the table.

FORIGEN KEY.

Main tain the relation between two tables.

ex:suppose you are having two tables zdept and zemp.

the table zdept having the fields dept id dept name . and zemp having the fields emp name and dept name.here two tables having the same field(deptname).

so the table zemp refer to as farigen key table and the key is konw as forigen key.

7 REPLIES 7
Read only

Former Member
0 Likes
1,140

Hi,

http://sapabap.iespana.es/sapabap/manuales/learnabap/

http://help.sap.com/saphelp_nw2004s/helpdata/en/43/41341147041806e10000000a1553f6/frameset.htm

http://help.sap.com/saphelp_nw04/helpdata/en/cf/21eb6e446011d189700000e8322d00/content.htm

http://help.sap.com/saphelp_nw2004s/helpdata/en/cf/21ea31446011d189700000e8322d00/frameset.htm

http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCDWBDIC/BCDWBDIC.

1,2,3.An index can be considered a copy of a database table that has been reduced to certain fields. This copy is always in sorted form. Sorting provides faster access to the data records of the table, for example using a binary search. The index also contains a pointer to the corresponding record of the actual table so that the fields not contained in the index can also be read.

The primary index is distinguished from the secondary indexes of a table. The primary index contains the key fields of the table and a pointer to the non-key fields of the table. The primary index is created automatically when the table is created in the database

You can also create further indexes on a table in the ABAP Dictionary. These are called secondary indexes. This is necessary if the table is frequently accessed in a way that does not take advantage of the sorting of the primary index for the access.

Indexes speed up data selection from the database. They consist of selected fields of a table, of which a copy is then made in sorted order. If you specify the index fields correctly in a condition in the WHERE or HAVING clause, the system only searches part of the index (index range scan).

The system automatically creates the primary index. It consists of the primary key fields of the database table. This means that for each combination of fields in the index, there is a maximum of one line in the table. This kind of index is also known as UNIQUE.

If you cannot use the primary index to determine the result set because, for example, none of the primary index fields occur in the WHERE or HAVINGclauses, the system searches through the entire table (full table scan). For this case, you can create secondary indexes, which can restrict the number of table entries searched to form the result set.

You create secondary indexes using the ABAP Dictionary. There you can create its columns and define it as UNIQUE. However, you should not create secondary indexes to cover all possible combinations of fields.

Only create one if you select data by fields that are not contained in another index, and the performance is very poor. Furthermore, you should only create secondary indexes for database tables from which you mainly read, since indexes have to be updated each time the database table is changed. As a rule, secondary indexes should not contain more than four fields, and you should not have more than five indexes for a single database table.

If a table has more than five indexes, you run the risk of the optimizer choosing the wrong one for a particular operation. For this reason, you should avoid indexes with overlapping contents.

Secondary indexes should contain columns that you use frequently in a selection, and that are as highly selective as possible. The fewer table entries that can be selected by a certain column, the higher that column’s selectivity. Place the most selective fields at the beginning of the index. Your secondary index should be so selective that each index entry corresponds to, at most, five percent of the table entries. If this is not the case, it is not worth creating the index. You should also avoid creating indexes for fields that are not always filled, where their value is initial for most entries in the table.

If all of the columns in the SELECT clause are contained in the index, the system does not have to search the actual table data after reading from the index. If you have a SELECT clause with very few columns, you can improve performance dramatically by including these columns in a secondary index.

What is the difference between primary index and secondary index?

http://help.sap.com/saphelp_47x200/helpdata/en/cf/21eb2d446011d189700000e8322d00/frameset.htm

A difference is made between Primary & Secondary indexes to a table. the primary index consists of the key fields of the table and a pointer to the non-keys-fields of the table. The Primary index is generated automatically when a table is created and is created in the datebase as the same times as the table. It is also possible to define further indexes to a table in the ABAP/4 dictionary, which are then referred to as Secondary indexes.

4,5,6.Whenever an Open SQL statement is used to read a record,

the data buffer is checked first to see whether it is there. If not, the data is read from the database.

If the table's attributes indicate that the data should be buffered,

the record is saved in RAM on the application server in data buffers.

Later, if that record is read again, it is read from the buffer instead of the database.

By buffering data, you increase performance in two important ways:

The programs using the buffered data run faster because they don't have to wait for it to come from the database. This reduces delays waiting for the database and the network that connects it.

The other programs that need to access the database run faster because there is less load on the database and less traffic on the network.

Three types of buffering are possible:

Full buffering

Generic buffering

Single-record buffering

Although you use a check box to indicate the buffering type, only one type can be selected at a time. If you choose more than one, an error message will be displayed.

There are two data buffers on each application server, and the buffering type chosen determines which buffer is used. On an application sever there are:

The generic record buffer

The single-record buffer

The generic record buffer is called TABL (short for "table"). The single-record buffer is TABLP ("P"' stands for "partial").

Full Buffering:

To activate the full buffering type, tickmark the Full check box.

When an attempt is made to read data from a fully buffered table,

the system looks in the TABL buffer for it.

If it is not found there, all rows are loaded from the database into TABL .

This happens whenever a select statement for it is executed, no matter how many records match the where clause.

Even if no records match, all are loaded into the buffer if the table is not already there or

if it has been invalidated due to buffer synchronization.

Loading of TABL does not occur with select single statements; only select/ endselect does this.

If the table is fully buffered and a select single statement is executed, no records are loaded into TABL.

However, if the table is already loaded into TABL, select single will read records from it.

During buffer synchronization, the entire table is invalidated if any record within it changes. The next time data is read the entire table is reloaded.

Full buffering is appropriate for small tables that seldom change.

Generic Buffering:

With generic buffering, a group of records is loaded into TABL instead of the entire table.

To activate this type of buffering, tickmark the Generic check box

and put a number n in the No. of Key Fields so that the n left-most fields of the primary key will group records.

When a record is read and n is 1, all records having the same value

in the first field of the primary key are loaded into the buffer.

When a record is read and n is 2, all records having the same value in the first two fields of the primary key are loaded

into the buffer.

Generic buffering is suitable for tables in which records are usually accessed in sets or groups.

Single Record Buffering:

With this type of buffering, select single picks one record into the single record buffer TABLP.

With this buffering type, records are only buffered when the select single statement is executed.

Select/endselect does not load or read TABLP.

Single-record buffering is appropriate for very large tables in which a small percentage of the records are read often.

For single-record buffering to work, records must be read using the select single statement.

There are two buffers: TABL (the generic record buffer) and TABLP (the single record buffer).

There are also two varieties of the select statement: select and select single. The select statement loads TABL and the select single statement loads TABLP.

When reading, select only reads TABL; it ignores TABLP. select single reads both buffers. This behavior is summarized in Figure 5.20. Remember that a record can only be in one buffer at a time because a table can only have one buffering type.

7,8,9.Value Table

This is maintained at Domain Level.

When ever you create a domain , you can entered allowed values. For example you go to Domain SHKZG - Debit/credit indicator. Here only allowed values is H or S.

When ever you use this Domain, the system will forces you to enter only these values.

This is a sort of master check . To be maintained as a customization object. This mean that if you want to enter values to this table you have to create a development request & transport the same.

Check table

For example you have Employee master table & Employee Transaction table.

When ever an employee Transacts we need to check whether that employee exists , so we can refer to the employee master table.

This is nothing but a Parent & Child relationship . Here data can be maintained at client level , no development involved.

As per DBMS what we call foregin key table, is called as check table in SAP.

There is 1 more important Difference in Value Table and Check Table is that:

1. The contents of the check will be used as an input help(F4 Help) for a particular field on which a check table is assigned.

But the contents of Value Table are never used in Input Help.

The Heirarchy which decides from where to used the Input Help is:

1. Input help defined explicitly in ABAP Program or Dialog Module.

2. Input Help Attached to the referenced Database Table field.

3. Using the contents of Check Table as an input help if neither (1) or (2) help are there.

4. Input help from Fixed value or Value range given in Domain.

Reagrds,

Priyanka.

Read only

Former Member
0 Likes
1,140

<b>What is Primary key, foreign key ? what is primary index? secondary index?</b>

Ans: Primary index: the primary index contains key fiels of a table and a pointer to non-key fields of the table. The primary index is created automatically when a table is created in database and moreover you can further define reference to the primary index which are known as Secondary index.

<b>

Value Table</b>

This is maintained at Domain Level.

When ever you create a domain , you can entered allowed values. For example you go to Domain SHKZG - Debit/credit indicator. Here only allowed values is H or S.

When ever you use this Domain, the system will forces you to enter only these values.

This is a sort of master check . To be maintained as a customization object. This mean that if you want to enter values to this table you have to create a development request & transport the same.

<b>Check table</b>

For example you have Employee master table & Employee Transaction table.

When ever an employee Transacts we need to check whether that employee exists , so we can refer to the employee master table.

This is nothing but a Parent & Child relationship . Here data can be maintained at client level , no development involved.

As per DBMS what we call foregin key table, is called as check table in SAP.

<b>There is 1 more important Difference in Value Table and Check Table is that:</b>

1. The contents of the check will be used as an input help(F4 Help) for a particular field on which a check table is assigned.

But the contents of Value Table are never used in Input Help.

The Heirarchy which decides from where to used the Input Help is:

1. Input help defined explicitly in ABAP Program or Dialog Module.

2. Input Help Attached to the referenced Database Table field.

3. Using the contents of Check Table as an input help if neither (1) or (2) help are there.

4. Input help from Fixed value or Value range given in Domain.

<b>What are table buffers?</b>

Table buffers reside locally on each application server in the system. The data of buffered tables can thus be accessed

directly from the buffer of the application server. This avoids the time-consuming process of accessing the database.

Buffering is useful if table needs to be accessed more no. of times in a program.

seee this link also :

<a href="http://">http://www.sap-img.com/abap/more-than-100-abap-interview-faqs.htm</a>

reward points if it is usefull...

Girish

Read only

Former Member
0 Likes
1,140

Hi Rizwana, hope this will help you.

Please check out.

<b>Q.1. What is index?

A--> </b>Index is an efficiency mechanism for quickly finding require row from a table.

<b>Q.2. What is primary index?

A--> </b>The time creation a table, we need to assign primary key field. On that key field, R/3 system creates index internally. These indexes are invisible in Dictionary. These type of system created index called Primary index.

<b>Q.3. What is Secondary index?

A--> </b>User can create index for quickly finding the desire non-primary key fields from the table. This type index is called Secondary index. There is a max 15 number of secondary index per table allowed by R/3 system.

<b>Q.4 What is buffering?

A--> </b>Buffering is a mechanism in Open SQL, with which system can store the data temporarily in to the application server RAM from the database table whose attributes indicate the data should be buffered. Same data can be reuse for other queries also if the database table is still remain unchanged.

<b>Q.5 What are types buffering?

A--> </b>There are three types of buffering as follows:

i) Single-record buffering.

ii) Generic area buffering.

iii) Full buffering.

<b>Q.6 Give examples on buffering types?

A> <i>(i) Single-record buffering>> </i></b> Only the records of a table that are really accessed are loaded into the buffer.Single-record buffering should be used particularly for large tables where only a few records are accessed with SELECT SINGLE. The size of the records being accessed should be between 100 and 200 KB.

<b><i>(ii) Generic buffering-->> </i></b> Generic buffering is suitable for tables in which records are usually accessed in sets or groups.

<b><i>(iii) Full buffering-->> </i></b> Full buffering is usually more suitable for smaller tables that are accessed frequently. This is because only one database access is necessary to load such a table with full buffering, whereas several database accesses are necessary for single-record buffering.

<b>Q.7 What is check table?

A--> </b> For example you have Employee master table & Employee Transaction table.

When ever an employee Transacts we need to check whether that employee exists , so we can refer to the employee master table.

This is nothing but a Parent & Child relationship . Here data can be maintained at client level , no development involved.

As per DBMS what we call foregin key table, is called as check table in SAP.

<b>Q.8 What is value table?

A--> </b>This is maintained at Domain Level.

When ever you create a domain , you can entered allowed values. For example you go to Domain SHKZG - Debit/credit indicator. Here only allowed values is H or S.

When ever you use this Domain, the system will forces you to enter only these values.

This is a sort of master check . To be maintained as a customization object. This mean that if you want to enter values to this table you have to create a development request & transport the same.

<b>Q.9. What is the difference between check table and value table?</b>

<b>A--> </b>There are important Difference in Value Table and Check Table is that:

1. The contents of the check will be used as an input help(F4 Help) for a particular field on which a check table is assigned.

But the contents of Value Table are never used in Input Help.

The Heirarchy which decides from where to used the Input Help is:

1. Input help defined explicitly in ABAP Program or Dialog Module.

2. Input Help Attached to the referenced Database Table field.

3. Using the contents of Check Table as an input help if neither (1) or (2) help are there.

4. Input help from Fixed value or Value range given in Domain.

<b>Q.10. Please let me know interview questions with answers on data dictionary?

A--> </b>

http://www.sapbrain.com/FAQs/TECHNICAL/SAP_ABAP_DATADICTIONARY_FAQ.html

http://www.saptechnical.com/InterviewQ/interviewQ.htm

http://help.sap.com/saphelp_46c/helpdata/en/35/2cd77bd7705394e10000009b387c12/frameset.htm

http://www.techinterviews.com/?p=198

http://www.techinterviews.com/?p=326

http://www.sap-img.com/abap/answers-to-some-abap-interview-questions.htm

http://www.sap-img.com/abap/more-than-100-abap-interview-faqs.htm

<b>Kind Regards,

Chandan. </b>

Read only

Former Member
0 Likes
1,140

Hi Rizwana !

Data Dictionary

<b>1. What is Data Dictionary (DDIC)?</b>

ABAP 4 data dictionary describes the logical structures of the objects used in application development and shows how they are mapped to the underlying relational database in tables/views.

<b>

2. What are the Objects in DDIC?</b>

i) Tables

ii) Data Element

iii) Domain

iv) Views

v) Structures

vi) Search help

vii) Lock Objects

<b>3. What is Table?</b>

Table is a collection of records. A record is collection of fields. In ABAP all data stored as a Table in Database. A table is used to store collection of related fields.

<b>4. What types of Table?</b>

i) Transparent Table

ii) Pooled Tables

iii) Cluster Tables

<b>5. What is a Technical setting in Table creation?</b>

<b>6. What is Structure?</b>

Structure is defined group of fields in DDIC. It’s available only on DDIC. It can hold only one record at the time.

<b>7. Difference between Table and Structure?</b>

<b>8. What is Domain?</b>

Domain is the central object for describing the technical characteristics of an attribute of a business objects. It describes the value range of the field.

<b>9. What is Data Element?</b>

Data Element used to describe the semantic definition of the table fields like description the field. Data element describes how a field can be displayed to end-user

<b>10. What is Views?</b>

Views are combination of more than one table. It has not physical storage on database.

<b>11. What types of Views?</b>

<b>Projection view</b> – Just retrieves some fields from a single table.

<b>Help view – This is used for search help.</b>

<b>Database View – This is inner join view of one or more tables.</b>

Maintenance View – Helps in creating maintaining data of the application object. The data can be distributed among several tables.</b>

<b>12. What is Lock Objects?</b>

Lock Object is used to avoid the inconsistency data on the table while updating more than one user.

<b>13. What is Match Code Objects?</b>

It is used to display the possible input entries for the corresponding field. 4.6 onwards match code object calling as search help.

<b>14. What is Data Classes?</b>

Master data: It is the data which is seldomly changed.

Transaction data: It is the data which is often changed.

Organization data: It is a customizing data which is entered in the system when the system is configured and is then rarely changed.

System data: it is the data which R/3 system needs for itself.

<b>15. What is Master Data?</b>

It is a data which is seldomly changed that means rarely changed such as customer master, vendor master data.

<b>16. What is Transaction Data?</b>

It is data which is frequently changed. E.g. Purchase order Item details.

<b>17. What is Organization Data?</b>

It is data which entered into the system when the system is configured.

<b>18. What is System Data?</b>

It is data which SAP R/3 system needs for itself.

<b>19. What is Relationship (Foreign key) in DDIC?</b>

A relationship which can be defined between tables and must be explicitly defined at field level. Foreign keys are used to ensure the consistency of data. Data entered should be checked against existing data to ensure that there are now contradictions. While defining foreign key relationship cardinality has to be specified. Cardinality mentions how many records how reference records are possible.

<b>20. What is Buffering? Use?</b>

<b>21. Should every table have at least one Primary key?</b>

yes. Every table should have at least one primary key.

<b>22. What are indexes?</b>

Indexes are described as a copy of a database table reduced to specific fields. This data exists in sorted form. This sorting form eases fast access to the field of the tables. In order that other fields are also read, pointers to the associated record of the actual table are included in the index. The indexes are activated along with the table and are created automatically with it in the database.

<b>23. Can you create a table with fields not referring to data elements? </b>

yes, we can create without referring data element using direct input.

<b>24. What is the advantage of structures? How do you use them in the ABAP programs?</b>

Structure define more than one field. It exits only during the execution of the program. it is destroyed when the program gets termination. It contains only one record at a time.

we can use this in ABAP as work area to hold the data which is currently pointed by the system.

<b>25. What does an extract statement do in the ABAP program?</b>

<b>26. Can I use all the Views in the ABAP program?</b>

No. You can use only projection view or database view in your ABAP program.

<b>27. What is Table Maintenance Generator?</b>

The Table Maintenance Generator is used to create table maintenance program to add, modify or delete records in the database table. This can be accessed using transaction SE54 or in SE11 using the menu Utilities->Table Maintenance Generator.

<b>28. What is one step, two steps in Table Maintenance Generator?</b>

This specifies the screens to be created in the Table Maintenance Program.

Single step: Only overview screen is created i.e. the Table Maintenance Program will have only one screen where you can add, delete or edit records.

Two step: Two screens namely the overview screen and Single screen are created. The user can see the key fields in the first screen and can further go on to edit further details.

<b>29. In which table are the programs stored in?</b>

The programs are stored in the table TADIR and the development class packages in TDEVC.

<b>30.How do I create Index on a database table?</b>

Go to transaction SE11, open your database table. Choose the menu, Go to->Indexes to create index. Give your index name and choose the fields of the table. Be careful, an additional index may vanish with the next upgrade or hot package.

<b>31.What is the difference between Check table and value table?</b>

The Check Table is the dependent table to which the relationship is defined using foreign keys. The contents of the check table field are shown in the input help for the referenced field.

The Value table is the table attached to a field at the domain level, where the entry to the field can be only from the value table. They are not used in the Input Help.

<b>32. What is the need of reference table reference field in currency/Quantity fields?</b>

The reference table and reference field are the fields which specify the currency key or Unit of Measure. Suppose if the user specifies a currency amount say 1000$, the currency amount field would indicate the amount 1000 and the currency key indicates that the currency specified is in Dollars.

If it is useful please reward points.

Reg,

<b>Suresh kumar. V</b>

Read only

Former Member
0 Likes
1,141

INDEX

We have to identify unique id from different fields with in the table.

example:suppose the table ia ztest ,our id is as, then we repregented like ztest~as.

PRIMERY KEY

To identify unique record from the table.

FORIGEN KEY.

Main tain the relation between two tables.

ex:suppose you are having two tables zdept and zemp.

the table zdept having the fields dept id dept name . and zemp having the fields emp name and dept name.here two tables having the same field(deptname).

so the table zemp refer to as farigen key table and the key is konw as forigen key.

Read only

Former Member
0 Likes
1,140

Primary index: Primary index is nothing but primer key.

Secondary index : Is a non primary key.

Buffering:Is a small memory,like cash memory in java.

ex:We are having application server and data base server , to retrieve the data from database table to application server but the data base table contain 1 lakh records ,so performance problem is there.By using buffering we can improve the performence.

Three types of buffering 1 .Single area buffering .2 Generic buffering 3. Full area buffering.By using single buffering we can retrieve single record from db table.To retrieve the small amount of data using generic and to retrieve full data from db table using full buffering but buffering having only 30kb memory.

Check table:Suppose we have two tables zdept and zemp,having the fields deptid, deptname and empid, deptid.Now we can identify empid record based on

deptid field, for this we have to refer zdept table ,so ztable is check table and zemp is value table. So here value table is the foregin key table .Foregin key may be eighter primery key or non primery key .By default in check table all primery keys are selected.

Read only

Former Member
0 Likes
1,140

<b>1.What is index?</b>

An index can be considered a copy of a database table that has been reduced to certain fields. This copy is always in sorted form. Sorting provides faster access to the data records of the table, for example using a binary search. The index also contains a pointer to the corresponding record of the actual table so that the fields not contained in the index can also be read.

<b>2.What is primary index?</b>

Primary index: the primary index contains key fiels of a table and a pointer to non-key fields of the table. The primary index is created automatically when a table is created in database and moreover you can further define reference to the primary index which are known as Secondary index.

<b>3. What is Secondary index?</b>

This is necessary if the table is frequently accessed in a way that does not take advantage of the sorting of the primary index for the access. These are called secondary indexes

<b>

4 what is buffering?</b>

<b>Definition</b>

The buffering status specifies whether or not a table may be buffered.

This depends on how the table is used, for example on the expected volume of data in the table or on the type of access to a table. (mainly read or mainly write access to the table. In the latter case, for example, one would not select buffering).

You should therefore select

- Buffering not allowed if a table may not be buffered.

- Buffering allowed but not activated if buffering is

principally allowed for a table, but at the moment no buffering

should be active. The

buffering type specified in this case is only

a suggestion.

- Buffering allowed if the table should be buffered. In this

case a buffering type

must be specified.

<b>5 what are types buffering?</b>

The buffering type defines whether and how the table should be buffered.

There are the following types of buffering:

1.single-record buffering

2.generic area buffering

3.full buffering

In generic area buffering, a number of key fields between 1 and no. of key fields-1 must be specified.

<b>7 what is check table?</b>

For example you have Employee master table & Employee Transaction table.

When ever an employee Transacts we need to check whether that employee exists , so we can refer to the employee master table.

This is nothing but a Parent & Child relationship . Here data can be maintained at client level , no development involved.

As per DBMS what we call foregin key table, is called as check table in SAP.

<b>8. what is value table</b>?

This is maintained at Domain Level.

When ever you create a domain , you can entered allowed values. For example you go to Domain SHKZG - Debit/credit indicator. Here only allowed values is H or S.

When ever you use this Domain, the system will forces you to enter only these values.

This is a sort of master check . To be maintained as a customization object. This mean that if you want to enter values to this table you have to create a development request & transport the same.

reward points if it is usefull ...

Girish