나는 데이터베이스 정규화를 연구 중이며 한 가지를 이해할 수 없다. 다 - 대 - 다 관계가 있다고 가정합니다. 우리는 테이블 코스를 가지고 있으며 테이블 학생이 있습니다. 여러 학생이 여러 과목을 택할 수 있습니다.many to many normalization
학생의 기본 키와 그가 선택한 과정 만 저장하는 "전환"테이블 Course_Student가 있다고 가정합니다.
내 작업은 3NF의 모든 테이블을 만들고 3NF에 테이블이없는 이유를 설명하는 것입니다.
내 질문은 :이 테이블은 이미 3NF에 있으며 특히 "전환"테이블에 대해 우려하고 있습니다.
감사합니다.
Course
id title
1 Math
2 Programming
Student
id name
1 John Stevens
2 Jack Ryan
Course_Student
course_id student_id
1 1
1 2
2 1
CREATE TABLE Course(
id int IDENTITY(1,1) PRIMARY KEY,
title varchar(100) NOT NULL
)
CREATE TABLE Student(
id int IDENTITY(1,1) PRIMARY KEY,
name varchar(50) NOT NULL
)
CREATE TABLE Course_Student(
course_id int FOREIGN KEY REFERENCES Course,
student_id int FOREIGN KEY REFERENCES Student
)
내 작업은 각 테이블이있는 정상적인 양식을 정의하는 것입니다. 어떤 이유로 제가 Course_Student 테이블이 제 3의 정규형인지 의심 스럽습니다. – user3769364
기본 키를 잊어 버리지 마라. 물론 ID 열은 PK이고, 학생 ID 열은 PK, course_id 및 student_id 열은 복합 키 (복수 기본 키)이다. –
3NF에 있으며, 그 테이블의 기본 키는 (course_id, student_id) 그래서 그것은 어떤 속성도 가지고 있지 않습니다. – Bob