티스토리 뷰

728x90



정보처리기사 -필기

1과목 - 데이터베이스

로킹

로킹(Locking)이란?
하나의 트랜잭션이 데이터를 액세스 하는 동안 다른 트랜잭션이 그 데이터 항목을 액세스할 수 없도록 하는 방법

  • 로킹단위 : 로킹의 대상이되는 객체의 크기
    (데이터 베이스, 파일, 레코드등)
  • 로킹단위가 커지면, 로크수가 적어 관리하기 쉽지만 데이터베이스의 공유도(병행성)이 감소
  • 로킹단위가 작으면, 로크수가 많아 오버헤드가 커지지만 병행성 수준이 높아진다.

이진트리의 운행법

tree

  • Preorder(전위)운행 : Root -> Left -> Right
    A -> B -> C
  • Inorder(중위)운행 : Left -> Root -> Right
    B -> A -> C
  • Postorder(후위)운행 : Left -> Right -> Root
    B -> C -> A

데이터 베이스의 정의

  • 통합된 데이터(Integrated Data) : 자료의 중복을 배제한 데이터의 모임
  • 저장된 데이터(Stored Data) : 컴퓨터가 접근할 수 있는 저장매체에 저장된 자료
  • 운영 데이터(Operational Data) : 조직의 업무를 수행하는데 있어서 존재 가치가 확실하고 없어서는 안될 반드시 필요한 자료
  • 공용 데이터(Shared Data) : 여러 응용 시스템들이 공통으로 소유하고 유지하려는 자료

트랜잭션의 특성

  • Atomicity(원자성)
    • 트랜잭션의 연산은 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야함.
    • 트랜잭션 내의 모든 명령은 반드시 완벽히 수행되야 하며, 모두가 완벽히 수행되지않고 어느하나라도 에러가 발생하면 트랜잭션 전부가 취소되어야 함.
  • Consistency(일관성)
    • 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환함.
    • 시스템이 가지고 있는 고정요소는 트랜잭션 수행전과 트랜잭션 수행 완료 후의 상태가 같아야 함.
  • Isonlation(독립성, 격리성)
    • 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행중에 다른 트랜잭션의 연산이 끼어들 수 없음.
    • 수행중인 트랜잭션은 완전히 완료 될 때 까지는 다른 트랜잭션의 결과를 참조할 수 없음.
  • Durability(영속성, 지속성)
    • 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 함.

데이터베이스의 특징

  • 실시간 접근성(Real Tiem Accessibility) : 수시적이고 비정형적인 질의(조회)에 대하여 실시간 처리에 의한 응답이 가능함.
  • 계속적인 변화(Continuous Evolution) : 새로운 데이터의 삽입, 삭제, 갱신으로 항상 최신의 데이터를 유지함.
  • 동시공유(동시공용)(Concurrent Sharing) : 여러 사용자가 동시에 자기가 원하는 데이터를 이용할 수 있음.
  • 내용에 의한 참조(Content Reference) : 데이터베이스에 있는 데이터를 참조할 때 데이터 주소나 위치에 의해서가 아니라 사용자가 요구하는 데이터 내용으로 데이터를 찾음.(값에의한 참조)

함수적 종속 관계

어떤 릴레이션 R에서 X와 Y를 각각 R의 애트리뷰트 집합의 부분집합이라고 할 경우, X의 값 각각에 대한 시간에 항상 애트리뷰트 Y의값이 오직하나면 연관되어 있을때, Y는 X에 함수종속적이라고 하며, 'X->Y'와 같이 표기한다.

스키마의 3계층

외부 스키마(ExterSchema) = 서브 스키마 = 사용자 뷰(View)

  • 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한다.
  • 전체 데이터베이스의 한 논리적인 부분으로 볼 수 있으므로 서브 스키마라고도 한다.
  • 하나의 데이터 베이스 시스템에는 여러 개의 외부 스키마가 존재 할 수 있으며, 하나의 외부 스키마를 여러 개의 응용프로그램 사용자가 공용할 수 있다.
  • 같은 데이터베이스에 대해서도 서로 다른 관점을 정의 할 수 있도록 허용한다.
  • 일반 사용자는 질의어(SQL)를 사용하여 DB를 사용한다.

