본문 바로가기
Boaz/Computer Science

[CS 전공지식 #12] 챕터4-1. 데이터베이스의 기본

by 남디윤 2025. 2. 24.

 

 

목차

4.1 데이터베이스의 기본

4.1.1 엔티티

4.1.2 릴레이션

4.1.3 속성

4.1.4 도메인

4.1.5 필드와 레코드

4.1.6 관계

4.1.7 키

 

챕터4. 데이터베이스

 

4.1 데이터베이스의 기본

Image

  • 데이터베이스 DB, DataBase
    • 일정한 규칙, 혹은 규약을 통해 구조화 되어 저장되는 데이터의 모음
    • 실시간 접근과 동시 공유 가능
  • DBMS DataBase Management System
    • 해당 데이터베이스를 제어, 관리하는 통합 시스템
    • 특정 DBMS마다 정의된 쿼리 언어를 통해 삽입, 삭제, 수정, 조회 등 수행 가능
    • 데이터베이스 위에 DBMS, 그 위에 응용 프로그램
    • 예) MySQL 이라는 DBMS, 그 위에 응용 프로그램에 속하는 Node.js 나 php 프로그램

 

4.1.1 엔티티

  • 엔티티 entity: 사람, 장소, 물건, 사건, 개념 등 여러 개의 속성을 지닌 명사
    • 예) 회원(엔티티) - 이름, 아이디, 주소, 전화번호 등의 속성
  • 약한 엔티티, 강한 엔티티
    • 예) A가 혼자 존재 X, B의 존재 여부에 따라 종속적
    • → A: 약한 엔티티
    • → B: 강한 엔티티

 

4.1.2 릴레이션

  • 릴레이션 relation
    • 데이터베이스에서 정보를 구분하여 저장하는 기본 단위
    • 엔티티에 관한 데이터를 릴레이션에 담아서 관리
    • 관계형 데이터베이스에서 “테이블” 이라고 함
    • NoSQL 데이터베이스 “컬렉션” 이라고 함
  • 테이블과 컬렉션
    • 데이터베이스의 종류: 관계형 데이터 베이스, NoSQL 데이터베이스
    • 관계형 데이터 베이스 MySQL
      • 구조: 레코드 - 테이블 - 데이터베이스
    • NoSQL 데이터베이스 MongoDB
      • 구조: 도큐먼트-컬렉션-데이터베이스

 

4.1.3 속성

  • 속성 attribute
    • 릴레이션에서 관리하는 구체적이며 고유한 이름을 갖는 정보
    • 서비스의 요구 사항을 기반으로 관리해야 할 필요가 있는 속성들만 엔티티의 속성이 됨

 

4.1.4 도메인

  • 도메인 domain
    • 릴레이션에 포함된 각각의 속성들이 가질 수 있는 값의 집합
    • 예) 성별(속성) - {남, 여}(집합=도메인)

 

4.1.5 필드와 레코드

  • 데이터베이스에서 필드와 레코드로 구성된 테이블
    • 회원이라는 entity
    • memger라는 테이블
    • 이름, 아이디 등의 속성
    • name, ID, address등의 필드
  • 레코드(=튜플): 테이블에 쌓이는 행 row 단위의 데이터

Image

  • 필드 타입
    • 숫자 타입, 날짜 타입, 문자 타입
      • 문자 타입
      • CHAR: 고정 길이 문자열
      • VARCHAR: 가변 길이 문자열

 

4.1.6 관계

  • 여러 개의 테이블, 테이블은 서로 관계가 정의되어 있음
  • 관계를 관계 화살표로 나타냄
  • 1:1 관계, 1:N 관계, N:M 관계

Image

 

4.1.7 키

  • 테이블 간의 관계를 좀 더 명확하게
  • 테이블 자체의 인덱스를 위해 설치된 장치
  • 기본키, 외래키, 후보키, 슈퍼키, 대체키
    • 슈퍼키: 유일성
    • 후보키: 슈퍼키 안에 포함, 최소성 갖춤
    • 대체키: 후보키 중에서 기본키로 선택되지 못한 키
    • 유일성: 중복되는 값 x
    • 최소성: 필드를 조합하지 않고 최소 필드만 써서 키를 형성
  • 기본키 Primary Key, PK
    • 유일성과 최소성을 만족하는 키
    • 테이블의 데이터 중 고유하게 존재하는 속성
    • 자연키 또는 인조키 중에 골라 설정
      • 자연키: 중복되지 않는 것을 자연스레 뽑다가 나오는 키
      • 인조키: 인위적으로 유저 아이디 부여, 오라클 sequence, MySQL auto increment 등으로 설정

Image

  • 외래키 Foreign Key, FK
    • 다른 테이블의 기본키를 그대로 참조하는 값
    • 개체와의 관계를 식별하는데 사용
    • 중복되어도 괜찮
  • 후보키 candidate key
    • 기본키가 될 수 있는 후보들
    • 유일성과 최소성을 동시에 만족하는 키
  • 대체키 alternate key
    • 후보키가 두 개 이상일 경우 어느 하나를 기본키로 지정하고 남은 후보키들
  • 슈퍼키 super key
    • 각 레코드를 유일하게 식별할 수 있는 유일성을 갖춘 키