SQL

o++oPS

two representations of one table:

STID, NAME, LOC?, SAL, DEPT,( COURSE, MARK l),( PROJ, HOURS m) m
1234 Ernst Oehna 500 Maths Algebra 1 Fritz 4
Logic 2 Otto 2
          History 1    
1245 Sophia Berlin 400 CS Algebra 3 Mao 5
          Database 1 Ming 4
          Otto 1 Otto 6
2456 Clara Oehna 450 CS Database 1
          OCaml 2    
4567 Ulrike   400 Art     Monet 10
5678 Kaethe Gerwisch 0 Art Repin 1 Monet 20
          Apel    
                (students.tab)

STID,NAME,LOC?,SAL,DEPT,(COURSE,MARK l),(PROJ,HOURS m) m
1234  Ernst  Oehna  500  Maths
  Algebra  1 
  Logic  2 
  History  1 
    Fritz  4 
    Otto  2 
1245  Sophia  Berlin  400  CS
  Algebra  3 
  Database  1 
  Otto  1 
    Mao  5 
    Ming  4 
    Otto  6 
3456  Clara  Oehna  450  CS
  Database  1 
  OCaml  2 
4567  Ulrike  empty  400  Art
    Monet  10 
5678  Kaethe  Gerwisch  0  Art
  Repin  1 
  Apel  1 
    Monet  20 
(students.hsq)

         SQL requires to store the above table students in three files:

STID, NAME, LOC?, SAL, DEPT m
1234 Ernst Oehna 500 Maths
1245 Sophia Berlin 400 CS
3456 Clara Oehna 450 CS
4567 Ulrike   400 Arts
5678 Kaethe Gerwisch 0 Arts
        (students1.tab)

         

STID, COURSE, MARK m
1234 Algebra 1
1234 History 1
1234 Logic 2
1245 Algebra 3
1245 Database 1
1245 Otto 1
3456 Database 1
3456 OCaml 2
5678 Apel 1
5678 Repin 1
     (exams1.tab) 

      

STID, PROJ, HOURS m
1234 Fritz 4
1234 Otto 2  
1245 Mao 5
1245 Ming 4  
1245 Otto 6  
4567 Monet 10  
5678 Monet 20  
        (projects1.tab)