The relational model organizes persistent business information into relations with tuples, attributes, and integrity constraints. Relational databases offer a flexible, robust foundation for shared enterprise data because the data remains independent of any single Java application or platform. section 1.1.1
A relational system supports several complementary responsibilities:
- Define and evolve database artifacts such as tables and constraints with SQL DDL. section 1.1.2
- Manipulate stored data with insertions, updates, and deletions, then retrieve it through restrictions, projections, joins, aggregation, grouping, and subselects. section 1.1.2
- Control access by granting or revoking permissions with SQL DCL. section 1.1.2
- Share the same persistent representation across applications, such as data-entry and reporting systems, without coupling it to Java. section 1.1.1
Using a relational database from Java
A Java application reaches the database through JDBC. The application prepares SQL, binds query arguments, executes statements, scrolls through results, and retrieves values from a result set. These operations expose the low-level work that object-persistence frameworks such as Hibernate and Spring Data aim to reduce. section 1.1.3
Relational persistence is a strong general-purpose choice, but not a universal one. Internet-scale distributed systems may favor weak consistency, while specialized scientific datasets may require custom persistence solutions; generic SQL and Java persistence tools then play a smaller role. section 1.1.3

