This three-week program aims to introduce the fundamental concepts of data entities and data storage.
By the end of this module, students should have a familiarity with and basic understanding of the following:
- Entities
- The relational model
- The Structured Query Language (SQL)
- The construction of a database system
- MySQL as an example of a relational database system
- Non-relational data and NoSQL
- MongoDB as an example of a NoSQL database
Lesson 1: Retrieving Data
In this class, students will be introduced to retrieving data from a MySQL database using SELECT queries.
Objective: Students should be able to retrieve data from a database table using SELECT statements that include WHERE, GROUP BY, ORDER BY, LIMIT, and JOIN.
Lesson 2: Data Models, Relationships, and Schemas
In this class, the students will learn how to use more complex SQL queries to retrieve information across tables, and interact with data including write operations.
Objective: the students should be able to build CRUD functionality using SQL statements, including INSERT INTO, UPDATE and DELETE. The students should also be able to create an entity relationship diagram based on a qualitative description of data requirements, and translate that into a MySQL database schema.
Lesson 3: Security and Non-Relational Databases
In the final week, the students will be introduced to SQL injection and how to use MySQL permissions to avoid it. MongoDB, as an example of a non-relational database, will also be introduced, as well as the benefits and drawbacks of relational and non-relational models.
Objective: the students should know how SQL injection happens, and how to define user permissions in MySQL to avoid part of it. The students should also be able to compare and contrast relational (like MySQL) and NoSQL databases (considering their benefits and drawbacks).