DataBase

무결성과 유지해야하는 이유

  • 무결성은 데이터의 정확성, 일관성, 유효성을 유지하는 것을 말한다. 무결성이 유지되어야 DB에 저장된 값과 실제 값이 일치하는지를 신뢰할 수 있다.

Inner Join과 Outer Join

A    B
-    -
1    3
2    4
3    5
4    6
  • Inner Join : 양쪽 테이블 모두 일치하는 데이터, 즉 교집합을 구한다.

    a | b
    --+--
    3 | 3
    4 | 4
    
  • Outer Join : 기준 테이블의 모든 키값을 기준으로 Join을 한다.

    • Left Outer Join

      a |  b
      --+-----
      1 | null
      2 | null
      3 |    3
      4 |    4
      
    • Right Outer Join

      a    | b
      -----+----
      3    | 3
      4    | 4
      null | 5
      null | 6
      
    • Full Outer Join : 두 테이블의 합집합을 얻게 된다.

       a   |  b
      -----+-----
         1 | null
         2 | null
         3 |    3
         4 |    4
      null |    5
      null |    6
      

DDL과 DML

  • DDL은 Data Definition Language로 DB 테이블을 생성하거나 수정, 삭제하는 역할의 언어를 말한다.
    • CREATE, ALTER, DROP, TRUNCATE
  • DML은 Data Manipulation Langue로 입력된 데이터를 조회하거나 수정하거나 삭제하는 역할의 언어를 말한다.
    • SELECT, INSERT, UPDATE, DELETE

E-R모델

  • 용어정리

    • 엔티티 : 다른 객체와는 구분되며 존재하는 객체

    • 엔티티 집합 : 같은 속성을 가지는 같은 유형의 엔티티들의 집합

    • 애트리뷰트 : 엔티티를 구성하는 설명 속성 각각을 애트리뷰트라 한다.

  • ER-모델

    일 대 일 관계 / 일 대 다 관계 / 다 대 다 관계

이상 현상

데이터베이스의 설계가 잘못되어 데이터베이스에 데이터를 삽입하거나 삭제할때 문제가 생기는 현상

  • 삽입이상 : 파일에 레코드를 추가할 떄, 불필요한 항목의 값이 들어오는 경우. PK인 값에 NULL이 들어오는 경우.
  • 삭제이상 : 키 값을 삭제할 때 의도와는 달리 다른 데이터가 삭제되는 경우
  • 갱신 이상 : 불필요한 중복을 포함하면서 갱신이 되는 경우

이러한 이상 현상을 제거하는 알고리즘이 정규화이론이다.

함수 종속

애트리뷰트 X의 값 각각에 대해 항상 애트리뷰트 Y의 값이 오직 하나만 연관되어 있을때 Y는 X에 함수종속이다. 이때 X는 결정자, Y는 종속자라고 한다.

위와 같은 함수 종속도가 있을 때

  • 학년은 학번만 가지고서도 정할 수 있다. 따라서 부분종속
  • 성적은 학번과 과목코드 둘을 합쳐야 정해질 수 있다. 따라서 완전종속

정규형

  1. 제 1정규형

    • 어떤 릴레이션 R에 속한 모든 도메인이 원자 값으로만 이루어져 있다면 제 1정규형에 속한다.

    • 관계형 데이터베이스는 무조건 제 1정규형은 만족해야 한다.

  2. 제 2정규형

    • 어떤 릴레이션 R이 제 1정규형이고 주 키에 속하지 않은 애트리뷰트가 모두 주 키에 완전 함수 종속이면, 제 2정규형에 속한다.

  3. 제 3정규형

    • 어떤 릴레이션 R이 제 2정규형이고 주 키에 속하지 않은 모든 애트리뷰트들이 주 키에 이행적 함수 종속이 아닐 때 제 3정규형에 속한다.

  4. 보이스/코드 정규형

    • 어떤 릴레이션 R이 제 3정규형을 만족하고 릴레이션 R의 모든 결정자가 후보키이면 릴레이션 R은 보이스/코드 정규형에 속한다.
  5. 제 4정규형

    • 어떤 릴레이션 R이 BCNF를 만족하고, 다중값 종속이 없거나 당연한 다중값 종속만 가지고 있으면 제 4정규형에 속한다.
  6. 제 5정규형

    • 어떤 릴레이션 R이 제 4정규형을 만족하고, 릴레이션 R에 존재하는 모든 죠인 종속이 릴레이션 R의 후보 키를 통해서만 성립한다면 제 5정규형에 속한다.

관계형 데이터베이스와 비 관계형 데이터베이스의 차이점

관계형 데이터베이스는 테이블로 이루어져 있으며 테이블은 키와 값의 관계를 나타낸다. 이처럼 데이터의 종속성을 관계로 표현하는 것이 관계형 데이터베이스의 특징이다.

비 관계형 데이터베이스는 테이블형식의 스키마를 사용하지 않는다. 저장되는 데이터 형식의 특정 요구사항에 맞게 최적화된 저장소 모델을 사용하는 것이 특징이다. 흔히 NoSQL이라고 하며 데이터를 저장할때, SQL문이 아닌 다른 언어나 구문을 사용한다.

RDBMS / NoSQL

NoSQL은 JOIN처리가 없기에 노드 확장이 용이하다. 또한 가변적인 데이터구조로 데이터를 저장할 수 있어 훨씬 더 유연성이 높다. 하지만 복잡한 쿼리가 불가능하고 일관성을 항상 유지할 수 없다.

DB ERD 관계선

  • 관계선의 종류

    • 실선(Identifying) : 식별관계
      • 부모 테이블의 PK가 자식 테이블의 FK/PK가 되는 경우
      • 부모가 있어야 자식이 생기는 경우
    • 점선(Non-Identifying) : 비식별관계
      • 부모테이블의 PK가 자식테이블의 일반속성이 되는 경우
      • 부모가 없어도 자식이 생기는 경우
  • 기호의 종류(도형 혹은 식별자)

    • |: 1개 / 실선은(dash) ‘1’을 나타낸다.
    • ∈ : 여러개 / 까마귀 발(crow’s foot or Many)은 ‘다수’ 혹은 ‘그 이상’을 나타낸다.
    • ○ : 0개 / 고리(ring or Optional)은 ‘0’을 나타낸다.
  • 위와 같은 기호들을 서로 조합하여 사용될 수 있으며, 다음과 같은 조합이 가능하다.

    • Type1(실선과 실선): 정확히 1 (하나의 A는 하나의 B로 이어져 있다.)
    • Type2(까마귀발): 여러개 (하나의 A는 여러개의 B로 구성되어 있다.)
    • Type3(실선과 까마귀발): 1개 이상 (하나의 A는 하나 이상의 B로 구성되어 있다.)
    • Type4(고리와 실선): 0 혹은 1 (하나의 A는 하나 이하의 B로 구성되어 있다.)
    • Type5(고리와 까마귀발): 0개 이상 (하나의 A는 0또는 하나 이상의 B로 구성되 있다.)

태그:

카테고리:

업데이트: