Data Processing

Data analysis

In science and engineering, the terms data processing and information systems are considered
too broad, and the term data processing is typically used for the initial stage followed by a data
analysis in the second stage of the overall data handling.
Data analysis uses specialized algorithms and statistical calculations that are less often
observed in a typical general business environment. For data analysis, software suites
like SPSS or SAS, or their free counterparts such as DAP,  gretl  or PSPP are often used.

Security

Database security deals with all various aspects of protecting the database content, its owners,
and its users. It ranges from protection from intentional unauthorized database uses to
unintentional database accesses by unauthorized entities (e.g., a person or a computer
program).
Database access control deals with controlling who (a person or a certain computer program) is
allowed to access what information in the database. The information may comprise specific
database objects (e.g., record types, specific records, data structures), certain computations over
certain objects (e.g., query types, or specific queries), or using specific access paths to the
former (e.g., using specific indexes or other data structures to access information). Database
access controls are set by special authorized (by the database owner) personnel that uses
dedicated protected security DBMS interfaces.
This may be managed directly on an individual basis, or by the assignment of individuals
and privileges to groups, or (in the most elaborate models) through the assignment of individuals
and groups to roles which are then granted entitlements. Data security prevents unauthorized
users from viewing or updating the database. Using passwords, users are allowed access to the
entire database or subsets of it called “subschemas”. For example, an employee database can
contain all the data about an individual employee, but one group of users may be authorized to
view only payroll data, while others are allowed access to only work history and medical data. If
the DBMS provides a way to interactively enter and update the database, as well as interrogate
it, this capability allows for managing personal databases.
Data security in general deals with protecting specific chunks of data, both physically (i.e., from
corruption, or destruction, or removal; e.g., see physical security), or the interpretation of them,
or parts of them to meaningful information (e.g., by looking at the strings of bits that they
comprise, concluding specific valid credit-card numbers; e.g., see data encryption).
Change and access logging records who accessed which attributes, what was changed, and
when it was changed. Logging services allow for a forensic database auditlater by keeping a
record of access occurrences and changes. Sometimes application-level code is used to record
changes rather than leaving this to the database. Monitoring can be set up to attempt to detect
security breaches.

Migration

A database built with one DBMS is not portable to another DBMS (i.e., the other DBMS cannot
run it). However, in some situations, it is desirable to migrate a database from one DBMS to
another. The reasons are primarily economical (different DBMSs may have different total costs of
ownership or TCOs), functional, and operational (different DBMSs may have different
capabilities). The migration involves the database’s transformation from one DBMS type to
another. The transformation should maintain (if possible) the database related application (i.e.,
all related application programs) intact. Thus, the database’s conceptual and external
architectural levels should be maintained in the transformation. It may be desired that also some
aspects of the architecture internal level are maintained. A complex or large database migration
may be a complicated and costly (one-time) project by itself, which should be factored into the
decision to migrate. This in spite of the fact that tools may exist to help migration between
specific DBMSs. Typically, a DBMS vendor provides tools to help importing databases from other
popular DBMSs.

Building, maintaining, and tuning

After designing a database for an application, the next stage is building the database. Typically,
an appropriate general-purpose DBMS can be selected to be used for this purpose. A DBMS
provides the needed user interfaces to be used by database administrators to define the needed
application’s data structures within the DBMS’s respective data model. Other user interfaces are
used to select needed DBMS parameters (like security related, storage allocation parameters,
etc.).
When the database is ready (all its data structures and other needed components are defined), it
is typically populated with initial application’s data (database initialization, which is typically a
distinct project; in many cases using specialized DBMS interfaces that support bulk insertion)
before making it operational. In some cases, the database becomes operational while empty of
application data, and data are accumulated during its operation.
After the database is created, initialised and populated it needs to be maintained. Various
database parameters may need changing and the database may need to be tuned (tuning) for
better performance; application’s data structures may be changed or added, new related
application programs may be written to add to the application’s functionality, etc.

Backup and restore

Sometimes it is desired to bring a database back to a previous state (for many reasons, e.g.,
cases when the database is found corrupted due to a software error, or if it has been updated
with erroneous data). To achieve this, a backup operation is done occasionally or continuously,
where each desired database state (i.e., the values of its data and their embedding in database’s
data structures) is kept within dedicated backup files (many techniques exist to do this
effectively). When it is decided by a database administrator to bring the database back to this
state (e.g., by specifying this state by a desired point in time when the database was in this
state), these files are used to restore that state.

Static analysis

Static analysis techniques for software verification can be applied also in the scenario of query
languages. In particular, the *Abstract interpretation framework has been extended to the field of
query languages for relational databases as a way to support sound approximation
techniques. [32]  The semantics of query languages can be tuned according to suitable abstractions
of the concrete domain of data. The abstraction of relational database system has many
interesting applications, in particular, for security purposes, such as fine grained access control,
watermarking, etc.