Fundamentals of Database Systems
Enroll in the Fundamentals of Database Systems course and lab to gain a comprehensive understanding of database concepts and methodologies. The lab provides hands-on experience by simulating real-world scenarios, including hardware, software, and command-line interface environments. It can be seamlessly integrated with any textbook, course, or training program.
The database training course encompasses essential principles essential for designing, utilizing, and implementing database systems and applications. Key topics covered include database modeling and design, exploring various languages and models offered by database management systems, and learning about effective database system implementation techniques. By completing this course and lab, you'll be well-equipped to tackle real-world database challenges and confidently work with databases in various applications.
Course Objectives
Databases and Database Users
Introduction
An Example
Characteristics of the Database Approach
Actors on the Scene
Workers behind the Scene
Advantages of Using the DBMS Approach
A Brief History of Database Applications
When Not to Use a DBMS
Database System Concepts and Architecture
Data Models, Schemas, and Instances
Three-Schema Architecture and Data Independence
Database Languages and Interfaces
The Database System Environment
Centralized and Client/Server Architectures for DBMSs
Classification of Database Management Systems
Data Modeling Using the Entity–Relationship (ER) Model
Using High-Level Conceptual Data Models for Database Design
A Sample Database Application
Entity Types, Entity Sets, Attributes, and Keys
Relationship Types, Relationship Sets, Roles, and Structural Constraints
Weak Entity Types
Refining the ER Design for the COMPANY Database
ER Diagrams, Naming Conventions, and Design Issues
Example of Other Notation: UML Class Diagrams
Relationship Types of Degree Higher than Two
Another Example: A UNIVERSITY Database
The Enhanced Entity–Relationship (EER) Model
Subclasses, Superclasses, and Inheritance
Specialization and Generalization
Constraints and Characteristics of Specialization and Generalization Hierarchies
Modeling of UNION Types Using Categories
A Sample UNIVERSITY EER Schema, Design Choices, and Formal Definitions
Example of Other Notation: Representing Specialization and Generalization in UML Class Diagrams
Data Abstraction, Knowledge Representation, and Ontology Concepts
The Relational Data Model and Relational Database Constraints
Relational Model Concepts
Relational Model Constraints and Relational Database Schemas
Update Operations, Transactions, and Dealing with Constraint Violations
SQL Data Definition and Data Types
SQL Data Definition and Data Types
Specifying Constraints in SQL
Basic Retrieval Queries in SQL
INSERT, DELETE, and UPDATE Statements in SQL
Additional Features of SQL
More SQL: Complex Queries, Triggers, Views, and Schema Modification
More Complex SQL Retrieval Queries
Specifying Constraints as Assertions and Actions as Triggers
Views (Virtual Tables) in SQL
Schema Change Statements in SQL
The Relational Algebra and Relational Calculus
Unary Relational Operations: SELECT and PROJECT
Relational Algebra Operations from Set Theory
Binary Relational Operations: JOIN and DIVISION
Additional Relational Operations
Examples of Queries in Relational Algebra
The Tuple Relational Calculus
The Domain Relational Calculus
Relational Database Design by ER- and EER-to-Relational Mapping
Relational Database Design Using ER-to-Relational Mapping
Mapping EER Model Constructs to Relations
Summary
Review Questions
Exercises
Laboratory Exercises
Selected Bibliography
Introduction to SQL Programming Techniques
Overview of Database Programming Techniques and Issues
Embedded SQL, Dynamic SQL, and SQL J
Database Programming with Function Calls and Class Libraries: SQL/CLI and JDBC
Database Stored Procedures and SQL/PSM
Comparing the Three Approaches
Web Database Programming Using PHP
A Simple PHP Example
Overview of Basic Features of PHP
Overview of PHP Database Programming
Brief Overview of Java Technologies for Database Web Programming
Object and Object-Relational Databases
Overview of Object Database Concepts
Object Database Extensions to SQL
The ODMG Object Model and the Object Definition Language ODL
Object Database Conceptual Design
The Object Query Language OQL
Overview of the C++ Language Binding in the ODMG Standard
Summary
Review Questions
Exercises
Selected Bibliography
XML: Extensible Markup Language
Structured, Semistructured, and Unstructured Data
XML Hierarchical (Tree) Data Model
XML Documents, DTD, and XML Schema
Storing and Extracting XML Documents from Databases
XML Languages
Extracting XML Documents from Relational Databases
XML/SQL: SQL Functions for Creating XML Data
Basics of Functional Dependencies and Normalization for Relational Databases
Informal Design Guidelines for Relation Schemas
Functional Dependencies
Normal Forms Based on Primary Keys
General Definitions of Second and Third Normal Forms
Boyce-Codd Normal Form
Multivalued Dependency and Fourth Normal Form
Join Dependencies and Fifth Normal Form
Relational Database Design Algorithms and Further Dependencies
Further Topics in Functional Dependencies: Inference Rules, Equivalence, and Minimal Cover
Properties of Relational Decompositions
Algorithms for Relational Database Schema Design
About Nulls, Dangling Tuples, and Alternative Relational Designs
Further Discussion of Multivalued Dependencies and 4NF
Other Dependencies and Normal Forms
Disk Storage, Basic File Structures, Hashing, and Modern Storage Architectures
Introduction
Secondary Storage Devices
Buffering of Blocks
Placing File Records on Disk
Operations on Files
Files of Unordered Records (Heap Files)
Files of Ordered Records (Sorted Files)
Hashing Techniques
Other Primary File Organizations
Parallelizing Disk Access Using RAID Technology
Modern Storage Architectures
Indexing Structures for Files and Physical Database Design
Types of Single-Level Ordered Indexes
Multilevel Indexes
Dynamic Multilevel Indexes Using B-Trees and B+-Trees
Indexes on Multiple Keys
Other Types of Indexes
Some General Issues Concerning Indexing
Physical Database Design in Relational Databases
Strategies for Query Processing
Translating SQL Queries into Relational Algebra and Other Operators
Algorithms for External Sorting
Algorithms for SELECT Operation
Implementing the JOIN Operation
Algorithms for PROJECT and Set Operations
Implementing Aggregate Operations and Different Types of JOINs
Combining Operations Using Pipelining
Parallel Algorithms for Query Processing
Query Optimization
Query Trees and Heuristics for Query Optimization
Choice of Query Execution Plans
Use of Selectivities in Cost-Based Optimization
Cost Functions for SELECT Operation
Cost Functions for the JOIN Operation
Example to Illustrate Cost-Based Query Optimization
Additional Issues Related to Query Optimization
An Example of Query Optimization in Data Warehouses
Overview of Query Optimization in Oracle
Semantic Query Optimization
Introduction to Transaction Processing Concepts and Theory
Introduction to Transaction Processing
Transaction and System Concepts
Desirable Properties of Transactions
Characterizing Schedules Based on Recoverability
Characterizing Schedules Based on Serializability
Transaction Support in SQL
Concurrency Control Techniques
Two-Phase Locking Techniques for Concurrency Control
Concurrency Control Based on Timestamp Ordering
Multiversion Concurrency Control Techniques
Validation (Optimistic) Techniques and Snapshot Isolation Concurrency Control
Granularity of Data Items and Multiple Granularity Locking
Using Locks for Concurrency Control in Indexes
Other Concurrency Control Issues
Database Recovery Techniques
Recovery Concepts
NO-UNDO/REDO Recovery Based on Deferred Update
Recovery Techniques Based on Immediate Update
Shadow Paging
The ARIES Recovery Algorithm
Recovery in Multidatabase Systems
Database Backup and Recovery from Catastrophic Failures
Distributed Database Concepts
Distributed Database Concepts
Data Fragmentation, Replication, and Allocation Techniques for Distributed Database Design
Overview of Concurrency Control and Recovery in Distributed Databases
Overview of Transaction Management in Distributed Databases
Query Processing and Optimization in Distributed Databases
Types of Distributed Database Systems
Distributed Database Architectures
Distributed Catalog Management
NOSQL Databases and Big Data Storage Systems
Introduction to NOSQL Systems
The CAP Theorem
Document-Based NOSQL Systems and MongoDB
NOSQL Key-Value Stores
Column-Based or Wide Column NOSQL Systems
NOSQL Graph Databases and Neo4j
Big Data Technologies Based on MapReduce and Hadoop
What Is Big Data?
Introduction to MapReduce and Hadoop
Hadoop Distributed File System (HDFS)
MapReduce: Additional Details
Hadoop v2 alias YARN
General Discussion
Enhanced Data Models: Introduction to Active, Temporal, Spatial, Multimedia, and Deductive Databases
Active Database Concepts and Triggers
Temporal Database Concepts
Spatial Database Concepts
Multimedia Database Concepts
Introduction to Deductive Databases
Introduction to Information Retrieval and Web Search
Information Retrieval (IR) Concepts
Retrieval Models
Types of Queries in IR Systems
Text Preprocessing
Inverted Indexing
Evaluation Measures of Search Relevance
Web Search and Analysis
Trends in Information Retrieval
Data Mining Concepts
Overview of Data Mining Technology
Association Rules
Classification
Clustering
Approaches to Other Data Mining Problems
Applications of Data Mining
Commercial Data Mining Tools
Overview of Data Warehousing and OLAP
Introduction, Definitions, and Terminology
Characteristics of Data Warehouses
Data Modeling for Data Warehouses
Building a Data Warehouse
Typical Functionality of a Data Warehouse
Data Warehouse versus Views
Difficulties of Implementing Data Warehouses
Database Security
Introduction to Database Security Issues
Discretionary Access Control Based on Granting and Revoking Privileges
Mandatory Access Control and Role-Based Access Control for Multilevel Security
SQL Injection
Introduction to Statistical Database Security
Introduction to Flow Control
Encryption and Public Key Infrastructures
Privacy Issues and Preservation
Challenges to Maintaining Database Security
Oracle Label-Based Security
Appendix A: Alternative Diagrammatic Notations for ER Models
Appendix B: Parameters of Disks
Appendix C: Overview of the QBE Language
C.1 Basic Retrievals in QBE
C.2 Grouping, Aggregation, and Database Modification in QBE
Target Audience:
"Fundamentals of Database Systems" is designed for a broad audience, including students, professionals, and enthusiasts eager to grasp database system essentials. This course caters to computer science learners, software developers, data analysts, and IT experts seeking a solid foundation in database management. Whether beginners or those with prior knowledge, it covers data modeling, design, normalization, SQL querying, transactions, and security. Ideal for academic pursuits, software development, or career advancement, this course equips diverse learners with essential skills for interacting with, designing, and managing databases proficiently.
Benefits of Certification:
This certification benefits a wide range of individuals aiming to enhance their career prospects and expertise in the field of database systems. Professionals such as database administrators, data analysts, software developers, and IT specialists can leverage the certification to validate their skills and knowledge, improving their job opportunities and earning potential. Additionally, computer science students and graduates seeking a competitive edge in the job market can benefit from the certification's recognition by potential employers. Even individuals interested in transitioning to data-related roles or those looking to gain a comprehensive understanding of databases can find value in this certification to boost their skill set and credibility.
Prerequisite Skills: To excel in the "Fundamentals of Database Systems" course, certain prerequisite skills and knowledge are advantageous. A solid foundation in computer science basics is beneficial, including familiarity with programming concepts and logical thinking. Additionally, understanding fundamental data structures and algorithms is helpful for comprehending database design principles. Proficiency in a programming language, such as SQL, will aid in grasping query languages used in database management. Basic understanding of relational algebra and set theory can simplify comprehension of data manipulation concepts. Prior exposure to data modeling and normalization principles will facilitate understanding database design concepts. While not mandatory, familiarity with software development and IT concepts can enhance the learning experience in this course.