データベース記録をシンプルにする
高校のある先生が、学生記録をより整理する取り組みが進んでいると聞き、自分の担当科目の成績を整理したいと考えています。先生は test_grades テーブルの構造として、次のような提案をしています。
CREATE TABLE test_grades (
student_id INTEGER NOT NULL,
course_name VARCHAR(50) NOT NULL,
grades TEXT NOT NULL
);
各レコードは、先生のクラスの学生1人分を表し、学生のID、科目名、そしてその学生のテスト成績を格納します。しかし先生は、この構造ではデータベースの管理が難しいと感じています。新しい成績を追加するには複雑なクエリが必要で、成績に対して計算を行うのも容易ではありません。この演習では、このテーブルを第1正規形(1NF)に正規化するお手伝いをします。
この演習はコースの一部です
PostgreSQL データベースの作成
演習の手順
test_gradeという名前でテーブルの新しいバージョンを定義してください。student_idとcourse_name列を、test_gradesテーブルで定義されているとおりに含めてください。grades列の代わりに、gradeという数値列を追加してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
-- Create the test_grade table
___ ___ ___ (
-- Include a column for the student id
___ ___ NOT NULL,
-- Include a column for the course name
___ ___ NOT NULL,
-- Add a column to capture a single test grade
___ ___ NOT NULL
);