Beginning Database Design Solutions (Paperback)

Rod Stephens

  • 出版商: Wiley
  • 出版日期: 2008-11-01
  • 定價: $1,575
  • 售價: 9.5$1,496
  • 語言: 英文
  • 頁數: 552
  • 裝訂: Paperback
  • ISBN: 0470385499
  • ISBN-13: 9780470385494
  • 相關分類: 資料庫
  • 立即出貨(限量) (庫存=1)

買這商品的人也買了...

商品描述

This book is intended for IT professionals and students who want to learn how to design, analyze, and understand databases. The material will benefit those who want a better high-level understanding of databases such as proposal managers, architects, project managers, and even customers. The material will also benefit those who will actually design, build, and work with databases such as database designers, database administrators, and programmers. In many projects, these roles overlap so the same person may be responsible for working on the proposal, managing part of the project, and designing and creating the database.

This book is aimed at IT professionals and students of all experience levels. It does not assume that you have any previous experience with databases or programs that use them. It doesn’t even assume that you have experience with computers. All you really need is a willingness and desire to learn.

This book explains database design. It tells how to plan a database’s structure so the database will be robust, resistant to errors, and flexible enough to accommodate a reasonable amount of future change. It explains how to discover database requirements, build data models to study data needs, and refine those models to improve the database’s effectiveness.

The book solidifies these concepts by working through a detailed example that designs a realistic database. Later chapters explain how to actually build databases using two common database products: Access 2007 and MySQL.

The book finishes by describing some of the topics you need to understand to keep a database running effectively such as database maintenance and security.

This book explains database design. It tells how to determine what should go in a database and how the database should be structured to give the best results.

This book does not focus on actually creating the database. The details of database construction are different for different database tools so, to remain as generally as useful as possible, this book doesn’t concentrate on any particular database system. You can apply the techniques described here equally to whatever database tool you use whether it’s Access, SQL Server, Oracle, MySQL, or some other database product.

Most database products include free editions that you can use for smaller projects. For example, SQL Server Express Edition, Oracle Express Edition, and MySQL Community Server are all free.

To remain database neutral, the book does not assume you are using a particular database so you don’t need any particular software or hardware. To work through the Exercises, all you really need is a pencil and some paper. You are welcome to type solutions into your computer if you like but you may actually find working with pencil and paper easier than using a graphical design tool to draw pictures, at least until you are comfortable with database design and are ready to pick a computerized design tool.

  • “Goals of Effective Database Design,” explains the reasons why people and organizations use databases. It explains a database’s purpose and conditions that it must satisfy to be useful. This also describes the basic ACID (Atomicity, Consistency, Isolation, Durability) and CRUD (Create, Read, Update, Delete) features that any good database should have. It explains in high-level general terms what makes a good database and what makes a bad database.

  • “Database Types,” explains some of the different types of databases that you might decide to use. These include flat files, spreadsheets, hierarchical databases (XML), object databases, and relational databases. The relational database is one of the most powerful and most commonly used forms of database so it is the focus of this book, but it is important to realize that there are alternatives that may be more appropriate under certain circumstances. This gives some tips on deciding which kind of database might be best for a particular project.

  • “Relational Database Fundamentals,” explains basic relational database concepts such as tables, rows, and columns. It explains the common usage of relational database terms in addition to the more technical terms that are sometimes used by database theorists. It describes different kinds of constraints that databases use to guarantee that the data is stored safely and consistently.

  • “Understanding User Needs,” explains how to learn about the users’ needs and gather user requirements. It tells how to study the users’ current operations, existing databases (if any), and desired improvements. It describes common questions that you can ask to learn about users’ operations, desires, and needs, and how to build the results into requirements documents and specifications. This explains what use cases are and tells how to use them and the requirements to guide database design and to measure success.

  • “Translating User Needs into Data Models,” introduces data modeling. It explains how to translate the user’s conceptual model and the requirements into other more precise models that define the database design rigorously. This describes several database modeling techniques including user-interface models, semantic object models, entity-relationship diagrams, and relational models.

  • “Extracting Business Rules,” explains how a database can handle business rules. It explains what business rules are, how they differ from database structure requirements, and how you can identify business rules. This explains the benefits of separating business rules from the database structure and tells how achieve that separation.

  • “Normalizing Data,” explains one of the biggest tools in database design: normalization. Normalization techniques allow you to restructure a database to increase its flexibility and make it more robust. This explains the various forms of normalization, emphasizing the stages that are most common and important: first, second, and third normal forms (1NF, 2NF, and 3NF). It explains how each of these kinds of normalization helps prevent errors and tells why it is sometimes better to leave a database slightly less normalized to improve performance.

  • “Designing Databases to Support Software Applications,” explains how databases fit into the larger context of application design and lifecycle. This explains how later development depends on the underlying database design. It discusses multi-tier architectures that can help decouple the application and database design so there can be at least some changes to either without requiring changes to the other.

  • “Common Design Patterns,” explains some common patterns that are useful in many applications. Some of these techniques include implementing various kinds of relationships among objects, storing hierarchical and network data, recording temporal data, and logging and locking.

  • “Common Design Pitfalls,” explains some common design mistakes that occur in database development. It describes problems that can arise from insufficient planning, incorrect normalization, and obsession with ID fields and performance.

  • “User Needs and Requirements,” walks through the steps required to analyze the users’ problem, define requirements, and create use cases. It describes interviews with fictitious customers that are used to identify the application’s needs and translate them into database requirements.

  • “Building a Data Model,” translates the requirements gathered in the previous into a series of data models that precisely define the database’s structure. This builds user-interface models, entity-relationship diagrams, semantic object models, and relational models to refine the database’s initial design. The final relational models match the structure of a relational database fairly closely so they are easy to implement.

  • “Extracting Business Rules,” identifies the business rules embedded in the relational model. It shows how to extract those rules in order to separate them logically from the database’s structure. This makes the database more robust in the face of future changes to the business rules.

  • “Normalization and Refinement,” refines the relational model by normalizing it. It walks through several versions of the database that are in different normal forms. It then selects the degree of normalization that provides a reasonable tradeoff between robust design and acceptable performance.

  • “Microsoft Access,” explains how to build a database with Microsoft Access 2007. This explains enough to get started and to use Access to build non-trivial databases. You can use other versions of Access to work through this, although the locations of menus, buttons, and other Access features are different in different versions.

  • “MySQL,” explains how to build a database with MySQL. This tells where to download a free version of MySQL. It explains how to use the MySQL Command Line Client as well as some useful graphical tools including MySQL Query Browser and MySQL Workbench.

  • “Introduction to SQL,” provides an introduction to SQL (Structured Query Language). It explains how to use SQL commands to add, insert, update, and delete data. By using SQL, you can help insulate a program from the idiosyncrasies of the particular database product that it uses to store data.

  • “Building Databases with SQL Scripts,” explains how to use SQL scripts to build a database. It explains the advantages of this technique, such as the ability to create scripts to initialize a database before performing tests. It also explains some of the restrictions on this method, such as the fact that the user must create and de...

