정보처리기사 자격증

[내가 공부하려고 ~] 정처기 요약 정리 - 3유형

용굥이 2023. 6. 20. 11:10

[3유형]

 

1. 데이터베이스 기초 개념

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

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

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

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

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

도메인(Domain) : 속성에 들어가는 원자값 집합(ex. 성별 : 남, 여 / 학점 : A, B, C...)

 

2. DDL, DML, DCL

- 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;

 

3. SELECT문

SELECT [ ALL | DISTINCT ] 속성이름들

FROM 테이블 이름들

[ WHERE 조건들 ]

[ GROUP BY 속성이름 ]

[ HAVING 조건들 ]

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

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

 

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

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

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

 

4. 후보키 vs 슈퍼키

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

 

5. 로킹

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

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

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

* 로킹 단위가 커지면 나머지는 작아지고, 로킹 단위가 작아지면 나머지는 커짐

 

6. 정규화

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

- 정규화 된 데이터 모델은 일관성, 정확성, 단순성, 비중복성, 안정성 등을 보장함

 

※ 정규화 과정

7. 원자성

- 트랜잭션의 특징

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


8. 개체 무결성

- 무결성

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

 

9. 관계 대수 연산

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

 

순수 관계 연산자

-> 관계 데이터베이스에 적용할 수 있도록 특별히 개발된 관계 연산자이다.

연산자 기호 설명
SELECT 시그마 (σ) 조건에 맞는 튜플 검색
PROJECT 파이(π) 특정 속성만 보여주기
JOIN 합치기
DIVISION 나누기(÷) 해당하는 튜플의 검색 대상 속성은 제거하고 보여주기

일반 집합 연산자

-> 수학적 집합 이론에서 사용하는 연산자로, 일반 집합 연산자 중 합집합, 교집합, 차집합은 합병 조건이 가능해야 한다.

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

 

* 순수 관계 연산자 합치기(JOIN) vs 일반 집합 연산자 합집합(UNION) 차이

 

10. 뷰(View)

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

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

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

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

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