Upraszczanie rekordów w bazie danych
Jeden z nauczycieli w szkole średniej dowiedział się o pracach nad lepszą organizacją danych uczniów. Chciałby uporządkować oceny z własnych kursów. Nauczyciel proponuje następującą strukturę tabeli test_grades:
CREATE TABLE test_grades (
student_id INTEGER NOT NULL,
course_name VARCHAR(50) NOT NULL,
grades TEXT NOT NULL
);
Każdy rekord reprezentuje ucznia z jednego z kursów nauczyciela – identyfikowanego przez id ucznia, nazwę kursu oraz oceny z testów. Nauczyciel stwierdził, że zarządzanie bazą danych w tej strukturze jest trudne. Dodawanie nowych ocen wymaga skomplikowanego zapytania, a wykonywanie obliczeń na ocenach nie jest łatwe. W tym ćwiczeniu pomożesz doprowadzić tę tabelę do Pierwszej Postaci Normalnej (1NF).
To ćwiczenie jest częścią kursu
Tworzenie baz danych w PostgreSQL
Instrukcje do ćwiczenia
- Zdefiniuj nową wersję tabeli o nazwie
test_grade. - Uwzględnij kolumny
student_idicourse_namezgodnie z definicją z tabelitest_grades. - Zamiast kolumny
gradesdodaj kolumnę numeryczną o nazwiegrade.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
-- 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
);