Database
공동으로 사용될 데이터를 중복을 배제하여 통합하고, 쉽게 접근하여 처리할 수 있도록 저장장치에 저장하여 항상 사용될 수 있도록 운영하는 운영 데이터이다.
다음과 같이 정의할 수 있음
- 운영 데이터 : 조직의 고유한 업무를 수행하는데 존개가치가 확실하고 없어서 안되는 데이터
- 통합된 데이터 : 검색의 효율성을 높이기 위해 중복이 최소화된 데이터
- 저장된 데이터 : 컴퓨터가 접근할 수 있는 저장 매체에 저장된 데이터
- 공용 데이터 : 여러 응용 시스템들이 공동으로 소유하고 유지하는 데이터
=> 운통저공
DBMS
사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고, 데이터베이스를 관리 해주는 소프트웨어
DBMS의 필수 기능 3가지
- 정의(Definition) 기능
- 조작(Manipulation) 기능
- 제어(Control) 기능
데이터의 독립성
논리적 독립성 : 응용 프로그램과 데이터베이스를 독립시킴으로써, 데이터의 논리적 구조를 변경시키더라도 응용 프로그램은 영향받지 앟음
물리적 독립성 : 응용 프로그램과 보조기억장치 같은 물리적 장치를 독립시킴으로써 디스크를 추기/변경하더라도 응용 프로그램은 영향 받지 않음.
스키마
스키마는 DB의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타데이터의 집합
종류
- 외부 스키마 : 사용자나 프로그래머가 DB의 논리 구조를 정의하는 곳, SQL 질의어를 사용하여 DB를 쉽게 사용 가능
- 개념 스키마 : DB의 전체적인 논리 적 구조로서 사용자들이 필요로 하는 데이터들 종합한 것으로 DB 전체에 하나만 존재
- 내부 스키마 : DB에 저장될 레코드의 물리적인 구조를 정의하고 저장 데이터 항목의 표현 방법을 나타냄, 가장 물리적인 저장장치와 밀접한 계층
데이터베이스 설계
고려사항
- 무결성 : 삽입, 삭제, 갱신 등의 연산 후에도 데이터베이스에 저장된 데이터가 정해진 제약 조건에 항상 만족해야함
- 일관성 : 데이터베이스에 저장된 데이터들 사이나, 특정 질의에 대한 응답이 처음 부터 끝까지 변함없이 동일
- 회복 : 시스템에 장애 발생시 장애 발생 직전의 상태로 복구 할 수 있어야함
- 보안 : 불법적인 데이터의 노출 또는 변경이나 손실로부터 보호할 수 있어야함
- 효율성 : 응답시간의 단축, 시스템의 생산성, 저장공간의 최적화 등이 가능해야함
- 데이터베이스 확장 : 데이터베이스 운영에 영향을 주지 않으면서 지속적으로 데이터를 추가할 수 있어야 함
설계 순서
요구 조건 분석 > 개념적 설계 > 논리적 설계 > 물리적 설계 > 구현
개념적 설계 = 정보 모델링 = 현실 세계에 대한 인식을 추상화적 개념으로 표현
논리적 설계 = 데이터 모델링 = 현실 세계에서 발생하는 자료를 DBMS가 지원하는 논리적 자료 구조로 변환
물리적 설계 = 데이터 구조화 = 논리적 구조로 표현된 데이터를 물리적 구조의 데이터로 변환
관계형 데이터베이스
2차원적인 표를 이용해서 데이터 상호관계를 정의하는 데이터베이스
- 튜플 : 릴레이션을 구성하는 각각의행
- 속성 : 데이터베이스를 구성하는 가장 작은 논리적 단위
- 도메인 : 하나의 에트리뷰트가 취할 수 있는 같은 타입의 원자 값들의 집합
- 관계형 데이터 모델 : 2차원적인 표를 이용해서 데이터 상호 관계를 정의하는 DB구조
관계형 데이터베이스의 키
* 유일성 : 하나의 키 값으로 하나의 튜플만을 유일하게 식별
* 최소성 : 키를 구성하는 속성 하나를 제거하면 유일하게 식별할 수 없도록 꼭 필요힌 최소의 속성으로 구성
- 후보키 (Candidate Key)
속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합, 유일성, 최소성을 만족함
- 기본키 (Primary Key)
후보키 중에서 특별히 선정된 주키이다, 중복 값이 없으며 NULL 값을 가질 수 없다.
- 대체키 (Alternate Key)
후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키를 의미
- 슈퍼키 (Super Key)
한 릴레이션 내에 있는 속성들의 집합으로 구성도니 키, 유일성은 만족하지만 최소성은 만족못함
- 외래키 (Foreign Key)
다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 지합을 의미
관계형 데이터베이스의 무결성
데이터베이스이 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제값이일치하는 정확성
종류
- 개체 무결성 : 기본 테이블의 기본키를 구성하는 어떤 속성도 Null 값이나 중복값을 가질 수 없다.
- 참조 무결성 : 릴레이션은 참조할 수 없는 외래키를 가질 수 없다.
- 도메인 무결성 : 주어진 속성 값이 정의된 도메인에 속해야 한다.
- 사용자 정의 무결성 : 속성 값들이 사용자가 정의한 제약조건에 만족해야한다.
- NULL 무결성 : 릴레이션의 특정 속성 값이 NULL이 될 수 없도록 한다
- 고유 무결성 : 릴레이션의 특정 속성에 대해 각 튜플이 갖는 속성값들이 서로 달라야 한다.
- 키 무결성 : 하나의 릴레이션에는 적어도 하나의 키가 존재해야 한다
- 관계 무결성 : 릴레이션에 어느 한 튜플의 삽입 가능 여부 또는 두 릴레이션의 튜플 사이의 관계에 대한 적절성 여부 규정
관계대수 및 관계해석
관계대수
관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적 언어
순수 관계 연산자
- Select (기호: σ): 릴레이션에 존재하는 튜플 중에서 선택 조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션을
만드는 연산, 릴레이션의 행에 해당하는 튜플을 구하는 것이므로 수평 연산
- Proejct (기호: π): 주어진 릴레이션에서 속성 리스트에 제시된 속성 값만을 추출하여 새로운 릴레이션을 만드는 연산, 중복이 발생하면 중복을 제거하며 릴레이션의 열에 해당하는 속성을 추출하므로 수직 연산
- Join (기호: ⋈): 공통 속성을 중심을 두 개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만듬, 교차곱을 한 후 select와 동일
- Division (기호: ÷) : 두 개의 릴레이션 R(X)와 S(Y)가 있을 때 R의 속성이 S의 속성 값을 모두 가진 튜플에서 S가 가진 속성을 제외한 속성을 구하는 연산
일반 집합 연산자
- UNION (기호: U): 두 릴레이션에 존재하는 튜플의 합집합을 구하되 결과로 생성도니 릴레이션에서 중복을 제거
- INTERSECTION (기호: ∩) : 두 릴레이션에 존재하는 튜플의 교집합을 구하는 연산
- DIFFERENCE (기호: -) : 두 릴레이션에 존재하는 튜플의 차집합을 구하는 연산
- CARTESIAN PRODUCT (기호: x) : 두 릴레이션에 있는 튜플의 순서쌍을 구하는 연산
정규화
스키마의 중복을 없애므로 작은 스키마로 만드는 과정으로 아래 항목들을 보장한다
또한 데이터 중복을 배제했기에 이상(Anomaly) 발생 방지 및 자료 저장 공간의 최소화가 가능하다.
- 일관성
- 정확성
- 비중복성
- 안정성
정규화 과정
* 함수적 종속 : 어떤 테이블 R에 대해서 X,Y와가 각각 R의 속성 집합의 부분 집합이라 할 때, 속성 X의 값에 대해 시간에 관계없이 항상 속성 Y의 값이 오직 하나만 연관되어 있을 때 Y는 X에 대해 함수적 종속이다고 한다 X -> Y로 표기함
비정규 릴레이션 | |
↓ | 도메인이 원자값 |
1NF | |
↓ | 1NF를 만족하며 부분적 함수 종속 제거 |
2NF | |
↓ | 2NF를 만족하며 이행적 함수 종속 제거 |
3NF | |
↓ | 3NF를 만족하며 결정자이면서 후보키가 아닌 것 제거 |
BCNF | |
↓ | BCNF를 만족하며 다치 종속 |
4NF | |
↓ | 4NF를 만족하며 조인 종속성 이용 |
5NF |
==> 도부이결다조 (두부이걸다줘)
도메인이 원자값
부분적 함수 종속 제거
이행적 함수 종속 제거
결정자이면서 후보키가 아닌 것 제거
다치 종속 제거
조인 종속성 이용
반정규화
목적 : 시스템의 성능을 향상시키고 개발 및 운영의 편의성을 높이기 위해
방법 : 정규화된 데이터 모델을 의도적을 통합, 중복, 분리하여 정규화 원칙을 위배하는 행위
방법
- 테이블 통합
- 테이블 분할
- 중복 테이블 추가
- 중복 속성 추가
트랜잭션의 특징
- 원자성(Automicity) : 트랜잭션이 포함된 작업들은 모두 수행(COMMIT)되거나 전혀 수행되지 않아(ROLLBACK)야함
- 일관성(Consistency) : 트랜잭션은 성공적인 경우에는 일관성있는 상태이어야 한다.
- 독립성(Isolation) : 둘 이상의 트랜잭션이 병행 실행되는 경우 어느 하나의 트랜잭션이 실행중일 때 다른 트랜잭션은 연상에 끼어들 수 없다.
- 지속성(Durability) : 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나도 영구적으로 반영된다.
분산 데이터베이스(Distributed Database)
논리적으로 같은 시스템에 속하지만 물리적으로는 컴퓨터 네트워크를 통해 분산되어 있는 데이터베이스
목표
- 중복 투명성 : 동일한 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것 처럼 사용할 수 있고, 시스템은 자동으로 여러 데이터에 대한 작업을 수행한다.
- 장애 투명성 : 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭션은 정확하게 수행된다.
- 병행 투명성 : 분산 데이터베이스와 관련된 다수의 트랜잭션이 동시에 실행되더라도 그 트랜잭션들은 수행 결과는 서로 영향받지 않는다.
- 위치 투명성 : 접근하려는 데이터베이스의 실제 위치를 알 필요 없이 단지 데이터베이스의 논리적인 명칭만으로 접근 할 수 있다.
그 외
파티션(Partition)
성능 저하 방지와 데이터 관리를 위해 대용량 테이블이나 인덱스를 작은 논리적 단위로 나눈 것
클러스터
데이터 저장시 데이터 액세스 효율을 향상시키기 위해 동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 물리적 장치
스래싱
프로세스의 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상
'자격증 > 정보처리기사' 카테고리의 다른 글
정보처리기사 실기 정리 7강 [애플리케이션 테스트] (0) | 2021.10.13 |
---|---|
정보처리기사 실기 정리 12강 [제품 소프트웨어 패키징] (0) | 2021.10.11 |
정보처리기사 실기 정리 9강 [소프트웨어 개발 보안 구축] (0) | 2021.10.11 |
정보처리기사 실기 정리 8강 [SQL 응용] (0) | 2021.10.10 |
정보처리기사 실기 정기 11강 [응용 SW 기초 기술 활용] (0) | 2021.10.10 |