제약조건
1) 기본키 : Primary Key (PK)
2) 외래키 : Foreign Key (FK)
3) NOT NULL
4) CHECK
5) DEFAULT
6) 복합키(조합키)
무결성
1) 무결성을 판단하는 3가지
(1) 정확성
(2) 일관성
(3) 유효성
2) 무결성의 3가지 종류
(1) 개체 무결성
(2) 참조 무결성
(3) 도메인 무결성
시퀀스(SEQUENCE)
: 순서대로 증가하는 고유한 숫자를 자동으로 만들어준느 데이터베이스 객체 (ORACLE 전용)
PK에 넣을 번호를 자동으로 생성할 때 주로 사용
1) 1차 정규화
상품명
==================
바지1, 바지2, 바지3
상품명1 상품명2 상품명3
======================
바지1 바지2 바지3
=> 조회 및 검사가 너무 힘들다
1차 정규화 진행
[1차 정규화]
: 행을 늘리면 된다
상품명
==================
바지1
바지2
2) 2차 정규화
: 복합키(조합키)로 구성되었을 경우에
복합키의 일부분에만 종속되는 속성(컬럼)이 있는 경우
ex)
과자 테이블
이름(PK) 맛(PK) 가격 제조사
=========================================
포카칩 기본맛 1600 오리온
포카칩 양파맛 1400 오리온
포테토칩 오리지널 1500 농심
포테토칩 양파맛 1700 농심
과자 테이블
이름(PK, FK) 맛(PK) 가격 제조사
=========================================
포카칩 기본맛 1600 오리온
포카칩 양파맛 1400 오리온
포테토칩 오리지널 1500 농심
포테토칩 양파맛 1700 농심
이름(PK) 제조사
====================
포카칩 오리온
포카칩 오리온
포테토칩 농심
포테토칩 농심
3) 3차 정규화
: PK가 아닌 컬럼이 다른 컬럼을 결정하는 경우
ex)
회원
번호pk 이름 시 구 동 우편번호
================================================
1 짱구 대전시 서구 둔산동 11111
2 홍길동 서울시 중랑구 중화동 22222
[3차 정규화]
ex)
회원테이블
회원
번호pk 이름 우편번호
========================
1 짱구 11111
2 홍길동 22222
주소테이블
우편번호PK 시 구 동
==================================
11111 대전시 서구 둔산동
22222 서울시 중랑구 중화동
4) 데이터베이스에 정규화가 필요한 이유
학번PK 학생이름 전공 과목명PK 성적
========================================
1111 홍길동 컴공 프로그래밍 90
1111 홍길동 컴공 운영체제 89
2222 김철수 전자 전자학 77
3333 이유리 전자 논리회로 89
4444 박웅이 간호 간호학개론 100
5) 이상현상의 종류
(1) 삽입 이상
: 새로운 데이터를 삽입하기 위해 불필요한 데이터도 삽입해야하는 문제
(2) 갱신 이상
: 중복 행 중에서 일부만 변경하여 데이터가 불일치하기 되는 모순의 문제
(3) 삭제 이상
: 행을 삭제했을 때 필요한 데이터도 같이 삭제되는 문제
+) 함수적 종속성
y = 2x 라는 함수가 있을 때,
x가 무엇이냐에 따라 y가 결정된다.
x를 결정자, y를 종속자라고 한다 (x -> y)
1) EQUI 조인(동등 조인, 등가 조인)
2) INNER JOIN(내부 조인)
+) SQL 실행 순서
FROM > ON > JOIN > WHERE > GROUP BY > HAVING > SELECT > ORDER BY
3) INTERSECT 연산(교집합 조회)
: 2개의 테이블에서 공통된 값을 조회
4) OUTER JOIN(외부 조인)
5) LEFT OUTER JOIN, RIGHT OUTER JOIN
=> 오른쪽 테이블에서 없으면 NULL값
6) UNION을 사용한 합집합
(1) UNION
(2) UNION ALL
7) MINUS(차집합)
+) 여러 테이블(3개 이상) 조인
+) 셀프 조인(SELF JOIN) : 한 테이블을 자기 자신과 조인