Database Design - 2nd Edition
Adrienne Watt, City University
Copyright Year: 2014
Conditions of Use
This is very much a Database Design text, not a Database Implementation text, and in those grounds is reasonably comprehensive. The text covers much of the terminology I would want students to become familiar with, as well as the major concepts... read more
This is very much a Database Design text, not a Database Implementation text, and in those grounds is reasonably comprehensive. The text covers much of the terminology I would want students to become familiar with, as well as the major concepts required for understanding database systems in the abstract. The text is on the shorter side, so some concepts are covered only briefly, or not at all. (For example, transactions and isolation levels are not covered.) There is also relatively little coverage of subqueries or more complex queries in general. The text is not really a guide to implementation or use, and is focused mostly on design. SQL is covered only briefly, and alternatives to SQL not at all. A course covering that material in depth would want to supplement this text. The text is very short - just 126 pages, plus the Appendices. (For comparison, several of the most widely-used traditional textbooks are 500 or more pages.) This brevity has some advantages, but it necessarily means that the coverage of many topics is brief, high-level, and sometimes includes only minimal context.
I did not notice any real errors in the text, although in some places the text gives definitions or descriptions that, while technically correct, may not be particularly useful to an introductory student due to lack of context. The text also has an issue that almost any general explanation of SQL has, which is that SQL implementations vary so much that it's hard to make general statements about the language. The text handles this issue as well as any, however, and doesn't delve into most of the areas where implementations differ the most.
The text generally sticks to timeless design principles, so little about the text comes off as dated. There's a few minor things - for example, the Waterfall method is of important historical interest as one of the earliest attempts to formalize the process of software design, but is no longer considered to be best practice by most people. (Although some methods that are still in use use the method as a foundation.) However, on the whole, I would expect the text to remain largely evergreen.
The text is generally written in a very accessible way - it feels like it was written for humans. One of the text's weaknesses, however, is that it in many places reads like an extended glossary, providing definitions of relevant terms but often very little context for why a beginner to databases should care about those things. Examples are often a bit sparse or under-explained. The middle section of the text is strongest, includes the best and clearest examples, and does the most to connect those examples to the text. The focus on definitions extends to the end-of-chapter exercises, which for much of the text consist heavily of definitions problems, although some later chapters include more application. The approach to exercises varies from chapter to chapter; many chapters include only a single, straightforward application problem, while a few others dig a little deeper.
While not inconsistent per se, the text introduces a fair amount of terminology and notation that it then does not continue to make use of.
Database Design isn’t necessarily a topic that lends itself especially well to modularity, especially when it comes to the basics, as many concepts build directly on top of each other in ways that make following a certain basic structure sort of unavoidable. That said, to whatever degree modularity is possible within that structure, the text does a fine job achieving it. The decision to not use just one or just a few running examples throughout the text is both a strength and a weakness. It means that individual chapters can more easily be skipped or rearranged, but also means that readers need to internalize new examples as they’re used.
There’s a little bit of redundancy; a few concepts are introduced more than once. On the whole, though, the text generally presents things in as sensible an order as is possible. SQL is introduced fairly late in the text - in chapter 15 of 16. Most of the basic functionality is covered, but in a very cursory way, and with examples that aren’t contextualized or explained. I’m not sure if a student who is not already comfortable with joins, for example, will get anything out of the section describing them. Even in a course that was focused only minimally on implementation, I would move that material much earlier.
At least in the .pdf version, some of the images are a bit difficult to read, although almost all can be read if you zoom in. For the most part, the visuals are clear and clean, and the book's formatting is consistent.
I noticed no serious grammatical issues.
The examples used the text are mostly fairly typical, in the business-world and course-management domains. One list of books used in an example does include a novel called “Incubus Dreams,” which is not something I would have included. Name lists don’t suggest a ton of ethnic diversity. Text avoids using gender as an example of a binary field, which is nice. There's no section of the text that specifically touches on ethics or that connects database design to a larger context. That isn't something I'd necessary expect that such a text would definitely have, however.
This book is quite comprehensive in its coverage of key topic areas expected to be covered in an introductory database course at the undergraduate (bachelor's degree) level. The authors should also consider including an introduction to star schema... read more
This book is quite comprehensive in its coverage of key topic areas expected to be covered in an introductory database course at the undergraduate (bachelor's degree) level. The authors should also consider including an introduction to star schema and snowflake schema topics in order to introduce datamarts and data warehouses in a separate chapter. Also, another chapter devoted to recent kinds of databases such as various types of NoSQL databases and similarities and differences of these databases (particularly from design and implementation viewpoints) as compared to relational databases would be useful to cover in an introductory database management course. Last, but not least, the authors should consider using an open-source database such as MySQL for demonstration of SQL concepts rather than MS Access (which is a proprietary and a desktop database software).
The technical content in the book is quite accurate. Given that the book is meant for an introductory audience, some of the nuances of database design are not covered (which was expected).
The core concepts in the book will be very relevant for the next several years. However, as pointed out in the comprehensiveness section, the addition of newer topics and the use of open-source software such as MySQL will make the book more relevant for students looking to immediately apply this knowledge in practice in their jobs/internships and so forth.
Clarity and simplicity are perhaps the key strengths of this book. I like the simple explanations and examples provided by the authors that can help students quickly grasp the gist of the concepts in an intuitive manner.
The overall flow of the book and the writing style is fairly consistent. Students who understand the earlier chapters should be able to continue with the later chapters without much difficulty.
The book itself is quite modular, which is great. However, the nature of the topic area is such that understanding fundamental concepts discussed in earlier chapters is necessary for grasping the concepts discussed in later chapters. This dependency is unavoidable and authors have done a good job in making the book chapters as modular as possible.
This 2nd edition of the book contains 16 chapters. While the book flows very well overall, I believe it would help the adoption of this book for a course, if the book were structured into 12 or 13 chapters (including a couple of new chapters suggested on data warehousing and NoSQL). This will help course instructors to easily use specific chapters of the book for each week. Alternatively, the authors can suggest different pathways for adoption for instructors teaching different lengths of courses (e.g., 6 weeks, 10 weeks, 14 weeks).
There were no major interface issues encountered while using this book. Figures and charts were blurry in some places and the distortion in size made it somewhat difficult to read those portions without interruption.
The book is well-written with no obvious grammatical errors.
The examples in the book are general and diverse and to my knowledge should not be offensive to any community.
To assist instructors in teaching a course who want to adopt this book, I would request adding extensive exercises (along with an instructor's solution manual) and test bank to accompany the book. Ideally, if these materials can be easily integrated into standard course management systems, it would ease the book adoption process.
The book does not cover relational algebra, which provides an important foundation for relational model mechanisms. From my personal experience teaching databases, discussing relational algebra makes it easier for students to later grasp SQL... read more
The book does not cover relational algebra, which provides an important foundation for relational model mechanisms. From my personal experience teaching databases, discussing relational algebra makes it easier for students to later grasp SQL joins. Other topics that I would have liked to have seen covered by this book are triggers, stored procedures, indexes, SQL DCL, security, database programming, and NoSQL.
The book is error-free but some exercises are Microsoft biased (e.g., the first exercise at the end of Chapter 16 requires students to download an MSI file). This problem can be easily modified by providing an .sql source file with the database schema for the exercise.
The book should have a chapter on NoSQL to make it more up-to-date with current trends in databases.
Sometimes the book feels a bit "too dry" and this might negatively impact a student's motivation when reading it.
The book's terminology is consistent with the one used in database systems.
I felt that the text was written in such a way that could be easily broken out and adapted to the course that I teach.
Chapter 14 (Database Users) does not have enough content to justify having it as a stand alone chapter. I suggest merging it with another chapter, perhaps with Chapter 13 that talks about software engineering in the context of database systems.
Most images that I clicked (to make them bigger) redirected me to an entirely different picture.
While English is not my first language, I felt the text was grammatically correct.
I didn't find the text to be culturally insensitive or non-inclusive.
I think the authors did a decent job. The text is clear and covers a fair amount of most of the topics commonly listed in introductory database systems courses in CS. I hope the authors continue to add more content, improvements and updates. I will recommend this book to both my colleagues and students and can't wait for the next edition.
Content walks through the various pieces to build understanding. All components are there for relational database design. read more
Content walks through the various pieces to build understanding. All components are there for relational database design.
Contents are accurate and presented without bias.
The content is up to date. Suggestion - the text focus is on designing for operational data. Add a chapter to describe data warehousing and data storage with large volume of data. I am very impressed with the presentation of the concepts. I like that all of the examples of the concepts. I like the assignments and keywords too.
Each concept includes an illustration. I really like this.
Yes - For example some chapters can be eliminate - like describing normal form
Data modeling is presented in the appropriate sequence. Each section is either independent on includes information presented in an earlier section
Its' a typical pdf. The copy I have does not include and internal navigation.
Did not detect errors.
The text is NOT culturally insensitive. I believe I picked the correct response of 5.
I really liked this text. I plan on incorporating it into one of my classes. I will have to supplement a bit to discuss data design for analysis that is fed from a operational database. But, that just is the nature of the course that I teach. I appreciate the effort that went into this book. I sincerely thank the authors for sharing.
While the book at least mentions all of the key terms, it is not clear that these concepts are covered in sufficient depth to really serve as a practical guide for new practitioners. More explanation follows. read more
While the book at least mentions all of the key terms, it is not clear that these concepts are covered in sufficient depth to really serve as a practical guide for new practitioners. More explanation follows.
I didn't spot any glaring inaccuracies in the book. However, because it was so short, I worry that there was not enough context provided or depth of explanation so that beginners in this field would be able to follow it with any degree of confidence. I think this book would require HEAVY additional guidance from an instructor. The pace of development is so fast these days, students need to be as self-sufficient in their learning as possible, and I'm not sure that is practical with this text.
It is not clear that the authors have spent much time doing database development in the last ten years. Their suggested development methodology based on the waterfall model is all but obsolete. Over time, it has proven to be both inflexible and a bottleneck that delays the efforts of other developers working on a project. Their coverage in some chapters is oddly platform-specific. For example, the data types they introduce in detail in chapter 15 (SQL Structured Query Language) do not apply to all (or perhaps even most) DBMS, and the differences between DBMS implementations are likely to cause major difficulties if students were to try to apply these concepts in a context where they don't apply. SQLite, for example, only has about 3-4 native data types and it is one of the most commonly used environments these days due to its small size, portability, and the fact that it is built-in to browsers and mobile devices.
As explained above in the "Accuracy" section, I worry that the explanations of key concepts were too short, not well organized, and therefore are likely to be unclear to beginners in this field.
Most of the time the book stays at a very high level, but on occasion, and without warning it jumps into great depth. For example, chapter 11 (functional dependencies) takes a sudden and deep dive into the subject of set theory and related axioms. This is not consistent in tone or apparent level of understanding of the reader. This would be quite jarring from the perspective of a student.
Although the chapter titles suggest modularity, I didn't feel there was a great deal of discipline in terms of where content was placed. For example, chapter 8 (The Entity Relationship Data Model) appears to be essentially the same as chapter 10 (ER Modeling). I think students being introduced to the concepts here would be very confused by this.
I found the organization somewhat confusing. For example, both chapters 10 and 11 begin by introducing the concept of functional dependency. I would have expected the concept to be fully defined and explained in one chapter or the other, not both, or at the very least make it clear that the concept is broken up into multiple chapters. Some topics seemed to appear out of the blue in the middle of some chapters without warning. Chapters were inconsistent in terms of their length and the depth and care with which they treated a subject. For example, chapter 14 (Database Users) was extremely short, and could have been covered (perhaps was?) in a much earlier chapter like chapter 2 (Fundamental Concepts).
In general, navigating through the book was straightforward. However, many of the images were very small and of poor resolution. Furthermore, if you click on many of the images they are linked to different, unrelated images rather than larger, clearer versions of the same image.
I found only minor problems with grammar or diction.
This book is not offensive, at all. However, it utterly fails to address the cultural contexts of data within organizations and society. Beginners to database design frequently fail to understand the impact that database structure can have on the structure and function of an organization. Sometimes organizations find themselves having to adapt to their data structures rather than the other way around. A good modern example is the concept of gender. It is now generally recognized that gender is a non-binary facet of identity. An otherwise well-meaning developer who reduced gender to "male/female" may cause unintended harm to the people whose data is being stored in a database. The traditional failure of the software community to consider, let alone address, issues like this is replete through the industry. Discussions of the ethical and sociocultural ramifications of data are completely absent from this text.
While technically fairly accurate, this book falls short in some important dimensions of relevance and cultural sensitivity. I think the treatment of the subjects is uneven, redundant in some places, very high level in others, and of more depth than necessary in yet others. I would not feel comfortable using this book to teach introductory students.
The texts covers all the topics required for an introduction to data base management course. read more
The texts covers all the topics required for an introduction to data base management course.
The book is accurate and follows the conventions used in other popular references in the data base management system field.
The book is very relevant to the content covered in an introductory database management system courses.
The book text clear. The figures resolution is not excellent but readable. The naming of the attributes for some relations in the relational model chapter is not very descriptive in some cases. The exercises are limited in some chapters.
The naming of the attributes for some relations in the relational model chapter is not very descriptive in some cases. The exercises are limited in some chapters.
The text is easy to read and easy to divide in smaller sections that can be assigned within the course.
The flow of the book is very good and follows the state of the art for other very well know references in the same field.
The only thing to mention is the resolution of the figures that need to be enhanced.
I didn't see any grammatical mistakes.
The text is not culturally insensitive or offensive in any way.
The book is very useful for introductory database management courses.
The book contains the Table of Contents and lists Key Terms for every Chapter. However, it will be better to include Index with corresponding page numbers and/or hyperlinks. read more
The book contains the Table of Contents and lists Key Terms for every Chapter. However, it will be better to include Index with corresponding page numbers and/or hyperlinks.
Content is accurate with many examples.
Better to add some more brief introduction on non-traditional databases and maybe some compact comparison table as well.
The figures and the tables are clear. Some itemized list may extend with longer explanations. Chapter 3 may be improved by putting some sections as sub-sections under other sections. Chapter 4 may explain the Physical Data Models as well. On relational model, the Primary Keys should be highlighted, e.g. bolded.
The whole book should be standardized with one ERD format. The early chapter uses the Chen's notation. The key chapter uses and explains the Crow's Feet notation. The appendix uses the UML.
The content includes all key components and topics about traditional database management systems.
Chapters 8, 9 and 10 may be re-arranged in sequence.
The pages are all good.
The grammar reads well.
The content reads neutral on cultural relevance.
Maybe CREATE VIEW and DROP VIEW can be added.
It give a sound history and need for database without picking one other the other. It also comes in several formats from pdf to Kindle and etc. It provide a clear and unbiased history of data effort and societal engagement with data. It give a... read more
It give a sound history and need for database without picking one other the other. It also comes in several formats from pdf to Kindle and etc. It provide a clear and unbiased history of data effort and societal engagement with data. It give a good scope of data base design. It does not include any open source database topics like Hadoop or MongoDB or their influx on the database market, learning or industry. Such would have to be supplemented materials.
It accuracy is very good and it admits is covers most topics in databases.It's a great intro to databases book.
For a free book it is awesome. Even though cloud databases have existed since 1996, their use is now only becoming mainstream, but the basics of databases remains in tact.It does not include GIS or apps as extensions of databases in 2017. For intro to database awesome, but not for an advanced databases course.
it has the properly communication for a novice database person getting into the field. The book give a great introduction to database and is clear throughout.
The book is written in a consistent manner and attempts not to lose the learner. The book uses some mathematical formula and needs more.
The book is broken down well into many chapters and digestible chunks of thought that are easily builds upon previous learning. the various chapters do a great job breaking down the database knowledge.
the book is very well organized and thought out. It give good examples for student to build up with homework to test their perceptions. The book sets up the learning of material and give a learner an opportunity to apply it in homework. Also, vocabulary is used to add to the database literacy of the student.
it was simple to use for an introductory course. Now real world experience would still need to be done in a hands-on manner. It gave examples and key terms to support more learning for another course. All graphics and layout were done very nicely for the online and pdf versions.
The grammar use was excellent. It made clear objectives and outcomes for learning.
not really applicable
A 3rd edition would be welcomed!!!
The book covers all necessary areas and topics, but I did not see an overall index. I like the idea of having key terms at the end of each section. It was a great book for database design and as an extra bonus, SQL was covered in greater detail... read more
The book covers all necessary areas and topics, but I did not see an overall index. I like the idea of having key terms at the end of each section. It was a great book for database design and as an extra bonus, SQL was covered in greater detail than most texts on the subject. It is complete with section review, exercises, and solutions. Table of contents is complete, organized, and the topics are presented in the appropriate order.
Topics are described accurately and content is free of errors.
The topic here is traditional theory which does not change quickly as typical IT topics do. All content is relevant and up-to-date examples are used. Any updates should be easily implemented, but very few would be expected.
The book was very clear and topics were explained thoroughly. The terminology used was easy to understand. Key terms for each section were conveniently located at the end of each section which explained the important terms. This could easily be used as a section review.
The text, terminology, and terms are consistent throughout all sections of the book.
The book was consistent with all the typical modules and sections with key terms, questions, and lab exercises which reinforced concepts covered in each section. It is well-organized and reading flowed easily. Terms were presented in the appropriate order and the text was not verbose.
Topics are presented in a logical fashion. This organization is typical of all other database design courses I have seen.
Many of the images are blurry and difficult to see. I had to zoom very large and they were still sometimes very hard to read. Navigation was typical of PDF documents and easy to move around and navigate throughout the document.
I found a few grammatical errors.
The text is not insensitive or offensive. Examples are typical business examples which are relevant and current. Example database designs are very simple to comprehend so that emphasis is placed on learning the concepts.
I think this book would make an excellent textbook for a relational database design course. It is complete with exercises and section reviews. The exercises are very beneficial and solutions to examples and labs are included with the text which is very important to the student. It would also be good to use for a SQL review.
The book is a thorough and covers the topics that is expected to be covered in a database design course. The topics are well organized. I was expecting material on NoSQL to be included and other recent updates in databases read more
The book is a thorough and covers the topics that is expected to be covered in a database design course. The topics are well organized. I was expecting material on NoSQL to be included and other recent updates in databases
The material in the book was accurate.
The book covers the material required in database design well and will be relevant in future. The recent advances in the database design should be incorporated.
The book is clear and concise.
The book is consistent in terms of terminology and organization of the concepts in every chapter.
The chapters in the book provide modularity. The instructor can select the topics accordingly.
The organization and structure is broad and comprehensive. I would hope there could have been more worked out examples.
The interface is great.
I did not find any errors in grammar
I did not find any culturally insensitive or offensive material.
This book is an ideal textbook for database design. The organization of the book helps in the understanding of the material at a low gradient. I hope the authors add more worked out examples.
Table of Contents
- Chapter 1 Before the Advent of Database Systems
- Chapter 2 Fundamental Concepts
- Chapter 3 Characteristics and Benefits of a Database
- Chapter 4 Types of Data Models
- Chapter 5 Data Modelling
- Chapter 6 Classification of Database Management Systems
- Chapter 7 The Relational Data Model
- Chapter 8 The Entity Relationship Data Model
- Chapter 9 Integrity Rules and Constraints
- Chapter 10 ER Modelling
- Chapter 11 Functional Dependencies
- Chapter 12 Normalization
- Chapter 13 Database Development Process
- Chapter 14 Database Users
- Chapter 15 SQL Structured Query Language
- Chapter 16 SQL Data Manipulation Language
About the Book
This second edition of Database Design book covers the concepts used in database systems and the database design process. Topics include:
- The history of databases
- Characteristics and benefits of databases
- Data models
- Data modelling
- Classification of database management systems
- Integrity rules and constraints
- Functional dependencies
- Database development process
New to this edition are more examples, highlighted and defined key terms, both throughout and at the end of each chapter, and end-of-chapter review exercises. Two new chapters have been added on SQL, along with appendices that include a data model example, sample ERD exercises and SQL lab with solutions.
About the Contributors
Adrienne Watt holds a computer systems diploma (BCIT), a bachelor’s degree in technology (BCIT) and a master’s degree in business administration (City University).
Since 1989, Adrienne has worked as an educator and gained extensive experience developing and delivering business and technology curriculum to post-secondary students. During that time, she ran a successful software development business. In the business, she worked as an IT professional in a variety of senior positions including project manager, database designer, administrator and business analyst. Recently she has been exploring a wide range of technology-related tools and processes to improve delivery methods and enhance learning for her students.