정보처리기사

데이터베이스 구축

조회: 175 댓글: 0개 2023.05.03 18:23 수요일

슈퍼키 : 유일성을 만족하는 속성 또는 속성들의 집합
후보키 : 유일성과 최소성을 만족하는 속성 또는 속성들의 집합
대체키 : 기본키로 선택되지 못한 후보키
외래키 : 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합

관계대수 : 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어이다.
비절차적 특성은 관계해석이 지니고 있다.

데이터베이스 용어
차수 = Degree = Attribute의 수 = 속성의 수(관계 DB의 열)
기수 = Cardinality = Tuple의 수 = 대응수(관계 DB의 행)

  1. 테이블
    데이터베이스에서 데이터들을 저장해두는 공간

  2. 테이블로부터 유도된 가사의 테이블
  3. 인덱스
    자주 검색되는 컬럼-where 조건식에 자주 언급-에 부여하는 책갈피같은 것
  4. 스키마
    테이블, 뷰, 인덱스 등의 데이터베이스 객체들의 집합
  5. 필드
    엑셀에서 열 column에 해당하는 가장 작은 단위의 데이터
  6. 레코드(튜플)
    엑셀에서 행 row에 해당하는 연관된 필드의 집합
  7. 엔티티
    업무에 필요, 데이터를 저장 및 관리. 테이블
  8. 속성
    엔티티의 한 부분, 업무에 필요하고 최소 값의 단위. 컬럼.
  9. 도메인
    속성의 값, 타입, 제약사항에 대한 값의 범위

ㅋㅋ?
Partially Committed: 마지막 연산이 실행된 직후의 상태로 아직 Commit 연산 실행 전
Committed: 트랜잭션이 실행을 성공적으로 완료하여 Commit 연산을 수행한 상태
        ->    partially committed  -> committed
active |           |
       |           V
        ->       failed            -> aborted(rollback연산)

시스템 카탈로그
 - 데이터베이스에 포함되는 데이터 객체에 대한 정의나 명세에 대한 정보를 유지관리한다.
 - DBMS가 스스로 생성하고 유지하는 데이터베이스 내의 특별한 테이블의 집합체이다.
 - 카탈로그에 저장된 정보를 메타 데이터라고도 한다.
 - 시스템 그 자체에 관련 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스이다.
 - 시스템 카탈로그 내의 각 테이블은 사용자를 포함하여 DBMS에서 지원하는 모든 데이터 객체에 대한 정의나 명세에관한 정보를 유지 관리하는 시스템 테이블이다.

동시성 제어
로킹기법 : 같은 자원을 엑세스하는 다중 트랜잭션 환경에서 DB의 일관성과 무결성을 유지하기 위해 트랜젝션의 순차적 진행을 보장하는 직렬화 기법.
타임스탬프 기법 : 트랜젝션과 트랜잭션이 읽거나 갱신한 데이터에 대해 트랜잭션이 실행을 시작하기 전에 타임스탬프를 부여하여 부여된 시간에 따라 트랜젝션 작업을 수행하여 트랜잭션 간의 처리순서를 미리 정하는 기법

E-R 다이어그램 표기법
네모네모 : 개체
동그라미 : 속성
동그밑줄 : 기본키
마름모모 : 관계
선선선선 : 개테 타입과 속성을 연결

트랙잭션의 특성
원자성(atomicity) = 트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야 하며, 오류나면 전부 취소
일관성(consistency) = 트랜잭션의 수행 전, 후의 데이터간의 불일치가 생겨서는 안된다.
격리성(isolation) = 여러 트랜잭션이 동시에 수행되어도, 각각 독립적으로 수행되어야한다.
영속성(=지속성)(durability) = 성공적으로 수행된 트랜잭션의 결과는 지속성이 있어야한다.

-CRUD 분석은 생성(Create), 읽기(Read), 갱신(Update), 삭제(Delete)의 영어 앞글자를 모아 만든 용어이며, CRUD 분석은 데이터베이스 테이블에 변화를 주는 트랜잭션의 CRUD 연산에 대해 CRUD 매트릭스를 작성하여 분석하는 것이다.

스키마

  1. 외부 스키마
    사용자 관점의 스키마
    사용자 또는 프로그램의 입장에서의 논리적 구조로 여러개가 존재
  2. 개념 스키마
    사용자와 관리자 관점의 스키마
    전체를 정의한 것
    실제로 어떤 데이터가 저장됐으며, 데이터 간의 관계 정의
    전체 관점으로 한 개만 존재, 접근권한, 보안 및 무결성 정의
  3. 내부 스키마
    저장장치와 설계자 및 개발자 관점의 스키마
    개념 스키마를 물리적 저장장치에 구현에 사용
    물리적 구조 및 내부 레코드의 물리적 순서 표현

