Beginner Database Design & SQL Programming Using Microsoft SQL Server 2014
暫譯: 初學者的資料庫設計與 SQL 程式設計:使用 Microsoft SQL Server 2014

Kalman Toth

  • 出版商: CreateSpace Independ
  • 出版日期: 2014-05-01
  • 售價: $1,360
  • 貴賓價: 9.5$1,292
  • 語言: 英文
  • 頁數: 606
  • 裝訂: Paperback
  • ISBN: 1499321732
  • ISBN-13: 9781499321739
  • 相關分類: MSSQLSQL資料庫
  • 海外代購書籍(需單獨結帳)

相關主題

商品描述

Learn Microsoft Database Design & SQL Server 2014 Programming! SQL Server 2014 follows just in 2 years after SQL Server 2012 with very exciting new features. One on the top: in-memory OLTP tables for superior performance. With abundant computer memory, why keep tables on slow disk? Developers across the world face database issues daily. While immersed in procedural languages with loops, RDBMS forces them to think in terms of sets without loops. It takes transition. It takes training. It takes experience. Developers are exposed also to Excel worksheets, or spreadsheets, as they were called in the not so distant past. So, if you know worksheets, how hard can databases be? After all, worksheets look pretty much like database tables, don’t they? The big difference is the connections among well-designed tables. A database is a set of connected tables, which represent entities in the real world. A database can be 100 connected tables or 3000. The connection is very simple: row A in table Alpha has affiliated data with row B in table Beta. However, even with 200 tables and 300 connections (FOREIGN KEY references), it takes a good amount of time to become familiar to the point of having an acceptable working knowledge. "The Cemetery of Computer Languages" is expanding. You can see tombstones like PL/1, Forth, Ada, Pascal, LISP, RPG, APL, SNOBOL, JOVIAL, Algol – the list goes on. For some, the future is in question: PowerBuilder, ColdFusion, FORTRAN and COBOL. On the other hand, SQL is running strong after 3 decades of glorious existence. What is the difference? The basic difference is that SQL can handle large datasets in a consistent manner based on mathematical foundations. You can throw together a computer language easily: assignment statements, looping, if-then conditional, 300 library functions, and voila! Here is the new language: Mars/1, named after the red planet to be fashionable with NASA's new Mars robot. However, can Mars/1 JOIN a table of 1 million rows with a table of 10 million rows in a second? The success of SQL language is so compelling that other technologies are tagged onto it like XML/XQuery, which deals with semi-structured information objects. In SQL you are thinking at a high level. In C# or Java, you are dealing with details – lots of them. That is the major difference. Why is so much of the book dedicated to database design? Why not plunge into SQL coding and eventually the developer will get a hang of the design? Because high-level thinking requires thinking at the database design level. A farmer has six mules. H how do we model it in the database? We design the Farmer and FarmAnimal tables, and then connect them with FarmerID FOREIGN KEY in FarmAnimal referencing the FarmerID PRIMARY KEY in the Farmer table. What is the big deal about it? It looks so simple. In fact, how about just calling the tables Table1 and Table2 to be more generic. Ouch! Meaningful naming is the very basis of good database design. Relational database design is truly simple for simple well-understood models. The challenge starts in modeling complex objects such as financial derivative instruments, airplane passenger scheduling, or a social network website. When you need to add 5 new tables to a 1000 table database and hook them in (define FOREIGN KEY references) correctly, it is a huge challenge. To begin with, some of the five new tables may already be redundant, but you don't know that until you understand what the 1000 tables are really storing. Frequently, learning the application area is the biggest challenge for a developer when starting a new job. The SQL language is simple to program and read even when touching 10 tables. Complexities abound though. The very first one: does the SQL statement touch the right data set – 999 records and 1000 or 998? T-SQL statements are turned into Transact-SQL scripts, stored procedures, and user-defined functions, and trigger server-side database objects.

商品描述(中文翻譯)

