Database Comparisons: An Overview
Comparison / Flat File / Hierarchical / Network / Relational / Object-Oriented / HybridTimeframe / Late 1950’s- early 1960’s / Mid 1960’s- early 1970’s / Late 1960’s- mid 1970’s / Early 1970’s-present / Late 1980’s-present / Late 1960’s- early 1970’s (Nested)
Late 1990’s-present
(Object-Relational)
Database
Evolution / 1st Generation / 2nd Generation / 2nd Generation / 3rd Generation / 4th Generation / 4th Generation
Acronym / DBF / DBMS / DBMS / RDBMS / OODBS, ODBMS or OODBMS / O-R, ORDB or ORDBMS
Description / File orientation & navigation; file structures & proprietary program interfaces / Hierarchical orientation & navigation; hierarchies of related records & standard interfaces / Network orientation & navigation; uses hierarchically-arranged data with the exception that child tables can have more than one parent; standard interfaces / Relational orientation; data retrieved by unique keys; relationships expressed through matching keys; physical organization of data managed by RDBMS / Object orientation; active, distributed processing & more powerful operators; uses object-oriented programming to combine data structures with functions to create re-usable objects / Nested:database/operating system with tool for data retrieval built in
Object-Relational:
relational databases that have evolved to add object-oriented features
Physical Structure / Flat file; one-dimensional; frequently in tabular format; oftentimes multiple copies of the same data were maintained, each copy sorted in a different way / Tree; parent-child relationships; single table acts as the “root” of the database from which other tables “branch” out; child can only have one parent, but a parent can have multiple children / Network of interrelated lists; looks like several trees that share branches; children have multiple parents and parents have multiple children / Data is stored in relations (tables); relationships maintained by placing a key field value of one record as an attribute in the related record / Modeling & creation of data as objects; store objects and operations to be performed on data; applications interact with object managers which work through object servers to gain access to object stores / Organize information common to relational tabular structures; subsume the relational database model
Diagram / See pp. 8 / See pp. 9 / See pp. 10 / See pp. 11
Programming Languages Used / Assembler, Fortran, COBOL; spreadsheets use non-algorithmic programming language / Commands embedded in programming languages; COBOL, PL1, Fortran, ADS & Assembler / Commands embedded in programming languages; COBOL, PL1, Fortran, ADS & Assembler / SQL, ODBC / Java, C++, Smalltalk, Ada, Object Pascal, Objective DRAGOON, BETA, Emerald, POOL, Eiffel, Seif, Oblog, ESP. Loops, Visual Basic, POLKA & Python / Relational:
SQL3, ODBC, JDBC
Object-Oriented: Java, C++, Smalltalk, etc.
Structural Changes / If new fields were added to the file, every program that accessed that file had to be changed & data files would have to be converted / Inflexible (once data is organized in a particular way, difficult to change); data reorganization complicated; requires careful design / Inflexible (once data is organized in a particular way, difficult to change); data reorganization complicated; requires careful design / Flexible; because tables are subject-specifickey fields relate one entity to another, both the data & the database structure can be easily modified & manipulated; programs independent of data format which yields flexibility when modifications are needed / Flexible; programs are built using chunks or modules consisting of preassembled code & data which makes programming easier & faster; changes are made in the underlying code rather than in the design or structure of the database / Cartridges, DataBlades, & Extenders are modules that build on the object/relational infrastructure; they consist of types, data structures, functions, & data & often include special developer interfaces or prebuilt applications
Relationships / No structured interrelationship between its data records / Linked lists using pointers stored in the parent/child records to navigate through the records; pointers could be a disk address, the key field, or other random access technique; start at root and work down the tree to reach target data; supports one-to-one & one-to-many relationships / Uses series of linked lists to implement relationships between records; each list has an owner record & possibly many member records; a single record can either be the owner or a member of several lists of various types;
supports one-to- one, one-to-many, & many-to-many relationships / Uses key fields to link data in many different ways; supports one-to-one, one-to-many & many-to-many relationships / Defines software pieces, object types, actions/methods & the interrelation- ships between these objects; allows objects to be re-used for different purposes / Primarily a relational structure with object-oriented features included
Advantages / First method for converting raw data into usable information / Easily shows one-to-one & one-to-many relationships;
More efficient than the flat file model b/c less need for redundant data / Network model solves problem of data redundancy by representing relationships in terms of sets rather than hierarchy; allowed complex data structures to be built; very efficient in storage & fast; better job with many-to-many relationships / More easily visualize data organization & relationships; ease of design & user-friendly GUI interfaces; modern query tools & report generators; ease of data entry; tables represent a single subject; no duplicate data which reduces errors & improves consistency & eases database maintenance; relationships increase data integrity; more information from same data due to file integration; new & one-time requests easily accommodated; customized, menu-driven interfaces can be easily developed; concurrent access to the data; increased productivity; application code generators;referential integrity controls; transactional integrity ensures that incomplete transactions do not occur; optimization of storage & database operation execution times; database users don’t corrupt each other’s work; scalable (can spread load across multiple CPUs or servers); best for data collection & querying; allows built-in validation; define & store schema (DB structure), load initial data, provide a variety of access methods, add, modify & delete data, provide multiple views of the data, provide security features, facilitate backup and recovery / Using OOP (object-oriented programming), ability to model, store & manipulate complex data (i.e. multimedia); support for special operations common to niche markets not well supported by more mainstream database engines (i.e. CAD/CAM & document management); supports data structures for arrays which are useful for waveform data such as EKGs and EEGs; persistence, secondary storage management; concurrency; recovery & ad hoc query facilities; when using OOP, no need to translate into a database sub-language (i.e. SQL, ODBC or JDBC) which means 1) writing less code (as much as 40% less) & 2) performance is faster b/c already in the correct format & doesn’t have to be translated (but this depends on complexity of data); best used for information analysis focusing on capability to navigate through & analyze large volumes of data (i.e. production planning, network planning, financial engineering); applications are very dynamic and schemas very complex; supports diverse data types; rather than force fitting all information into a handful of predefined data types (as in RDBMS), object databases allow developers to define & use data types that directly reflect the real solution; ODBMS figures out how to physically configure & store information; today, objects & object containers go through a translation known as mapping to work directly with SQL-based relational databases; some modern object databases also support SQL; provides integration / Supports SQL; based on relational model so familiar to the user, yet provides some object-oriented features & benefits
Disadvantages / Flat file environment created program/data dependence meaning that changes in the format of the data also required changes in all the programs that accessed the data;for any new analyses of the data in the form of a written report, new programs had to be written or existing programs had to be modified which seriously affected productivity for programmers & end-users;
record descriptions & access methods for each file must be coded in every program that accessed the file; heavy conversion & enhancement workload; flat files need to store excessive amounts of redundant data; more than one subject; duplicate data; validation is manual / No support for many-to-many relationships; user must know how the tree is structured to find anything; cannot add a record to a child table until it has been incorporated into the parent table; still creates data duplication / More difficult to navigate and visualize compared to the hierarchical model; model difficult to implement and maintain; most implementations were used by programmers rather than end-users; had to have an understanding of how the database was structured in order to retrieve, insert, update or delete records; required a lot of programming to use successfully / Initially, had slow performance in 70’s & 80’s, but today’s more powerful machines speed up performance;wide price range, can be expensive; additional hardware might be required (i.e. faster CPU, more memory and disk space); high impact of failure due to centralization and non-duplication of data; sophisticated design and programming required for some products; additional user training may be needed due to added system capabilities; backup and recovery are more difficult due to concurrency and complexity; security is more critical and complicated due to shared usage of central database / Due to time and cost involved, many hesitate to convert existing DBMS to OODBMS; lack of familiarity; most programmers understand RDBMS better than ODBMS; inertia (easier to use what you know); technology & business fear (most ODBMS vendors are small companies (is the risk worth the technological benefits?); not enough object developers; performance can suffer when developers use haphazard object design; reliability & availability suffered in the past due to lack of investment in management tools; past object-oriented databases did not support SQL which was the standard query language of the day; requires tightly coupled language interface & ability to handle the creation & evolution of schema without a lot of programmer intervention / O-R databases force fits objects into a limited physical typing model required by their relational core design; O-R databases offer full SQL compliance, but limited object capabilities
Examples / MS Excel; Visi-Calc; Lotus 1-2-3; VP-Planner; Quattro; Symphony; MultiPlan / IMS (Information Management System) by IBM / Satellite communications, airline reservations; IDMS (Integrated Database Management System) from Cullinet / Oracle, Informix, Ingres, Sybase, DB2, MS Access, FileMaker Pro, Visual FoxPro, SQL Server, MySQL (free), PostgreSQL (free) / ObjectStore, Versant, O2, Gemstone, ONTOS, POET, Objectivity/DB, Jasmine, Matisse / Oracle8, IBM’s UDB, Sybase
Status Today / Limited usage (i.e. spreadsheets, address books, bulk email used by spammers) / Limited usage (i.e. Windows file structure) / Limited usage (i.e. still used in satellite communications & airline reservation systems) / Most popular DBMS in use today as a result of technical development efforts to ensure that advances such as object orientation, web serving, etc. appear quickly & reliably / Gaining popularity; growing at a rate of 30-40% each year; will see mostly in new development / Appears that all relational systems of the future will be object-relational or RDBMS will co-exist side-by-side ODBMS
9/28/2018 1