romikgosai/squad_modified_2 huggingface dataset:
As computers grew in speed and capability, a number of general-purpose database systems emerged; by the mid-1960s a number of such systems had come into commercial use. Interest in a standard began to grow, and Charles Bachman, author of one such product, the Integrated Data Store (IDS), founded the "Database Task Group" within CODASYL, the group responsible for the creation and standardization of COBOL. In 1971 the Database Task Group delivered their standard, which generally became known as the "CODASYL approach", and soon a number of commercial products based on this approach entered the market.

Q1: Why was COBOL created?
A1: Interest in a standard
Q2: When were DBMSs first used commercially?
A2: mid-1960s
Q3: When was the standard protocol completed?
A3: 1971
Q4: What group discovered COBOL?
A4: Database Task Group
Q5: What was the standard protocol called?
A5: CODASYL approach
IBM also had their own DBMS in 1966, known as Information Management System (IMS). IMS was a development of software written for the Apollo program on the System/360. IMS was generally similar in concept to CODASYL, but used a strict hierarchy for its model of data navigation instead of CODASYL's network model. Both concepts later became known as navigational databases due to the way data was accessed, and Bachman's 1973 Turing Award presentation was The Programmer as Navigator. IMS is classified[by whom?] as a hierarchical database. IDMS and Cincom Systems' TOTAL database are classified as network databases. IMS remains in use as of 2014[update].

Q1: What was the DBMS created by IBM called?
A1: Information Management System (IMS)
Q2: What was the purpose of the IBM DBMS?
A2: the Apollo program
Q3: What is the classification of IMS?
A3: hierarchical database
Q4: What was the name of Bachman's Turing Award presentation in 1973?
A4: The Programmer as Navigator
In this paper, he described a new system for storing and working with large databases. Instead of records being stored in some sort of linked list of free-form records as in CODASYL, Codd's idea was to use a "table" of fixed-length records, with each table used for a different type of entity. A linked-list system would be very inefficient when storing "sparse" databases where some of the data for any one record could be left empty. The relational model solved this by splitting the data into a series of normalized tables (or relations), with optional elements being moved out of the main table to where they would take up room only if needed. Data may be freely inserted, deleted and edited in these tables, with the DBMS doing whatever maintenance needed to present a table view to the application/user.

Q1: Who proposed using a table to store data?
A1: Codd
Q2: How is data accessed in a table?
A2: A linked-list system
Q3: What model solved the problem of databases where information was missing?
A3: relational
Q4: What system assists a user in seeing a table?
A4: DBMS
The relational model also allowed the content of the database to evolve without constant rewriting of links and pointers. The relational part comes from entities referencing other entities in what is known as one-to-many relationship, like a traditional hierarchical model, and many-to-many relationship, like a navigational (network) model. Thus, a relational model can express both hierarchical and navigational models, as well as its native tabular model, allowing for pure or combined modeling in terms of these three models, as the application requires.

Q1: How was the relational model able to improve over time?
A1: without constant rewriting of links and pointers
Q2: What is the relationship called in a hierarchical model?
A2: one-to-many
Q3: What is the relationship called in a navigational model?
A3: many-to-many
Q4: What is a third type of model that can be combined with heirarchical and navigation models?
A4: tabular
For instance, a common use of a database system is to track information about users, their name, login information, various addresses and phone numbers. In the navigational approach all of this data would be placed in a single record, and unused items would simply not be placed in the database. In the relational approach, the data would be normalized into a user table, an address table and a phone number table (for instance). Records would be created in these optional tables only if the address or phone numbers were actually provided.

Q1: How is information stored in a navigational system?
A1: in a single record
Q2: How is a database system frequently used?
A2: to track information about users
Q3: How is information stored in a relational system?
A3: normalized into a user table
Q4: What happens to blank data fields in a navigational system?
A4: not be placed in the database
Linking the information back together is the key to this system. In the relational model, some bit of information was used as a "key", uniquely defining a particular record. When information was being collected about a user, information stored in the optional tables would be found by searching for this key. For instance, if the login name of a user is unique, addresses and phone numbers for that user would be recorded with the login name as its key. This simple "re-linking" of related data back into a single collection is something that traditional computer languages are not designed for.

Q1: What is a key used for?
A1: uniquely defining a particular record
Q2: What technique is used to collect into one place?
A2: re-linking
Q3: How is information accessed in a relational model?
A3: a "key"
Q4: How is data in an optional table accessed?
A4: by searching for this key
Just as the navigational approach would require programs to loop in order to collect records, the relational approach would require loops to collect information about any one record. Codd's solution to the necessary looping was a set-oriented language, a suggestion that would later spawn the ubiquitous SQL. Using a branch of mathematics known as tuple calculus, he demonstrated that such a system could support all the operations of normal databases (inserting, updating etc.) as well as providing a simple system for finding and returning sets of data in a single operation.

