티스토리 뷰

2장 데이터 입출력구현( 5/ 2 / 1 )★★★★★

 

데이터베이스 ★★★★

공동으로 사용될 데이터를 중복을 배제하여 통합하고, 저장장치에 저장해 항상 사용할 수 있도록 운영하는 운영 데이터 [통저운공]

통합된 데이터 자료의 중복을 배제한 데이터의 모임
저장된 데이터 컴퓨터가 접근할 수 있는 저장 매체에 저장된 자료
운영 데이터 조직의 고유한 업무를 수행하는데 반드시 필요한 자료
공용 데이터 여러 응용시스템들이 공동으로 소유하고 유지하는 자료

 

DBMS 사용자의 요구에 따라 정보를 생성해주고, 데이터를 관리해주는 소프트웨어 [정조제]

정의 기능 모든 응용 프로그램들이 요구하는 데이터 구조를 지원하기 위해 데이터베이스에 저장될 데이터의 형과 구조에 대한 정의, 이용방식, 제약 조건 등을 명시하는 기능
DDL - CREATE, ALTER, DROP
조작 기능 데이터 검색, 갱신, 삽입, 삭제 등을 체계적으로 처리하기 위해 사용자와 데이터베이스 사이의 인터페이스 수단을 제공하는 기능
DML - SELECT, INSERT, UPDATE, DELETE
제어 기능 데이터베이스를 접근하는 갱신, 삽입, 삭제 작업이 정확하게 수행되어 데이터의 무결성이 유지되도록 제어하는 기능
DCL - COMMIT, ROLLBACK, GRANT, REVOKE

 

스키마 Schema

데이터베이스의 구조와 제약 조건에 관한 전반적인 기술을 명세한 것. [외개내]

외부 스키마 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로하는 데이터베이스의 논리적 구조를 정의한 것
개념 스키마 데이터베이스의 전체적인 논리적 구조. 하나만 존재함.
내부 스키마 물리적 저장장치의 입장에서 본 데이터베이스 구조. 실제로 저장될 레코드 형식, 물리적 순서를 나타냄.

 

데이터베이스 설계시 고려사항 [무일회보효데] ★★★

무결성 삽입, 삭제, 갱신 연산 후에도 정해진 제약조건을 항상 만족해야 함.
일관성 특정 질의에 대한 응답이 항상 일정해야 함.
회복 장애가 발생했을 때 장애 발생 직전의 상태로 복구되어야 함.
보안 불법적인 데이터 노출 또는 변경이나 손실로부터 보호
효율성 응단 시간의 단축, 시스템의 생산성, 저장공간의 최적화가 가능해야함.
데이터베이스 확장 운영에 영향을 주지 않으면서 지속적으로 데이터를 추가할 수 있어야 함.

 

데이터베이스 설계 순서 [요개논물구] ★★★

요구 조건 분석 > 개념적 설계 > 논리적 설계 > 물리적 설계 > 구현

개념적 설계 현실 세계를 추상적 개념으로 표현, 개념 스키마 모델링, 트랜잭션 모델링
논리적 설계 개념 스키마를 평가 및 정제, 트랜잭션 인터페이스 설계
물리적 설계 데이터베이스 파일의 저장 구조 및 액세스 경로 결정, 저장 레코드의 형식, 순서, 접근 경로

 

데이터 모델 ★★★

현실 세계의 정보들을 컴퓨터에 표현하기 위해 단순화, 추상화하여 체계적으로 표현한 개념적 모형. [구연제]

구조
Structure
논리적으로 표현된 개체 타입들 간의 관계로서 데이터 구조 및 정적 성질 표현
연산
Operation
데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세이며 조작하는 기본 도구
제약 조건
Constraint
실제 저장되는 데이터의 논리적인 제약 조건.

 

개념적 데이터 모델 현실 세계에 대한 인간의 이해를 돕기 위해 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정. 대표적으로 E-R모델이 있음.
논리적 데이터 모델 개념적 모델링 과정에서 얻은 개념적 구조를 컴퓨터가 이해하고 처리할 수 있는 컴퓨터 세계의 환경에 맞도록 변화하는 과정. 관계 모델, 계층 모델, 네트워크 모델로 구분.

 

E-R 모델

