데이터 모델링의 중요성 및 유의점
데이터모델링
데이터 독립성 요소
데이터 독립성
1. 식별자 - 비식별자
식별자 (Identifier):
테이블에서 행을 고유하게 식별하는 데 사용되는 하나 이상의 열
주 식별자(기본 키), 보조 식별자(유니크 키) 등
비식별자 (Non-identifier):
행을 고유하게 식별하지 않는 열
예: 학생 테이블에서 이름(Name)과 생년월일(BirthDate)
2. 주 식별자 - 보조 식별자
주 식별자 (Primary Identifier):
각 행을 고유하게 식별하는 데 사용되는 기본 키
유일성, NOT NULL
예: 학생 테이블에서 학번(StudentID)
보조 식별자 (Secondary Identifier):
주 식별자 외에 추가로 행을 식별하는 데 사용될 수 있는 열
보조 식별자는 유니크 제약 조건, 주 식별자가 아닌 다른 열에 유일성
예: 학생 테이블에서 이메일 주소(Email)
3. 내부 식별자 - 외부 식별자
내부 식별자:
테이블 내에서 각 행을 고유하게 식별하는 기본 키
Students에서 StudentID
외부 식별자:
다른 테이블의 기본 키를 참조하는 외래 키
Enrollments에서 StudentID
4. 본질식별자 - 인조식별자
본질 식별자 (Natural Identifier):
실제 데이터에서 유래한 열로, 본래의 의미
데이터 도메인 내에서 고유성을 보장하는 속성, 업무적으로 의미가 있음
예: 주민등록번호, ISBN, 이메일 주소 등
인조 식별자 (Surrogate Identifier):
데이터베이스 시스템이 생성한 인위적인 키로, 본래의 데이터와는 무관한 식별자
데이터 도메인과는 독립적으로 고유성을 보장
예: 자동 증가 ID 열
조인 차이
INNER JOIN: 두 테이블에서 조인 조건을 만족하는 행만 반환.
LEFT JOIN: 왼쪽 테이블의 모든 행과 조인 조건을 만족하는 오른쪽 테이블의 행 반환.
만족하지 않는 오른쪽 테이블의 행은 NULL.
RIGHT JOIN: 오른쪽 테이블의 모든 행과 조인 조건을 만족하는 왼쪽 테이블의 행 반환.
만족하지 않는 왼쪽 테이블의 행은 NULL.
FULL OUTER JOIN: 두 테이블의 모든 행 반환. 조인 조건을 만족하지 않는 행은 NULL.
CROSS JOIN: 두 테이블의 모든 조합을 반환 (카티션 곱 N * M).
SELF JOIN: 같은 테이블을 자기 자신과 조인.
LEFT JOIN 일 경우 왼쪽에 (+) 기호가 붙으며 RIGHT JOIN 일 경우 오른쪽에 (+) 기호
DCL
GRANT, REVOKE
DML
SELECT, INSERT, DELETE, UPDATE
DDL
CREATE, DROP, ALTER, RENAME
TCL
COMMIT, ROLLBACK, SAVEPOINT
barker 표기법 * = PK / # = NOT NULL / O = NULL
ON 절: 두 테이블에서 선택된 모든 열이 결과 집합에 포함됩니다. 조인 조건에 사용된 열이 중복될 수 있습니다.
on a.id = b.id
USING 절: 조인 조건에 사용된 열이 결과 집합에 한 번만 나타납니다.
using (stadium_id)
where ‘in’ 복수값, 목록 내 값들중 하나
where ‘=‘ 단일값
PIVOT: LONG —> WIDE
UNPIVOT: WIDE —> LONG