With the information hiding, you see only the details that are significant at a given level of algorithm and data structure design. The Information hiding keeps high-level design decisions separate from the low-level design details that are more likely to be change.
You employ information hiding for the algorithms through top-down design. Once you define the aim and interface specifications of a low-level procedure, you can pay no attention to the implementation details. They are hidden at higher levels. For e.g., the implementation of a procedure named raise_salary is hidden. All you require is to know that the procedure will increase a specific employee's salary by a given amount. Any change in the definition of raise_salary is visible to the calling applications.
You implement information hiding for the data structures through data encapsulation. By developing a set of utility subprograms for a data structure, you protect it from users and other developers. In that way, the other developers know how to use the subprograms that operate on the data structure but not how the structure is represented.
With the PL/SQL packages, you can specify whether the subprograms are public or private. Therefore, the packages enforce data encapsulation by letting you put subprogram definitions in a black box. The private definition is hidden and unapproachable. Only the package, not your application, is affected if definition changes. This simplifies the maintenance and enhancement.