数据结构外文翻译
- 格式:doc
- 大小:55.50 KB
- 文档页数:16
MVC框架中英⽂对照外⽂翻译⽂献中英⽂对照外⽂翻译⽂献(⽂档含英⽂原⽂和中⽂翻译)译⽂:Web 2.0下的Spring MVC框架摘要 - 当要建⽴丰富⽤户体验的WEB应⽤时,有⼤量的WED应⽤框架可以使⽤,却很少有该选择哪⼀种的指导。
WEB 2.0应⽤允许个体管理他们⾃⼰的在线⽹页,并能与其他在线⽤户和服务器共享。
这样分享需要访问控制器来实现。
然⽽,现有的访问控制器解决⽅案不是令⼈很满意。
因为在开放且由⽤户主导的WEB环境下,它满⾜不了⽤户的功能需求。
MVC框架是在所有的WEB开发框架中最受欢迎的。
模型-视图-控制器(MVC)是⼀种软件架构,如今被认为是⼀种体系结构在软件⼯程模式中使⽤。
该模式从⽤户界⾯(输⼊和演⽰)分离出了“领域逻辑”(基于⽤户的应⽤逻辑),它允许独⽴地开发,测试和维护每个分离的部分。
模型-视图-控制器(MVC)模型创建的应⽤分离为不同的层次应⽤,同时在每两者之间建⽴松散的耦合。
关键字 - Spring MVC, 结构, XStudio, SOA, 控制器I.绪论如何确切地定义⼀个⽹站为“WEB 2.0”的呢?关于这有着许多不同见解,使它很难精确地下⼀个确切的定论。
但当我们将所有的WEB开发框架过⼀遍之后它就会变得清晰了。
各种基于WEB开发的架构如下:●Ntier架构(Ntier Architecture)在软件⼯程中,多层架构(常被称为n-tier架构)是⼀种表⽰层,应⽤处理层和数据管理层在逻辑上分开处理的客户端-服务器架构。
例如,⼀个应⽤在⽤户与数据库之间使⽤中间件提供数据请求服务就⽤到了多层体系结构。
最为⼴泛应⽤的多层体系结构是三层架构。
N-tier 应⽤架构为开发者提供了⽤来创建了⼀个灵活且可复⽤的模型。
通过打破应⽤层次,开发者只需修改或添加⼀个特定的层,⽽不是要去重写⼀遍整个应⽤。
它需要有⼀个表⽰层,⼀个业务层或者数据访问层和⼀个数据层。
层(layer)和层(tier)之间的概念常常是可以互换的。
数据结构英语作文加翻译Title: The Importance of Data Structures in Computer Science。
Data structures play a crucial role in the field of computer science. They are fundamental concepts that enable efficient storage, retrieval, and manipulation of data in computer programs. In this essay, we will explore the significance of data structures, their types, and their applications in various domains.Firstly, let us delve into the importance of data structures. In computer science, data is the foundation of every software application. However, raw data alone is not sufficient; it needs to be organized in a structured manner to be processed efficiently. Here comes the role of data structures. They provide a way to organize and store datain such a way that it can be easily accessed and manipulated. By choosing appropriate data structures, programmers can optimize the performance of theiralgorithms, leading to faster execution times and more efficient resource utilization.There are several types of data structures, each with its unique characteristics and use cases. One of the most basic data structures is the array, which stores elements of the same type in contiguous memory locations. Arrays are widely used due to their simplicity and constant-time access to elements. Another commonly used data structure is the linked list, which consists of nodes where each node contains a data field and a reference (or pointer) to the next node in the sequence. Linked lists are efficient for insertion and deletion operations but may have slower access times compared to arrays.Apart from arrays and linked lists, there are more complex data structures such as stacks, queues, trees, and graphs. Stacks follow the Last-In-First-Out (LIFO)principle and are often used in algorithms involving function calls, expression evaluation, and backtracking. Queues, on the other hand, adhere to the First-In-First-Out (FIFO) principle and are commonly used in scenarios liketask scheduling, job processing, and breadth-first search algorithms. Trees are hierarchical data structures consisting of nodes connected by edges, with a root node at the top and leaf nodes at the bottom. They are utilized in applications like hierarchical data storage, binary search trees, and decision trees. Graphs are collections of nodes (vertices) and edges connecting these nodes, and they find applications in various fields such as social networks, routing algorithms, and network flow optimization.Now, let's discuss the applications of data structures across different domains. In software development, data structures are extensively used in designing databases, implementing algorithms, and building user interfaces. For example, databases rely on data structures like B-trees and hash tables for efficient storage and retrieval of information. In algorithm design, efficient data structures are crucial for optimizing time and space complexity. Many popular algorithms such as sorting, searching, and graph traversal algorithms heavily rely on data structures for their implementation. Moreover, in user interface development, data structures like trees and graphs are usedto represent the hierarchical structure of UI components and their relationships.In addition to software development, data structures find applications in fields like artificial intelligence, bioinformatics, and computational biology. In artificial intelligence, data structures are used to represent knowledge, make decisions, and solve complex problems. For instance, knowledge graphs are used to represent relationships between entities in a knowledge base, while decision trees are employed in decision-making processes. In bioinformatics and computational biology, data structures are used to store and analyze biological data such as DNA sequences, protein structures, and metabolic pathways. Efficient data structures and algorithms are essential for tasks like sequence alignment, genome assembly, and protein folding prediction.In conclusion, data structures are the building blocks of computer science. They enable efficient storage, retrieval, and manipulation of data in computer programs, leading to faster execution times and more efficientresource utilization. With various types of data structures available and their applications spanning across different domains, it is evident that a solid understanding of data structures is essential for every computer scientist and software developer. By mastering data structures and their applications, programmers can write more efficient and scalable software solutions, thereby advancing the field of computer science as a whole.(翻译)。
数据结构专业英语词汇汇总
- Data structure: 数据结构
- Array: 数组
- Linked list: 链表
- Stack: 栈
- Queue: 队列
- Binary tree: 二叉树
- AVL tree: AVL树 (一种自平衡二叉查找树)
- Red-black tree: 红黑树 (一种自平衡二叉查找树)
- Hash table: 哈希表
- Graph: 图
- Vertex: 顶点
- Edge: 边
- Adjacency list: 邻接表 (一种表示图的数据结构)
- Adjacency matrix: 邻接矩阵 (一种表示图的数据结构) - Heap: 堆
- Binary heap: 二叉堆 (一种特殊的堆数据结构)
- Priority queue: 优先队列 (用堆实现的一种队列)
- Trie: 字典树 (一种用于快速检索的树形数据结构)
- Big O notation: 大O符号 (一种表示算法时间复杂度的记号) - Sorting algorithm: 排序算法
- Searching algorithm: 算法
- Abstract data type (ADT): 抽象数据类型
- Hashing: 哈希函数的计算过程
- Collision: 哈希冲突 (发生在两个不同的键值被映射到相同的哈希桶时)。
毕业设计(论文)外文文献翻译文献、资料中文题目:MVC设计模式文献、资料英文题目:THE MVC-WEB DESIGN PATTERN文献、资料来源:文献、资料发表(出版)日期:院(部):专业:班级:姓名:学号:指导教师:翻译日期: 2017.02.14MVC设计模式Ralph F. Grove计算机科学,詹姆斯麦迪逊大学,哈里森堡,美国弗吉尼亚州***************Eray Ozkan计算机科学,詹姆斯麦迪逊大学,哈里森堡,美国弗吉尼亚州*****************关键字:web,web框架,设计模式,模型-视图-控制器模式摘要:模型-视图-控制器模式被引用为许多web开发框架的基础架构。
然而,用于web开发的MVC 版本随着原来的Smalltalk的MVC的演变而发生了一些改变。
本文介绍了对这些变化的分析,并提出了一种独立的Web-MVC模式,用于更准确的描述MVC是如何在web框架中实现的。
1.介绍模型-视图-控制器(Modle-View-Controller,MVC)设计模式被一些web应用框架作为基础架构,例如,Rails,以及Struts。
MVC最初是在施乐帕克研究中心(Goldberg和Robson,1985)开发的Smalltalk编程环境中实现的。
为了适应web框架,MVC已经演变成了另一种方式,最终成为一种不同于其他任何设计模式,也与原始的Smaltalk完全不同的模式的实现。
本文的第一个目标是介绍MVC设计模式,其中包括它的原始形态(第2节)以及现代众所周知的用于web应用框架的变更后的形态(第3节)。
第二个目标是对这个模式演变后发生的变化进行评估,同时呈现演变后版本的有效性(第3节)。
最后,我们提出了一个标准的MVC-Web设计模式的描述,用于反映目前在web框架中模式的使用,同时又能保持原始的MVC中令人满意的特性。
基于MVC的web应用框架的修订版本已经被提出了(Chun, Yanhua, 和Hanhong, 2003) (Barrett和Delaney, 2004)。
毕业设计(论文)外文资料翻译系(院):机械工程学院专业:机械设计制造及其自动化姓名:学号:1091101630外文出处:Computer-Aided Design & Applications,V ol. 2, Nos. 1-4, 2005, pp95-104附件: 1.外文资料翻译译文;2.外文原文。
附件1:外文资料翻译译文多轴数控加工仿真的自适应固体香港T. Yau1, Lee S. Tsou2 and Y u C. Tong31中正大学,imehty@.tw2中正大学,lstsou@.tw3 中正大学,pu@.tw摘要:如果在一个复杂的表面的加工中,通常会产生大量的线性NC段来近似精确的表面。
如果没有发现,直到切割不准确的NC代码,则会浪费时间和昂贵的材料。
然而,准确和视图独立验证的多坐标数控加工仍然是一个挑战。
本文着重介绍了利用自适应八叉树建立一个可靠的多轴模拟程序验证模拟切割期间和之后的路线和工件的外观。
体素模型的自适应八叉树数据结构是用来加工工件与指定的分辨率。
隐函数的使用刀具接触点的速度和准确性的检验,以代表各种刀具的几何形状。
它允许用户做切割模型和原始的CAD模型的误差分析和比较。
在加工前运行数控机床,以避免浪费材料,提高加工精度,它也可以验证NC代码的正确性。
关键词:数控仿真加工,固体素模型,自适应1.介绍NC加工是一个基本的和重要的用于生产的机械零件的制造过程。
在理想的情况下,数控机床将运行在无人值守模式。
使用NC仿真和验证是必不可少的,如果要运行的程序有信心在无人操作。
因此,它是非常重要的,在执行之前,以保证NC路径的正确性。
从文学来说,数控仿真主要分为三种主要方法,如下所述。
第一种方法使用直接布尔十字路口实体模型来计算材料去除量在加工过程。
这种方法在理论上能够提供精确的数控加工仿真,但使用实体建模方法的问题是,它是计算昂贵。
使用构造实体几何仿真的成本刀具运动的O(N 4)的数量的四次幂成正比。
DBA词典:数据库设计常用词汇中英文对照表1. Access method(访问方法):此步骤包括从文件中存储和检索记录。
2. Alias(别名):某属性的另一个名字。
在SQL中,可以用别名替换表名。
3. Alternate keys(备用键,ER/关系模型):在实体/表中没有被选为主健的候选键。
4. Anomalies(异常)参见更新异常(update anomalies)5. Application design(应用程序设计):数据库应用程序生命周期的一个阶段,包括设计用户界面以及使用和处理数据库的应用程序。
6. Attribute(属性)(关系模型):属性是关系中命名的列。
7. Attribute(属性)(ER模型):实体或关系中的一个性质。
8. Attribute inheritance(属性继承):子类成员可以拥有其特有的属性,并且继承那些与超类有关的属性的过程。
9. Base table(基本表):一个命名的表,其记录物理的存储在数据库中。
10. Binary relationship(二元关系):一个ER术语,用于描述两个实体间的关系。
例如,panch Has Staff。
11. Bottom-up approach(自底向上方法):用于数据库设计,一种设计方法学,他从标识每个设计组建开始,然后将这些组件聚合成一个大的单元。
在数据库设计中,可以从表示属性开始底层设计,然后将这些属性组合在一起构成代表实体和关系的表。
12. Business rules(业务规则):由用户或数据库的管理者指定的附加规则。
13. Candidate key(候选键,ER关系模型):仅包含唯一标识实体所必须得最小数量的属性/列的超键。
14. Cardinality(基数):描述每个参与实体的可能的关系数目。
15. Centralized approach(集中化方法,用于数据库设计):将每个用户试图的需求合并成新数据库应用程序的一个需求集合16. Chasm trap(深坑陷阱):假设实体间存在一根,但某些实体间不存在通路。
英文文献Object persistence and JavaBy Arsalan Saljoughy, , 05/01/97Object durability, or persistence, is the term you often hear used in conjunction with the issue of storing objects in databases. Persistence is expected to operate with transactional integrity, and as such it is subject to strict conditions. (See the Resources section of this article for more information on transaction processing.) In contrast, language services offered through standard language libraries and packages are often free from transactional constraints.As we'll see in this article, evidence suggests that simple Java persistence will likely stem from the language itself, while sophisticated database functionality will be offered by database vendors.No object is an islandIn the real world, you rarely find an object that lacks relations to other objects. Objects are components of object models. The issue of object durability transcends the issue of object model durability and distribution once we make the observation that objects are interconnected by virtue of their relations to one another.The relational approach to data storage tends to aggregate data by type. Rows in a table represent the physical aggregate of objects of the same type on disk. The relationships among objects are then represented by keys that are shared across many tables. Although through database organization, relational databases sometimes allow tables that are likely to be used together to be co-located (or clustered) in the same logical partition, such as a database segment, they have no mechanism to store object relationships in the database. Hence, in order to construct an object model, these relationships are constructed from the existing keys at run time in a process referred to as table joins. This is the same well-known property of the relational databases called data independence. Nearly all variants of object databases offer some mechanism to enhance the performance of a system that involves complex object relationships over traditional relational databases.To query or to navigate?In storing objects on disk, we are faced with the choice of co-locating related objects to better accommodate navigational access, or to store objects in table-like collections that aggregate objects by type to facilitate predicate-based access (queries), or both. The co-location of objects in persistent storage is an area where relational and object-oriented databases widely differ. The choice of the query language is another area of consideration. Structured Query Language (SQL) and extensions of it have provided relational systems with a predicate-basedaccess mechanism. Object Query Language (OQL) is an object variant of SQL, standardized by ODMG, but support for this language is currently scant. Polymorphic methods offer unprecedented elegance in constructing a semantic query for a collection of objects. For example, imagine a polymorphic behavior for acccount called isInGoodStanding. It may return the Boolean true for all accounts in good standing, and false otherwise. Now imagine the elegance of querying the collection of accounts, where inGoodStanding is implemented differently based on business rules, for all accounts in good standing. It may look something like:setOfGoodCustomers = setOfAccounts.query(account.inGoodStanding());While several of the existing object databases are capable of processing such a query style in C++ and Smalltalk, it is difficult for them to do so for larger (say, 500+ gigabytes) collections and more complex query expressions. Several of the relational database companies, such as Oracle and Informix, will soon offer other, SQL-based syntax to achieve the same result. Persistence and typeAn object-oriented language aficionado would say persistence and type are orthogonal properties of an object; that is, persistent and transient objects of the same type can be identical because one property should not influence the other. The alternative view holds that persistence is a behavior supported only by persistable objects and certain behaviors may apply only to persistent objects. The latter approach calls for methods that instruct persistable objects to store and retrieve themselves from persistent storage, while the former affords the application a seamless view of the entire object model -- often by extending the virtual memory system. Canonicalization and language independenceObjects of the same type in a language should be stored in persistent storage with the same layout, regardless of the order in which their interfaces appear. The processes of transforming an object layout to this common format are collectively known as canonicalization of object representation. In compiled languages with static typing (not Java) objects written in the same language, but compiled under different systems, should be identically represented in persistent storage.An extension of canonicalization addresses language-independent object representation. If objects can be represented in a language-independent fashion, it will be possible for different representations of the same object to share the same persistent storage.One mechanism to accomplish this task is to introduce an additional level of indirection through an interface definition language (IDL). Object database interfaces can be made through the IDL and the corresponding data structures. The downside of IDL style bindings is two fold: First, the extra level of indirection always requires an additional level of translation, which impacts the overall performance of the system; second, it limits use of database services that are unique to particular vendors and that might be valuable to application developers.A similar mechanism is to support object services through an extension of the SQL. Relational database vendors and smaller object/relational vendors are proponents of this approach; however, how successful these companies will be in shaping the framework for object storage remains to be seen.But the question remains: Is object persistence part of the object's behavior or is it an external service offered to objects via separate interfaces? How about collections of objects and methods for querying them? Relational, extended relational, and object/relational approaches tend to advocate a separation between language, while object databases -- and the Java language itself -- see persistence as intrinsic to the language:Native Java persistence via serializationObject serialization is the Java language-specific mechanism for the storage and retrieval of Java objects and primitives to streams. It is worthy to note that although commercial third-party libraries for serializing C++ objects have been around for some time, C++ has never offered a native mechanism for object serialization. Here's how to use Java's serialization: // Writing "foo" to a stream (for example, a file)// Step 1. Create an output stream// that is, create bucket to receive the bytesFileOutputStream out = new FileOutputStream("fooFile");// Step 2. Create ObjectOutputStream// that is, create a hose and put its head in the bucketObjectOutputStream os = new ObjectOutputStream(out)// Step 3. Write a string and an object to the stream// that is, let the stream flow into the bucketos.writeObject("foo");os.writeObject(new Foo());// Step 4. Flush the data to its destinationos.flush();The Writeobject method serializes foo and its transitive closure -- that is, all objects that can be referenced from foo within the graph. Within the stream only one copy of the serialized object exists. Other references to the objects are stored as object handles to save space and avoid circular references. The serialized object starts with the class followed by the fields of each class in the inheritance hierarchy.// Reading an object from a stream// Step 1. Create an input streamFileInputStream in = new FileInputStream("fooFile");// Step 2. Create an object input streamObjectInputStream ins = new ObjectInputStream(in);// Step 3. Got to know what you are readingString fooString = (String)ins.readObject();Foo foo = (Foo)s.readObject();Object serialization and securityBy default, serialization writes and reads non-static and non-transient fields from the stream. This characteristic can be used as a security mechanism by declaring fields that may not be serialized as private transient. If a class may not be serialized at all, writeObject and readObject methods should be implemented to throw NoAccessException.Persistence with transactional integrity: Introducing JDBCModeled after X/Open's SQL CLI (Client Level Interface) and Microsoft's ODBC abstractions, Java database connectivity (JDBC) aims to provide a database connectivity mechanism that is independent of the underlying database management system (DBMS).To become JDBC-compliant, drivers need to support at least the ANSI SQL-2 entry-level API, which gives third-party tool vendors and applications enough flexibility for database access.JDBC is designed to be consistent with the rest of the Java system. Vendors are encouraged to write an API that is more strongly typed than ODBC, which affords greater static type-checking at compile time.Here's a description of the most important JDBC interfaces:java.sql.Driver.Manager handles the loading of drivers and provides support for new database connections.java.sql.Connection represents a connection to a particular database.java.sql.Statement acts as a container for executing an SQL statement on a given connection.java.sql.ResultSet controls access to the result set.You can implement a JDBC driver in several ways. The simplest would be to build the driver as a bridge to ODBC. This approach is best suited for tools and applications that do not require high performance. A more extensible design would introduce an extra level of indirection to the DBMS server by providing a JDBC network driver that accesses the DBMS server through a published protocol. The most efficient driver, however, would directly access the DBMS proprietary API.Object databases and Java persistenceA number of ongoing projects in the industry offer Java persistence at the object level. However, as of this writing, Object Design's PSE (Persistent Storage Engine) and PSE Pro are the only fully Java-based, object-oriented database packages available (at least, that I am aware of). Check the Resources section for more information on PSE and PSE Pro.Java development has led to a departure from the traditional development paradigm for software vendors, most notably in the development process timeline. For example, PSE and PSE Pro are developed in a heterogeneous environment. And because there isn't a linking step in the development process, developers have been able to create various functional components independent of each other, which results in better, more reliable object-oriented code.PSE Pro has the ability to recover a corrupted database from an aborted transaction caused by system failure. The classes that are responsible for this added functionality are not present in the PSE release. No other differences exist between the two products. These products are what we call "dribbleware" -- software releases that enhance their functionality by plugging in new components. In the not-so-distant future, the concept of purchasing large, monolithic software would become a thing of the past. The new business environment in cyberspace, together with Java computing, enable users to purchase only those parts of the object model (object graph) they need, resulting in more compact end products.PSE works by post-processing and annotating class files after they have been created by the developer. From PSE's point of view, classes in an object graph are either persistent-capable or persistent-aware. Persistent-capable classes may persist themselves while persistent-aware classes can operate on persistent objects. This distinction is necessary because persistence may not be a desired behavior for certain classes. The class file post-processor makes the following modifications to classes:Modifies the class to inherit from odi.Persistent or odi.util.HashPersistent.Defines the initializeContents() method to load real values into hollow instances of your Persistent subclass. ObjectStore provides methods on the GenericObject class that retrieves each Field type.Be sure to call the correct methods for the fields in your persistent object. A separate method is available for obtaining each type of Field object. ObjectStore calls the initializeContents() method as needed. The method signature is:public void initializeContents(GenericObject genObj)Defines the flushContents() method to copy values from a modified instance (active persistent object) back to the database. ObjectStore provides methods on the GenericObject Be sure to call the correct methods for the fields in your persistent object. A separate method is available for setting each type of Field object. ObjectStore calls the flushContents() method as needed. The method signature is:public void flushContents(GenericObject genObj)Defines the clearContents() method to reset the values of an instance to the default values. This method must set all reference fields that referred to persistent objects to null. ObjectStore calls this method as needed. The method signature is:public void clearContents()Modifies the methods that reference non-static fields to call the Persistent.fetch() and Persistent.dirty() methods as needed. These methods must be called before the contents of persistent objects can be accessed or modified, respectively. While this step is not mandatory, it does provide a systematic way to ensure that the fetch() or dirty() method is called prior to accessing or updating object content.Defines a class that provides schema information about the persistence-capable class.All these steps can be completed either manually or automatically.PSE's transaction semanticYou old-time users of ObjectStore probably will find the database and transaction semantics familiar. There is a system-wide ObjectStore object that initializes the environment and is responsible for system-wide parameters. The Database class offers methods (such as create, open, and close), and the Transaction class has methods to begin, abort, or commit transactions. As with serialization, you need to find an entry point into the object graph. The getRoot and setRoot methods of the Database class serve this function. I think a few examples would be helpful here. This first snippet shows how to initialize ObjectStore:ObjectStore.initialize(serverName, null);try {db = Database.open(dbName, Database.openUpdate);} catch(DatabaseNotFoundException exception) {db = Database.create(dbName, 0664);}This next snippet shows how to start and commit a transaction:Transaction transaction = Transaction.begin(Transaction.update);try {foo = (Foo)db.getRoot("fooHead");} catch(DatabaseRootNotFoundException exception) {db.createRoot("fooHead", new Foo());}mit();The three classes specified above -- Transaction, Database, and ObjectStore -- are fundamental classes for ObjectStore. PSE 1.0 does not support nested transactions, backup and recovery, clustering, large databases, object security beyond what is available in the language, and any type of distribution. What is exciting, however, is all of this functionality will be incrementally added to the same foundation as the product matures.About the authorArsalan Saljoughy is asystems engineer specializing in object technology at Sun Microsystems. He earned his M.S. in mathematics from SUNY at Albany, and subsequently was a research fellow at the University of Berlin. Before joining Sun, he worked as a developer and as an IT consultant to financial services companies.ConclusionAlthough it is still too early to establish which methodology for object persistence in general and Java persistence in particular will be dominant in the future, it is safe to assume that a myriad of such styles will co-exist. The shift of storing objects as objects without disassembly into rows and columns is sure to be slow, but it will happen. In the meantime, we are more likely to see object databases better utilized in advanced engineering and telecommunications applications than in banking and back-office financial applications.英文翻译对象持久化和Java-深入的了解面向对象语言中的对象持久的讨论Arsalan Saljoughy,, 05/01/97对象持久化这个术语你常常会和数据存储一起听到。
DatabaseA database consists of an organized collection of data for one or more uses, typically in digital form. One way of classifying databases involves the type of their contents, for example: bibliographic, document-text, statistical. Digital databases are managed using database management systems, which store database contents, allowing data creation and maintenance, and search and other access. ArchitectureDatabase architecture consists of three levels, external, conceptual and internal. Clearly separating the three levels was a major feature of the relational database model that dominates 21st century databases.The external level defines how users understand the organization of the data. A single database can have any number of views at the external level. The internal level defines how the data is physically stored and processed by the computing system. Internal architecture is concerned with cost, performance, scalability and other operational matters. The conceptual is a level of indirection between internal and external. It provides a common view of the database that is uncomplicated by details of how the data is stored or managed, and that can unify the various external views into a coherent whole.Database management systemsA database management system (DBMS) consists of software that operates databases, providing storage, access, security, backup and other facilities. Database management systems can be categorized according to the database model that they support, such as relational or XML, the type(s) of computer they support, such as a server cluster or a mobile phone, the query language(s) that access the database, such as SQL or XQuery, performance trade-offs, such as maximum scale or maximum speed or others. Some DBMS cover more than one entry in these categories, e.g., supporting multiple query languages.Components of DBMSMost DBMS as of 2009[update] implement a relational model. Other DBMS systems, such as Object DBMS, offer specific features for more specialized requirements. Their components are similar, but not identical.RDBMS components•Sublanguages—Relational DBMS (RDBMS) include Data Definition Language (DDL) for defining the structure of the database, Data Control Language (DCL) for defining security/access controls, and Data Manipulation Language (DML) for querying and updating data.•Interface drivers—These drivers are code libraries that provide methods to prepare statements, execute statements, fetch results, etc. Examples include ODBC, JDBC, MySQL/PHP, FireBird/Python.•SQL engine—This component interprets and executes the DDL, DCL, and DML statements.It includes three major components (compiler, optimizer, and executor).•Transaction engine—Ensures that multiple SQL statements either succeed or fail as a group, according to application dictates.•Relational engine—Relational objects such as Table, Index, and Referential integrity constraints are implemented in this component.•Storage engine—This component stores and retrieves data from secondary storage, as well asmanaging transaction commit and rollback, backup and recovery, etc.ODBMS componentsObject DBMS (ODBMS) has transaction and storage components that are analogous to those in an RDBMS. Some ODBMS handle DDL, DCL and update tasks differently. Instead of using sublanguages, they provide APIs for these purposes. They typically include a sublanguage and accompanying engine for processing queries with interpretive statements analogous to but not the same as SQL. Example object query languages are OQL, LINQ, JDOQL, JPAQL and others. The query engine returns collections of objects instead of relational rows.TypesOperational databaseThese databases store detailed data about the operations of an organization. They are typically organized by subject matter, process relatively high volumes of updates using transactions. Essentially every major organization on earth uses such databases. Examples include customer databases that record contact, credit, and demographic information about a business' customers, personnel databases that hold information such as salary, benefits, skills data about employees, manufacturing databases that record details about product components, parts inventory, and financial databases that keep track of the organization's money, accounting and financial dealings.Data warehouseData warehouses archive historical data from operational databases and often from external sources such as market research firms. Often operational data undergoes transformation on its way into the warehouse, getting summarized, anonymized, reclassified, etc. The warehouse becomes the central source of data for use by managers and other end-users who may not have access to operational data. For example, sales data might be aggregated to weekly totals and converted from internal product codes to use UPC codes so that it can be compared with ACNielsen data. Analytical databaseAnalysts may do their work directly against a data warehouse, or create a separate analytic database for Online Analytical Processing. For example, a company might extract sales records for analyzing the effectiveness of advertising and other sales promotions at an aggregate level. Distributed databaseThese are databases of local work-groups and departments at regional offices, branch offices, manufacturing plants and other work sites. These databases can include segments of both common operational and com mon user databases, as well as data generated and used only at a user’s own site. End-user databaseThese databases consist of data developed by individual end-users. Examples of these are collections of documents in spreadsheets, word processing and downloaded files, or even managing their personal baseball card collection.External databaseThese databases contain data collect for use across multiple organizations, either freely or via subscription. The Internet Movie Database is one example.Hypermedia databasesThe Worldwide web can be thought of as a database, albeit one spread across millions of independent computing systems. Web browsers "process" this data one page at a time, while web crawlers and other software provide the equivalent of database indexes to support search and otheractivities.ModelsPost-relational database modelsProducts offering a more general data model than the relational model are sometimes classified as post-relational. Alternate terms include "hybrid database", "Object-enhanced RDBMS" and others. The data model in such products incorporates relations but is not constrained by E.F. Codd's Information Principle, which requires that all information in the database must be cast explicitly in terms of values in relations and in no other way.Some of these extensions to the relational model integrate concepts from technologies that pre-date the relational model. For example, they allow representation of a directed graph with trees on the nodes.Some post-relational products extend relational systems with non-relational features. Others arrived in much the same place by adding relational features to pre-relational systems. Paradoxically, this allows products that are historically pre-relational, such as PICK and MUMPS, to make a plausible claim to be post-relational.Object database modelsIn recent years[update], the object-oriented paradigm has been applied in areas such as engineering and spatial databases, telecommunications and in various scientific domains. The conglomeration of object oriented programming and database technology led to this new kind of database. These databases attempt to bring the database world and the application-programming world closer together, in particular by ensuring that the database uses the same type system as the application program. This aims to avoid the overhead (sometimes referred to as the impedance mismatch) of converting information between its representation in the database (for example as rows in tables) and its representation in the application program (typically as objects). At the same time, object databases attempt to introduce key ideas of object programming, such as encapsulation and polymorphism, into the world of databases.A variety of these ways have been tried for storing objects in a database. Some products have approached the problem from the application-programming side, by making the objects manipulated by the program persistent. This also typically requires the addition of some kind of query language, since conventional programming languages do not provide language-level functionality for finding objects based on their information content. Others have attacked the problem from the database end, by defining an object-oriented data model for the database, and defining a database programming language that allows full programming capabilities as well as traditional query facilities. Storage structuresDatabases may store relational tables/indexes in memory or on hard disk in one of many forms: •ordered/unordered flat files•ISAM•heaps•hash buckets•logically-blocked files•B+ treesThe most commonly used are B+ trees and ISAM.Object databases use a range of storage mechanisms. Some use virtual memory-mapped files tomake the native language (C++, Java etc.) objects persistent. This can be highly efficient but it can make multi-language access more difficult. Others disassemble objects into fixed- and varying-length components that are then clustered in fixed sized blocks on disk and reassembled into the appropriate format on either the client or server address space. Another popular technique involves storing the objects in tuples (much like a relational database) which the database server then reassembles into objects for the client.Other techniques include clustering by category (such as grouping data by month, or location), storing pre-computed query results, known as materialized views, partitioning data by range (e.g., a data range) or by hash.Memory management and storage topology can be important design choices for database designers as well. Just as normalization is used to reduce storage requirements and improve database designs, conversely denormalization is often used to reduce join complexity and reduc e query execution time.IndexingIndexing is a technique for improving database performance. The many types of index share the common property that they eliminate the need to examine every entry when running a query. In large databases, this can reduce query time/cost by orders of magnitude. The simplest form of index is a sorted list of values that can be searched using a binary search with an adjacent reference to the location of the entry, analogous to the index in the back of a book. The same data can have multiple indexes (an employee database could be indexed by last name and hire date.)Indexes affect performance, but not results. Database designers can add or remove indexes without changing application logic, reducing maintenance costs as the database grows and database usage evolves.Given a particular query, the DBMS' query optimizer is responsible for devising the most efficient strategy for finding matching data. The optimizer decides which index or indexes to use, how to combine data from different parts of the database, how to provide data in the order requested, etc.Indexes can speed up data access, but they consume space in the database, and must be updated each time the data are altered. Indexes therefore can speed data access but slow data maintenance. These two properties determine whether a given index is worth the cost.TransactionsMost DBMS provide some form of support for transactions, which allow multiple data items to be updated in a consistent fashion, such that updates that are part of a transaction succeed or fail in unison. The so-called ACID rules, summarized here, characterize this behavior:•Atomicity: Either all the data changes in a transaction must happen, or none of them. The transaction must be completed, or else it must be undone (rolled back).•Consistency: Every transaction must preserve the declared consistency rules for the database. •Isolation: Two concurrent transactions cannot interfere with one another. Intermediate results within one transaction must remain invisible to other transactions. The most extreme form of isolation is serializability, meaning that transactions that take place concurrently could instead be performed in some series, without affecting the ultimate result.•Durability: Completed transactions cannot be aborted later or their results discarded. They must persist through (for instance) DBMS restarts.In practice, many DBMSs allow the selective relaxation of these rules to balance perfect behavior with optimum performance.ReplicationDatabase replication involves maintaining multiple copies of a database on different computers, to allow more users to access it, or to allow a secondary site to immediately take over if the primary site stops working. Some DBMS piggyback replication on top of their transaction logging facility, applying the primary's log to the secondary in near real-time. Database clustering is a related concept for handling larger databases and user communities by employing a cluster of multiple computers to host a single database that can use replication as part of its approach.SecurityDatabase security denotes the system, processes, and procedures that protect a database from unauthorized activity.DBMSs usually enforce security through access control, auditing, and encryption:•Access control manages who can connect to the database via authentication and what they can do via authorization.•Auditing records information about database activity: who, what, when, and possibly where. •Encryption protects data at the lowest possible level by storing and possibly transmitting data in an unreadable form. The DBMS encrypts data when it is added to the database and decrypts it when returning query results. This process can occur on the client side of a network connection to prevent unauthorized access at the point of use.ConfidentialityLaw and regulation governs the release of information from some databases, protecting medical history, driving records, telephone logs, etc.In the United Kingdom, database privacy regulation falls under the Office of the Information Commissioner. Organizations based in the United Kingdom and holding personal data in digital format such as databases must register with the Office.LockingWhen a transaction modifies a resource, the DBMS stops other transactions from also modifying it, typically by locking it. Locks also provide one method of ensuring that data does not c hange while a transaction is reading it or even that it doesn't change until a transaction that once read it has completed.GranularityLocks can be coarse, covering an entire database, fine-grained, covering a single data item, or intermediate covering a collection of data such as all the rows in a RDBMS table.Lock typesLocks can be shared or exclusive, and can lock out readers and/or writers. Locks can be created implicitly by the DBMS when a transaction performs an operation, or explic itly at the transaction's request.Shared locks allow multiple transactions to lock the same resource. The lock persists until all such transactions complete. Exclusive locks are held by a single transaction and prevent other transactions from locking the same resource.Read locks are usually shared, and prevent other transactions from modifying the resource. Write locks are exclusive, and prevent other transactions from modifying the resource. On some systems, write locks also prevent other transactions from reading the resource.The DBMS implicitly locks data when it is updated, and may also do so when it is read.Transactions explicitly lock data to ensure that they can complete without a deadlock or other complication. Explic it locks may be useful for some administrative tasks.Locking can significantly affect database performance, especially with large and complex transactions in highly concurrent environments.IsolationIsolation refers to the ability of one transaction to see the results of other transactions. Greater isolation typically reduces performance and/or concurrency, leading DBMSs to provide administrative options to reduce isolation. For example, in a database that analyzes trends rather than looking at low-level detail, increased performance might justify allowing readers to see uncommitted changes ("dirty reads".)DeadlocksDeadlocks occur when two transactions each require data that the other has already locked exclusively. Deadlock detection is performed by the DBMS, which then aborts one of the transactions and allows the other to complete.From: Wikipedia, the free encyclopedia。
数据结构外文翻译外文翻译原文Computer programming data structure is an important theoretical basis for the design, it is not only the core curriculum of computer disciplines, and has become a popular elective course other Polytechnic professional, so studied this course well and studied computer are closely related.一、the concept of data structureComputer data structure is the foundation of science and technology professional classes, is the essential core curriculum. All computer system software and application software to use various types of data structures. Therefore, if we want to make better use of computers to solve practical problems, only to several computer programming languages are difficult to cope with the many complex issues. To the effective use of computers, give full play to computer performance, but also must learn and master relevant knowledge of data structure. A solid foundation of "data structure"for learning other computer professional courses, such as operating systems, translation theory, database management systems, software engineering, artificial intelligence, etc. are very useful.二、why should learn from data structure?In the early development of computers, the use of computer designed primarily to deal with terms. When we use the computer to solve a specific problem, the following general needs through several steps : the first is a specific problem of appropriate abstract mathematical models, and then design or choose a mathematical model of the algorithm,the final procedures for debugging, testing, until they have the ultimate answer.Since then the object is INTEGER, REAL, BOOLEAN, the procedures of the main designers of energy is focused on programming skills, without attention to the data structure. With the expansion of computer applications and development of software and hardware, the issue of non-terms increasing importance. According to statistics, Now dealing with the issue of non-occupancy of more than 90% of the machine time. Such issues involve more complex data structure, the relationshipsbetween data elements generally can not be described by mathematical formula. Therefore, the key to solving such problems is no longer mathematical analysis and calculations, but to devise appropriate data structure, can effectively address the problem.Description of the terms of such non-mathematical model is not a mathematical equation, but such as tables, trees, such as map data structure. Therefore, it can be said that data structure courses primarily designed to study the issue of non-value calculation procedures as a computer operations and the relationship between objects and their operating disciplines.The purpose of the study is to understand the structure of data for computer processing of the identity object to the practical problems involved in dealing with that subject at the computer out and deal with them. At the same time, through training algorithms to improve the thinking ability of students through procedures designed to promote student skills integrated applications and professional qualities.三、the concepts and terminologySystematic study of knowledge in the data structure before some of the basic concepts and terminology to give a precise meaning.Data (Data) is the information carrier, it could be computer identification, storage and processing. It is the computer processing of raw materials, a variety of data processing applications. Computer science, computer processing is the so-called data objects, which can be numerical data can be non - numerical data. Numerical data are integer, the actual number or plural, mainly for engineering computing, scientific computing and commercial processing; Non - numerical data, including characters, text, graphics, images, voice and so on.Data elements (Data Element) is the basic unit of data. In different conditions, data elements can be called elements, nodes, the peak, recording. For example, students information retrieval system table information, a record high, 8 Queen's issue of a state tree, teaching programming issues such as a peak, known as a data element. Sometimes, a data from a number of data elements (Data Item), for example, thestudent information management system students each data element table is a student record. It includes students of the school, name, sex, nationality, date of birth, performance data items. These data items can be divided into two types : one called early such as student gender, origin, etc., these data were no longer divided in data processing, the smallest units; Another called portfolio, the performance of students who, it can be divided into mathematics, physics, chemistry and other smaller items. Normally, in addressing the question of the practical application of each student is recorded as a basic unit for a visit and treatment.Data objects (Data Object) or data element type (Data Element Class) is the nature of the data elements with the same pool. In a specific issue, the data elements have the same nature (not necessarily equal value elements), belonging to the same data objects (data element type), the data element is an example of such data elements. For example, traffic information systems in the transportation network, is a culmination of all the data elements category, peak a and B each represent an urban middle is the data elements of the two types of examples of the value of their data elements a and B respectively.Data structure (Data Structure) refers to the mutual relationship that exists between one or more data elements together. In any case, between data elements will not be isolated in between them exist in one way or another, such as the relationship between the data element structure. According to the data elements of the relationship between different characteristics, usually have the following four basic categories of the structure :1 assembly structures. In the assembly structure, the relationship between data elements is "belonging to the same pool." Assembly elements relations is a very loose structure.2 linear structures. The structure of the data elements exist between one-to-one relationship.3 tree structure. The structure of the data elements exist between hierarchical relationship.4graphics structure. The structure of the data elements of the relationship that existed between Duoduiduo, graphics structure also known as network structure.C++Builder programming experience一、Database programmingAnd the use of Delphi, Borland C++Builder BDE (Borland Database Engine) database interface, in particular its use BDE Administrator unified management database alias, the database operation has nothing to do with the location of the database documents, thus enabling database development easier operation. But in a database application procedures at the same time we have to "release" BDE, the database for some simple procedures may BDE than our own design procedures big, but as the use of BDE InstallShield, add database alias is likely allocation failure. Therefore, we can use the following methods : still in the design stage procedure using BDE alias management database for debugging, but in procedures substantially (as in the main Chuangti OnCreate event processing function) to Table components DatabaseName attributes, such as the use of similar phrases as follows : Table1->DatabaseName = ExtractFilePath (Application->ExeName); Or Table1->DatabaseName = ExtractFilePath (Application->ExeName+ "DB");Thus, no impact on the debugging phase, will be issued if the application procedures Table1 document on the use of databases or their current catalogue "DB" virus, database procedures can be normal operation. You can even be a database to catalogue the documents in the form of character string Register (installed in the installation process), then the procedure in the acquisition of substantially from the catalogue of payrolls, Fuzhi DatabaseName attribute to be. Anyway, you do not need to install relatively large BDE forced users.二、the Registry visitAs in the design process we often required 9x/NT Windows Registry information visit, such as retrieval of information procedures, preservation of information. Register write a subroutine to visit necessary. When the Register to visit, the library will be directly available without always some duplication operation. Thefollowing can be used to access cosmetic Licheng, the character string type Jianzhi, and the retrieval of failure to return default value Default.#include < Registry.hpp >int ReadIntFromReg(HKEY Root, AnsiString Key,AnsiString KeyName, int Default) {int KeyValue;TRegistry *Registry = new TRegistry();Registry->RootKey = Root;Registry->OpenKey(Key, false);try {KeyValue = Registry->ReadInteger(KeyName);}catch(...) {KeyValue = Default;}delete Registry;return KeyValue;}void SaveIntToReg(HKEY Root, AnsiString Key,AnsiString KeyName, int KeyValue) {TRegistry *Registry = new TRegistry();Registry->RootKey = Root;Registry->OpenKey(Key, true);Registry->WriteInteger(KeyName, KeyValue);delete Registry;}char *ReadStringFromReg(HKEY Root, AnsiString Key,AnsiString KeyName, char *Default) {AnsiString KeyValue;TRegistry *Registry = new TRegistry();Registry->RootKey = Root;Registry->OpenKey(Key, false);try {KeyValue = Registry->ReadString(KeyName);}catch(...) {KeyValue = (AnsiString)Default;}delete Registry;return KeyValue.c_str();}void SaveStringToReg(HKEY Root, AnsiString Key,AnsiString KeyName, char *KeyValue) {TRegistry *Registry = new TRegistry();Registry->RootKey = Root;Registry->OpenKey(Key, true);Registry->WriteString(KeyName, (AnsiString)KeyValue);delete Registry;}We may use the following access methods (to Windows wallpaper documents) : AnsiString WallPaperFileName =ReadStringFromReg(HKEY_CURRENT_USER,"\\Control Panel\\Desktop", "Wallpaper", "");三、show / hide icons task columnStandard Windows applications generally operating in the mission mandate column on the chart shows, users can directly use the mouse clicking column logo for the mission task cut over, but some applications do not use task column signs, such as the typical Office tools, There are also procedures that can be shown or hiddencustomization tasks column icon, such as Winamp. We can do the procedure, as long as access Windows SetWindowLong function can drive, as follows : // hidden task column chart :SetWindowLong (Application->Handle.GWL_EXSTYLE, WS_EX_TOOLWINDOW);// task column shows signs :SetWindowLong (Application->Handle.GWL_EXSTYLE, WS_EX_APPWINDOW);四、the establishment of a simple "on" windowA complete Windows applications typically contain a "on the" window to show version information. We customized a dialog box as usual "on the" window of the "on" free customized window, indicates that more information, even including super links. If only show simple version information,Windows ShellAbout function shelf items have sufficient, following this line of code can be "on" Duihuakuang and is Windows standard "on the" Duihuakuang and procedures may show signs such as the use of resources and systems.ShellAbout (Handle, ( "on" +Application->Title+ "#"). C_str () ( "\n"+Application->Title+ "V1.0\n\n" + "夏登城版权所有!"). C_str () Application->Icon->Handle);五、the two methods to choice catalogueIn our applications, allowing users to choose the regular catalogue, such as software manufacturers, users choose catalogue. This involves catalogue option, we may use the following methods for users to choose one of the catalogue : 1, use SHBrowseForFolder and SHGetPathFromIDList function; Company affirms its function as follows :WINSHELLAPI LPITEMIDLIST WINAPISHBrowseForFolder(LPBROWSEINFO lpbi); WINSHELLAPI BOOL WINAPI SHGetPathFromIDList(LPCITEMIDLIST pidl, LPSTR pszPath); LPBROWSEINFO和LPITEMIDLIST structure refer Win32 files. This method of selecting catalogues available Windows desktop all available inventory, including networks of other computers sharing catalogue neighbors, but not the new catalogue. Li Cheng allows users to choose the following directory, the directory of choice Licheng return at all trails character string.#include < shlobj.h >char *GetDir(char *DisplayName, HWND Owner) {char dir[MAX_PATH] = "";BROWSEINFO *bi = new BROWSEINFO;bi->hwndOwner = Owner;bi->pidlRoot = NULL;bi->pszDisplayName = NULL;bi->lpszTitle = DisplayName;bi->ulFlags = BIF_RETURNONLYFSDIRS;bi->lpfn = NULL;bi->lParam = NULL;bi->iImage = 0;ITEMIDLIST *il = SHBrowseForFolder(bi);if(il!=NULL) {SHGetPathFromIDList(il, dir);}delete bi;return dir;}We can use the following list to be chosen from :AnsiString at Dir = (AnsiString) GetDir ( "Please select catalogue :" Handle);2, the use of SelectDirectory function. C++Builder the function SelectDirectory achievable catalogue of options, which showed that similar "open" / "preserve"Duihuakuang, but its advantage is to use / non-use keyboard input catalogue members, and allow the creation of new directories. Its original definition as follows : Extern package bool __fastcall SelectDirectory ( AnsiString &Directory, TSelectDirOpts Options, 103-116 HelpCtx);Licheng SelectDir allow you to choose the following directory :#include < FileCtrl.hpp >AnsiString SelectDir(AnsiString Dir) {if(SelectDirectory(Dir, TSelectDirOpts()<< sdAllowCreate << sdPerformCreate << sdPrompt,0))return Dir;elsereturn "";}for the following redeployed to the users choice catalogue :AnsiString SelectedDir = SelectDir ( "C:\\My Documents");外文翻译译文数据结构是计算机程序设计的重要理论设计基础,它不仅是计算机学科的核心课程,而且已成为其他理工专业的热门选修课,所以学好这门课程是与学好计算机专业是息息相关的。