개념 스키마(Conceptual Schema) = 전체적인 뷰(View)

  • 데이터베이스의 전체적인 논리적 구조로서, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 통합 한 조직 전체의 데이터베이스로 하나만 존재 한다.
  • 개념 스키마는 개체 간의 관계와 제약조건을 나타내고 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의한다.
  • 단수히 스키마라고 하면, 개념 스키마를 의미한다.
  • 기관이나 조직체의 관점에서 데이터베이스르 정의한것이다.
  • 데이터베이스 관리자에 의해서 구성된다.

내부 스키마(Internal Schema)

  • 물리적 저장장치의 입장에서 본 데이터베이스 구조로, 물리적인 저장장치와 밀접한 계층이다.
  • 실제로 데이터베이스에 저장될 레코드의 물리적인 구조를 정의하고, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타낸다.
  • 시스템 프로그래머나, 시스템 설계자가 보는 관점의 스키마이다.
  • 데이터베이스의 물리적 구조를 정의한다.
  • 데이터의 실제 저장 방법을 기술한다.
  • 물리적인 저장장치와 밀접한 계층이다.

시스템 카탈로그

  • 시스템 그 자체에 관련이 있는 스키마 및 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스이다.
  • 데이터베이스에 포함되는 모든 데이터 객체에 대한 정의나 명세에 관한 정보를 유지관리하는 시스템 테이블이다.
  • 데이터 정의어의 결과로 구성되는 기본 테이블, 뷰, 인덱스, 패키지, 접근권한 등의 데이터 베이스 구조 및 통계정보를 저장한다.
  • 카탈로그들이 생성되면 자료사전에 저장되기 때문에 좁은 의미로는 카탈로그를 자료 사전이라고도 한다.
  • 카탈로그에 저장된 정보를 메타 데이터라고 한다.

특징

  • 카탈로그 자체도 시스템 테이블로 구성되어 있어 일반 사용자도 SQL을 이용하여 내용을 검색해 볼 수 있다.
  • INSERT, DELETE, UPDATE문으로 갱신하는 것은 허용하지 않는다.
  • DBMS가 스스로 생성하고 유지한다.
  • 카탈로그는 사용자가 SQL문을 실행시켜 기본 테이블, 뷰, 인덱스 등에 변화를 주면 시스템이 자동으로 갱신된다.


자료구조의 분류

  • 선형구조 : 선형 리스트(배열), 연결 리스트, 스택, 큐, 데크
  • 비선형구조 : 트리, 그래프

릴레이션의 특징

  • 한 릴레이션에 포함된 튜플들은 모두 상이하다.
  • 한 릴레이션에 포함된 튜플 사이에는 순서가 없다.
  • 튜플들의 삽입, 삭제 등의 작업으로 인해 릴레이션은 시간에 따라 변한다.
  • 릴레이션 스키마를 구성하는 속성들 간의 순서는 중요하지 않다.
  • 속성의 유일한 식별을 위해 속성의 명칭은 유일해야 하지마, 속성을 구성하는 값은 동일한 값이 있을 수 있다.
  • 릴레이션을 구성하는 튜플은 유일하게 식별하기 위해 속성들의 부분집합을 키(Key)로 설정한다.
  • 속성은 더이상 쪼갤 수 없는 원자값만을 저장한다.
  • 릴레이션에서 degree는 속성의 술를 의미한다.

정렬

  • 버블정렬

    • 버블정렬
  • 선택정렬

    • n개의 레코드 중에서 최소값을 찾아 첫번째 레코드 위치에 놓고, 나머지 n-1개 중에서 다시 최소값을 찾아 두번째 레코드 위치에 놓는 방식을 반복하여 정렬하는 방식이다.
  • 삽입정렬

    • 삽입정렬

