History of Implementation Data Models
Databases were: Early Business Computer Systems –Accounting functions - payroll, profit/loss statements Files of data - file oriented (physical hardware) – sequential and random access (index)
In 1960's needed: Integrated centralized data structure Redundancy DBA's Data models
Mid 1960's - Hierarchical data model logical level - data relationships relationships structured as hierarchies parents and children child can have only 1 parent 1-to-many
Hierarchical Example Store products customer supplier manu Invoice
To query Hierarchical Used pointers Any query through the data followed pointers manipulated 1 row at a time For each store: Get next store For each product: Get next product For each supplier: Get next supplier Process supplier
Hierarchical DB Problems? –How to represent many-to-many relationships?
Late 1960's - Network Model Many-to-many relationships More than 1 parent Records a member in a set Owner-Member Relationship –Implemented as circular linked lists A child may appear multiple times in each circle Can implement with pointers to objects disk Excellent retrieval performance
Network example Store (owner) Product customer (member) Supplier customer (owner) Invoice (member)
Network Query language: Move Find Get Still had to specify a record at a time
Network Similar to hierarchical –Get next, etc. Precursor to object-oriented Problems? –Query language
1970's Relational Model - E.F. Codd Rows and Columns Easier to write queries
Relational example Product: PID type price supplierID Supplier: SID location Relationships? Primary and Foreign key
Relational Instead of 1 record at a time, files or sets at a time Select PID, location From Customer, Supplier Where supplierID = SID Problems?
1980's Object-Oriented DBs Represent real-world entities as objects –Objects and relationships –Classes and instances – Specialization /Generalization – Inheritance, methods Similar to network model
Object-Oriented DBs Product ID type price Supplier Supplier ID location
Object-Oriented DBs To query use ObjectSQL – dot notation Select ProductID, Supplier.location From Product Most versions based on relational Problems?
1990’s – Issues/Advances Object-Relational DBs – extend relational –Keep relational, but add OO features Additional Issues: –Distributed DBs –Data mining and data warehouses –Real-time Databases
2000’s – DB Issues/Advances Data integration Database Security Mobile Databases Data-intensive computing - Data Grids NoSQL –Sensor Databases –Web Databases & Information Retrieval –XML Databases (hierarchical)
2010’s Issues Cloud computing - where do databases fit in? –Information retrieval / Text processing BIG Data Green Computing Data driven decisions Data is the next frontier Other suggestions?