计算机专业外文翻译+原文-数据库管理系统介绍
外文翻译-数据库管理系统—剖析

Database Management SystemSource:Database and Network JournalAuthor:David AndersonYou know that a data is a collection of logically related data elements that may be structured in various ways to meet the multiple processing and retrieval needs of orga nizations and individuals. There’s nothing new about data base-early ones were chiseled in stone, penned on scrolls, and written on index cards. But now database are commonly recorded on magnetically media, and computer programs are required to perform the necessary storage and retrieval operations.The system software package that handles the difficult tasks associated with created, accessing, and maintaining database records is in a DBMS package establish an interface between the database itself and the users of the database. (These users may be applications programmers, managers and others with information needs, and various OS programmers.)A DBMS can organize, process, and present selected data elements from the database. This capability enables decision makers to search. Probe, and query data contents in order to extract answers to nonrecurring and unplanned questions that aren’t available in regular reports. These questions might initially be vague and/or poorly defined, but people can “browse” through the database until they have the needed information. In short, the DBMS will “manage” the stored data items and assemble the needed items from the common database in response to the queries of those who aren’t programmers. In a file-oriented system, users needing special information may communicate their needs to a programmers, who, when time permits, will information. The availability of a DBMS, however, offers users a much faster alternative communications patch (see figure).Special, direct, and other file processing approaches ate used to organize and structure data in single files. But a DBMS is able to integrate data elements from several files to answer specific user inquiries fir information. This means that the DBMS is able to structure and tie together the logically related data from several large files.Logical structures. Identifying these logical relationships is a job of the data administrator. A data definition language is used for this purpose. The DBMS maythenEmploy one of the following logical structuring techniques during storage access, and retrieval operation: list structures, hierarchical (tree) structures, and network structures, relational structures.1. List structures. In this logical approach, records are linked together by the use of pointers. A pointer is a data item in one record that identifies the storage location of another logically related record. Records in a customer master file, for example, will contain the name and address of each customer, and an account number identifies each record in this file. During an accounting period, a customer may maintain an invoice file to reflect these transactions. A list structure could be used in this situation to show the unpaid invoices at any given time. Each in the customer file would point to the record location of the first invoice for that customer in the invoice file. This invoice record, in turn would be linked to later invoice for the customer. The last invoice in the chain would be identified by the use of a special character as a pointer.2. Hierarchical structures. In this logical approach, data units are structured in multiple levels that graphically resemble an “upside down” tree with the root at the top and the branches formed below, there’s a superior-subordinate relationship in a hierarchical structure. Below the single-root data component are subordinate elements (or one) has only a single owner. Thus, as we see in figure, a customer owns an invoice, and the invoice has subordinate items. The branches in a tree structure are not connected.3. Network structures. Unlike the tree approach, which dose not permit the connection of branches, the network structure permits the connection of the nodes in a multidirectional manner. Thus, each node may have several owners and may, in turn, own any number of other data units. Data, management software permits the extraction of the needed information from such a structure by beginning with any record in a file.4. Relational structures. A relational structure is made up of many tables. The data are stored in the form of “relations” in these tables. For example, relation tables could be established to link a college course with the instructor of the course, and with the location of the in order to find the name of the instructor and the location of the English class, the course/instructor relation is searched to get the name, and the course/location relation is searched to get the class location. Many other relations are of course, possible. This is a relatively new database structuring approach that’sexpected to be widely implemented in the future.5. Physical structure. People visualize or structure data in logical ways for there Own purposes. Thus, records R1 and R2 may always be logically linked and processed in sequence in one particular application. However, in a computer system it’s quite possible that these records that are logically contiguous in one application are not physically stored together. Rather, the physical structure of the I/O and storage devices techniques used, but also on the different logical relationships that users may assign to the data found on R1 and R2. For example, R1 and R2 may be records of credit customers who have shipments send to the same block in the same city every two weeks. From the shipping depart ment manager’s perspective, then, R1 and R2 are sequential entries on a geographically organized shipping report. But may be identified, and their accounts may be processed, according to their account numbers which are widely separated. In short, then the physical location of the stored records in many computer-based information systems is invisible to users.During the past five years, Microsoft has promoted Data Access Objects (DAO), and then Remote Data Objects (RDO), and now ActiveX Data Objects (ADO) as the primary data access technology for Visual Basic developers. It seems that Microsoft has been pushing a different data access technology with each successive version of Microsoft Visual Studio. Today, new versions of ADO are available on Microsoft's Web site and ship with other products and technologies, such as Microsoft Windows 2000, Microsoft Windows NT 4 Service Packs, Microsoft Internet Explorer versions 3 and later, Microsoft SQL Server 6.5 Service Pack 5 and SQL Server 7, Microsoft Office 2000, and even Microsoft Expedia Streets & Trips 2000.One of the goals of ADO is to simplify data access. ADO is built upon some fairly complex technologies—OLE DB and ODBC (open database connectivity)—and is designed to allow you to programmatically access and modify data stored in a wide variety of databases. This broad reach is a departure from previous data access technologies. For the sake of comparison, let's take a quick glance at ADO's predecessors: DAO and RDO.Data Access ObjectsDAO was originally designed to interact with Microsoft Access databases. Although you can use DAO to access SQL Server and Oracle databases, many developers complain about DAO's performance with these large database systems. Others complain that DAO doesn't permit programmers to access some of the richer,more powerful features of SQL Server and Oracle, such as output and return parameters on stored procedures.One of my coworkers likes to say that using DAO to work with an Oracle database is like performing brain surgery on you…without anesthetics…while wearing oven mitts. Extreme? Yes—but he does have a point. DAO is tuned to work with desktop databases, not client/server databases. Frustrated by DAO's performance and access limitations, developers who wanted to work with SQL Server and Oracle databases generally sought other options.Remote Data ObjectsMicrosoft provided another option in RDO, which originally released with Visual Basic 4 Enterprise Edition. RDO's object model closely resembles the hierarchy of structures in the ODBC API. Programmers found that RDO provided much faster access to client/server database systems, such as SQL Server and Oracle, than DAO did. Although those familiar with the ODBC API quickly learned how to work with the RDO object model, developers lacking experience with that API, such as those who had been using DAO, found the RDO technology difficult to use.The object model itself wasn't the problem for most programmers learning RDO: the nuances inherited from the ODBC API posed the greatest obstacles. Suddenly, programmers had to bone up on cursors and bookmarks. They had to learn many of the ins and outs of specific database systems. Does the error message "The connection is busy with results from another hstmt" ring any bells out there? If you try to do the impossible on an ODBC connection to your database, RDO won't save you. Instead, you'll get that error. DAO hid the problem from you by automatically creating another connection to your database to perform the action you requested.Another challenge that RDO posed for programmers accustomed to writing DAO code was that RDO lacked many of DAO's features, such as sorting, searching, and filtering. Other DAO functionality unavailable in the RDO world includes data definition language (DDL) interfaces to ODBC API functions such as Create Table and Create Field.Best of Both Worlds: ActiveX Data ObjectsProgrammers clamored for a data access technology that combined the simplicity and relative ease of use of DAO with the speed, power, and control of RDO. Initially introduced as part of the Microsoft Internet Information Server 3 package, ADO was intended to be all things to all people. Of course, such lofty goals are rarely fulfilled.While the initial release of ADO lacked many of Rod’s features, I b elieve that ADO 2.0 offered comparable functionality. Certain RDO features, such as mixed cursors, have yet to be implemented in ADO, but these features are few and far between. In fact, I'm at a loss to name a single significant feature available in RDO that was not available in ADO 2.0 in one form or another. (I'm sure someone will tell me otherwise; a great way to find such features is to make a statement like that in a book like this.)With the release of version 2.1, ADO and its supporting libraries began offering nearly all features available in DAO. DDL libraries were added to ADO in version 2.1 to provide functionality similar to functions available with DAO, such as Create Table, Create Field, and Create Index. Microsoft Jet and Replication Objects (JRO) in ADO 2.1 offers much of the Jet-specific functionality available via the DB Engine object in DAO. ADO 2.1 also added functionality to simplify the retrieval of newly generated identity values. ADO 2.5 adds no new functionality to more closely match the capabilities of DAO and RDO, because perhaps the only place where ADO lags behind DAO is in its searching and filtering capabilities.So ADO has most of the functionality of RDO and DAO as well as many helpful features not available in previous data access technologies.Database ManagementThere are problems with traditional data management. A more subtle problem is data dependency. When a problem’s logic is tied to it’s physical data structure, changing that structure will almost certainly require changing the program. As a result, programs using traditional access methods can be difficult to maintain. The solution to both problems id often organizing the data as a single, integrated database. The task of controlling access to all the data can then be concentrated in a centralized database management system.How dose the use of a centralized database solve the data redundancy problem? All data are collected and stored in a single place; consequently, there is one and only one copy of any given data element. When the value of an element (an address, for example) changes, the single database copy is corrected. Any program requiring access to this data element gets the same value, because there is only one value.How dose a database help to solve the data dependency problem? Since the responsibility for accessing the physical data rests with the database management system, the programmer can ignore the physical data structure. As a result, programstend to be much less dependent upon their data, and are generally much easier to maintain. Expect the trend toward database management to continue.数据库管理系统来源:数据库和网络杂志作者:大卫·安德森众所周知,数据库是逻辑上相关的数据源集合。
数据库管理系统详解

数据库管理系统详解数据库管理系统(Database Management System,简称DBMS)是指在计算机系统中,管理数据库的软件系统。
它可以用于创建、操作和维护数据库,提供数据的高效存储和快速检索,以及保障数据的完整性和安全性。
本文将详细介绍数据库管理系统的概念、功能、特点及其在实际应用中的重要性。
一、概念数据库管理系统是指在计算机系统中,用来管理数据库的软件系统。
它可以协调数据的输入、处理、存储与输出,还能保证数据的一致性、完整性和安全性。
数据库管理系统通过提供抽象层来屏蔽底层的细节,并提供了一系列的接口,使用户能够方便地对数据库进行操作。
二、功能1. 数据定义功能:数据库管理系统可以定义和描述数据的结构、类型和约束条件,如创建表、定义字段、设置主键等。
2. 数据操纵功能:数据库管理系统提供了丰富的数据操作功能,包括插入、删除、修改和查询等操作,可以对数据进行灵活的处理和管理。
3. 数据控制功能:数据库管理系统可以对数据的访问进行控制和管理,包括权限管理、事务控制、并发控制等,以保证数据的安全性和可靠性。
4. 数据库维护功能:数据库管理系统能够对数据库进行备份、恢复、优化和重组等维护操作,以保证数据库的稳定性和性能。
三、特点1. 数据共享性:数据库管理系统支持多用户同时访问数据库,实现了数据的共享和集中管理,提高了资源的利用率。
2. 数据独立性:数据库管理系统实现了逻辑数据与物理数据的独立性,用户只需关心数据的逻辑结构和操作,而不必关心存储细节。
3. 数据一致性:数据库管理系统通过事务控制和并发控制等机制,保证了数据的一致性和完整性。
4. 数据安全性:数据库管理系统提供了权限管理、加密技术和备份恢复功能,保障了数据的安全性和可靠性。
5. 数据持久性:数据库管理系统将数据存储在磁盘等持久介质上,即使系统发生故障,数据也能够得到保留和恢复。
四、重要性数据库管理系统在现代信息系统中起着重要的作用,主要体现在以下几个方面:1. 数据共享与集中管理:数据库管理系统实现了数据的共享和集中管理,不同用户可以通过网络访问同一数据库,从而提高资源的利用效率。
数据库管理系统

数据库管理系统数据库管理系统(Database Management System,简称DBMS)是一种用于管理数据库的软件工具。
它提供了一系列的功能和操作,使得用户可以方便地存储、访问、更新和管理数据库中的数据。
数据库管理系统被广泛应用于各个领域,如企业管理、科学研究、电子商务等。
一、数据库管理系统的概述数据库管理系统是一个复杂的软件系统,它由数据库引擎、数据管理和控制、数据词典和数据操作界面等组成。
数据库引擎负责处理用户的请求并执行数据库操作,数据管理和控制模块负责管理数据库的数据和权限,数据词典存储了数据库的结构和约束条件,数据操作界面提供了用户与数据库之间的交互方式。
二、数据库管理系统的特点1. 数据共享:数据库管理系统可以支持多个用户对同一个数据库进行并发操作,实现数据的共享和协作。
2. 数据独立性:数据库管理系统将数据和应用程序进行了分离,用户可以独立地对数据进行操作,不受数据物理存储方式的影响。
3. 数据一致性:数据库管理系统采用了一系列的事务管理和数据完整性约束机制,保证数据的一致性和可靠性。
4. 数据安全性:数据库管理系统提供了用户认证和权限控制等功能,确保只有授权用户可以访问数据库,并且对数据进行保护。
三、数据库管理系统的功能1. 数据定义功能:数据库管理系统提供了创建、修改和删除数据库、表、索引等对象的功能,用户可以通过SQL语句实现对数据库结构的定义和修改。
2. 数据操作功能:数据库管理系统支持各种数据操作,如插入、删除、修改和查询等,用户可以通过SQL语句对数据库中的数据进行操作。
3. 数据查询和检索功能:数据库管理系统提供了强大的查询功能,用户可以通过SQL语句查询和检索满足条件的数据。
4. 数据完整性和约束功能:数据库管理系统支持数据完整性和约束条件的定义和管理,如主键、外键、唯一约束等,保证数据的有效性和正确性。
5. 数据安全性和权限管理功能:数据库管理系统提供了用户认证和权限管理功能,确保只有授权用户可以访问数据库,并且对敏感数据进行保护。
数据库管理系统

数据库管理系统数据库管理系统(Database Management System,简称DBMS)是一种能够管理和组织数据的软件系统。
它提供了一系列的功能,供用户和应用程序来存储、访问、更新和处理数据。
数据库管理系统在各个领域都得到广泛应用,如企业管理、电子商务、社交媒体等。
1. 数据库管理系统的定义和特点数据库管理系统是一种中心化的数据管理软件,通过它可以实现数据的高效管理和处理。
它主要包括数据的存储、数据的组织、数据的访问和数据的维护等功能。
数据库管理系统具有以下几个特点:- 数据的独立性:数据库管理系统能够实现数据与应用程序的独立性,使得应用程序不受底层数据结构的影响。
- 数据的共享性:多个用户可以同时共享数据库中的数据,提高了数据的利用率。
- 数据的一致性:数据库管理系统可以确保数据的一致性,避免了数据冗余和数据不一致的问题。
- 数据的安全性:数据库管理系统可以对数据进行权限管理,保护数据的安全性。
2. 数据库管理系统的核心组成数据库管理系统主要由以下几个核心组成部分组成:- 数据库:数据库是一个组织和存储数据的集合,可以包含多个表和索引等。
- 数据库管理系统内核:数据库管理系统内核是数据库管理系统的核心部分,负责数据库的管理和操作。
- 数据库管理系统语言:数据库管理系统提供了一种特定的语言,用于用户和应用程序与数据库进行交互,如SQL语言。
- 数据库管理系统工具:数据库管理系统提供了一些工具,用于数据库的管理和运维,如备份工具和性能优化工具等。
3. 数据库管理系统的优势数据库管理系统相比其他数据管理方式有许多优势,主要包括:- 数据的集中管理:数据库管理系统能够集中管理数据,方便数据的维护和管理。
- 数据的高效访问:数据库管理系统采用了高效的索引机制,可以快速定位和访问数据。
- 数据的共享和共同修改:数据库管理系统支持多用户的并发操作,可以实现数据的共享和共同修改。
- 数据的安全性和完整性:数据库管理系统可以对数据进行权限管理,保护数据的安全性和完整性。
数据库管理系统

数据库管理系统数据库管理系统(Database Management System,简称DBMS),是指由软件和硬件相结合形成的数据管理工具,用于创建、管理和维护数据库系统。
它提供了一种结构化的方法来组织和存储数据,使得数据的访问和使用更加高效和可靠。
本文将从数据库管理系统的概述、主要功能、应用领域和发展趋势等方面进行探讨。
一、概述数据库管理系统是计算机科学领域的重要组成部分,它以数据为中心,通过定义数据结构、数据存储和访问规则等方式,为用户提供了从数据中获取、存储和修改信息的能力。
数据库管理系统的设计目标是提高数据的可用性、可靠性和安全性,同时保证高效的数据访问和查询。
二、主要功能1. 数据定义:数据库管理系统提供了定义数据结构、数据类型和约束条件的功能,通过表、视图、索引等形式来组织和管理数据。
2. 数据查询:数据库管理系统支持使用结构化查询语言(Structured Query Language,简称SQL)进行数据查询和操作,提供了强大的查询和筛选功能。
3. 数据存储:数据库管理系统使用文件结构和索引来组织和存储数据,保证了数据的持久性和可靠性。
4. 数据安全:数据库管理系统提供了用户身份认证、访问权限控制和数据加密等安全措施,保护了数据的机密性和完整性。
5. 数据备份和恢复:数据库管理系统支持数据备份和恢复功能,保证了数据在灾难发生时的可靠性和可恢复性。
三、应用领域数据库管理系统在各个行业和领域都得到了广泛的应用,如以下几个方面:1. 企业管理:数据库管理系统被广泛应用于企业的信息管理、客户关系管理、人力资源管理等方面,提供了数据的集中存储和高效管理。
2. 金融服务:银行、证券公司等金融机构利用数据库管理系统进行账户管理、交易记录管理等工作,提高了金融服务的效率和准确性。
3. 电子商务:电子商务平台依赖于数据库管理系统来存储和管理商品信息、订单信息等数据,保证了在线购物的顺利进行。
4. 物流管理:数据库管理系统在物流管理中扮演重要角色,实现了货物跟踪、库存管理和运输调度等功能,提高了物流效率。
【计算机专业文献翻译】题库管理系统

附录一英文材料While you’re going through the development process, the most important issue is this: Don’t get lost. It’s easy to do. Most of the analysis and design methods are intended to solve the largest of problems. Remember that most projects don’t fit in to that category, so you can usually have successful analysis and design with a relatively small subset of what a method recommends. But some sort of process, no matter how limited, will generally get you on your way in a much better fashion than simply beginning to code.It’s also easy to get stuck, to fall into “analysis paralysis,” where you feel like you can’t move forward because you haven’t nailed down every little detail at the current stage. Remember, no matter how much analysis you do, there are so me things about a system that won’t reveal themselves until design time, and more things that won’t reveal themselves until you’re coding, or not even until a program is up and running. Because of this, it’s crucial to move fairly quickly through analysis and design, and to implement a test of the proposed system.This point is worth emphasizing. Because of the history we’ve had with procedural languages, it is commendable that a team will want to proceed carefully and understand every minute detail before moving design and implementation. Certainly, when creating a DBMS, it pays to understand a customer’s needs thoroughly. But a DBMS is in a class of problems that is very well-posed and well-understood; in many such programs, the database structure is the problem to be tackled. The class of programming problem discussed in this chapter is of the “wild-card” (my term) variety, in which the solution isn’t simply re-forming a well-known solution, but instead involves one or more “wild-card factors”-elements for which there is no well-understood previous solution, and for which research is necessary. Attempting to thoroughly analyze a wildcard problem before moving into design andimplementation results in analysis paralysis because you don’t have enough inform ation to solve this kind of problem during the analysis phase. Solving such a problem requires iteration through the whole cycle, and that requires risk-taking behavior (which makes sense, because you’re trying to do something new and the potential rewards are higher). It may seem like the risk is compounded by “rushing” into a preliminary implementation, but it can instead reduce the risk in a wild-card project because you’re finding out early whether a particular approach to the problem is viable. Product development is risk management.It’s often proposed that you “build one to throw away.” With OOP, you may still throw part of it away, but because code is encapsulated into classes, during the first iteration you will inevitably produce some useful class designs and develop some worthwhile ideas about the system design that do not need to be thrown away. Thus, the first rapid pass at a problem not only produces critical information for the next analysis, design, and implementation iteration, it also creates a code foundation for that iteration.That said, if you’re looking at a methodology that contains tremendous detail and suggests many steps and documents, it’s still difficult to know when to stop. Keep in mind what you’re trying to discover: What are the objects? (How do you partition your project into its component parts?)What are their interfaces? (What messages do you need to be able to send to each object?)If you come up with nothing more than the objects and their interfaces, then you can write a program. For various reasons you might need more descriptions and documents than this, but you can’t get away with any less.The process can be undertaken in five phases, and a phase 0 that is just the initial commitment to using some kind of structure.Phase 0: Make a planYou must first decide what steps you’re going to have in your process. It sounds simple (in fact, all of this sounds simple) and yet people often don’t make this decision before they start coding. If your plan is “let’s jump in and start coding,” fine. (Sometimes that’s appropriat e when you have well-understoodproblem.) At least agree that this is the plan.You might also decide at this phase that some additional process structure is necessary, but not the whole nine yards. Understandab ly enough, some programmers like to work in “vacation mode” in which no structure is imposed on the process of developing their word; “It will be done when it’s done.” This can be appealing for awhile, but I’ve found that having a few milestones along the way helps to focus and galvanize your efforts around those milestones instead of being stuck with the single goal of “finish the project.” In addition, it divides the project into more bite-sized pieces and makes it seem less threatening (plus the milestones offer more opportunities for celebration).When I began to study story structure (so that I will someday write a novel) I was initially resistant to the idea of structure, feeling that when I wrote I simply let it flow onto the page. But I later realized that when I write about computers the structure is clear enough so that I don’t think much about it. But I still structure my work, albeit only semi-consciously in my head. So even if you think that your plan is to just start coding, you still somehow go through the subsequent phases while asking and answering certain questions.The mission statementAny system you build, no matter how complicated, has a fundamental purpose, the business that it’s in, and the basic need that it satisfies. If you can look past the user interface, the hardware- or system-specific details, the coding algorithms and the efficiency problems, you will eventually find the core of its being, simple and straightforward. Like the so-called high concept from a Hollywood movie, you can describe it in one ore two sentences. This pure description is the starting point.The high concept is quite important because it sets the tone for your project; it’s a mission statement. You won’t necessarily get it right the first time (you may be in a later phase of the project before it becomes completely clear), but keep trying until it feels right. For example, in an air-traffic control system to a very small airfield; perhaps there’s only a human controller or none at all. A more useful model won’t concern the solution you’re creating as much as it describes the problem: “Aircraft arrive, unload, service and reload, and depart.”Phase 1: What are we making?It’s necessary to stay focused on the heart of what you’re trying to accomplish in this phase: determine what the system is supposed to do. The most valuable tool for this is a collection of what are called “use cases.” Use cases identify key features in the system that will reveal some of the fundamental classes you’ll be using. These are essentially descriptive answers to questions like:“Who will use this system?”“What can those actors do with the system?”“How does this actor do that with this system?”“How else might this work if someone else were doing this, or if the same actor had a different objective?”(to reveal variations)“What problems might happen while doing this with the system?”(to reveal exceptions)If you are designing an auto-teller, for example, the use case for a particular aspect of the functionality of the system is able to describe what the auto-teller does in every possible situation. Each of these “situations” is referred to as a scenario, and a use case can be considered a collection of scenarios. You can think of a scenario as a question that starts with: “What does the system do if…?” For example, “What does the auto-teller do if a customer has just deposited a check within 24 hours and there’s not enough in the account without the check to provide the desired withdrawal?”Use case diagrams are intentionally simple to prevent you from getting bogged down in system implementation details prematurely:The use cases produce the requirements specifications by determining all the interactions that the user may have with the system. You try to discover a full set of use cases f or your systems, and once you’ve done that you have the core of what the system is supposed to do. The nice thing about focusing on use cases is that they always bring you back to the essentials and keep you from drifting off into issues that aren’t critic al for getting the job done. That is, if you have a full set of use cases you can describe your system and move onto the next phase. You probably won’t get it all figured out perfectly on the first try, but that’s OK. Everything will reveal itself in time, and if you demand a perfect system specificationat this point you’ll get stuck.Phase 2: How will we build it?In this phase you must come up with a design that describes what the classes look like and how they will interact. An excellent technique in determining classes and interactions is the Class-Responsibility-Collaboration (CRC) card. Part of the value of this tool is that it’s so low-tech: you start out with a set of blank 3” by 5” cards, and you write on them. Each card represents a single class, and on the card you write:The name of the class. It’s important that this name capture the essence of what the class does, so that it makes sense at a glance.The “responsibilities” of the class: what it should do. This can typically be summarized by ju st stating the names of the member functions (since those names should be descriptive in a good design), but it does not preclude other notes. If you need to seed the process, look at the problem from a lazy programmer’s standpoint: What objects would you like to magically appear to solve your problem?The “collaborations” of the class: what other classes does it interact with? “Interact” is an intentionally broad term; it could mean aggregation or simply that some other object exists that will perform services for an object of the class. Collaborations should also consider the audience for this class. For example, if you create a class Firecracker, who is going to observe it, a Chemist or a Spectator? The former will want to know what chemicals go into the construction, and the latter will respond to the colors and shapes released when it explodes.You may feel like the cards should be bigger because of all the information you’d like to get on them, but they are intentionally small, not only to keep your classes small but also to keep you from getting into too much detail too early. If you can’t fit all you need to know about a class on a small card, the class is too complex (either you’re getting too detailed, or you should create more than one class). The i deal class should be understood at a glance. The idea of CRC cards is to assist you in coming up with a first cut of the design so that you can get the big picture and then refine your design.One of the great benefits of CRC cards is in communication. It’s best done real-time, in a group, without computers. Each person takes responsibility for several classes (which at first have no names or other information). You run a live simulation by solving one scenario at a time, deciding which messages are sent to the various objects to satisfy each scenario. As you go through this process, you discover the classes that you need along with their responsibilities and collaborations, and you fill out the cards as you do this. When you’ve moved through all the use cases, you should have a fairly complete first cut of your design.Before I began using CRC cards, the most successful consulting experiences I had when coming up with an initial design involved standing in front of a team, who hadn’t built an OOP project bef ore, and drawing objects on a whiteboard. We talked about how the objects should communicate with each other, and erased some of them and replaced them with other objects. Effectively, I was managing all the “CRC cards” on the whiteboard. The team (who kne w what the project was supposed to do) actually created the design; they “owned” the design rather than having it giving it given to them.All I was doing was guiding the process by asking the right questions, trying out the assumptions, and taking the feedback from the team to modify those assumptions. The turn beauty of the process was that the team learned how to do object-oriented design not by reviewing abstract examples, but by working on the one design that was most interesting to them at that moment: theirs.Once you’ve come up with a set of CRC cards, you may want to create a more formal description of your design using UML. You don’t need to use UML .but it can be helpful, especially if you want to put up a diagram on the wall for everyone to ponder, which is a good idea. An alternative to UML is a textual description of the objects and their interfaces, or, depending on your programming languages, the code itself.UML also provides an additional diagramming notation for describing the dynamic model of your system. This is helpful in situations in which the state transitions of a system or subsystem are dominant enough that they need their own diagrams (such as in a control system). You may also need to describe the data structures, for systems or subsystems in which data is a dominant factor (such as a database),You’ll know you’re done with phase 2 when you have described the objects and their interfaces.Well, most of them –there are usually a few that slip through the cracks and don’t make them selves known until phase 3. But that’s OK. All you are concerned with is that you eventually discover all of your objects. It’s nice to discover them early in the process but OOP provides enough structure so that it’s not so bad if you discover them later. In fact, the design of an object tends to happen in five stages, throughout the process of program development.Phase 3: Build the coreThis is the initial conversion from the rough design into a compiling and executing body of code that can be tested, and especially that will prove or disprove your architecture. This is not a one-pass process, but rather the beginning of a series of steps that will iteratively build the system, as you’ll see in phase4.Your goal is to find the core of your system architecture that needs to be implemented in order generate a running system, no matter how incomplete that system is in this initial pass. You’re creating a framework that you can build upon with further iterations. You’re also performing the first of many system integrations and tests, and giving the stakeholders feedback about what their system will look like and how it is progressing. Ideally, you are also exposing some of the critical risks. You’ll probably also discover changes and improvements that can be made to your original architecture – things you would not have learned without implementing the system.Part of building the system is the reality check that you get from testing against your requirements analysis and system specification (in whatever form they exist). Make sure that your tests verify the requirements and use cases. When the core of the system is stable, you’re ready to move on and add more functionality.Phase 4: Iterate the use casesOnce the core framework is running, each feature set you add is a small project in itself. You add a feature set during an iteration, a reasonably short period of development.How big is an iteration? Ideally, each iteration lasts one to three weeks (this can vary based on the implementation language). At the end of that period, you have an integrated, tested system with more functionality than it had before. But what’s particularly interesting is the basis for the iteration: a single use case. Each use case is a package of related functionality that you build into the system all at once, during one iteration. Not only does this give you a better idea of what the scope of a use case should be, but it also gives more validation to the idea of a use case, since the concept isn’t discarded after analysis and design, but instead it is a fundamental until of development throughout the software-building process.You stop iterating when you achieve target functionality or an external deadline arrives and the customer can be satisfied with the current version. (Remember, software is a subscription business.) Because the process is iterative, you have many opportunities to ship a product instead of a single endpoint; open-source projects work exclusively in an iterative, high-feedback environment, which is precisely what makes them successful.An iterative development process is valuable for many reasons. You can reveal and resolve critical risks early, the customers have ample opportunity to change their minds, programmer satisfaction is higher, and the project can be steered with more precision. But an additional important benefit is the feedback to the stakeholders, who can see by the current state of the product exactly where everything lies. This may reduce or eliminate the need for mind-numbing status meetings and increase the confidence and support from the stakeholders.Phase 5: EvolutionThis is the point in the development cycle that has traditionally been called “maintenance,” a catch-all term that can mean everything from “getting it to work the way it was really supposed to in the first place” to “adding features that the customer forgot to mention” to the more traditional “fixing the bugs that show up” and “adding new features as the need arises.” So many misconceptions have been applied to the term “maintenance” t hat it has taken on a slightly deceiving quality, partly because it suggests that you’ve actually build a pristine program and all you need to do is change parts, oil it, and keep it from rusting. Perhaps there’s a better term to describe what’s going on.I’ll use the term evolution. That is, “You won’t get it right the first time, so give yourself the latitude to learn and to go back and make changes.” You might need to make a lot of changes as you learn and understand the problem more deeply. The elegance you’ll produce if you evolve until you get it right willpay off, both in the short and the long term. Evolution is where your program goes from good to great, and where those issues that you didn’t really understand in the first pass become clear. It’s also where your classes can evolve from single-project usage to reusable resources.What is it means to “get it right” isn’t just that the program works according to the requirements and the use cases. It also means that the internal structure of the code makes sense to you, and feels like it fits together well, with no awkward syntax, oversized objects, or ungainly exposed bits of code. In addition, you must have some sense that the program structure will survive the changes that it will inevitably go through during its lifetime, and that those changes can be made easily and cleanly. This is no small feat. You must not only understand what you’re building, but also how the program will evolve (what I call the vector of change). Fortunately, object-oriented programming languages are particularly adapt at supporting this kind of continuing modification –the boundaries created by the objects are what tend to keep the structure from breaking down. They also allow you to make changes –ones that would seem drastic in a procedural program –without causing earthquakesthroughout your code. In fact, support for evolution might be the most important benefit of OOP.英文文献译文整个开发过程时,最重要的问题是:不要迷路。
计算机专业外文翻译+原文-数据库管理系统介绍知识讲解

计算机专业外文翻译+原文-数据库管理系统介绍外文资料Database Management SystemsA database (sometimes spelled data base) is also called an electronic database , referring to any collection of data, or information, that is specially organized for rapid search and retrieval by a computer. Databases are structured to facilitate the storage, retrieval , modification, and deletion of data in conjunction with various data-processing operations .Databases can be stored on magnetic disk or tape, optical disk, or some other secondary storage device.A database consists of a file or a set of files. The information in these files may be broken down into records, each of which consists of one or more fields. Fields are the basic units of data storage , and each field typically contains information pertaining to one aspect or attribute of the entity described by the database . Using keywords and various sorting commands, users can rapidly search , rearrange, group, and select the fields in many records to retrieve or create reports on particular aggregate of data.Complex data relationships and linkages may be found in all but the simplest databases .The system software package that handles the difficult tasks associated with creating ,accessing, and maintaining database records is called a database management system(DBMS).The programs in a DBMS package establish an interface between the database itself and the users of the database.. (These users may be applications programmers, managers and others with information needs, and various OS programs.)A DBMS can organize, process, and present selected data elements form the database. This capability enables decision makers to search, probe, and query database contents in order to extract answers to nonrecurring and unplanned questions that aren’t available in regular reports. These questions might initially be vague and/or poorly defined ,but people can “browse” through the database until they have the needed information. In short, the DBMS will “manage” the stored data items and assemble the needed items from the common database in response to the queries of those who aren’t programmers.A database management system (DBMS) is composed of three major parts:(1)a storage subsystem that stores and retrieves data in files;(2) a modeling and manipulation subsystem that provides the means with which to organize the data and to add , delete, maintain, and update the data;(3)and an interface between the DBMS and its users. Severalmajor trends are emerging that enhance the value and usefulness of database management systems;Managers: who require more up-to-data information to make effective decisionCustomers: who demand increasingly sophisticated information services and more current information about the status of their orders, invoices, and accounts.Users: who find that they can develop custom applications with database systems in a fraction of the time it takes to use traditional programming languages.Organizations : that discover information has a strategic value; they utilize theirdatabase systems to gain an edge over their competitors.The Database ModelA data model describes a way to structure and manipulate the data in a database. The structural part of the model specifies how data should be represented(such as tree, tables, and so on ).The manipulative part of the model specifies the operation with which to add, delete, display, maintain, print, search, select, sort and update the data.Hierarchical ModelThe first database management systems used a hierarchical model-that is-they arranged records into a tree structure. Some records are root records and all others have unique parent records. The structure of the tree is designed to reflect the order in which the data will be used that is ,the record at the root of a tree will be accessed first, then records one level below the root ,and so on.The hierarchical model was developed because hierarchical relationships are commonly found in business applications. As you have known, an organization char often describes a hierarchical relationship: top management is at the highest level, middle management at lower levels, and operational employees at the lowest levels. Note that within a strict hierarchy, each level of management may have many employees or levels of employees beneath it, but each employee has only one manager. Hierarchical data are characterized by this one-to-many relationship among data.In the hierarchical approach, each relationship must be explicitly defined when the database is created. Each record in a hierarchical database can contain only one key field and only one relationship is allowed between any two fields. This can create a problem because data do not always conform to such a strict hierarchy.Relational ModelA major breakthrough in database research occurred in 1970 when E. F. Codd proposed a fundamentally different approach to database management called relational model ,which uses a table as its data structure.The relational database is the most widely used database structure. Data is organized into related tables. Each table is made up of rows called and columns called fields. Each record contains fields of data about some specific item. For example, in a table containing information on employees, a record would contain fields of data such as a person’s last name ,first name ,and street address.Structured query language(SQL)is a query language for manipulating data in a relational database .It is nonprocedural or declarative, in which the user need only specify an English-like description that specifies the operation and the described record or combination of records. A query optimizer translates the description into a procedure to perform the database manipulation.Network ModelThe network model creates relationships among data through a linked-list structure in which subordinate records can be linked to more than one parent record. This approach combines records with links, which are called pointers. The pointers are addresses that indicate the location of a record. With the network approach, a subordinate record can be linked to a key record and at the same time itself be a key record linked to other sets of subordinate records. The network mode historically has had a performance advantage over other database models. Today , such performance characteristics are only important in high-volume ,high-speed transaction processing such as automatic teller machine networks or airline reservation system.Both hierarchical and network databases are application specific. If a new application is developed ,maintaining the consistency of databases in different applications can be very difficult. For example, suppose a new pension application is developed .The data are the same, but a new database must be created.Object ModelThe newest approach to database management uses an object model , in which records are represented by entities called objects that can both store data and provide methods or procedures to perform specific tasks.The query language used for the object model is the same object-oriented programming language used to develop the database application .This can create problems because there is no simple , uniform query language such as SQL . The object model isrelatively new, and only a few examples of object-oriented database exist. It has attracted attention because developers who choose an object-oriented programming language want a database based on an object-oriented model.Distributed DatabaseSimilarly , a distributed database is one in which different parts of the database reside on physically separated computers . One goal of distributed databases is the access of information without regard to where the data might be stored. Keeping in mind that once the users and their data are separated , the communication and networking concepts come into play .Distributed databases require software that resides partially in the larger computer. This software bridges the gap between personal and large computers and resolves the problems of incompatible data formats. Ideally, it would make the mainframe databases appear to be large libraries of information, with most of the processing accomplished on the personal computer.A drawback to some distributed systems is that they are often based on what is called a mainframe-entire model , in which the larger host computer is seen as the master and the terminal or personal computer is seen as a slave. There are some advantages to this approach . With databases under centralized control , many of the problems of data integrity that we mentioned earlier are solved . But today’s personal computers, departmental computers, and distributed processing require computers and their applications to communicate with each other on a more equal or peer-to-peer basis. In a database, the client/server model provides the framework for distributing databases.One way to take advantage of many connected computers running database applications is to distribute the application into cooperating parts that are independent of one anther. A client is an end user or computer program that requests resources across a network. A server is a computer running software that fulfills those requests across a network . When the resources are data in a database ,the client/server model provides the framework for distributing database.A file serve is software that provides access to files across a network. A dedicated file server is a single computer dedicated to being a file server. This is useful ,for example ,if the files are large and require fast access .In such cases, a minicomputer or mainframe would be used as a file server. A distributed file server spreads the files around on individual computers instead of placing them on one dedicated computer.Advantages of the latter server include the ability to store and retrieve files on other computers and the elimination of duplicate files on each computer. A major disadvantage , however, is that individual read/write requests are being moved across the network and problems can arise when updating files. Suppose a user requests a record from a file and changes it while another user requests the same record and changes it too. The solution to this problems called record locking, which means that the first request makes others requests wait until the first request is satisfied . Other users may be able to read the record, but they will not be able to change it .A database server is software that services requests to a database across a network. For example, suppose a user types in a query for data on his or her personal computer . If the application is designed with the client/server model in mind ,the query language part on the personal computer simple sends the query across the network to the database server and requests to be notified when the data are found.Examples of distributed database systems can be found in the engineering world. Sun’s Network Filing System(NFS),for example, is used in computer-aided engineering applications to distribute data among the hard disks in a network of Sun workstation.Distributing databases is an evolutionary step because it is logical that data should exist at the location where they are being used . Departmental computers within a large corporation ,for example, should have data reside locally , yet those data should be accessible by authorized corporate management when they want to consolidate departmental data . DBMS software will protect the security and integrity of the database , and the distributed database will appear to its users as no different from the non-distributed database .In this information age, the data server has become the heart of a company. This one piece of software controls the rhythm of most organizations and is used to pump information lifeblood through the arteries of the network. Because of the critical nature of this application, the data server is also the one of the most popular targets for hackers. If a hacker owns this application, he can cause the company's "heart" to suffer a fatal arrest.Ironically, although most users are now aware of hackers, they still do not realize how susceptible their database servers are to hack attacks. Thus, this article presents a description of the primary methods of attacking database servers (also known as SQL servers) and shows you how to protect yourself from these attacks.You should note this information is not new. Many technical white papers go into great detail about how to perform SQL attacks, and numerous vulnerabilities have beenposted to security lists that describe exactly how certain database applications can be exploited. This article was written for the curious non-SQL experts who do not care to know the details, and as a review to those who do use SQL regularly.What Is a SQL Server?A database application is a program that provides clients with access to data. There are many variations of this type of application, ranging from the expensive enterprise-level Microsoft SQL Server to the free and open source mySQL. Regardless of the flavor, most database server applications have several things in common.First, database applications use the same general programming language known as SQL, or Structured Query Language. This language, also known as a fourth-level language due to its simplistic syntax, is at the core of how a client communicates its requests to the server. Using SQL in its simplest form, a programmer can select, add, update, and delete information in a database. However, SQL can also be used to create and design entire databases, perform various functions on the returned information, and even execute other programs.To illustrate how SQL can be used, the following is an example of a simple standard SQL query and a more powerful SQL query:Simple: "Select * from dbFurniture.tblChair"This returns all information in the table tblChair from the database dbFurniture.Complex: "EXEC master..xp_cmdshell 'dir c:\'"This short SQL command returns to the client the list of files and folders under the c:\ directory of the SQL server. Note that this example uses an extended stored procedure that is exclusive to MS SQL Server.The second function that database server applications share is that they all require some form of authenticated connection between client and host. Although the SQL language is fairly easy to use, at least in its basic form, any client that wants to perform queries must first provide some form of credentials that will authorize the client; the client also must define the format of the request and response.This connection is defined by several attributes, depending on the relative location of the client and what operating systems are in use. We could spend a whole article discussing various technologies such as DSN connections, DSN-less connections, RDO, ADO, and more, but these subjects are outside the scope of this article. If you want to learn more about them, a little Google'ing will provide you with more than enough information.However, the following is a list of the more common items included in a connection request.Database sourceRequest typeDatabaseUser IDPasswordBefore any connection can be made, the client must define what type of database server it is connecting to. This is handled by a software component that provides the client with the instructions needed to create the request in the correct format. In addition to the type of database, the request type can be used to further define how the client's request will be handled by the server. Next comes the database name and finally the authentication information.All the connection information is important, but by far the weakest link is the authentication information—or lack thereof. In a properly managed server, each database has its own users with specifically designated permissions that control what type of activity they can perform. For example, a user account would be set up as read only for applications that need to only access information. Another account should be used for inserts or updates, and maybe even a third account would be used for deletes. This type of account control ensures that any compromised account is limited in functionality. Unfortunately, many database programs are set up with null or easy passwords, which leads to successful hack attacks.译文数据库管理系统介绍数据库(database,有时拼作data base)又称为电子数据库,是专门组织起来的一组数据或信息,其目的是为了便于计算机快速查询及检索。
数据库管理系统简介

数据库管理系统简介数据库管理系统(Database Management System,简称DBMS)是一种软件,作为管理和组织数据的工具,能够提供持久性的数据存储、高效的数据检索和数据处理功能。
在现代计算机系统中,数据库管理系统扮演着重要的角色,被广泛应用于各种领域,包括企业、学术机构、政府部门等。
本文将介绍数据库管理系统的基本概念、特点以及其在实际应用中的重要性。
一、数据库管理系统的基本概念1. 数据库(Database):数据库是按照一定数据模型组织、存储和管理数据的集合。
它可以包含各种类型的数据,例如文本、数字、图片等。
数据库可被视为一个独立的实体,能够持久地储存大量数据。
2. 数据库管理系统(DBMS):数据库管理系统是用于操作和管理数据库的软件。
它提供了创建、更新、删除和查询等操作,以及数据安全性、数据备份与恢复、并发控制等功能。
常见的数据库管理系统包括MySQL、Oracle、SQL Server等。
3. 数据库系统(Database System):数据库系统由数据库、数据库管理系统和应用程序组成。
它们协同工作,使得用户可以方便地访问和管理数据。
数据库系统通过提供数据共享、数据一致性和数据完整性来提高数据管理的效率。
二、数据库管理系统的特点1. 数据的共享性:数据库管理系统支持多用户访问同一数据库,可以实现数据的共享,提高了数据的利用率和共享性。
2. 数据的独立性:数据库管理系统能够实现数据与应用程序的分离,使得应用程序可以独立于数据的存储结构进行开发和维护。
3. 数据的完整性:数据库管理系统具有强大的数据完整性约束功能,可以保证数据的有效性和一致性。
4. 数据的持久性:数据库管理系统能够将数据持久地存储在磁盘上,即使在计算机系统发生故障时,数据也能够进行恢复。
5. 数据的安全性:数据库管理系统支持用户认证和权限控制机制,保证只有经过授权的用户才能够访问和修改数据,提高了数据的安全性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
外文资料Database Management SystemsA database (sometimes spelled data base) is also called an electronic database , referring to any collection of data, or information, that is specially organized for rapid search and retrieval by a computer. Databases are structured to facilitate the storage, retrieval , modification, and deletion of data in conjunction with various data-processing operations .Databases can be stored on magnetic disk or tape, optical disk, or some other secondary storage device.A database consists of a file or a set of files. The information in these files may be broken down into records, each of which consists of one or more fields. Fields are the basic units of data storage , and each field typically contains information pertaining to one aspect or attribute of the entity described by the database . Using keywords and various sorting commands, users can rapidly search , rearrange, group, and select the fields in many records to retrieve or create reports on particular aggregate of data.Complex data relationships and linkages may be found in all but the simplest databases .The system software package that handles the difficult tasks associated with creating ,accessing, and maintaining database records is called a database management system(DBMS).The programs in a DBMS package establish an interface between the database itself and the users of the database.. (These users may be applications programmers, managers and others with information needs, and various OS programs.)A DBMS can organize, process, and present selected data elements form the database. This capability enables decision makers to search, probe, and query database contents in order to extract answers to nonrecurring and unplanned questions that aren’t available in regular reports. These questions might initially be vague and/or poorly defined ,but people can “browse” through the database until they have the needed information. In short, the DBMS will “manage” the stored data items and assemble the needed items from the common database in response to the queries of those who aren’t programmers.A database management system (DBMS) is composed of three major parts:(1)a storage subsystem that stores and retrieves data in files;(2) a modeling and manipulation subsystem that provides the means with which to organize the data and to add , delete, maintain, and update the data;(3)and an interface between the DBMS and its users. Several major trends are emerging that enhance the value and usefulness of database management systems;Managers: who require more up-to-data information to make effective decisionCustomers: who demand increasingly sophisticated information services and more current information about the status of their orders, invoices, and accounts.Users: who find that they can develop custom applications with database systems in a fraction of the time it takes to use traditional programming languages.Organizations : that discover information has a strategic value; they utilize their database systems to gain an edge over their competitors.The Database ModelA data model describes a way to structure and manipulate the data in a database. The structural part of the model specifies how data should be represented(such as tree, tables, and so on ).The manipulative part of the model specifies the operation with which to add, delete, display, maintain, print, search, select, sort and update the data.Hierarchical ModelThe first database management systems used a hierarchical model-that is-they arranged records into a tree structure. Some records are root records and all others have unique parent records. The structure of the tree is designed to reflect the order in which the data will be used that is ,the record at the root of a tree will be accessed first, then records one level below the root ,and so on.The hierarchical model was developed because hierarchical relationships are commonly found in business applications. As you have known, an organization char often describes a hierarchical relationship: top management is at the highest level, middle management at lower levels, and operational employees at the lowest levels. Note that within a strict hierarchy, each level of management may have many employees or levels of employees beneath it, but each employee has only one manager. Hierarchical data are characterized by this one-to-many relationship among data.In the hierarchical approach, each relationship must be explicitly defined when the database is created. Each record in a hierarchical database can contain only one key field and only one relationship is allowed between any two fields. This can create a problem because data do not always conform to such a strict hierarchy.Relational ModelA major breakthrough in database research occurred in 1970 when E. F. Codd proposed a fundamentally different approach to database management called relational model ,which uses a table as its data structure.The relational database is the most widely used database structure. Data is organized into related tables. Each table is made up of rows called and columns called fields. Each record contains fields of data about some specific item. For example, in a table containing information on employees, a recordwould contain fields of data such as a person’s last name ,first name ,and street address.Structured query language(SQL)is a query language for manipulating data in a relational database .It is nonprocedural or declarative, in which the user need only specify an English-like description that specifies the operation and the described record or combination of records. A query optimizer translates the description into a procedure to perform the database manipulation.Network ModelThe network model creates relationships among data through a linked-list structure in which subordinate records can be linked to more than one parent record. This approach combines records with links, which are called pointers. The pointers are addresses that indicate the location of a record. With the network approach, a subordinate record can be linked to a key record and at the same time itself be a key record linked to other sets of subordinate records. The network mode historically has had a performance advantage over other database models. Today , such performance characteristics are only important in high-volume ,high-speed transaction processing such as automatic teller machine networks or airline reservation system.Both hierarchical and network databases are application specific. If a new application is developed ,maintaining the consistency of databases in different applications can be very difficult. For example, suppose a new pension application is developed .The data are the same, but a new database must be created.Object ModelThe newest approach to database management uses an object model , in which records are represented by entities called objects that can both store data and provide methods or procedures to perform specific tasks.The query language used for the object model is the same object-oriented programming language used to develop the database application .This can create problems because there is no simple , uniform query language such as SQL . The object model is relatively new, and only a few examples of object-oriented database exist. It has attracted attention because developers who choose an object-oriented programming language want a database based on an object-oriented model. Distributed DatabaseSimilarly , a distributed database is one in which different parts of the database reside on physically separated computers . One goal of distributed databases is the access of information without regard to where the data might be stored. Keeping in mind that once the users and their data are separated , the communication and networking concepts come into play .Distributed databases require software that resides partially in the larger computer. This software bridges the gap between personal and large computers and resolves the problems of incompatible dataformats. Ideally, it would make the mainframe databases appear to be large libraries of information, with most of the processing accomplished on the personal computer.A drawback to some distributed systems is that they are often based on what is called a mainframe-entire model , in which the larger host computer is seen as the master and the terminal or personal computer is seen as a slave. There are some advantages to this approach . With databases under centralized control , many of the problems of data integrity that we mentioned earlier are solved . But today’s personal computers, departmental computers, and distributed processing require computers and their applications to communicate with each other on a more equal or peer-to-peer basis. In a database, the client/server model provides the framework for distributing databases.One way to take advantage of many connected computers running database applications is to distribute the application into cooperating parts that are independent of one anther. A client is an end user or computer program that requests resources across a network. A server is a computer running software that fulfills those requests across a network . When the resources are data in a database ,the client/server model provides the framework for distributing database.A file serve is software that provides access to files across a network. A dedicated file server is a single computer dedicated to being a file server. This is useful ,for example ,if the files are large and require fast access .In such cases, a minicomputer or mainframe would be used as a file server. A distributed file server spreads the files around on individual computers instead of placing them on one dedicated computer.Advantages of the latter server include the ability to store and retrieve files on other computers and the elimination of duplicate files on each computer. A major disadvantage , however, is that individual read/write requests are being moved across the network and problems can arise when updating files. Suppose a user requests a record from a file and changes it while another user requests the same record and changes it too. The solution to this problems called record locking, which means that the first request makes others requests wait until the first request is satisfied . Other users may be able to read the record, but they will not be able to change it .A database server is software that services requests to a database across a network. For example, suppose a user types in a query for data on his or her personal computer . If the application is designed with the client/server model in mind ,the query language part on the personal computer simple sends the query across the network to the database server and requests to be notified when the data are found.Examples of distributed database systems can be found in the engineering world. Sun’s Network Filing System(NFS),for example, is used in computer-aided engineering applications to distribute data among the hard disks in a network of Sun workstation.Distributing databases is an evolutionary step because it is logical that data should exist at thelocation where they are being used . Departmental computers within a large corporation ,for example, should have data reside locally , yet those data should be accessible by authorized corporate management when they want to consolidate departmental data . DBMS software will protect the security and integrity of the database , and the distributed database will appear to its users as no different from the non-distributed database .In this information age, the data server has become the heart of a company. This one piece of software controls the rhythm of most organizations and is used to pump information lifeblood through the arteries of the network. Because of the critical nature of this application, the data server is also the one of the most popular targets for hackers. If a hacker owns this application, he can cause the company's "heart" to suffer a fatal arrest.Ironically, although most users are now aware of hackers, they still do not realize how susceptible their database servers are to hack attacks. Thus, this article presents a description of the primary methods of attacking database servers (also known as SQL servers) and shows you how to protect yourself from these attacks.You should note this information is not new. Many technical white papers go into great detail about how to perform SQL attacks, and numerous vulnerabilities have been posted to security lists that describe exactly how certain database applications can be exploited. This article was written for the curious non-SQL experts who do not care to know the details, and as a review to those who do use SQL regularly.What Is a SQL Server?A database application is a program that provides clients with access to data. There are many variations of this type of application, ranging from the expensive enterprise-level Microsoft SQL Server to the free and open source mySQL. Regardless of the flavor, most database server applications have several things in common.First, database applications use the same general programming language known as SQL, or Structured Query Language. This language, also known as a fourth-level language due to its simplistic syntax, is at the core of how a client communicates its requests to the server. Using SQL in its simplest form, a programmer can select, add, update, and delete information in a database. However, SQL can also be used to create and design entire databases, perform various functions on the returned information, and even execute other programs.To illustrate how SQL can be used, the following is an example of a simple standard SQL query and a more powerful SQL query:Simple: "Select * from dbFurniture.tblChair"This returns all information in the table tblChair from the database dbFurniture.Complex: "EXEC master..xp_cmdshell 'dir c:\'"This short SQL command returns to the client the list of files and folders under the c:\ directory of the SQL server. Note that this example uses an extended stored procedure that is exclusive to MS SQL Server.The second function that database server applications share is that they all require some form of authenticated connection between client and host. Although the SQL language is fairly easy to use, at least in its basic form, any client that wants to perform queries must first provide some form of credentials that will authorize the client; the client also must define the format of the request and response.This connection is defined by several attributes, depending on the relative location of the client and what operating systems are in use. We could spend a whole article discussing various technologies such as DSN connections, DSN-less connections, RDO, ADO, and more, but these subjects are outside the scope of this article. If you want to learn more about them, a little Google'ing will provide you with more than enough information. However, the following is a list of the more common items included in a connection request.Database sourceRequest typeDatabaseUser IDPasswordBefore any connection can be made, the client must define what type of database server it is connecting to. This is handled by a software component that provides the client with the instructions needed to create the request in the correct format. In addition to the type of database, the request type can be used to further define how the client's request will be handled by the server. Next comes the database name and finally the authentication information.All the connection information is important, but by far the weakest link is the authentication information—or lack thereof. In a properly managed server, each database has its own users with specifically designated permissions that control what type of activity they can perform. For example, a user account would be set up as read only for applications that need to only access information. Another account should be used for inserts or updates, and maybe even a third account would be used for deletes. This type of account control ensures that any compromised account is limited in functionality. Unfortunately, many database programs are set up with null or easy passwords, which leads to successful hack attacks.译文数据库管理系统介绍数据库(database,有时拼作data base)又称为电子数据库,是专门组织起来的一组数据或信息,其目的是为了便于计算机快速查询及检索。