User Tools

Site Tools


dido:public:s_cli:05_contents:01_prt:02_basics:02_solstack:dbstack:start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
dido:public:s_cli:05_contents:01_prt:02_basics:02_solstack:dbstack:start [2021/08/17 15:00]
murphy
dido:public:s_cli:05_contents:01_prt:02_basics:02_solstack:dbstack:start [2021/09/30 14:11] (current)
nick
Line 2: Line 2:
 [[dido:​public:​s_cli:​05_contents:​01_prt:​02_basics:​start| Return to DIDO CLI Background]] [[dido:​public:​s_cli:​05_contents:​01_prt:​02_basics:​start| Return to DIDO CLI Background]]
  
-At the heart of Database ​[[dido:​public:​ra:​xapend:​xapend.a_glossary:​s:​solutionstack|Solution Stack]] is a Database [[dido:​public:​ra:​xapend:​xapend.a_glossary:​p:​platform|Platform]]. In this case the Database platform is one of the many RDBMS products, such as [[dido:​public:​ra:​xapend:​xapend.a_glossary:​o:​oracle|Oracle]],​ PostgreSQL, MySQL, SQLServer etc. However, in this stack, the DBMS does not necessarily need to be an RDBMS as long as there is an [[dido:​public:​ra:​xapend:​xapend.a_glossary:​i:​interface|interface]] to the database that uses [[dido:​public:​ra:​xapend:​xapend.a_glossary:​s:​sql|SQL]]. The Boundaries of the Database Platform are not rigid. For example, Microsoft offers a single ODBC interface for many databases, consequently the ODBC driver may or may not be part of the Database Platform. However, in the big picture what is in the Platform and what is not in the platform is a bit pedantic. ​+At the heart of [[dido:​public:​ra:​xapend:​xapend.a_glossary:​d:​database]] ​[[dido:​public:​ra:​xapend:​xapend.a_glossary:​s:​solutionstack|Solution Stack]] is a Database [[dido:​public:​ra:​xapend:​xapend.a_glossary:​p:​platform|Platform]]. In this case the Database platform is one of the many RDBMS products, such as [[dido:​public:​ra:​xapend:​xapend.a_glossary:​o:​oracle|Oracle]],​ PostgreSQL, MySQL, SQLServer etc. However, in this stack, the DBMS does not necessarily need to be an RDBMS as long as there is an [[dido:​public:​ra:​xapend:​xapend.a_glossary:​i:​interface|interface]] to the database that uses [[dido:​public:​ra:​xapend:​xapend.a_glossary:​s:​sql|SQL]]. The Boundaries of the Database Platform are not rigid. For example, Microsoft offers a single ODBC interface for many databases, consequently the ODBC driver may or may not be part of the Database Platform. However, in the big picture what is in the Platform and what is not in the platform is a bit pedantic. ​
  
 <​figure>​ <​figure>​
Line 20: Line 20:
     * **SQL Command Line Interpreter (CLI)** - The SQL Command Line Interpreter translates the tokenized SQL commands into DB Specific instructions. ​     * **SQL Command Line Interpreter (CLI)** - The SQL Command Line Interpreter translates the tokenized SQL commands into DB Specific instructions. ​
     * **Database API** - DBMSs generally support APIs that allow a programmer to directly access a databases. For example, Oracle provides a Oracle C++ Call Innterface (OCCI) [[https://​docs.oracle.com/​en/​database/​oracle/​oracle-database/​18/​adobj/​oracle-c-cpp-call-interface-odci.html]]. PostgreSQL supports libpq++ as the C++ [[dido:​public:​ra:​xapend:​xapend.a_glossary:​a:​api|API]] to Postgres [[https://​www.postgresql.org/​docs/​7.0/​libpqplusplus.htm]]     * **Database API** - DBMSs generally support APIs that allow a programmer to directly access a databases. For example, Oracle provides a Oracle C++ Call Innterface (OCCI) [[https://​docs.oracle.com/​en/​database/​oracle/​oracle-database/​18/​adobj/​oracle-c-cpp-call-interface-odci.html]]. PostgreSQL supports libpq++ as the C++ [[dido:​public:​ra:​xapend:​xapend.a_glossary:​a:​api|API]] to Postgres [[https://​www.postgresql.org/​docs/​7.0/​libpqplusplus.htm]]
-    * **DB Configuration** - There are always two aspects to configuring a DBMS. The first is setting up the environment externally to the DBMS (i.e., downloading the software, running a wizard to install and configure the DB, etc).+    * **DB Configuration** - There are always two aspects to configuring a DBMS. The first is setting up the environment externally to the DBMS (i.e., downloading the software, running a [[dido:​public:​ra:​xapend:​xapend.a_glossary:​w:​wizard|wizard]] ​to install and configure the DB, etc).
     * **Data Definition** - A [[dido:​public:​ra:​xapend:​xapend.a_glossary:​d:​ddl]] is a computer language used to create and modify the structure of database objects in a database. These database objects include views, schemas, tables, indexes, etc.      * **Data Definition** - A [[dido:​public:​ra:​xapend:​xapend.a_glossary:​d:​ddl]] is a computer language used to create and modify the structure of database objects in a database. These database objects include views, schemas, tables, indexes, etc.
     * **Data Manipulation** - A [[dido:​public:​ra:​xapend:​xapend.a_glossary:​d:​dml]] is a family of computer languages including commands permitting users to manipulate data in a database. This manipulation involves inserting data into database tables, retrieving existing data, deleting data from existing tables and modifying existing data. DML is mostly incorporated in SQL databases.     * **Data Manipulation** - A [[dido:​public:​ra:​xapend:​xapend.a_glossary:​d:​dml]] is a family of computer languages including commands permitting users to manipulate data in a database. This manipulation involves inserting data into database tables, retrieving existing data, deleting data from existing tables and modifying existing data. DML is mostly incorporated in SQL databases.
Line 37: Line 37:
 In this scenario, the Application accesses the Database [[dido:​public:​ra:​xapend:​xapend.a_glossary:​p:​platform]] using the Database provided API. This solution is very machine resource efficient since the Application uses code that is optimized to access a specific Database ​ (i.e., Oracle, PostgreSQL, MySQL, SQLServer, etc.). However, all of the error recovery and testing for the code and any changes made to the underlying database schema rests on the application. ​ In this scenario, the Application accesses the Database [[dido:​public:​ra:​xapend:​xapend.a_glossary:​p:​platform]] using the Database provided API. This solution is very machine resource efficient since the Application uses code that is optimized to access a specific Database ​ (i.e., Oracle, PostgreSQL, MySQL, SQLServer, etc.). However, all of the error recovery and testing for the code and any changes made to the underlying database schema rests on the application. ​
  
-**Note:** This scenario makes it more difficult to migrate from one Database [[dido:​public:​ra:​xapend:​xapend.a_glossary:​p:​platform]] to another (sometimes referred to as vendor lock-in). In order to access the Database, the end user must use the Application.+**Note:** This scenario makes it more difficult to migrate from one Database [[dido:​public:​ra:​xapend:​xapend.a_glossary:​p:​platform]] to another (sometimes referred to as [[dido:​public:​ra:​xapend:​xapend.a_glossary:​v:​vendorlockin|vendor lock-in]]). In order to access the Database, the end user must use the Application.
  
 ==== Scenario #2 ==== ==== Scenario #2 ====
dido/public/s_cli/05_contents/01_prt/02_basics/02_solstack/dbstack/start.1629226844.txt.gz · Last modified: 2021/08/17 15:00 by murphy