top of page

Databases

Course Outline 
​

I. Introduction to Databases
A. Overview of Databases
B. History and Evolution of Databases
C. Understanding Data: Types, Structures, Files


II. Database Models
A. Hierarchical Model
B. Network Model
C. Relational Model
D. Object-Oriented Model
E. NoSQL Models: Document, Key-Value, Wide-Column, and Graph


III. SQL and Relational Databases
A. Introduction to SQL: Syntax, Keywords, and Operators
B. Data Definition Language (DDL): CREATE, ALTER, DROP
C. Data Manipulation Language (DML): SELECT, INSERT, UPDATE, DELETE
D. Data Control Language (DCL): GRANT, REVOKE


IV. Database Design and Normalization
A. Database Design Process
B. Entity-Relationship (ER) Model: Entities, Relationships, Attributes
C. Normalization: 1NF, 2NF, 3NF, BCNF


V. Indexing and Hashing
A. Overview of Indexing and Hashing
B. Ordered Indices, B+-tree, Hash-based Indexing
C. Bitmap Indices, Secondary Indices


VI. Transaction Management
A. Properties of Transactions: Atomicity, Consistency, Isolation, Durability (ACID)
B. Concurrency Control: Lock-Based, Timestamp-Based
C. Deadlock Handling
D. Recovery System: Failure Classification, Recovery and Atomicity, Log-Based Recovery
VII. Query Processing and Optimization

mathematica
Copy code
A. Query Processing: Parsing and Translation, Optimization, Evaluation
B. Introduction to Query Optimization: Logical and Physical Query Plans
C. Cost Estimation and Heuristic-based Optimization


VIII. Database Security
A. Data Security and Privacy: Security Threats, Security Policies, Security Systems
B. Access Control: Discretionary, Mandatory, and Role-Based Access Controls
C. Database Auditing


IX. NoSQL Databases
A. Overview of NoSQL Databases
B. CAP Theorem
C. Comparison of NoSQL databases: MongoDB, Cassandra, Redis, Neo4j


X. Distributed Databases
A. Fundamentals of Distributed Databases
B. Data Fragmentation, Replication, and Allocation Techniques for Distributed Database Design
C. Query Processing in Distributed Databases


XI. Recent Advances and Future Trends in Databases
A. Big Data: Hadoop Ecosystem, MapReduce, Spark
B. In-memory Databases
C. Cloud Databases

​

Textbook: "Database System Concepts" by Abraham Silberschatz, Henry F. Korth, and S. Sudarshan.
 

I. Introduction to Databases

​

We will discuss the overview of databases, their history and evolution, and basic understanding of data types, structures, and files.

​

A. Overview of Databases

​

A database is a structured set of data. So, a computer database is a structured set of computer data. More specifically, a database is an electronic system that allows data to be easily accessed, manipulated, and updated. Databases are vital in today's digital world as they allow us to store, retrieve, and manipulate data which could be used to draw insights and make informed decisions.

​

B. History and Evolution of Databases

​

In the 1960s, the first databases were flat. That means all data was stored in one long text file. It's similar to a spreadsheet, where each line is a separate record and each column contains the different types of information.

​

The 1970s introduced the relational database, which organized data into one or more tables of rows and columns, with a unique key identifying each row. Generally, each table/relationship represents one "entity type" (such as customer or product). The tables are linked by defined relations making it possible to combine data from several tables upon request.

​

The 1990s brought improvements in storage and speed, leading to multidimensional databases for online analytical processing (OLAP).

​

The 2000s brought large scale, distributed, non-relational databases often known as NoSQL databases which allow for storage of data across many servers and for massive scalability.

​

C. Understanding Data: Types, Structures, Files

​

Data Types: In databases, a data type refers to the kind of data that can be stored in a field. Different types of databases support different data types, but almost all databases support common types like text (or string), numeric (integer, real, or float), date/time, etc.


For example, a 'Customer' database may have fields like 'FirstName' (text type), 'Age' (integer type), and 'RegistrationDate' (date/time type).

​

Data Structures: A data structure is a specialized format for organizing, processing, retrieving and storing data. While there are several basic and advanced types of data structures, any data structure is designed to arrange data to suit a specific purpose so that it can be accessed and worked with in appropriate ways. In computer programming, a data structure may be selected or designed to store data for the purpose of working on it with various algorithms.

​

Data Files: These are usually non-volatile (i.e., stored on disk) files that contain the data. Data in these files are typically organized in some form of data structure. For example, in a relational database, the data file will consist of a set of tables.

bottom of page