Q1: How does a program collect information using a navigational system?
A1: require programs to loop
Q2: What is used to solve the problem of looping?
A2: a set-oriented language
Q3: What computer language came about as a result of the looping problem?
A3: SQL
Q4: What type of math was used to create a system to find data sets?
A4: tuple calculus
Q5: Who used tuple calculus to show the functionality of databases?
A5: Codd
Codd's paper was picked up by two people at Berkeley, Eugene Wong and Michael Stonebraker. They started a project known as INGRES using funding that had already been allocated for a geographical database project and student programmers to produce code. Beginning in 1973, INGRES delivered its first test products which were generally ready for widespread use in 1979. INGRES was similar to System R in a number of ways, including the use of a "language" for data access, known as QUEL. Over time, INGRES moved to the emerging SQL standard.

Q1: Who used Codd's paper at Berkeley to improve a geographical database?
A1: Eugene Wong and Michael Stonebraker
Q2: What was the name of the project to create a geographical database?
A2: INGRES
Q3: When was INGRES first tested?
A3: 1973
Q4: What computer language was used in INGRES to access data?
A4: QUEL
Q5: Is QUEL still used to access data in INGRES?
A5: INGRES moved to the emerging SQL standard
Another approach to hardware support for database management was ICL's CAFS accelerator, a hardware disk controller with programmable search capabilities. In the long term, these efforts were generally unsuccessful because specialized database machines could not keep pace with the rapid development and progress of general-purpose computers. Thus most database systems nowadays are software systems running on general-purpose hardware, using general-purpose computer data storage. However this idea is still pursued for certain applications by some companies like Netezza and Oracle (Exadata).

Q1: What is a CAFS accelerator?
A1: a hardware disk controller with programmable search capabilities
Q2: Did the CAFS accelerator work as planned?
A2: efforts were generally unsuccessful
Q3: How are today's database systems run?
A3: general-purpose hardware
Q4: Name a company that is still working on the CAFS accellerator?
A4: Netezza and Oracle (Exadata)
IBM started working on a prototype system loosely based on Codd's concepts as System R in the early 1970s. The first version was ready in 1974/5, and work then started on multi-table systems in which the data could be split so that all of the data for a record (some of which is optional) did not have to be stored in a single large "chunk". Subsequent multi-user versions were tested by customers in 1978 and 1979, by which time a standardized query language – SQL[citation needed] – had been added. Codd's ideas were establishing themselves as both workable and superior to CODASYL, pushing IBM to develop a true production version of System R, known as SQL/DS, and, later, Database 2 (DB2).

Q1: What is the system IBM created using Codd's research?
A1: System R
Q2: When was IBM's system released?
A2: 1974/5
Q3: What did System R work on to change the way data was stored?
A3: multi-table systems
Q4: When customers first tested IBM's system, what computer language had been added?
A4: SQL
Q5: What was the name of the database product created by IBM?
A5: SQL/DS, and, later, Database 2 (DB2)
The 1980s ushered in the age of desktop computing. The new computers empowered their users with spreadsheets like Lotus 1-2-3 and database software like dBASE. The dBASE product was lightweight and easy for any computer user to understand out of the box. C. Wayne Ratliff the creator of dBASE stated: "dBASE was different from programs like BASIC, C, FORTRAN, and COBOL in that a lot of the dirty work had already been done. The data manipulation is done by dBASE instead of by the user, so the user can concentrate on what he is doing, rather than having to mess with the dirty details of opening, reading, and closing files, and managing space allocation." dBASE was one of the top selling software titles in the 1980s and early 1990s.

Q1: Who created dBASE?
A1: C. Wayne Ratliff
Q2: Why was dBASE unique?
A2: data manipulation is done by dBASE
Q3: Why was dBASE successful?
A3: lightweight and easy for any computer user to understand out of the box
Q4: What is a benefit of using dBASE?
A4: managing space allocation
The 1990s, along with a rise in object-oriented programming, saw a growth in how data in various databases were handled. Programmers and designers began to treat the data in their databases as objects. That is to say that if a person's data were in a database, that person's attributes, such as their address, phone number, and age, were now considered to belong to that person instead of being extraneous data. This allows for relations between data to be relations to objects and their attributes and not to individual fields. The term "object-relational impedance mismatch" described the inconvenience of translating between programmed objects and database tables. Object databases and object-relational databases attempt to solve this problem by providing an object-oriented language (sometimes as extensions to SQL) that programmers can use as alternative to purely relational SQL. On the programming side, libraries known as object-relational mappings (ORMs) attempt to solve the same problem.

