기초
DBMS 이해, MySQL 설치, 데이터베이스와 테이블 생성, 기본 CRUD 문법을 익힙니다.
데이터베이스의 기본 개념과 SQL 문법을 익힌 뒤 조인, 서브쿼리, 뷰, 인덱스, 트랜잭션, 사용자 권한, 저장 프로시저, 파이썬 연동과 실전 프로젝트까지 단계적으로 학습합니다.
선수 지식이 없는 학생도 따라올 수 있도록 단계적으로 구성했습니다.
DBMS 이해, MySQL 설치, 데이터베이스와 테이블 생성, 기본 CRUD 문법을 익힙니다.
조건 검색, 함수, 그룹화, 조인, 서브쿼리를 활용하여 복합적인 데이터를 분석합니다.
정규화, 뷰, 인덱스, 트랜잭션, 권한, 프로시저와 트리거를 다룹니다.
파이썬과 MySQL을 연동하여 실제 데이터 관리 프로그램을 설계하고 구현합니다.
차시별 핵심 개념, 실습 내용, 산출물을 함께 제시했습니다.
| 차시 | 수준 | 학습 주제 | 핵심 학습 내용 | 주요 명령어·기능 | 실습·산출물 |
|---|---|---|---|---|---|
| 1 | 기초 | 데이터베이스의 이해 | 데이터, 데이터베이스, DBMS, 관계형 데이터베이스의 개념 이해 | DBMS, RDBMS | 생활 속 데이터베이스 사례 조사 |
| 2 | 기초 | MySQL 설치와 환경 구성 | MySQL Server와 Workbench 설치, 서버 접속과 기본 화면 익히기 | mysql, Workbench | 설치 확인 및 서버 접속 화면 |
| 3 | 기초 | 데이터베이스 생성과 관리 | 데이터베이스 생성, 선택, 목록 확인, 삭제 방법 익히기 | CREATE DATABASE, USE, SHOW | school_db 생성 |
| 4 | 기초 | 테이블과 자료형 | 열과 행, 기본 자료형, NULL, 기본키 개념 이해 | CREATE TABLE, INT, VARCHAR, DATE | 학생 테이블 설계 |
| 5 | 기초 | 데이터 입력 | 한 행과 여러 행의 데이터 입력, 기본값과 자동 증가 활용 | INSERT INTO, AUTO_INCREMENT | 학생 데이터 10건 입력 |
| 6 | 기초 | 기본 조회 | 전체 열과 특정 열 조회, 별칭 사용, 중복 제거 | SELECT, AS, DISTINCT | 학생 정보 조회문 작성 |
| 7 | 기초 | 데이터 수정과 삭제 | 조건에 맞는 데이터 수정과 삭제, 안전한 조건 설정 | UPDATE, DELETE | 수정·삭제 SQL 실습 |
| 8 | 기초 | 기초 종합 실습 | 간단한 도서·학생·성적 관리 데이터베이스 구축 | CRUD 종합 | 미니 데이터베이스 완성 |
| 9 | 응용 | 조건 검색 | 비교 연산자와 논리 연산자를 활용한 조건 조회 | WHERE, AND, OR, NOT | 조건별 학생 검색 |
| 10 | 응용 | 범위·목록·문자 검색 | 범위, 목록, 패턴, NULL 조건 검색 | BETWEEN, IN, LIKE, IS NULL | 다양한 검색 조건 작성 |
| 11 | 응용 | 정렬과 출력 제한 | 오름차순·내림차순 정렬, 상위 데이터 추출 | ORDER BY, LIMIT | 성적 순위 조회 |
| 12 | 응용 | 숫자·문자·날짜 함수 | 내장 함수를 이용한 데이터 가공 | ROUND, CONCAT, LENGTH, NOW, DATE_FORMAT | 함수 활용 조회문 |
| 13 | 응용 | 집계 함수 | 합계, 평균, 최댓값, 최솟값, 개수 계산 | SUM, AVG, MAX, MIN, COUNT | 과목별 통계표 |
| 14 | 응용 | 그룹화와 그룹 조건 | 그룹별 통계와 그룹 결과 조건 설정 | GROUP BY, HAVING | 반별·과목별 통계 분석 |
| 15 | 응용 | 관계와 외래키 | 일대일, 일대다, 다대다 관계와 참조 무결성 이해 | FOREIGN KEY, REFERENCES | 학생-수강-과목 관계 설계 |
| 16 | 응용 | 내부 조인 | 공통 값을 기준으로 여러 테이블 결합 | INNER JOIN, ON | 학생별 수강 과목 조회 |
| 17 | 응용 | 외부 조인과 자체 조인 | 일치하지 않는 자료 포함, 같은 테이블 간 관계 조회 | LEFT JOIN, RIGHT JOIN, SELF JOIN | 미수강 학생과 담당자 관계 조회 |
| 18 | 응용 | 서브쿼리 | 단일행·다중행 서브쿼리, 중첩 질의 이해 | Subquery, IN, ANY, ALL | 평균 이상 학생 조회 |
| 19 | 심화 | 데이터 모델링 | 요구 분석, 개체·속성·관계 도출, ERD 작성 | ERD, Entity, Attribute | 프로젝트 ERD 초안 |
| 20 | 심화 | 정규화 | 이상 현상과 제1·제2·제3정규형 이해 | 1NF, 2NF, 3NF | 비정규 테이블 개선 |
| 21 | 심화 | 제약 조건 | 데이터 무결성을 위한 다양한 제약 조건 설정 | PRIMARY KEY, UNIQUE, NOT NULL, CHECK, DEFAULT | 제약 조건 적용 테이블 |
| 22 | 심화 | 뷰 | 복잡한 조회를 가상 테이블로 단순화하고 접근 범위 제한 | CREATE VIEW, ALTER VIEW | 성적 요약 뷰 생성 |
| 23 | 심화 | 인덱스와 성능 | 인덱스 구조와 검색 속도, 과도한 인덱스의 문제 이해 | CREATE INDEX, EXPLAIN | 인덱스 전후 성능 비교 |
| 24 | 심화 | 트랜잭션 | 원자성·일관성·고립성·지속성, 커밋과 롤백 | START TRANSACTION, COMMIT, ROLLBACK | 계좌 이체 모의 실습 |
| 25 | 심화 | 사용자와 권한 | 사용자 생성, 권한 부여와 회수, 최소 권한 원칙 | CREATE USER, GRANT, REVOKE | 읽기 전용 사용자 구성 |
| 26 | 심화 | 저장 프로시저 | 반복 업무를 저장 프로시저로 정의하고 호출 | PROCEDURE, CALL, DELIMITER | 성적 등록 프로시저 |
| 27 | 심화 | 함수와 트리거 | 사용자 정의 함수와 이벤트 기반 자동 처리 | FUNCTION, TRIGGER, NEW, OLD | 변경 이력 자동 기록 |
| 28 | 심화 | 백업·복원과 보안 | 데이터 백업, 복원, SQL 삽입 공격과 안전한 질의 이해 | mysqldump, Prepared Statement | 백업 파일과 보안 점검표 |
| 29 | 프로젝트 | 파이썬과 MySQL 연동 | 연결 객체, 커서, 질의 실행과 결과 처리 | mysql-connector-python, connect, cursor | DB 연결 확인 프로그램 |
| 30 | 프로젝트 | 파이썬 CRUD 구현 | 입력·조회·수정·삭제 기능을 함수로 구조화 | execute, fetchone, fetchall, commit | 콘솔형 관리 프로그램 |
| 31 | 프로젝트 | 프로젝트 기획과 설계 | 문제 정의, 사용자 요구, ERD, 화면과 기능 설계 | 요구 분석, ERD, CRUD | 프로젝트 계획서 |
| 32 | 프로젝트 | 프로젝트 구현 | 테이블 생성, 샘플 데이터 입력, 핵심 기능 제작 | SQL + Python | 1차 구현물 |
| 33 | 프로젝트 | 테스트와 개선 | 오류 수정, 예외 처리, 보안과 사용성 개선 | try-except, Prepared Statement | 테스트 기록과 개선본 |
| 34 | 프로젝트 | 발표와 평가 | 구조, 핵심 SQL, 실행 결과, 한계와 개선 방향 발표 | 발표·질의응답 | 최종 프로그램과 보고서 |
SQL 작성 능력과 데이터베이스 설계·구현 과정을 균형 있게 평가합니다.
CRUD와 조건 조회의 정확성
함수, 그룹, 조인, 서브쿼리 활용
ERD, 관계, 정규화, 무결성
MySQL과 파이썬 연동 완성도
문제 해결 과정과 개선 방향
학교생활과 연결된 데이터 관리 프로그램으로 확장할 수 있습니다.
학생, 상담, 담당 교사를 관계형 구조로 설계합니다.
회원, 도서, 대출 기록과 연체 현황을 관리합니다.
메뉴, 날짜, 평가 자료를 저장하고 통계를 조회합니다.
회원, 활동, 역할, 참여 기록을 구조화합니다.
장비, 예약자, 사용 시간, 상태를 통합 관리합니다.
온도, 습도, 이산화탄소 자료를 시간별로 저장합니다.