G
Guest
I know this question has to do with Data Normalization but the concept of
exactly how to do it still eludes me. I need to create a database that will
be able to track a lot of students and their test scores. For example:
Students in the 3rd – 6th grades take standardized tests in Language Arts,
Math, Science, and History each year. What I would like to do is keep track
of each test score each student achieved every year they took the tests.
I’ll need to enter the test data for a specific student for a specific school
year, say for the 2006-2007, then 2007-2008 school years for each test. In
the end I would like to be able to query, for example, which students in the
5th grade for the year 2006-2007 scored >70% on the Math test. Or, which
students in the 4th grade for 2007-2008 scored <60% on the Science test. Or,
I would like to query all of the Science test scores for Student A for all
the years this student took the Science test. Or, I would like to query and
view all of the test scores for Student A for all the years they took the
tests. These are examples, but you can see that I’d really like to be able
to study the data in many ways, both for large groups of students for certain
years or many years, as well as for an individual student for a certain year
or many years. I think that creating the queries will be the easy part.
What I can’t figure out is how many table do I need and what information do
the tables contain.
I have one student information table that contains the following information:
Last Name
First Name
Student Number
Current Grade Level
{and a little bit more specific information about that student}
The Student Number is the unique field and I assume my primary key. I
figure I will use the Student Number to create relationships between the
Student table and the other tables that contain the test scores for each year.
Ultimately, my question comes down to how do I design the other tables in a
logical way so that it makes sense? Do I create an individual table for each
grade level for each year and include all of the test scores using the
Student Number as the common connection? Or, should I create a separate
table for each test and somehow connect each score and school year to each
student? I can’t determine if I need lots of little tables that hold just a
small portion of the whole or fewer big tables that hold a much larger
portion of the whole.
Any thoughts you may have that could get me started in a good and reasonable
direction would be greatly appreciated.
exactly how to do it still eludes me. I need to create a database that will
be able to track a lot of students and their test scores. For example:
Students in the 3rd – 6th grades take standardized tests in Language Arts,
Math, Science, and History each year. What I would like to do is keep track
of each test score each student achieved every year they took the tests.
I’ll need to enter the test data for a specific student for a specific school
year, say for the 2006-2007, then 2007-2008 school years for each test. In
the end I would like to be able to query, for example, which students in the
5th grade for the year 2006-2007 scored >70% on the Math test. Or, which
students in the 4th grade for 2007-2008 scored <60% on the Science test. Or,
I would like to query all of the Science test scores for Student A for all
the years this student took the Science test. Or, I would like to query and
view all of the test scores for Student A for all the years they took the
tests. These are examples, but you can see that I’d really like to be able
to study the data in many ways, both for large groups of students for certain
years or many years, as well as for an individual student for a certain year
or many years. I think that creating the queries will be the easy part.
What I can’t figure out is how many table do I need and what information do
the tables contain.
I have one student information table that contains the following information:
Last Name
First Name
Student Number
Current Grade Level
{and a little bit more specific information about that student}
The Student Number is the unique field and I assume my primary key. I
figure I will use the Student Number to create relationships between the
Student table and the other tables that contain the test scores for each year.
Ultimately, my question comes down to how do I design the other tables in a
logical way so that it makes sense? Do I create an individual table for each
grade level for each year and include all of the test scores using the
Student Number as the common connection? Or, should I create a separate
table for each test and somehow connect each score and school year to each
student? I can’t determine if I need lots of little tables that hold just a
small portion of the whole or fewer big tables that hold a much larger
portion of the whole.
Any thoughts you may have that could get me started in a good and reasonable
direction would be greatly appreciated.