데이터베이스 기초 개념
릴레이션 (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) 은 되지 않는다.
※ 사용자에게 접근이 허용된 자료만을 제한적으로 보여준다. (데이터 관리 용이)
'정보처리기사' 카테고리의 다른 글
정보처리기사 1과목 개념 요약 정리 (0) | 2022.04.02 |
---|---|
정보처리기사 2과목 개념 요약 정리 (0) | 2022.04.01 |
정보처리기사 4과목 개념 요약 정리 (0) | 2022.03.31 |
정보처리기사 5과목 개념 요약 정리 (0) | 2022.03.31 |
소프트웨어생명주기_요구사항 확인(2) 소프트웨어생명주기_요구사항 확인(2) (0) | 2022.03.30 |