دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
دسته بندی: Programming: Libraries API ویرایش: 2 نویسندگان: Edward Sciore سری: ISBN (شابک) : 9783030338350, 9783030338367 ناشر: Springer سال نشر: 2020 تعداد صفحات: 468 زبان: English فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) حجم فایل: 15 مگابایت
کلمات کلیدی مربوط به کتاب طراحی و پیاده سازی پایگاه داده (جاوا ، JDBC).: جاوا، JDBC، dbms، پایگاه داده
در صورت تبدیل فایل کتاب Database Design and Implementation (Java, JDBC). به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب طراحی و پیاده سازی پایگاه داده (جاوا ، JDBC). نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
این کتاب درسی سیستم های پایگاه داده را از دیدگاه یک توسعه دهنده نرم افزار بررسی می کند. این دیدگاه امکان بررسی اینکه چرا سیستم های پایگاه داده اینگونه هستند را ممکن می سازد. البته مهم است که بتوانید پرس و جوها را بنویسید، اما به همان اندازه مهم است که بدانید آنها چگونه پردازش می شوند. ما به عنوان مثال نمی خواهید فقط از JDBC استفاده کنید. ما همچنین می خواهیم بدانیم که چرا API شامل کلاس ها و متدهایی است که انجام می دهد. ما به این احساس نیاز داریم که نوشتن یک حافظه پنهان دیسک یا تسهیلات لاگ چقدر سخت است. و اصلاً درایور پایگاه داده چیست؟ دو فصل اول مروری کوتاه بر سیستم های پایگاه داده و کاربرد آنها ارائه می دهد. فصل 1 هدف و ویژگی های یک سیستم پایگاه داده را مورد بحث قرار می دهد و سیستم های Derby و SimpleDB را معرفی می کند. فصل 2 نحوه نوشتن یک برنامه پایگاه داده با استفاده از جاوا را توضیح می دهد. این مبانی JDBC را ارائه می دهد، که API اساسی برای برنامه های جاوا است که با پایگاه داده تعامل دارند. به نوبه خود، فصل های 3-11 به بررسی اجزای داخلی یک موتور پایگاه داده معمولی می پردازند. هر فصل یک مؤلفه پایگاه داده متفاوتی را پوشش می دهد، که با پایین ترین سطح انتزاع (مدیر دیسک و فایل) شروع می شود و با بالاترین (رابط مشتری JDBC) پایان می یابد. علاوه بر این، فصل مربوطه مسائل اصلی مربوط به مولفه را توضیح می دهد و تصمیمات طراحی ممکن را در نظر می گیرد. در نتیجه، خواننده می تواند دقیقاً ببیند که هر جزء چه خدماتی ارائه می دهد و چگونه با سایر اجزای سیستم تعامل دارد. در پایان این بخش، او شاهد توسعه تدریجی یک سیستم ساده اما کاملاً کاربردی خواهد بود. سپس چهار فصل باقیمانده بر روی پردازش پرس و جو کارآمد تمرکز میکنند و بر تکنیکها و الگوریتمهای پیچیدهای تمرکز میکنند که میتوانند جایگزین انتخابهای طراحی سادهای که قبلا توضیح داده شد، شوند. موضوعات عبارتند از نمایه سازی، مرتب سازی، استفاده هوشمند از بافر و بهینه سازی پرس و جو. این متن برای دوره های کارشناسی ارشد یا دوره های تحصیلات تکمیلی سطح بالا در علوم کامپیوتر در نظر گرفته شده است. فرض بر این است که خواننده با برنامه نویسی پایه جاوا راحت است. مفاهیم پیشرفته جاوا (مانند RMI و JDBC) به طور کامل در متن توضیح داده شده است. فصلهای مربوطه با «خوانشهای پایان فصل» تکمیل میشوند که ایدههای جالب و جهتگیریهای تحقیقاتی را که در متن ذکر نشده، مورد بحث قرار میدهند و ارجاعاتی به صفحات وب، مقالات پژوهشی، کتابهای راهنمای مرجع و کتابهای مرتبط ارائه میدهند. تمرینات مفهومی و برنامه نویسی نیز در پایان هر فصل گنجانده شده است. دانش آموزان می توانند دانش مفهومی خود را با بررسی کد SimpleDB (یک سیستم پایگاه داده ساده اما کاملاً کاربردی که توسط نویسنده ایجاد شده و به صورت آنلاین ارائه شده است) و اصلاح آن اعمال کنند.
This textbook examines database systems from the viewpoint of a software developer. This perspective makes it possible to investigate why database systems are the way they are. It is of course important to be able to write queries, but it is equally important to know how they are processed. We e.g. don’t want to just use JDBC; we also want to know why the API contains the classes and methods that it does. We need a sense of how hard is it to write a disk cache or logging facility. And what exactly is a database driver, anyway? The first two chapters provide a brief overview of database systems and their use. Chapter 1 discusses the purpose and features of a database system and introduces the Derby and SimpleDB systems. Chapter 2 explains how to write a database application using Java. It presents the basics of JDBC, which is the fundamental API for Java programs that interact with a database. In turn, Chapters 3-11 examine the internals of a typical database engine. Each chapter covers a different database component, starting with the lowest level of abstraction (the disk and file manager) and ending with the highest (the JDBC client interface); further, the respective chapter explains the main issues concerning the component, and considers possible design decisions. As a result, the reader can see exactly what services each component provides and how it interacts with the other components in the system. By the end of this part, s/he will have witnessed the gradual development of a simple but completely functional system. The remaining four chapters then focus on efficient query processing, and focus on the sophisticated techniques and algorithms that can replace the simple design choices described earlier. Topics include indexing, sorting, intelligent buffer usage, and query optimization. This text is intended for upper-level undergraduate or beginning graduate courses in Computer Science. It assumes that the reader is comfortable with basic Java programming; advanced Java concepts (such as RMI and JDBC) are fully explained in the text. The respective chapters are complemented by “end-of-chapter readings” that discuss interesting ideas and research directions that went unmentioned in the text, and provide references to relevant web pages, research articles, reference manuals, and books. Conceptual and programming exercises are also included at the end of each chapter. Students can apply their conceptual knowledge by examining the SimpleDB (a simple but fully functional database system created by the author and provided online) code and modifying it.
Preface Organization of the Text Text Prerequisites The SimpleDB Software End-of-Chapter Readings End-of-Chapter Exercises Contents About the Author Chapter 1: Database Systems 1.1 Why a Database System? 1.1.1 Record Storage 1.1.2 Multi-user Access 1.1.3 Dealing with Catastrophe 1.1.4 Memory Management 1.1.5 Usability 1.2 The Derby Database System 1.3 Database Engines 1.4 The SimpleDB Database System 1.5 The SimpleDB Version of SQL 1.6 Chapter Summary 1.7 Suggested Reading 1.8 Exercises Chapter 2: JDBC 2.1 Basic JDBC 2.1.1 Connecting to a Database Engine 2.1.2 Disconnecting from a Database Engine 2.1.3 SQL Exceptions 2.1.4 Executing SQL Statements 2.1.5 Result Sets 2.1.6 Using Query Metadata 2.2 Advanced JDBC 2.2.1 Hiding the Driver 2.2.2 Explicit Transaction Handling 2.2.3 Transaction Isolation Levels 2.2.4 Prepared Statements 2.2.5 Scrollable and Updatable Result Sets 2.2.6 Additional Data Types 2.3 Computing in Java vs. SQL 2.4 Chapter Summary 2.5 Suggested Reading 2.6 Exercises Chapter 3: Disk and File Management 3.1 Persistent Data Storage 3.1.1 Disk Drives 3.1.2 Accessing a Disk Drive 3.1.3 Improving Disk Access Time 3.1.4 Improving Disk Reliability by Mirroring 3.1.5 Improving Disk Reliability by Storing Parity 3.1.6 RAID 3.1.7 Flash Drives 3.2 The Block-Level Interface to the Disk 3.3 The File-Level Interface to the Disk 3.4 The Database System and the OS 3.5 The SimpleDB File Manager 3.5.1 Using the File Manager 3.5.2 Implementing the File Manager 3.6 Chapter Summary 3.7 Suggested Reading 3.8 Exercises Chapter 4: Memory Management 4.1 Two Principles of Database Memory Management 4.2 Managing Log Information 4.3 The SimpleDB Log Manager 4.3.1 The API for the Log Manager 4.3.2 Implementing the Log Manager 4.4 Managing User Data 4.4.1 The Buffer Manager 4.4.2 Buffers 4.4.3 Buffer Replacement Strategies 4.5 The SimpleDB Buffer Manager 4.5.1 An API for the Buffer Manager 4.5.2 Implementing the Buffer Manager 4.6 Chapter Summary 4.7 Suggested Reading 4.8 Exercises Chapter 5: Transaction Management 5.1 Transactions 5.2 Using Transactions in SimpleDB 5.3 Recovery Management 5.3.1 Log Records 5.3.2 Rollback 5.3.3 Recovery 5.3.4 Undo-Only and Redo-Only Recovery 5.3.4.1 Undo-Only Recovery 5.3.4.2 Redo-Only Recovery 5.3.5 Write-Ahead Logging 5.3.6 Quiescent Checkpointing 5.3.7 Nonquiescent Checkpointing 5.3.8 Data Item Granularity 5.3.9 The SimpleDB Recovery Manager 5.3.9.1 Log Records 5.3.9.2 Rollback and Recover 5.4 Concurrency Management 5.4.1 Serializable Schedules 5.4.2 The Lock Table 5.4.3 The Lock Protocol 5.4.3.1 Serializability Problems 5.4.3.2 Reading Uncommitted Data 5.4.4 Deadlock 5.4.5 File-Level Conflicts and Phantoms 5.4.6 Multiversion Locking 5.4.6.1 The Principle of Multiversion Locking 5.4.6.2 Implementing Multiversion Locking 5.4.7 Transaction Isolation Levels 5.4.8 Data Item Granularity 5.4.9 The SimpleDB Concurrency Manager 5.4.9.1 The Class LockTable 5.4.9.2 The Class ConcurrencyMgr 5.5 Implementing SimpleDB Transactions 5.6 Chapter Summary 5.7 Suggested Reading 5.8 Exercises Chapter 6: Record Management 6.1 Designing a Record Manager 6.1.1 Spanned Versus Unspanned Records 6.1.2 Homogeneous Versus Nonhomogeneous Files 6.1.3 Fixed-Length Versus Variable-Length Fields 6.1.4 Placing Fields in Records 6.2 Implementing a File of Records 6.2.1 A Straightforward Implementation 6.2.2 Implementing Variable-Length Fields 6.2.3 Implementing Spanned Records 6.2.4 Implementing Nonhomogeneous Records 6.3 SimpleDB Record Pages 6.3.1 Managing Record Information 6.3.2 Implementing the Schema and Layout 6.3.3 Managing the Records in a Page 6.3.4 Implementing Record Pages 6.4 SimpleDB Table Scans 6.4.1 Table Scans 6.4.2 Implementing Table Scans 6.5 Chapter Summary 6.6 Suggested Reading 6.7 Exercises Chapter 7: Metadata Management 7.1 The Metadata Manager 7.2 Table Metadata 7.3 View Metadata 7.4 Statistical Metadata 7.5 Index Metadata 7.6 Implementing the Metadata Manager 7.7 Chapter Summary 7.8 Suggested Reading 7.9 Exercises Chapter 8: Query Processing 8.1 Relational Algebra 8.1.1 Select 8.1.2 Project 8.1.3 Product 8.2 Scans 8.3 Update Scans 8.4 Implementing Scans 8.4.1 Select Scans 8.4.2 Project Scans 8.4.3 Product Scans 8.5 Pipelined Query Processing 8.6 Predicates 8.7 Chapter Summary 8.8 Suggested Reading 8.9 Exercises Chapter 9: Parsing 9.1 Syntax Versus Semantics 9.2 Lexical Analysis 9.3 The SimpleDB Lexical Analyzer 9.4 Grammars 9.5 Recursive-Descent Parsers 9.6 Adding Actions to the Parser 9.6.1 Parsing Predicates and Expressions 9.6.2 Parsing Queries 9.6.3 Parsing Updates 9.6.4 Parsing Insertions 9.6.5 Parsing Deletions 9.6.6 Parsing Modifications 9.6.7 Parsing Table, View, and Index Creation 9.7 Chapter Summary 9.8 Suggested Reading 9.9 Exercises Chapter 10: Planning 10.1 Verification 10.2 The Cost of Evaluating a Query Tree 10.2.1 The Cost of a Table Scan 10.2.2 The Cost of a Select Scan 10.2.3 The Cost of a Project Scan 10.2.4 The Cost of a Product Scan 10.2.5 A Concrete Example 10.3 Plans 10.4 Query Planning 10.4.1 The SimpleDB Query Planning Algorithm 10.4.2 Implementing the Query Planning Algorithm 10.5 Update Planning 10.5.1 Delete and Modify Planning 10.5.2 Insert Planning 10.5.3 Planning for Table, View, and Index Creation 10.6 The SimpleDB Planner 10.7 Chapter Summary 10.8 Suggested Reading 10.9 Exercises Chapter 11: JDBC Interfaces 11.1 The SimpleDB API 11.2 Embedded JDBC 11.3 Remote Method Invocation 11.3.1 Remote Interfaces 11.3.2 The RMI Registry 11.3.3 Thread Issues 11.4 Implementing the Remote Interfaces 11.5 Implementing the JDBC Interfaces 11.6 Chapter Summary 11.7 Suggested Reading 11.8 Exercises Chapter 12: Indexing 12.1 The Value of Indexing 12.2 SimpleDB Indexes 12.3 Static Hash Indexes 12.3.1 Static Hashing 12.3.2 Implementing Static Hashing 12.4 Extendable Hash Indexes 12.4.1 Sharing Index Blocks 12.4.2 Compacting the Bucket Directory 12.5 B-Tree Indexes 12.5.1 How to Improve a Dictionary 12.5.2 The B-Tree Directory 12.5.3 A Directory Tree 12.5.4 Inserting Records 12.5.5 Duplicate Datavals 12.5.6 Implementing B-Tree Pages 12.5.7 Implementing the B-Tree Index 12.6 Index-Aware Operator Implementations 12.6.1 An Indexed Implementation of Select 12.6.2 An Indexed Implementation of Join 12.7 Index Update Planning 12.8 Chapter Summary 12.9 Suggested Reading 12.10 Exercises Chapter 13: Materialization and Sorting 13.1 The Value of Materialization 13.2 Temporary Tables 13.3 Materialization 13.3.1 An Example of Materialization 13.3.2 The Cost of Materialization 13.3.3 Implementing the Materialize Operator 13.4 Sorting 13.4.1 Why Sort Needs to Materialize Its Input 13.4.2 The Basic Mergesort Algorithm 13.4.3 Improving the Mergesort Algorithm 13.4.4 The Cost of Mergesort 13.4.5 Implementing Mergesort 13.5 Grouping and Aggregation 13.6 Merge Joins 13.6.1 An Example of Mergejoin 13.6.2 Implementing Mergejoin 13.7 Chapter Summary 13.8 Suggested Reading 13.9 Exercises Chapter 14: Effective Buffer Utilization 14.1 Buffer Usage in Query Plans 14.2 Multibuffer Sorting 14.3 Multibuffer Product 14.4 Determining Buffer Allocation 14.5 Implementing Multibuffer Sorting 14.6 Implementing Multibuffer Product 14.7 Hash Joins 14.7.1 The Hashjoin Algorithm 14.7.2 An Example of Hashjoin 14.7.3 Cost Analysis 14.8 Comparing the Join Algorithms 14.9 Chapter Summary 14.10 Suggested Reading 14.11 Exercises Chapter 15: Query Optimization 15.1 Equivalent Query Trees 15.1.1 Rearranging Products 15.1.2 Splitting Selections 15.1.3 Moving Selections Within a Tree 15.1.4 Identifying Join Operators 15.1.5 Adding Projections 15.2 The Need for Query Optimization 15.3 The Structure of a Query Optimizer 15.4 Finding the Most Promising Query Tree 15.4.1 The Cost of a Tree 15.4.2 Pushing Select Nodes Down the Tree 15.4.3 Replacing Select-Product Nodes by Join 15.4.4 Using Left-Deep Query Trees 15.4.5 Choosing a Join Order Heuristically 15.4.6 Choosing a Join Order by Exhaustive Enumeration 15.5 Finding the Most Efficient Plan 15.6 Combining the Two Stages of Optimization 15.6.1 The Heuristic-Based SimpleDB Optimizer 15.6.2 Selinger-Style Optimization 15.7 Merging Query Blocks 15.8 Chapter Summary 15.9 Suggested Reading 15.10 Exercises Index