This course will offer you an opportunity to learn the fundamental concepts and emerging technologies in data storage and data governance. It presents a balanced theory-practice focus and covers Structured Query Language, and two flavors of NoSQL databases in MongoDB and Neo4j graph database.
It also includes a brief introduction to big data management including hadoop, MapReduce, and Apache Spark. By the end of this part 2 course on data analytics, you will have a foundational understanding of the theory and applications of database management to support data analytics, data mining, machine learning, and artificial intelligence.
- Langage de requête structuré, Partie 1
Ce module présente d'abord un aperçu du langage de définition des données SQL (SQL DDL) pour définir un modèle de données relationnelles. Il examine la création de schémas, la création de tables, les commandes de suppression et les commandes de modification. Diverses syntaxes sont illustrées avec des exemples explicites. Ce module aborde également le langage de manipulation des données SQL (SQL DML) utilisé pour récupérer, mettre à jour, insérer de nouvelles données et supprimer des données existantes. L'accent est mis sur les instructions SQL INSERT pour insérer des données dans les tables et certaines instructions SQL SELECT simples. Des instructions SQL SELECT plus complexes seront discutées dans les modules ultérieurs, en même temps que les instructions SQL DELETE et SQL UPDATE.
- Langage de requête structuré, Partie 2
Ce module poursuit la discussion sur l'instruction SELECT du langage de manipulation des données SQL (DML). Il introduit diverses fonctions d'agrégation : COUNT, SUM, AVG, VARIANCE, MIN et MAX, qui sont utilisées pour résumer des informations à partir de tuples de bases de données. Ceci est suivi par la clause GROUP BY/HAVING, qui permet l'application de fonctions d'agrégation à des sous-groupes. Ce module discute ensuite des requêtes de jointure qui permettent à l'utilisateur de combiner ou de joindre des données de plusieurs tables. Les requêtes de jointure interne comportent une clause « where » qui correspond à une ou plusieurs colonnes de deux tables. Les jointures externes gauche, droite et complète peuvent être utilisées pour conserver tous les tuples d'une ou des deux tables dans le résultat, qu'ils aient des tuples correspondants dans l'autre table ou non. Toutes les requêtes de ce module utilisent la base de données Wine dans le terrain de jeu en ligne et peuvent y être exécutées.
- Langage de requête structuré, Partie 3
Ce module présente des requêtes SQL plus complexes. Il introduit des requêtes imbriquées où un bloc complet SELECT FROM apparaît dans la clause WHERE d'une autre requête. La sous-requête ou le bloc interne est imbriqué dans le bloc externe et il peut y avoir des niveaux d'imbrication multiples. L'optimiseur de requêtes aplatit généralement la requête imbriquée en plusieurs requêtes et les exécute séquentiellement du niveau le plus interne au niveau le plus externe. Ce module examine également la requête imbriquée corrélée, où le bloc interne utilise une ou plusieurs colonnes de la table définie dans le bloc externe. Dans ce cas, la requête ne peut pas être aplatie, et la sous-requête du bloc interne doit être évaluée pour chaque tuple de la table (également utilisée dans le bloc interne). L'utilisation des opérateurs >= ALL et > ANY est discutée. Le premier peut être utilisé pour trouver les valeurs les plus élevées ou les plus grandes alors que le second peut être utilisé pour exclure les valeurs les plus basses ou les plus petites. Toutes les requêtes de ce module utilisent la base de données Wine dans le terrain de jeu en ligne et peuvent y être exécutées. Enfin, ce module examine les instructions DELETE et UPDATE qui peuvent être utilisées pour supprimer ou modifier des données. Il se termine par une brève discussion sur les vues SQL.
- Extension aux systèmes de gestion de bases de données relationnelles
Ce module introduit quelques extensions aux systèmes de gestion de bases de données relationnelles (SGBDR). Nous commencerons par revoir les composants de base du modèle relationnel et ses limitations. Ensuite, le module explore des méthodes pour étendre les bases de données relationnelles, en commençant par un examen approfondi des déclencheurs et des procédures stockées en tant que mécanismes fondamentaux pour augmenter l'activité des SGBDR. Le module se termine en explorant les complexités des requêtes récursives, une extension puissante du langage SQL.
- Bases de données NoSQL : MongoDB
Ce module présente une vue d'ensemble du mouvement NoSQL et des systèmes distribués. La base de données NoSQL MongoDB est abordée à un niveau introductif. MongoDB est conçu pour stocker des documents tels que des CV, des documents juridiques, des livres, etc. Il n'utilise aucun schéma ou modèle de données, et stocke des documents sous forme de collections — qui stockent une collection d'attributs étiquetés et non ordonnés représentant des éléments semi-structurés.
- Bases de données NoSQL : Base de données de graphes Neo4j
Ce module poursuit la discussion sur la base de données NoSQL. La théorie des graphes et la base de données de graphes Neo4j sont abordées à un niveau introductif. La Neo4j est une base de données de graphes qui applique la théorie des graphes au stockage d'informations. Elle est constituée de nœuds et d'arêtes, tous deux pouvant stocker des informations. Les bases de données de graphes sont particulièrement utiles pour modéliser des réseaux sociaux tels que X (anciennement connu sous le nom de Twitter) et Facebook. D'une certaine manière, une base de données de graphes est une base de données hyper-relationnelle où les tables de jointure sont remplacées par des relations plus intéressantes et sémantiquement significatives qui peuvent être naviguées (traversée de graphes) et/ou interrogées, basées sur la correspondance de motifs de graphes.