정보처리기사/필기

정보처리기사 데이터베이스 용어정리

hot_py 2020. 2. 12. 19:10

 

 

데이터베이스의 정의 : 업무를 수행하는데 필요한 데이터의 모임

○ 통합된 데이터(Integrated Data): 자료의 중복을 최소화된 데이터

○ 저장된 데이터(Stroed Data): 컴퓨터가 접근할 수 있는 저장 매제에 저장된 데이터

○ 운영 데이터(Operational Data): 업무 수행에 꼭 있어야만 하는 데이터

○ 공용 데이터(Shared Data): 응용 시스템들이 공동으로 소유, 유지

 

DBMS(DataBase Managment System): DB(데이터베이스)와 사용자에 있어 사용자의 요구에 따라 정보를 관리하는 소프트웨어

DBMS필수기능

정의(Definition)기능: 응용 프로그램과 데이터베이스에 명시하는 기능

조작(Manipulation)기능: 검색, 갱신, 삭제, 삽입와 같이 사용자와 데이터베이스 사이의 인터페이스 수단

제어(Control)기능: 데이터베이스의 무결성, 보안(Security)유지와 권한(Authority)을 검사, 데이터베이스의 병행제어(Concurrency Control)

 

데이터베이스 설계 시 고려사항

○ 무결성 - 삽입,삭제,갱신 후에도 정해진 제약조건 만족

○ 일관성 - 질의에 대한 응답이 변함없이 일정

○ 회복 - 시스템 장애시 원래의 상태로 복구

○ 보안 - 데이터의 노출또는 손실로부터 보호

○ 효율성 - 응답시간, 생산성, 저장공간 등

 

 

데이터베이스 설계 순서 

데이터 모델 : 현실에서 사용하는 정보를 컴퓨터로 표현하기 위해 추상화 하여 만든 모델

구성요소 : 개체, 속성, 관계   * 속성 = Field = Item, 항목 이라고 불립니다.

데이터 모델 종류 : 개념적, 논리적, 물리적 데이터모델

표시할 요소 : 구조, 연산, 제약조건

 

 

개념적 데이터모델  : E-R모델

논리적 데이터모델 : 일반적 데이터 모델 = 논리적 데이터모델, 관계모델(Table), 계층모델(Tree), 네트워크모델(Graph) = 망모델

 

 

ERD(Entity-Relationship Modelling)

개체(Entity) : 사람이 생각하는 개념이나 정보

○ 파일 시스템의 레코드와 같다

○ 유일한 식별자(UID)로 식별

○ 다른 개체와 하나 이상의 관계(Relationship)

○ 개체는 속성을 갖는다

 개체 인스턴스 : 각 속성들의 구체적인 값

 

 

DFD와 ERD 도형 차이

 

속성(Attribute) : 가장 작은 논리적 단위,  개체가 가지는 특성

○ 항목 또는 데이터필드

○ 속성으로 개체를 구성

○ 속성의 수 = 디그리 = 차수

 

속성의 종류 

기본 속성 : 업무 분석을 통해 정의

설계 속성 : 속성을 새로 만들거나 변형하여 정의

파생 속성 : 다른 속성의 영향을 받아 생성

 

관계(Relationship) : 개체와 개체의 연결, 개체와 속성의 연결

개체와 개체의 연결 (점선)

개체와 속성의 연결 (실선)

 

관계의 형태

1 : 1 (일대일)

○ 1 : N (일대다)

○ N : M (다대다)

 

식별 관계 : 기본키이면서 외래키를 수행하는 경우 식별 관계라고한다.

식별관계

식별 관계 : 외래키가 기본키가 아닌 경우 비식별 관계라고한다.

 

식별자(Identifier) : 하나의 개체 안에서 유일하게 구분 할 수 있는 구분자

 

 

관계형 데이터베이스 

○ Table의 형태로 표현

○ 스키마와 인스턴스로 구성된다

 

스키마 -  

인스턴스 - 개체의 속성에서 구체적인 데이터 값을 가지고 있는 것

튜플 - 속성 Table에서의 한 행