商品描述(中文翻譯)

本書旨在為IT專業人士和學生提供學習如何設計、分析和理解數據庫的知識。這些內容將對那些希望對數據庫有更好的高層次理解的人有所幫助,例如提案經理、架構師、項目經理,甚至是客戶。這些內容也將對那些實際上需要設計、構建和使用數據庫的人有所幫助,例如數據庫設計師、數據庫管理員和程序員。在許多項目中,這些角色可能重疊,因此同一個人可能負責提案工作、項目管理的一部分以及數據庫的設計和創建。

本書針對各種經驗水平的IT專業人士和學生。它不假設您具有任何先前的數據庫或使用數據庫的程序的經驗,甚至不假設您具有使用計算機的經驗。您真正需要的只是學習的意願和渴望。

本書解釋了數據庫設計。它告訴您如何計劃數據庫的結構,使數據庫具有強大的韌性,能夠抵抗錯誤並且足夠靈活,以應對合理的未來變化。它解釋了如何發現數據庫需求,建立數據模型以研究數據需求,並改進這些模型以提高數據庫的效能。

本書通過詳細的實例來鞏固這些概念,設計了一個現實的數據庫。後面的章節解釋了如何使用兩種常見的數據庫產品進行實際的數據庫構建:Access 2007和MySQL。

本書最後描述了一些您需要了解的主題,以確保數據庫的有效運行,例如數據庫維護和安全性。

本書解釋了數據庫設計。它告訴您如何確定應該放入數據庫的內容以及如何結構化數據庫以獲得最佳結果。

本書不專注於實際創建數據庫。由於不同的數據庫工具的數據庫構建細節不同,為了保持盡可能普遍的實用性,本書不專注於任何特定的數據庫系統。您可以將本書描述的技術應用於您使用的任何數據庫工具,無論是Access、SQL Server、Oracle、MySQL還是其他數據庫產品。

大多數數據庫產品都包含免費版本,您可以用於較小的項目。例如,SQL Server Express Edition、Oracle Express Edition和MySQL Community Server都是免費的。

為了保持數據庫的中立性,本書不假設您使用特定的數據庫,因此您不需要任何特定的軟件或硬件。要完成練習,您真正需要的只是一支鉛筆和一些紙張。如果您喜歡,您可以將解決方案輸入計算機,但您可能會發現使用鉛筆和紙張比使用圖形設計工具繪製圖片更容易,至少在您熟悉數據庫設計並準備選擇計算機化設計工具之前。

“有效數據庫設計的目標”解釋了人們和組織使用數據庫的原因。它解釋了數據庫的目的以及使其有用所必須滿足的條件。它以高層次的一般術語解釋了什麼是好的數據庫和什麼是壞的數據庫。

“數據庫類型”解釋了您可能決定使用的不同類型的數據庫。這些包括平面文件、電子表格、階層式數據庫(XML)、對象數據庫和關聯數據庫。關聯數據庫是最強大且最常用的數據庫形式之一,因此本書將重點放在關聯數據庫上,但重要的是要意識到在某些情況下可能有更合適的替代方案。