Dedication
To my beautiful wife, Monique, and the child she carries.
[] [See getter methods setter methods] [See ADS] application (business) logic applications [See Guest Book application] [See also persistence] architectures [See publications] [See data types] attributes, object [See columns]
|
[] [See Boyce-Codd normal form] [See BMP] [See publications] [See also application logic]
|
[] [See CLI, X/OPEN SQL] Castor [See CORBA] [See join tables] [See CMP model] [See CMR] control logic [See join tables]
|
[] [See relational data architecture] [See also relational model] [See OODBMS ORDBMS] [See also persistence] [See also normalization] development [See ERD] [See also JNDI] [See RMI] [See seventh normal form] [See data types] [See DNS] [See seventh normal form]
|
[] [See EJB] [See CMP data access objects] [See value objects] [See ERD] [See exception handling] [See also transactions] exception handling
|
[] [See object-relational mapping] [See columns] finder methods
|
[] getter methods Guest Book application
|
[] Hibernate history HTML [See JSP]
|
[] [See data integrity] [See DNS]
|
[] [See J2EE] [See J2SE] [See applications] [See JDO] [See JMS API] [See JNDI] [See JSP]
|
[] [See sequence generation]
|
[] [See object-relational mapping] memory metadata [See ADS] [See NULL] [See MVC pattern] [See component models data models persistence, models relational model]
|
[] [See also JNDI] [See also denormalization]
|
[] [See OQL] [See OODBMS] [See ORDBMS] objects [See RMI] [See memento design pattern] [See ODBC] [See also Castor; Hibernate]
|
[] [See design patterns] [See P2P architecture] performance [See data access object pattern] [See sequence generation] publications
|
[] [See EJBQL OQL searches SQL]
|
[] RAM [See database] [See RMI] [See publications web sites]
|
[] searches security [See network segmentation] [See SPI for JNDI] setter methods [See persistence] [See SQL] symbols
|
[] [See first normal form] [See second normal form] [See third normal form] [See fourth normal form] [See fifth normal form]
|
[] [See rows] [See client/server architecture]
|
[] UI (user interface) [See NULL] [See UI]
|
[] web applications [See JSP] web sites [See WORA]
|
[] [See JSP] XML [See JSP]
|
1.1 Database Application Architectures
Database applicationsrequire an entire network of software in order to function. Even themost basic of database applicationsthe command-line SQLtoolis a complex system involving the database engine and aseparate client utility. Architecture is the space in which all ofthe elements of an application operate. Before we look at each ofthose elements, we should first take a look at the space itself.
Architecture identifies the hardware and software necessary tosupport an application and specifies how those tools communicatewithin a network. When referring to architecture, different peopletend to have different things in mind. In some cases, architecturerefers to the way hardware is placed on a physical network. This kindof architecture is called network architecture .Other times, however, architecture refers to the systemarchitecture the way different logical and physicalcomponents work together to create a complex network application. Thelast kind of architecture is softwarearchitecture , when architecture refers to the design of one of the pieces of software that make upthe system architecture.
1.1.1 The Network Architecture
is a simple network architecture diagram.
Figure 1-1. A database server in a network architecture diagram
It shows how the network separates the Internet from the network inwhich the web server runs with a firewall. Similarly, this networkdiagram places the database server in a separate network segment,again separated by a firewall. In spite of the fact that very littleabout network architecture is specific to database applications, itcan make a significant impact on the performance of thoseapplications. It is therefore helpful to understand those aspectsmost relevant to database systems.
1.1.1.1 Network segmentation
Segmentation is the way in which thenetwork is divided for performance and security. Routers, bridges,and firewalls are all tools of network segmentation.
The first rule of segmentation is to divide your network into regionsof equal hostility and sensitivity. Hostility describes the attitude of people with access to a given networksegment. The Internet, for example, is considered an extremelyhostile network. Your home networkassuming you have nochildrenis conversely minimally hostile.
Sensitivity represents the risk profile ofthe data within a network segment. A high-risk profile means thatpublic exposure or destruction of the data can cause significantharm. A sensitive network segment is therefore one that houses datathat must be kept private at all costs. IRS database servers have avery high degree of sensitivity, whereas a Quake server ranks on thelow end.
| BEST PRACTICE : Place yourdatabase servers on a high-sensitivity, low-hostility networksegment. In other words, you should never place a database serverdirectly on the Internet or a network segment that is even routable tothe Internet. |
|
If two software components have very different levels of sensitivity,they should be on different network segments separated by firewallsthat limit the interaction between their networks. Because databasesserve as primary data storage points, they tend to have highersensitivity profiles than other software components. As a goodgeneral rule of thumb, database servers should be protected in ahigh-security network segment. In , forexample, a firewall separates the web server from the databaseserver.
| BEST PRACTICE : Segment your network into regions of equal hostility and sensitivity. |
|
1.1.1.2 Bandwidth
Databasesare the fountain from which data streams to all kinds of applicationson the network. It is therefore criticalespecially forhigh-volume database serversto allocate the necessarybandwidth to database servers. It is not uncommon for databaseservers to be connected to the network through multiple fiber-basedgigabit Ethernet ports.