Database administrators are well-paid specialists who manage databases
When you attempt to reserve plane tickets and the system says “Please wait …”, it is the database administrator trying to minimize the “Please wait …” time
SQL is a declarative language, meaning you describe what you want, not how to do it
The database administrator figures out how to do it
You need advanced courses to become a database administrator
database security
Adversaries try to break into databases all the time
One popular family of attacks is SQL injection
That means trying to subvert a SQL query by inserting malicious code into it
We’re not going to learn about that here
use of ancillary tools like database visualisers
Most database management systems, including SQLite, have self-explanatory GUIs
We don’t need to learn how to use a GUI to work with databases because it’s really obvious
We will use the command line instead, which is often the only way available
pecularities of operating systems like Windows or macOS or Linux
You can greatly improve your use of SQLite by learning about the operating system
I have a series of webpages (and eventually videos) about this
But we will not be doing that here
client-server database systems like PostgreSQL or MySQL
Many database classes use a client-server system like PostgreSQL or MySQL
These are more complex to set up
You will rarely do the set up in the workplace, so I don’t think it’s worth it to learn how to set them up
SQLite requires no set up except to install it (and even then, that’s only needed on Windows—on macOS and Linux, it’s already there)
advanced SQL features like window functions or recursive queries
There are many advanced SQL features that are not needed for basic database work
Most of the SQL queries you will write in this class will be simple
We just don’t have time to get into advanced SQL features and only a subset of you will use them
data warehousing
Data warehousing is a specialized area of database management
It is used to store data for analysis and reporting
It stores data in a way that is not optimized for transaction processing
You can actually take a separate class in data warehousing in many universities
NoSQL databases
Historically, a group of database developers decided they didn’t like SQL
They initially created databases that would not use any SQL at all
They called these “NoSQL” databases
Market pressure forced them to adopt some SQL features and change the name to mean “Not Only SQL” instead of “No SQL”
They typically require programming expertise for practical use
They can be optimized for specific use cases like document storage or key-value storage
And they work best in these special cases
data intensive applications
Many contemporary applications are “data intensive” rather than “compute intensive”
There’s a great book you can read about this, Kleppmann (2017)