學習 Microsoft 資料庫設計與 SQL Server 2014 程式設計!SQL Server 2014 在 SQL Server 2012 之後僅兩年推出,帶來了非常令人興奮的新功能。其中最重要的是:內存 OLTP 表以提供卓越的性能。隨著計算機內存的豐富,為什麼還要將表保留在慢速磁碟上呢?

全球的開發人員每天都面臨資料庫問題。在沉浸於具有迴圈的程序語言中時,關聯式資料庫管理系統(RDBMS)迫使他們以集合的方式思考,而不是使用迴圈。這需要轉變、訓練和經驗。

開發人員也接觸到 Excel 工作表,或在不久的過去被稱為電子表格。因此,如果你知道工作表,資料庫會有多難呢?畢竟,工作表看起來與資料庫表非常相似,不是嗎?

最大的區別在於設計良好的表之間的連接。資料庫是一組相互連接的表,代表現實世界中的實體。一個資料庫可以有 100 個連接的表或 3000 個。連接非常簡單:表 Alpha 中的 A 行與表 Beta 中的 B 行有關聯。然而,即使有 200 個表和 300 個連接(外鍵參考),也需要相當多的時間才能熟悉到具備可接受的工作知識。

「計算機語言的墓地」正在擴展。你可以看到像 PL/1、Forth、Ada、Pascal、LISP、RPG、APL、SNOBOL、JOVIAL、Algol 等墓碑——這個名單還在繼續。對於某些人來說,未來是個問題:PowerBuilder、ColdFusion、FORTRAN 和 COBOL。

另一方面,SQL 在三十年的輝煌存在後依然強勁。這有什麼不同?基本的區別在於 SQL 能夠以一致的方式處理大型數據集,這是基於數學基礎的。你可以輕鬆地組合一種計算機語言:賦值語句、迴圈、if-then 條件、300 個庫函數,然後 voila!這就是新的語言:Mars/1,因為與 NASA 的新火星機器人保持時尚而命名。然而,Mars/1 能否在一秒內將一個包含 100 萬行的表與一個包含 1000 萬行的表進行 JOIN?SQL 語言的成功是如此引人注目,以至於其他技術像 XML/XQuery 被附加到它上面,這些技術處理半結構化的信息對象。在 SQL 中,你是在高層次思考。在 C# 或 Java 中,你則是在處理細節——很多細節。這就是主要的區別。

為什麼這本書有這麼多內容專注於資料庫設計?為什麼不直接進入 SQL 編碼,最終開發人員會掌握設計?因為高層次的思考需要在資料庫設計層面進行思考。一位農夫有六匹騾子。我們該如何在資料庫中建模?我們設計 Farmer 和 FarmAnimal 表,然後用 FarmAnimal 中的 FarmerID 外鍵連接到 Farmer 表中的 FarmerID 主鍵。這有什麼大不了的?看起來如此簡單。事實上,為了更通用,怎麼不直接稱這些表為 Table1 和 Table2 呢?

哎呀!有意義的命名是良好資料庫設計的基礎。關聯式資料庫設計對於簡單且易於理解的模型來說確實很簡單。挑戰在於建模複雜的物件,例如金融衍生工具、飛機乘客排程或社交網路網站。當你需要在一個包含 1000 個表的資料庫中添加 5 個新表並正確連接它們(定義外鍵參考)時,這是一個巨大的挑戰。首先,這五個新表中的某些可能已經是冗餘的,但在你了解這 1000 個表實際存儲的內容之前,你並不知道這一點。對於開發人員來說,學習應用領域通常是開始新工作的最大挑戰。

SQL 語言即使在處理 10 個表時也很簡單編程和閱讀。然而,複雜性卻層出不窮。第一個問題是:SQL 語句是否觸及正確的數據集——999 條記錄和 1000 或 998?T-SQL 語句被轉換為 Transact-SQL 腳本、儲存過程和用戶定義函數,並觸發伺服器端的資料庫物件。

最後瀏覽商品 (20)