Databases, SQL, and Sequelize (Week 10) - Learning Objectives
Assessment Structure
- 2 hours, 55 minutes
- Mixture of multiple choice (5-10), free response (1-3) and VSCode problems (40ish specs).
- Free response just requires enough detail to answer the question, 1-3 sentences. As long as you are able to explain the concept and answer all aspects that it asks, you are good.
- Coding problems come in two varieties:
- Writing raw SQL like the projects from Tuesday to create tables, insert values, query for records, join tables for queries, etc.
- Using sequelize to perform actions such as creating migrations, models, seeders, and then interacting with those models to query for, create, modify, delete, etc.
- Both of these sections have their own practice assessment
- Standard assessment procedures
- You will be in an individual breakout room
- Use a single monitor and share your screen
- Only have open those resources needed to complete the assessment:
- Zoom
- VSCode
- Browser with AAO and Progress Tracker (to ask questions)
- Approved Resources for this assessment:
- Postgres Docs: https://www.postgresql.org/docs/
- Sequelize Docs: https://sequelize.org/
- Sequelize “Cheatsheet”
Portfolio Quality, RDBMS and Database Entitities (W10D1) - Learning Objectives
Portfolio Quality (Not directly assessed)
- Recall the items recruiters are most interested in
- Explain aspects of a good looking Web application
- Identify App Academy’s expectations of your projects for after you graduate
- Practice good code hygiene when making projects live
RDBMS and Database Entities
- Define what a relational database management system is
- Describe what relational data is
- Define what a database is
- Define what a database table is
- Describe the purpose of a primary key
- Describe the purpose of a foreign key
- Describe how to properly name things in PostgreSQL
- Install and configure PostgreSQL 12, its client tools, and a GUI client for it named Postbird
- Connect to an instance of PostgreSQL with the command line tool psql
- Identify whether a user is a normal user or a superuser by the prompt in the psql shell
- Create a user for the relational database management system
- Create a database in the database management system
- Configure a database so that only the owner (and superusers) can connect to it
- View a list of databases in an installation of PostgreSQL
- Create tables in a database
- View a list of tables in a database
- Identify and describe the common data types used in PostgreSQL
- Describe the purpose of the UNIQUE and NOT NULL constraints, and create columns in database tables that have them
- Create a primary key for a table
- Create foreign key constraints to relate tables
- Explain that SQL is not case sensitive for its keywords but is for its entity names
SQL (W10D2) - Learning Objectives
SQL
- How to use the
SELECT ... FROM ...
statement to select data from a single table
- How to use the
WHERE
clause on SELECT
, UPDATE
, and DELETE
statements to narrow the scope of the command
- How to use the
JOIN
keyword to join two (or more) tables together into a single virtual table
- How to use the
INSERT
statement to insert data into a table
- How to use an
UPDATE
statement to update data in a table
- How to use a
DELETE
statement to remove data from a table
- How to use a seed file to populate data in a database
SQL (continued) (W10D3) - Learning Objectives
SQL (continued)
- How to perform relational database design
- How to use transactions to group multiple SQL commands into one succeed or fail operation
- How to apply indexes to tables to improve performance
- Explain what and why someone would use EXPLAIN
- Demonstrate how to install and use the node-postgres library and its Pool class to query a PostgreSQL-managed database
- Explain how to write prepared statements with placeholders for parameters of the form “$1”, “$2”, and so on
ORM (W10D4) - Learning Objectives
ORM
- How to install, configure, and use Sequelize, an ORM for JavaScript
- How to use database migrations to make your database grow with your application in a source-control enabled way
- How to perform CRUD operations with Sequelize
- How to query using Sequelize
- How to perform data validations with Sequelize
- How to use transactions with Sequelize