+ 36장 전체를 일관된 형식과 사례로 완성했다.
- 일부 정의가 후보키 대신 기본키 중심으로 단순화됐다.
주제와 제공 내용을 넣으면 학습 목표, 구조화된 단원, 시각 자료, 발표자 노트를 포함한 30~40장 학술 발표를 설계합니다.
| 분류 | 사무 › 슬라이드 |
|---|---|
| 태그 | 초안작성아이디어대학생슬라이드 |
Act as an Academic PowerPoint Presentation Designer. You are an expert in curriculum design and have extensive experience in crafting professional academic presentations. Your task is to: - Develop a comprehensive presentation on a specific topic using the provided content. - Include clear learning objectives at the beginning of the presentation to enhance understanding and engagement. - Organize content into structured units that facilitate easy following and comprehension. - Ensure the presentation comprises 30 to 40 slides, balancing detailed explanation with conciseness. - Design slides with a professional and uniform style focusing on clarity of text and ease of reading. - Use appropriate visual elements such as tables, charts, and icons to illustrate information and enhance understanding. - Maintain a balance between text and visuals to prevent cluttering slides. Rules: - Tailor the content to suit undergraduate and graduate university students and faculty members while maintaining a formal and educational tone. - Add speaker notes to each slide to aid explanation during the presentation. - Ensure the presentation is easily editable and customizable for future use.
대학 수업이나 학술 발표용 슬라이드를 만들 때 쓰기 좋다. 학부·대학원생과 교수진을 대상으로 형식적이고 교육적인 톤을 유지하도록 한다.
ChatGPT가 완결성·구체성·형식 준수에서 가장 우수하다. Gemini는 상세하지만 미완성이며, Claude는 산출물 설명에 그친다.
+ 36장 전체를 일관된 형식과 사례로 완성했다.
- 일부 정의가 후보키 대신 기본키 중심으로 단순화됐다.
+ 39장 구성과 편집 방법을 간결하게 정리했다.
- 실제 슬라이드 없이 미확인 산출물만 주장한다.
+ 초반 내용과 발표자 노트가 구체적이고 풍부하다.
- 15장에서 끊겨 30~40장 요구를 충족하지 못한다.
| 기준 | ChatGPT | Claude | Gemini | 앞선 모델 |
|---|---|---|---|---|
| 지시 준수 | 9 | 3 | 4 | ChatGPT +125% |
| 정확성 | 8 | 4 | 5 | ChatGPT +60% |
| 구체성 | 9 | 7 | 8 | ChatGPT +13% |
| 구성·가독성 | 9 | 8 | 7 | ChatGPT +13% |
| 분량 적정성 | 8 | 7 | 3 | ChatGPT +14% |
gpt-5.6-sol가 모델 이름을 가린 채 1~10점으로 채점했습니다 (2026-09-24). 측정값이 아니라 AI 심사 결과입니다.
같은 입력을 세 모델에 넣어 받은 답을 그대로 옮겼습니다. 각 CLI(에이전트 하네스)에서 실행했습니다. ChatGPT·Claude 앱이나 웹에서는 답이 다를 수 있습니다.
[붙여 넣은 자료] 대학교 3학년 '데이터베이스 개론' 수업용 강의 슬라이드를 만들어야 합니다. 주제는 '관계형 데이터베이스 정규화(1NF~BCNF)'이고 아래 강의노트를 참고해주세요. [강의노트 요약] - 정규화 목적: 데이터 중복 최소화, 삽입/삭제/갱신 이상(anomaly) 방지 - 1NF: 원자값만 허용, 반복 그룹 제거 - 2NF: 부분 함수 종속 제거 - 3NF: 이행적 함수 종속 제거 - BCNF: 모든 결정자가 후보키여야 함 - 실습 예시: '수강신청' 테이블(학번, 과목코드, 교수명, 강의실, 학점)을 단계별로 정규화 - 참고 교재: Elmasri & Navathe, 「Fundamentals of Database Systems」 7판, 8~9장 - 수강생: 한국공대 컴퓨터공학과 3학년 45명
현재 작업공간은 읽기 전용이라 .pptx 파일을 직접 저장할 수 없습니다. 대신 PowerPoint에 바로 옮길 수 있도록 36장 분량의 슬라이드 원고와 슬라이드별 발표자 노트를 구성했습니다.
#16324F, 청록 #2A9D8F, 오렌지 #F4A261, 연회색 #F5F7FA관계형 데이터베이스 정규화
1NF에서 BCNF까지
시각 요소: 테이블 아이콘과 연결선 그래픽
발표자 노트:
이번 시간에는 관계형 데이터베이스의 정규화 원리를 이해하고, 수강신청 데이터를 1NF부터 BCNF까지 단계적으로 변환합니다.
수업 후 학생은 다음을 할 수 있다.
발표자 노트:
정규화 규칙을 암기하는 것보다, 함수 종속을 근거로 릴레이션을 설계하는 것이 핵심입니다.
시각 요소: 단계형 로드맵
발표자 노트:
각 정규형은 이전 단계의 문제를 추가로 해결하는 방식으로 이해하면 됩니다.
정규화(Normalization)
핵심 질문:
“하나의 사실은 데이터베이스에 몇 번 저장되어야 하는가?”
발표자 노트:
정규화는 단순히 테이블을 많이 만드는 작업이 아니라, 데이터 간 의미 있는 종속 관계를 분리하는 작업입니다.
예시: 수강신청 테이블
| 학번 | 과목코드 | 교수명 | 강의실 | 학점 |
|---|---|---|---|---|
| 2023001 | DB101 | 김교수 | 공학관 301 | 3 |
| 2023002 | DB101 | 김교수 | 공학관 301 | 3 |
| 2023003 | DB101 | 김교수 | 공학관 301 | 3 |
문제:
발표자 노트:
현재 테이블은 수강 사실과 과목 정보를 하나의 릴레이션에 함께 저장하고 있습니다.
수강생이 없으면 신규 과목 정보를 입력하기 어렵다.
마지막 수강생을 삭제하면 과목 정보까지 사라질 수 있다.
강의실 변경 시 동일 과목의 여러 행을 수정해야 한다.
시각 요소: 세 가지 이상을 아이콘 카드로 표현
발표자 노트:
이상은 데이터가 잘못 입력되는 문제라기보다, 설계 때문에 정상적인 업무가 불편하거나 위험해지는 문제입니다.
함수 종속 표기:
X → Y
의미:
예시:
발표자 노트:
함수 종속은 속성 간의 업무 규칙을 표현합니다. 정규화는 결국 함수 종속을 올바른 테이블 구조로 바꾸는 과정입니다.
튜플을 유일하게 식별할 수 있는 속성 집합
최소성을 만족하는 슈퍼키
후보키 중 대표로 선택한 키
수강신청 예시:
후보키 = {학번, 과목코드}
발표자 노트:
후보키를 잘못 찾으면 부분 함수 종속과 정규형 판단도 모두 틀릴 수 있습니다.
반복 그룹 또는 다중값 존재?
↓
1NF
↓
부분 함수 종속 존재?
↓
2NF
↓
이행적 함수 종속 존재?
↓
3NF
↓
결정자가 후보키가 아닌가?
↓
BCNF
발표자 노트:
각 정규형은 더 강한 제약 조건을 추가합니다. 일반적으로 BCNF가 3NF보다 엄격합니다.
릴레이션이 1NF를 만족하려면:
원자값 예시:
과목코드 = DB101
비원자값 예시:
과목코드 = DB101, AI201, OS301
발표자 노트:
원자성은 값이 더 이상 의미 있는 단위로 분해되지 않는다는 뜻이 아니라, 해당 릴레이션의 한 속성 안에 여러 값을 묶어 저장하지 않는다는 의미입니다.
| 학번 | 수강과목 |
|---|---|
| 2023001 | DB101, OS201 |
| 2023002 | DB101 |
| 2023003 | AI301, DB101 |
문제:
1NF 변환:
| 학번 | 과목코드 |
|---|---|
| 2023001 | DB101 |
| 2023001 | OS201 |
| 2023002 | DB101 |
| 2023003 | AI301 |
| 2023003 | DB101 |
발표자 노트:
반복되는 값을 여러 행으로 분리하면 각 셀에 하나의 값만 남습니다.
| 학번 | 과목코드 | 교수명 | 강의실 | 학점 |
|---|---|---|---|---|
| 2023001 | DB101 | 김교수 | 301호 | 3 |
| 2023002 | DB101 | 김교수 | 301호 | 3 |
| 2023001 | OS201 | 이교수 | 205호 | 3 |
확인:
결론:
테이블은 1NF를 만족한다고 가정한다.
발표자 노트:
1NF는 데이터 구조의 출발점입니다. 하지만 중복과 함수 종속 문제는 아직 남아 있습니다.
다음 중 1NF를 위반하는 것은?
A. 전화번호 = 010-1234-5678
B. 이메일 = user@example.com
C. 관심분야 = DB, AI, OS
D. 학점 = 3
정답: C
발표자 노트:
문자열 내부에 여러 개념이 묶여 있다면 실제 업무상 별도의 값으로 관리해야 하는지 검토해야 합니다.
릴레이션이 2NF를 만족하려면:
즉,
부분 함수 종속을 제거한다.
발표자 노트:
2NF는 특히 복합 기본키를 사용하는 테이블에서 중요합니다.
기본키:
{학번, 과목코드}
함수 종속:
학번, 과목코드 → 수강정보
과목코드 → 교수명
과목코드 → 강의실
과목코드 → 학점
문제:
발표자 노트:
과목 정보는 학생이 누구인지와 무관하게 과목코드로 결정됩니다.
DB101을 100명이 수강한다면:
강의실이 변경되면:
시각 요소: 중복 행을 연결하는 강조선
발표자 노트:
중복은 저장 공간의 문제만이 아니라 무결성 유지 비용의 문제입니다.
| 학번 | 과목코드 |
|---|---|
| 2023001 | DB101 |
| 2023002 | DB101 |
| 2023001 | OS201 |
| 과목코드 | 교수명 | 강의실 | 학점 |
|---|---|---|---|
| DB101 | 김교수 | 301호 | 3 |
| OS201 | 이교수 | 205호 | 3 |
분해 결과:
수강(학번, 과목코드)
과목(과목코드, 교수명, 강의실, 학점)
발표자 노트:
과목 정보와 수강 관계를 분리하면 과목 정보는 한 번만 저장됩니다.
| 분해 전 | 분해 후 |
|---|---|
| 수강 사실과 과목 정보 혼합 | 수강과 과목 정보 분리 |
| 과목 정보 반복 | 과목 정보 1회 저장 |
| 갱신 이상 가능 | 갱신 대상 명확 |
| 복합키 일부 종속 | 부분 종속 제거 |
핵심:
키의 일부에만 종속되는 속성은 별도 릴레이션으로 이동한다.
발표자 노트:
분해 후 과목코드는 과목 릴레이션의 기본키가 됩니다.
분해 후에도 원래 정보를 복원할 수 있어야 합니다.
수강 ⋈ 과목
조인 조건:
수강.과목코드 = 과목.과목코드
무손실 분해의 조건:
발표자 노트:
정규화는 정보를 잃는 작업이 아니라, 필요할 때 조인으로 다시 구성할 수 있도록 구조를 바꾸는 작업입니다.
다음 함수 종속이 있을 때 2NF 위반 여부를 판단하시오.
기본키 = {학생ID, 상품ID}
학생ID, 상품ID → 수량
상품ID → 상품명, 가격
정답:
발표자 노트:
이 문제는 수강신청 사례와 동일한 구조를 갖습니다.
릴레이션이 3NF를 만족하려면:
이행적 함수 종속:
A → B
B → C
따라서 A → C
발표자 노트:
3NF는 기본키를 거치지 않고 다른 일반 속성을 거쳐 발생하는 종속을 제거합니다.
릴레이션:
학생(학번, 학과코드, 학과명)
함수 종속:
학번 → 학과코드
학과코드 → 학과명
따라서 학번 → 학과명
문제:
발표자 노트:
학과명은 학번이 직접 결정하는 값이 아니라 학과코드를 통해 간접적으로 결정됩니다.
학생(학번, 학과코드)
학과(학과코드, 학과명)
함수 종속:
학번 → 학과코드
학과코드 → 학과명
분해 후:
발표자 노트:
각 릴레이션에서 결정자가 해당 정보의 직접적인 관리 단위가 되도록 분해합니다.
함수 종속 X → A가 있을 때:
정리:
모든 비주요 속성은 키에 직접 종속되어야 한다.
발표자 노트:
3NF는 함수 종속의 왼쪽과 오른쪽의 역할을 함께 확인해야 합니다.
| 구분 | 제거 대상 | 대표 문제 |
|---|---|---|
| 1NF | 반복 그룹, 다중값 | 한 셀에 여러 값 |
| 2NF | 부분 함수 종속 | 복합키 일부에 종속 |
| 3NF | 이행적 함수 종속 | 일반 속성을 통한 간접 종속 |
| BCNF | 후보키가 아닌 결정자 | 결정자와 키 불일치 |
발표자 노트:
정규형은 단계적으로 강해지며, 각 단계가 해결하는 문제가 다릅니다.
분해 결과:
수강(학번, 과목코드)
과목(과목코드, 교수명, 강의실, 학점)
함수 종속:
과목코드 → 교수명
과목코드 → 강의실
과목코드 → 학점
과목 릴레이션에서:
결론:
현재 가정에서는 과목 릴레이션이 3NF를 만족한다.
발표자 노트:
여기서는 과목코드가 교수명이나 강의실을 직접 결정하는 업무 규칙을 가정합니다.
릴레이션 R의 모든 비자명 함수 종속 X → Y에 대해:
X는 반드시 슈퍼키여야 한다.
쉽게 말하면:
모든 결정자는 후보키여야 한다.
BCNF는 3NF보다 엄격한 정규형입니다.
발표자 노트:
3NF에서는 일부 예외가 허용되지만, BCNF에서는 결정자가 키가 아니면 허용하지 않습니다.
3NF:
BCNF:
관계:
3NF ⊃ BCNF
즉:
발표자 노트:
BCNF는 함수 종속의 구조적 일관성을 더 강하게 보장합니다.
릴레이션:
수강지도(학생, 과목, 교수)
함수 종속:
학생, 과목 → 교수
교수 → 과목
후보키:
{학생, 과목}
{학생, 교수}
교수 → 과목에서:
따라서:
발표자 노트:
이 예시는 3NF의 예외 규칙 때문에 3NF에는 남을 수 있지만, BCNF는 결정자가 후보키인지 엄격히 검사합니다.
기존:
수강지도(학생, 과목, 교수)
분해:
교수과목(교수, 과목)
학생교수(학생, 교수)
장점:
주의:
발표자 노트:
BCNF 분해는 무손실성을 보장하도록 해야 하며, 종속성 보존 여부도 함께 검토해야 합니다.
| 정규형 | 핵심 조건 | 해결하는 문제 |
|---|---|---|
| 1NF | 원자값 | 반복 그룹 |
| 2NF | 부분 종속 없음 | 복합키 중복 |
| 3NF | 이행적 종속 없음 | 간접 종속 |
| BCNF | 결정자는 슈퍼키 | 결정자 불일치 |
시각 요소: 강도가 높아지는 계단형 도식
발표자 노트:
실무에서는 항상 BCNF가 최선이라고 단정하지 않고, 무결성·질의 성능·업무 요구를 함께 고려합니다.
속성:
수강신청(학번, 과목코드, 교수명, 강의실, 학점)
업무 가정:
학번, 과목코드 → 수강 여부
과목코드 → 교수명, 강의실, 학점
후보키:
{학번, 과목코드}
발표자 노트:
이 테이블은 1NF는 만족하지만, 과목 정보가 수강정보와 섞여 있어 2NF 문제가 발생합니다.
조건:
{학번, 과목코드} 사용수강신청(학번, 과목코드, 교수명, 강의실, 학점)
상태:
발표자 노트:
1NF는 값의 형태를 정리했지만, 속성 간 종속 관계까지 해결하지는 않습니다.
분해:
수강(학번, 과목코드)
과목(과목코드, 교수명, 강의실, 학점)
확인:
수강: {학번, 과목코드} → 수강정보
과목: 과목코드 → 교수명, 강의실, 학점
상태:
발표자 노트:
과목 릴레이션에서 과목코드가 유일한 결정자이자 후보키이므로 BCNF까지 만족합니다.
CREATE TABLE Course (
course_code CHAR(5) PRIMARY KEY,
professor_name VARCHAR(40) NOT NULL,
classroom VARCHAR(30) NOT NULL,
credits INT NOT NULL
);
CREATE TABLE Enrollment (
student_id CHAR(7),
course_code CHAR(5),
PRIMARY KEY (student_id, course_code),
FOREIGN KEY (course_code)
REFERENCES Course(course_code)
);
시각 요소: 코드 블록과 테이블 관계선
발표자 노트:
기본키와 외래키 제약조건은 정규화된 구조의 의미를 데이터베이스에 명시합니다.
핵심 정리:
확인 질문:
{학번, 과목코드}에서 과목코드만으로 결정되는 속성은?발표자 노트:
마지막으로 각 정규형의 기준을 함수 종속 관점에서 다시 설명하도록 유도합니다.
수업 중 10분 실습 문제:
다음 릴레이션을 정규화하시오.
수강평가(학번, 과목코드, 교수명, 학과코드, 학과명, 평가점수)
주어진 함수 종속:
학번, 과목코드 → 평가점수
과목코드 → 교수명, 학과코드
학과코드 → 학과명
예상 분해:
수강평가(학번, 과목코드, 평가점수)
과목(과목코드, 교수명, 학과코드)
학과(학과코드, 학과명)
| 졸업 발표 코치 프롬프트 | |
| 체스 전략 코치 프롬프트 | |
| 임상연구 발표 지도 프롬프트 | |
| Graphviz 다이어그램 생성 프롬프트 | |
| 연설 지도자 역할 프롬프트 |