BSc:DataModelingDatabasesI

From IU
Jump to navigation Jump to search

Data Modeling and Databases I

  • Course name: Data Modeling and Databases I
  • Course number: BS-

Course characteristics

Key concepts of the class

  • Data Modeling
  • Databases

What is the purpose of this course?

Software development has been paired since early days with management of storage and persistency tools. In this course, the classic approach to relational databases will be presented from the design phase via entity-relationship diagrams to the implementation via queries formulated in Structured Query Language (SQL). Students will learn how to model data and use relational databases.

Course Objectives Based on Bloom’s Taxonomy

- What should a student remember at the end of the course?

By the end of the course, the students should be able to recognize and define

  • Define what software requirements are
  • List different commercial and non-commercial DBMS
  • Define Entity Relationship model
  • List different kind of operators of Relational Algebra
  • Define Normal Forms and Functional dependencies
  • List basic clauses of SQL queries

- What should a student be able to understand at the end of the course?

By the end of the course, the students should be able to describe and explain (with examples)

  • Describe the basic machinery behind DBMS
  • Explain Strengths and weaknesses relational model
  • Explain the objectives of the normalization process
  • Abstract systems using ER model

- What should a student be able to apply at the end of the course?

By the end of the course, the students should be able to apply

  • Formally modelling a database system
  • Reasoning requirements collected from stakeholders and model them using ER diagrams
  • Coding in programming languages and interfacing with SQL APIs
  • Using transformation approaches to match ER diagrams and relational model

Course evaluation

Course grade breakdown
Proposed points
Labs/seminar classes 20 30
Interim performance assessment 30 30
Exams 50 40

If necessary, please indicate freely your course’s features in terms of students’ performance assessment: None

Grades range

Course grading range
Proposed range
A. Excellent 90-100 80-100
B. Good 75-89 65-79
C. Satisfactory 60-74 50-64
D. Poor 0-59 0-49


If necessary, please indicate freely your course’s grading features: The semester starts with the default range as proposed in the Table 1, but it may change slightly (usually reduced) depending on how the semester progresses.

Resources and reference material

Textbook

  • Handouts supplied by the instructor

Course Sections

The main sections of the course and approximate hour distribution between them is as follows:

Course Sections
Section Section Title Teaching Hours
1 Data Modeling 48
2 Databases 42

Section 1

Section title:

Data Modeling

Topics covered in this section:

  • Requirements Elicitation and Use Cases
  • Entity-Relationship model and diagrams
  • Relational Algebra and model
  • Mapping ER model into relational model

What forms of evaluation were used to test students’ performance in this section?

|a|c| & Yes/No
Development of individual parts of software product code & 1
Homework and group projects & 1
Midterm evaluation & 1
Testing (written or computer based) & 1
Reports & 1
Essays & 0
Oral polls & 0
Discussions & 1


Typical questions for ongoing performance evaluation within this section

  1. Design the ER diagram considering specific requirements
  2. Given a ER diagram list all entities, and for each entity indicate whether it is a strong or weak entity
  3. Is the connection existing between a weak entity type and its owner called a identifying relationship?
  4. Given a query expressed in Relational Algebra explain its functioning and objectives

Typical questions for seminar classes (labs) within this section

  1. Design the ER diagram considering specific requirements
  2. Is it true that an entity has properties which uniquely distinguish that entity?
  3. Can an attribute have more than one value?
  4. Weak entity sets must have total participation in the identifying relationship set?
  5. Are Joins are compound operators involving union, selection, and (sometimes) projection?

Test questions for final assessment in this section

  1. Design the ER diagram considering specific requirements
  2. Given a ER diagram list all entities, and for each entity indicate whether it is a strong or weak entity
  3. Should a Software Requirements Document include both user and system requirements?
  4. Given a DB schema explaining what specific queries expressed in RA compute

Section 2

Section title:

Databases

Topics covered in this section:

  • SQL
  • Hints on NOSQL
  • Database Application Development
  • Normalization
  • Physical Database Organization - hints

What forms of evaluation were used to test students’ performance in this section?

|a|c| & Yes/No
Development of individual parts of software product code & 1
Homework and group projects & 1
Midterm evaluation & 1
Testing (written or computer based) & 1
Reports & 1
Essays & 0
Oral polls & 0
Discussions & 1


Typical questions for ongoing performance evaluation within this section

  1. Given a query in RA express it in SQL
  2. Given a query in SQL express it in RA
  3. Given a schema assess if it is normalized according to some normal form, if not normalize it
  4. Provide the definition of the normal forms

Typical questions for seminar classes (labs) within this section

  1. Given a query in natural language code it in SQL
  2. Connecting a programming language to SQL API and execute specific query
  3. Given a query in SQL and some specific data determine the output of the query
  4. Given a query in RA code it in SQL

Test questions for final assessment in this section

  1. Given a schema assess if it is normalized according to some normal form, if not normalize it
  2. Design the ER diagram considering specific requirements
  3. Given a ER diagram transform it into a DB schema
  4. Given a query in RA code it in SQL
  5. Given a query in SQL and some specific data determine the output of the query