Table of Contents - Database Application Programming with Linux
Chapter 1
Requirements
- Towards a System Design
- The Problem Definition
- Requirements Analysis
- Working with People
- The Analysis Process
- A Viewpoint Model for Analysis
- The Formal Requirements Document
- Using a Prototype to Validate Requirements
- The Volatility of Requirements
- The System Architecture
- System Structuring
- Control Modeling
- Modular Decomposition
- System Design
- Summary
Chapter 2
Database Design
- Designing a Database
- Identify the Entities You Want to Represent
- Use the Requirements
- Identify Likely Entities
- Normalization
- First Normal Form
- Second Normal Form
- Third Normal Form
- Building a Data Dictionary
- Datatype Sizes
- Patron
- Book
- Borrows
- Author, Author_Of, and Publisher
- Leftovers
- Digging Deeper
- SQL
- Creating Tables
- Putting Data into the Database
- Getting Data out of the Database
- Ordering Result Sets
- Filtering Result Sets
- Joins
- Updating Data in the Database
- Deleting Data from the Database
- Indexes
- Summary
Chapter 3
Developing User Interfaces
- The Development Process
- Consider the Requirements
- Involve the User
- Follow Established Design Guidelines
- Mandel's Golden Rules
- Place Users in Control
- Reduce User's Memory Load
- Make the User Interface Consistent
- Develop and Refine the UI Prototype
- Find the Nouns and Verbs
- Grow a Tree
- Find Objects
- Design Icons for Objects
- Determine Appropriate Actions for Objects
- Determine Forms and Menu Actions
- Take Care of the Attributes
- Develop the Implementation
- Perform Usability Testing
- Summary
Chapter 4
Construction
- Finding Reusable Code
- The Importance of Reuse
- Identifying Good Code
- The Word on the Street
- Documentation
- Comments
- Readability and Learnability
- Repositories, Resources, and Libraries
- The C Library
- Other Libraries
- License Combatibility
- Style and Technique
- Naming Conventions
- Indentation
- Blocks and Braces
- Comments
- Reduce Memory Load
- Algorithms
- Algorithm Design Strategies
- Dealing with Recursion
- Analyzing Time Complexity
- Building Routines and Modules
- Summary
Chapter 5
Object-Oriented Programming
- Characteristics of OO Languages
- Encapsulation
- Classes
- Interfaces
- Abstract Classes
- Inheritance
- Polymorphism
- Summary
Chapter 6
Software Engineering
- Object-Oriented Development to the Rescue?
- The Cathedral and the Bazaar
- The Spiral Model, 4GL, and RAD
- OO and 4GL
- Problems with RAD
- Scripting Languages and the Third Way
- Tools Selection
- The Magic Cauldron
- Summary
Chapter 7
Object-Oriented Analysis
- The Unified Modeling Language
- Using UML in OO Analysis
- Use Cases
- Actors and Events
- Identifying Use Cases
- Use Case Diagrams
- Writing Use Cases
- Use Case Summary
- The Conceptual Model
- Developing the Conceptual Model
- Identify Concepts
- Draw the Model
- Discover and Diagram Associations
- Add Attributes
- Conceptual Model Summary
- System Sequence Diagrams
- Contracts
- Summary
Chapter 8
Object-Oriented Design
- Three-Tier Architecture
- Designing for a Three-Tier Architecture
- From Domain to Persistence
- Patterns for Object-Oriented Design
- Elements of a Pattern
- Observer
- The Value of Patterns
- Choosing Patterns
- Using UML in Object-Oriented Design
- Baggage from Previous Iterations
- Collaboration Diagrams
- Developing Collaboration Diagrams
- Collaboration Diagrams for Borrow Books
- The identifyPatron() Operation
- The loanBook() Operation
- Class Diagrams
- UI and Database Design in Context
- Designing the User Interface
- Bridging Database and Objects
- Patterns for Object-Relational Mapping
- Object-Relational Mapping Tools
- From Design to Code
- Summary
Chapter 9
Databases
- What is an RDBMS?
- Relational Database and the PC
- Some Frequently Asked Questions
- What is a Database?
- What is the Difference Between a Database and a Database Server?
- What is the Difference Between a Database and a Table?
- What is the Difference Between an RDBMS and a DBM File?
- How do I seek on a Table in an RDBMS?
- What is SQL?
- How does SQL get from my Program to the RDBMS?
- What Format is the Data Stored In?
- What is a Database Independence API?
- Getting Started with an RDBMS
- PostgreSQL
- Mini SQL
- MySQL
- Oracle
- Sybase Adaptive Server Enterprise
- Common Database Issues
- Invalid Values
- Generating Unique Values
- Orphaned Data
- Declarative Referential Integrity
- Triggers
- Lost Updates
- Administrative Issues
- Bulk Data Operations
- The Security of Initial Accounts
- Automatic Startup and Shutdown
- Database Features Quick Reference
- General Overview
- Data Types
- SQL Monitors
- Summary
Chapter 10
Linux Development Tools Catalog
- Database Tools
- Multi-RDBMS
- Katabase
- KSQL
- dbMetrix
- gtkSQL
- dbMan
- Gnome Transcript
- PostgreSQL Tools
- Oracle Tools
- MySQL Tools
- Sybase Tools
- Drivers and Driver Managers
- Modeling/Diagramming Tools
- Summary
Chapter 11
Java, Swing, and JDBC
- JDBC
- Running the Example Programs
- Using JDBC
- Open a Connection
- Send SQL to the Server
- Process Result Sets
- Swing
- A Frame, a Field, and a Button
- Event Handling
- Inner Classes and Object References
- Layout Managers
- Separating Content and Presentation
- JTable and TableModel
- A Table Model for JDBC
- Using the JDBC Table Model
- Summary
Chapter 12
DBI and Perl
- The Perl DBI
- Installing the DBI
- After Installing DBI
- Installing Database Drivers (DBDs)
- If You Have Trouble
- Using the DBI
- Connecting to a Database
- Executing an SQL Statement
- Prepared Statements
- Processing Result Sets
- User Interfaces in Perl
- Perl/Tk
- Installing Perl/Tk
- Creating a Simple Form
- Variable Binding
- Some Widgets
- Displaying Data in a Grid
- Displaying Hierarchical Data
- Object-Oriented Perl
- Tangram: Object-Relational Mapping in Perl
- Defining a Schema and Classes
- Deploying the Schema
- Creating Objects
- Finding Objects
- Putting It All Together
- Summary
Chapter 13
GNOME
- Getting GNOME
- Keeping Up With the Developers
- The GNOME Application Framework
- User Interface Services
- Distributed Object Services
- Data Access Services
- GNOME Programming
- Using GTK+
- Compiling and Running the GTK+ Example
- GTK+ Versus OO Toolkits
- GTK+ Widgets
- Developing User Interfaces with Glade
- Glade Tutorial
- Overview of GNOME-DB
- Providers and Data Sources
- GNOME-DB in Action
- Getting GNOME-DB
- Compiling and Installing GNOME-DB
- Configuring Data Sources
- Using GNOME-DB
- Programming GNOME-DB
- Make a Connection
- Trap Errors
- Glade Meets GNOME-DB
- Summary
Chapter 14
Software Architecture
- Modularity and Troubleshooting
- Architectural Choices
- Message Passing Facilities
- Networking
- The Wonder of Relational Databases
- Files as Databases
- Client-Server Relational Databases to the Rescue
- Summary
Chapter 15
Introduction to CORBA
- CORBA Terminology
- CORBA Implementations for Linux
- Using CORBA
- A Simple MICO Example
- A Simple ORBit Example
- CORBA Goodies
- Summary
Appendix A
SQL Reference
- CREATE TABLE
- The CONSTRAINT Clause
- Enforcing Relationships
- Data Types
- CREATE/DROP INDEX
- Putting Data into the Database
- UPDATE
- ALTER TABLE
- DROP TABLE
- SQL Query Fundamentals
- Retrieving All Columns
- Aliases
- Querying with NULLs and Sets
- DISTINCT
- Aggregate Queries
- Views
- DELETE
Appendix B
UML Reference
- Class Diagram
- Sequence Diagram
- Collaboration Diagram