构建可扩展数据库应用程序(英文本)

构建可扩展数据库应用程序(英文本)
作 者: Peter Heinckiens
出版社: 科学出版社
丛编项: UML与面向对象设计影印丛书
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: UML
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《构建可扩展数据库应用程序(英文本)》作者简介

内容简介

本书是介绍使用可重用商务模式建立WEB应用程序的综合性、权威性的指导书籍。本书重点介绍了商务模式和数据库模式的建模方法以及集成系统的程序实现。本书可供数据库系统分析与设计人员阅读和参考。

图书目录

Foreword xi

Preface xiii

Acknowledgments xvii

About the Author xix

Part One An Object-Oriented View on Persistence 1

Chapter 1 A New Generation of Software 3

1.1 From Data to Information 3

1.2 Improving Software Quality 4

1.3 Databases Everywhere 4

1.4 To Have and to Hold 5

1.5 Concentrating on the Essence 5

1.6 The Importance of Scalability 6

1.7 Application Program Interfaces 7

1.8 The Road to Follow 7

Chapter 2 The Database Community Today 9

2.1 Walking among Dinosaurs 9

2.2 Database Usage 10

23 Database Users 10

2.4 Designing Database Applications 11

2.5 Relational Databases 12

2.6 Client/Server Systems 15

2.7 Distributed Software 18

2.8 Problems with Traditional Systems 19

2.9 4GL: The Solution? 20

2.10 Object-Oriented Databases 21

2.11 Preserving Openness 23

2.12 Summary 24

Chapter 3 An Object-Oriented View on Database

Applications 25

3.1 Data-Driven Software Design 25

3.2 Supporting Multiple Applications 28

3.3 Object-Oriented Software Design 29

3.4 The Object Model 30

3.5 Example: Student Administration 31

3.6 Business Models and Supporting Multiple

Applications 34

3.7 C++, Java, or Smalltalk: The Ultimate Answer? 35

3.8 Building Reusable Software 38

3.9 Toward Open Client/Server Applications 40

3.10 Object Orientation and Client/Server Design 40

3.11 User Interfaces 40

3.12 Analogy between User Interfaces and Databases 41

3.13 Object-Oriented or Relational? 43

3.14 Persistence from a Different Angle 44

3.15 Persistence and Separation of Concerns 44

3.16 Safety Issues 46

3.17 Summary 46

Part Two An Architecture for Object Persistence 47

Chapter 4 Making Objects Persistent 49

4.1 Introduction 49

4.2 Basic Requirements of a Persistence Framework 50

4.3 Obtaining Scalability 50

4.4 Interfacing with a Relational World: Problems

to Conquer 51

4.5 Abstracting the Database 57

4.6 An Architecture for Object Persistence 58

4.7 Summary 60

Chapter 5 Abstracting the Database 61

5.1 A Persistent Container Class 61

5.2 Basic Functionality of PSet 61

5.3 Implementing the Persistence Architecture 63

5.4 Resolving the Impedance Mismatch 65

5.5 Reading and Writing Objects 71

5.6 Direct Instances of PSet 73

5.7 Searching for Objects 75

5.8 Supporting Multiple Technologies 79

5.9 Summary 81

Chapter 6 Encapsuiating Data Access 83

6.1 Deriving from PSet 83

6.2 Example: Class City 87

6.3 Using Class ~i ty 93

6.4 Member Objects 93

6.5 Derived IM Resolvers 94

6.6 Class Extension 99

6.7 Compile-Time Decoupling 100

6.8 Reuse and Migration to Other

Technologies 104

6.9 Summary 104

Part Three Implementing Business Models 105

Chapter 7 Designing Business Objects 107

7.1 Developing a Simple Invoicing System 107

7.2 Searching Compound Objects 116

7.3 Object ID versus Primary Key 118

7.4 Developing Generic IM Resolvers 121

7.5 An OID-Based Reference Class 126

7.6 Supporting Existing Database Layouts 130

7.7 Versioning 131

7.8 Stability of Program Code against Schema

Changes 134

7.9 Storing Multimedia Objects 135

7.10 Efficiency 139

7.11 Summary 145

Chapter 8 Inheritance of Persistent Objects 147

8.1 Specialization: Using Inheritance for Reuse 147

8.2 Generalization: Using Inheritance for

Polymorphism 152

8.3 Using Generalizations as Member Objects 158

8.4 Inheritance in Relational Database Systems 162

8.5 Designing Reusable Software Components 170

8.6 Summary 173

Chapter 9 Associations 175

9.1 Many-to-One Relationships 175

9.2 Attributes versus Associations 176

9.3 Collections: One-to-Many Relationships 178

9.4 Associations and Reuse 186

9.5 Many-to-Many Relationships 188

9.6 A Closer Look at Associations 189

9.7 Associations as Independent Entities 191

9.8 Referential Integrity 197

9.9 Summary 202

Chapter 10 Transaction Management and Concurrency

Control 203

10.1 The Transaction 203

10.2 The ACID Test 203

10.3 Transaction Management Exceeds the Database

Level 205

10.4 Concurrency Control: Locking 206

10.5 Example: A Transaction Class 211

10.6 Transactions in Relational Database Systems 212

10.7 Using Transactions 214

10.8 Nested Transactions 215

10.9 Distributed Database Systems 217

10.10 Other Levels of Concurrency 219

10.11 Lock Notification through Call-Back Functions 221

10.12 Summary 222

Chapter 11 The Front End 223

11.1 Analogy between User Interfaces and Databases 223

11.2 Separating the User Interface from the Business

Model 223

11.3 What to Put Where 229

11.4 Navigating through Persistent Sets 229

11.5 Summary 234

Chapter 12 Case Study: An Electronic Telephone Directory 235

12.1 Project Definition 235

12.2 Comparing Development Approaches 236

12.3 Designing the User Interface 237

12.4 The Database Model 240

12.5 Designing the Business Model 240

12.6 Comparing the Business Model and the Database

Model 243

12.7 Implementing the Business Objects 244

12.8 Making Classes Persistent 250

12.9 Impedance Mismatch Examples 257

12.10 Implementing the User Interface 263

12.11 Summary 275

Chapter 13 Toward Open Applications 277

13.1 Third-Party Access to Your Application's

Data 278

13.2 Standard Report Generators and Query

Tools 278

13.3 Informationbases 281

13.4 Interoperability with Other Applications 282

13.5 Implementing an Informationbase 285

13.6 Architecture for Next-Generation Software 286

13.7 Summary 289

Chapter 14 Conclusion 291

Appendix DBtools-Based Implementation of Scoop 293

PSet 293

DataSet 294

IM_Resolver 294

Resolving Impedance Mismatch 295

Building the Select Statement 296

References 297

Index 301