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.