상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
궁금한 상식 보기
만유인력의 법칙과 시간 여행에 대한 이론은 어떤 것이 있나요?
이란의 유명한 예술가나 작가는 누구인가요?
이란의 고대 문명에 대해 알려주세요.
이란의 노동 시장과 고용 정책은 어떤가요?
테헤란의 명품 브랜드 숍은 어디에 있나요?
바레인에서 영어는 얼마나 널리 사용되나요?
바레인에서의 뉴스 미디어는 어떤 방식으로 운영되나요?
바레인에서의 스포츠 이벤트는 어떻게 유치되고 있나요?
eSIM의 사용이 국제 여행 시의 이점은 무엇인가요?
eSIM 전환의 법적 절차에 대해 설명해 주세요.
나트랑의 바다에서 즐길 수 있는 요트 투어는 어떻게 되나요?
나트랑의 찜질방 문화는 어떤가요?
Previous
Next
수정하기 - MySQL에서 many-to-many 관계에서 데이터 무결성을 보장하는 쿼리는 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
MySQL에서 many-to-many 관계를 설정하고 <a href='https://sangseek.com/sangseeks/데이터 무결성/ko'>데이터 무결성</a>을 보장하기 위해서는 <a href='https://sangseek.com/sangseeks/중간 테이블/ko'>중간 테이블</a>(조인 테이블)을 사용하는 것이 일반적입니다. 이 중간 테이블은 두 개의 테이블 간의 관계를 정의하며, 각 테이블의 기본 키를 외래 키로 포함합니다. 이를 통해 두 테이블 간의 관계를 명확하게 정의하고, 데이터 무결성을 유지할 수 있습니다. 1. Many-to-Many 관계의 이해 <a href='https://sangseek.com/sangseeks/Many-to-many/ko'>Many-to-many</a> 관계는 두 개의 엔티티 간에 여러 개의 레코드가 서로 연결될 수 있는 관계를 의미합니다. 예를 들어, 학생(Student)과 강의(Course) 간의 관계를 생각해 볼 수 있습니다. 한 학생은 여러 강의를 수강할 수 있고, 하나의 강의도 여러 학생이 수강할 수 있습니다. 2. 테이블 설계 이러한 관계를 구현하기 위해서는 다음과 같은 테이블 구조를 설계할 수 있습니다. - 학생 테이블 (students) ```sql CREATE TABLE students ( student_id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100) NOT NULL ); ``` - 강의 테이블 (courses) ```sql CREATE TABLE courses ( course_id INT PRIMARY KEY AUTO_INCREMENT, title VARCHAR(100) NOT NULL ); ``` - 학생-강의 관계 테이블 (<a href='https://sangseek.com/sangseeks/student_courses/ko'>student_courses</a>) ```sql CREATE TABLE student_courses ( student_id INT, course_id INT, PRIMARY KEY (student_id, course_id), FOREIGN KEY (student_id) REFERENCES students(student_id) ON DELETE CASCADE, FOREIGN KEY (course_id) REFERENCES courses(course_id) ON DELETE CASCADE ); ``` 3. 데이터 무결성 보장 위의 설계에서 데이터 무결성을 보장하기 위해 다음과 같은 방법을 사용할 수 있습니다. - 외래 키 제약 조건 : `student_courses` 테이블에서 `student_id`와 `course_id`는 각각 `students`와 `courses` 테이블의 외래 키로 설정되어 있습니다. 이로 인해, 학생이나 강의가 삭제될 경우 관련된 레코드도 자동으로 삭제되도록 `ON DELETE CASCADE` 옵션을 사용했습니다. 이는 데이터의 일관성을 유지하는 데 도움이 됩니다. - 복합 기본 키 : `student_courses` 테이블의 기본 키는 `student_id`와 `course_id`의 조합으로 설정되어 있습니다. 이를 통해 동일한 학생이 동일한 강의를 중복 등록하는 것을 방지할 수 있습니다. 4. 데이터 삽입 예시 데이터를 삽입할 때는 다음과 같은 쿼리를 사용할 수 있습니다. ```sql -- 학생 추가 INSERT INTO students (name) VALUES ('John Doe'); -- 강의 추가 INSERT INTO courses (title) VALUES ('Mathematics'); -- 학생과 강의 관계 추가 INSERT INTO student_courses (student_id, course_id) VALUES (1, 1); ``` 5. 데이터 무결성 검증 데이터 무결성을 검증하기 위해 다음과 같은 쿼리를 사용할 수 있습니다. - 학생이 수강하는 강의 조회 ```sql SELECT s.name, c.title FROM students s JOIN student_courses sc ON s.student_id = sc.student_id JOIN courses c ON sc.course_id = c.course_id; ``` - 특정 학생이 수강하는 강의가 있는지 확인 ```sql SELECT COUNT(*) FROM student_courses WHERE student_id = 1 AND course_id = 1; ``` 6. 결론 MySQL에서 many-to-many 관계를 설정하고 데이터 무결성을 보장하기 위해서는 중간 테이블을 사용하고, 외래 키 제약 조건 및 복합 기본 키를 설정하는 것이 중요합니다. 이를 통해 데이터의 일관성을 유지하고, 중복된 관계를 방지할 수 있습니다. 이러한 설계 원칙을 따르면, 데이터베이스의 무결성을 효과적으로 관리할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기