정보 처리기사 필기 3과목 기본 개념 요점 정리
데이터 베이스 구축
1. 기본 구조 (릴레이션, 애트리뷰트, 튜플, 도메인)
2. DDL(정의), DML(조작), DCL(제어)
3. 슈퍼키, 후보키, 기본키, 외래키, 대체키
4. 병행제어 기법 (로킹, 타임스탬프)
5. 정규화
6. 트랜젝션 - 원자성,일관성, 격리성, 영속성
7. 무결성
8. 관계 대수 연산자
9. view
10. E-R 모델 (Entity-Relationship, 개체-관계)
11. 투명성
12. 스키마(Schema)의 종류
1. 기본 구조 ( 릴레이션, 애트리뷰트, 튜플, 도메인)
데이터베이스 설계 단계
1. 개념 설계 - ERD (고객의 내용을 다 꺼내서)
2. 논리 설계 - 정제, 정규화, 트랜잭션 인터페이스 설계
3. 물리적 설계 - 실제로 집어넣야하기때문에 > 성능고려 : 반정규화도 진행 할 수 있음.
개념적 설계 | * 현실세계를 데이터 관점으로 추상화 (ex) 쇼핑몰을 만들기위해 공통적인 걸 뽑아내고 그걸 그림으로) * E-R 다이어 그램 |
논리적 설계 | * 특정 데이터 모델 (계층, 관계, 객체지향)을 적용한 설계 * 사용할 DBMS 특성을 고려한 설계 * 릴레이션 스키마 (테이블 구조 설계) * 트랜잭션 인터페이스 설계 (정제) * 정규화 |
물리적 설계 | *특정 데이터 베이스에 맞게 설계해주는 단계 (오라클, Mysql 등) *물리적 구조와 저장구조, 분산 형태, 데이터 특징,인덱스 *오브젝트, 접근방법, 트랜잭션 분석, 인덱스, 뷰, 용량 설계 *물리적 스키마 *DDL문 사용 |
관련기출)
43. 데이터베이스 설계 단계 중 저장 레코드 양식 설계, 레코드 집중의 분석 및 설계, 접근 경로 설계와 관계되는 것은?
1) 논리적 설계
2) 요구조건 분석
3) 개념적 설계
4) 물리적 설계 : 실제로 저장이 되어야 진행될 수 있는 내용
(2021년 1회 필기 기출 해설 특정)
* 레코드 양식 설계 : 이름 몇글자로?, 나이는 숫자로?문자로? / 레코드 집중의 분석 및 설계 : 이 데이터베이스에 얼마만큼 들어갈 것인지
접근경로 설계 : 어떤 인덱스를 탈 것인지
47. 데이터베이스 설계 시 물리적 설계 단계에서 수행하는 사항이 아닌 것은?
1) 레코드 집중의 분석 및 설계
2) 접근 경로 설계
3) 저장 레코드의 양식 설계
4) 목표 DBMS에 맞는 스키마 설계 : 목표 DBMS - 논리설계 / 특정DBMS - 오라클, MySQL 등 : 물리적 시 특정 DBMS에 맞춰 설계
(2021년 2회 필기 기출 해설 특정)
릴레이션 (Relation)
: 데이터를 표의 형태로 표현 한 것.
릴레이션의 특징
- 한 릴레이션에는 똑같은 듀플이 포함 될 수없으므로 즉, 릴레이션에 포함괸 듀플들은 모두 상이하다.
- 듀플 사이에는 순서가 없다.
- 릴레이션 스키마를 구성하는 속성들 간의 순서는 중요하지 않다.
- 속성의 유일한 식별을 위해 속성의 명칭은 유일해야하지만, 속성을 구성하는 값은 동일한 값이 있을 수 있다.
- 속성값은 논리적으로 더 이상 쪼갤 수 없는 원자값만을 저장한다.
속성 (Attribute; 애트리뷰트)
: 데이터 베이스를 구성하는 가장 작은 놀리적 단위.
* Column (열), Field (필드) 라고 함.
* 차수 (Degree) = 속성의 수
ex) 위 표의 차수는 = 5
듀플 (Tuple)
: 릴레이션을 구성하는 각각의 행
*표에서 가로 행 하나를 말함.
*Row(행), Record(레코드)
* 카디널리티 (Cardinality) 수 = 듀플의 개수 =기수
ex) 듀플의 개수는 = 4
도메인 ( Domain )
: 하나의 속성이 취할 수 있는 같은 타입의 원자 값들의 집합
ex) 성별 속성의 도메인 = 남, 여
학과 속성의 도메인 = 경영학과, 법학과, 수학과 등
관련기출)
42. 다음 관계형 데이터 모델에 대한 설명으로 옳은 것은? (1) relation 3개, attribute 3개, tuple 5개 (2) relation 3개, attribute 5개, tuple 3개 (3) relation 1개, attribute 5개, tuple 3개 (4) relation 1개, attribute 3개, tuple 5개 (2020 정보처리기사 필기 기출) |
48. 하나의 애트리뷰트가 가질 수 있는 원자값들의 집합을 의미하는 것은? (1) 도메인 (2) 튜플 (3) 엔티티 (4) 다형성 (2020. 정보처리기사 필기 기출) |
60. 릴레이션에 대한 설명으로 거리가 먼 것은? (1) 튜플들의 삽입, 삭제 등의 작업으로 인해 릴레이션은 시간에 따라 변한다. (2) 한 릴레이션에 포함된 튜플들은 모두 상이하다. (3) 애트리뷰트는 논리적으로 쪼갤 수 없는 원자값으로 저장한다. (4) 한 릴레이션에 포함된 튜플 사이에는 순서가 있다. (2020 정보처리기사 필기 기출) |
2. DDL, DCL, DML
DDL
DDL (Data Definition Language) : 데이터 정의어
: 테이블에 관련된 쿼리문
* create, drop, alter
Create (생성) 데이터베이스, 테이블 생성 |
|
drop (삭제) 데이터베이스, 테이블 생성 |
drop table 테이블명; 실 예제) drop table car; |
alter (수정) 테이블 수정 |
alter table 테이블명 ~~~;
|
truncate (초기화) 테이블 초기화 |
TRUNCATE 테이블 이름 |
DML
DML ( Data Manipulation Language ) : 데이터 조작어
SELECT / INSERT / UPDATE / DELETE
SQL 명령어 | 예문 |
SELECT 데이터 조회 |
SELECT 컬럼명1, 컬럼명2,… FROM 테이블명 where 조건식; SELECT 학번, 이름 FROM 학생 WHERE 학년 IN(3,4); * 중복을 제거하고 조회. (DISTINCT - 속성앞에 위치) select distinct 학년 from A |
INSERT 데이터 삽입 |
INSERT INTO 테이블명 [(컬럼명1, 컬럼명2,…)] VALUES (값1, 값2,….); INSERT INTO 사원 VALUES ('장보고', '기획', #05/03/73#, '홍제동', 90); |
UPDATE 데이터 수정 |
UPDATE 테이블명 SET 기존컬럼명 = 바꿀값, 기존컬럼명 = 바꿀값,…. WHERE 조건식; UPDATE 사원 SET 주소 = '역삼동' WHERE 이름 = '홍길동'; |
DELETE 데이터 삭제 |
DELETE FROM 테이블명 WHERE 조건식 ; DELETE FROM 사원 WHERE 이름 = '홍길동'; |
SELECT 조건식
SELECT ~ FROM ~ WHERE
: where 뒤에 나오는 내용 해석 하기
SELECT
DISTINCT
학년 FROM R1;
: 겹치는 데이터 제외하고 출력
Select문의 구조
select 컬럼1, 컬럼2, … from 테이블명
where 조건식 group by 컬럼1, 컬럼2,…
having 조건식 order by 컬럼1, 컬럼2,… limit 시작행번호, 개수
WHERE 조건절
= | 같다 |
!= , <> | 다르다 |
AND | 두 조건이 모두 참이면 참 |
OR , IN(A,B) A 또는 B |
두 조건식 중 하나라도 참이면 참 |
BETWEEN 값1 AND 값 2 | 값1 이상 값 2 이하 이면 참 |
※ and, or 가 동시에 사용되는 경우, and 연산자가 or 연산자 보다 우선시 됨.
같은 and 또는 or 가 여러개가 올때는, 앞에서 부터 먼저 계산되기 때문에 원하는 순서에 맞춰 괄호 써줘야 함.
※ Between A and B
LIKE 조건식 : 컬럼 LIKE ("와일드 카드 문자열")
: 뒤에오는 와일드 카드 문자열과 비교하여 그 문자열에 해당하면 참, 아니면 거짓
와일드 카드
_ (언더바) | 한글자 |
% | 모든 것 |
\_ | 언더바 한개 |
\% | %한개 |
ex)
'_이_' : 세글자 중 가운데가 '이'면 참.
'_이%' : 두번째 글자가 '이'면 참(2글자 이상)
'%이_' : 뒤에서 두번째 글자가 '이'면 참
'__이%' : 세번째 글자가 '이'면 참
'_이_%' : 두번쨰 글자가 '이'이며, 3글자 이상이면 참
'%\_%' : 문자열에 _(언더바) 포함되어있으면 참
'%\___' : 문자열에 뒤에서 3번째에 _가 포함되어있으면 참
'%\%%' : 문자열에 %가 포함되어있으면 참.
'_\_%\%_' : 문자열에 두번째 _ , 뒤에서 두번째에 %포함되어있으면 참.
DCL
DCL (Data Control Language) : 데이터 제어어
: 데이터에 아무나 접근할 수 없도록 권한 관리, 오류발생 시 오류 복구 (DML을 제외한 나머지 작업이라고 할 수있음)
GRANT / REVOKE / COMMIT / ROLLBACK
SQL 명령어 | 예문 |
GRANT 특정 데이터베이스 사용자에게 특정작업에 대한 수행 권한 부여 |
GRANT INSERT ON 고객 TO 맹구; [맹구가 고객 insert 할수있는 권한 부여] |
REVOKE 특정 데이터베이스 사용자에게 특정 작업에 대한 수행 권한을 박탈, 회수 |
REVOKE GRANT OPTION FOR UPDATE ON 고객 FROM 짱구; [짱구가 고객 업데이트 할 수있는 권한 박탈] |
COMMIT 트랜잭션의 작업을 저장 |
COMMIT; (너무 간단해서 문법 문제는 출제가 안 됩니다...) |
ROLLBACK 트랜잭션의 작업을 취소, 원래대로 복구 |
ROLLBACK; |
3. 슈퍼키, 후보키, 기본키, 외래키, 대체키
키의 종류 | 설명 |
후보키 (Candidate Key) | 튜플들을 식별할 수 있는 속성들입니다. 기본키로 사용 가능한 후보들이 됩니다. 유일성 (Unique) 과 최소성 (Minimality) 를 모두 만족. ex) 주민번호, 학번, 이름 -> 주민번호, 학번이 후보키 |
기본키 (Primary Key) | 후보키 중에서 특별히 선정된 키이고, NULL 값이나 중복값은 가질 수 없습니다. ex. 학번, 주민번호 |
대체키 (Alternate Key) | 후보키가 둘 이상일 때 기본키를 제외한 나머지를 의미합니다. (기본키가 없을 때 그 자리를 대신해 줄 수 있으므로 대체키입니다.) |
슈퍼키 (Super Key) | 릴레이션 내에 있는 속성들의 집합으로 구성되는 키입니다. ex. 이름 + 주소 의 조합으로 키를 만들 수도 있는데, 그러면 슈퍼키가 됩니다. 유일성 (Unique) 은 만족하지만 최소성 (Minimality) 는 만족하지 못함. * 나를 식별 할 수 있는 모든것. |
외래키 (Foreign Key) | 다른 릴레이션의 기본키를 참조하는 속성들입니다. 예를 들어 <학생> 릴레이션에 기본키가 주민번호이고, <수강> 릴레이션의 기본키는 학번 이라면, <학생> 릴레이션에 있는 학번은 남의 기본키, 나의 외래키가 됩니다. |
4. 병행제어 기법 (로킹, 타임스탬프)
데이터베이스 병행제어 (Concurrency Control) 란?
: 여러 개의 트랜잭션이 실행될 때 트랜잭션들이 데이터베이스의 일관성을 파괴하지 않고
다른 트랜잭션에 영향을 주지 않도록 트랜잭션을 제어.
※ 트랜잭션 (Transaction) 이란
: 데이터베이스 상태를 변화시키기 위해 수행하는 작업의 단위.
* 한꺼번에 모두 수행되어야할 일련의 연산들을 의미
SELECT, INSERT 이런 한 문장이 아니라 여러 문장들을 합친 작업 단위가 하나의 트랜잭션이 된다.
로킹(Locking)
로킹이란?
: 데이터 베이스 병행 제어를 위해 트랜잭션이 접근하고자 하는 데이터를 잠가서 (lock) 다른 트랜잭션이
접근 하지 못하도록 하는 기법.
※ 시험에서는 로킹의 단위에 따라 영향을 받는 지에 대한 내용이 출제.
로킹 단위 | 로크의 수 | 병행제어 | 로킹 오버헤드 | 병행성 수준 | 데이터 베이스 공유도 |
커짐 | 적어짐 | 단순 | 감소 | 낮음 | 감소 |
작아짐 | 커짐 | 복잡 | 증가 | 높음 | 중가 |
*작아짐 -> 전부 플러스 / 커짐 -> 전부 마이너스
5. 정규화 ( Normalization )
: 데이터베이스 내부에 불필요한 중복으로 발생하는 이상(Anomaly)을 해결하는 방법.
→ 무결성(Integrity)를 유지할 수 있으며, DB의 저장 용량을 줄일수 있음.
Anomaly현상의 종류
- 삭제 이상
- 삽입 이상
- 갱신이상
※ 정규화 : 데이터 베이스 설계에서 중복을 최소화하고 데이터를 구조화해서 데이터 중복과 이상 현상을 방지하는 과정
※ 반정규화 : 성능 향상을 위해 정규화된 데이터 모델을 더 유연하게 조정하여 중복을 허용하는 과정.
정규화 과정
비정규 릴레이션
↓ 도메인이 원자값
1NF
↓ 부분적 함수 종속 제거
2NF
↓ 이행적 함수 종속 제거
3NF
↓ 결정자이면서 후보키가 아닌 것 제거
BCNF
↓ 다치 종속 제거
4NF
↓ 조인 종속성 이용
5NF
※두부이걸다죠?! 로 외우기
상세내용은 3정규화까지만 외워도 괜찮. 이후는 실무에는 사용하지않음
제 1 정규화 : 테이블 컬럼이 원자값을(하나의 값)을 갖도록 테이블 분해 - 도메인이 원자값
- 각 컬럼이 하나의 속성만을 가져야 한다.
- 하나의 컬럼은 같은 종류나 타입(type)의 값을 가져야 한다.
- 각 컬럼이 유일한(unique) 이름을 가져야 한다.
- 칼럼의 순서가 상관없어야 한다.
제 2 정규화 : 제 1정규화 진해 후 완전 함수 종속을 만족하도록 테이블을 분해 - 부분적 함수 종속 제거
* 2
- 부분 함수 종속 : 기본키 중에 특정 컬럼에만 종속되는 것. [1개를 가지고도 알 수 있는 것]
- 완전 함수 종속: 기본키의 부분 집합이 결정자가 되어서는 안됨. [2개를 가지고 하나를 알 수있는 것]
- 강의실이라는 컬럼은 기본키의 부분집합인 강좌이름에 의해 결정될 수 있다. (강좌이름) --> (강의실)
제 3정규화 : 제 2정규화를 진행한 테이블에 이행적 종속을 없애도록 테이블을 분해. -이행적 함수 종속 제거
* 이행적 종속 : A→B , B→C 일때, A → C 가 성립
* 학생번호 → 강좌이름 결정, 강좌이름 → 수강료 결정 = 학생번호, 강좌이름 / 강좌이름, 수강료로 분해.
BCNF 정규화 : 제3 정규화를 진행한 테이블에 대해 모든 결정자가 후보키가 되도록 테이블 분해.
- 결정자이면서 후보키가 아닌 것 제거
* 기본키 : 학생번호, 특강이름
기본키 -> 교수를 결정
교수 -> 특강이름 결정 BUT 후보키가 아님.
제 4 정규화 : BCNF 정규화를 진행한 테이블에 대해 다중값 종속이 없어야한다. - 다치 종속 제거
- 다치 종속 : 같은 테이블내의 독립적인 두 개 이상의 컬럼이 또 다른 컬럼에 종속되는 것을 말함.
정규화 진행
제 5 정규화 : 제 4 정규화를 진행한 테이블에 대해 조인 종속이 없어야한다. - 조인 종속성 이용
중복을 제거하기위해 분해 할 수 있는 만큼 전부 분해
※ 조인 종속 : 다치종속의 좀 더 일반화된 형태.
->하나의 릴레이션을 여러개의 릴레이션으로 무손실 분해했다가 다시 결함할 수 있다면 = 조인 종속
참고
https://code-lab1.tistory.com/270
https://mangkyu.tistory.com/110
https://velog.io/@wisdom-one/%EC%A0%95%EA%B7%9C%ED%99%94Normalization
6. 트랜잭션의 특징 (ACID)
원자성 Atomicity |
트랜잰션연산은 데이터베이스에 모두 반영 되거나 전혀 반영되지 않아야 한다. |
일관성 Consistency |
트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환한다. |
격리성 Isolation |
트랜잭션 실행 중 생성하는 연산의 중간 결과를 다른 트랜잭션이 접근 불가하다. |
영속성 Durability |
성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 한다. |
51. 트랜잭션의 특징 중 다음 설명에 해당하는 것은? 트랜잭션의 연산은 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 한다. (1) Durability (2) Share (3) Consistency (4) Atomicity (2020. 정보처리기사 필기 기출문제) |
7. 무결성 (Integrity)
: 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 정확성을 의미.
개체 무결성 (Entity Intergrity) |
기본 테이블의 기본키를 구성하는 어떤 속성도 Null 값이나 중복값을 가질 수 없다. |
도메인 무결성 (Domain Intergrity) |
주어진 속성 값이 정의된 도메인에 속한 값이어야 한다. ex) 혈액형 속성 > A B AB O 형일때, C형이 나오면 안됨. |
참조 무결성 (Referential Intergrity) |
외래키 값은 Null이거나 참조 릴레이션의 기본키 값과 동일해야한다. -> 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없음 *CASECADE : 삭제하려고 할때 참조값과 같이 전부 삭제 *RESTRICTED: 삭제를 막음 (참조값이 있으면) |
사용자 정의 무결성 | 속성 값들이 사용자가 정의한 제약 조건에 만족해야한다. |
Null 무결성 | 릴레이션의 특정 속성값이 Null이 될 수 없도록 한다. |
고유 무결성 (Unique Intergrity) |
릴레이션의 특징 속성에 대해 각 듀플이 갖는 속성값들이 서로 달라야 한다. |
키 무결성 (Key Intergrity) |
하나의 릴레이션에는 적어도 하나의 키가 존재해야한다. |
관계 무결성 (Relationship Intergrity) |
릴레이션에 어느 한 듀플의 삽입가능 여부 또는 한 릴레이션과 다른 릴레이션의 듀플들 사이의 관계에 대한 적절성 여부를 지정한 규정이다. |
관련기출)
41. 데이터 베이스의 무결성 규정(Intergrity Rule)과 관련한 설명으로 틀린것은? (1) 무결성 규정에는 데이터가 만족해야 될 제약 조건, 규정을 참조할 때 사용하는 식별자 등의요소가 포함될 수 있다. (2) 무결성 규정의 대상으로는 도메인, 키, 종속성 등이 있다. (3) 정식으로 허가받은 사용자가 아닌 불법적인 사용자에 의한 갱신으로부터 데이터베이스를 보호하기 위한 규정이다 : 규정에대한 설명이아닌 "무결성" 자체에 대한 설명 (4) 릴레이션 무결성 규정(Relation Intergrity Rules)은 릴레이션을 조작하는 과정에서의 의미적관계를 명세한 것이다. (2020. 정보처리기사 필기 기출문제) |
8. 관계 대수 연산자
1. 순수 관계 연산자
- SELECT: σ 튜플 구하기 (σ평균 >= 90(성적) →평균이 90점이상인 듀플 검색)
- PROJECT: π 속성 구하기 (특정 속성들만 추출)
- JOIN: ▷◁ 합치기
- DIVISION: ÷ 해당하는 튜플의 검색 대상 속성은 제거하고 보여주기
2. 일반 집합 연산자
- UNION: ∪ 합집합 (중복 제거한)
- UNION ALL : 중복을 포함한 결과 합집합
- INTERSECTION: ∩ 교집합
- DIFFERENCE (MINUS ): - 차집합
- CARTESIAN PRODUCT: × 교차곱
관련기출)
09. 관계 대수식을 SQL 질의로 옳게 표현한 것은?
∩이름(σ학과='교육'학생))
1) SELECT 학생 FROM 이름 WHERE 학과='교육';
2) SELECT 이름 FROM 학생 WHERE 학과='교육';
3) SELECT 교육 FROM 학과 WHERE 이름='학생';
4) SELECT 학과 FROM 학생 WHERE 이름='교육';
학생이라는 테이블 > 여러 속성중 학과 = '교육'인거
∩ : 어떠한 필드를 가지고 오라는 뜻(속성) -> 이름이라는 속성을 가지고 와라
* 관계 해석
(2) 일반 집합 연산자
- UNION: ∪ 합집합 (중복 제거한)
- UNION ALL : 중복을 포함한 결과 합집합
- INTERSECTION: ∩ 교집합
- DIFFERENCE (MINUS ): - 차집합
- CARTESIAN PRODUCT: × 교차곱
참고
https://computer-choco.tistory.com/m/440
9. View 뷰
: 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된 가상 테이블
- 삽입(Create), 삭제(Drop)는 가능하나 수정(Alter)은 불가 -> 구조삭제 DDL
관련기출 )
47. 뷰에대한 설명으로 옳지 않은 것은? 1) DBA는 보안 측면에서 뷰를 활용할 수 있다. 2) 뷰 위에 또 다른 뷰를 정의할 수 있다. 3) 뷰에 대한 삽입, 갱신, 삭제 연산 시 제약사항이 따르지 않는다. : 제약조건이 따름. 4) 독립적인 인덱스를 가질 수 없다. |
50. 데이터 베이스에서의 뷰(View)에 대한 설명으로 틀린것은? 1) 뷰는 다른 뷰를 기반으로 새로운 뷰를 만들 수 있다. 2) 뷰는 일종의 가상 테이블이며, update에는 제약이 따른다 3) 뷰는 기본테이블을 만드는 것처럼 create view를 사용하여 만들 수 있다. 4) 뷰는 논리적으로 존재하는 기본 테이블과 다르게 물리적으로만 존재하며 카탈로그에 저장된다. : 뷰는 물리적으로 존재하는 기본테이블을 가지고 가상의 테이블(view)를 생성. (2022년 2회 필기 기출) |
10. E-R 모델 (Entity-Relationship, 개체-관계)
11. 투명성 - 분산 데이터베이스
분산 데이터 베이스 구성요소
- 분산 처리기 : 자체적으로 처리 능력을 가지며, 지리적으로 분산되어있는 컴퓨터 시스템
- 분산 데이터베이스 : 지리적으로 분산되어있는 데이터 베이스로서 해당 지역의 특성에 맞게 데이터 베이스가 구성
- 통신 네트워크 : 분산처리기들을 통신망으로 연결하여 논리적으로 하나의 시스템처럼 작동 할 수 있도록 하는 통신 네트워크
투명성 | 설명 |
위치투명성 (Location Transparency) |
데이터 베이스의 실제 위치를 알 필요없이 데이터베이스의 논리적인 명칭만으로 엑세스할 수 있음 -> 물리적 위치를 몰라도 이름만 알면 접근 가능. |
분할 투명성 (Division Transparency) |
하나의 논리적 관계가 여러 단편으로 분할되어 각 단편의 사본이 여러 Site에 저장됨. |
지역사상 투명성 (Local Mapping transparency) |
지역 DBMS와 물리적 DB사이에 Mapping을 보장함. |
중복 투명성 (Replication Transparency) |
데이터가 여러곳에 중복되어있더라도 사용자는 하나의 데이터만 존재하는 것처럼 사용가능. |
병행 투명성 (Concurrency Transparency) |
다수의 트랜잭션이 동시에 실현되더라도 그 결과는 영향을 받지 않음 |
장애 투명성 (Failure Transparency) |
트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 트랜잭션을 정확히 처리함 |
52. 분산 데이터베이스 목표 중 "데이터베이스의 분산된 물리적 환경에서 특정 지역의 컴퓨터 시스템이나 네트워크에 장애가 발생해도 데이터 무결성이 보장된다" 는 것과 관계 있는 것은? (1) 장애 투명성 (2) 병행 투명성 (3) 위치 투명성 (4) 중복 투명성 (2020 정보처리기사 필기 기출문제) |
12. 스키마(Schema)의 종류
스키마 (Schema)
스키마란?
: 데이터 베이스의 구조와 제약조건에 관해 전반적인 명세를 기술한 것.
→ DB내에 어떤 구조로 데이터가 저장되는가를 나타내는 데이터 베이스 구조.
* 사용자의 관점에 따라 외부스키마, 개념 스키마, 내부 스키마로 나뉨
스키마 구조
1. 외부스키마 (External Schema)= 사용자 뷰 (View)
: 사용자나 프로그래머가 각 개인의 입장에서 필요로 하는 데이터 베이스의 논리적 구조를 정의.
실제 존재하는 데이터들을 어떤 형식, 구조, 배치 화면을 통해 사용자에게 보여줄 것인지를 정의
- 하나의 DB에 여러개의 외부 스키마 존재 가능, 하나의 외부 스키마를 여러개의 응용프로그램이나 사용자가 공유 가능.
- 같은 DB에 대해서도 서로 다른 관점을 정의할 수 있도록 허용.
- 일반 사용자는 SQL을 이용해 DB를 쉽게 사용 가능.
- 프로그래머는 C, JAVA등의 언어를 사용하여 DB에 접근.
2. 개념 스키마 (Conceptual Schema) = 전체적인 뷰 (view)
: 조직체 전체를 관장하는 입장에서 DB를 정의. 데이터 베이스의 전체적인 논리적 구조.
조직의 모든 응용 시스템에서 필요로 하는 객체관계, 제약 조건들을 포함.
- 각 데이터 베이스에 한 개의 개념 스키마만 존재
- 개체간의 관계 및 무결성 제약 조건에 대한 명세를 정의.
- 데이터베이스 파일에 저장되는 데이터의 형태를 나타냄.
3. 내부 스키마 (Internal Schema) = 저장스키마 (Storage Schema)
: 물리적 저장장치의 입장에서 본 데이터 베이스의 구조.
- 데이터베이스의 물리적 저장 구조를 정의.
- 저장될 데이터 항목의 내부 레코드 형식, 물리적 순서 등을 나타냄.
- 몇글자로 되어있는지, 숫자인지를 보는 것.
논리적 독립성
: 개념 스키마 혹은 내부 스키마가 변경되어도 외부 스키마에는 영향이 없음.
물리적 독립성
: 하드웨어적 관점
내부 스키마가 변경되어도 개념 스키마와 외부스키마에 영향이 없음.