A worthy abstraction is one which is achieved through introducing little indirection.
Following standards while fixing a bug prevents future bugs and a messy codebase.
“I don't think in any language. I think in images. I don't believe that people think in languages. They don't move their lips when they think. It is only a certain type of illiterate person who moves his lips as he reads or ruminates. No, I think in images, and now and then a Russian phrase or an English phrase will form with the foam of the brainwave, but that’s about all. ”
— Vladimir Nabokov, Strong Opinions (1973)
— Vladimir Nabokov, Strong Opinions (1973)
Mathematics is often an inappropriate approach for solutions, but almost always the one used.
ODBC
Open Database Connectivity is an API for DBMSs which achieves DBMS-independence by using drivers that encapsulate the logic of translation. An application connects to an ODBC driver through
the ODBC driver manager, then sends ODBC functions which the driver translates and passes to the DBMS. An ODBC driver enables an ODBC-compliant application to access a data source,
normally a DBMS.
Drivers exist for major DBMSs:
• Oracle
• PostgreSQL
• MySQL
• Microsoft SQL Server
• Sybase ASE
• SAP HANA
• DB2
and various other non-DBMS data sources:
• Microsoft Excel
• plain text
• CSV
Drivers
ODBC drivers encapsulate 3 broad categories of functions:
1. finding, connecting to and disconnecting from the DBMS that the driver talks to
2. send SQL commands from the ODBC system to the DBMS, converting or interpreting any commands that are not supported internally.
3. convertion of data from the DBMS's internal formats to a set of standardized ODBC formats, which are based on the C language formats.
Drivers of different technologies may implement either more or less than all functionalities defined in the ODBC standard.
Open Database Connectivity is an API for DBMSs which achieves DBMS-independence by using drivers that encapsulate the logic of translation. An application connects to an ODBC driver through
the ODBC driver manager, then sends ODBC functions which the driver translates and passes to the DBMS. An ODBC driver enables an ODBC-compliant application to access a data source,
normally a DBMS.
Drivers exist for major DBMSs:
• Oracle
• PostgreSQL
• MySQL
• Microsoft SQL Server
• Sybase ASE
• SAP HANA
• DB2
and various other non-DBMS data sources:
• Microsoft Excel
• plain text
• CSV
Drivers
ODBC drivers encapsulate 3 broad categories of functions:
1. finding, connecting to and disconnecting from the DBMS that the driver talks to
2. send SQL commands from the ODBC system to the DBMS, converting or interpreting any commands that are not supported internally.
3. convertion of data from the DBMS's internal formats to a set of standardized ODBC formats, which are based on the C language formats.
Drivers of different technologies may implement either more or less than all functionalities defined in the ODBC standard.
Which loop do you find the most useful?
Anonymous Poll
21%
while condition
17%
classic for, ranged for
13%
for each element in collection
21%
apply (Haskell's fmap, Python's map)
8%
while true, loop forever
8%
do until condition
12%
repeat n
First write the desired call, then implement its function.
First design the front-end, then develop the backend.
That way you already know what you're making will satisfy your needs.
First design the front-end, then develop the backend.
That way you already know what you're making will satisfy your needs.
The quadchotomy of SQL: DDL, DML, DCL, TCL
Data Definition
•
•
•
•
•
•
*Objects include:
Data Manipulation
•
•
•
•
Data Control
•
•
Transaction Control
•
•
•
•
Data Definition
•
CREATE to create an object*•
DROP to destroy an object in the database•
ALTER to modify the structure of the database•
TRUNCATE to clear all records and free the space•
COMMENT to add comments to the data dictionary•
RENAME to rename an existing object*Objects include:
DATABASE, TABLE, INDEX, VIEW, FUNCTION, PROCEDURE, TRIGGER, etc.Data Manipulation
•
SELECT to query, i.e. retrieve data•
INSERT to insert a record into a table•
DELETE to delete records from a table•
UPDATE to update some cell(s) of a recordData Control
•
GRANT to give privileges to a user•
REVOKE to withdraw privileges from a userTransaction Control
•
COMMIT to commit a transaction•
ROLLBACK to roll it back, in case an error occurs•
SAVEPOINT to set a savepoint in a transaction•
SET to set its characteristicsAs implemented, the maximum NTFS file size is 16 TB (16 × 1024^4 bytes) minus 64 KB (64 × 1024 bytes) or 17,592,185,978,880 bytes.
The file-size limit on FAT32 is (2^32)-1 bytes, or one byte less than a full 4GB.