Database System Structure
- Software systems generally have architecture, i.e. possessing of a structure (form) and organization (function).
- The former describes identifiable components and how they relate to one another structurally; the latter describes how the functions of the various structural components interact to provide the overall functionality of the system as a whole.
- A typical architecture must define a particular configuration and interaction between data, software modules, meta-data, interfaces and languages.
- The architecture of a database system determines its capability, reliability, effectiveness and efficiency in meeting user requirements. But besides the visible functions seen through some data manipulation language, a good database architecture should provide:
a) Independence of data and programs
b) Ease of system design
c) Ease of programming
d) Powerful query facilities
e) Protection of data
Database architecture is logically divided into two types:
- Logical two-tier Client / Server architecture
- Logical three-tier Client / Server architecture
Two-tier Client / Server Architecture
Figure: Two-tier Client / Server Architecture
- Two-tier Client / Server architecture is used for User Interface program and Application Programs that runs on client side.
- An interface called ODBC (Open Database Connectivity) provides an API that allows client side program to call the DBMS. Most DBMS vendors like Oracle, Mysql provide ODBC drivers.
- A client program may connect to several DBMS's.
- In this architecture some variation of client is also possible for example in some DBMS's more functionality is transferred to the client including data dictionary, optimization etc. Such clients are called Data server.
Three-tier Client / Server Architecture
Figure: Three-tier Client / Server architecture
- Three-tier Client / Server database architecture is commonly used architecture for web applications.
- Intermediate layer called Application server or Web Server stores the web connectivity software and the business logic (constraints) part of application used to access the right amount of data from the database server.
- This layer acts like medium for sending partially processed data between the database server and the client.