본문 바로가기
각종 학습자료/정보처리기사

[DB] 데이터 베이스 (실기) 요약

by 오!쎈세! 2015. 8. 24.

* 데이터 베이스란?
- 통합, 저장된 운영 데이터의 집합

* 데이터 베이스의 특성
1. 계속적인 변화 (Continuous Evolution)
2. 동시공유 (Concurrent Sharing)
3. 실시간 접근성 (Real-Time Accessibility)
4. 내용에 의한 참조 (Contents Reference)

* 개체(Entity)란?
현실 세계의 대상체, 하나 이상의 속성(컬럼)으로 구성.

* 속성(Attribute)란?
개체의 특성이나 상태기술, 속성만으로 Entity 구분 불가.

* 관계(Relation)란?
두 개 이상의 개체, 속성간 연관성

* DBMS란?
사용자와 데이터 베이스간 중계 역할.
중복성, 종속성 문제 최소화

* 무결성(정합성)이란?
데이터 값들이 항상 일관성을 갖고 데이터의 유효성, 정확성, 안정성을 유지하기 위한 제약조건 및 성질

* 스키마란?
데이터 베이스 구조와 관련된 전반적인 정의.
(개체, 속성, 관계, 제약조건 정의 총칭)

* 스키마의 종류
1. 외부스키마 : 서브스키마. 사용자가 사용하는 부분에서 본 논리적 구조.
2. 개념스키마 : 사용자 관점에서 본 전체적인 데이터 구조.
3. 내부스키마 : 기계관점에서 본 데이터 베이스의 물리적 구조.

* DBA(Database Administrator)란?
데이터 베이스 시스템의 관리 운영에 책임을 지는 사람 또는 집단.

* 데이터 베이스 설계
1. 요구조건 분석 : 사용자의 요구조건에 따라 명세서 작성.
2. 개념적 설계 : 컬럼 도출하는 단계.
3. 논리적 설계 : 사용자가 이해할 수 있도록 테이블로 표현. (스키마 정의)
4. 물리적 설계 : 정규화. 실재기계

* ERD(E-R Diagram) 
P.Chen 이 구현.

* 관계데이터 모델이란? 
개념적설계 단계에서 만들어진 ERD를 논리적설계 단계의 데이터 모델로 변환하는것.
이중 테이블 구조(2차원 구조로 만들어진 표)로 표현하는 것.

* 용어 정리
릴레이션 = 테이블 = 표
속성 = 열 = 항목 = 컬럼 (차수)
튜플 = 행 = 레코드 = 데이터 (카디널리티)

- 속성(Attribute) : 원자값으로 구성.
- 차수(Dgree) : 속성의 수.
- 카디널리티(Cardinality) : 튜플의 수. (데이터의 수)
- 릴레이션 스키마 : 릴레이션의 이름과 속성, 이름의 집합. (릴레이션 구조, 릴레이션 틀)
- 릴레이션 인스턴스 : 릴레이션 또는 튜플들의 집합. (외연)

*키(Key)의 종류 (키의 조건 : 유일성, 최소성)
- 후보키 : 릴레이션에서 튜플을 유일하게 식별할 수 있는 속성/ 속성집합.
- 기본키 : 여러 후보키들 중에서 튜플을 식별하기 위해 특별히 선택된 키.
- 대체키 : 기본키를 제외한 후보키.
- 외래키 : 다른 테이블을 참조하기 위해 사용되는 속성.
             외래키가 기본키인 경우 : 식별관계
             외래키가 기본키가 아닌 경우 : 비식별관계
- 슈퍼키 : 튜플을 구분할 수 있는 후보키와 다른 속성들과의 모든 조합.
             유일성만 만족하며, 최소성은 만족하지 못한다.

*무결성(INTEGRITY) : 정확성, 안정성 유지를 위한 제약조건
1. 개체 무결성 : 기본키는 Null 값이 올 수 없으며 중복될 수 없다.
2. 참조 무결성 : 외래키는 Null 값이 올 수 없으며 참조릴레이션의 기본키와 같다.
3. 도메인 무결성 : 속성값의 범위가 정해진 경우, 그 범위를 벗어날 수 없다.
4. 키 무결성 : 한 릴레이션에는 반드시 최소 한 개의 키가 존재해야 한다.

