ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 데이터베이스 개론 정리 - 2 (데이터베이스 시스템, 관계 데이터 모델)
    Computer Science/Database Theory 2017. 6. 29. 01:07

    2일차


    1. 데이터베이스 모델링 요약

    1.1 데이터 베이스 생명 주기

    데이터베이스 생성과 운영에 관련된 ‘요구사항 수집 및 분석 - 설계 - 구현 - 운영 - 감시 및 개선’ 사이클을 말한다.

    1.2 모델링의 종류

    개념적 모델링 (ER다이어그램 만드는 과정) -> 논리적 모델링 (DBMS에 맞게 매핑하는 과정) -> 물리적 모델링 (실제 구현)

    1.3 개체와 개체 타입

    • 개체 : 독립적인 실체나 사물

    • 개체 타입 : 강한 개체타입은 독자적 존재가 가능한 개체이고 약한 개체타입은 상위 개체타입이 필요한 개체를 말한다.

    1.4 속성

    • 단순속성, 복합속성 : 분해의 가능 여부가 다르다.

    • 단일값 속성과 다중값 속성 : 특정 개체 타입에 대해 하나의 속성을 가지면 단일,

    여러 개의 속성을 가지면 다중값 속성이다.

    • 저장 속성과 유도 속성 : 다른 속성으로부터 영향을 받아서 유도가 되는지에 대한 여부로 판단.

    1.5 관계와 타입

    개체 사이의 연관성을 나타내는 것으로, 일대일, 일대다, 다대다 등으로 표현함.

    1.6 식별자

    개별 개체들을 구분할 수 있는 속성을 말한다. 키는 강한 개체간의 구별, 식별자는 약한 개체간의 구별을 위한 것이다.

    1.7 사상

    주로 ER 다이어그램을 만든 뒤, 논리적 모델링으로 변환하는 매핑 과정을 말한다.


    2. 데이터베이스 시스템

    2.1 데이터베이스의 특징

    • 실시간 접근성 : 데이터베이스는 실시간으로 서비스되어야 하고, 그렇게 되고 있다. 수 초 내에 결과를 서비스한다.

    • 계속적인 변화 : 어느 한 순간의 상태를 데이터베이스가 나타내지만, 삽입, 삭제, 수정 등의 작업으로 시간에 따라 바뀌게 된다.

    • 동시 공유 : 여러 사용자에게 동시에 공유되며, 프로그램을 통해 공유된다.

    • 내용에 의한 참조 : 데이터는 물리적 위치가 아닌 데이터 값에 따라 참조되어 데이터베이스에 저장된 곳을 알려준다.

    데이터베이스는 데이터 값의 조건을 제시받으면 이를 검색해준다.

    2.2 좋은 데이터베이스 시스템

    • DBMS를 이용하여 효율적으로 데이터를 통합 관리하는 시스템

    • 데이터의 일관성을 유지하고, 복구가 가능하며, 동시제어가 가능하다.

    • 데이터의 중복을 줄이고 데이터를 표준화하며 무결성을 유지함.

    • 파일과 데이터베이스의 차이점 : 파일과 달리 데이터베이스는 중복을 최소화 하고 필요한 부분만 찾아서 사용할 수 있다. 즉, 중복성, 일관성, 독립성 등에서 장점을 보인다.


    3. 데이터베이스 구조

    3.1 외부 스키마

    장고 앱이랑 비슷한 개념. 특정 앱에서는 members, campus FK만 필요한 것 같은 경우. 사용자가 보는 데이터 논리, 구조.

    외부 스키마는 보는 사용자나 관점에 따라 개념 스키마의 일부분으로 분리되어 보일 수 있음.

    3.2 개념 스키마

    한 곳에 모든 개념을 표현한 데이터 논리, 구조

    3.3 내부 스키마

    데이터베이스가 보는 실제적으로 구현된 데이터 논리, 구조.

    • 개념 스키마가 변경되어도 외부 스키마에는 영향을 미치면 안되고,

    • 내부 스키마가 변경되어도 개념 스키마에는 영향을 미치면 안된다.


    4. 데이터베이스 개념 요약

    데이터베이스란 논리적으로 연관된 데이터를 모아 구조적으로 통합해 놓은 것.
    
    데이터베이스 시스템은 데이터베이스, 데이터 모델, DBMS로 이루어져 있다.
    
    웹 브라우저 데이터베이스 시스템, 분산 데이터베이스 시스템 등으로도 확장되었다.
    
    데이터베이스는 중복을 최소(없는건 아님)화 함으로써 독립성, 일관성을 가질 수 있다.

    5. 관계 데이터 모델

    5.1 릴레이션 스키마와 인스턴스

    • 릴레이션에서 스키마는 Attribute의 의미.

    • tuple == Instance 로, 스키마에 정의된 데이터 row임.

    • 릴레이션 스키마의 순서는 상관이 없다.

    • 투플의 순서는 상관없고, 중복은 허용하지 않는다.

    • 또한 속성값은 단일 값이어야 함. (하나의 어트리뷰트에 하나의 값만 들어가야 한다는 의미)

    5.2 무결성 제약조건(키) : 데이터의 일관성과 정확성을 지키는 데에 중요한 제약조건.

    • 5.2.1 슈퍼키 : 투플을 유일하게 식별할 수 있는 하나의 속성 혹은 집합.

    • 5.2.2 후보키 : 투플을 유일하게 식별 가능한 속성의 최소(중요) 집합. -> 관계 표현의 심플함을 위해 최소집합이 필요.

    • 5.2.3 기본키 : 여러 후보키중 하나를 대표로 삼는 키 이다. 후보키가 하나라면 기본키가 그것이고, 여러개라면 대표하는 한가지를 선정하게 된다.

    • 5.2.4 대리키 : 기본키가 복잡하거나 마땅한 기본키가 없을 때, 인공적인 기본키를 만들어 사용하는 키.

    • 5.2.5 대체키 : 기본키로 선정되지 않은 후보키.

    • 5.2.6 외래키 : 다른 릴레이션의 기본키를 참조하는 속성. 자기 자신의 기본키를 참조할 수도 있음.

    5.3 도메인 무결성 제약조건

    투플들이 각 속성의 도메인에 지정된 값만을 가져야 한다는 것.

    (ex : attribute가 (남/녀) 인데 (남자) 이렇게 들어가거나, 타입을 다르게 넣으면 제약조건을 어긴 것.)


    6. 관계 대수

    6.1 관계 대수의 의미

    릴레이션에서 원하는 결과를 얻기 위해 수학의 대수와 같은 연산을 이용하여 질의하는 방법을 기술하는 언어. 절차적 언어로, 관계해석을 기반으로 하며 수학적 개념에 기초한다.

    6.2 Selection

    릴레이션을 추출하기 위한 연산 과정. 조건을 명시하면 연산을 통하여 조건에 맞는 투플을 반환함.

    6.3 Projection

    Selection이 투플을 추출했다면, Projection은 속성을 기준으로 릴레이션을 추출하는 것.

    6.4 집합

    릴레이션을 합집합으로 Concatenation 하거나, 교집합, 차집합 등으로 집합의 개념을 사용하여 표현하는 것.
    
    합집합을 할 때 중복되는 부분은 제거함.

    6.5 카티전 프로덕션

    Cartesian production : 두 릴레이션을 연결시켜 하나의 결과 릴레이션으로 합칠 때 사용함.
    
    결과 릴레이션은 첫 번째 릴레이션의 투플을 두번째 릴레이션의 모든 투플과 순서대로 곱해진 형식.

    [카티전 프로덕션 예제]

    6.6 조인

    • 두 릴레이션의 공통 속성을 기준으로, 속성값이 같은 투플을 결합하는 연산.

    • 카티전 프로덕트 연산 후, 셀렉션 연산을 한 것으로 정의할 수 있다.

    • 이때, 셀렉션 연산의 조건은 속성 값이 같은지 비교하는 것.

    1. 세타조인 : 세타조인은 조인에 참여하는 두 릴레이션의 속성 값을 비교하여,
    
    특정 조건을 만족하는 투플만을 반환한다.
    
    2. 동등조인 : 세타조인 중, '=' 연산의 조건을 만족시키는 투플을 반환한다.
    
    3. 자연조인 : 자연조인은 조인에 참여한 속성(동등 조인의 속성)이 두 번 나오지 않도록, 중복되는 속성을 제거한 결과를 반환한다.
    
    4. 외부조인 : 외부조인은 자연조인의 확장된 형태로, 자연조인 시 실패한 투플들을 NULL을 채워 반환한다.
    
    5. 세미조인 : 세미조인은 자연조인을 한 후, 두 릴레이션 중 한쪽 릴레이션의 결과만 반환한다.

    6.7 디비전

    • 릴레이션의 속성 값의 집합으로 연산을 수행함.

    댓글

분노의 분석실 Y.LAB