Tech Quarto
Search Advanced SearchView Cart   Checkout   
 Location:  Home » Mobile & Wireless » General AAS » Data Access Patterns: Database Interactions in Object-Oriented Applications (Software Patterns Series)  
Categories
Computer Science
The Internet
For Dummies
Web Browsers
Windows
Digital Culture
Multimedia
Mobile & Wireless
Related Categories
• General AAS
Qualifying Textbooks
Custom Stores
Specialty Stores
Books
• Modeling & Simulation
Computer Science
Computers & Internet
Subjects
Books
• Database Design
Databases
Computers & Internet
Subjects
Books
• Object Databases
Databases
Computers & Internet
Subjects
Books
• General
Databases
Computers & Internet
Subjects
Books
• General AAS
Databases
Computers & Internet
Subjects
Books
• Object-Oriented Design
Software Design, Testing & Engineering
Programming
Computers & Internet
Subjects
• Software Development
Software Design, Testing & Engineering
Programming
Computers & Internet
Subjects
• Structured Design
Software Design, Testing & Engineering
Programming
Computers & Internet
Subjects
• Databases
Software
Computers & Internet
Subjects
Books
• General
Software
Computers & Internet
Subjects
Books
• General AAS
Software
Computers & Internet
Subjects
Books
• General
Computers & Internet
Subjects
Books
• General AAS
Computers & Internet
Subjects
Books
• Hardcover
Binding (binding)
Refinements
Books
• Printed Books
Format (feature_browse-bin)
Refinements
Books
Visit Laptop Nirvana for the best Cheap Discount Laptops

Data Access Patterns: Database Interactions in Object-Oriented Applications (Software Patterns Series)

Data Access Patterns: Database Interactions in Object-Oriented Applications (Software Patterns Series)

zoom enlarge 
Author: Clifton Nock
Publisher: Addison-Wesley Professional
Category: Book

List Price: $54.99
Buy New: $29.99
You Save: $25.00 (45%)



New (12) Used (19) from $25.47

Avg. Customer Rating: 4.0 out of 5 stars 7 reviews
Sales Rank: 755425

Media: Hardcover
Number Of Items: 1
Pages: 512
Shipping Weight (lbs): 1.8
Dimensions (in): 9.4 x 7.2 x 1.2

ISBN: 0131401572
Dewey Decimal Number: 005.1
UPC: 076092022619
EAN: 9780131401570
ASIN: 0131401572

Publication Date: September 21, 2003
Availability: Usually ships in 1-2 business days
Shipping: Expedited shipping available
Shipping: International shipping available
Condition: Ships next business day from NY

Also Available In:

  • Paperback - Data Access Patterns: Database Interactions in Object-Oriented Applications (paperback) (Software Patterns)

Similar Items:

  • Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley Professional Computing Series)
  • Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series)
  • Agile Database Techniques: Effective Strategies for the Agile Software Developer (Wiley Application Development)
  • Design Patterns Explained: A New Perspective on Object-Oriented Design (2nd Edition) (Software Patterns Series)
  • Domain-Driven Design: Tackling Complexity in the Heart of Software

Editorial Reviews:

Product Description
25 proven patterns for improving data access and application performance Efficient, high-quality data access code is crucial to the performance and usability of virtually any enterprise application--and there's no better way to improve an existing system than to optimize its data access code. Regardless of database engine, platform, language, or application, developers repeatedly encounter the same relational database access challenges. In Data Access Patterns, Clifton Nock identifies 25 proven solutions, presenting each one in the form of a clear, easy-to-use pattern. These patterns solve an exceptionally wide range of problems including creating efficient database-independent applications, hiding obscure database semantics from users, speeding database resource initialization, simplifying development and maintenance, improving support for concurrency and transactions, and eliminating data access bottlenecks. Every pattern is illustrated with fully commented Java/JDBC code examples, as well as UML diagrams representing interfaces, classes, and relationships.The patterns are organized into five categories: *Decoupling Patterns: Build cleaner, more reliable systems by decoupling data access code from other application logic *Resource Patterns: Manage relational database resources more efficiently *Input/Output Patterns: Simplify I/O operations by translating consistently between "physical" relational data and domain object representations of that data *Cache Patterns: Use caching strategically, to optimize the tradeoffs between data access optimization and cache overhead *Concurrency Patterns: Implement concurrency and transactions more effectively and reliably Data Access Patterns demystifies techniques that have traditionally been used only in the most robust data access solutions--making those techniques practical for every software developer, architect, and designer.