수와 관계해석

  • 관계대수 : 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적인 특성을 가지는것
  • 관계해석은 원래 수학의 프레디킷 해석에기반을 두고 있다.
  • 관계대수는 릴레이션을 처리하기 위한 연산의 집합으로 피연산자가 릴레이션이고 결과도 릴레이션이다.
  • 관계해석과 관계대수는 관계 데이터베이스를 처리하는 기능과 능력 면에서 동등하다.

분산데이터베이스

  • 장점
    • 분산제어가 용이하다.
    • 지역자치성이 높다.
    • 효용성과 융통성이 높다.
    • 점진적 시스템 확장이 용이하다.
  • 단점
    • 데이터베이스 설계가 어렵다.
    • 개발비용이 증가한다.

트리(Tree)와 차수(Degree)

  • 차수(Degree) : 가장 차수가 많은 노드의 차수
  • 터미널 노드 : 자식이 하나도 없는 노드

E-R 다이어그램

  • 표현
    • 마름모 : 관계타입
    • 속성 : 타원
    • 개체 : 사각형
  • 특정 DBMS를 고려한 것은 아니다.
  • 1976년 Peter Chen이 제안하였다.
  • 개체타입과 관계타입을 기본 개념으로 현실 세계를 개념적으로 표현하는 방식이다.

데이터 모델의 구성요소

  • 데이터 모델의 구성요소 3가지
    • 구조(Structure) : 논리적으로 표현된 개체 타입들 간의 관계로서 데이터 구조 및 정적성질을 표현함.
    • 연산(Operation) : 데이터베이스에 저장된 실제 데이터를 처리하는 방법을 표시하는 것으로 데이터베이스를 조작하는 기본도구이다.
    • 제약조건(Constaint) : 데이터베이스에 저당될 수 있는 실제 데이터의 논리적인 제약조건을 표시함.

순차파일

  • 파일 탐색 시, 모든파일을 비교하면서 검색해야 하므로 검색효율이 낮아 즉각적인 응답을 요구하는 대화형 처리에는 적합하지 않습니다.
  • 레코드가 키 순서대로 편성되어 취급이 용이하다.
  • 연속적인 레코드의 저장에 의해 레코드 사이에 빈 공간이 존재하지 않으므로 기억장치의 효율적인 이용이 가능하다.
  • 필요한 레코드를 삽입, 삭제, 수정하는 경우 파일을 재구성해야 하므로 파일 전체를 복사해야한다.

색인 순차 파일

  • 색인 순차 파일은 인덱스를 저장하기 위한 공간과 오버플로우 처리를 위한 별도의 공간이 필요하다.
  • 순차 처리와 직접 처리가 모두 가능하다.
  • 레코드를 추가 및 삽입하는 경우, 파일 전체를 복사할 필요가 없다.
  • 색인 구역은 트랙 색인 구역, 실린더 색인 구역, 마스터 색인 구역으로 구성된다.

구성

  • 기본 구역(Prime Area) : 실제 레코드들을 기록하는 부분, 각 레코드를 키 값 순으로 저장
  • 색인 구역(Index Area) : 기본 구역에 있는 레코드들의 위치를 찾아가는 색인이 기록되는 부분으로, 트랙 색인 구역, 실린더 색인 구역, 마스터 색인 구역으로 구분할 수 있음.
  • 오버플로 구역(Overflow Area) : 기본 구역에 빈 공간이 없어서 새로운 레코드의 삽입이 불가능할 때를 대비하여 예비적으로 확보해 둔 부분

정규화

함수적 종속성등의 종속성 이론을 이요하여, 잘못 솔계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어가는 과정

  • 정규화의 목적
    • 데이터 구조의 안정성을 최대화한다.
    • 어떠한 릴레이션이라도 데이터베이스 내에서 표현 가능하게 만든다.
    • 효과적인 검색 알고리즘을 생성할 수 있다.
    • 중복을 배제하여 삽입, 삭제, 갱신 이상의 발생을 방지한다.
    • 데이터 삽입 시 릴레이션을 재구성할 필요성을 줄인다.
  • 정규화과정
    1. 비정규릴레이션
    2. 1NF -> 도메인이 원자값
    3. 2NF -> 부분적 함수 종속 제거
    4. 3NF -> 이행적 함수 종속 제거
    5. BCNF(강한 제 3정규형) -> 결정자이면서 후보키가 아닌 것 제거
    6. 4NF -> 다치종속
    7. 5NF -> 조인 종속성 이용

