출처 : 이기적 영진닷컴 https://youtu.be/JhKOsZuMDWs?si=tcKH-nfbH1U7qkjm
노랑색은 중요한 파트 표시한것
<인덱스>
=데이터 레코드에 빠르게 접근하기 위한 <키값, 포인터>의 데이터 구조
레코드의 물리적 구조에 접근
인덱스 개수 최소화 하는것이 효율적
DDL로 사용자가 생성, 변경, 제거 가능
- 색인 순차 파일 = 레코드 키 값 순으로 정렬하여 기록 후, 키값만 모은 색인 구성하여 편성
- 기본영역(데이터 레코드 저장)
- 색인 영역(레코드 위치 찾는 색인 기록)
- 오버플로 영역( 오버플로로 추가적인 레코드 입력 처리 못할 때 사용)!!!
- VSAM 파일 = 기본영역과 오버플로 영역 구분하지 않는다!!!
- 직접 파일 = 키를 해시 함수(임의의 길이의 데이터를 고정된 길이의 데이터로 매핑)로 물리적 주소로 변환하여
레코드 기록
<데이터베이스 개념>
정의 = 통합된, 저장된, 운영 데이터, 공용 데이터
특성 = 실시간 접근성, 내용 참조, 동시 공유, 계속 변화
<DBMS>
=데이터베이스 저장(표만들기), 조작(수정 등), 제어(무결성 유지) 기능
- 장점 = 데이터 중복, 종속성 최소화, 데이터 공유, 데이터 무결성+일관성 유지, 데이터 보안 보장 용이
<데이터 베이스 신기술>
= 빅데이터, 데이터 마이닝, Hadoop, Tajo, OLAP
+ OLAP = 자료 분석 도구, 연산 – roll up, drill down, dicing, slicing, pivot
<데이터베이스>
데이터 정의어 DDL = 표 만들 때
데이터 조작어 DML = 레코드 조회
데이터 제어어 DCL = 무결성 유지, 보안
데이터 베이스 사용자 = 데이터베이스 사용자, 응용 프로그래머, 일반 사용자
<개념적 데이터 모델>
<ER 다이어그램>
=대표적인 개념적 데이터 모델
개체(사각형)
관계(마름모)
속성(타원)
개체타입과 속성 연결(실선)
<논리적 데이터 모델>
- 관계형 데이터 모델 : 데이터베이스를 테이블 집합으로 표현
- 계층형 데이터 모델 : 트리 구조로 표현
- 네트워크형 데이터 모델 : 그래프 구조로 표현
<관계형 데이터베이스>
릴레이션, 스키마 = 구조. 표 (+ 스키마 = 외부 스키마, 개념 스키마, 내부 스키마(하드웨어 물리적 저장 방식))
속성 (attribute) = 가장 작은 논리적 단위, 원자값만 허용
튜플 (tuple) = 행, 속성의 모임
카디널리티 = 행 수
디그리 (degree) = 열의 수
도메인 (domain) = 값 범위, 애트리뷰트가 가질 수 있는 값 집합
차수 = 속성의 수
릴레이션 특징
= 튜플의 유일성, 튜플의 무순서성, 속성의 원자성, 속성의 무순서성
키 Key
=원하는 튜플 찾는 기준이 되는 애트리뷰트
- 후보키 = 튜플 식별 가능한 속성(유일성, 최소성 만족)
- 기본키 = 후보키 중 뽑아서 사용, 중복X, 특정 튜플 구별 가능한 속성, Null값 가질 수 없음
- 대체키 = 후보키들 중에 기본키 제외한 키
- 슈퍼키 = 묶어서도 가능. 속성들의 집합, 유일성 O 최소성 X
- 외래키 = 다른 릴레이션의 기본키 참조하는 속성.
무결성!!!!!!
- 개체 무결성 = 기본키는 null이나 중복값 가질 수 없다
- 참조 무결성 = 외래키값은 null이나 참조 릴레이션 기본키 값과 동일
→ 릴레이션 R1에 속성 조합인 외래키를 변경하려면 참조하고 있는 R2 기본키도 변경해야한다. 참조할 수 없는 외래키 값 가질 수 없다
- 도메인 무결성 = 릴레이션 중 하나의 속성은 반드시 원자값
<데이터베이스 설계 순서>
1. 개념적 설계 = 개념 스키마 설계
2. 논리적 설계 = 스키마 설계 평가, 정제, 논리적 DB구조로 매핑, 트랜잭션 인터페이스 설계
3. 물리적 설계 = 물리적인 구조 설계, 레코드 집중 분석 설계
4. 데이터베이스 구현
<데이터베이스 정규화>
목적
- 데이터구조 안정화
- 중복 데이터 최소화, 이상(Anomaly, 중복 데이터로 발생하는 곤란한 상황) 방지
+ 이상
- 갱신이상 = 자료 갱신할 때 문제
- 삽입이상 = 원치 않은 값도 삽입됨
- 삭제이상 = 원치 않은 값도 삭제됨
- 수정 삭제시 이상 현상 최소화(무결성, 참조 무결성)
- 테이블 불일치 최소화
정규화 과정
- 비정규 릴레이션
- 1NF = 도메인이 원자값, 중복 제거
- 2NF = 완전 함수적 종속 만족 (부분적 함수 종속 제거)
- 3NF = 이행적 함수 종속(A→B이고 B→C일 때 A→C이다.) 제거
- BCNF = 모든 결정자가 후보키
- 4NF = 다치 종속 제거
- 5NF = 조인 종속성 제거
함수적 종속 = 데이터들이 기준값에 의해 정해지는것
ex) <수강> 릴레이션에 (학번, 이름, 과목명)으로 되어 있을 때 ‘학번’이 결정되면 ‘이름’은 자동으로 대응된다.
이름을 학번에 함수적 종속이라고 하고 ‘학번→이름’ 으로 나타낸다
<반정규화(역정규화)>
= 성능, 운영 편의성 등을 위해 정규화된 모델을 통합 중복 분리하는 과정. 의도적으로 정규화 원칙 위배
방법
1. 테이블 분할 = 테이블을 수직이나 수평으로 분할
2. 중복 테이블 추가 = 테이블 중복 추가, 원격 조인 제거
- 집계 테이블 추가 = 합계 평균 통계 계산 미리 해서 계산해 둠.
- 이력 테이블 추가 = 이력 테이블에 레코드 중복 저장하여 성능 향상
- 부분 테이블 추가 = 자주쓰는 컬럼 저장
- 진행 테이블 추가
3. 중복 속성 추가
4. 테이블 통합 = 2개 테이블 join자주 되면 합치는게 도움됨.
<관계대수와 연산자>
관계대수 = 관계대수는 절차적 언어다!!!!
- 순수관계 연산자
select σ | 튜플 집합 검색 |
project π | 속성 집합 검색 |
join ⋈ | 두 릴레이션 공통 속성 연결 |
division ÷ | 두 릴레이션 특정 속성 제외한 속성만 검색 |
- 집합연산자
합집합, 교집합 차집합 – 교차곱 X(cartesian product)
+ 교차곱 = 카디널리티=속성개수*튜플 개수, 차수 = 합했을 때 속성의 개수
<SQL>
<DDL>
=define 표만들기
Create 정의
Alter 변경
Drop 삭제
ex)
Create table 테이블명( );
Alter table 테이블명 add/alter/drop
Drop table이름[cascade|restrict];
<DCL>
= control 제어 기능, 무결성 제어, transaction(자료 교차받는)
Commit
Rollback
Grant
Revoke
<DML>
= manipulation, 조작
Select(group by-having, distinct)
insert into values
delete from
update set
<View>
= alter못쓴다. drop create select는 사용가능
보안 good!!
사용자 데이터, 가상테이블, 논리적 독립성 제공
<시스템 카탈로그>
= 데이터 사전, 사용자가 아닌 DBMS가 분석한다. 갱신 허용 안함, 메타 데이터
<트랜잭션>
= 하나의 논리적 기능 수행하기 위한 작업 단위
특성
원자성 Atomicity = 트랜잭션 연산은 DB에 모두 반영(Commit 완료)되든지 아니면 전혀 반영안됨(Rollback 복구)
일관성 consistency = 실행 완료시 일관성 있는 상태로 변환
격리성 Isolation = 다른 트랜잭션이 동시에 접근하면 안된다
지속성 Durability = 성공적으로 완료된 트랜잭션 결과는 영구적
반영상태 - 활동, 실패, 철회, 부분완료, 완료
<CRUD 분석>
= (Create, Read, Update, Delete)
DB table에 변화 주는 트랜잭션의 연산에 대해 CRUD 매트릭스를 작성하여 분석한다.
= commit, rollback, recovery
<회복(Recovery)>
= 트랜잭션 수행 중 장애 발생한것 때문에 정상 상태로 복구하는 작업
- 연기 갱신 기법 = 트랜잭션 완료할 때까지 DB갱신 연기 후 Log에 보관
- 즉각 갱신법 = 갱신 내용 모두 log로 기록
- 그림자 페이지 대체 기법 = 복사본(그림자 페이지)을 보관 (Log안씀)
- 검사점 기법 = 트랜잭션 중간에 검사점을 Log에 보관
<병행제어>
= 공유 일관성있게 처리하기 위한 제어
- 데이터베이스 공유 최대화, 일관성 최대화,
- 종류 : 최적 병행 수행, 타임스탬프, 다중 버전 기법, Locking
+ Locking = 잠근다. 한 명만 수정할 수 있게. locking대상이 단위라고 한다.
Locking 단위 ↑ → 로크 수↓, 병행성↓, 오버헤드↓, 공유도↓, 제어기법 간단하여 관리 수월
2 Phase Locking = 확장단계, 축소 단계
<보안 분산 데이터 기법>
비밀키 = (대칭키)암호화를 비밀리 암호화와 복호화 키가 같아서
공개키 = 암호화 복호화 키 다르다(비대칭)
<권한 부여>
Grant _ on _ to _ [with grant option] = 권한 부여
Revoke on from = 권한 삭제 cascade연쇄로 다 삭제
Trigger = 삽입 갱신 등 이벤트 발생할 때마다 자동 수행
<분산 데이터베이스 목표>
- Location Transparency 위치 투명성 = 데이터베이스 실제 위치 알 필요X 논리적 명칭만으로 접근 가능
- Replication Transparency 중복 투명성 = 데이터가 중복되어 있어도 사용자는 하나의 데이터만 존재하는 것처럼 사용
- Concureency Transparency 병행 투명성 = 다수의 트랜잭션 동시 실현되어도 O
- Failure Transparency 장애 투명성 = 장애에도 트랜잭션 정확히 처리
<분산 데이터 베이스 장단점>
- 장점 = 질의 처리 시간 단축, 데이터 공유성, 신뢰성, 가용성 향상
- 단점 = 소프트웨어 개발 비용 증가, 오류 발생 가능성 증가
'자격증 > 정보처리기사' 카테고리의 다른 글
[정처기 필기] 과목 5. 정보시스템 구축 관리 (1) | 2024.02.18 |
---|---|
[정처기 필기] 과목 4. 프로그래밍 언어 활용 (0) | 2024.02.18 |
[정처기 필기] 과목 2. 소프트웨어 개발 (0) | 2024.02.18 |
[정처기 필기] 과목 1. 소프트웨어 설계 (0) | 2024.02.18 |
[정처기 필기] 정처기 필기 2주 만에 합격 하기 (0) | 2024.01.14 |