A good database design is crucial for a high-performance application. Just like you wouldn't start building a house without the benefit of a blueprint, you need to think about how your data will be stored beforehand. Taking the time to design a database saves time and frustration later on, and a well-designed database ensures ease of access and retrieval of information. While choosing a design, a lot of considerations have to be accounted for. In this course, you'll learn how to process, store, and organize data in an efficient way. You'll see how to structure data through normalization and present your data with views. Finally, you'll learn how to manage your database and all of this will be done on a variety of datasets from book sales, car rentals, to music reviews.
Processing, Storing, and Organizing DataFree
Start your journey into database design by learning about the two approaches to data processing, OLTP and OLAP. In this first chapter, you'll also get familiar with the different forms data can be stored in and learn the basics of data modeling.
Database Schemas and Normalization
In this chapter, you will take your data modeling skills to the next level. You'll learn to implement star and snowflake schemas, recognize the importance of normalization and see how to normalize databases to different extents.Star and snowflake schema50 xpRunning from star to snowflake50 xpAdding foreign keys100 xpExtending the book dimension100 xpNormalized and denormalized databases50 xpQuerying the star schema100 xpQuerying the snowflake schema100 xpUpdating countries100 xpExtending the snowflake schema100 xpNormal forms50 xpConverting to 1NF100 xpConverting to 2NF100 xpConverting to 3NF100 xp
Get ready to work with views! In this chapter, you will learn how to create and query views. On top of that, you'll master more advanced capabilities to manage them and end by identifying the difference between materialized and non-materialized views.Database views50 xpTables vs. views100 xpViewing views100 xpCreating and querying a view100 xpManaging views50 xpCreating a view from other views100 xpGranting and revoking access100 xpUpdatable views50 xpRedefining a view100 xpMaterialized views50 xpMaterialized versus non-materialized100 xpCreating and refreshing a materialized view100 xpManaging materialized views50 xp
This final chapter ends with some database management-related topics. You will learn how to grant database access based on user roles, how to partition tables into smaller pieces, what to keep in mind when integrating data, and which DBMS fits your business needs best.Database roles and access control50 xpCreate a role100 xpGRANT privileges and ALTER attributes100 xpAdd a user role to a group role100 xpTable partitioning50 xpReasons to partition50 xpPartitioning and normalization100 xpCreating vertical partitions100 xpCreating horizontal partitions100 xpData integration50 xpData integration do's and dont's100 xpAnalyzing a data integration plan50 xpPicking a Database Management System (DBMS)50 xpSQL versus NoSQL50 xpChoosing the right DBMS100 xp
In the following tracksData EngineerSQL for Database AdministratorsSQL Server DeveloperSQL Server for Database Administrators
PrerequisitesIntroduction to Relational Databases in SQL
Lis SulmontSee More
Content Program Manager at Duolingo
Lis holds a Master's degree in Computer Science from McGill University with a focus on computer science education research and applied machine learning. She's passionate about teaching all things related to data and improving the accessibility of these topics.