본문 바로가기
TIL/CS

데이터베이스

by J1-H00N 2023. 10. 24.

데이터베이스는 일정한 규칙, 혹은 규약을 통해 구조화되어 저장되는 데이터의 모음이다. 데이터베이스를 제어, 관리하는 통합 시스템을 DBMS라고 하며, 데이터베이스 안에 있는 데이터들은 특정 DBMS마다 정의된 쿼리 언어를 통해 삽입, 삭제, 수정, 조회 등을 수행할 수 있다. 또한, 데이터베이스는 실시간 접근과 동시 공유가 가능하다.

 

  • 엔터티
    • 사람, 장소, 물건, 사건, 개념 등 여러 개의 속성을 지닌 명사를 의미한다.
    • 강한 엔터티와 약한 엔터티
      • 예를 들어 A가 혼자서는 존재하지 못하고 B의 존재 여부에 따라 종속적이라면 A는 약한 엔터티이고 B는 강한 엔터티가 된다.
  • 릴레이션
    • 데이너베이스에서 정보를 구분하여 저장하는 기본 단위이다.
    • 엔터티에 관한 데이터를 데이터베이스는 릴레이션 하나에 담아서 관리한다.
    • 관계형 데이터베이스에서는 테이블이라고 하며, NoSQL 데이터베이스에서는 컬렉션 이라고 한다.
  • 속성
    • 릴레이션에서 관리하는 구체적이며 고유한 이름을 갖는 정보다.
    • 예를 들어 차라는 엔터티의 속성으로는 차 넘버, 바퀴 수, 차 색깔, 차종 등이 있다.
    • 이 중 서비스의 요구 사항을 기반으로 관리해야 할 필요가 있는 속성들만 엔터티의 속성이 된다.
  • 도메인
    • 릴레이션에 포함된 각각의 속성들이 가질 수 있는 값의 집합을 말한다.
  • 필드와 레코드
    • 데이터베이스에서 필드와 레코드로 구성된 테이블을 만든다.
    • 예를 들어 회원이란 엔터티는 name, ID, address, phonenumber 등의 필드를 가지고, 이 테이블에 쌓이는 행 단위의 데이터를 레코드라고 한다. 레코드는 튜플이라고 하기도 한다.
    • 필드 타입
      • 필드는 타입을 갖는다. 타입들은 DBMS마다 다르며 대표적인 몇몇 타입만 MySQL을 예시로 보자.
        • 숫자 타입 - TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT 등
        • 날짜 타입 - DATE, DATETIME, TIMESTAMP 등
        • 문자 타입 - CHAR, VARCHAR, TEXT, BLOB, ENUM, SET 등
  • 관계
    • 데이터베이스에는 여러 개의 테이블이 있고 이러한 테이블은 서로의 관계가 정의되어 있다. 이 관계를 관계 화살표로 나타낸다.
      • 1:1 관계 - 테이블을 두 개의 테이블로 나눠 테이블의 구조를 더 이해하기 쉽게 만들어 준다.
      • 1:N 관계 - 한 개체가 다른 많은 개체를 포함하는 관계
      • N:M 관계 - 테이블 두 개를 직접적으로 연결해서 구축하지는 않고 1:N, 1:M이라는 관계를 갖는 테이블 두 개로 나눠서 설정
     

관계 화살표 예시

    • 테이블 간의 관계를 조금 더 명확하게 하고 테이블 자체의 인덱스를 위해 설정된 장치로 기본키, 외래키, 후보키, 슈퍼키, 대체키가 있다.
    • 슈퍼키 > 후보키 > 기본키, 대체키 와 같은 관계를 가진다.
    • 슈퍼키는 유일성이 있고 그 안에 포함된 후보키는 최소성까지 갖춘 키이다.
    • 후보키 중에서 기본키로 선택되지 못한 키는 대체키가 된다.
    • 유일성 - 중복되는 값이 없음, 최소성 - 필드를 조합하지 않고 최소 필드만 사용해서 키를 형성할 수 있음
      • 기본키
        • 줄여서 PK 또는 프라이머리키라고 부르며, 유일성과 최소성을 만족하는 키이다.
        • 테이블의 데이터 중 고유하게 존재하는 속성이며 기본키에 해당하는 데이터는 중복되어서는 안된다.
        • 기본키는 자연키 또는 인조키 중에 골라 설정한다.
          • 자연키 - 중복된 값들을 제외하며 중복되지 않는 것을 자연스레 뽑다가 나오는 키를 말하며 언젠가는 변하는 속성을 가진다.
          • 인조키 - 인위적으로 만든 고유 식별자로 사용되는 키를 말하며 변하지 않는다.(보통 기본키는 인조키로 설정)
      • 외래키
        • 줄여서 FK라고 하며, 다른 테이블의 기본키를 그대로 참조하는 값으로 개체와의 관계를 식별하는데 사용한다.
        • 외래키는 중복되어도 괜찮다.
      • 후보키
        • 기본키가 될 수 있는 후보들이며 유일성과 최소성을 동시에 만족하는 키다.
      • 대체키
        • 후보키가 두 개 이상일 경우 어느 하나를 기본키로 지정하고 남은 후보키들을 말한다.
      • 슈퍼키
        • 각 레코드를 유일하게 식별할 수 있는 유일성을 갖춘 키이다.

'TIL > CS' 카테고리의 다른 글

트랜잭션과 무결성  (0) 2023.10.25
ERD와 정규화 과정  (0) 2023.10.24
CPU 스케줄링 알고리즘  (0) 2023.10.24
프로세스와 쓰레드  (0) 2023.10.23
메모리  (0) 2023.10.20