Unit 1.4 - Database System Architecture
Unit 1.4 - Database System Architecture
17
Database-System Architectures
The architecture of a database system is greatly influenced by the underlying
computer system on which it runs, in particular by such aspects of computer
architecture as networking, parallelism, and distribution:
–server systems, on the other hand, have functionality split between a server
system and multiple client systems.
disk graphics
CPU USB controller
controller adapter
memory
database systems designed for multiuser systems support the full transactional
features that we have studied earlier.
Although most general-purpose computer systems in use today have multiple
processors, they have coarse-granularity parallelism, with only a few processors
(about two to four, typically), all sharing the main memory. Databases running
on such machines usually do not attempt to partition a single query among the
processors; instead, they run each query on a single processor, allowing multiple
queries to run concurrently. Thus, such systems support a higher throughput;
that is, they allow a greater number of transactions to run per second, although
individual transactions do not run any faster.
Databases designed for single-processor machines already provide multitask-
ing, allowing multiple processes to run on the same processor in a time-shared
manner, giving a view to the user of multiple processes running in parallel. Thus,
coarse-granularity parallel machines logically appear to be identical to single-
processor machines, and database systems designed for time-shared machines
can be easily adapted to run on them.
In contrast, machines with fine-granularity parallelism have a large num-
ber of processors, and database systems running on such machines attempt to
parallelize single tasks (queries, for example) submitted by users. We study the
architecture of parallel database systems in Section 17.3.
Parallelism is emerging as a critical issue in the future design of database
systems. Whereas today those computer systems with multicore processors have
only a few cores, future processors will have large numbers of cores.1 As a re-
sult, parallel database systems, which once were specialized systems running on
specially designed hardware, will become the norm.
1 The reasons for this pertain to issues in computer architecture related to heat generation and power consumption.
Rather than make processors significantly faster, computer architects are using advances in chip design to put more
cores on a single chip, a trend likely to continue for some time.
Chapter 17 Database-System Architectures
network
server
Standards such as ODBC and JDBC, which we saw in Chapter 3, were developed
to interface clients with servers. Any client that uses the ODBC or JDBC interface
can connect to any server that provides the interface.
Certain application programs, such as spreadsheets and statistical-analysis
packages, use the client–server interface directly to access data from a back-end
server. In effect, they provide front ends specialized for particular tasks.
Systems that deal with large numbers of users adopt a three-tier architecture,
which we saw earlier in Figure 1.6 (Chapter 1), where the front end is a Web
browser that talks to an application server. The application server, in effect, acts
as a client to the database server.
Some transaction-processing systems provide a transactional remote proce-
dure call interface to connect clients with a server. These calls appear like ordi-
nary procedure calls to the programmer, but all the remote procedure calls from a
client are enclosed in a single transaction at the server end. Thus, if the transaction
aborts, the server can undo the effects of the individual remote procedure calls.