Normalization is the process of simplifying the design of a database. Normalization answers core questions regarding the number of tables required, what each table represents, the number of fields in each table, and the relationship between tables. Normalization also helps avoid redundancy and anomalies in database design. Anomalies can occur while inserting, updating, or deleting records from a database table (if the database is poorly designed). For example, if you have a database table as shown Table 1.1, when a record is updated to change the customer address, all the rows where the customer record exists should be updated. If any rows are missed, then it will lead to data inconsistency. This is called an update anomaly.

Item_ID  Customer_ID  Customer_name  Customer_address 
1  921  Ryan  12E West End
 921  Ryan  12E West End
 728  John  44 Avenue Road

Table 1.1 Sample to Show Update Anomaly

Relational Database

A relational database consists of multiple tables that store particular sets of data, and an RDBMS standardizes how the data is stored and processed. In a relational database, data is stored in multiple tables, with a relationship between the tables.

The relational database model was first conceived by E. F. Codd in 1969. The model is based on set theory and predicate logic (branches of mathematics). The idea behind the relational model is that the database consists of a series of tables that can be manipulated using a declarative approach (nonprocedural operations).

It’s commonly thought that the word relational in a relational database pertains to the fact that you relate the tables in the database to one another. However, a table is also known as a relation, and the word relational takes its root from this. In fact, Codd and other database theorists use the terms relations, attributes, and tuples to refer to what developers call tables, columns (fields), and rows (or what we’d call files, fields, and records in a physical sense). 

Inline Declarations

In SAP NetWeaver 7.4, SAP introduced inline declarations. Inline declarations allow you to declare data objects inline when required, as opposed to declaring them prior to their usage in an ABAP statement.Most ABAP developers are taught to define data objects at the beginning of a program (for global data) or at the beginning of a procedure (for local data) and avoid data declarations randomly throughout the code. However, many developers ignore following these rules, and declare the data object just before it is used in an ABAP statement, as it provides more clarity on where the data object is used. Many other programming languages, for example PHP, don't even require you to declare a data object before its use. With the introduction of inline declarations, you now have the flexibility to declare data objects when you need them as opposed to declaring them at the top of the program or a procedure. Even though it is possible to use inline declarations with global scope (global data), it is advised not to use inline declarations for global data objects in order to avoid confusion.

Learning a Programming Language

The biggest concern by many is whether they can learn ABAP if they do not have any programming background. This is one of the most frequently asked questions so let’s try to understand, in this blog post, what it takes to learn a programming language.

If you are looking for a quick answer then it’s a NO, you don’t need to have knowledge in one programming language to learn another but you do need to have a thinking brain to learn any programming language.

I’d divide programming into two parts:

  1. Getting the idea
  2. Implementing the idea

The first part is common to any programming language and it’s the most important part to succeed as a programmer. The second part will be specific to each programming language and it may not be of much use if you know how to implement something in one programming language compared to the other.