Customer Reviews:   Read 2 more reviews...

3 out of 5 stars There is better one   December 13, 2006
 0 out of 3 found this review helpful

Try Martin Fowler's Patterns of Enterpise Application Architecture.
It has much better coverage in more useful context.
Also you can look at Hibernate or iBatis project for real application
of these patterns.



4 out of 5 stars Useful patterns and interesting concepts   December 10, 2004
 5 out of 5 found this review helpful

The book presented 25 patterns grouped in 5 areas, decoupling (conceptual and architectural level), resource, input/output, cache and concurrency.

The most interesting patterns are in resource and cache. Decoupling and concurrency patterns (e.g., data accessor, active domain object, layers, transactions, optimistic/pessimistic lock etc.) are well known and the contents are a bit too light to be very useful, yet the concepts are giving readers some directions.

In resource patterns, some interesting patterns are presented, particularly resource timer automatically releases inactive resource, retryer enables fault-tolerance for data access operations.

In cache patterns, cache collector purges entries whose presence in the cache no longer provides any performance benefits; cache replicator replicates operations across multiple caches.

There are some areas to be improved, first, author should consolidate pattern names with other pattern authors, e.g., data accessor is also known as data access object, active domain object is similar to active record, paging iterator is close to value list handler (though value list handler is more decoupled from underlying data store), the point is, one of the important benefits and purposes for documenting patterns is to build common vocabularies among designers, using different names for same or similar patterns is defeating this purpose. The same pattern name should be used and may be presented as a variation of the original pattern.

Secondly, the examples given in the book is a bit too simple, sometimes, the examples might not justify or validate the interface abstraction is generic enough to handle real world problems, so some tweaking and modification to the pattern would be expected.

Overall, the book is well organized, and contents are easy to follow, most patterns come with class diagrams and sequence diagrams. Good for designers who want to decouple data access from rest of the application, utilize cache to minimize data access and thus boost application performance, manage resources in an efficient and leaking-proof way.



5 out of 5 stars Great book on persistence theory   May 10, 2004
 5 out of 5 found this review helpful

I'm in the middle of developing yet another persistence framework for a client, having done it a couple of times before. Each time I refine my ideas about how to do it. I must say that this book has a thorough examination of issues and certainly food for thought as well as answers to a couple of questions I've had.