개체와 개체 간의 관계를 기본 요소로 이용해 현실 세계의 무질서한 데이터를 개념적인 논리 데이터로 표현하기 위한 방법. 피터 첸에 의해 제안.

- 사각형 : 개체(엔티티) 타입

- 마름모 : 관계 타입

- 타원 : 속성 타입

 

관계형 데이터베이스

2차원적인 표를 이용해 데이터 상호 관계를 정의하는 데이터베이스.

E.F Codd에 의해 제안.

 

튜플
Tuple
= 카디널리트 = 기수, 대응수
릴레이션을 구성하는 각각의 행
속성
Attribute
= 디그리 = 차수
데이터 베이스를 구성하는 가장 작은 논리적 단위
도메인
Domain
하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자 값들의 집합.
관계형 데이터 모델 2차원적인 표를 이용해 데이터 상호 관계를 정의하는 DB 구조.

 

★★

후보키
Candidate Key
속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분 집합. 유일성과 최소성을 모두 만족.



기본키
Primary Key
후보키 중에서 특별하게 선정된 메인 키.
중복된 값을 갖을 수 없다. / Null 값 가질 수 없다.
대체키
Alternate Key
후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키
슈퍼키
Super Key
한 릴레이션 내에 있는 속성들의 집합으로 구성된 키. 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만, 최소성은 만족하지 못함.
외래키
Foreign Key
다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합.

 

무결성 ★★

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

 

관계 대수 ★★★

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

Select б 릴레이션의 주어진 조건을 만족하는 튜플을 선택하는 연산.
수평 연산.
Project π 단항 연산으로 릴레이션에서 참조하고자 하는 어트리뷰트를 선택하여 분리해 내는 연산. 수직 연산
Join ▷◁ 두 릴레이션 간의 에트리뷰트 값이 동일한 튜플을 연결하는 연산
Division ÷ 두 개의 릴레이션 AB가 있을 때 B의 릴레이션의 모든 조건을 만족하는 경우의 튜플들을 릴레이션 A에서 분리해 내어 프로젝션하는 연산

 

 

일반 집합 연산자 ★★★

합집합 U 이항 연산으로 관계성이 있는 두 개의 릴레이션을 합집합하여 하나의 릴레이션을 만들어 내는 연산
교집합 이항 연산으로 관계성이 있는 두개의 릴레이션에서 중복되어 있는 내용을 선택하여 새로운 릴레이션을 만들어 내는 연산
차집합 - 이항 연산으로 관계성이 있는 두개의 릴레이션이 있을 때 그 중 하나의 릴레이션에서 또 다른 릴레이션의 내용과 겹치는 내용을 제거해서 새로운 릴레이션을 생성하는 연산
카티션 프로덕트 X 이항 연산으로 두 릴레이션의 현재 투플로 구성 가능한 모든 조합 만드는 연산

 

관계 해석

관계 데이터의 연산을 표현하는 방법. 술어 해석에 기반을 둠.

 

이상 (Anomaly)

테이블에서 일부 속성들이 종속으로 인해 데이터의 중복이 발행하고, 이 중복으로 인해 테이블 조작시 문제가 발생하는 현상

삽입 이상
Insertion Anomaly
테이블에서 데이터를 삽입할 때 의도와는 상관없이 원하지 않은 값들로 인해 삽입할 수 없게 되는 현상
삭제 이상
Deletion Anomaly
테이블에서 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는, 즉 연쇄 삭제가 발생하는 현상
갱신 이상
Update Anomaly
테이블에서 튜플에 있는 속성 값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 불일치성이 생기는 현상

 

정규화 과정[도부이결다조] ★★★★

1정규형
1NF
릴레이션에 속한 모든 도메인이 원자값만으로 되어 있는 정규형. 릴레이션의 모든 속성값이 원자값으로만 되어 있는 정규형
2NF 릴레이션 R1NF, 기본키가 아닌 모든 속성이 기본키에 대해 완전 함수적 종속을 만족하는 정규형(부분적 함수 종속 제거)
3NF 릴레이션 R2NF이고, 기본키가 아닌 모든 속성이 기본키에 대해 이행적 종속을 만족하지 않는 정규형(A-B이고, B->C일 때 A->C를 만족하지 않음)(이행적 함수 종속 제거)
BCNF 릴레이션 R에서 결정자가 모두 후보키인 정규형. 모든 BCNF가 종속성을 보존하는 것은 아님(결정자이면서 후보키가 아닌 것 제거)
4NF 릴레이션 R에 다치 종속 A->>B가 성립하는 경우, R의 모든 속성이 A에 함수적 종속 관계를 만족하는 정규형
5NF 릴레이션 R의 모든 조인 종속이 R의 후보키를 통해서만 성립되는 정규형

 