Q1: In the 1990s, what type of programming changed the handling of databases?
A1: object-oriented
Q2: What term is used for the difficulty in database table and programmed object translation?
A2: object-relational impedance mismatch
Q3: How is the problem of object-relational impedance mismatch corrected?
A3: object-oriented language
Q4: What is the library programmers use to solve object-relational impedance mismatch?
A4: object-relational mappings (ORMs)
XML databases are a type of structured document-oriented database that allows querying based on XML document attributes. XML databases are mostly used in enterprise database management, where XML is being used as the machine-to-machine data interoperability standard. XML database management systems include commercial software MarkLogic and Oracle Berkeley DB XML, and a free use software Clusterpoint Distributed XML/JSON Database. All are enterprise software database platforms and support industry standard ACID-compliant transaction processing with strong database consistency characteristics and high level of database security.

Q1: What kind of database is XML?
A1: structured document-oriented database
Q2: Where are XML databases frequently used?
A2: enterprise database management
Q3: What type of processing is used in enterprise database software?
A3: ACID-compliant transaction processing
Q4: How is XML used in enterprise database management?
A4: machine-to-machine data
In recent years there was a high demand for massively distributed databases with high partition tolerance but according to the CAP theorem it is impossible for a distributed system to simultaneously provide consistency, availability and partition tolerance guarantees. A distributed system can satisfy any two of these guarantees at the same time, but not all three. For that reason many NoSQL databases are using what is called eventual consistency to provide both availability and partition tolerance guarantees with a reduced level of data consistency.

Q1: What is used to offer a balance in guarantees?
A1: eventual consistency
Q2: What explains the difficulty in a system containing availability, consistency, and partition tolerance guarantees?
A2: the CAP theorem
Q3: How many guarantees will most databases tolerate?
A3: two
The first task of a database designer is to produce a conceptual data model that reflects the structure of the information to be held in the database. A common approach to this is to develop an entity-relationship model, often with the aid of drawing tools. Another popular approach is the Unified Modeling Language. A successful data model will accurately reflect the possible state of the external world being modeled: for example, if people can have more than one phone number, it will allow this information to be captured. Designing a good conceptual data model requires a good understanding of the application domain; it typically involves asking deep questions about the things of interest to an organisation, like "can a customer also be a supplier?", or "if a product is sold with two different forms of packaging, are those the same product or different products?", or "if a plane flies from New York to Dubai via Frankfurt, is that one flight or two (or maybe even three)?". The answers to these questions establish definitions of the terminology used for entities (customers, products, flights, flight segments) and their relationships and attributes.

Q1: What should a conceptual data model do?
A1: reflects the structure of the information to be held
Q2: What makes a successful data model?
A2: accurately reflect the possible state of the external world being modeled
Q3: Asking questions about an organization's needs will help to create what?
A3: definitions of the terminology used for entities
Q4: What must one understand in order to create a successful data model?
A4: the application domain
Having produced a conceptual data model that users are happy with, the next stage is to translate this into a schema that implements the relevant data structures within the database. This process is often called logical database design, and the output is a logical data model expressed in the form of a schema. Whereas the conceptual data model is (in theory at least) independent of the choice of database technology, the logical data model will be expressed in terms of a particular database model supported by the chosen DBMS. (The terms data model and database model are often used interchangeably, but in this article we use data model for the design of a specific database, and database model for the modelling notation used to express that design.)

Q1: A conceptual data model in separate from the choice of what?
A1: database technology
Q2: In what form is the output of a logical database design?
A2: schema
Q3: Which data model is displayed as a specific model that uses DBMS?
A3: logical
The final stage of database design is to make the decisions that affect performance, scalability, recovery, security, and the like. This is often called physical database design. A key goal during this stage is data independence, meaning that the decisions made for performance optimization purposes should be invisible to end-users and applications. Physical design is driven mainly by performance requirements, and requires a good knowledge of the expected workload and access patterns, and a deep understanding of the features offered by the chosen DBMS.