However, I wouldn't say it's a complete design (which it doesn't claim to be). I still found myself picking and choosing which patterns to use as is, which to modify to my liking, and which to discard.

Also, I was left with the impression that the book didn't give enough coverage to handling collections of objects. The material is mostly geared toward working with a single object, which is understandable. I just think it would have been helpful to have more discussion about handling collections. For example, what should happen when you request to load an object, but the criteria you passed to the loading mechanism results in data for more than one object being retrieved from the database? Hand back the first object? Raise an exception? If it's covered in the book, I missed it.

Further, I would like to see more discussion about WHEN to refresh an object from the underlying database and when to save to the database. I always struggle with that timing issue. Having studied EJB, I like how entity beans keep your bean in synch with the underlying database. But the EJB container intercepts calls and makes those things happen. When coding the persistence layer myself, that's not an option. So, again, this is something I'd like to see some light shed on.

Overall, though, a great book if you're interested in reading up on persistence layer patterns.


5 out of 5 stars Good design pattern book in data access !!   February 29, 2004
 6 out of 6 found this review helpful

I am in the process of writing a thesis proposal that utilizing JDBC and TableModeler to access various database platforms as a prototype.

While prototyping the model, I encountered a lot of consideration of what is the best approach for certain implementation (mainly on JDBC). While looking into a few of designing books, I found this Data Access Patterns book that fits into my research needs. I have read other book such as Designing Flexible Object Oriented System with UML and not able to apply the concept or see solution in it. It is simply a conceptual book. No practical examples at all.

Mr. Nock has explained the design patterns very clearly in each chapter by using JDBC as a media. The examples are very easy to understand as compared to Design Patterns Explained. I am not able to understand codes that implementing graphics in that book.

Mr. Nock addressed the pros and cons of the patterns. Many techie books do not even bother to talk about pros and cons.

The author has chosen the right title for the book, I realized that many times author received a poor rating because reader expect different contents based on the title of the book.

The feature I liked the most - the Applicability section on each chapter. Unlike other patterns book, the author explains the concept and gives example of "what" and "when" to use certain design pattern. This section is pretty much the answer for my thesis obstacles. The answer is in this book!!

Minor typos do exist such as in page 390 roll back instead of rollback.

In concurrency chapter, author may have mis-used the term of updates locking. It should be Lost Updates instead of Missing updates. Concurrency chapter looks like UDB Lock Concurrency architecture.

Additional note - would like to see the quality aspect in each of the patterns.

Overall, the book is very well structured, explained and thoughtful.

Thank you Mr. Nock !! This is a perfect book for my thesis.

Looking forward to read your future publish.

Regards,

EQ


5 out of 5 stars Excellent and Easy To Read   February 20, 2004
 16 out of 25 found this review helpful

I have to disagree with the previous review. I will try to explain why I think 'b88zhou' review is inadequate after presenting my overview of this book.

After reading numerous pattern books, it is nice to see a pattern book with very good organization.

Each pattern is presented with the following subsections.

* Description
* Context
* Applicability
* Structure
* Iteractions
* Consequences
* Strategies
* Sample Code
* Related Patterns and Technology.

I specifically like 'Consequence' section because it outlines the 'bad' consequence of adopting the patter. This goes with the mantra of design patterns - there is no one good pattern. You trade off one design for another depending on the context of your domain.

Also each pattern is accompanied by UML class diagrams and UML sequence diagrams - this is a big plus in understanding pattern.

The sample code is written in Java/JDBC so you may need to understand Java but I believe this pattern is still relevant to ADO.NET and C++. [ ADO.Net does offer connected and disconnected database operation so some patterns may not be relevant - plus, event/delegate will aid in some patterns.]

Specific to what the previous reviewer say - here are my rebuttals.

>> Why do you want to make queries and database updates into factories? Looking at the sample code, does it really help decoupling?

The previous reviewer mentioned as 'factories' is the derivation of 'AbstractFactory'. If you do not understand why AbstractFactory aids in decoupling from the concrete implementation, I think you should re-read GoF book. The author uses AbstractFactory pattern extensively in context of "Input and Output Parameter" and "Cache Patterns". I do admit that sometimes "Input and Output Parameter patterns" may not need to use AbstractFactory but if you read 'Domain Assembler' pattern you will understand why. From Domain Assembler, you can see the benefit of having AbstractFactories for Selection, Domain Object, and Update -- assembling all these factories via interface not concrete implmentation - a basic idea of design to interface instead concrete implementation.

>> The "Cache Patterns" does not solve the problem of preventing stale entry or even attempt to describe how to invalidate cache entry, so no matter how efficient you get, the cache is not guaranteed to be up-to-date /correct.

Please re-read 'Cache Collector'. The pattern could have different name like 'Cache Garbage Collector'. He talks about how you can 'purge' old data. Also re-read 'Cache Replicator' for how to sync the cached data in distributed system.

>> I'm surprised "stored procedure" is not mentioned at all.

I guess you have not done too many DB oriented projects. The stored procedure is evil and add little value to OO programming. But if you want the stored procedure, just replace 'SELECT' or 'UPDATE' statements to whatever stored procedures you want to call. So I don't think you can add much with SP.

>> mature object/relational frameworks like EOF (Apple WebObjects) or TopLink

This book is not about Java Data Object or OR mapping. Object-Relational mapping tool is another beast.

I would recommend this book highly to anyone doing DB application development.

Powered by Associate-O-Matic