Module #1: Basic Database and Software Engineering Concepts

In this module, we will cover fundamental concepts including:

  • Database management systems (DBMS) and their types

  • Key software engineering principles such as modularity and abstraction

  • The importance of data modeling and normalization techniques

  • Overview of relational databases and SQL syntax

  • Introduction to NoSQL databases and their applications. Furthermore, we will explore the differences between structured and unstructured data and the significance of data integrity and security in database management. Additionally, we will examine various database management systems (DBMS) and their functionalities, including how they support data manipulation and retrieval, ensuring efficient data handling across different applications.

Lesson 1: The Database Environment & Development Process
  • The drawbacks of Traditional File Systems include data redundancy, data inconsistency, difficult access, data isolation, integrity issues, atomicity issues, concurrent access issues, and security problems.

  • Evolution of Database Technology:

    • Traditional File System: Basic, limited.

    • Hierarchical/Network Models: Structured but inflexible.

    • Relational Model: Tables, keys, SQL.

    • Object-Oriented Databases: Complex structures, integrated with programming.

  • Data Models Comparison:

    • Hierarchical: Tree-structured, simple but inflexible.

    • Network: Flexible, complex relationships.

    • Relational: Tables are flexible and widely used.

    • Object-oriented: Complex data, less common.

  • Key Terms:

    • Database: Organized data collection.

    • Relation: Table.

    • Attribute: Table column.

    • Primary Key: Unique table record identifier.

    • Foreign Key: References another table's primary key.

    • Referential Integrity: Ensures valid references between tables.

  • Data Independence:

    • Logical/Physical independence: Schema changes without affecting data.

  • Roles in Database Team: DBA, Designer, Developer, End-User.

Lesson 2: Database Development in the Context of SDLC
  • SDLC: Framework for system development.

  • Stages: Planning, Analysis, Design, Implementation, Maintenance.

  • Methodologies:

    • Waterfall: Sequential.

    • V Model: Verification/validation.

    • Spiral: Iterative, risk-focused.

    • Prototyping: Early mock-ups.

    • Agile: Iterative, incremental.

Lesson 3: Requirement Gathering and Analysis
  • Role of System Analyst: Document requirements, and liaise with stakeholders.

  • Identifying Needs: Understand objectives/problems.

  • Data Gathering Techniques: Interviews, surveys, observations, document analysis.

  • Feasibility Study: Assess project viability.

  • Requirements:

    • Functional: Specific functions.

    • Non-Functional: Quality attributes.

  • SRS Document: Detailed system capabilities and interactions.

Lesson 4: Design
  • Conceptual Design: Outline the high-level system and data requirements.

  • Importance of Data Modeling: Organizes data, and ensures consistency.