I can design basic Rails models without any trouble, and I feel pretty comfortable at the mysql command prompt. But some of these new database features in Rails 1.1 have me scratching my head: polymorphic associations, join models, etc. What is all that? I think I need a book that covers the advanced database topics one would need to know as a Rails developer -- not necessarily Rails-specific, but comprehensive enough to include all the database topics relevant to Rails. That means it would have to include not just material on SQL syntax and whatnot, but also best practices for database design, that sort of thing. Hopefully it could also serve as a general reference to the SQL language, as well. Does anyone know of a book like that? (Hope I''m not wishing for too much.) Thanks, Trevor
On Wed, May 03, 2006 at 12:52:55AM -0700, Trevor Harmon wrote: } I can design basic Rails models without any trouble, and I feel pretty } comfortable at the mysql command prompt. But some of these new database } features in Rails 1.1 have me scratching my head: polymorphic } associations, join models, etc. What is all that? These are not SQL terms or even relational database terms. These have to do with Object-Relational Modeling (ORM). ActiveRecord is an ORM framework, and some of those terms (e.g. join models) seem to have been invented specifically for AR. } I think I need a book that covers the advanced database topics one } would need to know as a Rails developer -- not necessarily } Rails-specific, but comprehensive enough to include all the database } topics relevant to Rails. That means it would have to include not just } material on SQL syntax and whatnot, but also best practices for } database design, that sort of thing. Hopefully it could also serve as a } general reference to the SQL language, as well. } } Does anyone know of a book like that? (Hope I''m not wishing for too } much.) Good database design is an art. I have rarely seen it taught well. The best book I''ve seen, which is the textbook I used in college (and is used pretty nearly universally for undergrad database courses), probably isn''t sufficient on its own. You can try, though. We used "Database System Concepts" by Silberschatz et al., which seems to retail for over $100 (well it *is* a textbook) these days. I searched Amazon for "database" and found many books, but I can''t say anything about their quality. } Thanks, } Trevor --Greg
On May 3, 2006, at 8:42 AM, Gregory Seidman wrote:> On Wed, May 03, 2006 at 12:52:55AM -0700, Trevor Harmon wrote: > } I can design basic Rails models without any trouble, and I feel > pretty > } comfortable at the mysql command prompt. But some of these new > database > } features in Rails 1.1 have me scratching my head: polymorphic > } associations, join models, etc. What is all that? > > These are not SQL terms or even relational database terms. These > have to do > with Object-Relational Modeling (ORM). ActiveRecord is an ORM > framework, > and some of those terms (e.g. join models) seem to have been invented > specifically for AR.Yes, but a good database book will discuss object-oriented and object- relational databases, not just relational databases. The key here is that you need both an understanding of databases AND an understanding of object oriented programming concepts. It''s one of those times you have to put the knowledge from multiple courses together.> } I think I need a book that covers the advanced database topics one > } would need to know as a Rails developer -- not necessarily > } Rails-specific, but comprehensive enough to include all the database > } topics relevant to Rails. That means it would have to include not > just > } material on SQL syntax and whatnot, but also best practices for > } database design, that sort of thing. Hopefully it could also > serve as a > } general reference to the SQL language, as well. > } > } Does anyone know of a book like that? (Hope I''m not wishing for too > } much.) > > Good database design is an art. I have rarely seen it taught well. > The best > book I''ve seen, which is the textbook I used in college (and is > used pretty > nearly universally for undergrad database courses), probably isn''t > sufficient on its own. You can try, though. We used "Database System > Concepts" by Silberschatz et al., which seems to retail for over > $100 (well > it *is* a textbook) these days. I searched Amazon for "database" > and found > many books, but I can''t say anything about their quality.I''ve heard good things about the Silberschatz book. The text we used was titled "Database Systems: The Complete Book" and was authored by Garcia-Molina, Ullman, & Widom (almost sounds like a law firm). It''s another $100 book, but it''s pretty comprehensive. I highly recommend it if you are looking for a deeper understanding that also can serve as a good reference. Here''s the synopsis from ecampus.com: Synopsis: This introduction to database systems offers a readable comprehensive approach with engaging, real-world examples?users will learn how to successfully plan a database application before building it. The first half of the book provides in-depth coverage of databases from the point of view of the database designer, user, and application programmer, while the second half of the book provides in-depth coverage of databases from the point of view of the DBMS implementor. The first half of the book focuses on database design, database use, and implementation of database applications and database management systems?it covers the latest database standards SQL:1999, SQL/PSM, SQL/CLI, JDBC, ODL, and XML, with broader coverage of SQL than most other books. The second half of the book focuses on storage structures, query processing, and transaction management?it covers the main techniques in these areas with broader coverage of query optimization than most other books, along with advanced topics including multidimensional and bitmap indexes, distributed transactions, and information integration techniques. A professional reference for database designers, users, and application programmers. I think that it''s also sold separately in parts 1 and 2. The second half discusses the concepts related to designing the database server itself, so unless you plan on writing the next-generation database server YourSQL, it''s probably overkill. -Derrick Spell -------------- next part -------------- An HTML attachment was scrubbed... URL: http://wrath.rubyonrails.org/pipermail/rails/attachments/20060503/51d8a2a1/attachment-0001.html
On Wednesday 03 May 2006 14:35, Derrick Spell wrote:> These are not SQL terms or even relational database terms. These have to do > with Object-Relational Modeling (ORM). ActiveRecord is an ORM framework, > and some of those terms (e.g. join models) seem to have been invented > specifically for AR. > > Yes, but a good database book will discuss object-oriented and > object-relational databases, not just relational databases.? The key here > is that you need both an understanding of databases AND an understanding of > object oriented programming concepts.? It''s one of those times you have to > put the knowledge from multiple courses together.Trevor I agree with the general theme of the replies here. I worked with databases daily for over a year with no real understanding of what I was doing. (I mean I THOUGHT I knew what I was doing but really didn''t have a clue.) You can''t really learn how to use the "Rails-specific" bits of a database, any more than you can learn only "holiday phrases" of a foreign language. You have to learn the whole thing, then take the bits you need for whatever you are doing. Databases have a lot of rigorous theory behind them. You don''t need to understand it in full depth to work with databases (I certainly don''t!), but you need to be aware of the issues. There are plenty of traps waiting - SQL itself is a flawed language (the MySQL implementation even more so) but if you are know where you are making compromises, they won''t come back to bite you. Incidentally, I always recommend PostgreSQL over MySQL here simply because it strives for correctness which is the number 1 concern for databases. I haven''t seen a book that is a gentle introduction to databases AND explains how to apply the theory correctly. I think this is a big hole in the market right now! You are best finding the best book on the database system you want to use and getting some practical experience. Then buy something more theoretical. I highly recommend Database in Depth by C J Date (incidentally where I got my signature quote from). It can be a bit of a mind-boggler, but it''s short, it makes you think, and you can skip the proofs and formal defintions. I wish there was an easy way to learn databases, but if you put the effort in, you can get yourself way ahead of the game. Regards Ashley -- "If you do it the stupid way, you will have to do it again" - Gregory Chudnovsky