K10: principles and uses of relational and non-relational databases
| Assessment Method | Pass | Distinction |
|---|---|---|
| Portfolio | Applies the principles and uses of relational and non-relational databases to software development tasks. (K10) | NA |
"Principles and uses of relational and non-relational databases" refers to understanding the fundamental concepts, characteristics, and applications of both relational databases and non-relational databases (also known as NoSQL databases). As an apprentice software developer, demonstrating knowledge in this area would involve having a solid understanding of the following aspects:
Relational Databases:
- Principles: Understanding the principles of relational databases, such as the relational model, normalization, entities, attributes, relationships, and the concept of structured data organized into tables.
- SQL: Knowledge of Structured Query Language (SQL) and its usage for creating, querying, and manipulating data in relational databases.
- ACID: Awareness of ACID (Atomicity, Consistency, Isolation, Durability) properties that ensure data integrity and reliability in transactions.
- Data Integrity: Understanding and implementing constraints like primary keys, foreign keys, unique keys, and referential integrity to maintain data integrity.
- Normalization: Familiarity with normalization techniques to optimize database structure and eliminate data redundancy.
- Joins: Ability to perform various types of joins (e.g., inner join, outer join) to retrieve data from multiple related tables.
Non-Relational Databases:
- Types: Knowledge of different types of non-relational databases, such as document databases (e.g., MongoDB), key-value stores (e.g., Redis), columnar databases (e.g., Cassandra), and graph databases (e.g., Neo4j).
- NoSQL Concepts: Understanding the fundamental principles of NoSQL databases, including schema-less data models, eventual consistency, horizontal scalability, and distributed architectures.
- Data Modeling: Proficiency in designing data models suited for non-relational databases, such as denormalization, embedding documents, or using key-value pairs.
- API Usage: Familiarity with programming APIs and query languages specific to different NoSQL databases.
- Use Cases: Awareness of when to choose non-relational databases over relational databases, based on the requirements of the application (e.g., high scalability, flexible schema, handling large volumes of unstructured data).
Demonstrating knowledge in these areas would involve being able to explain these concepts, utilize relevant database technologies, write queries, design appropriate database schemas, and choose the right database type based on specific use cases.