logo Insalogo Insa

Databases, C and Network programming


Programme (detailed contents):



The aim is to introduce the basic concepts of designing relational databases in UML.  From the UML data model, the process of derivation and validation of the relational model will be studied. The normalization process will be investigated. Finally, the focus will be on relational algebra and SQL to manipulate and request databases.


C and network programming:

v  C: Students should simulate a problem in the computer-science domain: OS scheduling, network routing or file-systems. Simulation of the chosen system. The different phases of the development (specification, conception and programming) are coordinated by a teacher.

v  Network: The first part of the course describes the main distributed Internet applications (http, ftp, smtp, etc.). The second part describes the TCP/UDP socket interface (in C) allowing a program to transfer data between two distant hosts. Two labs illustrate the second part through the implementation of a simple

v  application aimed at generating data via TCP or UDP.



v  Lectures accompanied of course material will be given to students. Directed labs during which the students will practice the different seen concepts. The latest directed labs are devoted to the introduction and study of a concrete project. Finally, in practical labs, students will realize their project. At the end of these labs, students will provide a report.

C and network programming:

v   C: Specification and general conception are done during tutorials. Programs are written during lab-work

v  Network: The lectures are followed by the 2 labs. The students work in pairs.

Main difficulties for students:

Database: v  Understanding and using the normal forms and the query languages (relational). C and network programming: v  C: knowledge of algorithms, manipulation of C pointers and parameters. Network: manipulation of C pointers.


At the end of this module, the student will have understood and be able to explain (main concepts):



v  The different data models, their advantages and limits

v  What is DBMS (Database management system)

v  UML based data model

v  The different concepts of the relational model

v  The normalization and its importance

v  Data integrity constraints

v  Relational algebra and SQL languages


C and network programming

v  At the end of this module, the student will be able to:

v  manipulate the following notions using the C language: pointers, strings and parameter passing,

v  program a simple distributed internet application using the socket interface (TCP/UDP socket API),

v  be familiar with the major internet applications (http, ftp, smtp, etc.).




The student will be able to :





v  Design an UML based database model

v  Derive the relational model from UML model and vice versa

v  Normalize and validate  arelational model

v  Implement the designed database while ensuring integrity constraints

v  Write requests based on relational algebra and implement them in SQL for database interrogation and manipulation

Needed prerequisite


Database :   none

C and network programming :

First and second year courses on Algorithms & Programming (I1ANIF12, I1ANIF20, I2AIIF20).

Third year course on C language.

Third year course on computer networks.

Form of assessment

The evaluation of outcome prior learning is made as a continuous training during the semester. According ot the teaching, the assessment will be different: as a written exam, an oral exam, a record, a written report, peers review...


C. Date - Introduction aux bases de données - Thomson

G. Gardarin - Bases de données - Eyrolles

D. Marre - Bases de données - support de cours - Insa Toulouse

T. Monteil, V. Nicomette, F. Pompignac, S. Hernando, Du langage C au C++, Presses Universitaires du Mirail

B. W. Kernighan et D. M. Ritchie, Le langage C, Masson