도메인 - 속성이 가질 수 있는 값의 범위

카디널리티 - 튜플의 수 

디그리 - 속성의수 

 

튜플 

○ 튜플들은 모두 상이하다

○ 튜플은 순서가 없다

 

속성

○ 속성은 순서가 중요하지 않다(순서가 없다)

○ 속성값은 원자값만을 갖는다

○ 속성은 동일한 값이 있을 수 있다.

 

키( KEY )

1. 후보키(Candidate Key)

 튜플을 유일하게 식별

 기본키로 사용할 수 있는 것

유일성과 최소성 만족

 

2. 기본키(Primary Key)

 후보키 중에서 선정된 Key( 주키 - Main Key)

유일성과 최소성 만족

중복값을 가질 수 없다.

Null 값을 가질 수 없다.

 

3. 대체키(Alternate Key)

○  후보키중에서 기본키를 제외한 나머지

○ 대체키 = 보조키

 

4. 슈퍼키(Super Key)

○ 속성들의 집합으로 구성

유일성 만족 , 최소성 만족 X

 

5. 외래키(Foreign Key)

  다른 릴레이션의 기본키를 참조 

 

수강과목은 학생을 참조하고 있으며 이때의 외래키는 학번(FK)이다

 

 

무결성

○ 무결성 = 정확성

 

무결성의 종류 

개체 무결성 : 어떤 속성도 Null값이나 중복값을 가질 수 없다.(기본키가 Null이면 안된다)

도메인 무결성 : 속성값이 도메인에 속해야한다.

참조 무결성: 외래키 값은 Null or 참조한 릴레이션의 기본키와 같아야한다.

 

 

관계대수 : 데이터베이스에서 원하는 정보를 검색하기 위해 사용

 

1. Select

○ 릴레이션의 행에 해당하는 튜플을 구한다.

σ(시그마) 기호를 사용한다.

 

2. Project

○ 릴레이션의 열에 해당하는 속성을 추출한다.

 π(파이) 기호를 사용한다.

 

3. Join

○ 두 개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만든다.

▷◁ 기호를 사용한다.

 

4. Division 

 하나의 릴레이션에서 다른 릴레이션의 속성을 제외한 속성을 구할때 사용한다.

÷ 기호를 사용한다.

 

5. Union

○ 두 릴레이션의 튜플의 합을 구할 때 사용한다.

U 기호를 사용한다.

 

6. InterSection

○ 두 릴레이션의 공통으로 존재하는 튜플을 구할때 사용한다.

∩ 기호를 사용한다.

 

7. Difference

○ 하나의 릴레이션에서 다른 릴레이션의 값을 뺄때 사용한다.(공통된 속성을 뺀 나머지 값)

○ - 기호를 사용한다.

 

8. Cartesian Product

○ 두 릴레이션에 있는 튜플들의 순서쌍을 구할때 사용한다.

○ X 기호를 사용한다.

 

관계해석

○ 데이터의 연산을 표현하는 방법

○ 관계대수로 표현한것은 관계해석으로도 표현할 수 있다.

 

 

정규화

(추가 예정)

 

 

 

 

 

물리 데이터 베이스 설계 : 논리적 구조를 물리적 구조의 데이터로 변환하는 과정

○ 여러 가지 타입의 레코드 집합

○ 반응시간이 짧을수록 좋다

○ 공간 활용도가 넓을수록 좋다

○ 트랜잭션 처리량이 많을수록 좋다

 

테이블(Table): 로우(Row 행), 컬럼(Column 열)로 구성

○ 개체(Entity)와 대응된다

 

클러스터드 인덱스 테이블(Clustered Index Table)

○ 기본키나 인덱스키의 순서에 따라 데이터가 저장된다.

 

파티셔닝 테이블(Partitioning Table)

○ 대용량의 테이블을 파티션(Partiton)으로 나눈 테이블

○ 범위 분할, 해시 분할, 조합 분할이 있다.

 

범위 분할 :  열의 값을 기준 분할

해시 분할 : 해시 함수의 결과값에 따라 분할