폴리쉬

Polish

순수 관계 연산자

  • Select

    • 릴레이션에 존재하는 튜플 중에서 선택 조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션을 만듦
    • 릴레이션의 행에 해당하는 튜플을 구하는 것이므로 수평연산 이라고도 함.
    • 연산자의 기호는 그리스문자 마(𝝈)를 사용함.
  • Project

    • 주어진 릴레이션에서 속성 List에 제시된 Attribute만을 추출하는 연산
    • 릴레이이션의 열에 해당하는 Attribute를 추출하는 것이므로 수직 연산자라고도 함.
    • 연산자의 기호는 그리스 문자 파이를 사용함.
  • Join

    • 공통 속성을 중심으로 2개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만드는 연산
    • 연산자기호는 ⧓ 사용함.
  • Division

    • X ⊃ Y인 2개의 릴레이션 R(X)와 S(Y)가 있을 때, R의 속성이 S의 속성값을 모두 가진 튜플에서 S가 가진 속성을 제외한 속성만을 구하는 연산

    예제


관계 데이터베이스의 Relation 구조

  • 튜플 : 행
  • Degree : 속성 수
  • Cardinality : 튜플의 수

망(그래프, 네트워크)형 데이터 모델

  • CODASYL 이 제안한 것으로 CODASYL DBTG 모델 이라고도 한다.
  • 상위와 하위 레코드 사이에서 다대다(N : M) 대응관계를 만족하는 구조이다.
  • 상위의 레코드를 Owner, 하위의 레코드를 Member라하여 Owner-Member 관계라고도한다.
  • 레코드 타입 간의 관계는 1:1, 1:N, N:M이 될 수 있다.
  • 대표적인 DBMS : DBTG, EDBS, TOTAL 등

해싱(Hashing)

  • 버킷(Bucket) : 하나의 주소를 갖는 파일의 한 구역을 의미하며, 버킷의 크기는 같은 주소에 포함될 수있는 레코드 수를 의미함.
  • 슬롯(Slot) : 1개의 레코드를 저장할 수 있는 공간으로 n개의 슬롯이 모여 하나의 버킷을 형성함.
  • Collision(충돌현상) : 서로 다른 2개 이상의 레코드가 같은 주소를 갖는 현상
  • Synonym : 같은 Home Address를 갖는 레코드들의 집합
  • Overflow
    • 계산된 Home Address의 Bucket 내에 저장할 공간이 없는 상태
    • Bucket을 구성하는 Slot이 여러개 일때는 Collision은 발생해도 Overflow는 발생하지 않을 수 있음.

DBMS의 필수기능

  • 정의(조직)(Definition)
    • 데이터의 형과 구조, 데이터가 DB에 저장될 때의 제약조건 등을 명시하는 기능이다.
    • 데이터와 데이터의 관계를 명확하게 명세할 수 있어야 하며, 원하는 데이터 연산은 무엇이든 명세할 수 있어야한다.
  • 조작(Manipulation)
    • 데이터 검색, 갱신, 삽입, 삭제 등을 체계적으로 처리하기 위해 데이터 접근 수단등을 정하는 기능이다.
    • 사용자와 데이터베이스 사이의 인터페이스 수단을 제공한다.
  • 제어(Control)
    • 데이터베이스를 접근하는 갱신, 삽입, 삭제 작업이 정확하게수행되어 데이터의 무결성을 유지되도록 제어 해야한다.
    • 정당한 사용자가 허가된 데이터만 접근할 수 있도록 보안을 유지하고 권한을 검사할 수 있어야 한다.
    • 여러 사용자가 데이터베이스를 동시에 접근하여 데이터를 처리할 때, 처리결과가 항상 정확성을 유지하도록 병행 제어를 할 수 있도록 한다.


728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday