M0desty
article thumbnail

데이터베이스 기초 개념

릴레이션 (Relation) :  데이터를 표의 형태로 표현한 것

속성 (Attribute, 애트리뷰트) : 릴레이션의 열

차수 (Degree) : 속성의 수가 몇 개

튜플 (Tuple) : 릴레이션의 행

기수 (Cardinality, 카디널리티) : 튜플이 몇 개

도메인 (Domin) : 속성에 들어가는 원자값 집합

 

DDL 데이터 정의

SQL 명령어 예문
CREATE CREATE INDEX 고객번호 ON 고객(이름 DESC);
ALTER ALTER TABLE 학생 ADD 학년 VARCHAR(3);
DROP DROP SCHEMA 학생 ;

 

DML 데이터 조작어

SQL 명령어 예문
SELECT SELECT 학번, 이름 FROM 학생 WHERE 학년 IN(3,4);
INSERT INSERT INTO 사원 VALUES ('홍길동', '마케팅', 27);
UPDATE UPDATE 사원 SET 주소 = '역삼동' WHERE 이름 = '홍길동';
DELETE DELETE FROM 사원 WHERE 이름 = '홍길동';

 

DCL 데이터 제어어

SQL 명령어 예문
GRANT GRANT INSERT ON 고객 TO 짱구;
REVOKE REVOKE GRANT OPTION FOR UPDATE ON 고객 FROM 짱구;
COMMIT COMMIT;
ROLLBACK ROLLBACK;

 

SELECT 문

SELECT [ALL | DISTINCT] 속성 이름들

FROM 테이블이름

[WHERE 조건들]

[GROUP BY 속성이름]

[HAVING 조건들]

[ORDER BY 속성이름들 [ASC | DESC]]

 

테이블에서 조건을 만족하는 속성들을 SELECT 한다

 

※ DISTINCT 를 쓰면 겹치는 행은 반환하지 않는다.

※ 속성이름을 쓰지 않고 * 을 쓰면 전체 속성들을 의미한다.

※ ASC는 오름차순 (가나다), DESC는 내림차순 (다나가)

 

 

후보키 vs 슈퍼키

키의 종류 설명
후보키 튜플들을 식별할 수 있는 속성들입니다. 기본키로 사용 가능한 후보들이 됩니다. (유일성최소성을 모두 만족합니다.) 
기본키 후보키 중에서 특별히 선정된 키이고, NULL 값이나 중복값은 가질 수 없습니다. ex) 학번, 주민번호
대체키 후보키가 둘 이상일 때 기본키를 제외한 나머지를 의미합니다. (기본키가 없을 때 그 자리를 대신해 줄 수 있으므로 태체키 입니다.)
슈퍼키 릴레이션 내에 있는 속성들의 집합으로 구성되는 키 입니다. ex) 이름 + 주소의 조합으로 키를 만들 수도 있는데, 그러면 슈퍼키가 됩니다. ( 유일성은 만족하지만 최소성은 만족하지 못합니다.)
외래키 다른 릴레이션의 기본키를 참조하는 속성들입니다. ex) <학생> 릴레이션에 기본키가 주민번호이고, <수강> 릴레이션의 기본키는 학번 이라면, <학생> 릴레이션에 있는 학번은 남의 기본키, 나의 외래키가 됩니다.

※ 후보키 : 유일하면서 최소의 정보만 사용

※ 슈퍼키 : 유일하지만 최소한의 정보는 아님

 

로킹

로킹 (Locking) : 트랜잭션이 접근하는 동안 데이터를 잠가서 (lock) 다른 트랜잭션이 접근하지 못하도록 보호함

로킹 단위 로크의 수 병행성 오버헤드 공유도 관리
커짐 감소 감소 감소 감소 수월
작아짐 증가 증가 증가 증가 복잡

※ 로킹 단위와 나머지는 관계가 반대

※ 로킹 단위가 커지면 나머지는 작아짐

※ 로킹 단위가 작아지면 나머지는 커짐

 

정규화

데이터베이스 내부에 불필요한 중복과 종속을 제거하여 이상(Anomaly)를 해결

정규화 과정

도-부-이-결-다-조

트랜잭션의 특징

특징 설명
원자성
(Atomicity)
트랜잭션 연산은 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 한다.
일관성
(Consistency)
트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환한다.
격리성
(Isolation)
트랜잭션 실행 중 생성하는 연산의 중간 결과를 다른 트랜잭션이 접근 불가하다.
영속성
(Durability)
성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 한다.

 

무결성 (Integrity)

종류 설명
개체 무결성 기본 테이블의 기본키를 구성하는 어떤 속성도 NULL 값이나 중복값을 가질 수 없다.
도메인 무결성 주어진 속성 값이 정의된 도메인에 속한 값이어야 한다.
참조 무결성 외래키 값은 NULL 이거나 참조 릴레이션의 기본키 값과 동일해야 한다.
사용자 정의 무결성  속성 값들이 사용자가 정의한 제약 조건에 만족해야 한다.
NULL 무결성 릴레이션의 특정 속성 값이 NULL 이 될 수 없도록 한다.
고유 무결성 릴레이션의 특정 속성에 대해 각 튜플이 갖는 속성값들이 서로 달라야 한다.
키 무결성 하나의 릴레이션에는 적어도 하나의 키가 존재하야 한다.
관계 무결성 릴레이션에 어느 한 튜플의 삽입 가능 여부 또는 한 릴레이션과 다른 릴레이션의 튜플들 사이의 관계에 대한 적절성 여부를 지정한 규정이다.

 

관계 대수 연산

관계 대수란 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어

 

순수 관계 연산자

연산자 기호 설명
SELECT σ (sigma : 시그마) 조건에 맞는 튜플 검색
PROJECT π (어트리뷰트 리스트) 특정 속성만 보여주기
JOIN ▷◁ 합치기 ( 연산자 종류 : 세타, 동등, 자연, 외부, 세미)
DIVISION ÷ 해당하는 튜플의 검색 대상 속성은 제거하고 보여주기

 

일반 집합 연산자

연산자 기호 설명
UNION 합집합
INTERSECTION 교집합
DIFFERENCE - 차집합
CARTESIAN PRODUCT × 교차곱( 가능한 순서쌍)

 

뷰(VIEW)

기본 테이블을 기반으로 만들어진 가상의 테이블

 

실제 물리적으로 데이터를 저장하고 있지 않다. (논리적으로만 존재)

기본 테이블이 삭제되면 뷰도 같이 삭제된다.

삽입 (CREATE), 삭제(DROP) 은 가능하지만 변경 (ALTER) 은 되지 않는다.

※ 사용자에게 접근이 허용된 자료만을 제한적으로 보여준다. (데이터 관리 용이) 

 

 

 

 

 

profile

M0desty

@둥글뉴비

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그