데이터베이스 설계 단계

  1. 개념적 설계
    사용자의 요구사항 분석 후, 데이터베이스에 대한 추상적인 형태를 설계
    개념스키마 모델링 / 트렌젝션 모델링 / 독립적인 개념스키마설계 / E-R 다이어그램
  2. 논리적 설계
    논리적 모델을 이용하여 논리적 스키마 생성
    트렌젝션 인터페이스 설계 / 스키마 평가 및 정제 / 목표 DBMS에 맞는 논리스키마 설계 / 논리적구조의 데이터로 모델화 / 정규화
  3. 물리적 설계
    특정 DBMS가 제공하는 물리적 구조에 따라 테이블 저장 구조 설계
    1. 어떤 인덱스를 만들 것인지에 대한 고려
    2. 성능 향상을 위한 개념 스키마와 변경 여부 검토
    3. 레코드의 크기
    4. 파일과 구조 저장을 위한 최소한의 공간
    5. 빈번한 질의와 트랜잭션들의 수행 속도를 높이기 위한 고려사항
    6. 응답 시간
    7. 저장 공간의 효율화
    8. 트랜잭션 처리량

함수 종속의 추론 규칙

  1. 분해 규칙
    X -> YZ이면 X -> Y와 X -> Z이다.
  2. 이행 규칙
    X -> Y이고 Y -> Z이면 X -> Z이다.
  3. 반사 규칙
    X -> Y이면 X -> Y와 X -> X이다.
  4. 결합 규칙
    X -> Y이고 X -> Z이면 X - > YZ이다.

제 1, 2, 3, BCNF 정규화 #
제 4, 5 정규화 #
비정규 릴레이션
↓(도메인이 원자값)
1NF
↓(부분적 함수 종속 제거)
2NF
↓(이행적 함수 종속 제거)
3NF
↓(결정자이면서 후보키가 아닌것 제거)
BCNF
↓(다치 종속)
4NF
↓(조인 종속성 이용)
5NF
도부이결다조(=두부이걸다줘?)식으로 앞부분만 순서대로 암기하시면 쉽습니다.

몰루

  1. DCL - control
    COMMIT
    ROLLBACK
    GRANT
    REVOKE
  2. DDL - definition 정의
    CREATE
    ALTER
    DROP
  3. DML - manipulation 조작
    SELECT
    INSERT
    DELETE
    UPDATE

이상의 종류
삽입 / 갱신 / 삭제

순수관계 연산자
select σ / project π / join ⋈ / division ÷

관계 해석
* ∃: 존재한다(There exist)
* ∈: t가 r에 속함( t ∈ r )
* ∀: 모든 것에 대하여(for all)
* ∪: 합집합

분산데이터베이스의 투명성 조건

  1. 분할 투명성 Division
    하나의 논리적 릴레이션이 여러 단편으로 분할되어 각 단편의 사본이 여러 시스템에 저장되어 있음을 인식할 필요가 없음
  2. 위치 투명성 Location
    데이터베이스의 실제 위치를 알 필요 없이 단지 데이터베이스의 논리적 명칭만으로 액세스할 수 있음
  3. 지역사상 투명성
    지역DBMS와 물리적 DB사이의 Mapping 보장. 각 지역시스템 이름과 무관한 이름 사용 가능
  4. 중복 투명성 Replication
    동일 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용하고, 시스템은 자동으로 여러 자료에 대한 작업을 수행
  5. 장애 투명성 Failure
    장애가 발생해도 트랜잭션을 정확하게 처리하고 데이터 무결성을 보장함
  6. 병행 투명성 Concurrency
    다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않음

이상 현상
갱신 이상(Modification Anomaly): 반복된 데이터 중에 일부를 갱신 할 시 데이터의 불일치가 발생한다.
삽입 이상(Insertion Anomaly): 불필요한 정보를 함께 저장하지 않고서는 어떤 정보를 저장하는 것이 불가능하다.
삭제 이상(Deletion Anomaly): 필요한 정보를 함께 삭제하지 않고서는 어떤 정보를 삭제하는 것이 불가능하다.

데이터베이스의 무결성 규정
개체무결성 = 모든 테이블이 기본키로선택된 컬럼을 가져야함
참조무결성 = 참조관계의 두 테이블의 데이터가 항상 일관된 값을 갖도록 유지해야함
도메인무결성 = 테이블에 존재하는 필드의 무결성을 보장하기 위한것 ex ) 어떤 값의 허용 에 대한 사항을 정의하고 올바른데이터가 입력되엇는가 확인하는것
무결성규칙 = db에서 무결성규칙은 데이터무결성을 지키기 위한 모든 제약사항을 뜻함
!! 비즈니스 규칙은 데이터베이스 유저들마다 각각 다르게 적용됨 !!

로킹
로킹단위↑ : 로크 수↓, 병행성↓, 오버헤드↓, 공유도↓, 제어기법 간단하여 관리 수월
로킹단위↓ : 로크 수↑, 병행성↑, 오버헤드↑, 공유도↑, 제어기법 까다로워 관리 복잡

릴레이션의 특징
- 튜플의 유일성 : 모든 튜플은 서로 다른값을 갖는다
- 튜플의 무순서성 : 하나의 릴레이션에 튜플에 순서는 없다
- 속성의 원자성 : 속성값은 원자값을 갖는다
- 속성의 무순서성 : 각 속성은 릴레이션내에서 유일한 이름을 가지며, 순서는 큰 의미가 없다

captcha