Ch.01 데이터베이스 시스템
1. 데이터·정보·지식
데이터: 관찰로 얻은 날것의 사실/수치 (예: 500, 홍길동)
정보: 데이터에 의미를 부여한 것 (예: 홍길동이 500원짜리 아이스크림을 샀다)
지식: 사물·현상에 대한 이해와 통찰 (예: 아이스크림은 여름에 잘 팔린다)
2. 데이터베이스 정의
여러 사람이 공용으로 사용하기 위해 통합하고 저장한 운영 데이터의 집합
DB의 4가지 정의(암기)
1. 통합된 데이터 - 중복 최소화
2. 저장된 데이터 - 컴퓨터에 물리적으로 저장
3. 운영 데이터 - 조직 운영에 꼭 필요한 데이터
4. 공용 데이터 - 여러 사람이 함께 사용
DB의 4가지 특징(암기)
실시간 접근성 - 언제든 즉시 조회 가능 (예: 은행 잔액 조회)
계속적인 변화 - 데이터가 항상 최신 상태 유지 (예: 재고 변경)
동시 공유 - 여러 사용자가 동시에 사용
내용에 따른 참조 - 물리적 위치가 아닌 값으로 검색
3. 정보 시스템 발전 4단계
파일 시스템 → 데이터베이스 시스템 → 웹 데이터베이스 시스템 → 분산 데이터베이스 시스템
파일 시스템: 프로그램마다 개별 파일 관리, 중복·불일치 문제 발생
DB 시스템: DBMS가 통합 관리, 중복 제거·공유 가능
웹 DB 시스템: 웹 브라우저로 접근 가능
분산 DB 시스템: 여러 컴퓨터에 분산, 대용량·고가용성
4. 데이터 저장 3가지 방법
프로그램 내부 저장: 코드 안에 데이터 삽입 → 수정 시마다 재컴파일 필요
파일 시스템: 데이터를 별도 파일로 저장 → 구조 변경 어렵고 충돌 위험
DBMS 사용: 통합 관리 → 초기 비용은 있지만 장점이 압도적
DBMS 장점: 데이터 중복 최소화, 일관성 유지, 데이터 독립성, 보안 관리 용이
5. 데이터베이스 시스템 구성
SQL 3가지 구성(암기)
DDL(데이터 정의어): CREATE, ALTER, DROP
DML(데이터 조작어): SELECT, INSERT, UPDATE, DELETE
DCL(데이터 제어어): GRANT, REVOKE
DB 사용자 4종류
일반 사용자 - 개발된 프로그램으로 DB 사용
응용 프로그래머 - 프로그램 개발
SQL 사용자 - SQL 직접 작성
DBA - DB 시스템 총괄 관리
3단계 데이터베이스 구조(중요)
외부 단계 → 개념 단계 → 내부 단계
외부 단계: 사용자/프로그래머가 보는 뷰, 여러 개 존재 가능
개념 단계: DB 전체 구조 정의, 조직에 하나만 존재, DBA가 관리
내부 단계: 물리적 저장 방법(인덱스, 압축 등), 하나만 존재
데이터 독립성
논리적 독립성: 외부-개념 사이. 개념 스키마가 바뀌어도 응용 프로그램은 영향 없음
물리적 독립성: 개념-내부 사이. 저장 장치가 바뀌어도 개념 스키마는 영향 없음
DBMS 기능: 데이터 정의, 데이터 조작, 데이터 추출, 데이터 제어(사용자 생성·모니터링·백업·회복·동시성 제어)
데이터 모델
포인터 사용: 계층 데이터 모델, 네트워크 데이터 모델
속성값 사용: 관계 데이터 모델
객체 식별자 사용: 객체 데이터 모델
Ch.03 SQL 기초
1. SQL이란
DBMS에게 데이터를 요청/관리하기 위한 표준 언어
일반 프로그래밍 언어(C, Java)는 절차적 - 어떻게 처리할지 순서 명시
SQL은 비절차적 - 무엇을 원하는지만 말하면 DBMS가 처리
2. SELECT 문 기본 구조(암기)
SELECT 컬럼명1, 컬럼명2 (보고 싶은 컬럼, *는 전체)
FROM 테이블명 (어느 테이블에서)
WHERE 조건 (조건에 맞는 행만)
ORDER BY 컬럼명 ASC 또는 DESC (정렬, ASC 기본값)
DISTINCT는 중복 제거: SELECT DISTINCT 속성
3. WHERE 조건 종류(6가지)
비교: =, <>, >, <, >=, <= (예: price >= 10000)
범위: BETWEEN A AND B
집합: IN (값1, 값2) / NOT IN
패턴: LIKE ‘패턴’
NULL: IS NULL / IS NOT NULL
복합: AND, OR, NOT
LIKE 와일드카드
% : 0개 이상의 임의 문자
_ : 정확히 1개의 임의 문자
예) ’%축구%’는 축구 포함, ’축구_’는 축구로 시작하는 3글자, ’_구%’는 2번째 글자가 구
4. 집계 함수 5종(암기)
COUNT(*): 행의 개수(NULL 포함)
COUNT(컬럼): NULL 제외한 개수
SUM(컬럼): 합계
AVG(컬럼): 평균
MAX(컬럼), MIN(컬럼): 최댓값, 최솟값
5. GROUP BY와 HAVING
GROUP BY는 특정 컬럼 기준으로 묶어서 집계
WHERE는 행에 조건, HAVING은 그룹에 조건
집계 함수는 WHERE에서 사용 불가, HAVING에서만 가능
예) 출판사별 도서 수와 평균 가격
SELECT publisher, COUNT(*), AVG(price) FROM Book GROUP BY publisher
예) 총구매액 3만원 이상 고객
SELECT custid, SUM(saleprice) FROM Orders GROUP BY custid HAVING SUM(saleprice) >= 30000
SQL 실행 순서: SELECT → FROM → WHERE → GROUP BY → HAVING → ORDER BY
6. 조인과 부속질의
조인: 두 테이블을 공통 속성으로 연결
구형 문법: FROM 테이블1, 테이블2 WHERE 조건
신형 문법: FROM 테이블1 JOIN 테이블2 ON 조건
조건 없이 조인하면 카르테시안 곱(모든 조합)이 생김
부속질의: SQL문 안에 또 다른 SELECT문. 안쪽이 먼저 실행되고 결과로 바깥쪽 실행
단일값 반환 시 비교연산자(=) 사용
여러 값 반환 시 IN 사용
상관 부속질의: 바깥 쿼리 값을 안쪽에서 참조, 행마다 반복 실행
집합 연산
UNION: 합집합(중복제거)
UNION ALL: 합집합(중복포함)
INTERSECT: 교집합
MINUS: 차집합
EXISTS: 부속질의 결과에 행이 존재하면 TRUE
7. DDL(테이블 정의)
CREATE TABLE: 테이블 생성, PRIMARY KEY, FOREIGN KEY, NOT NULL, DEFAULT, CHECK 등 설정 가능
ALTER TABLE ADD/MODIFY/DROP COLUMN: 컬럼 추가/수정/삭제
DROP TABLE: 구조와 데이터 모두 삭제
주의: 외래키로 참조 중인 테이블은 바로 삭제 불가
주요 데이터 타입: INT(정수), VARCHAR(n)(가변 문자열), CHAR(n)(고정 문자열), DATE(날짜), DECIMAL(p,s)(소수)
8. DML(암기)
INSERT INTO 테이블 (컬럼들) VALUES (값들)
UPDATE 테이블 SET 컬럼=값 WHERE 조건
DELETE FROM 테이블 WHERE 조건
주의: UPDATE, DELETE에서 WHERE 빠뜨리면 전체 행 수정/삭제됨
DROP TABLE vs DELETE FROM
DROP은 DDL, 테이블 구조+데이터 모두 삭제, 복구 어려움, 조건 지정 불가
DELETE는 DML, 데이터만 삭제(구조 유지), ROLLBACK 복구 가능, WHERE로 조건 지정 가능
'프로그래밍 언어 > SQL' 카테고리의 다른 글
| [전공 기말고사 정리] 데이터베이스 Ch 04 (0) | 2026.07.28 |
|---|---|
| 데이터베이스 언어 정리 (DDL / DML / DCL) (2) - DML / DCL 편 (0) | 2024.02.04 |
| 데이터베이스 언어 정리 (DDL / DML / DCL) (1) - DDL 편 (0) | 2024.02.03 |
| SQL 함수 간단 실습 :: 서브쿼리 (비상관 커리, 상관 커리) (0) | 2024.01.26 |
| SQL 함수 간단 실습 :: JOIN (내부 조인, 외부 조인, 셀프 조인) (0) | 2024.01.25 |