Q1: What decisions must be made in the last stage of database design?
A1: performance, scalability, recovery, security
Q2: What is an important goal in in this final stage?
A2: data independence
Q3: What factor is reflected in performance requirements?
A3: Physical design
While there is typically only one conceptual (or logical) and physical (or internal) view of the data, there can be any number of different external views. This allows users to see database information in a more business-related way rather than from a technical, processing viewpoint. For example, a financial department of a company needs the payment details of all employees as part of the company's expenses, but does not need details about employees that are the interest of the human resources department. Thus different departments need different views of the company's database.

Q1: How many conceptual or physical views of data are there?
A1: one
Q2: How many different external views of data are there?
A2: any number
Q3: What is the benefit of external views of data?
A3: see database information in a more business-related way
The conceptual view provides a level of indirection between internal and external. On one hand it provides a common view of the database, independent of different external view structures, and on the other hand it abstracts away details of how the data are stored or managed (internal level). In principle every level, and even every external view, can be presented by a different data model. In practice usually a given DBMS uses the same data model for both the external and the conceptual levels (e.g., relational model). The internal level, which is hidden inside the DBMS and depends on its implementation, requires a different level of detail and uses its own types of data structure types.

Q1: What does the conceptual view offer?
A1: a level of indirection between internal and external
Q2: How does the conceptual view handle how data is managed?
A2: abstracts away details
Q3: What type of view does the conceptual view offer?
A3: common
Database storage is the container of the physical materialization of a database. It comprises the internal (physical) level in the database architecture. It also contains all the information needed (e.g., metadata, "data about the data", and internal data structures) to reconstruct the conceptual level and external level from the internal level when needed. Putting data into permanent storage is generally the responsibility of the database engine a.k.a. "storage engine". Though typically accessed by a DBMS through the underlying operating system (and often utilizing the operating systems' file systems as intermediates for storage layout), storage properties and configuration setting are extremely important for the efficient operation of the DBMS, and thus are closely maintained by database administrators. A DBMS, while in operation, always has its database residing in several types of storage (e.g., memory and external storage). The database data and the additional needed information, possibly in very large amounts, are coded into bits. Data typically reside in the storage in structures that look completely different from the way the data look in the conceptual and external levels, but in ways that attempt to optimize (the best possible) these levels' reconstruction when needed by users and programs, as well as for computing additional types of needed information from the data (e.g., when querying the database).

Q1: What is responsible for putting information into permanent storage?
A1: database engine
Q2: What do database administrators closely monitor?
A2: storage properties and configuration setting
Q3: What is database storage?
A3: physical materialization of a database
Q4: While working, does DBMS store information in one place?
A4: several types of storage
Q5: What are huge quantities of information stored as?
A5: bits
Database access control deals with controlling who (a person or a certain computer program) is allowed to access what information in the database. The information may comprise specific database objects (e.g., record types, specific records, data structures), certain computations over certain objects (e.g., query types, or specific queries), or utilizing specific access paths to the former (e.g., using specific indexes or other data structures to access information). Database access controls are set by special authorized (by the database owner) personnel that uses dedicated protected security DBMS interfaces.

Q1: What does database access limit?
A1: who (a person or a certain computer program) is allowed to access what information
Q2: What are examples of database objects?
A2: record types, specific records, data structures
Q3: Who sets database access?
A3: special authorized (by the database owner) personnel
This may be managed directly on an individual basis, or by the assignment of individuals and privileges to groups, or (in the most elaborate models) through the assignment of individuals and groups to roles which are then granted entitlements. Data security prevents unauthorized users from viewing or updating the database. Using passwords, users are allowed access to the entire database or subsets of it called "subschemas". For example, an employee database can contain all the data about an individual employee, but one group of users may be authorized to view only payroll data, while others are allowed access to only work history and medical data. If the DBMS provides a way to interactively enter and update the database, as well as interrogate it, this capability allows for managing personal databases.

Q1: What does data security avoid?
A1: unauthorized users from viewing or updating the database
Q2: What is a subset of a database called that can be accessed by using a password?
A2: subschemas
Q3: What is possible when a DBMS interrogate and update a database?
A3: managing personal databases
Database transactions can be used to introduce some level of fault tolerance and data integrity after recovery from a crash. A database transaction is a unit of work, typically encapsulating a number of operations over a database (e.g., reading a database object, writing, acquiring lock, etc.), an abstraction supported in database and also other systems. Each transaction has well defined boundaries in terms of which program/code executions are included in that transaction (determined by the transaction's programmer via special transaction commands).

Q1: What is a unit of work called in a database?
A1: transaction
Q2: Are transactions limited?
A2: Each transaction has well defined boundaries
Q3: How can database transactions ensure accuracy after a crash?
A3: fault tolerance