• In short, homework.

    Here's how it's done. Think about each of the objects you've just defined. There's a school, a student and student grades. Now think about how those objects relate to each other. The school exists completely independently of all other objects, right? A student must belong to a school, but, can they belong to more than one at the same time? Let's assume just one at a time (because it's easier and no one has said different). That means you have a relationship between the school and the student. You can map that out as what's called a foreign key. Then, you have classes. The classes, presumably, also belong to the school. Each student can take more than one class, so there isn't a direct relationship between student and class. Instead you have to create an interim table that allows you to map students to classes directly. But, one student can only be in a given class once (per year anyway, if you flunk, you have to take it again, different problem). So, the unique identifier for the StudentClass table should be the student identifier (whatever it is) and the Class identifier (whatever it is). Then, the marks a student gets are part of that relationship between class and student, but... are they multiple marks or just one mark per class?

    You just work through it that way, identifying the objects, the fields contained within them, and the relationships to other objects. That will build out your database.

    "The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood"
    - Theodore Roosevelt

    Author of:
    SQL Server Execution Plans
    SQL Server Query Performance Tuning