함수적 종속

X->Y 관계에서 X가 결정자이고, Y가 종속자다.

 

반정규화

정규화된 데이터 모델을 의도적으로 통합, 중복, 분리하여 정규화 원칙을 위배하는 행위

테이블통합 / 테이블 분할 / 중복 테이블 추가 / 중복 속성 추가

시스템 카탈로그 ★★

다양한 객체에 관한 정보를 포함하는 시스템 데이터 베이스

메타 데이터 시스템 카탈로그에 저장된 정보
데이터 디렉터리 데이터 사전에 수록된 데이터에 접근하는데 필요한 정보를 관리, 유지하는 시스템

 

트랜잭션 Transaction

논리적인 기능을 수행 하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산

Atomicity 원자성 트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료(Commit)되든지 아니면 전혀 반영되지 않도록 복구(Rollback)되어야함
Consistency 일관성 트랜잭션이 그 실행이 성공적으로 오나료하면 언제나 일관성있는 데이터베이스 상태로 변환함
Isolation 독립성 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션이 실행중에 다른 트랜잭션의 연산이 끼어 들 수 없음
Durability 영속성 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 함.

 

인덱스 ★★

데이터 레코드를 빠르게 접근하기 위해 키 값, 포인터 쌍으로 구성되는 데이터 구조. 인덱스는 데이터가 저장된 물리적 구조와 밀접한 관계. 레코드가 저장된 물리적 구조에 접근하는 방법 제공. 인덱스를 통해 파일 레코드에 대한 액세스를 빠르게 수행. 인덱스가 없으면 TABLE SCAN(특정한 값을 찾기위해 모든 데이터 페이지를 확인)이 발생.

트리 기반 인덱스 인덱스를 저장하는 블록들이 트리 구조를 이루는 것
비트맵 인덱스 인덱스 컬럼의 데이터를 Bit 값인 0또는 1로 변환해 인덱스 키로 사용하는 방법
함수 기반 인덱스 컬럼의 값 대신 컬럼에 특정 함수나 수식을 적용해 산출된 값을 사용하는 것
비트맵 조인 인덱스 다수의 조인된 객체로 구성된 인덱스
도메인 인덱스 개발자가 필요한 인덱스를 직접 만들어 사용하는 것

 

클러스터드 인덱스 인덱스 키의 순서에 따라 데이터가 정렬되어 저장되는 방식
넌클러스터드 인덱스 인덱스의 키 값만 정렬되어 있고, 실제 데이터는 정렬되지 않은 방식.

 

(View) ★★★

사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된 이름을 가지는 가상 테이블. 뷰는 데이터 보정 작업, 처리 과정 시험 등 임시적인 작업을 위한 용도로 활용된다. 뷰는 가상 테이블이기 때문에 물리적 구현이 없고, 데이터의 논리적 독립성을 제공한다. CREATEDROP을 사용.

클러스터 ★★★

데이터 저장 시 데이터 액세스 효율을 향상시키기 위해 동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 물리적 저장 방법. 클러스터링된 테이블은 데이터 조회 속도 향상시키지만 데이터 입력, 수정, 삭제에 대한 성능은 저하시킨다. 클러스터는 데이터의 분포도가 넓을수록 유리.

 

처리 범위가 넓은 경우엔 단일 테이블 클러스터링,

조인이 많이 발생하는 경우엔 다중 테이블 클러스터링.

 

파티션 설계 ★★★

대용량 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나누는 것.

대용량 DB의 경우 중요한 몇 개의 테이블에만 집중되어 데이터가 증가되므로, 이런 테이블들을 작은 단위로 나눠 분산시키면 성능 저하를 방지할 뿐만 아니라 데이터 관리도 쉬워진다. 테이블이나 인덱스를 파티셔닝 하면 파티션키나 인덱스키에 따라 물리적으로 별도의 공간에 데이터가 저장된다. 데이터 처리는 테이블 단위로 이뤄지고, 데이터 저장은 파티션 별로 수행된다. 범위(Range), 해시(Hash), 조합(Composite)

 

분산 데이터베이스 ★★★

논리적으로는 하나의 시스템에 속하지만 물리적(여러 지역으로)으로는 네트워크를 통해 연결된 여러 개의 컴퓨터 사이트에 분산되어 있는 데이터베이스 [위중병장]

위치 투명성 액세스 하려는 데이터베이스의 실제 위치를 알 필요 없이 단지
데이터베이스의 논리적 명칭만으로 액세스 할 수 있음
중복 투명성 동일 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용하고, 시스템은 자동으로 여러 자료에 대한 작업을 수행한다.
병행 투명성 분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않는다.
장애 투명성 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭션을 정확하게 처리한다.

 

분산 설계 방법

- 테이블 위치 분산 : 데이터베이스의 테이블을 각기 다른 서버에 분산시켜 배치

- 분할 : 테이블의 데이터를 분할 해 분산. 완전성, 재구성, 상호 중첩 배제.

- 할당 : 동일한 분할을 여러 개의 서버에 생성하는 분산 방법.

 

데이터베이스 이중화 ★★

서비스 중단이나 물리적 손상 발생시 이를 복구하기 위해 동일한 데이터베이스를 복제하여 관리하는 것.

Eager 기법 트랜잭션 수행 중 데이터변경이 발생하면 이중화된 모든 데이터베이스에 즉시 전달해 변경내용이 즉시 적용되도록 하는 기법.
Lazy 기법 트랜잭션 수행이 종료되면 변경 사실을 새로운 트랜잭션에 작성해 각 데이터베이스에 전달 되는 기법.

 

클러스터링 두대 이상의 서버를 하나의 서버처럼 운영하는 기술

고가용성 클러스터링 하나의 서버에 장애가 발생하면 다른 노드가 받아 처리해 서비스 중단을 방지.
병렬 처리 클러스터링 전체 처리율을 높이기 위해 하나의 작업을 여러개의 서버에서 분산해 처리하는 방식.

 

접근통제 ★★★

데이터가 저장된 객체와 이를 사용하려는 주체 사이의 정보 흐름을 제한하는 것.

<접근통제3요소> 접근통제 정책 / 접근통제 메커니즘 / 접근통제 보안모델

 

접근통제 기술

임의 접근통제(DAC) 데이터에 접근하는 사용자의 신원에 따라 접근 권한을 부여하는 방식. 데이터 소유자.
강제 접근통제(MAC) 주체와 객체의 등급을 비교해 접근 권한을 부여하는 방식. 시스템.
역할기반 접근통제(RBAC) 사용자의 역할에 따라 접근 권한을 부여하는 방식. 중앙관리자.

 

* 주체가 데이터 소유자=DAC, 시스템=MAC, 중앙관리자=RBAC입니다.

 

접근 통제 정책

신분 기반 정책 주체나 그룹의 신분에 근거해 객체의 접근을 제한. IBPGBP가 있음.
규칙 기반 정책 주체가 갖는 권한에 근거해 객체의 접근을 제한하는 방법으로, MLPCBP가 있음.
역할 기반 정책 GBP의 변형된 정책으로, 주체의 신분이 아니라 주체가 맡은 역할에 근거해 객체의 접근을 제한.

 

접근 통제 조건

값 종속 통제 일반적으로 객체에 저장된 값에 상관없이 접근 통제를 동일하게 허용하지만, 객체에 저장된 값에 따라 다르게 접근 통제를 허용하는 경우에 사용
다중 사용자 통제 지정된 객체에 다수의 사용자가 동시에 접근을 요구하는 경우 사용.
컨텍스트 기반 통제 특정 시간, 네트워크 주소, 접근 경로, 인증 수준 등에 근거해 접근을 제어하는 방법.

 

감사 추적사용자나 애플리케이션이 데이터베이스에 접근해 수행한 모든 활동을 기록하는 기능.

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함