- Learning PostgreSQL 11
- Salahaldin Juba Andrey Volkov
- 335字
- 2021-07-02 13:11:35
A brief history
Broadly, the term database can be used to present a collection of things. Moreover, this term brings to mind many other terms including data, information, data structure, and management. A database can be defined as a collection or repository of data, which has a certain structure, managed by a DBMS. Data can be structured as tabular data, semi-structured as XML documents, or unstructured data that does not fit a predefined data model.
In the early days, databases were mainly aimed at supporting business applications; this led us to the well-defined relational algebra and relational database systems. With the introduction of object-oriented languages, new paradigms of DBMS appeared, such as object-relational databases and object-oriented databases. Also, many businesses, as well as scientific applications, use arrays, images, and spatial data; thus, new models such as raster, map, and array algebra are supported. Graph databases are used to support graph queries such as the shortest path from one node to another, along with supporting traversal queries easily.
With the advent of web applications such as social portals, it is now necessary to support a huge number of requests in a distributed manner. This has led to another new paradigm of databases called Not Only SQL (NoSQL), which has different requirements, such as performance over fault tolerance and horizontal scaling capabilities. In general, the timeline of database evolution was greatly affected by many factors, such as the following:
- Functional requirements: The nature of the applications using a DBMS led to the development of extensions on top of relational databases such as PostGIS (for spatial data), or even a dedicated DBMS such as SciDB (for scientific data analytics).
- Nonfunctional requirements: The success of object-oriented programming languages has created new trends such as object-oriented databases. Object-relational DBMS have appeared to bridge the gap between relational databases and the object-oriented programming languages. Data explosion and the necessity to handle terabytes of data on commodity hardware have led to database systems that can easily scale up horizontally.
- Dynamics 365 for Finance and Operations Development Cookbook(Fourth Edition)
- 程序員面試白皮書
- Rust實(shí)戰(zhàn)
- 基于Java技術(shù)的Web應(yīng)用開發(fā)
- 前端架構(gòu):從入門到微前端
- 編譯系統(tǒng)透視:圖解編譯原理
- 用戶體驗(yàn)增長(zhǎng):數(shù)字化·智能化·綠色化
- Yii Project Blueprints
- Go語言精進(jìn)之路:從新手到高手的編程思想、方法和技巧(2)
- Mastering Backbone.js
- Scratch·愛編程的藝術(shù)家
- Python硬件編程實(shí)戰(zhàn)
- Python預(yù)測(cè)之美:數(shù)據(jù)分析與算法實(shí)戰(zhàn)(雙色)
- VMware vSphere 5.5 Cookbook
- C#程序開發(fā)參考手冊(cè)