조합 분할 : 범위 분할과 해시붐할을 적용하여 분할

 

외부테이블(External Table)

○ 일반 테이블처럼 사용 가능한 외부파일

 

데이터웨어하우스(Data Ware-House)

○ 주체적, 통합적, 시간적 데이터의 집합체

 

테이블스페이스(Tablespace) :테이블이 저장되는 논리적인 영역

○ 논리적으로는 테이블스페이스에 저장, 물리적으로는 데이터 파일에 저장된다.

○ 테이블스페이스를 사용하면 투명성이 보장된다.

 

투명성 : 사실의 존재 여부를 신경 안써도 되는 성질

 

트랜잭션(Transaction): 데이터베이스의 상태를 변환 시키는 논리적 기능을 수행하는 작업 or 모두 수행 되어야하는 일련의 연산

원자성(Atomicity) : 트랜잭션 연산이 전부 반영 되거나 전부 반영되지 않아야한다.

○ 일관성(Consistency) : 트랜잭션이 완료되면 언제나 일관성이 있어야한다.

○ 독립성(Isolation) : 트랜잭션 도중 다른 연산이 끼어들 수 없다.

○ 지속성(Durabilty) : 트랜잭션의 결과는 영구적으로 반영되어야한다.

 

인덱스(Index) : 데이터 레코드에 빠르게 접근하기 위해 (키 값, 포인터)로 구성되는 데이터 구조

 

Table Scan

테이블에 있는 모든 레코드를 순차적으로 읽는 것

○ Full Table Scan이라고도 한다.

 

클러스터드(Clustered) 

○ 데이터가 정렬되는 방식

 

넌클러스트드(Non - Clustered)

데이터가 정렬되지 않는 방식

 

뷰(View) 

가상의 테이블이다.

제한적으로 보여주고 싶은 부분만 보여주기 위해 사용된다. (보안성이 높다)

뷰로 또 다른 뷰를 만들 수 있다.

뷰는 수정이 불가능하다.

○ 물리적 구현X

 

분산 데이터베이스

○ 네트워크를 통해 여러개로 분산되어 있는 데이터베이스를 연결한다.

○ 위치 투명성 : 실제 위치를 알 필요가 없다.

○ 중복 투명성 : 여러곳에 데이터가 중복 되어 있더라도 하나의 데이터 처럼 사용한다.

○ 병행 투명성 : 다수의 트랜잭션들이 동시에 수행 되더라도 영향을 받지 않는다.

○ 장애 투명성 : 장애가 있더라도 트랜잭션을 정확하게 처리한다.

 

분할(Fragment): 테이블의 데이터를 분산시키는 것

 

데이터베이스 이중화(Database Replication)

○ 시스템 오류로 인한 데이터베이스 서비스 중단시 복구를 위해 데이터베이스를 복사 해 놓는것

○ 문제 발생시 즉시 해결 가능

○ 데이터베이스의 변화가 다른 데이터베이스에도 적용된다.

○ 데이터베이스의 부하 감소

○ Active - Standby 방법과 Active - Active 방법이 있다.

 

 

클러스터링(Clustering): 두 개 이상의 서버를 하나처럼 운영

 

데이터베이스 암호화

○ 정보보호를 위해 암호문으로 변환

 

데이터베이스 복호화

○ 암호문을 원래의 정보로 변환

 

 

개인키 암호화 (Private Key Encryption)

암호화 = 복호화   - 같은 키로 데이터를 암호화하고 복호화 한다.

대칭키, 비밀키, DES

 

공개키 암호화(Public Key Encryption)

암호화 ≠복호화 -서로 다른키로 데이터를 암호화하고 복호화 한다.

○비대칭키, 공개 공유키, RSA

 

접근통제

임의 접근통제(DAC)

 사용자의 신원에 따라 접근 권한 부여

○ GRANT(권한 부여), REVOKE(권한 취소)

 

강제 접근통제(MAC)

○ 사용자의 등급을 비교하여 접근 권한 부여

○ 객체별로 보안 등급 부여 

○ 제 3자가 접근통제 권한 부여