* 관계데이터 연산 (관계대수, 관계해석)
1. 관계대수 (절차적언어) : 관계(대)수는 (절)차적 언어이므로 '대절버스' 라고 암기하면 좋다.
 - select( σ ) 수평, 튜플, σ(시그마) 사용
    표기형식 : σ (선택조건) 테이블명  
    예 : σ (점수 ≥ 280) 학생

- project( π ) 수직, 한 속성(Attribute)의 값, π(파이) 사용
  표기형식 : π (추출할 속성 리스트) 테이블명
   예 : π (학번, 이름) 학생

- JOIN ( ▷◁ ) 
   표기형식 : 테이블 1  ▷◁ (조인조건) 테이블 2
   ① 동일조인(Equip join) : 중복을 포함하는 조인
   ② 자연조인(Natural join) : 동일조인의 결과에서 중복을 제거한 상태
   ③ 외부조인(Outer join) : 조인값이 없다면 null로 표시, 일반적인 Left join
   ④ 세타조인(Theta join) : = 을 제외한 나머지 연산자 조인
   ⑤ 나누기(Division) : 모두 가진 것을 추출
      - A Division B : B 테이블 조건을 만족하는 튜플을 테이블 A 에서 추출
     - 테이블 A ( 테이블 속성1 ÷ 테이블 속성2) 테이블 B
  ⑥ 카티션 프로덕트 연산(X x Y) 전체의 곱
      - X : A, B, C
      - Y : D, E
      - X x Y : AD, AE, BD, BE, CD, CE

2. 관계해석(비절차적언어)

튜플 관계해석

도메인 관계해석

표기형식 : {결과값 ㅣ 조건}

개념적 모델링 결과를 관계 데이터 베이스 구조로 변환하는 과정을 맵핑 룰(Mapping Rule) 이라 함.

맵핑 룰 과정 후, 변화 

① Entity → Table 

② Attribute  Column 

③ 식별자  PK 

④ 관계  FK

개념적 데이터 베이스 모델링에서 도출된 개체(Entity)를 논리적 데이터 베이스 모델링에서 맵핑 룰(Mapping Rule)을 이용하여 관계 스키마로 변환한다.
 
m : n 관계에서 효율적인 상호 참조를 위해 관계를 테이블로 구성해 추가하는 것을 교차엔티티(Intersection Entity) 라고 한다.
 
 
 
SQL 정리
 
SQL 언어는 우리말로는'정의어, 조작어, 제어어' 이며, 영어로는 'DDL,DML, DCL' 이며, 영어는 가운데 글자 DMC 만 외워두면 편리하다.
 
외우기 힘든 사람은 'DMC'역에 있는 약국에서 '정조제' 한 약을 받았다.. 정도로 스토리를 만들어서 외우면 좋겠다. (각자 편한 다른 스토리를 만들어서 외워도 좋다)
 
세로로 글자를 쓰면 이렇게 된다.
(정)의어 - D(D)L
(조)작어 - D(M)L
(제)어어 - D(C)L
 
정의어 (DDL) - CREAT, ALTER, DROP
  - C.A.D (AUTO CAD 프로그램을 연상하고 외우면 편리하다)
                 
