Open iknowahra opened 2 years ago
RDBMS : 관계형 데이터 베이스
목표: 테이블 간에 중복된 데이터를 허용하지 않는다
중복된 데이터를 허용하지 않음으로써 integrity를 유지할 수 있으며 db저장 용량을 줄일 수 있다.
테이블을 분해하는 정규화 단계가 존재한다.
테이블 컬럼이 atomic value = 하나의 값을 갖도록 테이블을 분해하는 것이다.
예시)
제 1정규화를 진행한 테이블에 대해 완전 함수 종속을 만족하도록 테이블을 분해하는 것이다.
=> 완전 함수 종속 : 기본키의 부분집합이 결정자가 되어선 안되다는 것? (무슨 의미 일까 내일 물어보자...!)
학생번호 + 강좌이름이 PK며, 강의실을 결정하고 있다.
강좌이름은 강의실을 결정하고 있다.
제 2정규화한 테이블에 대해 이행적 종속을 없애도록 테이블을 분해하는 것이다.
A -> B, B-> C일 때, A->C가 되지 않도록 하는 것이다 .
학생번호 -> 강좌 이름, 강좌이름 -> 수강료 일 떄, 학생번호 -> 수강료가 되지 않도록 하는 것
CREATE TABLE TEST; // CREATE DATABASE TEST;
참고사항:
등록한 사람과 수정한 사람의 아이디와 날짜 는 반드시 필드로 포함시킨다
필드 등록할 때 코멘트(설명)을 반드시 적어주자
: MEMORY에 올라감(SSD -> MEMORY를 생략해서 속도가 빠르다)
<ㅡ> FOREIGN KEY
INNERJOIN : 부모 자식 간 키 데이터가 존재하면 출력
OUTERJOIN : 부모-자식에서 부모 키 데이터 출력, 없으면 NULL
카티션 곱
INNER JOIN
//INNER JOIN SELECT P.PLACE, O.OBJECT FROM PLACE P, OBJECT O WHERE P.PLACE = OBEJCT.PLACE
WHERE로 다 처리하기 보단 INNER JOIN을 쓰는게 표준
SELECT P.PLACE, O.OBJECT FROM PLACE P, OBJECT O INNER JOIN OBJECT O ON P.PLACE=O.PLACE WHERE P.PLACE='SCHOOL';
LEFT JOIN
SELECT P.PLACE, O.OBJECT FROM PLACE P, OBJECT O LEFT JOIN OBJECT O ON P.PLACE = O.PLACE;
JOIN은 여러번 쓸 수 있다.
출력(I/O장치)- CPU - 메모리(PRIME KEY) - 저장장치(SSD- HARDDISK ; DB 위치)
메모리에서 저장장치로 가는 시간이 느리다. 반면에 메모리에서 CPU로 가는 속도는 빠르다.
정리 너무 완벽해요! 이렇게 완벽한 정리 자료를 공유해주셔서 감사합니다!
2021.10.18
RDBMS : 관계형 데이터 베이스
정규화(Normalization)
목표: 테이블 간에 중복된 데이터를 허용하지 않는다
중복된 데이터를 허용하지 않음으로써 integrity를 유지할 수 있으며 db저장 용량을 줄일 수 있다.
테이블을 분해하는 정규화 단계가 존재한다.
제 1 정규화
테이블 컬럼이 atomic value = 하나의 값을 갖도록 테이블을 분해하는 것이다.
예시)
제 2 정규화
제 1정규화를 진행한 테이블에 대해 완전 함수 종속을 만족하도록 테이블을 분해하는 것이다.
=> 완전 함수 종속 : 기본키의 부분집합이 결정자가 되어선 안되다는 것? (무슨 의미 일까 내일 물어보자...!)
학생번호 + 강좌이름이 PK며, 강의실을 결정하고 있다.
강좌이름은 강의실을 결정하고 있다.
제 3 정규화
제 2정규화한 테이블에 대해 이행적 종속을 없애도록 테이블을 분해하는 것이다.
A -> B, B-> C일 때, A->C가 되지 않도록 하는 것이다 .
학생번호 -> 강좌 이름, 강좌이름 -> 수강료 일 떄, 학생번호 -> 수강료가 되지 않도록 하는 것
테이블 만들기
참고사항:
등록한 사람과 수정한 사람의 아이디와 날짜 는 반드시 필드로 포함시킨다
필드 등록할 때 코멘트(설명)을 반드시 적어주자
PRIMARY KEY : NOT NULL + UNIQUE
: MEMORY에 올라감(SSD -> MEMORY를 생략해서 속도가 빠르다)
<ㅡ> FOREIGN KEY
JOIN : 관계 맺기
INNERJOIN : 부모 자식 간 키 데이터가 존재하면 출력
OUTERJOIN : 부모-자식에서 부모 키 데이터 출력, 없으면 NULL
카티션 곱
INNER JOIN
WHERE로 다 처리하기 보단 INNER JOIN을 쓰는게 표준
LEFT JOIN
JOIN은 여러번 쓸 수 있다.
컴퓨터 구조
출력(I/O장치)- CPU - 메모리(PRIME KEY) - 저장장치(SSD- HARDDISK ; DB 위치)
메모리에서 저장장치로 가는 시간이 느리다. 반면에 메모리에서 CPU로 가는 속도는 빠르다.
컴퓨터의 5대 구성 요소