-
정보처리기사 데이터베이스 용어정리정보처리기사/필기 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자가 접근통제 권한 부여