CREAT TABLE 인사
(사원번호 INT,
 성명 CHAR(10),
 주소 CHAR(30),
 부서번호 CHAR(10) NOT NULL,  → NOT NULL 은 공백을 허용하지 않는다는 뜻.
 UNIQUE 주소,                      UNIQUE 는 중복을 허용하지 않는다는 뜻.
 PRIMARY KEY(사원번호),
 FOREIGN KEY(부서번호) REFERENCE 부서(부서번호)    → 부서테이블(부서번호 값 참조)   
 ON UPDATE CASCADE       → 부서에서 수정이 진행되면 인사에서도 연쇄적으로 수정작업을 진행한다는 뜻.  CONSTRAIN 제약조건명 CHECK (속성이름 = 범위값)
 ALTER 인사 ADD 연락처 CHAR(10);
 DROP TABLE 인사 CASCADE[RESTRICT]     → RESTRICT 는 참조중일 경우 삭제불가하다는 뜻.
 

조작어 (DML) - DELETE, UPDATE, SELECT, INSERT

 - D.U.S.I (사건 시간을 2시라고 조작했다라고 외우면 편리하다)

 

SELECT 속성

 FROM 테이블명

 WHERE 속성조건

 GROUP BY 그룹할 속성 ~  HAVING 그룹에서의 조건

 ORDER BY 속성 ~ DESC(내림차순), ASC(오름차순)

 

INSERT INTO 테이블명(속성들)

VALUE (삽입할 값들)

 

UPDATE 테이블명

 SET 속성 = 넣을 값;

 

제어어 (DCL) - COMMIT, ROLLBACK, GRANT, REVOKE

COMMIT/ ROLLBACK = 변경사항 저장/ 변경사항 취소

GRANT/ REVOKE = 권한부여/ 부여된 권한을 취소

 

GRANT SELECT ON 학생 JOHNSON WITH GRANT OPTION

→ JOHNSON 에게 학생테이블을 조회할 수 있는 권한을 부여하고 

→ WITH GRANT OPTION : 다른 사람에게 권한을 줄 수 있는 권한도 부여한다.

 

VIEW

CREAT VIEW 뷰 이름(속성들)

AS SELECT 보여줄 속성들

      FROM 가져올 테이블

    WHERE 조건

WITH CHECK OPTION 조건이외의 값은 삽입 불가

뷰가 정의된 테이블이 제거되면 뷰도 제거된다.

뷰는 변경이 불가하며, 삭제 후 다시 생성해야 한다.

 

시스템 카탈로그(SYSTEM CATALOG) : 데이터 사전

시스템 카탈로그에 저장된 데이터 : 메타 데이터(META DATA)

일반 사용자도 검색 가능하며, CRUD 는 불가능하다.

CRUD = CREAT, READ, UPDATE, DELETE 

 

INDEX

CREAT UNIQUE INDEX 인덱스명

ON 테이블 (속성정렬값 (DESC or ASC)) CLUSTER

CLUSTER : 인접된 튜플들을 물리적인 그룹으로 묶어서 지정할때 사용.

 

이상현상(ANOMALY)

논리적 설계시 데이터의 중복과 종속으로 인해 발생되는 문제.

이상현상의 종류 : 삭제이상, 삽입이상, 갱신이상

1. 삭제이상 : 튜플 전체의 삭제로 지우면 안될 정보까지 삭제되는 문제.

2. 삽입이상 : 키 값등이 삽입되지 않는 문제.

3. 갱신이상 : 갱신과정에서 잘못된 작업으로 정보의 일관성이 없어져서 내용 파악이 불가한 문제.

해결 방법 : 정규화(NOMALIZATION) 작업으로 해결한다.

 

정규화는 진행 결과에 따라서 1NF, 2NF, 3NF, BCNF, 4NF, 5NF 로 불리운다.

※ 외울때 친구들에게 딱지를 다 잃은 동생이 형에게 '전부이겨(서) 따조'라고 했다는 정도의 짧은 스토리를 이용하거나 더 좋은 스토리가 있다면 각자 만들어서 이용하면 된다.

(전)원자값  

(부)부분함수적 종속

(이)이행함수적 종속

(겨)결정자가 후보키

(따)다치종속

(조)조인종속

 

정규화 작업 후, 오히려 효율이 떨어지는 경우, 역정규화를 진행하기도 한다.

역정규화 = 비정규화 = 반정규화 

 

함수적 종속

B는 ADP 함수적으로 종속되었다. A(경정자) → B(종속자)

1. 완전함수종속 : 오직 기본키에만 종속

2. 부분함수종속 : 기본키가 아니거나 합성키중 일부에 종속

3. 이행함수종속 : A → B, B → C, A → C 순으로 종속